:root{--ground:#0e0f11;--head:#2c2c2e;--snare:#e47b3f;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--s1:#1a1b1d;--s1-hover:#1e1f22;--s2:#202124;--s3:#27282b;--s4:#2f3034;--s5:#38393d;--divider:#242528;--text:#ececed;--text-2:#a5a7ac;--text-3:#6c6e73;--on-primary:#0c0e11;--on-fill:#062421;--on-perfect:#062421;--on-good:#0b2422;--on-early:#0a1a30;--on-late:#2b1b06;--on-miss:#2c0a1d;--kit-on-fill:#0c0e12;--hair:222, 222, 224;--scrim:#030406a8;--cover-scrim:#08090b8c;--ink:#0c0e11;--chrome:#b9c1cc;--chrome-hi:#e2e8f033;--chrome-lo:#0000008c;--chrome-rim:#c8d2de14;--brush:linear-gradient(#fff0, #fff0);--env-polished:linear-gradient(180deg, #fbfcfd 0%, #e6eaef 34%, #ccd2da 48%, #8f98a4 51%, #a9b1bc 66%, #c9cfd6 88%, #e1e5ea 100%);--env-brushed:linear-gradient(180deg, #e8ebef 0%, #d2d7dd 36%, #b8bfc8 48%, #858e9a 51%, #9aa3ae 68%, #b4bbc4 90%, #c6ccd3 100%);--env-pressed:linear-gradient(180deg, #bcc3cc 0%, #a7afba 46%, #7c8591 51%, #8f98a4 75%, #a3abb6 100%);--env-gun:linear-gradient(180deg, #424953 0%, #353b44 44%, #2a2f36 50%, #22262c 54%, #2a2f36 86%, #31363e 100%);--env-gun-hover:linear-gradient(180deg, #4b535d 0%, #3d444d 44%, #30353d 50%, #272b32 54%, #2f343b 86%, #373c44 100%);--chrome-metal:var(--brush), var(--env-polished);--chrome-brushed:var(--brush), var(--env-brushed);--chrome-pressed:var(--brush), var(--env-pressed);--gunmetal:var(--brush), var(--env-gun);--chrome-shadow:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #00000047, 0 1px 2px #0009, 0 4px 12px #00000061;--chrome-shadow-sm:inset 0 1px 0 #ffffffd9, inset 0 -1px 0 #00000047, 0 1px 2px #0000008c;--gun-shadow:inset 0 1px 0 #ffffff1c, inset 0 -1px 0 #00000080, 0 1px 2px #0000008c;--press-shadow:inset 0 1px 3px #00000073, 0 0 1px #0009;--brass:#a88a5c;--brass-hi:#d9c3a0;--brass-lo:#5e4a2e;--bronze-metal:linear-gradient(104deg, #fff0 38%, #fff6e64d 46%, #fff0 54%), linear-gradient(180deg, #e6dccb 0%, #cdb48c 36%, #a88a5c 50%, #8c7148 54%, #a58a63 84%, #bfa884 100%);--bronze-shadow:inset 0 1px 0 #fff8ebbf, inset 0 -1px 0 #32241273, 0 1px 2px #0000008c;--bolt:#4a525d;--primary:#c9cfd7;--primary-hover:#d8dde3;--primary-press:#a9b1bc;--primary-soft:#2f3034;--primary-shadow:#00000073;--accent:var(--chrome);--snare-rest:#6a3d24;--perfect:#3fcfc0;--perfect-rgb:63, 207, 192;--good:#86d6cc;--early:#6f9ff0;--late:#e3a85a;--miss:#d0559a;--miss-rgb:208, 85, 154;--extra:#6d7786;--mat:#111214;--mat-bar:#1c1d20;--mat-dot:#2e2f33;--pad:#1c1c1e;--pad-hover:#242426;--pad-inner:#2b2b2d;--head-ring:#353537;--cymbal:#2b2b2d;--hw-label:#d0d0d4;--hw-lane:#a0afc307;--hw-rule:#c8d4e412;--spot:#aac4e013;--spot-floor:#aac4e00d;--hoop:inset 0 1px 0 var(--chrome-hi), inset 0 -1px 0 var(--chrome-lo), inset 0 0 0 1px var(--chrome-rim);--shadow:0 1px 2px #0000008c, 0 10px 28px #00000061;--shadow-sm:0 1px 1px #00000080, 0 3px 8px #0000004d;--shadow-lg:0 2px 4px #0009, 0 24px 60px #0000008c;--shadow-flat:0 1px 1px #00000080, 0 3px 8px #0000004d;--font-display:"Archivo", "Inter", system-ui, sans-serif;--page-max:1480px;--page-gutter:32px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--r-ctl:10px;--r-ctl-lg:12px;--r-widget:14px;--radius:16px;--h-xs:26px;--h-sm:32px;--h-md:40px;--h-lg:48px;--pad-card:20px;--pad-tile:var(--sp-3);--spring:cubic-bezier(.34, 1.56, .64, 1);font-feature-settings:"cv11", "ss01";color:var(--text);background:var(--ground);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}html,body{background:var(--ground) var(--grain);min-height:100%;margin:0}html{scrollbar-gutter:stable}#root{min-height:100vh}button,input,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.num{font-variant-numeric:tabular-nums}.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600}@media (width<=1100px){:root{--page-gutter:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.kit3d{background:#0c0c0d;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.kit3d[data-backdrop=surface],.kit3d[data-backdrop=none]{background:0 0}.kit3d>div:first-child{inset:0;position:absolute!important}.kit3d[data-small] .kit3d-labels{display:none}.kit3d:not([data-ready]) .kit3d-labels,.kit3d[data-kit-hidden] .kit3d-labels{opacity:0}.kit3d-labels{pointer-events:none;transition:opacity .24s;position:absolute;inset:0;overflow:hidden}.kit3d-labels .kit3d-name{will-change:transform;position:absolute;top:0;left:0}.kit3d-name{white-space:nowrap;font:500 var(--k3-label,12.5px)/1 Inter, system-ui, -apple-system, "Segoe UI", sans-serif;letter-spacing:.01em;color:var(--text-2,#9aa9c2);text-shadow:0 1px 2px #000000e6;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;transition:color .12s,opacity .2s;display:inline-flex}.kit3d-name.is-target{color:var(--text,#e6e9ef)}.kit3d-name{transition:color .12s,opacity .2s,translate .14s}.kit3d-name.is-hover{color:var(--text,#e6e9ef);translate:0 -2px}.kit3d-name.is-dim{opacity:.4}.kit3d-name kbd{color:var(--text-3,#5d6878);background:#ffffff0d;border-radius:3px;padding:2px 4px;font:500 9.5px/1 Inter,system-ui,sans-serif}.mode-switch{border-radius:var(--r-ctl);background:var(--s1);gap:2px;padding:2px;display:flex;box-shadow:inset 0 1px 2px #00000073}.mode-seg{border-radius:calc(var(--r-ctl) - 2px);min-width:34px;height:30px;color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:0;padding:0 9px;font-size:12.5px;font-weight:600;transition:color .24s,background-color .24s,gap .32s,flex-grow .32s;display:inline-flex}.mode-seg:hover:not(:disabled){color:var(--text-2)}.mode-seg:focus-visible{outline:2px solid var(--chrome);outline-offset:-2px}.mode-seg:disabled{cursor:default}.mode-seg.is-on{color:var(--text);background:var(--s3);flex-grow:1;gap:6px;box-shadow:0 1px 2px #00000080,inset 0 1px #ffffff0d}.mode-seg.is-on svg{color:var(--brass)}.mode-name{grid-template-columns:0fr;transition:grid-template-columns .32s cubic-bezier(.2,.7,.2,1);display:inline-grid}.mode-name>span{min-width:0;overflow:hidden}.mode-seg.is-on .mode-name{grid-template-columns:1fr}@media (prefers-reduced-motion:reduce){.mode-seg,.mode-name{transition:none}}.practice .bpm-value .bpm-from{color:var(--text-3);font-size:13px;font-weight:600}.practice .bpm-value strong[data-bump]{animation:num-bump .28s var(--spring);color:var(--brass-hi);display:inline-block}.mode-result{justify-content:center;align-items:center;gap:var(--sp-3);margin-top:var(--sp-1);color:var(--text-3);font-size:12.5px;display:flex}.mode-result-name{background:var(--s2);height:24px;color:var(--text-2);border-radius:6px;align-items:center;gap:6px;padding:0 9px;font-weight:600;display:inline-flex}.mode-result-name svg{color:var(--brass)}.mode-result-nums{align-items:baseline;gap:var(--sp-3);display:inline-flex}.mode-result-nums strong{color:var(--text);font-size:18px;font-weight:700}.mode-result-nums .sep{background:var(--s4);align-self:center;width:1px;height:14px}.transport-main{align-items:stretch;gap:var(--sp-2);height:var(--h-md);display:flex}.transport-main .transport-go{width:auto;min-width:0;height:var(--h-md);flex:1}.transport-main .transport-listen{height:var(--h-md)}.transport-listen{padding:0 var(--sp-3);flex:none;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.transport-listen.is-on svg{color:var(--brass)}.transport-main .transport-key{display:none}.app{min-height:100vh;overflow-x:clip}.screen{max-width:var(--page-max);padding:var(--sp-6) var(--page-gutter) calc(var(--sp-8) + var(--sp-4));gap:var(--sp-4);flex-direction:column;margin:0 auto;animation:.26s ease-out screen-in;display:flex}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}}.card{background:var(--s1) var(--grain);border-radius:var(--radius);box-shadow:var(--shadow)}.topbar{align-items:center;gap:var(--sp-3);min-height:var(--h-lg);display:flex}.topbar-title{flex:1;min-width:0}.topbar-title h1{font-family:var(--font-display);letter-spacing:-.01em;font-size:20px;font-weight:600;line-height:1.15}.guide{color:var(--text-2);margin-top:2px;font-size:14px}.topbar-actions{align-items:center;gap:var(--sp-2);display:flex}.topbar-title h1.brand-title{line-height:1;display:flex}.brand-lockup{align-items:center;gap:var(--sp-2);color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;display:flex}.brand-lockup:focus-visible{outline:2px solid var(--chrome);outline-offset:4px;border-radius:8px}.brand{--bt:28px;width:var(--bt);height:var(--bt);flex:none;place-items:center;display:grid}.brand .logo{width:var(--bt);height:var(--bt);display:block;overflow:visible}.brand-lockup .wordmark{letter-spacing:0;font-size:15px}.wordmark{font-family:"Unbounded", var(--font-display);letter-spacing:-.02em;text-transform:uppercase;color:#e3e7ed;white-space:nowrap;font-size:24px;font-weight:800;line-height:1}.pill{align-items:center;gap:var(--sp-2);height:var(--h-md);padding:0 var(--sp-4);background:var(--s2);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:260px;font-size:13px;font-weight:500;display:inline-flex;overflow:hidden}.muted{color:var(--text-2);font-size:13px}.divider{background:var(--divider);height:1px;margin:2px 0}.inline-error{color:var(--text-2);padding:0 4px;font-size:13px}@property --mx{syntax:"<percentage>";inherits:false;initial-value:30%}@property --my{syntax:"<percentage>";inherits:false;initial-value:-40%}@property --mi{syntax:"<number>";inherits:false;initial-value:0}@property --tilt{syntax:"<number>";inherits:false;initial-value:0}.btn{justify-content:center;align-items:center;gap:var(--sp-2);height:var(--h-md);padding:0 var(--sp-4);border-radius:var(--r-ctl-lg);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;font-size:14px;font-weight:600;display:inline-flex}.btn-primary,.btn-secondary,.btn-icon:not(.btn-tertiary),.btn-toggle,.segmented button,.select-chip,.target-head,.drumhead{--env:var(--env-brushed);--spec-a:.8;--streak-a:.34;background-color:#0000;background-image:radial-gradient(90px circle at var(--mx) var(--my), rgba(255, 255, 255, calc(var(--spec-a) * var(--mi))), #fff0 70%), var(--brush), linear-gradient(104deg, #fff0 38%, rgba(232, 242, 255, var(--streak-a)) 46%, #fff0 54%), var(--env);background-size:100% 100%,auto,260% 100%,100% 150%;background-position:0 0, 0 0, calc(46% - var(--tilt) * 1.5px) 0, 0 0;transition:transform .12s var(--spring), box-shadow .12s ease, color .3s ease, filter .3s ease, --mi .5s ease, --tilt .5s ease;background-repeat:no-repeat,repeat,no-repeat,no-repeat}.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled),.btn-icon:not(.btn-tertiary):hover:not(:disabled),.btn-toggle:hover:not(:disabled),.segmented button:hover:not(:disabled),.select-chip:hover,.target-head:hover,.drumhead:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:default;opacity:.5;filter:saturate(0)}.btn:focus-visible,.lesson:focus-visible,.switch:focus-visible,.drumhead:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.btn-primary{--env:var(--env-polished);color:var(--ink);box-shadow:var(--chrome-shadow)}.btn-primary:active:not(:disabled){--env:var(--env-pressed);box-shadow:var(--press-shadow)}.btn-secondary,.btn-icon:not(.btn-tertiary){--env:var(--env-gun);--spec-a:.22;--streak-a:.07;color:var(--text);box-shadow:var(--gun-shadow)}.btn-secondary:active:not(:disabled),.btn-icon:active:not(:disabled){box-shadow:var(--press-shadow)}.btn-icon.btn-primary{--env:var(--env-polished);--spec-a:.8;--streak-a:.34;color:var(--ink);box-shadow:var(--chrome-shadow-sm)}.btn.btn-tertiary,.btn-icon.btn-tertiary{box-shadow:none;color:var(--text-2);background:0 0;transition:color .3s,background-color .3s}.btn.btn-tertiary:hover:not(:disabled){color:var(--text);background:var(--s2);filter:none}.btn.btn-tertiary:active:not(:disabled){background:var(--s3)}.btn-icon{width:var(--h-md);padding:0}.btn-lg{height:var(--h-lg);padding:0 var(--sp-6);font-size:15px}.btn-icon.btn-lg{width:var(--h-lg);padding:0}.btn b{font-weight:inherit}.btn-wide{width:100%}.btn-big{height:var(--h-lg);padding:0 var(--sp-6);border-radius:var(--r-widget);font-size:16px}.btn kbd{color:inherit;opacity:.75;background:#0000001f;border-radius:6px;padding:4px 6px;font:600 11px/1 Inter,system-ui,sans-serif}.btn-toggle{--env:var(--env-gun);--spec-a:.22;--streak-a:.07;color:var(--text-2);box-shadow:var(--gun-shadow)}.btn-toggle:hover:not(:disabled){color:var(--text)}.btn-toggle.is-on{--env:var(--env-brushed);--spec-a:.8;--streak-a:.34;color:var(--ink);box-shadow:var(--chrome-shadow-sm)}.btn-toggle:active:not(:disabled){box-shadow:var(--press-shadow)}.segmented{padding:var(--sp-1);gap:var(--sp-1);background:var(--s1);border-radius:var(--r-ctl-lg);box-shadow:inset 0 1px 2px #0000008c, inset 0 -1px 0 rgba(var(--hair), .05);flex-wrap:wrap;display:inline-flex}.segmented button{--env:var(--env-gun);--spec-a:.22;--streak-a:.07;height:var(--h-sm);padding:0 var(--sp-3);color:var(--text-2);cursor:pointer;box-shadow:var(--gun-shadow);border:0;border-radius:8px;font-size:13px;font-weight:600}.segmented button:hover:not(:disabled){color:var(--text)}.segmented button.is-on:hover:not(:disabled){color:var(--ink)}.segmented button:active:not(:disabled){transform:translateY(1px)}.segmented button.is-on{--env:var(--env-brushed);--spec-a:.8;--streak-a:.34;color:var(--ink);box-shadow:var(--chrome-shadow-sm)}@media (prefers-reduced-motion:reduce){.btn-primary,.btn-secondary,.btn-icon,.btn-toggle,.segmented button,.select-chip,.target-head{--mi:.35!important;--mx:30%!important;--my:-20%!important;--tilt:0!important}}.switch{--disc:30px;--hat:#59616c;--hat-hi:#ffffff38;background:var(--s1);cursor:pointer;width:44px;height:26px;box-shadow:inset 0 1px 2px #0009, inset 0 -1px 0 rgba(var(--hair), .06);border:0;border-radius:999px;flex:none;padding:0;transition:background-color .5s;display:block;position:relative}.switch i{background:#4d5560;border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:4px;bottom:4px;left:50%}.switch:before,.switch:after{content:"";width:var(--disc);height:5px;margin-left:calc(var(--disc) / -2);background:var(--hat);box-shadow:inset 0 1px 0 var(--hat-hi), 0 1px 1px #0000008c;transition:transform .32s var(--spring), background-color .5s ease;position:absolute;left:50%}.switch:before{border-radius:50% 50% 40% 40%/100% 100% 25% 25%;top:calc(50% - 5px);transform:translateY(-4px)rotate(-7deg)}.switch:after{border-radius:40% 40% 50% 50%/25% 25% 100% 100%;top:50%}.switch.is-on{--hat:#d3d9e0;--hat-hi:#fffffff2;background:var(--s3)}.switch.is-on:before{transform:none}.switch:active:not(:disabled):before{transform:translateY(-1px)}.switch:disabled{cursor:default;opacity:.45}.kit{width:100%;height:auto;display:block;overflow:visible}.kit-mat{fill:var(--mat);stroke:rgba(var(--hair), .045);stroke-width:1.5px}.kit-pad g{transform-box:fill-box;transform-origin:50%}.kit-pad.is-clickable{cursor:pointer}.kit-pad.is-dim>g{opacity:.38}.kit-pad.is-dim .kit-name{fill:var(--text-3)}.kit-pad.is-dim .kit-key{fill:var(--s4)}.drum-shell{fill:var(--pad);transition:fill .5s}.kit-pad.is-clickable:hover .drum-shell,.kit-pad.is-clickable:hover .pedal-frame{fill:var(--pad-hover)}.kit-lugs rect{fill:#5f6874}.drum-hoop{fill:none;stroke:url(#kit-chrome)}.drum-head{fill:var(--head)}.drum-tone{fill:none;stroke:rgba(var(--hair), .03);stroke-width:1.2px}.is-snare .drum-hoop{stroke:url(#kit-copper);opacity:.85;transition:opacity .5s}.kit-pad.is-target .is-snare .drum-hoop{opacity:1}.cym-disc{fill:var(--cymbal);transition:fill .5s}.is-silver .cym-disc{fill:#2a3038}.is-brass .cym-disc{fill:#33291a}.cym-groove{fill:none;stroke-width:.7px}.is-silver .cym-groove{stroke:#cdd8e612}.is-brass .cym-groove{stroke:#e3c68c17}.cym-sheen{fill:#dce6f20d}.is-brass .cym-sheen{fill:#e3c68c12}.cym-edge{fill:none;stroke-width:1.4px}.is-silver .cym-edge{stroke:#cdd8e633}.is-brass .cym-edge{stroke:#e3c68c42}.cym-bell{fill:#353c46}.is-brass .cym-bell{fill:#4a3c23}.cym-bell-rim{fill:none;stroke-width:1px}.is-silver .cym-bell-rim{stroke:#e1e8f038}.is-brass .cym-bell-rim{stroke:#e3c68c4d}.cym-nut{fill:#141415}.kit-cymbal.is-under .cym-disc{fill:#212123}.kit-cymbal.is-under .cym-sheen,.kit-cymbal.is-under .cym-bell,.kit-cymbal.is-under .cym-bell-rim,.kit-cymbal.is-under .cym-nut{display:none}.kit-pad.is-clickable:hover .cym-disc{fill:#303740}.kit-pad.is-clickable:hover .is-brass .cym-disc{fill:#3a2f1e}.hat-bottom{transform-box:view-box}.hat-bottom.is-closing{animation:hat-close .24s var(--spring)}@keyframes hat-close{0%,35%{transform:translate(-5px,-6px)}to{transform:none}}.pedal-frame{fill:var(--pad);transition:fill .5s}.pedal-board{fill:var(--head)}.pedal-ridge{fill:rgba(var(--hair), .05)}.pedal-hinge{fill:url(#kit-chrome)}.pedal-pin{fill:#2a3038}.kit-target{fill:#c9cfd7}.kit-pad.is-target>g{animation:1.4s ease-in-out infinite breathe}@keyframes breathe{50%{transform:scale(1.03)}}.kit-pad.is-target .kit-key,.kit-pad.is-target .kit-name{fill:var(--on-primary)}.kit-bump{animation:bump .24s var(--spring)}.kit-bump.is-swing{animation:swing .3s var(--spring)}@keyframes bump{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes swing{0%{transform:scale(.97)rotate(-2.5deg)}to{transform:none}}.kit-fill{fill:var(--pad-color);transform-box:fill-box;transform-origin:50%;opacity:0;pointer-events:none;transform:scale(0)}.kit-flash{fill:var(--flash,var(--pad-color));pointer-events:none;animation:.3s ease-out forwards flash}.kit-pad[data-tone=on]{--flash:var(--perfect)}.kit-pad[data-tone=off]{--flash:var(--miss)}@keyframes flash{0%{opacity:.78}to{opacity:0}}.kit-name{fill:var(--text);letter-spacing:-.005em;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font:500 14px Inter,system-ui,sans-serif}.kit-key-sm{fill:var(--text-3);dominant-baseline:middle;font-size:10px;font-weight:500}.kit-measure{visibility:hidden}.kit-bar{fill:var(--mat-bar)}.kit-bar-dot{fill:var(--mat-dot)}.kit-label{fill:var(--text);font:650 18px var(--font-display);text-anchor:middle;font-variant-numeric:tabular-nums;pointer-events:none}.kit-key{fill:var(--text-3);text-anchor:middle;pointer-events:none;font:600 13px Inter,system-ui,sans-serif}.screen.calibrate{height:100dvh}.cal-stage{flex:1;min-height:420px;padding:0;position:relative;overflow:clip}.cal-stage>.cal-kit{border-radius:inherit;width:auto;height:auto;position:absolute;inset:0}.cal-prompt{left:var(--sp-6);top:var(--sp-6);z-index:1;pointer-events:none;flex-direction:column;gap:4px;display:flex;position:absolute}.cal-prompt-cap{color:var(--text-2);font-size:13px}.cal-prompt-word{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:34px;font-weight:700;line-height:1.05}.cal-prompt.is-done .cal-prompt-word{color:var(--perfect)}.cal-steps{left:50%;top:var(--sp-4);gap:var(--sp-2);z-index:1;display:flex;position:absolute;transform:translate(-50%)}.cal-step{background:var(--s3);width:22px;height:22px;color:var(--on-fill);cursor:pointer;transition:transform .2s var(--spring), background-color .16s;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.cal-step.is-done{background:var(--perfect)}.cal-step.is-current{background-image:var(--chrome-metal);box-shadow:var(--chrome-shadow-sm);transform:scale(1.18)}.cal-bar{gap:var(--sp-4);flex-wrap:wrap;align-items:stretch;display:flex}.readout{min-width:320px;padding:var(--sp-3) var(--pad-card);align-items:baseline;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;flex:1;display:flex}.readout-label{color:var(--text-3);font-size:13px}.readout strong{margin-right:var(--sp-4);font-size:17px;font-weight:650}.readout-device{color:var(--text-2);font-size:14px!important;font-weight:550!important}.cal-actions{gap:var(--sp-2);align-items:center;display:flex}.home-ask{gap:var(--sp-2);flex-direction:column;display:flex}.ask{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--pad-card);display:flex}.ask-icon{color:var(--text-3);flex:none}.ask input{min-width:0;height:40px;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:15px}.ask input::placeholder{color:var(--text-3)}.ask-off{padding:var(--sp-4) var(--pad-card)}.coach-off{color:var(--text-2);align-items:center;gap:var(--sp-2);font-size:14px;display:flex}.coach-off:before{content:"";background:var(--text-3);border-radius:50%;flex:none;width:8px;height:8px}.course-bar{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.course-bar-actions{gap:var(--sp-2);display:flex}.path{gap:var(--sp-8);flex-direction:column;display:flex}.unit-head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.unit-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:600}.unit-no{background:var(--s2);width:26px;height:26px;color:var(--text-2);border-radius:8px;place-items:center;font-size:13px;font-weight:700;display:grid}.unit-lessons{gap:var(--sp-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lesson:not(:nth-of-type(3n+1)):before{content:"";background:var(--s2);width:16px;height:4px;position:absolute;top:29px;left:-16px}.lesson{text-align:left;cursor:pointer;background:var(--s1);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-4);gap:var(--sp-2);min-height:162px;transition:transform .16s var(--spring), background-color .14s, box-shadow .14s;border:0;flex-direction:column;display:flex;position:relative}.lesson:hover{background:var(--s1-hover);transform:translateY(-2px)}.lesson:active{box-shadow:var(--shadow-sm);transform:translateY(1px)}.lesson.is-current{background:var(--s2)}.lesson-top{justify-content:space-between;align-items:center;display:flex}.lesson-no{background:var(--s3);width:30px;height:30px;color:var(--text-2);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.lesson-no.is-passed{background:var(--perfect);color:var(--on-fill)}.lesson.is-current .lesson-no{background-image:var(--chrome-brushed);color:var(--ink);box-shadow:var(--chrome-shadow-sm)}.lesson-stars{gap:3px;display:flex}.lesson h3{font-size:15px;font-weight:650}.lesson p{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.lesson-foot{align-items:center;gap:var(--sp-3);color:var(--text-3);margin-top:auto;font-size:12px;display:flex}.lesson-foot strong{color:var(--text);font-size:14px;font-weight:700}.lesson-play{background-image:var(--chrome-metal);width:30px;height:30px;color:var(--ink);box-shadow:var(--chrome-shadow-sm);border-radius:50%;place-items:center;margin-left:auto;display:grid}.screen.practice{height:100dvh;padding:var(--sp-3) var(--page-gutter) var(--sp-4);gap:var(--sp-3);overflow:hidden}.practice .topbar{min-height:var(--h-md);flex:none}.practice .topbar-title h1{font-size:20px;line-height:1.15}.practice .guide{white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:13px;overflow:hidden}.guide-tip{color:var(--text-3)}.highway-card{--hw-h:clamp(140px, 20dvh, 184px);flex-direction:column;flex:none;padding:6px 0 8px;display:flex;overflow:hidden}.hw-top{align-items:center;gap:var(--sp-2);min-height:28px;padding:0 10px 4px 6px;display:flex}.hw-title{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;max-width:30%;margin:0;font-size:13px;font-weight:600;overflow:hidden}.hw-top .section-strip{flex:1;min-width:0;padding:0!important}.highway-wrap{height:var(--hw-h);position:relative}.highway{width:100%;height:100%;display:block}.highway-card.has-strip{padding-top:8px}.highway-card .section-strip{gap:3px;padding:0 10px 4px}.highway-card .strip-block{height:20px;box-shadow:none;background:var(--s2);border-radius:6px;padding:0 8px}.highway-card .strip-block.is-past{background:var(--s1)}.highway-card .strip-label{font-size:11px}.hw-meter{justify-content:center;padding:2px 16px 0;display:flex}.hw-meter .meter{align-items:center;gap:10px;width:min(520px,100%);display:flex}.hw-meter .meter-scale{display:contents}.hw-meter .meter-scale span{color:var(--text-3);width:28px;font-size:11px;font-weight:600}.hw-meter .meter-scale span:first-child{text-align:right;order:-1}.hw-meter .meter-scale span:last-child{order:1}.hw-meter .meter-track{border-radius:7px;flex:1;height:14px}.hw-meter .meter-center{top:2px;bottom:2px}.hw-meter .meter-dot{width:8px;height:8px;margin:-4px 0 0 -4px}.deck-kit{--rail-w:264px;--inset:var(--sp-3);flex:1 1 0;min-height:0;position:relative;overflow:clip}.kit-guide{position:relative}.kit-stage-clip{z-index:0;border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:clip}.kit-stage{z-index:0;pointer-events:auto;width:0;height:0;position:absolute;top:0;left:0}.kit-guide>.kit3d-fill{z-index:0;border-radius:inherit;width:auto;height:auto;position:absolute;inset:0}.kit-guide>.kit3d-fill~.kit-stage-clip>.kit-stage{pointer-events:none}.kit-flight{z-index:60;pointer-events:none;background:var(--s1);clip-path:inset(50%);visibility:hidden;position:fixed;inset:0}.kit-flight.is-on{visibility:visible}.kit-flight>.kit3d,.kit-flight-still{position:absolute;inset:0}.kit-flight-shadow{z-index:60;pointer-events:none;box-shadow:var(--shadow);visibility:hidden;position:fixed;top:0;left:0}.kit-flight-shadow.is-on{visibility:visible}body:is(.kit-flying,.kit-landing) .deck-kit{box-shadow:none;background:0 0}body.kit-flying .screen.practice{animation:none}body.kit-flying .deck-kit>.kit3d-fill{visibility:hidden}body:is(.kit-flying,.kit-landing) .screen.practice :is(.deck-kit>.widget,.deck-kit>.widget-slot,.kit-guide-head){z-index:61}:root{--flow:cubic-bezier(.65, 0, .35, 1)}.kit-ghost{z-index:59}.kit-ghost,.kit-ghost *{animation:none!important}.kit-ghost.is-over{z-index:61}.kit-ghost.is-over .kit-stage-clip,.kit-ghost.is-over .kit3d-fill{visibility:hidden}.kit-ghost .topbar,.kit-ghost [role=tablist],.kit-ghost .lcard,.kit-ghost>*{transition:transform .3s var(--flow), opacity .3s var(--flow);transition-delay:var(--stagger,0s)}.kit-ghost.is-leaving .topbar,.kit-ghost.is-leaving [role=tablist]{opacity:0;transform:translateY(-12px)}.kit-ghost.is-leaving .lcard{transform:translateX(var(--away,0));opacity:0}.kit-ghost.is-leaving>:not(.topbar):not([role=tablist]){opacity:0}.screen[data-flown],.tab-body[data-flown],.lcard[data-flown],.card[data-flown]{animation:none!important}.tab-body{animation:tab-in .26s var(--flow) both}@keyframes tab-in{0%{opacity:0;transform:translateX(calc(var(--tab-dir,1) * 12px))}}.popover{animation:pop-in .18s var(--flow) both;transform-origin:100% 0}@keyframes pop-in{0%{opacity:0;transform:translateY(6px)scale(.96)}}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.kit-ghost.is-leaving .topbar,.kit-ghost.is-leaving [role=tablist],.kit-ghost.is-leaving .lcard{transform:none}.tab-body,.popover{animation-name:fade-in}}.kit-stage:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 52% at 50% 46%, var(--spot), #0000 72%);position:absolute;inset:-30% -28% -6%}.kit-stage .kit{width:100%;height:100%}.kit-guide-head{left:var(--inset);top:var(--inset);z-index:2;width:230px;height:78px;padding:var(--sp-1) var(--sp-2);pointer-events:none;position:absolute}.kit-next{transition:opacity .32s ease, transform .32s var(--spring);flex-direction:column;gap:2px;display:flex}.kit-next.is-hidden{opacity:0;transform:translateY(4px)}.kit-next-cap{color:var(--text-3);font-size:12px;font-weight:500}.kit-next-word{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:25px;font-weight:700;line-height:1.05}.kit-listen{gap:var(--sp-2);flex-direction:column;animation:.22s ease-out screen-in;display:flex}.kit-listen .kit-next-word{letter-spacing:-.01em;font-family:Inter,system-ui,sans-serif;font-size:18px;font-weight:650;line-height:1.2}.kit-listen-dots{gap:var(--sp-2);display:flex}.kit-listen-dots i{background:var(--s3);width:14px;height:14px;transition:background-color .12s, transform .22s var(--spring);border-radius:50%}.kit-listen-dots i.is-on{background:var(--perfect);transform:scale(1.15)}.widget{background:var(--s2);border-radius:var(--r-widget);box-shadow:var(--shadow-sm);transition:opacity .5s}.deck-kit>.widget,.deck-kit>.widget-slot{z-index:2;position:absolute}.deck-kit .widget{-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);background:#1a1b1d9e;box-shadow:inset 0 1px #ffffff0f,0 1px 2px #00000059,0 10px 28px #00000059}.deck-kit .kit-next-word,.deck-kit .kit-next-cap{text-shadow:0 1px 12px #000000b3}.practice.is-busy .dim-when-busy:not(:hover):not(:focus-within){opacity:.5}.widget .btn-sm,.widget .btn-xs{height:var(--h-sm);border-radius:var(--r-ctl);padding:0 var(--sp-3);gap:6px;font-size:13px}.widget .btn-icon.btn-xs{width:var(--h-sm);flex:none;padding:0}.widget .btn-icon.btn-xs,.widget .btn-icon.btn-sm{width:var(--h-sm);padding:0}.kit-guide[data-layout=rails] .kit-guide-head{width:var(--rail-w)}.kit-guide[data-layout=rails] .score-slot{width:var(--rail-w);align-items:stretch}.kit-guide[data-layout=rails] .score-widget{justify-content:space-between}.score-slot{top:var(--inset);right:var(--inset);align-items:flex-end;gap:var(--sp-2);flex-direction:column;display:flex}.score-widget{gap:var(--sp-6);padding:var(--sp-3) var(--sp-4);display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-weight:700;line-height:1}.stat strong[data-bump]{color:var(--brass-hi);animation:num-bump .28s var(--spring);transform-origin:0 100%;display:inline-block}@keyframes num-bump{0%{transform:scale(1.12)}to{transform:scale(1)}}.stat span{color:var(--text-3);font-size:12px;font-weight:500;line-height:16px}.chip-slot{pointer-events:none;justify-content:flex-end;height:30px;display:flex}.chip{padding:5px var(--sp-3);border-radius:var(--r-ctl);box-shadow:var(--shadow-sm);animation:chip-pop .42s var(--spring);align-items:baseline;gap:6px;font-size:14px;font-weight:700;display:inline-flex}@keyframes chip-pop{0%{opacity:0;transform:translateY(6px)scale(.7)}60%{opacity:1}to{transform:none}}.chip-ms{opacity:.75;font-size:12px;font-weight:600}.chip.j-perfect{background:var(--perfect);color:var(--on-perfect)}.chip.j-good{background:var(--good);color:var(--on-good)}.chip.j-early{background:var(--early);color:var(--on-early)}.chip.j-late{background:var(--late);color:var(--on-late)}.chip.j-miss{background:var(--miss);color:var(--on-miss)}.chip.j-extra{background:var(--s4);color:var(--text-2)}.meter-track{border-radius:var(--r-ctl);background:var(--s2);height:34px;position:relative;overflow:hidden}.meter-zone{position:absolute;top:0;bottom:0}.meter-zone.good{background:rgba(var(--perfect-rgb), .07)}.meter-zone.perfect{background:rgba(var(--perfect-rgb), .14)}.meter-center{background:rgba(var(--hair), .35);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:6px;bottom:6px;left:50%}.meter-dot{width:10px;height:10px;animation:dot-drop .36s var(--spring);border-radius:50%;margin:-5px 0 0 -5px;position:absolute;top:50%}@keyframes dot-drop{0%{transform:translateY(-14px)scale(.6)}}.meter-scale{color:var(--text-3);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.j-perfect{background:var(--perfect)}.j-good{background:var(--good)}.j-early{background:var(--early)}.j-late{background:var(--late)}.j-miss{background:var(--miss)}.j-extra{background:var(--extra)}.transport-widget{right:var(--inset);bottom:var(--inset);width:max(var(--rail-w), 288px);padding:var(--sp-3);align-items:stretch;gap:var(--sp-2);flex-direction:column;display:flex}.transport-go{width:100%}.transport-go b{font-weight:600}.transport-key{margin-left:var(--sp-1);opacity:.55;font:500 11px/1 Inter,system-ui,sans-serif}.transport-side{align-items:center;gap:var(--sp-2);flex-direction:row;min-width:0;display:flex}.transport-side .bpm{flex:none;gap:2px}.transport-side .bpm-value{min-width:56px}.transport-side .btn-toggle{flex:1 1 0;justify-content:center;width:auto;min-width:0;overflow:hidden}.drumhead-wrap{flex:none;place-items:center;display:inline-grid;position:relative}.drumhead{--env:var(--env-polished);--spec-a:.9;--streak-a:.55;cursor:pointer;color:var(--ink);border:0;border-radius:999px;padding:0;box-shadow:inset 0 0 0 1px #1e242c8c,inset 0 1px 0 1px #ffffffbf,0 1px 2px #0009,0 6px 16px #0006}.drumhead.is-circle{width:76px;height:76px}.drumhead-face{width:100%;height:100%;padding:0 var(--sp-6);border-radius:999px;justify-content:center;align-items:center;gap:7px;display:flex}.drumhead.is-circle .drumhead-face{flex-direction:column;gap:3px;padding:0}.drumhead-face b{letter-spacing:-.005em;font-size:14px;font-weight:600;line-height:1}.drumhead.is-circle .drumhead-face b{font-size:13px}.drumhead:active:not(:disabled){filter:brightness(.9);transform:translateY(1px);box-shadow:inset 0 0 0 1px #1e242c99,inset 0 2px 5px #00000059,0 1px 1px #00000080}.drumhead:disabled{cursor:default;opacity:.5;filter:saturate(0)}.transport-row{justify-content:space-between;align-items:center;gap:var(--sp-2);height:var(--h-sm);display:flex}.practice .bpm{align-items:center;gap:var(--sp-1);height:var(--h-sm);display:flex}.practice .bpm-value{min-width:60px;height:var(--h-sm);justify-content:center;align-items:center;gap:var(--sp-1)}.practice .bpm-value strong{font-size:21px;line-height:1}.practice .bpm-value span{font-size:12px;line-height:1}.btn-go{height:var(--h-lg);border-radius:var(--r-ctl-lg);width:100%;font-size:15px}.btn-sm{height:var(--h-sm);padding:0 var(--sp-3);border-radius:var(--r-ctl);font-size:13px}.btn-icon.btn-sm{width:var(--h-sm);padding:0}.btn-xs{height:var(--h-sm);border-radius:var(--r-ctl);font-size:13px}.btn-icon.btn-xs{width:var(--h-sm);padding:0}.btn-icon.btn-xs.is-on{--env:var(--env-polished)}.song-widget{left:var(--inset);bottom:var(--inset);width:var(--rail-w);padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;display:flex}.song-info{align-items:center;gap:var(--sp-3);height:var(--h-lg);display:flex}.song-art{width:var(--h-lg);height:var(--h-lg);border-radius:var(--r-ctl);background:var(--s3);cursor:pointer;box-shadow:var(--shadow-flat);border:0;flex:none;padding:0;display:block;position:relative;overflow:hidden}.song-art-line{z-index:1;background:#0000008c;height:3px;position:absolute;bottom:0;left:0;right:0}.song-art-line i{background:var(--chrome);height:100%;transition:width .26s linear;display:block}.song-art:disabled{cursor:default}.song-art img{object-fit:cover;width:100%;height:100%;transition:filter .5s,opacity .5s;display:block}.song-art-crop{width:100%;height:100%;display:block;overflow:hidden}.song-art-crop img{transform:scale(1.36)}.song-art-state{z-index:2;background:var(--cover-scrim);color:var(--text);opacity:0;place-items:center;transition:opacity .5s;display:grid;position:absolute;inset:0}.song-art-state svg{transition:transform .26s var(--spring)}.song-art:hover .song-art-state,.song-art:focus-visible .song-art-state{opacity:1}.song-art:active .song-art-state svg{transform:scale(.88)}.song-art.has-play .song-art-state{opacity:1}.song-art.has-start .song-art-state{opacity:1;background:var(--cover-scrim)}.song-art.has-start .song-art-state svg{background-image:var(--chrome-metal);width:30px;height:30px;color:var(--ink);box-shadow:var(--chrome-shadow-sm);animation:chip-pop .42s var(--spring);border-radius:50%;padding:7px 6px 7px 8px}.song-meta{flex-direction:column;flex:1;justify-content:center;gap:1px;min-width:0;display:flex}.song-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:650;line-height:17px;overflow:hidden}.song-widget .song-artist{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;line-height:15px;overflow:hidden}.song-progress{align-items:center;gap:var(--sp-2);height:14px;display:flex}.song-bar{background:var(--s4);border-radius:2px;flex:1;height:4px;overflow:hidden}.song-bar i{background:var(--text-2);border-radius:2px;height:100%;transition:width .26s linear;display:block}.song-widget.is-playing .song-bar i{background:var(--text)}.song-progress span{color:var(--text-3);white-space:nowrap;font-size:11px;line-height:14px}.song-progress b{color:var(--text);font-weight:650}.song-status{height:14px;color:var(--text-2);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.song-status.is-listening i{background:var(--perfect);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite live-dot}@keyframes live-dot{50%{opacity:.35}}.song-reason{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:15px;display:-webkit-box;overflow:hidden}.song-widget.is-error .song-art img{filter:grayscale();opacity:.45}.song-video-btn{align-self:flex-start}.song-controls .switch{--disc:34px;width:50px;height:var(--h-sm)}.song-widget.is-off .switch{flex:none}.song-controls{align-items:center;gap:var(--sp-2);height:var(--h-sm);display:flex}.song-gap{flex:1}.song-off-note{color:var(--text-3);align-items:center;gap:6px;font-size:12px;display:inline-flex}.segmented-sm{border-radius:var(--r-ctl);height:var(--h-sm);flex-wrap:nowrap;gap:3px;padding:3px}.segmented-sm button{height:var(--h-xs);font-variant-numeric:tabular-nums;border-radius:7px;padding:0 7px;font-size:12px}.segmented-sm button:disabled{cursor:default}.song-widget.is-off{align-items:center;gap:var(--sp-3);padding:var(--sp-3);flex-direction:row}.song-art-sm{width:var(--h-sm);height:var(--h-sm);cursor:default;border-radius:8px}.song-art-sm img{filter:grayscale();opacity:.55}.song-off-text{flex-direction:column;flex:1;min-width:0;display:flex}.song-off-text strong{font-size:13px;font-weight:600;line-height:16px}.song-off-text span{color:var(--text-3);font-size:12px;line-height:15px}.video-panel{z-index:30;background:var(--s2);border-radius:var(--r-widget);width:480px;box-shadow:var(--shadow-lg);padding:var(--sp-2);pointer-events:none;position:fixed;top:0;left:-10000px}.video-panel .yt{aspect-ratio:auto;border-radius:var(--r-ctl);width:480px;height:270px}.video-panel:not(.is-open){padding:0}.video-panel:not(.is-open) .video-panel-head{display:none}.video-panel.is-open{pointer-events:auto;animation:pop-in .26s var(--spring);transform-origin:0 100%;width:512px;top:auto}.video-panel.is-open .yt{width:496px;height:279px}.video-panel-head{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:0 0 var(--sp-2) var(--sp-1);height:40px;display:flex}.video-panel-head span{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.song-more{position:static}.popover{left:0;bottom:calc(100% + var(--sp-2));z-index:5;background:var(--s3);border-radius:var(--r-widget);width:100%;box-shadow:var(--shadow-lg);padding:var(--sp-3);gap:var(--sp-2);animation:pop-in .26s var(--spring);transform-origin:0 100%;flex-direction:column;align-items:stretch;display:flex;position:absolute}.pop-row{align-items:center;gap:var(--sp-2);display:flex}.pop-row>.btn{flex:1}.pop-label{color:var(--text-3);flex:none;width:52px;font-size:12px;font-weight:600}.song-switch{align-items:center;gap:10px;margin-right:6px;display:inline-flex}.song-switch span{align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.song-switch .switch:disabled{opacity:.45;cursor:default}.nudge{align-items:center;gap:8px;display:inline-flex}.nudge-value{text-align:center;min-width:64px;color:var(--text-3);font-size:12px}.nudge-value strong{color:var(--text);font-size:16px;font-weight:700}.sync-panel{background:var(--s2);border-radius:var(--r-ctl-lg);padding:var(--pad-tile);gap:var(--sp-3);flex-direction:column;animation:.22s ease-out screen-in;display:flex}.sync-say{font-size:16px;font-weight:650}.sync-taps{flex-wrap:wrap;gap:6px;display:flex}.sync-taps i{background:var(--s3);width:18px;height:18px;transition:background-color .12s, transform .22s var(--spring);border-radius:50%}.sync-taps i.is-tapped{background:var(--perfect);transform:scale(1.12)}.sync-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.sync-actions{align-items:center;gap:8px;display:flex}.sync-actions .muted b,.sync-foot .muted b{color:var(--text);font-size:14px}.sync-beats{flex-wrap:wrap;gap:8px;display:flex}.sync-beats .select-chip b{margin-right:4px}.sync-manual{align-items:center;gap:8px;display:flex}.sync-manual input{background:var(--s3);width:96px;height:34px;color:var(--text);font-variant-numeric:tabular-nums;border:0;border-radius:10px;outline:0;padding:0 10px}.sync-manual input:focus{background:var(--s4);box-shadow:inset 0 0 0 1px #c9a46580}.song-toggle-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.song-toggle-note{margin-bottom:14px}.bpm{justify-content:space-between;align-items:center;gap:10px;display:flex}.bpm-value{align-items:baseline;gap:6px;display:flex}.bpm-value strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-weight:700}.bpm-value span{color:var(--text-3);font-size:13px}.tip{color:var(--text-3);text-align:center;font-size:13px}.results-grid{gap:var(--sp-4);grid-template-columns:minmax(300px,380px) 1fr;display:grid}.score{padding:var(--sp-6);gap:var(--sp-3);flex-direction:column;display:flex}.score-big{font-family:var(--font-display);letter-spacing:-.01em;animation:chip-pop .52s var(--spring);align-items:baseline;font-size:92px;font-weight:700;line-height:.95;display:flex}.score-big.is-earned{background:var(--bronze-metal);color:#0000;-webkit-background-clip:text;background-clip:text}.score-big>span:last-child{color:var(--text-2);margin-left:3px;font-size:36px;font-weight:600}.stars{gap:8px;display:flex}.cym-star{flex:none;display:block}.cym-star .cs-disc{fill:var(--s3)}.cym-star .cs-groove{fill:none;stroke:rgba(var(--hair), .06);stroke-width:.8px}.cym-star .cs-bell{fill:var(--s4)}.cym-star .cs-nut{fill:var(--s1)}.cym-star.on .cs-disc{fill:var(--brass)}.cym-star.on .cs-groove{stroke:#50381273}.cym-star.on .cs-bell{fill:var(--brass-hi)}.cym-star.on .cs-nut{fill:var(--brass-lo)}.stars .cym-star.on{animation:chip-pop .42s var(--spring) both}.score-meta{color:var(--text-3);font-size:13px}.score-meta strong{color:var(--text);font-size:15px;font-weight:700}.counts{gap:var(--sp-2);margin-top:var(--sp-1);grid-template-columns:repeat(3,1fr);display:grid}.count{background:var(--s2);border-radius:var(--r-ctl-lg);padding:var(--pad-tile);flex-direction:column;display:flex}.count strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:23px;font-weight:700;line-height:1.05}.count span{color:var(--text-3);align-items:center;gap:6px;font-size:12px;display:flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.pads{padding:var(--sp-6)}.pads h3{color:var(--text-2);margin-bottom:var(--sp-3);font-size:14px;font-weight:650}.pad-rows{gap:var(--sp-2);flex-direction:column;display:flex}.pad-row{align-items:center;gap:var(--sp-4);grid-template-columns:96px 1fr 104px;display:grid}.pad-name{color:var(--text-2);font-size:13px;font-weight:500}.pad-track{background:var(--s2);border-radius:7px;height:22px;position:relative}.pad-spread{background:rgba(var(--hair), .1);border-radius:4px;position:absolute;top:7px;bottom:7px}.pad-bar{transform-origin:50%;animation:grow .52s var(--spring);border-radius:4px;position:absolute;top:4px;bottom:4px}@keyframes grow{0%{transform:scaleX(0)}}.pad-bar.is-early{background:var(--early)}.pad-bar.is-late{background:var(--late)}.pad-center{background:rgba(var(--hair), .4);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:2px;bottom:2px;left:50%}.pad-num{color:var(--text-3);align-items:baseline;gap:4px;font-size:12px;display:flex}.pad-num strong{color:var(--text);font-size:15px;font-weight:700}.pad-num em{color:var(--text-2);margin-left:auto;font-style:normal;font-weight:600}.pad-axis{gap:var(--sp-4);color:var(--text-3);grid-template-columns:96px 1fr 104px;margin-top:6px;font-size:11px;display:grid}.pad-axis>div{justify-content:space-between;display:flex}.strip-title{margin-top:24px}.strip{background:var(--s2);border-radius:10px;height:64px;position:relative;overflow:hidden}.strip-perfect{background:rgba(var(--perfect-rgb), .1);position:absolute;inset:0 38.3333%}.strip-center{background:rgba(var(--hair), .3);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:50%}.strip-dot{opacity:.8;width:9px;height:9px;animation:dot-drop .4s var(--spring) both;border-radius:50%;margin:-4.5px 0 0 -4.5px;position:absolute}.coach{padding:var(--sp-4) var(--pad-card)}.coach-reply{align-items:flex-start;gap:12px;animation:.26s ease-out screen-in;display:flex}.coach-reply p{max-width:70ch;font-size:15px;line-height:1.55}.coach-icon{color:var(--chrome);flex:none;margin-top:3px}.coach-error{color:var(--text-2);font-size:14px}.results-actions{justify-content:flex-end;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.results-actions .btn-tertiary{margin-right:auto}.coach-inline{margin-top:var(--sp-4)}.coach-inline .coach-off{font-size:13px}.screen.results{min-height:100dvh}.screen.results .results-grid{flex:auto}.scrim{background:var(--scrim);z-index:10;place-items:center;padding:24px;animation:.16s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{background:var(--s1);width:min(480px,100%);max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);padding:var(--sp-6);animation:sheet-in .32s var(--spring);border-radius:20px;overflow:auto}@keyframes sheet-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}.sheet-head{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:600}.form{gap:var(--sp-4);flex-direction:column;display:flex}.field{gap:var(--sp-2);flex-direction:column;display:flex}.field>span:first-child{color:var(--text-2);font-size:13px;font-weight:550}.field.row{justify-content:space-between;align-items:center;gap:var(--sp-4);flex-direction:row}.field.row>span:first-child{color:var(--text);font-size:14px;font-weight:500}.field .segmented{align-self:flex-start}.field textarea{resize:vertical;background:var(--s2);min-height:76px;color:var(--text);box-shadow:inset 0 1px 2px #00000080, inset 0 -1px 0 rgba(var(--hair), .05);border:0;border-radius:12px;outline:0;padding:12px 14px;font-size:14px;line-height:1.45}.field textarea:focus{background:var(--s3);box-shadow:inset 0 0 0 1px #c9a46573}.field textarea::placeholder{color:var(--text-3)}.stepper{align-items:center;gap:var(--sp-3);display:flex}.angle-value{align-items:center;gap:var(--sp-2);display:flex}.angle-value .num{text-align:right;min-width:3ch;font-size:15px}.angle-slider{width:100%;accent-color:var(--chrome);margin:0}.angle-ends{justify-content:space-between;font-size:12px;display:flex}.stepper strong{text-align:center;min-width:56px;font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:700}.stepper small{color:var(--text-3);font-size:12px;font-weight:500}.chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.select-chip{height:var(--h-sm);padding:0 var(--sp-3);border-radius:var(--r-ctl);cursor:pointer;color:var(--text-2);box-shadow:var(--gun-shadow);border:0;font-size:13px;font-weight:600}.select-chip:active{transform:scale(.95)}.select-chip{--env:var(--env-gun);--spec-a:.22;--streak-a:.07}.select-chip.is-on{--env:var(--env-brushed);--spec-a:.8;--streak-a:.34;color:var(--ink);box-shadow:var(--chrome-shadow-sm)}.tap{background:var(--s2);border-radius:var(--r-widget);padding:var(--pad-tile);gap:var(--sp-3);flex-direction:column;display:flex}.tap-dots{grid-template-columns:repeat(16,1fr);gap:5px;display:grid}.tap-dot{background:var(--s3);height:10px;transition:background-color .12s, transform .22s var(--spring);border-radius:5px}.tap-dot.is-warm{opacity:.5}.tap-dot.is-past{background:var(--s4)}.tap-dot.is-tapped{background:var(--perfect);transform:scaleY(1.3)}.tap-foot{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}@media (width<=1100px){.screen{padding-top:var(--pad-card);padding-bottom:calc(var(--sp-8) + var(--sp-2))}.results-grid{grid-template-columns:1fr}}.course-title{color:var(--text-3);font-size:13px;font-weight:600}.sensitivity{margin-top:var(--sp-4);color:var(--text-2);font-size:13px}.shift-timing{margin-top:var(--sp-4);justify-content:space-between;align-items:center;gap:var(--sp-3);color:var(--text-2);font-size:13px;display:flex}.shift-timing strong{color:var(--text);font-weight:650}@media (width<=1000px),(height<=680px){.deck-kit{--rail-w:248px}.transport-widget,.song-widget{padding:var(--sp-2)}.btn-go{height:var(--h-md)}.song-info{height:var(--h-md);gap:var(--sp-2)}.song-info .song-art{width:var(--h-md);height:var(--h-md)}.song-widget .song-artist{display:none}.score-widget{gap:var(--sp-4);padding:var(--sp-2) var(--sp-3)}.stat strong{font-size:24px}.kit-guide-head{width:190px;height:64px}.kit-next-word{font-size:22px}.kit-listen .kit-next-word{font-size:16px}}.btn:active:not(:disabled),.segmented button:active:not(:disabled),.target-head:active{filter:brightness(.9)}.kit-connect{position:relative}.btn.input-status{max-width:260px;padding:0 var(--sp-3);text-overflow:ellipsis;font-size:13px;font-weight:550;overflow:hidden}.input-status i{background:var(--text-3);border-radius:50%;flex:none;width:7px;height:7px}.input-status.is-on{color:var(--text)}.input-status.is-on i{background:var(--perfect)}.kit-pop{top:calc(100% + var(--sp-2));z-index:20;background:var(--s2);border-radius:var(--r-widget);width:320px;box-shadow:var(--shadow-lg);padding:var(--sp-4);gap:var(--sp-4);animation:pop-in .22s var(--spring);transform-origin:100% 0;flex-direction:column;display:flex;position:absolute;right:0}.kit-pop-status{align-items:center;gap:var(--sp-2);color:var(--text);font-size:14px;font-weight:600;display:flex}.kit-pop-status i{background:var(--text-3);border-radius:50%;flex:none;width:8px;height:8px;animation:1.4s ease-in-out infinite waiting}.kit-pop-status.is-on i{background:var(--perfect);animation:none}@keyframes waiting{50%{opacity:.35}}.kit-steps{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.kit-steps li{align-items:center;gap:var(--sp-3);color:var(--text-2);font-size:13px;display:flex}.kit-steps svg{color:var(--text-3);flex:none}.kit-choices{margin:0 calc(var(--sp-2) * -1);flex-direction:column;gap:2px;display:flex}.kit-choice{align-items:center;gap:var(--sp-3);height:var(--h-md);padding:0 var(--sp-2);border-radius:var(--r-ctl);color:var(--text-2);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;font-size:14px;font-weight:550;transition:background-color .16s,color .16s;display:flex}.kit-choice span{flex:1}.kit-choice:hover{background:var(--s3);color:var(--text)}.kit-choice.is-on{background:var(--s3);color:var(--text);box-shadow:var(--shadow-sm)}.kit-choice:focus-visible{outline:2px solid var(--chrome);outline-offset:1px}.kit-pop>.btn{width:100%}.mic-meter{background:var(--s3);border-radius:4px;flex:none;align-self:center;width:64px;height:8px;position:relative;overflow:hidden}.mic-meter>span{transform-origin:0;transform:scaleX(var(--lvl,0));background:var(--perfect);border-radius:inherit;position:absolute;inset:0}.mic-meter.is-wide{border-radius:5px;width:min(320px,70%);height:10px}.mic-latency{justify-content:center;align-items:center;gap:var(--sp-8);flex-direction:column;display:flex}.mic-clicks{gap:var(--sp-3);display:flex}.mic-click{background:var(--s3);width:22px;height:22px;transition:background-color .16s, transform .22s var(--spring);border-radius:50%}.mic-click.is-heard{background:var(--perfect);transform:scale(1.12)}.mic-actions{margin-left:auto}.mic-center{flex:1;place-items:center;display:grid}.mic-readout{align-items:center}.mic-dots{gap:6px;display:inline-flex}.mic-dots i{background:var(--s3);width:12px;height:12px;transition:background-color .12s, transform .22s var(--spring);border-radius:50%}.mic-dots i.is-on{background:var(--perfect);transform:scale(1.15)}.mic-loose{gap:var(--sp-2);flex-wrap:wrap;display:inline-flex}.tag{height:28px;padding:0 var(--sp-3);background:var(--s2);color:var(--text-2);border-radius:999px;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.tag small{color:var(--text-3);font-size:12px;font-weight:500}.splash{--mk:clamp(84px, 22vw, 128px);z-index:1000;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#000;place-items:center;width:100vw;display:grid;position:fixed;inset:0 auto 0 0;overflow:hidden}.splash.is-leave{pointer-events:none}.splash-spot{pointer-events:none;opacity:0;background:radial-gradient(38% 34%,#d6dee82b 0%,#d6dee80f 48%,#d6dee800 72%);transition:opacity .6s ease-out;position:absolute;inset:-10%}.splash-lockup{align-items:center;gap:calc(var(--mk) * .2);display:flex;position:relative}.splash-mark{width:var(--mk);height:var(--mk);opacity:0;transition:opacity .42s ease-out;position:relative}.splash-layer{will-change:transform, opacity;position:absolute;inset:0}.splash-layer .logo{width:100%;height:100%;display:block}.l-cym{transform-origin:50% 24%}.splash-word.wordmark{font-size:calc(var(--mk) * .34);opacity:0;will-change:transform, opacity}.splash-hint{text-align:center;color:var(--text-2);letter-spacing:.01em;opacity:0;font-size:14px;font-weight:500;position:absolute;bottom:max(14vh,64px);left:0;right:0}.splash.is-gate .splash-spot{opacity:.5}.splash.is-gate .splash-mark{opacity:1;transform:translateX(var(--gate-shift,0px)) scale(.94)}.splash.is-gate .splash-hint{animation:2.4s ease-in-out .3s infinite both splash-hint}@keyframes splash-hint{0%,to{opacity:.45}50%{opacity:1}}.splash.is-still .splash-spot{opacity:.9;transition:none}.splash.is-still .splash-mark,.splash.is-still .splash-word{opacity:1;transition:none}.splash.is-still .splash-layer{opacity:1;transform:none}.tabs{align-self:flex-start}.tabs button{height:var(--h-sm);padding:0 var(--sp-4);font-size:14px}.tab-body{gap:var(--sp-4);flex-direction:column;animation:.22s ease-out screen-in;display:flex}.guide{animation:.2s ease-out fade}.section-title{color:var(--text-2);margin-bottom:var(--sp-3);font-size:13px;font-weight:600}.learn{flex-direction:column;gap:32px;display:flex}.lessons{gap:var(--sp-4);flex-direction:column;display:flex}.card-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.card-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:600}.card-head .muted strong{color:var(--text);font-size:14px;font-weight:700}.ok{color:var(--perfect)}.progress{background:var(--s3);border-radius:3px;height:6px;overflow:hidden}.progress i{background:var(--brass);height:100%;transition:width .4s var(--spring);border-radius:3px;display:block}.vc-card,.video-row,.drill,.song-card,.step,.section-chip{text-align:left;cursor:pointer;color:inherit;background:var(--s1);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .16s var(--spring), background-color .5s ease, box-shadow .14s;border:0;position:relative}.vc-card:hover,.video-row:hover,.song-card:not(.is-locked):hover,.step:hover{background:var(--s1-hover);transform:translateY(-2px)}.vc-card:active,.video-row:active,.drill:active,.song-card:not(.is-locked):active,.step:active,.section-chip:active{box-shadow:var(--shadow-sm);transform:translateY(1px)}.vc-card:focus-visible,.video-row:focus-visible,.drill:focus-visible,.song-card:focus-visible,.step:focus-visible,.section-chip:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.vc-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.vc-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.vc-thumb{aspect-ratio:16/9;background:var(--s2);overflow:hidden}.vc-thumb img,.video-thumb img,.song-thumb img{object-fit:cover;width:100%;height:100%;display:block}.vc-body{padding:var(--sp-3) var(--sp-4) var(--sp-4);gap:var(--sp-1);flex-direction:column;flex:1;display:flex}.vc-channel{color:var(--text-3);font-size:12px;font-weight:600}.vc-body h3{font-size:15px;font-weight:650}.vc-body p{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.vc-foot{padding-top:var(--sp-2);gap:var(--sp-3);color:var(--text-3);margin-top:auto;font-size:12px;display:flex}.vc-foot strong,.video-meta strong,.drill-meta strong,.song-foot strong,.video-bar-meta strong{color:var(--text);font-size:14px;font-weight:700}.vc-done{margin-left:auto}.video-list{gap:var(--sp-3);flex-direction:column;display:flex}.video-row{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);grid-template-columns:30px 160px 1fr auto;display:grid}.video-row.is-current{background:var(--s2)}.video-row.is-current .lesson-no{background-image:var(--chrome-brushed);color:var(--ink)}.video-thumb{aspect-ratio:16/9;background:var(--s2);border-radius:10px;position:relative;overflow:hidden}.video-thumb-bar{background:#00000080;height:4px;position:absolute;bottom:0;left:0;right:0}.video-thumb-bar i{background:var(--perfect);height:100%;display:block}.video-text{min-width:0}.video-text h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:650;display:-webkit-box;overflow:hidden}.video-text p{color:var(--text-2);margin-top:3px;font-size:13px}.video-meta{color:var(--text-3);white-space:nowrap;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;display:flex}.screen.video-screen{height:100dvh;padding:var(--sp-3) var(--page-gutter) var(--sp-4);gap:var(--sp-3);overflow:hidden}.video-screen .topbar{min-height:var(--h-md);flex:none}.video-screen .topbar-title h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.video-split{--rail:84px;--gap:var(--sp-4);gap:var(--gap);grid-template-columns:calc(50% - var(--gap) / 2) calc(50% - var(--gap) / 2);min-height:0;transition:grid-template-columns .38s var(--flow);flex:1 1 0;display:grid;container-type:size}.focus-video .video-split{grid-template-columns:calc(100% - var(--rail) - var(--gap)) var(--rail)}.focus-drill .video-split{grid-template-columns:var(--rail) calc(100% - var(--rail) - var(--gap))}@media (prefers-reduced-motion:reduce){.video-split{transition:none}}.video-split.is-moving .drill-kit>.kit3d-fill{width:var(--freeze-w);height:var(--freeze-h);bottom:auto;right:auto}.split-side{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.side-video{align-items:center}.video-main{flex-direction:column;width:min(100%,177.778cqh - 106.667px);max-height:100%;display:flex;overflow:hidden}.video-main>.yt{flex:0 auto;min-height:0}.video-screen:not(.focus-video) .video-main{visibility:hidden;position:absolute;top:0}.pane{font:inherit;color:inherit;text-align:left;cursor:pointer;border:0;flex-direction:column;padding:0;animation:.24s ease-out both fade-in;display:flex;position:relative}.video-pane{flex:1 1 0;width:100%;min-height:0;overflow:hidden}.pane-poster{object-fit:contain;background:#000;flex:1 1 0;width:100%;min-height:0;transition:filter .2s;display:block}.pane:hover .pane-poster{filter:brightness(1.08)}.pane-bar{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);flex:none;display:flex}.pane-meta{gap:var(--sp-4);color:var(--text-3);font-size:13px;display:flex}.pane-meta strong{color:var(--text);font-weight:700}.pane-go{height:var(--h-sm);padding:0 var(--sp-3);background:var(--s3);color:var(--text);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;font-size:13px;font-weight:600;transition:background-color .16s;display:inline-flex}.pane:hover .pane-go{background:var(--s4)}.pane:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.drill-pane{border-radius:var(--radius);padding:var(--sp-2);background:0 0;justify-content:flex-end;position:absolute;inset:0}.drill-pane .pane-bar{border-radius:var(--r-widget);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);background:#1a1b1d9e;box-shadow:inset 0 1px #ffffff0f,0 1px 2px #00000059,0 10px 28px #00000059}.pane-steps{gap:4px var(--sp-3);min-width:0;color:var(--text-2);flex-wrap:wrap;font-size:12.5px;font-weight:600;display:flex}.pane-step{white-space:nowrap}.side-rail{z-index:3;cursor:pointer;border-radius:var(--radius);background:var(--s1) var(--grain);box-shadow:var(--shadow);color:var(--text-2);align-items:center;gap:var(--sp-3);padding:0;padding-top:var(--sp-3);font:inherit;border:0;flex-direction:column;animation:.26s ease-out .12s both fade-in;display:flex;position:absolute;inset:0;overflow:hidden}.side-rail:hover{color:var(--text);background-color:var(--s1-hover)}.side-rail:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.rail-video img{aspect-ratio:9/16;object-fit:cover;background:#000;border-radius:10px;width:calc(100% - 16px)}.rail-icon{background:var(--s3);width:36px;height:36px;color:var(--text);box-shadow:var(--shadow-sm);border-radius:50%;flex:none;place-items:center;display:grid}.rail-video .rail-icon{top:calc(var(--sp-3) + (var(--rail) - 16px) * 16 / 9 / 2 - 18px);position:absolute}.rail-label{writing-mode:vertical-rl;white-space:nowrap;text-overflow:ellipsis;max-height:calc(100% - 80px);font-size:13px;font-weight:600;overflow:hidden}.focus-video .side-drill>.drill-panel,.focus-drill .side-video>.card{visibility:hidden}.yt{aspect-ratio:16/9;background:#000;border-radius:12px;position:relative;overflow:hidden}.video-main>.yt{border-radius:var(--radius) var(--radius) 0 0}.yt iframe,.yt-host,.yt-host>*{border:0;width:100%;height:100%;position:absolute;inset:0}.video-bar{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap;flex:none;display:flex}.video-bar-meta{align-items:center;gap:var(--sp-4);color:var(--text-3);font-size:13px;display:flex}.watch-state{color:var(--text-2);align-items:center;gap:6px;font-weight:600;display:inline-flex}.video-bar-actions{gap:var(--sp-2);display:flex}.skeleton{cursor:default;background:var(--s2);min-height:64px;box-shadow:none;animation:1.2s ease-in-out infinite shimmer}@keyframes shimmer{50%{opacity:.45}}.songs{gap:var(--sp-4);flex-direction:column;display:flex}.song-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.song-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.song-card.is-locked{cursor:default}.song-card.is-locked .song-thumb img{opacity:.55}.song-thumb{aspect-ratio:16/10;background:var(--s2);border-radius:var(--radius) var(--radius) 0 0;position:relative;overflow:hidden}.song-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .5s,filter .5s;display:block;transform:scale(1.14)}.song-card:not(.is-locked):hover .song-thumb img{transform:scale(1.163)}.song-card.is-locked .song-thumb img{filter:grayscale()brightness(.55)}.song-art-empty{color:var(--text-3);place-items:center;display:grid;position:absolute;inset:0}.song-line{background:#0000008c;height:3px;position:absolute;bottom:0;left:0;right:0}.song-line i{background:var(--brass);height:100%;display:block}.song-mark{background-image:var(--bronze-metal);color:#2a1f10;width:26px;height:26px;box-shadow:var(--bronze-shadow);animation:chip-pop .42s var(--spring);border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.song-body{padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;flex:1;gap:2px;display:flex}.song-body h3{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:600;line-height:1.15}.song-card .song-body{border-radius:0 0 var(--radius) var(--radius)}.song-artist{color:var(--text-2);font-size:13px}.song-foot{color:var(--text-3);margin-top:8px;font-size:12px}.diff{gap:3px;display:inline-flex}.diff i{background:var(--s3);border-radius:50%;width:8px;height:8px}.diff i.on{background:var(--chrome)}.song-gen{margin-top:8px}.song-gen .muted{align-items:center;gap:5px;font-size:12px;display:inline-flex}.song-gen .inline-error{padding:0;font-size:12px}.song-gen-btn{margin:0 var(--sp-4) var(--sp-4)}.artist{color:var(--text-3);margin-left:6px;font-weight:500}.song-layout{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) 380px;align-items:start;display:grid}.song-main{gap:var(--sp-4);flex-direction:column;display:flex}.song-sections,.song-full,.play-along,.targets{padding:var(--pad-card)}.section-chips{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.section-chip{gap:var(--sp-1);padding:var(--pad-tile);background:var(--s2);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.section-chip:hover{background:var(--s3);transform:translateY(-1px)}.section-chip-top{align-items:center;gap:8px;font-size:14px;display:flex}.section-chip-top svg:not(.ok){color:var(--chrome)}.section-chip-goal{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.section-chip-foot{color:var(--text-3);gap:12px;margin-top:4px;font-size:11px;display:flex}.section-chip-foot b{color:var(--text);font-size:13px;font-weight:700}.section-chip-foot .best{margin-left:auto}.section-chip-foot .best b{font-size:15px}.section-chip.is-done .best b{color:var(--perfect)}.arrangement{gap:var(--sp-1);margin-bottom:var(--sp-4);display:flex}.arr-block{background:var(--s2);border-radius:7px;flex-basis:0;align-items:center;min-width:0;height:30px;padding:0 8px;display:flex}.arr-block span{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.tempo{align-items:center;gap:var(--sp-4);grid-template-columns:auto 1fr auto;display:grid}.tempo .bpm-value{min-width:96px}.tempo-range{color:var(--text-3);white-space:nowrap;font-size:12px}.tempo-range b{color:var(--text-2);font-weight:700}input[type=range]{appearance:none;cursor:pointer;background:linear-gradient(to right, var(--chrome) var(--fill,0%), var(--s3) var(--fill,0%));border-radius:4px;width:100%;height:8px;box-shadow:inset 0 1px 2px #00000080}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;transition:transform .16s var(--spring);background:#c3cad3;border-radius:50%;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000059,0 1px 2px #00000080,0 3px 8px #0000004d}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]::-moz-range-thumb{background:#c3cad3;border:0;border-radius:50%;width:22px;height:22px}input[type=range]:focus-visible{outline:2px solid var(--chrome);outline-offset:4px}.song-full-actions{margin-top:var(--sp-4);justify-content:flex-end;align-items:center;gap:var(--sp-3);display:flex}.brass-badge{height:var(--h-sm);padding:0 var(--sp-3);border-radius:var(--r-ctl);background-image:var(--bronze-metal);color:#2a1f10;box-shadow:var(--bronze-shadow);align-items:center;gap:6px;font-size:13px;font-weight:650;display:inline-flex}.unlocked,.brass-badge-metal{animation:chip-pop .42s var(--spring)}.play-along{gap:var(--sp-3);flex-direction:column;display:flex}.play-along .card-head{align-items:center;margin-bottom:0}.section-strip{gap:4px;display:flex}.strip-block{background:var(--s1);min-width:0;height:34px;box-shadow:var(--shadow-sm);border-radius:9px;flex-basis:0;align-items:center;padding:0 10px;transition:background-color .16s;display:flex;position:relative;overflow:hidden}.strip-block.is-past{background:var(--s2)}.strip-block.is-past .strip-label{color:var(--text-3)}.strip-block.is-current{background:var(--s3);animation:bump .26s var(--spring)}.strip-fill{background:var(--chrome);opacity:.28;width:0;position:absolute;top:0;bottom:0;left:0}.strip-label{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:650;position:relative;overflow:hidden}.strip-block.is-current .strip-label{color:var(--text)}.once-note{cursor:default}.path-tab{gap:var(--sp-4);flex-direction:column;display:flex}.targets .card-head{margin-bottom:var(--sp-3)}.path-head{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.path-count{align-items:baseline;display:flex}.path-count strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-weight:700}.path-count span{color:var(--text-3);margin-left:4px;font-size:13px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.steps{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.step-row{grid-template-columns:34px 1fr;align-items:center;gap:16px;animation:.26s ease-out both screen-in;display:grid;position:relative}.step-row:not(:last-child):after{content:"";height:calc(100% + var(--sp-3) - 34px);background:var(--s2);border-radius:2px;width:4px;position:absolute;top:calc(50% + 17px);left:15px}.step-row.is-done:not(:last-child):after{background:rgba(var(--perfect-rgb), .35)}.step-dot{z-index:1;background:var(--s3);width:34px;height:34px;color:var(--text-2);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid;position:relative}.step-row.is-done .step-dot{background:var(--perfect);color:var(--on-fill)}.step-row.is-next .step-dot{background-image:var(--chrome-brushed);color:var(--ink);transform:scale(1.1)}.step{align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-4) var(--sp-2) var(--sp-2);grid-template-columns:96px 1fr auto auto;width:100%;display:grid}.step.skeleton{min-height:74px}.step-row.is-next .step{background:var(--s2)}.step-row.is-done .step{opacity:.72}.step-thumb{aspect-ratio:16/9;object-fit:cover;background:var(--s2);border-radius:8px;width:96px;display:block}.step-icon{aspect-ratio:16/9;background:var(--s2);width:96px;color:var(--text-2);border-radius:8px;place-items:center;display:grid}.step-row.is-next .step-icon{background:var(--s3)}.step-text{min-width:0}.step-text h3{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:650;overflow:hidden}.step-text p{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.next-tag{color:var(--chrome);margin-bottom:1px;font-size:11px;font-weight:700;display:inline-block}.step-kind{color:var(--text-3);align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}@media (width<=1100px){.song-layout{grid-template-columns:1fr}.video-row{grid-template-columns:30px 120px 1fr}.video-meta{display:none}}@media (width<=640px){.step{grid-template-columns:64px 1fr}.step-thumb,.step-icon{width:64px}.step-kind,.step .lesson-play{display:none}.tempo{grid-template-columns:1fr}}a.btn{text-decoration:none}.screen.home.tab-path,.screen.home.tab-learn{height:100dvh;padding-bottom:var(--sp-6);overflow:visible clip}.home.tab-path .tab-body,.home.tab-learn .tab-body{flex:1 1 0;min-height:0}.home .topbar{flex:none}.home>.topbar{z-index:30;isolation:isolate;height:56px;margin-top:calc(-1 * var(--sp-6));grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:relative}.home>.topbar:before{content:"";z-index:-1;background-color:#1b1c1e;background-image:var(--grain);width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset 0 -1px #ffffff0a}.home>.topbar .tabs{box-shadow:none;place-self:center;gap:var(--sp-1);background:0 0;padding:0}.home>.topbar .tabs button{height:30px;padding:0 var(--sp-4);font-size:13.5px}.home>.topbar .tabs button:not(.is-on){box-shadow:none;color:var(--text-3);background:0 0}.home>.topbar .tabs button:not(.is-on):hover{color:var(--text);filter:none}.home>.topbar .topbar-actions{justify-self:end}.home .tabs{flex:none}.setlist-screen{gap:var(--sp-4);flex-direction:column;flex:1 1 0;min-height:0;display:flex}.targets-bar{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);flex:none;display:flex}.targets-heads{align-items:center;gap:var(--sp-2);scrollbar-width:none;min-width:0;display:flex;overflow-x:auto}.target-head{--env:var(--env-gun);--spec-a:.22;--streak-a:.07;align-items:center;gap:var(--sp-2);height:48px;padding:0 var(--sp-3) 0 4px;border-radius:var(--r-ctl-lg);color:var(--text-2);cursor:pointer;box-shadow:var(--gun-shadow);border:0;flex:none;font-size:13px;font-weight:600;display:flex}.target-art{background:var(--s3);width:40px;height:40px;color:var(--text-3);border-radius:8px;flex:none;place-items:center;display:grid;overflow:hidden}.target-art img{object-fit:cover;filter:grayscale()brightness(.6);width:100%;height:100%;transition:filter .5s;display:block;transform:scale(1.35)}.target-head:hover{color:var(--text)}.target-head:active{transform:translateY(1px)}.target-head.is-on{--env:var(--env-brushed);--spec-a:.8;--streak-a:.34;color:var(--ink);box-shadow:var(--chrome-shadow-sm)}.target-head.is-on .target-art img{filter:none}.target-head:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.target-name{white-space:nowrap}.targets-hint{color:var(--text-3);padding-left:var(--sp-2);flex:none;font-size:12px}.targets-hint b{color:var(--text-2)}.targets-meter{align-items:center;gap:var(--sp-3);flex:none;display:flex}.meter-arc{width:48px;height:48px}.meter-arc circle{fill:none;stroke-width:9px}.meter-arc-track{stroke:var(--s3)}.meter-arc-fill{stroke:var(--brass);stroke-linecap:round;transition:stroke-dasharray .6s var(--spring)}.targets-count{flex-direction:column;gap:3px;line-height:1;display:flex}.targets-count strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:25px;font-weight:700}.targets-count span{color:var(--text-3);font-size:12px}.setlist-main{gap:var(--sp-4);flex:1 1 0;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);min-height:0;display:grid}.set-hero{gap:var(--sp-4);min-height:0;padding:var(--sp-4);flex-direction:column;display:flex}.set-hero-empty{border-radius:var(--r-widget);flex:1}.set-media{border-radius:var(--r-widget);background:#060607;flex:1 1 0;min-height:180px;position:relative;overflow:hidden;box-shadow:0 1px 2px #00000080}.set-media img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.set-media.is-pattern{align-items:center;gap:var(--sp-2);background:var(--mat);padding:var(--sp-3) var(--sp-4);flex-direction:column;display:flex}.set-media .set-kit{flex:1 1 0;width:100%;height:100%;min-height:0}.set-media .pattern{flex:none;width:100%;height:30%}.pattern-lane{fill:var(--hw-lane)}.pattern-lane.is-alt{fill:#a0afc30d}.pattern-beat{fill:rgba(var(--hair), .06)}.pattern-bar{fill:rgba(var(--hair), .16)}.set-hero-foot{align-items:center;gap:var(--sp-4);flex:none;display:flex}.set-hero-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.set-kind{color:var(--text-2);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.set-kind i{background:var(--text-3);border-radius:50%;width:3px;height:3px}.set-kind b{color:var(--text);font-size:13px}.set-hero-text h2{font-family:var(--font-display);letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:23px;font-weight:600;line-height:1.08;display:-webkit-box;overflow:hidden}.set-hero-text p{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.set-list{gap:var(--sp-3);min-height:0;padding:var(--sp-4);flex-direction:column;display:flex}.set-list-head{padding:0 var(--sp-1);justify-content:space-between;align-items:baseline;display:flex}.set-list-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:600}.set-list-head .muted b{color:var(--text);font-weight:650}.set-rows{gap:var(--sp-2);flex-direction:column;flex:auto;margin:0;padding:0;list-style:none;display:flex}.set-rows>li{flex:1 1 0;min-width:0;min-height:40px;max-height:64px;display:flex}.set-row{align-items:center;gap:var(--sp-3);min-width:0;min-height:0;padding:0 var(--sp-3);border-radius:var(--r-ctl-lg);color:var(--text-2);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;transition:background-color .3s,color .3s;display:flex}li.set-row{cursor:default;background:var(--s2);flex:1}.set-row:hover{background:var(--s2);color:var(--text)}.set-row:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.set-no{width:28px;height:28px;font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-3);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:600;display:grid}.set-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.kind-icon{color:var(--text-3);flex:none}.set-row.is-done .set-title{text-decoration:line-through;-webkit-text-decoration-color:rgba(var(--hair), .3);text-decoration-color:rgba(var(--hair), .3);color:var(--text-3)}.set-row.is-done .set-no{color:var(--brass)}.set-row.is-next .set-no{background:var(--s4);color:var(--text)}.set-row.is-sel{background:var(--s3);color:var(--text)}.set-scrub{height:14px;padding:0 var(--sp-1);flex:none;align-items:center;gap:3px;display:flex}.scrub-tick{background:var(--s3);cursor:pointer;height:6px;transition:height .22s var(--spring), background-color .5s ease;border:0;border-radius:3px;flex:1;padding:0}.scrub-tick.is-in{background:var(--s5);height:12px}.scrub-tick.is-done{background:var(--brass-lo)}.scrub-tick.is-done.is-in{background:var(--brass)}.scrub-tick.is-next{background:var(--text)}.scrub-tick:hover{height:12px}@media (width<=1100px){.screen.home.tab-path,.screen.home.tab-learn{padding-bottom:var(--sp-4)}.targets-hint{display:none}.set-hero-text h2{font-size:24px}}.course-pills-row{align-items:center;gap:var(--sp-2);flex:none;display:flex}.course-pills{gap:var(--sp-6);scrollbar-width:none;flex:1;min-width:0;padding:2px 2px 4px;display:flex;overflow-x:auto}.course-pills::-webkit-scrollbar{display:none}.lesson-strip::-webkit-scrollbar{display:none}.course-pill{height:var(--h-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:none;align-items:center;gap:6px;padding:0 2px;font-size:14px;font-weight:600;transition:color .3s;display:inline-flex;position:relative}.course-pill .pill-icon{opacity:.85;flex:none;transition:opacity .3s}.course-pill.is-on .pill-icon{opacity:1;color:var(--brass)}.pill-outcome{opacity:0;grid-template-columns:0fr;margin-left:-6px;transition:grid-template-columns .36s cubic-bezier(.2,.7,.2,1),opacity .26s,margin-left .36s;display:inline-grid}.pill-outcome>span{min-width:0;height:20px;color:var(--text-2);background:var(--s2);border-radius:6px;align-items:center;padding:0;font-size:11.5px;font-weight:600;transition:padding .36s;display:inline-flex;overflow:hidden}.course-pill.is-on .pill-outcome{opacity:1;grid-template-columns:1fr;margin-left:2px}.course-pill.is-on .pill-outcome>span{padding:0 8px}@media (prefers-reduced-motion:reduce){.pill-outcome,.pill-outcome>span{transition:none}}.course-pill:hover,.course-pill.is-on,.course-pill.is-on{color:var(--text)}.course-pill:focus-visible{outline:2px solid var(--chrome);outline-offset:2px;border-radius:4px}.pill-line{background:var(--s3);border-radius:1px;height:2px;position:absolute;bottom:0;left:2px;right:2px}.pill-line:after{content:"";width:calc(var(--p,0) * 100%);background:var(--brass-lo);border-radius:1px;position:absolute;inset:0 auto 0 0}.course-pill.is-on .pill-line{background:var(--s5)}.course-pill.is-on .pill-line:after{background:var(--brass)}.make-menu{margin-left:var(--sp-4);flex:none;position:relative}.make-pop{left:auto;right:0;top:calc(100% + var(--sp-2));transform-origin:100% 0;z-index:6;width:300px;bottom:auto}.make-form{gap:var(--sp-2);display:flex}.make-form input{min-width:0;height:var(--h-sm);border-radius:var(--r-ctl);padding:0 var(--sp-3);background:var(--s1);color:var(--text);border:0;outline:0;flex:1;font-size:13px;box-shadow:inset 0 1px 2px #00000080}.make-form input::placeholder{color:var(--text-3)}.make-form .btn{width:var(--h-sm);padding:0}.stage-art{padding:var(--sp-2);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stage-art .stage-kit{flex:0 auto;width:100%;min-height:0;max-height:100%}.stage-art .stage-kit-3d{object-fit:contain;width:100%;height:100%;display:block}.up-art.is-stage,.set-media.is-stage{background:var(--mat);padding:0}.set-media.is-stage{display:block}.kit-fill.is-lit{opacity:.88;transform:scale(1)}.up-ref{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.up-ref img{object-fit:cover;filter:grayscale(.7)brightness(.6);border-radius:8px;flex:none;width:96px;height:54px;box-shadow:0 1px 2px #00000080}.up-ref p{color:var(--text-3);margin:0;font-size:13px}.up-ref p b{color:var(--text-2);font-weight:650}.set-hero-text .up-ref{margin:4px 0 0}.lessons-lib{gap:var(--sp-4);flex-direction:column;flex:1 1 0;min-height:0;display:flex}.lib-actions{align-items:center;gap:var(--sp-2);margin-left:var(--sp-6);flex:none;display:flex}.lib-actions .make-menu{margin-left:0}.lesson-grid{gap:var(--sp-4);grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));grid-template-rows:repeat(var(--rows,1), minmax(0, 1fr));flex:1 1 0;min-height:0;display:grid}.lcard{border-radius:var(--radius);background:var(--s1);min-height:0;box-shadow:var(--shadow);flex-direction:column;display:flex;position:relative;overflow:hidden}.lcard-main{gap:var(--sp-3);min-height:0;padding:var(--sp-4);color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:auto;transition:background-color .3s;display:flex}.lcard-main:hover{background:var(--s1-hover)}.lcard-main:focus-visible{outline:2px solid var(--chrome);outline-offset:-2px;border-radius:var(--radius)}.lcard-art{border-radius:var(--r-ctl-lg);flex:1 1 0;min-height:90px;display:block;position:relative;overflow:hidden}.lcard-top{align-items:center;gap:var(--sp-2);margin-top:2px;display:flex}.lcard-title{min-width:0;font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:18px;font-weight:600;overflow:hidden}.next-mark:before{content:"";background:var(--head);width:9px;height:9px;box-shadow:inset 0 0 0 1px var(--snare), inset 0 0 0 2px var(--head), inset 0 0 0 3px var(--snare);border-radius:50%;margin-right:5px}.next-mark{height:20px;color:var(--ink);background-image:var(--chrome-brushed);box-shadow:var(--chrome-shadow-sm);border-radius:6px;flex:none;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.lcard-check{color:var(--brass);flex:none}.lcard-level{flex:none;align-items:flex-end;gap:2px;height:12px;display:inline-flex}.lcard-level i{background:var(--s4);border-radius:1.5px;width:4px}.lcard-level i:first-child{height:5px}.lcard-level i:nth-child(2){height:8px}.lcard-level i:nth-child(3){height:12px}.lcard-level i.is-on{background:var(--text-2)}.lcard-meta{align-items:center;gap:var(--sp-3);color:var(--text-3);font-size:12px;display:flex}.lcard-meta b{color:var(--text);font-size:14px;font-weight:700}.lcard-stars{gap:3px;display:inline-flex}.lcard-play{width:28px;height:28px;color:var(--text);background-image:var(--gunmetal);box-shadow:var(--gun-shadow);border-radius:50%;place-items:center;margin-left:auto;transition:filter .3s;display:grid}.lcard.is-next .lcard-play{color:var(--ink);background-image:var(--chrome-metal);box-shadow:var(--chrome-shadow-sm)}.lcard-main:hover .lcard-play{filter:brightness(1.06)}.lcard.is-next{background:var(--s2)}.watch-chip{align-items:center;gap:var(--sp-2);margin:0 var(--sp-3) var(--sp-3);padding:4px var(--sp-2) 4px 4px;border-radius:var(--r-ctl);background:var(--s2);color:var(--text-3);text-align:left;cursor:pointer;border:0;font-size:12px;font-weight:600;transition:color .3s,background-color .3s;display:flex}.lcard.is-next .watch-chip{background:var(--s3)}.watch-chip:hover{color:var(--text-2);background:var(--s3)}.watch-chip img{object-fit:cover;filter:grayscale(.75)brightness(.6);border-radius:4px;width:40px;height:23px}.watch-chip b{color:var(--text-2)}.lib-pager{justify-content:center;align-items:center;gap:var(--sp-3);flex:none;display:flex}.lib-pager .muted b{color:var(--text)}.video-row .video-thumb img{filter:grayscale(.7)brightness(.6);transition:filter .4s}.video-row:hover .video-thumb img,.video-row.is-current .video-thumb img{filter:none}.video-row .lesson-no.is-passed{background-image:var(--bronze-metal);color:#2a1f10}.today{gap:var(--sp-4);flex-direction:column;flex:1 1 0;min-height:0;display:flex}.journey{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;flex:none;display:flex}.journey-head{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.journey-head h2{color:var(--text-3);font-size:13px;font-weight:600}.journey-track{align-items:flex-start;min-width:0;margin:0;padding:0;list-style:none;display:flex}.jnode{flex:1 1 0;justify-content:center;min-width:0;display:flex;position:relative}.jnode:not(:last-child):after{content:"";background:var(--s4);border-radius:1px;height:2px;position:absolute;top:12px;left:calc(50% + 16px);right:calc(16px - 50%)}.jnode.is-done:not(:last-child):after{background:rgba(var(--hair), .45)}.jbtn{color:var(--text-3);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0 2px;transition:color .3s;display:flex}button.jbtn:hover{color:var(--text-2)}button.jbtn:focus-visible{outline:2px solid var(--chrome);outline-offset:2px;border-radius:6px}.jdot{place-items:center;width:26px;height:26px;display:grid;position:relative}.jdot:before{content:"";background:var(--s4);border-radius:50%;position:absolute;inset:4px}.jdot>*{position:relative}.jnode.is-done .jdot:before{background:var(--brass)}.jnode.is-done .jdot{color:#1f170b}.jnode.is-current .jdot:before{background:var(--head);box-shadow:inset 0 0 0 1.5px var(--head), inset 0 0 0 3px var(--snare), inset 0 0 0 4.5px var(--head), inset 0 0 0 6px var(--snare)}.jcore{background:var(--ground);border-radius:50%;width:6px;height:6px}.jdot svg{width:100%;height:100%;position:absolute;inset:0}.jring{fill:none;stroke:rgba(var(--hair), .6);stroke-width:2px;stroke-linecap:round;stroke-dasharray:calc(var(--k,0) * 75.4) 100}.jnode.is-song .jdot:before{display:none}.jnode.is-song .jdot img{object-fit:cover;filter:grayscale()brightness(.55);border-radius:50%;width:24px;height:24px;transform:scale(1)}.jnode.is-song.is-current .jdot img,.jnode.is-song.is-done .jdot img{filter:none}.jnode.is-current .jbtn,.jnode.is-shown .jbtn{color:var(--text)}.jname{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:92px;font-size:12px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.jname b{color:var(--text)}.skeleton-node .jdot:before{animation:1.2s ease-in-out infinite shimmer}.journey-side{align-items:center;gap:var(--sp-2);flex:none;display:flex}.songs-pop{width:320px}.songs-pop .pop-label{width:auto}.today-main{gap:var(--sp-4);flex:1 1 0;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);min-height:0;display:grid}.stage-card{gap:var(--sp-3);min-height:0;padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--pad-card);flex-direction:column;display:flex}.stage-head h2{font-family:var(--font-display);letter-spacing:-.015em;font-size:22px;font-weight:700;line-height:1.15}.stage-head p{color:var(--text-2);margin-top:2px;font-size:13px}.stage-body{gap:var(--sp-4);flex:1 1 0;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);align-items:start;min-height:0;display:grid}.stage-body .set-media{aspect-ratio:5/4;flex:none;align-self:start;height:auto;min-height:0;max-height:100%}.stage-steps{gap:var(--sp-3);flex-direction:column;min-height:0;display:flex}.stage-steps ol{scrollbar-width:none;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.sstep{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-2);border-radius:var(--r-ctl-lg);color:var(--text-2);grid-template-columns:30px minmax(0,1fr) auto auto;transition:background-color .3s,color .3s;display:grid}.sstep:hover{background:var(--s2);color:var(--text)}.sstep.is-next{background:var(--s3);color:var(--text)}.sstep-kind{background:var(--s2);border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.sstep.is-next .sstep-kind{background:var(--s5)}.sstep.is-next .kind-icon{color:var(--text)}.sstep-text{flex-direction:column;min-width:0;display:flex}.sstep-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.sstep-sub{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.sstep-meta{justify-content:flex-end;min-width:56px;display:flex}.sstep .sstep-go.btn-tertiary{opacity:0;transition:opacity .3s,color .3s,background-color .3s}.sstep:hover .sstep-go.btn-tertiary,.sstep .sstep-go.btn-tertiary:focus-visible{opacity:1}.sstep.is-done .sstep-title{color:var(--text-3)}.sstep-check{color:var(--brass);flex:none}.sstep-num{color:var(--text-3);flex:none;font-size:12px}.sstep-num b{color:var(--text-2);font-size:13px}.sstep-meter{align-items:center;gap:var(--sp-2);flex:none;width:92px;display:flex;position:relative}.sstep-meter:before{content:"";background:var(--s3);border-radius:2px;flex:1;height:4px}.sstep-meter i{background:var(--brass);border-radius:2px;max-width:calc(100% - 40px);height:4px;margin-top:-2px;position:absolute;top:50%;left:0}.sstep-meter b{text-align:right;width:34px;color:var(--text);font-size:13px;font-weight:700}.unlock-rule{color:var(--text-3);padding:0 var(--sp-2);font-size:12px}.today-side{gap:var(--sp-4);flex-direction:column;min-height:0;display:flex}.progress-panel{padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;flex:none;display:flex}.pp-row{gap:var(--sp-6);display:flex}.pp-stat{flex-direction:column;display:flex}.pp-stat strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-weight:700;line-height:1.05}.pp-stat strong.is-earned{background:var(--bronze-metal);color:#0000;-webkit-background-clip:text;background-clip:text}.pp-stat span,.pp-mini>span{color:var(--text-3);font-size:12px}.pp-mini b{color:var(--text-2);margin-left:4px;font-weight:650}.pp-week{grid-template-columns:repeat(7,1fr);gap:6px;height:56px;display:grid}.pp-day{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.pp-day i{background:var(--s3);border-radius:3px;width:100%;max-width:22px}.pp-day i.on{background:var(--chrome)}.pp-day:last-child i.on{background:var(--text)}.pp-day em{color:var(--text-3);font-size:10px;font-style:normal}.pp-lower{gap:var(--sp-4)}.pp-mini{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.pp-spark{width:100%;height:36px;display:block;overflow:visible}.pp-pass{stroke:rgba(var(--perfect-rgb), .3);stroke-width:1px;stroke-dasharray:3 3}.pp-line{fill:none;stroke:var(--text);stroke-width:1.6px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.pp-dot{stroke:var(--text);stroke-width:5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.pp-timing{background:var(--s3);border-radius:5px;height:10px;margin:13px 0;position:relative}.pp-centre{background:rgba(var(--hair), .4);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px;left:50%}.pp-off{border-radius:3px;position:absolute;top:2px;bottom:2px}.pp-off.is-early{background:var(--early)}.pp-off.is-late{background:var(--late)}.pp-hint{color:var(--text-2);font-size:12px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.readiness{min-height:0;padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;flex:1 1 0;display:flex;overflow:hidden}.readiness h3{color:var(--text-3);font-size:13px;font-weight:600}.ready-row{column-gap:var(--sp-3);grid-template-rows:auto auto;grid-template-columns:32px 1fr auto;align-items:center;display:grid}.ready-art{background:var(--s3);width:32px;height:32px;color:var(--text-3);border-radius:8px;grid-row:1/3;place-items:center;display:grid;overflow:hidden}.ready-art img{object-fit:cover;width:100%;height:100%;transform:scale(1.35)}.ready-text{flex-direction:column;gap:5px;min-width:0;display:flex}.ready-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.ready-bar{background:var(--s3);border-radius:2px;height:4px;overflow:hidden}.ready-bar i{background:var(--brass);height:100%;display:block}.ready-num{color:var(--text-3);font-size:12px}.ready-num b{color:var(--text);font-size:15px;font-weight:700}.ready-wait{color:var(--text-3);grid-column:2/4;font-size:11px}@media (width<=1100px){.today-main{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.stage-body{grid-template-columns:1fr}.stage-body .set-media{display:none}}.goal-summary{align-items:center;gap:var(--sp-2);margin-right:var(--sp-2);display:flex}.goal-arts{display:flex}.goal-arts .ready-art{width:26px;height:26px;box-shadow:0 0 0 2px var(--s1);border-radius:6px}.goal-arts .ready-art+.ready-art{margin-left:-6px}.goal-est{color:var(--text-3);white-space:nowrap;font-size:12px}.goal-est b{color:var(--text);font-size:14px;font-weight:700}.sheet.goal-sheet{flex-direction:column;width:min(1120px,100%);max-height:calc(100vh - 48px);display:flex;position:relative;overflow:hidden}.goal-body{gap:var(--sp-6);flex:auto;grid-template-columns:minmax(0,1fr) 280px;min-height:0;display:grid}.goal-grid{gap:var(--sp-3);scrollbar-width:thin;scrollbar-color:var(--s4) transparent;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-auto-rows:max-content;align-content:start;min-height:0;padding:2px;display:grid;overflow:auto}.goal-card{border-radius:var(--r-widget);background:var(--s2);box-shadow:var(--shadow-sm);flex-direction:column;transition:background-color .3s;display:flex;position:relative;overflow:hidden}.goal-card.is-on{background:var(--s4)}.goal-hit,.goal-card.is-basics{padding:0 0 var(--sp-3);color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;display:flex}.goal-card.is-basics{background:var(--s2)}.goal-card.is-basics.is-on{background:var(--s4)}.goal-hit:disabled{cursor:default}.goal-art{aspect-ratio:16/10;background:var(--s3);place-items:center;margin-bottom:4px;display:grid;position:relative;overflow:hidden}.goal-art img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.12)}.goal-card.is-locked .goal-art img{filter:grayscale()brightness(.5)}.goal-art.is-basics{background:var(--mat);justify-content:center;align-items:baseline;gap:4px;display:flex}.goal-art.is-basics span{font-family:var(--font-display);align-self:center;font-size:34px;font-weight:700}.goal-art.is-basics em{color:var(--text-3);align-self:center;font-size:12px;font-style:normal}.goal-check{width:24px;height:24px;color:var(--ink);background-image:var(--chrome-metal);box-shadow:var(--chrome-shadow-sm);border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;right:8px}.goal-tag{color:var(--text);background:#08090bb8;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:650;position:absolute;bottom:8px;left:8px}.goal-title{padding:0 var(--sp-3);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:650;overflow:hidden}.goal-meta{padding:0 var(--sp-3);align-items:center;gap:var(--sp-2);white-space:nowrap;color:var(--text-3);min-height:18px;font-size:12px;display:flex;overflow:hidden}.goal-meta b{color:var(--text);font-weight:700}.goal-plus b{color:var(--text)}.goal-diff{gap:2px;display:inline-flex}.goal-diff i{background:var(--s5);border-radius:2px;width:7px;height:4px}.goal-diff i.on{background:var(--chrome)}.goal-listen{width:28px;height:28px;color:var(--text);cursor:pointer;background:#08090bb3;border:0;border-radius:50%;place-items:center;transition:background-color .3s;display:grid;position:absolute;top:8px;left:8px}.goal-listen:hover{background:#08090be6}.goal-write{margin:0 var(--sp-3) var(--sp-3);align-self:flex-start}.goal-side{gap:var(--sp-4);min-height:0;padding:var(--sp-4);border-radius:var(--r-widget);background:var(--s2);flex-direction:column;display:flex}.goal-picked{gap:var(--sp-2);flex-wrap:wrap;display:flex}.goal-chip{height:28px;padding:0 var(--sp-2) 0 3px;background:var(--s3);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;align-items:center;gap:6px;max-width:100%;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.goal-chip img{object-fit:cover;border-radius:5px;width:22px;height:22px}.goal-chip.is-basics{padding:0 var(--sp-3)}.goal-numbers{gap:var(--sp-6);display:flex}.goal-numbers div{flex-direction:column;display:flex}.goal-numbers strong{font-family:var(--font-display);font-size:32px;font-weight:700;line-height:1.05}.goal-numbers span{color:var(--text-3);font-size:12px}.goal-stages{flex-wrap:wrap;gap:6px;display:flex}.goal-stage{background:var(--s3);height:24px;color:var(--text-3);border-radius:6px;align-items:center;gap:3px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.goal-stage.is-added{background:var(--s5);color:var(--text)}.goal-add{gap:var(--sp-2);margin-top:auto;display:flex}.goal-add input{min-width:0;height:var(--h-sm);border-radius:var(--r-ctl);padding:0 var(--sp-3);background:var(--s1);color:var(--text);border:0;outline:0;flex:1;font-size:13px;box-shadow:inset 0 1px 2px #00000080}.goal-add .btn{width:var(--h-sm);padding:0}.goal-side .drumhead-wrap{align-self:stretch}.goal-side .drumhead{width:100%}.goal-preview{border-radius:var(--r-ctl);opacity:.01;pointer-events:none;width:160px;height:90px;position:absolute;bottom:24px;right:24px;overflow:hidden}.goal-preview .yt{width:160px;height:90px}@media (width<=900px){.goal-body{grid-template-columns:1fr}}.watch-chip.is-empty{visibility:hidden;height:31px}@media (height<=560px){.screen.home.tab-path,.screen.home.tab-learn{height:auto;overflow:visible}.home.tab-path .tab-body,.home.tab-learn .tab-body,.today,.lessons-lib{flex:none}.today-main{flex:none;height:520px}.lesson-grid{flex:none;grid-template-rows:none;grid-auto-rows:220px}}.stage-card{align-self:start;max-height:100%}.stage-card .stage-body{flex:0 auto}.set-media:empty{display:none}.stage-body:has(>.set-media:empty){grid-template-columns:minmax(0,1fr)}.goal-card.is-basics .goal-meta{white-space:normal}.set-media.is-playable{cursor:pointer;border:0;width:100%;padding:0;transition:filter .22s;display:block}.set-media.is-playable:hover{filter:brightness(1.08)}.set-media.is-playable:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}.stage-play{width:48px;height:48px;color:var(--ink);background:var(--env-polished);box-shadow:var(--chrome-shadow);opacity:0;transition:opacity .2s ease, transform .26s var(--spring);border-radius:50%;place-items:center;margin:-24px 0 0 -24px;padding-left:3px;display:grid;position:absolute;top:50%;left:50%;transform:scale(.9)}.set-media.is-playable:hover .stage-play,.set-media.is-playable:focus-visible .stage-play{opacity:1;transform:scale(1)}.drill-panel{gap:var(--sp-3);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.drill-panel.is-preview .drill-hw{display:none}.drill-panel.is-preview .drill-kit{pointer-events:none}.drill-transport svg{flex:none}.drill-panel .drill-hw{--hw-h:clamp(104px, 17dvh, 150px);padding:6px 0 8px}.drill-panel .hw-top{gap:var(--sp-2);min-height:32px;padding:0 8px 4px}.drill-panel .hw-title{flex:1;max-width:none}.drill-kit{--rail-w:220px;--inset:var(--sp-2);flex:1 1 0;min-height:0}.drill-kit .kit-guide-head{width:200px;height:64px}.drill-kit .kit-next-word{font-size:20px}.drill-kit .score-widget{gap:var(--sp-4);padding:var(--sp-2) var(--sp-3)}.drill-kit .stat strong{font-size:20px}.drill-kit .stat span{font-size:11px;line-height:14px}.drill-kit .chip{padding:4px var(--sp-2);font-size:13px}.drill-kit .transport-widget{width:236px;padding:var(--sp-2)}.drill-panel.is-busy .transport-listen{opacity:.5}.step-tabs{scrollbar-width:none;flex:auto;gap:2px;min-width:0;display:flex;overflow-x:auto}.step-tabs::-webkit-scrollbar{display:none}.step-tab{height:28px;color:var(--text-3);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 10px 0 4px;font-size:12.5px;font-weight:600;transition:color .14s,background-color .14s;display:inline-flex}.step-tab:hover{color:var(--text)}.step-tab.is-on{background:var(--s3);color:var(--text);box-shadow:var(--shadow-sm)}.step-tab:focus-visible{outline:2px solid var(--chrome);outline-offset:1px}.step-no{background:var(--s3);width:20px;height:20px;color:var(--text-2);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.step-tab.is-on .step-no{background:var(--s4);color:var(--text)}.step-no.is-passed,.step-tab.is-on .step-no.is-passed{background:var(--perfect);color:var(--on-fill)}.step-actions{flex:none;align-items:center;gap:2px;margin-left:auto;display:flex}.step-watch{padding:0 var(--sp-2);color:var(--text-2);gap:5px;font-size:12.5px}.watch-step{justify-content:center;align-items:center;gap:var(--sp-4);min-height:0;padding:var(--pad-card);text-align:center;flex-direction:column;flex:1 1 0;display:flex}.watch-list{justify-content:center;gap:var(--sp-3);min-height:0;padding:var(--pad-card) var(--sp-8);counter-reset:part;flex-direction:column;flex:1 1 0;margin:0;list-style:none;display:flex}.watch-list li{align-items:baseline;gap:var(--sp-3);color:var(--text);counter-increment:part;font-size:17px;font-weight:600;display:flex}.watch-list li:before{content:counter(part);width:24px;color:var(--text-3);font-size:13px}.watch-list li .num{color:var(--text-3);margin-left:auto;font-size:13px;font-weight:600}.watch-step h2{font-family:var(--font-display);font-size:22px;font-weight:600}@media (width<=720px){.video-split,.focus-video .video-split,.focus-drill .video-split{--rail:64px;--gap:var(--sp-2)}}@media (pointer:coarse){:root{--h-xs:44px;--h-sm:44px;--h-md:44px;--h-lg:48px}button,a,[role=tab]{-webkit-tap-highlight-color:transparent}.btn-icon.btn-sm,.btn-icon.btn-xs,.widget .btn-icon.btn-xs,.widget .btn-icon.btn-sm{width:44px}.cal-step{background-clip:padding-box;border:11px solid #0000;width:44px;height:44px}.cal-step.is-current{background-origin:padding-box;background-clip:padding-box}.cal-steps{top:var(--sp-1);max-width:calc(100% - var(--sp-4));gap:0}.goal-listen{background-clip:padding-box;border:8px solid #0000;width:44px;height:44px;top:0;left:0}.scrub-tick{background-clip:padding-box;border:19px solid #0000;border-width:19px 0;height:44px}.scrub-tick.is-in,.scrub-tick:hover{border-width:16px 0;height:44px}.set-scrub,.step-tab,.course-pill{height:44px}.mode-seg{min-width:44px;height:44px}.transport-widget{width:max(var(--rail-w), 320px)}.mode-switch{padding:2px}.watch-chip{min-height:44px}.watch-chip.is-empty{height:44px}.kit-choice{min-height:44px}.segmented button{min-width:44px}.brand-lockup{min-height:44px}.jbtn{min-width:44px;min-height:44px}.switch{background-clip:content-box;width:52px;height:44px;padding:9px 0}.switch:before{top:calc(50% - 5px)}.song-controls .switch,.sync-manual input,.make-form input,.goal-add input{height:44px}.make-form .btn,.goal-add .btn{width:44px}.home>.topbar .tabs button{height:44px}.lcard-main{min-height:44px}.song-art-sm{width:44px;height:44px}.sstep .sstep-go.btn-tertiary{opacity:1}.stage-play{opacity:1;transform:none}.song-art-state{opacity:1}.song-art:not(.has-play):not(.has-start) .song-art-state{opacity:0}.kit-guide .kit3d,.cal-stage .kit3d,.kit-guide .kit-stage,.cal-stage{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.screen.practice,.screen.calibrate,.drill-panel{touch-action:manipulation}}@media (pointer:coarse),(width<=899px){.kit-key-sm,.pp-day em,.highway-card .strip-label,.strip-label,.ready-wait,.goal-tag,.next-mark,.next-tag,.step-no,.pad-axis,.arr-block span,.hw-meter .meter-scale span,.btn kbd,.kit3d-name kbd,.transport-key,.pill-outcome>span,.section-chip-foot,.drill-kit .stat span,.song-progress span{font-size:12px}.step-no{width:22px;height:22px}}@media (width<=899px),(height<=599px){.screen.home.tab-path,.screen.home.tab-learn{height:auto;min-height:100dvh;overflow:visible}.home.tab-path .tab-body,.home.tab-learn .tab-body,.today,.lessons-lib,.setlist-screen{flex:none}.today-main{flex:none;grid-template-columns:minmax(0,1fr);height:auto}.today-side{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;display:grid}.readiness{overflow:visible}.stage-card{max-height:none}.stage-steps ol{overflow:visible}.stage-body{grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr)}.stage-body .set-media{display:block}.lesson-grid{flex:none;grid-template-rows:none;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:auto}.lcard-art{aspect-ratio:16/10;flex:none;height:auto}.lcard-top{align-items:flex-start}.lcard-title{white-space:normal;line-height:1.2}.lcard-top>:not(.lcard-title){margin-top:3px}.lib-pager{padding-top:var(--sp-1)}.song-layout,.results-grid{grid-template-columns:minmax(0,1fr)}.screen.results{min-height:0}}@media (width<=640px){:root{--page-gutter:16px;--pad-card:16px}.screen{padding-top:calc(var(--sp-4) + env(safe-area-inset-top));padding-left:max(var(--page-gutter), env(safe-area-inset-left));padding-right:max(var(--page-gutter), env(safe-area-inset-right));padding-bottom:calc(var(--sp-8) + env(safe-area-inset-bottom))}.topbar-title h1{font-size:18px}.screen.home{animation-name:fade-in}.home:has(.scrim)>.topbar{z-index:auto}.home:has(.scrim)>.topbar .tabs{display:none}body:has(>.scrim) .home>.topbar .tabs{display:none}.app:has(>.scrim) .home>.topbar .tabs{display:none}.screen.home{padding-top:0;padding-bottom:calc(76px + env(safe-area-inset-bottom));gap:var(--sp-4)}.home>.topbar{height:auto;min-height:56px;padding-top:env(safe-area-inset-top);grid-template-columns:minmax(0,1fr) auto;margin-top:0}.home>.topbar .topbar-actions{gap:0}.home>.topbar .tabs{z-index:1;justify-content:center;place-self:end stretch;gap:var(--sp-2);padding:var(--sp-2) max(var(--sp-4), env(safe-area-inset-right)) calc(var(--sp-2) + env(safe-area-inset-bottom)) max(var(--sp-4), env(safe-area-inset-left));background:#1b1c1e var(--grain);border-radius:0;flex-wrap:nowrap;display:flex;position:fixed;inset:auto 0 0;box-shadow:inset 0 1px #ffffff0d,0 -8px 24px #00000059}.home>.topbar .tabs button{max-width:128px;height:48px;padding:0 var(--sp-3);background-clip:padding-box;border:7px solid #0000;border-radius:999px;flex:1 1 0;font-size:14px}.home>.topbar .tabs button.is-on{box-shadow:inset 0 1px #ffffffd9,inset 0 -1px #00000047}.brand-lockup .wordmark{font-size:14px}.brand-lockup{min-height:44px}.journey-track{scrollbar-width:none;margin:0 calc(-1 * var(--sp-4));padding:0 var(--sp-2);scroll-snap-type:x proximity;overflow-x:auto}.journey-track::-webkit-scrollbar{display:none}.jnode{scroll-snap-align:center;flex:0 0 88px}.jname{max-width:84px}.btn.input-status{max-width:150px;display:inline-flex}.btn.input-status>svg{flex:none}.journey{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.journey-head{row-gap:var(--sp-2);column-gap:var(--sp-2);flex-wrap:wrap}.journey-side{display:contents}.goal-summary{order:1;margin:0 0 0 auto}.journey-side>.btn-secondary{flex:calc(100% - 52px);order:2}.journey-side>.btn-icon{flex:none;order:3}.stage-card{padding:var(--sp-4)}.stage-body{grid-template-columns:minmax(0,1fr)}.stage-body .set-media{aspect-ratio:16/10;width:100%}.sstep{gap:var(--sp-2);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-2);grid-template-columns:30px minmax(0,1fr) auto auto}.sstep-meter{width:72px}.sstep .btn-primary.sstep-go{padding:0 var(--sp-3)}.today-side{grid-template-columns:minmax(0,1fr)}.course-pills-row{row-gap:var(--sp-3);flex-wrap:wrap}.course-pills{gap:var(--sp-4);margin:0 calc(-1 * var(--page-gutter));padding:0 var(--page-gutter) 2px;scroll-snap-type:x proximity;scroll-padding:0 var(--page-gutter);flex:100%;order:0}.course-pill{scroll-snap-align:start}.course-pill .pill-outcome{display:none}.lib-actions{flex:100%;margin-left:0}.lib-actions>.btn,.lib-actions .make-menu,.lib-actions .make-menu>.btn{flex:1 1 0}.lesson-grid{gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}.lcard-main{padding:var(--sp-3);gap:var(--sp-2)}.song-grid{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}.song-body{padding:var(--sp-2) var(--sp-3) var(--sp-3)}.song-body h3{font-size:15px}.ask{padding-left:var(--sp-3);gap:var(--sp-2)}.ask input{font-size:16px}.video-row{gap:var(--sp-3);padding:var(--sp-2);grid-template-columns:96px minmax(0,1fr)}.video-row .lesson-no{display:none}.video-text h3{font-size:14px}.section-chips{grid-template-columns:minmax(0,1fr)}.song-sections,.song-full,.play-along,.targets,.score{padding:var(--sp-4)}.score-big{font-size:76px}.pads{padding:var(--sp-4)}.pad-row,.pad-axis{gap:var(--sp-3);grid-template-columns:64px minmax(0,1fr) 76px}.pad-num em{display:none}.results-actions{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.results-actions>:only-child:not(.btn-tertiary),.results-actions>.btn-tertiary+.btn:last-child{grid-column:1/-1}.results-actions .btn{width:100%;min-width:0;padding:0 var(--sp-3)}.results-actions .btn-tertiary{order:3;grid-column:1/-1;margin:0}.shift-timing{flex-direction:column;align-items:stretch}.screen.calibrate{height:auto;min-height:100dvh}.cal-stage{flex:none;height:min(62dvh,460px);min-height:0}.cal-prompt{left:var(--sp-4);top:calc(var(--sp-4) + 40px)}.cal-prompt-word{font-size:28px}.cal-step{border-width:8px;width:38px;height:38px}.cal-step.is-current{transform:scale(1.1)}.readout{min-width:0;padding:var(--sp-3) var(--sp-4)}.cal-actions{flex-wrap:wrap;flex:100%}.cal-actions .btn{flex:auto}.calibrate .topbar,.calibrate .topbar-actions{flex-wrap:wrap}.scrim{z-index:50;padding:0;padding-top:calc(env(safe-area-inset-top) + var(--sp-6));place-items:end stretch}.sheet,.sheet.goal-sheet{width:100%;max-height:100%;padding:var(--sp-4) max(var(--sp-4), env(safe-area-inset-right)) calc(var(--sp-6) + env(safe-area-inset-bottom)) max(var(--sp-4), env(safe-area-inset-left));border-radius:20px 20px 0 0;animation:.32s cubic-bezier(.2,.8,.2,1) sheet-up}.sheet-head{margin-bottom:var(--sp-3)}.field.row{row-gap:var(--sp-2);flex-wrap:wrap}.field.row>.segmented{flex-wrap:nowrap;max-width:100%}.field.row>.segmented button{padding:0 var(--sp-2)}.sheet.goal-sheet{height:100%;padding-bottom:0;overflow:hidden}.goal-body{flex-direction:column;gap:0;min-height:0;display:flex}.goal-grid{gap:var(--sp-2);padding:2px 2px var(--sp-3);flex:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.goal-side{margin:0 calc(-1 * max(var(--sp-4), env(safe-area-inset-left)));padding:var(--sp-3) max(var(--sp-4), env(safe-area-inset-right)) calc(var(--sp-3) + env(safe-area-inset-bottom)) max(var(--sp-4), env(safe-area-inset-left));align-items:center;gap:var(--sp-3);border-radius:0;flex:none;grid-template-columns:auto minmax(0,1fr);display:grid;box-shadow:inset 0 1px #ffffff0d}.goal-side .goal-picked,.goal-side .goal-stages{display:none}.goal-side .goal-add{order:-1;grid-column:1/-1;margin:0}.goal-side .drumhead-wrap{grid-column:2;justify-self:stretch}.goal-numbers{gap:var(--sp-4)}.goal-numbers strong{font-size:24px}.goal-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.3;display:-webkit-box}.goal-meta{white-space:normal;flex-wrap:wrap;row-gap:2px}.kit-pop,.make-pop,.songs-pop{z-index:40;width:auto;max-height:calc(100dvh - env(safe-area-inset-top) - 48px);padding:var(--sp-6) max(var(--sp-4), env(safe-area-inset-right)) calc(var(--sp-6) + env(safe-area-inset-bottom)) max(var(--sp-4), env(safe-area-inset-left));box-shadow:0 0 0 100vmax var(--scrim), var(--shadow-lg);transform-origin:bottom;border-radius:20px 20px 0 0;animation:.3s cubic-bezier(.2,.8,.2,1) sheet-up;position:fixed;inset:auto 0 0;overflow:auto}.kit-choices{margin:0}}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.sheet,.kit-pop,.make-pop,.songs-pop{animation-name:fade}}@media (width<=640px) and (orientation:portrait),(width<=640px) and (height>=501px){.screen.practice,.screen.video-screen{padding:calc(var(--sp-2) + env(safe-area-inset-top)) max(var(--sp-2), env(safe-area-inset-right)) calc(var(--sp-2) + env(safe-area-inset-bottom)) max(var(--sp-2), env(safe-area-inset-left));gap:var(--sp-2)}.highway-card{--hw-h:clamp(104px, 17dvh, 148px);padding:2px 0 6px}.hw-top{padding:0 8px 0 2px}.hw-title{flex:1;max-width:none;font-size:14px}.highway-card.has-strip .hw-top{flex-wrap:wrap}.highway-card.has-strip .hw-top .section-strip{flex:100%;order:3;padding:0 8px 4px!important}.hw-meter{padding:2px 12px 0}.deck-kit{--inset:var(--sp-2)}.kit-guide-head,.kit-guide[data-layout] .kit-guide-head{width:calc(50% - var(--inset));height:56px;padding:2px var(--sp-1)}.kit-next-word{font-size:20px}.kit-listen .kit-next-word{font-size:15px}.score-slot{align-items:flex-start;gap:var(--sp-2);flex-direction:row-reverse}.score-widget{gap:var(--sp-3);padding:var(--sp-2) var(--sp-3)}.stat strong{font-size:20px}.chip-slot{right:0;top:calc(100% + var(--sp-1));height:30px;position:absolute}.transport-widget,.drill-kit .transport-widget{left:var(--inset);right:var(--inset);bottom:var(--inset);width:auto;padding:var(--sp-2)}.song-widget{left:var(--inset);right:var(--inset);width:auto;bottom:auto;top:calc(var(--inset) + 64px)}}@media (height<=500px) and (orientation:landscape){:root{--page-gutter:16px}.screen{padding-top:calc(var(--sp-3) + env(safe-area-inset-top));padding-left:max(var(--page-gutter), env(safe-area-inset-left));padding-right:max(var(--page-gutter), env(safe-area-inset-right))}.screen.home{padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom))}.home>.topbar{margin-top:calc(-1 * var(--sp-3) - env(safe-area-inset-top));padding-top:env(safe-area-inset-top);height:auto;min-height:56px}.screen.practice,.screen.video-screen{padding:calc(var(--sp-2) + env(safe-area-inset-top)) max(var(--sp-3), env(safe-area-inset-right)) calc(var(--sp-2) + env(safe-area-inset-bottom)) max(var(--sp-3), env(safe-area-inset-left));gap:var(--sp-2)}.highway-card{--hw-h:clamp(72px, 22dvh, 96px);padding:0 0 2px}.hw-top{min-height:44px;padding:0 8px 0 0}.hw-title{flex:1;max-width:none}.hw-meter{display:none}.deck-kit{--inset:var(--sp-2);--rail-w:300px}.transport-side .btn-toggle>svg{display:none}.transport-side .bpm-value{min-width:52px}.kit-guide-head,.kit-guide[data-layout] .kit-guide-head{width:200px;height:52px}.kit-next-word{font-size:20px}.score-slot{right:var(--inset);top:var(--inset);width:var(--rail-w);flex-direction:row;justify-content:space-between;align-items:center}.score-slot .score-widget{justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);flex:1}.stat strong{font-size:20px}.chip-slot{right:0;top:calc(100% + var(--sp-1));position:absolute}.transport-widget{right:var(--inset);bottom:var(--inset);width:var(--rail-w);padding:var(--sp-2);gap:var(--sp-1)}.song-widget{width:var(--rail-w)}.drill-kit .transport-widget{width:236px}.scrim{z-index:50;padding:var(--sp-3) var(--sp-4) 0;place-items:end center}.home:has(.scrim)>.topbar{z-index:auto}.sheet{max-height:100%;padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.32s cubic-bezier(.2,.8,.2,1) sheet-up}.sheet.goal-sheet{max-height:100%;overflow:auto}.goal-body{grid-template-columns:minmax(0,1fr) 240px;align-items:start}.goal-grid{overflow:visible}.goal-side{position:sticky;top:0}.goal-side .goal-stages,.goal-side .goal-picked{display:none}.kit-pop{max-height:calc(100dvh - 72px);overflow:auto}.screen.calibrate{height:auto;min-height:100dvh}.cal-stage{flex:none;height:300px;min-height:0}.screen.results .results-grid{flex:none}}@media (width<=899px) and (orientation:portrait){.video-split{--rail:64px;--gap:var(--sp-2);grid-template-columns:minmax(0,1fr);grid-template-rows:calc(50% - var(--gap) / 2) calc(50% - var(--gap) / 2);transition:grid-template-rows .38s var(--flow)}.focus-video .video-split,.focus-drill .video-split{grid-template-columns:minmax(0,1fr)}.focus-video .video-split{grid-template-rows:auto var(--rail);align-content:start}.focus-drill .video-split{grid-template-rows:var(--rail) calc(100% - var(--rail) - var(--gap))}.video-main{width:100%;max-height:100%}.video-main>.yt{flex:none;width:100%}.video-bar{padding:var(--sp-2) var(--sp-3)}.video-bar-actions{flex-wrap:wrap}.side-rail{padding:0 var(--sp-3);justify-content:flex-start;align-items:center;gap:var(--sp-3);flex-direction:row}.rail-video img{aspect-ratio:16/9;width:auto;height:calc(100% - 16px)}.rail-video .rail-icon{position:static}.rail-label{writing-mode:horizontal-tb;max-width:100%;max-height:none;font-size:14px}.rail-video{flex-direction:row}.drill-pane .pane-bar{flex-wrap:wrap}.drill-kit .kit-guide-head{width:calc(50% - var(--inset))}}
