@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-600-latin-ext.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-600-latin.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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-latin-ext.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}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-latin.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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-400-latin-ext.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}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-400-latin.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}:root{--font-display:"Fraunces", "Iowan Old Style", "Palatino", Georgia, serif;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--surface-app:#ede4d3;--surface-raised:#f6f0e3;--surface-sunken:#e3d7c2;--ink:#2b2118;--ink-muted:#6f5f4b;--ink-faint:#a5977f;--board-frame-hi:#6b4a32;--board-frame-lo:#3c2a1c;--board-felt:#31604a;--board-felt-line:#27503d;--board-hint:#f6f0e380;--board-lastmove:#c9a24b;--square-light:#e5cfa2;--square-dark:#9c6b3f;--disc-dark:#262220;--disc-dark-hi:#4a423c;--disc-light:#f1e8d4;--disc-light-lo:#cbbfa4;--accent:#8a6423;--accent-hover:#a1762c;--accent-ink:#fdf9ef;--danger:#8a2f23;--ok:#31604a;--focus-ring:3px solid #8a6423;--radius-s:6px;--radius-m:10px;--radius-l:16px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--shadow-piece:0 1px 2px #140c0473;--shadow-board:0 10px 30px #2b211840, 0 2px 6px #2b211833;--shadow-card:0 1px 3px #2b211824;--ease-pop:cubic-bezier(.2, 1.4, .4, 1);--dur-fast:.12s;--dur-med:.26s}[data-theme=slate]{--surface-app:#191b1f;--surface-raised:#23262c;--surface-sunken:#131418;--ink:#e6e1d5;--ink-muted:#a49a88;--ink-faint:#665f54;--board-frame-hi:#4a505a;--board-frame-lo:#22252b;--board-felt:#24493a;--board-felt-line:#1d3c30;--board-hint:#e6e1d566;--board-lastmove:#d1a750;--square-light:#767e8c;--square-dark:#3c424c;--disc-dark:#1c1a18;--disc-dark-hi:#3f3a35;--disc-light:#ece2cc;--disc-light-lo:#b8ab8e;--accent:#b3893c;--accent-hover:#c49a4d;--accent-ink:#16130c;--danger:#c05a4a;--ok:#3f7a5f;--focus-ring:3px solid #c49a4d;--shadow-piece:0 1px 3px #0009;--shadow-board:0 10px 30px #00000080, 0 2px 6px #0006;--shadow-card:0 1px 3px #00000059}*{box-sizing:border-box}body{background:var(--surface-app);min-height:100dvh;color:var(--ink);font-family:var(--font-ui);margin:0;line-height:1.5}button,input{font:inherit}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.wordmark{font-family:var(--font-display);letter-spacing:.01em;color:var(--ink);font-weight:600;text-decoration:none}h1.wordmark{margin:0;font-size:clamp(2.2rem,6vw,3rem)}.wordmark-s{font-size:1.15rem}.muted{color:var(--ink-muted)}.btn{border-radius:var(--radius-m);padding:var(--space-3) var(--space-6);background:var(--accent);color:var(--accent-ink);cursor:pointer;box-shadow:var(--shadow-card);transition:background var(--dur-fast) ease;border:0;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:default}.btn-lg{padding:var(--space-4) var(--space-8);font-size:1.05rem}.btn-quiet{color:var(--ink-muted);box-shadow:none;border:1px solid var(--ink-faint);background:0 0}.btn-outline{color:var(--accent);box-shadow:none;border:1px solid var(--accent);background:0 0}.btn-outline:hover{background:var(--surface-raised)}.home-link{white-space:nowrap;background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-card);transition:background var(--dur-fast) ease;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.home-link:hover{background:var(--accent-hover)}.home-link svg{width:15px;height:15px}.celebration{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.celebration.is-out{opacity:0;transition:opacity .8s}.celebration-banner{font-family:var(--font-display);color:var(--ink);background:var(--surface-raised);padding:var(--space-4) var(--space-8);border:2px solid var(--accent);border-radius:var(--radius-l);box-shadow:var(--shadow-board);text-align:center;max-width:88vw;animation:celebration-pop .6s var(--ease-pop) both;font-size:clamp(1.5rem,5vw,2.4rem);font-weight:650;position:absolute;top:34%;left:50%;translate:-50% -50%}.celebration-lose,.celebration-draw{border-color:var(--ink-faint)}@keyframes celebration-pop{0%{opacity:0;scale:.4}to{opacity:1;scale:1}}.confetti-piece{border-radius:2px;width:10px;height:15px;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:both;position:absolute;top:-6vh}@keyframes confetti-fall{to{transform:translateY(112vh) translateX(var(--drift,0)) rotate(var(--spin,540deg))}}@media (prefers-reduced-motion:reduce){.confetti-piece{display:none}.celebration-banner{animation:none}}.leaderboard-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.leaderboard-list li{align-items:center;gap:var(--space-3);background:var(--surface-raised);border-radius:var(--radius-m);padding:var(--space-2) var(--space-4);box-shadow:var(--shadow-card);display:flex}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.leaderboard-rank{font-family:var(--font-display);color:var(--accent);text-align:center;min-width:1.4em;font-weight:700}.leaderboard-note{text-align:center;margin-top:var(--space-2);font-size:.8rem}.lobby .muted a{color:var(--accent);font-weight:600}.btn-quiet:hover{background:var(--surface-raised);color:var(--ink)}.status{min-height:1.5em;color:var(--ink-muted);text-align:center;margin:var(--space-2) 0}.shell{justify-content:center;align-items:center;gap:var(--space-4);min-height:100dvh;padding:var(--space-6);text-align:center;flex-direction:column;display:flex}.mark{filter:drop-shadow(0 4px 10px #2b211840);width:72px;height:72px}.tagline{max-width:34ch;color:var(--ink-muted);margin:0}.field{gap:var(--space-1);color:var(--ink-muted);flex-direction:column;font-size:.85rem;display:flex}.field input,.join input{border:1px solid var(--ink-faint);border-radius:var(--radius-s);padding:var(--space-2) var(--space-3);background:var(--surface-raised);color:var(--ink);text-align:center}.join{gap:var(--space-2);margin-top:var(--space-4);display:flex}.join input{text-transform:uppercase;letter-spacing:.15em;font-variant-numeric:tabular-nums;width:12.5rem}.room{max-width:560px;padding:var(--space-4);gap:var(--space-4);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.room-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}@media (width<=560px){.room-head .wordmark-s{display:none}}.chip{border:1px solid var(--ink-faint);background:var(--surface-raised);color:var(--ink-muted);padding:var(--space-1) var(--space-3);letter-spacing:.08em;cursor:pointer;border-radius:999px;font-size:.85rem}.chip:hover{color:var(--ink)}.board{width:100%;height:auto;box-shadow:var(--shadow-board);border-radius:14px}.disc{filter:drop-shadow(var(--shadow-piece));transform-box:fill-box;transform-origin:50%}.disc-face{opacity:0;transition:opacity var(--dur-med) ease}.disc-face.is-shown{opacity:1}.disc{animation:disc-pop var(--dur-med) var(--ease-pop)}@keyframes disc-pop{0%{scale:.4}to{scale:1}}.cell-action{cursor:pointer}.cell-action:hover .hint,.cell-action:focus-visible .hint{fill:var(--board-lastmove)}.seats{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.seat-card{align-items:center;gap:var(--space-2);background:var(--surface-raised);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-card);border:2px solid #0000;min-width:0;display:flex}.seat-card.is-to-move{border-color:var(--accent)}.seat-disc{width:18px;height:18px;box-shadow:var(--shadow-piece);border-radius:50%;flex:none}.seat-disc-dark{background:radial-gradient(circle at 35% 30%, var(--disc-dark-hi), var(--disc-dark))}.seat-disc-light{background:radial-gradient(circle at 35% 30%, var(--disc-light), var(--disc-light-lo))}.seat-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.seat-count{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.actions{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.landing-head{top:var(--space-4);right:var(--space-4);position:absolute}.landing{position:relative}.game-picker{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.game-card{border:1px solid var(--ink-faint);border-radius:var(--radius-m);background:var(--surface-raised);color:var(--ink-muted);padding:var(--space-2) var(--space-4);cursor:pointer}.game-tile{align-items:center;gap:var(--space-2);width:6.2rem;padding:var(--space-3) var(--space-2);text-align:center;flex-direction:column;font-size:.8rem;line-height:1.2;display:flex}.game-icon{border-radius:var(--radius-s);width:52px;height:52px;box-shadow:var(--shadow-card);display:block}.game-card.is-selected{border-color:var(--accent);color:var(--ink);font-weight:600}.checkbox{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:.85rem;display:flex}.lobby{margin-top:var(--space-6);width:min(100%,26rem)}.lobby h2{font-family:var(--font-display);margin:0 0 var(--space-2);font-size:1.1rem}.lobby-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lobby-list li{align-items:center;gap:var(--space-3);background:var(--surface-raised);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-card);display:flex}.lobby-game{font-weight:600}.lobby-list .btn{margin-left:auto}.head-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chat-bar{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.chat-feed{text-align:center;color:var(--ink-muted);margin:0;padding:0;font-size:.9rem;list-style:none}.offer-banner{justify-content:center;align-items:center;gap:var(--space-3);background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);display:flex}@media (prefers-reduced-motion:reduce){.disc{animation:none}.disc-face{transition:none}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}fieldset.game-picker,fieldset.chat-bar{border:0;margin:0;padding:0}.quiet-links{margin:0;font-size:.9rem}.quiet-links a{color:var(--ink-muted)}.quiet-links a:hover{color:var(--ink)}fieldset.replay-controls{border:0;margin:0;padding:0}fieldset.clock-picker .game-card{font-variant-numeric:tabular-nums}.clock{font-variant-numeric:tabular-nums;padding-right:var(--space-2);color:var(--ink-muted);margin-left:auto;font-weight:600}.clock.is-running{color:var(--ink)}.clock.is-low{color:var(--danger)}.clock+.seat-count{margin-left:0}.bg-wrap{gap:var(--space-2);flex-direction:column;display:flex}.bg-controls{margin-top:0}.seat-count{white-space:nowrap;font-size:.9rem}.seat-disc-gold{background:radial-gradient(circle at 35% 30%, var(--accent-hover), var(--accent))}.seat-disc-green{background:radial-gradient(circle at 35% 30%, var(--ok), var(--board-felt))}
