:root,[data-theme=neon]{color-scheme:dark;--bg: #050510;--surface: #0a0a1e;--surface2: #11133a;--border: #2a2e74;--text: #eef0ff;--text2: #9aa0d6;--cyan: #00f5ff;--pink: #ff4d8d;--green: #39ff14;--yellow: #ffe600;--purple: #b14bff;--action: #00f5ff;--action-hover: #5cf9ff;--action-ink: #04040f;--danger: #ff4d8d;--score: #ffe600;--spark: #ff6a1a;--record-ring: #00f5ff;--record-slices: #00f5ff, #ff4d8d, #39ff14, #b14bff;--spark-core: #ffe600;--accent: #00f5ff;--game-blurt: #ff9f43;--game-hints: #4db5ff;--game-pursuit: #39ff14;--game-tunesoff: #b14bff;--game-hiddengem: #ff4d8d;--game-hotseat: #ff6a1a;--team-red: #ff5d78;--team-red-hi: #ff8aa0;--team-blue: #4db5ff;--team-blue-hi: #8fd0ff;--shadow: #000;--scrim: #03030c;--font-display: "Press Start 2P", monospace;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--display-scale: 1;--logo-style: normal;--logo-tracking: .08em;--logo-anim: glitch 10s infinite;--page-anim: scanflicker 10s infinite;--radius: 6px;--glow: 1;--scanlines: 1;--bg-pattern: linear-gradient(rgba(0,245,255,.02) 1px, transparent 1px), linear-gradient(90deg, rgba(0,245,255,.02) 1px, transparent 1px);--bg-pattern-size: 32px 32px}[data-theme=daylight]{color-scheme:light;--bg: #f6f3ee;--surface: #ffffff;--surface2: #efeae2;--border: #ddd5c8;--text: #1d1a16;--text2: #6b645a;--cyan: #0b8196;--pink: #d0335f;--green: #1f8a3b;--yellow: #a15c07;--purple: #7a3fd6;--action: #0a7e8c;--action-hover: #086873;--action-ink: #ffffff;--danger: #d0335f;--score: #a15c07;--spark: #d9480f;--record-ring: transparent;--record-slices: #075e6e, #a61e4d, #1b6b2f, #5730b8;--spark-core: #f59f00;--accent: #0a7e8c;--game-blurt: #d9730d;--game-hints: #1f76c7;--game-pursuit: #238a2c;--game-tunesoff: #7a3fd6;--game-hiddengem: #c2185b;--game-hotseat: #d35400;--team-red: #d1334f;--team-red-hi: #a8233b;--team-blue: #1f76c7;--team-blue-hi: #155a99;--shadow: rgb(80 60 30 / .3);--scrim: #1d1a16;--font-display: "Bricolage Grotesque", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--display-scale: 1.3;--logo-style: normal;--logo-tracking: -.02em;--logo-anim: none;--page-anim: none;--radius: 12px;--glow: 0;--scanlines: 0;--bg-pattern: radial-gradient(rgb(29 26 22 / .07) 1px, transparent 1.5px);--bg-pattern-size: 22px 22px}[data-theme=felt]{color-scheme:dark;--bg: #0e2a21;--surface: #133528;--surface2: #194233;--border: #2c5a47;--text: #f3ecdc;--text2: #a9c2b4;--cyan: #7fd1d8;--pink: #f58fb0;--green: #9fe07a;--yellow: #e8b85a;--purple: #c7a6ff;--action: #f3e7c9;--action-hover: #fff6de;--action-ink: #0e2a21;--danger: #ff7a6e;--score: #e8b85a;--spark: #c8702a;--record-ring: #ffffff;--record-slices: #7fd1d8, #f58fb0, #9fe07a, #c7a6ff;--spark-core: #f3d38a;--accent: #e8b85a;--game-blurt: #ffab5e;--game-hints: #86c3ff;--game-pursuit: #9fe07a;--game-tunesoff: #c7a6ff;--game-hiddengem: #ff8fb3;--game-hotseat: #ffb070;--team-red: #ff7d8f;--team-red-hi: #ffa9b5;--team-blue: #7cc0ff;--team-blue-hi: #b0d9ff;--shadow: rgb(0 8 4 / .75);--scrim: #04100b;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--display-scale: 1.3;--logo-style: italic;--logo-tracking: .01em;--logo-anim: none;--page-anim: none;--radius: 10px;--glow: 0;--scanlines: 0;--bg-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .22 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--bg-pattern-size: 180px 180px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-body);font-size:15px;background:var(--bg);color:var(--text);background-image:var(--bg-pattern);background-size:var(--bg-pattern-size);-webkit-text-size-adjust:100%}html,body{overflow:hidden;overscroll-behavior:none}#root{height:100dvh;overflow-y:auto;overscroll-behavior:none}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,.05) 2px,rgba(0,0,0,.05) 4px);opacity:var(--scanlines);pointer-events:none;z-index:9999}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes neon-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes glitch{0%,92%,to{text-shadow:0 0 calc(8px * var(--glow)) var(--action)}93%{text-shadow:2px 0 var(--danger),-2px 0 var(--action),0 0 calc(14px * var(--glow)) var(--action)}96%{text-shadow:-2px 0 var(--danger),2px 0 var(--action),0 0 calc(14px * var(--glow)) var(--action)}}@keyframes scanflicker{0%,95%,to{opacity:1}96%{opacity:.92}98%{opacity:.96}}.connection-banner{position:fixed;top:0;left:0;right:0;z-index:10001;background:var(--surface);border-bottom:2px solid var(--danger);color:var(--danger);text-align:center;font-family:var(--font-body);font-weight:600;font-size:.85rem;padding:.6rem;animation:neon-pulse .8s infinite}.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.page.center{align-items:center;justify-content:center;padding:1.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem;width:100%;max-width:480px;box-shadow:0 16px 40px color-mix(in srgb,var(--shadow) 45%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.8rem 1.4rem;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text);font-family:var(--font-body);font-weight:700;font-size:.82rem;letter-spacing:.08em;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .1s;text-transform:uppercase;-webkit-tap-highlight-color:transparent}.btn:hover{border-color:var(--text2)}.btn:focus-visible{outline:2px solid var(--action);outline-offset:2px}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.primary{background:var(--action);border-color:var(--action);color:var(--action-ink);box-shadow:0 0 calc(18px * var(--glow)) color-mix(in srgb,var(--action) 28%,transparent);width:100%}.btn.primary:hover{background:var(--action-hover);border-color:var(--action-hover);box-shadow:0 0 calc(26px * var(--glow)) color-mix(in srgb,var(--action) 45%,transparent)}.btn.primary:disabled{box-shadow:none}.btn.outline{background:transparent;border-color:var(--border);color:var(--text)}.btn.outline:hover{border-color:var(--text2)}.btn.large{min-height:52px;padding:1rem 2rem;font-size:.92rem}.btn.small{min-height:36px;padding:.45rem .85rem;font-size:.72rem}.game-actions{flex-shrink:0;padding:.85rem 1.25rem;padding-bottom:max(.85rem,env(safe-area-inset-bottom))}.game-actions-row{display:flex;gap:.5rem;align-items:stretch}.skip-section{flex:1;display:flex;min-width:0}.skip-main-btn{flex:1;padding:.9rem 1rem;background:transparent;color:var(--yellow);border:2px solid var(--yellow);border-radius:var(--radius);font-family:var(--font-body);font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--yellow) 15%,transparent);-webkit-tap-highlight-color:transparent}@media (hover: hover){.skip-main-btn:hover{box-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--yellow) 35%,transparent)}}.skip-cancel-btn{width:3rem;flex-shrink:0;background:transparent;border:2px solid var(--border);border-right:none;border-radius:var(--radius) 0 0 var(--radius);color:var(--text2);font-size:1.1rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.skip-confirm-btn{flex:1;padding:.9rem 1rem;background:transparent;border:2px solid var(--danger);border-radius:0 var(--radius) var(--radius) 0;color:var(--danger);font-family:var(--font-body);font-weight:700;font-size:.85rem;cursor:pointer;box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--danger) 20%,transparent);-webkit-tap-highlight-color:transparent}@media (hover: hover){.skip-confirm-btn:hover{box-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--danger) 40%,transparent)}}.reset-inline-btn{flex-shrink:0;padding:0 .9rem;min-height:3rem;background:transparent;border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);font-family:var(--font-body);font-size:.7rem;font-weight:700;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:background .1s,box-shadow .1s}.game-actions-row:not(:has(.skip-section)) .reset-inline-btn{flex:1;padding:.9rem 1rem}@media (hover: hover){.reset-inline-btn:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}}.reset-inline-btn.confirm{background:var(--danger);color:var(--bg);box-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--danger) 50%,transparent);animation:pulse 1s infinite}.game-reset-bar{flex-shrink:0;display:flex;padding:.6rem 1.25rem;padding-bottom:max(.6rem,env(safe-area-inset-bottom))}.game-reset-bar .reset-inline-btn{flex:1;padding:.7rem 1rem;font-size:.65rem;opacity:.75}.game-reset-bar .reset-inline-btn:active{opacity:1}.input,select,input[type=number],input[type=text],textarea{width:100%;padding:.85rem 1rem;margin-bottom:1rem;background:var(--surface2);border:2px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:16px}.input:focus,select:focus,input[type=number]:focus,input[type=text]:focus,textarea:focus{outline:none;border-color:var(--action);box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--action) 25%,transparent)}select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.hub-page{min-height:100dvh;display:flex;flex-direction:column;padding:0;animation:var(--page-anim)}.hub-header{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.75rem 1.5rem 1.75rem;padding-top:max(2.75rem,env(safe-area-inset-top));overflow:hidden}.hub-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 55% 50% at 50% 40%,black 0%,black 25%,transparent 78%);mask-image:radial-gradient(ellipse 55% 50% at 50% 40%,black 0%,black 25%,transparent 78%)}.hub-header:before{background-image:radial-gradient(color-mix(in srgb,var(--action) 32%,transparent) 1px,transparent 1.5px);background-size:34px 34px;background-position:0 0;animation:hub-texture-drift 26s linear infinite}@keyframes hub-texture-drift{to{background-position:34px 34px}}.hub-glow{position:absolute;z-index:-1;pointer-events:none;border-radius:50%;will-change:transform,opacity}.hub-glow-a{left:14%;top:10%;width:66%;height:62%;background:radial-gradient(circle,color-mix(in srgb,var(--action) 13%,transparent),transparent 70%);animation:hub-glow-a-drift 29s ease-in-out infinite alternate,hub-glow-breathe 17s ease-in-out infinite alternate}.hub-glow-b{left:54%;top:0%;width:46%;height:46%;background:radial-gradient(circle,color-mix(in srgb,var(--purple) 11%,transparent),transparent 70%);animation:hub-glow-b-drift 41s ease-in-out infinite alternate,hub-glow-breathe 23s ease-in-out infinite alternate}.hub-glow-c{left:-6%;top:26%;width:44%;height:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pink) 9%,transparent),transparent 70%);animation:hub-glow-c-drift 35s ease-in-out infinite alternate,hub-glow-breathe 19s ease-in-out infinite alternate}.hub-glow-d{left:62%;top:34%;width:40%;height:44%;background:radial-gradient(circle,color-mix(in srgb,var(--green) 6%,transparent),transparent 70%);animation:hub-glow-d-drift 47s ease-in-out infinite alternate,hub-glow-breathe 27s ease-in-out infinite alternate}@keyframes hub-glow-a-drift{0%{transform:translate3d(-7%,4%,0) scale(1)}to{transform:translate3d(9%,-6%,0) scale(1.18)}}@keyframes hub-glow-b-drift{0%{transform:translate3d(6%,-4%,0) scale(1.08)}to{transform:translate3d(-11%,8%,0) scale(.88)}}@keyframes hub-glow-c-drift{0%{transform:translate3d(-4%,-8%,0) scale(.95)}to{transform:translate3d(14%,7%,0) scale(1.2)}}@keyframes hub-glow-d-drift{0%{transform:translate3d(8%,6%,0) scale(1.12)}to{transform:translate3d(-9%,-7%,0) scale(.92)}}@keyframes hub-glow-breathe{0%{opacity:.7}to{opacity:1}}.hub-logo{font-family:var(--font-display);font-size:calc(clamp(1.9rem,8vw,3.2rem) * var(--display-scale));line-height:calc(clamp(1.9rem,8vw,3.2rem)*1.5);color:var(--accent);text-align:center;animation:var(--logo-anim);letter-spacing:var(--logo-tracking);font-style:var(--logo-style)}.mode-list{width:100%;min-width:0;overflow:hidden;border-top:1px solid var(--border);margin-bottom:1.5rem}.mode-row{--game: var(--text);display:flex;align-items:center;gap:1rem;width:100%;min-width:0;padding:.95rem 1.5rem;background:transparent;border:0;border-bottom:1px solid var(--border);color:inherit;text-align:left;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}@media (hover: hover){.mode-row:hover{background:color-mix(in srgb,var(--game) 7%,transparent)}.mode-row:hover .mode-row-go{color:var(--game);transform:translate(3px)}}.mode-row:active{background:color-mix(in srgb,var(--game) 11%,transparent)}.mode-row:focus-visible{outline:2px solid var(--action);outline-offset:-2px}.mode-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.mode-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.mode-row-name{font-family:var(--font-display);font-size:calc(.95rem * var(--display-scale));line-height:calc(.95rem * 1.3);color:var(--game);letter-spacing:.04em;text-shadow:0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--game) 45%,transparent)}.mode-row-pitch{font-family:var(--font-body);font-size:.86rem;line-height:1.4;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-row-meta{flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-body);font-size:.74rem;color:var(--text2);white-space:nowrap}.mode-row-go{flex-shrink:0;font-family:var(--font-body);font-size:1.6rem;line-height:1;color:var(--text2);transition:color .15s,transform .2s cubic-bezier(.25,1,.5,1)}.home-card{text-align:left}.home-join-btn{position:sticky;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:5;width:calc(100% - 3rem);margin:auto 1.5rem calc(1rem + env(safe-area-inset-bottom));background:var(--bg);box-shadow:0 -14px 18px 6px var(--bg)}.name-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:color-mix(in srgb,var(--scrim) 82%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.name-overlay-card{width:100%;max-width:380px;display:flex;flex-direction:column;padding:2.1rem 1.7rem 1.6rem;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:0 16px 50px color-mix(in srgb,var(--shadow) 60%,transparent)}.name-overlay-title{font-family:var(--font-display);font-size:calc(1.05rem * var(--display-scale));line-height:calc(1.05rem * 1.5);color:var(--accent);text-align:center;margin-bottom:.55rem}.name-overlay-sub{font-family:var(--font-body);font-size:.85rem;line-height:1.55;color:var(--text2);text-align:center;margin-bottom:1.6rem}.name-overlay-card form{display:flex;flex-direction:column}.name-overlay-card .input{margin-bottom:.8rem}.name-overlay-card .btn{margin-top:.45rem}.name-overlay-card .error-msg{margin:-.1rem 0 .9rem}.error-msg{color:var(--danger);font-family:var(--font-body);font-weight:600;font-size:.85rem;margin-top:.75rem;text-align:center}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;flex-direction:column;justify-content:flex-end}.sheet-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--scrim) 72%,transparent);animation:sheet-fade .2s cubic-bezier(.25,1,.5,1)}.sheet-panel{position:relative;width:100%;max-width:520px;margin:0 auto;padding:.6rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:18px 18px 0 0;box-shadow:0 -18px 50px color-mix(in srgb,var(--shadow) 55%,transparent);animation:sheet-rise .28s cubic-bezier(.25,1,.5,1)}.sheet-grab{width:2.5rem;height:4px;margin:0 auto 1.1rem;border-radius:2px;background:var(--border)}.sheet-head{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.2rem}.sheet-title{font-family:var(--font-display);font-size:calc(1rem * var(--display-scale));line-height:1.4rem;color:var(--text);letter-spacing:.04em}.sheet-sub{font-family:var(--font-body);font-size:.86rem;color:var(--text2);line-height:1.45}.sheet-form{display:flex;flex-direction:column}.sheet-done{width:100%;margin-top:1.25rem}.sheet-panel .setting-row{margin-top:1rem}.chip small{margin-left:.25rem;font-weight:500;opacity:.6}.sheet-form .input{margin-bottom:.75rem}.sheet-form .sheet-alt{margin-top:.75rem}.sheet-form .field-note{text-align:left;margin:-.35rem 0 .75rem}.sheet-code-input{font-family:var(--font-display);font-size:calc(1.1rem * var(--display-scale));line-height:1.1rem;letter-spacing:.3em;text-align:center}.sheet-code-input::placeholder{font-family:var(--font-body);font-size:1rem;letter-spacing:normal}@keyframes sheet-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.lobby-page{max-width:900px;margin:0 auto;padding:1.25rem;width:100%}.lobby-header{--game: var(--text);display:flex;flex-direction:column;align-items:center;gap:.85rem;margin-bottom:1.75rem;padding:.25rem 0 1.5rem;border-bottom:1px solid var(--border)}.lobby-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%}.lobby-title{grid-column:2;font-family:var(--font-display);font-size:calc(.8rem * var(--display-scale));line-height:calc(.8rem * 1.4);color:var(--game);text-transform:uppercase;letter-spacing:.06em;text-shadow:0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--game) 40%,transparent);white-space:nowrap}.lobby-leave{grid-column:1;justify-self:start;min-height:36px;padding:.35rem .1rem;background:none;border:0;color:var(--text2);font-family:var(--font-body);font-weight:600;font-size:.82rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .15s}.lobby-leave:hover{color:var(--text)}.lobby-leave.confirm{color:var(--danger)}.lobby-code{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.35rem 1rem;background:none;border:0;border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.lobby-code:focus-visible{outline:2px solid var(--action);outline-offset:4px}.lobby-code-digits{font-family:var(--font-display);font-size:calc(clamp(2.6rem,14vw,3.6rem) * var(--display-scale));line-height:calc(clamp(2.6rem,14vw,3.6rem)*1.15);color:var(--text);letter-spacing:.18em;margin-right:-.18em;font-variant-numeric:tabular-nums}.lobby-code-hint{font-family:var(--font-body);font-size:.74rem;color:var(--text2)}.lobby-invite{min-width:12rem}.lobby-body{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 640px){.lobby-body{grid-template-columns:1fr;gap:1.25rem}}.lobby-teams h2,.lobby-settings h2{font-family:var(--font-body);font-weight:600;font-size:.72rem;color:var(--text2);text-transform:uppercase;letter-spacing:.1em}.settings-header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.lobby-teams h2{margin-bottom:1rem;border-bottom:1px solid var(--border);padding-bottom:.6rem}.team-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem}.team-card:hover{border-color:color-mix(in srgb,var(--action) 30%,transparent)}.team-name{font-family:var(--font-body);font-weight:700;font-size:.95rem;color:var(--action);margin-bottom:.75rem}.team-name-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem;color:var(--action);font-family:var(--font-body);font-weight:700;font-size:16px;width:100%;margin-bottom:.75rem}.team-name-input:focus{outline:none;border-color:var(--action)}.team-name-field{flex:1;min-width:0;position:relative;display:flex;align-items:center;cursor:text}.team-name-edit{position:absolute;right:.7rem;pointer-events:none;color:var(--text2);font-size:.85rem;opacity:.7}.team-players{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.player-chip{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .7rem;font-family:var(--font-body);font-size:.8rem;display:flex;align-items:center;gap:.4rem;-webkit-tap-highlight-color:transparent;transition:border-color .1s,background .1s}.player-chip.assignable{cursor:grab;-webkit-user-select:none;user-select:none}.player-chip.selected{border-color:var(--action);background:color-mix(in srgb,var(--action) 12%,transparent);box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--action) 30%,transparent)}.player-chip.kick-confirm{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);animation:neon-pulse .7s infinite}.team-card.drop-target{border-color:color-mix(in srgb,var(--action) 40%,transparent);background:color-mix(in srgb,var(--action) 4%,transparent)}.assignment-hint{font-family:var(--font-body);font-size:.75rem;color:var(--action);margin-bottom:.75rem;opacity:.8}.chip-x{flex:0 0 auto;width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.15rem;padding:0;background:transparent;border:0;border-radius:50%;color:var(--text2);opacity:.55;font-family:var(--font-body);font-size:.85rem;line-height:1;cursor:pointer;transition:opacity .12s,background .12s,color .12s;-webkit-tap-highlight-color:transparent}.chip-x:hover{opacity:1;color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.chip-x.confirm{width:auto;height:auto;border-radius:999px;padding:.2rem .55rem;background:var(--danger);color:var(--bg);font-size:.68rem;font-weight:700;letter-spacing:.02em;opacity:1}.team-name-row{display:flex;align-items:stretch;gap:.4rem;margin-bottom:.75rem}.team-name-row .team-name-input{margin-bottom:0}.team-x{flex:0 0 auto;width:2.35rem;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text2);opacity:.7;font-family:var(--font-body);font-size:.95rem;line-height:1;cursor:pointer;white-space:nowrap;transition:opacity .12s,border-color .12s,background .12s,color .12s;-webkit-tap-highlight-color:transparent}.team-x:hover{opacity:1;border-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.team-x.confirm{width:auto;padding:0 .8rem;background:var(--danger);border-color:var(--danger);color:var(--bg);font-size:.72rem;font-weight:700;letter-spacing:.02em;opacity:1}.host-badge{background:var(--yellow);color:var(--bg);font-family:var(--font-display);font-size:calc(.5rem * var(--display-scale));line-height:.5rem;padding:.15rem .35rem;border-radius:3px}.offline-badge{background:var(--danger);color:var(--bg);font-family:var(--font-display);font-size:calc(.5rem * var(--display-scale));line-height:.5rem;padding:.15rem .35rem;border-radius:3px}.player-chip.offline{opacity:.5;border-style:dashed}.player-chip.naming{border-style:dashed;color:var(--text2)}.player-naming{display:inline-flex;align-items:center;gap:6px;font-style:italic;font-weight:500}.player-naming i{width:6px;height:6px;border-radius:50%;background:var(--text2);animation:naming-breathe 1.6s ease-in-out infinite}@keyframes naming-breathe{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.player-naming i{animation:none}}.empty-team{color:var(--text2);font-family:var(--font-body);font-size:.8rem;cursor:default}.spymaster-row{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.spymaster-label{font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--text2);white-space:nowrap;flex-shrink:0}.spymaster-chips{display:flex;flex-wrap:wrap;gap:.4rem}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;border-bottom:1px solid var(--border);gap:1rem;font-family:var(--font-body);font-size:.85rem;color:var(--text)}.setting-row span:first-child{white-space:nowrap}.setting-row input[type=number]{width:80px;margin:0;padding:.45rem .6rem;text-align:right;font-size:16px}.setting-row select{margin:0;width:auto;font-size:16px;padding:.4rem .6rem}.setting-row input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--action)}.categories-row{flex-direction:column;align-items:flex-start;gap:.75rem}.pack-mode-controls{display:flex;gap:.4rem;flex-wrap:wrap}.small-chip{padding:.3rem .6rem!important;font-size:.72rem!important}.packs-header-row{margin-top:1.25rem}.categories-body{display:flex;flex-direction:column;gap:1rem;padding:.75rem 0 .25rem}.pack-group{display:flex;flex-direction:column;gap:.5rem;width:100%}.pack-group-label{font-family:var(--font-body);font-weight:600;font-size:.68rem;color:var(--text2);text-transform:uppercase;letter-spacing:.1em}.special-label{color:var(--yellow)}.category-chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.45rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text2);cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:.8rem;transition:all .15s}.chip.active{background:color-mix(in srgb,var(--action) 10%,transparent);border-color:var(--action);color:var(--action)}.chip.special-chip{border-color:color-mix(in srgb,var(--yellow) 25%,transparent);color:var(--text2)}.chip.special-chip:hover{border-color:color-mix(in srgb,var(--yellow) 50%,transparent);color:var(--text)}.chip.special-chip.active{background:color-mix(in srgb,var(--yellow) 15%,transparent);border-color:var(--yellow);color:var(--yellow);box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--yellow) 20%,transparent)}.skip-limit-options{display:flex;align-items:center;gap:.4rem}.skip-limit-input{width:52px!important;margin:0!important;padding:.3rem .5rem!important;text-align:center;font-size:.85rem!important;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface2);color:var(--text2)}.skip-limit-input.active{border-color:var(--action);color:var(--action);box-shadow:0 0 calc(6px * var(--glow)) color-mix(in srgb,var(--action) 20%,transparent)}.lobby-footer{margin-top:2rem;padding:1rem 0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.waiting-msg{display:inline-flex;align-items:center;gap:.55rem;justify-content:center;width:100%;color:var(--text2);font-family:var(--font-body);font-weight:600;font-size:.85rem}.waiting-msg:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--action);box-shadow:0 0 calc(8px * var(--glow)) var(--action);animation:waiting-breathe 1.8s cubic-bezier(.25,1,.5,1) infinite alternate}@keyframes waiting-breathe{0%{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.game-page{height:100vh;height:100dvh;overflow:hidden}.game-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 2px 12px color-mix(in srgb,var(--shadow) 50%,transparent);flex-shrink:0}.score-display{display:flex;gap:1.25rem;flex-wrap:wrap}.score-item{font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--text2)}.score-item.active-team{color:var(--action);font-weight:800}.timer{position:relative;width:52px;height:52px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.timer-ring{position:absolute;width:100%;height:100%;color:var(--action)}.timer.urgent .timer-ring{color:var(--danger);animation:neon-pulse .4s infinite}.timer-seconds{font-family:var(--font-display);font-size:calc(.95rem * var(--display-scale));line-height:.95rem;z-index:1;color:var(--action)}.timer.urgent .timer-seconds{color:var(--danger)}.explainer-role-badge{text-align:center;padding:.7rem 1.25rem;background:var(--surface2);border-bottom:1px solid var(--border);color:var(--text2);font-family:var(--font-body);font-weight:600;font-size:.85rem;flex-shrink:0}.explainer-role-badge strong{color:var(--action)}.word-stack{flex:1;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.word-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;cursor:pointer;transition:all .15s;position:relative}.word-card.current{border-color:var(--action);background:color-mix(in srgb,var(--action) 6%,transparent);box-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--action) 15%,transparent)}.word-card.guessed{border-color:var(--green);background:color-mix(in srgb,var(--green) 5%,transparent);opacity:.7}.word-card.skipped{border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 4%,transparent);opacity:.6}.word-text{font-family:var(--font-body);font-weight:700;font-size:1.15rem;color:var(--text)}.word-card.current .word-text{font-size:1.6rem;color:var(--action);font-weight:800}.taboo-words{margin-top:.85rem}.taboo-label{font-family:var(--font-display);font-size:calc(.55rem * var(--display-scale));line-height:.55rem;text-transform:uppercase;letter-spacing:.1em;color:var(--danger)}.taboo-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.taboo-word{background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);padding:.3rem .7rem;font-family:var(--font-body);font-weight:600;font-size:.85rem}.word-status-icon{position:absolute;top:.85rem;right:1rem;font-size:1.2rem;color:var(--green)}.word-status-icon.skip-icon{color:var(--yellow)}.guesser-info{padding:.85rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.explainer-label{font-family:var(--font-body);font-size:.95rem;margin-bottom:.4rem;line-height:1.4}.explainer-label strong{color:var(--action)}.progress-label{color:var(--text2);font-family:var(--font-body);font-weight:600;font-size:.8rem}.guess-form{display:flex;gap:.75rem;padding:.85rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.guess-form .btn{width:auto;flex-shrink:0}.guess-input{flex:1;padding:.85rem 1rem;background:var(--surface2);border:2px solid var(--action);border-radius:var(--radius);color:var(--action);font-family:var(--font-body);font-weight:700;font-size:16px;margin:0;box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--action) 15%,transparent)}.guess-input:focus{outline:none;box-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--action) 35%,transparent)}.recent-guesses{flex:1;padding:.85rem 1.25rem;display:flex;flex-wrap:wrap;align-content:flex-start;gap:.5rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.recent-guess{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .7rem;font-family:var(--font-body);font-size:.8rem;color:var(--text2)}.spectator-body{padding:1.25rem;flex-shrink:0}.spectator-card{text-align:center;max-width:400px;width:100%;margin:0 auto}.spectator-label{font-family:var(--font-body);font-size:.95rem;margin-bottom:1rem;line-height:1.5}.spectator-label strong{color:var(--action)}.progress-bar-wrap{height:10px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;overflow:hidden}.progress-bar{height:100%;background:var(--green);box-shadow:0 0 calc(6px * var(--glow)) var(--green);transition:width .3s}.spectator-hint{margin-top:1rem;color:var(--text2);font-family:var(--font-body);font-weight:600;font-size:.8rem;animation:blink 2s infinite}.round-end-page .card{max-width:540px}.round-end-page h2{font-family:var(--font-display);text-align:center;font-size:calc(1.1rem * var(--display-scale));line-height:1.1rem;margin-bottom:1.5rem;color:var(--accent);text-shadow:0 0 calc(10px * var(--glow)) var(--accent)}.round-end-page h3{margin:1.25rem 0 .75rem;font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem;color:var(--text2);text-transform:uppercase;letter-spacing:.1em}.scores-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.score-row{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-weight:600;font-size:.9rem}.score-row .team-label{flex:1}.score-row .score-value{font-family:var(--font-display);font-size:calc(1.1rem * var(--display-scale));line-height:1.1rem;color:var(--action);text-shadow:0 0 calc(8px * var(--glow)) var(--action)}.score-row .score-target{color:var(--text2);font-size:.8rem}.word-results{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.5rem}.word-result{display:flex;flex-direction:column;padding:.55rem .8rem;border-radius:var(--radius);font-family:var(--font-body);font-weight:600;font-size:.9rem;border:1px solid transparent;gap:.15rem}.word-result.guessed{background:color-mix(in srgb,var(--green) 7%,transparent);border-color:color-mix(in srgb,var(--green) 25%,transparent)}.word-result.skipped{background:color-mix(in srgb,var(--yellow) 6%,transparent);border-color:color-mix(in srgb,var(--yellow) 25%,transparent)}.word-result.missed{background:color-mix(in srgb,var(--danger) 6%,transparent);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.word-result-main{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.word-result-status{font-size:.85rem;font-weight:700}.word-result.guessed .word-result-status{color:var(--green)}.word-result.skipped .word-result-status{color:var(--yellow)}.word-result.missed .word-result-status{color:var(--danger)}.word-result-qual{font-size:.72rem;font-weight:500;color:var(--text2);font-family:var(--font-body)}.remove-guess-btn{margin-left:auto;background:transparent;border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger);border-radius:var(--radius);padding:.15rem .45rem;font-size:.7rem;cursor:pointer;font-weight:700;line-height:1;transition:all .15s}.remove-guess-btn:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);border-color:var(--danger)}.game-end-page{overflow-y:auto;-webkit-overflow-scrolling:touch}.game-end-inner{max-width:560px;margin:0 auto;width:100%;padding:1.5rem 1.25rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.game-end-top{text-align:center}.game-end-hero{display:flex;align-items:center;justify-content:center;gap:.85rem;margin-bottom:1.1rem}.game-end-trophy{font-size:2.6rem;line-height:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}.game-end-hero-text{display:flex;flex-direction:column;align-items:flex-start}.game-end-winner{font-family:var(--font-display);font-size:calc(1.3rem * var(--display-scale));color:var(--yellow);text-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--yellow) 40%,transparent);line-height:calc(1.3rem * 1.15)}.game-end-winsub{font-family:var(--font-body);font-size:.72rem;color:var(--text2);text-transform:uppercase;letter-spacing:.08em}.winner-title{font-family:var(--font-display);font-size:calc(1.1rem * var(--display-scale));line-height:1.1rem;margin-bottom:1rem;color:var(--yellow);text-shadow:0 0 calc(12px * var(--glow)) var(--yellow)}.winner-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.25rem;padding:1rem;border-radius:var(--radius);border:2px solid var(--yellow);box-shadow:0 0 calc(20px * var(--glow)) color-mix(in srgb,var(--yellow) 20%,transparent)}.trophy{font-size:2rem}.winner-name{font-family:var(--font-body);font-weight:800;font-size:1.1rem;color:var(--yellow)}.final-scores{display:flex;flex-direction:column;gap:.5rem}.final-score-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-weight:600;font-size:.9rem}.final-score-row.winner{background:color-mix(in srgb,var(--yellow) 7%,transparent);border-color:var(--yellow);box-shadow:0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--yellow) 15%,transparent)}.rank{font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem;color:var(--text2);width:28px}.final-score-row .team-label{flex:1;text-align:left}.final-score-row .score-value{font-family:var(--font-display);line-height:1;color:var(--action)}.game-end-section{display:flex;flex-direction:column;gap:.75rem}.game-end-section-title{font-family:var(--font-display);font-size:calc(.55rem * var(--display-scale));line-height:.55rem;color:var(--text2);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);padding-bottom:.6rem}.contrib-list{display:flex;flex-direction:column;gap:.55rem}.contrib-row{display:flex;align-items:center;gap:.75rem}.contrib-name{font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--text);width:100px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contrib-bar-wrap{flex:1;height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;border:1px solid var(--border)}.contrib-bar{height:100%;background:var(--action);box-shadow:0 0 calc(6px * var(--glow)) color-mix(in srgb,var(--action) 40%,transparent);border-radius:4px;transition:width .6s cubic-bezier(.16,1,.3,1)}.contrib-count{font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem;color:var(--action);width:24px;text-align:right;flex-shrink:0}.round-history{display:flex;flex-direction:column;gap:.6rem}.round-history-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem;display:flex;flex-direction:column;gap:.5rem}.round-history-header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.round-history-team{font-family:var(--font-display);font-size:calc(.55rem * var(--display-scale));line-height:.55rem;color:var(--action);text-shadow:0 0 calc(6px * var(--glow)) var(--action)}.round-history-explainer{font-family:var(--font-body);font-size:.8rem;color:var(--text2);flex:1}.round-history-score{font-family:var(--font-display);font-size:calc(.55rem * var(--display-scale));line-height:.55rem;color:var(--text2)}.round-history-words{display:flex;flex-wrap:wrap;gap:.35rem}.round-word-chip{font-family:var(--font-body);font-size:.78rem;font-weight:600;padding:.2rem .55rem;border-radius:var(--radius);border:1px solid transparent}.round-word-chip.guessed{background:color-mix(in srgb,var(--green) 8%,transparent);border-color:color-mix(in srgb,var(--green) 30%,transparent);color:var(--green)}.round-word-chip.skipped{background:color-mix(in srgb,var(--yellow) 6%,transparent);border-color:color-mix(in srgb,var(--yellow) 25%,transparent);color:var(--yellow)}.round-word-chip.missed{background:color-mix(in srgb,var(--danger) 6%,transparent);border-color:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--text2)}.game-end-footer{display:flex;gap:.6rem;align-items:center;justify-content:center;flex-wrap:wrap;padding-top:.5rem}.live-guesses-ticker{background:color-mix(in srgb,var(--shadow) 40%,transparent);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .85rem;display:flex;align-items:center;gap:.75rem;font-family:var(--font-body);font-size:.85rem;overflow:hidden;flex-shrink:0}.ticker-label{font-family:var(--font-display);font-size:calc(.55rem * var(--display-scale));line-height:.55rem;color:var(--danger);letter-spacing:.05em;flex-shrink:0}.ticker-items{display:flex;gap:1.25rem;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.ticker-items::-webkit-scrollbar{display:none}.ticker-item{color:var(--action);text-shadow:0 0 calc(4px * var(--glow)) color-mix(in srgb,var(--action) 40%,transparent)}.teammates-typing-box{background:color-mix(in srgb,var(--action) 4%,transparent);border:1px solid color-mix(in srgb,var(--action) 18%,transparent);padding:.65rem .85rem;margin:.5rem 1.25rem;border-radius:var(--radius);display:flex;flex-direction:column;gap:.35rem}.typing-header{font-family:var(--font-display);font-size:calc(.5rem * var(--display-scale));line-height:.5rem;color:var(--action);letter-spacing:.05em;text-transform:uppercase}.teammate-typing-row{font-family:var(--font-body);font-size:.85rem;color:var(--text);display:flex;align-items:center;gap:.3rem}.teammate-name{color:var(--text2);font-weight:600}.teammate-text{color:var(--action);font-style:italic}.typing-dots{color:var(--action);animation:typing-pulse 1s infinite alternate}@keyframes typing-pulse{0%{opacity:.3}to{opacity:1}}.animate-pulse{animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.correct-guess-popup{position:fixed;top:9%;left:50%;transform:translate(-50%);background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:2px solid var(--green);box-shadow:0 0 calc(32px * var(--glow)) color-mix(in srgb,var(--green) 50%,transparent),0 6px 28px color-mix(in srgb,var(--shadow) 70%,transparent);border-radius:var(--radius);padding:.75rem 1.5rem;z-index:1000;pointer-events:none;display:flex;align-items:center;gap:.75rem;animation:slide-in-out 2s cubic-bezier(.16,1,.3,1) forwards;max-width:min(90vw,420px);white-space:nowrap;overflow:hidden}.correct-guess-popup .popup-badge{background:var(--green);color:var(--bg);font-family:var(--font-display);font-size:calc(clamp(.5rem,1.6vw,.65rem) * var(--display-scale));line-height:clamp(.5rem,1.6vw,.65rem);font-weight:800;padding:.3rem .5rem;border-radius:3px;letter-spacing:.04em;flex-shrink:0}.correct-guess-popup .popup-message{font-family:var(--font-body);font-size:clamp(.82rem,3vw,1rem);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correct-guess-popup .popup-message strong{color:var(--green)}@keyframes slide-in-out{0%{opacity:0;transform:translate(-50%,-14px) scale(.92)}10%{opacity:1;transform:translate(-50%) scale(1.03)}17%{transform:translate(-50%) scale(1)}88%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-8px) scale(.97)}}@keyframes announce-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.turn-announce-page{background:var(--bg)}.turn-announce-card{background:var(--surface);border:2px solid var(--action);border-radius:var(--radius);padding:2.5rem 2rem;text-align:center;max-width:400px;width:100%;box-shadow:0 0 calc(40px * var(--glow)) color-mix(in srgb,var(--action) 15%,transparent),inset 0 0 calc(30px * var(--glow)) color-mix(in srgb,var(--action) 4%,transparent);animation:announce-in .3s cubic-bezier(.16,1,.3,1) forwards}.turn-announce-team{font-family:var(--font-display);font-size:calc(1rem * var(--display-scale));line-height:1rem;color:var(--accent);text-shadow:0 0 calc(12px * var(--glow)) var(--accent);margin-bottom:.75rem;letter-spacing:.04em}.turn-announce-explainer{font-family:var(--font-body);font-size:1rem;color:var(--text2);margin-bottom:2rem;font-weight:600}.turn-announce-countdown{font-family:var(--font-display);font-size:calc(4rem * var(--display-scale));color:var(--yellow);text-shadow:0 0 calc(20px * var(--glow)) var(--yellow);line-height:4rem;animation:neon-pulse 1s infinite}.phase-badge-rebuttal{--phase: var(--yellow)}.phase-badge-shootout{--phase: var(--danger)}.phase-badge{display:inline-block;font-family:var(--font-display);font-size:calc(.7rem * var(--display-scale));line-height:.7rem;letter-spacing:.08em;color:var(--phase, var(--action));border:2px solid var(--phase, var(--action));border-radius:var(--radius);padding:.45rem .8rem;margin-bottom:1.25rem;text-shadow:0 0 calc(10px * var(--glow)) var(--phase, var(--action));box-shadow:0 0 calc(18px * var(--glow)) color-mix(in srgb,var(--phase, var(--action)) 35%,transparent);animation:neon-pulse 1.2s infinite}.turn-announce-card.phase-rebuttal{border-color:var(--yellow);box-shadow:0 0 calc(40px * var(--glow)) color-mix(in srgb,var(--yellow) 18%,transparent),inset 0 0 calc(30px * var(--glow)) color-mix(in srgb,var(--yellow) 5%,transparent)}.turn-announce-card.phase-shootout{border-color:var(--danger);box-shadow:0 0 calc(40px * var(--glow)) color-mix(in srgb,var(--danger) 20%,transparent),inset 0 0 calc(30px * var(--glow)) color-mix(in srgb,var(--danger) 5%,transparent)}.phase-strip{position:sticky;top:0;z-index:20;width:100%;text-align:center;font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem;letter-spacing:.1em;color:var(--bg);background:var(--phase, var(--action));padding:.4rem;box-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--phase, var(--action)) 60%,transparent)}.phase-callout{font-family:var(--font-body);font-weight:700;font-size:.85rem;color:var(--phase, var(--action));border:1px solid var(--phase, var(--action));border-radius:var(--radius);padding:.6rem .8rem;margin:.75rem 0 1rem;background:color-mix(in srgb,var(--phase, var(--action)) 8%,transparent)}.decided-by{font-family:var(--font-display);font-size:calc(.65rem * var(--display-scale));line-height:.65rem;letter-spacing:.06em;color:var(--phase, var(--action));text-shadow:0 0 calc(10px * var(--glow)) var(--phase, var(--action));margin-top:.5rem}.hints-page{max-width:760px;margin:0 auto;padding:1rem;width:100%}.hints-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem;padding:.5rem .85rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.hteam{min-width:0;display:flex;flex-direction:column;gap:.05rem}.hteam.right{align-items:flex-end;text-align:right}.hteam-top{display:flex;align-items:baseline;gap:.45rem;max-width:100%}.hteam.right .hteam-top{flex-direction:row-reverse}.hteam-name{font-family:var(--font-display);font-size:calc(.5rem * var(--display-scale));line-height:.5rem;letter-spacing:.05em;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.hteam-count{font-family:var(--font-display);font-size:calc(1.2rem * var(--display-scale));line-height:1.2rem;font-variant-numeric:tabular-nums;color:var(--text2);transition:color .2s,text-shadow .2s}.hteam.own-0 .hteam-count{color:var(--team-red)}.hteam.own-1 .hteam-count{color:var(--team-blue)}.hteam.current.own-0 .hteam-name{color:var(--team-red-hi)}.hteam.current.own-1 .hteam-name{color:var(--team-blue-hi)}.hteam.current.own-0 .hteam-count{text-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--team-red) 70%,transparent)}.hteam.current.own-1 .hteam-count{text-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--team-blue) 70%,transparent)}.hteam-roster{font-family:var(--font-body);font-size:.62rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.hteam-roster .me{color:var(--text);font-weight:700}.hints-header-center{display:flex;align-items:center;justify-content:center}.hints-status-bar{display:flex;align-items:center;justify-content:center;padding:.55rem 1rem;min-height:2.75rem;background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0;transition:border-bottom-color .2s}.hints-status-bar.is-current{border-bottom-color:color-mix(in srgb,var(--action) 30%,transparent)}.hints-status-prompt{font-family:var(--font-body);font-size:.85rem;color:var(--text2)}.hints-status-prompt strong{color:var(--text)}.hints-clue-display{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;justify-content:center}.hints-clue-word{font-family:var(--font-display);font-size:calc(1.2rem * var(--display-scale));line-height:1.2rem;text-transform:uppercase;letter-spacing:.05em}.hints-clue-word.own-0{color:var(--team-red);text-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--team-red) 50%,transparent)}.hints-clue-word.own-1{color:var(--team-blue);text-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--team-blue) 50%,transparent)}.hints-clue-sep{color:var(--border);font-size:1rem}.hints-clue-count{font-family:var(--font-display);font-size:calc(.85rem * var(--display-scale));line-height:.85rem;color:var(--text2)}.hints-clue-count-label{font-size:.6rem}.hints-clue-watching{font-family:var(--font-body);font-size:.78rem;color:var(--text2);padding-left:.25rem}.hints-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);gap:.4rem;padding:.5rem .6rem;overflow:hidden}.hint-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:0;min-width:0;padding:0 0 13%;cursor:default;background:linear-gradient(180deg,#f1e6c8,#e3d2ab);border:1px solid rgba(60,42,20,.4);border-radius:8px;box-shadow:0 1px 2px #00000073,inset 0 1px #ffffff8c;color:#fff;font-family:var(--font-body);font-weight:800;overflow:hidden;transition:transform .12s ease,box-shadow .15s,filter .15s;-webkit-tap-highlight-color:transparent}.hint-word{display:flex;flex-direction:column;align-items:center;gap:.16rem;width:94%;background:linear-gradient(180deg,#9c7f54,#82693f);color:#fff7e6;border-radius:5px;padding:.3rem .32rem;text-transform:uppercase;letter-spacing:0;box-shadow:0 1px 1px #00000059,inset 0 1px #ffffff2e}.hint-line{display:block;white-space:nowrap;line-height:1.06;font-size:clamp(.5rem,2.8vw,.78rem);font-weight:800}.hint-check{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);font-size:clamp(1.7rem,9vw,2.7rem);line-height:1;font-weight:900;color:#fffffff2;text-shadow:0 2px 7px rgba(0,0,0,.6);pointer-events:none}.hint-card.revealed{filter:saturate(1.15);box-shadow:inset 0 0 0 2px #ffffff59,inset 0 2px 8px #00000073}.hint-card.revealed:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:7px;background:repeating-linear-gradient(45deg,#0000000f 0,#0000000f 6px,#0000 6px,#0000 12px);pointer-events:none}.hint-card.clickable{cursor:pointer}@media (hover: hover){.hint-card.clickable:hover{transform:translateY(-2px);box-shadow:0 5px 12px #00000080;filter:brightness(1.04)}}.hint-card.clickable:active{transform:scale(.96)}.hint-card.spy .hint-word{background:#0000006b;color:#fff;box-shadow:inset 0 1px 2px #00000073}.hint-card.spy.own-0{background:linear-gradient(180deg,#e85d72,#c01f38);border-color:#8c1c2d}.hint-card.spy.own-1{background:linear-gradient(180deg,#57aaf0,#1a6bad);border-color:#17578a}.hint-card.spy.own-neutral{background:linear-gradient(180deg,#eadcb8,#d2bb8c);border-color:#b09868}.hint-card.spy.own-neutral .hint-word{background:linear-gradient(180deg,#9c7f54,#82693f);color:#fff7e6}.hint-card.spy.own-assassin{background:linear-gradient(180deg,#45413c,#0b0a09);border-color:#000}.hint-card.spy.own-assassin .hint-word{background:#000;color:#ff6b6b;box-shadow:inset 0 0 0 1px #ff5a5a73}.hint-card.revealed{cursor:default}.hint-card.revealed .hint-word{background:#00000073;color:#fff}.hint-card.revealed.own-0 .hint-word{background:#7d0f20b3;color:#ffe3e8}.hint-card.revealed.own-1 .hint-word{background:#0c3860b3;color:#e3f1ff}.hint-card.revealed.own-0{background:linear-gradient(180deg,#d6485f,#a81d33);border-color:#8c1c2d}.hint-card.revealed.own-1{background:linear-gradient(180deg,#4197de,#135c97);border-color:#17578a}.hint-card.revealed.own-neutral{background:linear-gradient(180deg,#d8c8a0,#bca676);border-color:#a8946a}.hint-card.revealed.own-neutral .hint-word{background:linear-gradient(180deg,#8a7048,#6c5636)}.hint-card.revealed.own-assassin{background:linear-gradient(180deg,#1a1a1a,#000);border-color:#000}.hint-card.revealed.own-assassin .hint-word{background:#000;color:#ff5d78;text-shadow:0 0 8px rgba(255,93,120,.6)}.hints-action-bar{padding:.65rem .75rem;padding-bottom:max(.65rem,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:.4rem}.hints-reset-btn{padding:.3rem .55rem;min-height:auto;font-size:.6rem;opacity:.5}.hints-reset-btn:active,.hints-reset-btn.confirm{opacity:1}.hints-history{display:flex;gap:.35rem;align-items:center;padding:.4rem .6rem;overflow-x:auto;overflow-y:hidden;background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.hints-history::-webkit-scrollbar{display:none}.hist-chip{flex-shrink:0;font-family:var(--font-body);font-weight:700;font-size:.66rem;padding:.18rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--text2);white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}.hist-clue{font-family:var(--font-display);line-height:1}.hist-clue b{margin-left:.3rem;opacity:.85}.hist-clue.own-0{color:var(--team-red);border-color:color-mix(in srgb,var(--team-red) 50%,transparent);background:color-mix(in srgb,var(--team-red) 12%,transparent)}.hist-clue.own-1{color:var(--team-blue);border-color:color-mix(in srgb,var(--team-blue) 50%,transparent);background:color-mix(in srgb,var(--team-blue) 12%,transparent)}.hist-guess.own-0{color:#fff;background:#c0273f;border-color:#c0273f}.hist-guess.own-1{color:#fff;background:#1a6bad;border-color:#1a6bad}.hist-guess.own-neutral{color:#2a2418;background:#d2bb8c;border-color:#d2bb8c}.hist-guess.own-assassin{color:#ff6b6b;background:#0c0a09;border-color:#000}.hints-clue-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--scrim) 55%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:clueFade 2s ease forwards;pointer-events:none}.hints-clue-modal-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.6rem 2.4rem;border-radius:16px;border:2px solid currentColor;animation:cluePop .35s cubic-bezier(.2,.9,.3,1.2)}.hints-clue-modal.own-0 .hints-clue-modal-card{color:var(--team-red);background:color-mix(in srgb,var(--team-red) 25%,transparent);box-shadow:0 0 calc(45px * var(--glow)) color-mix(in srgb,var(--team-red) 55%,transparent)}.hints-clue-modal.own-1 .hints-clue-modal-card{color:var(--team-blue);background:color-mix(in srgb,var(--team-blue) 25%,transparent);box-shadow:0 0 calc(45px * var(--glow)) color-mix(in srgb,var(--team-blue) 55%,transparent)}.hints-clue-modal-label{font-family:var(--font-body);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;opacity:.9}.hints-clue-modal-word{font-family:var(--font-display);font-size:calc(2rem * var(--display-scale));line-height:2rem;text-transform:uppercase;letter-spacing:.04em;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.7);text-align:center}.hints-clue-modal-num{font-family:var(--font-display);font-size:calc(1.4rem * var(--display-scale));line-height:1.4rem;color:currentColor;width:2.6rem;height:2.6rem;display:flex;align-items:center;justify-content:center;border:2px solid currentColor;border-radius:50%}@keyframes cluePop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes clueFade{0%{opacity:0}12%{opacity:1}80%{opacity:1}to{opacity:0}}.clue-form{display:flex;gap:.5rem;align-items:center;width:100%;flex-wrap:wrap}.clue-input{flex:1;min-width:0;margin-bottom:0!important;padding:0;height:2.8rem;padding-left:1rem;padding-right:.75rem;background:var(--surface2);border:2px solid var(--action);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:16px;font-weight:600;box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--action) 12%,transparent)}.clue-input:focus{outline:none;box-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--action) 30%,transparent)}.clue-input::placeholder{color:var(--text2);font-weight:400}.clue-stepper{display:flex;align-items:center;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;flex-shrink:0;height:2.8rem}.clue-step-btn{background:var(--surface2);border:none;color:var(--text2);font-family:var(--font-body);font-size:1rem;font-weight:700;padding:0 .85rem;height:2.8rem;cursor:pointer;transition:background .1s,color .1s;line-height:1;-webkit-tap-highlight-color:transparent}.clue-step-btn:hover{background:color-mix(in srgb,var(--action) 8%,transparent);color:var(--action)}.clue-step-btn:active{background:color-mix(in srgb,var(--action) 14%,transparent)}.clue-step-val{font-family:var(--font-display);font-size:calc(.9rem * var(--display-scale));line-height:.9rem;color:var(--action);padding:0 .7rem;min-width:2.2rem;text-align:center;background:var(--surface2);border-left:1px solid var(--border);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;height:2.8rem}.clue-submit-btn{flex:0 0 100%;background:transparent;border:2px solid var(--action);color:var(--action);font-family:var(--font-display);font-size:calc(.65rem * var(--display-scale));line-height:.65rem;padding:.7rem 1rem!important;border-radius:var(--radius);cursor:pointer;transition:all .1s;letter-spacing:.03em;white-space:nowrap;text-transform:uppercase;box-shadow:0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--action) 15%,transparent);-webkit-tap-highlight-color:transparent}.clue-submit-btn:hover{background:color-mix(in srgb,var(--action) 8%,transparent);box-shadow:0 0 calc(18px * var(--glow)) color-mix(in srgb,var(--action) 30%,transparent)}.clue-submit-btn:disabled{opacity:.3;cursor:not-allowed}.hints-guessing-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem}.hints-guessing-controls .btn{padding:.85rem 1.5rem}@media (max-width: 480px){.hints-header{padding:.4rem .75rem;gap:.5rem}.hints-score{font-size:.6rem;padding:.22rem .45rem}.hints-role-badge{font-size:.72rem;padding:.22rem .45rem}.hints-status-bar{padding:.38rem .75rem;min-height:2.2rem}.hints-grid{gap:.3rem;padding:.3rem .45rem}.hints-action-bar{padding:.5rem .6rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));gap:.35rem}.clue-input,.clue-stepper{height:2.5rem}.clue-step-btn{height:2.5rem;padding:0 .7rem}.clue-step-val{height:2.5rem}.clue-submit-btn{padding:.55rem 1rem!important}.hints-guessing-controls{flex-direction:column;gap:.5rem}.hints-guessing-controls .btn{width:100%;padding:.75rem}}.hints-guessing-prompt{font-family:var(--font-body);font-size:.85rem;color:var(--text2);font-weight:600}.hints-watching-bar{display:flex;align-items:center;justify-content:center}.hints-watching-label{font-family:var(--font-body);font-size:.85rem;color:var(--text2);animation:blink 1.5s infinite}.hints-role{font-family:var(--font-body);font-weight:700;color:var(--text2);font-size:.9rem}.hints-status{text-align:center;font-family:var(--font-body);font-size:.95rem;color:var(--text);min-height:1.6rem;margin-bottom:.75rem}.clue-word{font-family:var(--font-display);font-size:calc(.95rem * var(--display-scale));line-height:.95rem;padding:.1rem .4rem}.clue-word.own-0{color:var(--team-red)}.clue-word.own-1{color:var(--team-blue)}.guesses-left{color:var(--text2);font-size:.85rem}.hints-controls{display:flex;justify-content:center}.clue-number{width:64px;text-align:center}.hints-end-page{max-width:560px;margin:0 auto;width:100%;padding:1.5rem 1.1rem 2rem;display:flex;flex-direction:column;gap:1.4rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.hints-win-hero{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.8rem 1.25rem;border-radius:18px;text-align:center;border:2px solid var(--border);background:var(--surface2)}.hints-win-hero.own-0{border-color:var(--team-red);background:color-mix(in srgb,var(--team-red) 14%,transparent);box-shadow:0 0 calc(34px * var(--glow)) color-mix(in srgb,var(--team-red) 30%,transparent)}.hints-win-hero.own-1{border-color:var(--team-blue);background:color-mix(in srgb,var(--team-blue) 14%,transparent);box-shadow:0 0 calc(34px * var(--glow)) color-mix(in srgb,var(--team-blue) 30%,transparent)}.hints-win-trophy{font-size:3.2rem;line-height:1;filter:drop-shadow(0 5px 12px rgba(0,0,0,.45))}.hints-win-name{font-family:var(--font-display);font-size:calc(1.5rem * var(--display-scale));line-height:1.5rem;text-transform:uppercase;letter-spacing:.03em;margin-top:.5rem;color:var(--text)}.hints-win-hero.own-0 .hints-win-name{color:var(--team-red);text-shadow:0 0 calc(18px * var(--glow)) color-mix(in srgb,var(--team-red) 55%,transparent)}.hints-win-hero.own-1 .hints-win-name{color:var(--team-blue);text-shadow:0 0 calc(18px * var(--glow)) color-mix(in srgb,var(--team-blue) 55%,transparent)}.hints-win-sub{font-family:var(--font-body);font-size:.72rem;color:var(--text2);text-transform:uppercase;letter-spacing:.12em}.hints-win-method{font-family:var(--font-body);font-size:.9rem;font-weight:600;color:var(--text);margin-top:.6rem;text-align:center}.hints-win-roster{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;margin-top:.9rem}.hints-win-player{font-family:var(--font-body);font-weight:700;font-size:.72rem;padding:.2rem .6rem;border-radius:999px;border:1px solid currentColor;color:var(--text2);opacity:.92}.hints-win-hero.own-0 .hints-win-player{color:var(--team-red)}.hints-win-hero.own-1 .hints-win-player{color:var(--team-blue)}.hints-final-label{font-family:var(--font-display);font-size:calc(.52rem * var(--display-scale));line-height:.52rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text2);text-align:center;margin-bottom:.6rem}.hints-grid-final{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem}.hints-grid-final .hint-card{aspect-ratio:1 / 1;height:auto;padding-bottom:10%}.hints-end-footer{display:flex;gap:.6rem;justify-content:center;align-items:center;padding-top:.5rem;flex-wrap:wrap}.end-reset-btn{padding:.55rem .9rem;min-height:auto;font-size:.7rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2);color:var(--text2)}.end-reset-btn.confirm{border-color:var(--danger);color:var(--danger)}.reset-game-btn{position:fixed;top:.6rem;left:50%;transform:translate(-50%);z-index:9999;font-family:var(--font-body);font-size:.65rem;font-weight:700;color:var(--danger);background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--danger);border-radius:var(--radius);padding:.35rem .7rem;cursor:pointer;box-shadow:0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--danger) 20%,transparent);transition:all .15s ease-in-out;letter-spacing:.05em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);white-space:nowrap;max-width:30vw;overflow:hidden;text-overflow:ellipsis}.reset-game-btn:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);box-shadow:0 0 calc(15px * var(--glow)) color-mix(in srgb,var(--danger) 40%,transparent)}.reset-game-btn.confirm{background:var(--danger);color:var(--bg);box-shadow:0 0 calc(16px * var(--glow)) color-mix(in srgb,var(--danger) 60%,transparent);animation:pulse 1s infinite}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}.hub-page,.hub-logo,.connection-banner{animation:none!important}.hub-header:before,.hub-glow{animation:none!important}.hints-clue-modal-card{animation:none!important}.hint-card.clickable:active{transform:none!important}.waiting-msg:before{animation:none;opacity:1}.sheet-panel,.sheet-scrim{animation:none!important}}.hints-board{height:100dvh;overflow:hidden;padding:0;max-width:none;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .85rem;padding-top:max(.55rem,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;position:relative;z-index:20}.topbar-brand{display:flex;align-items:baseline;gap:.45rem;min-width:0}.topbar-app{font-family:var(--font-display);font-size:calc(.58rem * var(--display-scale));line-height:.58rem;color:var(--accent);letter-spacing:.04em;white-space:nowrap}.topbar-dot{color:var(--text2)}.topbar-mode{font-family:var(--font-display);font-size:calc(.58rem * var(--display-scale));line-height:.58rem;color:var(--text);white-space:nowrap}.topbar-right{display:flex;align-items:center;gap:.6rem;position:relative}.topbar-code{font-family:var(--font-display);font-size:calc(.82rem * var(--display-scale));line-height:.82rem;color:var(--text2);letter-spacing:.12em}.topbar-menu-btn{background:none;border:none;color:var(--text);font-size:1.25rem;line-height:1;padding:.15rem .3rem;cursor:pointer}.topbar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.topbar-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:31;min-width:152px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px color-mix(in srgb,var(--shadow) 60%,transparent);overflow:hidden;display:flex;flex-direction:column}.topbar-menu-item{background:none;border:none;text-align:left;padding:.7rem .9rem;color:var(--text);font:inherit;font-size:.85rem;cursor:pointer}.topbar-menu-item:active{background:color-mix(in srgb,var(--text) 6%,transparent)}.topbar-menu-item.danger{color:var(--danger)}.topbar-menu-item.danger.confirm{background:color-mix(in srgb,var(--danger) 15%,transparent)}.hteams{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding:.6rem .7rem .4rem;flex-shrink:0}.twidget{position:relative;border-radius:14px;padding:.55rem .7rem;min-height:62px;overflow:hidden;box-shadow:0 2px 6px #0006}.twidget.own-0{background:linear-gradient(160deg,#d6485f,#a81d33)}.twidget.own-1{background:linear-gradient(160deg,#3f93dc,#155f99)}.twidget.current{outline:2px solid rgba(255,255,255,.85);outline-offset:-2px}.twidget-name{font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem;color:#fff;letter-spacing:.03em;text-shadow:0 1px 2px rgba(0,0,0,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68%}.twidget-roster{display:flex;flex-wrap:wrap;gap:.1rem .4rem;margin-top:.5rem;max-width:72%}.twidget-roster span{font-family:var(--font-body);font-size:.66rem;color:#ffffffeb;white-space:nowrap}.twidget-roster span.spy{font-weight:800;font-style:italic}.twidget-roster span.me{text-decoration:underline}.twidget-count{position:absolute;top:50%;right:.7rem;transform:translateY(-50%);font-family:var(--font-display);font-size:calc(2rem * var(--display-scale));line-height:2rem;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.45);font-variant-numeric:tabular-nums}.hints-strip-wrap{position:relative;flex-shrink:0}.hints-strip{display:flex;align-items:center;gap:.5rem;min-height:2.6rem;padding:.4rem .7rem;background:var(--surface2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.hints-strip-main{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.hints-strip-prompt{font-family:var(--font-body);font-size:.85rem;color:var(--text2)}.clue-pill{font-family:var(--font-display);font-size:calc(.85rem * var(--display-scale));line-height:.85rem;text-transform:uppercase;letter-spacing:.03em;padding:.2rem .6rem;border-radius:999px}.clue-pill.own-0{color:var(--team-red);background:color-mix(in srgb,var(--team-red) 14%,transparent)}.clue-pill.own-1{color:var(--team-blue);background:color-mix(in srgb,var(--team-blue) 14%,transparent)}.count-pill{font-family:var(--font-display);font-size:calc(.7rem * var(--display-scale));line-height:.7rem;color:var(--text2);padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border)}.watch-pill{font-family:var(--font-body);font-size:.72rem;color:var(--text2)}.hints-hist-toggle{flex-shrink:0;display:flex;align-items:center;gap:.3rem;padding:.32rem .6rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text2);font-family:var(--font-body);font-size:.7rem;font-weight:600;cursor:pointer}.hints-hist-toggle .hist-chev{transition:transform .15s;display:inline-block;font-size:.7rem}.hints-hist-toggle.open{color:var(--text);border-color:var(--action)}.hints-hist-toggle.open .hist-chev{transform:rotate(180deg)}.hints-grid-wrap{position:relative;flex:1;min-height:0;display:flex}.hints-history-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:color-mix(in srgb,var(--bg) 97%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;padding:.7rem .85rem .85rem}.hints-history-title{font-family:var(--font-display);font-size:calc(.55rem * var(--display-scale));line-height:.55rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text2);margin-bottom:.5rem}.hints-history-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem;-webkit-overflow-scrolling:touch}.hints-history-empty{color:var(--text2);font-style:italic}.hh-row{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.hh-icon{font-size:.85rem}.hh-clue .hh-by{font-weight:700}.hh-clue.own-0 .hh-clue-word{color:var(--team-red)}.hh-clue.own-1 .hh-clue-word{color:var(--team-blue)}.hh-clue-word{font-family:var(--font-display);font-size:calc(.78rem * var(--display-scale));line-height:.78rem;text-transform:uppercase}.hh-num{font-family:var(--font-display);line-height:1;color:var(--text2)}.hh-by{color:var(--text)}.hh-arrow,.hh-word{color:var(--text2)}.hh-dot{width:.7rem;height:.7rem;border-radius:50%;flex-shrink:0}.hh-dot.own-0{background:#c0273f}.hh-dot.own-1{background:#1a6bad}.hh-dot.own-neutral{background:#d2bb8c}.hh-dot.own-assassin{background:#000;box-shadow:0 0 0 1px #555}.hints-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);gap:.4rem;padding:.45rem .6rem;overflow:hidden}.hint-card.revealed{filter:saturate(1.1) brightness(.8);cursor:pointer}.hint-card.revealed.flipped{filter:saturate(1.05) brightness(.72)}.hint-check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(1.8rem,9vw,2.8rem);color:#fffffff2;text-shadow:0 2px 8px rgba(0,0,0,.6);pointer-events:none}.hints-actionbar{flex-shrink:0;padding:.55rem .7rem;padding-bottom:max(.55rem,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border)}.ab-form{display:flex;align-items:center;gap:.5rem}.ab-clue-group{flex:1;min-width:0;display:flex;align-items:center;height:2.7rem;background:var(--surface2);border:2px solid var(--action);border-radius:var(--radius);overflow:hidden;box-shadow:0 0 calc(8px * var(--glow)) color-mix(in srgb,var(--action) 12%,transparent)}.ab-clue-group:focus-within{box-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--action) 30%,transparent)}.ab-input{flex:1;min-width:0;height:100%;padding:0 .85rem;border:none;background:transparent;color:var(--text);font-size:16px;font-weight:600}.ab-input:focus{outline:none}.ab-input::placeholder{color:var(--text2);font-weight:400}.ab-cluefield{flex:1;min-width:0;height:2.7rem;display:flex;align-items:center;gap:.5rem;padding:0 .85rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius)}.ab-cluefield-word{font-family:var(--font-display);font-size:calc(.85rem * var(--display-scale));line-height:.85rem;color:var(--text);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-cluefield-num{margin-left:auto;font-family:var(--font-display);line-height:1;color:var(--action)}.ab-stepper{display:flex;align-items:center;height:2.7rem;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;flex-shrink:0}.ab-stepper button{background:var(--surface2);border:none;color:var(--text2);font-size:1rem;font-weight:700;padding:0 .7rem;height:100%;cursor:pointer}.ab-stepper span{font-family:var(--font-display);line-height:1;color:var(--action);min-width:1.8rem;text-align:center}.ab-btn{flex-shrink:0;height:2.7rem;padding:0 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface2);color:var(--text);font-family:var(--font-body);font-weight:700;font-size:.85rem;cursor:pointer}.ab-btn.primary{border-color:var(--action);color:var(--action);background:color-mix(in srgb,var(--action) 8%,transparent)}.ab-btn.nudge{border-color:var(--yellow);color:var(--yellow)}.ab-btn:disabled{opacity:.4}.ab-watch{color:var(--text2);font-size:.8rem;padding-right:.3rem}.waking-card{display:flex;flex-direction:column;align-items:center;gap:.85rem;text-align:center}.waking-spinner{display:flex;gap:.5rem;margin:.4rem 0}.waking-spinner span{width:.7rem;height:.7rem;border-radius:50%;background:var(--action);opacity:.4;animation:waking-bounce 1.1s ease-in-out infinite}.waking-spinner span:nth-child(2){animation-delay:.18s}.waking-spinner span:nth-child(3){animation-delay:.36s}@keyframes waking-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-.5rem);opacity:1}}.waking-title{font-family:var(--font-display);font-size:calc(1rem * var(--display-scale));line-height:1rem;color:var(--accent)}.waking-msg{font-family:var(--font-body);font-size:.9rem;color:var(--text2);max-width:32ch;line-height:1.5}.waking-cancel{margin-top:.3rem}.dev-fill-btn{position:fixed;left:.6rem;bottom:.6rem;z-index:500;padding:.4rem .7rem;font-size:.7rem;font-family:var(--font-body);background:#1e2233;color:#7fe;border:1px solid #3a4260;border-radius:8px;opacity:.85;cursor:pointer}.lobby-teams h2,.lobby-settings h2{border-bottom:none;padding-bottom:0;margin-bottom:.75rem}.settings-header-row{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}.lobby-settings .settings-header-row h2{margin:0}.settings-header-actions{display:flex;align-items:center;gap:.4rem}.team-card:hover{border-color:var(--border)}.team-name{color:var(--text)}.team-name-input{border-color:transparent;background:transparent;color:var(--text);padding-left:.1rem;padding-right:2rem}.team-name-input::placeholder{color:var(--text);opacity:1}.team-name-input:hover{background:var(--surface2)}.team-name-input:focus{border-color:var(--action);background:var(--surface2);padding-left:.6rem}.host-badge{background:transparent;color:var(--text2);border:1px solid var(--border);font-size:calc(.45rem * var(--display-scale));line-height:.45rem;opacity:.9}.offline-badge{background:transparent;color:var(--text2);border:1px solid var(--border);font-size:calc(.45rem * var(--display-scale));line-height:.45rem}.player-chip.selected{background:color-mix(in srgb,var(--action) 8%,transparent);box-shadow:none}.team-card.drop-target{background:color-mix(in srgb,var(--action) 3%,transparent);border-color:color-mix(in srgb,var(--action) 35%,transparent)}.player-chip.kick-confirm{animation:none;background:transparent;border-color:var(--danger)}.setting-row{border-bottom:none;padding:.65rem 0}.setting-row+.setting-row{border-top:1px solid color-mix(in srgb,var(--border) 75%,transparent)}.spymaster-row{border-top:none;margin-top:.5rem;padding-top:0}.chip.special-chip{border-color:var(--border)}.chip.special-chip:hover{border-color:var(--action);color:var(--text)}.chip.special-chip.active{background:color-mix(in srgb,var(--action) 10%,transparent);border-color:var(--action);color:var(--action);box-shadow:none}.special-label{color:var(--text2)}.game-menu{position:fixed;top:.6rem;right:.6rem;z-index:9999}.game-menu-btn{display:flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;padding:0;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .12s}.game-menu-btn:hover,.game-menu-btn.open{border-color:var(--action)}.game-menu-bars{display:flex;flex-direction:column;gap:3px;width:1rem}.game-menu-bars i{display:block;height:2px;border-radius:1px;background:var(--text2);transition:background .12s}.game-menu-btn:hover .game-menu-bars i,.game-menu-btn.open .game-menu-bars i{background:var(--action)}.game-menu-panel{position:absolute;top:calc(100% + .4rem);right:0;min-width:12.5rem;display:flex;flex-direction:column;gap:.25rem;padding:.35rem;background:color-mix(in srgb,var(--surface) 97%,transparent);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px color-mix(in srgb,var(--shadow) 50%,transparent)}.game-menu-item{text-align:left;width:100%;padding:.55rem .7rem;background:transparent;border:0;border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:.82rem;cursor:pointer;white-space:normal;line-height:1.35;-webkit-tap-highlight-color:transparent}.game-menu-item:hover{background:color-mix(in srgb,var(--action) 10%,transparent);color:var(--action)}.game-menu-item.danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.game-menu-item.confirm{background:var(--danger);color:var(--bg);font-weight:700}.chip.locked{opacity:.55;cursor:not-allowed}.account-alt{display:flex;flex-direction:column;gap:.65rem;margin-top:1.35rem;padding-top:1.15rem;border-top:1px solid var(--border)}.link-btn{background:none;border:0;color:var(--action);font-family:var(--font-body);font-size:.78rem;cursor:pointer;text-decoration:underline;padding:.2rem}.link-btn.muted{color:var(--text2);text-decoration:none}.profile-page{max-width:640px;margin:0 auto;padding:1.25rem;width:100%;gap:1.25rem}.profile-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.profile-empty{text-align:center;color:var(--text2);padding:3rem 0}.profile-empty-sub{font-size:.82rem;opacity:.75;margin-top:.4rem}.profile-section{margin-top:1.5rem}.profile-tabs{display:flex;gap:.4rem;overflow-x:auto;margin:.25rem -1.25rem 1rem;padding:0 1.25rem .35rem;scrollbar-width:none}.profile-tabs::-webkit-scrollbar{display:none}.profile-tabs .chip{flex:0 0 auto}.profile-group{margin-top:1.6rem}.profile-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.profile-count,.profile-link{font-size:.75rem;font-weight:600;color:var(--text2)}.profile-link{background:none;border:0;padding:0;cursor:pointer;color:var(--action)}.player-card{display:flex;flex-direction:column;gap:.55rem;padding:1rem;margin-bottom:1rem;border-radius:calc(var(--radius) * 1.5);border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--action) 12%,var(--surface)),var(--surface) 60%)}.player-card-top{display:flex;align-items:center;gap:.9rem}.player-level{flex:0 0 auto;width:58px;height:58px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--action);box-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--action) 50%,transparent)}.player-level-n{font-family:var(--font-display);font-size:calc(1.2rem * var(--display-scale));line-height:1.2rem;color:var(--action)}.player-level-l{font-size:.55rem;font-weight:700;letter-spacing:.12em;color:var(--text2);margin-top:2px}.player-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.player-name{margin:0;font-family:var(--font-display);font-size:calc(1rem * var(--display-scale));line-height:1.3rem;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-title{font-size:.8rem;color:var(--text2)}.player-back{flex:0 0 auto}.profile-signout{width:100%}.player-xp{height:8px;border-radius:4px;background:var(--surface2);overflow:hidden}.player-xp i{display:block;height:100%;background:var(--action);border-radius:4px;box-shadow:0 0 calc(10px * var(--glow)) var(--action)}.player-xp-text{font-size:.7rem;color:var(--text2);text-align:right}.profile-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.profile-hero-stat{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1rem .4rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.profile-hero-value{font-family:var(--font-display);font-size:calc(1.35rem * var(--display-scale));line-height:1.5rem;color:var(--text)}.profile-hero-label{font-size:.72rem;color:var(--text2);text-align:center}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem}.badge{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem .4rem .65rem;border-radius:var(--radius);border:1px dashed var(--border);background:transparent;text-align:center}.badge-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--surface2);color:var(--text2);opacity:.55}.badge-label{font-size:.75rem;font-weight:700;color:var(--text2);line-height:1.2}.badge-sub{font-size:.65rem;color:var(--text2);line-height:1.3}.badge-progress{position:relative;width:100%;height:14px;border-radius:7px;background:var(--surface2);overflow:hidden}.badge-progress i{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--action) 45%,transparent)}.badge-progress small{position:relative;display:block;font-size:.6rem;font-weight:700;line-height:14px;color:var(--text)}.badge.done{border-style:solid;border-color:color-mix(in srgb,var(--score) 60%,var(--border));background:color-mix(in srgb,var(--score) 7%,var(--surface))}.badge.done .badge-icon{opacity:1;background:color-mix(in srgb,var(--score) 18%,var(--surface));color:var(--score);box-shadow:0 0 calc(12px * var(--glow)) color-mix(in srgb,var(--score) 45%,transparent)}.badge.done .badge-label{color:var(--text)}.badge-glyph{fill:currentColor}.badge-glyph .hole{fill:var(--surface)}.rival-list{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.rival{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.8rem .4rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-width:0}.rival-name{font-weight:700;font-size:.85rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rival-score{font-family:var(--font-display);font-size:calc(.85rem * var(--display-scale));line-height:1rem;color:var(--text2)}.rival.ahead .rival-score{color:var(--green)}.rival.behind .rival-score{color:var(--danger)}.profile-more{margin-top:1.2rem}.profile-more-toggle{width:100%;padding:.7rem;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text2);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.profile-more-body{margin-top:.8rem}.profile-group .profile-subhead{margin:0 0 .6rem}.profile-game-row{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.profile-section h2{font-family:var(--font-body);font-weight:600;font-size:.72rem;color:var(--text2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.profile-footer{margin-top:2rem;display:flex;justify-content:center}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}@media (max-width: 480px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-tile{display:flex;flex-direction:column;align-items:center;gap:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem .5rem}.stat-value{font-family:var(--font-display);font-size:calc(1rem * var(--display-scale));line-height:1rem;color:var(--action)}.stat-label{font-family:var(--font-body);font-size:.7rem;color:var(--text2)}.mode-bars{display:flex;flex-direction:column;gap:.4rem}.mode-bar-row{display:flex;align-items:center;gap:.6rem;font-size:.78rem}.mode-bar-name{flex:0 0 8.5rem;color:var(--text2)}.mode-bar-track{flex:1;height:8px;background:var(--surface2);border-radius:4px;overflow:hidden}.mode-bar-fill{height:100%;background:var(--action)}.mode-bar-val{flex:0 0 3.5rem;text-align:right;font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem}.match-list{display:flex;flex-direction:column;gap:.4rem}.match-row.saved-song{display:block;color:inherit;text-decoration:none}.match-row{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem}.match-row.won{border-left-color:var(--green)}.match-main{display:flex;align-items:baseline;gap:.7rem}.match-result{font-family:var(--font-display);font-size:calc(.5rem * var(--display-scale));line-height:.5rem;color:var(--text2)}.match-row.won .match-result{color:var(--green)}.match-game{flex:1;font-weight:600;font-size:.85rem}.match-score{font-family:var(--font-display);font-size:calc(.6rem * var(--display-scale));line-height:.6rem;color:var(--action)}.match-meta{display:flex;gap:.8rem;margin-top:.3rem;font-size:.7rem;color:var(--text2)}.account-prompt{display:block;margin:auto auto 0;padding:.6rem 1.1rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--text2);font-family:var(--font-body);font-weight:600;font-size:.78rem;line-height:1.4;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s,color .15s,box-shadow .15s}.account-prompt:hover{border-color:var(--text2);color:var(--text)}.account-prompt.signed-in{color:var(--action);border-color:color-mix(in srgb,var(--action) 45%,transparent)}.signin-card{position:relative}.modal-close{position:absolute;top:-.85rem;right:-.85rem;width:2.3rem;height:2.3rem;display:flex;align-items:center;justify-content:center;background:var(--surface2);border:1px solid var(--border);border-radius:50%;color:var(--text2);font-size:1.15rem;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 14px color-mix(in srgb,var(--shadow) 50%,transparent);transition:background .12s,color .12s,border-color .12s,transform .12s}.modal-close:hover{background:var(--danger);border-color:var(--danger);color:var(--bg);transform:scale(1.06)}.password-field{position:relative;margin-bottom:.8rem}.password-field .input{padding-right:3rem;margin-bottom:0}.password-eye{position:absolute;top:0;bottom:0;right:.35rem;display:flex;align-items:center;justify-content:center;width:2.4rem;padding:0;background:none;border:0;cursor:pointer;color:var(--text2);line-height:0;opacity:.7;-webkit-tap-highlight-color:transparent;transition:opacity .12s,color .12s}.password-eye:hover{opacity:1;color:var(--action)}.profile-subhead{font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin:1.1rem 0 .6rem;opacity:.8}.profile-note{font-size:.78rem;color:var(--text2);margin-top:.7rem;line-height:1.5}.profile-section .stat-grid{margin-bottom:.4rem}.field-note{font-family:var(--font-body);font-size:.72rem;line-height:1.5;color:var(--text2);opacity:.85;margin:-.35rem 0 .9rem;text-align:center}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.stepper button{width:2.5rem;height:2rem;padding:0;background:transparent;border:0;color:var(--text);font-family:var(--font-body);font-size:1.1rem;font-weight:600;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s}.stepper button:hover:not(:disabled){background:var(--surface2)}.stepper button:active:not(:disabled){background:color-mix(in srgb,var(--action) 12%,transparent);color:var(--action)}.stepper button:disabled{color:var(--text2);opacity:.35;cursor:not-allowed}button.stepper-value{cursor:text;background:transparent;border-top:0;border-bottom:0;border-radius:0;padding:0;height:2rem}input.stepper-value{width:3.25rem;height:2rem;margin:0;padding:0;outline:none;background:var(--surface2)}.stepper-value{min-width:3.25rem;text-align:center;font-family:var(--font-body);font-weight:700;font-size:.95rem;color:var(--text);font-variant-numeric:tabular-nums;border-left:1px solid var(--border);border-right:1px solid var(--border);line-height:2rem}.settings-summary{font-family:var(--font-body);font-size:.88rem;line-height:1.6;color:var(--text)}.setting-label{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.tip{position:relative;display:inline-flex}.tip-btn{width:16px;height:16px;padding:0;margin:0;display:inline-grid;place-items:center;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text2);font-family:var(--font-body);font-size:.6rem;font-weight:700;line-height:1;cursor:pointer}.tip-btn:hover,.tip-btn.open{border-color:var(--action);color:var(--action)}.tip-bubble{position:absolute;top:calc(100% + 6px);left:-4px;z-index:30;width:max-content;max-width:240px;padding:.5rem .65rem;border-radius:var(--radius);background:var(--surface2);border:1px solid var(--border);box-shadow:0 8px 20px color-mix(in srgb,var(--shadow) 45%,transparent);color:var(--text);font-family:var(--font-body);font-size:.72rem;font-weight:400;line-height:1.45;white-space:normal}.seg{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.setting-meta{font-family:var(--font-body);font-size:.72rem;color:var(--text2)}.end-actions{display:flex;flex-direction:column;gap:.6rem;width:100%}.end-actions .btn{width:100%}.invite-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;background:color-mix(in srgb,var(--scrim) 78%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.invite-card{position:relative;width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:1.6rem 1.4rem 1.4rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.invite-close{position:absolute;top:.6rem;right:.6rem;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer}.invite-title{font-family:var(--font-display);font-size:calc(.75rem * var(--display-scale));line-height:.75rem;color:var(--accent);letter-spacing:.05em}.invite-qr{width:220px;height:220px;padding:14px;background:#fff;border-radius:10px}.invite-qr svg{width:100%;height:100%;display:block}.invite-code{font-family:var(--font-display);font-size:calc(1.6rem * var(--display-scale));line-height:1.6rem;color:var(--text);letter-spacing:.25em}.invite-dev{font-family:var(--font-body);font-size:.7rem;color:var(--yellow);text-align:center;margin:0}.invite-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.invite-actions .btn{width:100%;margin:0}.theme-btn{position:absolute;top:max(.75rem,env(safe-area-inset-top));right:.75rem;width:2.5rem;height:2.5rem;display:grid;place-items:center;background:transparent;border:1px solid var(--border);border-radius:50%;color:var(--text2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .15s,border-color .15s}.theme-btn:hover{color:var(--text);border-color:var(--text2)}.theme-btn:focus-visible{outline:2px solid var(--action);outline-offset:2px}.profile-btn{position:absolute;top:max(.75rem,env(safe-area-inset-top));left:.75rem;width:2.5rem;height:2.5rem;display:grid;place-items:center;background:transparent;border:1px solid color-mix(in srgb,var(--action) 45%,transparent);border-radius:50%;color:var(--action);font-size:1.15rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s,box-shadow .15s}.profile-btn:hover{border-color:var(--action);box-shadow:0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--action) 40%,transparent)}.profile-btn:focus-visible{outline:2px solid var(--action);outline-offset:2px}.icon-person{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.theme-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.theme-tile{display:flex;flex-direction:column;align-items:center;gap:.7rem;padding:1.1rem .4rem .8rem;background-color:var(--bg);background-image:var(--bg-pattern);background-size:var(--bg-pattern-size);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s}.theme-tile:active{transform:scale(.97)}.theme-tile.active{border-color:var(--action);box-shadow:0 0 0 1px var(--action)}.theme-tile:focus-visible{outline:2px solid var(--action);outline-offset:2px}.theme-tile-mark{font-family:var(--font-display);font-style:var(--logo-style);font-size:calc(.55rem * var(--display-scale));line-height:.77rem;color:var(--accent);letter-spacing:var(--logo-tracking);text-shadow:0 0 calc(8px * var(--glow)) var(--accent);text-transform:uppercase}.theme-tile-swatches{display:flex;gap:3px}.theme-tile-swatches i{width:.6rem;height:.6rem;border-radius:50%}.theme-tile-name{font-weight:600;font-size:.8rem}.theme-tile.active .theme-tile-name{color:var(--action)}.icon-flame,.icon-trophy,.icon-flag{display:inline-block;flex:0 0 auto;vertical-align:-.12em}.icon-flame{filter:drop-shadow(0 0 calc(4px * var(--glow)) color-mix(in srgb,var(--spark) 70%,transparent))}.icon-flame-outer{fill:var(--spark)}.icon-flame-core{fill:var(--spark-core)}.icon-trophy{filter:drop-shadow(0 0 calc(10px * var(--glow)) color-mix(in srgb,var(--score) 45%,transparent))}.icon-trophy-cup{fill:var(--score)}.icon-trophy-base{fill:color-mix(in srgb,var(--score) 55%,var(--bg))}.icon-flag-pole{fill:var(--text2)}.icon-flag-cloth{fill:var(--text)}.icon-bookmark path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.icon-bookmark.filled path{fill:currentColor}.lobby-title-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 .25rem;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.lobby-title-caret{font-family:var(--font-body);font-size:.75rem;opacity:.75;text-shadow:none}.game-picker{width:auto;margin:0 -1.5rem}.game-picker .mode-row.current{background:color-mix(in srgb,var(--game) 9%,transparent);cursor:default}
