:root{--bg:#f7f4ee;--surface:#fff;--surface-2:#efebe3;--text:#24211c;--muted:#6f685d;--border:#ddd6ca;--accent:#8a5a2b;--accent-soft:#f1e4d4;--good:#3f7a4d;--good-soft:#e1efe3;--warn:#a8732a;--warn-soft:#f6ead6;--bad:#a64b3c;--bad-soft:#f5e0dc;--mono:ui-monospace, "JetBrains Mono", monospace;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1b1a17;--surface:#25231f;--surface-2:#2f2c27;--text:#ece6dc;--muted:#a39b8d;--border:#3d3932;--accent:#d9a46b;--accent-soft:#3a2e21;--good:#7fbf8c;--good-soft:#233328;--warn:#e0b06a;--warn-soft:#3a3020;--bad:#e08a7a;--bad-soft:#3d2622;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent)}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 .75rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;padding:1rem}.muted{color:var(--muted)}.small{font-size:.875rem}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:.4rem;min-height:44px;padding:.55rem .9rem;text-decoration:none;display:inline-flex}button:hover,.btn:hover{border-color:var(--accent)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}button.selected{border-color:var(--accent);background:var(--accent-soft)}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-height:44px;padding:.5rem}textarea{width:100%;min-height:4rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stack>*+*{margin-top:.75rem}.pill{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.1rem .55rem;font-size:.8rem;display:inline-block}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.stat{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:650}.notation svg path,.notation svg text{fill:var(--text);stroke:none}.notation svg .abcjs-staff path,.notation svg .abcjs-ledger,.notation svg .abcjs-bar,.notation svg .abcjs-stem{stroke:var(--text)}.notation .hit,.notation .hit path{fill:var(--good)!important}.notation .miss,.notation .miss path{fill:var(--bad)!important}.notation .masked{opacity:.05;transition:opacity .15s}.notation .current,.notation .current path{fill:var(--accent)!important}.grid2{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}ul,ol{margin:0 0 .75rem;padding-left:1.25rem}main.svelte-15ijoy3{max-width:420px;margin:15vh auto 0;padding:1rem}input.svelte-15ijoy3{flex:1}.timer.svelte-1kta319{font-variant-numeric:tabular-nums;justify-content:center;min-width:6.5rem}.running.svelte-1kta319{border-color:var(--accent);color:var(--accent)}.counter.svelte-tvngk5{background:var(--surface-2);border-radius:10px;margin-top:.75rem;padding:.75rem}.dots.svelte-tvngk5{align-items:center;gap:.4rem;min-height:1.2rem;margin-bottom:.5rem;display:flex}.dot.svelte-tvngk5{border:2px solid var(--good);border-radius:50%;width:14px;height:14px}.dot.on.svelte-tvngk5{background:var(--good)}.done.svelte-tvngk5{color:var(--good);margin-left:.25rem}.ok.svelte-tvngk5{border-color:var(--good)}.hint.svelte-tvngk5{color:var(--warn);margin:.5rem 0 0}.eyebrow.svelte-avvubb{margin:0}.lengths.svelte-avvubb{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1rem 0 .75rem;display:grid}.length.svelte-avvubb{flex-direction:column;justify-content:center;gap:0;padding:1rem .5rem}.note.svelte-avvubb{background:var(--accent-soft);border-color:#0000}.block.checked.svelte-avvubb{opacity:.6}.head.svelte-avvubb{margin-bottom:.5rem}.head.svelte-avvubb h2:where(.svelte-avvubb){margin:0}.spacer.svelte-avvubb{flex:1}.check.svelte-avvubb{border-radius:8px;justify-content:center;width:32px;height:32px;min-height:32px;padding:0}.checked.svelte-avvubb .check:where(.svelte-avvubb){background:var(--good);border-color:var(--good);color:var(--bg)}.cue.svelte-avvubb,details.svelte-avvubb{margin-bottom:.5rem}details.svelte-avvubb p:where(.svelte-avvubb),details.svelte-avvubb ol:where(.svelte-avvubb){margin-top:.5rem}summary.svelte-avvubb{cursor:pointer;color:var(--accent)}.items.svelte-avvubb{margin:0;padding:0;list-style:none}.items.svelte-avvubb li:where(.svelte-avvubb){border-top:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.4rem;padding:.35rem 0;display:flex}.center.svelte-avvubb{text-align:center;padding:2rem 1rem}.stage.svelte-122iitb{padding:0}.stage.current.svelte-122iitb{border-color:var(--accent)}.head.svelte-122iitb{border-radius:var(--radius);text-align:left;background:0 0;border:none;justify-content:flex-start;width:100%;padding:.85rem 1rem}.num.svelte-122iitb{background:var(--surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-weight:600;display:inline-flex}.current.svelte-122iitb .num:where(.svelte-122iitb){background:var(--accent);color:var(--bg)}.title.svelte-122iitb{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.body.svelte-122iitb{padding:0 1rem 1rem}.goal.svelte-122iitb,.piece.svelte-122iitb{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.5rem 0;display:flex}.piece.svelte-122iitb>div:where(.svelte-122iitb):first-child{flex:260px;min-width:0}.goal.svelte-122iitb:last-child,.piece.svelte-122iitb:last-child{border-bottom:none}.rating.svelte-122iitb{gap:.25rem;display:flex}.rating.svelte-122iitb button:where(.svelte-122iitb){min-height:36px;padding:.25rem .55rem;font-size:.8rem}.note.svelte-122iitb{background:var(--accent-soft);border-radius:8px;padding:.6rem .75rem}.midi.svelte-1w0iv8d{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.trainer.svelte-i5cso2{color:inherit;text-decoration:none;display:block}.trainer.svelte-i5cso2:hover{border-color:var(--accent)}.extra.svelte-i5cso2{margin-top:1.5rem}.trainer.svelte-i5cso2 p:where(.svelte-i5cso2){margin:0}.back.svelte-7fonep{min-height:36px;color:var(--accent);background:0 0;border:none;margin-bottom:.25rem;padding:.25rem 0}.notation.svelte-1f3c4hy{width:100%}.stage.svelte-jsdqlf{text-align:center;transition:background .2s}.stage.good.svelte-jsdqlf{background:var(--good-soft)}.stage.bad.svelte-jsdqlf{background:var(--bad-soft)}.staff.svelte-jsdqlf{justify-content:center;align-items:center;min-height:170px;display:flex}.feedback.svelte-jsdqlf{justify-content:center;align-items:baseline;gap:1rem;min-height:2rem;margin:.5rem 0;display:flex}.name.svelte-jsdqlf{font-size:1.2rem;font-weight:600}.buttons.svelte-jsdqlf{justify-content:center;margin-bottom:.75rem}.buttons.svelte-jsdqlf button:where(.svelte-jsdqlf){justify-content:center;min-width:3.2rem}.seg.svelte-jsdqlf{gap:.25rem}.prompt.svelte-aawunj{text-align:center;transition:background .2s}.prompt.solved.svelte-aawunj{background:var(--good-soft)}.chord.svelte-aawunj{margin:.5rem 0;font-size:2.2rem;font-weight:650}.feedback.svelte-aawunj{min-height:1.6rem;margin-bottom:.5rem}.bpm.svelte-1lsk5dc{text-align:center;min-width:6.5rem}.dots.svelte-1lsk5dc{gap:.5rem;margin-top:.5rem;display:flex}.dot.svelte-1lsk5dc{background:var(--surface-2);border:1px solid var(--border);border-radius:50%;width:14px;height:14px}.dot.on.svelte-1lsk5dc{background:var(--accent)}.dot.first.on.svelte-1lsk5dc{transform:scale(1.3)}.run.svelte-fry5cb{text-align:center}.run.svelte-fry5cb .stat:where(.svelte-fry5cb){font-size:3rem}.tips.svelte-fry5cb{margin-top:1rem}.chart.svelte-fry5cb{width:100%;height:auto;margin-bottom:1rem}.axis.svelte-fry5cb{stroke:var(--border);stroke-width:1px}.stem.svelte-fry5cb{stroke:var(--accent);stroke-width:2px;opacity:.5}.dot.svelte-fry5cb{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.tick.svelte-fry5cb{fill:var(--muted);font-size:11px}.miss.svelte-fry5cb{fill:var(--bad);text-anchor:middle;font-size:14px}.bar.thumb.svelte-fry5cb{fill:var(--accent)}.bar.other.svelte-fry5cb{fill:var(--muted);opacity:.55}.swatch.svelte-fry5cb{vertical-align:middle;border-radius:2px;width:10px;height:10px;display:inline-block}.swatch.thumb.svelte-fry5cb{background:var(--accent)}.swatch.other.svelte-fry5cb{background:var(--muted);opacity:.55;margin-left:.5rem}.run.svelte-1l2ic7{text-align:center}.run.svelte-1l2ic7 .stat:where(.svelte-1l2ic7){font-size:2.5rem}.question.svelte-mt71fj{margin:.25rem 0 .75rem;font-weight:600}.options.svelte-mt71fj{gap:.5rem;margin-bottom:.75rem;display:grid}.option.svelte-mt71fj{text-align:left;justify-content:flex-start}.option.right.svelte-mt71fj{border-color:var(--good);background:var(--good-soft)}.option.wrong.svelte-mt71fj{border-color:var(--bad);background:var(--bad-soft)}.explain.svelte-mt71fj{background:var(--bad-soft);border-radius:8px;padding:.6rem .75rem}.explain.ok.svelte-mt71fj{background:var(--good-soft)}.item.svelte-zskiph{color:inherit;text-decoration:none;display:block}.item.svelte-zskiph:hover,.review.svelte-zskiph{border-color:var(--accent)}.lesson.svelte-zskiph p:last-child{margin-bottom:0}.media.svelte-7kwc3i{margin-top:.5rem}.item.svelte-7kwc3i{margin-bottom:.75rem}audio.svelte-7kwc3i,video.svelte-7kwc3i{border-radius:8px;width:100%;display:block}video.svelte-7kwc3i{background:#000;max-height:60vh}.meta.svelte-7kwc3i{justify-content:space-between;margin-top:.25rem}.del.svelte-7kwc3i{min-height:28px;padding:0 .5rem}label.btn.svelte-7kwc3i{cursor:pointer}.grid2.svelte-1wane23 .card:where(.svelte-1wane23){margin:0}.grid2.svelte-1wane23{margin-bottom:.75rem}.chart.svelte-1wane23{width:100%;height:auto}.grid.svelte-1wane23{stroke:var(--border);stroke-width:1px}.tick.svelte-1wane23{fill:var(--muted);font-size:11px}.line.svelte-1wane23{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.pt.svelte-1wane23{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.cross.svelte-1wane23{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}table.svelte-1wane23{border-collapse:collapse;width:100%;font-size:.875rem}th.svelte-1wane23{text-align:left;color:var(--muted);font-weight:500}td.svelte-1wane23,th.svelte-1wane23{border-bottom:1px solid var(--border);padding:.35rem .25rem}.rec.svelte-1wane23{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.del.svelte-1wane23{min-height:28px;margin-left:auto;padding:0 .5rem}summary.svelte-1wane23{cursor:pointer}.arena.svelte-1y56kaa{text-align:center;transition:background .15s}.arena.good.svelte-1y56kaa{background:var(--good-soft)}.arena.bad.svelte-1y56kaa{background:var(--bad-soft)}.hud.svelte-1y56kaa{justify-content:space-between}svg.svelte-1y56kaa{width:100%;height:auto;display:block}.staff.svelte-1y56kaa{stroke:var(--text);stroke-width:1px}.clef.svelte-1y56kaa{fill:var(--text)}.hit.svelte-1y56kaa{stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 4}.head.svelte-1y56kaa{fill:var(--text)}.head.target.svelte-1y56kaa{fill:var(--accent)}.msg.svelte-1y56kaa{min-height:1.4rem;color:var(--bad)}.buttons.svelte-1y56kaa{justify-content:center;margin:.5rem 0}.buttons.svelte-1y56kaa button:where(.svelte-1y56kaa){justify-content:center;min-width:3.2rem}main.svelte-1n46o8q{max-width:760px;padding:1rem 1rem calc(5rem + env(safe-area-inset-bottom));margin:0 auto}nav.svelte-1n46o8q{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav.svelte-1n46o8q a:where(.svelte-1n46o8q){max-width:150px;color:var(--muted);flex-direction:column;flex:1;align-items:center;padding:.45rem 0;font-size:.75rem;text-decoration:none;display:flex}nav.svelte-1n46o8q a.active:where(.svelte-1n46o8q){color:var(--accent);font-weight:600}.icon.svelte-1n46o8q{font-size:1.25rem;line-height:1.2}
