:root{color-scheme:light;--paper: #f6efe3;--paper-2: #fffbf4;--fill: rgba(60, 38, 20, .06);--fill-strong: rgba(60, 38, 20, .1);--ink: #241a14;--ink-soft: #7d6d60;--rule: rgba(60, 38, 20, .12);--brand: #173f31;--brand-ink: #1f6049;--tint: var(--brand-ink);--streak: #e8552d;--wax: #e2452c;--moss: #2f8a3e;--staff: #241a14;--warn: #c27a12;--shadow: rgba(60, 38, 20, .07);--elev-1: 0 1px 2px rgba(60, 38, 20, .05), 0 6px 18px rgba(60, 38, 20, .06);--elev-2: 0 2px 6px rgba(60, 38, 20, .06), 0 18px 44px rgba(60, 38, 20, .12);--glass: rgba(255, 251, 244, .74);--glass-edge: rgba(255, 255, 255, .85);--u-ledger: var(--brand-ink);--u-intervals: #5f8f2a;--u-ear: #e2452c;--u-read: #2b47c4;--u-patterns: #e09b16;--u-rhythm: #d24d7c;--u-keys: #11798a;--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;--serif: "Fraunces", Georgia, serif;--display-weight: 800;--display-track: -.025em;--display-vars: "SOFT" 100, "WONK" 1, "opsz" 96;--r-sm: 14px;--r-md: 18px;--r-lg: 26px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.2, 1.4, .4, 1);--motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 220' fill='none' stroke='white' stroke-opacity='.16' stroke-width='2.5'%3E%3Cpath d='M0 70h360M0 92h360M0 114h360M0 136h360M0 158h360'/%3E%3Cg fill='white' fill-opacity='.16' stroke='none'%3E%3Cellipse cx='120' cy='147' rx='14' ry='10' transform='rotate(-22 120 147)'/%3E%3Cellipse cx='190' cy='114' rx='14' ry='10' transform='rotate(-22 190 114)'/%3E%3Cellipse cx='260' cy='81' rx='14' ry='10' transform='rotate(-22 260 81)'/%3E%3C/g%3E%3Cpath d='M133 143V70M203 110V37M273 77V4M133 70l140-66'/%3E%3C/svg%3E")}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper: #16110d;--paper-2: #231b16;--fill: rgba(255, 240, 225, .07);--fill-strong: rgba(255, 240, 225, .12);--ink: #f7efe4;--ink-soft: #b6a697;--rule: rgba(255, 240, 225, .1);--brand: #1a4637;--brand-ink: #6fd0a6;--streak: #ff7d52;--wax: #ff6a50;--moss: #6ccf6f;--staff: #f7efe4;--warn: #f0b04a;--shadow: rgba(0, 0, 0, .4);--elev-1: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 22px rgba(0, 0, 0, .28);--elev-2: 0 2px 8px rgba(0, 0, 0, .35), 0 22px 50px rgba(0, 0, 0, .5);--glass: rgba(40, 31, 25, .7);--glass-edge: rgba(255, 255, 255, .1);--u-intervals: #a5cf5c;--u-ear: #ff6a50;--u-read: #7f95ff;--u-patterns: #f5bd47;--u-rhythm: #f07aa5;--u-keys: #47bccc}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,.brand{font-family:var(--serif);font-weight:400}h2{font-weight:650;letter-spacing:-.015em}.time-num,.reveal,.landmark-label{font-family:var(--sans);font-weight:650}.shell{min-height:100vh;max-width:1120px;margin:0 auto;padding:20px 24px 64px}.topnav{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.brand{background:none;border:0;padding:0;font-size:1.9rem;letter-spacing:-.03em}.nav-links{display:flex;gap:4px}.nav-links button,.tabs button{background:none;border:0;padding:6px 10px;color:var(--ink-soft)}.nav-links button{display:inline-flex;align-items:center;gap:6px;font-size:1rem}.nav-links svg{width:18px;height:18px}.nav-links button.is-on,.tabs button.is-on{color:var(--ink);box-shadow:inset 0 -1px 0 var(--ink)}.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--ink-soft);margin:0}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.practice-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.practice-row .kicker{min-width:4.8rem}.paper,.modal-card{background:var(--paper-2);border:1px solid var(--rule);padding:18px 18px 20px}.paper.is-miss{border-color:var(--wax);box-shadow:inset 0 0 0 2px var(--wax);animation:miss-flash .85s ease}.paper.is-ok{border-color:var(--moss)}.verdict{text-align:center;font-family:var(--serif);font-size:2rem;letter-spacing:-.03em;margin:10px 0 2px;line-height:1.1}.verdict.is-no{color:var(--wax)}.verdict.is-ok{color:var(--moss)}.repair-line{text-align:center;color:var(--wax);font-weight:600;margin:10px 0 0}@keyframes miss-flash{0%{background:color-mix(in srgb,var(--wax) 28%,var(--paper-2))}to{background:var(--paper-2)}}@media(prefers-reduced-motion:reduce){.paper.is-miss,.letters button.is-wrong{animation:none}}.timer{height:4px;background:var(--rule);margin-bottom:8px}.timer i{height:4px;background:var(--wax);display:block;transform-origin:left center;animation:timer-run linear forwards}.timer i.is-paused{animation-play-state:paused}@keyframes timer-run{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.staff-svg{width:100%;height:auto;color:var(--staff);overflow:visible}.staff-line{stroke:var(--staff);stroke-width:1.15;opacity:.82}.clef,.accidental,.brace{fill:currentColor}.ledger{stroke:var(--staff);stroke-width:1.6}.ledger.is-hot{stroke:var(--wax);stroke-width:2.1}.ledger.ghost,.notehead.is-ghost{opacity:.28}.ledger-num,.landmark-label,.reveal{font-size:11px;fill:var(--ink-soft)}.column.is-ok .reveal{fill:var(--moss)}.column.is-bad .reveal{fill:var(--wax)}.reveal{font-size:15px}.brace{fill:none;stroke:currentColor;stroke-width:2}.stem,.beam,.flag,.tie,.rest{stroke:currentColor;fill:none;stroke-width:1.6}.beam{stroke-width:5;stroke-linecap:square}.beam.thin{stroke-width:3.5}.time-num{font-size:26px}.beat-dot{fill:var(--rule)}.beat-dot.is-on{fill:var(--wax)}.tuplet{font-size:14px;fill:currentColor}.letters{display:flex;justify-content:center;gap:8px;margin:12px 0 8px}.letters button{flex:0 1 58px;min-width:0;height:58px;font-family:var(--sans);font-size:1.45rem;background:var(--paper);border:1px solid var(--rule)}.letters button.is-right,.choices button.is-right{background:var(--moss);border-color:var(--moss);color:#f4fff8}.letters button.is-wrong,.choices button.is-wrong{background:var(--wax);border-color:var(--wax);color:#fff6f4;box-shadow:0 0 0 3px color-mix(in srgb,var(--wax) 45%,transparent)}.hint-line,.question,.score-line{text-align:center;color:var(--ink-soft);margin:8px 0 12px}.question{color:var(--ink);font-size:1.08rem;text-align:left}.piano{display:flex;overflow-x:auto;border:1px solid var(--rule);margin-top:8px;touch-action:manipulation}.key-slot{position:relative;flex:1 0 28px;display:flex}.white-key{flex:1;height:130px;background:#f6f1e4;border:0;border-right:1px solid var(--rule);display:flex;align-items:end;justify-content:center;padding-bottom:8px;font-size:.7rem;color:#5e564a}.white-key.is-c span{color:#1b1712;font-weight:600}.black-key{position:absolute;z-index:1;top:0;right:-10px;width:20px;height:82px;padding:0;border:0;border-radius:0 0 3px 3px;background:#1b1712}.white-key.is-mark,.black-key.is-mark{background:#8fc0a3}.white-key.is-wrong,.black-key.is-wrong{background:#df9690}.white-key:active{background:#e6dcc6}.black-key:active{background:#5e564a}.choices{display:grid;gap:8px}.choices.wrap{grid-template-columns:1fr 1fr}.choices button{text-align:left;background:var(--paper);border:1px solid var(--rule);padding:10px 12px;display:flex;gap:10px;align-items:center}.choices button>span{flex:1;min-width:0}.choices button:disabled{cursor:default;opacity:.55}.choices .staff-svg{max-width:220px}kbd{font-family:var(--sans);font-size:.68rem;border:1px solid currentColor;border-radius:3px;padding:0 4px;opacity:.55}.primary kbd{margin-left:6px}.primary,.next-btn{margin-top:14px;background:var(--ink);color:var(--paper);border:0;padding:10px 16px}.text-btn{background:none;border:0;padding:0;color:var(--wax);text-decoration:underline;text-underline-offset:3px}.toggles{display:grid;gap:8px;margin-bottom:14px;font-size:.92rem}.toggles label{display:flex;gap:8px;align-items:center;color:var(--ink-soft)}.method-list{color:var(--ink-soft);font-size:.95rem}.method-list{padding-left:1.1rem}.modal{position:fixed;inset:0;background:#1b171259;display:grid;place-items:center;padding:24px;z-index:40}.modal-card{max-width:420px}.modal-actions{display:flex;gap:8px;margin-top:16px}.modal-actions button{background:var(--paper);border:1px solid var(--rule);padding:8px 12px}.modal-actions .primary{margin-top:0;background:var(--ink);color:var(--paper)}.tap-panel{text-align:left}.notehead.is-hot{color:var(--wax)}.column.is-ok .notehead{color:var(--moss)}.column.is-bad .notehead{color:var(--wax)}.column.is-current .notehead{color:currentColor}.cursor{fill:var(--wax)}.rhythm-svg .is-ok .notehead{color:var(--moss)}.rhythm-svg .is-bad .notehead{color:var(--wax)}.rhythm-svg g{transition:color .12s ease-out,transform .16s var(--ease-spring, ease-out);transform-box:fill-box;transform-origin:50% 100%}.rhythm-svg .is-now{color:var(--wax);transform:translateY(-4px) scale(1.12)}.count-num{font-family:var(--sans);font-size:28px;font-weight:650;fill:var(--rule);transition:fill .12s ease-out}.count-num.is-on{fill:var(--brand-ink)}.bar-line{stroke:currentColor;stroke-width:1.4}@media(prefers-reduced-motion:reduce){.rhythm-svg .is-now{transform:none}}.modifiers{display:flex;justify-content:center;gap:6px;margin-top:10px}.modifiers button{min-width:58px;height:40px;font-family:var(--sans);font-size:1.5rem;background:var(--paper);border:1px solid var(--rule);display:inline-flex;gap:6px;align-items:center;justify-content:center}.modifiers button.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.letters.intervals{flex-wrap:wrap}.letters.intervals button{width:auto;min-width:64px;padding:0 10px;font-size:1.1rem}.tempo{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:.9rem;font-variant-numeric:tabular-nums}.tempo span{min-width:5.5em}.text-btn:disabled{opacity:.4;cursor:default}.tap-pad{display:grid;place-items:center;gap:2px;width:100%;min-height:120px;margin:6px 0 4px;font-family:var(--sans);font-size:1.6rem;background:var(--paper);border:1px dashed var(--rule);touch-action:manipulation;user-select:none;-webkit-user-select:none}.tap-pad small{font-family:var(--sans);font-size:.8rem;color:var(--ink-soft)}.tap-pad.is-live{border:2px solid var(--wax)}.tap-pad:active{background:color-mix(in srgb,var(--wax) 18%,var(--paper))}.score-line strong{font-family:var(--sans);font-size:1.5rem;color:var(--ink)}.unlock-line{margin:12px 0 0;padding:8px 12px;border-left:3px solid var(--moss);background:color-mix(in srgb,var(--moss) 12%,var(--paper-2))}.big-prompt{font-family:var(--serif);font-size:clamp(2rem,6vw,3rem);text-align:center;margin:18px 0;letter-spacing:-.03em}.verdict small{font-size:1rem;color:var(--ink-soft)}.hint-line.left{text-align:left}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:16px;top:8px;background:var(--ink);color:var(--paper);padding:6px 10px;z-index:10}:focus-visible{outline:2px solid var(--ink-soft);outline-offset:2px}.letters button:focus:not(:focus-visible),.choices button:focus:not(:focus-visible){outline:none}.workout-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:8px 12px;background:var(--paper-2);border:1px solid var(--rule);font-size:.9rem;color:var(--ink-soft)}.workout-bar button{background:var(--paper);border:1px solid var(--rule);padding:6px 12px}.workout-bar .primary{margin:0;background:var(--ink);border-color:var(--ink)}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;padding:0;margin:0;font-size:.82rem;color:var(--ink-soft)}.legend li{display:flex;align-items:center;gap:6px}.legend i{width:14px;height:10px;border-radius:50%;display:inline-block}.legend i.is-empty{border:1px solid var(--ink-soft)}.heat{margin:6px 0 12px}.heat-empty{fill:none;stroke:var(--ink-soft);stroke-width:1;opacity:.5}.heat-cell{stroke:var(--staff);stroke-width:.6}.calendar{display:grid;grid-template-rows:repeat(7,14px);grid-auto-flow:column;grid-auto-columns:14px;gap:3px;overflow-x:auto;padding-bottom:4px}.cal-day{border-radius:2px}.cal-day.is-empty{background:var(--paper);border:1px solid var(--rule)}.cal-day.is-future{visibility:hidden}.danger{color:var(--wax)!important}@media(max-width:820px){.letters{gap:5px}.letters button{height:48px}.shell{padding:14px 16px 48px}.choices.wrap{grid-template-columns:1fr}}.drill-calm{max-width:760px;margin:0 auto}.calm-head{margin:28px 0 10px}.calm-head h1{font-size:2rem;letter-spacing:-.03em;margin:4px 0 0}.calm-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px}.calm-bar .tabs{margin:0}.calm-panel{background:var(--paper-2);border:1px solid var(--rule);padding:14px 16px;margin-bottom:12px}.calm-paper{text-align:center}.calm-message{min-height:2.6rem}.calm-message .verdict{margin:6px 0 0;font-size:1.6rem}.calm-tip{color:var(--ink-soft);margin:4px auto 8px;max-width:34rem}.workout-bar-actions{display:flex;align-items:center;gap:8px}.workout-bar .close{border:0;background:none;font-size:1.3rem;line-height:1;padding:2px 6px;color:var(--ink-soft)}.calm-actions{display:flex;justify-content:center;gap:18px;margin-top:12px}.calm-actions .text-btn{font-size:.92rem}.calm-actions .primary{margin-top:0}.calm-paper .question{text-align:center;margin:14px 0 10px}.calm-paper .choices{max-width:520px;margin:0 auto;text-align:left}.calm-paper .choices.wrap{max-width:600px}.calm-paper .tap-panel{text-align:center}.path-home{max-width:640px;margin:0 auto;padding-top:24px}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.chip{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 8px;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2);font-size:.86rem;color:var(--ink-soft)}.chip-num{font-family:var(--sans);font-size:1.1rem;color:var(--wax);padding-left:4px}.chip .ring{display:block}.up-next{margin:18px 0 40px;padding:26px 26px 22px;border-radius:18px;background:var(--accent);color:#fffaf2;box-shadow:0 10px 30px var(--shadow)}.up-next .kicker{color:inherit;opacity:.8}.up-next h1{font-size:clamp(1.8rem,6vw,2.6rem);letter-spacing:-.03em;margin:6px 0 2px;line-height:1.05}.up-next-sub{margin:0;opacity:.85}.up-next-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:20px}.up-next .primary.big{margin:0;background:#fffaf2;color:#1b1712;font-weight:600;font-size:1.05rem;padding:12px 28px;border-radius:999px}.up-next .text-btn{color:inherit;opacity:.9}@media(prefers-color-scheme:dark){.up-next{color:#17140f}.up-next .primary.big{background:#17140f;color:#efe6d2}}.unit{margin-bottom:44px}.unit-head{padding-left:2px}.unit-head .kicker{color:var(--accent)}.unit-head h2{font-size:1.5rem;margin:2px 0;letter-spacing:-.02em}.unit-head p:not(.kicker){margin:0;color:var(--ink-soft);font-size:.95rem}.unit-bar{display:block;height:4px;max-width:220px;margin-top:10px;border-radius:2px;background:var(--rule);overflow:hidden}.unit-bar i{display:block;height:100%;background:var(--accent)}.path{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:18px}.path li{justify-self:center;display:flex;flex-direction:column;align-items:center;max-width:min(220px,60vw);transform:translate(calc(var(--x) * clamp(28px,9vw,72px)))}.node{position:relative;width:84px;height:84px;padding:0;border:0;background:none;display:grid;place-items:center;border-radius:50%}.node .ring{position:absolute;inset:0}.ring-track{stroke:var(--rule)}.ring-fill{stroke:var(--accent, var(--moss));transition:stroke-dashoffset .4s ease}.node-face{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:var(--sans);font-size:1.5rem;background:var(--paper-2);border:2px solid var(--rule);color:var(--ink);box-shadow:0 4px 0 var(--rule);transition:transform .12s ease}.node:not(:disabled):hover .node-face,.node:focus-visible .node-face{transform:translateY(-2px)}.node:not(:disabled):active .node-face{transform:translateY(2px);box-shadow:0 1px 0 var(--rule)}.node.is-done .node-face{background:var(--accent);border-color:var(--accent);color:var(--paper);box-shadow:0 4px color-mix(in srgb,var(--accent) 60%,var(--ink))}.node.is-current .node-face,.node.is-open .node-face{border-color:var(--accent);color:var(--accent)}.node.is-next .node-face{background:var(--accent);color:var(--paper);box-shadow:0 4px color-mix(in srgb,var(--accent) 60%,var(--ink)),0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent);animation:node-pulse 2.4s ease-in-out infinite}.node.is-locked{cursor:not-allowed}.node.is-locked .node-face{color:var(--ink-soft);opacity:.6;border-style:dashed;box-shadow:none}@keyframes node-pulse{50%{box-shadow:0 4px color-mix(in srgb,var(--accent) 60%,var(--ink)),0 0 0 12px color-mix(in srgb,var(--accent) 8%,transparent)}}@media(prefers-reduced-motion:reduce){.node.is-next .node-face{animation:none}}.bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);white-space:nowrap;padding:5px 12px;border-radius:8px;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:.82rem;font-weight:600;z-index:1}.bubble:after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--ink)}.node-label{margin-top:6px;max-width:200px;text-align:center;font-size:.88rem;color:var(--ink-soft);line-height:1.25}.path li:has(.is-next) .node-label,.path li:has(.is-current) .node-label{color:var(--ink);font-weight:600}.path li:has(.is-next){margin-top:30px}.card{background:var(--paper-2);border:1px solid var(--rule);border-radius:14px;padding:18px 20px;margin-bottom:16px}.card h2{font-size:1.2rem;margin:0 0 10px}.card h2:not(:first-child){margin-top:20px}.card .legend{margin-bottom:4px}.unit-rows{list-style:none;margin:0;padding:0;display:grid;gap:4px}.unit-rows button{width:100%;display:grid;grid-template-columns:1fr;gap:4px;text-align:left;padding:10px 12px;border:0;border-left:4px solid var(--accent);border-radius:6px;background:transparent}.unit-rows button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.unit-row-title{font-family:var(--sans);font-size:1.05rem}.unit-rows .unit-bar{max-width:none;margin-top:2px}.unit-row-sub{font-size:.85rem;color:var(--ink-soft)}.data-actions{display:flex;flex-wrap:wrap;gap:8px}.data-actions button{background:var(--paper);border:1px solid var(--rule);border-radius:999px;padding:8px 16px}.path .node-label strong{font-weight:600;color:var(--ink)}.progress-page .heat{margin:6px 0}.calm-message.reserve{min-height:7.2rem;display:flex;flex-direction:column;justify-content:flex-start}.drill-calm .calm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.options-btn{color:var(--ink-soft);text-decoration:none;font-size:.92rem;margin-bottom:6px}.options-btn.is-on{color:var(--ink);text-decoration:underline}.card-top{display:flex;align-items:center;gap:16px;margin-bottom:8px;min-height:1.6rem}.card-top>:first-child{flex:1}.card-hint .text-btn{font-size:.92rem}.progress-strip{display:flex;align-items:center;gap:12px}.progress-track{flex:1;height:10px;border-radius:999px;background:var(--rule);overflow:hidden}.progress-track i{display:block;height:100%;border-radius:999px;background:var(--moss);transition:width .3s ease}.progress-text{font-size:.88rem;font-weight:600;color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:4.5em;text-align:right}.step-jump{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.step-jump select{font:inherit;padding:4px 8px;border:1px solid var(--rule);background:var(--paper);color:var(--ink)}.ear-stage{display:grid;justify-items:center;gap:6px;padding:18px 0 6px}.play-btn{width:88px;height:88px;border-radius:50%;border:0;display:grid;place-items:center;background:var(--u-ear);color:var(--paper);box-shadow:0 5px color-mix(in srgb,var(--u-ear) 60%,var(--ink));transition:transform .1s ease}.play-btn:active{transform:translateY(3px);box-shadow:0 2px color-mix(in srgb,var(--u-ear) 60%,var(--ink))}.play-btn.is-first{animation:node-pulse 2.4s ease-in-out infinite;--accent: var(--u-ear)}.ear-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;max-width:620px;margin:0 auto}.ear-choices button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:10px}.ear-choices kbd{grid-row:1 / 3}.ear-choices strong{font-family:var(--sans);font-size:1.25rem}.ear-choices span{font-size:.8rem;color:var(--ink-soft)}.ear-choices.is-solo{grid-template-columns:minmax(160px,220px);justify-content:center}.ear-choices button.is-right{background:var(--moss);border-color:var(--moss);color:#f4fff8}.ear-choices button.is-wrong{background:var(--wax);border-color:var(--wax);color:#fff6f4}.ear-choices button.is-right span,.ear-choices button.is-wrong span{color:inherit}.calm-message.slot{height:3.2rem;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.calm-message.slot .verdict,.calm-message.slot .repair-line,.calm-message.slot .hint-line{margin:0;white-space:nowrap}.calm-message.slot .verdict{font-size:clamp(1.15rem,5vw,1.6rem)}.calm-tip.below{margin:14px auto 0}.workout-bar{min-height:52px}.slot-row{display:flex;align-items:center;justify-content:center;gap:14px;min-width:0}.slot-row .primary{margin:0;flex:none}.press-hint{color:var(--ink-soft);white-space:nowrap;font-size:.95rem}.press-hint strong{color:var(--ink);font-family:var(--sans);font-size:1.15rem}.welcome{max-width:36rem;margin:28px auto 40px}.welcome h1{margin:4px 0 8px}.welcome-sub{color:var(--ink-soft);margin:0 0 22px}.welcome-choices{display:grid;gap:12px;margin-bottom:18px}.welcome-choices button{display:grid;gap:4px;text-align:left;padding:18px 20px;border-radius:14px;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink)}.welcome-choices button:hover{border-color:var(--ink-soft)}.welcome-choices strong{font-family:var(--sans);font-size:1.3rem;letter-spacing:-.02em}.welcome-choices span{color:var(--ink-soft)}.primer-card{display:grid;gap:8px}.primer-picture{min-height:150px;display:flex;align-items:center;justify-content:center}.primer-picture>*{width:100%}.primer-body p{margin:0;font-size:1.05rem;line-height:1.5}.primer-piano .white-key span{font-family:var(--sans);font-size:.95rem}.welcome-dots{display:flex;justify-content:center;gap:6px;margin:16px 0 4px}.welcome-dots i{width:7px;height:7px;border-radius:50%;background:var(--rule)}.welcome-dots i.is-on{background:var(--ink)}.result-card{text-align:center;padding:12px 0 4px}.result-card>p{max-width:30rem;margin:0 auto 18px;color:var(--ink-soft)}.result-next{display:grid;gap:4px}.result-next strong{font-family:var(--sans);font-size:1.8rem;letter-spacing:-.03em;color:var(--ink)}.test-out{display:block;margin:4px auto 0;padding:2px 8px;border:0;background:none;color:var(--accent);font-size:.82rem;text-decoration:underline}@media(hover:none)and (pointer:coarse){kbd{display:none}}@media(hover:none)and (pointer:coarse){.shortcut-hint{visibility:hidden}}.celebrate{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:30;display:grid;gap:2px;min-width:min(320px,calc(100vw - 32px));padding:14px 20px;border-radius:14px;background:var(--moss);color:#f4fff8;box-shadow:0 12px 30px #0000002e;text-align:center;animation:celebrate-in .26s ease-out;cursor:pointer}.celebrate strong{font-family:var(--sans);font-size:1.35rem;letter-spacing:-.02em}@keyframes celebrate-in{0%{opacity:0;transform:translate(-50%,12px)}}@media(prefers-reduced-motion:reduce){.celebrate{animation:none}}.slot-row .verdict{font-size:clamp(1rem,4.2vw,1.5rem)}@media(max-width:820px){.shell{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.topnav{padding-bottom:12px}.nav-links{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(2,1fr);gap:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--rule)}.nav-links button{flex-direction:column;gap:3px;min-height:52px;padding:4px 0;font-size:.74rem;letter-spacing:.01em}.nav-links svg{width:24px;height:24px}.nav-links button.is-on{box-shadow:none;color:var(--wax)}.celebrate{bottom:calc(84px + env(safe-area-inset-bottom))}}.today-more{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:32px}.today-more button,.skill-card{display:grid;gap:4px;align-content:start;text-align:left;padding:18px 20px;border-radius:14px;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink)}.today-more button:hover,.skill-card:hover{border-color:var(--ink-soft)}.today-more strong,.skill-card strong{font-family:var(--sans);font-size:1.25rem;letter-spacing:-.02em}.today-more small{color:var(--ink-soft)}.practice-head{margin:8px 0 18px}.practice-head h1{margin:4px 0 6px}.practice-head p:last-child{color:var(--ink-soft);margin:0;max-width:34rem}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:32px}.skill-card{border-left:4px solid var(--accent)}.skill-what{color:var(--ink-soft);font-size:.92rem}.skill-level{margin-top:6px;font-size:.85rem;font-weight:600;color:var(--accent)}.skill-level em{font-style:normal;color:var(--wax)}.stuck{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:12px;width:min(560px,calc(100vw - 32px));padding:12px 14px 12px 18px;border-radius:14px;background:var(--ink);color:var(--paper);box-shadow:0 12px 30px #0003}.stuck span{flex:1;font-size:.92rem}.stuck .primary{margin:0;background:var(--paper);color:var(--ink)}.stuck .close{background:none;border:0;color:inherit;font-size:1.3rem}@media(max-width:820px){.stuck{bottom:calc(84px + env(safe-area-inset-bottom))}}.modal-card.is-celebration{text-align:center}.modal-card.is-celebration .modal-actions{justify-content:center}.celebrate-badge{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:var(--moss);color:#f4fff8;font-size:2rem;animation:badge-pop .42s cubic-bezier(.2,1.4,.4,1)}@keyframes badge-pop{0%{transform:scale(.4);opacity:0}}.celebrate-notes{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.celebrate-notes span{padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--moss) 15%,var(--paper-2));color:var(--moss);font-family:var(--sans);font-weight:600}@media(prefers-reduced-motion:reduce){.celebrate-badge{animation:none}}.calm-head-tools .options-btn{margin-bottom:0}.drill-calm .calm-head:has(.calm-head-tools){flex-wrap:wrap;row-gap:6px}.drill-calm .calm-head:has(.calm-head-tools)>div:first-child{flex:1 1 15rem}.calm-head-tools{margin-left:auto;display:flex;align-items:center;gap:14px;margin-bottom:4px}.mic-toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--rule);border-radius:999px;padding:4px 11px;color:var(--ink-soft);font-size:.86rem;white-space:nowrap}.mic-toggle:hover{color:var(--ink);border-color:var(--ink-soft)}.mic-toggle.is-on{color:var(--moss);border-color:var(--moss);min-width:9.5rem}.mic-toggle.is-denied{color:var(--wax)}.mic-level{width:34px;height:4px;border-radius:2px;background:var(--rule);overflow:hidden;margin-left:auto}.mic-level span{display:block;height:100%;background:var(--moss);transform-origin:left;transition:transform 60ms linear}.paper,.calm-panel{border-radius:var(--r-lg)}.calm-paper{box-shadow:0 1px 0 var(--rule),0 14px 34px var(--shadow)}.modal-card{border-radius:var(--r-lg)}.primary,.next-btn{border-radius:999px;font-weight:600;transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out),opacity .12s}.letters button,.choices button,.ear-choices button{border:0;border-radius:var(--r-sm);background:var(--fill);box-shadow:none;font-weight:600;transition:transform .14s var(--ease-out),background-color .16s,color .16s}@media(hover:hover){.letters button:not(:disabled):not(.is-right):not(.is-wrong):hover,.choices button:not(:disabled):not(.is-right):not(.is-wrong):hover,.ear-choices button:not(:disabled):not(.is-right):not(.is-wrong):hover{background:var(--fill-strong)}.primary:not(:disabled):hover,.next-btn:not(:disabled):hover{box-shadow:0 6px 18px var(--shadow)}}.letters button:not(:disabled):active,.choices button:not(:disabled):active,.ear-choices button:not(:disabled):active{transform:scale(.95)}.primary:not(:disabled):active,.next-btn:not(:disabled):active{transform:scale(.97)}.letters button.is-right,.choices button.is-right,.ear-choices button.is-right{background:var(--moss);color:#fff;animation:answer-pop .32s var(--ease-spring)}.letters button.is-wrong,.choices button.is-wrong,.ear-choices button.is-wrong{background:var(--wax);color:#fff;box-shadow:none;animation:answer-shake .32s ease}@keyframes answer-pop{40%{transform:scale(1.06)}}@keyframes answer-shake{20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid transparent;border-radius:999px;background:none;color:var(--ink-soft);transition:background-color .12s,color .12s}.icon-btn:focus:not(:focus-visible){outline:none}.icon-btn:hover,.icon-btn.is-on{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.calm-head-tools .options-btn{margin:0}.up-next .text-btn{color:inherit;opacity:.85;font-size:.92rem}.focus-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;margin:0 -24px;padding:12px 24px;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.focus-exit{flex:none;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2);color:var(--ink-soft);transition:color .12s,border-color .12s,transform .12s var(--ease-out)}.focus-exit:hover{color:var(--ink);border-color:var(--ink-soft)}.focus-exit:active{transform:scale(.94)}.focus-session{flex:1;min-width:0;display:grid;gap:4px}.focus-spacer{flex:1}.focus-steps{list-style:none;margin:0;padding:0;display:flex;gap:5px}.focus-steps li{flex:1}.focus-steps button{display:block;width:100%;height:10px;padding:0;border:0;border-radius:999px;background:var(--rule);overflow:hidden}.focus-steps li.is-here button{box-shadow:0 0 0 2px color-mix(in srgb,var(--moss) 35%,transparent)}.focus-steps i{display:block;height:100%;border-radius:inherit;background:var(--moss);transform:scaleX(var(--fill));transform-origin:left center;transition:transform .4s var(--ease-out)}.focus-actions{flex:none;display:flex;align-items:center;gap:12px}.focus-actions .primary{margin:0;padding:8px 16px}.focus-actions .text-btn{font-size:.92rem}.shell.is-focus{padding-top:0}.shell.is-focus .calm-head{margin-top:14px}@media(max-width:820px){.focus-bar{margin:0 -16px;padding:10px 16px;gap:10px}.shell.is-focus{padding-bottom:calc(48px + env(safe-area-inset-bottom))}.focus-actions .primary{padding:7px 12px;font-size:.9rem}}@media(min-width:821px){.shell{padding-top:0}.topnav{position:sticky;top:0;z-index:20;margin:0 -24px;padding:18px 24px 14px;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}@media(min-width:821px){.topnav{view-transition-name:topnav}}::view-transition-old(root){animation:page-out .14s ease-in both}::view-transition-new(root){animation:page-in .22s var(--ease-out) both}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.letters button,.choices button,.ear-choices button,.primary,.next-btn,.focus-steps i{transition:none;animation:none!important}.letters button:active,.choices button:active,.ear-choices button:active,.primary:active{transform:none}}.calm-paper{position:relative}.combo{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:3px 12px;border-radius:999px;background:var(--moss);color:#f4fff8;font-size:.8rem;font-weight:600;white-space:nowrap;animation:combo-pop .36s var(--ease-spring)}@keyframes combo-pop{0%{transform:translate(-50%,-50%) scale(.6);opacity:0}}.step-sheet{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:26;width:min(460px,calc(100vw - 32px));padding:18px 20px 16px;border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--paper-2);box-shadow:0 18px 44px #00000038;animation:sheet-up .28s var(--ease-out)}.step-sheet.is-last{text-align:center}.step-sheet h2{font-size:1.5rem;letter-spacing:-.02em;margin:2px 0 4px}.step-sheet-line{margin:0;color:var(--ink-soft)}.step-sheet-actions{display:flex;align-items:center;gap:18px;margin-top:14px}.step-sheet.is-last .step-sheet-actions{justify-content:center}.step-sheet-actions .primary{margin:0}@keyframes sheet-up{0%{opacity:0;transform:translate(-50%,24px)}}.session-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.session-stats div{display:flex;flex-direction:column-reverse;gap:2px;padding:10px 6px;border-radius:var(--r-md);background:color-mix(in srgb,currentColor 7%,transparent);text-align:center}.session-stats dt{font-size:.74rem;opacity:.75}.session-stats dd{margin:0;font-family:var(--serif);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.1}.up-next .session-stats{margin:16px 0 12px}.chip.is-up .chip-num{display:inline-block;animation:badge-pop .52s var(--ease-spring)}.chip.is-up{border-color:var(--wax)}.week-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}.week-tile{display:flex;flex-direction:column;padding:12px 14px;border-radius:var(--r-md);background:var(--paper)}.week-value{font-family:var(--serif);font-size:2rem;font-weight:600;letter-spacing:-.03em;line-height:1.05}.week-label{font-weight:600;font-size:.9rem}.week-sub{font-size:.8rem;color:var(--ink-soft)}.trend{display:flex;gap:8px;height:120px}.trend-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:.7rem;color:var(--ink-soft);text-align:right;min-width:2.2rem}.trend-axis span{line-height:1}.trend-bars{flex:1;list-style:none;margin:0;padding:0;display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--rule);background:linear-gradient(to bottom,var(--rule) 1px,transparent 1px) 0 0 / 100% 50%}.trend-bars li{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;cursor:default}.trend-bars i{display:block;width:min(100%,18px);border-radius:4px 4px 0 0;background:var(--moss);transition:opacity .12s}.trend-bars li:hover i{opacity:.75}.trend-bars i.is-empty{width:4px;height:4px;border-radius:50%;margin-bottom:4px;background:var(--rule)}@media(max-width:820px){.up-next .primary.big{width:100%;padding:14px 28px}.up-next-actions{justify-content:center}.session-stats{grid-template-columns:repeat(2,1fr)}.week-tiles{grid-template-columns:1fr}.week-tile{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:baseline}.week-value{grid-row:span 2;min-width:3.5rem}}@media(prefers-reduced-motion:reduce){.combo,.step-sheet,.chip.is-up .chip-num{animation:none}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01";letter-spacing:-.006em}.kicker{text-transform:none;letter-spacing:0;font-size:.86rem;font-weight:600;color:var(--ink-soft)}.calm-head h1,.practice-head h1{font-size:clamp(1.9rem,6vw,2.5rem);line-height:1.05;margin:2px 0 0}.practice-head p:last-child,.unit-head p:not(.kicker){font-size:1rem}.verdict,.big-prompt,.session-stats dd,.week-value{font-weight:400;letter-spacing:-.01em}.calm-message .verdict{font-size:1.9rem}.slot-row .verdict{font-size:clamp(1.4rem,5vw,1.9rem)}.session-stats dd{font-size:1.9rem}.week-value{font-family:var(--serif);font-size:2.5rem}kbd{border:0;border-radius:5px;padding:1px 5px;background:var(--fill-strong);font-weight:600;opacity:.85}.primary kbd{background:#ffffff2e}.paper,.card,.today-more button,.skill-card,.welcome-choices button,.calm-panel{border:0;border-radius:var(--r-lg);background:var(--paper-2);box-shadow:var(--elev-1)}@media(prefers-color-scheme:dark){.paper,.card,.today-more button,.skill-card,.welcome-choices button{box-shadow:inset 0 0 0 1px var(--rule)}}.calm-paper{padding:20px 20px 22px;transition:box-shadow .2s}.paper.is-ok{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--moss) 70%,transparent),var(--elev-1)}.paper.is-miss{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--wax) 75%,transparent),var(--elev-1)}@keyframes miss-flash{0%{background:color-mix(in srgb,var(--wax) 14%,var(--paper-2))}to{background:var(--paper-2)}}.card{padding:20px 22px}.card h2{font-size:1.12rem}.today-more button,.skill-card,.welcome-choices button,.unit-rows button{transition:transform .16s var(--ease-out),box-shadow .16s var(--ease-out),background-color .16s}@media(hover:hover){.today-more button:hover,.skill-card:hover,.welcome-choices button:hover{border-color:transparent;transform:translateY(-2px);box-shadow:var(--elev-2)}}.today-more button:active,.skill-card:active,.welcome-choices button:active{transform:scale(.98)}.today-more strong,.skill-card strong,.welcome-choices strong{font-size:1.12rem;font-weight:650;letter-spacing:-.015em}.skill-card{position:relative;padding-top:52px}.skill-card:before{content:"";position:absolute;top:18px;left:20px;width:24px;height:24px;border-radius:8px;background:var(--accent)}.skill-level em{color:var(--streak)}.unit-rows{gap:2px}.unit-rows button{border-left:0;border-radius:var(--r-sm);padding:12px 14px 12px 34px;position:relative}.unit-rows button:before{content:"";position:absolute;left:14px;top:17px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.unit-rows button:hover{background:var(--fill)}.unit-row-title{font-weight:600}.unit-bar,.progress-track{background:var(--fill-strong)}.progress-track{height:6px}.primary,.next-btn{min-height:44px;padding:11px 22px;background:var(--ink);color:var(--paper-2);font-weight:600;letter-spacing:-.01em}.text-btn{color:var(--tint);text-decoration:none;font-weight:600;border-radius:8px}@media(hover:hover){.text-btn:hover{opacity:.75}}.text-btn.danger,.danger{color:var(--wax)!important}.data-actions button,.modal-actions button:not(.primary),.tap-panel button:not(.primary):not(.tap-pad),.calm-actions button:not(.primary):not(.text-btn){min-height:40px;padding:9px 18px;border:0;border-radius:999px;background:var(--fill);font-weight:600}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--fill)}.tabs button{padding:6px 14px;border-radius:9px;color:var(--ink-soft);font-weight:600;font-size:.92rem;transition:background-color .16s,color .16s,box-shadow .16s}.tabs button.is-on{color:var(--ink);background:var(--paper-2);box-shadow:0 1px 3px #0000001a,0 1px 1px #0000000a}@media(prefers-color-scheme:dark){.tabs button.is-on{background:var(--fill-strong)}}.calm-bar .tabs{margin-bottom:0}.letters{gap:8px}.letters button{font-size:1.35rem;font-weight:600;letter-spacing:-.01em}.choices button{padding:13px 14px;min-height:50px}.choices button kbd,.ear-choices kbd{background:var(--paper-2);color:var(--ink-soft)}.choices button.is-right kbd,.choices button.is-wrong kbd,.ear-choices button.is-right kbd,.ear-choices button.is-wrong kbd{background:#fff3;color:inherit}.ear-choices button{padding:12px 14px}.ear-choices strong{font-weight:650;font-size:1.2rem}.chip{border:0;background:var(--paper-2);box-shadow:var(--elev-1);padding:5px 13px 5px 9px;font-size:.88rem;font-weight:500}.chip-num{font-weight:700;font-size:1rem;color:var(--streak)}.chip.is-up{box-shadow:0 0 0 2px color-mix(in srgb,var(--streak) 45%,transparent),var(--elev-1)}.focus-bar,.options-sheet,.step-sheet,.celebrate,.stuck{background:var(--glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 0 0 1px var(--glass-edge),var(--elev-2)}.focus-bar{box-shadow:none;background:color-mix(in srgb,var(--paper) 72%,transparent)}.focus-exit{border:0;background:var(--paper-2);box-shadow:var(--elev-1);color:var(--ink)}.focus-steps button{height:8px;background:var(--fill-strong)}.focus-steps li.is-here button{box-shadow:0 0 0 2px color-mix(in srgb,var(--moss) 30%,transparent)}.brand{font-size:2.1rem;letter-spacing:-.01em}@media(min-width:821px){.topnav{align-items:center;border-bottom:0;background:color-mix(in srgb,var(--paper) 72%,transparent);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%)}.nav-links{padding:4px;border-radius:999px;background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge),var(--elev-1)}.nav-links button{padding:7px 14px;border-radius:999px;font-weight:600;font-size:.92rem;transition:background-color .16s,color .16s}.nav-links button.is-on{box-shadow:none;background:var(--ink);color:var(--paper-2)}.nav-links button:not(.is-on):hover{color:var(--ink);background:var(--fill)}}@media(max-width:820px){.topnav{border-bottom:0}.nav-links{left:14px;right:14px;bottom:calc(10px + env(safe-area-inset-bottom));padding:6px;border:0;border-radius:30px;background:var(--glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 0 0 1px var(--glass-edge),var(--elev-2)}.nav-links button{min-height:50px;border-radius:24px;font-weight:600;font-size:.7rem}.nav-links button.is-on{color:var(--tint);background:color-mix(in srgb,var(--tint) 12%,transparent)}.shell{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.celebrate{bottom:auto}}.up-next{--hero: var(--brand);border-radius:30px;padding:26px 24px 22px;background:var(--motif) right -24px top -6px / 260px auto no-repeat,var(--hero);color:#fff;box-shadow:var(--elev-2)}@media(prefers-color-scheme:dark){.up-next{box-shadow:none}.node.is-done .node-face,.node.is-next .node-face{color:#111}}.up-next h1{font-size:clamp(1.9rem,6vw,2.5rem)}.up-next .kicker{color:inherit;opacity:.85}.up-next .primary.big{background:#fff;color:#111;box-shadow:0 6px 18px #0000002e}@media(prefers-color-scheme:dark){.up-next .primary.big{background:#fff;color:#111}}.up-next .text-btn{color:#fff}.up-next .session-stats div{background:#ffffff24}.node-face{border:0;background:var(--paper-2);box-shadow:inset 0 0 0 2px var(--rule),var(--elev-1);font-weight:650;font-size:1.35rem;transition:transform .16s var(--ease-out),box-shadow .16s}.node:not(:disabled):active .node-face{transform:scale(.94);box-shadow:inset 0 0 0 2px var(--rule)}.node.is-done .node-face{background:var(--accent);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent)}.node.is-current .node-face,.node.is-open .node-face{box-shadow:inset 0 0 0 2.5px var(--accent),var(--elev-1)}.node.is-next .node-face{background:var(--accent);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 40%,transparent),0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent)}@keyframes node-pulse{50%{box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 40%,transparent),0 0 0 12px color-mix(in srgb,var(--accent) 6%,transparent)}}.node.is-locked .node-face{background:var(--fill);box-shadow:none;border:0}.bubble{border-radius:999px;padding:5px 12px}.bubble:after{display:none}.step-sheet{border:0;border-radius:28px;padding:20px 22px 18px}.step-sheet h2{font-family:var(--serif);font-weight:400;font-size:1.9rem;letter-spacing:-.01em}.stuck{color:var(--ink);border-radius:22px}.stuck .primary{background:var(--ink);color:var(--paper-2)}.modal{background:#0a0a0c52;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-card{border:0;border-radius:28px;padding:24px;box-shadow:var(--elev-2)}.modal-card h2{font-family:var(--serif);font-weight:400;font-size:1.9rem;letter-spacing:-.01em;margin:2px 0 8px}.celebrate-badge{background:var(--moss);box-shadow:0 10px 24px color-mix(in srgb,var(--moss) 40%,transparent)}.celebrate{top:calc(12px + env(safe-area-inset-top));bottom:auto;width:max-content;min-width:min(320px,calc(100vw - 28px));max-width:min(420px,calc(100vw - 28px));padding:12px 18px 12px 60px;border-radius:20px;background:var(--paper-2);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 0 0 1px var(--rule),0 14px 34px #241a1429;color:var(--ink);text-align:left;animation:notify-in .42s var(--ease-spring)}.celebrate:before{content:"✓";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--moss);color:#fff;font-weight:700}.celebrate strong{font-size:1rem;font-weight:650;letter-spacing:-.01em}.celebrate span{font-size:.9rem;color:var(--ink-soft)}@keyframes notify-in{0%{opacity:0;transform:translate(-50%,-24px) scale(.96)}}.calm-head-tools{position:relative}.options-backdrop{position:fixed;inset:0;z-index:29}.options-sheet{position:absolute;top:calc(100% + 10px);right:0;z-index:30;width:min(380px,calc(100vw - 32px));padding:16px 18px 18px;border-radius:24px;text-align:left;animation:pop-in .22s var(--ease-out);transform-origin:top right}.options-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.options-sheet-head h2{margin:0;font-size:1.05rem}.options-done{border:0;background:none;padding:4px 2px;color:var(--tint);font-weight:650}.options-sheet .toggles{gap:14px;margin:0}.options-sheet .practice-row{display:grid;gap:6px}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}}@media(max-width:820px){.options-backdrop{background:#0a0a0c4d;animation:fade-in .2s ease}.options-sheet{position:fixed;top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:75dvh;overflow-y:auto;padding:10px 20px 22px;border-radius:32px;animation:sheet-rise .32s var(--ease-out)}.options-sheet:before{content:"";display:block;width:36px;height:5px;margin:0 auto 12px;border-radius:3px;background:var(--fill-strong)}}@keyframes sheet-rise{0%{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}@media(max-width:820px){.shell.is-focus main{min-height:calc(100dvh - 112px - env(safe-area-inset-bottom));display:flex;flex-direction:column}.shell.is-focus .drill-calm{flex:1;width:100%;display:flex;flex-direction:column}.shell.is-focus .calm-paper{flex:1;display:flex;flex-direction:column}.shell.is-focus .calm-paper>.card-top+*,.shell.is-focus .calm-paper>:nth-child(1 of.calm-message,.letters,.choices,.ear-choices,.tap-panel){margin-top:auto}.shell.is-focus .calm-paper>:is(.choices,.ear-choices,.tap-panel){width:100%}.choices.short{grid-template-columns:1fr 1fr}.letters button{height:56px;border-radius:12px}}@media(prefers-reduced-motion:reduce){.options-sheet,.options-backdrop,.celebrate{animation:none}}h1,.brand,.verdict,.big-prompt,.session-stats dd,.week-value,.step-sheet h2,.modal-card h2{font-weight:var(--display-weight);letter-spacing:var(--display-track);font-variation-settings:var(--display-vars)}.style-card.is-soon,.skill-card.is-locked{cursor:default;opacity:.55;box-shadow:none;background:var(--fill)}.style-card.is-soon:before,.skill-card.is-locked:before{background:var(--ink-soft)}.style-card.is-soon .skill-level,.skill-card.is-locked .skill-level{color:var(--ink-soft)}.style-kit .calm-head{margin-top:14px}.back-link{font-size:.95rem;margin-bottom:2px}.style-hero h2{font-family:var(--serif);font-weight:var(--display-weight);font-variation-settings:var(--display-vars);letter-spacing:var(--display-track);font-size:1.6rem;margin:4px 0 12px}.style-feel{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}.style-feel li{padding:10px 14px;border-radius:16px;background:#ffffff1f}.style-paper{text-align:center}.style-lead{margin:0 auto 12px;max-width:34rem;color:var(--ink-soft)}.style-lead strong{color:var(--ink)}.style-options{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:14px}.style-options .hint-line{margin:0;font-size:.88rem}.lick-tabs{overflow-x:auto;scrollbar-width:none}.lick-tabs .tabs{flex-wrap:nowrap}.lick-tabs .tabs button{white-space:nowrap}.chart-grid{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.chart-grid li{position:relative;display:grid;place-items:center;min-height:50px;padding:6px 4px;border-radius:12px;background:var(--fill);transition:background-color .12s,color .12s,transform .16s var(--ease-out)}.chart-bar{position:absolute;top:4px;left:8px;font-size:.68rem;font-weight:600;color:var(--ink-soft)}.chart-chord{font-weight:700;font-size:1.02rem;letter-spacing:-.01em}.chart-grid li.is-now{background:var(--brand);color:#fff;transform:scale(1.04)}.chart-grid li.is-now .chart-bar{color:inherit;opacity:.75}.chart-grid li.is-ok{background:color-mix(in srgb,var(--moss) 22%,var(--paper-2));color:var(--moss)}.chart-grid li.is-bad{background:color-mix(in srgb,var(--wax) 18%,var(--paper-2));color:var(--wax)}.chart-grid li.is-now.is-ok,.chart-grid li.is-now.is-bad{color:#fff}.chart-grid li.is-now.is-ok{background:var(--moss)}.chart-grid li.is-now.is-bad{background:var(--wax)}.chord-pads{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 4px}.chord-pads button{position:relative;display:grid;gap:2px;place-items:center;min-height:92px;border:0;border-radius:var(--r-md);background:var(--fill);transition:transform .12s var(--ease-out),background-color .14s,color .14s;touch-action:manipulation}.chord-pads button:active{transform:scale(.95)}.chord-pads button.is-on{background:var(--ink);color:var(--paper-2)}.chord-pads kbd{position:absolute;top:8px;left:10px}.chord-pads strong{font-family:var(--serif);font-weight:var(--display-weight);font-variation-settings:var(--display-vars);font-size:2.2rem;line-height:1}.chord-pads small{font-weight:600;opacity:.7}.note-pad{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:8px 0}.note-pad button{min-height:64px;border:0;border-radius:14px;background:var(--fill);font-weight:700;font-size:1.05rem;transition:transform .1s var(--ease-out),background-color .14s,box-shadow .14s;touch-action:manipulation;user-select:none;-webkit-user-select:none}.note-pad button sup{font-size:.6em;opacity:.6;margin-left:1px}.note-pad button.is-tone{background:color-mix(in srgb,var(--brand-ink) 18%,var(--paper-2));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand-ink) 55%,transparent);color:var(--brand-ink)}.note-pad button.is-lit,.note-pad button:active{transform:scale(.94);background:var(--ink);color:var(--paper-2);box-shadow:none}.switches{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:4px 0 8px;text-align:left}.switch{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:0;border-radius:var(--r-sm);background:var(--fill);text-align:left;transition:background-color .16s}.switch-track{flex:none;position:relative;width:42px;height:26px;margin-top:1px;border-radius:999px;background:var(--fill-strong);transition:background-color .18s}.switch-track i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .22s var(--ease-spring)}.switch.is-on .switch-track{background:var(--moss)}.switch.is-on .switch-track i{transform:translate(16px)}.switch-text{display:grid;gap:2px}.switch-text strong{font-weight:650}.switch-text small{color:var(--ink-soft);font-size:.82rem;line-height:1.35}.tune-line{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.tune-line li{padding:3px 9px;border-radius:8px;background:var(--fill);font-size:.85rem;font-weight:600;white-space:nowrap}.tune-line li.is-now{background:var(--brand);color:#fff}.step-names{display:flex;justify-content:space-around;margin:-4px 0 8px;padding:0 8% 0 18%;font-size:.78rem;font-weight:600;color:var(--ink-soft)}@media(max-width:820px){.note-pad button{min-height:58px}.chord-pads button{min-height:84px}.style-paper .chart-grid li{min-height:44px}}.calm-actions{flex-wrap:wrap;align-items:center}.calm-actions .primary{white-space:nowrap}.up-next.today{margin-bottom:22px}.today-progress{display:flex;align-items:center;gap:12px}.today-progress ol{flex:1;display:flex;gap:5px;margin:0;padding:0;list-style:none}.today-progress li{flex:1;height:6px;border-radius:999px;background:#fff3;overflow:hidden}.today-progress li.is-here{box-shadow:0 0 0 2px #ffffff4d}.today-progress i{display:block;height:100%;border-radius:inherit;background:#fff;transform:scaleX(var(--fill));transform-origin:left center}.today-progress span{flex:none;font-size:.85rem;font-weight:600;opacity:.85}.today-kind{margin:26px 0 4px;font-size:.92rem;font-weight:600;opacity:.8}.up-next.today h1{margin:0 0 6px}.up-next.today .session-stats{margin-top:18px}.up-next.today .up-next-actions{margin-top:24px}.plan{margin:0 0 28px}.plan h2{margin:0 0 8px 4px;font-size:1.05rem}.plan-list{list-style:none;margin:0;padding:6px;border-radius:var(--r-lg);background:var(--paper-2);box-shadow:var(--elev-1)}@media(prefers-color-scheme:dark){.plan-list{box-shadow:inset 0 0 0 1px var(--rule)}}.plan-list li+li{border-top:1px solid var(--rule);margin-left:52px}.plan-list li+li button{margin-left:-52px;width:calc(100% + 52px)}.plan-list button{width:100%;display:flex;align-items:center;gap:14px;padding:10px 12px;border:0;border-radius:16px;background:none;text-align:left;transition:background-color .14s}@media(hover:hover){.plan-list button:hover{background:var(--fill)}}.plan-mark{position:relative;flex:none;width:28px;height:28px;display:grid;place-items:center;font-size:.8rem;font-weight:700;color:var(--ink-soft)}.plan-mark .ring{position:absolute;inset:0}.plan-text{flex:1;display:grid;min-width:0}.plan-text strong{font-size:.98rem;font-weight:600}.plan-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;color:var(--ink-soft)}.plan-count{flex:none;font-size:.84rem;font-weight:600;color:var(--ink-soft)}.plan-list li.is-next .plan-mark{color:var(--accent)}.plan-list li.is-next .plan-text strong:after{content:"Next";margin-left:8px;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.72rem;font-weight:700;vertical-align:2px}.plan-list li.is-done .plan-mark{color:var(--accent)}.plan-list li.is-done .plan-text{opacity:.5}.plan-end{margin:12px 0 0 6px;font-size:.9rem;color:var(--ink-soft)}.up-next.today{background-position:right -36px top 52px,0 0;background-size:230px auto,auto}.today-check{display:grid;place-items:center;width:44px;height:44px;margin-bottom:18px;border-radius:999px;background:#fff;color:var(--brand);font-size:1.35rem;font-weight:800;animation:today-pop .42s var(--ease-spring, cubic-bezier(.34, 1.56, .64, 1)) both}@keyframes today-pop{0%{transform:scale(.4);opacity:0}}.today-done .up-next-sub{font-size:1.05rem}.today-or{margin:0 0 28px 4px;color:var(--ink-soft);font-size:.95rem}.today-or .text-btn{padding:0;font-size:inherit;color:var(--brand-ink);font-weight:600}@media(prefers-reduced-motion:reduce){.today-check{animation:none}}.style-kit .paper.style-hero{margin:0 0 8px;text-align:left}.style-kit .paper.style-hero .style-feel li{background:var(--fill)}.style-kit .paper.style-hero>.text-btn{padding:0;font-weight:600;color:var(--brand-ink)}.step-brief{margin:0 0 14px;padding:14px 16px;border-radius:var(--r-md);background:var(--fill)}.step-brief p{margin:0}.step-brief .step-goal{margin-top:8px;font-weight:600}.step-goal span{display:inline-block;margin-right:6px;padding:2px 9px;border-radius:999px;background:var(--paper-2);color:var(--ink-soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.step-brief.is-passed .step-goal span{background:var(--moss);color:#fff}.step-passed{position:sticky;bottom:12px;z-index:5;margin:16px 0 0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px;border-radius:var(--r-lg);background:var(--brand);color:#fff;box-shadow:var(--elev-2);animation:step-up .36s var(--ease-spring) both}.step-passed .primary{flex:none;background:#fff;color:var(--brand)}@keyframes step-up{0%{transform:translateY(16px);opacity:0}}.free-play{margin:34px 0 24px}.free-play h2{font-family:var(--serif);font-weight:var(--display-weight);font-variation-settings:var(--display-vars);letter-spacing:var(--display-track);font-size:1.5rem;margin:2px 0 4px}.free-play-sub{margin:0 0 14px;color:var(--ink-soft)}.shape-list{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.shape-list button{padding:6px 12px;border:0;border-radius:999px;background:var(--fill);color:var(--ink-soft);font:inherit;font-weight:600}.shape-list .is-now button{background:var(--brand);color:#fff}.shape-list .is-done button{color:var(--moss)}.shape-now{margin:10px 0 4px;font-family:var(--serif);font-weight:var(--display-weight);font-variation-settings:var(--display-vars);font-size:2.6rem;letter-spacing:var(--display-track)}.call-answer{list-style:none;margin:8px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.call-answer li{padding:10px;border-radius:12px;background:var(--fill);font-weight:600;color:var(--ink-soft)}.call-answer li.is-now{background:var(--brand);color:#fff}.switch-heard{color:var(--moss);font-weight:600}@media(prefers-reduced-motion:reduce){.step-passed{animation:none}}.hand-label{margin:10px 0 4px;text-align:left;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.unit-head .unit-locked{display:flex;align-items:center;gap:6px;margin-top:6px;font-weight:600;color:var(--ink-soft)}.unit-locked svg{width:16px;height:16px}.lesson-points{display:grid;gap:10px;max-width:36rem;margin:0 auto 18px;text-align:left;font-size:1.02rem;line-height:1.5}.lesson-points p{margin:0}.lesson-examples{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0 0 18px}.lesson-example{display:grid;justify-items:center;gap:6px;padding:10px 8px 12px;border:0;border-radius:var(--r-md);background:var(--fill);color:inherit;font:inherit}button.lesson-example:active{background:var(--fill-strong)}.lesson-example svg{max-width:100%}.lesson-caption{font-weight:600;font-size:.92rem}.lesson-count{font-family:var(--sans);font-weight:700;letter-spacing:.04em;color:var(--brand-ink)}.lesson-hear{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.lesson-hear button{display:grid;gap:4px;padding:14px;border:0;border-radius:var(--r-md);background:var(--fill);color:inherit;font:inherit;text-align:left}.lesson-hear button:active{background:var(--fill-strong)}.lesson-hear span{font-size:.92rem}.lesson-hear small{color:var(--ink-soft)}.lesson-btn{font-weight:600;color:var(--brand-ink)}.cal-offer{margin:0 0 14px;padding:14px 16px;border-radius:var(--r-md);background:var(--fill);text-align:left}.cal-offer p{margin:0 0 10px}.cal-offer div{display:flex;gap:12px;align-items:center}.text-btn.inline{padding:0;font-size:inherit;font-weight:600}.harmony-credit,.harmony-song{margin:12px 0 0;color:var(--ink-soft);font-size:.9rem}.harmony-song{margin:0 0 8px}.harmony-song strong{color:var(--ink)}.harmony-hear-head{margin:18px 0 8px}.lesson-hear button.is-on{background:var(--brand);color:#fff}.lesson-hear button.is-on small{color:#ffffffbf}.harmony-roll{margin:4px 0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.harmony-roll svg{display:block;width:100%;height:auto}.roll-row{stroke:var(--rule);stroke-width:1}.roll-row.is-tonic{stroke:var(--fill-strong);stroke-width:3}.roll-bar{stroke:var(--ink-soft);stroke-opacity:.35;stroke-width:1}.roll-verse{fill:var(--fill)}.roll-chord{fill:var(--ink);font:700 15px var(--sans)}.roll-hit{fill:transparent;cursor:pointer}.roll-slot.is-sel .roll-hit{fill:var(--fill-strong)}.roll-slot.is-now .roll-hit{fill:color-mix(in srgb,var(--u-patterns) 22%,transparent)}.roll-tune{fill:var(--ink)}.roll-harm{fill:var(--brand-ink)}.roll-harm.is-ok{fill:var(--warn)}.roll-harm.is-bad{fill:var(--wax)}.roll-name{fill:var(--ink-soft);font:600 11px var(--sans);pointer-events:none}.roll-name.is-harm{fill:var(--brand-ink)}.roll-name.is-harm.is-ok{fill:var(--warn)}.roll-name.is-harm.is-bad{fill:var(--wax)}.roll-key{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 0;color:var(--ink-soft);font-size:.8rem}.roll-key span:before{content:"";display:inline-block;width:14px;height:7px;margin-right:6px;border-radius:3px;vertical-align:middle;background:var(--ink)}.roll-key .is-harm:before{background:var(--brand-ink)}.roll-key .is-ok:before{background:var(--warn)}.roll-key .is-bad:before{background:var(--wax)}.harmony-note{margin:0 0 12px;padding:12px 14px;border-radius:var(--r-md);background:var(--fill)}.harmony-note p{margin:0}.harmony-where{color:var(--ink-soft);font-size:.88rem}.harmony-where strong{color:var(--ink)}.harmony-verdict{margin-top:6px!important;min-height:1.5em}.harmony-verdict.is-good strong{color:var(--moss)}.harmony-verdict.is-ok strong{color:var(--warn)}.harmony-verdict.is-bad strong{color:var(--wax)}.harmony-options,.harmony-starts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.harmony-options button,.harmony-starts button{padding:7px 12px;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2);color:inherit;font:inherit;font-size:.9rem}.harmony-options button i{font-style:normal;color:var(--moss)}.harmony-options button.is-on{border-color:var(--brand-ink);box-shadow:inset 0 0 0 1px var(--brand-ink)}.harmony-options button:disabled{opacity:.45}.harmony-starts{margin:14px 0 0}.harmony-starts>span{color:var(--ink-soft);font-size:.88rem}.harmony-build .calm-actions{flex-wrap:wrap;align-items:center}.harmony-motion{margin-top:16px}.harmony-motion p{margin:0}.harmony-motion ul{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}.harmony-motion li{padding:3px 10px;border-radius:999px;background:var(--fill);font-size:.82rem}.harmony-checks{display:grid;gap:6px;margin:16px 0 0;padding:12px 14px;border-radius:var(--r-md);background:var(--fill);list-style:none}.harmony-checks li{color:var(--ink-soft)}.harmony-checks li.is-ok{color:var(--ink)}.harmony-checks li span{display:inline-block;width:1.2em;font-weight:700}.harmony-checks li.is-ok span{color:var(--moss)}.harmony-note,.harmony-motion,.harmony-checks,.harmony-starts{text-align:left}.lesson-meet{max-width:36rem;margin:0 auto 18px;text-align:left;font-size:1.02rem;line-height:1.5}.lesson-meet h2{margin:2px 0 8px}.lesson-meet p{margin:0 0 10px}.lesson-meet .lesson-hear{margin-top:16px}.lesson-meet .lesson-hear{grid-template-columns:1fr}.lesson-meet .lesson-hear .lesson-example{justify-items:center;text-align:center}.ear-reveal{display:flex;justify-content:center;margin:12px 0 0}.ear-reveal svg{max-width:100%}.read-best.is-new{font-weight:700}.read-best.is-new{color:var(--brand-ink)}.practice-row select{font:inherit;padding:8px 10px;border:1px solid var(--line, rgba(0, 0, 0, .15));border-radius:var(--r-sm, 10px);background:var(--paper, #fff);color:inherit}.point-hand{position:absolute;top:50%;font-size:2.6rem;line-height:1;pointer-events:none;z-index:1}.point-hand.from-left{right:calc(100% + 10px);animation:hand-nudge-right 1.1s ease-in-out infinite}.point-hand.from-right{left:calc(100% + 10px);animation:hand-nudge-left 1.1s ease-in-out infinite}@keyframes hand-nudge-right{0%,to{transform:translateY(-50%)}50%{transform:translate(10px,-50%)}}@keyframes hand-nudge-left{0%,to{transform:translateY(-50%)}50%{transform:translate(-10px,-50%)}}.path .node.is-next .bubble{padding:8px 16px;font-size:1rem;border-radius:10px}@media(prefers-reduced-motion:reduce){.point-hand{animation:none}}.lesson-progress{display:flex;gap:6px;width:100%;max-width:36rem;margin:0 auto 18px;padding:0;list-style:none}.lesson-progress li{flex:1;height:6px;border-radius:3px;background:var(--fill-strong);transition:background .25s ease}.lesson-progress li.is-on{background:var(--brand)}.lesson-nav{display:flex;align-items:center;gap:12px;width:100%;max-width:36rem;margin:8px auto 0}.lesson-nav .primary{margin:0 0 0 auto}.lesson-back{padding:12px 20px;border:1px solid var(--rule);border-radius:999px;background:none;color:var(--ink);font:inherit;font-weight:600}.shell.is-focus .level-lesson .calm-paper{flex:none}.callout ellipse,.callout line{fill:none;stroke:var(--brand);stroke-width:2.5}.callout rect{fill:var(--paper);stroke:var(--brand);stroke-width:2}.callout text{fill:var(--brand-ink);font-family:var(--sans);font-weight:700;font-size:15px}.step-sheet,.step-sheet.is-last{text-align:center;background:var(--paper)}.step-sheet .celebrate-badge{width:52px;height:52px;margin-bottom:8px;font-size:1.6rem}.step-sheet-actions,.step-sheet.is-last .step-sheet-actions{justify-content:space-between;gap:12px}.step-sheet-actions button{white-space:nowrap}.step-sheet-stay{padding:12px 18px;border:1px solid var(--rule);border-radius:999px;background:none;color:var(--ink);font:inherit;font-weight:600}.modal-card.is-celebration .modal-actions{justify-content:space-between}.modal-card.is-celebration .modal-actions button{white-space:nowrap;border-radius:999px;padding:12px 18px;font-weight:600}.play-icon{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--brand);color:var(--paper);box-shadow:0 2px color-mix(in srgb,var(--brand) 60%,var(--ink))}.play-icon svg{margin-left:2px}.lesson-caption{display:inline-flex;align-items:center;gap:10px}.lesson-hear .lesson-song{display:flex;align-items:center;gap:14px}.lesson-song span{display:grid;gap:2px}button:active .play-icon{transform:scale(.94)}.shell.is-focus .harmony-teach.calm-paper{flex:none}.fretboard{display:block;width:100%;max-width:560px;margin:0 auto;touch-action:manipulation}.fretboard-wood{fill:color-mix(in srgb,#b07a43 22%,var(--paper))}.fretboard .fret{stroke:color-mix(in srgb,var(--ink) 35%,transparent);stroke-width:2}.fretboard .nut{stroke:var(--ink);stroke-width:6}.fretboard .string{stroke:var(--ink);stroke-width:2}.fretboard .string.is-glow{stroke:var(--brand);stroke-width:5}.fretboard .string.is-drone{stroke-dasharray:2 7;stroke-linecap:round;opacity:.55}.fretboard .string.is-drone.is-glow{opacity:1}.fretboard .drone-peg{fill:var(--ink)}.fretboard .string-name,.fretboard .fret-num{fill:var(--ink-soft);font-family:var(--sans);font-weight:700;font-size:16px}.fretboard .fret-num{font-size:11px;font-weight:600}.fretboard .fret-dot{fill:color-mix(in srgb,var(--ink) 14%,transparent)}.fret-mark circle{fill:var(--brand)}.fret-mark.is-right circle{fill:var(--moss)}.fret-mark.is-wrong circle{fill:var(--tomato, #d2543a)}.fret-mark.is-shown circle{fill:none;stroke:var(--brand);stroke-width:3;stroke-dasharray:4 3}.fret-mark text{fill:var(--paper);font-family:var(--sans);font-weight:700;font-size:14px}.fret-mark.is-shown text{fill:var(--brand-ink)}.fret-hit{fill:transparent;cursor:pointer}.fret-hit:focus-visible{outline:none;fill:color-mix(in srgb,var(--brand) 14%,transparent)}.chord-diagram{display:block;margin:0 auto}.chord-diagram .nut{fill:var(--ink)}.chord-diagram .fret,.chord-diagram .string{stroke:var(--ink);stroke-width:1.5}.chord-diagram .open{fill:none;stroke:var(--ink);stroke-width:2}.chord-diagram .dot circle{fill:var(--ink)}.chord-diagram .dot text{fill:var(--paper);font-family:var(--sans);font-weight:700;font-size:13px}.chord-diagram .string-name{fill:var(--ink-soft);font-family:var(--sans);font-weight:600;font-size:12px}.strum-bars{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:8px auto}.strum-bar{text-align:center}.strum-chord{margin:0 0 4px;font-weight:700}.strum-bar ol{display:flex;gap:4px;margin:0;padding:8px 10px;list-style:none;border-left:2px solid var(--ink);border-right:2px solid var(--ink)}.strum-bar li{display:grid;justify-items:center;width:30px;padding:4px 0;border-radius:8px;transition:background .08s}.strum-bar li.is-now{background:color-mix(in srgb,var(--brand) 18%,transparent)}.strum-arrow{height:30px;font-size:1.6rem;font-weight:700;line-height:30px;color:var(--brand)}.strum-count{font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--ink-soft)}.strum-bar li.is-strum .strum-count{color:var(--ink)}.strum-chords{display:flex;justify-content:center;gap:18px}.song-sheet{max-width:40rem;margin:14px auto;text-align:left}.song-line{display:flex;flex-wrap:wrap;gap:2px 6px;margin:0 0 12px}.song-bar{display:grid;padding:2px 6px;border-radius:8px;transition:background .1s}.song-chord{min-height:1.3em;color:var(--brand-ink);font-family:var(--sans);font-size:.95rem}.song-words{font-size:1.08rem}.song-bar.is-now{background:color-mix(in srgb,var(--brand) 16%,transparent)}.song-bar.is-next .song-chord{animation:chord-flag .35s ease-in-out infinite alternate}@keyframes chord-flag{to{color:var(--tomato, #d2543a);transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.song-bar.is-next .song-chord{animation:none;color:var(--tomato, #d2543a)}}.strum-chords figure{margin:0;text-align:center}.strum-chords figcaption{font-weight:700;font-size:.9rem}.chord-symbol{margin:10px 0 4px;text-align:center;font-family:var(--serif);font-size:4rem;font-weight:800;line-height:1}.lead-sheet{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px;max-width:40rem;margin:10px auto;text-align:left}.lead-sheet .song-chord{font-size:1.15rem}.tuner-strings{display:grid;grid-template-columns:repeat(var(--strings, 4),1fr);gap:8px;max-width:30rem;margin:10px auto 18px}.tuner-strings button{display:grid;gap:2px;padding:12px 6px;border:0;border-radius:var(--r-md);background:var(--fill);color:inherit;font:inherit}.tuner-strings strong{font-family:var(--serif);font-size:1.8rem}.tuner-strings small{color:var(--ink-soft)}.tuner-strings button.is-on{outline:3px solid var(--brand)}.tuner-strings button.is-tuned small{color:var(--moss);font-weight:700}.tuner-meter{max-width:30rem;margin:0 auto;text-align:center}.tuner-scale{position:relative;height:44px;margin:8px 0;border-radius:22px;background:var(--fill)}.tuner-scale:before{content:"";position:absolute;inset:0 42%;background:color-mix(in srgb,var(--moss) 22%,var(--fill))}.tuner-centre{position:absolute;left:50%;top:6px;bottom:6px;width:2px;background:var(--ink-soft)}.tuner-needle{position:absolute;top:4px;bottom:4px;width:6px;margin-left:-3px;border-radius:3px;background:var(--tomato, #d2543a);transition:left .12s ease-out}.tuner-needle.is-in{background:var(--moss)}.tuner-verdict{font-weight:700}.chip-btn{border:0;font:inherit;cursor:pointer}.shell.is-focus .tuner .calm-paper{flex:none}.compose-grid{display:grid;gap:14px;width:100%;max-width:44rem;margin:8px auto}.compose-chords{display:grid;grid-template-columns:repeat(4,1fr);margin-left:26px;font-weight:700;color:var(--brand-ink)}.compose-row{display:grid;grid-template-columns:22px repeat(16,1fr);gap:2px;margin-bottom:2px}.compose-note{font-family:var(--sans);font-size:.75rem;font-weight:600;color:var(--ink-soft);align-self:center}.compose-cell{height:22px;min-width:0;padding:0;border:0;border-radius:4px;background:var(--fill)}.compose-cell.is-bar{box-shadow:inset 2px 0 color-mix(in srgb,var(--ink) 25%,transparent)}.compose-cell.is-on{background:var(--brand)}.compose-cell.is-now{outline:2px solid var(--tomato, #d2543a)}.compose-checks{max-width:30rem;margin:10px auto;padding:0;list-style:none;text-align:left;color:var(--ink-soft)}.compose-checks li.is-ok{color:var(--moss);font-weight:600}.chord-diagram .muted{fill:var(--ink-soft);font-family:var(--sans);font-weight:700;font-size:15px}.chord-diagram .barre{fill:var(--ink)}.chord-diagram .base-fret{fill:var(--ink-soft);font-family:var(--sans);font-weight:600;font-size:11px}.pick-grid{display:grid;gap:3px;width:100%;max-width:40rem;margin:10px auto}.pick-row{display:grid;grid-template-columns:44px repeat(var(--slots, 8),1fr);gap:3px;align-items:center}.pick-string{height:38px;padding:0;border:0;border-radius:10px;background:var(--fill-strong);color:var(--ink);font:inherit;font-weight:700}.pick-string:not(:disabled):active{background:var(--brand);color:var(--paper)}.pick-cell{display:grid;place-items:center;height:30px;border-bottom:2px solid color-mix(in srgb,var(--ink) 30%,transparent);font-family:var(--sans);font-weight:700;color:var(--brand-ink)}.pick-cell.is-bar{border-left:2px solid var(--ink)}.pick-cell.is-now{background:color-mix(in srgb,var(--brand) 16%,transparent);border-radius:6px}.pick-cell.is-pluck{font-size:1.05rem}.pick-count .pick-cell{border:0;font-weight:600;font-size:.85rem;color:var(--ink-soft)}:root{--sc-ground: rgba(60, 38, 20, .08);--sc-leaf: #3b6447;--sc-leaf-soft: #6f9a63;--sc-trunk: #6b4a33;--sc-hill: #a9c48a;--sc-hill-far: #cfdcb3;--sc-staff: #4c3a2c;--sc-ink: #241a14;--sc-wall: #f3e3c6;--sc-roof: #b4472f;--sc-roof-dark: #8c3a2a;--sc-door: #5a3b28;--sc-window: #e9b949;--sc-stone: #e8e1d3;--sc-stone-dark: #a9a397;--sc-spire: #4a5d82;--sc-tiles: #c3893b;--sc-rock: #8b8c9d;--sc-rock-far: #b6b4c2;--sc-snow: #fffbf4;--sc-water: #9cc3d6;--sc-gold: #d9a52b;--sc-paper: #fffbf4;--sc-board: #c98f5a;--sc-drum: #d24d7c;--sc-drumhead: #f3e3c6;--sc-brick: #8c4a3a;--sc-neon: #ff6a8a;--sc-awning: #1f6049;--sc-chalk: #2f3a35;--sc-quill: #fffbf4;--sc-tent: #e09b16;--sc-hall: #f0d7a0;--sc-hall-roof: #b98a2e;--sc-skin: #f2c9a5;--sc-hair: #fffbf4;--sc-coat: #b0342c;--sc-face: #241a14;--sc-stocking: #fffbf4;--sc-breeches: #241a14;--sc-ridge-far: #c3cfe0;--sc-ridge: #97adc9;--sc-ridge-near: #6d88aa;--sc-mist: #fffbf4;--sc-smoke: #9aa5b4;--sc-pine: #2f5a45;--sc-log: #a8714a;--sc-log-dark: #7c5234;--sc-barn: #a8382c;--sc-barn-trim: #fffbf4;--sc-firefly: #f6dc5c;--sc-hollow: #4b5d76;--sc-hollow-far: #6f83a0}@media(prefers-color-scheme:dark){:root{--sc-ground: rgba(255, 240, 225, .06);--sc-leaf: #4f8a5e;--sc-leaf-soft: #6f9a63;--sc-trunk: #8a6a4e;--sc-hill: #4f6b42;--sc-hill-far: #36472f;--sc-staff: #d8c9b4;--sc-ink: #f7efe4;--sc-wall: #cdbb9c;--sc-roof: #a8503a;--sc-roof-dark: #874232;--sc-door: #4a3020;--sc-window: #f0c55a;--sc-stone: #c9c1b2;--sc-stone-dark: #7a756c;--sc-spire: #6b7fa8;--sc-tiles: #b07a33;--sc-rock: #6f7183;--sc-rock-far: #4d4e5d;--sc-snow: #e9e3dc;--sc-water: #3f6a80;--sc-gold: #e8b84a;--sc-paper: #efe4d2;--sc-board: #a8784c;--sc-drum: #f07aa5;--sc-drumhead: #cdbb9c;--sc-brick: #7a3f32;--sc-neon: #ff8aa5;--sc-awning: #2f8a6a;--sc-chalk: #1b2420;--sc-quill: #efe4d2;--sc-tent: #f5bd47;--sc-hall: #c9ad74;--sc-hall-roof: #a07a2a;--sc-skin: #e0b48f;--sc-hair: #f7efe4;--sc-coat: #c24a3f;--sc-face: #241a14;--sc-stocking: #efe4d2;--sc-breeches: #3a2c22;--sc-ridge-far: #33405c;--sc-ridge: #3c4c6a;--sc-ridge-near: #506487;--sc-mist: #c9d3e3;--sc-smoke: #8a95a8;--sc-pine: #3f7a5c;--sc-log: #8f6040;--sc-log-dark: #6a4630;--sc-barn: #9a3f32;--sc-barn-trim: #e9e0d0;--sc-firefly: #ffe27a;--sc-hollow: #2e394c;--sc-hollow-far: #3d4c68}}.scene{display:block;overflow:visible}.sc-ground{fill:var(--sc-ground)}.sc-leaf{fill:var(--sc-leaf)}.sc-leaf-soft{fill:var(--sc-leaf-soft)}.sc-trunk{fill:var(--sc-trunk)}.sc-hill{fill:var(--sc-hill)}.sc-hill-far{fill:var(--sc-hill-far)}.sc-staff{fill:none;stroke:var(--sc-staff);stroke-width:.8;opacity:.55}.sc-ink{fill:var(--sc-ink)}.sc-blossom{fill:var(--sc-roof)}.sc-wing{fill:none;stroke:var(--sc-ink);stroke-width:1;opacity:.5}.sc-wall{fill:var(--sc-wall)}.sc-roof{fill:var(--sc-roof)}.sc-roof-dark{fill:var(--sc-roof-dark)}.sc-door{fill:var(--sc-door)}.sc-window{fill:var(--sc-window)}.sc-stone{fill:var(--sc-stone)}.sc-stone-dark{fill:var(--sc-stone-dark)}.sc-spire{fill:var(--sc-spire)}.sc-tiles{fill:var(--sc-tiles)}.sc-zigzag{fill:none;stroke:var(--sc-spire);stroke-width:1.2}.sc-stripe{stroke:var(--sc-roof);stroke-width:4}.sc-gold{fill:var(--sc-gold)}.sc-water{fill:var(--sc-water)}.sc-arch{fill:none;stroke:var(--sc-stone-dark);stroke-width:4}.sc-key-white{fill:var(--sc-paper);stroke:var(--sc-ink);stroke-width:.6}.sc-key-line{stroke:var(--sc-ink);stroke-width:.5}.sc-rock{fill:var(--sc-rock)}.sc-rock-far{fill:var(--sc-rock-far)}.sc-snow{fill:var(--sc-snow)}.sc-ledger{stroke:var(--sc-ink);stroke-width:1.2}.sc-wave{fill:none;stroke:var(--sc-drum);stroke-width:1.6;stroke-linecap:round}.sc-thin{fill:none;stroke:var(--sc-trunk);stroke-width:1.6}.sc-paper{fill:var(--sc-paper)}.sc-paper-line{stroke:var(--sc-ink);stroke-width:.4;opacity:.6}.sc-board{fill:var(--sc-board)}.sc-letter{fill:var(--sc-paper);font:700 7px var(--sans)}.sc-drum{fill:var(--sc-drum)}.sc-drumhead{fill:var(--sc-drumhead)}.sc-lacing{fill:none;stroke:var(--sc-paper);stroke-width:.8}.sc-symbol{fill:var(--sc-ink);font:700 16px var(--sans)}.sc-awning{fill:var(--sc-awning)}.sc-awning-stripe{fill:var(--sc-paper)}.sc-chalk{fill:var(--sc-chalk)}.sc-chalk-text{fill:#f6efe3;font:600 5.5px var(--sans)}.sc-rim{fill:none;stroke:var(--sc-spire);stroke-width:1.8}.sc-spoke{stroke:var(--sc-spire);stroke-width:.8}.sc-brick{fill:var(--sc-brick)}.sc-neon-bg{fill:#1b1712}.sc-neon{fill:var(--sc-neon);font:800 9px var(--sans);letter-spacing:.08em}.sc-quill{fill:var(--sc-quill);stroke:var(--sc-ink);stroke-width:.6}.sc-tent{fill:var(--sc-tent)}.sc-tent-stripe{fill:var(--sc-paper);opacity:.8}.sc-flag{fill:var(--sc-roof)}.sc-hall{fill:var(--sc-hall)}.sc-hall-roof{fill:var(--sc-hall-roof)}.sc-column{fill:var(--sc-paper)}.sc-door-gold{fill:var(--sc-gold)}.sc-skin{fill:var(--sc-skin)}.sc-hair{fill:var(--sc-hair);stroke:var(--sc-face);stroke-width:.8}.sc-shirt{fill:var(--sc-paper)}.sc-smile{fill:none;stroke:var(--sc-face);stroke-width:.9;stroke-linecap:round}.sc-arm{fill:none;stroke:var(--sc-coat);stroke-width:4;stroke-linecap:round}.sc-coat{fill:var(--sc-coat)}.sc-stocking{fill:var(--sc-stocking)}.sc-breeches{fill:var(--sc-breeches)}.sc-bow{fill:var(--sc-face)}.sc-lace{fill:none;stroke:var(--sc-paper);stroke-width:1.2;stroke-linecap:round}.sc-face{fill:var(--sc-face)}.sc-baton{stroke:var(--sc-paper);stroke-width:1.6;stroke-linecap:round}.sc-ridge-far{fill:var(--sc-ridge-far)}.sc-ridge{fill:var(--sc-ridge)}.sc-ridge-near{fill:var(--sc-ridge-near)}.sc-mist{fill:none;stroke:var(--sc-mist);stroke-width:1.4;stroke-linecap:round;opacity:.75}.sc-smoke{fill:var(--sc-smoke)}.sc-pine{fill:var(--sc-pine)}.sc-log{fill:var(--sc-log)}.sc-log-dark{fill:var(--sc-log-dark)}.sc-log-line{stroke:var(--sc-log-dark);stroke-width:.8}.sc-barn{fill:var(--sc-barn)}.sc-trim{fill:none;stroke:var(--sc-barn-trim);stroke-width:1.4}.sc-hollow{fill:var(--sc-hollow)}.sc-hollow-far{fill:var(--sc-hollow-far)}.sc-firefly{fill:var(--sc-firefly)}.sc-glow{fill:var(--sc-firefly);opacity:.3}.sc-bulb{fill:var(--sc-firefly);stroke:var(--sc-gold);stroke-width:.5}.sc-wire{fill:none;stroke:var(--sc-ink);stroke-width:.5;opacity:.5}.sc-neck{fill:var(--sc-trunk)}.sc-string{stroke:var(--sc-paper);stroke-width:.3}.sc-chair{fill:none;stroke:var(--sc-trunk);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.sc-rail{stroke:var(--sc-trunk);stroke-width:2.2;stroke-linecap:round}.sc-rail-thin{stroke:var(--sc-trunk);stroke-width:1.2}.sc-rail-arch{fill:none;stroke:var(--sc-trunk);stroke-width:1.4}.sc-plank{fill:none;stroke:var(--sc-board);stroke-width:3;stroke-linecap:round}.sc-ripple{fill:none;stroke:var(--sc-paper);stroke-width:.9;stroke-linecap:round;opacity:.8}.sc-wave-faint{fill:none;stroke:var(--sc-drum);stroke-width:1.2;stroke-linecap:round;opacity:.45}.sc-wheel{fill:none;stroke:var(--sc-trunk);stroke-width:2.4}.sc-wheel-spoke{stroke:var(--sc-trunk);stroke-width:1}.sc-swing{animation:sc-swing 1.5s ease-in-out infinite alternate}.sc-turn{animation:sc-turn 40s linear infinite}@keyframes sc-swing{0%{transform:rotate(-16deg)}to{transform:rotate(16deg)}}@keyframes sc-turn{to{transform:rotate(360deg)}}.sc-turn-fast{animation-duration:14s}.sc-drift{animation:sc-drift 7s ease-in-out infinite alternate}.sc-rocking{animation:sc-rocking 1.8s ease-in-out infinite alternate}.sc-twinkle{animation:sc-twinkle 2.4s ease-in-out infinite alternate}@keyframes sc-drift{0%{transform:translate(-3px)}to{transform:translate(3px)}}@keyframes sc-rocking{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes sc-twinkle{0%{opacity:1}to{opacity:.25}}.unit-head.has-landmark{position:relative;padding-right:150px}.unit-landmark{position:absolute;right:-6px;top:0;pointer-events:none}.unit{overflow-x:clip}.path li{position:relative}.path-scene{position:absolute;top:6px;pointer-events:none}.path-scene.on-left{right:calc(100% + 18px)}.path-scene.on-right{left:calc(100% + 18px)}.path-guide{position:absolute;top:50%;transform:translateY(-62%);pointer-events:none;z-index:1}.path-guide.from-left{right:calc(100% + 8px)}.path-guide.from-right{left:calc(100% + 8px)}.guide.flip{transform:scaleX(-1)}.guide-baton{animation:guide-conduct .9s ease-in-out infinite alternate}@keyframes guide-conduct{0%{transform:rotate(-12deg)}to{transform:rotate(18deg)}}.path-finale{display:grid;justify-items:center;gap:8px;margin:30px 0 60px;text-align:center;color:var(--ink-soft);font-weight:600}@media(prefers-reduced-motion:reduce){.sc-swing,.sc-turn,.sc-drift,.sc-rocking,.sc-twinkle,.guide-baton{animation:none}}@media(max-width:480px){.unit-head.has-landmark{padding-right:104px}.unit-landmark .scene{width:96px;height:56px}}.roll-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:6px;width:100%}.roll-line span{display:grid;justify-items:center;min-width:28px;padding:4px 0;border-radius:8px;background:var(--fill)}.roll-line b{font-size:1rem}.roll-line small{font-size:.75rem;opacity:.7}.roll-line em{flex-basis:100%;text-align:center;font-style:normal;font-size:.8rem;opacity:.7}.gate{min-height:80dvh;display:flex;flex-direction:column;justify-content:center;padding:0 16px}.gate-guide .guide{width:96px;height:128px}.gate .gate-brand{margin:8px 0 0}.gate h1{font-size:clamp(2rem,7vw,2.8rem);line-height:1.02}.gate-google{display:inline-flex;align-items:center;justify-content:center;gap:10px;align-self:flex-start;padding:14px 22px;font-size:1.05rem}.gate-small{color:var(--ink-soft);font-size:.9rem;margin:12px 0 0}.gate-wait{color:var(--ink-soft);text-align:center}.gate-err{color:var(--wax);margin:12px 0 0}.account-actions{display:flex;gap:12px;align-items:center;margin:4px 0 20px}.topnav .nav-links{margin-left:auto}.account-chip{flex:none;align-self:center;padding:0;border:0;background:none;border-radius:50%;line-height:0}.account-chip:focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px}.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--rule)}.avatar.is-blank{display:inline-grid;place-items:center;background:var(--brand);color:var(--paper);font-weight:650;font-size:.95rem}.avatar.is-big{width:56px;height:56px;font-size:1.4rem}.account-head{display:flex;align-items:center;gap:12px;margin:4px 0 8px}.account-head .hint-line{margin:0}.sheet-h{margin:18px 0 8px;font-size:.95rem}.instrument-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.instrument-pick{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);font-weight:600;text-align:left}.instrument-pick.is-on{border-color:var(--brand-ink)}.instrument-pick:disabled{opacity:1;cursor:default}.pick-box{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--rule);font-size:.8rem;color:var(--paper)}.instrument-pick.is-on .pick-box{background:var(--brand-ink);border-color:var(--brand-ink)}.acc{font-family:var(--sans);font-weight:600;font-size:.8em;letter-spacing:0;margin-left:-.04em}.col-mark{fill:color-mix(in srgb,var(--wax) 16%,transparent)}.col-hit{fill:transparent;cursor:pointer;outline:none}.col-hit:focus-visible{stroke:var(--ink-soft);stroke-width:1.5;stroke-dasharray:4 3}.key-tune-ask{text-align:center;margin:4px 0 8px;color:var(--ink-soft)}.degree-reveal svg{width:100%;max-width:340px}.explore-banner{margin:8px auto 0;max-width:640px;padding:6px 14px;border-radius:999px;background:color-mix(in srgb,var(--u-keys) 14%,var(--paper));color:var(--ink-soft);font-size:.85rem;text-align:center}.lesson-restart{font-size:.92rem}.tune-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--rule);border-radius:999px;background:var(--paper);color:var(--ink);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}.tune-btn:hover{border-color:var(--ink-soft)}.topnav .tune-btn{margin-left:auto;margin-right:10px}.tuner-panel{display:grid;gap:12px}.tuner-ways{justify-self:center}@media(max-width:520px){.tune-btn span{display:none}}.song-bar.is-chart{position:relative;min-width:5.5em}.song-bar.is-chart .song-words{color:var(--ink-soft);letter-spacing:.15em}.song-section{position:absolute;top:-1.3em;left:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.instrument-picture{display:block;width:100%;max-width:250px;margin:4px auto 0}.ip-body{fill:#d9a066;stroke:#8a5a2b;stroke-width:2}.ip-head{fill:#f3ead8;stroke:#b9a98a;stroke-width:2}.ip-hole{fill:#3b2614}.ip-neck,.ip-headstock{fill:#6b4423}.ip-peg{fill:#e8dcc4;stroke:#8a7a5c;stroke-width:1.5}.ip-nut{stroke:#f3ead8;stroke-width:4}.ip-fret{stroke:#c9b896;stroke-width:1.4}.ip-bridge{fill:#3b2614}.ip-hit{fill:transparent}.ip-string{cursor:pointer;outline:none}.ip-wire{stroke:#efe6d2;transition:stroke .15s;filter:drop-shadow(0 0 .7px rgba(40,25,10,.9))}.ip-badge{fill:var(--paper);stroke:#8a7a5c;stroke-width:1.5}.ip-letter{font-family:var(--serif);font-size:13px;font-weight:700;fill:var(--ink)}.ip-string.is-lit .ip-wire{stroke:var(--brand);stroke-width:3.2;filter:drop-shadow(0 0 4px var(--brand))}.ip-string.is-lit .ip-badge{fill:var(--brand);stroke:var(--brand)}.ip-string.is-lit .ip-letter{fill:var(--paper)}.ip-string.is-tuned .ip-badge{fill:var(--moss);stroke:var(--moss)}.ip-string.is-tuned .ip-letter{fill:#fff}.ip-string:focus-visible .ip-badge{stroke:var(--ink);stroke-width:2.5}.tuner-where,.tuner-status{margin:0;text-align:center;font-size:.85rem;color:var(--ink-soft)}.tuner-status{min-height:1.3em;font-weight:600;color:var(--ink)}.instrument-picture.is-banjo .ip-wire{stroke:#7d6a4c}
