:root{--bg:#12161f;--bg-elevated:#1a2130;--bg-deep:#0e121a;--obstacle:#2c3648;--border:#2c3648;--accent:#3de7ff;--accent-ink:#041018;--text:#e8edf5;--muted:#8b97ad;--danger:#e74c3c;--player-red:#e74c3c;--player-blue:#3498db;--player-green:#2ecc71;--player-amber:#f1c40f;--player-orange:#e67e22;--player-magenta:#e84393;--radius:12px;--font:"Space Grotesk", system-ui, sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(ellipse 90% 55% at 50% -10%, #3de7ff14, transparent 55%), radial-gradient(ellipse at bottom right, #1a2130e6, transparent 45%), var(--bg);min-height:100vh}a{color:var(--accent)}button,input{font:inherit}.page{flex-direction:column;gap:18px;min-height:100vh;padding:28px clamp(20px,4vw,40px);display:flex}.brand{letter-spacing:-.04em;margin:0;font-size:clamp(2.4rem,6vw,4rem);font-weight:700;animation:.48s ease-out both brand-in}.brand span{color:var(--accent)}@keyframes brand-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.lede{max-width:38rem;color:var(--muted);margin:0;font-size:1.1rem}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:28rem;padding:20px}.cta{appearance:none;background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:10px;padding:12px 18px;font-weight:600;transition:transform .12s,filter .12s}.cta:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.cta:disabled{opacity:.45;cursor:not-allowed}.cta-muted{background:var(--obstacle);color:var(--text)}.field{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.field input{border:1px solid var(--border);background:var(--bg-deep);color:var(--text);border-radius:10px;padding:12px 14px}.field input:focus{outline-offset:1px;outline:2px solid #3de7ff59}.field input.code-input{text-transform:uppercase;letter-spacing:.12em}.meta{color:var(--muted);font-size:.9rem}.section-title{letter-spacing:-.02em;margin:0 0 12px;font-size:1.15rem;font-weight:600}.tv-page{text-align:center;box-sizing:border-box;justify-content:safe center;align-items:center;gap:28px;width:100%;max-width:1120px;min-height:100dvh;margin:0 auto}.tv-page.is-fullscreen{background:var(--bg);justify-content:safe center;gap:14px;max-width:none;min-height:100dvh;padding:16px clamp(16px,3vw,28px) 20px}.tv-page.in-match{justify-content:stretch;gap:0;width:100%;max-width:none;height:100dvh;min-height:100dvh;padding:0;position:relative;overflow:hidden}.tv-page.in-match.is-fullscreen{gap:0;padding:0}.tv-page.in-match .tv-header{z-index:8;pointer-events:none;flex-shrink:0;gap:0;padding:10px clamp(12px,2vw,20px) 0;position:absolute;top:0;left:0;right:0}.tv-page.in-match .tv-header .brand{text-shadow:0 1px 8px #070a10d9;font-size:clamp(1.05rem,1.8vw,1.35rem)}.tv-page.in-match .fullscreen-btn{pointer-events:auto;padding:8px 12px;font-size:.85rem}.tv-page.in-match .tv-match-status{text-shadow:0 1px 8px #070a10d9}.tv-page.in-match.is-match-over{justify-content:flex-start;gap:12px;padding:12px clamp(12px,2vw,24px) 16px;overflow:auto}.tv-page.in-match.is-match-over .tv-header{pointer-events:auto;padding:0;position:static}.tv-page.in-match.is-match-over .arena-stage{flex:0 auto;gap:14px;max-width:min(720px,100%);height:auto;margin:0 auto;padding:0}.tv-page.in-match.is-match-over .arena-frame{display:none}.tv-page.in-match.is-match-over .arena-meta{width:100%;max-width:520px;position:static;transform:none}.tv-match-status{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.8rem}.tv-header{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.tv-header-row{justify-content:center;align-items:center;gap:16px;width:100%;display:flex;position:relative}.tv-header .brand{font-size:clamp(2.2rem,5vw,3.4rem)}.tv-page.is-fullscreen .tv-header .brand{font-size:clamp(1.5rem,3vw,2rem)}.fullscreen-btn{padding:10px 14px;font-size:.9rem;position:absolute;top:50%;right:0;transform:translateY(-50%)}.fullscreen-btn:hover:not(:disabled){transform:translateY(calc(-50% - 1px))}.tv-lede{text-align:center;max-width:36rem;margin:0}.tv-header .lede{margin-top:2px}.tv-lobby{text-align:left;grid-template-columns:minmax(240px,300px) minmax(260px,340px) minmax(240px,300px);justify-content:center;align-items:start;gap:28px 32px;width:100%;max-width:1120px;animation:.56s ease-out both stage-in;display:grid}.tv-lobby .qr-block{text-align:center;justify-self:stretch;align-items:center;min-width:0}.tv-lobby .lobby-settings,.tv-lobby .lobby-players{justify-self:stretch;min-width:0}.lobby-rounds{border:1px solid var(--border);background:#0c10188c;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:14px 0 4px;padding:12px 14px;display:flex}.lobby-rounds-label{letter-spacing:-.01em;font-weight:600}.lobby-rounds-controls{align-items:center;gap:8px;display:flex}.lobby-rounds-btn{border:1px solid var(--border);background:var(--obstacle);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;font-size:1.35rem;font-weight:600;line-height:1}.lobby-rounds-btn:disabled{opacity:.35;cursor:not-allowed}.lobby-rounds-value{text-align:center;min-width:1.6em;color:var(--accent);font-size:1.35rem}.lobby-duration-value{font-variant-numeric:tabular-nums;min-width:3.2em}.lobby-mode-toggle{flex-wrap:wrap;gap:6px;display:flex}.demo-setup{flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px;padding:0 4px;display:flex}.lobby-mode-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;padding:8px 14px;font-size:.95rem;font-weight:600}.lobby-mode-btn.is-active{color:var(--text);background:var(--obstacle);border-color:var(--accent)}.lobby-mode-btn:disabled{opacity:.45;cursor:not-allowed}.dm-live-score{z-index:5;border:1px solid var(--border);pointer-events:none;background:#070a10b8;border-radius:8px;flex-direction:column;gap:4px;min-width:9rem;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px}.dm-live-row{grid-template-columns:1.1em 12px 1fr auto;align-items:center;gap:6px;font-size:.8rem;line-height:1.2;display:grid}.dm-live-row .swatch{border-radius:2px;width:10px;height:10px}.dm-live-row strong{font-variant-numeric:tabular-nums;color:var(--accent)}.horde-live-hud{z-index:5;border:1px solid var(--border);pointer-events:none;background:#070a10b8;border-radius:8px;flex-direction:column;gap:6px;min-width:11rem;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px}.horde-live-row{grid-template-columns:2.4em 1fr auto;align-items:center;gap:6px;font-size:.8rem;line-height:1.2;display:grid}.horde-live-row strong{font-variant-numeric:tabular-nums;color:var(--accent)}.horde-core-bar{background:#e8edf51f;border-radius:4px;height:7px;overflow:hidden}.horde-core-fill{background:linear-gradient(90deg,#3de7ff,#9ef0ff);border-radius:4px;height:100%}.scoreboard-units{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.tv-lobby .start-cta{align-self:flex-start}@keyframes stage-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.qr-block{flex-direction:column;gap:14px;display:flex}.qr-frame{background:var(--bg-elevated);border:2px solid var(--accent);border-radius:18px;width:fit-content;padding:18px;animation:3.2s ease-in-out infinite qr-breathe;display:inline-flex;box-shadow:0 0 0 6px #3de7ff0f}@keyframes qr-breathe{0%,to{box-shadow:0 0 0 6px #3de7ff0d}50%{box-shadow:0 0 0 10px #3de7ff1a}}.room-code{letter-spacing:.28em;color:var(--text);margin:0;font-size:clamp(3.4rem,10vw,5.5rem);font-weight:700;line-height:1.05}.room-code-label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:.85rem;font-weight:700}.lobby-waiting{color:var(--accent);letter-spacing:.02em;margin:0;font-size:clamp(1.15rem,2.6vw,1.45rem);font-weight:700}.lobby-waiting.is-ready{color:#2ecc71}.lobby-side,.lobby-settings,.lobby-players{flex-direction:column;gap:14px;display:flex}.lobby-settings .start-cta,.lobby-settings .demo-cta{width:100%}.lobby-players-count,.lobby-help{margin:0}.lobby-players .roster{flex:1;min-height:0;max-height:min(52vh,420px);padding-right:4px;overflow-y:auto}.start-cta{width:fit-content;padding:16px 26px;font-size:1.2rem}.roster{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.roster-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:12px 14px;display:flex}.roster-chip.is-you{border-color:var(--accent)}.roster-chip.is-gone{opacity:.45}.swatch{border-radius:50%;flex-shrink:0;width:14px;height:14px;box-shadow:inset 0 0 0 1px #ffffff26}.skin-avatar{background:#0c1018;border-radius:50%;flex-shrink:0;width:42px;height:42px;display:block;box-shadow:inset 0 0 0 1px #e8edf51a}.roster-chip .skin-avatar{margin-right:2px}.roster-name{flex:1;font-weight:500}.ready-pill{background:var(--obstacle);color:var(--muted);border-radius:999px;padding:4px 8px;font-size:.75rem}.ready-pill.on{color:var(--accent);background:#3de7ff2e}.phone-page .phone-panel .cta{width:100%}.char-picker{flex-direction:column;gap:8px;margin:4px 0 16px;display:flex}.char-picker-label{color:var(--muted);font-size:.85rem;font-weight:500}.char-picker-row{justify-content:center;align-items:center;gap:10px;display:flex}.char-picker-canvas{border:1px solid var(--border);background:var(--bg-deep);border-radius:14px;transition:transform .12s,border-color .12s;display:block}.char-picker-canvas.is-bump{animation:.28s char-picker-bump}@keyframes char-picker-bump{0%{transform:scale(1)}40%{border-color:#3de7ff8c;transform:scale(1.04)}to{transform:scale(1)}}.char-picker-nav{border:1px solid var(--border);background:var(--obstacle);width:42px;height:42px;color:var(--text);cursor:pointer;border-radius:12px;font-size:1.6rem;line-height:1}.char-picker-nav:active{transform:scale(.96)}.char-picker-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.char-picker-name{letter-spacing:-.01em;font-weight:600}.char-picker-random{color:var(--accent);cursor:pointer;background:#3de7ff1f;border:1px solid #3de7ff59;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:600}.char-picker-random:active{transform:scale(.97)}.roster-skin{opacity:.85;font-size:.75rem}.status-line{min-height:1.2em}.controller-shell{background:radial-gradient(ellipse at top, #3de7ff0f, transparent 50%), var(--bg);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100dvh;min-height:100dvh;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));box-sizing:border-box;flex-direction:column;display:flex;position:relative}.controller-shell.is-embedded{border:1px solid var(--border);background:radial-gradient(ellipse at top, #3de7ff0d, transparent 55%), var(--bg-elevated);border-radius:14px;height:100%;min-height:0;max-height:100%}:-webkit-any(.controller-shell.is-fullscreen,.controller-shell:fullscreen,.controller-shell:-webkit-full-screen){z-index:1000;background:#070a10;border:none;border-radius:0;width:100%;height:100%;min-height:100%;max-height:none;position:fixed;inset:0}:is(.controller-shell.is-fullscreen,.controller-shell:fullscreen,.controller-shell:fullscreen){z-index:1000;background:#070a10;border:none;border-radius:0;width:100%;height:100%;min-height:100%;max-height:none;position:fixed;inset:0}:-webkit-any(.controller-shell:fullscreen,.controller-shell:-webkit-full-screen){padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));box-sizing:border-box}:is(.controller-shell:fullscreen,.controller-shell:fullscreen){padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));box-sizing:border-box}.control-fs-btn[aria-pressed=true]{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));color:var(--accent);background:#3de7ff1a}.controller-bar{flex-shrink:0;align-items:center;gap:10px;padding:8px 4px 12px;display:flex}.controller-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.controller-bar .wake-meta{margin-left:auto}.control-flip-btn{border:1px solid var(--border);background:var(--bg-elevated);color:var(--muted);font:inherit;letter-spacing:.02em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:8px;flex-shrink:0;margin-left:4px;padding:6px 10px;font-size:.75rem;font-weight:600}.control-flip-btn[aria-pressed=true]{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));color:var(--accent);background:#3de7ff1a}.control-rumble-btn[aria-pressed=false],.control-sound-btn[aria-pressed=false]{opacity:.72}.hit-flash-layer{z-index:8;pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.hit-flash{transition:opacity 60ms linear;position:absolute;inset:0}.stun-banner{z-index:9;pointer-events:none;letter-spacing:.08em;text-transform:uppercase;color:#1a1208;background:linear-gradient(#ffeaa7,#f1c40f);border-radius:12px;padding:10px 22px;font-family:Space Grotesk,system-ui,sans-serif;font-size:1.35rem;font-weight:700;animation:.55s ease-in-out infinite alternate stun-banner-pulse;position:absolute;top:28%;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000059}@keyframes stun-banner-pulse{0%{opacity:.88;transform:translate(-50%)scale(1)}to{opacity:1;transform:translate(-50%)scale(1.04)}}.round-countdown{z-index:5;pointer-events:none;background:#070a1047;place-content:center;display:grid;position:absolute;inset:0}.round-countdown-num{letter-spacing:.08em;color:#f4f7ff;text-shadow:0 0 48px #3de7ff8c;font-family:Space Grotesk,system-ui,sans-serif;font-size:clamp(4.5rem,16vw,9rem);font-weight:700;animation:.42s ease-out both countdown-pop}.round-countdown.is-go .round-countdown-num{color:#3de7ff;letter-spacing:.14em}@keyframes countdown-pop{0%{opacity:0;transform:scale(1.4)}40%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(1)}}.flip-label-short{display:none}.controller-playfield{min-height:0;padding-bottom:max(4px, env(safe-area-inset-bottom));flex:1;grid-template:"hud hud""move actions"1fr/1fr 1fr;align-items:end;gap:12px 24px;display:grid}.controls-flipped .controller-playfield{grid-template-areas:"hud hud""actions move"}.controller-hud{grid-area:hud;gap:8px;padding:0 4px;display:grid}.pad-slot{align-items:flex-end;min-width:0;min-height:0;display:flex}.pad-move{grid-area:move;justify-content:flex-start}.pad-actions{grid-area:actions;justify-content:flex-end}.controls-flipped .pad-move{justify-content:flex-end}.controls-flipped .pad-actions{justify-content:flex-start}.fire-pad{flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:14px;width:100%;display:flex}.controls-flipped .fire-pad{align-items:flex-start}.secondary-actions{flex-direction:row;justify-content:flex-end;align-items:center;gap:10px;display:flex}.controls-flipped .secondary-actions{flex-direction:row-reverse;justify-content:flex-start}.aim-hint{letter-spacing:.04em;opacity:.72;margin:2px 0 0;font-size:.68rem}.ammo-block{gap:5px;display:grid}.ammo-block.is-low .ammo-label{color:#ff6b6b;font-weight:700}.ammo-low-banner{letter-spacing:.14em;color:#ff6b6b;margin:0;font-size:.72rem;font-weight:800;animation:.7s ease-in-out infinite low-ammo-blink}.ammo-pip.low{background:#ff6b6b;border-color:#ff8787;animation:.7s ease-in-out infinite low-ammo-blink}@keyframes low-ammo-blink{50%{opacity:.45}}.hp-row{align-items:center;gap:8px;display:flex}.hp-row.is-hit .hp-pip.on{animation:.42s ease-out hp-hit-pulse}.hp-pips{gap:5px;display:flex}.hp-pip{background:var(--obstacle);border:1px solid var(--border);border-radius:3px;width:18px;height:12px}.hp-pip.on{background:#e74c3c;border-color:#f29d94}@keyframes hp-hit-pulse{0%{transform:scale(1);box-shadow:0 0 #e74c3cb3}40%{transform:scale(1.15);box-shadow:0 0 12px 2px #e74c3c8c}to{transform:scale(1);box-shadow:0 0 #0000}}.hp-label{font-size:.7rem}.hp-bar{background:var(--obstacle);border:1px solid var(--border);border-radius:4px;width:min(160px,42vw);height:12px;position:relative;overflow:hidden}.hp-bar:after{content:"";width:var(--hp-pct,0%);background:#e74c3c;position:absolute;inset:0}.reload-track{background:var(--bg-deep);border:1px solid var(--border);border-radius:999px;height:6px;overflow:hidden}.reload-fill{border-radius:inherit;background:linear-gradient(90deg,#3de7ff,#ffeaa7);height:100%;transition:width 50ms linear}.ammo-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ammo-pip{background:var(--obstacle);border:1px solid var(--border);border-radius:3px;width:14px;height:10px}.ammo-pip.on{border-color:color-mix(in srgb, #ffeaa7 50%, var(--border));background:#ffeaa7}.ammo-pip.reload{animation:.55s ease-in-out infinite ammo-pulse}.ammo-bar{background:var(--obstacle);border:1px solid var(--border);border-radius:3px;width:72px;height:10px;position:relative;overflow:hidden}.ammo-bar:after{content:"";width:var(--ammo-pct,0%);background:#ffeaa7;position:absolute;inset:0}.ammo-bar.is-low:after{background:#ff7675}.ammo-bar.reload{animation:.55s ease-in-out infinite ammo-pulse}.weapon-tag{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:.85em;font-weight:700}.weapon-switcher{gap:4px;margin-top:8px;display:grid}.weapon-switcher-row{flex-wrap:wrap;gap:6px;display:flex}.weapon-switch-btn{border:1px solid var(--border);min-width:44px;color:var(--muted);letter-spacing:.06em;cursor:pointer;background:#0c1018b3;border-radius:10px;padding:8px 10px;font-size:.78rem;font-weight:700}.weapon-switch-btn.is-active{color:var(--text);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, #0c1018d9)}.weapon-switch-btn:disabled:not(.is-active){opacity:.45;cursor:not-allowed}.weapon-switcher.is-compact .weapon-switch-btn{min-width:40px;padding:6px 8px;font-size:.72rem}.weapon-switch-lock{color:#ffeaa7;margin:0}.weapon-switch-hint{margin:0}@keyframes ammo-pulse{50%{background:#3de7ff73}}.ammo-label{margin-left:4px}.shield-row{align-items:center;gap:10px;display:flex}.shield-track{background:var(--bg-deep);border:1px solid var(--border);border-radius:999px;flex:1;height:10px;overflow:hidden}.shield-fill{background:color-mix(in srgb, var(--accent) 55%, var(--obstacle));height:100%;transition:width 80ms linear}.shield-fill.active{background:var(--accent);box-shadow:0 0 12px #3de7ff73}.block-btn{width:min(36vw,140px);height:min(24vw,96px);color:var(--accent);letter-spacing:.1em;touch-action:none;-webkit-tap-highlight-color:transparent;background:#0c1018c7;border:2.5px solid #3de7ffb3;border-radius:20px;font-size:1.12rem;font-weight:800;box-shadow:0 6px 20px #0000004d}.block-btn.is-active{border-color:var(--accent);background:#3de7ff38;box-shadow:0 0 18px #3de7ff59}.fire-btn{width:min(48vw,200px);height:min(48vw,200px);color:var(--accent-ink);letter-spacing:.1em;touch-action:none;-webkit-tap-highlight-color:transparent;border:3px solid #ffffff2e;border-radius:50%;font-size:1.55rem;font-weight:800;transition:transform 80ms,filter 80ms,box-shadow .12s;box-shadow:0 10px 28px #0006,inset 0 1px #ffffff38}.fire-btn.is-disabled{filter:grayscale(.35)brightness(.7);opacity:.7;box-shadow:none}.fire-btn:active:not(:disabled){filter:brightness(.92);transform:scale(.96)}.grenade-btn{color:#ff9f43;letter-spacing:.1em;touch-action:none;-webkit-tap-highlight-color:transparent;background:#0c1018c7;border:2.5px solid #ff9f43cc;border-radius:20px;place-items:center;width:min(36vw,140px);height:min(24vw,96px);font-size:1.08rem;font-weight:800;display:grid;position:relative;overflow:hidden;box-shadow:0 6px 20px #0000004d}.grenade-btn.is-charging{box-shadow:0 0 16px #ff9f4366}.grenade-btn.is-disabled{opacity:.45;filter:grayscale(.4)}.grenade-charge{width:100%;height:calc(var(--charge,0) * 100%);pointer-events:none;background:#ff9f4359;transition:height 50ms linear;position:absolute;bottom:0;left:0}.grenade-label{z-index:1;position:relative}.grenade-count{z-index:1;font-variant-numeric:tabular-nums;color:#ffeaa7;font-size:.95rem;font-weight:800;position:absolute;top:8px;right:10px}.stick-base{touch-action:none;background:radial-gradient(circle at 50% 42%,#1c2430f2,#070a10f5);border:2px solid #3de7ff47;border-radius:50%;width:min(50vw,220px);height:min(50vw,220px);position:relative;box-shadow:inset 0 0 0 1px #ffffff0a,0 8px 24px #00000059}.stick-nipple{overflow:visible}.stick-nipple .nipple{opacity:1!important}.stick-nipple .back{opacity:0!important;background:0 0!important;border:none!important}.stick-nipple .front{box-sizing:border-box;background:var(--bg-elevated)!important;border:3px solid var(--stick-color,var(--accent))!important;opacity:1!important}@media (orientation:landscape) and (height<=560px){.controller-shell{padding:max(6px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.controller-bar{gap:8px;padding:2px 2px 6px}.controller-bar .wake-meta{font-size:.7rem}.flip-label-full{display:none}.flip-label-short{display:inline}.control-flip-btn{padding:5px 9px}.controller-playfield{padding-bottom:max(2px, env(safe-area-inset-bottom));grid-template:"move hud actions"1fr/minmax(0,1fr) minmax(132px,22%) minmax(0,1fr);align-items:end;gap:8px 12px}.controls-flipped .controller-playfield{grid-template-areas:"actions hud move"}.controller-hud{border:1px solid var(--border);background:#0c10188c;border-radius:12px;align-self:center;gap:6px;padding:8px 10px}.pad-move,.pad-actions{align-items:flex-end;height:100%;padding-bottom:0}.pad-move{justify-content:flex-start;padding-left:2px}.pad-actions{justify-content:flex-end;padding-right:2px}.controls-flipped .pad-move{justify-content:flex-end}.controls-flipped .pad-actions{justify-content:flex-start}.fire-pad{justify-content:flex-end;gap:10px;height:100%;padding-bottom:0}.secondary-actions{gap:10px}.aim-hint{display:none}.stick-base{width:min(44vmin,56vh,210px);height:min(44vmin,56vh,210px)}.fire-btn{width:min(42vmin,54vh,188px);height:min(42vmin,54vh,188px);font-size:clamp(1.05rem,4.8vmin,1.35rem)}.block-btn{border-radius:18px;width:min(30vmin,36vh,128px);height:min(20vmin,24vh,84px);font-size:clamp(.95rem,3.6vmin,1.15rem)}.grenade-btn{border-radius:18px;width:min(30vmin,36vh,128px);height:min(20vmin,24vh,84px);font-size:clamp(.92rem,3.4vmin,1.1rem)}.ammo-pip{width:12px;height:8px}.shield-track{height:8px}.shield-label{font-size:.7rem}}.stick-knob{background:var(--bg-elevated);border:3px solid var(--accent);touch-action:none;border-radius:50%;width:42%;height:42%;margin-top:-21%;margin-left:-21%;position:absolute;top:50%;left:50%}.arena-stage{flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;max-width:960px;animation:.42s ease-out both stage-in;display:flex}.tv-page.in-match .arena-stage{box-sizing:border-box;flex:1;justify-content:stretch;gap:0;width:100%;max-width:none;height:100%;min-height:0;padding:clamp(10px,1.4vw,18px)}.tv-page.is-fullscreen .arena-stage{flex:1;justify-content:stretch;max-width:none;min-height:0}.tv-page.in-match.is-fullscreen .arena-stage{max-width:none;padding:clamp(8px,1.1vw,14px)}.arena-meta{flex-direction:column;flex-shrink:0;align-items:center;gap:8px;width:100%;display:flex}.tv-page.in-match .arena-meta{z-index:9;flex-direction:column;gap:8px;width:min(520px,100% - 32px);position:absolute;top:clamp(52px,8vh,72px);left:50%;transform:translate(-50%)}.arena-frame{border-radius:14px;width:100%;position:relative;overflow:hidden}.tv-page.in-match .arena-frame{border:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:#0c1018;border-radius:10px;flex:1;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex}.arena-canvas{border:1px solid var(--border);background:var(--bg);vertical-align:middle;border-radius:14px;width:100%;height:auto;display:block;box-shadow:0 12px 40px #00000047}.tv-page.in-match .arena-canvas{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:none;border:none;border-radius:8px}.tv-page.in-match.is-fullscreen .arena-canvas{width:100%;height:100%;max-height:100%}.arena-hud-chip{z-index:5;border:1px solid var(--border);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;background:#070a10b8;border-radius:8px;margin:0;padding:6px 10px;font-size:.75rem;position:absolute;top:12px;right:12px}.intermission-banner{z-index:30;pointer-events:none;background:#070a10b8;flex-direction:column;justify-content:center;align-items:center;gap:clamp(1rem,3vh,2rem);padding:clamp(1rem,3vw,2rem);animation:.28s ease-out banner-in;display:flex;position:fixed;inset:0}.intermission-timer{justify-items:center;gap:.15rem;display:grid}.intermission-label{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 22px #3de7ff66;margin:0;font-size:clamp(1.15rem,3vw,1.6rem);font-weight:700}.intermission-count{letter-spacing:-.06em;color:#f4f7ff;font-variant-numeric:tabular-nums;text-shadow:0 0 56px #3de7ff80,0 4px #0e121ad9;margin:0;font-size:clamp(5.5rem,16vw,10rem);font-weight:700;line-height:.9}.intermission-sub{color:var(--muted);margin:.45rem 0 0;font-size:clamp(1.05rem,2.4vw,1.35rem)}@keyframes banner-in{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.arena-frame.fx-shake{animation:.22s ease-out arena-shake}.arena-frame.fx-slow-mo,.demo-arena.fx-slow-mo{filter:saturate(1.18)contrast(1.08)hue-rotate(-4deg);animation:3.8s cubic-bezier(.22,.08,.25,1) both slow-mo-punch}@keyframes slow-mo-punch{0%{filter:saturate()contrast();transform:scale(1)}35%{filter:saturate(1.22)contrast(1.08);transform:scale(1.03)}75%{filter:saturate(1.32)contrast(1.12);transform:scale(1.07)}to{filter:saturate(1.28)contrast(1.1);transform:scale(1.08)}}.winner-reveal{flex-direction:column;align-items:center;gap:12px;width:min(100%,720px);margin-inline:auto;animation:.56s cubic-bezier(.2,1.2,.3,1) both winner-pop;display:flex}.winner-reveal-eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 22px #3de7ff80;margin:0;font-size:clamp(1rem,2.4vw,1.35rem);font-weight:800}.winner-reveal-card{text-align:center;border:2px solid color-mix(in srgb, var(--winner-color,var(--accent)) 70%, #fff 10%);background:radial-gradient(90% 120% at 50% 0%, color-mix(in srgb, var(--winner-color,var(--accent)) 42%, transparent), transparent 60%), #0a0e16e6;width:100%;box-shadow:0 0 0 7px color-mix(in srgb, var(--winner-color,var(--accent)) 16%, transparent), 0 22px 56px #00000080;border-radius:28px;flex-direction:column;align-items:center;gap:clamp(12px,2vw,18px);padding:clamp(18px,3vw,28px) clamp(20px,4vw,40px);display:flex}.winner-reveal-avatar{animation:1.8s ease-in-out infinite winner-avatar-pulse;position:relative}.winner-reveal-avatar:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--winner-color,var(--accent)) 45%, transparent), transparent 70%);z-index:0;border-radius:50%;position:absolute;inset:-14px}.winner-reveal-card .skin-avatar{z-index:1;box-shadow:0 0 0 4px color-mix(in srgb, var(--winner-color,var(--accent)) 60%, #fff 12%), 0 14px 36px #00000073;border-radius:50%;position:relative;width:168px!important;height:168px!important}.winner-reveal-copy{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.winner-reveal-name{letter-spacing:-.045em;color:#f4f7ff;text-shadow:0 4px #080a10bf;word-break:break-word;margin:0;font-size:clamp(2.6rem,8vw,5rem);font-weight:800;line-height:.92}.winner-reveal-skin{color:color-mix(in srgb, var(--winner-color,var(--accent)) 80%, #fff 20%);margin:0;font-size:clamp(1.05rem,2.5vw,1.35rem);font-weight:700}.winner-reveal-sub{color:var(--muted);margin:.25rem 0 0;font-size:clamp(1rem,2.1vw,1.2rem)}@keyframes winner-pop{0%{opacity:0;transform:translateY(22px)scale(.9)}to{opacity:1;transform:none}}@keyframes winner-avatar-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.demo-mvp-wrap .winner-reveal{width:min(100%,420px);margin-bottom:12px}.demo-mvp-wrap .winner-reveal-card .skin-avatar{width:96px!important;height:96px!important}.demo-mvp-wrap .winner-reveal-name{font-size:clamp(1.7rem,4.5vw,2.6rem)}@keyframes arena-shake{0%{transform:translate(0)}20%{transform:translate(-5px,2px)}40%{transform:translate(5px,-3px)}60%{transform:translate(-3px,1px)}80%{transform:translate(2px,-1px)}to{transform:translate(0)}}.kill-feed{z-index:5;pointer-events:none;gap:6px;max-width:min(420px,70%);margin:0;padding:0;list-style:none;display:grid;position:absolute;top:12px;left:12px}.kill-feed-item{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--text);letter-spacing:.01em;background:#070a10c7;border-radius:10px;padding:8px 12px;font-size:clamp(.85rem,1.6vw,1.05rem);font-weight:600;animation:.28s ease-out both kill-feed-in}.kill-feed-item.is-spicy{border-color:color-mix(in srgb, #ff9f43 60%, var(--border));color:#ffeaa7}.sudden-death-banner{z-index:6;pointer-events:none;background:#280808d1;border:1px solid #ff6b6ba6;border-radius:12px;justify-items:center;gap:2px;padding:10px 22px 12px;animation:1.1s ease-in-out infinite sd-pulse;display:grid;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 0 28px #e74c3c59}.sudden-death-banner span{letter-spacing:.2em;color:#ff6b6b;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:800}.sudden-death-banner small{letter-spacing:.06em;color:#ffeaa7;font-size:.75rem}.horde-wave-banner{z-index:6;pointer-events:none;background:#081820d1;border:1px solid #3de7ff8c;border-radius:12px;justify-items:center;gap:2px;padding:10px 22px 12px;animation:1.2s ease-in-out infinite horde-wave-pulse;display:grid;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 0 28px #3de7ff47}.horde-wave-banner span{letter-spacing:.18em;color:#3de7ff;font-size:clamp(1.05rem,2.8vw,1.5rem);font-weight:800}.horde-wave-banner small{letter-spacing:.06em;color:#ffeaa7;font-size:.75rem}@keyframes sd-pulse{50%{box-shadow:0 0 40px #ff6b6b8c}}@keyframes horde-wave-pulse{50%{box-shadow:0 0 36px #3de7ff73}}.round-mvp{border:1px solid var(--border);background:#0c1018e0;border-radius:14px;width:min(520px,92vw);padding:14px 16px}.round-mvp-heading{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;font-size:.8rem;font-weight:800}.round-mvp-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.round-mvp-row{grid-template-columns:14px 1fr auto;align-items:center;gap:10px;display:grid}.round-mvp-swatch{border-radius:4px;width:14px;height:14px}.round-mvp-copy{gap:1px;display:grid}.round-mvp-copy strong{font-size:1rem}.round-mvp-value{color:#ffeaa7;font-variant-numeric:tabular-nums;font-weight:700}.drink-prompt{text-align:center;background:radial-gradient(120% 140% at 50% 0,#be282d73,#0000 55%),linear-gradient(#1a0c10,#0c1018);border:2px solid #dc3c46a6;border-radius:18px;margin:14px 0;padding:22px 20px 20px;animation:.52s cubic-bezier(.2,1.2,.3,1) both drink-prompt-pop;box-shadow:0 12px 40px #00000073}.drink-prompt-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:#ff8a8a;margin:0;font-size:.78rem;font-weight:800}.drink-prompt-title{letter-spacing:-.03em;color:#fff5f5;margin:8px 0 6px;font-size:clamp(1.8rem,8vw,2.6rem);font-weight:800;line-height:1}.drink-prompt-brand{letter-spacing:.08em;text-transform:uppercase;color:#f5d76e;text-shadow:0 2px #2814008c;margin:0;font-size:clamp(1.35rem,5.5vw,1.85rem);font-weight:800}.drink-prompt-sub{color:#ffe6e6c7;margin:10px 0 0;font-size:.95rem}@keyframes drink-prompt-pop{0%{opacity:0;transform:translateY(16px)scale(.94)}to{opacity:1;transform:none}}.shame-crown-banner,.drink-table-banner{text-align:center;border-radius:12px;margin:0;padding:10px 16px;font-size:1.05rem}.shame-crown-banner{color:#ede9fe;background:#5b21b647;border:1px solid #a78bfa73}.drink-table-banner{color:#ffe4e4;background:#8c1e2852;border:1px solid #dc465073}.demo-mvp-wrap{z-index:5;pointer-events:none;width:min(420px,92%);position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@keyframes kill-feed-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}.arena-actions{flex-shrink:0;justify-content:center;gap:12px;display:flex}.rematch-panel{background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:12px;width:min(100%,520px);padding:12px 14px}.rematch-hint{text-align:center;max-width:28rem;margin:0}.rematch-hint strong{color:var(--accent)}.rematch-panel .roster{width:100%;max-width:360px}.rematch-buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.rematch-cta{width:min(100%,320px);padding:16px 28px;font-size:1.25rem}.result-line{color:var(--accent);font-size:1.4rem}.screen-fade{animation:.42s ease-out both screen-fade-in}@keyframes screen-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.arena-frame.fx-round-start:after,.arena-frame.fx-match-end:after{content:"";pointer-events:none;z-index:3;border-radius:inherit;position:absolute;inset:0}.arena-frame.fx-round-start:after{animation:.9s ease-out both round-start-flash}.arena-frame.fx-match-end:after{animation:1.4s ease-out both match-end-flash}@keyframes round-start-flash{0%{opacity:1;background:#3de7ff59}35%{opacity:1;background:#3de7ff1f}to{opacity:0;background:0 0}}@keyframes match-end-flash{0%{background:#070a1000}30%{background:#070a1073}to{background:#070a1033}}.fx-banner{z-index:4;pointer-events:none;letter-spacing:.12em;color:#f4f7ff;text-shadow:0 0 40px #3de7ff8c;place-content:center;font-weight:700;display:grid;position:absolute;inset:0}.fx-go{font-size:clamp(4rem,14vw,8rem);animation:.9s ease-out both go-pop}@keyframes go-pop{0%{opacity:0;transform:scale(1.35)}25%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}.scoreboard{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);text-align:left;width:100%;max-width:420px;padding:14px 16px}.scoreboard.compact{flex-wrap:wrap;align-items:center;gap:10px 16px;width:auto;max-width:none;padding:8px 12px;display:flex}.scoreboard.compact .scoreboard-head{flex-shrink:0;margin:0}.scoreboard.compact .score-list{flex-flow:wrap;gap:8px 14px}.scoreboard.compact .score-row{gap:6px}.scoreboard.compact .score-pts{margin-left:4px;font-size:1rem}.scoreboard.scoreboard-hero{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:#121824f0;border-radius:16px;width:min(720px,92vw);max-width:min(720px,92vw);padding:clamp(1.1rem,2.4vw,1.75rem) clamp(1.25rem,3vw,2rem);box-shadow:0 18px 60px #00000073}.scoreboard.scoreboard-hero .scoreboard-head{letter-spacing:.04em;text-transform:uppercase;margin-bottom:clamp(.75rem,1.5vh,1.1rem);font-size:clamp(1.15rem,2.4vw,1.55rem)}.scoreboard.scoreboard-hero .score-list{gap:clamp(.55rem,1.2vh,.85rem)}.scoreboard.scoreboard-hero .score-row{gap:12px;font-size:clamp(1.2rem,2.8vw,1.75rem)}.score-row.is-leader{background:linear-gradient(90deg,#f1c40f29,#f1c40f0a);border:1px solid #f1c40f73;border-radius:10px;margin:0 -8px;padding:4px 8px;box-shadow:0 0 24px #f1c40f1f}.scoreboard.scoreboard-hero .score-row.is-leader{background:linear-gradient(90deg,#f1c40f38,#f1c40f0f);border-color:#ffd666a6;box-shadow:0 0 32px #f1c40f2e}.leader-crown{color:#f1c40f;text-shadow:0 0 10px #f1c40fa6;font-size:1.05em;line-height:1;display:inline-block}.score-rank{text-align:center;min-width:1.4em}.scoreboard.scoreboard-hero .swatch{border-radius:6px;width:1.1em;height:1.1em}.scoreboard.scoreboard-hero .roster-name{font-weight:600}.scoreboard.scoreboard-hero .score-pts{font-variant-numeric:tabular-nums;font-size:clamp(1.45rem,3.4vw,2.15rem)}.spectate-page{justify-content:center}.scoreboard-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.score-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.score-row{align-items:center;gap:8px;display:flex}.score-pts{color:var(--accent);margin-left:auto;font-size:1.1rem}.map-label{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.8rem}@media (width<=980px){.tv-lobby{grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);max-width:720px}.tv-lobby .lobby-players{grid-column:1/-1}}@media (width<=800px){.tv-lobby{grid-template-columns:1fr;justify-items:center;max-width:440px}.tv-lobby .lobby-settings,.tv-lobby .lobby-players,.tv-lobby .lobby-side{width:100%;max-width:440px}.tv-lobby .lobby-players{grid-column:auto}.tv-lobby .lobby-players .roster{max-height:none}.tv-lobby .start-cta{align-self:stretch}.fullscreen-btn{position:static;transform:none}.fullscreen-btn:hover:not(:disabled){transform:translateY(-1px)}.tv-header-row{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.brand,.tv-lobby,.arena-stage,.qr-frame,.intermission-banner,.screen-fade,.fx-go,.arena-frame.fx-round-start:after,.arena-frame.fx-match-end:after,.arena-frame.fx-shake,.kill-feed-item,.ammo-pip.reload{animation:none}}.demo-cta{text-align:center;box-sizing:border-box;align-self:flex-start;width:100%;text-decoration:none}.demo-page{width:100%;max-width:none;height:100dvh;min-height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));box-sizing:border-box;text-align:left;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:8px;display:flex;overflow:hidden}.demo-topbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;min-height:0;display:flex}.demo-brand{align-items:baseline;gap:8px;margin:0;font-size:clamp(1.15rem,4.5vw,1.6rem);display:flex}.demo-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.55em;font-weight:700}.demo-header-actions{flex-shrink:0;gap:8px;display:flex}.demo-header-actions .cta{padding:7px 11px;font-size:.8rem;text-decoration:none}.demo-arena{flex:1.15 1 0;align-items:stretch;min-height:0;display:flex}.demo-arena.fx-shake{animation:.22s ease-out arena-shake}.demo-arena-frame{border:1px solid var(--border);background:#0c1018;border-radius:12px;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.demo-arena-frame .arena-canvas{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:none;border:none;border-radius:8px}.demo-round-banner{font-size:clamp(1.4rem,5vw,2.4rem)}.demo-controller{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.demo-controller .controller-shell.is-embedded{height:100%;min-height:0;padding:8px max(8px, env(safe-area-inset-right)) 8px max(8px, env(safe-area-inset-left))}.demo-controller .controller-bar{padding:4px 2px 8px}.demo-controller .controller-playfield{gap:8px 16px;padding-bottom:0}.demo-spectate{text-align:center;border:1px solid var(--border);background:var(--bg-elevated);border-radius:14px;flex:1;place-content:center;gap:12px;padding:16px;display:grid}.demo-tips{flex-shrink:0;gap:2px;padding:2px 2px 0;display:grid}.demo-hint{margin:0;font-size:.78rem;line-height:1.35}.demo-hint kbd{font:inherit;border:1px solid var(--border);background:var(--bg-elevated);border-radius:4px;padding:1px 5px;font-size:.9em}.demo-keys{opacity:.85}@media (width<=700px){.demo-page{height:100dvh;overflow:hidden}.demo-arena{flex:none;height:min(38dvh,23.625vw + 24px);max-height:40dvh}.demo-controller{flex:auto;min-height:240px}.demo-keys{display:none}}@media (width>=901px){.demo-arena{flex:1.35 1 0}.demo-controller{flex:.95 1 0;width:min(520px,100%);max-height:52dvh;margin-inline:auto}}.settings-modal{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06080cb8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.settings-dialog{border:1px solid var(--border);background:linear-gradient(165deg,#1a2130 0%,#12161f 100%);border-radius:16px;flex-direction:column;gap:12px;width:min(520px,100%);max-height:min(86vh,720px);padding:20px 22px 16px;display:flex;box-shadow:0 24px 64px #00000073}.settings-dialog-head .section-title{margin:0 0 4px}.settings-dialog-body{flex-direction:column;gap:14px;padding-right:4px;display:flex;overflow-y:auto}.settings-group{border:1px solid var(--border);background:#0c10188c;border-radius:12px;flex-direction:column;gap:10px;margin:0;padding:12px 14px;display:flex}.settings-group legend{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:0 6px;font-size:.75rem;font-weight:700}.settings-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) 3.2em;align-items:center;gap:10px;font-size:.95rem;display:grid}.settings-row input[type=range]{width:100%;accent-color:var(--accent)}.settings-row strong{text-align:right;font-variant-numeric:tabular-nums;color:var(--accent)}.settings-check{cursor:pointer;align-items:flex-start;gap:10px;font-size:.95rem;display:flex}.settings-check input{accent-color:var(--accent);margin-top:3px}.settings-note{margin:0}.settings-dialog-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:4px;display:flex}.settings-dialog-actions{gap:8px;margin-left:auto;display:flex}
