.staff{display:block;position:relative;width:100%;min-width:0;overflow:hidden}.staff-svg,.staff-svg svg{display:block}.staff-svg svg{overflow:visible}.staff .staff-svg{opacity:0;transition:opacity var(--t-arrive) ease-out}.staff--drawn .staff-svg{opacity:1}@media(prefers-reduced-motion:reduce){.staff .staff-svg{transition:none}}.kb{display:block;width:100%;max-width:320px;height:auto}.kb-white{fill:var(--card);stroke:var(--ink);stroke-width:1}.kb-black{fill:var(--ink);stroke:none}.kb-key--high{fill:var(--blue-wash);stroke:var(--ink);stroke-width:1.5}.kb-key--low{fill:var(--lilac);stroke:var(--ink)}.kb-key--accent{stroke:var(--ink);stroke-width:1.4}.kb-key--next{fill:none;stroke-width:1.4}.kb-caption{margin-top:4px;font-size:12px;line-height:1.4;color:var(--ink-50)}.kb-move{margin-left:6px;font-size:12px;color:var(--blue);text-decoration:underline;text-underline-offset:3px}.vk{max-width:100%}.vk-card{margin-top:12px;padding:14px 16px;border:var(--stroke) solid var(--ink);border-radius:16px;background:var(--card);box-shadow:var(--shadow);text-align:left}.vk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.vk-symbol{font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.kb-degree{fill:var(--ink);font-family:var(--mono);font-size:6px;font-weight:700}.vk-tells{margin-top:12px;padding:10px 12px;border:2px solid var(--ink);border-radius:var(--r-chip);background:var(--lilac);font-size:14px;line-height:1.45}.vk-note{margin-top:10px;font-size:12px;line-height:1.5;color:var(--ink-50)}.vk-chords{margin-bottom:0}.kb--guide{max-width:none}.gk{display:block;width:100%}.kb-key--now{fill:var(--blue);stroke:var(--ink)}.kb-key--matched{fill:var(--lime);stroke:var(--ink)}.kb-white.kb-key--held{fill:var(--sunk);stroke:var(--ink)}.kb-black.kb-key--held{fill:var(--ink-70)}.kb-key--upcoming-ghost{fill:none;stroke:var(--ink);stroke-width:1.4}.kb-glyph{fill:var(--ink);font-family:var(--mono);font-size:5px;font-weight:700;pointer-events:none}.kb-glyph--now{fill:var(--on-blue)}.gk{--gk-min: calc(11px / var(--gk-px, 2.3))}.gk .kb-degree{font-size:max(6px,var(--gk-min))}.gk .kb-glyph{font-size:max(5px,var(--gk-min))}.gk .kb-pill-word{font-size:max(4.2px,var(--gk-min))}.kb-anchor{fill:var(--ink-50);font-family:var(--mono);font-size:max(4px,var(--gk-min, 4px));font-weight:700;pointer-events:none}.kb-anchor--middle{fill:var(--ink)}.kb-degree-small{fill:var(--ink);font-family:var(--mono);font-size:max(4px,var(--gk-min, 4px));font-weight:700;pointer-events:none}.kb-degree-small--now{fill:var(--on-blue)}.kb-pill-fill{fill:var(--lilac)}.kb-pill-word{fill:var(--ink);font-family:var(--mono);font-size:4.2px;font-weight:700}.gk-ground{fill:var(--card)}.gk-zone--lh{fill:var(--sunk)}.gk-zone-rule{stroke:var(--rule);stroke-width:1}.gk-kicker{fill:var(--ink-50);font-family:var(--mono);font-size:max(5px,var(--gk-min, 5px));font-weight:700}.gk-lane{display:block;width:100%;height:auto}.gk-grid{stroke:var(--rule);stroke-width:1}.gk-block{fill:var(--blue-wash);stroke:var(--ink);stroke-width:1}.gk-hatch-ground{fill:var(--blue-wash)}.gk-hatch-line{stroke:var(--ink);stroke-width:.8}.gk-cap{fill:var(--ink)}.gk-now-wash{fill:var(--cursor-wash)}.gk-now-edge{fill:var(--blue)}.gk--preview .kb-key--now{fill:var(--blue-wash);stroke:var(--ink);stroke-width:calc(var(--stroke) / var(--gk-px, 2.3))}.gk--preview .kb-glyph--now,.gk--preview .kb-degree-small--now,.gk--preview .gk-now-edge{fill:var(--ink)}.cl{--cl-size: 14px;display:grid;gap:0 4px;width:100%;font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:var(--cl-size);line-height:1.2}.cl--large{--cl-size: 28px}.cl-cell{position:relative;height:calc(var(--cl-size) * 1.9);padding:0 .25em 0 0;color:var(--ink);overflow:visible}.cl-cell--bar{border-left:1px solid var(--rule);padding-left:.25em}.cl-word{position:absolute;left:0;top:50%;transform:translateY(-50%);white-space:nowrap}.cl-cell--bar .cl-word{left:.25em}.cl--placed{display:block;position:relative;height:calc(var(--cl-size) * 1.9)}.cl--placed .cl-cell{position:absolute;top:0;padding:0}.cl--placed .cl-cell--bar{border-left:0}.cl--placed .cl-cell--bar .cl-word{left:0}.cl-syl{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:.8em;white-space:nowrap}.cl-word--struck,.cl-syl--struck{color:var(--ink)}.cl-word--faint,.cl-syl--faint{color:var(--ink-50)}.cl-cell--on .cl-word{color:var(--blue);transform:translateY(-50%) scale(1.14);transform-origin:left center}.cl-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--blue);pointer-events:none}.cl--preview .cl-cell--on .cl-word{color:var(--ink)}.cl--preview .cl-playhead{background:var(--ink)}.kb--observed .kb-key--high{fill:var(--ink-50)}.jam-inner{display:flex;flex-direction:column;gap:12px;min-height:calc(100dvh - 48px);justify-content:center}.jam-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;min-height:72px;width:100%;max-width:var(--jam-score-w);margin:0 auto}.jam-inner{--jam-score-w: 1180px}.jam-score{width:100%;max-width:var(--jam-score-w);margin:0 auto;padding:10px 20px 4px;background:var(--card);border:var(--stroke) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--shadow)}.jam-guide--room{visibility:hidden}.jam-cue-block{display:flex;align-items:baseline;gap:20px;min-width:0}.jam-cue{font-family:var(--display);font-size:clamp(34px,5.6vw,64px);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--ink);animation:jam-arrive var(--t-arrive) ease-out}.jam-cue--response{color:var(--blue)}.jam-cue--small{font-size:clamp(22px,3vw,32px);color:var(--ink-50)}@keyframes jam-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.jam-numeral{font-family:var(--mono);font-size:clamp(48px,8vw,88px);font-weight:700;line-height:1;color:var(--blue);font-variant-numeric:tabular-nums}.jam-rounds{display:inline-flex;gap:4px;align-items:center}.jam-round{width:22px;height:10px;border-radius:3px;border:2px solid var(--ink);background:var(--paper)}.jam-round--done{background:var(--ink)}.jam-round--on{background:var(--blue)}.jam-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.vamp{max-width:100%;padding:0 14px;background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);box-shadow:var(--shadow)}.vamp-music{position:relative;height:min(112px,14vh);min-height:72px;overflow:hidden}.vamp-sheet,.vamp-repeat{position:absolute;display:block}.vamp-sheet{height:auto}.vamp-repeat{overflow:visible;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.vamp-cursor{position:absolute;top:0;bottom:0;background:var(--cursor-wash);border-left:3px solid var(--blue);pointer-events:none;transition:left .2s ease-out,width .2s ease-out}@media(prefers-reduced-motion:reduce){.jam-cue{animation:none}.vamp-cursor{transition:none}}.jam-under{display:flex;align-items:center;justify-content:center;gap:22px;min-height:24px}.jam-chord{font-family:var(--display);font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1}.jam-silent{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--coral-ink)}.jam-guide{display:flex;justify-content:center}.jam-guide .pg{width:min(100%,calc(var(--whites, 15) * min(24px,2.2vh)));height:auto}.jam-guide .pg-typing{display:flex;align-items:center;gap:10px}.pg-typing-keys{position:relative;width:min(calc(100vw - 160px),calc(var(--whites, 15) * min(34px,3.3vh)))}.jam-guide .pg-typing .pg{width:100%}.pg-letters{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pg-letter{position:absolute;transform:translate(-50%,-50%);font-family:var(--mono);font-size:11px;font-weight:700;line-height:1;color:var(--ink-70)}.pg-letter--on-dark{color:var(--paper)}.pg-octave{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink-50)}.pg-octave-arrow{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.jam-controls{justify-content:center}.jam-evaluating{min-height:240px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:28px;color:var(--ink-50);letter-spacing:.3em}.pg{display:block}.pg-white{fill:var(--card);stroke:var(--ink);stroke-width:1}.pg-black{fill:var(--ink);stroke:none}.pg-key--lit{fill:var(--blue)}.pg-black.pg-key--lit{stroke:var(--ink);stroke-width:1}.pg-white.pg-key--hint{fill:var(--card);stroke:var(--blue);stroke-width:1.5}.pg-black.pg-key--hint{fill:var(--ink);stroke:var(--blue);stroke-width:1.5}.pg--quiet .pg-white.pg-key--lit,.pg--quiet .pg-black.pg-key--lit{fill:var(--ink-25);stroke:var(--ink);stroke-width:1}.pg--quiet .pg-white.pg-key--hint{fill:var(--card);stroke:var(--ink-50);stroke-width:2}.pg--quiet .pg-black.pg-key--hint{fill:var(--ink);stroke:var(--ink-25);stroke-width:1.5}.pg-key--held{stroke:var(--ink);stroke-width:2}.pg-finger{fill:var(--ink)}.pg-finger--light{fill:var(--paper)}.help{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.help-word{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.help-ramp{display:inline-flex;align-items:flex-end;gap:2px}.help-step{width:20px;height:32px;padding:0;border:0;background:none;display:flex;align-items:flex-end;justify-content:center;cursor:pointer}.help-step-bar{display:block;width:14px;border:2px solid var(--ink);border-radius:3px;background:var(--paper);transition:background var(--t-press) ease}.help-step:hover .help-step-bar{background:var(--ink-25)}.help-step--on .help-step-bar,.help-step--on:hover .help-step-bar{background:var(--ink)}.help-step:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:4px}.help-caption{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-50);min-height:16px}.ready-inner{display:flex;flex-direction:column;align-items:center;gap:clamp(14px,3vh,28px)}.ready-inner .kicker{margin-bottom:0}.screen:has(.ready-inner){padding-top:clamp(20px,4vh,48px);padding-bottom:clamp(20px,4vh,48px)}.ready-status{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)}.ready-status-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);background:var(--paper)}.ready-status-dot--on{background:var(--lime)}.ready-route{margin-top:calc(10px - clamp(14px,3vh,28px));font-size:11px;color:var(--ink-50)}.hold-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:10px}.btn-hold{position:relative;overflow:hidden;isolation:isolate}.btn-hold:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--ink);transform:scaleX(var(--hold, 0));transform-origin:left center}.btn-hold-label{position:relative}.hold-hint{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-50)}.btn-hold--nudge-a{animation:hold-nudge-a .52s ease-out}.btn-hold--nudge-b{animation:hold-nudge-b .52s ease-out}@keyframes hold-nudge-a{0%{outline:var(--stroke) solid var(--ink);outline-offset:2px}to{outline:var(--stroke) solid transparent;outline-offset:14px}}@keyframes hold-nudge-b{0%{outline:var(--stroke) solid var(--ink);outline-offset:2px}to{outline:var(--stroke) solid transparent;outline-offset:14px}}@media(prefers-reduced-motion:reduce){.btn-hold:before{display:none}.btn-hold--holding{outline:6px solid var(--ink);outline-offset:0}.btn-hold--nudge-a,.btn-hold--nudge-b{animation-name:hold-nudge-still}@keyframes hold-nudge-still{0%{outline:var(--stroke) solid var(--ink);outline-offset:4px}to{outline:var(--stroke) solid transparent;outline-offset:4px}}}.ready-play{font-size:18px;padding:26px 64px;box-shadow:var(--shadow-hero)}.ready-play:hover:not(:disabled),.ready-play:active:not(:disabled){box-shadow:4px 4px 0 var(--blue)}.ready-tune{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 12px;font-family:var(--display);font-size:clamp(22px,3.2vw,30px);font-weight:600;letter-spacing:-.02em}.ready-tune-title{font:inherit;letter-spacing:inherit}.ready-tunes{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:560px}.ready-help{display:flex;flex-direction:column;align-items:center;gap:10px}.ready-help .help{align-items:center}.hp{position:relative;display:grid;width:720px;max-width:100%}.hp-action{position:absolute;top:10px;right:16px;z-index:4}.hp .cs-labels{height:28px}.hp .cs-label{top:auto;bottom:0}.hp-layer{grid-area:1 / 1;display:flex;flex-direction:column;gap:14px}.hp-card{padding:10px 16px 6px;background:var(--card);border:var(--stroke) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--shadow)}.hp-layer--in{animation:hp-in .15s ease-out both}.hp-layer--out{animation:hp-out .15s ease-out both;pointer-events:none}@keyframes hp-in{0%{opacity:0}}@keyframes hp-out{to{opacity:0}}.hp-guide{display:flex;justify-content:center}.btn.ready-hear{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;box-shadow:var(--shadow-press)}.ready-hear-icon{width:10px;height:10px;fill:currentColor}.hp-guide .pg{width:min(100%,calc(var(--whites, 15) * 18px));height:auto}.hp-guide .pg-white.pg-key--lit,.hp-guide .pg-black.pg-key--lit{fill:var(--ink-25);stroke:var(--ink);stroke-width:1}.hp-guide .pg-white.pg-key--hint{fill:var(--card);stroke:var(--ink-50);stroke-width:2}.hp-guide .pg-black.pg-key--hint{fill:var(--ink);stroke:var(--ink-25);stroke-width:1.5}@media(prefers-reduced-motion:reduce){.hp-layer--in{animation:none}.hp-layer--out{display:none}}.ready-links{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}.ready-link{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50);text-decoration:underline;text-underline-offset:4px}.ready-link:hover{color:var(--ink)}.ready-hint{color:var(--ink-50);font-size:14px}@media(max-height:740px){.ready-inner{gap:14px}.ready-route{margin-top:-4px}.hp-layer{gap:8px}.hp-guide .pg{width:min(100%,calc(var(--whites, 15) * 15px))}.vamp-music{min-height:112px}}.cs{position:relative;width:100%;min-width:0}.cs-labels{position:relative;height:16px}.cs-label{position:absolute;top:0;font-family:var(--sans);font-size:12px;line-height:16px;font-weight:500;color:var(--ink-70);white-space:nowrap}.cs-system{position:relative}.cs-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.cs-staff{z-index:1}.cs-over{z-index:2}.cs-live{z-index:3}.cs-live svg{display:block;width:100%;height:100%;overflow:visible}.cs-ambitus-head{fill:var(--lilac);stroke:var(--ink);stroke-width:1.25}.cs-ambitus-line,.cs-ambitus-ledger{stroke:var(--ink);stroke-width:1.25}.cs-contour{fill:none;stroke:var(--ink);stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}.sk-slash{fill:var(--ink)}.sk-bracket{fill:none;stroke:var(--coral);stroke-width:2}.cs-direction{font-family:var(--sans);font-style:italic;font-size:13px;fill:var(--ink)}.cs-label--at{color:var(--ink)}.sk{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 20px;animation:jam-arrive var(--t-arrive) ease-out}.sk-item{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:13px;color:var(--ink-70);white-space:nowrap}.sk-glyph{width:32px;height:18px;flex:none;overflow:visible}.sk-line{stroke:var(--ink-25);stroke-width:1}.sk-rest{font-family:Bravura;font-size:22px;fill:var(--ink)}.sk-head{fill:var(--ink)}.sk-stem{stroke:var(--ink);stroke-width:1.2}@media(prefers-reduced-motion:reduce){.sk{animation:none}}.sl-now{stroke:var(--blue);stroke-width:2.5;stroke-linecap:round}.sl-note .sl-head{fill:var(--blue);stroke:var(--ink);stroke-width:1.5}.sl-ledger{stroke:var(--ink);stroke-width:1.2}.sl-acc{font-family:Bravura;fill:var(--blue)}.sl-tag{font-family:var(--sans);font-style:italic;font-size:11px;fill:var(--blue)}.sl-ring{fill:none;stroke:var(--blue);stroke-width:2}.sl--quiet .sl-now,.sl--quiet .sl-ring{stroke:var(--ink-70)}.sl--quiet .sl-note .sl-head,.sl--quiet .sl-acc,.sl--quiet .sl-tag{fill:var(--ink-70)}.jr-inner{display:flex;flex-direction:column;align-items:center;gap:20px}.jr-observation-block{display:block}.jr-observation{font-family:var(--display);font-size:clamp(24px,3.4vw,34px);font-weight:600;letter-spacing:-.025em;line-height:1.15;max-width:28ch;text-wrap:balance}.jr-judge-hint{margin:0;text-align:center}.jr-next{display:flex;flex-direction:column;align-items:center;gap:6px}.jr-next-label{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-70)}.jr-next-cue{font-family:var(--display);font-size:clamp(30px,5vw,52px);font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1.05;text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:6px;text-underline-offset:8px;text-decoration-skip-ink:none}.jr-next-why{margin-top:6px;color:var(--ink);max-width:44ch;text-align:center;text-wrap:pretty}.jr-next-detail{color:var(--ink-70);max-width:40ch;text-align:center;text-wrap:pretty}.jr-round-mark{width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);background:var(--paper);align-self:center}.jr-round-mark{animation:jr-mark-in var(--t-arrive) ease-out both;animation-delay:calc(var(--t-arrive) + var(--i, 0) * 80ms)}@keyframes jr-mark-in{0%{opacity:0;transform:scale(.4)}}@media(prefers-reduced-motion:reduce){.jr-round-mark{animation:none}}.jr-tune{font-family:var(--sans);font-size:15px;color:var(--ink-70);margin-bottom:-8px}.jr-round-mark--met{background:var(--lime)}.jr-round-word{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);margin-right:8px}.jr-actions{margin-top:0;align-items:center}.jr-actions .hold-wrap{position:relative}.jr-actions:has(.hold-hint){row-gap:38px}.jr-actions .hold-hint{position:absolute;top:calc(100% + 10px);white-space:nowrap;font-size:11px}.jr-actions .hear-back{margin:0}.jr-inner .more-actions{margin-top:-14px}.jr-inner .jr-actions:has(.hold-hint)+.more-actions{margin-top:14px}.jr-score{margin-top:12px}.ts{--ts-w: min(1040px, calc(100vw - 48px) );width:max(100%,var(--ts-w));margin-inline:calc((100% - max(100%,var(--ts-w)))/2);display:flex;flex-direction:column;gap:14px;text-align:left}.ts-title{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.015em;line-height:1.2;margin:0}.ts-rounds{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.ts-round{display:flex;flex-direction:column;gap:4px}.ts-head{display:flex;align-items:baseline;gap:0 10px;flex-wrap:wrap;font-size:14px;color:var(--ink-70)}.ts-head .jr-round-mark{align-self:center;flex:none}.ts-cue{margin-right:0;flex:none}.ts-aside{min-width:0;flex:1 1 24ch;max-width:72ch;text-wrap:pretty}.ts-line{position:relative}.gc-free{display:block;width:100%;text-align:left;padding:10px 14px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);transition:background var(--t-press) ease,box-shadow var(--t-press) ease}.gc-free:hover{background:var(--blue-wash)}.gc-free--on{background:var(--blue-wash);box-shadow:4px 4px 0 var(--ink)}.gc-free-name{display:block;font-size:15px;font-weight:650}.gc-free--on .gc-free-name:after{content:" ✓";color:var(--ink)}.gc-free-note{display:block;font-size:12px;color:var(--muted)}.gc-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0 4px}.gc-filters-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-right:4px}.gc-filters .chip{padding:5px 13px;font-size:12px}.gc-family{margin-top:16px}.gc-family-label{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);text-align:left}.gc-family-label:after{content:"";flex:1;height:2px;background:var(--rule)}.gc-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:10px}.gc{position:relative;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);transition:background var(--t-press) ease,box-shadow var(--t-press) ease}.gc:hover{background:var(--paper)}.gc--on{background:var(--blue-wash);box-shadow:var(--shadow)}.gc-pick{display:block;width:100%;text-align:left;padding:10px 12px 12px}.gc-level{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}.gc-pips{display:inline-flex;gap:2px}.gc-pip{width:6px;height:6px;border-radius:50%;border:1px solid var(--ink)}.gc-pip--on{background:var(--blue);border-color:var(--ink)}.gc-name{display:block;margin:2px 0 9px;font-size:15px;font-weight:650;color:var(--text)}.gc-stave{display:grid;width:100%;min-width:0;grid-template-columns:auto 1fr;align-items:start;gap:4px 6px}.gc-lane-label{padding-top:14px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--ink-50)}.gc-lane{display:flex;flex-direction:column;gap:3px;min-width:0}.gc-feel{text-align:left;text-transform:none;letter-spacing:normal;font-family:var(--sans);font-size:11px;font-weight:650;line-height:1;color:var(--ink-70)}.gc-stave>.gc-feel{grid-column:2;width:max-content}.gc-bars{display:flex;padding-left:var(--gc-lead, 29px);padding-right:1px}.gc-bar{flex:1;display:flex;align-items:flex-end;gap:2px;height:26px;padding:0 4px}.gc-bar--sixteenth{gap:1px}.gc-cell{flex:1;height:3px;border-radius:1px;background:var(--rule)}.gc-cell--beat{background:var(--ink-25)}.gc-cell--hit{background:var(--ink-50)}.gc-cell--accent{background:var(--ink)}.gc-cell--next{background:transparent;border:1px solid var(--ink)}.gc-contour{display:block;text-align:left;padding-left:var(--gc-lead, 29px);font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--faint)}.gc-lane-count{display:flex;text-align:left;padding-left:var(--gc-lead, 29px);padding-right:1px;font-family:var(--mono);font-size:11px;line-height:1.35;letter-spacing:.02em;color:var(--ink-70)}.gc-count-bar{flex:1 1 0;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.gc-count-tok{white-space:nowrap}.gc-count-bar>.gc-count-tok{min-width:0;margin-right:4px}.gc-count-bar>.gc-count-tok--stack{white-space:normal}.gc-count-tok--rest{color:var(--ink-50)}.gc-counting{display:block;margin-top:6px;font-family:var(--mono);font-size:11px;line-height:1.4;color:var(--muted)}.gc--on .gc-counting{color:var(--text)}.gc-badge{display:inline-block;margin-top:9px;padding:1px 8px;border:2px solid var(--ink);border-radius:var(--r-action);color:var(--ink);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em}.gc-hear-row{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px}.gc-hear-row>.gc-tempo{flex-basis:100%}.gc-hear{flex:1;white-space:nowrap;padding:6px;border:2px solid var(--ink);border-radius:8px;background:var(--card);font-size:11px;font-weight:600;line-height:1.2;color:var(--ink);transition:color var(--t-press) ease,background var(--t-press) ease}.gc-hear:hover{background:var(--blue-wash)}.gc-hear--on{color:var(--on-blue);background:var(--blue)}.gc-teaches{padding:0 12px 6px;text-align:left;font-size:12px;line-height:1.4;color:var(--text)}.gc-prov{padding:0 12px 12px;text-align:left;font-size:11px;line-height:1.45;color:var(--faint)}.gc-meta{padding:0 12px 8px;text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--blue)}.gc-blurb{padding:0 12px 8px;text-align:left;font-size:12px;line-height:1.45;color:var(--muted)}.gc-hint{margin:12px 0 2px;padding:10px 14px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);text-align:left;font-size:14px;color:var(--ink-70)}.gc-hint strong{color:var(--text);font-weight:650}.gc-hint-counting{font-family:var(--mono);font-size:12px;color:var(--text)}.gc-practice-note,.gc-footnote{margin-top:12px;text-align:left;color:var(--faint)}.gc-practice-note{font-size:12px}.gc-footnote{font-size:11px}.gc-more{display:inline-block;margin-top:12px;padding:4px 0;font-family:var(--mono);font-size:12px;color:var(--ink-70);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--ink-25);text-underline-offset:4px;transition:color var(--t-press) ease,text-decoration-color var(--t-press) ease}.gc-more:hover,.gc-more:focus-visible{color:var(--ink);text-decoration-color:var(--ink)}.gc-single{margin-top:10px;max-width:300px}.gc-hint .link-btn{color:var(--blue);font:inherit;text-decoration:underline;text-underline-offset:3px}.btn-copy{display:block;width:100%;margin-top:12px;padding:11px 14px;border:2px solid var(--ink);border-radius:var(--r-chip);background:var(--card);color:var(--ink);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background var(--t-press) ease,color var(--t-press) ease}.btn-copy:hover{background:var(--blue);color:var(--on-blue)}.ph-groove--drill .gc-stave{margin-top:6px;max-width:260px}.ph-groove--drill .gc-stave--stage{max-width:480px}.perform-guide .ph-groove--drill .gc-stave--stage{max-width:none;width:calc(100% + var(--gc-lead, 40px) + 6px);margin-left:calc(-1 * (var(--gc-lead, 40px) + 6px))}.gc-hand{padding:0 12px 6px;text-align:left;font-size:12px;font-weight:650;color:var(--text)}.gc-keyboard{padding:0 12px 8px;text-align:left}.gc-tempo{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-50);margin-right:auto;align-self:center;font-variant-numeric:tabular-nums}.gc-off-tempo{margin-top:8px;font-size:12px;line-height:1.5;color:var(--muted)}.gc-rung{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-50);border:2px solid var(--ink);border-radius:var(--r-action);padding:2px 9px;align-self:flex-start}.gc-rung--held,.gc-rung--used{background:var(--lime);color:var(--ink)}.gc-next{margin-top:6px;font-size:13px;color:var(--text)}.tl{display:block;width:min(920px,calc(100vw - 48px));margin-left:50%;transform:translate(-50%)}.tl .tl-caption{max-width:560px;margin-left:auto;margin-right:auto}.tl-svg{display:block;width:100%;height:auto;overflow:visible}.tl-bar-number{fill:var(--ink-50);font-family:var(--mono);font-size:8px;font-weight:700}.tl-grid{stroke:var(--rule);stroke-width:.6}.tl-bar{stroke:var(--ink-25);stroke-width:1}.tl-pass{stroke:var(--ink);stroke-width:1.5}.tl-row-label{fill:var(--ink-50);font-family:var(--mono);font-size:8px;font-weight:700}.tl-tick{fill:var(--ink);stroke:none}.tl-slot-label{fill:var(--ink-50);font-family:var(--mono);font-size:8px;font-weight:700}.tl-tick--hollow{fill:none;stroke:var(--ink);stroke-width:1}.tl-hit{fill:var(--lime);stroke:var(--ink);stroke-width:1}.tl-near{fill:none;stroke:var(--ink);stroke-width:1}.tl-hit-near{fill:var(--card);stroke:var(--ink);stroke-width:1}.tl-offset{fill:var(--ink-50);font-family:var(--mono);font-size:8px;font-weight:700}.tl-extra{fill:var(--card);stroke:var(--ink);stroke-width:1}.tl-caption{margin:8px 0 0;font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--ink-70)}.tl-caption strong{font-family:var(--mono);font-weight:700;color:var(--ink)}.tl-empty{margin:0;font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--ink-50)}.ac{display:block;width:100%}.ac-svg{display:block;width:100%;height:auto;overflow:visible}.ac-ground{fill:var(--card)}.ac-bar-number{fill:var(--ink-50);font-family:var(--mono);font-size:max(6px,calc(11px * var(--ac-u, .54)));font-weight:700}.ac-chord{fill:var(--ink);font-family:var(--mono);font-size:7px;font-weight:700}.ac-grid{stroke:var(--rule);stroke-width:.6}.ac-bar{stroke:var(--ink);stroke-width:1}.ac-row-label{fill:var(--ink-50);font-family:var(--mono);font-size:max(5px,calc(11px * var(--ac-u, .54)));font-weight:700}.ac-block{fill:var(--blue-wash);stroke:var(--ink);stroke-width:1}.ac-cap{fill:var(--ink)}.ac-degree{fill:var(--ink);font-family:var(--mono);font-size:max(4px,calc(11px * var(--ac-u, .54)));font-weight:700}.ac-cursor-wash{fill:var(--cursor-wash)}.ac-playhead{fill:var(--blue)}:root{--paper: #fbf7ef;--card: #ffffff;--sunk: #f1ece3;--ink: #14120f;--ink-70: #47423a;--ink-50: #635d53;--ink-25: #b4aea4;--rule: #d8d2c7;--blue: #2c4cff;--lime: #c8f04a;--coral: #ff5c3e;--lilac: #b9a7ff;--blue-wash: #e6eaff;--on-blue: #ffffff;--on-coral: var(--ink);--coral-ink: #b8341b;--cursor-wash: rgba(44, 76, 255, .16);--cursor-edge: rgba(44, 76, 255, .5);--display: "Familjen Grotesk", system-ui, -apple-system, sans-serif;--sans: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--stroke: 3px;--r-chip: 10px;--r-card: 18px;--r-action: 999px;--shadow: 6px 6px 0 var(--ink);--shadow-hero: 10px 10px 0 var(--blue);--shadow-press: 2px 2px 0 var(--ink);--t-press: .12s;--t-arrive: .24s;--bg: var(--paper);--bg-raise: var(--card);--line: var(--ink);--track: var(--rule);--text: var(--ink);--muted: var(--ink-70);--faint: var(--ink-50);--accent: var(--blue);--accent-ink: var(--on-blue);--accent-glow: var(--blue-wash);--warn: var(--coral-ink)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background:var(--paper);background-image:radial-gradient(rgba(20,18,15,.08) 1px,transparent 1px);background-size:22px 22px;color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}::selection{background:var(--blue-wash);color:var(--ink)}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible,[tabindex]:focus-visible:not(.lesson-panel):not(.judge-sentence):not([data-screen-heading]){outline:var(--stroke) solid var(--blue);outline-offset:3px}[data-screen-heading]:focus{outline:none}.screen{min-height:100dvh;display:flex;flex-direction:column;padding:48px 24px}.screen-inner{margin:auto;width:100%;max-width:560px;text-align:center}.screen-inner--wide{max-width:780px}.screen-inner--stage{max-width:1180px}.screen--stage{padding-top:24px;padding-bottom:24px}.kicker{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:24px}.title{font-family:var(--display);font-size:clamp(34px,6vw,56px);font-weight:700;letter-spacing:-.035em;line-height:.95;margin-bottom:24px}.lede{color:var(--ink-70);font-size:18px;max-width:46ch;margin:0 auto 16px;text-wrap:pretty}.big-numeral{font-family:var(--mono);font-size:clamp(80px,15vw,148px);font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.btn{display:inline-block;padding:15px 32px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;box-shadow:5px 5px 0 var(--ink);transition:transform var(--t-press) ease,box-shadow var(--t-press) ease,background var(--t-press) ease,color var(--t-press) ease}.btn:hover:not(:disabled),.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:var(--shadow-press)}.btn-primary{background:var(--blue);color:var(--on-blue)}.btn-primary:disabled,.btn:disabled{border-style:dashed;border-color:var(--ink-25);background:var(--sunk);color:var(--ink-25);box-shadow:none;cursor:default}.btn-ghost{background:var(--card);color:var(--ink)}.btn-ghost:hover{background:var(--blue-wash);color:var(--ink)}.btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:44px}.more-actions{margin-top:14px;text-align:center}.more-actions>summary{display:inline-block;cursor:pointer;list-style:none;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-70);padding:6px 2px;border-bottom:2px solid var(--ink-25)}.more-actions>summary::-webkit-details-marker{display:none}.more-actions>summary:after{content:" +"}.more-actions[open]>summary:after{content:" −"}.more-actions>summary:hover,.more-actions>summary:focus-visible{color:var(--ink);border-bottom-color:var(--ink)}.more-actions-body{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}.device-list{list-style:none;margin:28px auto 0;max-width:380px;text-align:left}.device{display:flex;align-items:center;gap:12px;padding:12px 16px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card)}.device+.device{margin-top:8px}.device-dot{width:14px;height:14px;border-radius:50%;background:var(--blue);border:2px solid var(--ink);flex:none}.live-notes{margin:36px auto 40px;min-height:56px;display:flex;align-items:center;justify-content:center}.live-notes-held{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:.06em;color:var(--blue);font-variant-numeric:tabular-nums}.live-notes-hint{font-size:15px;color:var(--ink-50)}.job-block{margin:36px 0 8px}.job-line{font-size:clamp(20px,3.4vw,24px);font-weight:400;line-height:1.35}.job-line strong{font-weight:700}.job-note{margin-top:10px;color:var(--muted)}.meta-line{margin:26px 0 40px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.situation-fold{margin:30px auto 0;text-align:left}.situation-fold>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;cursor:pointer;list-style:none;padding:12px 0;border-top:2px solid var(--ink);font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.situation-fold>summary::-webkit-details-marker{display:none}.situation-fold>summary:after{content:"+";margin-left:auto;font-family:var(--mono);font-size:18px;color:var(--ink-50)}.situation-fold[open]>summary:after{content:"−"}.situation-fold>summary:hover:after,.situation-fold>summary:focus-visible:after{color:var(--ink)}.situation-fold>summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.situation-fold-sub{font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:0;color:var(--ink-70)}.missions-all>summary{border-top:none;padding:6px 0;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-70)}.missions-all>summary:after{margin-left:6px;font-size:12px}.situation-ways{margin:36px auto 0;max-width:640px;text-align:left}.situation-ways .three-ways{margin-top:0}.situation-chords .vk-chords{margin-top:8px}.perform-main{min-height:clamp(140px,26vh,240px);display:flex;flex-direction:column;align-items:center;justify-content:center}.countdown{color:var(--accent)}.perform-countin{display:flex;align-items:baseline;justify-content:center;gap:20px;margin-bottom:14px}.perform-countin .big-numeral{font-size:clamp(56px,9vw,92px)}.perform-countin .perform-sub{margin-top:0}.perform-contract{display:block;margin-top:6px;text-transform:none;letter-spacing:.02em;color:var(--ink-70)}.chord-pair{display:flex;align-items:baseline;justify-content:center;gap:34px}.chord-next{text-align:left}.chord-next-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.chord-next-symbol{font-family:var(--mono);font-size:clamp(32px,5.4vw,48px);font-weight:400;color:var(--ink-50);line-height:1.1}.perform-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:16px}.ph-chord{display:flex;align-items:baseline;gap:14px}.ph-now{font-family:var(--display);font-size:clamp(36px,5.6vw,52px);font-weight:700;line-height:1;letter-spacing:-.01em;color:var(--blue)}.ph-next{font-family:var(--display);font-size:clamp(19px,2.8vw,26px);font-weight:400;color:var(--ink-50)}.ph-position{display:flex;align-items:center;gap:14px}.ph-bar{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);font-variant-numeric:tabular-nums}.pulse-dots.pulse-dots--inline{margin-top:0;gap:10px}.band{display:flex;gap:18px;justify-content:center}.member{display:flex;flex-direction:column;align-items:center;gap:4px;transition:opacity .25s ease}.member--dim{opacity:.35}.member-avatar{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--card);border:var(--stroke) solid var(--ink);font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1}@keyframes member-pop{0%{transform:scale(1.18)}to{transform:scale(1)}}.member-avatar--pulse{animation:member-pop .22s ease-out}.member-avatar--hot{background:var(--blue-wash)}.member-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.stage{width:100%;margin:0 auto}.strip{position:relative;width:100%;min-height:150px;max-height:min(340px,40vh);overflow:hidden;background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);box-shadow:var(--shadow)}.strip--pending{height:min(340px,40vh)}.strip-track{position:absolute;top:8px;bottom:8px;display:flex;transition:transform .2s ease-out;will-change:transform}.strip-sheet{display:block;flex:0 0 auto;height:100%;width:auto}.strip-cursor{position:absolute;top:-8px;bottom:-8px;background:var(--cursor-wash);border-left:3px solid var(--blue);border-right:1px solid var(--cursor-edge);pointer-events:none;transition:left .2s ease-out,width .2s ease-out}.strip-progress{position:relative;height:10px;margin-top:10px;border:2px solid var(--ink);border-radius:999px;background:var(--card);overflow:hidden}.strip-progress-fill{height:100%;width:100%;background:var(--blue);transform-origin:left center;transition:transform .2s linear}.strip-progress-tick{position:absolute;top:0;bottom:0;width:2px;background:var(--ink-25)}.stand{margin:0 auto;max-width:860px;background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);padding:14px 12px;box-shadow:var(--shadow)}.stand{position:relative}.stand img{display:block;width:100%;height:auto;max-height:56vh;object-fit:contain}.stand-cursor{position:absolute;background:var(--cursor-wash);border-left:3px solid var(--blue);border-radius:3px;pointer-events:none;transition:left .18s ease,top .18s ease}@media(prefers-reduced-motion:reduce){.member-avatar--pulse{animation:none}.strip-track,.strip-cursor,.strip-progress-fill,.stand-cursor,.vamp-cursor{transition:none}}.perform-heard{margin-top:18px}.abort-link{margin-top:26px}.perform-sub{margin-top:14px;font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50);font-variant-numeric:tabular-nums}.evaluating{font-family:var(--mono);font-size:18px;color:var(--ink-70);letter-spacing:.1em}.pulse-dots{display:flex;gap:18px;justify-content:center;margin-top:44px}.dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink);background:var(--paper);transition:background 80ms ease,transform 80ms ease}.dot.on{background:var(--blue);transform:scale(1.14)}.abort-link{margin-top:56px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50);text-decoration:underline;text-underline-offset:4px}.abort-link:hover{color:var(--ink)}.overall{margin-bottom:44px}.overall-number{font-family:var(--mono);font-size:clamp(100px,20vw,158px);font-weight:700;line-height:1;letter-spacing:-.04em;color:var(--blue);font-variant-numeric:tabular-nums}.overall-number--na{color:var(--ink-50)}.overall-caption{margin-top:8px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.overall-scope{margin-top:14px;font-size:13px;color:var(--ink-50);text-wrap:pretty}.overall-confidence{margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)}.dim-confidence{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);font-weight:400}.dims{margin:0 auto;max-width:460px;display:flex;flex-direction:column;gap:18px;text-align:left}.dim-row{display:grid;grid-template-columns:8.5em 1fr auto;column-gap:16px;row-gap:6px;align-items:center}.dim-name{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.dim-bar{height:16px;border:var(--stroke) solid var(--ink);background:var(--card);border-radius:999px;overflow:hidden}.dim-bar--na{border-style:dashed;border-color:var(--ink-25);background:none}.dim-bar-fill{display:block;height:100%;background:var(--ink)}.dim-score{font-family:var(--mono);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;min-width:2.4em;text-align:right}.dim-score--na{color:var(--ink-50)}.dim-why{grid-column:1 / -1;font-size:14px;line-height:1.45;color:var(--ink-70)}.cards{margin-top:48px;display:flex;flex-direction:column;gap:14px;text-align:left}.card{border:var(--stroke) solid var(--ink);background:var(--card);border-radius:16px;overflow:hidden}.card-kicker{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:8px}.card>.card-kicker{margin-bottom:0;padding:10px 18px;border-bottom:var(--stroke) solid var(--ink);background:var(--sunk);color:var(--ink)}.card--note>.card-kicker{background:var(--sunk)}.card--worked>.card-kicker{background:var(--lime)}.card--try>.card-kicker{background:var(--coral);color:var(--on-coral)}.card>.card-text{padding:20px 18px}.card-text{color:var(--text)}.challenge{margin-top:48px}.challenge-kicker{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:10px}.try-next-label{display:inline-block;margin:0 0 12px;padding-bottom:4px;border-bottom:var(--stroke) solid var(--coral);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.try-next-text{font-size:17px;line-height:1.5;max-width:62ch;margin:0 auto}.challenge-title{font-family:var(--display);font-size:clamp(26px,4.6vw,38px);font-weight:700;letter-spacing:-.03em;line-height:1.05}.challenge-detail{margin-top:10px;color:var(--ink-70)}.challenge-card{margin-top:20px;padding:18px 20px;border:var(--stroke) solid var(--ink);border-radius:16px;background:var(--card);box-shadow:var(--shadow);display:inline-block;text-align:left}.axes{margin:32px auto 0;max-width:620px;text-align:left}.axis-row{display:grid;grid-template-columns:9.5em 3em 1fr;gap:14px;align-items:baseline;padding:10px 0;border-top:2px dashed var(--rule)}.axis-name{font-size:14px;color:var(--text)}.axis-score{font-family:var(--mono);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.axis-note{font-size:13px;color:var(--ink-70);line-height:1.5}.details-tools{margin-top:28px;display:flex;justify-content:center}.ph-tap-hint{margin-top:12px;font-size:14px;color:var(--muted)}.input-picker{margin:0 auto 20px;max-width:460px;text-align:left}.input-picker-label{display:block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:8px}.input-picker-choices{display:flex;flex-wrap:wrap;gap:8px}.preflight{list-style:none;margin:0 auto 24px;padding:0;max-width:460px;text-align:left;display:flex;flex-direction:column;gap:8px}.preflight-line{display:grid;grid-template-columns:1.4em 1fr;gap:6px;font-size:13px;line-height:1.5;color:var(--muted)}.preflight-mark{font-weight:700}.preflight-line--ok .preflight-mark{color:var(--blue)}.preflight-line--warn{color:var(--text)}.preflight-line--warn .preflight-mark{color:var(--coral-ink)}.audio-route{margin:0 auto 32px;max-width:400px;padding:16px 20px;border:var(--stroke) solid var(--ink);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}.audio-route--on{background:var(--blue-wash)}.audio-route-text{font-size:15px;color:var(--ink-70);margin-bottom:12px}.audio-route-text strong{color:var(--text);font-weight:600}.audio-route-row,.audio-route-list{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.audio-route-list{margin-bottom:12px}.audio-route-hint{margin-top:10px;font-size:12px;color:var(--faint)}.audio-route-link{display:block;margin:0 auto 28px;font-size:12px;letter-spacing:.04em;color:var(--faint);text-decoration:underline;text-underline-offset:3px}.audio-route-link:hover{color:var(--muted)}.timing-check-taps{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:28px;margin:0 0 12px}.timing-tap{padding:2px 8px;border:2px solid var(--ink);border-radius:var(--r-chip);background:var(--card);color:var(--ink);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}.timing-num{font-family:var(--mono);font-weight:700;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.timing-num--ok{padding:0 6px;border-radius:var(--r-chip);background:var(--lime)}.timing-check-nudge{color:var(--text)}.timing-check-mark{margin-right:6px;color:var(--coral-ink);font-weight:700}.btn-mini{padding:8px 16px;border-radius:var(--r-action);border:2px solid var(--ink);background:var(--card);color:var(--ink);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;transition:background var(--t-press) ease,color var(--t-press) ease}.btn-mini:hover{background:var(--blue-wash);color:var(--ink)}.btn-mini--accent,.btn-mini--accent:hover{background:var(--blue);color:var(--on-blue)}.account-corner-host{display:contents}.account-corner{position:absolute;top:16px;right:24px;z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.account-signin,.account-who{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:4px 6px;border-radius:var(--r-chip);font-family:var(--sans);font-size:14px;color:var(--ink-70)}.account-signin{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--ink-25)}.account-signin:hover,.account-who:hover,.account-who[aria-expanded=true]{color:var(--ink);text-decoration-color:var(--ink)}.account-avatar{width:26px;height:26px;border-radius:50%;border:2px solid var(--ink);background:var(--sunk);object-fit:cover}.account-avatar--initial{display:inline-grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink)}.account-name{max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu{min-width:180px;padding:8px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);box-shadow:var(--shadow-press);text-align:left}.account-menu-email{padding:4px 8px 8px;font-family:var(--mono);font-size:11px;color:var(--ink-50);overflow-wrap:anywhere}.account-menu-item{display:block;width:100%;padding:8px;border-radius:6px;text-align:left;font-size:14px;color:var(--ink)}.account-menu-item:hover{background:var(--sunk)}.account-failure{max-width:300px;padding:10px 12px;border:2px solid var(--ink);border-radius:var(--r-chip);background:var(--card);box-shadow:var(--shadow-press);color:var(--ink);font-size:13px;line-height:1.4;text-align:left}.account-failure-dismiss{margin-top:6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50)}.account-failure-dismiss:hover{color:var(--ink)}.streak-prompt{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 14px;margin:20px auto 0;padding:8px 8px 8px 18px;max-width:560px;border:2px solid var(--ink);border-radius:var(--r-action);background:var(--card);font-size:14px;color:var(--ink-70)}.streak-prompt-text{color:var(--ink)}.streak-prompt-actions{display:inline-flex;align-items:center;gap:6px}.streak-prompt-dismiss{padding:8px 10px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50)}.streak-prompt-dismiss:hover{color:var(--ink)}.streak-prompt-failure{flex-basis:100%;font-size:13px;color:var(--ink-70)}.daily-banner{display:flex;align-items:baseline;justify-content:center;gap:12px;flex-wrap:wrap;margin:0 auto 26px;padding:12px 20px;max-width:560px;border:var(--stroke) solid var(--ink);border-radius:16px;background:var(--blue-wash);box-shadow:var(--shadow)}.daily-banner-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-70)}.daily-banner-title{font-weight:600;color:var(--text)}.daily-banner-status{font-size:12px;color:var(--muted)}.daily-banner-status--done{color:var(--ink);font-weight:700}.daily-banner-streak{padding:2px 12px;border:2px solid var(--ink);border-radius:var(--r-action);background:var(--lime);font-family:var(--mono);font-size:14px;font-weight:700;color:var(--ink)}.daily-badge{display:inline-block;margin-bottom:24px;padding:7px 18px;border-radius:var(--r-action);border:var(--stroke) solid var(--ink);background:var(--card);font-family:var(--sans);font-size:14px;color:var(--ink-70)}.daily-badge--counted{background:var(--lime);color:var(--ink);font-weight:700}.daily-note{margin:20px auto 32px;max-width:52ch;font-family:var(--mono);font-size:12px;letter-spacing:.04em;line-height:1.5;color:var(--ink-50)}.situation-picker{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.chip{padding:9px 20px;border-radius:var(--r-action);border:var(--stroke) solid var(--ink);background:var(--card);color:var(--ink);font-size:14px;font-weight:600;transition:background var(--t-press) ease,color var(--t-press) ease,transform var(--t-press) ease,box-shadow var(--t-press) ease}.chip:hover{background:var(--blue-wash)}.chip--on{background:var(--blue-wash);color:var(--ink);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.chip--on:hover{background:var(--blue-wash)}.credit-line{margin-top:4px;font-size:12px;color:var(--faint);font-style:italic}.form-block{margin:34px auto 0;max-width:460px}.form-title{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:12px}.sheet-card{background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);padding:16px 14px;box-shadow:var(--shadow)}.sheet-card img{display:block;width:100%;height:auto}.sheet-card--link{display:block;position:relative;color:var(--ink);text-decoration:none;transition:transform var(--t-press) ease,box-shadow var(--t-press) ease}.sheet-card--link:hover{transform:translate(2px,2px);box-shadow:var(--shadow-press)}.sheet-open{display:block;margin-top:10px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-70);text-align:right}.form-grid{border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);overflow:hidden}.form-row{display:grid;grid-template-columns:repeat(4,1fr)}.form-row+.form-row{border-top:2px solid var(--ink)}.form-bar{padding:10px 4px;font-family:var(--mono);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.form-bar+.form-bar{border-left:2px solid var(--ink)}.form-bar--held{color:var(--ink-50);font-weight:400}.perform-heard{margin-top:30px;min-height:28px;display:flex;align-items:baseline;justify-content:center;gap:14px;font-size:13px}.perform-heard-notes{color:var(--blue);font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:.05em;font-variant-numeric:tabular-nums}.perform-heard-idle{color:var(--ink-50);font-family:var(--mono);font-size:18px}.perform-heard-count{color:var(--ink-50);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-variant-numeric:tabular-nums}.perform-heard--warn{color:var(--coral-ink);font-size:13px;font-weight:600;letter-spacing:.06em}.card--warn>.card-kicker{background:var(--coral);color:var(--on-coral)}.timing-strip{margin-top:48px;text-align:left}.timing-strip-title{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:10px;text-align:center}.timing-strip svg{display:block;width:100%;height:auto;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card)}.ts-grid{stroke:var(--rule);stroke-width:1}.ts-band{fill:var(--blue-wash)}.ts-zero{stroke:var(--ink);stroke-width:1.5}.ts-median{stroke:var(--blue);stroke-width:2;stroke-dasharray:5 4}.ts-dot{fill:var(--blue);opacity:.8}.ts-label{fill:var(--ink-50);font-family:var(--mono);font-size:15px;letter-spacing:.04em}.ts-label--accent{fill:var(--blue)}.ts-gutter-rule{stroke:var(--rule);stroke-width:1}.timing-legend{list-style:none;margin:12px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;font-size:13px;line-height:1.4;color:var(--ink-70)}.timing-legend-mark{display:inline-block;margin-right:4px;font-family:var(--mono);font-size:12px;color:var(--blue)}.timing-legend-line{display:inline-block;width:18px;margin-right:4px;vertical-align:middle;border-top:2px solid var(--ink)}.timing-legend-line--you{margin-left:2px;border-top:2px dashed var(--blue)}.timing-legend-mark--band{width:18px;height:10px;vertical-align:-1px;background:var(--blue-wash);border-radius:2px}.timing-strip-caption{max-width:70ch;margin:10px auto 0;font-size:14px;color:var(--ink-70);text-align:center}.progress-stats{margin-bottom:34px;font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-70);font-variant-numeric:tabular-nums}.trend-grid{margin-top:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;text-align:left}.trend-card{border:var(--stroke) solid var(--ink);background:var(--card);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow)}.trend-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.trend-delta{padding:2px 10px;border:2px solid var(--ink);border-radius:var(--r-action);font-family:var(--mono);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.trend-delta--improving{background:var(--lime);color:var(--ink)}.trend-delta--steady{background:var(--card);color:var(--ink-50)}.trend-delta--worsening{background:var(--sunk);color:var(--ink)}.tc{display:block;width:100%;height:auto}.tc-grid{stroke:var(--rule);stroke-width:.8}.tc-line{fill:none;stroke:var(--blue);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}.tc-dot{fill:var(--blue)}.tc-empty{padding:24px 0;font-size:13px;color:var(--ink-50);font-style:italic;text-align:center}.debug{margin-top:56px;padding-top:8px;border-top:1px solid var(--line);font-family:var(--mono);font-size:12px;text-align:left;color:var(--muted)}.debug section{margin-top:28px}.debug h3{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}.debug-summary{margin-top:16px;line-height:1.8}.debug-scroll{overflow:auto;max-height:340px;border:2px solid var(--ink);border-radius:8px}.debug table{width:100%;border-collapse:collapse;white-space:nowrap}.debug th{position:sticky;top:0;z-index:1;background:var(--bg-raise);text-align:left;font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:7px 10px}.debug td{padding:4px 10px;border-top:1px solid var(--rule);font-variant-numeric:tabular-nums}.debug td.num{text-align:right}.debug-empty{color:var(--faint);font-style:italic}.debug-dims{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.debug-dim{border:2px solid var(--ink);border-radius:8px;padding:12px 14px}.debug-dim-head{margin-bottom:8px;color:var(--text)}.ts-dot--off{fill:none;stroke:var(--accent);stroke-width:1.4;opacity:.85}.groove-block{margin:26px 0}.groove-optional{display:block;margin-top:6px;max-width:62ch;font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:normal;color:var(--ink-70)}.btn-small{padding:6px 14px;font-size:12px}.ph-groove{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.ph-groove-name{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.groove-report{margin:26px 0;padding:16px 18px;border:var(--stroke) solid var(--ink);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}.groove-report-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.groove-report-score{font-family:var(--mono);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.groove-report .card-text{margin:6px 0}.groove-slots{margin-top:10px;width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.groove-slots th{text-align:left;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);padding:4px 10px 4px 0}.groove-slots td{padding:3px 10px 3px 0;border-top:1px solid var(--rule)}.groove-slots .num{text-align:left}.result-keyboard{margin:14px auto 4px;max-width:340px;text-align:left}.connect-explore-hint{margin-top:8px;font-size:13px;line-height:1.5;color:var(--ink-50)}.strip--guided{max-height:min(200px,21vh)}.strip--pending.strip--guided{height:min(200px,21vh)}.stand--guided img{max-height:30vh}.strip--read{--vamp-h: min(150px, 19vh);--strip-read-h: calc(var(--vamp-h) * var(--strip-k, 1.13) + 16px + 2 * var(--stroke));aspect-ratio:var(--strip-max-ratio, 4);max-height:min(340px,40vh,var(--strip-read-h))}.strip--read.strip--guided{max-height:min(200px,21vh,var(--strip-read-h))}.strip--read .strip-cursor{transition:none}.strip-pass{position:relative;flex:0 0 auto;height:100%;overflow:hidden}.strip-pass .strip-sheet{height:100%;width:auto;max-width:none}.strip-pass-veil{position:absolute;top:0;left:0;right:0;background:var(--paper);pointer-events:none}.stage--loop{--vamp-h: min(150px, 19vh);width:min(100%,calc(var(--vamp-h) * var(--vamp-ratio) + 28px + 2 * var(--stroke)))}.vamp--loop .vamp-music{width:100%;height:auto;min-height:0}.three-ways{margin:30px auto 0;text-align:left}.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.way{border:var(--stroke) solid var(--rule);border-radius:16px;background:var(--card);padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px}.way--recommended{border-color:var(--ink)}.ways-lede{margin:6px 0 14px;color:var(--ink-70);text-wrap:pretty}.ways-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.way-pick{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:var(--stroke) solid var(--rule);border-radius:var(--r-chip);background:var(--card);text-align:left;transition:border-color var(--t-press) ease,background var(--t-press) ease}.way-pick:hover,.way-pick--recommended{border-color:var(--ink)}.way-pick--on,.way-pick--on:hover{border-color:var(--ink);background:var(--blue-wash);box-shadow:inset 0 -3px 0 var(--ink)}.way-pick-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;width:100%}.way-pick .way-result{font-size:14px;color:var(--ink-70)}.way-pick-state{margin-top:2px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-50)}.way-pick--on .way-pick-state{color:var(--ink)}.way-open{display:grid;gap:10px;margin-top:12px;padding:14px 16px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card)}.way-open>.gc-stave{max-width:420px}.way-open-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.way-open-note{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-50)}.way-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.way-tag{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.02em}.way-badge{flex:none;padding:1px 8px;border:2px solid var(--ink);border-radius:var(--r-action);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink)}.way-result{font-size:15px;line-height:1.4;color:var(--text)}.way-card{font-size:13px;font-weight:650}.way-actions{display:flex;gap:6px;margin-top:4px}.way-actions .gc-hear{flex:1}.way-teach{background:var(--card)}.way-footnote{margin-top:10px;font-size:12px;color:var(--faint)}.btn-row--result{display:grid;grid-template-columns:minmax(0,max-content);justify-content:center;justify-items:stretch}.primary-wrap{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:10px}.primary-hint{font-family:var(--mono);font-size:11px;letter-spacing:.06em;line-height:1.3;color:var(--ink-50);white-space:nowrap}.situation-actions .primary-hint{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.btn-row--result .primary-wrap{display:flex;align-items:stretch;text-align:center}.lesson-go .primary-wrap{align-items:flex-start}.complete-badge{display:inline-block;margin-bottom:20px;padding:6px 16px;border:2px solid var(--ink);border-radius:var(--r-action);background:var(--blue-wash);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.complete-note{max-width:48ch;margin:0 auto;color:var(--ink-50);font-size:14px;line-height:1.5}.perform-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}.perform-controls .btn-mini{padding:8px 18px}.perform-guide{margin:0 auto 10px;max-width:980px}.perform-guide .gk{width:100%}.perform-guide .cl{margin-bottom:6px}.perform-chart--secondary{margin-top:8px}.perform-chart--secondary .ac{max-width:163.2vh;margin:0 auto}.details{margin:24px auto 0;max-width:560px;text-align:left}.details summary{cursor:pointer;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50)}.details p{margin-top:8px;font-size:12px;line-height:1.5;color:var(--faint)}.ph-form{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--ink-50)}.perform-guide-keys{margin:0 auto;width:100%}.perform-countin--guided{margin-bottom:8px}.perform-countin--guided .big-numeral{font-size:clamp(40px,5vw,56px)}@media(max-height:740px){.perform-countin--guided{margin-bottom:4px}.perform-countin--guided .big-numeral{font-size:44px}}.lesson-screen{padding:28px 32px}.lesson{margin:auto;width:100%;max-width:1120px;text-align:left}.lesson-head{display:grid;gap:6px}.lesson-back{justify-self:start;display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;padding:4px 2px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-70);border-bottom:2px solid transparent}.lesson-back svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.lesson-back:hover{color:var(--ink);border-bottom-color:var(--ink)}.lesson-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.lesson-level{padding:3px 10px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--card);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.lesson-title{font-family:var(--display);font-size:clamp(34px,4.4vw,48px);font-weight:700;letter-spacing:-.035em;line-height:.95}.lesson-lede{max-width:70ch;color:var(--ink-70);font-size:16px;line-height:1.4;text-wrap:pretty}.ladder{display:flex;align-items:center;flex-wrap:wrap;row-gap:10px;margin:22px 0 0}.rung{position:relative;display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 10px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--card);font-size:14px;font-weight:600;white-space:nowrap;transition:background var(--t-press) ease,color var(--t-press) ease,box-shadow var(--t-press) ease}.rung+.rung{margin-left:22px}.rung+.rung:before{content:"";position:absolute;top:50%;right:calc(100% + var(--stroke));width:22px;height:var(--stroke);margin-top:calc(var(--stroke) / -2);background:var(--ink)}.rung:hover{background:var(--blue-wash)}.rung-index{display:inline-grid;place-items:center;width:20px;height:20px;border:2px solid currentColor;border-radius:50%;font-family:var(--mono);font-size:11px;font-weight:700;line-height:1}.rung-tick{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.rung--done,.rung--done:hover{background:var(--lime)}.rung--next{box-shadow:4px 4px 0 var(--ink)}.rung--on,.rung--on:hover{background:var(--ink);color:var(--paper)}.rung--on.rung--done .rung-index{color:var(--lime)}.rung-tried{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-50)}.rung--on .rung-tried{color:var(--paper)}.lesson-body{display:grid;grid-template-columns:minmax(0,510px) minmax(0,1fr);gap:28px 56px;align-items:start;margin-top:26px}.lesson-plan{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.lesson-default{font-family:var(--display);font-size:clamp(26px,2.6vw,32px);font-weight:700;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}.ladder-what{max-width:50ch;color:var(--ink-70);font-size:15px;line-height:1.45}.lesson-boundary{max-width:52ch;padding:10px 14px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);font-size:14px;line-height:1.45}.lesson-boundary strong{font-weight:700}.lesson-go{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:4px}.lesson-summary{font-family:var(--mono);font-size:12px;letter-spacing:.04em;line-height:1.5;color:var(--ink-50);font-variant-numeric:tabular-nums}.lesson-tune{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:6px;padding-top:16px;border-top:2px solid var(--rule);align-self:stretch}.lesson-pick{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px 0 14px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--card);color:var(--ink);transition:background var(--t-press) ease}.lesson-pick:hover,.lesson-pick--open{background:var(--blue-wash)}.lesson-pick-k{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-70)}.lesson-pick-v{font-family:var(--mono);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.lesson-chevron{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.lesson-tempo{display:inline-flex;align-items:center;gap:8px}.seg{display:inline-flex;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--card);overflow:hidden}.seg-opt{min-height:34px;padding:0 12px;font-family:var(--mono);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-70);transition:background var(--t-press) ease,color var(--t-press) ease}.seg-opt+.seg-opt{border-left:var(--stroke) solid var(--ink)}.seg-opt:hover{background:var(--sunk);color:var(--ink)}.seg-opt--on,.seg-opt--on:hover{background:var(--blue-wash);color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}.seg-opt:focus-visible{outline-offset:-5px}.seg-sub{font-weight:400;font-size:11px;color:var(--ink-50)}.lesson-panel{align-self:stretch;display:grid;gap:8px;padding:12px 16px 14px;border:var(--stroke) solid var(--ink);border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow)}.lesson-panel:focus{outline:none}.lesson-panel .seg-opt{min-height:30px}.lesson-panel .btn-mini{border-width:var(--stroke)}.lesson-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.lesson-panel-title{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.lesson-panel-sub{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:0;color:var(--ink-70)}.lesson-field{display:grid;grid-template-columns:6.5em auto 1fr;align-items:center;gap:4px 12px}.lesson-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}.lesson-field-note{font-size:13px;line-height:1.3;color:var(--ink-50)}.lesson-reset{justify-self:start;margin-top:4px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ink-70);text-decoration:underline;text-decoration-color:var(--ink-25);text-underline-offset:4px;text-align:left}.lesson-reset:hover{color:var(--ink);text-decoration-color:var(--ink)}.chorus-map{display:grid;gap:12px}.chorus-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));row-gap:8px}.bar-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:46px;padding:3px 6px 5px;border:0 solid var(--rule);border-top-width:var(--stroke);border-bottom-width:var(--stroke);border-left-width:var(--stroke);background:var(--card);text-align:left;transition:background var(--t-press) ease}.bar-cell:nth-child(8n){border-right-width:var(--stroke)}.bar-cell:last-child{border-right:calc(var(--stroke) * 2) double var(--ink-50)}.bar-cell:hover{background:var(--sunk)}.bar-cell--in,.bar-cell--in:hover{background:var(--blue-wash);border-top-color:var(--ink);border-bottom-color:var(--ink)}.bar-cell--start{border-left-color:var(--ink)}.bar-cell--end{box-shadow:inset calc(-1 * var(--stroke)) 0 0 var(--ink)}.bar-cell--end:nth-child(8n){border-right-color:var(--ink);box-shadow:none}.bar-cell--end:last-child{border-right-color:var(--ink);box-shadow:none}.bar-cell:focus-visible{outline-offset:-4px;z-index:1}.bar-cell-n{font-family:var(--mono);font-size:11px;font-weight:700;line-height:1;color:var(--ink-50);font-variant-numeric:tabular-nums}.bar-cell-chords{display:flex;flex-wrap:wrap;column-gap:5px;max-width:100%}.bar-cell-chord{font-size:14px;font-weight:700;line-height:1.1;color:var(--ink);white-space:nowrap}.bar-cell-chords--two .bar-cell-chord{font-size:12px}.bar-cell-chord--held{font-weight:500;color:var(--ink-50)}.lesson-picture{display:grid;gap:8px;min-width:0}.lesson-staff{max-width:560px}.lesson-staff>.gc-stave{width:100%}.lesson-figure{display:grid;gap:8px;max-width:560px;margin:0}.lesson-picture-cap{font-family:var(--sans);font-size:13px;line-height:1.4;color:var(--ink-70)}.lesson-stage{display:grid;gap:8px;max-width:560px}.lesson-stage-keys{width:100%;margin:0 auto}.lesson-picture .cl--large{--cl-size: 22px}.lesson-live-count .cl-cell{container-type:inline-size}.lesson-live-count .cl-cell>*{--cl-fit: min(var(--cl-size), calc((var(--fit-p, 1) * 100cqi - 6px) / var(--fit-d, 4)))}.lesson-live-count .cl-word{font-size:var(--cl-fit)}.lesson-live-count .cl-syl{font-size:calc(var(--cl-fit) * .8)}.lesson-live-count--stacked .cl-cell,.lesson-live-count--stacked .cl--placed{height:calc(var(--cl-size) * 2.3)}.lesson-live-count--stacked .cl-cell>*{--cl-fit: min(var(--cl-size), calc((100cqi - 6px) / var(--fit-dw, 4)));--cl-syl-fit: min(calc(var(--cl-size) * .8), calc((var(--fit-g, 1) * 100cqi - 3px) / var(--fit-ds, 2)))}.lesson-live-count--stacked .cl-word{top:30%}.lesson-live-count--stacked .cl-syl{top:76%;font-size:var(--cl-syl-fit)}.lesson-facts{display:grid;grid-template-columns:10.5em 1fr;gap:6px 14px;margin-top:4px;max-width:68ch}.lesson-facts dt{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);padding-top:3px}.lesson-facts dd{font-size:14px;line-height:1.45;color:var(--text)}@media(max-width:920px){.lesson-body{grid-template-columns:minmax(0,1fr)}}.result-standing{display:inline-block;margin:0 0 18px;padding:4px 0;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-70)}.result-standing--demonstrated{padding:4px 12px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--lime);color:var(--ink)}.result-heading{font-family:var(--display);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-bottom:18px;text-wrap:balance}.result-actions{margin-top:44px;display:flex;flex-direction:column;align-items:center;gap:18px}.result-actions-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.result-actions .hear-back{margin:0;justify-content:center}.result-actions .more-actions{margin-top:0}.ph-loop{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-variant-numeric:tabular-nums}.ph-loop-pass{color:var(--blue)}.perform--observe .ph-now,.perform--observe .ph-loop-pass{color:var(--ink)}.perform--observe .strip-cursor,.perform--observe .vamp-cursor,.perform--observe .stand-cursor{background:var(--sunk);mix-blend-mode:multiply;border-left-color:var(--ink);border-right-color:transparent}.perform--observe .strip-progress-fill{background:var(--ink)}.perform--observe .ac-cursor-wash{fill:none}.perform--observe .ac-playhead{fill:var(--ink)}.ph-turn{font-weight:400;color:var(--ink-50)}.ph-turn--you{font-weight:700;color:var(--blue)}.chart-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 0 6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}.chart-label .chip{padding:3px 10px;font-size:11px;text-transform:none;letter-spacing:0}.tap-stage{margin:10px auto 16px;max-width:980px}.tap-strip{margin:0 0 12px}.tap-strip-row{position:relative;margin-top:6px}.tap-strip-label{position:absolute;right:calc(100% + 14px);top:7px;white-space:nowrap;font-family:var(--mono);font-size:11px;font-weight:700;line-height:1;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}.tap-strip-track{display:grid;gap:0 4px;width:100%;border-bottom:1px solid var(--rule)}.tap-strip-cell{position:relative;height:28px;overflow:visible}.tap-strip-tick{position:absolute;top:0;width:3px;height:14px;margin-left:-1.5px;background:var(--ink)}.tap-strip-slot{position:absolute;top:16px;padding-left:4px;font-family:var(--mono);font-size:11px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink-50)}.tap-strip-tap{position:absolute;top:6px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--blue)}.tap-strip-tap--prev{background:var(--ink-25)}.tap-strip-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--blue)}.take-story{max-width:62ch;margin:8px auto 0;text-align:left}.take-lead{font-size:clamp(19px,2.4vw,22px);line-height:1.45;color:var(--text)}.take-more{margin-top:12px;font-size:16px;line-height:1.5;color:var(--ink-70)}.take-fact{display:inline}.judge-sentence{border-radius:4px;transition:background-color var(--t-press) ease-out;-webkit-box-decoration-break:clone;box-decoration-break:clone}.judge-sentence[data-judge-active]{background-color:var(--blue-wash)}.judge{position:absolute;z-index:3;display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;white-space:nowrap;text-align:left;opacity:0;pointer-events:none;transition:opacity var(--t-press) ease-out}.judge--active{opacity:1;pointer-events:auto}.judge--yielded{transition:none}.judge-sentence:focus-visible{outline:none;background-color:var(--blue-wash);box-shadow:inset 0 -3px 0 var(--blue)}.judge-pair{display:inline-flex;gap:6px}.judge-btn{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-70);background:var(--card);border:2px solid var(--ink-50);border-radius:var(--r-action);padding:3px 11px;cursor:pointer;line-height:1.4;transition:background var(--t-press) ease,color var(--t-press) ease,border-color var(--t-press) ease}.judge-btn:hover{border-color:var(--ink);color:var(--ink)}.judge-btn:focus-visible{border-color:var(--ink);color:var(--ink);outline:3px solid var(--blue);outline-offset:2px}.judge-btn--on,.judge-btn--on:hover,.judge-btn--on:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--paper)}.judge-noted{min-height:1em;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-50)}.judge-noted:empty{display:none}.judge-mark{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);white-space:nowrap}.judge-mark--margin{position:absolute;z-index:2;display:inline-flex;align-items:center;min-height:26px;padding-left:12px;border-left:1px solid var(--ink-25)}.judge-sentence[data-judged]{text-decoration:underline dotted var(--ink-25);text-decoration-thickness:2px;text-underline-offset:4px}.judge-mark--hidden{display:none}.numbers{margin-top:40px}.numbers-summary{cursor:pointer;display:inline-block;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);padding:6px 0;margin-bottom:24px}.numbers-summary:hover{color:var(--ink)}.numbers .overall-number{font-size:clamp(56px,8vw,72px);color:var(--ink)}.hear-back{margin-top:16px;margin-bottom:28px;justify-content:flex-start;align-items:center;gap:12px}.hear-back-readout{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--ink-70)}.hear-back-readout--live{color:var(--blue)}.hear-back-note{font-family:var(--sans);font-size:13px;color:var(--ink-50)}.calibration-note{max-width:52ch;margin:18px auto 0;font-size:14px;line-height:1.45;color:var(--ink-70);text-align:center}.missions{margin:36px auto 0;max-width:640px;text-align:left}.missions-title{font-family:var(--display);font-size:clamp(24px,3.6vw,30px);font-weight:700;letter-spacing:-.02em;margin:0}.missions-lede{margin:6px 0 14px;color:var(--ink-70)}.mission-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.mission{display:flex;align-items:center;gap:16px;padding:12px 14px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card)}.mission-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mission-name{font-weight:700}.mission-job{color:var(--ink-70);font-size:14px;line-height:1.4}.mission-meta{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50);font-variant-numeric:tabular-nums}@media(max-width:520px){.mission{flex-direction:column;align-items:stretch}}.mission-hear{display:block;width:min(340px,calc(100% + 8px));margin:8px 0 0 -8px;padding:6px 8px;border:2px solid transparent;border-radius:var(--r-chip);text-align:left;transition:border-color var(--t-press) ease,background var(--t-press) ease}.mission-text .mission-hear .mission-picture{margin-top:0}.mission-hear:hover,.mission-hear--on{border-color:var(--ink);background:var(--paper)}.mission-hear-label{display:inline-block;margin-top:4px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50)}.mission-hear:hover .mission-hear-label,.mission-hear--on .mission-hear-label{color:var(--ink)}.missions-all{margin-top:14px}.missions-all>.mission-list{margin-top:12px}.ct{display:block;width:min(920px,calc(100vw - 48px));margin-left:50%;transform:translate(-50%)}.ct-svg{display:block;width:100%;height:auto;overflow:visible}.ct-ground{fill:var(--card)}.ct-wash{fill:var(--sunk)}.ct-grid{stroke:var(--rule);stroke-width:.6}.ct-bar{stroke:var(--ink-25);stroke-width:1}.ct-bar-number{fill:var(--ink-50);font-family:var(--mono);font-size:11px;font-weight:400}.ct-span-label{fill:var(--ink);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ct-lane-label{fill:var(--ink-50);font-family:var(--mono);font-size:11px;font-weight:700}.ct-phrase{fill:var(--rule)}.ct-mark{stroke:none}.ct-lane--you .ct-mark--soft{fill:var(--ink-50)}.ct-lane--you .ct-mark--mid{fill:var(--ink-70)}.ct-lane--you .ct-mark--loud{fill:var(--ink)}.ct-lane--band .ct-mark--soft{fill:var(--ink-25)}.ct-lane--band .ct-mark--mid{fill:var(--ink-50)}.ct-lane--band .ct-mark--loud{fill:var(--ink-70)}.ct-now{stroke:var(--blue);stroke-width:1.5}.ct-empty{margin:0;font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--ink-50)}.reactive-toggle{display:inline-flex;align-items:center;gap:12px;padding:9px 16px 9px 20px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--card);color:var(--ink);font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.2;text-align:left;box-shadow:4px 4px 0 var(--ink);transition:background var(--t-press) ease,transform var(--t-press) ease,box-shadow var(--t-press) ease}.reactive-toggle:hover{background:var(--blue-wash)}.reactive-toggle:active{transform:translate(2px,2px);box-shadow:var(--shadow-press)}.reactive-toggle__tag{margin-left:6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50)}.reactive-toggle__track{position:relative;flex:none;width:40px;height:22px;border:var(--stroke) solid var(--ink);border-radius:var(--r-action);background:var(--sunk);transition:background var(--t-press) ease}.reactive-toggle__knob{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--ink);transition:transform var(--t-press) ease,background var(--t-press) ease}.reactive-toggle__state{min-width:2.4em;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50)}.reactive-toggle--on .reactive-toggle__track{background:var(--blue)}.reactive-toggle--on .reactive-toggle__knob{background:var(--on-blue);transform:translate(18px)}.reactive-toggle--on .reactive-toggle__state{color:var(--blue)}.options-fold{margin-top:18px}.situation-actions{align-items:center}.options-summary{list-style:none;cursor:pointer;display:inline-block;padding:8px 4px;border-bottom:2px solid var(--ink-25);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-70)}.options-summary:hover,.options-fold[open]>.options-summary{color:var(--ink);border-bottom-color:var(--ink)}.options-summary::-webkit-details-marker{display:none}.options-summary:after{content:" +"}.options-fold[open]>.options-summary:after{content:" −"}.options-body{margin:14px auto 0;width:min(340px,100%);display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;border:var(--stroke) solid var(--ink);border-radius:var(--r-chip);background:var(--card);box-shadow:var(--shadow);text-align:left}.options-body .reactive-toggle,.options-body .reactive-toggle:active{box-shadow:none;transform:none}.reactive-note{margin:0;font-size:14px;color:var(--ink-70)}.mission-picture{display:flex;flex-direction:column;gap:6px;align-items:flex-start;max-width:320px}.mission-picture svg{display:block;width:100%;height:auto}.mission-picture--compact{max-width:260px}.mission-picture--compact .mp-num{font-size:13.6px}.mission-picture-count{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-70)}.mp-bar{fill:var(--card);stroke:var(--ink);stroke-width:2}.mp-bar--empty{stroke-dasharray:4 3;stroke:var(--ink-50)}.mp-mark{fill:var(--ink)}.mp-mark--you{fill:var(--ink-70)}.mission-asked-label--you{margin-top:12px}.mp-dot{fill:var(--ink)}.mp-barline{stroke:var(--rule);stroke-width:1}.mp-curve{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.mp-num{fill:var(--ink-50);font-family:var(--mono);font-size:11px}.mission-text .mission-picture{margin-top:8px;width:min(320px,100%)}.mission-picture>.gc-stave{align-self:stretch}.mission-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.mission-asked{margin:40px auto 0;max-width:640px;text-align:left}.mission-asked-label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);margin-bottom:8px}.perform-countin .mission-picture{margin:10px auto 0}.ph-phrase{margin:6px 0 0;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink-70)}.judge-hint{margin:8px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)}
