:root{--bg:#f6f6f3;--surface:#fff;--text:#17181b;--muted:#6b6f78;--border:#dcdde0;--border-strong:#a9acb3;--correct:#2f9e74;--present:#d9a21b;--absent:#7d828c;--on-mark:#fff;--accent:#2f9e74;--shadow:0 10px 40px #0000001f;--radius:10px;--kb:0px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;font-family:ui-rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121316;--surface:#1b1d21;--text:#eceef1;--muted:#9399a3;--border:#2d3036;--border-strong:#565b64;--correct:#2f9a72;--present:#c8951c;--absent:#3b3f46;--shadow:0 10px 40px #00000080}}:root.high-contrast{--correct:#f5793a;--present:#6fb2f2;--accent:#f5793a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0}body{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}.app{--kb-inset:var(--kb);max-width:560px;height:100dvh;padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) calc(max(12px, env(safe-area-inset-bottom)) + var(--kb-inset)) max(16px, env(safe-area-inset-left));flex-direction:column;margin:0 auto;transition:padding-bottom .12s ease-out;display:flex}.vk-api .app{--kb-inset:env(keyboard-inset-height,0px)}.topbar{grid-template-columns:1fr auto 1fr;align-items:center;padding-block:8px;display:grid}.topbar-right{justify-self:end;gap:4px;display:flex}.brand{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:800}.icon-btn{background:0 0;border:0;border-radius:999px;place-items:center;width:40px;height:40px;font-size:1.6rem;line-height:1;display:grid}.icon-btn:hover{background:color-mix(in srgb, var(--text) 8%, transparent)}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.icon-btn svg .dot{fill:currentColor}.modes{justify-items:center;gap:6px;padding-bottom:8px;display:grid}.segmented{background:color-mix(in srgb, var(--text) 7%, transparent);border-radius:999px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 16px;font-size:.9rem;font-weight:600}.segmented button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000001f}.subtitle{color:var(--muted);min-height:1.2em;margin:0;font-size:.8rem}.play{flex:1;min-height:0;display:grid;position:relative}.board-wrap{place-items:center;min-height:0;margin:0;display:grid;position:relative;container-type:size}.board{--gap:6px;--tile:min(64px, calc((100cqw - (var(--cols) - 1) * var(--gap)) / var(--cols)), calc((100cqh - (var(--rows) - 1) * var(--gap)) / var(--rows)));gap:var(--gap);display:grid}.row{grid-template-columns:repeat(var(--cols), var(--tile));gap:var(--gap);display:grid}.tile{width:var(--tile);height:var(--tile);border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:calc(var(--tile) * .5);text-transform:uppercase;-webkit-user-select:none;user-select:none;place-items:center;font-weight:750;transition:border-color 80ms;display:grid}.tile.filled{border-color:var(--border-strong);animation:.1s ease-out pop}.tile.cursor{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}body:not(.typing) .tile.cursor{border-color:var(--border)}.tile.correct,.tile.present,.tile.absent{color:var(--on-mark);border-color:#0000}.tile.correct{background:var(--correct)}.tile.present{background:var(--present)}.tile.absent{background:var(--absent)}.tile.reveal{animation:flip .48s ease-in-out calc(var(--i) * .26s) backwards}.tile.bounce{animation:bounce .6s ease calc(var(--i) * 90ms)}.row.shake{animation:.42s shake}@keyframes pop{50%{transform:scale(1.08)}}@keyframes flip{0%{background:var(--surface);border-color:var(--border-strong);color:var(--text);transform:rotateX(0)}50%{background:var(--surface);border-color:var(--border-strong);color:var(--text);transform:rotateX(90deg)}50.1%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes bounce{30%{transform:translateY(-14%)}55%{transform:translateY(3%)}}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.tile,.row{animation:none!important}}.entry{opacity:0;color:#0000;caret-color:#0000;cursor:text;background:0 0;border:0;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.toast{background:var(--text);color:var(--bg);opacity:0;pointer-events:none;z-index:2;white-space:nowrap;border-radius:12px;padding:10px 16px;font-size:.95rem;font-weight:700;transition:opacity .16s,translate .16s;position:absolute;top:8px;left:50%;translate:-50% -8px}.toast.show{opacity:1;translate:-50%}.footer{gap:10px;padding-top:12px;display:grid}.tracker{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.tracker span{text-align:center;min-width:22px;color:var(--muted);background:color-mix(in srgb, var(--text) 6%, transparent);border-radius:6px;padding:3px 0;font-size:.75rem;font-weight:700}.tracker span.correct{background:var(--correct);color:var(--on-mark)}.tracker span.present{background:var(--present);color:var(--on-mark)}.tracker span.absent{opacity:.35;text-decoration:line-through}.type-hint{text-align:center;color:var(--muted);margin:0;font-size:.8rem}body.typing .type-hint{visibility:hidden}@media (height<=520px){.modes .subtitle,.type-hint{display:none}}.result{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;gap:10px;padding:12px;display:grid}.result-text{font-variant-numeric:tabular-nums;margin:0;font-size:.9rem}.result-actions{flex:none;gap:8px;display:flex}.primary,.secondary{white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:6px;padding:10px 16px;font-weight:700;display:inline-flex}.primary{background:var(--accent);color:#fff}.secondary{background:color-mix(in srgb, var(--text) 8%, transparent)}.primary svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.stats-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:20px;display:flex}.stats-foot .fineprint{margin:0}dialog .primary{flex:none}.result-actions>*{flex:1;justify-content:center}dialog.sheet{--pad:24px;background:var(--surface);width:min(440px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--text);box-shadow:var(--shadow);overscroll-behavior:contain;border:0;border-radius:24px;padding:0}dialog.sheet:focus{outline:none}dialog.sheet::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006}dialog.sheet[open]{animation:.18s ease-out sheet-in}@keyframes sheet-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}html:has(dialog[open]){overflow:hidden}dialog.sheet form{padding:var(--pad)}.sheet-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}dialog.sheet h2{margin:0;font-size:1.2rem;line-height:1.3}.close{background:color-mix(in srgb, var(--text) 7%, transparent);width:32px;height:32px;color:var(--muted);border:0;border-radius:50%;flex:none;place-items:center;margin:-4px -6px -4px 0;padding:0;display:grid}.close:hover{background:color-mix(in srgb, var(--text) 12%, transparent);color:var(--text)}.close svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;width:16px;height:16px}dialog.sheet p:first-of-type{margin-top:0}dialog.sheet h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:24px 0 10px;font-size:.75rem}dialog.sheet p,dialog.sheet li{line-height:1.45}.legend{gap:8px;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:12px;display:flex}.tile.sample{--tile:36px;flex:none;font-size:1rem}.stats-scope,.fineprint{color:var(--muted);margin:0 0 16px;font-size:.85rem}.fineprint{margin:20px 0 0}.stats-grid{text-align:center;grid-template-columns:repeat(4,1fr);display:grid}.stats-grid strong{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:750;display:block}.stats-grid span{color:var(--muted);font-size:.75rem}.dist{gap:4px;display:grid}.dist-row{grid-template-columns:14px 1fr;align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:grid}.dist .bar{width:var(--w);background:var(--absent);color:var(--on-mark);text-align:right;border-radius:6px;padding:2px 8px}.dist .bar.hl{background:var(--correct)}.setting{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.setting:last-child{border-bottom:0;padding-bottom:0}.setting:not(:has(~.setting:not([hidden]))){border-bottom:0;padding-bottom:0}.setting small{color:var(--muted);margin-top:2px;font-size:.8rem;display:block}.setting select{max-width:52%;font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:8px;flex:none;padding:6px 10px}.switch{appearance:none;background:var(--border-strong);cursor:pointer;border-radius:999px;flex:none;width:46px;height:28px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:translate .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--accent)}.switch:checked:after{translate:18px}.switch:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.close:focus-visible{outline-offset:1px}.race-lobby{align-content:center;justify-items:center;padding:8px 0 16px;display:grid;overflow-y:auto}.race-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;gap:12px;width:100%;max-width:400px;padding:20px;display:grid}.race-card h2{margin:0;font-size:1.2rem}.race-card p{margin:0;font-size:.92rem;line-height:1.45}.race-card .fineprint{text-align:center}.field{color:var(--muted);gap:6px;font-size:.85rem;font-weight:600;display:grid}.field input{font:inherit;color:var(--text);border:1px solid var(--border-strong);background:var(--bg);border-radius:12px;padding:10px 12px;font-size:1rem;font-weight:500}.field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.wide{justify-content:center;width:100%}.secondary svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.primary:disabled{opacity:.5;cursor:default}.race-code-label{text-align:center;color:var(--muted);font-size:.8rem!important}.race-code{text-align:center;letter-spacing:.18em;font-variant-numeric:tabular-nums;-webkit-user-select:all;user-select:all;font-weight:800;font-size:2rem!important}.race-players{gap:6px;margin:0;padding:0;list-style:none;display:grid}.race-players li{background:color-mix(in srgb, var(--text) 5%, transparent);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.race-players small{color:var(--muted);font-weight:500}.race-players li.away{opacity:.55}.link{color:var(--muted);background:0 0;border:0;justify-self:center;padding:4px;font-size:.85rem;text-decoration:underline}.play:has(.race-bar:not([hidden])){grid-template-rows:auto 1fr}.race-bar{gap:8px;padding-bottom:8px;display:grid}.opponents{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.opponent{justify-items:center;gap:4px;font-size:.75rem;font-weight:600;display:grid}.opponent.away{opacity:.5}.opponent-name{text-overflow:ellipsis;white-space:nowrap;max-width:8em;overflow:hidden}.opponent.solved .opponent-name:after{content:" ✓";color:var(--correct)}.mini{grid-template-columns:repeat(var(--cols), 8px);gap:2px;display:grid}.mini i{background:color-mix(in srgb, var(--text) 10%, transparent);border-radius:2px;width:8px;height:8px}.mini i.correct{background:var(--correct)}.mini i.present{background:var(--present)}.mini i.absent{background:var(--absent)}.mini i.lost{background:repeating-linear-gradient(45deg, var(--absent) 0 2px, transparent 2px 4px)}.race-timer{background:color-mix(in srgb, var(--present) 18%, transparent);border-radius:999px;place-items:center;height:28px;display:grid;position:relative;overflow:hidden}.race-timer-fill{transform-origin:0;transform:scaleX(var(--left,1));background:color-mix(in srgb, var(--present) 45%, transparent);position:absolute;inset:0}.race-timer.urgent .race-timer-fill{background:#e5484d8c}.race-timer-text{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700;position:relative}.standings{counter-reset:place;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.standings li{counter-increment:place;background:color-mix(in srgb, var(--text) 5%, transparent);border-radius:14px;grid-template-columns:1.6em 1fr auto;grid-template-areas:"n name pts""n detail pts";align-items:center;column-gap:8px;padding:10px 12px;display:grid}.standings li:before{content:counter(place);color:var(--muted);grid-area:n;font-weight:800}.standings li.winner{background:color-mix(in srgb, var(--correct) 18%, transparent)}.standings strong{grid-area:name}.standings span{color:var(--muted);grid-area:detail;font-size:.8rem}.standings .pts{font-variant-numeric:tabular-nums;grid-area:pts}
