@font-face{font-family:Archivo;font-style:normal;font-weight:400 900;font-stretch:62% 125%;font-display:block;src:url(/fonts/archivo-latin.woff2) format("woff2")}:root{--ink: #000;--paper: #fff;--border: 3px;--gap: 8px;--pad-x: 16px;--footer-tier: 42px;color-scheme:light}:root[data-theme=night]{--ink: #fff;--paper: #000;color-scheme:dark}html{background:var(--ink)}@media(min-width:900px){:root{--border: 4px;--gap: 10px;--pad-x: 32px}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ink);color:var(--ink);font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.app{display:flex;flex-direction:column;min-height:100%;max-width:560px;margin-inline:auto;background:var(--paper);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px var(--pad-x);border-bottom:var(--border) solid var(--ink)}.wordmark{font-size:clamp(2rem,7vw,3.25rem);font-weight:900;font-stretch:112%;letter-spacing:-.03em;line-height:.9;margin:0}.close{position:relative;font-size:clamp(1.5rem,6vw,2rem);font-weight:900;line-height:1;padding:0 2px}.close:after,.night:after,.reset:after{content:"";position:absolute;inset:50%;width:44px;height:44px;transform:translate(-50%,-50%)}main{flex:1;display:flex;flex-direction:column;min-height:0}.practice{display:flex;flex:1;min-height:0}.practice-main{flex:1;display:flex;flex-direction:column;min-width:0;padding:10px var(--pad-x) max(16px,env(safe-area-inset-bottom));--pad-w: min(440px, 94vw, calc((100dvh - 300px) / 1.24))}.meta{display:flex;align-items:center;gap:14px;font-size:.8rem;font-weight:800;letter-spacing:.1em}.ticks{display:flex;gap:4px}.tick{width:14px;height:14px;border:var(--border) solid var(--ink)}.tick.on{background:var(--ink)}.stage{flex:1;display:flex;flex-direction:column;min-height:0}@media(min-height:900px){.stage{justify-content:center}}.prompt{display:flex;align-items:center;justify-content:center;gap:.07em;margin:calc(var(--pad-w) * .1) 0;font-size:clamp(3.5rem,22vw,10rem);font-weight:900;font-stretch:108%;letter-spacing:-.04em;line-height:.85;user-select:none}.prompt .times{flex:none;width:.42em;height:.42em;margin-left:.04em;fill:none;stroke:currentColor;stroke-width:4.4;stroke-linecap:butt}.pad{position:relative;width:100%;margin-inline:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}@media(min-width:900px){.pad{max-width:400px}}.clock{height:10px;margin-top:10px;border:var(--border) solid var(--ink)}.clock-fill{display:block;height:100%;background:var(--ink);transform-origin:left center;transform:scaleX(1)}.clock-fill.running{animation-name:drain;animation-timing-function:linear;animation-fill-mode:forwards}.clock-fill.stopped{transform:scaleX(0)}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.clock-fill.running{animation-timing-function:steps(4,end)}}.pad-slot{position:relative;width:100%;max-width:var(--pad-w);margin:0 auto;container-type:inline-size}.pad-slot.revealing .pad{visibility:hidden}.reveal-number{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;line-height:.8;letter-spacing:-.04em;font-size:30vw;font-size:72cqw}.pad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}.cell{display:grid;place-items:center;aspect-ratio:1;border:var(--border) solid var(--ink);font-size:clamp(2rem,11vw,4rem);font-weight:900;line-height:1}.cell.zero{grid-column:1 / -1;aspect-ratio:auto;height:clamp(64px,24cqw,140px);margin-top:var(--gap)}.cell.lit{background:var(--ink);color:var(--paper)}.ink-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ink-layer path{fill:none;stroke-linecap:round;stroke-linejoin:round}.ink-layer .casing{stroke:var(--ink);stroke-width:22}.ink-layer .core{stroke:var(--paper);stroke-width:12}@media(min-width:900px){.ink-layer .casing{stroke-width:24}.ink-layer .core{stroke-width:13}}.page-title{width:100%;max-width:420px;text-align:left;font-size:clamp(2.2rem,12vw,3.5rem);font-weight:900;font-stretch:112%;letter-spacing:-.02em;line-height:.9;margin:0 0 8px}.panel{width:100%;max-width:420px;border:var(--border) solid var(--ink);padding:12px 14px;text-align:left}.panel+.panel{margin-top:14px}.panel-title{margin:0 0 8px;font-size:1.05rem;font-weight:900;letter-spacing:-.01em}.tables,.panel .breakdown{width:100%;border-collapse:collapse;font-size:.9rem;font-weight:800}.tables th,.tables td{border-top:2px solid var(--ink);padding:5px 4px}.tables tbody th{text-align:left;width:2.2em}.tables .times{margin-right:.14em;font-size:.7em;opacity:.7}.tables td.pct,.tables td.time{text-align:right;width:4.4em;font-variant-numeric:tabular-nums}.gauge{display:block;height:.9em;border:2px solid var(--ink)}.gauge-fill{display:block;height:100%;background:var(--ink)}.mastered-cell{display:flex;align-items:center;gap:6px;width:100%}.mastered-cell .gauge{flex:1}.mastered-cell .fraction{font-size:.78rem;white-space:nowrap;font-variant-numeric:tabular-nums}.panel .breakdown td.status{text-align:left;padding-left:1em}.history{display:inline-flex;gap:3px;vertical-align:middle}.mark{display:inline-block;width:.85em;height:.85em;border:2px solid var(--ink)}.mark-empty{border-style:dashed}.mark-on{background:var(--ink)}.nothing{margin:0;font-size:.84rem;font-weight:800;letter-spacing:.1em;opacity:.6}.select{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);width:100%;max-width:min(420px,calc(100dvh - 340px));touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.select .row{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;aspect-ratio:2 / 1;border:var(--border) solid var(--ink);font-size:clamp(1.8rem,9vw,3.2rem);font-weight:900;line-height:1}.select .row.on{background:var(--ink);color:var(--paper)}.select .check{position:absolute;top:.16em;right:.16em;width:.42em;height:.42em;stroke:var(--paper);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}.select .times{grid-column:1;justify-self:end;margin-right:.14em;font-size:.52em;line-height:1;opacity:.7}.select .n{grid-column:2}.home{display:flex;flex-direction:column;align-items:center;flex:1;min-height:0;gap:0;padding:16px var(--pad-x) max(18px,env(safe-area-inset-bottom))}.home-main,.done-main{flex:1;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;min-height:0;overflow-y:auto}.home-main,.done-main{justify-content:center;padding-top:8px}@media(max-aspect-ratio:2 / 5){.home-main,.done-main{padding-top:calc(8px + 100dvh - 250vw)}}.actions{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:420px;margin-top:18px}.launch{flex:0 0 auto;width:100%;max-width:420px;padding:20px 16px;border:var(--border) solid var(--ink);background:var(--ink);color:var(--paper);font-size:clamp(1.3rem,6.5vw,1.9rem);font-weight:900;letter-spacing:.1em;text-align:center}.launch.second{padding:13px 16px;background:var(--paper);color:var(--ink);font-size:clamp(.86rem,3.6vw,1.05rem)}.launch.back{display:grid;place-items:center}.launch.back svg{width:1.4rem;height:1.4rem;display:block;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:square;stroke-linejoin:miter}.launch.restart{display:grid;place-items:center}.launch.restart svg{width:1.9rem;height:1.9rem;display:block;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:square;stroke-linejoin:miter}.footer{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:420px;height:var(--footer-tier)}.footer.center{justify-content:center}.night{position:relative;display:grid;place-items:center;padding:2px}.night svg{width:1.1rem;height:1.1rem;display:block}.night circle{fill:none;stroke:var(--ink);stroke-width:2.4}.night path{fill:var(--ink)}.plain{font-size:.72rem;font-weight:800;letter-spacing:.1em}.plain.armed{background:var(--ink);color:var(--paper);padding:3px 6px}.reset{position:relative;display:flex;align-items:center;gap:6px}.reset svg{width:1.15rem;height:1.15rem;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}.score-panel{text-align:center}.score-summary{display:grid;place-items:center;padding-block:20px}.score-panel .breakdown{width:100%;margin-top:0}.score-tables,.score-missed{text-align:left}.score-missed .misses{width:100%;padding-top:6px;border-top:2px solid var(--ink)}.score-tables .breakdown th,.score-tables .breakdown td{padding:5px 4px}.couple{display:flex;align-items:flex-start;justify-content:center;gap:.18em;font-size:clamp(2.2rem,12vw,4.2rem);font-weight:900;line-height:.9;letter-spacing:-.03em}.stat{display:flex;flex-direction:column;align-items:center;gap:.22em}.stat .label{font-size:.2em;font-weight:800;letter-spacing:.14em;line-height:1}.metric-divider{align-self:center;width:2px;height:1.5rem;margin:0 .08em;background:var(--ink)}.breakdown{width:min(420px,86vw);margin-top:4px;border-collapse:collapse;font-size:.84rem;font-weight:800}.breakdown th,.breakdown td{border-top:2px solid var(--ink);padding:6px 2px}.breakdown th{text-align:left;letter-spacing:.08em}.breakdown td:last-child{text-align:right}.panel .breakdown td.pct,.panel .breakdown td.time{text-align:right;width:4.4em;font-variant-numeric:tabular-nums}.done .misses{max-width:min(420px,86vw)}.misses{display:flex;flex-direction:column;gap:6px;margin:0;width:min(420px,86vw)}.misses span{font-size:clamp(1.25rem,6.5vw,1.9rem);text-align:center;font-weight:900;line-height:1;letter-spacing:-.02em}.result .misses span{font-size:clamp(.95rem,4.2vw,1.2rem)}.done,.result{display:flex;flex-direction:column;align-items:center;flex:1;min-height:0;gap:14px;padding:16px var(--pad-x) calc(max(18px,env(safe-area-inset-bottom)) + var(--footer-tier));text-align:center}@media(orientation:landscape)and (max-height:650px){:root{--footer-tier: 28px}.bar{padding-block:6px}.wordmark{font-size:2.5rem}.home{padding-top:10px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.home-main,.done-main{gap:8px;padding-top:0}.page-title{margin-bottom:4px;font-size:2.5rem}.select{max-width:min(420px,calc(100dvh - 300px))}.actions{gap:6px;margin-top:12px}.launch{padding-block:14px}.launch.second{padding-block:9px}}@media(min-width:700px)and (min-height:700px){.home,.done{justify-content:center}.home-main,.done-main{flex:0 1 auto}}
