:root{--page:#f5f1e8;--ink:#1b2432;--ink-soft:#566070;--line:#d8d2c4;--field:#fffdf8;--call:#15304f;--call-ink:#f7f3ea;--call-soft:#b5c3d6;--answer:#46d483;--answer-ink:#06230f;--accent:#0d5eaf;--chosen:#e3edf9;--stop:#a3261f;--stop-ink:#fff;--problem:#a3261f;--problem-bg:#fbeceb;--track:#e4ded0;--known:#0d5eaf;--learning:#9db9da;--font-voice:ui-serif, "New York", "Iowan Old Style", Palatino, Georgia, serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-s:.875rem;--text-m:1.0625rem;--text-l:1.25rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-3xl:3.5rem;--leading-tight:1.15;--leading-body:1.5;--weight-strong:600;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-s:.5rem;--radius-l:1.25rem;--radius-pill:999px;--tap:3rem;--measure:30rem;--wide:60rem;--quick:.12s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page:#10151c;--ink:#eef1f5;--ink-soft:#a3acb9;--line:#2f3846;--field:#171d26;--call:#1b3252;--call-ink:#f7f3ea;--call-soft:#b5c3d6;--answer:#46d483;--answer-ink:#06230f;--accent:#6badf0;--chosen:#1f3048;--stop:#f08a83;--stop-ink:#2a0b09;--problem:#f6a8a2;--problem-bg:#3a1f1e;--track:#232b37;--known:#6badf0;--learning:#3b5d86}}*{box-sizing:border-box}body{background:var(--page);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-m);line-height:var(--leading-body);-webkit-text-size-adjust:100%;margin:0}h1,h2,p,dl,dd,fieldset,legend{margin:0;padding:0}:root{accent-color:var(--accent);caret-color:var(--accent)}::selection{background:var(--accent);color:var(--page)}a{color:var(--accent);text-underline-offset:var(--space-1)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;max-width:var(--wide);padding:var(--space-2) var(--space-4);margin:0 auto;display:flex}.wordmark{font-family:var(--font-voice);font-weight:var(--weight-strong);color:var(--ink)}.nav{gap:var(--space-5);display:flex}.nav a{min-height:var(--tap);color:var(--ink-soft);border-bottom:2px solid #0000;align-items:center;text-decoration:none;display:inline-flex}.nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.screen{width:100%;max-width:var(--measure);padding:var(--space-4) var(--space-4) var(--space-7);margin:0 auto}.screen--today{max-width:var(--wide);gap:var(--space-5);display:grid}@media (width>=52rem){.screen--today{gap:var(--space-7);padding-top:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.title{font-family:var(--font-voice);font-size:var(--text-2xl);font-weight:500;line-height:var(--leading-tight);text-wrap:balance}.lede{margin-top:var(--space-3);margin-bottom:var(--space-6);color:var(--ink-soft)}.subtitle{font-family:var(--font-voice);font-size:var(--text-l);font-weight:var(--weight-strong);line-height:var(--leading-tight)}.call{gap:var(--space-4);min-height:min(60dvh,30rem);padding:var(--space-5);border-radius:var(--radius-l);background:var(--call);color:var(--call-ink);flex-direction:column;display:flex}.call :focus-visible{outline-color:var(--call-ink)}.call ::selection{background:var(--call-ink);color:var(--call)}.call__who{align-items:center;gap:var(--space-2);font-size:var(--text-s);color:var(--call-soft);display:flex}.call__dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);background:var(--answer)}.call__dot--ringing{animation:1.6s ease-out infinite ring}@keyframes ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--answer) 70%, transparent)}to{box-shadow:0 0 0 .6rem #0000}}@media (prefers-reduced-motion:reduce){.call__dot--ringing{animation:none}}.call__line{font-family:var(--font-voice);font-size:var(--text-2xl);font-weight:500;line-height:var(--leading-tight);text-wrap:balance;overflow-wrap:anywhere}.call__covers{font-size:var(--text-xl);line-height:var(--leading-tight)}.call__aside{font-size:var(--text-s);color:var(--call-soft)}.answer{min-height:3.75rem;padding:0 var(--space-5);border-radius:var(--radius-pill);background:var(--answer);color:var(--answer-ink);font-size:var(--text-l);font-weight:var(--weight-strong);justify-content:center;align-items:center;margin-top:auto;text-decoration:none;display:flex}button.answer{cursor:pointer;border:0;width:100%;font-family:inherit}button.answer:disabled{opacity:.5;cursor:default}.answer--again{background:var(--call-ink);color:var(--call)}.answer--waiting{background:var(--call-soft);opacity:.25}.ledger__row{padding:var(--space-4) 0;border-top:1px solid var(--line)}.ledger__row:first-child{border-top:0;padding-top:0}.ledger__label{font-size:var(--text-s);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.ledger__value{align-items:baseline;gap:0 var(--space-2);font-size:var(--text-l);flex-wrap:wrap;display:flex}.ledger__figure{font-family:var(--font-voice);font-size:var(--text-xl);line-height:var(--leading-tight)}.ledger__figure--stakes{font-size:var(--text-3xl)}.ledger__note{color:var(--ink-soft)}.meter{height:var(--space-2);margin:var(--space-2) 0;border-radius:var(--radius-pill);background:var(--track);display:flex;overflow:hidden}.meter__known{background:var(--known)}.meter__learning{background:var(--learning)}.field{gap:var(--space-2);margin-bottom:var(--space-5);border:0;min-width:0;display:grid}.field__label{font-weight:var(--weight-strong)}legend.field__label{margin-bottom:var(--space-2)}.field__input{width:100%;min-width:0;min-height:var(--tap);padding:var(--space-2) var(--space-3);border:1px solid var(--ink-soft);border-radius:var(--radius-s);background:var(--field);color:var(--ink);font:inherit}.field__input[aria-invalid=true]{border:2px solid var(--problem)}.hint{font-size:var(--text-s);color:var(--ink-soft)}.error{color:var(--problem);font-weight:var(--weight-strong)}.saved{color:var(--ink-soft)}.minutes{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.minutes__option{justify-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);border:1px solid var(--ink-soft);border-radius:var(--radius-s);background:var(--field);display:grid;position:relative}.minutes__option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.minutes__number{font-family:var(--font-voice);font-size:var(--text-xl);line-height:var(--leading-tight)}.minutes__unit{font-size:var(--text-s);color:var(--ink-soft)}.minutes__length{height:var(--space-1);border-radius:var(--radius-pill);background:var(--ink-soft);justify-self:start}.minutes__option:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--chosen)}.minutes__option:has(input:checked) .minutes__length{background:var(--accent)}.minutes__option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.take__count{font-size:var(--text-s);color:var(--ink-soft)}.take{gap:var(--space-2);margin:var(--space-5) 0;padding:var(--space-5) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid}.take__kind{font-weight:var(--weight-strong)}.take__say{font-family:var(--font-voice);font-size:var(--text-2xl);line-height:var(--leading-tight);overflow-wrap:anywhere}.take__sound{color:var(--ink-soft)}.button{width:100%;min-height:var(--tap);padding:0 var(--space-5);border:1px solid var(--ink);border-radius:var(--radius-pill);background:var(--ink);color:var(--page);font:inherit;font-weight:var(--weight-strong);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.button:disabled{opacity:.6;cursor:default}.button--quiet{border-color:var(--ink-soft);color:var(--ink);background:0 0}.button--warn{border-color:var(--problem);color:var(--problem);background:0 0}.button--stop{border-color:var(--stop);background:var(--stop);color:var(--stop-ink)}.textbutton:disabled{color:var(--ink-soft);cursor:default}.textbutton{min-height:var(--tap);color:var(--accent);font:inherit;text-underline-offset:var(--space-1);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;text-decoration:underline}.actions{gap:var(--space-3);display:grid}.apart{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--line);gap:var(--space-3);display:grid}.confirm{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--problem);border-radius:var(--radius-s);background:var(--problem-bg);display:grid}.confirm__losses{padding-left:var(--space-5);margin:0}.notice{gap:var(--space-4);display:grid}.waiting{color:var(--ink-soft)}.screen--call{padding-bottom:var(--space-4);flex-direction:column;flex:1;display:flex}.call--live{flex:1}.call--live .button--stop{margin-top:auto}.card{justify-content:center;gap:var(--space-2);padding:var(--space-5) 0;flex-direction:column;flex:1;display:flex}.card__empty,.card__prompt,.card__translit{color:var(--call-soft)}.card__prompt{font-size:var(--text-s)}.card__target{font-family:var(--font-voice);font-size:var(--text-2xl);font-weight:500;line-height:var(--leading-tight);overflow-wrap:anywhere}.card__translit,.card__english{font-size:var(--text-l)}.card__result{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--call-soft);font-weight:var(--weight-strong)}.call .textbutton{color:var(--call-ink);align-self:flex-start}.summary{gap:var(--space-4);display:grid}.summary__drop{padding:var(--space-3) var(--space-4);border:1px solid var(--problem);border-radius:var(--radius-s);background:var(--problem-bg)}.results{margin:0;padding:0;list-style:none}.results__row{padding:var(--space-4) 0;border-top:1px solid var(--line)}.results__row:last-child{border-bottom:1px solid var(--line)}.results__target{font-family:var(--font-voice);font-size:var(--text-xl);line-height:var(--leading-tight)}.results__how{font-size:var(--text-s);color:var(--ink-soft)}.results__result{color:var(--ink)}.results__how strong{color:var(--ink);font-weight:var(--weight-strong)}.sounds{margin-top:var(--space-4)}.sounds .subtitle{margin-bottom:var(--space-3)}a.button{text-decoration:none}.unit{margin-top:var(--space-7)}.unit__kicker{font-size:var(--text-s);color:var(--ink-soft)}.unit__goal{margin-top:var(--space-1);margin-bottom:var(--space-3);font-size:var(--text-s);color:var(--ink-soft)}.words__list{margin:0;padding:0;list-style:none}.words__row{border-top:1px solid var(--line)}.words__row:last-child{border-bottom:1px solid var(--line)}.word{align-items:center;gap:var(--space-4);width:100%;min-height:var(--tap);padding:var(--space-3) 0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.word__text{flex-direction:column;flex:1;min-width:0;display:flex}.word__target{font-family:var(--font-voice);font-size:var(--text-l);line-height:var(--leading-tight)}.word__translit,.word__how{font-size:var(--text-s);color:var(--ink-soft)}.word__how strong{color:var(--ink);font-weight:var(--weight-strong)}.word__cue{font-size:var(--text-s);color:var(--accent);flex:none}.word--silent{cursor:default}.word--active .word__cue{color:var(--ink);font-weight:var(--weight-strong)}.line{align-items:center;gap:var(--space-4);padding:var(--space-3) 0;display:flex}.line__act{min-height:var(--tap);padding:0 var(--space-1);color:var(--accent);font:inherit;font-size:var(--text-s);cursor:pointer;background:0 0;border:0;flex:none}.line__act--quiet{color:var(--ink-soft)}.line__act:disabled{cursor:default;opacity:.5}.word__problem{padding-bottom:var(--space-3);font-size:var(--text-s);color:var(--problem);font-weight:var(--weight-strong)}.pair{padding-top:var(--space-3)}.pair__words{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.unit--later .subtitle,.unit--later .word__target,.unit--later .word__english,.unit--later .word__how strong{color:var(--ink-soft)}.today__call{gap:var(--space-3);align-content:start;display:grid}.today__ear{text-align:center}.drill__body{gap:var(--space-4);display:grid}.drill__count{font-size:var(--text-s);color:var(--ink-soft)}.drill__ask{font-family:var(--font-voice);font-size:var(--text-xl);font-weight:500;line-height:var(--leading-tight)}.drill__choices{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.choice{justify-content:center;align-items:center;gap:var(--space-1);min-height:9rem;padding:var(--space-4) var(--space-3);border:1px solid var(--ink-soft);border-radius:var(--radius-l);background:var(--field);color:var(--ink);font:inherit;text-align:center;overflow-wrap:anywhere;cursor:pointer;flex-direction:column;display:flex}.choice:disabled{cursor:default}.choice__target{font-family:var(--font-voice);font-size:var(--text-2xl);line-height:var(--leading-tight)}.choice__translit,.choice__english{font-size:var(--text-s);color:var(--ink-soft)}.choice__mark{margin-top:var(--space-2);font-size:var(--text-s);font-weight:var(--weight-strong)}.choice--heard{border:2px solid var(--accent);background:var(--chosen)}.choice--missed{border:2px solid var(--problem)}.choice--missed .choice__mark,.drill__said--missed{color:var(--problem)}.drill__pair{white-space:nowrap}.drill__said{min-height:calc(var(--text-m) * var(--leading-body) * 2);font-weight:var(--weight-strong)}.ear-results .results__row{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-3) 0;display:flex}.ear-results .results__target{font-size:var(--text-l)}.button,.answer,.nav a,.minutes__option,.choice{transition:background-color var(--quick) ease-out, border-color var(--quick) ease-out, color var(--quick) ease-out, transform var(--quick) ease-out}@media (hover:hover){.nav a:hover{color:var(--ink)}.button:hover:not(:disabled){background:color-mix(in oklab, var(--ink) 86%, var(--page))}.button--quiet:hover:not(:disabled){background:color-mix(in oklab, var(--ink) 8%, transparent)}.button--warn:hover:not(:disabled){background:color-mix(in oklab, var(--problem) 10%, transparent)}.button--stop:hover:not(:disabled){background:color-mix(in oklab, var(--stop) 88%, var(--stop-ink))}.answer:hover:not(:disabled){background:color-mix(in oklab, var(--answer) 88%, var(--answer-ink))}.answer--again:hover{background:color-mix(in oklab, var(--call-ink) 90%, var(--call))}.choice:hover:not(:disabled){border-color:var(--ink)}.minutes__option:hover:not(:has(input:checked)){border-color:var(--ink)}.textbutton:hover,.line__act:hover:not(:disabled),.word:hover .word__cue{text-decoration:underline;text-decoration-thickness:2px}}.button:active:not(:disabled),.answer:active:not(:disabled){transform:scale(.98)}@media (prefers-reduced-motion:reduce){.button,.answer,.nav a,.minutes__option,.choice{transition:none}.button:active:not(:disabled),.answer:active{transform:none}}
