@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root,reppo-header{--font-display:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-logo:"Fraunces", Georgia, serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace}:root{--brand-text-xs:.75rem;--brand-text-sm:.8125rem;--brand-text-md:.9375rem;--brand-text-lg:1.125rem;--brand-text-xl:1.5rem;--brand-text-2xl:2rem;--brand-text-3xl:2.75rem;--brand-leading-tight:1.15;--brand-leading-body:1.55;--brand-tracking-display:-.02em;--brand-tracking-body:0;--brand-tracking-caps:.08em;--brand-weight-body:400;--brand-weight-medium:500;--brand-weight-bold:700;--brand-ease-out:cubic-bezier(.22, .61, .36, 1);--brand-ease-in-out:cubic-bezier(.45, .05, .55, .95);--brand-ease-emphasis:cubic-bezier(.34, 1.32, .64, 1);--brand-dur-instant:80ms;--brand-dur-fast:.14s;--brand-dur-base:.24s;--brand-dur-slow:.38s;--brand-radius-sm:10px;--brand-radius-md:14px;--brand-radius-lg:20px;--brand-radius-xl:26px;--brand-radius-pill:999px;--brand-focus-width:2px;--brand-focus-offset:2px;--brand-hit-min:44px;--brand-hit-min-dense:36px}:root,[data-theme=light]{--brand-ink:#14141a;--brand-ink-muted:#181822a8;--brand-ink-faint:#1818226b;--brand-surface:#ffffffb8;--brand-surface-strong:#fff;--brand-surface-sunken:#12121c0a;--brand-line:#10101a1f;--brand-line-strong:#10101a33;--brand-accent:#5b3fd6;--brand-accent-hover:#4c33bd;--brand-accent-active:#402ba1;--brand-accent-ink:#fff;--brand-accent-soft:#5b3fd61f;--brand-ok:#1f8a44;--brand-warn:#b26a00;--brand-danger:#cc2f26;--brand-scrim:#0a0a1070;--brand-focus-color:var(--brand-accent);--brand-shadow-1:0 1px 2px #1010180f, 0 2px 8px #1010180f;--brand-shadow-2:0 1px 3px #10101814, 0 8px 24px #1010181a;--brand-shadow-3:0 2px 6px #1010181f, 0 18px 50px #1010182e}[data-theme=dark]{--brand-ink:#f4f4f7;--brand-ink-muted:#ffffff9e;--brand-ink-faint:#fff6;--brand-surface:#ffffff14;--brand-surface-strong:#16161c;--brand-surface-sunken:#ffffff0d;--brand-line:#ffffff24;--brand-line-strong:#ffffff42;--brand-accent:#a78bfa;--brand-accent-hover:#b9a3fc;--brand-accent-active:#c9b8fd;--brand-accent-ink:#17111f;--brand-accent-soft:#a78bfa2e;--brand-focus-color:#a78bfa;--brand-ok:#4ade80;--brand-warn:#fbbf24;--brand-danger:#fb7185;--brand-scrim:#0404089e;--brand-shadow-1:0 1px 2px #0006, 0 2px 8px #00000052;--brand-shadow-2:0 1px 3px #00000073, 0 10px 28px #00000073;--brand-shadow-3:0 2px 8px #00000080, 0 22px 56px #0009}@media (prefers-color-scheme:dark){:root:not([data-theme]){--brand-ink:#f4f4f7;--brand-ink-muted:#ffffff9e;--brand-ink-faint:#fff6;--brand-surface:#ffffff14;--brand-surface-strong:#16161c;--brand-surface-sunken:#ffffff0d;--brand-line:#ffffff24;--brand-line-strong:#ffffff42;--brand-accent:#a78bfa;--brand-accent-hover:#b9a3fc;--brand-accent-active:#c9b8fd;--brand-accent-ink:#17111f;--brand-accent-soft:#a78bfa2e;--brand-focus-color:#a78bfa;--brand-ok:#4ade80;--brand-warn:#fbbf24;--brand-danger:#fb7185;--brand-scrim:#0404089e;--brand-shadow-1:0 1px 2px #0006, 0 2px 8px #00000052;--brand-shadow-2:0 1px 3px #00000073, 0 10px 28px #00000073;--brand-shadow-3:0 2px 8px #00000080, 0 22px 56px #0009}}@media (prefers-reduced-motion:reduce){:root{--brand-dur-instant:1ms;--brand-dur-fast:1ms;--brand-dur-base:1ms;--brand-dur-slow:1ms}}.brand-btn{min-height:var(--brand-hit-min);border-radius:var(--brand-radius-pill);font-family:var(--font-body);font-size:var(--brand-text-md);font-weight:var(--brand-weight-medium);letter-spacing:var(--brand-tracking-body);text-align:center;cursor:pointer;appearance:none;transition:background-color var(--brand-dur-fast) var(--brand-ease-out), border-color var(--brand-dur-fast) var(--brand-ease-out), color var(--brand-dur-fast) var(--brand-ease-out), box-shadow var(--brand-dur-fast) var(--brand-ease-out), transform var(--brand-dur-instant) var(--brand-ease-out);touch-action:manipulation;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.125rem;line-height:1.2;text-decoration:none;display:inline-flex}.brand-btn:focus-visible{outline:var(--brand-focus-width) solid var(--brand-focus-color);outline-offset:var(--brand-focus-offset)}.brand-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}.brand-btn:disabled,.brand-btn[aria-disabled=true]{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}.brand-btn--primary{background:var(--brand-accent);color:var(--brand-accent-ink);box-shadow:var(--brand-shadow-1)}@media (hover:hover){.brand-btn--primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--brand-accent-hover)}}.brand-btn--primary:active:not(:disabled):not([aria-disabled=true]){background:var(--brand-accent-active)}.brand-btn--secondary{background:var(--brand-surface);color:var(--brand-ink);border-color:var(--brand-line-strong);box-shadow:var(--brand-shadow-1)}@media (hover:hover){.brand-btn--secondary:hover:not(:disabled):not([aria-disabled=true]){background:var(--brand-surface-strong);border-color:var(--brand-accent)}}.brand-btn--secondary:active:not(:disabled):not([aria-disabled=true]){background:var(--brand-surface-sunken)}.brand-btn--ghost{color:var(--brand-ink-muted);background:0 0}@media (hover:hover){.brand-btn--ghost:hover:not(:disabled):not([aria-disabled=true]){background:var(--brand-accent-soft);color:var(--brand-ink)}}.brand-btn--ghost:active:not(:disabled):not([aria-disabled=true]){background:var(--brand-surface-sunken)}.brand-btn--danger{background:var(--brand-surface);color:var(--brand-danger);border-color:var(--brand-danger);box-shadow:var(--brand-shadow-1)}@media (hover:hover){.brand-btn--danger:hover:not(:disabled):not([aria-disabled=true]){background:var(--brand-surface-strong)}}.brand-btn--danger:active:not(:disabled):not([aria-disabled=true]){background:var(--brand-surface-sunken)}.brand-btn--danger:focus-visible{outline-color:var(--brand-danger)}.brand-btn--dense{min-height:var(--brand-hit-min-dense);font-size:var(--brand-text-sm);padding:.3125rem .75rem}.brand-input{box-sizing:border-box;width:100%;min-height:var(--brand-hit-min);border:1px solid var(--brand-line-strong);border-radius:var(--brand-radius-md);background:var(--brand-surface-strong);color:var(--brand-ink);font-family:var(--font-body);font-size:max(1rem, var(--brand-text-md));font-weight:var(--brand-weight-body);letter-spacing:var(--brand-tracking-body);appearance:none;transition:border-color var(--brand-dur-fast) var(--brand-ease-out), box-shadow var(--brand-dur-fast) var(--brand-ease-out);touch-action:manipulation;padding:.5rem .875rem;line-height:1.4;display:block}.brand-input::placeholder{color:var(--brand-ink-muted);opacity:1}@media (hover:hover){.brand-input:hover:not(:disabled):not([readonly]):not([aria-invalid=true]):not(:user-invalid){border-color:var(--brand-accent)}}.brand-input:focus-visible{outline:var(--brand-focus-width) solid var(--brand-focus-color);outline-offset:var(--brand-focus-offset);border-color:var(--brand-accent)}.brand-input[aria-invalid=true]{border-color:var(--brand-danger)}.brand-input[aria-invalid=true]:focus-visible{outline-color:var(--brand-danger);border-color:var(--brand-danger)}.brand-input:user-invalid{border-color:var(--brand-danger)}.brand-input:user-invalid:focus-visible{outline-color:var(--brand-danger);border-color:var(--brand-danger)}.brand-input[readonly]{background:linear-gradient(var(--brand-surface-sunken), var(--brand-surface-sunken)), var(--brand-surface-strong);color:var(--brand-ink);cursor:default}.brand-input:disabled{cursor:not-allowed;opacity:.45;background:linear-gradient(var(--brand-surface-sunken), var(--brand-surface-sunken)), var(--brand-surface-strong)}.brand-input:-webkit-autofill{-webkit-text-fill-color:var(--brand-ink);-webkit-box-shadow:0 0 0 100px var(--brand-surface-strong) inset;caret-color:var(--brand-ink)}.brand-input:-webkit-autofill{-webkit-text-fill-color:var(--brand-ink);box-shadow:0 0 0 100px var(--brand-surface-strong) inset;caret-color:var(--brand-ink)}.brand-input:autofill{-webkit-text-fill-color:var(--brand-ink);box-shadow:0 0 0 100px var(--brand-surface-strong) inset;caret-color:var(--brand-ink)}.brand-input--code{text-transform:uppercase;letter-spacing:var(--brand-tracking-caps);text-align:center;font-variant-numeric:tabular-nums}.brand-input--code::placeholder{letter-spacing:var(--brand-tracking-caps)}.brand-field{flex-direction:column;display:flex}.brand-field>*{margin:0}.brand-field>*+*{margin-top:.375rem}.brand-field__label{font-family:var(--font-body);font-size:var(--brand-text-sm);font-weight:var(--brand-weight-medium);line-height:var(--brand-leading-tight);color:var(--brand-ink)}.brand-field__help{font-family:var(--font-body);font-size:var(--brand-text-xs);line-height:var(--brand-leading-body);color:var(--brand-ink-muted)}.brand-field__error{font-family:var(--font-body);font-size:var(--brand-text-xs);line-height:var(--brand-leading-body);font-weight:var(--brand-weight-medium);color:var(--brand-danger)}.brand-field__error:empty{margin-top:0}.brand-dialog{border:1px solid var(--brand-line);border-radius:var(--brand-radius-xl);background:var(--brand-surface-strong);width:min(28rem,100%);color:var(--brand-ink);box-shadow:var(--brand-shadow-3);font-family:var(--font-body);padding:0}.brand-dialog::backdrop{background:var(--brand-scrim,#0a0a1070);-webkit-backdrop-filter:blur(2px)}.brand-dialog[open]{animation:brand-dialog-in var(--brand-dur-base) var(--brand-ease-emphasis)}@keyframes brand-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.brand-dialog__body{padding:1.5rem 1.5rem 1.25rem;position:relative}.brand-dialog__close{position:absolute;top:.5rem;right:.5rem}.brand-dialog__title{font-family:var(--font-display);font-size:var(--brand-text-xl);font-weight:var(--brand-weight-bold);line-height:var(--brand-leading-tight);letter-spacing:var(--brand-tracking-display);margin:0 0 .5rem}.brand-dialog__text{color:var(--brand-ink-muted);font-size:var(--brand-text-md);line-height:var(--brand-leading-body);margin:0}.brand-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.625rem;padding:0 1.5rem 1.5rem;display:flex}.brand-toast{border:1px solid var(--brand-line);border-left:3px solid var(--brand-accent);border-radius:var(--brand-radius-md);background:var(--brand-surface-strong);width:-moz-fit-content;width:fit-content;max-width:min(26rem,100%);color:var(--brand-ink);box-shadow:var(--brand-shadow-2);font-family:var(--font-body);font-size:var(--brand-text-sm);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;line-height:1.4;display:flex}.brand-toast--ok{border-left-color:var(--brand-ok)}.brand-toast--danger{border-left-color:var(--brand-danger)}.brand-toast__text{flex:auto;min-width:0;margin:0}.brand-toast .brand-btn{margin-left:auto}.brand-toast--enter{animation:brand-toast-in var(--brand-dur-base) var(--brand-ease-out)}@keyframes brand-toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.brand-result{border:1px solid var(--brand-line);border-radius:var(--brand-radius-xl);background:var(--brand-surface);width:min(22rem,100%);color:var(--brand-ink);box-shadow:var(--brand-shadow-2);font-family:var(--font-body);-webkit-backdrop-filter:blur(14px)saturate(1.3);flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.brand-result__eyebrow{color:var(--brand-ink-faint);font-size:var(--brand-text-xs);font-weight:var(--brand-weight-bold);letter-spacing:var(--brand-tracking-caps);text-transform:uppercase;margin:0}.brand-result__title{font-family:var(--font-display);font-size:var(--brand-text-2xl);font-weight:var(--brand-weight-bold);line-height:var(--brand-leading-tight);letter-spacing:var(--brand-tracking-display);margin:0}.brand-result__stats{border-top:1px solid var(--brand-line);border-bottom:1px solid var(--brand-line);grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:.75rem;margin:0;padding:.875rem 0;display:grid}.brand-result__stat{flex-direction:column;gap:.125rem;display:flex}.brand-result__stat dt{color:var(--brand-ink-faint);font-size:var(--brand-text-xs);font-weight:var(--brand-weight-medium);letter-spacing:var(--brand-tracking-caps);text-transform:uppercase}.brand-result__stat dd{font-family:var(--font-display);font-size:var(--brand-text-lg);font-weight:var(--brand-weight-bold);font-variant-numeric:tabular-nums;letter-spacing:var(--brand-tracking-display);margin:0}.brand-result__actions{flex-wrap:wrap;gap:.625rem;display:flex}.brand-result__actions .brand-btn{flex:auto}[hidden]{display:none!important}.rk-lobby{font-family:var(--font-body);color:var(--brand-ink);--rk-lobby-css-loaded:1;overscroll-behavior:contain;flex-direction:column;gap:1rem;max-height:100dvh;display:flex;overflow-y:auto}.rk-lobby__slot:empty{display:none}.rk-lobby__code-row{align-items:flex-start;gap:.625rem;display:flex}.rk-lobby__code-input{flex:auto}.rk-lobby__roster{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.rk-lobby__player{border:1px solid var(--brand-line);border-radius:var(--brand-radius-md);background:var(--brand-surface);align-items:center;gap:.625rem;padding:.625rem .875rem;display:flex}.rk-lobby__player--disconnected{opacity:.6}.rk-lobby__player-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:var(--brand-weight-medium);flex:auto;overflow:hidden}.rk-lobby__chips{flex-shrink:0;gap:.375rem;display:flex}.rk-lobby__chip{border-radius:var(--brand-radius-pill);font-size:var(--brand-text-xs);font-weight:var(--brand-weight-medium);white-space:nowrap;padding:.125rem .5rem;line-height:1.4}.rk-lobby__chip--host{background:var(--brand-accent-soft);color:var(--brand-accent)}.rk-lobby__chip--bot{background:var(--brand-surface-sunken);color:var(--brand-ink-muted)}.rk-lobby__chip--you{background:var(--brand-surface-sunken);color:var(--brand-ink-muted);border:1px solid var(--brand-line)}.rk-lobby__presence{border-radius:var(--brand-radius-pill);background:var(--brand-ink-faint);flex-shrink:0;width:.5rem;height:.5rem}.rk-lobby__player:not(.rk-lobby__player--disconnected) .rk-lobby__presence{background:var(--brand-ok)}.rk-lobby__connection{font-size:var(--brand-text-sm);color:var(--brand-ink-muted);margin:0}.rk-lobby__start-blocked,.rk-lobby__start-blocked:empty{margin:0}.rk-lobby__actions{flex-wrap:wrap;gap:.625rem;display:flex}.rk-lobby__toast{align-self:flex-start}.brand-toast.rk-lobby__toast{display:none}.brand-toast.rk-lobby__toast--visible{display:flex}:root{--bg:#f4f5f2;--fg:#1c1f1a;--muted:#5f6657;--accent:#5a6b3b;--spr-field:#d9d6c8;--spr-grid:#0000000f;--spr-brick:#cf6a37;--spr-brick-mortar:#3f2013;--spr-steel:#8b93a0;--spr-steel-dk:#565d68;--spr-gun:#2c3038;--spr-smoke:#828892;--spr-bullet:#ffe08a;--spr-accent:#0a84ff;--spr-ok:#30d158;--spr-warn:#ff9f0a;--spr-red:#ff453a;--spr-violet:#bf5af2;--header-h:54px;--brand-ink:var(--fg);--brand-ink-muted:var(--muted);--brand-ink-faint:var(--muted);--brand-surface:var(--bg);--brand-surface-strong:var(--bg);--brand-surface-sunken:var(--spr-grid);--brand-line:var(--spr-grid);--brand-line-strong:var(--muted);--brand-accent:var(--accent);--brand-accent-hover:color-mix(in srgb, var(--accent) 88%, var(--fg));--brand-accent-active:color-mix(in srgb, var(--accent) 78%, var(--fg));--brand-accent-ink:var(--bg);--brand-accent-soft:var(--spr-grid);--brand-focus-color:var(--accent)}:root[data-theme=dark]{--bg:#14170f;--fg:#e8e6d9;--muted:#9aa088;--accent:#a7bd6f;--spr-field:#0e0e17;--spr-grid:#ffffff0d;--brand-ink:var(--fg);--brand-ink-muted:var(--muted);--brand-ink-faint:var(--muted);--brand-surface:var(--bg);--brand-surface-strong:var(--bg);--brand-surface-sunken:var(--spr-grid);--brand-line:var(--spr-grid);--brand-line-strong:var(--muted);--brand-accent:var(--accent);--brand-accent-hover:color-mix(in srgb, var(--accent) 88%, var(--bg));--brand-accent-active:color-mix(in srgb, var(--accent) 78%, var(--bg));--brand-accent-ink:var(--bg);--brand-accent-soft:var(--spr-grid);--brand-focus-color:var(--accent)}*{box-sizing:border-box}html,body{min-height:100vh;min-height:100dvh;margin:0}body{background:var(--bg);color:var(--fg);font-size:16px;line-height:1.5;font-family:var(--font-body)}reppo-header{min-height:var(--header-h);display:block}#app{min-height:calc(100svh - var(--header-h));--tc-btn:66px;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex}.game{width:min(1248px, calc(100svh - var(--header-h) - var(--board-reserve,160px) - var(--band,0px)));flex-direction:column;align-items:center;gap:12px;max-width:100%;display:flex}@media (pointer:coarse){.game{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.game input,.game textarea{-webkit-user-select:text;user-select:text}}.board-wrap{width:100%;position:relative}.playfield{aspect-ratio:1;background:var(--spr-field);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:6px;width:100%;height:auto;display:block;box-shadow:0 2px 14px #0000002e}.overlay{justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.overlay[hidden]{display:none}.start-hint{color:var(--muted);margin:0;font-size:13px}.start-hint[hidden]{display:none}.mount-error{color:var(--muted);text-align:center}.hud-bar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#16161a99;border:1px solid #ffffff24;border-radius:16px;justify-content:space-between;align-items:center;gap:18px;width:100%;padding:12px 18px;display:flex}.hud-bar .grp{align-items:center;gap:9px;display:flex}.hud-bar .lab{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:700}.hud-bar .num{font-family:var(--font-mono);color:var(--fg);font-size:22px;font-weight:700;line-height:1}.hud-pips{gap:5px;display:flex}.mute-btn{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:18px;line-height:1;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.mute-btn:hover{background:#ffffff1f}.mute-btn:focus-visible{outline:2px solid var(--accent,#6ab0ff);outline-offset:2px}.mute-btn.is-muted{opacity:.65}.hud-panel{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);text-align:center;background:#14141ae6;border:1px solid #ffffff2e;border-radius:24px;flex-direction:column;align-items:center;gap:6px;padding:26px 30px;display:flex;box-shadow:0 12px 36px #00000080}.hud-panel .title{letter-spacing:.04em;text-transform:uppercase;margin:4px 0 0;font-size:26px;font-weight:800}.hud-panel .desc{color:#ffffffa6;margin:2px 0 4px;font-size:13px}.hud-panel.lose .title{color:var(--spr-red)}.hud-panel.win .title{color:var(--spr-ok)}.hud-panel .btn.brand-btn{--brand-accent:var(--spr-accent);--brand-accent-hover:color-mix(in srgb, var(--spr-accent) 88%, #000);--brand-accent-active:color-mix(in srgb, var(--spr-accent) 78%, #000);--brand-accent-ink:#fff;--brand-focus-color:var(--spr-accent);margin-top:8px;font-size:14px}.menu-card,.room-lobby{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);color:#fff;text-align:center;background:#14141ae6;border:1px solid #ffffff2e;border-radius:24px;flex-direction:column;gap:14px;width:min(92vw,420px);max-width:100%;padding:26px 28px;display:flex;box-shadow:0 12px 36px #00000080}.menu-title{letter-spacing:.04em;text-transform:uppercase;margin:0 0 2px;font-size:22px;font-weight:800}.menu-choice{text-align:left;color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff29;border-radius:16px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px;transition:background .15s,border-color .15s;display:flex}.menu-choice:hover{background:#ffffff1a;border-color:#ffffff4d}.menu-choice-title{font-size:16px;font-weight:700}.menu-choice-desc{color:#ffffffa6;font-size:12.5px}.btn-primary.brand-btn{--brand-accent:var(--spr-accent);--brand-accent-hover:color-mix(in srgb, var(--spr-accent) 88%, #000);--brand-accent-active:color-mix(in srgb, var(--spr-accent) 78%, #000);--brand-accent-ink:#fff;--brand-focus-color:var(--spr-accent);padding:11px 22px;font-size:14px}.btn-ghost.brand-btn{--brand-ink:#fff;--brand-surface:transparent;--brand-surface-strong:#ffffff14;--brand-surface-sunken:#ffffff24;--brand-line:#ffffff47;--brand-line-strong:#fff6;--brand-accent:#ffffff8c;--brand-focus-color:#fff;padding:8px 16px;font-size:13px}.menu-or{background:#ffffff24;height:1px;margin:2px 0}.join-row{gap:8px;display:flex}.code-input{color:#fff;letter-spacing:.3em;text-align:center;text-transform:uppercase;background:#00000040;border:1px solid #ffffff47;border-radius:999px;flex:1;min-width:0;padding:10px 16px;font:700 16px/1 SF Mono,ui-monospace,monospace}.code-input::placeholder{color:#fff6;letter-spacing:normal;font-weight:400}.code-input:focus-visible{outline:2px solid var(--spr-accent);outline-offset:1px}.name-field{flex-direction:column;gap:6px;display:flex}.name-input{box-sizing:border-box;color:#fff;background:#00000040;border:1px solid #ffffff47;border-radius:999px;width:100%;min-width:0;padding:10px 16px;font:600 16px/1 system-ui,sans-serif}.name-input::placeholder{color:#fff6;font-weight:400}.name-input:focus-visible{outline:2px solid var(--spr-accent);outline-offset:1px}.menu-error{color:var(--spr-red);margin:0;font-size:13px}.menu-error[hidden]{display:none}.room-lobby-overlay{z-index:2;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:0}.room-lobby-overlay[hidden]{display:none}.lobby-label{letter-spacing:.14em;text-transform:uppercase;color:#fff9;font-size:10.5px;font-weight:700}.lobby-share-hint{color:#fff9;margin:0;font-size:12.5px}.lobby-result{text-transform:uppercase;letter-spacing:.05em;font-size:16px;font-weight:800}.lobby-result.win{color:var(--spr-ok)}.lobby-result.lose{color:var(--spr-red)}.room-lobby{--brand-ink:#fff;--brand-ink-muted:#fff9;--brand-ink-faint:#fff6;--brand-surface:#ffffff0f;--brand-surface-strong:#ffffff1a;--brand-surface-sunken:#ffffff24;--brand-line:#ffffff29;--brand-line-strong:#ffffff47;--brand-accent:var(--spr-accent);--brand-accent-hover:color-mix(in srgb, var(--spr-accent) 88%, #000);--brand-accent-active:color-mix(in srgb, var(--spr-accent) 78%, #000);--brand-accent-soft:color-mix(in srgb, var(--spr-accent) 22%, transparent);--brand-accent-ink:#fff;--brand-focus-color:var(--spr-accent)}.room-lobby .brand-toast[hidden]{display:none}.game.lobby-active .hud-bar,.game.lobby-active .start-hint{visibility:hidden}.fatal-overlay{z-index:3;text-align:center;background:#0a0a0ed1;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex;position:absolute;inset:0}.fatal-overlay[hidden]{display:none}.fatal-msg{color:#fff;max-width:320px;margin:0;font-size:15px}.touch-controls{z-index:4;padding:0 22px calc(26px + env(safe-area-inset-bottom,0px));pointer-events:none;touch-action:none;justify-content:space-between;align-items:flex-end;display:none;position:fixed;bottom:0;left:0;right:0}@media (pointer:coarse){.touch-controls.is-playing{display:flex}}.touch-dpad{grid-template-columns:repeat(3, var(--tc-btn));grid-template-rows:repeat(3, var(--tc-btn));gap:4px;display:grid}.dpad-up{grid-area:1/2/2/3}.dpad-left{grid-area:2/1/3/2}.dpad-right{grid-area:2/3/3/4}.dpad-down{grid-area:3/2/4/3}.touch-btn{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffeb;cursor:pointer;background:#16161a6b;border:1px solid #ffffff38;border-radius:14px;justify-content:center;align-items:center;font-size:22px;line-height:1;transition:background 80ms;display:flex}.touch-btn.is-active{background:color-mix(in srgb, var(--spr-accent) 60%, transparent);border-color:#fff6}.touch-fire{width:calc(var(--tc-btn) * 1.55);height:calc(var(--tc-btn) * 1.55);color:var(--spr-warn);background:#16161a80;border-radius:50%;margin-bottom:14px;font-size:34px}@media (max-width:560px){#app{justify-content:flex-start;padding:6px 4px}.game{--board-reserve:100px;gap:8px}.hud-bar{border-radius:11px;flex-wrap:wrap;justify-content:space-between;gap:4px 5px;width:calc(100vw - 8px);padding:5px 11px}.hud-bar .grp{gap:4px}.hud-bar .lab{letter-spacing:.02em;font-size:9px}.hud-bar .num{font-size:16px}.mute-btn{border-radius:8px;width:28px;height:28px;font-size:15px}.menu-card,.room-lobby{padding:22px 20px}}@media (pointer:coarse) and (orientation:portrait){#app{--band:calc(var(--tc-btn) * 3 + 8px + 14px + 24px + env(safe-area-inset-bottom,0px));padding-bottom:var(--band);justify-content:center}.touch-controls{height:var(--band);padding:0 22px calc(24px + env(safe-area-inset-bottom,0px));align-items:flex-end}.touch-fire{margin-bottom:calc((var(--tc-btn) * 1.45 + 8px) / 2)}}@media (pointer:coarse) and (orientation:portrait) and (max-height:720px){#app{--tc-btn:52px}}.tk-update-toast{top:calc(env(safe-area-inset-top,0px) + var(--header-h) + 8px);z-index:50;max-width:calc(100vw - 24px);color:var(--fg);background:var(--bg);border:1px solid color-mix(in srgb, var(--fg) 16%, transparent);border-radius:999px;align-items:center;gap:10px;padding:8px 8px 8px 16px;font-size:14px;font-weight:600;animation:.24s both tk-update-toast-in;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 22px #0000002e}.tk-update-toast-text{white-space:nowrap}.tk-update-toast-refresh{flex:none}.tk-update-toast-refresh.brand-btn{--brand-accent:var(--fg);--brand-accent-hover:color-mix(in srgb, var(--fg) 88%, var(--bg));--brand-accent-active:color-mix(in srgb, var(--fg) 78%, var(--bg));--brand-accent-ink:var(--bg)}.tk-update-toast-dismiss{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;padding:0;font-size:14px;line-height:1}.tk-update-toast-dismiss:hover{color:var(--fg)}.tk-update-toast-dismiss:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes tk-update-toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.tk-update-toast{animation:none}}
