*{box-sizing:border-box;margin:0;padding:0}:root,:root[data-theme=light]{--bg:#f5f7fa;--bg-grad:radial-gradient(1200px 600px at 50% -10%,#e9edff 0%,transparent 60%);--surface:#ffffff;--surface-2:#eef1f6;--border:#e3e7ee;--text:#161b26;--muted:#5b6575;--accent:#5b63f5;--accent-strong:#4a52e0;--on-accent:#ffffff;--danger:#e5484d;--success:#1f9d61;--warn-bg:#fbf1dd;--warn-text:#9a6a12;--shadow:0 6px 24px rgba(20,25,45,0.08);--shadow-lg:0 16px 44px rgba(20,25,45,0.12)}:root[data-theme=dark]{--bg:#0d1017;--bg-grad:radial-gradient(1200px 600px at 50% -10%,#1a2145 0%,transparent 55%);--surface:#161b25;--surface-2:#1e2532;--border:#29303d;--text:#e8eaf0;--muted:#97a1b4;--accent:#818cff;--accent-strong:#5560f0;--on-accent:#ffffff;--danger:#ef5a5f;--success:#4bd08b;--warn-bg:#382a17;--warn-text:#f0c073;--shadow:0 8px 28px rgba(0,0,0,0.45);--shadow-lg:0 18px 48px rgba(0,0,0,0.55)}body{background:var(--bg);background-image:var(--bg-grad);background-repeat:no-repeat;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}h1,h2,h3{line-height:1.2;letter-spacing:-.01em}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}.container{max-width:720px;margin:0 auto;padding:2rem 1rem 4rem;gap:2rem}.container,.hero{display:flex;flex-direction:column}.hero{text-align:center;padding-top:3.5rem;gap:1.1rem;align-items:center}.hero h1{font-size:clamp(2.75rem,9vw,4rem);font-weight:800;letter-spacing:-.02em;background:linear-gradient(120deg,var(--text),color-mix(in srgb,var(--accent) 75%,var(--text)));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{max-width:34rem;font-size:1.05rem}.footnote,.hero p{color:var(--muted)}.footnote{font-size:.85rem;text-align:center}.gallery-title{text-align:center;margin-bottom:1rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));grid-gap:1rem;gap:1rem}.game-card{background:var(--surface);border:1px solid transparent;border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;transition:border-color .15s,transform .15s}.game-card:hover{border-color:var(--accent);transform:translateY(-2px)}.game-card-body{display:flex;flex-direction:column;gap:.5rem}.game-card h3{font-size:1.25rem}.ramp{gap:.35rem;color:var(--accent);font-size:.7rem;letter-spacing:-1px}.game-card-actions,.ramp{display:flex;flex-wrap:wrap}.game-card-actions{gap:.6rem}.game-card-actions .btn{flex:1 1;text-align:center}.recent ul{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.recent li{display:flex;justify-content:space-between;gap:1rem;background:var(--surface);border-radius:8px;border:1px solid var(--border);padding:.6rem 1rem;font-size:.9rem}.recent-rounds{color:var(--muted)}.recent-game{font-weight:600;color:var(--accent);font-size:.85rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--border);border-radius:10px;padding:.6rem 1.4rem;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none;color:var(--text);background:var(--surface-2);transition:background .15s,border-color .15s,transform .08s,box-shadow .15s}.btn:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.primary{background:var(--accent-strong);border-color:transparent;color:var(--on-accent);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 35%,transparent)}.btn.primary:hover{background:color-mix(in srgb,var(--accent-strong) 88%,#000);box-shadow:0 6px 20px color-mix(in srgb,var(--accent) 45%,transparent)}.btn.big{font-size:1.1rem;padding:.85rem 2rem}.btn.subtle{color:var(--muted);background:transparent}.btn.subtle:hover{background:var(--surface-2);color:var(--text)}.btn.small{padding:.35rem .8rem;font-size:.85rem;border-radius:8px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.bell,.bell-wrap{position:relative}.bell{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text)}.bell-badge{position:absolute;top:-6px;right:-8px;background:var(--danger);color:#fff;border-radius:999px;font-size:.65rem;padding:0 5px;line-height:1.4}.bell-menu{position:absolute;right:0;top:130%;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;z-index:50;box-shadow:var(--shadow)}.bell-empty,.bell-item{display:block;width:100%;text-align:left;padding:.7rem .9rem;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text);font-size:.85rem;cursor:pointer}.bell-item:hover{background:var(--surface-2)}.bell-empty{color:var(--muted);cursor:default}.toast-stack{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.6rem;z-index:100;max-width:min(92vw,340px)}.toast{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:.75rem .9rem;display:flex;gap:.75rem;align-items:center;justify-content:space-between;box-shadow:var(--shadow);animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateX(20px)}}.toast-body{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}.toast-actions{display:flex;align-items:center;gap:.4rem}.toast-close{background:none;border:none;color:var(--muted);font-size:1.2rem;cursor:pointer;line-height:1}.row-actions{display:flex;gap:.5rem;align-items:center}.profile-stats{display:flex;gap:1rem;flex-wrap:wrap}.stat-tile{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:1rem 1.25rem;display:flex;flex-direction:column;align-items:center;min-width:8rem;flex:1 1}.stat-num{font-size:2rem;font-weight:700;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.h2h-record{display:flex;justify-content:center;gap:2.5rem;background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:1.25rem}.h2h-cell{display:flex;flex-direction:column;align-items:center}.h2h-num{font-size:2.4rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:.75rem;overflow-x:auto}.chart svg{width:100%;height:auto;display:block}.chart-readout{display:flex;gap:1.25rem;justify-content:center;font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:.4rem}.replay-head{display:flex;justify-content:space-between;align-items:center}.replay-rounds,.replay-speeds{display:flex;gap:.4rem;flex-wrap:wrap}.replay-boards{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.replay-board{display:flex;flex-direction:column;align-items:center;gap:.5rem}.replay-name{font-weight:600}.replay-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center;background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:.75rem 1rem}.replay-scrub{flex:1 1;min-width:12rem;accent-color:var(--accent)}.button-row{display:flex;gap:1rem;justify-content:center}.center-stage{text-align:center;padding-top:4rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.status{color:var(--muted)}.countdown{font-size:6rem;font-weight:700;color:var(--accent)}.progress-track{width:min(70vw,320px);height:8px;border-radius:4px;background:var(--surface);overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .2s}.play-stage{display:flex;flex-direction:column;align-items:center;gap:1rem}.round-header{width:min(92vw,560px);display:flex;justify-content:space-between;align-items:baseline;color:var(--muted)}.clock{font-size:1.6rem;font-weight:600;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.round-score{font-size:2.5rem;font-weight:700;color:var(--accent)}.queens-board{display:grid;width:min(92vw,560px);touch-action:manipulation}.queens-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:clamp(14px,4.5vw,30px);color:#1f2430;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0;line-height:1}.queens-cell.conflict{color:var(--danger);animation:conflict-pulse .6s ease-in-out infinite alternate}@keyframes conflict-pulse{0%{filter:brightness(1)}to{filter:brightness(.75)}}.memory-wrap{display:flex;flex-direction:column;align-items:center;gap:1rem}.memory-board{display:grid;width:min(88vw,460px);grid-gap:6px;gap:6px;touch-action:manipulation}.memory-cell{aspect-ratio:1;border:none;border-radius:10px;background:var(--surface);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);cursor:pointer;padding:0;transition:background .12s,transform .08s}.memory-cell:hover:not(:disabled){filter:brightness(1.25)}.memory-cell.lit{background:var(--accent);box-shadow:0 0 16px 2px color-mix(in srgb,var(--accent) 55%,transparent)}.memory-cell.selected{background:var(--accent-strong)}.memory-cell.wrong{background:var(--danger);animation:conflict-pulse .35s ease-in-out infinite alternate}.memory-cell:disabled{cursor:default}.memory-board.replay .memory-cell{cursor:default;background:var(--surface-2)}.memory-board.replay .memory-cell.target{box-shadow:inset 0 0 0 2px var(--accent)}.memory-board.replay .memory-cell.correct{background:var(--success);box-shadow:none}.memory-board.replay .memory-cell.wrong{background:var(--danger)}.memory-controls{display:flex;align-items:center;gap:1rem}.room-launcher{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:1.25rem;flex-direction:column}.launcher-row,.room-launcher{display:flex;gap:.75rem;align-items:center}.launcher-row{flex-wrap:wrap;justify-content:center}.code-input{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.55rem .8rem;font-size:1rem;width:10rem;text-align:center;letter-spacing:.15em}.lobby-players{display:flex;flex-direction:column;gap:.5rem;width:min(92vw,360px)}.lobby-player{display:flex;justify-content:space-between;background:var(--surface);border-radius:8px;border:1px solid var(--border);padding:.6rem 1rem}.ready-yes{color:var(--success)}.opponent-bar,.ready-no{color:var(--muted)}.opponent-bar{width:min(92vw,560px);display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.9rem}.progress-track.small{width:8rem;height:6px}.totals-row{display:flex;gap:3rem;justify-content:center}.total-block{flex-direction:column}.total-block,.voice-panel{display:flex;align-items:center}.voice-panel{gap:.6rem;justify-content:center;flex-wrap:wrap;background:var(--surface);border-radius:10px;border:1px solid var(--border);padding:.5rem .9rem;font-size:.9rem}.voice-live{color:var(--success);font-weight:600}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.site-header .brand{font-weight:800;letter-spacing:-.01em;font-size:1.1rem;color:var(--text);text-decoration:none}.site-header nav{display:flex;gap:1rem;align-items:center}.site-header nav a{color:var(--muted);text-decoration:none;font-size:.92rem;font-weight:500}.site-header nav a:hover,.theme-toggle{color:var(--text)}.theme-toggle{background:none;border:1px solid var(--border);border-radius:999px;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:.95rem;transition:border-color .15s,background .15s}.theme-toggle:hover{border-color:var(--accent);background:var(--surface-2)}.code-input.wide{width:min(80vw,20rem);letter-spacing:normal;text-align:left}.form-error{color:var(--danger);font-size:.9rem}.stack{gap:1rem}.row-list,.stack{display:flex;flex-direction:column}.row-list{list-style:none;gap:.5rem}.row-list li{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-radius:8px;border:1px solid var(--border);padding:.6rem 1rem}.row-list a{color:var(--accent);text-decoration:none}.net-banner{background:var(--warn-bg);color:var(--warn-text);border-radius:8px;padding:.5rem 1rem;text-align:center;font-size:.9rem}.results{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding-top:2rem}.total-score{font-size:3rem;font-weight:700;color:var(--accent)}.results-table{border-collapse:collapse;width:100%;max-width:560px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.results-table td,.results-table th{padding:.5rem .75rem;border-bottom:1px solid var(--border);text-align:center}.results-table th{color:var(--muted);font-weight:500;font-size:.85rem}.best-round td{color:var(--accent)}.max-score{color:var(--muted);font-size:.8rem}.galaxies-wrap{display:flex;flex-direction:column;align-items:center;gap:.75rem}.galaxies-palette{flex-wrap:wrap;gap:8px;max-width:min(92vw,560px)}.galaxies-palette,.galaxies-swatch{display:flex;justify-content:center}.galaxies-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(31,36,48,.25);transition:transform .08s,border-color .12s;align-items:center;font-size:13px;font-weight:700;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.75),0 1px 1px rgba(0,0,0,.6)}.galaxies-swatch:hover{transform:scale(1.08)}.galaxies-swatch.active{border-color:var(--text);transform:scale(1.12)}.galaxies-board{position:relative;display:grid;width:min(92vw,560px);touch-action:none}.galaxies-cell{aspect-ratio:1;border:none;cursor:pointer;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--surface)}.galaxies-cell.conflict{box-shadow:inset 0 0 0 4px var(--danger);animation:galaxies-conflict-pulse .6s ease-in-out infinite alternate}@keyframes galaxies-conflict-pulse{0%{box-shadow:inset 0 0 0 4px var(--danger)}to{box-shadow:inset 0 0 0 4px transparent}}.galaxies-dot{position:absolute;width:20px;height:20px;margin-left:-10px;margin-top:-10px;border-radius:50%;background:#1f2430;box-shadow:0 0 0 2px rgba(255,255,255,.7);pointer-events:none;z-index:1;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;line-height:1}.galaxies-board.replay .galaxies-dot{width:14px;height:14px;margin-left:-7px;margin-top:-7px;font-size:8px}