@font-face{font-family:uiFont;src:url(../media/inter_latin-s.p.0gsaq8ukbf34m.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:uiFont Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.uifont_bdc90c74-module__BVTqbq__className{font-family:uiFont,uiFont Fallback;font-style:normal}.uifont_bdc90c74-module__BVTqbq__variable{--font-ui:"uiFont", "uiFont Fallback"}
@font-face{font-family:monoFont;src:url(../media/jetbrains_mono_latin.p.2rmhnsrc80fag.woff2)format("woff2");font-display:swap;font-weight:100 800;font-style:normal}.monofont_846dace0-module__ec2SFG__className{font-family:monoFont;font-style:normal}.monofont_846dace0-module__ec2SFG__variable{--font-mono:"monoFont"}
:root{--font-sans:var(--font-ui), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-code:var(--font-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--step--2:.7rem;--step--1:clamp(.8rem, .78rem + .1vw, .85rem);--step-0:clamp(.95rem, .92rem + .15vw, 1.02rem);--step-1:clamp(1.1rem, 1.05rem + .3vw, 1.25rem);--step-2:clamp(1.35rem, 1.2rem + .7vw, 1.75rem);--step-3:clamp(1.75rem, 1.4rem + 1.6vw, 2.75rem);--step-4:clamp(2.4rem, 1.7rem + 3.4vw, 4.4rem);--step-5:clamp(5rem, 3rem + 10vw, 10rem);--ease:cubic-bezier(.7, 0, .3, 1);--fast:.12s;--slow:.26s;--label-size:.7rem;--label-track:.12em;--content:1120px;--tap:44px;--hair:1px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,:root[data-theme=dark]{--bg:#050607;--surface:#0b0d0f;--surface-2:#111417;--surface-3:#1a1e22;--line:#d6d4cd;--line-strong:#efede7;--off:#454c53;--text:#f4f5f6;--text-2:#b0b7bd;--text-3:#8a939b;--accent:#ff6a1a;--accent-strong:#ff8a4a;--accent-ink:#000;--accent-soft:#ff6a1a1f;--signal:#3ee08f;--signal-soft:#3ee08f1a;--danger:#ff5552;--danger-soft:#ff55521a;--info:#6cb8ff;--focus:#ff6a1a;--scope-line:#3ee08f;--scope-grid:#efede738;--scope-tick:#efede799;--m-new:#262b30;--m-weak:#d85164;--m-learning:#c78200;--m-strong:#1f86cd;--m-mastered:#00a76c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f2f2f0;--surface:#fff;--surface-2:#f8f8f6;--surface-3:#e6e6e3;--line:#d2d2ce;--line-strong:#8f8f8b;--off:#8f8f8b;--text:#0a0a0a;--text-2:#3a3e42;--text-3:#575c61;--accent:#c23d00;--accent-strong:#9e3200;--accent-ink:#fff;--accent-soft:#c23d0017;--signal:#0a7a4c;--signal-soft:#0a7a4c17;--danger:#c1121f;--danger-soft:#c1121f14;--info:#1f6fc2;--focus:#c23d00;--scope-line:#0a7a4c;--scope-grid:#1414141a;--scope-tick:#14141459;--m-new:#d2d2ce;--m-weak:#c33d53;--m-learning:#b97600;--m-strong:#0074ba;--m-mastered:#00945a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#f2f2f0;--surface:#fff;--surface-2:#f8f8f6;--surface-3:#e6e6e3;--line:#d2d2ce;--line-strong:#8f8f8b;--off:#8f8f8b;--text:#0a0a0a;--text-2:#3a3e42;--text-3:#575c61;--accent:#c23d00;--accent-strong:#9e3200;--accent-ink:#fff;--accent-soft:#c23d0017;--signal:#0a7a4c;--signal-soft:#0a7a4c17;--danger:#c1121f;--danger-soft:#c1121f14;--info:#1f6fc2;--focus:#c23d00;--scope-line:#0a7a4c;--scope-grid:#1414141a;--scope-tick:#14141459;--m-new:#d2d2ce;--m-weak:#c33d53;--m-learning:#b97600;--m-strong:#0074ba;--m-mastered:#00945a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}
*,:before,:after{box-sizing:border-box;border-radius:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";margin:0;line-height:1.55}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.12}p{text-wrap:pretty;margin:0}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--accent);color:var(--accent-ink)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-4);z-index:100;background:var(--accent);color:var(--accent-ink);padding:var(--space-2) var(--space-4);font-family:var(--font-code);font-size:var(--step--1);text-transform:uppercase;letter-spacing:var(--label-track);font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--space-3)}.code{font-family:var(--font-code);font-feature-settings:"zero", "ss02"}.label{font-family:var(--font-code);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--text-3);font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
.shell{flex-direction:column;min-height:100dvh;display:flex}.page{width:100%;max-width:var(--content);padding:var(--space-5) max(var(--space-4), env(safe-area-inset-left)) var(--space-7);flex:1;margin:0 auto}.page-title,.page-head{align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-5);border-bottom:var(--hair) solid var(--line);font-family:var(--font-code);font-size:var(--step--1);letter-spacing:var(--label-track);text-transform:uppercase;font-weight:600;line-height:1.3;display:flex}.page-title:before,.page-head h1:before{content:"";background:var(--accent);flex:none;width:8px;height:8px}.page-head h1{align-items:center;gap:var(--space-3);font:inherit;letter-spacing:inherit;display:flex}.page-head__meta{color:var(--text-3);text-align:right;margin-left:auto;font-weight:500}@media (max-width:560px){.page-head{align-items:flex-start;gap:var(--space-1);flex-direction:column}.page-head__meta{margin-left:calc(8px + var(--space-3));text-align:left}}.section{margin-top:var(--space-6)}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.faint a{color:var(--text-2)}.empty{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.site-header{z-index:20;background:var(--bg);border-bottom:var(--hair) solid var(--line);padding-top:env(safe-area-inset-top);position:sticky;top:0}.site-header:after{content:"";background:var(--text-3);transform-origin:0;width:100%;height:1px;animation:rule-out .7s var(--ease) both;position:absolute;bottom:-1px;left:0}@keyframes rule-out{0%{opacity:1;transform:scaleX(0)}70%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.site-header__inner{max-width:var(--content);padding:0 max(var(--space-4), env(safe-area-inset-left));align-items:stretch;min-height:56px;margin:0 auto;display:flex}.brand{align-items:center;gap:var(--space-3);padding-right:var(--space-5);min-height:var(--tap);text-decoration:none;display:inline-flex}.brand__mark{width:26px;height:26px;color:var(--accent)}.brand__name{font-family:var(--font-code);letter-spacing:.2em;text-transform:uppercase;font-size:.9rem;font-weight:700}.nav{border-left:var(--hair) solid var(--line);margin-left:auto;display:flex}.nav a{align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-4);border-right:var(--hair) solid var(--line);color:var(--text-2);font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);-webkit-tap-highlight-color:transparent;font-size:.74rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.nav a svg{flex:none;width:16px;height:16px}.nav a:hover{color:var(--text);background:var(--surface-2)}.nav a:after{content:"";background:var(--accent);height:2px;transition:transform var(--slow) var(--ease);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.nav a[aria-current=page]{color:var(--text)}.nav a[aria-current=page]:after{transform:scaleX(1)}.nav a[aria-current=page] svg{color:var(--accent)}.account{align-items:center;gap:var(--space-2);padding-left:var(--space-3);display:flex}@media (max-width:720px){.account{margin-left:auto}.nav{z-index:30;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--bg);border-left:0;border-top:var(--hair) solid var(--line);margin:0;position:fixed;bottom:0;left:0;right:0}.nav a{letter-spacing:.08em;flex-direction:column;flex:1;justify-content:center;gap:4px;min-height:60px;padding:0;font-size:.6rem}.nav a:last-child{border-right:0}.nav a svg{width:20px;height:20px}.nav a:after{top:-1px;bottom:auto}.nav a[aria-current=page]{background:var(--surface)}.shell{padding-bottom:calc(60px + env(safe-area-inset-bottom))}body:has(#answer:focus) .nav{display:none}}@media (min-width:721px) and (max-width:900px){.nav a{padding:0 var(--space-3)}.nav a svg{display:none}}.button{--b-bg:var(--surface-3);--b-fill:var(--off);--b-ink:var(--text);--b-ink-hover:var(--b-ink);--b-line:transparent;justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-5);border:var(--hair) solid var(--b-line);font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;color:var(--b-ink);background-color:var(--b-bg);background-image:linear-gradient(var(--b-fill), var(--b-fill));transition:background-size var(--slow) var(--ease), color var(--fast) var(--ease), border-color var(--fast) var(--ease), translate 60ms linear;white-space:nowrap;-webkit-tap-highlight-color:transparent;background-position:0;background-repeat:no-repeat;background-size:0% 100%;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{color:var(--b-ink-hover);background-size:100% 100%}.button:active{translate:0 1px}.button[disabled]{opacity:.4;cursor:not-allowed;background-size:0% 100%;translate:none}.button--primary{--b-bg:var(--text);--b-fill:var(--accent);--b-ink:var(--bg);--b-ink-hover:var(--accent-ink);--b-line:var(--text)}.button--primary:hover{border-color:var(--accent)}.button--ghost{--b-bg:transparent;--b-fill:var(--surface-3);--b-line:var(--line-strong)}.button--ghost:hover{border-color:var(--text-2)}.button--quiet{--b-bg:transparent;--b-fill:var(--surface-2);--b-ink:var(--text-2);--b-ink-hover:var(--text);padding:0 var(--space-3)}.button--danger{--b-bg:var(--danger-soft);--b-fill:var(--danger);--b-ink:var(--danger);--b-ink-hover:var(--bg);--b-line:var(--danger)}.button--large{min-height:56px;padding:0 var(--space-6);font-size:.9rem}.button--small{min-height:36px;padding:0 var(--space-3);font-size:.7rem}.icon-button{width:var(--tap);height:var(--tap);border:var(--hair) solid var(--line);color:var(--text-2);transition:background var(--fast) var(--ease), color var(--fast) var(--ease), border-color var(--fast) var(--ease);background:0 0;place-items:center;display:inline-grid}.icon-button:hover{background:var(--surface-2);border-color:var(--line-strong);color:var(--text)}.icon-button--plain{border-color:#0000}.icon-button[aria-current=page]{color:var(--accent);border-color:var(--line)}.icon-button svg,.button svg{flex:none;width:18px;height:18px}.kbd{font-family:var(--font-code);border:var(--hair) solid var(--line-strong);background:var(--surface-2);color:var(--text-2);padding:1px 6px;font-size:.75em}.card,.panel{background:var(--surface);border:var(--hair) solid var(--line);padding:var(--space-4)}.card{padding:var(--space-5)}.notice{padding:var(--space-3) var(--space-4);background:var(--accent-soft);border:var(--hair) solid var(--line);border-left:3px solid var(--accent);color:var(--text)}.notice--danger{background:var(--danger-soft);border-left-color:var(--danger)}.notice p+p{margin-top:var(--space-1)}.notice__actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.chip{border:var(--hair) solid var(--line-strong);min-height:26px;color:var(--text-2);font-family:var(--font-code);font-size:var(--label-size);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;padding:2px 8px;font-weight:600;display:inline-flex}.chip--accent{border-color:var(--accent);color:var(--accent)}.chip--signal{border-color:var(--signal);color:var(--signal)}.chip--danger{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chips--center{justify-content:center}.segmented{border:var(--hair) solid var(--line-strong);flex-wrap:wrap;display:inline-flex}.segmented button{min-height:38px;padding:0 var(--space-4);border:0;border-left:var(--hair) solid var(--line-strong);color:var(--text-2);font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;font-size:.74rem;font-weight:600}.segmented button:first-child{border-left:0}.segmented button:hover{background:var(--surface-2);color:var(--text)}.segmented button[aria-pressed=true],.segmented button[aria-checked=true]{background:var(--text);color:var(--bg)}.bars{align-items:flex-end;gap:2px;height:16px;display:inline-flex}.bars span{background:var(--off);width:4px}.bars span:first-child{height:20%}.bars span:nth-child(2){height:40%}.bars span:nth-child(3){height:60%}.bars span:nth-child(4){height:80%}.bars span:nth-child(5){height:100%}.bars span.on{background:var(--signal)}.bars--weak span.on{background:var(--accent)}.bars--bad span.on{background:var(--danger)}.field{gap:var(--space-2);flex-direction:column;display:flex}.field label,.field__label{font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:600}.field__hint{color:var(--text-3);font-size:var(--step--1)}.input{width:100%;min-height:52px;padding:0 var(--space-4);border:var(--hair) solid var(--line-strong);background:var(--surface);color:var(--text);font-size:var(--step-1);transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease)}.input::placeholder{color:var(--text-3)}.input:focus{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);outline:none}.input--code{font-family:var(--font-code);letter-spacing:.04em}.select{min-height:var(--tap);padding:0 var(--space-3);border:var(--hair) solid var(--line-strong);background:var(--surface);font-family:var(--font-code);font-size:.8rem}.switch{width:52px;height:var(--tap);background:0 0;border:0;flex:none;padding:0;position:relative}.switch:before{content:"";border:var(--hair) solid var(--line-strong);background:var(--surface-3);height:24px;transition:background var(--fast) var(--ease), border-color var(--fast) var(--ease);position:absolute;top:10px;left:0;right:0}.switch:after{content:"";background:var(--text-2);width:16px;height:16px;transition:transform var(--slow) var(--ease), background var(--fast) var(--ease);position:absolute;top:14px;left:4px}.switch[aria-checked=true]:before{background:var(--signal);border-color:var(--signal)}.switch[aria-checked=true]:after{background:var(--bg);transform:translate(28px)}.toasts{left:50%;bottom:max(var(--space-5), env(safe-area-inset-bottom));z-index:60;gap:var(--space-2);pointer-events:none;flex-direction:column;width:min(92vw,440px);display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;padding:var(--space-3) var(--space-4);background:var(--text);color:var(--bg);border-left:4px solid var(--accent);font-family:var(--font-code);font-size:var(--step--1);animation:wipe-in var(--slow) steps(5, end);font-weight:600}@keyframes wipe-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.spelling{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.cw{background:var(--surface);border:var(--hair) solid var(--line);text-align:left;min-width:72px;transition:background var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease);flex-direction:column;align-items:flex-start;padding:4px 10px 6px;display:inline-flex;position:relative}.cw__symbol{font-family:var(--font-code);font-size:var(--label-size);color:var(--text-3);letter-spacing:.08em;font-weight:600}.cw__word{letter-spacing:-.01em;font-weight:600}.cw--live{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.cw--live .cw__symbol{color:var(--accent-ink)}.cw--right,.cw--wrong{border-top-width:3px;padding-top:2px}.cw--right{border-color:var(--signal);background:var(--signal-soft)}.cw--wrong{border-color:var(--danger);background:var(--danger-soft)}.cw__got{font-family:var(--font-code);font-size:var(--step--1);color:var(--danger);text-decoration:line-through}@media (pointer:coarse){.button--small,.segmented button{min-height:var(--tap)}}
.alphabet{border-top:var(--hair) solid var(--line);border-left:var(--hair) solid var(--line);grid-template-columns:repeat(auto-fill,minmax(min(30%,150px),1fr));margin:0;padding:0;list-style:none;display:grid}.alphabet li{display:flex}.letter-card{width:100%;padding:var(--space-3);border:0;border-right:var(--hair) solid var(--line);border-bottom:var(--hair) solid var(--line);color:var(--text);text-align:left;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);-webkit-tap-highlight-color:transparent;animation:.3s steps(3,end) backwards boot;animation-delay:calc(var(--i,0) * 18ms);background:0 0;flex-direction:column;align-items:flex-start;display:flex;position:relative}@keyframes boot{0%{opacity:0}}@media (hover:hover){.letter-card:hover{background:var(--surface-2);box-shadow:inset 0 -2px 0 var(--accent)}.letter-card:hover .letter-card__play{color:var(--accent)}}.letter-card[data-live=true]{background:var(--accent);color:var(--accent-ink);box-shadow:none}.letter-card[data-live=true] .letter-card__symbol,.letter-card[data-live=true] .letter-card__stress,.letter-card[data-live=true] .letter-card__play{color:var(--accent-ink)}.letter-card[data-live=true] .letter-card__symbol{animation:.18s steps(2,jump-none) flicker}@keyframes flicker{0%{opacity:.2}}.letter-card__play{top:var(--space-3);right:var(--space-3);width:14px;height:14px;color:var(--text-2);position:absolute}.letter-card__symbol{font-family:var(--font-code);font-size:var(--step-3);color:var(--accent);font-weight:300;line-height:1}.letter-card__word{font-weight:600;font-size:var(--step-1);margin-top:var(--space-3);line-height:1.2}.letter-card__stress{font-family:var(--font-code);color:var(--text-2);margin-top:2px;font-size:.72rem}@media (max-width:400px){.letter-card{padding:var(--space-3) var(--space-2) var(--space-3) var(--space-3)}.letter-card__play{right:var(--space-2)}.letter-card__symbol{font-size:1.9rem}.letter-card__word{margin-top:var(--space-2);font-size:1rem}}@keyframes blink{to{opacity:0}}.stats{gap:var(--hair);background:var(--line);border:var(--hair) solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);background:var(--bg);flex-direction:column-reverse;display:flex}.stat__value{font-family:var(--font-code);font-size:var(--step-3);font-feature-settings:"zero", "tnum";font-weight:300;line-height:1}.stat__label{font-family:var(--font-code);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--text-3);font-weight:500}.mastery{gap:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(44px,1fr));margin:0;padding:0;list-style:none;display:grid}.mastery__cell{aspect-ratio:1;font-family:var(--font-code);font-weight:500;font-size:var(--step-1);background:var(--surface);color:var(--text-3);border:var(--hair) solid var(--line);place-items:center;display:grid;position:relative;overflow:hidden}.mastery__cell:after{content:"";background:var(--m-color,transparent);height:4px;position:absolute;bottom:0;left:0;right:0}.mastery__cell[data-m=weak]{--m-color:var(--m-weak)}.mastery__cell[data-m=learning]{--m-color:var(--m-learning)}.mastery__cell[data-m=strong]{--m-color:var(--m-strong)}.mastery__cell[data-m=mastered]{--m-color:var(--m-mastered)}.mastery__cell:not([data-m=new]){color:var(--text);border-color:color-mix(in srgb, var(--m-color) 55%, var(--line))}.legend{gap:var(--space-2) var(--space-5);font-family:var(--font-code);font-size:var(--label-size);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.legend span{align-items:center;gap:var(--space-2);display:inline-flex}.legend i{width:10px;height:10px;display:inline-block}.history{border-top:var(--hair) solid var(--line);margin:0;padding:0;list-style:none}.history li{justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-1);border-bottom:var(--hair) solid var(--line);align-items:center;display:flex}.history li strong{font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;margin-right:var(--space-2);font-size:.78rem;font-weight:600}.history li .faint{font-family:var(--font-code);font-size:.78rem}.history__score{font-family:var(--font-code);font-feature-settings:"zero", "tnum";font-weight:600}.progress-foot{gap:var(--space-3);justify-items:start;display:grid}.settings{max-width:680px}.setting{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);padding:var(--space-4) 0;border-bottom:var(--hair) solid var(--line);flex-wrap:wrap;display:flex}.setting__text{flex:200px}.setting__title{font-family:var(--font-code);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:600}.setting__hint{color:var(--text-2);font-size:var(--step--1);margin-top:2px}.setting--block{flex-flow:column;align-items:stretch}.voice-list{gap:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.voice-option{align-items:center;gap:var(--space-2);padding-right:var(--space-2);border:var(--hair) solid var(--line);background:var(--surface);min-height:60px;transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);display:flex;position:relative}.voice-option:hover{border-color:var(--line-strong)}.voice-option[data-selected=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.voice-option__pick{padding:var(--space-3);text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-height:58px;display:flex}.voice-option__name{align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.voice-option__desc{font-size:var(--step--1);color:var(--text-2)}.audition{gap:var(--space-6);display:grid}.audition__word{gap:var(--space-3);display:grid}.audition__head{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.audition__head h2{font-size:var(--step-1);margin:0}.audition__symbol{font-family:var(--font-code);color:var(--accent)}.audition__rows{border-top:var(--hair) solid var(--line);display:grid}.audition__row{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-3);border:var(--hair) solid var(--line);border-top:0;flex-wrap:wrap;display:flex}.audition__row[data-selected=true]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.audition__pick{align-items:center;gap:var(--space-3);min-height:var(--tap);cursor:pointer;flex:14rem;display:flex}.audition__pick input{width:18px;height:18px;accent-color:var(--accent)}.audition__text{font-family:var(--font-code);font-size:var(--step-0);font-weight:600}.audition__text--none{font-family:var(--font-sans);color:var(--text-2);font-weight:400}.audition__kind{font-family:var(--font-code);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--text-3)}.audition__plays{gap:var(--space-2);flex-wrap:wrap;display:flex}.audition__play[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.audition__unsure{font-family:var(--font-code);color:var(--danger);font-weight:700}.audition__out{gap:var(--space-3);display:grid}.audition__out h2{font-size:var(--step-1);margin:0}.audition__textarea{width:100%;padding:var(--space-3);border:var(--hair) solid var(--line-strong);background:var(--surface);color:var(--text);font-family:var(--font-code);font-size:var(--step--1);resize:vertical}
.run{gap:var(--space-4);flex-direction:column;max-width:640px;min-height:320px;margin:0 auto;display:flex}.run__bar{align-items:center;column-gap:var(--space-3);row-gap:var(--space-2);grid-template-columns:1fr auto auto;grid-template-areas:"title count close""track track track";display:grid}.run__title{align-items:center;gap:var(--space-3);font-family:var(--font-code);font-size:var(--step--1);letter-spacing:var(--label-track);text-transform:uppercase;grid-area:title;font-weight:600;line-height:1.3;display:flex}.run__title:before{content:"";background:var(--accent);width:8px;height:8px}.run__progress{grid-area:track;gap:2px;display:flex}.run__progress span{background:var(--surface-3);height:4px;transition:background var(--slow) steps(2, end);flex:1}.run__progress span[data-state=right]{background:var(--signal)}.run__progress span[data-state=wrong]{background:var(--danger)}.run__progress span[data-state=now]{background:var(--accent);animation:1.2s steps(2,jump-none) infinite blink-soft}@keyframes blink-soft{to{opacity:.35}}.run__count{font-family:var(--font-code);font-weight:600;font-size:var(--step--1);font-feature-settings:"zero", "tnum";letter-spacing:.06em;color:var(--text-2);text-align:right;grid-area:count;min-width:5ch}.run__bar .icon-button{grid-area:close}.stage{--c:var(--text-3);--tick:var(--line-strong);justify-content:center;align-items:center;gap:var(--space-4);min-height:clamp(170px,30vh,280px);padding:var(--space-7) var(--space-4) var(--space-5);background-color:var(--surface);background-image:linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick));border:var(--hair) solid var(--line);text-align:center;transition:border-color var(--fast) var(--ease);background-position:top,bottom,0,100%;background-repeat:no-repeat;background-size:1px 10px,1px 10px,10px 1px,10px 1px;flex-direction:column;display:flex;position:relative;overflow:hidden}.stage:before{content:"";pointer-events:none;--l:16px;--w:2px;background:linear-gradient(var(--c), var(--c)) top left / var(--l) var(--w), linear-gradient(var(--c), var(--c)) top left / var(--w) var(--l), linear-gradient(var(--c), var(--c)) top right / var(--l) var(--w), linear-gradient(var(--c), var(--c)) top right / var(--w) var(--l), linear-gradient(var(--c), var(--c)) bottom left / var(--l) var(--w), linear-gradient(var(--c), var(--c)) bottom left / var(--w) var(--l), linear-gradient(var(--c), var(--c)) bottom right / var(--l) var(--w), linear-gradient(var(--c), var(--c)) bottom right / var(--w) var(--l);background-repeat:no-repeat;position:absolute;inset:0}.stage__label,.stage:after{top:var(--space-3);font-family:var(--font-code);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;font-weight:500;line-height:1.4;position:absolute}.stage__label{left:var(--space-4);color:var(--text-3)}.stage[data-result=right]{--c:var(--signal);border-color:var(--signal)}.stage[data-result=wrong]{--c:var(--danger);border-color:var(--danger)}.stage[data-result]:after{right:var(--space-4);animation:.2s steps(4,end) wipe-in}.stage[data-result=right]:after{content:"■ Correct";color:var(--signal)}.stage[data-result=wrong]:after{content:"■ Incorrect";color:var(--danger)}.big-symbol{font-family:var(--font-code);font-size:var(--step-5);letter-spacing:-.02em;font-weight:300;line-height:1}.big-text{font-family:var(--font-code);letter-spacing:.12em;word-break:break-all;font-size:clamp(2rem,1.2rem + 5vw,3.8rem);font-weight:400;line-height:1.1}.decode__letter[data-state=waiting]{visibility:hidden}.decode__letter[data-state=scrambling]{color:var(--accent);opacity:.75}@keyframes scan-in{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}.answer{gap:var(--space-3);flex-direction:column;display:flex}.answer__bar{display:flex}.answer__bar .input{flex:1;min-width:0}.answer__bar[data-listening=true] .input{border-color:var(--danger);box-shadow:inset 3px 0 0 var(--danger)}.answer__bar .input[readonly]{cursor:default}.mic,.send{border:var(--hair) solid var(--line-strong);width:52px;height:52px;transition:background var(--fast) var(--ease), color var(--fast) var(--ease), opacity var(--fast);-webkit-tap-highlight-color:transparent;flex:none;place-items:center;margin-left:-1px;display:grid}.mic svg,.send svg{width:22px;height:22px}.mic{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}.mic:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.mic--off{background:var(--surface-3);border-color:var(--line-strong);color:var(--text-2)}.mic--off:hover{background:var(--off);border-color:var(--line-strong)}.mic[data-state=listening]{background:var(--danger);border-color:var(--danger);color:var(--bg)}.mic[data-state=listening]:after{content:"";border:2px solid var(--danger);animation:.7s steps(2,jump-none) infinite blink;position:absolute;inset:-5px}.mic[data-state=working]{opacity:.6}.mic[disabled]{opacity:.4;cursor:not-allowed}.send{background:var(--surface-3);color:var(--text)}.send:not([disabled]):hover{background:var(--text);border-color:var(--text);color:var(--bg)}.send[disabled]{color:var(--text-3);cursor:default}.hint{color:var(--text-3);font-size:var(--step--1);text-align:center}.feedback{align-items:center;gap:var(--space-3);text-align:center;animation:boot var(--slow) steps(3, end);flex-direction:column;display:flex}.feedback .spelling{justify-content:center}.feedback__word{font-size:var(--step-1)}.feedback__text{font-weight:500;font-size:var(--step-1);letter-spacing:.12em}.feedback__actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.verdict{align-items:center;gap:var(--space-2);font-family:var(--font-code);letter-spacing:.14em;text-transform:uppercase;font-size:.85rem;font-weight:700;display:inline-flex}.verdict svg{width:20px;height:20px}.verdict--right{color:var(--signal)}.verdict--wrong{color:var(--danger)}.heard{font-size:var(--step--1);color:var(--text-2)}.heard q{font-family:var(--font-code);color:var(--text)}.radio-panel{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.scope{background:var(--bg);border:var(--hair) solid var(--line);width:100%;display:block}.radio-panel__controls{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.radio-panel__controls .button{padding:0 var(--space-4)}.reception{border:var(--hair) solid var(--line);display:flex}.reception button{width:36px;height:var(--tap);border:0;border-left:var(--hair) solid var(--line);transition:background var(--fast) var(--ease);background:0 0;flex:none;place-items:center;display:grid}.reception button:first-child{border-left:0}.reception button:hover{background:var(--surface-2)}.reception .bars{gap:2px}.reception .bars span{width:3px}.reception button[aria-checked=true]{background:var(--accent-soft);box-shadow:inset 0 2px 0 var(--accent)}.summary{align-items:center;gap:var(--space-5);max-width:640px;padding-top:var(--space-6);text-align:center;flex-direction:column;margin:0 auto;display:flex}.summary:before{content:"End of round";font-family:var(--font-code);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--text-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--accent);font-weight:500}.summary__score{font-family:var(--font-code);font-size:var(--step-5);letter-spacing:-.04em;font-feature-settings:"zero", "tnum";font-weight:200;line-height:1;animation:.32s steps(4,end) scan-in}.summary__of{color:var(--text-3);letter-spacing:0;font-size:.4em}.summary__note{font-size:var(--step--1)}
