@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-cyrillic-ext-wght-normal-DiMfzA-V.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-cyrillic-wght-normal-D5lnP6kL.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-ext-wght-normal-Byk3UhVp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-wght-normal-C1hSzPvX.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#eceef1;--surface:#fff;--surface-2:#f5f6f8;--soft:#e4e7ec;--line:#d3d8df;--ink:#15171c;--ink-2:#353a44;--muted:#5f6573;--accent:#df7417;--accent-ink:#a14f06;--on-accent:#fff;--c-gitar:#df7417;--c-nota:#0b8f84;--c-vokal:#cf3a70;--c-akor:#5753dc;--c-araclar:#4b5563;--good:#1b9450;--warn:#b57d00;--bad:#d23c2a;--wood:#3a2920;--wood-edge:#24180f;--fret:#b9bec6;--string:#e7e3da;--inlay:#efe4cc;--nut:#f1ebdd;--shadow:0 1px 2px #12161e0f, 0 6px 18px #12161e0f;--shadow-lg:0 12px 40px #12161e29;--seg-on:var(--surface);--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;--font-body:"Figtree Variable", "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-hand:"Caveat Variable", "Caveat", "Segoe Print", "Bradley Hand", cursive;--r-sm:8px;--r:12px;--r-lg:18px;--mod:var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d0f13;--surface:#161920;--surface-2:#1c2028;--soft:#232833;--line:#2c323d;--ink:#eceef2;--ink-2:#c8ccd4;--muted:#99a1af;--accent:#f28e35;--accent-ink:#f7a75c;--on-accent:#1b1006;--c-gitar:#f28e35;--c-nota:#2bc3b3;--c-vokal:#f0659a;--c-akor:#8d89ff;--c-araclar:#9aa3b2;--good:#3ccb7f;--warn:#f0c14b;--bad:#ff6b57;--wood:#2e2019;--wood-edge:#1a110b;--fret:#8f959e;--string:#cfcac0;--inlay:#d8ceb7;--nut:#ddd5c4;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000040;--shadow-lg:0 16px 48px #00000080;--seg-on:#3a4150;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d0f13;--surface:#161920;--surface-2:#1c2028;--soft:#232833;--line:#2c323d;--ink:#eceef2;--ink-2:#c8ccd4;--muted:#99a1af;--accent:#f28e35;--accent-ink:#f7a75c;--on-accent:#1b1006;--c-gitar:#f28e35;--c-nota:#2bc3b3;--c-vokal:#f0659a;--c-akor:#8d89ff;--c-araclar:#9aa3b2;--good:#3ccb7f;--warn:#f0c14b;--bad:#ff6b57;--wood:#2e2019;--wood-edge:#1a110b;--fret:#8f959e;--string:#cfcac0;--inlay:#d8ceb7;--nut:#ddd5c4;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000040;--shadow-lg:0 16px 48px #00000080;--seg-on:#3a4150;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:15.5px;line-height:1.55}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:30;background:var(--surface);position:fixed;inset:0 0 auto}[hidden]{display:none!important}img,svg,canvas{max-width:100%}button,input,select{font:inherit;color:inherit}a{color:var(--accent-ink)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.15}p{margin:0}:focus-visible{outline:2.5px solid var(--mod);outline-offset:2px;border-radius:6px}.ic{flex:none;width:20px;height:20px}.dim{color:var(--muted)}.t-good{color:var(--good)}.t-bad{color:var(--bad)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.rail{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;align-self:start;gap:18px;height:100vh;padding:22px 14px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--ink);align-items:center;gap:10px;padding:0 8px;text-decoration:none;display:flex}.logo-mark{flex:none;width:34px;height:34px}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:22px;font-weight:800}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--ink-2);border-radius:10px;align-items:center;gap:11px;padding:9px 10px;font-size:14.5px;font-weight:600;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.on{background:var(--soft);color:var(--ink)}.nav-ic{width:30px;height:30px;color:var(--muted);background:var(--surface-2);border-radius:9px;flex:none;place-items:center;display:grid}.nav-item.on .nav-ic,.dock-item.on .nav-ic{color:var(--on-accent);background:var(--ink)}.nav-ic.mod-gitar{color:var(--c-gitar)}.nav-ic.mod-nota{color:var(--c-nota)}.nav-ic.mod-vokal{color:var(--c-vokal)}.nav-ic.mod-akor{color:var(--c-akor)}.nav-item.on .nav-ic.mod-gitar,.dock-item.on .nav-ic.mod-gitar{background:var(--c-gitar);color:#fff}.nav-item.on .nav-ic.mod-nota,.dock-item.on .nav-ic.mod-nota{background:var(--c-nota);color:#fff}.nav-item.on .nav-ic.mod-vokal,.dock-item.on .nav-ic.mod-vokal{background:var(--c-vokal);color:#fff}.nav-item.on .nav-ic.mod-akor,.dock-item.on .nav-ic.mod-akor{background:var(--c-akor);color:#fff}.nav-ic .ic{width:18px;height:18px}.rail-foot{flex-direction:column;gap:10px;margin-top:auto;display:flex}.rail-streak{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:8px;padding:10px 12px;font-size:13px;display:flex}.rs-row{align-items:center;gap:6px;font-weight:600;display:flex}.rs-fl{color:var(--accent);display:grid}.rs-fl .ic{width:16px;height:16px}.rs-sp{flex:1}.rs-xp{font-family:var(--font-mono);color:var(--muted);font-size:12px}.rs-lv{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;display:flex}.mic-chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);border-radius:999px;align-items:center;gap:8px;min-width:0;padding:7px 12px;font-size:13px;font-weight:600;display:flex}.mic-chip .ic{width:17px;height:17px}.mc-txt{white-space:nowrap}.mc-lvl{background:var(--soft);border-radius:3px;flex:1;min-width:26px;height:5px;display:none;overflow:hidden}.mc-lvl-fill{background:var(--good);width:0;height:100%;transition:width 80ms linear;display:block}.mc-dot{background:var(--line);border-radius:50%;flex:none;width:8px;height:8px}.mic-chip[data-state=on]{border-color:color-mix(in srgb, var(--good) 45%, var(--line));color:var(--ink)}.mic-chip[data-state=on] .mc-dot{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent)}.mic-chip[data-state=on] .mc-lvl{display:block}.mic-chip.compact .mc-lvl{display:none!important}.col{flex-direction:column;min-width:0;display:flex}.main{width:100%;max-width:1120px;padding-block:30px 56px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));outline:none;flex:1;margin:0 auto}.topbar,.dock{display:none}.site-foot{padding-block:18px 24px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:6px 18px;width:100%;max-width:1120px;margin:0 auto;font-size:12.5px;display:flex}.banner-wrap{padding-top:14px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}.preview-banner{border-radius:var(--r);background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));flex-wrap:wrap;align-items:center;gap:10px;max-width:1088px;margin:0 auto;padding:10px 14px;font-size:13.5px;display:flex}.preview-banner>span{flex:260px;min-width:0}.preview-banner .ic{color:var(--accent-ink)}@media (max-width:960px){.shell{grid-template-columns:minmax(0,1fr)}.rail{display:none}.topbar{top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--line);padding-block:10px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));align-items:center;gap:10px;display:flex;position:sticky}.topbar .brand{padding:0}.topbar .logo-mark{width:30px;height:30px}.topbar .brand-name{font-size:20px}.tb-sp{flex:1}.dock{z-index:20;background:var(--surface);border-top:1px solid var(--line);padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.dock-item{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;padding:2px 4px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.dock-item .nav-ic{background:0 0;width:34px;height:28px}.dock-item.on{color:var(--ink)}.main{padding-block:20px 110px}.site-foot{padding-bottom:96px}.ex-foot,.pa-result,.range-result{scroll-margin-bottom:84px}}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14.5px;font-weight:650;line-height:1.2;text-decoration:none;transition:background .15s,border-color .15s,transform 80ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn .ic{width:18px;height:18px}.btn-primary{background:var(--ink);color:var(--surface)}.btn-primary:hover{background:color-mix(in srgb, var(--ink) 86%, var(--mod))}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:color-mix(in srgb, var(--ink) 30%, var(--line))}.btn-soft{background:color-mix(in srgb, var(--mod) 11%, var(--surface));color:var(--ink);border-color:color-mix(in srgb, var(--mod) 28%, var(--line))}.btn-soft:hover{background:color-mix(in srgb, var(--mod) 18%, var(--surface))}.btn-soft .ic{color:color-mix(in srgb, var(--mod) 75%, var(--ink))}.btn-subtle{color:var(--ink-2);background:0 0;padding:8px 11px}.btn-subtle:hover{background:var(--soft)}.btn-danger{background:var(--bad);color:#fff}.btn-lg{border-radius:13px;padding:13px 22px;font-size:16px}.btn-sm{padding:6px 10px;font-size:13px}.play-btn.is-playing{border-color:var(--mod)}.play-btn.is-playing .ic{color:var(--mod)}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:38px;height:38px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;display:grid}.icon-btn:hover{color:var(--ink);border-color:color-mix(in srgb, var(--ink) 30%, var(--line))}.link{color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:13.5px;text-decoration:underline}.link-back{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:4px 0;font-size:14px;font-weight:600;display:inline-flex}.link-back:hover{color:var(--ink)}.link-back .ic{width:17px;height:17px}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--mod) 78%, var(--ink));font-size:12.5px;font-weight:700}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.field small,.check small{color:var(--muted);font-size:12.5px;font-weight:500}.field select,.set-row select,.field input[type=number]{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 11px}.check{grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;font-size:14px;font-weight:600;display:grid}.check small{grid-column:2}input[type=range]{accent-color:var(--mod);width:100%}input[type=checkbox]{accent-color:var(--mod);width:18px;height:18px}.seg{background:var(--soft);border-radius:11px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:9px;padding:7px 12px;font-size:13.5px;font-weight:600}.seg button.on{background:var(--seg-on);color:var(--ink);box-shadow:var(--shadow)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin:6px 0 22px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2.5px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:11px 14px;font-weight:650;display:inline-flex}.tab .ic{width:17px;height:17px}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);border-bottom-color:var(--mod)}@media (max-width:560px){.tabs{gap:0}.tab{white-space:normal;text-align:center;flex-direction:column;flex:1 1 0;gap:3px;min-width:0;padding:8px 4px 9px;font-size:12.5px;line-height:1.2}}.pbar{background:var(--soft);border-radius:4px;height:6px;display:block;overflow:hidden}.pbar-fill{background:var(--mod);border-radius:4px;height:100%;transition:width .25s;display:block}.stars{gap:2px;display:inline-flex}.stars .ic{width:16px;height:16px}.stars .ic.on{fill:#f4b223;stroke:#d99500}.stars .ic.off{fill:none;stroke:var(--line)}.ring-wrap{place-items:center;display:inline-grid;position:relative}.ring-bg{fill:none;stroke:var(--soft);stroke-width:6px}.ring-fg{fill:none;stroke:var(--mod);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .12s linear}.ring-label{font-family:var(--font-mono);font-size:12px;font-weight:600;position:absolute}.sec{margin-top:34px}.sec-title{margin-bottom:14px;font-size:21px}.empty{color:var(--muted)}.tok-note{color:var(--ink);white-space:nowrap;font-weight:650}.tok-chord{font-family:var(--font-hand);border:0;border-bottom:2px dotted color-mix(in srgb, var(--mod) 55%, var(--line));color:var(--ink);cursor:pointer;background:0 0;padding:0 .28em;font-size:1.32em;font-weight:700;line-height:1}.tok-chord:hover{color:var(--mod)}.tok-chord.is-inert{color:inherit;cursor:inherit;border-bottom:0}.nl{flex-direction:column;align-items:center;line-height:1.1;display:inline-flex}.nl-main{font-weight:700}.nl-sub{color:var(--muted);font-size:.72em;font-family:var(--font-mono)}.group-head{flex-direction:column;gap:4px;margin:30px 0 12px;display:flex}.group-head:first-child{margin-top:0}.group-head h2{font-size:20px}.group-head p{color:var(--muted);max-width:68ch;font-size:14px}.toasts{z-index:60;right:max(16px, env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed}.toast{background:var(--ink);color:var(--surface);box-shadow:var(--shadow-lg);opacity:0;border-radius:12px;align-items:center;gap:9px;padding:10px 14px;font-size:14px;font-weight:600;transition:opacity .2s,transform .2s;display:flex;transform:translateY(8px)}.toast.in{opacity:1;transform:none}.toast .ic{width:18px;height:18px}.toast.t-good .ic{color:#6ee7a8}.toast.t-bad .ic{color:#ff9c8c}@media (max-width:960px){.toasts{bottom:calc(84px + env(safe-area-inset-bottom,0px));left:max(16px, env(safe-area-inset-left,0px));align-items:stretch}}.modal-wrap{z-index:50;padding:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) max(16px, env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));opacity:0;background:#080a0e73;place-items:center;transition:opacity .18s;display:grid;position:fixed;inset:0}.modal-wrap.in{opacity:1}.modal{background:var(--surface);border-radius:var(--r-lg);width:min(520px,100%);max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);border:1px solid var(--line);overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 6px;display:flex}.modal-head h2{font-size:20px}.modal-body{flex-direction:column;gap:14px;padding:8px 18px 18px;display:flex}.modal-body p{color:var(--ink-2)}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:0 18px 18px;display:flex}.menu-list{flex-direction:column;gap:4px;display:flex}.menu-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:10px;font-weight:600;display:flex}.menu-item:hover{background:var(--surface-2)}.mic-setup{flex-direction:column;gap:14px;display:flex}.ms-live{border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line);flex-direction:column;align-items:center;gap:6px;padding:16px;display:flex}.ms-note{font-family:var(--font-display);font-size:30px;font-weight:800}.ms-detail{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.ms-actions{flex-wrap:wrap;gap:8px;display:flex}.ms-tips{color:var(--ink-2);margin:0;padding-left:18px;font-size:13.5px}.level-meter{background:var(--soft);border-radius:5px;width:100%;height:8px;position:relative;overflow:hidden}.lm-bar{background:color-mix(in srgb, var(--muted) 70%, var(--soft));width:0;transition:width 60ms linear;position:absolute;inset:0 auto 0 0}.level-meter.hot .lm-bar{background:var(--good)}.lm-gate{background:var(--ink);opacity:.5;width:2px;position:absolute;top:0;bottom:0}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;gap:28px;display:grid}.hero-text{flex-direction:column;justify-content:center;gap:16px;padding:10px 0;display:flex}.hero-title{letter-spacing:-.035em;font-size:clamp(36px,5.4vw,62px);font-weight:800;line-height:.98}.hero-title .hl{color:var(--accent-ink)}.hero-lead{color:var(--ink-2);max-width:46ch;font-size:17px}.hero-cta{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.strings-card{background:var(--wood);border-radius:var(--r-lg);color:#f4efe6;box-shadow:inset 0 0 0 1px #ffffff0a, var(--shadow);flex-direction:column;gap:10px;min-height:300px;padding:18px 18px 16px;display:flex;position:relative;overflow:hidden}.strings-card:after{content:"";pointer-events:none;mix-blend-mode:multiply;opacity:.55;background:repeating-linear-gradient(90deg,#0000 0 21%,#0000002e 21% calc(21% + 3px));position:absolute;inset:0}.sc-head{z-index:2;justify-content:space-between;align-items:baseline;gap:12px;display:flex;position:relative}.sc-title{font-family:var(--font-display);font-size:18px;font-weight:700}.sc-score{font-family:var(--font-mono);color:#d9cdb8;font-size:12.5px}.sc-canvas-wrap{z-index:1;flex:1;min-height:190px;position:relative}.sc-canvas{width:100%;height:100%;position:absolute;inset:0}.sc-hit{cursor:pointer;color:#0000;background:0 0;border:0;border-radius:8px;justify-content:flex-end;align-items:center;height:30px;padding:0 6px;display:flex;position:absolute;left:0;right:0;transform:translateY(-50%)}.sc-hit:hover,.sc-hit:focus-visible{background:#ffffff0f}.sc-hit .sc-name{font-family:var(--font-mono);color:#cdbfa8;background:#00000059;border-radius:6px;padding:2px 7px;font-size:11.5px}.sc-foot{z-index:2;flex-wrap:wrap;align-items:center;gap:10px;display:flex;position:relative}.sc-msg{color:#efe7d9;flex:180px;min-width:0;font-size:14px}.sc-btn{color:#24180f;background:#f4efe6;border:0}.sc-btn:hover{background:#fff}.today{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:26px;display:grid}.today-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:14px;min-width:0;padding:14px 16px;display:flex}.ti-icon{background:var(--surface-2);width:40px;height:40px;color:var(--accent-ink);border-radius:11px;flex:none;place-items:center;display:grid}.ti-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.ti-k{color:var(--muted);font-size:12.5px;font-weight:600}.ti-v{font-family:var(--font-display);font-size:19px;font-weight:750}.mod-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.mod-card{--mod:var(--accent);text-align:left;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);cursor:pointer;color:var(--ink);flex-direction:column;gap:12px;padding:18px;transition:border-color .15s,transform .12s;display:flex;position:relative;overflow:hidden}.mod-card:hover{border-color:color-mix(in srgb, var(--mod) 55%, var(--line));transform:translateY(-1px)}.mod-card .mc-top{align-items:center;gap:12px;display:flex}.mod-card .mc-ic{background:color-mix(in srgb, var(--mod) 14%, var(--surface));width:46px;height:46px;color:var(--mod);border-radius:13px;flex:none;place-items:center;display:grid}.mod-card .mc-ic .ic{width:25px;height:25px}.mod-card h3{font-size:20px}.mod-card .mc-kicker{color:var(--muted);font-size:12.5px;font-weight:600}.mod-card p{color:var(--ink-2);font-size:14.5px}.mod-card .mc-foot{color:var(--muted);align-items:center;gap:12px;margin-top:auto;font-size:13px;display:flex}.mod-card .mc-foot .pbar{flex:1}.mod-card .mc-strip{width:0;position:absolute;top:0;bottom:0;left:0}.next-step{border-radius:var(--r-lg);border:1px dashed color-mix(in srgb, var(--accent) 50%, var(--line));background:color-mix(in srgb, var(--accent) 6%, var(--surface));cursor:pointer;text-align:left;width:100%;color:var(--ink);align-items:center;gap:14px;padding:16px 18px;display:flex}.next-step .ns-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.next-step .ns-k{color:var(--accent-ink);letter-spacing:.04em;text-transform:uppercase;font-size:12.5px;font-weight:700}.next-step .ns-t{font-size:16px;font-weight:700}.tools-row{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.tool-card{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--ink);align-items:center;gap:12px;padding:13px 14px;font-weight:650;display:flex}.tool-card:hover{border-color:color-mix(in srgb, var(--ink) 25%, var(--line))}.tool-card .tc-ic{background:var(--surface-2);width:36px;height:36px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;display:grid}.tool-card small{color:var(--muted);font-size:12.5px;font-weight:500;display:block}@media (max-width:860px){.hero{grid-template-columns:minmax(0,1fr)}.strings-card{min-height:280px}}@media (max-width:720px){.mod-grid,.today{grid-template-columns:minmax(0,1fr)}}.mod-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.mod-icon{background:color-mix(in srgb, var(--mod) 15%, var(--surface));width:56px;height:56px;color:var(--mod);border-radius:16px;place-items:center;display:grid}.mod-icon .ic{width:30px;height:30px}.mod-titles h1{letter-spacing:-.025em;font-size:clamp(28px,4vw,38px);font-weight:800}.mod-titles p{color:var(--ink-2);max-width:64ch;margin-top:4px}.mod-meta{gap:10px;display:flex}.mm-item{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);flex-direction:column;align-items:center;min-width:74px;padding:8px 14px;display:flex}.mm-v{font-family:var(--font-mono);font-size:15px;font-weight:600}.mm-k{color:var(--muted);font-size:12px}@media (max-width:720px){.mod-head{grid-template-columns:auto minmax(0,1fr)}.mod-meta{grid-column:1/-1}.mod-icon{width:48px;height:48px}}.lesson-list-nav{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lesson-item{border-radius:var(--r);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;width:100%;color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 14px;display:grid}.lesson-item:hover{border-color:color-mix(in srgb, var(--mod) 45%, var(--line))}.lesson-item.next{border-color:color-mix(in srgb, var(--mod) 60%, var(--line));box-shadow:0 0 0 3px color-mix(in srgb, var(--mod) 12%, transparent)}.li-num{width:32px;height:32px;font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid}.lesson-item.done .li-num{background:var(--mod);border-color:var(--mod);color:#fff}.li-num .ic{width:16px;height:16px}.li-text{flex-direction:column;gap:2px;min-width:0;display:flex}.li-title{font-weight:700}.li-sum{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;display:-webkit-box;overflow:hidden}.li-meta{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:12px}.lesson-item>.ic{color:var(--muted)}@media (max-width:560px){.lesson-item{grid-template-columns:auto minmax(0,1fr) auto}.li-meta{display:none}}.level-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.level-card{text-align:left;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);cursor:pointer;color:var(--ink);flex-direction:column;gap:8px;min-width:0;padding:15px 16px;display:flex}.level-card:hover{border-color:color-mix(in srgb, var(--mod) 50%, var(--line))}.lc-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.lc-n{text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb, var(--mod) 78%, var(--ink));font-size:12px;font-weight:700}.lc-title{font-family:var(--font-display);font-size:17px;font-weight:700}.lc-desc{color:var(--ink-2);flex:1;font-size:13.5px}.lc-foot{color:var(--muted);align-items:center;gap:8px;margin-top:2px;font-size:12.5px;display:flex}.lc-best{font-family:var(--font-mono);flex:1;font-size:12px}.lc-badge{background:var(--soft);color:var(--ink-2);border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:700}.lc-go{color:var(--mod);display:grid}.lesson{max-width:760px;margin:0 auto}.lesson-head{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.lesson-title{letter-spacing:-.03em;font-size:clamp(30px,4.6vw,44px);font-weight:800}.lesson-sum{color:var(--ink-2);font-size:17.5px}.lesson-body{flex-direction:column;gap:16px;font-size:16.5px;line-height:1.65;display:flex}.lesson-body>p{max-width:68ch}.lesson-h{margin-top:14px;font-size:22px}.lesson-list{flex-direction:column;gap:6px;max-width:68ch;margin:0;padding-left:22px;display:flex}.tip{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px 16px;font-size:15.5px;display:grid}.tip>.ic{color:var(--mod);margin-top:3px}.tip.t-warn{border-color:color-mix(in srgb, var(--warn) 45%, var(--line));background:color-mix(in srgb, var(--warn) 7%, var(--surface))}.tip.t-warn>.ic{color:var(--warn)}.tip.t-success>.ic{color:var(--good)}.tip-title{margin-bottom:2px;display:block}.steps{counter-reset:st;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.steps li{counter-increment:st;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);padding:12px 14px 12px 54px;position:relative}.steps li:before{content:counter(st);background:var(--mod);color:#fff;width:28px;height:28px;font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid;position:absolute;top:12px;left:14px}.steps li p{color:var(--ink-2);font-size:15px}.lesson-play,.lesson-compare,.lesson-go{flex-wrap:wrap;gap:8px;display:flex}.lesson-body .btn{white-space:normal;text-align:left;max-width:100%}.table-wrap{border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(to right, var(--surface) 40%, transparent) left / 28px 100% no-repeat local, linear-gradient(to left, var(--surface) 40%, transparent) right / 28px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #0000002e, transparent) left / 12px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #0000002e, transparent) right / 12px 100% no-repeat scroll, var(--surface);overflow-x:auto}.lesson-table{border-collapse:collapse;width:100%;font-size:14.5px}.lesson-table th,.lesson-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px}.lesson-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);font-size:12.5px}.lesson-table tr:last-child td{border-bottom:0}.lesson-fig{flex-direction:column;gap:8px;margin:4px 0;display:flex}.lesson-fig figcaption{color:var(--muted);font-size:13.5px}.lesson-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin-top:34px;padding-top:22px;display:flex}.next-lesson{text-align:left;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);flex:260px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;min-width:0;padding:12px 14px;display:grid}.next-lesson .nl-k{color:var(--muted);font-size:12px;font-weight:600}.next-lesson .nl-t{grid-row:2;font-weight:700}.next-lesson .ic{color:var(--mod);grid-area:1/2/3}.quiz{border-radius:var(--r);border:1px solid color-mix(in srgb, var(--mod) 35%, var(--line));background:color-mix(in srgb, var(--mod) 5%, var(--surface));flex-direction:column;gap:12px;padding:16px;display:flex}.quiz-q{align-items:flex-start;gap:10px;font-weight:700;display:flex}.quiz-q .ic{color:var(--mod);margin-top:2px}.quiz-play,.quiz-opts{flex-wrap:wrap;gap:8px;display:flex}.quiz-opt{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);border-radius:10px;padding:9px 14px;font-weight:600}.quiz-opt:hover{border-color:var(--mod)}.quiz-opt.ok{background:var(--good);border-color:var(--good);color:#fff}.quiz-opt.bad{border-color:var(--bad);color:var(--bad);text-decoration:line-through}.quiz-exp{font-size:15px}.breath{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:14px;padding:18px;display:flex}.br-stage{place-items:center;height:210px;display:grid;position:relative}.br-circle{background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--mod) 35%, var(--surface)), color-mix(in srgb, var(--mod) 14%, var(--surface)));border:2px solid color-mix(in srgb, var(--mod) 55%, transparent);border-radius:50%;width:190px;height:190px;transition-property:transform;transition-timing-function:ease-in-out;position:absolute}.br-text{text-align:center;flex-direction:column;gap:2px;display:flex;position:relative}.br-label{font-size:16px;font-weight:700}.br-count{font-family:var(--font-display);font-size:34px;font-weight:800}.br-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13.5px;display:flex}.br-pattern{flex:1}.fb-wrap{-webkit-overflow-scrolling:touch;padding:4px 2px 2px;overflow:auto hidden}.fretboard{max-width:none;display:block}.fb-wood{fill:var(--wood);stroke:var(--wood-edge);stroke-width:1px}.fb-inlay{fill:var(--inlay);opacity:.8}.fb-fret{fill:var(--fret)}.fb-nut{fill:var(--nut)}.fb-string{stroke:var(--string)}.fb-num{font-family:var(--font-mono);fill:var(--muted);text-anchor:middle;font-size:10.5px}.fb-num.strong{fill:var(--ink-2);font-weight:600}.fb-hit{fill:#0000;cursor:pointer}.pickable .fb-hit:hover{fill:#ffffff1a}.fb-mark circle{fill:var(--surface);stroke:var(--ink);stroke-width:1.5px}.fb-mark text{font-family:var(--font-body);text-anchor:middle;fill:var(--ink);pointer-events:none;font-size:9.5px;font-weight:700}.fb-mark text.small{font-size:8px}.fb-mark{pointer-events:none}.fb-mark.m-note circle{fill:var(--surface);stroke:var(--mod);stroke-width:2px}.fb-mark.m-root circle{fill:var(--mod);stroke:var(--mod)}.fb-mark.m-root text{fill:#fff}.fb-mark.m-hint circle{fill:var(--warn);stroke:var(--warn)}.fb-mark.m-hint text{fill:#1b1405}.fb-mark.m-ok circle{fill:var(--good);stroke:var(--good)}.fb-mark.m-ok text{fill:#fff}.fb-mark.m-bad circle{fill:var(--bad);stroke:var(--bad)}.fb-mark.m-live circle{fill:var(--mod);stroke:#fff;stroke-width:2px}.fb-mark.m-live text{fill:#fff}.fb-mark.m-dim circle{fill:#0000;stroke:var(--inlay);stroke-dasharray:3 2}.fb-flash circle{fill:var(--mod);stroke:none;opacity:.75;animation:.45s ease-out forwards fbflash}@keyframes fbflash{to{opacity:0}}.kb-wrap{padding:2px;overflow-x:auto}.keyboard{display:block}.kb-white{fill:#fbfaf7;stroke:#9aa0aa;stroke-width:1px}.kb-black{fill:#1f2229;stroke:#111}.pickable .kb-white,.pickable .kb-black{cursor:pointer}.kb-white.m-note,.kb-black.m-note{fill:color-mix(in srgb, var(--mod) 45%, #fbfaf7)}.kb-black.m-note{fill:var(--mod)}.kb-white.m-ok,.kb-black.m-ok{fill:var(--good)}.kb-white.m-hint,.kb-black.m-hint{fill:var(--warn)}.kb-white.m-live,.kb-black.m-live{fill:var(--mod)}.kb-white.m-tap,.kb-black.m-tap{fill:color-mix(in srgb, var(--mod) 70%, #fff)}.kb-label{font-family:var(--font-body);text-anchor:middle;fill:#1f2229;pointer-events:none;font-size:10px;font-weight:700}.kb-label.on-black{fill:#fff}.kb-label.dim{fill:#7a808b;font-weight:600}.chord-row{flex-wrap:wrap;gap:10px;display:flex}.chord-card{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);flex-direction:column;align-items:center;gap:2px;width:118px;padding:8px 8px 6px;display:flex}.chord-card.clickable{cursor:pointer}.chord-card.clickable:hover{border-color:var(--mod)}.chord-card.pulse{animation:.4s ease-out pulse}@keyframes pulse{50%{transform:scale(1.04)}}.chord-name{font-family:var(--font-hand);font-size:30px;font-weight:700;line-height:.9}.chord-cap{color:var(--muted);text-align:center;font-size:12px}.chord-svg{width:114px;height:auto}.cd-string{stroke:var(--ink-2);stroke-width:1.2px}.cd-fret{stroke:var(--line);stroke-width:1.5px}.cd-nut{stroke:var(--ink);stroke-width:4.5px}.cd-dot{fill:var(--ink)}.cd-open{fill:none;stroke:var(--ink-2);stroke-width:1.4px}.cd-mute{text-anchor:middle;fill:var(--muted);font-size:13px;font-family:var(--font-body)}.cd-base{font-family:var(--font-mono);fill:var(--muted);font-size:10px}.gauge{flex-direction:column;align-items:center;width:100%;max-width:360px;margin:0 auto;display:flex;position:relative}.gauge-svg{width:100%;height:auto}.g-track{fill:none;stroke:var(--soft);stroke-width:14px;stroke-linecap:round}.g-zone{fill:none;stroke:color-mix(in srgb, var(--good) 55%, transparent);stroke-width:14px}.g-tick{stroke:var(--muted);stroke-width:1.5px}.g-tick.zero{stroke:var(--ink);stroke-width:2.5px}.g-lbl{font-family:var(--font-mono);fill:var(--muted);text-anchor:middle;font-size:11px}.g-needle{stroke:var(--muted);stroke-width:3.5px;stroke-linecap:round}.gauge.active .g-needle{stroke:var(--bad)}.gauge.active.in-tune .g-needle{stroke:var(--good)}.g-hub{fill:var(--ink)}.g-readout{flex-direction:column;align-items:center;margin-top:2px;display:flex}.g-main{font-family:var(--font-display);font-size:clamp(30px,7vw,42px);font-weight:800;line-height:1}.g-sub{font-family:var(--font-mono);color:var(--muted);font-size:13px}.g-meta{font-family:var(--font-mono);color:var(--muted);justify-content:center;gap:14px;min-height:20px;font-size:12.5px;display:flex}.gauge.in-tune .g-status{color:var(--good);font-weight:700}.pgraph{border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line);width:100%;overflow:hidden}.pg-canvas{display:block}.ex-page{flex-direction:column;gap:14px;max-width:820px;margin:0 auto;display:flex}.ex-start{flex-direction:column;gap:14px;display:flex}.ex-start-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;gap:14px;padding:24px;display:flex}.ex-start-title{letter-spacing:-.03em;font-size:clamp(28px,4.4vw,40px);font-weight:800}.ex-start-desc{color:var(--ink-2);max-width:62ch;font-size:16.5px}.ex-rules{color:var(--ink-2);flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.ex-best{color:var(--muted);font-size:13.5px;font-family:var(--font-mono);align-items:center;gap:10px;display:flex}.ex-start-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.mic-block{border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.mb-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mb-row .level-meter{flex:120px;max-width:220px}.mb-sp{flex:1}.mb-dot{background:var(--line);border-radius:50%;width:10px;height:10px}.mb-dot.on{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent)}.mb-note{color:var(--muted);font-size:13.5px}.mb-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mb-or{color:var(--muted);font-size:13px}.ex-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.ex-titles{min-width:0}.ex-title{font-family:var(--font-display);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:18px;font-weight:750;line-height:1.25;display:-webkit-box;overflow:hidden}.ex-sub{color:var(--muted);font-size:12.5px}.ex-score{font-family:var(--font-mono);align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.ex-pts,.ex-streak{align-items:center;gap:4px;display:inline-flex}.ex-pts .ic{fill:#f4b223;stroke:#d99500;width:16px;height:16px}.ex-streak .ic{width:16px;height:16px;color:var(--accent);fill:color-mix(in srgb, var(--accent) 40%, transparent)}.ex-lives{gap:4px;display:inline-flex}.life{background:var(--soft);border:1px solid var(--line);border-radius:50%;width:10px;height:10px}.life.on{background:var(--bad);border-color:var(--bad)}.ex-bar{align-items:center;gap:10px;display:flex}.ex-bar .pbar{flex:1}.ex-prog{font-family:var(--font-mono);color:var(--muted);text-align:right;min-width:52px;font-size:12.5px}.input-toggle{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.it-label{color:var(--muted);margin-right:2px;font-weight:600}.it-opt{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-weight:600;display:inline-flex}.it-opt .ic{width:15px;height:15px}.it-opt.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.it-opt:disabled{opacity:.5;cursor:not-allowed}.ex-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;gap:18px;padding:22px;display:flex}.ex-top{align-items:center;gap:18px;display:flex}.listen{background:var(--mod);color:#fff;cursor:pointer;width:76px;height:76px;box-shadow:0 6px 18px color-mix(in srgb, var(--mod) 35%, transparent);border:0;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.listen .ic{width:30px;height:30px;margin-left:3px}.listen-rings{pointer-events:none;border-radius:50%;position:absolute;inset:0}.listen.on .listen-rings:before,.listen.on .listen-rings:after{content:"";border:2px solid var(--mod);border-radius:50%;animation:1.4s ease-out infinite ring;position:absolute;inset:0}.listen.on .listen-rings:after{animation-delay:.7s}@keyframes ring{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.ex-prompt{flex-direction:column;gap:4px;min-width:0;display:flex}.ex-q{font-family:var(--font-display);font-size:clamp(20px,3.4vw,26px);font-weight:750;line-height:1.2}.ex-info{color:var(--muted);font-size:14.5px}.ex-area{flex-direction:column;gap:14px;min-width:0;display:flex}.ex-hint{color:var(--muted);font-size:13.5px}.ex-feedback{min-height:24px;font-size:15px}.ex-feedback.t-good{color:var(--good)}.ex-feedback.t-bad{color:var(--bad)}.ex-feedback.t-info{color:var(--ink-2)}.ex-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;display:flex}.ex-tools{flex-wrap:wrap;gap:4px;display:flex}.ex-board{min-width:0}.choices{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.choices.many{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.choices.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;min-height:64px;color:var(--ink);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:14px 10px;transition:border-color .12s,background .12s;display:flex;position:relative}.choice:hover:not(:disabled,.ok,.bad){border-color:var(--mod);background:color-mix(in srgb, var(--mod) 5%, var(--surface))}.choice:after{content:attr(data-k);font-family:var(--font-mono);color:var(--muted);opacity:.7;font-size:10px;position:absolute;top:5px;right:8px}.c-main{font-size:17px;font-weight:750}.c-sub{color:var(--muted);font-size:12.5px;font-family:var(--font-mono)}.choice.ok{background:var(--good);border-color:var(--good);color:#fff}.choice.ok .c-sub{color:#ffffffd9}.choice.reveal{animation:.5s ease-out 2 pulse}.choice.bad{border-color:var(--bad);color:var(--bad);background:color-mix(in srgb, var(--bad) 7%, var(--surface))}.choice:disabled{cursor:default}@media (pointer:coarse){input[type=range]{min-height:24px}.set-row input[type=checkbox]{width:24px;height:24px}}.pa-backing{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.compare-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.compare-row:empty{display:none}.cmp-label{color:var(--muted);font-size:13px;font-weight:600}.slots{flex-wrap:wrap;gap:8px;display:flex}.slot{border:2px dashed var(--line);background:var(--surface-2);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;width:64px;height:64px;transition:border-color .15s,background .15s;display:flex}.slot.cur{border-style:solid;border-color:var(--mod);background:color-mix(in srgb, var(--mod) 7%, var(--surface))}.slot.ok{border-style:solid;border-color:var(--good);background:var(--good);color:#fff}.slot.ok .slot-sub{color:#ffffffd9}.slot.reveal{background:color-mix(in srgb, var(--good) 70%, var(--surface))}.slot.wrong{border-color:var(--bad);color:var(--bad)}.slot-main{font-size:16px;font-weight:800;line-height:1.1}.slot-sub{font-family:var(--font-mono);color:var(--muted);font-size:10.5px}.slot.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.live-note{font-family:var(--font-mono);color:var(--muted);font-size:13px}.hold-top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.hold-ring{flex-direction:column;align-items:center;gap:4px;display:flex}.hold-txt{font-size:14px;font-weight:700}@media (max-width:560px){.hold-top{grid-template-columns:minmax(0,1fr)}.ex-card{padding:16px}.listen{width:64px;height:64px}}.selfcheck{border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line);flex-direction:column;gap:10px;padding:14px;display:flex}.selfcheck:empty{display:none}.selfcheck.subtle{background:0 0;border-style:dashed}.sc-actions{flex-wrap:wrap;gap:8px;display:flex}.chord-live{border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line);align-items:center;gap:14px;padding:14px 16px;display:flex}.cl-label{color:var(--muted);font-size:13px;font-weight:600}.cl-name{font-family:var(--font-hand);min-width:70px;font-size:38px;font-weight:700;line-height:1}.chord-live .pbar{flex:1;max-width:220px}.results{flex-direction:column;gap:18px;width:100%;max-width:640px;margin:0 auto;display:flex}.rs-top{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:26px 16px 6px;display:flex}.rs-top .stars .ic{width:38px;height:38px}.rs-top h1{font-size:clamp(28px,5vw,40px);font-weight:800}.rs-note{color:var(--muted)}.rs-badge{color:var(--accent-ink);font-weight:800;font-family:var(--font-display);font-size:18px}.rs-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.rs-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.rs-k{color:var(--muted);font-size:12.5px;font-weight:600}.rs-v{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.rs-review{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.rs-review h3{margin-bottom:8px;font-size:16px}.rs-review ul{flex-direction:column;gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.rs-review li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-bottom:6px;display:flex}.rs-review li:last-child{border-bottom:0;padding-bottom:0}.rs-ans{color:var(--muted)}.rs-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.dict-slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.dict-slot{border:2px dashed var(--line);background:var(--surface-2);cursor:pointer;min-height:86px;color:var(--ink);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px;display:flex;position:relative}.dict-slot .ds-n{font-family:var(--font-mono);color:var(--muted);font-size:11px;position:absolute;top:6px;left:9px}.dict-slot .ds-main{font-family:var(--font-hand);font-size:32px;font-weight:700;line-height:1}.dict-slot .ds-sub{font-family:var(--font-mono);color:var(--muted);font-size:11.5px}.dict-slot.filled{background:var(--surface);border-style:solid}.dict-slot.sel{border-style:solid;border-color:var(--mod);background:color-mix(in srgb, var(--mod) 8%, var(--surface))}.dict-slot.given{background:var(--surface);cursor:default;border-style:solid}.dict-slot.ok{border-style:solid;border-color:var(--good);background:color-mix(in srgb, var(--good) 12%, var(--surface));cursor:default}.dict-slot.bad{border-style:solid;border-color:var(--bad);background:color-mix(in srgb, var(--bad) 8%, var(--surface))}.dict-slot.playing{box-shadow:0 0 0 3px color-mix(in srgb, var(--mod) 35%, transparent)}@media (max-width:560px){.dict-slot{min-height:64px}.dict-slot .ds-main{font-size:26px}}.palette{flex-wrap:wrap;gap:8px;display:flex}.palette.sticky{z-index:4;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-lg);padding:10px;position:sticky;bottom:10px}@media (max-width:960px){.palette.sticky{bottom:calc(70px + env(safe-area-inset-bottom,0px))}}.pal-btn{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;min-width:64px;color:var(--ink);border-radius:11px;flex-direction:column;align-items:center;padding:6px 10px 5px;display:flex}.pal-btn:hover{border-color:var(--mod)}.pal-main{font-family:var(--font-hand);font-size:26px;font-weight:700;line-height:1}.pal-sub{font-family:var(--font-mono);color:var(--muted);font-size:11px}@media (max-width:560px){.dict-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}.song-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.song-card{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;color:var(--ink);flex-direction:column;gap:8px;padding:16px;display:flex}.song-card:hover{border-color:color-mix(in srgb, var(--mod) 55%, var(--line))}.song-card h3{font-size:19px}.sg-meta{flex-wrap:wrap;gap:6px;display:flex}.sg-tag{background:var(--soft);color:var(--ink-2);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}button.sg-tag{border:1px dashed color-mix(in srgb, var(--ink) 35%, var(--line));cursor:pointer;font:inherit;font-size:12px;font-weight:700}button.sg-tag:hover{border-style:solid}.sg-tag.lv1{background:color-mix(in srgb, var(--good) 16%, var(--surface));color:color-mix(in srgb, var(--good) 75%, var(--ink))}.sg-tag.lv2{background:color-mix(in srgb, var(--warn) 18%, var(--surface));color:color-mix(in srgb, var(--warn) 70%, var(--ink))}.sg-tag.lv3{background:color-mix(in srgb, var(--bad) 14%, var(--surface));color:color-mix(in srgb, var(--bad) 75%, var(--ink))}.song-card p{color:var(--ink-2);font-size:14px}.sg-status{color:var(--muted);align-items:center;gap:6px;margin-top:auto;font-size:12.5px;display:flex}.song-page{flex-direction:column;gap:16px;display:flex}.song-head{flex-direction:column;gap:6px;display:flex}.song-head h1{letter-spacing:-.03em;font-size:clamp(28px,4.4vw,40px);font-weight:800}.song-controls{top:env(safe-area-inset-top,0px);z-index:6;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex;position:sticky}@media (max-width:960px){.song-controls{position:static}}.song-controls .tempo{color:var(--muted);flex:170px;align-items:center;gap:8px;min-width:170px;max-width:260px;font-size:13px;font-weight:600;display:flex}.song-controls .tempo input{flex:1}.toggles{flex-wrap:wrap;gap:6px;display:flex}.tg{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:12.5px;font-weight:650;display:inline-flex}.tg.on{color:var(--ink);border-color:color-mix(in srgb, var(--mod) 55%, var(--line));background:color-mix(in srgb, var(--mod) 10%, var(--surface))}.chart{flex-direction:column;gap:14px;display:flex}.chart-sec{flex-direction:column;gap:8px;display:flex}.cs-head{align-items:center;gap:10px;display:flex}.cs-name{font-weight:800;font-family:var(--font-display);font-size:16px}.cs-head .btn{padding:5px 9px;font-size:12.5px}.bars{border:1.5px solid var(--ink-2);background:var(--surface);border-radius:6px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.bar{border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);cursor:pointer;min-height:70px;color:var(--ink);background:0 0;border-top:0;border-left:0;justify-content:center;align-items:center;padding:6px 4px;display:flex;position:relative}.bars .bar:nth-child(4n){border-right:0}.bars .bar.last-row{border-bottom:0}.bar .b-n{font-family:var(--font-mono);color:var(--muted);font-size:10px;position:absolute;top:4px;left:6px}.bar .b-chord{font-family:var(--font-hand);font-size:34px;font-weight:700;line-height:1}.bar .b-q{font-family:var(--font-hand);color:var(--line);font-size:30px}.bar.sel{background:color-mix(in srgb, var(--mod) 10%, var(--surface));box-shadow:inset 0 0 0 2px var(--mod)}.bar.ok{background:color-mix(in srgb, var(--good) 11%, var(--surface));cursor:default}.bar.ok .b-chord{color:color-mix(in srgb, var(--good) 70%, var(--ink))}.bar.bad{background:color-mix(in srgb, var(--bad) 9%, var(--surface))}.bar.bad .b-chord{color:var(--bad);text-decoration:line-through;text-decoration-thickness:2px}.bar.now{box-shadow:inset 0 -4px 0 var(--mod)}.bar.hit{background:color-mix(in srgb, var(--good) 22%, var(--surface))}.bar.miss{background:color-mix(in srgb, var(--bad) 12%, var(--surface))}.song-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pa-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.pa-now,.pa-next{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);flex-direction:column;align-items:center;gap:6px;padding:16px;display:flex}.pa-now{border-color:var(--mod);box-shadow:0 0 0 3px color-mix(in srgb, var(--mod) 18%, transparent)}.pa-k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12.5px;font-weight:700}.pa-chord{font-family:var(--font-hand);font-size:64px;font-weight:700;line-height:.95}.pa-next .pa-chord{color:var(--ink-2);font-size:44px}.pa-beats{gap:8px;display:flex}.pa-beat{background:var(--soft);border-radius:50%;width:14px;height:14px}.pa-beat.on{background:var(--mod)}.pa-phones{margin:10px 2px 0}.pa-count{font-family:var(--font-display);text-align:center;color:var(--mod);font-size:72px;font-weight:800}@media (max-width:560px){.pa-stage{grid-template-columns:minmax(0,1fr)}.pa-chord{font-size:54px}}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tool-big{text-align:left;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);flex-direction:column;gap:10px;padding:18px;display:flex}.tool-big:hover{border-color:color-mix(in srgb, var(--ink) 25%, var(--line))}.tool-big .tb-ic{background:var(--surface-2);width:44px;height:44px;color:var(--ink-2);border-radius:12px;place-items:center;display:grid}.tool-big h3{font-size:18px}.tool-big p{color:var(--ink-2);font-size:14px}.tuner{flex-direction:column;align-items:center;gap:18px;max-width:640px;margin:0 auto;display:flex}.str-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%;display:grid}.str-btn{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.str-btn .sb-no{font-family:var(--font-mono);color:var(--muted);font-size:11px}.str-btn .sb-name{font-size:17px;font-weight:800}.str-btn.active{border-color:var(--mod);background:color-mix(in srgb, var(--mod) 9%, var(--surface))}.str-btn.tuned{border-color:var(--good)}.str-btn.tuned .sb-no:after{content:" ✓";color:var(--good);font-weight:700}@media (max-width:480px){.str-row{grid-template-columns:repeat(3,minmax(0,1fr))}}.metro{flex-direction:column;align-items:center;gap:18px;max-width:560px;margin:0 auto;display:flex}.metro-bpm{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:clamp(64px,14vw,96px);font-weight:800;line-height:1}.metro-bpm small{color:var(--muted);margin-left:6px;font-size:18px;font-weight:600}.metro-dots{gap:12px;display:flex}.metro-dot{background:var(--soft);border:2px solid var(--line);border-radius:50%;width:22px;height:22px;transition:background 50ms}.metro-dot.acc{border-color:var(--mod)}.metro-dot.on{background:var(--mod);border-color:var(--mod)}.metro-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.metro-row input[type=range]{flex:220px}.lib-grid{flex-wrap:wrap;gap:10px;display:flex}.analyzer{flex-direction:column;gap:14px;display:flex}.an-top{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.an-cell{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:2px;min-width:0;padding:12px 14px;display:flex}.an-k{color:var(--muted);font-size:12px;font-weight:600}.an-v{font-family:var(--font-display);white-space:nowrap;font-size:24px;font-weight:800}.an-v.hand{font-family:var(--font-hand);font-size:32px;line-height:1}.an-d{min-height:1.4em;font-family:var(--font-mono);color:var(--ink-2);font-size:13px}@media (max-width:720px){.an-top{grid-template-columns:repeat(2,minmax(0,1fr))}}.prog-top{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (max-width:860px){.prog-top{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.stat-k{color:var(--muted);font-size:12.5px;font-weight:600}.stat-v{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.stat-s{color:var(--muted);font-size:12.5px}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;overflow-x:auto}.act-svg{display:block}.act-bar{fill:var(--accent)}.act-bar.today{fill:var(--ink)}.act-grid{stroke:var(--line);stroke-width:1px}.act-lbl{font-family:var(--font-mono);fill:var(--muted);font-size:11px}.act-goal{stroke:var(--muted);stroke-dasharray:4 4;stroke-width:1px}.mod-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (max-width:720px){.mod-progress{grid-template-columns:minmax(0,1fr)}}.mp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.mp-head{align-items:center;gap:10px;font-weight:700;display:flex}.mp-head .ic{color:var(--mod)}.mp-row{color:var(--muted);grid-template-columns:70px minmax(0,1fr) 56px;align-items:center;gap:10px;font-size:13px;display:grid}.mp-row span:last-child{text-align:right;font-family:var(--font-mono)}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.badge{border-radius:var(--r);border:1px solid var(--line);background:var(--surface);align-items:center;gap:10px;min-width:0;padding:12px;display:flex}.badge .bd-ic{background:var(--soft);width:38px;height:38px;color:var(--muted);border-radius:50%;flex:none;place-items:center;display:grid}.badge.got .bd-ic{background:color-mix(in srgb, #f4b223 25%, var(--surface));color:#b37a00}.badge .bd-t{font-size:14px;font-weight:700}.badge .bd-d{color:var(--muted);font-size:12px}.badge:not(.got){opacity:.62}.settings{flex-direction:column;gap:14px;max-width:760px;display:flex}.set-row{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.set-row .sr-t{font-weight:700}.set-row .sr-d{color:var(--muted);font-size:13px}@media (max-width:640px){.set-row{grid-template-columns:minmax(0,1fr)}}.range-card{flex-direction:column;gap:14px;display:flex}.range-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (max-width:640px){.range-steps{grid-template-columns:minmax(0,1fr)}}.range-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex}.range-box.active{border-color:var(--mod);box-shadow:0 0 0 3px color-mix(in srgb, var(--mod) 14%, transparent)}.range-val{font-family:var(--font-display);font-size:30px;font-weight:800}.voice-pick{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.vp-btn{border:1.5px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;color:var(--ink);border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.vp-btn.on{border-color:var(--mod);background:color-mix(in srgb, var(--mod) 9%, var(--surface))}.vp-btn small{color:var(--muted);font-family:var(--font-mono);font-size:11.5px}.routine{flex-direction:column;gap:10px;display:flex}.rt-step{border-radius:var(--r);border:1px solid var(--line);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.rt-step.done{border-color:color-mix(in srgb, var(--good) 50%, var(--line))}.rt-num{background:var(--surface-2);border:1px solid var(--line);width:34px;height:34px;font-family:var(--font-mono);border-radius:50%;place-items:center;font-weight:600;display:grid}.rt-step.done .rt-num{background:var(--good);border-color:var(--good);color:#fff}.rt-step p{color:var(--ink-2);font-size:14px}.rt-step h3{font-size:16.5px}@media (max-width:560px){.rt-step{grid-template-columns:auto minmax(0,1fr);align-items:start}.rt-step>.btn,.rt-step>.sc-actions{grid-column:1/-1}}.explore{flex-direction:column;gap:14px;display:flex}.ex-tools-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.live-box{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:16px;display:grid}@media (max-width:720px){.live-box{grid-template-columns:minmax(0,1fr)}}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}@media (max-width:720px){.two-col{grid-template-columns:minmax(0,1fr)}}.gauge.held .g-needle{opacity:.55}.gauge.held .g-main,.gauge.held .g-hz{opacity:.7}.tuner-hint{min-height:30px;color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.tuner-hint .ic{width:22px;height:22px}.tuner-hint[data-dir=up],.tuner-hint[data-dir=down]{color:var(--warn)}.tuner-hint[data-dir=ok]{color:var(--good)}.tuner-confirm{background:var(--soft);border-radius:3px;width:min(220px,60%);height:6px;margin-top:-8px;overflow:hidden}.tuner-confirm>span{background:var(--good);width:0;height:100%;transition:width .1s linear;display:block}.brand-tld{color:var(--accent)}.foot-ver{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;padding-block:6px}.foot-ver:hover{color:var(--ink);text-decoration-color:currentColor}.releases{flex-direction:column;gap:14px;max-width:760px;display:flex}.release{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px}.release.current{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.rel-head{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:10px;display:flex}.rel-head h2{font-size:19px}.rel-tag{background:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--accent-ink);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700}.rel-date{color:var(--muted);margin-left:auto;font-size:13.5px}.rel-notes{color:var(--ink-2);flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.facts-page .mod-head{margin-bottom:18px}.facts-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px;display:grid}.fact-card{--mod:var(--accent);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--mod);text-align:left;width:100%;color:var(--ink);cursor:pointer;flex-direction:column;gap:8px;padding:16px 18px;transition:border-color .15s,transform .12s;display:flex}.fact-card:hover{border-color:color-mix(in srgb, var(--mod) 55%, var(--line));border-top-color:var(--mod);transform:translateY(-1px)}.fact-chip{background:color-mix(in srgb, var(--mod) 13%, var(--surface));color:var(--ink-2);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-size:12.5px;font-weight:700;display:inline-flex}.fact-chip .ic{width:15px;height:15px;color:var(--mod)}.fact-title{font-family:var(--font-display);font-size:18px;font-weight:750;line-height:1.3}.fact-teaser{color:var(--ink-2);font-size:14.5px}.fact-meta{color:var(--muted);justify-content:space-between;align-items:center;margin-top:auto;font-size:13px;font-weight:600;display:flex}.fact-meta .ic{width:18px;height:18px;color:var(--mod)}.facts-note{color:var(--muted);margin-top:18px;font-size:13.5px}.sec-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.sec-link{color:var(--accent-ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:4px 0;font-weight:700;display:inline-flex}.sec-link .ic{width:16px;height:16px}.neck-scale{max-width:none;display:block}.neck-scale .ns-body{fill:color-mix(in srgb, var(--wood) 35%, var(--surface));stroke:var(--wood-edge);stroke-width:1px}.neck-scale .ns-bridge{fill:var(--ink-2)}.neck-scale .ns-twelve{fill:var(--mod)}.neck-scale .ns-mid{stroke:var(--mod);stroke-width:1.5px;stroke-dasharray:4 3}.neck-scale .ns-label{fill:var(--muted);font-size:14px;font-weight:600}.neck-scale .ns-label-mid{fill:var(--ink-2);text-anchor:middle}.neck-scale .fb-num{font-size:12.5px}.neck-scale .ns-lit{fill:var(--mod);opacity:.85}.lesson-table th,.lesson-table td{white-space:normal;vertical-align:middle}.lesson-table td:has(.play-btn){white-space:nowrap;width:1%}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.jam-promo{border-radius:var(--r-lg);cursor:pointer;text-align:left;color:#fff;width:100%;font:inherit;box-shadow:var(--shadow);background:radial-gradient(90% 140% at 100% 0,#ff6ad559,#0000 60%),radial-gradient(80% 120% at 0 100%,#4da3ff47,#0000 60%),linear-gradient(120deg,#17123a,#34134a 55%,#521a3c);border:0;align-items:center;gap:16px;padding:18px 20px;display:flex;position:relative;overflow:hidden}.jam-promo:hover{box-shadow:var(--shadow-lg)}.jp-ic{background:#ffffff1f;border-radius:14px;flex:none;place-items:center;width:52px;height:52px;display:grid}.jp-ic .ic{width:28px;height:28px}.jp-text{flex-direction:column;gap:2px;min-width:0;display:flex}.jp-k{letter-spacing:.08em;text-transform:uppercase;color:#ffd23f;font-size:12px;font-weight:800}.jp-t{font-family:var(--font-display);font-size:22px;font-weight:800;line-height:1.15}.jp-d{color:#ffffffd6;font-size:14px}.jp-mult{font-family:var(--font-display);color:#ff6ad5;text-shadow:0 0 22px #ff6ad599;margin-left:auto;font-size:46px;font-weight:800}.jam-link{border-radius:var(--r);border:1px solid color-mix(in srgb, var(--mod) 40%, var(--line));background:color-mix(in srgb, var(--mod) 8%, var(--surface));cursor:pointer;text-align:left;width:100%;color:var(--ink);font:inherit;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;font-size:14px;display:flex}.jam-link b{font-family:var(--font-display);margin-right:4px}.jam-link>.ic:first-child{color:var(--mod)}.jam-link>.ic:last-child{margin-left:auto}.jam-how{counter-reset:jamstep;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 4px;padding:0;list-style:none;display:grid}.jam-how li{counter-increment:jamstep;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);grid-template-columns:auto 1fr;gap:2px 10px;padding:12px 14px;display:grid}.jam-how li:before{content:counter(jamstep);width:30px;height:30px;font-weight:800;font-family:var(--font-display);color:var(--on-accent);background:var(--mod);border-radius:50%;grid-row:span 2;place-items:center;display:grid}.jam-how b{font-family:var(--font-display);font-size:17px}.jam-how span{color:var(--ink-2);font-size:13.5px}.jam-group{margin-top:22px}.jam-card .jam-best .stars .ic{width:15px;height:15px}.jam-note{margin-top:22px}.jam-page{flex-direction:column;gap:14px;display:flex}.jam-title{flex-wrap:wrap;align-items:baseline;gap:6px 12px;display:flex}.jam-title h1{letter-spacing:-.02em;font-size:clamp(22px,3.4vw,30px);font-weight:800}.jam-title>span:not(.sg-tag){color:var(--muted);font-weight:650}.jam-start{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.jam-chords{flex-wrap:wrap;gap:8px;display:flex}.jam-chords .chord-card{width:96px}.jam-setup{flex-direction:column;gap:16px;display:flex}.jam-opt{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.jo-k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12.5px;font-weight:700}.seg button:disabled{opacity:.45;cursor:not-allowed}.jam-phones{border-radius:var(--r);background:color-mix(in srgb, var(--warn) 13%, var(--surface));color:var(--ink-2);align-items:flex-start;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.jam-phones.on{background:color-mix(in srgb, var(--good) 12%, var(--surface))}.jam-phones>.ic{color:var(--ink);margin-top:1px}@media (max-width:860px){.jam-start,.jam-how{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.jp-mult{display:none}.jam-promo{padding:16px}}.jam-stage{--ink-stage:#f3f4f8;--muted-stage:#9aa1b5;--energy:0;--rp:6%;border-radius:var(--r-lg);background:radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--mod) calc(16% + var(--energy) * 9%), transparent), transparent 62%), linear-gradient(180deg, #131629, #07080f);color:var(--ink-stage);box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none;flex-direction:column;gap:10px;padding:12px;display:flex;position:relative;overflow:hidden}.jam-hud{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:0 4px 10px;display:grid;position:relative}.jh-box{flex-direction:column;min-width:0;display:flex}.jh-right{align-items:flex-end;gap:2px}.jh-k{letter-spacing:.06em;text-transform:uppercase;color:var(--muted-stage);white-space:nowrap;font-size:11.5px;font-weight:700}.jh-k b{color:var(--ink-stage);font-family:var(--font-mono);letter-spacing:0;margin-left:4px;font-size:15px}.jh-v{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1.05}.jh-sec{min-height:1.3em;color:var(--muted-stage);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.jam-mult{flex-direction:column;align-items:center;gap:5px;display:flex}.jm-v{width:58px;height:58px;font-family:var(--font-display);color:#fff;background:#1d2134;border:3px solid #3a4060;border-radius:50%;place-items:center;font-size:23px;font-weight:800;transition:border-color .2s,box-shadow .2s,background .2s;display:grid}.jam-mult[data-mult="2"] .jm-v{border-color:#3ddc84;box-shadow:0 0 16px #3ddc8473}.jam-mult[data-mult="4"] .jm-v{border-color:#4da3ff;box-shadow:0 0 20px #4da3ff99}.jam-mult[data-mult="8"] .jm-v{background:radial-gradient(circle,#5b1f62,#1d2134);border-color:#ff6ad5;animation:.9s ease-in-out infinite alternate jam-glow;box-shadow:0 0 28px #ff6ad5bf}.jam-stage.mult-up .jm-v{animation:.5s ease-out jam-mult-up}.jm-pips{gap:4px;display:flex}.jm-pip{background:#2c3150;border-radius:2px;width:11px;height:4px}.jm-pip.on{background:#ffd23f;box-shadow:0 0 6px #ffd23f}.jh-prog{background:#ffffff14;border-radius:2px;height:3px;position:absolute;bottom:0;left:4px;right:4px;overflow:hidden}.jh-prog i{background:linear-gradient(90deg, var(--mod), #ff6ad5);width:0;height:100%;display:block}.jam-body{grid-template-columns:minmax(0,1fr) 140px;gap:12px;display:grid}.jam-road{--fret-h:66px;perspective:760px;perspective-origin:50% 0;background:radial-gradient(70% 50% at 50% 100%,#ffffff0f,#0000),#05060b;border-radius:14px;height:clamp(300px,56vh,520px);position:relative;overflow:hidden}.jam-road:before{content:"";z-index:3;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 calc(var(--energy) * 22px) color-mix(in srgb, var(--mod) 75%, transparent);transition:box-shadow .4s;position:absolute;inset:0}.jam-stage[data-mult="8"] .jam-road:before{animation:1.1s ease-in-out infinite alternate jam-fire;box-shadow:inset 0 0 60px #ff6ad580,inset 0 -50px 90px #ff9f4361}.jam-plane{left:var(--rp);right:var(--rp);bottom:var(--fret-h);transform-origin:50% 100%;background:linear-gradient(#161a3000 0%,#12162b 35%,#171c36 100%);border-left:2px solid #ffffff24;border-right:2px solid #ffffff24;height:150%;position:absolute;overflow:hidden;transform:rotateX(36deg);-webkit-mask-image:linear-gradient(#0000 4%,#000 38%);mask-image:linear-gradient(#0000 4%,#000 38%)}.jam-lanes{grid-template-columns:repeat(var(--lanes), minmax(0, 1fr));display:grid;position:absolute;inset:0}.jam-lanes span{background:linear-gradient(to top, color-mix(in srgb, var(--lc) 12%, transparent), transparent 55%);border-right:1px solid #ffffff12}.jam-lanes span:last-child{border-right:0}.jam-track{will-change:transform;height:0;position:absolute;bottom:22px;left:0;right:0}.jam-barline{left:0;right:0;bottom:calc(var(--t) * var(--pps) * 1px);height:calc(var(--bar) * var(--pps) * 1px);background:repeating-linear-gradient(to top, transparent 0, transparent calc(100% / var(--beats) - 1px), #ffffff12 calc(100% / var(--beats) - 1px), #ffffff12 calc(100% / var(--beats)));border-bottom:2px solid #fff3;position:absolute}.jam-gem{bottom:calc(var(--t) * var(--pps) * 1px);height:calc(var(--d) * var(--pps) * 1px);left:calc(var(--lane) * 100% / var(--lanes));width:calc(100% / var(--lanes));flex-direction:column;justify-content:flex-end;align-items:center;padding:0 5px;display:flex;position:absolute}.jg-tail{background:linear-gradient(to top, color-mix(in srgb, var(--lc) 62%, transparent), color-mix(in srgb, var(--lc) 18%, transparent));border-radius:6px 6px 0 0;flex:1;width:24%;min-width:6px;max-width:22px;margin-bottom:-4px}.jg-head{z-index:1;background:linear-gradient(180deg, color-mix(in srgb, var(--lc) 70%, #fff), var(--lc));color:#0b0d16;width:100%;height:34px;font-family:var(--font-display);font-weight:800;font-size:clamp(10.5px, calc(100vw / var(--lanes) / 4.6), 16px);letter-spacing:-.01em;white-space:nowrap;box-shadow:0 0 0 2px #0006, 0 6px 16px color-mix(in srgb, var(--lc) 45%, transparent);border-radius:10px;place-items:center;margin-bottom:-17px;display:grid;position:relative;overflow:hidden}.jam-gem.now .jg-head{box-shadow:0 0 0 2px #fff, 0 0 20px var(--lc)}.jam-gem[data-state=hit] .jg-head{box-shadow:0 0 0 3px var(--lc), 0 0 26px var(--lc);background:#fff}.jam-gem[data-state=hit] .jg-tail{background:linear-gradient(to top, var(--lc), color-mix(in srgb, var(--lc) 45%, transparent));box-shadow:0 0 14px var(--lc)}.jam-gem[data-state=wrong] .jg-head,.jam-gem[data-state=miss] .jg-head{color:#9ea4b8;box-shadow:none;background:#3a3f52}.jam-gem[data-state=wrong] .jg-head{box-shadow:0 0 0 2px #ff5a5f}.jam-gem[data-state=wrong] .jg-tail,.jam-gem[data-state=miss] .jg-tail{background:#ffffff14}.jam-strike{height:4px;box-shadow:0 0 10px #ffffff8c, 0 0 26px color-mix(in srgb, var(--mod) 60%, transparent);opacity:.75;background:linear-gradient(90deg,#0000,#fff 10% 90%,#0000);position:absolute;bottom:20px;left:0;right:0}.jam-strike[data-beat="0"]{animation:.24s ease-out jam-beat-a}.jam-strike[data-beat="1"]{animation:.24s ease-out jam-beat-b}.jam-strike[data-down="1"]{height:5px}.jam-frets{left:var(--rp);right:var(--rp);height:calc(var(--fret-h) - 16px);grid-template-columns:repeat(var(--lanes), minmax(0, 1fr));z-index:2;gap:6px;display:grid;position:absolute;bottom:9px}.jam-fret{border:2px solid color-mix(in srgb, var(--lc) 70%, transparent);background:color-mix(in srgb, var(--lc) 14%, #0b0d16);color:#fff;min-width:0;font:inherit;font-family:var(--font-display);font-weight:800;font-size:clamp(10.5px, calc(100vw / var(--lanes) / 4.8), 15px);letter-spacing:-.01em;white-space:nowrap;touch-action:manipulation;border-radius:12px;place-items:center;padding:0 2px;transition:transform 80ms,background .12s,box-shadow .12s,color .12s;display:grid;overflow:hidden}button.jam-fret{cursor:pointer}.jam-fret.want{border-color:var(--lc);box-shadow:0 0 14px color-mix(in srgb, var(--lc) 55%, transparent)}.jam-fret.heard,.jam-fret.press{background:var(--lc);color:#0b0d16;box-shadow:0 0 24px var(--lc);transform:translateY(2px)scale(.97)}.jam-pops{z-index:4;pointer-events:none;position:absolute;inset:0}.jam-pop{bottom:calc(var(--fret-h) + 26px);left:calc(var(--rp) + (var(--lane,0) + .5) * (100% - 2 * var(--rp)) / var(--lanes));font-family:var(--font-display);color:var(--lc,#fff);text-shadow:0 2px 10px #000000b3;white-space:nowrap;font-size:19px;font-weight:800;animation:.9s ease-out forwards jam-rise;position:absolute;transform:translate(-50%)}.jam-pop.bad{color:#ff7a7f}.jam-pop.big{color:#ffd23f;text-shadow:0 0 26px #ffd23f99;font-size:clamp(48px,9vw,76px);animation:.95s ease-out forwards jam-zoom;bottom:46%;left:50%}.jam-pop.burst{bottom:calc(var(--fret-h) - 6px);border:3px solid var(--lc);width:64px;height:64px;box-shadow:0 0 26px var(--lc);border-radius:50%;animation:.5s ease-out forwards jam-burst}.jam-banner{z-index:4;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;background:#ffffff1f;border-radius:999px;padding:4px 14px;font-size:13px;font-weight:800;position:absolute;top:12px;left:50%;transform:translate(-50%)}.jam-banner.show{animation:1.9s ease-out forwards jam-banner}.jam-count{z-index:4;font-family:var(--font-display);color:#fff;text-shadow:0 0 34px var(--mod);pointer-events:none;place-items:center;font-size:clamp(60px,13vw,116px);font-weight:800;display:grid;position:absolute;inset:0}.jam-stage.shake .jam-road{animation:.32s ease-out jam-shake}.jam-stage.shake .jam-road:after{content:"";z-index:3;pointer-events:none;background:radial-gradient(closest-side,#0000 55%,#ff464652);animation:.45s ease-out forwards jam-fade;position:absolute;inset:0}.jam-side{background:#ffffff0a;border-radius:14px;flex-direction:column;align-self:start;align-items:center;gap:6px;padding:10px 8px;display:flex}.jam-side .chord-card{width:118px;color:var(--ink)}.js-k{letter-spacing:.06em;text-transform:uppercase;color:var(--muted-stage);font-size:11.5px;font-weight:700}.js-next{font-family:var(--font-hand);font-size:38px;font-weight:700;line-height:1}.jam-lyrics{text-align:center;background:#ffffff0a;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:78px;padding:8px 10px;display:flex}.jam-lyrics[data-empty=true]{background:0 0;min-height:0;padding:0}.jl-line{font-family:var(--font-display);margin:0;font-weight:700;line-height:1.25;display:none}.jl-line[data-state=cur],.jl-line[data-state=done]{font-size:clamp(19px,2.8vw,27px);display:block}.jl-line[data-state=done]{opacity:.45}.jl-line[data-state=next]{color:var(--muted-stage);font-size:15px;display:block}.jl-w{color:#ffffff8c;margin:0 .16em;display:inline-block}.jl-line[data-state=next] .jl-w{color:inherit}.jl-w[data-state=sung]{color:#fff}.jl-w[data-state=on]{background:linear-gradient(90deg, #ffd23f calc(var(--p,0) * 100%), #ffffff8c calc(var(--p,0) * 100%));color:#0000;-webkit-background-clip:text;background-clip:text}.jam-foot{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.jam-foot .btn{color:var(--ink-stage);background:#ffffff0f;border-color:#ffffff2e}.jam-heard{min-width:0;color:var(--muted-stage);flex:1;align-items:center;gap:8px;font-size:13.5px;display:inline-flex}.jam-heard b{color:#fff;min-width:2.4em;font-family:var(--font-hand);font-size:26px;line-height:1}.jam-heard .level-meter{background:#ffffff1a;flex:1;max-width:180px}.jam-tip{color:var(--muted-stage);font-size:13px}@media (pointer:coarse){.jam-tip .jt-keys{display:none}}.bar.wrong{background:color-mix(in srgb, var(--bad) 24%, var(--surface))}.bar.wrong .b-chord{color:var(--bad)}.jam-legend .jl-dot{vertical-align:-1px;border-radius:3px;width:11px;height:11px;margin:0 3px 0 10px;display:inline-block}.jam-legend .jl-dot:first-child{margin-left:0}.jl-dot.hit{background:color-mix(in srgb, var(--good) 45%, var(--surface))}.jl-dot.wrong{background:color-mix(in srgb, var(--bad) 45%, var(--surface))}.jl-dot.miss{background:color-mix(in srgb, var(--bad) 18%, var(--surface))}@keyframes jam-glow{to{box-shadow:0 0 40px #ff6ad5f2}}@keyframes jam-mult-up{30%{transform:scale(1.3)}}@keyframes jam-fire{to{box-shadow:inset 0 0 80px #ff6ad5a6,inset 0 -70px 110px #ff9f4380}}@keyframes jam-beat-a{0%{opacity:1;box-shadow:0 0 22px #fff, 0 0 46px var(--mod)}}@keyframes jam-beat-b{0%{opacity:1;box-shadow:0 0 22px #fff, 0 0 46px var(--mod)}}@keyframes jam-rise{0%{opacity:0;transform:translate(-50%,10px)scale(.8)}15%{opacity:1;transform:translate(-50%)scale(1.08)}to{opacity:0;transform:translate(-50%,-48px)}}@keyframes jam-zoom{0%{opacity:0;transform:translate(-50%,50%)scale(.4)}25%{opacity:1;transform:translate(-50%,50%)scale(1.15)}to{opacity:0;transform:translate(-50%,50%)scale(1.6)}}@keyframes jam-burst{0%{opacity:.95;transform:translate(-50%)scale(.4)}to{opacity:0;transform:translate(-50%)scale(1.7)}}@keyframes jam-banner{0%{opacity:0;transform:translate(-50%,-12px)}15%,70%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}@keyframes jam-shake{20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes jam-fade{to{opacity:0}}@media (max-width:960px){.jam-body{grid-template-columns:minmax(0,1fr)}.jam-side{display:none}}@media (max-width:560px){.jam-stage{--rp:3%;border-radius:14px;gap:8px;padding:8px}.jh-v{font-size:24px}.jm-v{width:50px;height:50px;font-size:20px}.jam-road{--fret-h:60px;height:clamp(280px,52vh,460px)}.jg-head{border-radius:8px;height:30px;margin-bottom:-15px}.jam-gem{padding:0 3px}.jam-frets{gap:4px}.jam-fret{border-radius:10px}.jam-chords{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.jam-chords .chord-card{flex:none;width:84px}.jam-heard .level-meter{max-width:110px}}
