:root{--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--target-min:2.75rem;--radius-sm:4px;--radius-md:8px;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--duration-fast:.12s;--duration-normal:.2s;--gray-0:#fff;--gray-50:#f7f8fa;--gray-100:#eef1f5;--gray-200:#e2e6ec;--gray-300:#d7dce2;--gray-500:#5b6570;--gray-800:#1b1f24;--gray-900:#121417;--blue-200:#c3daff;--blue-300:#9ec5ff;--blue-400:#6ea8fe;--blue-600:#1a63d4;--blue-700:#1550b3;--blue-800:#123f8a;--red-300:#f2b8b5;--red-700:#b3261e;--red-800:#8f1d17;--red-900:#6f1712;--green-300:#86efac;--green-700:#166534;--cream-0:#fff;--cream-50:#fbf6ee;--cream-100:#fdf1e3;--sand-200:#eadfce;--sand-400:#8b7f6e;--ink-800:#312a22;--ink-600:#6d6355;--clay-600:#c2410c;--clay-800:#9a3412;--clay-900:#7c2d12;--peach-100:#fcd9b8;--peach-200:#f9c99a;--peach-300:#f5b877;--espresso-700:#2a1608;--espresso-800:#241d17;--espresso-900:#191410;--warm-100:#f6f0e8;--warm-200:#b3a795;--warm-300:#3d332a;--warm-400:#4d4237;--warm-250:#8a7d6b;--espresso-600:#3a2a1c;--parch-50:#f8f1e4;--parch-100:#f6ead0;--parch-200:#efe6d4;--parch-300:#ddcfae;--parch-600:#7d6c50;--parch-700:#6a5d4a;--parch-800:#3b3226;--umber-100:#eee3cf;--umber-200:#b9ab93;--umber-400:#8b7d68;--umber-600:#3f382a;--umber-700:#332812;--umber-800:#241e15;--umber-900:#1b1710;--amber-50:#fdf6e8;--amber-100:#fadfb2;--amber-200:#f5c88a;--amber-300:#f0b05e;--amber-700:#8f4f05;--amber-800:#7a4206;--amber-900:#663605;--amber-950:#2b1a04;--slate-blue-50:#e8f0fd;--slate-blue-100:#a8c9ff;--slate-blue-200:#8db6ff;--slate-blue-800:#1c2b45;--slate-blue-900:#0b1220;--slate-grey-300:#9aa4b0;--slate-grey-400:#8b98a8;--slate-grey-700:#2f3742;--slate-grey-800:#2c3540;--slate-grey-900:#232a33;--hc-black:#000;--hc-grey-100:#e6e6e6;--hc-grey-400:#b0b0b0;--hc-grey-600:#3d3d3d;--hc-grey-900:#1f1f1f;--hc-blue-700:#00c;--hc-blue-800:#009;--hc-blue-900:#006;--hc-yellow-100:#ff0;--hc-yellow-200:#ff6;--hc-yellow-300:#ff9;--hc-red-300:#ffb3b0;--hc-green-900:#0f4c22;--hc-green-300:#a7f3b0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,[data-palette=warm]{--color-bg:var(--lightningcss-light,var(--cream-50))var(--lightningcss-dark,var(--espresso-900));--color-surface:var(--lightningcss-light,var(--cream-0))var(--lightningcss-dark,var(--espresso-800));--color-text:var(--lightningcss-light,var(--ink-800))var(--lightningcss-dark,var(--warm-100));--color-text-muted:var(--lightningcss-light,var(--ink-600))var(--lightningcss-dark,var(--warm-200));--color-border:var(--lightningcss-light,var(--sand-200))var(--lightningcss-dark,var(--warm-300));--color-border-strong:var(--lightningcss-light,var(--sand-400))var(--lightningcss-dark,var(--warm-250));--color-accent:var(--lightningcss-light,var(--clay-600))var(--lightningcss-dark,var(--peach-300));--color-accent-strong:var(--lightningcss-light,var(--clay-800))var(--lightningcss-dark,var(--peach-200));--color-accent-stronger:var(--lightningcss-light,var(--clay-900))var(--lightningcss-dark,var(--peach-100));--color-accent-contrast:var(--lightningcss-light,var(--cream-0))var(--lightningcss-dark,var(--espresso-700));--color-accent-soft:var(--lightningcss-light,var(--cream-100))var(--lightningcss-dark,var(--espresso-600));--color-focus:var(--lightningcss-light,var(--clay-600))var(--lightningcss-dark,var(--peach-300));--color-focus-on-accent:var(--lightningcss-light,var(--cream-0))var(--lightningcss-dark,var(--espresso-700));--color-danger:var(--lightningcss-light,var(--red-700))var(--lightningcss-dark,var(--red-300));--color-success:var(--lightningcss-light,var(--green-700))var(--lightningcss-dark,var(--green-300));--color-neutral-hover:var(--lightningcss-light,#f7ecdd)var(--lightningcss-dark,#2f2721);--color-neutral-active:var(--lightningcss-light,#efe1cd)var(--lightningcss-dark,#3a3129)}[data-palette=sand]{--color-bg:var(--lightningcss-light,var(--parch-200))var(--lightningcss-dark,var(--umber-900));--color-surface:var(--lightningcss-light,var(--parch-50))var(--lightningcss-dark,var(--umber-800));--color-text:var(--lightningcss-light,var(--parch-800))var(--lightningcss-dark,var(--umber-100));--color-text-muted:var(--lightningcss-light,var(--parch-700))var(--lightningcss-dark,var(--umber-200));--color-border:var(--lightningcss-light,var(--parch-300))var(--lightningcss-dark,var(--umber-600));--color-border-strong:var(--lightningcss-light,var(--parch-600))var(--lightningcss-dark,var(--umber-400));--color-accent:var(--lightningcss-light,var(--amber-700))var(--lightningcss-dark,var(--amber-300));--color-accent-strong:var(--lightningcss-light,var(--amber-800))var(--lightningcss-dark,var(--amber-200));--color-accent-stronger:var(--lightningcss-light,var(--amber-900))var(--lightningcss-dark,var(--amber-100));--color-accent-contrast:var(--lightningcss-light,var(--amber-50))var(--lightningcss-dark,var(--amber-950));--color-accent-soft:var(--lightningcss-light,var(--parch-100))var(--lightningcss-dark,var(--umber-700));--color-focus:var(--lightningcss-light,var(--amber-700))var(--lightningcss-dark,var(--amber-300));--color-focus-on-accent:var(--lightningcss-light,var(--amber-50))var(--lightningcss-dark,var(--amber-950));--color-danger:var(--lightningcss-light,var(--red-700))var(--lightningcss-dark,var(--red-300));--color-success:var(--lightningcss-light,var(--green-700))var(--lightningcss-dark,var(--green-300));--color-neutral-hover:var(--lightningcss-light,#f1e6cf)var(--lightningcss-dark,#2c251a);--color-neutral-active:var(--lightningcss-light,#e8d9bd)var(--lightningcss-dark,#362e21)}[data-palette=slate]{--color-bg:var(--lightningcss-light,var(--gray-50))var(--lightningcss-dark,var(--gray-900));--color-surface:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--gray-800));--color-text:var(--lightningcss-light,var(--gray-800))var(--lightningcss-dark,var(--gray-0));--color-text-muted:var(--lightningcss-light,var(--gray-500))var(--lightningcss-dark,var(--slate-grey-300));--color-border:var(--lightningcss-light,var(--gray-200))var(--lightningcss-dark,var(--slate-grey-700));--color-border-strong:var(--lightningcss-light,var(--gray-500))var(--lightningcss-dark,var(--slate-grey-400));--color-accent:var(--lightningcss-light,var(--blue-600))var(--lightningcss-dark,var(--slate-blue-200));--color-accent-strong:var(--lightningcss-light,var(--blue-700))var(--lightningcss-dark,var(--slate-blue-100));--color-accent-stronger:var(--lightningcss-light,var(--blue-800))var(--lightningcss-dark,var(--blue-200));--color-accent-contrast:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--slate-blue-900));--color-accent-soft:var(--lightningcss-light,var(--slate-blue-50))var(--lightningcss-dark,var(--slate-blue-800));--color-focus:var(--lightningcss-light,var(--blue-600))var(--lightningcss-dark,var(--slate-blue-200));--color-focus-on-accent:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--slate-blue-900));--color-danger:var(--lightningcss-light,var(--red-700))var(--lightningcss-dark,var(--red-300));--color-success:var(--lightningcss-light,var(--green-700))var(--lightningcss-dark,var(--green-300));--color-neutral-hover:var(--lightningcss-light,var(--gray-100))var(--lightningcss-dark,var(--slate-grey-900));--color-neutral-active:var(--lightningcss-light,var(--gray-200))var(--lightningcss-dark,var(--slate-grey-800))}[data-palette=high-contrast]{--color-bg:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--hc-black));--color-surface:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--hc-black));--color-text:var(--lightningcss-light,var(--hc-black))var(--lightningcss-dark,var(--gray-0));--color-text-muted:var(--lightningcss-light,var(--hc-grey-600))var(--lightningcss-dark,var(--hc-grey-400));--color-border:var(--lightningcss-light,var(--hc-black))var(--lightningcss-dark,var(--gray-0));--color-border-strong:var(--lightningcss-light,var(--hc-black))var(--lightningcss-dark,var(--gray-0));--color-accent:var(--lightningcss-light,var(--hc-blue-700))var(--lightningcss-dark,var(--hc-yellow-100));--color-accent-strong:var(--lightningcss-light,var(--hc-blue-800))var(--lightningcss-dark,var(--hc-yellow-200));--color-accent-stronger:var(--lightningcss-light,var(--hc-blue-900))var(--lightningcss-dark,var(--hc-yellow-300));--color-accent-contrast:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--hc-black));--color-accent-soft:var(--lightningcss-light,var(--hc-grey-100))var(--lightningcss-dark,var(--hc-grey-900));--color-focus:var(--lightningcss-light,var(--hc-blue-700))var(--lightningcss-dark,var(--hc-yellow-100));--color-focus-on-accent:var(--lightningcss-light,var(--gray-0))var(--lightningcss-dark,var(--hc-black));--color-danger:var(--lightningcss-light,var(--red-800))var(--lightningcss-dark,var(--hc-red-300));--color-success:var(--lightningcss-light,var(--hc-green-900))var(--lightningcss-dark,var(--hc-green-300));--color-neutral-hover:var(--lightningcss-light,#f2f2f2)var(--lightningcss-dark,#1a1a1a);--color-neutral-active:var(--lightningcss-light,#e6e6e6)var(--lightningcss-dark,#262626)}:root{--color-scrim:var(--lightningcss-light,#ffffffb8)var(--lightningcss-dark,#121417b8);--color-backdrop:var(--lightningcss-light,#3a2a1c61)var(--lightningcss-dark,#0000008c);--button-bg:var(--color-accent);--button-bg-hover:var(--color-accent-strong);--button-bg-active:var(--color-accent-stronger);--button-fg:var(--color-accent-contrast);--button-secondary-bg:var(--color-surface);--button-secondary-bg-hover:var(--color-neutral-hover);--button-secondary-bg-active:var(--color-neutral-active);--button-danger-bg:var(--red-700);--button-danger-bg-hover:var(--red-800);--button-danger-bg-active:var(--red-900);--button-danger-fg:var(--gray-0);--card-bg:var(--color-surface);--card-border:var(--color-border);--chip-bg:var(--color-accent-soft);--chip-fg:var(--color-text);--drawer-bg:var(--color-surface);--drawer-header-bg:var(--color-accent-soft);--drawer-inline-size:26rem;--radius-lg:14px;--radius-pill:999px;--shadow-card:0 1px 2px #3c2a140f, 0 8px 24px #3c2a1414;--shadow-dock:0 -2px 12px #3c2a141f;--shadow-drawer:-12px 0 32px #3c2a142e;--z-backdrop:20;--z-app-header:25;--z-skip-link:26;--z-drawer:30;--score-bg:var(--cream-0);--score-border:var(--sand-200);--score-radius:var(--radius-md);--score-staff:var(--ink-600);--score-note:var(--ink-800);--score-active:var(--clay-600);--score-correct:var(--green-700);--score-incorrect:var(--red-700);--score-skipped:var(--ink-600);--score-upcoming:var(--ink-600);--score-staff-line-width:1;--score-overlay-bg:var(--color-scrim);--score-flash-duration:.15s;--piano-white:var(--gray-0);--piano-black:var(--lightningcss-light,var(--espresso-900))var(--lightningcss-dark,var(--warm-300));--piano-ink:var(--ink-800);--piano-held:var(--peach-200);--piano-expected:var(--blue-700);--piano-expected-on-black:var(--peach-300);--piano-wrong:var(--red-700);--piano-wrong-on-black:var(--red-300);--piano-border:var(--sand-400);--piano-black-border:var(--lightningcss-light,var(--sand-400))var(--lightningcss-dark,var(--warm-200));--piano-white-hover:var(--sand-200);--piano-black-hover:var(--warm-400);--piano-expected-fill:var(--blue-200);--piano-expected-fill-on-black:var(--blue-800);--piano-key-min:var(--target-min);--piano-white-sheen:var(--sand-200);--piano-black-sheen:var(--lightningcss-light,var(--espresso-800))var(--lightningcss-dark,var(--warm-400));--piano-key-shadow:0 2px 3px var(--lightningcss-light,#19141059)var(--lightningcss-dark,#0000008c);--piano-key-lip:5px;--piano-key-lip-pressed:2px;--piano-scrollbar-thumb:var(--color-border-strong);--piano-scrollbar-track:var(--card-bg);--piano-scrollbar-size:6px;--piano-key-white-size:clamp(2.75rem, 3.25vw, 3.5rem);--piano-key-black-scale:.62;--piano-key-black-min:1.5rem;--hint-tone-info:var(--color-text-muted);--hint-tone-miss:var(--color-danger);--hint-tone-skip:var(--color-text-muted);--playhead:var(--lightningcss-light,var(--clay-600))var(--lightningcss-dark,var(--peach-300));--counter-gap:var(--space-2)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--score-bg:var(--espresso-900);--score-border:var(--warm-300);--score-staff:var(--warm-200);--score-note:var(--warm-100);--score-active:var(--peach-300);--score-correct:var(--green-300);--score-incorrect:var(--red-300);--score-skipped:var(--warm-200);--score-upcoming:var(--warm-200)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--score-bg:var(--espresso-900);--score-border:var(--warm-300);--score-staff:var(--warm-200);--score-note:var(--warm-100);--score-active:var(--peach-300);--score-correct:var(--green-300);--score-incorrect:var(--red-300);--score-skipped:var(--warm-200);--score-upcoming:var(--warm-200);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);font-size:var(--text-md);scroll-padding-block-end:12rem;line-height:1.5}body{background:var(--color-bg);color:var(--color-text);margin:0}main{max-width:60rem;padding:var(--space-5) var(--space-4);margin:0 auto}h1{font-size:var(--text-xl);line-height:1.25}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.skip-link{top:var(--space-2);left:var(--space-2);z-index:var(--z-skip-link);min-height:var(--target-min);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;display:inline-flex;position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.route-loading{margin:var(--space-4) var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm)}.icon{block-size:1.5rem;inline-size:1.5rem}.action-link{min-height:var(--target-min);padding-inline:var(--space-3);border-radius:var(--radius-sm);align-items:center;display:inline-flex}.recovery-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.app-header{z-index:var(--z-app-header);justify-content:space-between;align-items:center;gap:var(--space-3);max-width:60rem;padding:var(--space-3) var(--space-4);border-block-end:1px solid var(--color-border);background:var(--color-bg);flex-wrap:wrap;margin:0 auto;display:flex;position:relative}:is(body:has(.k-drawer-backdrop) .app-header,body:has(.k-drawer-backdrop) .skip-link){visibility:hidden}.app-header__brand{min-height:var(--target-min);padding-inline:var(--space-2);font-size:var(--text-lg);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.app-header>.app-header__menu{display:none}.app-menu__nav{gap:var(--space-1);display:grid}.app-menu__link{min-block-size:var(--target-min);padding-inline:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-lg);align-items:center;font-weight:600;text-decoration:none;display:flex}.app-menu__link:hover{background:var(--button-secondary-bg-hover)}.app-menu__link.active{text-decoration:underline;text-decoration-thickness:2px}@media (width<40rem){.app-header{gap:var(--space-2);padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) max(var(--space-2), env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));flex-wrap:nowrap}.app-header>.app-header__menu{display:inline-flex}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.practice-page{position:relative}.practice-hero{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-4);flex-wrap:wrap;margin-block-end:var(--space-4);display:flex}.practice-hero h1{margin-block:0 var(--space-1)}.practice-hero__cluster{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.practice-hero__summary{align-items:center;gap:var(--space-2);min-width:0;display:flex}.practice-hero__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.setup-summary{min-height:var(--target-min);padding:var(--space-1) var(--space-3);background:var(--chip-bg);color:var(--chip-fg);border-radius:var(--radius-pill);font:inherit;font-size:var(--text-sm);cursor:pointer;border:0;align-items:center;margin:0;display:inline-flex}.setup-summary:hover{background:var(--color-neutral-hover)}.score-card{display:block}.transport-dock{z-index:2;padding:var(--space-2) var(--space-3);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-dock);margin-block-start:var(--space-4);position:sticky;bottom:0}.practice-page--session .transport-dock{position:static}.transport-dock--playing{box-shadow:var(--shadow-dock), inset 0 3px 0 0 var(--color-accent-soft)}@media (width<64rem){:root{--drawer-inline-size:min(24rem, 92vw)}}@media (width<40rem){:root{--drawer-inline-size:100%}body:has(.practice-page) .app-header{gap:var(--space-1);padding:var(--space-2) var(--space-3)}body:has(.practice-page) .app-header__brand{min-inline-size:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;padding-inline:0;overflow:hidden}main:has(.practice-page){padding-block-start:var(--space-4);padding-inline:var(--space-2)}.practice-hero{gap:var(--space-2) var(--space-4);margin-block-end:var(--space-2)}.practice-hero>h1{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.setup-summary{line-height:1.35}.k-surface.score-card{padding:var(--space-1)}body:has(.k-drawer-backdrop){overflow:hidden}.audio-notice{margin-block:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.notice-line{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);margin-block-start:var(--space-2)}.audio-notice:has(.audio-notice__compact) .audio-notice__full{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.audio-notice .audio-notice__compact{display:inline}.audio-notice--failed{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.audio-notice--failed .audio-notice__retry{padding-inline:var(--space-2)}}@media (width<40rem) or (height<34rem){#root:has(.practice-page){flex-direction:column;height:100dvh;display:flex}.app-header{inline-size:100%}main:has(.practice-page){max-width:none;min-height:0;padding:var(--space-1);padding-inline:max(var(--space-1), env(safe-area-inset-left)) max(var(--space-1), env(safe-area-inset-right));flex-direction:column;flex:1 1 0;margin:0;display:flex}.practice-page .audio-notice{margin-block:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);background:0 0;border:0}.practice-page .audio-notice:has(.audio-notice__compact) .audio-notice__full{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.practice-page .audio-notice .audio-notice__compact{display:inline}.practice-page .audio-notice--failed{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.practice-page .audio-notice--failed .audio-notice__retry{padding-inline:var(--space-2)}.practice-page{row-gap:var(--space-1);flex:1 1 0;grid-template-rows:auto minmax(10.5rem,1fr) auto auto auto auto;grid-template-areas:"hero""card""piano""strip""dock""summary";min-height:0;display:grid}.practice-page>.practice-hero{grid-area:hero;margin-block-end:0}.practice-page>.score-card{flex-direction:column;grid-area:card;min-block-size:0;display:flex;overflow:hidden}.practice-page>.score-card .piece-header__identity{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin-block-end:var(--space-1);display:flex}.practice-page>.score-card .piece-header__identity .setup-summary{flex-wrap:wrap;max-inline-size:100%}.practice-page>.score-card .piece-header__identity[data-collapsed=true]{visibility:hidden;block-size:0;margin-block-end:0;overflow:hidden}.practice-page>.score-card .piece-header__identity[data-collapsed=true] .visually-hidden{visibility:visible}.practice-page>.score-card .piece-meta--header{margin:0}.practice-page>.score-card>.score-host{flex:1 1 0;min-height:0;overflow:auto}.practice-page>.on-screen-piano{grid-area:piano;margin-block-start:0}.practice-page>.session-feedback{grid-area:strip}.practice-page>.transport-dock{grid-area:dock;margin-block-start:0;padding-block-end:max(var(--space-2), env(safe-area-inset-bottom));position:static;overflow:visible}.practice-page>.transport-dock .session-bar{gap:var(--space-1) var(--space-2);row-gap:var(--space-1)}@media (width<22.5rem){.practice-page>.transport-dock .session-bar{gap:var(--space-1)}.practice-page>.transport-dock .session-bar .k-action{padding-inline:var(--space-2)}.practice-page{row-gap:2px}}.practice-page>.transport-dock .session-counters{color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:nowrap}.practice-page>.transport-dock .quick-toggles{margin-block-start:var(--space-1)}.practice-page>.transport-dock .quick-toggles[data-compact=true]{gap:var(--space-1)}.practice-page>.transport-dock .quick-toggles[data-compact=true] .k-radio-group--segmented label{padding-inline:var(--space-2)}.practice-page>.score-card{padding-block:0}@media (height<44rem){.practice-page .piano-keys__bed{--piano-key-white-block-size:calc(1.6 * var(--piano-key-white-size))}.practice-page .on-screen-piano{padding-block:var(--space-1)}.practice-page .piano-keys,.practice-page>.session-feedback{margin-block-start:var(--space-1)}body:has(.practice-page) .app-header{padding-block:max(var(--space-1), env(safe-area-inset-top)) max(var(--space-1), env(safe-area-inset-bottom))}}@media (width>=40rem){body:has(.practice-page) .app-header{gap:var(--space-1);padding-block:max(var(--space-1), env(safe-area-inset-top)) max(var(--space-1), env(safe-area-inset-bottom));padding-inline:max(var(--space-3), env(safe-area-inset-left)) max(var(--space-3), env(safe-area-inset-right))}body:has(.practice-page) .app-header__brand{min-inline-size:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;padding-inline:0;overflow:hidden}.practice-page{grid-template-rows:auto minmax(7rem,1fr) auto auto auto auto}.practice-page>.transport-dock[data-layout=one-row]{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin-block-start:var(--space-1);display:flex}.practice-page>.transport-dock[data-layout=one-row]>.audio-notice,.practice-page>.transport-dock[data-layout=one-row]>.session-midi{flex-basis:100%;margin-block:0}.practice-page>.transport-dock[data-layout=one-row] .session-bar,.practice-page>.transport-dock[data-layout=one-row] .quick-toggles{margin-block-start:0}.practice-page>.transport-dock[data-layout=one-row]{padding-block:var(--space-1)}.practice-page>.session-feedback{padding-block:var(--space-1);min-height:0;margin-block-start:var(--space-1)}.practice-page{row-gap:2px}body:has(.practice-page[data-midi-focus=active]) .app-header{display:none}.practice-page[data-midi-focus=active]{grid-template-rows:auto minmax(7rem,1fr) auto;grid-template-areas:"hero""card""dock"}.practice-page[data-midi-focus=active]>.session-feedback{z-index:3;max-inline-size:min(60%,28rem);min-height:0;padding:var(--space-1) var(--space-2);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);pointer-events:none;margin:0;position:absolute;inset-block-start:var(--space-1);inset-inline-end:var(--space-2)}.practice-page[data-midi-focus=active]>.session-feedback .hint-strip{font-size:var(--text-sm);background:0 0;border:0;padding:0}.practice-page[data-midi-focus=active]>.session-feedback .recent-results,.practice-page[data-midi-focus=active]>.transport-dock .session-midi{display:none}.practice-page[data-midi-focus=active]>.session-feedback .k-count-in{gap:var(--space-1)}}.practice-page[data-review=true]{grid-template-rows:auto minmax(7rem,auto) auto auto auto 1fr}.practice-page[data-review=true]>.score-card{min-block-size:0}.practice-page[data-review=true]>.session-summary-host{margin-block-start:0}.practice-page>.session-summary-host{grid-area:summary}}.notice-line{margin-block:var(--space-3) 0;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.notice-line--ok{border-color:var(--color-success);color:var(--color-success)}.score-host{background:var(--score-bg);border:1px solid var(--score-border);border-radius:var(--score-radius);min-height:6rem;overflow-x:auto}.score-status{margin-block:var(--space-2) 0;color:var(--color-text-muted)}.piece-meta{color:var(--color-text-muted);font-size:var(--text-sm);margin-block-start:var(--space-2)}.piece-meta__tempo{font-variant-numeric:tabular-nums}.piece-meta code{font-family:var(--font-mono)}.piece-id-readout{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.piece-id-readout code{font-family:var(--font-mono)}.session-bar{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.session-primary{min-inline-size:7rem}.session-counters{gap:var(--counter-gap);flex-wrap:wrap;margin:0;display:flex}.session-counters>div{align-items:baseline;gap:var(--space-1);display:flex}.session-counters dt{color:var(--color-text-muted);font-size:var(--text-sm)}.session-counters dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.quick-toggles{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin-block-start:var(--space-2);display:flex}.quick-toggles__tempo{flex:100%;min-inline-size:0}.session-tempo{margin-block-start:var(--space-1)}.session-midi{align-items:center;gap:var(--space-1);max-inline-size:100%;color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:inline-flex}.session-midi__dot{background:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-pill);flex:none;block-size:.5rem;inline-size:.5rem}.session-midi--waiting .session-midi__dot{border-color:var(--color-text-muted);background:0 0}.session-midi__text{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-inline-size:0;overflow:hidden}.session-midi--lost{margin-block-start:var(--space-2);display:block}.session-midi__link{color:var(--color-accent);text-decoration:underline}.session-feedback{min-height:calc(1.5em + var(--space-2) * 2 + 2px);margin-block-start:var(--space-3)}.hint-strip{padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:0}.hint-strip[data-tone=turn]{font-weight:600}.hint-strip[data-tone=missing]{color:var(--hint-tone-info)}.hint-strip[data-tone=miss]{color:var(--hint-tone-miss);border-color:var(--hint-tone-miss)}.hint-strip[data-tone=skip]{color:var(--hint-tone-skip)}.hint-strip[data-tone=hold]{color:var(--hint-tone-info)}.recent-results{gap:var(--space-1);color:var(--color-text-muted);margin-block-start:var(--space-1);display:flex}.recent-result--hit{color:var(--color-success)}.recent-result--miss{color:var(--hint-tone-miss)}.on-screen-piano{padding:var(--space-3);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);margin-block-start:var(--space-4)}.piano-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.piano-range{padding:var(--space-1) var(--space-3);background:var(--chip-bg);color:var(--chip-fg);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.piano-keys{padding:var(--space-1);overscroll-behavior-inline:contain;touch-action:none;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--piano-scrollbar-thumb) var(--piano-scrollbar-track);justify-content:safe center;margin-block-start:var(--space-2);display:flex;overflow-x:auto;container-type:inline-size}.piano-keys::-webkit-scrollbar{height:var(--piano-scrollbar-size)}.piano-keys::-webkit-scrollbar-thumb{background:var(--piano-scrollbar-thumb);border-radius:var(--radius-pill)}.piano-keys::-webkit-scrollbar-track{background:var(--piano-scrollbar-track)}.piano-keys__bed{--piano-key-white-block-size:calc(2 * var(--piano-key-white-size));--piano-key-black-size:max(var(--piano-key-black-min), calc(var(--piano-key-white-size) * var(--piano-key-black-scale)));--piano-key-black-block-size:calc(var(--piano-key-white-block-size) * var(--piano-key-black-scale));inline-size:calc(var(--white-count) * var(--piano-key-white-size));flex:none;display:flex;position:relative}@supports (container-type:inline-size){.piano-keys__bed{--piano-key-white-size:clamp(var(--piano-key-min), 100cqw / var(--white-count), 3.5rem)}}.piano-key{color:var(--piano-ink);border:1px solid var(--piano-border);border-block-end-width:var(--piano-key-lip);border-radius:0 0 var(--radius-sm) var(--radius-sm);cursor:pointer;transition:transform var(--duration-fast) ease-out;flex-direction:column;justify-content:flex-end;align-items:center;padding-block-end:var(--space-1);display:flex;position:relative}.piano-key:focus-visible:before{content:"";z-index:3;border:2px solid var(--color-focus);border-radius:0 0 calc(var(--radius-sm) + 2px) calc(var(--radius-sm) + 2px);pointer-events:none;position:absolute;inset:-4px}@media (hover:hover){.piano-keys:not([aria-disabled=true]) .piano-key--white:hover:not(:focus-visible):not([data-held=true]):not([data-expected=true]){background-color:var(--piano-white-hover)}.piano-keys:not([aria-disabled=true]) .piano-key--black:hover:not(:focus-visible):not([data-held=true]):not([data-expected=true]){background-color:var(--piano-black-hover)}}.piano-keys[aria-disabled=true] .piano-key{cursor:default}.piano-key--white{flex:0 0 var(--piano-key-white-size);min-inline-size:var(--piano-key-min);min-block-size:var(--piano-key-min);block-size:var(--piano-key-white-block-size);background-color:var(--piano-white);background-image:linear-gradient(to bottom, var(--piano-white-sheen) 0%, transparent 45%);border-inline-start-width:0;border-block-end-color:var(--piano-white-sheen)}.piano-keys__bed .piano-key--white:first-child{border-inline-start-width:1px}.piano-key--black{z-index:1;inline-size:var(--piano-key-black-size);block-size:var(--piano-key-black-block-size);color:var(--piano-white);background-color:var(--piano-black);background-image:linear-gradient(to bottom, var(--piano-black-sheen) 0%, transparent 55%);border-color:var(--piano-black-border);border-block-end-color:var(--piano-black-sheen);box-shadow:var(--piano-key-shadow);position:absolute;inset-block-start:0;inset-inline-start:calc((var(--white-index) + 1) * var(--piano-key-white-size) - var(--piano-key-black-size) / 2)}.piano-key[data-expected=true]:not([data-held=true]){background-color:var(--piano-expected-fill)}.piano-key--black[data-expected=true]:not([data-held=true]){background-color:var(--piano-expected-fill-on-black)}.piano-key[data-held=true]{color:var(--piano-ink);background-color:var(--piano-held);border-color:var(--piano-border);border-block-end-width:var(--piano-key-lip-pressed);box-shadow:inset 0 3px 0 0 var(--piano-ink);background-image:none;transform:translateY(2px)}.piano-key__mark{font-size:var(--text-sm);position:absolute;inset-block-start:var(--space-1)}.piano-key[data-expected=true][data-wrong=true] .piano-key__mark--wrong{transform:translate(.55rem)}.piano-key__name{font-size:var(--text-sm);white-space:nowrap;font-weight:600;line-height:1}.piano-key__hint{border:1px solid var(--piano-border);border-radius:var(--radius-sm);min-inline-size:1.1em;color:inherit;font-size:var(--text-sm);justify-content:center;align-items:center;margin-block-end:1px;padding-inline:2px;line-height:1.1;display:inline-flex}.piano-key--black .piano-key__hint{border-color:var(--piano-black-border)}.piano-key[data-expected=true] .piano-key__mark--expected{color:var(--piano-expected)}.piano-key--black[data-expected=true] .piano-key__mark--expected{color:var(--piano-expected-on-black)}.piano-key[data-wrong=true] .piano-key__mark--wrong{color:var(--piano-wrong)}.piano-key--black[data-wrong=true] .piano-key__mark--wrong{color:var(--piano-wrong-on-black)}.piano-key[data-held=true] .piano-key__mark--expected,.piano-key[data-held=true] .piano-key__mark--wrong{color:var(--piano-ink)}.piano-key[data-held=true][data-expected=true]:after{background:var(--piano-ink)}.piano-key[data-expected=true]:after{content:"";background:var(--piano-expected);border-end-end-radius:var(--radius-sm);border-end-start-radius:var(--radius-sm);block-size:3px;position:absolute;inset-block-end:0;inset-inline:0}.piano-key--black[data-expected=true]:after{background:var(--piano-expected-on-black)}.vf-playhead{z-index:1;background:var(--playhead);pointer-events:none;width:2px;position:absolute;top:0;left:0}.vf-pedal-lane{align-items:center;gap:var(--space-2);padding-inline:var(--space-2);color:var(--score-note);font-family:var(--font-sans);pointer-events:none;font-size:11px;display:flex;position:absolute;left:0;right:0}.vf-pedal-lane[data-pedal=none],.vf-pedal-lane[hidden]{display:none}.vf-pedal-lane__label{font-style:italic;font-weight:700}.vf-pedal-lane__line{border-block-start:1.5px solid var(--score-active);flex:1}.vf-pedal-lane__release{font-weight:700}.vf-pedal-lane[data-pedal=down] .vf-pedal-lane__release{visibility:hidden}.audio-notice__compact{display:none}.audio-notice{margin-block:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.advanced{margin-block:var(--space-3)}.advanced>summary{min-height:var(--target-min);cursor:pointer;align-items:center;font-weight:600;display:inline-flex}.advanced__grid{gap:var(--space-2) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin-block-start:var(--space-2);display:grid}.debug-table{border-collapse:collapse;width:100%}.debug-table-scroll{margin-block-start:var(--space-2);overflow-x:auto}.midi-monitor-controls{gap:var(--space-2);margin-block:var(--space-2) var(--space-3);display:flex}.midi-monitor code{white-space:nowrap}.debug-table th,.debug-table td{padding:var(--space-2);border-block-end:1px solid var(--color-border);text-align:start;vertical-align:top}.debug-table code{font-family:var(--font-mono);font-size:var(--text-sm)}details>pre{padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);overflow-x:auto}.vf-container{position:relative}@keyframes score-in{0%{opacity:.55}to{opacity:1}}.vf-container svg{animation:score-in var(--duration-normal) ease-out}.vf-canvas svg{max-width:100%;display:block}.vf-canvas--scroll-x{overflow-x:auto}.vf-canvas--scroll-x svg{max-width:none}.vf-canvas--windowed{overflow:hidden}.vf-canvas--line{scrollbar-width:none;overscroll-behavior-x:contain;touch-action:manipulation;display:grid;overflow:auto hidden}.vf-container:has(.vf-canvas--line[data-vf-edge=more]):after{content:"";width:var(--space-5);pointer-events:none;background:linear-gradient(to right, transparent, var(--score-bg));position:absolute;inset-block:0;inset-inline-end:0}.vf-canvas--line::-webkit-scrollbar{display:none}.vf-canvas--line svg{grid-area:1/1;max-width:none}.vf-prefix{z-index:1;border-inline-end:1px solid var(--score-border);background:var(--score-bg);pointer-events:none;grid-area:1/1;place-self:start;display:grid;position:sticky;left:0}.vf-canvas--line:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.vf-canvas--line{scroll-behavior:auto}}@media (forced-colors:active){.vf-prefix{border-inline-end-color:canvastext}.vf-container:has(.vf-canvas--line[data-vf-edge=more]):after{content:none}}.vf-overlay{letter-spacing:.04em;color:var(--score-note);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) ease;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.vf-overlay--dimmed,.vf-overlay--paused{background:var(--score-overlay-bg);opacity:1}.vf-overlay--paused{font-size:var(--text-lg)}.vf-col-marker,.vf-col-badge{font-family:var(--font-sans);font-size:11px;font-weight:700}.vf-col-marker,.vf-col-highlight,.vf-col-badge,.vf-col-underline,.vf-col-strike{visibility:hidden}.vf-col-highlight{fill:var(--score-active);stroke:none;opacity:.22}.vf-col-underline{stroke:var(--score-active);stroke-width:2px}.vf-col-rail-track{stroke:var(--score-active);stroke-width:2px;opacity:.22}.vf-col-rail-fill{stroke:var(--score-active);stroke-width:3px;stroke-linecap:butt}.vf-col-rail-goal{stroke:var(--score-active);stroke-width:2px}[data-hold-reached] .vf-col-rail-goal{stroke-width:3px}.vf-col--active[data-hold] .vf-col-underline{visibility:hidden}.vf-col-strike{stroke:var(--score-skipped);stroke-width:1.5px;stroke-dasharray:4 3}.vf-col-badge{fill:var(--score-staff)}.vf-col--active .vf-stavenote *{fill:var(--score-active);stroke:var(--score-active)}.vf-col--active .vf-col-highlight,.vf-col--active .vf-col-underline{visibility:visible}.vf-col--correct .vf-stavenote *{fill:var(--score-correct);stroke:var(--score-correct)}.vf-col--correct .vf-col-marker{visibility:visible;fill:var(--score-correct)}.vf-col--incorrect .vf-stavenote *{fill:var(--score-incorrect);stroke:var(--score-incorrect)}.vf-col--incorrect .vf-col-marker,.vf-col--incorrect .vf-col-badge{visibility:visible;fill:var(--score-incorrect)}.vf-col--skipped .vf-stavenote *{fill:var(--score-skipped);stroke:var(--score-skipped);opacity:.6}.vf-col--skipped .vf-col-marker,.vf-col--skipped .vf-col-badge,.vf-col--skipped .vf-col-strike{visibility:visible}.vf-col--skipped .vf-col-marker{fill:var(--score-skipped)}.vf-col--upcoming .vf-col-marker{visibility:visible;fill:var(--score-upcoming)}@keyframes vf-col-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.vf-col--shake{animation:vf-col-shake var(--duration-fast) ease-in-out 3}@keyframes vf-col-flash{0%{opacity:.35}to{opacity:1}}.vf-col--flash .vf-stavenote{animation:vf-col-flash var(--score-flash-duration) ease-out}@media (forced-colors:active){.vf-stavenote *,.vf-col-marker,.vf-col-badge{fill:canvastext!important;stroke:canvastext!important}.vf-col--skipped .vf-stavenote *{opacity:1!important}.vf-col-underline,.vf-col-strike,.vf-col-rail-track,.vf-col-rail-goal,.vf-col-rail-fill{stroke:canvastext!important}.vf-pedal-lane{color:canvastext!important}.vf-pedal-lane__line{border-block-start-color:canvastext!important}.vf-col-highlight{fill:canvastext!important;opacity:.25!important}.vf-overlay--dimmed,.vf-overlay--paused{color:canvastext!important;background:canvas!important}.piano-key{color:canvastext!important;background:canvas!important;border-color:canvastext!important}.piano-key--black{color:canvas!important;background:canvastext!important}.piano-keys{scrollbar-color:auto}.piano-key[data-held=true]{box-shadow:inset 0 3px highlighttext;color:highlighttext!important;background:highlight!important}.piano-key[data-held=true] .piano-key__mark--expected,.piano-key[data-held=true] .piano-key__mark--wrong{color:highlighttext!important}.piano-key[data-expected=true]:after{background:canvastext!important}.piano-key--black[data-expected=true]:after{background:canvas!important}.piano-key[data-held=true][data-expected=true]:after{background:highlighttext!important}.piano-key__mark--expected,.piano-key__mark--wrong{color:canvastext!important}.piano-key--black .piano-key__mark--expected,.piano-key--black .piano-key__mark--wrong{color:canvas!important}.piano-key__name,.piano-key__hint{color:inherit!important}.session-midi__dot{background:canvastext!important;border-color:canvastext!important}.session-midi--waiting .session-midi__dot{background:canvas!important;border-color:canvastext!important}.summary-accuracy-ring,.palette-preview{display:none!important}.vf-playhead{background:canvastext!important}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-normal:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.piano-key[data-held=true]{transform:none}}.app-nav{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.app-nav__link{min-height:var(--target-min);padding-inline:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.app-nav__link:hover{background:var(--button-secondary-bg-hover)}.app-nav__link.active{text-decoration:underline;text-decoration-thickness:2px}@media (width<40rem){.app-nav{display:none}}.storage-notice{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);max-width:60rem;padding:var(--space-3) var(--space-4);border-block-end:1px solid var(--color-border);background:var(--color-accent-soft);color:var(--color-text);flex-wrap:wrap;margin:0 auto;display:flex}.storage-notice__text{margin:0}.storage-notice__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.settings{max-width:46rem;margin-inline:auto}.settings__intro{color:var(--color-text-muted)}.settings__hint{color:var(--color-text-muted);font-size:var(--text-sm);margin-block:0}.settings__section{margin-block:0 var(--space-5);border-block-start:1px solid var(--color-border);padding-block-start:var(--space-2)}.settings__section h2{margin-block:0 var(--space-3);font-size:var(--text-lg)}.settings__subsection{margin-block-start:var(--space-4)}.settings__subheading{margin-block:0 var(--space-2);font-size:var(--text-md)}.midi-status{margin-block:0 var(--space-2)}.midi-fallback,.midi-action{margin-block:var(--space-2) 0}.settings__storage-line{margin-block:0 var(--space-3)}.settings__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.settings__feedback{margin-block:var(--space-2) 0;color:var(--color-text-muted)}.settings__danger{border-block-start:1px dashed var(--color-border-strong);margin-block-start:var(--space-4);padding-block-start:var(--space-3)}.palette-preview{gap:var(--space-1);vertical-align:middle;display:inline-flex}.palette-preview__chip{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);block-size:1em;inline-size:1em}.palette-preview__chip--canvas{background:var(--color-bg)}.palette-preview__chip--accent{background:var(--color-accent)}.palette-preview__chip--ink{background:var(--color-text)}.session-summary-host{margin-block-start:var(--space-3)}.session-summary{padding:var(--space-4);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);scroll-margin-block-end:14vh}.session-summary__title{margin-block:0 var(--space-2);font-size:var(--text-lg)}.session-summary__title:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.session-summary__headline{margin-block:0 var(--space-2);font-weight:600}.summary-stats{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;display:grid}.summary-stat{grid-column:span 2}.summary-stat dt{color:var(--color-text-muted);font-size:var(--text-sm)}.summary-stat dd{margin:0;font-weight:600}.summary-stat--count dd{color:var(--color-text);font-size:var(--text-xl);font-variant-numeric:tabular-nums;line-height:1.2}.summary-stat--hits dd{color:var(--color-success)}.summary-stat--accuracy dd{align-items:center;gap:var(--space-2);display:inline-flex}.summary-accuracy-ring{flex:none;block-size:1.2em;inline-size:1.2em}.summary-accuracy-ring__track{stroke:var(--color-neutral-active)}.summary-accuracy-ring__value{stroke:var(--color-accent)}.summary-stat--wide{grid-column:1/-1}.summary-stats__note{margin-block:var(--space-2) 0;color:var(--color-text-muted);font-size:var(--text-sm)}.session-summary__weakest{margin-block:var(--space-3) 0}.session-summary__warning{margin-block:var(--space-3) 0;color:var(--color-danger)}.session-summary__actions{gap:var(--space-2);flex-wrap:wrap;margin-block-start:var(--space-4);display:flex}.stats__status,.stats__window{color:var(--color-text-muted)}.stats__empty{padding:var(--space-4);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);margin-block-start:var(--space-4)}.stats__error{align-items:center;gap:var(--space-3);margin-block:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-danger);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.stats__cards{gap:var(--space-3);margin-block:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.stats__card{padding:var(--space-3) var(--space-4);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg)}.stats__card dt{color:var(--color-text-muted);font-size:var(--text-sm)}.stats__card dd{font-size:var(--text-xl);margin:0;font-weight:600}.chart{margin-block:var(--space-5) 0;padding:var(--space-4);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg)}.chart__caption{font-size:var(--text-lg);font-weight:600}.chart__summary{margin-block:var(--space-1) var(--space-3);color:var(--color-text-muted)}.chart__svg{width:100%;max-inline-size:100%;height:auto;display:block}@media (width<32rem){.chart__svg{display:none}}.chart__grid{stroke:var(--color-border);stroke-width:1px}.chart__tick{fill:var(--color-text-muted);font-size:11px}.chart__line{fill:none;stroke:var(--color-accent);stroke-width:2px}.chart__point{fill:var(--color-accent)}.chart__track{fill:var(--color-neutral-hover)}.chart__bar-fill{fill:var(--color-accent)}.chart__row--faint{opacity:.55}.chart__legend{gap:var(--space-2) var(--space-4);margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.chart__legend li{align-items:center;gap:var(--space-2);display:inline-flex}.chart__swatch{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);block-size:.75rem;inline-size:1rem}.chart__swatch--hits{background:var(--color-success)}.chart__swatch--misses{background-color:var(--color-danger);background-image:repeating-linear-gradient(45deg, var(--color-surface) 0 2px, transparent 2px 4px)}.chart__swatch--skips{background-color:var(--color-text-muted);background-image:radial-gradient(var(--color-surface) 1px, transparent 1.5px);background-size:4px 4px}.chart__table{margin-block-start:var(--space-3)}.chart__table summary{min-height:var(--target-min);cursor:pointer;color:var(--color-accent);align-items:center;display:inline-flex}.chart__table-scroll,.history__scroll{overflow-x:auto}.chart__note{margin-block:var(--space-2) 0;color:var(--color-text-muted)}.weakness__group{margin-block-start:var(--space-3)}.weakness__title{margin-block:0 var(--space-1);font-size:var(--text-md)}.weakness__list{gap:var(--space-1) var(--space-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.weakness__value{color:var(--color-text-muted)}.weakness__recommendation{margin-block-start:var(--space-4);font-weight:600}.weakness__none,.weakness__note{color:var(--color-text-muted)}.history table.history,.chart table{border-collapse:collapse;inline-size:100%}.history table.history caption,.chart table caption{color:var(--color-text-muted);text-align:start;margin-block-end:var(--space-2)}.history table.history th,.history table.history td,.chart table th,.chart table td{padding:var(--space-1) var(--space-2);border-block-end:1px solid var(--color-border);text-align:start;vertical-align:top}.history__actions{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.history__actions-bar{justify-content:flex-end;margin-block-start:var(--space-3);display:flex}.history__privacy,.history__empty{color:var(--color-text-muted)}.history__summary-row td{padding-block:var(--space-2) var(--space-4)}.stats .chart,.stats .weakness,.stats .history{max-inline-size:60rem}@media (width<40rem){.session-summary{padding:var(--space-2) var(--space-3)}.session-summary__title,.session-summary__headline{margin-block-end:var(--space-1)}.summary-stats{gap:var(--space-1) var(--space-3);grid-template-columns:repeat(6,minmax(0,1fr))}.summary-stat{grid-column:span 3}.summary-stat--count{grid-column:span 2}.summary-stat--wide{grid-column:1/-1}.summary-stat dt,.summary-stat dd{font-size:var(--text-sm);line-height:1.3}.summary-stat--count dd{font-size:var(--text-lg)}.session-summary__actions{grid-template-columns:repeat(2,minmax(0,1fr));margin-block-start:var(--space-2);display:grid}}.k-stack,.k-inline,.k-cluster{gap:var(--k-gap,var(--space-3));display:flex}.k-stack{flex-direction:column}.k-inline{flex-direction:row;align-items:center}.k-cluster{flex-flow:wrap;align-items:center}.k-stack--start{align-items:flex-start}.k-stack--center{align-items:center}.k-inline--start,.k-cluster--start{align-items:flex-start}.k-inline--baseline,.k-cluster--baseline{align-items:baseline}.k-inline--between{justify-content:space-between}.k-inline--end{justify-content:flex-end}.k-grid{gap:var(--k-gap,var(--space-4));grid-template-columns:repeat(var(--k-cols,2), minmax(0, 1fr));display:grid}@media (width<40rem){.k-grid--collapse{grid-template-columns:minmax(0,1fr)}}.k-surface{border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--card-bg)}.k-surface--raised{box-shadow:var(--shadow-card)}.k-surface--inset{background:var(--color-accent-soft);border-color:var(--color-accent-soft)}.k-surface--pad-none{padding:0}.k-surface--pad-sm{padding:var(--space-3)}.k-surface--pad-md{padding:var(--space-4)}.k-surface--pad-lg{padding:var(--space-5)}.k-heading{gap:var(--space-3);justify-content:space-between;align-items:baseline;display:flex}.k-heading__title{font-size:var(--text-lg);margin:0;line-height:1.3}.k-heading--sub .k-heading__title{font-size:var(--text-md)}.k-heading__hint{margin:var(--space-1) 0 0;max-width:60ch;color:var(--color-text-muted);font-size:var(--text-sm)}.k-action{gap:var(--space-2);min-height:var(--target-min);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font:inherit;font-size:var(--text-md);cursor:pointer;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease;border:1px solid #0000;justify-content:center;align-items:center;line-height:1.2;display:inline-flex}.k-action--sm{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}a.k-action{text-decoration:none}.k-action--primary:focus-visible,.k-action--danger:focus-visible{outline-color:var(--color-focus-on-accent);outline-offset:-2px}.k-action--lg{padding:var(--space-3) var(--space-5);font-size:var(--text-lg)}.k-action--primary{background:var(--button-bg);color:var(--button-fg)}.k-action--primary:not(:disabled):hover{background:var(--button-bg-hover)}.k-action--secondary{background:var(--button-secondary-bg);border-color:var(--color-border-strong);color:var(--color-text)}.k-action--secondary:not(:disabled):hover{background:var(--button-secondary-bg-hover)}.k-action--ghost{color:var(--color-text);background:0 0}.k-action--ghost:not(:disabled):hover{background:var(--color-neutral-hover)}.k-action--danger{background:var(--button-danger-bg);color:var(--button-danger-fg)}.k-action--danger:not(:disabled):hover{background:var(--button-danger-bg-hover)}.k-action:disabled{cursor:not-allowed;opacity:.55}.k-action__icon{flex:none;display:inline-flex}.k-action__spinner{border:2px solid;border-radius:var(--radius-pill);border-top-color:#0000;width:.9em;height:.9em;animation:.7s linear infinite k-spin;display:inline-block}@keyframes k-spin{to{transform:rotate(1turn)}}.k-icon-action{min-inline-size:var(--target-min);padding:var(--space-2);border-radius:var(--radius-md)}.k-toggle{align-self:flex-start;gap:var(--space-2);min-height:var(--target-min);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);color:var(--color-text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;display:inline-flex}.k-toggle:not(:disabled):hover{background:var(--color-neutral-hover)}.k-toggle:disabled{cursor:not-allowed;opacity:.55}.k-toggle__track{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-bg);width:2.5rem;height:1.5rem;transition:background-color var(--duration-fast) ease;flex:none;align-items:center;padding:2px;display:inline-flex}.k-toggle[aria-checked=true] .k-toggle__track{background:var(--color-accent);border-color:var(--color-accent)}.k-toggle__thumb{border-radius:var(--radius-pill);background:var(--color-surface);width:1.1rem;height:1.1rem;box-shadow:var(--shadow-card);transition:transform var(--duration-fast) ease-out}.k-toggle[aria-checked=true] .k-toggle__thumb{transform:translate(1rem)}.k-toggle__state{min-width:2.2em;color:var(--color-text-muted);font-size:var(--text-sm);white-space:nowrap}.k-toggle--icon{min-inline-size:var(--target-min);padding:var(--space-1);background:var(--button-secondary-bg);border-color:var(--color-border-strong);border-radius:var(--radius-md);justify-content:center;gap:0;position:relative}.k-toggle__glyph{display:inline-flex}.k-toggle__badge{border-radius:var(--radius-pill);visibility:hidden;place-items:center;width:.875rem;height:.875rem;font-size:.5625rem;line-height:1;display:inline-grid;position:absolute;inset-block-start:2px;inset-inline-end:2px}.k-toggle--icon[aria-checked=true] .k-toggle__badge{visibility:visible;background:var(--color-accent-contrast);color:var(--color-accent);box-shadow:0 0 0 1.5px var(--color-accent)}.k-toggle--icon[aria-checked=true]{background:var(--color-accent-soft);border-color:var(--color-accent)}.k-toggle--icon:not(:disabled):hover{background:var(--button-secondary-bg-hover)}.k-toggle--icon[aria-checked=true]:not(:disabled):hover{background:var(--color-accent-soft)}.k-group,.k-radio-group{gap:var(--space-3);min-width:0;margin:0 0 var(--space-4);border:0;padding:0;display:grid}.k-group__legend,.k-radio-group__legend{margin-block-end:0;padding:0;font-weight:600}.k-group .k-group,.k-group .k-radio-group{margin-block-end:0}.k-group>.k-hint,.k-radio-group>.k-hint{margin-block-start:calc(-1 * var(--space-2))}.k-radio-option__row{display:block}.k-radio-option{align-items:center;gap:var(--space-2);min-height:var(--target-min);display:flex}.k-radio-option__input{width:1.25rem;height:1.25rem;accent-color:var(--color-accent);flex:none;margin:0}.k-radio-option__description{color:var(--color-text-muted);font-size:var(--text-sm);margin-inline-start:2rem;display:block}.k-radio-option__preview{flex:none;align-items:center;display:inline-flex}.k-radio-group--segmented{align-items:center;gap:var(--space-1);flex-wrap:wrap;margin:0;display:flex}.k-radio-group--segmented .k-radio-option__row{display:contents}.k-radio-group--segmented .k-radio-option{min-height:var(--target-min);padding:var(--space-1) var(--space-3);background:var(--button-secondary-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);font-size:var(--text-sm);cursor:pointer;gap:0;position:relative}.k-radio-group--segmented .k-radio-option__input{appearance:none;cursor:pointer;background:0 0;border:0;width:100%;height:100%;margin:0;position:absolute;inset:0}.k-radio-group--segmented .k-radio-option:hover{background:var(--button-secondary-bg-hover)}.k-radio-group--segmented .k-radio-option__input:checked~.k-radio-option__label{font-weight:600}.k-radio-group--segmented .k-radio-option:has(.k-radio-option__input:checked){background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-stronger)}.k-radio-option__mark{display:none}.k-radio-group--segmented .k-radio-option__mark{order:-1;display:inline}.k-radio-group--segmented .k-radio-option__label{gap:var(--space-2);align-items:center;display:inline-flex}.k-range{gap:var(--space-1);flex-direction:column;display:flex}.k-range__row{column-gap:var(--space-3);row-gap:var(--space-1);grid-template-columns:minmax(min-content,1fr) auto;align-items:center;display:grid}.k-range__row>.k-field__label{grid-area:1/1}.k-range__input{width:100%;min-height:var(--target-min);accent-color:var(--color-accent);grid-area:2/1/auto/-1}.k-range__value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:var(--text-sm);text-align:end;grid-area:1/2}.k-range--inline .k-range__row{flex-wrap:wrap;align-items:center;display:flex}.k-range--inline .k-range__row>.k-field__label{flex:none}.k-range--inline .k-range__input{flex:6rem;width:auto;min-width:0}.k-range--inline .k-range__value{overflow-wrap:normal;white-space:nowrap;flex:0 0 8ch}.k-field{gap:var(--space-1);flex-direction:column;display:flex}.k-field__label{font-size:var(--text-sm)}.k-field__control{min-height:var(--target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit}.k-field__control[aria-invalid=true]{border-color:var(--color-danger)}.k-hint,.k-field__error{font-size:var(--text-sm);margin:0}.k-hint{color:var(--color-text-muted)}.k-field__error{gap:var(--space-1);color:var(--color-danger);display:flex}.k-chip{gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--chip-bg);color:var(--chip-fg);font-size:var(--text-sm);align-items:center;display:inline-flex}.k-chip[data-tone=success]{border-color:var(--color-success);color:var(--color-success)}.k-chip[data-tone=danger]{border-color:var(--color-danger);color:var(--color-danger)}.k-chip[data-tone=muted]{color:var(--color-text-muted);background:0 0}.k-marker{border-radius:var(--radius-pill);width:1.35rem;height:1.35rem;font-size:var(--text-sm);border:1px solid;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.k-marker--mixed{border-style:dashed}.k-marker--untouched{border-color:var(--color-border-strong);color:var(--color-text-muted)}.k-marker--clean{color:var(--color-success)}.k-marker--missed{color:var(--color-danger)}.k-marker--current{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.k-meter{gap:var(--space-1);flex-direction:column;display:flex}.k-meter__track{border-radius:var(--radius-pill);background:var(--color-neutral-active);height:.5rem;overflow:hidden}.k-meter__fill{border-radius:var(--radius-pill);background:var(--color-accent);height:100%;transition:width var(--duration-normal) ease-out}.k-meter__value{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.k-kbd{padding:2px var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);border-bottom-width:2px}.k-notice{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);border-left-width:3px;align-items:flex-start;display:flex}.k-notice[data-tone=success]{border-left-color:var(--color-success)}.k-notice[data-tone=attention]{border-left-color:var(--color-accent)}.k-notice[data-tone=error]{border-left-color:var(--color-danger)}.k-notice__glyph{font-size:var(--text-md);flex:none}.k-notice__body{font-size:var(--text-sm);flex:1;margin:0}.k-notice__title{margin:0 0 var(--space-1);font-size:var(--text-md)}.k-empty{gap:var(--space-2);padding:var(--space-5);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);flex-direction:column;align-items:flex-start;display:flex}.k-empty__title{font-size:var(--text-md);margin:0}.k-empty__body{max-width:55ch;color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.k-count-in{gap:var(--space-2);align-items:center;display:flex}.k-count-in__beats{gap:var(--space-1);display:flex}.k-count-in__beat{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);width:1.75rem;height:1.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:var(--text-sm);justify-content:center;align-items:center;display:inline-flex}.k-count-in__beat[data-state=past]{background:var(--color-accent-soft);color:var(--color-text)}.k-count-in__beat[data-state=now]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);font-size:var(--text-md);animation:k-beat var(--duration-normal) ease-out}@keyframes k-beat{0%{transform:scale(1.18)}to{transform:scale(1)}}.k-count-in__label{color:var(--color-text-muted);font-size:var(--text-sm)}.k-lab{gap:var(--space-5);grid-template-columns:minmax(12rem,16rem) minmax(0,1fr);align-items:start;display:grid}@media (width<40rem){.k-lab{grid-template-columns:minmax(0,1fr)}}.k-lab__nav{top:var(--space-4);gap:var(--space-3);max-height:calc(100dvh - var(--space-6));flex-direction:column;display:flex;position:sticky;overflow:auto}@media (width<40rem){.k-lab__nav{max-height:none;position:static}}.k-lab__group-title{margin:0 0 var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em}.k-lab__links{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.k-lab__link{min-height:var(--target-min);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);border:1px solid #0000;align-items:center;text-decoration:none;display:inline-flex}.k-lab__link:hover{background:var(--color-neutral-hover)}.k-lab__link[aria-current=page]{background:var(--color-accent-soft);border-color:var(--color-accent);font-weight:600}.k-lab__panel{gap:var(--space-4);flex-direction:column;display:flex}.k-lab__meta{max-width:70ch;color:var(--color-text-muted);margin:0}.k-lab__matrix{gap:var(--space-4);flex-direction:column;display:flex}.k-lab__example{gap:var(--space-2);flex-direction:column;display:flex}.k-lab__example-label{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.k-lab__row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.k-lab__swatches{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));display:grid}.k-lab__swatch{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.k-lab__swatch-chip{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);height:2.5rem}.k-lab__token{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.k-rail{gap:var(--space-2);flex-direction:column;display:flex}.k-rail__bars{align-items:center;gap:2px;height:1.5rem;margin:0;padding:0;list-style:none;display:flex}.k-rail__item{flex:1 1 0;justify-content:center;min-width:0;display:flex}.k-rail__segment{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:0 0;width:100%;height:1.1rem}.k-rail__segment[data-verdict=clean]{border-color:var(--color-success);background:var(--color-success)}.k-rail__segment[data-verdict=mixed]{border-color:var(--color-accent);background:var(--color-accent-soft);border-style:dashed}.k-rail__segment[data-verdict=missed]{border-color:var(--color-danger);background:repeating-linear-gradient(115deg, var(--color-danger) 0 4px, var(--color-surface) 4px 8px)}.k-rail__segment[data-verdict=untouched]{border-color:var(--color-border)}.k-rail__segment[data-current=true]{outline:2px solid var(--color-focus);outline-offset:1px;height:1.5rem}.k-rail__summary{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0}.k-readiness{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.k-readiness__item{gap:var(--space-1);align-items:center;display:inline-flex}.k-review__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.k-review__item{gap:var(--space-2);align-items:center;display:flex}.k-review__bar{font-variant-numeric:tabular-nums}.k-review__detail{color:var(--color-text-muted);font-size:var(--text-sm)}.k-cards{border:0;margin:0;padding:0}.k-cards__grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.k-cards__input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.k-cards__card{gap:var(--space-2);height:100%;padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;flex-direction:column;display:flex}.k-cards__card:hover{background:var(--color-neutral-hover)}.k-cards__card:has(.k-cards__input:checked){border-color:var(--color-accent);background:var(--color-accent-soft);border-width:2px}.k-cards__input:focus-visible~.k-cards__body{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:var(--radius-md)}.k-cards__card[data-disabled=true]{cursor:not-allowed;opacity:.6}.k-cards__name{gap:var(--space-2);font-size:var(--text-md);align-items:baseline;display:flex}.k-cards__summary{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.k-confirm-backdrop{z-index:var(--z-drawer);padding:var(--space-4);background:var(--color-backdrop);place-items:center;display:grid;position:fixed;inset:0}.k-confirm{width:min(100%,28rem);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.k-confirm__title{margin-block:0 var(--space-2);font-size:var(--text-lg)}.k-confirm__body{margin-block-end:var(--space-4)}.k-confirm__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.k-drawer-backdrop{z-index:var(--z-backdrop);background:var(--color-backdrop);cursor:pointer;width:100%;transition:opacity var(--duration-normal) ease-out;border:0;padding:0;position:fixed;inset:0}.k-drawer{z-index:var(--z-drawer);inline-size:var(--drawer-inline-size);background:var(--drawer-bg);border-inline-start:1px solid var(--color-border);max-inline-size:100%;box-shadow:var(--shadow-drawer);overscroll-behavior:contain;transition:transform var(--duration-normal) ease-out;flex-direction:column;display:flex;position:fixed;inset-block:0;inset-inline-end:0}.k-drawer:focus-visible{outline:none}.k-drawer__footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-block-start:1px solid var(--color-border);flex-wrap:wrap;display:flex}@starting-style{.k-drawer{transform:translate(100%)}.k-drawer-backdrop{opacity:0}}.k-drawer__header{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-2);padding:var(--space-4);background:var(--drawer-header-bg);border-block-end:1px solid var(--color-border);flex-wrap:wrap;display:flex}.k-drawer__title{font-size:var(--text-lg);margin:0}.k-drawer__summary{color:var(--color-text-muted);font-size:var(--text-sm);flex-basis:100%;margin:0}.k-drawer__body{padding:var(--space-4);overscroll-behavior:contain;flex:1;overflow-y:auto}@supports not selector(:has(*)){.k-radio-group--segmented .k-radio-option__input,.k-cards__input{width:auto;height:auto;clip-path:none;appearance:auto;margin-inline-end:var(--space-1);position:static}.k-radio-group--segmented .k-radio-option:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.k-cards__input{margin:0}}.k-score{gap:var(--space-2);flex-direction:column;margin:0;display:flex}.k-score__viewport{box-sizing:content-box;background:var(--score-bg);border:1px solid var(--score-border);border-radius:var(--score-radius);scrollbar-width:none;overscroll-behavior-x:contain;max-width:100%;display:grid;position:relative;overflow:auto hidden}.k-score__viewport::-webkit-scrollbar{display:none}.k-score__viewport[data-pan=app]{touch-action:pan-y}.k-score__viewport[data-motion=slide]{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){.k-score__viewport[data-motion=slide]{scroll-behavior:auto}}.k-score__svg{grid-area:1/1;max-width:none;display:block}.k-score__band{z-index:1;border-right:1px solid var(--score-border);background:var(--score-bg);grid-area:1/1;place-self:start;display:grid;position:sticky;left:0}.k-score__staff-line,.k-score__barline,.k-score__brace-line,.k-score__ledger{stroke:var(--score-staff);stroke-width:var(--score-staff-line-width)}.k-score__brace-line,.k-score__barline--final{stroke-width:2px}.k-score__ledger{stroke-width:1.4px}.k-score__clef,.k-score__notehead,.k-score__rest,.k-score__accidental-fill{fill:var(--score-note);stroke:none}.k-score__accidental,.k-score__stem{stroke:var(--score-note);stroke-linecap:round;stroke-linejoin:round}.k-score__accidental{stroke-width:1.6px}.k-score__stem{stroke-width:1.7px}.k-score__beam{stroke:var(--score-note);stroke-width:4.8px}.k-score__notehead--open{fill:var(--score-bg);stroke:var(--score-note);stroke-width:1.8px}.k-score__active-bar{fill:var(--score-active);opacity:.1}.k-score__playhead{stroke:var(--score-active);stroke-width:2px}.k-score__bar-number{fill:var(--score-staff);font-variant-numeric:tabular-nums;font-size:9px}.k-score__time{fill:var(--score-note);text-anchor:middle;font-size:28px;font-weight:600}.k-score__note-accidental{fill:var(--score-note);font-size:12px}.k-score__state{gap:var(--space-1) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}.k-score__label{color:var(--color-text);font-weight:600}.k-score-demo__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(21rem,1fr));align-items:start;display:grid}.k-score-demo__readout{gap:var(--space-1) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));margin:0;display:grid}.k-score-demo__readout dt{color:var(--color-text-muted);font-size:var(--text-sm)}.k-score-demo__readout dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.k-score-demo__phone{border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:22rem;height:26rem;display:flex;overflow:hidden}.k-score-demo__band{justify-content:space-between;align-items:center;gap:var(--space-2);padding-inline:var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);white-space:nowrap;display:flex;overflow:hidden}.k-score-demo__band--score{background:var(--score-bg);border-bottom-color:var(--score-border);color:var(--color-text)}.k-score-demo__band--over{background:var(--color-neutral-hover);color:var(--color-text-muted);text-decoration:line-through}@media (forced-colors:active){.k-toggle__track,.k-meter__track,.k-rail__segment,.k-cards__card,.k-radio-group--segmented .k-radio-option{border:1px solid buttonborder}.k-toggle[aria-checked=true] .k-toggle__track,.k-toggle--icon[aria-checked=true],.k-meter__fill{background:highlight}.k-toggle[aria-checked=true] .k-toggle__thumb{background:highlighttext}.k-radio-group--segmented .k-radio-option__input:checked~.k-radio-option__label{outline-offset:2px;outline:2px solid highlight}.k-cards__card:has(.k-cards__input:checked){border:2px solid highlight}.k-rail__segment[data-current=true]{outline:2px solid highlight}.k-rail__segment[data-verdict=mixed],.k-marker--mixed{border-style:dashed}.k-score__viewport,.k-score__band{border-color:canvastext}.k-score__staff-line,.k-score__barline,.k-score__brace-line,.k-score__ledger,.k-score__accidental,.k-score__stem,.k-score__beam{stroke:canvastext}.k-score__clef,.k-score__notehead,.k-score__rest,.k-score__accidental-fill,.k-score__bar-number,.k-score__time,.k-score__note-accidental{fill:canvastext;stroke:none}.k-score__notehead--open{fill:canvas;stroke:canvastext}.k-score__playhead{stroke:highlight}.k-score__active-bar{fill:highlight;opacity:.35}}
