{"id":104023,"date":"2026-10-21T00:39:04","date_gmt":"2026-10-20T16:39:04","guid":{"rendered":"https:\/\/ourdaysrecords.com\/class\/?post_type=product&#038;p=104023"},"modified":"2026-11-01T00:12:55","modified_gmt":"2026-10-31T16:12:55","slug":"thundergod-drums","status":"publish","type":"product","link":"https:\/\/ourdaysrecords.com\/class\/product\/thundergod-drums\/","title":{"rendered":"\u96f7\u516c ThunderGod Drums"},"content":{"rendered":"<!-- thundergod-lp build b1645dba45 (marketing\/build-embed.py \u7522\u751f,\u4e0d\u8981\u624b\u6539) -->\n<style>\n\/* \u96f7\u516c ThunderGod Drums \u92b7\u552e\u9801\u3002\n   \u984f\u8272\u3001\u5b57\u9ad4\u3001\u9375\u5e3d\u3001\u986f\u793a\u7a97\u7167\u5916\u639b\u672c\u8eab(Interface.js \u7684 TEXT \/ ACCENT \/ C_*,Chakra Petch):\u5ba2\u4eba\u5728\u9801\u9762\u4e0a\u770b\u5230\u7684\u8cea\u611f,\u5c31\u662f\u6253\u958b\u5916\u639b\u6703\u770b\u5230\u7684\u8cea\u611f\u3002\n   2026-10-24 Shawn \u6539\u7248:\u4e00\u500b\u5340\u584a\u8b1b\u4e00\u4ef6\u4e8b\u3001\u7559\u5927\u4e00\u9ede\u7684\u7a7a\u9593(\u50cf Apple \u7684\u7522\u54c1\u9801);\u6731\u7d05\u53ea\u7528\u5728\u8981\u6309\u7684\u9375\u3001\u50f9\u683c\u3001\u88ab\u9ede\u5230\u7684\u9f13\u3002\n   2026-10-28 \u8d77\u6574\u9801\u6df1\u8272,\u7c73\u767d(\u5916\u639b\u7684\u5b57\u8272)\u53ea\u7528\u4e00\u6b21:\u6700\u5f8c\u7684\u8a55\u50f9 + \u5e38\u898b\u554f\u984c\u3002\u5340\u584a\u9760\u300c\u677f\u5b50\u300d\u548c\u5f62\u72c0\u5206,\u4e0d\u9760\u9ed1\u767d\u4ea4\u932f\u3002\n   (10-24 \u5230 10-28 \u662f\u6df1\u8272\u548c\u7c73\u767d\u4e00\u5340\u4e00\u5340\u4ea4\u932f,\u6574\u9801\u63db 10 \u6b21\u5e95\u8272\u3002Shawn \u554f\u9ad8\u7d1a\u7684\u7db2\u7ad9\u662f\u4e0d\u662f\u90fd\u9019\u6a23,\u770b\u4e86 Apple\u3001Native Instruments\u3001\n   Teenage Engineering\u3001Output \u7684\u7522\u54c1\u9801,\u4e00\u9801\u53ea\u63db 0 \u5230 2 \u6b21,\u5c64\u6b21\u9760\u9ed1\u5e95\u4e0a\u7684\u7070\u677f\u548c\u5927\u5716;A \/ B \/ B1 \/ B2 \u56db\u7248\u6bd4\u904e,\u4ed6\u9078 B1)\n   \u5d4c\u9032 WordPress \u7684\u898f\u5247(~\/.claude\/skills\/wp-elementor-embed):\u6240\u6709\u6771\u897f\u5728 #thundergod-lp \u88e1\u3001\u8b8a\u6578\u639b\u5728 wrapper\u3001\n   \u4e0d\u7528 :root\u3001\u4e0d\u7528\u88f8\u9078\u64c7\u5668\u3001\u5b57\u578b\u7528 @import\u3001JS \u5305 IIFE\u3002html, body \u90a3\u4e00\u689d\u53ea\u7d66\u672c\u6a5f\u9810\u89bd,\u4e0a\u7dda\u7248\u8981\u62ff\u6389\u3002 *\/\n@import url(\"https:\/\/fonts.googleapis.com\/css2?family=Chakra+Petch:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;700&display=swap\");\n@import url(\"https:\/\/fonts.googleapis.com\/css2?family=Noto+Serif+TC:wght@900&text=%E9%9B%B7%E5%85%AC&display=swap\");\n\/* \u300c\u70ba\u4ec0\u9ebc\u662f\u96f7\u516c\uff1f\u300d\u90a3\u6bb5\u7684\u660e\u9ad4(\u53ea\u542b\u90a3\u6bb5\u7528\u5230\u7684\u5b57:\u6539\u90a3\u6bb5\u7684\u5b57\u8981\u91cd\u7b97\u9019\u500b\u7db2\u5740) *\/\n@import url(\"https:\/\/fonts.googleapis.com\/css2?family=Noto+Serif+TC:wght@400;700&text=%20Pgilnu%E3%80%81%E3%80%8C%E3%80%8D%E4%B8%80%E4%B8%8A%E4%B8%AD%E4%BA%86%E4%BA%BA%E4%BB%80%E4%BB%96%E4%BB%A3%E4%BB%A5%E4%BD%9C%E4%BE%86%E4%BF%A1%E5%80%91%E5%82%B3%E5%85%8B%E5%85%AC%E5%8F%A4%E5%8F%B2%E5%90%A7%E5%9C%A8%E5%A4%9A%E5%A5%97%E5%B0%B1%E5%B1%AC%E5%B9%B4%E6%84%8F%E6%87%89%E6%88%91%E6%89%80%E6%89%8B%E6%89%93%E6%89%BF%E6%8E%8C%E6%90%96%E6%95%B2%E6%97%A9%E6%98%8E%E6%98%AF%E6%9C%80%E6%AC%A1%E6%BB%BE%E7%82%BA%E7%94%A8%E7%9A%84%E7%9B%B8%E7%A5%9E%E7%AC%91%E7%AE%97%E7%AE%A1%E7%B5%84%E7%B5%B1%E8%81%B2%E8%A1%A8%E8%A3%BD%E8%A9%B2%E8%B1%A1%E8%BC%89%E8%BC%9D%E9%80%99%E9%87%91%E9%98%BF%E9%9B%B7%E9%9F%B3%E9%BA%BC%E9%BC%93%E9%BE%90%EF%BC%88%EF%BC%8C%EF%BC%9F&display=swap\");\n\n\n#thundergod-lp {\n  --tg-page: #151618;\n  --tg-line: #34363B;\n  --tg-key: #2B2D31;\n  --tg-key-hi: #36383D;\n  --tg-display: #0D0E0F;\n  --tg-text: #ECE8E1;\n  --tg-dim: #A39E95;\n  --tg-accent: #E9592F;\n  --tg-accent-hi: #F06A42;\n  --tg-keytext: #151618;\n  --tg-paper: #ECE8E1;          \/* \u7c73\u767d\u7684\u5340\u584a = \u5916\u639b\u7684\u5b57\u8272 *\/\n  --tg-slab: #202125;           \/* \u677f\u5b50:\u6bd4\u6df1\u8272\u5e95\u4eae\u4e00\u968e(\u8a66\u807d\u6a5f\u3001\u622a\u5716\u3001\u5206\u8ecc\u8868\u3001Link);\u7c73\u767d\u5340\u584a\u88e1\u63db\u6210\u7d19\u8272(\u8a55\u50f9\u5361\u7247) *\/\n  --tg-latin: \"Chakra Petch\", \"Noto Sans TC\", \"PingFang TC\", sans-serif;\n  --tg-body: \"Chakra Petch\", \"Noto Sans TC\", \"PingFang TC\", \"Microsoft JhengHei\", sans-serif;\n  --tg-serif: \"Noto Serif TC\", \"Songti TC\", \"PMingLiU\", serif;\n  --tg-wrap: 1120px;\n  --tg-gutter: 20px;\n  --tg-sec-pad: clamp(96px, 13vh, 168px);\n  position: relative;\n  background: var(--tg-page);\n  color: var(--tg-text);\n  font-family: var(--tg-body);\n  font-size: 17px;\n  line-height: 1.8;\n  -webkit-font-smoothing: antialiased;\n  overflow-x: clip;\n}\n\n\/* \u4e3b\u984c reset:\u53ea\u4f5c\u7528\u5728 wrapper \u88e1(\u864e\u723a\u8e29\u904e:img \/ table \/ blockquote \u7684\u6846\u6703\u5f9e\u4e3b\u984c\u7a7f\u9032\u4f86) *\/\n#thundergod-lp *, #thundergod-lp *::before, #thundergod-lp *::after { box-sizing: border-box; }\n#thundergod-lp h1, #thundergod-lp h2, #thundergod-lp h3, #thundergod-lp h4 {\n  margin: 0; padding: 0; font-size: inherit; font-weight: inherit; line-height: inherit;\n  color: inherit; font-family: inherit; border: 0; background: none; letter-spacing: 0; text-transform: none;\n}\n#thundergod-lp p { margin: 0; color: inherit; }\n#thundergod-lp ul, #thundergod-lp ol { list-style: none; margin: 0; padding: 0; }\n#thundergod-lp li { margin: 0; padding: 0; color: inherit; }\n#thundergod-lp a { color: inherit; text-decoration: none; border: 0; box-shadow: none; }\n#thundergod-lp img { display: block; max-width: 100%; height: auto; border: 0; border-radius: 0; box-shadow: none; padding: 0; margin: 0; }\n#thundergod-lp figure { margin: 0; padding: 0; }\n#thundergod-lp table { border-collapse: collapse; border: 0; margin: 0; width: 100%; background: none; }\n\/* color: inherit:EduMall \u6703\u5e6b th \u4e0a\u81ea\u5df1\u7684\u6df1\u8272\u5b57,\u5206\u8ecc\u8868\u7684\u540d\u7a31\u5728\u7db2\u7ad9\u4e0a\u88ab\u84cb\u6389(10-25 Shawn \u6293\u5230;\u672c\u6a5f\u6c92\u6709\u4e3b\u984c\u770b\u4e0d\u51fa\u4f86) *\/\n#thundergod-lp th, #thundergod-lp td { border: 0; padding: 0; background: none; text-align: left; font-weight: inherit; vertical-align: top; color: inherit; }\n#thundergod-lp button { font: inherit; color: inherit; margin: 0; }\n#thundergod-lp details, #thundergod-lp summary { margin: 0; padding: 0; color: inherit; }\n#thundergod-lp :focus-visible { outline: 2px solid var(--tg-accent); outline-offset: 3px; border-radius: 3px; }\n\n#thundergod-lp .tg-wrap { max-width: var(--tg-wrap); margin: 0 auto; padding: 0 var(--tg-gutter); }\n#thundergod-lp .tg-latin { font-family: var(--tg-latin); }\n\/* \u6a19\u984c\u88e1\u4e0d\u80fd\u62c6\u958b\u7684\u8a5e(\u624b\u6a5f\u5bec\u5ea6\u4e0b\u300cMIDI\uff0c\u300d\u6703\u81ea\u5df1\u6389\u6210\u4e00\u884c\u3001\u96fb\u8166\u7248\u300c\u53ef\u8abf\u300d\u6703\u81ea\u5df1\u6389\u6210\u4e00\u884c) *\/\n#thundergod-lp .tg-nb { white-space: nowrap; }\n\n\/* \u2500\u2500 \u5340\u584a:\u4e00\u500b\u5340\u584a\u8b1b\u4e00\u4ef6\u4e8b,\u4e0a\u4e0b\u7559\u5927\u4e00\u9ede\u7684\u7a7a\u9593\u3002tg-full = \u96fb\u8166\u4e0a\u81f3\u5c11\u4e00\u6574\u500b\u756b\u9762\u9ad8,\u5167\u5bb9\u5728\u4e2d\u9593 \u2500\u2500 *\/\n#thundergod-lp .tg-sec { padding: var(--tg-sec-pad) 0; }\n@media (min-width: 1024px) {\n  #thundergod-lp .tg-full { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; }\n  \/* flex \u88e1\u5de6\u53f3 margin: auto \u7684\u6771\u897f\u6703\u7e2e\u6210\u5167\u5bb9\u7684\u5bec\u5ea6(\u8a66\u807d\u7684\u6ce2\u5f62\u8b8a\u6210 0 \u5bec):\u6490\u6eff,\u518d\u7531 max-width \u7f6e\u4e2d *\/\n  #thundergod-lp .tg-full > * { width: 100%; }\n}\n#thundergod-lp .tg-center { text-align: center; }\n#thundergod-lp .tg-center .tg-sub { margin-left: auto; margin-right: auto; text-wrap: balance; }\n\/* \u6a19\u984c\u548c\u7f6e\u4e2d\u7684\u77ed\u53e5:\u53ea\u5728\u6a19\u9ede\u3001\u7a7a\u683c\u63db\u884c(\u4e2d\u6587\u9810\u8a2d\u54ea\u5169\u500b\u5b57\u4e2d\u9593\u90fd\u80fd\u65b7,\u624b\u6a5f\u4e0a\u6703\u65b7\u6210\u300c\u91d1 \/ \u5c6c\u300d\u300c\u4efb \/ \u4f55\u300d\u3001\u6a19\u984c\u5269\u300c\u505a\u597d\u300d\u5169\u500b\u5b57)\u3002\n   \u6574\u53e5\u6c92\u6709\u6a19\u9ede\u3001\u653e\u4e0d\u4e0b\u6642 overflow-wrap \u7167\u6a23\u6703\u65b7,\u4e0d\u6703\u6490\u7834\u7248\u9762(2026-10-24 \u5728 Chromium \u6e2c\u904e) *\/\n#thundergod-lp h2, #thundergod-lp .tg-center .tg-sub, #thundergod-lp .tg-story p, #thundergod-lp .tg-lead,\n#thundergod-lp .tg-links-cap, #thundergod-lp .tg-stage-hint { word-break: keep-all; overflow-wrap: anywhere; }\n\n\/* \u7c73\u767d\u7684\u5340\u584a:\u5b57\u63db\u6df1\u8272\u3002\u88e1\u9762\u7684\u300c\u786c\u9ad4\u300d(\u986f\u793a\u7a97\u3001\u9375\u5e3d\u3001\u5916\u639b\u622a\u5716\u65c1\u7684\u9762\u677f)\u9084\u662f\u5916\u639b\u7684\u6df1\u8272,\u6240\u4ee5\u628a\u5b83\u5011\u7684\u8b8a\u6578\u63db\u56de\u4f86 *\/\n#thundergod-lp .tg-light {\n  --tg-text: #151618; --tg-dim: #5B564E; --tg-line: #CFC8BD; --tg-slab: #F6F3EE;\n  background: var(--tg-paper); color: var(--tg-text);\n}\n#thundergod-lp .tg-light .tg-display, #thundergod-lp .tg-light .tg-console, #thundergod-lp .tg-light .tg-key,\n#thundergod-lp .tg-light .tg-outs, #thundergod-lp .tg-light .tg-link-tile {\n  --tg-text: #ECE8E1; --tg-dim: #A39E95; --tg-line: #34363B; --tg-slab: #202125;\n  color: var(--tg-text);\n}\n\n\/* \u6a19\u984c:\u4e2d\u6587\u7528\u9ed1\u9ad4,\u6578\u5b57\u548c\u82f1\u6587\u81ea\u52d5\u843d\u5230 Chakra Petch(\u5916\u639b\u7684\u5b57) *\/\n#thundergod-lp h2 {\n  font-size: clamp(30px, 3.8vw, 52px);\n  font-weight: 700;\n  line-height: 1.28;\n  letter-spacing: 0.01em;\n}\n#thundergod-lp .tg-sub { color: var(--tg-dim); max-width: 34em; margin-top: 20px; font-size: 18px; }\n#thundergod-lp .tg-label {\n  font-family: var(--tg-latin);\n  font-size: 12px;\n  font-weight: 600;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  color: var(--tg-dim);\n  line-height: 1.2;\n}\n\n\/* \u2500\u2500 \u9375\u5e3d:\u5916\u639b\u7684 drawKey(\u4e0a\u4eae\u4e0b\u6697\u7684\u6f38\u5c64\u30011 px \u6df1\u8272\u908a\u3001\u9802\u7aef\u4e00\u689d\u4eae\u7dda)\u3002\u4eae\u8457\u7684\u9375\u5e3d = \u6731\u7d05\u3001\u6df1\u8272\u5b57(5.1:1) \u2500\u2500 *\/\n#thundergod-lp .tg-key {\n  display: inline-flex; align-items: center; justify-content: center; gap: 10px;\n  min-height: 48px; padding: 0 20px;\n  font-family: var(--tg-latin); font-size: 16px; font-weight: 600; letter-spacing: 0.03em; line-height: 1;\n  color: var(--tg-text);\n  background: linear-gradient(180deg, var(--tg-key-hi), var(--tg-key));\n  border: 1px solid #0F1012;\n  border-radius: 5px;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.07), 0 1px 0 rgba(0,0,0,0.4);\n  cursor: pointer;\n  transition: transform 120ms ease, filter 160ms ease;\n  white-space: nowrap;\n}\n#thundergod-lp .tg-key:active { transform: translateY(1px) scale(0.98); }\n#thundergod-lp .tg-key-accent {\n  color: var(--tg-keytext);\n  background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent));\n  border-color: #8E2F14;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 0 rgba(0,0,0,0.4);\n}\n@media (hover: hover) and (pointer: fine) {\n  #thundergod-lp .tg-key:hover { filter: brightness(1.12); }\n}\n\n\/* \u2500\u2500 \u986f\u793a\u7a97:\u5916\u639b\u7684 drawDisplay(\u51f9\u9032\u53bb\u7684\u9ed1\u7a97,\u50cf\u786c\u9ad4\u7684\u6db2\u6676)\u3002\u50f9\u683c\u3001\u5012\u6578\u3001\u6b63\u5728\u807d\u7684\u9f13\u90fd\u653e\u9019\u88e1 \u2500\u2500 *\/\n#thundergod-lp .tg-display {\n  display: inline-flex; flex-direction: column; justify-content: center; gap: 6px;\n  padding: 10px 14px;\n  background: var(--tg-display);\n  border: 1px solid #000;\n  border-radius: 4px;\n  box-shadow: inset 0 2px 6px rgba(0,0,0,0.8), 0 1px 0 rgba(255,255,255,0.05);\n}\n#thundergod-lp .tg-display-value {\n  font-family: var(--tg-latin); font-weight: 500; font-size: 22px; line-height: 1; color: var(--tg-text);\n  font-variant-numeric: tabular-nums; white-space: nowrap;\n}\n\n\/* \u2500\u2500 \u50f9\u683c\u548c\u9996\u767c\u512a\u60e0\u5012\u6578(Shawn 10-25:\u300c\u4e0a\u5e02\u50f9\u300d\u4e0d\u662f\u53f0\u7063\u4eba\u5728\u7528\u7684\u8aaa\u6cd5 \u2192 \u9996\u767c\u512a\u60e0\u50f9\u3001\u9996\u767c\u512a\u60e0\u5269\u9918) \u2500\u2500 *\/\n#thundergod-lp .tg-offer { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }\n#thundergod-lp .tg-price { min-width: 168px; }\n#thundergod-lp .tg-price .tg-display-value { font-size: 32px; color: var(--tg-accent-hi); }   \/* \u6731\u7d05(Shawn 10-28),\u5c0d\u986f\u793a\u7a97 6.3:1 *\/\n#thundergod-lp .tg-count-v { display: inline-flex; align-items: baseline; gap: 3px; font-size: 18px; color: var(--tg-text); }\n#thundergod-lp .tg-count-v b { font-weight: 500; min-width: 1.15em; text-align: right; }\n#thundergod-lp .tg-count-v i { font-style: normal; font-family: var(--tg-body); font-size: 12px; color: #A39E95; margin-right: 6px; }\n#thundergod-lp .tg-count-end { font-family: var(--tg-latin); font-size: 15px; color: var(--tg-text); }\n#thundergod-lp .tg-count-v, #thundergod-lp.tg-js .tg-count-end { display: none; }\n#thundergod-lp.tg-js .tg-count-v { display: inline-flex; }\n#thundergod-lp .tg-count[hidden] { display: none; }\n\/* \u9996\u767c\u512a\u60e0\u7d50\u675f:\u5546\u54c1\u7684\u50f9\u9322\u4e0d\u6bd4 12\/1 \u8d77\u7684\u50f9\u9322\u4fbf\u5b9c\u4e86(\u7db2\u7ad9\u586b\u7684 data-promo \u662f\u7a7a\u7684),\u6216\u5012\u6578\u5230\u4e86(JS \u6e05\u6389 data-promo)\u3002\n   \u5c0f\u6a19\u3001\u5283\u7dda\u3001\u5012\u6578\u6536\u8d77\u4f86,\u53ea\u5269\u50f9\u9322 *\/\n#thundergod-lp .tg-offer-card[data-promo=\"\"] .tg-label,\n#thundergod-lp .tg-offer-card[data-promo=\"\"] .tg-price-was,\n#thundergod-lp .tg-offer-card[data-promo=\"\"] .tg-count { display: none; }\n\/* \u9996\u767c\u512a\u60e0\u50f9\u548c\u5012\u6578\u540c\u4e00\u5f35\u5361(Shawn 10-28)\u3002\u50f9\u683c\u5728\u4e0a\u3001\u6700\u5927;\u5012\u6578\u5728\u4e0b\u3001\u5c0f\u4e00\u9ede\u3001\u4e0d\u7528\u6731\u7d05(\u540c\u4e00\u5929 Shawn:\u5012\u6578\u6bd4\u50f9\u683c\u6436\u773c\u592a\u591a,\n   \u50f9\u683c\u624d\u61c9\u8a72\u6700\u986f\u773c;\u6731\u7d05\u7559\u7d66\u8cfc\u8cb7\u9375)\u3002\u300c\u9996\u767c\u512a\u60e0\u5269\u9918\u300d\u5e7e\u500b\u5b57\u62ff\u6389\u3002\u5012\u6578\u6642\u9593\u5230 JS \u628a .tg-count \u85cf\u8d77\u4f86,\u53ea\u5269\u50f9\u683c *\/\n#thundergod-lp .tg-offer-card { flex-direction: column; align-items: stretch; gap: 0; padding: 0; min-width: 300px; }\n#thundergod-lp .tg-offer-card > div { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 12px 22px; }\n#thundergod-lp .tg-offer-card > .tg-count { padding: 9px 22px 11px; border-top: 1px solid #2A2C30; }\n#thundergod-lp .tg-offer-card .tg-label { text-transform: none; }\n#thundergod-lp .tg-price-row { display: flex; align-items: baseline; justify-content: center; gap: 12px; }\n\/* 12\/1 \u8d77\u7684\u50f9\u683c(3,199)\u7528\u5283\u7dda:Shawn 10-28 \u6c7a\u5b9a(\u4ed6 10-23 \u5b9a\u904e\u4e0d\u5283\u7dda,\u56e0\u70ba 3,199 \u9084\u6c92\u8ce3\u904e;\u9019\u6b21\u63d0\u9192\u904e,\u4ed6\u9078\u5283\u7dda)\u3002\n   \u8b80\u87a2\u5e55\u7684\u4eba\u807d\u5f97\u5230\u300c12\/1 \u8d77\u300d(.tg-sr) *\/\n#thundergod-lp .tg-price-was { font-family: var(--tg-latin); font-size: 16px; line-height: 1; color: var(--tg-dim); text-decoration: line-through; text-decoration-thickness: 1.5px; white-space: nowrap; }\n#thundergod-lp .tg-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }\n#thundergod-lp .tg-buy { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; }\n\/* Hero \u548c\u6536\u5c3e\u7684\u8cfc\u8cb7\u9375:\u8ddf\u50f9\u683c\u5361\u4e00\u6a23\u5bec(300)\u3001\u9ad8\u4e00\u9ede\u3001\u5b57\u5927\u4e00\u9ede(Shawn 10-28:\u5c0f\u5c0f\u4e00\u9846\u770b\u8d77\u4f86\u5c0f\u6c23\u3001\u4e0d\u5920\u5927\u6c23) *\/\n#thundergod-lp .tg-hero .tg-buy .tg-key, #thundergod-lp .tg-end .tg-buy .tg-key { min-width: 300px; min-height: 58px; font-size: 19px; letter-spacing: 0.08em; }\n\/* \u76f8\u5bb9\u6027\u4e00\u884c\u5b57,\u5728\u8cfc\u8cb7\u9375\u4e0b\u9762(Shawn 10-24 \u5b9a\u7684\u5169\u500b\u91cd\u9ede:\u898f\u683c\u8868\u5beb\u4e86\u7684\u4e0d\u7528\u5728\u9019\u88e1\u5beb\u4e00\u9577\u4e32\u300210-28 \u5f9e\u5169\u500b\u6846\u6539\u6210\u4e00\u884c\u5b57,\n   \u653e\u5728\u6309\u9215\u4e0b\u9762:\u5ba2\u4eba\u6309\u8cfc\u8cb7\u524d\u60f3\u77e5\u9053\u81ea\u5df1\u7684\u96fb\u8166\u80fd\u4e0d\u80fd\u7528) *\/\n#thundergod-lp .tg-compat { margin-top: 14px; font-size: 14px; line-height: 1.5; letter-spacing: 0.03em; color: var(--tg-text); }\n\n\/* \u2500\u2500 HERO:\u96f7\u516c\u6574\u5f35\u5716\u5728\u4e0a\u3001\u5b57\u5728\u5716\u4e0b\u9762\u7f6e\u4e2d(\u96fb\u8166\u3001\u5e73\u677f\u3001\u624b\u6a5f\u540c\u4e00\u7a2e\u6392\u6cd5)\u3002\n   \u7d93\u904e:10-21 \u6eff\u7248\u3001\u5b57\u5728\u5de6\u908a\u58d3\u6697\u7684\u5730\u65b9 \u2192 10-24 \u756b\u7e2e\u5c0f\u653e\u53f3\u908a \u2192 10-25 \u56de\u5230\u6eff\u7248,\u540c\u4e00\u5929\u53c8\u7e2e\u6210 85%\u3001\u56db\u908a\u9ed1\u8272\u6f38\u5c64 \u2192\n   10-28 Shawn:\u4e0a\u9762\u548c\u53f3\u908a\u7684\u9ed1\u908a\u770b\u8d77\u4f86\u602a \u2192 \u6eff\u7248\u3002\u540c\u4e00\u5929\u6bd4\u904e:\u5b57\u7f6e\u4e2d\u758a\u5728\u9f13\u7d44\u4e0a(\u52a0\u9ed1\u8272\u6f38\u5c64 \/ \u4e0d\u8981\u6f38\u5c64 \/ \u6574\u5f35\u58d3\u6697 20%\u3001\u5b57\u5e36\u6697\u5f71)\u3001\n   \u8cfc\u8cb7\u5340\u7684\u5e7e\u7a2e\u6392\u6cd5(\u50f9\u683c\u5361\u548c\u6309\u9215\u9ecf\u6210\u4e00\u53f0\u3001\u50f9\u683c\u53ea\u7528\u5b57\u3001\u6700\u4e0b\u9762\u4e00\u689d\u8cfc\u8cb7\u5217),\u6700\u5f8c\u4ed6\u8aaa\u5e73\u677f\u7684\u6392\u6cd5\u6700\u597d\u770b(\u5716\u5728\u4e0a\u3001\u5b57\u5728\u4e0b),\n   \u96fb\u8166\u4e5f\u7167\u9019\u6a23,\u800c\u4e14\u8981\u6574\u5f35\u5716(4:3 \u4e0d\u88c1):\u96fb\u8166\u87a2\u5e55\u6bd4\u8f03\u5bec,\u88c1\u6210\u4e00\u500b\u756b\u9762\u9ad8\u7684\u8a71\u9f13\u7d44\u4e0b\u534a\u90e8\u88ab\u88c1\u6389,\u770b\u8d77\u4f86\u5c31\u4e0d\u5bec\u9b06\u3002\n   \u4ee3\u50f9:\u96fb\u8166\u4e00\u6253\u958b\u7684\u7b2c\u4e00\u500b\u756b\u9762\u53ea\u6709\u5716(1440\u00d7900 \u525b\u597d\u5230\u9f13\u7d44\u4e0b\u7de3),\u300c\u96f7\u516c\u300d\u3001\u50f9\u683c\u3001\u8cfc\u8cb7\u9375\u8981\u5f80\u4e0b\u6372\u3002\u5e73\u677f\u672c\u4f86\u5c31\u662f\u9019\u6a23,\u4ed6\u9078\u7167\u5e73\u677f,\n   \u7b2c\u4e00\u500b\u756b\u9762\u4e0d\u653e\u8cfc\u8cb7\u5217(\u6372\u904e\u50f9\u683c\u5340\u624d\u51fa\u73fe)\u3002\n   \u5b57\u4e0d\u758a\u5728\u5716\u4e0a:\u5716\u4e0d\u58d3\u6697\u3001\u5b57\u4e0d\u52a0\u6697\u5f71,\u81c9\u4e00\u5b9a\u5b8c\u6574\u9732\u51fa\u4f86(Shawn 10-20:\u300c\u9019\u624d\u662f\u6211\u5011 Plugin \u7684\u8ce3\u9ede\u300d)\u3002 \u2500\u2500 *\/\n#thundergod-lp .tg-hero { position: relative; overflow: hidden; }\n#thundergod-lp .tg-hero-art { position: relative; aspect-ratio: 4 \/ 3; }\n#thundergod-lp .tg-hero-art img, #thundergod-lp .tg-hero-video {\n  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%;\n}\n\/* \u9f13\u5728\u6253\u7684\u5faa\u74b0\u5f71\u7247(hero_loop.py)\u758a\u5728\u540c\u4e00\u5f35\u5716\u4e0a,\u88c1\u5207\u4e00\u6a23\u3002\u771f\u7684\u958b\u59cb\u64ad\u624d\u6de1\u5165:\u8f09\u4e0d\u5230\u3001\u88ab\u64cb\u81ea\u52d5\u64ad\u653e,\u5c31\u505c\u5728\u975c\u614b\u5716 *\/\n#thundergod-lp .tg-hero-video { display: block; opacity: 0; transition: opacity 500ms ease; }\n#thundergod-lp .tg-hero-video.tg-on { opacity: 1; }\n\/* \u4e0b\u9762 22% \u6de1\u9032\u9ed1\u8272,\u5b57\u7684\u4e0a\u534a\u90e8\u758a\u5728\u9019\u6bb5\u4e0a *\/\n#thundergod-lp .tg-hero-art::after {\n  content: \"\"; position: absolute; inset: 0; pointer-events: none;\n  background: linear-gradient(0deg, var(--tg-page) 0, rgba(21,22,24,0) 22%);\n}\n\/* \u66ab\u505c\u9375:\u5716\u7684\u53f3\u4e0a\u89d2 *\/\n#thundergod-lp .tg-motion {\n  position: absolute; right: clamp(16px, 2.5vw, 40px); top: 16px; z-index: 2;\n  width: 44px; height: 44px; min-height: 44px; padding: 0; opacity: 0.85;\n}\n#thundergod-lp .tg-motion[hidden] { display: none; }\n#thundergod-lp .tg-motion svg { width: 16px; height: 16px; fill: currentColor; }\n#thundergod-lp .tg-motion .tg-i-play, #thundergod-lp .tg-motion[aria-pressed=\"true\"] .tg-i-pause { display: none; }\n#thundergod-lp .tg-motion[aria-pressed=\"true\"] .tg-i-play { display: block; }\n\/* \u5b57\u5728\u5716\u4e0b\u9762\u3001\u7f6e\u4e2d,\u4e0a\u7de3\u5f80\u4e0a\u758a\u4e00\u9ede\u5230\u5716\u7684\u6de1\u51fa\u88e1 *\/\n#thundergod-lp .tg-hero-text {\n  position: relative; z-index: 1;\n  max-width: 720px; margin: -8vw auto 0; padding: 0 var(--tg-gutter) 72px;\n  text-align: center;\n}\n#thundergod-lp .tg-h1-zh {\n  display: block;\n  font-family: var(--tg-serif); font-weight: 900;\n  font-size: clamp(96px, 10vw, 168px); line-height: 0.95; letter-spacing: 0.02em;\n}\n#thundergod-lp .tg-h1-en {\n  display: block; margin-top: 14px;\n  font-family: var(--tg-latin); font-weight: 600; font-size: clamp(18px, 1.7vw, 22px);\n  letter-spacing: 0.14em; text-transform: uppercase; color: #C4BFB5; line-height: 1.2;\n}\n#thundergod-lp .tg-lead { margin: 18px auto 0; font-size: 18px; line-height: 1.75; max-width: 26em; text-wrap: pretty; }\n#thundergod-lp .tg-hero .tg-offer { margin-top: 24px; }\n#thundergod-lp .tg-hero .tg-offer, #thundergod-lp .tg-hero .tg-buy { justify-content: center; }\n\n\/* \u2500\u2500 \u70ba\u4ec0\u9ebc\u662f\u96f7\u516c:\u7f6e\u4e2d\u3001\u660e\u9ad4\u3001\u4e00\u53e5\u4e00\u53e5\u6de1\u5165(Shawn 10-24:\u300c\u9019\u6a23\u5c31\u5f88\u611f\u52d5\u300d;\u300a\u8ad6\u8861\u300b\u539f\u6587\u90a3\u6bb5\u62ff\u6389) \u2500\u2500 *\/\n#thundergod-lp .tg-story { text-align: center; }\n#thundergod-lp .tg-story-in { max-width: 860px; }\n#thundergod-lp .tg-story h2 { font-family: var(--tg-serif); font-weight: 700; letter-spacing: 0.06em; }\n#thundergod-lp .tg-story p {\n  font-family: var(--tg-serif); font-weight: 400;\n  font-size: clamp(19px, 1.65vw, 24px); line-height: 1.9; letter-spacing: 0.04em;\n  max-width: 32em; margin: 0.8em auto 0;\n  text-wrap: balance;       \/* \u7167\u53e5\u5b50\u7528 <br> \u65b7;\u624b\u6a5f\u4e0a\u4e00\u53e5\u653e\u4e0d\u4e0b\u6642,\u5169\u884c\u5e73\u5747,\u4e0d\u6703\u5269\u4e00\u5169\u500b\u5b57\u6389\u4e0b\u53bb *\/\n}\n#thundergod-lp .tg-story h2 + p { margin-top: 1.3em; }\n#thundergod-lp.tg-js .tg-reveal { opacity: 0; transform: translateY(14px); transition: opacity 1200ms ease, transform 1200ms ease; }\n#thundergod-lp.tg-js .tg-reveal.tg-in { opacity: 1; transform: none; }\n\n\/* \u2500\u2500 \u8a66\u807d:\u64ad\u653e\u5668\u50cf\u4e00\u53f0\u6a5f\u5668,\u653e\u5728\u6bd4\u5e95\u8272\u4eae\u4e00\u968e\u7684\u677f\u5b50\u4e0a(10-28 \u524d\u662f\u7c73\u767d\u5340\u584a\u4e0a\u7684\u9ed1\u8272\u9762\u677f) \u2500\u2500 *\/\n#thundergod-lp .tg-console {\n  margin: 48px auto 0; max-width: 920px; text-align: left;\n  background: var(--tg-slab);\n  border: 1px solid rgba(255,255,255,0.07);\n  border-radius: 8px;\n  padding: 22px;\n}\n#thundergod-lp .tg-player { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; }\n\/* \u56db\u9996\u66f2\u98a8:JS \u6c92\u8dd1\u6642\u662f\u56db\u500b <audio controls>(\u4e0a\u9762\u5beb\u66f2\u98a8\u540d);JS \u8dd1\u4e86\u5c31\u85cf\u8d77\u4f86,\u6539\u6210\u4e0a\u9762\u4e00\u6392\u66f2\u98a8\u9375 + \u4e00\u500b\u64ad\u653e\u5668 *\/\n#thundergod-lp .tg-tracks { grid-column: 1 \/ -1; list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }\n#thundergod-lp .tg-tracks li { display: grid; gap: 6px; }\n#thundergod-lp .tg-tracks audio { width: 100%; }\n#thundergod-lp .tg-track-name { font-family: var(--tg-latin); font-weight: 600; }\n#thundergod-lp.tg-js .tg-tracks { display: none; }\n#thundergod-lp .tg-genres { grid-column: 1 \/ -1; display: none; grid-template-columns: repeat(4, 1fr); gap: 8px; }\n#thundergod-lp.tg-js .tg-genres { display: grid; }\n#thundergod-lp .tg-genres .tg-key { min-height: 52px; padding: 0 10px; }\n#thundergod-lp .tg-genres .tg-key[aria-pressed=\"true\"] {      \/* \u9078\u5230\u7684\u66f2\u98a8 = \u5916\u639b\u76ee\u524d\u7684\u9801\u7c64:\u6574\u9846\u6731\u7d05\u3001\u6df1\u8272\u5b57 *\/\n  color: var(--tg-keytext);\n  background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent));\n  border-color: #8E2F14;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 0 rgba(0,0,0,0.4);\n}\n#thundergod-lp .tg-play, #thundergod-lp .tg-wave, #thundergod-lp .tg-time { display: none; }\n#thundergod-lp.tg-js .tg-play, #thundergod-lp.tg-js .tg-wave { display: flex; }\n#thundergod-lp.tg-js .tg-time { display: inline-flex; }\n#thundergod-lp .tg-play { width: 64px; height: 64px; min-height: 64px; padding: 0; border-radius: 6px; }\n#thundergod-lp .tg-play svg { width: 22px; height: 22px; fill: currentColor; }\n#thundergod-lp .tg-play .tg-i-pause, #thundergod-lp .tg-play .tg-i-wait { display: none; }\n#thundergod-lp .tg-player[data-state=\"playing\"] .tg-i-play { display: none; }\n#thundergod-lp .tg-player[data-state=\"playing\"] .tg-i-pause { display: block; }\n#thundergod-lp .tg-player[data-state=\"loading\"] .tg-i-play { display: none; }\n#thundergod-lp .tg-player[data-state=\"loading\"] .tg-i-wait { display: block; }\n#thundergod-lp .tg-wave {\n  align-items: center; gap: 2px; height: 64px; min-width: 0; overflow: hidden;\n  padding: 8px 10px;\n  background: var(--tg-display); border: 1px solid #000; border-radius: 4px;\n  box-shadow: inset 0 2px 6px rgba(0,0,0,0.8);\n  cursor: pointer;\n}\n#thundergod-lp .tg-wave span { flex: 1 1 0; min-width: 0; background: #4A4C51; border-radius: 1px; }\n#thundergod-lp .tg-wave span.tg-on { background: var(--tg-accent); }\n#thundergod-lp .tg-time .tg-display-value { font-size: 18px; }\n#thundergod-lp .tg-player-msg { grid-column: 1 \/ -1; font-size: 14px; color: var(--tg-dim); }\n#thundergod-lp .tg-player-msg:empty { display: none; }\n#thundergod-lp .tg-player[data-state=\"error\"] .tg-player-msg { color: var(--tg-accent-hi); }\n#thundergod-lp .tg-listen-note { margin-top: 28px; font-size: 18px; font-weight: 700; color: var(--tg-text); }\n\n\/* \u2500\u2500 \u9ede\u9f13\u5c31\u97ff(Shawn 10-24:\u300c\u76f4\u63a5\u7d66\u5b83\u9f13,\u8b93\u7528\u6236\u53ef\u4ee5\u76f4\u63a5\u9ede,\u5728\u7db2\u9801\u4e0a\u807d\u5230\u6bcf\u4e00\u9846\u7684\u8072\u97f3\u300d)\u3002\n   \u9f13\u7d44\u55ae\u7368\u653e\u5728\u9ed1\u8272\u821e\u53f0\u4e0a(kit_stage.py),\u9ede\u5230\u7684\u9f13\u4eae\u8d77\u4f86(\u8ddf\u5916\u639b\u9f13\u7d44\u9801\u4e00\u6a23\u7684\u4eae\u6cd5),\u8072\u97f3 = \u96f7\u516c\u76f4\u51fa(kit_sounds.py) \u2500\u2500 *\/\n#thundergod-lp .tg-stage { background: radial-gradient(ellipse at 50% 70%, #1D1C1B 0, var(--tg-page) 62%); }\n#thundergod-lp .tg-stage-box { max-width: 1240px; margin: 44px auto 0; padding: 0 var(--tg-gutter); }\n#thundergod-lp .tg-stage-art {\n  position: relative; aspect-ratio: 1752 \/ 1104; user-select: none; -webkit-user-select: none; touch-action: manipulation;\n  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 88%, transparent 100%);\n  mask-image: linear-gradient(180deg, #000 0, #000 88%, transparent 100%);\n}\n#thundergod-lp .tg-stage-art > img { width: 100%; height: 100%; -webkit-user-drag: none; }\n#thundergod-lp .tg-stage-art.tg-over { cursor: pointer; }\n#thundergod-lp .tg-stage-lit { position: absolute; inset: 0; pointer-events: none; }\n#thundergod-lp .tg-stage-lit img { position: absolute; max-width: none; opacity: 0; transition: opacity 160ms ease; }\n#thundergod-lp .tg-stage-lit img.tg-hover { opacity: 0.45; }\n#thundergod-lp .tg-stage-lit img.tg-hit { animation: tg-flash 700ms ease-out forwards; }\n#thundergod-lp .tg-stage-lit img.tg-tap { animation: tg-flash 320ms ease-out forwards; }   \/* Groove \u5728\u64ad\u7684\u6642\u5019,\u6bcf\u4e00\u4e0b\u4eae\u5f97\u77ed\u4e00\u9ede *\/\n@keyframes tg-flash { 0% { opacity: 1; } 100% { opacity: 0; } }\n#thundergod-lp .tg-stage-bar { display: none; flex-direction: column; align-items: center; gap: 16px; margin-top: 8px; }\n#thundergod-lp.tg-js .tg-stage-bar { display: flex; }\n#thundergod-lp .tg-stage-ctl, #thundergod-lp .tg-stage-info { display: flex; align-items: center; justify-content: center; gap: 14px 28px; flex-wrap: wrap; }\n\/* Groove \u548c Kick \/ Snare \u7684 1 | 2:\u8ddf\u5916\u639b\u4e00\u6a23,\u9078\u5230\u7684\u90a3\u9846\u6574\u9846\u6731\u7d05\u3001\u6df1\u8272\u5b57 *\/\n#thundergod-lp .tg-grooves, #thundergod-lp .tg-switch { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center; }\n#thundergod-lp .tg-stage-ctl .tg-label { font-size: 13px; margin-right: 4px; }\n#thundergod-lp .tg-grooves .tg-key { min-height: 46px; padding: 0 18px; }\n#thundergod-lp .tg-switch .tg-key { width: 46px; min-height: 46px; padding: 0; }\n#thundergod-lp .tg-grooves .tg-key[aria-pressed=\"true\"], #thundergod-lp .tg-switch .tg-key[aria-pressed=\"true\"] {\n  color: var(--tg-keytext);\n  background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent));\n  border-color: #8E2F14;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 0 rgba(0,0,0,0.4);\n}\n#thundergod-lp .tg-switches { display: flex; gap: 14px 24px; flex-wrap: wrap; justify-content: center; }\n#thundergod-lp .tg-stage-now { min-width: 200px; }\n#thundergod-lp .tg-stage-now .tg-display-value { font-size: 20px; }\n#thundergod-lp .tg-stage-now[data-state=\"error\"] .tg-display-value { color: var(--tg-accent-hi); font-family: var(--tg-body); font-size: 15px; white-space: normal; }\n#thundergod-lp .tg-stage-hint { font-size: 15px; color: var(--tg-dim); }\n\/* 16 \u500b\u6309\u9375\u5e73\u5e38\u85cf\u8d77\u4f86(Shawn 10-25:\u300c\u76f4\u63a5\u9ede\u756b\u9762\u4e0a\u5c31\u597d\u300d),\u53ea\u7d66\u9375\u76e4\u7528:Tab \u9032\u5230\u6309\u9375\u6642\u624d\u6574\u6392\u51fa\u73fe *\/\n#thundergod-lp .tg-pads { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }\n#thundergod-lp .tg-pads:not(:focus-within) .tg-key { position: absolute; left: 0; top: 0; }   \/* \u85cf\u8d77\u4f86\u6642\u758a\u5728\u539f\u9ede,\u4e0d\u6392\u5230\u756b\u9762\u5916\u9762 *\/\n#thundergod-lp .tg-pads:focus-within { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; margin-top: 22px; }\n#thundergod-lp .tg-pads:empty { display: none; }\n#thundergod-lp .tg-pads .tg-key { min-height: 52px; padding: 0 6px; font-size: 14px; }\n#thundergod-lp .tg-pads .tg-key.tg-hit { color: var(--tg-keytext); background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent)); border-color: #8E2F14; }\n\n\/* \u2500\u2500 \u6df7\u97f3\u9801 \u2500\u2500 *\/\n#thundergod-lp .tg-mixer-head { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 56px; align-items: end; }\n#thundergod-lp .tg-mixer-head .tg-sub { margin-top: 0; }\n\/* \u4e09\u7d44 Link(Shawn 10-24:\u63a8\u687f\u7684 dB \u6578\u4e0d\u91cd\u8981,\u9019\u88e1\u8b1b\u54ea\u5e7e\u689d\u53ef\u4ee5 Link \u8d77\u4f86)\u3002\u4e2d\u9593\u90a3\u689d\u6731\u7d05\u7684\u6a4b = \u5916\u639b\u88e1\u9396\u4f4f\u7684 Link *\/\n#thundergod-lp .tg-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 48px; }\n#thundergod-lp .tg-link-tile {\n  display: flex; align-items: center; justify-content: center; gap: 10px;\n  padding: 18px 14px; background: var(--tg-slab); border: 1px solid rgba(255,255,255,0.07); border-radius: 6px;\n  font-family: var(--tg-latin); font-weight: 600; font-size: 17px; letter-spacing: 0.03em; line-height: 1.2; text-align: center;\n}\n\/* \u9396\u93c8 = \u5916\u639b\u6df7\u97f3\u9801\u5169\u689d\u63a8\u687f\u4e2d\u9593\u90a3\u9846(Interface.js \u7684 linkLaf):\u5c0f\u9375\u5e3d\u4e0a\u5169\u500b\u4ea4\u758a\u7684\u5713\u89d2\u74b0,\u9396\u4f4f = \u6731\u7d05\u3002Shawn 10-25:\u8981\u8ddf\u5916\u639b\u4e00\u6a23\u624d\u770b\u5f97\u61c2 *\/\n#thundergod-lp .tg-chain {\n  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 30px;\n  background: linear-gradient(180deg, var(--tg-key-hi), var(--tg-key));\n  border: 1px solid #0F1012; border-radius: 5px;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.07), 0 1px 0 rgba(0,0,0,0.4);\n}\n#thundergod-lp .tg-chain svg { width: 46px; height: 28px; }\n#thundergod-lp .tg-chain rect { fill: none; stroke: var(--tg-accent); stroke-width: 1.6; }\n#thundergod-lp .tg-links-cap { margin-top: 16px; font-size: 17px; color: var(--tg-text); text-align: center; }\n\/* \u622a\u5716\u653e\u5728\u677f\u5b50\u4e0a(\u50cf Apple Logic Pro \u9ed1\u5e95\u4e0a\u7684\u7070\u677f):\u5916\u639b\u7684\u756b\u9762\u662f\u6df1\u8272\u7684,\u76f4\u63a5\u653e\u5728\u6df1\u8272\u9801\u9762\u4e0a\u6703\u7cca\u6210\u4e00\u7247\u3002\n   \u622a\u5716\u672c\u8eab\u662f\u4e00\u500b\u6d6e\u8d77\u4f86\u7684\u300c\u8996\u7a97\u300d,\u8868\u793a\u9019\u662f\u5916\u639b\u672c\u8eab,\u4e0d\u662f\u63d2\u5716 *\/\n#thundergod-lp .tg-shot {\n  margin-top: 48px;\n  padding: clamp(10px, 2.2vw, 28px);\n  background: var(--tg-slab);\n  border: 1px solid rgba(255,255,255,0.07);\n  border-radius: 12px;\n}\n#thundergod-lp .tg-shot img, #thundergod-lp .tg-shot video {\n  display: block; width: 100%; height: auto; aspect-ratio: 1200 \/ 980;\n  border: 1px solid #0B0C0D; border-radius: 6px; box-shadow: 0 22px 44px -22px rgba(0,0,0,0.85);\n}\n#thundergod-lp .tg-shot img[width=\"1140\"] { aspect-ratio: auto; }\n#thundergod-lp .tg-cap { margin-top: 14px; font-size: 15px; color: var(--tg-dim); }\n\n\/* \u2500\u2500 \u963f\u8f1d\u7684\u5f71\u7247:\u63a5\u5728\u300c\u70ba\u4ec0\u9ebc\u662f\u96f7\u516c\uff1f\u300d\u7684\u5b57\u4e0b\u9762,\u540c\u4e00\u5340\u3001\u540c\u4e00\u6b04\u5bec(10-29 Shawn:\u300c\u4e0b\u9762\u5c31\u76f4\u63a5\u4e00\u500b\u5f71\u7247\u300d),\n   15px \u5713\u89d2(\u4ed6\u6307\u5b9a)\u3002\u6309\u4e86\u624d\u63db\u6210 YouTube(JS \u5728\u300c\u963f\u8f1d\u7684\u5f71\u7247\u300d\u90a3\u6bb5)\u3002\n   \u540c\u4e00\u5929\u8a66\u904e\u3001\u4ed6\u89ba\u5f97\u602a\u7684:\u53e6\u5916\u4e00\u5340 + \u6731\u7d05\u90a3\u53e5\u7576\u6a19\u984c(\u660e\u9ad4\u3001\u9ed1\u9ad4\u90fd\u8a66\u4e86)\u3001\u653e\u5728\u5916\u639b\u622a\u5716\u90a3\u7a2e\u677f\u5b50\u4e0a\u3002\n   \u6545\u4e8b\u6700\u5f8c\u90a3\u53e5\u6731\u7d05\u7684\u5b57(10-28 \u52a0\u7684\u300c\u9019\u662f\u4e00\u5957,\u627f\u8f09\u4e86\u963f\u8f1d\u2026\u2026\u7684\u9f13\u8072\u300d)\u4e5f\u62ff\u6389\u4e86:Shawn\u300c\u5b57\u597d\u591a,\u5f71\u7247\u88e1\u9762\u6709\u8b1b\u300d \u2500\u2500 *\/\n#thundergod-lp .tg-film-frame { margin: clamp(40px, 5vw, 64px) auto 0; }\n#thundergod-lp .tg-film-play, #thundergod-lp .tg-film-iframe {\n  display: block; position: relative; width: 100%; height: auto; aspect-ratio: 16 \/ 9; overflow: hidden;\n  border: 0; border-radius: 15px; background: #000;\n}\n#thundergod-lp .tg-film-play img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.25s ease; }\n#thundergod-lp .tg-film-play:hover img { filter: brightness(0.86); }\n\/* \u64ad\u653e\u9375 = \u8cfc\u8cb7\u9375\u90a3\u7a2e\u6731\u7d05\u9375\u5e3d,\u4e09\u89d2\u5f62\u7528\u6df1\u8272(\u6731\u7d05\u4e0a\u767d\u5b57\u53ea\u6709 3.5:1,\u6df1\u8272 5.1:1,\u5916\u639b\u5b9a\u7684)\u3002\n   \u5916\u5708\u4e00\u5708\u6697\u5f71:\u5c01\u9762\u4e2d\u9593\u662f\u7070\u896f\u886b,\u6731\u7d05\u8ddf\u5b83\u7684\u4eae\u5ea6\u5dee\u4e0d\u591a,\u6c92\u6709\u9019\u5708\u908a\u7de3\u6703\u7cca\u3002\n   \u653e\u5728 56% \u4e0d\u653e\u6b63\u4e2d\u9593:\u4e0b\u5df4\u5728\u5c01\u9762 37% \u7684\u9ad8\u5ea6,\u624b\u6a5f\u4e0a\u9375\u4f54\u5c01\u9762\u4e09\u6210\u9ad8,\u653e\u6b63\u4e2d\u9593\u6703\u58d3\u5230\u4e0b\u5df4 *\/\n#thundergod-lp .tg-film-btn {\n  position: absolute; left: 50%; top: 56%; width: clamp(64px, 8vw, 88px); height: clamp(64px, 8vw, 88px);\n  display: flex; align-items: center; justify-content: center;\n  border-radius: 50%; color: var(--tg-keytext);\n  background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent));\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.28), 0 0 0 6px rgba(13,14,15,0.38), 0 14px 28px -10px rgba(0,0,0,0.8);\n  transform: translate(-50%, -50%); transition: transform 0.2s ease;\n}\n#thundergod-lp .tg-film-play:hover .tg-film-btn { transform: translate(-50%, -50%) scale(1.06); }\n#thundergod-lp .tg-film-play:active .tg-film-btn { transform: translate(-50%, -50%) scale(0.97); }\n#thundergod-lp .tg-film-btn svg { width: 42%; height: 42%; margin-left: 6%; fill: currentColor; }\n\/* \u7247\u9577\u653e\u5728\u5916\u639b\u90a3\u7a2e\u51f9\u9032\u53bb\u7684\u5c0f\u986f\u793a\u7a97\u88e1 *\/\n#thundergod-lp .tg-film-len {\n  position: absolute; right: 12px; bottom: 12px; padding: 6px 9px 5px;\n  font-size: 14px; font-weight: 500; line-height: 1; letter-spacing: 0.04em; color: var(--tg-text);\n  background: var(--tg-display); border: 1px solid rgba(255,255,255,0.08); border-radius: 4px;\n}\n@media (prefers-reduced-motion: reduce) {\n  #thundergod-lp .tg-film-play img, #thundergod-lp .tg-film-btn { transition: none; }\n}\n\n\/* \u2500\u2500 \u6bcf\u4e00\u9846\u9f13\u90fd\u53ef\u4ee5\u8abf:\u5716\u5728\u5de6\u3001\u5b57\u5728\u53f3 \u2500\u2500 *\/\n#thundergod-lp .tg-kit-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: center; }\n#thundergod-lp .tg-kit-grid .tg-shot { margin-top: 0; }\n#thundergod-lp .tg-facts { margin-top: 28px; display: grid; gap: 0; border-top: 1px solid var(--tg-line); }\n#thundergod-lp .tg-facts li { display: grid; grid-template-columns: 72px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--tg-line); font-size: 16px; line-height: 1.65; }\n#thundergod-lp .tg-facts .tg-label { padding-top: 4px; }\n\/* \u9019\u5169\u8655\u7684\u6a19\u7c64\u662f\u4e2d\u6587(\u97f3\u91cf\u3001\u97f3\u6e96\u3001\u9f13\u7d44\u2026):12 \u9ede\u7684\u82f1\u6587\u5927\u5beb\u6a19\u7c64\u63db\u6210\u4e2d\u6587\u592a\u5c0f *\/\n#thundergod-lp .tg-facts .tg-label { font-size: 14px; letter-spacing: 0.04em; }\n\n\/* \u2500\u2500 \u5206\u8ecc \u2500\u2500 *\/\n#thundergod-lp .tg-multi-grid { display: grid; grid-template-columns: 5fr 6fr; gap: 56px; align-items: center; }\n#thundergod-lp .tg-outs { background: var(--tg-slab); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; padding: 6px 18px; }\n#thundergod-lp .tg-outs th, #thundergod-lp .tg-outs td { padding: 11px 0; border-bottom: 1px solid var(--tg-line); font-size: 15px; line-height: 1.4; }\n#thundergod-lp .tg-outs tr:last-child th, #thundergod-lp .tg-outs tr:last-child td { border-bottom: 0; }\n#thundergod-lp .tg-outs th { font-family: var(--tg-latin); font-weight: 600; letter-spacing: 0.04em; width: 58%; padding-right: 16px; color: var(--tg-text); }\n#thundergod-lp .tg-outs td { font-family: var(--tg-latin); color: var(--tg-dim); font-variant-numeric: tabular-nums; }\n#thundergod-lp .tg-outs-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0 10px; border-bottom: 1px solid var(--tg-line); }\n#thundergod-lp .tg-multi-key { min-height: 40px; padding: 0 16px; font-size: 14px; }\n#thundergod-lp .tg-multi-key[aria-pressed=\"true\"] {\n  color: var(--tg-keytext);\n  background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent));\n  border-color: #8E2F14;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 0 rgba(0,0,0,0.4);\n}\n#thundergod-lp .tg-out { display: inline-block; transition: color 200ms ease; }\n#thundergod-lp .tg-outs[data-multi=\"on\"] .tg-out { color: var(--tg-text); }\n#thundergod-lp .tg-out.tg-flip { animation: tg-outflip 360ms ease-out; }\n@keyframes tg-outflip { 0% { opacity: 0; transform: translateY(-8px); } 100% { opacity: 1; transform: none; } }\n\n\/* \u2500\u2500 \u96fb\u5b50\u9f13\u8207 MIDI \u2500\u2500 *\/\n#thundergod-lp .tg-edrum-grid { display: grid; grid-template-columns: 6fr 5fr; gap: 48px 56px; margin-top: 56px; align-items: start; }\n#thundergod-lp .tg-edrum-grid .tg-shot { margin-top: 0; }\n#thundergod-lp .tg-edrum-list { display: grid; gap: 24px; }\n#thundergod-lp .tg-edrum-list h3 { font-size: 19px; font-weight: 700; line-height: 1.4; }\n#thundergod-lp .tg-edrum-list p { margin-top: 6px; color: var(--tg-dim); font-size: 16px; line-height: 1.7; }\n#thundergod-lp .tg-brands { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px 56px; }\n#thundergod-lp .tg-brands p { margin-top: 10px; font-family: var(--tg-latin); font-size: 15px; line-height: 1.85; color: var(--tg-text); }\n\/* \u90a3\u53e5\u662f\u8ce3\u9ede(Shawn 10-24:\u4e0d\u7528\u81ea\u5df1\u8abf MIDI \u9375\u4f4d),\u7528\u6b63\u6587\u7684\u5927\u5c0f;\u54c1\u724c\u6e05\u55ae\u6536\u5728\u4e0b\u9762\u7684\u300c\u770b\u652f\u63f4\u7684\u2026\u300d\u88e1 *\/\n#thundergod-lp .tg-brands-note { margin-top: 48px; font-size: 17px; line-height: 1.75; color: var(--tg-text); max-width: 40em; }\n#thundergod-lp .tg-brands-more { margin-top: 16px; border-top: 1px solid var(--tg-line); border-bottom: 1px solid var(--tg-line); }\n#thundergod-lp .tg-brands-more summary {\n  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px;\n  min-height: 52px; padding: 12px 0; font-size: 16px; font-weight: 700; color: var(--tg-text);\n}\n#thundergod-lp .tg-brands-more summary::-webkit-details-marker { display: none; }\n#thundergod-lp .tg-brands-more summary::after {\n  content: \"\"; width: 9px; height: 9px; border-right: 2px solid var(--tg-dim); border-bottom: 2px solid var(--tg-dim);\n  transform: rotate(45deg) translateY(-3px); transition: transform 160ms ease;\n}\n#thundergod-lp .tg-brands-more[open] summary::after { transform: rotate(-135deg) translateY(-1px); }\n#thundergod-lp .tg-brands-more .tg-brands { margin: 0 0 24px; }\n\n\/* \u2500\u2500 \u898f\u683c\u3001\u8a55\u50f9\u3001\u5e38\u898b\u554f\u984c(10-28,Shawn \u9078 B1):\u898f\u683c\u63a5\u5728\u529f\u80fd\u4ecb\u7d39\u5f8c\u9762,\u4e00\u6a23\u662f\u6df1\u8272;\u8a55\u50f9\u548c\u5e38\u898b\u554f\u984c\u662f\u6574\u9801\u552f\u4e00\u7684\u7c73\u767d\u5340\u584a\u3002\n   \u4e09\u500b\u7684\u5f62\u72c0\u4e0d\u4e00\u6a23:\u898f\u683c\u4e00\u683c\u4e00\u683c\u3001\u8a55\u50f9\u4e00\u6392\u5361\u7247\u3001\u5e38\u898b\u554f\u984c\u4e00\u689d\u4e00\u689d,\u5e95\u8272\u4e00\u6a23\u4e5f\u5206\u5f97\u51fa\u4f86\u3002\n   \u7f6e\u4e2d\u7684\u6b04(Shawn 10-24:\u5e38\u898b\u554f\u984c\u7e2e\u5728\u5de6\u908a\u5f88\u96e3\u770b) \u2500\u2500 *\/\n#thundergod-lp .tg-col { max-width: 860px; margin: 0 auto; }\n#thundergod-lp .tg-col h2 { text-align: center; }\n\/* \u898f\u683c:\u5169\u6b04,\u6bcf\u4e00\u683c\u4e0a\u9762\u4e00\u689d\u7dda\u3001\u5c0f\u6a19\u5728\u4e0a\u3001\u5167\u5bb9\u5728\u4e0b,\u7b2c\u4e00\u6392\u7684\u7dda\u7c97\u4e00\u9ede\u6536\u4f4f\u6574\u5f35\u8868(Teenage Engineering \u7684\u898f\u683c\u4e5f\u662f\u9ed1\u5e95\u4e0a\u7684\u7dda)\u3002\n   10-25 \u5230 10-27 \u662f\u4e00\u6574\u5f35\u9ed1\u8272\u9762\u677f(10-28 Shawn:\u770b\u4e45\u4e86\u6709\u9ede\u919c) *\/\n#thundergod-lp .tg-specs { margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }\n#thundergod-lp .tg-specs > div { padding: 20px 0 26px; border-top: 1px solid var(--tg-line); }\n#thundergod-lp .tg-specs > div:nth-child(-n+2) { border-top: 2px solid var(--tg-text); }\n#thundergod-lp .tg-specs .tg-specs-wide { grid-column: 1 \/ -1; }\n#thundergod-lp .tg-specs dt { font-size: 14px; font-weight: 700; letter-spacing: 0.04em; line-height: 1.4; color: var(--tg-dim); }\n#thundergod-lp .tg-specs dd { margin: 8px 0 0; font-size: 17px; line-height: 1.65; word-break: keep-all; overflow-wrap: anywhere; text-wrap: pretty; }\n#thundergod-lp .tg-faq-list { margin-top: 40px; border-top: 2px solid var(--tg-text); }\n#thundergod-lp .tg-faq-list details { border-bottom: 1px solid var(--tg-line); }\n#thundergod-lp .tg-faq-list summary {\n  list-style: none; cursor: pointer;\n  display: flex; justify-content: space-between; align-items: center; gap: 20px;\n  padding: 22px 0; min-height: 44px;\n  font-size: 18px; font-weight: 700; line-height: 1.5;\n}\n#thundergod-lp .tg-faq-list summary::-webkit-details-marker { display: none; }\n#thundergod-lp .tg-faq-list summary::after {\n  content: \"\"; flex: none; width: 10px; height: 10px; margin-right: 4px;\n  border-right: 2px solid var(--tg-dim); border-bottom: 2px solid var(--tg-dim);\n  transform: rotate(45deg) translateY(-3px); transition: transform 160ms ease;\n}\n#thundergod-lp .tg-faq-list details[open] summary::after { transform: rotate(-135deg) translateY(-1px); }\n#thundergod-lp .tg-faq-list .tg-a { padding: 0 0 24px; color: var(--tg-dim); }\n#thundergod-lp .tg-faq-list .tg-a p + p { margin-top: 12px; }\n\n\/* \u2500\u2500 \u8a55\u50f9(Shawn 10-27\u300c\u7167\u864e\u723a\u300d;10-28 \u8d77\u5728\u898f\u683c\u5f8c\u9762\u3001\u8ddf\u5e38\u898b\u554f\u984c\u540c\u4e00\u584a\u7c73\u767d):\u5361\u7247\u548c\u8868\u55ae\u662f\u7db2\u7ad9\u7684\u8a55\u50f9\u77ed\u78bc\u586b\u7684(thundergod-landing.php)\u3002\n   \u9019\u88e1\u4e0d\u80fd\u5beb\u77ed\u78bc\u7684\u65b9\u62ec\u865f:\u7db2\u7ad9\u6574\u4efd\u8dd1 do_shortcode,\u8a3b\u89e3\u88e1\u7684\u4e5f\u6703\u5c55\u958b,\u8a55\u50f9\u5c31\u8dd1\u9032 CSS \u8a3b\u89e3\u88e1,\u5ba2\u4eba\u6253\u300c*\u300d\u300c\/\u300d\u5c31\u80fd\u6539\u6a23\u5f0f\u3002\n   \u6c92\u6709\u8a55\u50f9\u3001\u4e5f\u6c92\u6709\u8868\u55ae(\u9084\u6c92\u4eba\u8cb7\u3001\u6216\u770b\u7684\u4eba\u6c92\u8cb7\u904e)= \u6574\u5340\u6536\u8d77\u4f86,\u4e0d\u64fa\u4e00\u500b\u7a7a\u6a19\u984c \u2500\u2500 *\/\n#thundergod-lp .tg-voice:not(:has(.tg-review, #review_form)) { display: none; }\n\/* \u4e00\u6392\u7d19\u5361(\u50cf Output \u7684 Reviews are in):\u6bd4\u5167\u6587\u7684\u6b04\u5bec,\u4e00\u6392\u653e\u5f97\u4e0b 5 \u5247,\u591a\u7684\u63db\u4e0b\u4e00\u6392\u3002\n   \u5b57\u5728\u4e0a\u3001\u540d\u5b57\u5728\u4e0b\u9762\u5c0d\u9f4a(\u5361\u7247\u4e00\u6a23\u9ad8,\u77ed\u7684\u8a55\u50f9\u4e0b\u9762\u7559\u767d,\u4e0d\u6703\u9ad8\u9ad8\u4f4e\u4f4e)\u3002\u53ea\u6709\u4e00\u5247\u6642\u7f6e\u4e2d *\/\n#thundergod-lp .tg-voice-in { max-width: 1280px; text-align: center; }\n#thundergod-lp .tg-reviews { margin-top: 48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; text-align: left; }\n#thundergod-lp .tg-reviews:has(> .tg-review:only-child) { max-width: 420px; margin-inline: auto; }\n#thundergod-lp .tg-review {\n  display: flex; flex-direction: column;\n  margin: 0; padding: 24px 22px 20px;\n  background: var(--tg-slab); border: 1px solid var(--tg-line); border-radius: 8px;\n}\n\/* \u661f\u661f\u548c\u300c\u5df2\u8cfc\u8cb7\u300d\u7528\u6df1\u4e00\u9ede\u7684\u6731\u7d05:\u6dfa\u5e95\u4e0a\u539f\u672c\u7684\u6731\u7d05\u53ea\u6709 2.9:1(\u661f\u661f 4.5:1\u3001\u300c\u5df2\u8cfc\u8cb7\u300d\u7684\u5b57 5.8:1) *\/\n#thundergod-lp .tg-review-stars { display: flex; gap: 3px; margin-bottom: 14px; }\n#thundergod-lp .tg-review-stars svg { width: 15px; height: 15px; fill: var(--tg-line); }\n#thundergod-lp .tg-review-stars svg.is-on { fill: #C2461C; }\n#thundergod-lp .tg-review-text { font-size: 17px; line-height: 1.75; white-space: pre-line; overflow-wrap: anywhere; margin-bottom: 18px; }\n#thundergod-lp .tg-review-by {\n  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;\n  margin-top: auto; padding-top: 14px; border-top: 1px solid var(--tg-line);\n}\n#thundergod-lp .tg-review-by b { font-size: 15px; font-weight: 700; }\n#thundergod-lp .tg-review-ok {\n  font-size: 12px; font-weight: 600; letter-spacing: 0.04em; line-height: 1;\n  color: #9E3714; background: rgba(233,89,47,0.08); border: 1px solid rgba(233,89,47,0.45);\n  border-radius: 4px; padding: 4px 8px;\n}\n#thundergod-lp .tg-review-note { margin-top: 8px; text-align: center; color: var(--tg-dim); font-size: 15px; }\n#thundergod-lp .tg-review-note a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }\n\/* \u8868\u55ae = WooCommerce \u7684 comment_form;\u661f\u661f\u662f WooCommerce \u5546\u54c1\u9801\u7684 JS \u5f9e select \u63db\u51fa\u4f86\u7684\u3002\n   \u5728\u7c73\u767d\u5340\u584a\u88e1:\u8f38\u5165\u6846\u662f\u6dfa\u8272,\u6846\u7dda\u5c0d\u7c73\u767d\u5e95 3:1(\u770b\u5f97\u51fa\u54ea\u88e1\u53ef\u4ee5\u6253\u5b57) *\/\n#thundergod-lp .tg-review-form-slot { max-width: 560px; margin: 32px auto 0; }\n#thundergod-lp .tg-review-form .comment-reply-title { display: block; margin-bottom: 18px; text-align: center; font-size: 20px; font-weight: 700; }\n#thundergod-lp .tg-review-form p { margin: 0 0 14px; }\n#thundergod-lp .tg-review-form label { display: block; margin-bottom: 6px; font-size: 14px; color: var(--tg-dim); }\n#thundergod-lp .tg-review-form input[type=\"text\"], #thundergod-lp .tg-review-form input[type=\"email\"],\n#thundergod-lp .tg-review-form textarea, #thundergod-lp .tg-review-form select {\n  width: 100%; box-sizing: border-box; padding: 10px 14px;\n  font: inherit; font-size: 16px; color: var(--tg-text);\n  background: #FBFAF7; border: 1px solid #8C8478; border-radius: 6px;\n}\n#thundergod-lp .tg-review-form textarea { min-height: 120px; resize: vertical; }\n#thundergod-lp .tg-review-form :is(input, textarea, select):focus-visible { outline: 2px solid var(--tg-accent); outline-offset: 1px; }\n#thundergod-lp .tg-review-form p.stars { margin: 0 0 8px !important; padding: 0 !important; text-indent: 0 !important; }\n#thundergod-lp .tg-review-form p.stars a { margin-left: 0 !important; color: #C2461C; }\n#thundergod-lp .tg-review-form .form-submit { margin-top: 8px; text-align: center; }\n#thundergod-lp .tg-review-form .form-submit input[type=\"submit\"] {\n  min-height: 48px; padding: 0 28px; cursor: pointer;\n  font-family: var(--tg-latin); font-size: 16px; font-weight: 600; letter-spacing: 0.03em; line-height: 1;\n  color: var(--tg-keytext); background: linear-gradient(180deg, var(--tg-accent-hi), var(--tg-accent));\n  border: 1px solid #8E2F14; border-radius: 5px;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 1px 0 rgba(0,0,0,0.4);\n}\n\n\/* \u2500\u2500 \u6536\u5c3e:\u96f7\u516c\u6eff\u7248(Shawn 10-24:\u5de6\u53f3\u4e0d\u8981\u7559\u9ed1\u908a) \u2500\u2500 *\/\n#thundergod-lp .tg-end { position: relative; padding: 0 0 128px; text-align: center; }\n\/* \u6a19\u984c\u758a\u5728\u756b\u7684\u4e0b\u7de3:\u4e0b\u9762 30% \u8981\u5920\u6697,\u767d\u5b57\u624d\u770b\u5f97\u6e05\u695a(\u6dfa\u8272\u7684\u96f2\u4e0a\u767d\u5b57\u5c0d\u6bd4\u4e0d\u5920) *\/\n#thundergod-lp .tg-end-art img {\n  width: 100%; max-width: none;\n  -webkit-mask-image: linear-gradient(0deg, transparent 0, transparent 6%, rgba(0,0,0,0.3) 30%, #000 72%);\n  mask-image: linear-gradient(0deg, transparent 0, transparent 6%, rgba(0,0,0,0.3) 30%, #000 72%);\n}\n#thundergod-lp .tg-end-text { margin-top: -12vw; position: relative; }\n#thundergod-lp .tg-end .tg-h1-zh { font-size: clamp(72px, 8vw, 120px); }\n#thundergod-lp .tg-end .tg-h1-en { color: var(--tg-dim); }\n#thundergod-lp .tg-end .tg-offer, #thundergod-lp .tg-end .tg-buy { justify-content: center; }\n#thundergod-lp .tg-end .tg-offer { margin-top: 36px; }\n\n\/* \u2500\u2500 \u5e38\u99d0\u8cfc\u8cb7\u5217(\u7167\u864e\u723a\u7684 tb-buybar,Shawn 10-28):\u6d6e\u5728\u756b\u9762\u6700\u4e0b\u9762(fixed),\u96fb\u8166\u3001\u624b\u6a5f\u90fd\u6709\u3002\n   \u6372\u5230\u300c\u70ba\u4ec0\u9ebc\u662f\u96f7\u516c\u300d\u624d\u51fa\u73fe(Hero \u7684\u8cfc\u8cb7\u9375\u6372\u51fa\u756b\u9762\u4e0a\u65b9\u4e4b\u5f8c,\u4e0d\u7136\u540c\u4e00\u500b\u50f9\u683c\u548c\u6309\u9215\u6703\u51fa\u73fe\u5169\u6b21);\n   \u6372\u5230\u6700\u5f8c\u90a3\u500b\u8cfc\u8cb7\u5340(\u5e38\u898b\u554f\u984c\u4e0b\u9762\u3001\u6536\u5c3e\u90a3\u5340\u7684\u50f9\u683c\u5361)\u9032\u5230\u756b\u9762\u3001\u6216\u5df2\u7d93\u6372\u904e\u5b83,\u5c31\u6536\u8d77\u4f86,\u5f80\u56de\u6372\u518d\u51fa\u73fe\u3002\n   \u6536\u5c3e\u90a3\u5340\u662f\u9801\u9762\u6700\u5f8c\u4e00\u584a,\u6240\u4ee5\u4e0d\u6703\u84cb\u5230\u7db2\u7ad9\u7684\u9801\u5c3e\u3002\n   10-28 \u4ee5\u524d\u662f sticky:\u7db2\u7ad9\u4e3b\u984c\u5728\u624b\u6a5f\u4e0a\u6703\u8b93\u5b83\u9ecf\u4e0d\u4f4f(Shawn:\u624b\u6a5f\u6c92\u51fa\u73fe);\u864e\u723a\u4e00\u76f4\u662f fixed,\u540c\u4e00\u500b\u4e3b\u984c\u6c92\u554f\u984c\u3002\n   z-index \u6bd4\u7db2\u7ad9\u7684\u5ba2\u670d\u6ce1\u6ce1(9999)\u4f4e\u4e00\u9ede,\u6ce1\u6ce1\u5728\u8cfc\u8cb7\u5217\u51fa\u73fe\u6642\u5f80\u4e0a\u79fb(\u6700\u4e0b\u9762\u90a3\u6bb5 CSS)\u3002\n   \u96b1\u85cf\u898f\u5247\u639b\u5728 .tg-js \u5e95\u4e0b:JS \u6c92\u8dd1\u5c31\u4e00\u76f4\u986f\u793a(\u5be7\u53ef\u4e00\u76f4\u5728,\u4e5f\u4e0d\u8981\u6c38\u9060\u4e0d\u898b)\u3002 \u2500\u2500 *\/\n#thundergod-lp .tg-bar {\n  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;\n  background: rgba(21,22,24,0.94);\n  border-top: 1px solid #34363B;\n  color: #ECE8E1;\n  padding-bottom: env(safe-area-inset-bottom, 0px);    \/* iPhone \u5e95\u90e8\u7684\u6a6b\u689d\u4e0d\u8981\u84cb\u5230\u8cfc\u8cb7\u9375 *\/\n  transition: transform 220ms ease, opacity 220ms ease;\n}\n#thundergod-lp .tg-bar-in { display: flex; align-items: center; gap: 16px; min-height: 72px; }\n#thundergod-lp .tg-bar-name { flex: 1; min-width: 0; font-weight: 700; font-size: 17px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n#thundergod-lp .tg-bar-name span { font-family: var(--tg-latin); font-weight: 600; color: #A39E95; margin-left: 8px; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; }\n#thundergod-lp .tg-bar .tg-display { padding: 8px 12px; }\n#thundergod-lp .tg-bar .tg-display-value { font-size: 18px; }\n#thundergod-lp.tg-js .tg-bar:not(.tg-bar-on) { transform: translateY(100%); opacity: 0; pointer-events: none; visibility: hidden; }\n\/* \u7db2\u7ad9\u7684\u5ba2\u670d\u6ce1\u6ce1(\u9801\u5c3e\u7684 Elementor \u5143\u4ef6 7a3cdcb,\u53f3\u4e0b\u89d2,\u96e2\u5e95 36 \/ 83 \/ 50 \u9ede = \u96fb\u8166 \/ \u5e73\u677f \/ \u624b\u6a5f):\u8cfc\u8cb7\u5217\u51fa\u73fe\u6642\u5f80\u4e0a\u79fb,\n   \u4e0d\u8981\u84cb\u5230\u300c\u8cfc\u8cb7\u300d(Shawn 10-28)\u3002\u9078\u64c7\u5668\u5728 #thundergod-lp \u5916\u9762(\u6ce1\u6ce1\u662f\u4e3b\u984c\u7684),\u4f46\u53ea\u6709\u9019\u4e00\u9801\u6709\u9019\u6bb5 CSS,\n   html.tg-bar-shown \u662f\u4e0b\u9762\u7684 JS \u52a0\u7684\u3002\u9801\u5c3e\u91cd\u505a\u3001\u5143\u4ef6\u7de8\u865f\u63db\u4e86,\u9019\u6bb5\u5c31\u8981\u8ddf\u8457\u6539 *\/\n.elementor-element.elementor-element-7a3cdcb { transition: bottom 220ms ease; }\nhtml.tg-bar-shown .elementor-element.elementor-element-7a3cdcb { bottom: 92px !important; }\n@media (max-width: 640px) {\n  html.tg-bar-shown .elementor-element.elementor-element-7a3cdcb { bottom: 80px !important; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  #thundergod-lp .tg-key, #thundergod-lp .tg-bar, #thundergod-lp .tg-faq-list summary::after { transition: none; }\n  #thundergod-lp.tg-js .tg-reveal { opacity: 1; transform: none; transition: none; }\n  #thundergod-lp .tg-stage-lit img.tg-hit, #thundergod-lp .tg-stage-lit img.tg-tap { animation-duration: 1ms; }\n}\n\n\/* \u2500\u2500 \u5e73\u677f \u2500\u2500 *\/\n@media (max-width: 1023px) {\n  #thundergod-lp .tg-mixer-head, #thundergod-lp .tg-kit-grid,\n  #thundergod-lp .tg-multi-grid, #thundergod-lp .tg-edrum-grid, #thundergod-lp .tg-brands { grid-template-columns: 1fr; }\n  #thundergod-lp .tg-pads { grid-template-columns: repeat(4, 1fr); }\n}\n\n\/* \u2500\u2500 \u624b\u6a5f \u2500\u2500 *\/\n@media (max-width: 640px) {\n  #thundergod-lp { font-size: 16px; --tg-gutter: 16px; --tg-sec-pad: 88px; }\n  #thundergod-lp .tg-sub { font-size: 17px; }\n  #thundergod-lp .tg-lead { font-size: 17px; }\n  #thundergod-lp .tg-offer .tg-display { flex: 1 1 100%; }\n  #thundergod-lp .tg-buy .tg-key { flex: 1 1 auto; }\n  #thundergod-lp .tg-console { padding: 14px; }\n  #thundergod-lp .tg-player { grid-template-columns: auto 1fr; gap: 12px; }\n  #thundergod-lp .tg-genres { grid-template-columns: repeat(2, 1fr); }\n  #thundergod-lp .tg-time { grid-column: 1 \/ -1; justify-self: start; }\n  #thundergod-lp .tg-play { width: 56px; height: 56px; min-height: 56px; }\n  #thundergod-lp .tg-wave { height: 56px; gap: 1px; padding: 8px; }\n  #thundergod-lp .tg-links { grid-template-columns: 1fr; }\n  #thundergod-lp .tg-facts li { grid-template-columns: 1fr; gap: 4px; }\n  #thundergod-lp .tg-reviews { grid-template-columns: 1fr; }\n  #thundergod-lp .tg-review { padding: 22px 20px 18px; }\n  #thundergod-lp .tg-grooves { display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; }\n  #thundergod-lp .tg-grooves .tg-label { grid-column: 1 \/ -1; text-align: center; margin: 0; }\n  #thundergod-lp .tg-grooves .tg-key { padding: 0 6px; }\n  #thundergod-lp .tg-specs { grid-template-columns: 1fr; }\n  #thundergod-lp .tg-specs > div { padding: 16px 0 20px; }\n  #thundergod-lp .tg-specs > div:nth-child(2) { border-top: 1px solid var(--tg-line); }\n  #thundergod-lp .tg-bar-in { min-height: 64px; gap: 10px; }\n  #thundergod-lp .tg-bar-name span { display: none; }\n  #thundergod-lp .tg-bar .tg-key { padding: 0 16px; }\n  #thundergod-lp .tg-end-text { margin-top: -8vw; }\n  #thundergod-lp .tg-hero-text { margin-top: -2vw; }\n  \/* \u624b\u6a5f\u5bec\u5ea6\u4e0b 4:3 \u53ea\u6709 290 \u9ede\u9ad8,\u81c9\u592a\u5c0f:\u88c1\u6210\u6b63\u65b9\u5f62,\u5de6\u53f3\u7684\u624b\u5207\u6389\u4e00\u9ede *\/\n  #thundergod-lp .tg-hero-art { aspect-ratio: 1 \/ 1; }\n  #thundergod-lp .tg-hero-art img, #thundergod-lp .tg-hero-video { object-position: 50% 30%; }\n}\n@media (max-width: 380px) {\n  #thundergod-lp .tg-bar .tg-display { display: none; }\n}\n<\/style>\n<div id=\"thundergod-lp\">\n\n  <!-- \u2550\u2550\u2550 HERO \u2550\u2550\u2550 -->\n  <section class=\"tg-hero\" aria-labelledby=\"tg-title\">\n    <div class=\"tg-hero-art\">\n      <img fetchpriority=\"high\" decoding=\"async\" data-no-lazy=\"1\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/hero-kit.jpg?v=217ac89d\" width=\"2000\" height=\"1500\"\n           alt=\"\u7d05\u8272\u7684\u96f7\u516c\u5f9e\u96f2\u88e1\u5f80\u4e0b\u770b\uff0c\u96d9\u624b\u5305\u4f4f\u4e00\u5957\u6728\u7d0b\u9f13\u7d44\u3002\u9019\u662f\u96f7\u516c ThunderGod Drums \u7684\u9f13\u7d44\u9801\u3002\">\n      <!-- \u9f13\u5728\u6253\u7684\u5faa\u74b0\u5f71\u7247:src \u7531 JS \u5728\u9801\u9762\u8f09\u5b8c\u5f8c\u624d\u586b(\u4e0d\u62d6\u6162\u958b\u9801),\u9078\u5927\u6216\u5c0f\u7684\u6a94\u6848\u3002\u6e1b\u5c11\u52d5\u614b\u7684\u8a2d\u5b9a\u3001\u7701\u6d41\u91cf\u6a21\u5f0f\u4e0d\u8f09 -->\n      <video class=\"tg-hero-video\" muted loop playsinline preload=\"none\" aria-hidden=\"true\" tabindex=\"-1\"\n             data-src-large=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/video\/hero-loop-1920.mp4?v=a95d666d\" data-src-small=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/video\/hero-loop-1280.mp4?v=301c2bd5\"><\/video>\n    <\/div>\n    <button class=\"tg-key tg-motion\" type=\"button\" aria-pressed=\"false\" aria-label=\"\u66ab\u505c\u9f13\u7d44\u52d5\u756b\" hidden>\n      <svg class=\"tg-i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 4h4.5v16H6zM13.5 4H18v16h-4.5z\"\/><\/svg>\n      <svg class=\"tg-i-play\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 4.5v15l13-7.5z\"\/><\/svg>\n    <\/button>\n    <div class=\"tg-hero-text\">\n      <h1 class=\"tg-h1\" id=\"tg-title\">\n        <span class=\"tg-h1-zh\">\u96f7\u516c<\/span>\n        <span class=\"tg-h1-en\">ThunderGod Drums<\/span>\n      <\/h1>\n      <p class=\"tg-lead\">\u9304\u97f3\u5ba4\u7d1aMidi\u9f13\u7d44\u97f3\u6e90\uff0c\u6253\u958b\u5c31\u597d\u807d<br>\u591a\u66f2\u98a8\u9069\u7528\u3001\u5b8c\u5168\u514d\u6df7\u97f3<\/p>\n      <div class=\"tg-offer\" id=\"tg-hero-buy\">\n        <!-- \u50f9\u9322\u8ddf\u8457\u7db2\u7ad9\u7684 WooCommerce \u5546\u54c1 104023 \u8d70(Shawn 10-28):data-price \u7684\u5b57\u3001data-promo \u7684\u503c\u5728\u7db2\u7ad9\u7248\u63db\u6210 thundergod_price \u77ed\u78bc\n             (build-embed.py \u63db,\u77ed\u78bc\u5728 thundergod-landing.php)\u3002\u9019\u88e1\u5beb\u7684\u6578\u5b57\u53ea\u7d66\u672c\u6a5f\u9810\u89bd\u770b\u3002\u6539\u50f9\u9322\u5c31\u6539\u5546\u54c1,\u9801\u9762\u4e0d\u7528\u52d5\u3002\n             \u9996\u767c\u512a\u60e0\u50f9 2,199(11\/1\uff5e11\/30)\u300112\/1 \u8d77 3,199(Shawn 10-23 \u5b9a,\u9ed1\u4e94\u6d3b\u52d5\u8a73\u60c5.md)\u300212\/1 \u6539\u50f9\u7684\u7a0b\u5f0f\u5728\u4e3b\u6a5f\u7684 odr-promo-202611\/thundergod.sh\u3002\n             3,199 \u5283\u7dda\u3001\u5c0f\u6a19\u5beb\u300c31% Off\u300d\u662f Shawn 10-28 \u6c7a\u5b9a\u7684(10-23 \u4ed6\u5b9a\u904e\u4e0d\u5283\u7dda\u3001\u4e0d\u5beb\u6298\u6578:\u6c92\u6709\u7528 3,199 \u8ce3\u904e)\u3002\n             31% = (3,199 - 2,199) \/ 3,199 \u5f80\u4e0b\u53d6\u6574,\u77ed\u78bc\u7167\u5546\u54c1\u73fe\u5728\u7684\u50f9\u9322\u7b97;3,199 \u5beb\u5728 thundergod-landing.php \u7684 THUNDERGOD_LATER_PRICE\u3002\n             \u5546\u54c1\u7684\u50f9\u9322\u4e0d\u6bd4 3,199 \u4fbf\u5b9c\u4e86,data-promo \u5c31\u662f\u7a7a\u7684:\u5c0f\u6a19\u3001\u5283\u7dda\u3001\u5012\u6578\u6536\u8d77\u4f86(CSS),\u53ea\u5269\u50f9\u9322\u3002\n             \u8a3b\u89e3\u88e1\u4e0d\u8981\u5beb\u4e2d\u62ec\u865f\u5305\u8d77\u4f86\u7684\u77ed\u78bc\u540d\u7a31:\u7db2\u7ad9\u8f38\u51fa\u9019\u9801\u6642\u6703\u8dd1 do_shortcode,\u9023\u8a3b\u89e3\u88e1\u7684\u4e5f\u6703\u57f7\u884c -->\n        <div class=\"tg-display tg-offer-card\" data-promo=\"1\">\n          <div class=\"tg-price\">\n            <span class=\"tg-label\">\u9996\u767c\u512a\u60e0 <span data-price=\"off\">31<\/span>% Off !<\/span>\n            <span class=\"tg-price-row\"><span class=\"tg-display-value\" data-price=\"now\">NT$ 2,199<\/span><s class=\"tg-price-was\"><span class=\"tg-sr\">12\/1 \u8d77<\/span><span data-price=\"later\">NT$ 3,199<\/span><\/s><\/span>\n          <\/div>\n          <div class=\"tg-count\" data-deadline=\"2026-11-30T23:59:59+08:00\">\n            <span class=\"tg-sr\">\u9996\u767c\u512a\u60e0\u5230 11\/30 23:59<\/span>\n            <span class=\"tg-display-value tg-count-v\" aria-hidden=\"true\"><b data-u=\"d\">--<\/b><i>\u5929<\/i><b data-u=\"h\">--<\/b><i>\u6642<\/i><b data-u=\"m\">--<\/b><i>\u5206<\/i><b data-u=\"s\">--<\/b><i>\u79d2<\/i><\/span>\n            <span class=\"tg-count-end\">11\/30 23:59 \u7d50\u675f<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"tg-buy\">\n        <a class=\"tg-key tg-key-accent\" href=\"https:\/\/ourdaysrecords.com\/class\/checkout\/?fill_cart=104023\">\u8cfc\u8cb7\u96f7\u516c<\/a>\n      <\/div>\n      <p class=\"tg-compat\">Mac\u3001Win\u7686\u53ef\u7528 \u00b7 VST3\u3001AU\u3001AAX<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u70ba\u4ec0\u9ebc\u662f\u96f7\u516c(Shawn \u7684\u6bb5\u843d;10-24 \u8d77\u7f6e\u4e2d\u3001\u660e\u9ad4\u3001\u4e00\u53e5\u4e00\u53e5\u6de1\u5165,\u300a\u8ad6\u8861\u300b\u539f\u6587\u62ff\u6389) \u2550\u2550\u2550 -->\n  <section class=\"tg-story tg-sec tg-full\" aria-labelledby=\"tg-story-h\">\n    <div class=\"tg-wrap tg-story-in\">\n      <h2 id=\"tg-story-h\" class=\"tg-reveal\">\u70ba\u4ec0\u9ebc\u662f\u96f7\u516c\uff1f<\/h2>\n      <p class=\"tg-reveal\">\u300c\u96f7\u516c\uff0c\u4ed6\u662f\u50b3\u7d71\u795e\u660e\u4e2d\u638c\u7ba1\u6253\u96f7\u7684\u795e<br>\u53e4\u4eba\u76f8\u4fe1\uff0c\u6253\u96f7\u7684\u8072\u97f3\u5c31\u662f\u96f7\u516c\u5728\u6572\u9f13\u300d<\/p>\n      <p class=\"tg-reveal\">\u61c9\u8a72\u7b97\u662f\u53f2\u4e0a\u6700\u65e9\u7684\u9f13\u624b\u5427\uff08\u7b11<br>\u6240\u4ee5\u6211\u5011\u7528\u96f7\u516c\uff0c\u4f86\u4ee3\u8868\u9019\u6b21\u9f13\u7d44 Plugin \u7684\u610f\u8c61<\/p>\n      <!-- \u963f\u8f1d\u7684\u5f71\u7247(10-29 Shawn:\u6545\u4e8b\u4e0b\u9762\u300c\u76f4\u63a5\u4e00\u500b\u5f71\u7247\u300d\u300115px \u5713\u89d2)\u3002YouTube mFKHeZTgi4E,\u4e0d\u516c\u958b\u4e5f\u80fd\u5d4c\u3002\n           \u5c01\u9762\u662f\u5f71\u7247 8.4 \u79d2\u90a3\u4e00\u683c(film_poster.py),\u6309\u4e86\u624d\u63db\u6210 YouTube:\u9801\u9762\u4e00\u958b\u59cb\u4e0d\u7528\u8f09 YouTube \u7684\u7a0b\u5f0f\u3002\n           \u5c01\u9762\u672c\u8eab\u662f\u4e00\u689d\u9023\u7d50(\u7167\u864e\u723a):JS \u6c92\u8dd1\u7684\u6642\u5019\u76f4\u63a5\u9023\u53bb YouTube\u3002\u8ddf\u4e0a\u9762\u7684\u5b57\u4e00\u8d77\u6de1\u5165,\u6392\u5728\u6700\u5f8c\u4e00\u500b -->\n      <div class=\"tg-film-frame tg-reveal\">\n        <a class=\"tg-film-play\" href=\"https:\/\/www.youtube.com\/watch?v=mFKHeZTgi4E\" target=\"_blank\" rel=\"noopener\" data-yt=\"mFKHeZTgi4E\" data-title=\"\u65b0Plugin\u300a\u96f7\u516c\u300bThunderGod Drums\uff0c\u6253\u958b\u5c31\u80fd\u64c1\u6709\u8d85\u597d\u807d\u9f13\u8072\" aria-label=\"\u64ad\u653e\u5f71\u7247\uff1a\u65b0Plugin\u300a\u96f7\u516c\u300bThunderGod Drums\uff0c\u6253\u958b\u5c31\u80fd\u64c1\u6709\u8d85\u597d\u807d\u9f13\u8072\uff0857 \u79d2\uff09\">\n          <img loading=\"lazy\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/film-poster-1280.webp?v=ec2f09d2\" srcset=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/film-poster-1280.webp?v=ec2f09d2 1280w, https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/film-poster-1920.webp?v=7b453995 1920w\"\n               sizes=\"auto, (min-width: 900px) 820px, calc(100vw - 40px)\" width=\"1280\" height=\"720\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <span class=\"tg-film-btn\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" focusable=\"false\"><path d=\"M8 5.6v12.8a.8.8 0 0 0 1.2.7l10-6.4a.8.8 0 0 0 0-1.4l-10-6.4A.8.8 0 0 0 8 5.6z\"\/><\/svg><\/span>\n          <span class=\"tg-film-len tg-latin\" aria-hidden=\"true\">0:57<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u8a66\u807d(10-25 Shawn:\u63db\u6210\u4ed6\u505a\u7684\u56db\u7a2e\u66f2\u98a8,\u8b93\u5ba2\u4eba\u770b\u5230\u96f7\u516c\u4ec0\u9ebc\u66f2\u98a8\u90fd\u80fd\u7528;\u97f3\u91cf\u3001\u982d\u5c3e\u5728 make_style_demos.py) \u2550\u2550\u2550 -->\n  <section class=\"tg-listen tg-sec tg-full\" id=\"tg-listen\" aria-labelledby=\"tg-listen-h\">\n    <div class=\"tg-wrap tg-center\">\n      <h2 id=\"tg-listen-h\">\u4e0d\u540c\u66f2\u98a8\u90fd\u9069\u7528<\/h2>\n      <p class=\"tg-sub\">\u4e0b\u9762\u56db\u9996\u7684\u9f13\uff0c\u5168\u90e8\u90fd\u662f\u96f7\u516c\uff01\u9ede\u66f2\u98a8\u5c31\u80fd\u5207\u63db<\/p>\n      <div class=\"tg-console\">\n        <div class=\"tg-player\" data-state=\"idle\">\n          <div class=\"tg-genres\" role=\"group\" aria-label=\"\u9078\u66f2\u98a8\"><\/div>\n          <button class=\"tg-key tg-play\" type=\"button\" aria-label=\"\u64ad\u653e\u8a66\u807d\">\n            <svg class=\"tg-i-play\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 4.5v15l13-7.5z\"\/><\/svg>\n            <svg class=\"tg-i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 4h4.5v16H6zM13.5 4H18v16h-4.5z\"\/><\/svg>\n            <svg class=\"tg-i-wait\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 11h3v2H5zM10.5 11h3v2h-3zM16 11h3v2h-3z\"\/><\/svg>\n          <\/button>\n          <div class=\"tg-wave\" role=\"slider\" tabindex=\"0\" aria-label=\"\u8a66\u807d\u9032\u5ea6\" aria-valuemin=\"0\" aria-valuemax=\"30\" aria-valuenow=\"0\" aria-valuetext=\"0 \u79d2\"><\/div>\n          <div class=\"tg-display tg-time\" aria-hidden=\"true\"><span class=\"tg-display-value\"><span class=\"tg-t\">0:00<\/span> \/ <span class=\"tg-d\">0:30<\/span><\/span><\/div>\n          <ul class=\"tg-tracks\">\n            <li data-peaks=\"84,80,87,93,87,83,95,85,89,93,78,89,81,79,93,95,86,96,94,86,84,92,80,92,95,78,94,92,84,91,96,89,94,93,85,81,97,83,91,90,82,91,93,84,91,88,84,87,93,83,81,93,79,92,92,92,93,81,85,90,95,85,95,97,87,77,90,79,89,95,88,93,77,84,97,97,89,95,95,89,79,91,78,91,94,88,90,88,83,93,96,92,99,98,91,95,97,82,90,97,87,95,99,87,94,96,92,99,100,97,94,95,77,91,77,61,51,18,6,6\" data-len=\"28.5\">\n              <span class=\"tg-track-name\">Pop Rock<\/span>\n              <audio controls preload=\"none\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/styles\/pop-rock.mp3?v=a177ab53\">\u4f60\u7684\u700f\u89bd\u5668\u4e0d\u80fd\u64ad\u653e\u97f3\u6a94\u3002<\/audio>\n            <\/li>\n            <li data-peaks=\"80,45,37,75,57,33,78,76,37,79,75,79,48,76,76,33,16,73,56,28,77,76,37,77,74,78,54,76,90,82,50,84,85,83,87,94,86,87,90,90,79,90,89,76,80,89,86,81,91,97,84,93,91,94,85,91,100,83,44,72,92,83,88,91,85,93,88,94,79,85,88,80,82,87,92,86,90,91,84,94,86,91,95,96,96,88,58,70,97,88,95,93,89,87,81,100,89,92,90,83,78,83,91,85,89,91,91,93,83,94,85,85,80,56,6,6,37,11,6,6\" data-len=\"22.8\">\n              <span class=\"tg-track-name\">Indie Rock<\/span>\n              <audio controls preload=\"none\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/styles\/indie-rock.mp3?v=51ce76c2\">\u4f60\u7684\u700f\u89bd\u5668\u4e0d\u80fd\u64ad\u653e\u97f3\u6a94\u3002<\/audio>\n            <\/li>\n            <li data-peaks=\"36,92,89,99,83,97,96,87,95,86,98,96,88,90,80,94,92,80,91,96,92,92,85,89,82,94,88,83,94,80,90,91,93,96,85,95,93,83,93,81,91,91,84,97,84,97,97,92,96,85,92,93,85,89,79,96,96,93,96,97,91,93,85,92,83,92,89,81,88,85,87,89,95,89,85,89,90,79,93,79,88,89,88,93,86,95,97,83,95,91,93,96,85,88,90,88,93,90,93,100,94,94,83,90,90,88,90,81,94,89,87,98,94,63,38,18,15,6,6,6\" data-len=\"24.89\">\n              <span class=\"tg-track-name\">J-Rock<\/span>\n              <audio controls preload=\"none\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/styles\/j-rock.mp3?v=81a0b853\">\u4f60\u7684\u700f\u89bd\u5668\u4e0d\u80fd\u64ad\u653e\u97f3\u6a94\u3002<\/audio>\n            <\/li>\n            <li data-peaks=\"87,83,87,93,88,92,91,84,91,83,85,82,90,97,91,94,85,96,99,92,89,91,100,94,94,81,84,94,97,91,91,93,87,95,90,85,93,93,92,90,91,86,96,92,83,93,90,88,98,87,82,96,96,90,89,90,88,87,91,87,94,96,87,95,86,96,97,93,89,91,96,92,94,86,91,96,95,85,86,95,87,90,90,91,89,90,87,88,92,85,92,90,90,88,89,88,83,74,71,81,85,85,74,74,83,74,56,43,59,55,49,43,43,41,24,6,6,6,6,6\" data-len=\"14.3\">\n              <span class=\"tg-track-name\">Metal<\/span>\n              <audio controls preload=\"none\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/styles\/metal.mp3?v=02587e42\">\u4f60\u7684\u700f\u89bd\u5668\u4e0d\u80fd\u64ad\u653e\u97f3\u6a94\u3002<\/audio>\n            <\/li>\n          <\/ul>\n          <p class=\"tg-player-msg\" role=\"status\" aria-live=\"polite\"><\/p>\n        <\/div>\n      <\/div>\n      <p class=\"tg-listen-note\">\u8d95\u5feb\u4f86\u807d\u770b\u770b<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u9ede\u9f13\u5c31\u97ff(10-24 \u53d6\u4ee3\u539f\u672c\u7684\u8a0a\u865f\u6d41\u7a0b\u5716) \u2550\u2550\u2550 -->\n  <section class=\"tg-stage tg-sec tg-full\" id=\"tg-stage\" aria-labelledby=\"tg-stage-h\"\n           data-lit=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/kit-lit\/\" data-audio=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/kit3\/\">\n    <div class=\"tg-wrap tg-center\">\n      <h2 id=\"tg-stage-h\">\u5c08\u6ce8\u5275\u4f5c\uff0c\u6df7\u97f3\u5e6b\u4f60\u505a\u597d\u4e86<\/h2>\n      <p class=\"tg-sub\">\u6bcf\u4e00\u9846\u9f13\uff0c\u90fd\u662f\u7d93\u904e\u963f\u8f1d\u5e73\u5e38\u6df7\u97f3\u5c08\u6848\u505a\u597d EQ \u548c Compressor \u7684\uff0c\u5c31\u662f\u8981\u8b93\u4f60\u76f4\u51fa\u5c31\u597d\u807d\uff01<\/p>\n    <\/div>\n    <div class=\"tg-stage-box\">\n      <div class=\"tg-stage-art\">\n        <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/kit-stage-1800.jpg?v=c12935c8\" srcset=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/kit-stage-1100.jpg?v=5e5c8892 1100w, https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/kit-stage-1800.jpg?v=c12935c8 1752w\"\n             sizes=\"auto, (max-width: 1240px) 100vw, 1200px\" width=\"1752\" height=\"1104\" loading=\"lazy\" draggable=\"false\"\n             alt=\"\u96f7\u516c\u7684\u6574\u5957\u9f13\u7d44\uff1aKick\u3001Snare\u3001Hi-Hat\u3001\u4e09\u9846 Tom\u3001Ride\u3001\u4e94\u7247 Crash\u3001\u5169\u7247 China\u3001Splash\u3001Stack\u3002\u9ede\u6bcf\u4e00\u9846\u9f13\u53ef\u4ee5\u8a66\u807d\u3002\">\n        <div class=\"tg-stage-lit\" aria-hidden=\"true\"><\/div>\n      <\/div>\n      <div class=\"tg-stage-bar\">\n        <div class=\"tg-stage-ctl\">\n          <div class=\"tg-grooves\" role=\"group\" aria-label=\"\u64ad\u653e Groove\">\n            <span class=\"tg-label\">Groove<\/span>\n            <!-- grooves:start(marketing\/grooves.py \u7522\u751f,\u4e0d\u8981\u624b\u6539) -->\n            <button class=\"tg-key\" type=\"button\" aria-pressed=\"false\" data-bpm=\"112\" data-src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/rock-11.mp3?v=dfc4644e,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/rock-12.mp3?v=63339138,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/rock-21.mp3?v=42f58203,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/rock-22.mp3?v=1a220490\"\n                    data-hits=\"0:0,2:8,271:2,534:1,541:2,807:2,1071:0,1076:2,1341:0,1343:2,1609:2,1612:1,1878:2,2145:2,2146:0,2412:2,2680:2,2683:1,2946:2,2947:0,3216:2,3218:0,3486:2,3754:1,3755:2,4018:2,4287:2,4288:0,4557:2,4826:2,4826:1,5093:2,5356:0,5359:2,5625:2,5626:0,5894:2,5894:1,6163:2,6428:2,6431:0,6700:2,6966:1,6967:2,7234:2,7499:1,7500:0,7634:1,7769:1,7899:1,8040:3,8171:3,8304:4,8440:5,8575:8,8576:0,8576:10\">Rock<\/button>\n            <button class=\"tg-key\" type=\"button\" aria-pressed=\"false\" data-bpm=\"96\" data-src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/pop-11.mp3?v=9b6bcf73,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/pop-12.mp3?v=ff792146,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/pop-21.mp3?v=3b28a0d0,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/pop-22.mp3?v=a1277288\"\n                    data-hits=\"0:10,3:0,165:2,317:2,474:2,631:2,631:1,786:2,942:0,945:2,1098:2,1255:2,1409:2,1569:2,1570:0,1727:2,1878:2,1879:1,2039:2,2189:2,2346:2,2348:1,2504:0,2506:2,2664:2,2816:2,2972:2,3124:1,3129:2,3284:2,3440:2,3441:0,3601:2,3754:2,3756:0,3912:2,4068:2,4220:2,4220:0,4380:2,4384:1,4537:2,4698:2,4846:2,5003:0,5004:2,5157:2,5314:2,5475:2,5626:2,5626:1,5783:2,5940:0,5942:2,6099:2,6252:2,6413:2,6566:2,6567:0,6724:2,6880:1,6880:2,7034:2,7194:2,7349:1,7506:0,7510:2,7664:2,7812:2,7977:2,8124:1,8130:2,8286:2,8442:0,8442:2,8597:2,8753:2,8909:2,9067:2,9070:0,9224:2,9379:1,9537:1,9690:3,9848:5,10003:0,10006:10\">Pop<\/button>\n            <button class=\"tg-key\" type=\"button\" aria-pressed=\"false\" data-bpm=\"184\" data-src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/punk-11.mp3?v=e6c9810e,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/punk-12.mp3?v=723e20ec,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/punk-21.mp3?v=41e1d759,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/punk-22.mp3?v=100e5e1b\"\n                    data-hits=\"0:8,5:0,165:2,167:1,330:0,332:2,493:1,495:2,658:0,660:2,817:2,819:1,983:2,983:0,1143:1,1145:2,1307:0,1314:2,1473:2,1476:1,1632:2,1636:0,1794:1,1804:2,1960:0,1962:2,2126:1,2126:2,2285:0,2288:2,2448:2,2449:1,2613:2,2617:0,2774:1,2778:2,2939:2,2940:0,3097:1,3101:2,3263:0,3267:2,3427:1,3435:2,3594:2,3594:0,3756:1,3758:2,3916:0,3919:2,4079:1,4081:2,4242:0,4246:2,4407:1,4408:2,4569:0,4570:2,4728:2,4733:1,4894:2,4894:0,4895:1,5061:2,5062:1,5222:0,5223:10,5387:2,5389:1,5547:0,5547:2,5709:2,5710:1,5874:0,5874:2,6037:2,6037:1,6202:0,6202:2,6362:2,6364:1,6525:0,6526:2,6688:2,6691:1,6850:2,6854:0,7015:2,7017:1,7179:0,7184:1,7258:1,7343:1,7427:1,7505:3,7507:0,7587:3,7669:5,7748:5,7831:10,7831:8,7831:0\">Punk<\/button>\n            <button class=\"tg-key\" type=\"button\" aria-pressed=\"false\" data-bpm=\"172\" data-src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/metal-11.mp3?v=a3faa0b7,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/metal-12.mp3?v=b9a0393d,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/metal-21.mp3?v=d5a2d52c,https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/audio\/grooves\/metal-22.mp3?v=0842b847\"\n                    data-hits=\"0:8,2:0,90:0,174:0,265:0,349:1,349:13,354:0,435:0,527:0,608:0,695:13,698:0,781:0,872:0,963:0,1047:1,1047:13,1048:0,1130:0,1218:0,1310:0,1395:0,1399:13,1484:0,1570:0,1657:0,1742:13,1744:0,1744:1,1834:0,1919:0,2003:0,2093:0,2095:13,2180:0,2269:0,2350:0,2439:13,2442:0,2443:1,2533:0,2617:0,2703:0,2791:10,2792:0,2878:0,2967:0,3053:0,3136:6,3139:0,3140:1,3225:0,3315:0,3395:0,3488:0,3490:6,3577:0,3663:0,3751:0,3835:1,3838:6,3840:0,3924:0,4011:0,4098:0,4187:6,4190:0,4279:0,4357:0,4450:0,4530:1,4534:0,4535:6,4623:0,4708:0,4799:0,4884:6,4885:0,4970:0,5058:0,5146:0,5233:1,5234:6,5238:0,5323:0,5407:0,5495:0,5581:8,5587:0,5666:0,5756:0,5842:0,5929:0,5929:13,5934:1,6017:0,6110:0,6194:0,6277:0,6278:13,6367:0,6453:0,6535:0,6625:1,6627:0,6628:13,6714:0,6801:0,6891:0,6978:13,6980:0,7064:0,7155:0,7236:0,7325:0,7327:1,7331:13,7409:0,7499:0,7587:0,7676:0,7680:3,7763:3,7843:0,7850:4,7936:4,8024:5,8025:0,8110:5,8201:5,8202:0,8282:5,8371:13,8372:0,8373:8\">Metal<\/button>\n            <!-- grooves:end -->\n          <\/div>\n          <div class=\"tg-switches\">\n            <div class=\"tg-switch\" role=\"group\" aria-label=\"Kick\" data-which=\"0\">\n              <span class=\"tg-label\">Kick<\/span>\n              <button class=\"tg-key\" type=\"button\" aria-pressed=\"true\" data-v=\"0\" aria-label=\"Kick 1\">1<\/button>\n              <button class=\"tg-key\" type=\"button\" aria-pressed=\"false\" data-v=\"1\" aria-label=\"Kick 2\">2<\/button>\n            <\/div>\n            <div class=\"tg-switch\" role=\"group\" aria-label=\"Snare\" data-which=\"1\">\n              <span class=\"tg-label\">Snare<\/span>\n              <button class=\"tg-key\" type=\"button\" aria-pressed=\"true\" data-v=\"0\" aria-label=\"Snare 1\">1<\/button>\n              <button class=\"tg-key\" type=\"button\" aria-pressed=\"false\" data-v=\"1\" aria-label=\"Snare 2\">2<\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"tg-stage-info\">\n          <div class=\"tg-display tg-stage-now\" data-state=\"idle\">\n            <span class=\"tg-label\">\u6b63\u5728\u807d<\/span>\n            <span class=\"tg-display-value\" role=\"status\" aria-live=\"polite\">\u9ede\u4e00\u9846\u9f13<\/span>\n          <\/div>\n          <p class=\"tg-stage-hint\">\u8a66\u807d\u770b\u770b\uff0c\u4efb\u610f\u9ede\u9f13\u7d44\u7684\u4f4d\u7f6e<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"tg-pads\" role=\"group\" aria-label=\"\u8a66\u807d\u6bcf\u4e00\u9846\u9f13\"><\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u6df7\u97f3\u9801 \u2550\u2550\u2550 -->\n  <section class=\"tg-mixer tg-sec tg-full\" aria-labelledby=\"tg-mixer-h\">\n    <div class=\"tg-wrap\">\n      <div class=\"tg-mixer-head\">\n        <h2 id=\"tg-mixer-h\">\u9810\u8a2d\u662f\u6700\u5f37\u5e73\u8861\uff01<br>\u4f46\u4e5f\u80fd\u914d\u5408\u4f60<\/h2>\n        <p class=\"tg-sub\">\u6df7\u97f3\u9801\u6709 11 \u500b Fader \u63a8\u687f\uff0c\u6bcf\u500b\u8ca0\u8cac\u4e00\u500b\u90e8\u4ef6\u8072\u97f3\u3002\u9810\u8a2d\u5c31\u662f\u963f\u8f1d\u6df7\u97f3\u6240\u4f7f\u7528\u7684\u5e73\u8861\uff0c\u4f60\u4e5f\u53ef\u4ee5\u6309\u7167\u81ea\u5df1\u7684\u559c\u597d\u81ea\u7531\u8abf\u6574\u97f3\u91cf\uff01<\/p>\n      <\/div>\n      <div class=\"tg-links\">\n        <div class=\"tg-link-tile\" aria-label=\"Kick \u548c Kick Room Link \u5728\u4e00\u8d77\">Kick<span class=\"tg-chain\" aria-hidden=\"true\"><svg viewBox=\"0 0 30 18\"><rect x=\"5\" y=\"5.5\" width=\"12\" height=\"7\" rx=\"3.5\"\/><rect x=\"13\" y=\"5.5\" width=\"12\" height=\"7\" rx=\"3.5\"\/><\/svg><\/span>Kick Room<\/div>\n        <div class=\"tg-link-tile\" aria-label=\"Snare \u548c Snare Room Link \u5728\u4e00\u8d77\">Snare<span class=\"tg-chain\" aria-hidden=\"true\"><svg viewBox=\"0 0 30 18\"><rect x=\"5\" y=\"5.5\" width=\"12\" height=\"7\" rx=\"3.5\"\/><rect x=\"13\" y=\"5.5\" width=\"12\" height=\"7\" rx=\"3.5\"\/><\/svg><\/span>Snare Room<\/div>\n        <div class=\"tg-link-tile\" aria-label=\"OH \u548c Room Link \u5728\u4e00\u8d77\">OH<span class=\"tg-chain\" aria-hidden=\"true\"><svg viewBox=\"0 0 30 18\"><rect x=\"5\" y=\"5.5\" width=\"12\" height=\"7\" rx=\"3.5\"\/><rect x=\"13\" y=\"5.5\" width=\"12\" height=\"7\" rx=\"3.5\"\/><\/svg><\/span>Room<\/div>\n      <\/div>\n      <p class=\"tg-links-cap\">\u9019\u4e09\u7d44\u53ef\u4ee5 Link \u8d77\u4f86\uff0c\u63a8\u4e00\u689d\u53e6\u4e00\u689d\u6703\u8ddf\u8457\u52d5\uff0c\u4e00\u8d77\u8abf\u6574\u8072\u97f3\u5927\u5c0f\uff0c\u6bd4\u4f8b\u4e0d\u6703\u8dd1\u6389\uff01<\/p>\n      <figure class=\"tg-shot\">\n        <!-- \u63a8\u687f\u5728\u52d5\u7684\u77ed\u7247(ui_motion.py,Shawn 10-25 \u8981\u7684):\u6372\u5230\u9644\u8fd1\u624d\u8f09,\u6c92\u8f09\u5230 \/ \u6e1b\u5c11\u52d5\u614b\u6642\u505c\u5728\u622a\u5716(poster) -->\n        <video class=\"tg-loop\" muted loop playsinline preload=\"none\" width=\"1200\" height=\"980\"\n               poster=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/ui-mixer.jpg?v=50ad58ab\" data-src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/video\/mixer-loop.mp4?v=6a746701\"\n               aria-label=\"\u96f7\u516c\u7684\u6df7\u97f3\u9801\uff1a12 \u689d\u63a8\u687f\u4e0a\u4e0b\u79fb\u52d5\uff0cKick \u548c Kick Room \u9023\u5728\u4e00\u8d77\u52d5\u3002\"><\/video>\n      <\/figure>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u6bcf\u4e00\u9846\u9f13\u90fd\u53ef\u4ee5\u8abf \u2550\u2550\u2550 -->\n  <section class=\"tg-kit tg-sec tg-full\" aria-labelledby=\"tg-kit-h\">\n    <div class=\"tg-wrap tg-kit-grid\">\n      <figure class=\"tg-shot\">\n        <!-- \u653e\u5927\u5230\u53f3\u4e0a\u89d2\u90a3\u584a\u7684\u77ed\u7247(ui_motion.py,Shawn 10-25:\u300c\u7e2e\u5f97\u5f88\u5c0f\u6839\u672c\u770b\u4e0d\u5230\u300d,\u50cf\u864e\u723a\u90a3\u6a23 Zoom In) -->\n        <video class=\"tg-loop\" muted loop playsinline preload=\"none\" width=\"1200\" height=\"980\"\n               poster=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/ui-kit.jpg?v=f9e7bd54\" data-src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/video\/kit-zoom.mp4?v=ec49eac1\"\n               aria-label=\"\u96f7\u516c\u7684\u9f13\u7d44\u9801\uff1a\u756b\u9762\u653e\u5927\u5230\u5c0f\u9f13\u7684\u8a2d\u5b9a\uff0c\u97f3\u91cf\u63a8\u687f\u3001\u97f3\u6e96\u63a8\u687f\u548c\u529b\u5ea6\u66f2\u7dda\u4f9d\u5e8f\u8abf\u6574\u3002\"><\/video>\n      <\/figure>\n      <div>\n        <h2 id=\"tg-kit-h\">\u97f3\u91cf\u3001\u97f3\u6e96\u3001\u52d5\u614b<br>\u90fd\u53ef\u8abf\u6574<\/h2>\n        <p class=\"tg-sub\">\u60f3\u8b93\u67d0\u4e00\u9846\u9f13\u5927\u8072\u4e00\u9ede\u3001\u97f3\u9ad8\u8abf\u4e00\u9ede\uff0c\u5728\u96f7\u516c\u88e1\u9ede\u4e00\u4e0b\u90a3\u9846\u9f13\u5c31\u80fd\u8abf\uff0c\u4e0d\u7528\u6574\u7d44\u91cd\u6df7\u3002\u8abf\u904e\u7684\u9f13\uff0c\u5716\u4e0a\u6703\u6a19\u51fa\u4f60\u6539\u4e86\u4ec0\u9ebc\uff0c\u4e00\u773c\u5c31\u770b\u5f97\u51fa\u4f86\u3002<\/p>\n        <ul class=\"tg-facts\">\n          <li><span class=\"tg-label\">\u97f3\u91cf<\/span><span>-40 \u5230 +6 dB\uff0c\u6bcf\u4e00\u7247\u9238\u4e5f\u90fd\u53ef\u4ee5\u5206\u958b\u8abf\u3002<\/span><\/li>\n          <li><span class=\"tg-label\">\u97f3\u6e96<\/span><span>\u4e0a\u4e0b\u5404 12 \u500b\u534a\u97f3\uff0c\u8b93\u9f13\u7684\u97f3\u9ad8\u914d\u5408\u4f60\u7684\u6b4c\u3002<\/span><\/li>\n          <li><span class=\"tg-label\">\u52d5\u614b<\/span><span>\u62d6\u4e00\u500b\u9ede\u5c31\u80fd\u6539\u529b\u5ea6\u66f2\u7dda\u3002\u96fb\u5b50\u9f13\u6253\u51fa\u4f86\u5982\u679c\u504f\u5c0f\u8072\uff0c\u53ef\u4ee5\u628a\u9ede\u5f80\u5de6\u4e0a\u62c9\uff0c\u8f15\u8f15\u6253\u4e5f\u6703\u6709\u529b\u9053\u3002<\/span><\/li>\n          <li><span class=\"tg-label\">\u63db\u9f13<\/span><span>Kick \u548c Snare \u5404\u6709\u5169\u9846\u53ef\u4ee5\u5207\u63db\uff0cSnare \u53e6\u5916\u9084\u6709 Sidestick\uff0c\u60f3\u63db\u500b\u5473\u9053\u5207\u4e00\u4e0b\u5c31\u6709\u3002<\/span><\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u5206\u8ecc \u2550\u2550\u2550 -->\n  <section class=\"tg-multi tg-sec tg-full\" aria-labelledby=\"tg-multi-h\">\n    <div class=\"tg-wrap tg-multi-grid\">\n      <div>\n        <h2 id=\"tg-multi-h\">\u60f3\u8655\u7406\u66f4\u591a\uff1f<br>\u5206\u8ecc\u529f\u80fd\u4e5f\u6709<\/h2>\n        <p class=\"tg-sub\">\u5728\u6df7\u97f3\u9801\u7684 OUTPUT \u6309\u4e00\u4e0b MULTI OUT\uff0c\u96f7\u516c\u5c31\u6703\u6709 12 \u7d44\u7acb\u9ad4\u8072\u8f38\u51fa\uff0c\u4f60\u53ef\u4ee5\u5728\u9019\u4e9b\u8ecc\u9053\u4e0a\u81ea\u7531\u52a0\u5de5\uff0c\u4fdd\u6709\u8655\u7406\u7684\u5f48\u6027\u3001\u548c\u4f60\u7684\u500b\u6027\uff01<\/p>\n      <\/div>\n      <!-- \u6309 MULTI OUT:\u6bcf\u4e00\u689d\u5f9e Out 1-2 \u63db\u6210\u81ea\u5df1\u7684\u8f38\u51fa(\u8ddf\u5916\u639b\u4e00\u6a23:\u95dc\u7684\u6642\u5019\u6bcf\u689d\u90fd\u5beb Out 1-2)\u3002\u6372\u5230\u9019\u88e1\u6703\u81ea\u5df1\u6309\u4e00\u6b21\u7d66\u4f60\u770b,\n           \u4e4b\u5f8c\u53ef\u4ee5\u81ea\u5df1\u6309\u3002\u6c92\u6709 JS \u6642\u9375\u5e3d\u85cf\u8d77\u4f86,\u76f4\u63a5\u662f\u5206\u8ecc\u7684\u6a23\u5b50 -->\n      <div class=\"tg-outs\" data-multi=\"on\">\n        <div class=\"tg-outs-head\">\n          <span class=\"tg-label\">Output<\/span>\n          <button class=\"tg-key tg-multi-key\" type=\"button\" aria-pressed=\"true\" hidden>MULTI OUT<\/button>\n        <\/div>\n        <table aria-label=\"MULTI OUT \u9810\u8a2d\u7684\u8f38\u51fa\">\n          <tbody>\n            <tr><th>KICK + KICK ROOM<\/th><td><span class=\"tg-out\" data-out=\"Out 1-2\">Out 1-2<\/span><\/td><\/tr>\n            <tr><th>SN + SN ROOM<\/th><td><span class=\"tg-out\" data-out=\"Out 3-4\">Out 3-4<\/span><\/td><\/tr>\n            <tr><th>HH<\/th><td><span class=\"tg-out\" data-out=\"Out 5-6\">Out 5-6<\/span><\/td><\/tr>\n            <tr><th>T1<\/th><td><span class=\"tg-out\" data-out=\"Out 7-8\">Out 7-8<\/span><\/td><\/tr>\n            <tr><th>T2<\/th><td><span class=\"tg-out\" data-out=\"Out 9-10\">Out 9-10<\/span><\/td><\/tr>\n            <tr><th>FT<\/th><td><span class=\"tg-out\" data-out=\"Out 11-12\">Out 11-12<\/span><\/td><\/tr>\n            <tr><th>OH<\/th><td><span class=\"tg-out\" data-out=\"Out 13-14\">Out 13-14<\/span><\/td><\/tr>\n            <tr><th>ROOM<\/th><td><span class=\"tg-out\" data-out=\"Out 15-16\">Out 15-16<\/span><\/td><\/tr>\n            <tr><th>CRUSH<\/th><td><span class=\"tg-out\" data-out=\"Out 17-18\">Out 17-18<\/span><\/td><\/tr>\n            <tr><th>\u7a7a\u8457\uff0c\u53ef\u4ee5\u81ea\u5df1\u9078<\/th><td><span class=\"tg-out\" data-out=\"Out 19-24\" data-spare>Out 19-24<\/span><\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u96fb\u5b50\u9f13\u8207 MIDI \u2550\u2550\u2550 -->\n  <section class=\"tg-edrum tg-sec\" aria-labelledby=\"tg-edrum-h\">\n    <div class=\"tg-wrap\">\n      <h2 id=\"tg-edrum-h\">\u96fb\u5b50\u9f13\u3001\u4ed6\u724c\u9f13\u7d44\u97f3\u6e90<span class=\"tg-nb\">\uff0c<\/span><br>MIDI \u8f15\u9b06\u8f49\u63db<\/h2>\n      <p class=\"tg-sub\">\u5728 SETTINGS \u9801\u9078\u4f60\u7684\u96fb\u5b50\u9f13\u6a21\u7d44\u6216\u9f13\u8edf\u9ad4\uff0cMIDI \u9801\u5c31\u6703\u81ea\u52d5\u5c0d\u597d\u97f3\u7b26\uff0c\u7701\u4e0b\u4f60\u5927\u91cf\u7684\u5bf6\u8cb4\u6642\u9593\uff01<\/p>\n      <div class=\"tg-edrum-grid\">\n        <figure class=\"tg-shot\">\n          <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/ui-midi.jpg?v=493f0ba8\" width=\"1200\" height=\"980\" loading=\"lazy\"\n               alt=\"\u96f7\u516c\u7684 MIDI \u9801\uff1a\u5de6\u908a 16 \u9846\u9f13\uff0c\u53f3\u908a\u662f Hi-Hat \u7684 19 \u7a2e\u6253\u6cd5\uff0c\u6bcf\u7a2e\u5c0d\u5230\u7684\u97f3\u7b26\u540c\u6642\u5beb\u865f\u78bc\u548c\u97f3\u540d\uff0c\u65c1\u908a\u6709 LEARN \u9375\u3002\u4e0b\u9762\u662f 0 \u5230 127 \u7684\u9375\u76e4\u3002\">\n        <\/figure>\n        <div class=\"tg-edrum-list\">\n          <div><h3>\u97f3\u7b26\u5c0d\u4e0d\u4e0a\uff0cLearn \u4e00\u4e0b\u5c31\u597d<\/h3><p>\u6bcf\u7a2e\u6253\u6cd5\u65c1\u908a\u90fd\u6709 LEARN\uff0c\u6309\u4e00\u4e0b\u518d\u6572\u90a3\u9846\u9f13\u588a\u5c31\u597d\u4e86\u3002\u4e5f\u53ef\u4ee5\u76f4\u63a5\u6253\u5b57\u8f38\u5165\u97f3\u7b26\u3002<\/p><\/div>\n          <div><h3>Hi-Hat \u8e0f\u677f<\/h3><p>\u8e29\u8e0f\u677f\u5c31\u80fd\u63a7\u5236 Hi-Hat \u7684\u958b\u5408\uff0c\u5f9e\u5168\u958b\u5230\u8e29\u7dca\u5206\u6210 8 \u6bb5\u3002\u8e29\u4e0b\u53bb\u7684\u6642\u5019\uff0c\u6b63\u5728\u97ff\u7684 Open Hi-Hat \u4e5f\u6703\u8ddf\u8457\u505c\u4e0b\u4f86\u3002<\/p><\/div>\n          <div><h3>\u6293\u9238\u505c\u97f3<\/h3><p>\u6293\u4f4f\u96fb\u5b50\u9238\uff0c\u9238\u8072\u5c31\u6703\u505c\u4e0b\u4f86\uff0c\u9084\u6703\u7559\u4e00\u5c0f\u6bb5\u9304\u4e0b\u4f86\u7684\u60b6\u97f3\u5c3e\u5df4\uff0c\u8072\u97f3\u4e0d\u6703\u7a81\u7136\u65b7\u6389\u3002<\/p><\/div>\n          <div><h3>\u4e0d\u958b DAW \u4e5f\u80fd\u6253<\/h3><p>\u96f7\u516c\u4e5f\u6709\u7368\u7acb\u7a0b\u5f0f\uff0c\u60f3\u7df4\u9f13\u7684\u6642\u5019\uff0c\u63a5\u4e0a\u96fb\u5b50\u9f13\u3001\u9078\u597d\u9304\u97f3\u4ecb\u9762\u5c31\u53ef\u4ee5\u6253\u4e86\u3002<\/p><\/div>\n        <\/div>\n      <\/div>\n      <!-- \u54c1\u724c\u6e05\u55ae\u6536\u8d77\u4f86,\u8981\u7684\u4eba\u518d\u5c55\u958b(Shawn 10-25:\u5168\u90e8\u5217\u51fa\u4f86\u6709\u4e00\u9ede\u9ede\u8822) -->\n      <p class=\"tg-brands-note\">\u652f\u63f4\u7684\u96fb\u5b50\u9f13\u3001\u4ed6\u724c\u865b\u64ec\u9f13\u7d44\u97f3\u6e90\uff0c\u90fd\u80fd\u900f\u904e MIDI \u8f49\u63db\u529f\u80fd\u4e00\u9375\u5c0d\u61c9\uff0c\u4e0d\u9700\u8981\u81ea\u5df1\u984d\u5916\u8abf\u6574 MIDI \u9375\u4f4d\uff01<\/p>\n      <details class=\"tg-brands-more\">\n        <summary>\u770b\u652f\u63f4\u7684\u96fb\u5b50\u9f13\u548c\u9f13\u8edf\u9ad4<\/summary>\n        <div class=\"tg-brands\">\n          <div>\n            <p class=\"tg-label\">\u5df2\u958b\u653e\u652f\u63f4\u96fb\u5b50\u9f13\u7d44<\/p>\n            <p>Roland\u3001Yamaha\u3001Alesis\u3001EFNOTE\u30012box\u3001Pearl\u3001ATV\u3001GEWA\u3001KAT\u3001Simmons\u3001Millenium\u3001Medeli\u3001Drum Workshop\u3001ddrum\u3001DruML\u3001NFuZD\u3001Zildjian\u3001Aerodrums<\/p>\n          <\/div>\n          <div>\n            <p class=\"tg-label\">\u5176\u4ed6\u53ef\u8f49\u63db\u865b\u64ec\u9f13\u7d44<\/p>\n            <p>EZdrummer\u3001Superior Drummer\u3001Steven Slate Drums\u3001GetGood Drums\u3001Addictive Drums\u3001BFD\u3001Groove Agent\u3001Logic Drummer\u3001MixWave\u3001Studio Drummer\u3001General MIDI \u7b49 43 \u500b\u5ee0\u724c<\/p>\n          <\/div>\n        <\/div>\n      <\/details>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u898f\u683c\u3001\u8a55\u50f9\u3001\u5e38\u898b\u554f\u984c(10-28 Shawn \u9078 B1):\u898f\u683c\u63a5\u5728\u529f\u80fd\u4ecb\u7d39\u5f8c\u9762,\u4e00\u6a23\u662f\u6df1\u8272;\u8a55\u50f9\u548c\u5e38\u898b\u554f\u984c\u9023\u6210\u6574\u9801\u552f\u4e00\u7684\u7c73\u767d\u5340\u584a\u3002\n       10-28 \u65e9\u4e0a\u662f \u898f\u683c \/ \u8a55\u50f9 \/ \u5e38\u898b\u554f\u984c = \u7c73\u767d \/ \u6df1\u8272 \/ \u7c73\u767d(Shawn:\u5230\u9019\u908a\u7db2\u9801\u6709\u9ede\u96e3\u770b,\u9ad8\u7d1a\u7684\u7db2\u7ad9\u4e0d\u662f\u9019\u6a23\u9ed1\u767d\u9ed1\u767d) \u2550\u2550\u2550 -->\n  <section class=\"tg-specs-sec tg-sec\" aria-labelledby=\"tg-specs-h\">\n    <div class=\"tg-wrap tg-col\">\n      <h2 id=\"tg-specs-h\">\u898f\u683c<\/h2>\n      <dl class=\"tg-specs\">\n        <div><dt>\u683c\u5f0f<\/dt><dd>Mac\uff1aVST3\u3001AU\u3001AAX\u3001Standalone<br>Windows\uff1aVST3\u3001Standalone<\/dd><\/div>\n        <div><dt>\u7cfb\u7d71<\/dt><dd>macOS 12 \u4ee5\u4e0a\uff0cApple \u6676\u7247\u548c <span class=\"tg-nb\">Intel \u7684 Mac<\/span> \u90fd\u53ef\u4ee5\u7528<br>Windows 10 \u4ee5\u4e0a\uff0864 \u4f4d\u5143\uff09<\/dd><\/div>\n        <div class=\"tg-specs-wide\"><dt>\u9f13\u7d44<\/dt><dd>\u5927\u9f13 Kick&nbsp;\u00d72\u3001\u5c0f\u9f13 Snare&nbsp;\u00d72\u3001Hi-Hat\u3001Tom&nbsp;1\u3001Tom&nbsp;2\u3001Floor&nbsp;Tom\u3001Ride\u3001Crash&nbsp;\u00d75\u3001China&nbsp;\u00d72\u3001Splash\u3001Stack<\/dd><\/div>\n        <div><dt>\u53d6\u6a23<\/dt><dd>48 kHz\uff0c48 \u7a2e\u6253\u6cd5\uff0c\u6bcf\u7a2e 16 \u500b\u529b\u5ea6<\/dd><\/div>\n        <div><dt>\u8f38\u51fa<\/dt><dd>Stereo\uff0c\u6216 MULTI OUT 12 \u7d44\u7acb\u9ad4\u8072\uff0824 \u8072\u9053\uff09<\/dd><\/div>\n        <div><dt>\u6240\u9700\u786c\u789f\u7a7a\u9593<\/dt><dd>3.6 GB\uff0c\u53ef\u4ee5\u81ea\u5df1\u9078\u64c7\u5b89\u88dd\u4f4d\u7f6e<\/dd><\/div>\n        <div><dt>\u6388\u6b0a<\/dt><dd>\u4e00\u7d44\u6388\u6b0a\uff0c\u53ef\u7528\u65bc 2 \u53f0\u96fb\u8166<\/dd><\/div>\n      <\/dl>\n    <\/div>\n  <\/section>\n\n  <!-- \u8a55\u50f9 = \u5546\u54c1 104023 \u5728 WooCommerce \u7684\u8a55\u50f9(\u7db2\u7ad9\u7684 mu-plugin thundergod-landing.php)\u3002\n       data-shortcode \u7531 build-embed.py \u63db\u6210\u77ed\u78bc,\u6240\u4ee5\u672c\u6a5f\u9810\u89bd\u9019\u88e1\u662f\u7a7a\u7684\u3001\u6574\u5340\u6536\u8d77\u4f86\u3002\n       \u300c\u5df2\u8cfc\u8cb7\u300d\u662f WooCommerce \u67e5\u8a02\u55ae\u6c7a\u5b9a\u7684\u3002\u4e0d\u653e\u6211\u5011\u81ea\u5df1\u5beb\u7684\u8a55\u50f9:\u8981\u653e\u5c31\u7528\u771f\u7684\u4eba\u8aaa\u7684\u8a71(\u672c\u4eba\u540c\u610f),\u5beb\u6cd5\u7167\u864e\u723a\u7684\u5361\u7247\u3002 -->\n  <section class=\"tg-voice tg-sec tg-light\" aria-labelledby=\"tg-voice-h\">\n    <div class=\"tg-wrap tg-voice-in\">\n      <h2 id=\"tg-voice-h\">\u7528\u904e\u7684\u4eba\u600e\u9ebc\u8aaa<\/h2>\n      <div class=\"tg-reviews\"><article class=\"tg-review\"><div class=\"tg-review-stars\" role=\"img\" aria-label=\"5 \u9846\u661f\uff0c\u6eff\u5206 5 \u9846\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><\/div><p class=\"tg-review-text\">\u6211\u7528\u96fb\u5b50\u9f13\u63a5\u4e0a\u53bb\u6253\uff0c\u8072\u97f3\u6bd4\u6211\u4e4b\u524d\u7684\u90fd\u9084\u68d2\uff0c\u96f7\u516c\u592a\u8b9a\u4e86\u5427\uff01<\/p><div class=\"tg-review-by\"><b>\u51f1<\/b><span class=\"tg-review-ok\">\u5df2\u8cfc\u8cb7<\/span><\/div><\/article><article class=\"tg-review\"><div class=\"tg-review-stars\" role=\"img\" aria-label=\"5 \u9846\u661f\uff0c\u6eff\u5206 5 \u9846\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><\/div><p class=\"tg-review-text\">\u4ee5\u524d\u81ea\u5df1\u7528Midi\u9f13\uff0c\u9084\u8981\u5206\u8ecc\u7136\u5f8c\u4e00\u8ecc\u4e00\u8ecc\u6162\u6162\u5f04\uff0c\u60f3\u8aaa\u8cb7\u4f86\u7528\u770b\u770b\uff0c\u5b8c\u5168\u6539\u8b8a\u4e86\u6211\u7684\u5de5\u4f5c\u6d41\uff0c\u6211\u628aMidi\u63db\u904e\u53bb\uff0c\u5c31\u6df7\u597d\u4e86\uff0c\u5f88\u8b1d\u8b1d\u963f\u8f1d\uff01<\/p><div class=\"tg-review-by\"><b>Wei<\/b><span class=\"tg-review-ok\">\u5df2\u8cfc\u8cb7<\/span><\/div><\/article><article class=\"tg-review\"><div class=\"tg-review-stars\" role=\"img\" aria-label=\"5 \u9846\u661f\uff0c\u6eff\u5206 5 \u9846\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><\/div><p class=\"tg-review-text\">\u8a2d\u5b9a\u8d77\u4f86\u883b\u7c21\u55ae\u7684\uff0c\u5f88\u597d\u7528<\/p><div class=\"tg-review-by\"><b>\u5927\u5b89<\/b><span class=\"tg-review-ok\">\u5df2\u8cfc\u8cb7<\/span><\/div><\/article><article class=\"tg-review\"><div class=\"tg-review-stars\" role=\"img\" aria-label=\"5 \u9846\u661f\uff0c\u6eff\u5206 5 \u9846\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><\/div><p class=\"tg-review-text\">\u883b\u559c\u6b61 Snare 2 \u9019\u7a2e\u6bd4\u8f03\u5c11\u807d\u5230\u7684\u8072\u97f3\uff0c\u5f88\u8b9a<\/p><div class=\"tg-review-by\"><b>\u963f\u54f2<\/b><span class=\"tg-review-ok\">\u5df2\u8cfc\u8cb7<\/span><\/div><\/article><article class=\"tg-review\"><div class=\"tg-review-stars\" role=\"img\" aria-label=\"5 \u9846\u661f\uff0c\u6eff\u5206 5 \u9846\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" class=\"is-on\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><\/div><p class=\"tg-review-text\">CP\u503c\u5f88\u9ad8\uff0c\u7de8\u66f2\u7528\u8d77\u4f86\u723d\u5230\u4e0d\u884c<\/p><div class=\"tg-review-by\"><b>Jimmi<\/b><span class=\"tg-review-ok\">\u5df2\u8cfc\u8cb7<\/span><\/div><\/article><\/div>\n      <div class=\"tg-review-form-slot\"><p class=\"tg-review-note\">\u5df2\u8cfc\u8cb7\u96f7\u516c\u7684\u4f60\uff0c\u6b61\u8fce<a href=\"https:\/\/ourdaysrecords.com\/class\/my-account\/?tg_return=https%3A%2F%2Fourdaysrecords.com%2Fclass%2Fproduct%2Fthundergod-drums%2F%23tg-voice-h\">\u7559\u4e0b\u8a55\u50f9<\/a><\/p><\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"tg-faq tg-sec tg-light\" aria-labelledby=\"tg-faq-h\">\n    <div class=\"tg-wrap tg-col\">\n      <h2 id=\"tg-faq-h\">\u5e38\u898b\u554f\u984c<\/h2>\n      <div class=\"tg-faq-list\">\n        <details>\n          <summary>\u6211\u53ef\u4ee5\u5207\u63db\u6210\u300c\u6c92\u6709\u6df7\u97f3\u8655\u7406\u300d\u7684\u4e7e\u8072\u55ce\uff1f<\/summary>\n          <div class=\"tg-a\">\n            <p>\u76ee\u524d\u6c92\u8fa6\u6cd5\uff0c\u96f7\u516c\u7684\u8072\u97f3\u53d6\u6a23\u90fd\u662f\u5df2\u7d93\u9304\u597d\u3001\u6df7\u597d\u97f3\u7684\u8072\u97f3\uff0c\u672c\u4f86\u7684\u8a2d\u8a08\u7406\u5ff5\u5c31\u662f\u70ba\u4e86\u8981\u8b93\u4f60\u53ef\u4ee5\u5feb\u901f\u3001\u8f15\u9b06\u5f97\u5230\u5f88\u597d\u807d\u7684\u9f13\u7d44\u8072\u97ff\u3002<\/p>\n            <p>\u4e0d\u904e\u6bcf\u9846\u9f13\u7684\u5927\u5c0f\u8072\u3001\u97f3\u6e96\u90fd\u4fdd\u6709\u8b93\u4f60\u8abf\u6574\u7684\u5f48\u6027\uff0c\u4e5f\u53ef\u4ee5\u7528 MULTI OUT \u5206\u8ecc\u5230 DAW \u518d\u8655\u7406\uff0c\u9019\u662f\u8a2d\u8a08\u7406\u5ff5\u4e0a\u8b93\u4f60\u80fd\u5920\u5f97\u5230\u597d\u807d\u7684\u9f13\u8072\uff0c\u53c8\u4fdd\u6709\u4f60\u7684\u500b\u6027\u7684\u6700\u4f73\u65b9\u6cd5\uff01<\/p>\n          <\/div>\n        <\/details>\n        <details>\n          <summary>\u4f7f\u7528\u96fb\u5b50\u9f13\u6642\uff0c\u9700\u8981\u81ea\u5df1\u4e00\u500b\u4e00\u500b\u5c0d MIDI \u55ce\uff1f<\/summary>\n          <div class=\"tg-a\">\n            <p>99% \u7684\u60c5\u6cc1\uff0c\u90fd\u4e0d\u9700\u8981\u91cd\u65b0\u8a2d\u5b9a\uff0c\u4f60\u53ef\u4ee5\u5728 SETTINGS \u9078\u4f60\u7684\u9f13\u7d44\u578b\u865f\uff0cMIDI \u9801\u5c31\u6703\u7167\u5b83\u5c0d\u597d\uff0cHi-Hat \u8e0f\u677f\u548c\u6293\u9238\u505c\u97f3\u4e5f\u6703\u7167\u90a3\u53f0\u6a21\u7d44\u7684\u8a2d\u5b9a\u3002<\/p>\n            <p>\u5982\u679c\u6e05\u55ae\u88e1\u6c92\u6709\u4f60\u7684\u578b\u865f\uff0c\u6216\u8005\u914d\u5c0d\u8d77\u4f86\u7684\u8072\u97f3\u602a\u602a\u7684\uff0c\u53ef\u4ee5\u5230 MIDI \u9801\u6309 LEARN\uff0c\u518d\u6572\u4e00\u4e0b\u9f13\u588a\uff0c\u5c31\u53ef\u4ee5\u5c0d\u61c9\u5230\u4f60\u7684\u96fb\u5b50\u9f13\u4e86\uff01<\/p>\n          <\/div>\n        <\/details>\n        <details>\n          <summary>\u6211\u7684 MIDI \u662f\u7528 EZdrummer\u3001SSD \u6216 GetGood \u5beb\u7684\uff0c\u6253\u5f97\u51fa\u4f86\u55ce\uff1f<\/summary>\n          <div class=\"tg-a\"><p>\u7576\u7136\u6c92\u554f\u984c\u3002\u4f60\u53ea\u9700\u8981\u5728 SETTINGS \u88e1\uff0c\u9078\u64c7\u4f60\u539f\u672c\u4f7f\u7528\u7684\u8edf\u9ad4\uff0c\u96f7\u516c\u5c31\u6703\u81ea\u52d5\u53bb\u9069\u61c9\u4f60\u539f\u672c\u6240\u4f7f\u7528\u7684 MIDI \u4f4d\u7f6e\uff0c\u8b93\u4f60\u53ef\u4ee5\u7528\u539f\u672c\u7684 MIDI \u767c\u51fa\u4e00\u6a23\u7684\u9f13\u7d44\u90e8\u4ef6\u8072\u97ff\u3002<\/p><\/div>\n        <\/details>\n        <details>\n          <summary>\u4e00\u7d44\u6388\u6b0a\u53ef\u4ee5\u88dd\u5e7e\u53f0\uff1f\u63db\u96fb\u8166\u600e\u9ebc\u8fa6\uff1f<\/summary>\n          <div class=\"tg-a\">\n            <p>\u96f7\u516c\u76ee\u524d\u958b\u653e\u540c\u6642\u53ef\u4ee5\u555f\u52d5 2 \u53f0\u3002<\/p>\n            <p>\u63db\u96fb\u8166\u7684\u6642\u5019\uff0c\u53ef\u4ee5\u5728\u820a\u96fb\u8166\u7684 SETTINGS \u6309 DEACTIVATE\uff1b\u820a\u96fb\u8166\u4e0d\u5728\u624b\u908a\u7684\u8a71\uff0c\u4e5f\u53ef\u4ee5\u5230\u7db2\u7ad9\u7684\u5e33\u865f\u9801\u628a\u5b83\u91cb\u653e\uff0c\u65b0\u96fb\u8166\u8f38\u5165\u540c\u4e00\u7d44\u6388\u6b0a\u78bc\u5c31\u80fd\u555f\u52d5\u3002<\/p>\n          <\/div>\n        <\/details>\n        <details>\n          <summary>\u8981\u4e00\u76f4\u9023\u7db2\u55ce\uff1f<\/summary>\n          <div class=\"tg-a\"><p>\u53ea\u6709\u555f\u7528\u7684\u6642\u5019\u8981\u9023\u7db2\uff0c\u4e4b\u5f8c\u96e2\u7dda\u4e5f\u53ef\u4ee5\u7528\u3002\u6709\u7db2\u8def\u7684\u6642\u5019\uff0c\u96f7\u516c\u6703\u5728\u80cc\u666f\u78ba\u8a8d\u4e00\u4e0b\u6388\u6b0a\u3002<\/p><\/div>\n        <\/details>\n        <details>\n          <summary>\u6211\u7684\u5c08\u6848\u662f 44.1 kHz\uff0c\u53ef\u4ee5\u7528\u55ce\uff1f<\/summary>\n          <div class=\"tg-a\"><p>\u53ef\u4ee5\uff0c\u96f7\u516c\u6703\u81ea\u5df1\u8f49\u63db\u3002\u53d6\u6a23\u662f\u7528 48 kHz \u9304\u7684\uff0c\u5728 44.1 kHz \u7684\u5c08\u6848\u88e1\u9ad8\u983b\u6703\u5c11\u4e00\u9ede\u9ede\uff0c\u60f3\u807d\u5230\u8ddf\u8a66\u807d\u4e00\u6a23\u7684\u8072\u97f3\uff0c\u7528 48 kHz \u7684\u5c08\u6848\u6700\u6e96\u3002<\/p><\/div>\n        <\/details>\n        <details>\n          <summary>\u53d6\u6a23\u8981\u88dd\u5728\u54ea\u88e1\uff1f\u9700\u8981\u591a\u5927\u7684\u7a7a\u9593\uff1f<\/summary>\n          <div class=\"tg-a\">\n            <p>\u8072\u97f3\u53d6\u6a23\u5305\u5927\u7d04 3.6 GB\uff0c\u5b89\u88dd\u7684\u6642\u5019\u53ef\u4ee5\u9078\u8981\u653e\u5728\u54ea\u88e1\u3002\u9810\u8a2d\u653e\u5728\u7cfb\u7d71\u789f\uff0c\u7a7a\u9593\u4e0d\u5920\u7684\u8a71\uff0c\u53ef\u4ee5\u9078\u5176\u4ed6\u4f4d\u7f6e\u3002<\/p>\n            <p>Mac \u7684\u5b89\u88dd\u7a0b\u5f0f\u5feb\u88dd\u5b8c\u7684\u6642\u5019\u6703\u554f\u4f60\u3002\u53d6\u6a23\u6703\u5148\u653e\u9032\u7cfb\u7d71\u789f\uff0c\u518d\u642c\u5230\u4f60\u9078\u7684\u5730\u65b9\uff0c\u6240\u4ee5\u7cfb\u7d71\u789f\u81f3\u5c11\u8981\u7559 3.6 GB\u3002<\/p>\n            <p>Windows \u4e0b\u8f09\u7684\u662f\u4e00\u500b zip \u6a94\uff0c\u8981\u5148\u6574\u500b\u89e3\u58d3\u7e2e\uff0c\u518d\u6253\u958b\u88e1\u9762\u7684\u5b89\u88dd\u7a0b\u5f0f\uff0c\u5b83\u6703\u5728\u958b\u59cb\u5b89\u88dd\u524d\u554f\u4f60\u3002<\/p>\n          <\/div>\n        <\/details>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u6536\u5c3e \u2550\u2550\u2550 -->\n  <section class=\"tg-end\" aria-labelledby=\"tg-end-h\">\n    <div class=\"tg-end-art\">\n      <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/raijin-end-2000.jpg?v=293ef8ae\" srcset=\"https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/raijin-end-1400.jpg?v=b9dcb18a 1400w, https:\/\/ourdaysrecords.com\/class\/wp-content\/odr-lp\/thundergod\/shots\/raijin-end-2000.jpg?v=293ef8ae 2000w\" sizes=\"auto, 100vw\"\n           width=\"2000\" height=\"958\" loading=\"lazy\" alt=\"\u96f7\u516c\u7684\u81c9\u548c\u96d9\u624b\uff0c\u56db\u5468\u662f\u96f2\u3001\u9583\u96fb\u548c\u592a\u9f13\u3002\">\n    <\/div>\n    <div class=\"tg-wrap tg-end-text\">\n      <h2 id=\"tg-end-h\"><span class=\"tg-h1-zh\">\u96f7\u516c<\/span><span class=\"tg-h1-en\">ThunderGod Drums<\/span><\/h2>\n      <div class=\"tg-offer\">\n        <div class=\"tg-display tg-offer-card\" data-promo=\"1\">\n          <div class=\"tg-price\">\n            <span class=\"tg-label\">\u9996\u767c\u512a\u60e0 <span data-price=\"off\">31<\/span>% Off !<\/span>\n            <span class=\"tg-price-row\"><span class=\"tg-display-value\" data-price=\"now\">NT$ 2,199<\/span><s class=\"tg-price-was\"><span class=\"tg-sr\">12\/1 \u8d77<\/span><span data-price=\"later\">NT$ 3,199<\/span><\/s><\/span>\n          <\/div>\n          <div class=\"tg-count\" data-deadline=\"2026-11-30T23:59:59+08:00\">\n            <span class=\"tg-sr\">\u9996\u767c\u512a\u60e0\u5230 11\/30 23:59<\/span>\n            <span class=\"tg-display-value tg-count-v\" aria-hidden=\"true\"><b data-u=\"d\">--<\/b><i>\u5929<\/i><b data-u=\"h\">--<\/b><i>\u6642<\/i><b data-u=\"m\">--<\/b><i>\u5206<\/i><b data-u=\"s\">--<\/b><i>\u79d2<\/i><\/span>\n            <span class=\"tg-count-end\">11\/30 23:59 \u7d50\u675f<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"tg-buy\">\n        <a class=\"tg-key tg-key-accent\" href=\"https:\/\/ourdaysrecords.com\/class\/checkout\/?fill_cart=104023\">\u8cfc\u8cb7\u96f7\u516c<\/a>\n      <\/div>\n      <p class=\"tg-compat\">Mac\u3001Win\u7686\u53ef\u7528 \u00b7 VST3\u3001AU\u3001AAX<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550\u2550 \u5e38\u99d0\u8cfc\u8cb7\u5217 \u2550\u2550\u2550 -->\n  <div class=\"tg-bar\" aria-label=\"\u8cfc\u8cb7\u96f7\u516c\">\n    <div class=\"tg-wrap tg-bar-in\">\n      <p class=\"tg-bar-name\">\u96f7\u516c<span>ThunderGod Drums<\/span><\/p>\n      <div class=\"tg-display\"><span class=\"tg-display-value\" data-price=\"now\">NT$ 2,199<\/span><\/div>\n      <a class=\"tg-key tg-key-accent\" href=\"https:\/\/ourdaysrecords.com\/class\/checkout\/?fill_cart=104023\">\u8cfc\u8cb7<\/a>\n    <\/div>\n  <\/div>\n\n<\/div>\n<script>\n\/* \u7531 marketing\/kit_stage.py \u7522\u751f,\u4e0d\u8981\u624b\u6539\u3002\u9ede\u64ca\u7bc4\u570d:cols x rows \u683c,\u4e00\u683c\u4e00\u500b\u5b57(a..p = \u7b2c\u5e7e\u9846\u9f13,. = \u6c92\u6709),\u9023\u7e8c\u76f8\u540c\u7684\u5beb\u6210\u300c\u5b57 + \u500b\u6578\u300d;boxes = \u6bcf\u9846\u9f13\u4eae\u5716\u7684\u4f4d\u7f6e(\u821e\u53f0\u5716\u7684 %:x, y, \u5bec, \u9ad8)\u3002 *\/\nwindow.TG_KIT = {\"cols\":219,\"rows\":138,\"map\":\".1810i10.205i18.199i23.21p11.35k17.110i27.16p16.30k23.106i29.14p19.25k28.104i30.11p22.22k31.102i32.10p23.20k33.101i32.9p24.18k35.102i31.10p23.17k37.101i31.10p22.18k37.102i29.12p20.18k37.104i28.14p16.20k37.106i24.19p10.23k36.109i20.54k35.114i13.7j13.38k33.132j20.34k31.132j24.34k28.131j28.33k24.133j30.35k18.135j32.41k3.142j34.151h11.23j34.148h18.19j35.66n16.63h22.17j35.62n23.59h25.15j35.60n27.56h27.14j34.59n31.53h29.14j33.57n34.52h30.14j31.57n36.51h30.15j29.56n38.51h30.16j27.57n38.52h29.18j23.58n39.53h28.20j18.61n38.55h26.26j9.65n38.56h24.5o11.85n37.59h21.4o15.11d7.19e8.24g14.1n34.50m10.4h15.6o17.6d15.11e16.16g19n33.46m20.6h3.11o18.3d19.7e20.11g24n29.46m25.17o18.2d21.4e23.8g28n24.47m29.15o19d23.2e25.5g33n17.49m33.13o18d25.1e25.4g36.63m35.13o17d25e27.2g38.62m36.13o15.1d25e27.1g39.61m38.14o11.3d25e26.2g39.61m39.18o1.9d23.1e26.2g39.61m39.11c1.16d23.1e26.2g39.61m39.11c1.16d23.2e25.2g39.61m39.28d23.2e25.2g38.63m38.28d23.2e25.3g36.65m37.28d23.2e25.3g35.67m35.11c7.11d23.2e25.5g31.24l7.39m33.7c17.6d23.2e25.6g29.18l20.35m30.5c22.4d23.2e25.8g24.17l27.34m26.5c25.3d23.2e25.12g16.18l32.35m20.7c27.2d23.2e25.44l36.38m11.10c29.1d23.2e25.42l39.58c29.1d23.2e26.40l41.57c28.2d23a2e26.38l44.56c28.2d23a2e26.37l45.56c27.3d23a2e25.37l47.57c23.5d22a4e24.36l48.58c20.8d21a4e23.37l48.61c13.14d17a7e21.37l49.90d13a10e19.38l49.93d7a15e15.39l49.93a26e8.43l49.90b13a25.17f4.21l48.88b19a22.11f17.15l46.87b22a22.7f23.12l45.87b25a20.5f28.10l43.86b28a19.4f30.9l42.87b29a18.2f34.8l39.89b29a19f36.8l37.90b29a19f36.10l32.93b29a19f37.11l28.94b30a19f37.14l21.98b30a18.1f37.19l10.104b30a18.1f37.133b1.1b28a19f38.132b1.1b28a19f36.1f1.132b1.1b28a19f36.134b1.1b28a19f36.134b1.1b28a19f36.135b29a19f36.1f1.133b29a19f36.135b28a20f37.135b27a20f37.135b27a20f37.136b19.5b1a21f37.137b13.15a17f37.138b9.21a14f37.140b5.25a12f37.141a2b1.27a11f35.1f1.141a1.30a10f35.1f1.173a9f35.1f1.174a8f35.1f1.174a8f35.177a7f35.177a6.1f36.176a5.2f36.176a5.3f35.176a4.3f36.175a4.4f36.175a2.6f36.175a1.7f36.184f34.185f34.186f33.186f32.188f30.191f27.193f25.133c1.62f22.134c1.65f17.136c1.32a6.31f8.141c1.31a7.181c1.31a6.213a6.181c4.212c7.213c7.212c7.213c7.212c7.212c8.212c7.212c7.213c6.213c2.588\",\"boxes\":[[35.959,46.196,19.064,44.293],[32.534,52.536,13.584,19.656],[20.89,37.409,13.185,61.051],[34.247,30.435,11.416,21.92],[45.605,30.435,12.272,22.645],[54.795,53.261,17.237,35.054],[58.276,30.435,18.208,14.13],[12.386,21.014,13.87,11.322],[22.146,5.978,14.441,10.96],[31.393,15.851,15.982,13.768],[58.847,6.975,17.295,13.043],[73.231,41.576,22.717,19.203],[3.995,31.341,18.151,14.312],[71.176,21.558,17.865,12.862],[25.856,29.438,8.676,7.971],[40.868,7.065,10.788,8.152]],\"names\":[\"Kick\",\"Snare\",\"Hi-Hat\",\"Tom 1\",\"Tom 2\",\"Floor Tom\",\"Ride\",\"Crash 1\",\"Crash 2\",\"Crash 3\",\"Crash 4\",\"Crash 5\",\"China 1\",\"China 2\",\"Splash\",\"Stack\"]};\n<\/script>\n<script>\n(function () {\n  var root = document.getElementById('thundergod-lp');\n  if (!root) return;\n  root.classList.add('tg-js');\n  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  \/\/ \u9577\u7684\u8072\u97f3\u4e00\u6b21\u53ea\u653e\u4e00\u7a2e:\u963f\u8f1d\u7684\u5f71\u7247\u3001\u4e0d\u540c\u66f2\u98a8\u3001Groove,\u4e00\u500b\u958b\u59cb\u64ad,\u53e6\u5916\u5169\u500b\u5c31\u505c(\u8b1b\u8a71\u88ab\u97f3\u6a02\u84cb\u904e\u53bb\u5c31\u807d\u4e0d\u6e05\u695a)\u3002\u9ede\u9f13\u7684\u55ae\u4e0b\u4e0d\u7b97\n  var solo = function (who) { root.dispatchEvent(new CustomEvent('tg-solo', { detail: who })); };\n\n  \/* \u2500\u2500 \u9996\u767c\u512a\u60e0\u5012\u6578(\u5230 11\/30 23:59:59 \u53f0\u7063\u6642\u9593)\u3002\u6642\u9593\u5230\u5c31\u628a\u5012\u6578\u85cf\u8d77\u4f86;JS \u6c92\u8dd1\u6642\u986f\u793a\u300c11\/30 23:59 \u7d50\u675f\u300d \u2500\u2500 *\/\n  var counts = root.querySelectorAll('.tg-count');\n  if (counts.length) {\n    var deadline = Date.parse(counts[0].getAttribute('data-deadline'));\n    var pad = function (n) { return (n < 10 ? '0' : '') + n; };\n    var tick = function () {\n      var ms = deadline - Date.now();\n      if (!(ms > 0)) {\n        for (var i = 0; i < counts.length; i++) counts[i].hidden = true;\n        \/\/ \u5c0f\u6a19\u548c\u5283\u7dda\u4e5f\u6536\u8d77\u4f86(CSS \u7684 data-promo \u90a3\u6bb5),\u53ea\u5269\u50f9\u9322\u3002\u9801\u9762\u88ab\u5feb\u53d6\u4f4f\u7684\u8a71,\u50f9\u9322\u8981\u7b49\u7db2\u7ad9\u91cd\u65b0\u7522\u751f\u9801\u9762\u624d\u6703\u63db\u6210\u5546\u54c1\u7684\u65b0\u50f9\u9322\n        var cards = root.querySelectorAll('.tg-offer-card');\n        for (var k = 0; k < cards.length; k++) cards[k].setAttribute('data-promo', '');\n        return;\n      }\n      var s = Math.floor(ms \/ 1000);\n      var v = { d: String(Math.floor(s \/ 86400)), h: pad(Math.floor(s % 86400 \/ 3600)), m: pad(Math.floor(s % 3600 \/ 60)), s: pad(s % 60) };\n      for (var c = 0; c < counts.length; c++) {\n        var bs = counts[c].querySelectorAll('b[data-u]');\n        for (var b = 0; b < bs.length; b++) bs[b].textContent = v[bs[b].getAttribute('data-u')];\n      }\n      setTimeout(tick, 1000 - Date.now() % 1000 + 5);\n    };\n    tick();\n  }\n\n  \/* \u2500\u2500 \u70ba\u4ec0\u9ebc\u662f\u96f7\u516c:\u6372\u5230\u624d\u4e00\u53e5\u4e00\u53e5\u6de1\u5165\u3002\u540c\u6642\u9032\u5230\u756b\u9762\u7684\u5e7e\u53e5,\u7167\u9806\u5e8f\u932f\u958b 0.25 \u79d2 \u2500\u2500 *\/\n  var reveals = root.querySelectorAll('.tg-reveal');\n  if (reveals.length) {\n    if (reduce || !('IntersectionObserver' in window)) {\n      for (var r = 0; r < reveals.length; r++) reveals[r].classList.add('tg-in');\n    } else {\n      var rio = new IntersectionObserver(function (es) {\n        var k = 0;\n        es.forEach(function (e) {\n          if (!e.isIntersecting) return;\n          e.target.style.transitionDelay = (k++ * 0.25) + 's';\n          e.target.classList.add('tg-in');\n          rio.unobserve(e.target);\n        });\n      }, { threshold: 0.3, rootMargin: '0px 0px -6% 0px' });\n      for (var q = 0; q < reveals.length; q++) rio.observe(reveals[q]);\n    }\n  }\n\n  \/* \u2500\u2500 \u963f\u8f1d\u7684\u5f71\u7247:\u6309\u4e86\u624d\u628a\u5c01\u9762\u63db\u6210 YouTube(nocookie \u7db2\u57df\u3001\u81ea\u52d5\u64ad)\u3002enablejsapi=1:\u4e0d\u540c\u66f2\u98a8\u3001Groove \u958b\u59cb\u64ad\u6642\u7528 postMessage \u53eb\u5b83\u66ab\u505c \u2500\u2500 *\/\n  var film = root.querySelector('.tg-film-play'), filmFrame = null;\n  if (film) {\n    film.addEventListener('click', function (e) {\n      e.preventDefault();\n      var f = document.createElement('iframe');\n      f.className = 'tg-film-iframe';\n      f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + film.getAttribute('data-yt') + '?autoplay=1&rel=0&playsinline=1&enablejsapi=1';\n      f.title = film.getAttribute('data-title');\n      f.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share';\n      f.setAttribute('allowfullscreen', '');\n      f.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin');\n      film.parentNode.replaceChild(f, film);\n      filmFrame = f;\n      solo('film');\n      f.focus();                                         \/\/ \u7528\u9375\u76e4\u6309\u7684:\u7126\u9ede\u8ddf\u8457\u9032\u5f71\u7247,\u4e0d\u6703\u6389\u56de\u9801\u9762\u6700\u4e0a\u9762\n    });\n    root.addEventListener('tg-solo', function (e) {\n      if (e.detail === 'film' || !filmFrame) return;\n      try { filmFrame.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*'); } catch (err) {}\n    });\n  }\n\n  \/* \u2500\u2500 \u8a66\u807d:\u56db\u9996\u66f2\u98a8\u3001\u4e00\u500b\u81ea\u5df1\u756b\u7684\u64ad\u653e\u5668\u3002JS \u6c92\u8dd1\u6642\u56db\u500b <audio controls> \u7167\u6a23\u80fd\u64ad\u3002\n     \u9ede\u66f2\u98a8 = \u63db\u90a3\u9996\u4e26\u64ad\u653e;\u4e00\u9996\u64ad\u5b8c\u81ea\u52d5\u63a5\u4e0b\u4e00\u9996(\u4e00\u8def\u807d\u5b8c\u56db\u7a2e\u66f2\u98a8),\u6700\u5f8c\u4e00\u9996\u64ad\u5b8c\u505c\u56de\u7b2c\u4e00\u9996\u3002\n     \u6bcf\u9996\u7684 <audio> \u90fd\u662f preload=\"none\":\u9ede\u4e86\u624d\u4e0b\u8f09\u90a3\u4e00\u9996(0.4\uff5e1 MB) \u2500\u2500 *\/\n  var player = root.querySelector('.tg-player');\n  if (player) {\n    var items = player.querySelectorAll('.tg-tracks li');\n    var btn = player.querySelector('.tg-play');\n    var wave = player.querySelector('.tg-wave');\n    var tOut = player.querySelector('.tg-t');\n    var dOut = player.querySelector('.tg-d');\n    var msg = player.querySelector('.tg-player-msg');\n    var genreBox = player.querySelector('.tg-genres');\n    var ERR = '\u97f3\u6a94\u6c92\u6709\u8f09\u5165\u6210\u529f\u3002\u91cd\u65b0\u6574\u7406\u9801\u9762\u518d\u8a66\u4e00\u6b21\u3002';\n    var tracks = [];\n    var bars = [];\n    var cur = 0;\n\n    var fmt = function (s) {\n      s = Math.max(0, Math.floor(s));\n      return Math.floor(s \/ 60) + ':' + (s % 60 < 10 ? '0' : '') + (s % 60);\n    };\n    var setState = function (s, text) {\n      player.setAttribute('data-state', s);\n      btn.setAttribute('aria-label', s === 'playing' ? '\u66ab\u505c\u8a66\u807d' : '\u64ad\u653e\u8a66\u807d');\n      msg.textContent = text || '';\n    };\n    var curAudio = function () { return tracks[cur].audio; };\n    var lenNow = function () { return curAudio().duration || tracks[cur].len; };\n    var draw = function () {\n      var t = curAudio().currentTime || 0;\n      var lit = Math.round(t \/ lenNow() * bars.length);\n      for (var j = 0; j < bars.length; j++) bars[j].classList.toggle('tg-on', j < lit);\n      tOut.textContent = fmt(t);\n      wave.setAttribute('aria-valuenow', String(Math.round(t)));\n      wave.setAttribute('aria-valuetext', tracks[cur].name + ' ' + Math.round(t) + ' \u79d2');\n    };\n    var drawTrack = function () {\n      var pk = tracks[cur].peaks;\n      wave.textContent = '';\n      bars = [];\n      for (var j = 0; j < pk.length; j++) {\n        var b = document.createElement('span');\n        b.style.height = Math.max(6, +pk[j]) + '%';\n        wave.appendChild(b);\n        bars.push(b);\n      }\n      for (var k = 0; k < tracks.length; k++) tracks[k].key.setAttribute('aria-pressed', k === cur ? 'true' : 'false');\n      dOut.textContent = fmt(tracks[cur].len);\n      wave.setAttribute('aria-valuemax', String(Math.round(tracks[cur].len)));\n      draw();\n    };\n    var play = function () {\n      var a = curAudio();\n      if (a.readyState < 3) setState('loading', '\u8f09\u5165\u4e2d');\n      var p = a.play();\n      if (p && p.catch) p.catch(function (e) { if (!e || e.name !== 'AbortError') setState('error', ERR); });\n    };\n    var select = function (k, andPlay) {\n      if (k !== cur) {\n        var old = curAudio();\n        old.pause();\n        try { old.currentTime = 0; } catch (e) {}\n        cur = k;\n        drawTrack();\n      }\n      if (andPlay) play();\n    };\n    var seek = function (t) {\n      var a = curAudio();\n      try { a.currentTime = Math.min(Math.max(0, t), lenNow() - 0.1); } catch (e) {}\n      draw();\n    };\n\n    for (var i = 0; i < items.length; i++) (function (k) {\n      var li = items[k];\n      var a = li.querySelector('audio');\n      var key = document.createElement('button');\n      var name = li.querySelector('.tg-track-name').textContent;\n      a.removeAttribute('controls');\n      key.type = 'button';\n      key.className = 'tg-key';\n      key.textContent = name;\n      key.setAttribute('aria-pressed', 'false');\n      key.addEventListener('click', function () {\n        if (k === cur && !a.paused) return;            \/\/ \u5df2\u7d93\u5728\u64ad\u9019\u9996:\u4e0d\u8981\u5f9e\u982d\u4f86\n        if (player.getAttribute('data-state') === 'error') a.load();\n        select(k, true);\n      });\n      genreBox.appendChild(key);\n      tracks.push({ audio: a, key: key, name: name, len: +li.getAttribute('data-len') || 30,\n                    peaks: (li.getAttribute('data-peaks') || '').split(',') });\n      \/\/ \u6bcf\u9996\u81ea\u5df1\u7684\u4e8b\u4ef6\u53ea\u5728\u5b83\u662f\u300c\u73fe\u5728\u9019\u9996\u300d\u6642\u624d\u7b97(\u63db\u66f2\u98a8\u6642,\u820a\u7684\u90a3\u9996\u665a\u4e00\u9ede\u624d\u9001\u51fa pause)\n      var mine = function (fn) { return function () { if (curAudio() === a) fn(); }; };\n      a.addEventListener('waiting', mine(function () { setState('loading', '\u8f09\u5165\u4e2d'); }));\n      a.addEventListener('playing', mine(function () { setState('playing'); }));\n      a.addEventListener('play', mine(function () { solo('listen'); }));\n      a.addEventListener('pause', mine(function () { if (player.getAttribute('data-state') !== 'error') setState('idle'); }));\n      a.addEventListener('timeupdate', mine(draw));\n      a.addEventListener('error', mine(function () { setState('error', ERR); }));\n      a.addEventListener('ended', mine(function () {\n        if (k < items.length - 1) { select(k + 1, true); }\n        else { select(0, false); setState('idle'); }\n      }));\n    })(i);\n    drawTrack();\n    root.addEventListener('tg-solo', function (e) {    \/\/ \u963f\u8f1d\u7684\u5f71\u7247\u3001Groove \u958b\u59cb\u64ad:\u9019\u908a\u505c\n      if (e.detail !== 'listen' && !curAudio().paused) curAudio().pause();\n    });\n\n    btn.addEventListener('click', function () {\n      var a = curAudio();\n      if (player.getAttribute('data-state') === 'error') a.load();\n      if (a.paused) play(); else a.pause();\n    });\n    wave.addEventListener('click', function (e) {\n      var rc = wave.getBoundingClientRect();\n      seek((e.clientX - rc.left) \/ rc.width * lenNow());\n    });\n    wave.addEventListener('keydown', function (e) {\n      var k = e.key;\n      if (k === 'ArrowRight' || k === 'ArrowUp') { seek(curAudio().currentTime + 5); e.preventDefault(); }\n      else if (k === 'ArrowLeft' || k === 'ArrowDown') { seek(curAudio().currentTime - 5); e.preventDefault(); }\n      else if (k === 'Home') { seek(0); e.preventDefault(); }\n      else if (k === ' ' || k === 'Enter') { btn.click(); e.preventDefault(); }\n    });\n  }\n\n  \/* \u2500\u2500 \u9ede\u9f13\u5c31\u97ff\u3002\u9ede\u64ca\u7bc4\u570d\u548c\u4eae\u5716\u7684\u4f4d\u7f6e\u5728 kit-stage-data.js(kit_stage.py \u7522\u751f);\u8072\u97f3\u5728 data-audio \u90a3\u500b\u8cc7\u6599\u593e,\u6a94\u540d <\u7b2c\u5e7e\u9846>-<1..3>.mp3,\n     \u6bcf\u9846\u9f13 3 \u500b\u8f2a\u66ff\u53d6\u6a23,\u9023\u9ede\u6703\u63db\u4e0b\u4e00\u500b\u3002\u7db2\u5740\u662f https \u5c31\u7528 Web Audio(\u5ef6\u9072\u5c0f\u3001\u53ef\u4ee5\u758a);\u672c\u6a5f file:\/\/ \u6293\u4e0d\u5230\u6a94\u6848,\u6539\u7528 <audio>\u3002\n     \u5148\u53ea\u8f09\u6bcf\u9846\u9f13\u7684\u7b2c 1 \u500b(\u6372\u5230\u9644\u8fd1\u624d\u8f09),\u9ede\u904e\u7684\u9f13\u624d\u8f09\u7b2c 2\u30013 \u500b:\u5168\u90e8 2.2 MB,\u7b2c\u4e00\u6279 0.7 MB \u2500\u2500 *\/\n  var kit = window.TG_KIT;\n  var stageSec = root.querySelector('.tg-stage');\n  var stage = root.querySelector('.tg-stage-art');\n  if (kit && stage && stageSec) {\n    var litBase = stageSec.getAttribute('data-lit');\n    var audioBase = stageSec.getAttribute('data-audio');\n    var now = root.querySelector('.tg-stage-now');\n    var nowV = now.querySelector('.tg-display-value');\n    var padsBox = root.querySelector('.tg-pads');\n    var N = kit.names.length, RR = 3;\n    var cells = new Uint8Array(kit.cols * kit.rows);\n    cells.fill(255);\n    var re = \/([a-p.])(\\d+)\/g, m, pos = 0;\n    while ((m = re.exec(kit.map))) {\n      var run = +m[2];\n      if (m[1] !== '.') cells.fill(m[1].charCodeAt(0) - 97, pos, pos + run);\n      pos += run;\n    }\n\n    var litBox = stage.querySelector('.tg-stage-lit');\n    var lits = [], pads = [];\n    var buildLits = function () {\n      if (lits.length) return;\n      for (var i = 0; i < N; i++) {\n        var b = kit.boxes[i], im = new Image();\n        im.alt = ''; im.decoding = 'async'; im.draggable = false;\n        im.style.left = b[0] + '%'; im.style.top = b[1] + '%'; im.style.width = b[2] + '%'; im.style.height = b[3] + '%';\n        im.src = litBase + i + '.webp';\n        litBox.appendChild(im);\n        lits.push(im);\n      }\n    };\n    for (var p = 0; p < N; p++) {\n      var pb = document.createElement('button');\n      pb.type = 'button';\n      pb.className = 'tg-key';\n      pb.textContent = kit.names[p];\n      pb.setAttribute('aria-label', '\u8a66\u807d ' + kit.names[p]);\n      pb.setAttribute('data-i', String(p));\n      padsBox.appendChild(pb);\n      pads.push(pb);\n    }\n\n    \/\/ \u8072\u97f3\n    var AC = window.AudioContext || window.webkitAudioContext;\n    var useWA = !!AC && location.protocol !== 'file:' && !!window.fetch;\n    var ctx = null;\n    var getCtx = function () { if (!ctx) ctx = new AC(); return ctx; };\n    var bufs = {};\n    var load = function (i, r, v) {                    \/\/ v = 'v2-':Kick 2 \/ Snare 2 \u7684\u6a94(grooves.py \u9304\u7684)\n      var key = (v || '') + i + '-' + r;\n      if (bufs[key]) return bufs[key];\n      return loadUrl(key, audioBase + key + '.mp3');\n    };\n    var loadUrl = function (key, url) {\n      if (bufs[key]) return bufs[key];\n      var pr;\n      if (useWA) {\n        pr = fetch(url).then(function (res) { if (!res.ok) throw new Error(res.status); return res.arrayBuffer(); })\n          .then(function (ab) { return new Promise(function (ok, no) { getCtx().decodeAudioData(ab, ok, no); }); });\n      } else {\n        pr = new Promise(function (ok, no) {\n          var a = new Audio();\n          a.preload = 'auto';\n          a.addEventListener('canplaythrough', function () { ok(a); }, { once: true });\n          a.addEventListener('error', function () { no(new Error('audio')); }, { once: true });\n          a.src = url;\n          a.load();\n        });\n      }\n      bufs[key] = pr;\n      pr.catch(function () { delete bufs[key]; });   \/\/ \u5931\u6557\u7684\u4e0b\u6b21\u9ede\u518d\u8a66\u4e00\u6b21\n      return pr;\n    };\n    var preload = function () { for (var i = 0; i < N; i++) load(i, 1).catch(function () {}); buildLits(); };\n    if ('IntersectionObserver' in window) {\n      var sio = new IntersectionObserver(function (es) {\n        if (es[0].isIntersecting) { preload(); sio.disconnect(); }\n      }, { rootMargin: '600px 0px' });\n      sio.observe(stage);\n    } else {\n      preload();\n    }\n    if (navigator.audioSession) { try { navigator.audioSession.type = 'playback'; } catch (e) {} }   \/\/ iPhone \u7684\u975c\u97f3\u9375\u4e0d\u64cb\u7db2\u9801\u7684\u8072\u97f3\n\n    \/* iPhone \u958b\u975c\u97f3\u6a21\u5f0f\u6642 Web Audio \u6703\u88ab\u6d88\u97f3,<audio> \u4e0d\u6703(Shawn 10-25 \u5728\u624b\u6a5f\u4e0a:\u300c\u4e0d\u540c\u66f2\u98a8\u300d\u6709\u8072\u97f3,\u9ede\u9f13\u6c92\u6709)\u3002\u4e0a\u9762\u90a3\u884c\n       audioSession \u53ea\u6709\u65b0\u7684 Safari \u6709,\u653e\u5728 iframe \u88e1\u3001App \u5167\u5efa\u7684\u700f\u89bd\u5668\u4e5f\u4e0d\u4e00\u5b9a\u6709\u7528\u3002\u6240\u4ee5\u6bcf\u6b21\u9ede\u7684\u6642\u5019,\u9801\u9762\u4e0a\u6c92\u6709\u5225\u7684\u8072\u97f3\u5728\u64ad,\n       \u5c31\u64ad\u4e00\u6bb5\u7121\u8072\u7684 <audio>(\u5faa\u74b0):\u6709 <audio> \u5728\u64ad,iPhone \u5c31\u628a\u6574\u9801\u7576\u6210\u5728\u64ad\u97f3\u6a02,Web Audio \u4e5f\u8ddf\u8457\u51fa\u8072\u3002\n       \u6700\u5f8c\u4e00\u6b21\u9ede\u4e86 60 \u79d2\u5f8c\u3001\u6216\u9801\u9762\u5207\u5230\u80cc\u666f\u5c31\u505c\u6389(\u4e0d\u7136\u9396\u5b9a\u756b\u9762\u6703\u4e00\u76f4\u986f\u793a\u5728\u64ad\u653e) *\/\n    var SILENT = 'data:audio\/wav;base64,UklGRsQPAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YaAPAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA';\n    var keepAlive = null, keepTimer = 0;\n    var mediaBusy = function () {\n      var ms = root.querySelectorAll('audio');\n      for (var j = 0; j < ms.length; j++) if (!ms[j].paused) return true;\n      return false;\n    };\n    var unlock = function () {\n      if (!useWA) return;\n      var c = getCtx();\n      if (c.state !== 'running') c.resume();\n      if (!keepAlive) { keepAlive = new Audio(SILENT); keepAlive.loop = true; keepAlive.setAttribute('playsinline', ''); }\n      if (keepAlive.paused && !mediaBusy()) { var kp = keepAlive.play(); if (kp && kp.catch) kp.catch(function () {}); }\n      clearTimeout(keepTimer);\n      keepTimer = setTimeout(function () { if (!gCur) keepAlive.pause(); }, 60000);\n    };\n    document.addEventListener('visibilitychange', function () { if (document.hidden && keepAlive) keepAlive.pause(); });\n\n    var rr = [];\n    var variant = [0, 0];                              \/\/ [Kick 2, Snare 2]:\u8ddf\u96f7\u516c\u9f13\u7d44\u9801\u7684 1 | 2 \u4e00\u6a23\n    var pre = function (i) { return i < 2 && variant[i] ? 'v2-' : ''; };\n    var setNow = function (state, text) { now.setAttribute('data-state', state); nowV.textContent = text; };\n    var flash = function (el) { el.classList.remove('tg-hit'); void el.offsetWidth; el.classList.add('tg-hit'); };\n    var padTimers = [];\n    var hit = function (i) {\n      buildLits();\n      var r = rr[i] = (rr[i] || 0) % RR + 1;\n      var name = kit.names[i];\n      if (lits[i]) flash(lits[i]);\n      pads[i].classList.add('tg-hit');                 \/\/ \u6309\u9375\u4eae\u4e00\u4e0b\u5c31\u56de\u4f86\n      clearTimeout(padTimers[i]);\n      padTimers[i] = setTimeout(function () { pads[i].classList.remove('tg-hit'); }, 180);\n      unlock();\n      var t0 = Date.now(), done = false;\n      setTimeout(function () { if (!done) setNow('loading', '\u8f09\u5165\u4e2d'); }, 150);\n      var v = pre(i);\n      load(i, r, v).then(function (b) {\n        done = true;\n        setNow('playing', name);\n        if (Date.now() - t0 > 1500) return;      \/\/ \u8f09\u592a\u4e45\u5c31\u4e0d\u88dc\u653e(\u4f7f\u7528\u8005\u5df2\u7d93\u5728\u9ede\u5225\u7684\u4e86)\n        if (useWA) {\n          var s = getCtx().createBufferSource();\n          s.buffer = b;\n          s.connect(getCtx().destination);\n          s.start();\n        } else {\n          var a = b.cloneNode();\n          var pp = a.play();\n          if (pp && pp.catch) pp.catch(function () {});\n        }\n      }).catch(function () {\n        done = true;\n        setNow('error', '\u8072\u97f3\u6c92\u6709\u8f09\u5165\u6210\u529f\uff0c\u91cd\u65b0\u6574\u7406\u518d\u8a66\u4e00\u6b21');\n      });\n      for (var n = 1; n <= RR; n++) if (n !== r) load(i, n, v).catch(function () {});\n    };\n\n    var pieceAt = function (e) {\n      var rc = stage.getBoundingClientRect();\n      var x = (e.clientX - rc.left) \/ rc.width, y = (e.clientY - rc.top) \/ rc.height;\n      if (x < 0 || x >= 1 || y < 0 || y >= 1) return -1;\n      var v = cells[Math.floor(y * kit.rows) * kit.cols + Math.floor(x * kit.cols)];\n      return v === 255 ? -1 : v;\n    };\n    \/\/ \u6ed1\u9f20\u6309\u4e0b\u53bb\u5c31\u97ff(\u50cf\u6253\u9f13);\u624b\u6307\u8981\u7b49\u653e\u958b(click),\u4e0d\u7136\u60f3\u6372\u9801\u9762\u7684\u6642\u5019\u78b0\u5230\u9f13\u4e5f\u6703\u97ff\u3002\n    \/\/ \u6ed1\u9f20\u6309\u4e0b\u53bb\u5df2\u7d93\u97ff\u904e\u4e86,\u63a5\u8457\u4f86\u7684 click \u4e0d\u8981\u518d\u97ff\u4e00\u6b21;\u9375\u76e4(Enter \/ \u7a7a\u767d\u9375)\u9001\u7684 click \u6c92\u6709\u5ea7\u6a19(detail = 0),\u7167\u6a23\u97ff\n    var lastPointer = '';\n    var isMouseClick = function (e) { return e.detail > 0 && lastPointer === 'mouse'; };\n    stage.addEventListener('pointerdown', function (e) {\n      lastPointer = e.pointerType;\n      if (e.pointerType !== 'mouse' || e.button !== 0) return;\n      var i = pieceAt(e);\n      if (i >= 0) { e.preventDefault(); hit(i); }\n    });\n    stage.addEventListener('click', function (e) {\n      if (isMouseClick(e)) return;\n      var i = pieceAt(e);\n      if (i >= 0) hit(i);\n    });\n    var hover = -1;\n    var setHover = function (i) {\n      if (i === hover) return;\n      if (hover >= 0 && lits[hover]) lits[hover].classList.remove('tg-hover');\n      hover = i;\n      if (i >= 0 && lits[i]) lits[i].classList.add('tg-hover');\n      stage.classList.toggle('tg-over', i >= 0);\n    };\n    stage.addEventListener('pointermove', function (e) { if (e.pointerType === 'mouse') setHover(pieceAt(e)); });\n    stage.addEventListener('pointerleave', function () { setHover(-1); });\n\n    padsBox.addEventListener('pointerdown', function (e) {\n      lastPointer = e.pointerType;\n      var b = e.target.closest('button[data-i]');\n      if (!b || e.pointerType !== 'mouse' || e.button !== 0) return;\n      hit(+b.getAttribute('data-i'));\n    });\n    padsBox.addEventListener('click', function (e) {\n      var b = e.target.closest('button[data-i]');\n      if (!b || isMouseClick(e)) return;\n      hit(+b.getAttribute('data-i'));      \/\/ \u624b\u6307\u3001\u9375\u76e4(Enter \/ \u7a7a\u767d\u9375)\n    });\n\n    \/* \u2500\u2500 Groove:\u6bcf\u500b Groove 4 \u500b\u6a94(Kick 1\/2 \u00d7 Snare 1\/2,data-src \u7684\u9806\u5e8f 11\u300112\u300121\u300122),\u540c\u4e00\u4efd MIDI \u5f9e\u96f7\u516c\u9304\u7684(grooves.py),\n       \u6240\u4ee5\u64ad\u5230\u4e00\u534a\u5207 Kick \/ Snare,\u63db\u5230\u53e6\u4e00\u500b\u6a94\u7684\u540c\u4e00\u500b\u4f4d\u7f6e\u5c31\u63a5\u5f97\u4e0a(12 ms \u4ea4\u53c9\u6de1\u5165\u6de1\u51fa)\u3002\n       data-hits = \u6bcf\u4e00\u4e0b\u7684\u6642\u9593(ms)\u548c\u6253\u5230\u54ea\u9846\u9f13,\u9f13\u7d44\u7167\u8457\u4eae\u3002\u518d\u6309\u4e00\u6b21\u6b63\u5728\u64ad\u7684 Groove = \u505c \u2500\u2500 *\/\n    var gKeys = root.querySelectorAll('.tg-grooves button');\n    var gData = [];\n    for (var gk = 0; gk < gKeys.length; gk++) {\n      var hs = (gKeys[gk].getAttribute('data-hits') || '').split(',');\n      for (var h = 0; h < hs.length; h++) { var hp = hs[h].split(':'); hs[h] = [+hp[0], +hp[1]]; }\n      gData.push({ name: gKeys[gk].textContent, bpm: gKeys[gk].getAttribute('data-bpm'),\n                   files: gKeys[gk].getAttribute('data-src').split(','), hits: hs });\n    }\n    var gCur = null, gToken = 0, gRaf = 0, hitIdx = 0;\n    var combo = function () { return variant[0] * 2 + variant[1]; };\n    var tap = function (i) {\n      buildLits();\n      if (lits[i]) { lits[i].classList.remove('tg-tap', 'tg-hit'); void lits[i].offsetWidth; lits[i].classList.add('tg-tap'); }\n    };\n    var gPos = function () {                           \/\/ \u73fe\u5728\u807d\u5230\u7684\u662f Groove \u7684\u7b2c\u5e7e\u79d2(Web Audio \u8981\u6263\u6389\u8f38\u51fa\u7684\u5ef6\u9072,\u71c8\u624d\u5c0d\u5f97\u4e0a\u8072\u97f3)\n      if (!gCur) return 0;\n      if (gCur.audio) return gCur.audio.currentTime;\n      var c = getCtx();\n      return c.currentTime - gCur.t0 - (c.outputLatency || c.baseLatency || 0);\n    };\n    var gTick = function () {\n      if (!gCur) return;\n      var p = gPos() * 1000, hits = gData[gCur.k].hits;\n      while (hitIdx < hits.length && hits[hitIdx][0] <= p) { tap(hits[hitIdx][1]); hitIdx++; }\n      gRaf = requestAnimationFrame(gTick);\n    };\n    var silence = function (c0) {                      \/\/ \u505c\u6389\u6b63\u5728\u64ad\u7684\u90a3\u500b\u6a94(12 ms \u6de1\u51fa)\n      if (!c0) return;\n      if (c0.audio) { c0.audio.pause(); return; }\n      var t = getCtx().currentTime;\n      c0.gain.gain.cancelScheduledValues(t);\n      c0.gain.gain.setValueAtTime(c0.gain.gain.value, t);\n      c0.gain.gain.linearRampToValueAtTime(0, t + 0.012);\n      try { c0.src.stop(t + 0.02); } catch (e) {}\n    };\n    var markGroove = function () {\n      for (var j = 0; j < gKeys.length; j++) gKeys[j].setAttribute('aria-pressed', gCur && gCur.k === j ? 'true' : 'false');\n    };\n    var endGroove = function () {\n      silence(gCur);\n      gCur = null;\n      cancelAnimationFrame(gRaf);\n      markGroove();\n      setNow('idle', '\u9ede\u4e00\u9846\u9f13');\n    };\n    var playGroove = function (k, keepPos) {\n      var d = gData[k], url = d.files[combo()];\n      var token = ++gToken, done = false;\n      unlock();\n      setTimeout(function () { if (!done && token === gToken) setNow('loading', '\u8f09\u5165\u4e2d'); }, 150);\n      loadUrl('g' + k + '-' + combo(), url).then(function (b) {\n        done = true;\n        if (token !== gToken) return;                  \/\/ \u7b49\u7684\u6642\u5019\u53c8\u6309\u4e86\u5225\u7684\n        var old = gCur, offset = 0;\n        if (useWA) {\n          var c = getCtx(), when = c.currentTime + 0.03;\n          if (keepPos && old) offset = Math.max(0, when - old.t0);\n          var gn = c.createGain(), src = c.createBufferSource();\n          src.buffer = b;\n          src.connect(gn);\n          gn.connect(c.destination);\n          if (offset > 0) { gn.gain.setValueAtTime(0, when); gn.gain.linearRampToValueAtTime(1, when + 0.012); }\n          src.start(when, offset);\n          gCur = { k: k, src: src, gain: gn, t0: when - offset };\n          src.onended = function () { if (gCur && gCur.src === src) endGroove(); };\n        } else {\n          if (keepPos && old && old.audio) offset = old.audio.currentTime;\n          var a = b;\n          if (old && old.audio === a) old = null;\n          try { a.currentTime = offset; } catch (e) {}\n          var pp = a.play();\n          if (pp && pp.catch) pp.catch(function () {});\n          gCur = { k: k, audio: a };\n          a.onended = function () { if (gCur && gCur.audio === a) endGroove(); };\n        }\n        silence(old);\n        if (!keepPos) { hitIdx = 0; } \n        var hits = d.hits;\n        while (hitIdx < hits.length && hits[hitIdx][0] < offset * 1000 - 1) hitIdx++;\n        solo('groove');\n        markGroove();\n        setNow('playing', d.name + ' \u00b7 ' + d.bpm + ' BPM');\n        cancelAnimationFrame(gRaf);\n        gRaf = requestAnimationFrame(gTick);\n        for (var f = 0; f < d.files.length; f++) loadUrl('g' + k + '-' + f, d.files[f]).catch(function () {});   \/\/ \u5148\u8f09\u53e6\u5916 3 \u500b,\u5207 Kick \/ Snare \u4e0d\u7528\u7b49\n      }).catch(function () {\n        done = true;\n        if (token === gToken) setNow('error', '\u8072\u97f3\u6c92\u6709\u8f09\u5165\u6210\u529f\uff0c\u91cd\u65b0\u6574\u7406\u518d\u8a66\u4e00\u6b21');\n      });\n    };\n    for (var gi = 0; gi < gKeys.length; gi++) (function (k) {\n      gKeys[k].addEventListener('click', function () {\n        if (gCur && gCur.k === k) { gToken++; endGroove(); return; }\n        playGroove(k, false);\n      });\n    })(gi);\n    root.addEventListener('tg-solo', function (e) {    \/\/ \u963f\u8f1d\u7684\u5f71\u7247\u3001\u4e0d\u540c\u66f2\u98a8\u958b\u59cb\u64ad:Groove \u505c(\u9084\u5728\u8f09\u7684\u4e5f\u53d6\u6d88)\n      if (e.detail === 'groove') return;\n      gToken++;\n      if (gCur) endGroove();\n    });\n\n    \/* \u2500\u2500 Kick \/ Snare \u7684 1 | 2\u3002Groove \u5728\u64ad:\u63db\u5230\u90a3\u500b\u7d44\u5408\u7684\u6a94\u3001\u540c\u4e00\u500b\u4f4d\u7f6e\u63a5\u8457\u64ad;\u6c92\u5728\u64ad:\u6253\u4e00\u4e0b\u65b0\u7684\u90a3\u9846\u7d66\u4f60\u807d \u2500\u2500 *\/\n    var sws = root.querySelectorAll('.tg-switch');\n    for (var sw = 0; sw < sws.length; sw++) (function (box) {\n      var which = +box.getAttribute('data-which');\n      var bs = box.querySelectorAll('button');\n      for (var q = 0; q < bs.length; q++) bs[q].addEventListener('click', function () {\n        var v = +this.getAttribute('data-v');\n        for (var j = 0; j < bs.length; j++) bs[j].setAttribute('aria-pressed', bs[j] === this ? 'true' : 'false');\n        if (variant[which] === v) return;\n        variant[which] = v;\n        if (gCur) playGroove(gCur.k, true); else hit(which);\n      });\n    })(sws[sw]);\n  }\n\n  \/* \u2500\u2500 MULTI OUT:\u6309\u4e00\u4e0b,\u6bcf\u4e00\u689d\u5f9e Out 1-2 \u63db\u6210\u81ea\u5df1\u7684\u8f38\u51fa,\u4e00\u689d\u63a5\u4e00\u689d\u7ffb\u904e\u53bb(Shawn 10-25:\u300c\u9ede\u4e00\u500b MultiTrack \u6309\u9215,Out \u5f9e\u672c\u4f86\u7684 1\u30012\n     \u8b8a\u6210\u5206\u8ecc,\u9019\u6a23\u5b50\u7684\u4e00\u500b\u52d5\u614b\u7684\u756b\u9762\u300d)\u3002\u6372\u5230\u9019\u88e1\u6642\u5148\u662f\u7acb\u9ad4\u8072,\u505c 0.7 \u79d2\u81ea\u5df1\u6309\u4e00\u6b21;\u4f7f\u7528\u8005\u5148\u6309\u4e86\u5c31\u4e0d\u81ea\u52d5\u3002\u6e1b\u5c11\u52d5\u614b:\u76f4\u63a5\u662f\u5206\u8ecc\u3001\u4e0d\u7ffb \u2500\u2500 *\/\n  var outsBox = root.querySelector('.tg-outs');\n  var multiKey = root.querySelector('.tg-multi-key');\n  if (outsBox && multiKey) {\n    var outEls = outsBox.querySelectorAll('.tg-out');\n    var outTimers = [], multiTouched = false;\n    var setMulti = function (on, animate) {\n      outsBox.setAttribute('data-multi', on ? 'on' : 'off');\n      multiKey.setAttribute('aria-pressed', on ? 'true' : 'false');\n      for (var j = 0; j < outTimers.length; j++) clearTimeout(outTimers[j]);\n      outTimers = [];\n      for (var o = 0; o < outEls.length; o++) (function (el, k) {\n        var text = on ? el.getAttribute('data-out') : (el.hasAttribute('data-spare') ? '\u4e0d\u4f7f\u7528' : 'Out 1-2');\n        if (!animate) { el.textContent = text; return; }\n        outTimers.push(setTimeout(function () {\n          el.textContent = text;\n          el.classList.remove('tg-flip'); void el.offsetWidth; el.classList.add('tg-flip');\n        }, k * 70));\n      })(outEls[o], o);\n    };\n    multiKey.hidden = false;\n    multiKey.addEventListener('click', function () {\n      multiTouched = true;\n      setMulti(multiKey.getAttribute('aria-pressed') !== 'true', !reduce);\n    });\n    if (!reduce && 'IntersectionObserver' in window) {\n      setMulti(false, false);\n      var mio = new IntersectionObserver(function (es) {\n        if (!es[0].isIntersecting) return;\n        mio.disconnect();\n        setTimeout(function () { if (!multiTouched) setMulti(true, true); }, 700);\n      }, { threshold: 0.6 });\n      mio.observe(outsBox);\n    }\n  }\n\n  \/* \u2500\u2500 \u6df7\u97f3\u9801\u3001\u9f13\u7d44\u9801\u7684\u77ed\u7247:\u6372\u5230\u9644\u8fd1\u624d\u4e0b\u8f09\u3001\u770b\u5f97\u5230\u624d\u64ad\u3001\u6372\u8d70\u5c31\u505c\u3002\u6e1b\u5c11\u52d5\u614b\u3001\u7701\u6d41\u91cf\u6642\u505c\u5728\u622a\u5716(poster)\u3002\n     \u8f09\u4e0d\u5230\u4e5f\u4e00\u6a23\u505c\u5728\u622a\u5716(\u5f71\u7247\u6c92\u6709 src \u6642\u700f\u89bd\u5668\u986f\u793a poster) \u2500\u2500 *\/\n  var loops = root.querySelectorAll('video.tg-loop');\n  var saveData0 = navigator.connection && navigator.connection.saveData;\n  if (loops.length && !reduce && !saveData0 && 'IntersectionObserver' in window) {\n    var lio = new IntersectionObserver(function (es) {\n      es.forEach(function (e) {\n        var v = e.target;\n        if (e.isIntersecting) {\n          if (!v.getAttribute('src')) { v.src = v.getAttribute('data-src'); v.muted = true; }\n          var pl = v.play();\n          if (pl && pl.catch) pl.catch(function () {});\n        } else if (v.getAttribute('src')) {\n          v.pause();\n        }\n      });\n    }, { rootMargin: '200px 0px' });\n    for (var lv = 0; lv < loops.length; lv++) lio.observe(loops[lv]);\n  }\n\n  \/* \u2500\u2500 hero \u7684\u9f13\u7d44\u52d5\u756b:\u9801\u9762\u8f09\u5b8c\u624d\u958b\u59cb\u4e0b\u8f09\u3002\u4e0d\u6703\u52d5\u7684\u60c5\u6cc1(\u6e1b\u5c11\u52d5\u614b\u3001\u7701\u6d41\u91cf\u3001\u81ea\u52d5\u64ad\u653e\u88ab\u64cb\u3001\u6a94\u6848\u8f09\u4e0d\u5230)\u90fd\u505c\u5728\u975c\u614b\u5716 \u2500\u2500 *\/\n  var vid = root.querySelector('.tg-hero-video');\n  var motionBtn = root.querySelector('.tg-motion');\n  if (vid) {\n    var saveData = navigator.connection && navigator.connection.saveData;\n    var userPaused = false;\n    var onScreen = true;\n    var playVid = function () {\n      if (userPaused || !onScreen) return;\n      var pv = vid.play();\n      if (pv && pv.catch) pv.catch(function () {});\n    };\n    var startVid = function () {\n      \/\/ \u756b\u9762\u4e0a\u8981\u7684\u50cf\u7d20\u5bec > 1400 \u624d\u7528 1920 \u7684\u6a94\u6848(1.6 MB),\u5176\u4ed6\u7528 1280 \u7684(0.7 MB)\n      var need = vid.getBoundingClientRect().width * (window.devicePixelRatio || 1);\n      vid.src = vid.getAttribute(need > 1400 ? 'data-src-large' : 'data-src-small');\n      vid.muted = true;\n      vid.addEventListener('playing', function () {\n        vid.classList.add('tg-on');\n        if (motionBtn) motionBtn.hidden = false;\n      });\n      if ('IntersectionObserver' in window) {\n        \/\/ \u6372\u8d70\u5c31\u66ab\u505c,\u4e0d\u5728\u80cc\u666f\u4e00\u76f4\u5403 CPU\n        new IntersectionObserver(function (es) {\n          onScreen = es[0].isIntersecting;\n          if (onScreen) playVid(); else vid.pause();\n        }).observe(vid);\n      }\n      playVid();\n    };\n    if (!reduce && !saveData) {\n      if (document.readyState === 'complete') startVid();\n      else window.addEventListener('load', startVid);\n    }\n    if (motionBtn) {\n      motionBtn.addEventListener('click', function () {\n        userPaused = !userPaused;\n        motionBtn.setAttribute('aria-pressed', userPaused ? 'true' : 'false');\n        motionBtn.setAttribute('aria-label', userPaused ? '\u64ad\u653e\u9f13\u7d44\u52d5\u756b' : '\u66ab\u505c\u9f13\u7d44\u52d5\u756b');\n        if (userPaused) vid.pause(); else playVid();\n      });\n    }\n  }\n\n  \/* \u2500\u2500 \u5e38\u99d0\u8cfc\u8cb7\u5217(\u7167\u864e\u723a):Hero \u7684\u8cfc\u8cb7\u9375\u6372\u51fa\u756b\u9762\u4e0a\u65b9\u624d\u51fa\u73fe(= \u6372\u5230\u300c\u70ba\u4ec0\u9ebc\u662f\u96f7\u516c\u300d);\n     \u6700\u5f8c\u90a3\u500b\u8cfc\u8cb7\u5340(\u6536\u5c3e\u90a3\u5340\u7684\u50f9\u683c\u5361)\u9032\u5230\u756b\u9762\u3001\u6216\u5df2\u7d93\u6372\u904e\u5b83\u5c31\u6536\u8d77\u4f86,\u5f80\u56de\u6372\u518d\u51fa\u73fe\u3002\n     \u51fa\u73fe\u7684\u6642\u5019 <html> \u52a0 tg-bar-shown,\u7db2\u7ad9\u7684\u5ba2\u670d\u6ce1\u6ce1\u8ddf\u8457\u5f80\u4e0a\u79fb(CSS \u6700\u5f8c\u90a3\u6bb5)\u3002\n     \u6bcf\u6b21\u6372\u52d5\u76f4\u63a5\u770b\u5169\u500b\u4f4d\u7f6e,\u4e0d\u7528 IntersectionObserver:\u5b83\u53ea\u5728\u6771\u897f\u8de8\u904e\u756b\u9762\u908a\u7de3\u6642\u901a\u77e5,\u4e00\u6b21\u8df3\u5f88\u9060(iPhone \u9ede\u72c0\u614b\u5217\u56de\u9802\u7aef\u3001\n     \u5f9e\u9801\u5c3e\u8df3\u56de\u4e2d\u9593)\u5c31\u6c92\u901a\u77e5,\u8cfc\u8cb7\u5217\u6703\u4e00\u76f4\u85cf\u8457(10-28 \u6e2c\u5230;\u864e\u723a\u7684\u5beb\u6cd5\u4e5f\u6709\u9019\u500b\u554f\u984c,\u53ea\u662f\u6162\u6162\u6372\u770b\u4e0d\u51fa\u4f86) \u2500\u2500 *\/\n  var barEl = root.querySelector('.tg-bar');\n  var heroBtn = root.querySelector('.tg-hero .tg-buy');\n  var endBuy = root.querySelector('.tg-end .tg-offer');\n  if (barEl && heroBtn) {\n    var barOn = null, barTick = false;\n    var syncBar = function () {\n      barTick = false;\n      var vh = window.innerHeight || document.documentElement.clientHeight;\n      var on = heroBtn.getBoundingClientRect().bottom < 0 && !(endBuy && endBuy.getBoundingClientRect().top < vh);\n      if (on === barOn) return;\n      barOn = on;\n      barEl.classList.toggle('tg-bar-on', on);\n      document.documentElement.classList.toggle('tg-bar-shown', on);\n    };\n    var onBarScroll = function () {\n      if (!barTick) { barTick = true; window.requestAnimationFrame(syncBar); }\n    };\n    window.addEventListener('scroll', onBarScroll, { passive: true });\n    window.addEventListener('resize', onBarScroll);\n    syncBar();\n  } else if (barEl) {\n    barEl.classList.add('tg-bar-on');\n  }\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":104090,"comment_status":"open","ping_status":"closed","template":"elementor_header_footer","meta":[],"product_brand":[],"product_cat":[699,627],"product_tag":[],"class_list":["post-104023","product","type-product","status-publish","has-post-thumbnail","product_cat--plugins","product_cat-digital-products","first","instock","sale","downloadable","virtual","purchasable","product-type-simple"],"composite_virtual":false,"composite_layout":"","composite_add_to_cart_form_location":"","composite_editable_in_cart":false,"composite_sold_individually_context":"","composite_shop_price_calc":"","composite_components":[],"composite_scenarios":[],"bundled_by":[],"bundle_stock_status":"instock","bundle_stock_quantity":null,"bundle_virtual":false,"bundle_layout":"","bundle_add_to_cart_form_location":"","bundle_editable_in_cart":false,"bundle_sold_individually_context":"","bundle_item_grouping":"","bundle_min_size":"","bundle_max_size":"","bundle_price":[],"bundled_items":[],"bundle_sell_ids":[],"_links":{"self":[{"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/product\/104023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/comments?post=104023"}],"version-history":[{"count":0,"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/product\/104023\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/media\/104090"}],"wp:attachment":[{"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/media?parent=104023"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/product_brand?post=104023"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/product_cat?post=104023"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/ourdaysrecords.com\/class\/wp-json\/wp\/v2\/product_tag?post=104023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}