.touch-controls{display:none}html[data-touch] .touch-controls{z-index:5;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block;position:fixed;inset:0}html[data-touch] #game{touch-action:none}.touch-cluster{pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute}.touch-cluster.left{left:calc(16px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom))}.touch-cluster.right{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom))}.touch-cluster.top-right{right:calc(12px + env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));align-items:flex-start}.touch-cluster.column{flex-direction:column;align-items:center}.touch-col{flex-direction:column;align-items:center;gap:12px;display:flex}.touch-row{align-items:center;gap:12px;display:flex}.touch-btn,.touch-rocker,.touch-stick{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent}.touch-btn{color:#fff;text-align:center;text-shadow:1px 1px #000;width:64px;height:64px;box-shadow:none;cursor:pointer;background:#0a0a1073;border:3px solid #ffffff8c;border-radius:50%;place-items:center;padding:0;font:11px/1.2 "Press Start 2P",monospace;display:grid}.touch-btn.big{width:84px;height:84px;font-size:13px}.touch-btn.small{border-width:2px;width:46px;height:46px;font-size:16px}.touch-btn.held{background:#ffcc338c;border-color:#fff;transform:scale(.94)}.touch-btn:active{transform:scale(.94)}.touch-btn.on{background:#ffcc3359;border-color:#fc3}.touch-rocker{color:#fff;background:#0a0a1073;border:3px solid #ffffff8c;border-radius:42px;grid-template-columns:1fr 1fr;width:180px;height:84px;font-size:30px;display:grid;position:relative;overflow:hidden}.touch-rocker span{text-shadow:1px 1px #000;place-items:center;display:grid}.touch-rocker[data-value=left] span:first-child,.touch-rocker[data-value=right] span:last-child{background:#ffcc3380}.touch-stick{width:160px;height:160px;position:relative}.touch-stick:before{content:"";background:#0a0a104d;border:3px solid #fff6;border-radius:50%;width:120px;height:120px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-knob{pointer-events:none;background:#ffffff40;border:3px solid #ffffffb3;border-radius:50%;width:56px;height:56px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-stick.held .touch-knob{background:#ffcc338c}.touch-rotate{display:none}@media (orientation:portrait){html[data-touch] .touch-rotate:not([hidden]){z-index:6;text-align:center;color:#fff;pointer-events:auto;background:#0a0a10d9;border:2px solid #ffffff80;gap:6px;max-width:calc(100vw - 32px);padding:12px 16px;font:10px/1.5 "Press Start 2P",monospace;display:grid;position:fixed;top:30%;left:50%;transform:translate(-50%)}}html[data-touch] .keyboard-only,html:not([data-touch]) .touch-only{display:none!important}@media (height<=420px){.touch-btn{width:56px;height:56px;font-size:10px}.touch-btn.big{width:72px;height:72px;font-size:11px}.touch-rocker{width:160px;height:72px}.touch-cluster,.touch-col,.touch-row{gap:10px}}:root{--surface-000:#161821;--surface-050:#101218;--surface-100:#282a33;--ink:#fff;--ink-muted:#a9b0c2;--line:#30363c;--ice-500:#00acd8;--ice-300:#66cde8;--ice-700:#00728f;--navy-800:#132b4e;--night-900:#161821;--gold-400:#f5c451;--berry-500:#e2475a;--grad-blue:linear-gradient(90deg, #00728f, #00acd8);--tint-ice-12:#66cde81f;--tint-ice-25:#66cde840;--tint-glass:#1618219e;--tint-glass-strong:#101218d1;--tint-ink-10:#ffffff1a;--tint-ink-18:#ffffff2e;--font-display:Outfit, "Segoe UI", Arial, sans-serif;--font-body:Figtree, "Segoe UI", Arial, sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-pill:28px;--shadow-glow:0 0 0 3px #00acd873;--shadow-lift:0 12px 40px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--surface-000);height:100%;color:var(--ink);font-family:var(--font-body);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow:hidden}#game{width:100vw;height:100vh;display:block;position:fixed;inset:0}#hud{pointer-events:none;font-family:var(--font-display);text-shadow:0 1px 8px #00000059;position:fixed;inset:0}.hud-top-left,#feed li,.hud-bottom,#scoreboard{background:var(--tint-glass);border:1px solid var(--tint-ink-10);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);box-shadow:0 6px 24px #00000040}#crosshair{background:#fff;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1.5px #00000059,0 0 10px #fff9}#power{background:conic-gradient(var(--ice-300) 0deg, var(--gold-400) var(--charge,0deg), #ffffff2e 0);filter:drop-shadow(0 0 6px #f5c45180);border-radius:50%;width:48px;height:48px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask:radial-gradient(circle,#0000 18px,#000 19px);mask:radial-gradient(circle,#0000 18px,#000 19px)}#popup{letter-spacing:.02em;color:var(--gold-400);opacity:0;font-size:22px;font-weight:800;position:absolute;top:41%;left:50%;transform:translate(-50%)}#popup.show{animation:.9s cubic-bezier(.2,.8,.3,1.2) forwards pop}@keyframes pop{0%{opacity:0;transform:translate(-50%,10px)scale(1.4)}15%{opacity:1;transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-18px)}}#frost{opacity:0;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:radial-gradient(#0000 35%,#aae1fa80 70%,#e6f8ffeb);transition:opacity .35s;position:absolute;inset:0}#frost.on{opacity:1}.hud-top-left{top:calc(16px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));border-radius:var(--radius-md);gap:2px;min-width:150px;padding:10px 16px 12px;display:grid;position:absolute}#score{letter-spacing:.02em;text-transform:uppercase;font-size:15px;font-weight:700}#timer{color:var(--ice-300);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1.1}#timer.low{color:var(--berry-500)}#mode-name{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:600}#feed{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));font-family:var(--font-body);justify-items:end;gap:6px;margin:0;padding:0;font-size:14px;font-weight:600;list-style:none;display:grid;position:absolute}#feed li{border-radius:var(--radius-pill);padding:5px 12px;animation:.25s ease-out slide-in}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}}.hud-centre{text-align:center;position:absolute;top:26%;left:0;right:0}#message{letter-spacing:.02em;text-transform:uppercase;color:#fff;text-shadow:0 4px 30px #00728f99,0 2px 6px #0006;font-size:clamp(36px,7vw,72px);font-weight:800;line-height:1}#sub-message{font-family:var(--font-body);color:var(--ice-300);margin-top:12px;font-size:clamp(14px,1.8vw,18px);font-weight:600}.hud-bottom{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));border-radius:var(--radius-pill);justify-items:center;gap:8px;padding:10px 18px;display:grid;position:absolute;transform:translate(-50%)}#ammo{gap:8px;display:flex}#ammo .ball{background:radial-gradient(circle at 35% 30%,#fff,#d6e8f5 60%,#a9c6dc);border-radius:50%;width:20px;height:20px;transition:transform .15s;box-shadow:0 2px 6px #0000004d}#ammo .ball.empty{background:0 0;box-shadow:inset 0 0 0 1.5px #ffffff59}#ammo.out .ball.empty{animation:.9s ease-in-out infinite blink}@keyframes blink{50%{box-shadow:inset 0 0 0 1.5px var(--gold-400), 0 0 10px #f5c45180}}#chill{gap:6px;font-family:Segoe UI Symbol,sans-serif;font-size:18px;line-height:1;display:flex}#chill .flake{color:#ffffff38;transition:color .2s,text-shadow .2s}#chill .flake.on{color:var(--ice-300);text-shadow:0 0 8px var(--ice-500)}#scoop-bar{background:#ffffff2e;border-radius:3px;width:140px;height:6px;overflow:hidden}#scoop-fill{background:var(--grad-blue);transform-origin:0;height:100%;transform:scaleX(0)}#scoreboard{border-radius:var(--radius-lg);background:var(--tint-glass-strong);min-width:min(520px,92vw);text-shadow:none;padding:20px 22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#scoreboard h2{text-transform:uppercase;color:var(--ice-300);text-align:center;margin:0 0 12px;font-size:22px;font-weight:700}#scoreboard table{border-collapse:collapse;width:100%;font-family:var(--font-body);font-size:16px}#scoreboard th{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);text-align:left;border-bottom:1px solid var(--tint-ink-10);padding:4px 8px 8px;font-size:11px;font-weight:600}#scoreboard td{padding:7px 8px;font-weight:600}#scoreboard td:first-child,#scoreboard td:last-child{font-family:var(--font-display);font-variant-numeric:tabular-nums}#scoreboard td:last-child,#scoreboard th:last-child{text-align:right}#scoreboard tr.me td{background:var(--tint-ice-12)}#scoreboard tr.me td:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}#scoreboard tr.me td:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.touch-btn,.touch-stick:before,.touch-knob{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#16182173;border-width:1.5px;border-color:#ffffff59}.touch-btn{font:700 13px var(--font-display);letter-spacing:.04em;text-transform:uppercase;text-shadow:none}.touch-btn.big{font-size:15px}.touch-btn.small{font-size:16px}.touch-btn.throw{border-color:var(--ice-300);background:#00728f73}.touch-btn.held,.touch-stick.held .touch-knob{background:#66cde88c;border-color:#fff}.touch-knob{background:#ffffff4d}.touch-rotate{border-radius:var(--radius-md);font:600 14px/1.4 var(--font-body)!important;border-width:1px!important}.touch-hint{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));font:600 12px var(--font-body);color:#ffffffb3;white-space:nowrap;margin:0;position:absolute;transform:translate(-50%)}html[data-touch] #feed{top:calc(70px + env(safe-area-inset-top))}.overlay{padding:max(24px, env(safe-area-inset-top)) 16px 32px;-webkit-user-select:text;user-select:text;background:radial-gradient(80% 60% at 50% 0,#00acd838,#0000 70%),radial-gradient(60% 50% at 100% 100%,#132b4ee6,#0000 70%),linear-gradient(#132b4e 0%,#161821 70%);place-items:start center;display:grid;position:fixed;inset:0;overflow-y:auto}#paused,#fatal{-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);background:#1012188c;place-items:center}.panel{gap:16px;width:min(520px,100%);animation:.4s cubic-bezier(.2,.8,.3,1) both rise;display:grid}.panel.narrow{width:min(400px,100%)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.brand{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:12px;font-size:13px;display:flex}.brand img{width:auto;height:28px;display:block}.brand span{border-left:1px solid var(--line);padding-left:12px}.intro{gap:8px;padding:8px 0 4px;display:grid}.eyebrow{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--ice-300);margin:0;font-size:13px;font-weight:700}h1,h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:0;font-weight:400;line-height:1.05}h1 strong,h2 strong{color:var(--ice-300);font-weight:700}h1{font-size:clamp(38px,9vw,56px)}h2{font-size:32px}.lede{color:var(--ink-muted);margin:0;font-size:17px;line-height:26px}.card{border-radius:var(--radius-lg);border:1px solid var(--tint-ink-10);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#282a338c;gap:14px;padding:18px;display:grid}.card-title{letter-spacing:.04em;font-size:17px;font-weight:700}.card:empty{display:none}.live{border-radius:var(--radius-pill);background:var(--tint-ice-12);border:1px solid var(--tint-ice-25);align-items:center;gap:10px;padding:10px 16px;font-size:15px;font-weight:600;display:flex}.live-dot{background:var(--ink-muted);border-radius:50%;flex:none;width:9px;height:9px}.live.on .live-dot{background:#4ade80;animation:1.8s infinite pulse;box-shadow:0 0 #4ade8099}@keyframes pulse{70%{box-shadow:0 0 0 8px #4ade8000}to{box-shadow:0 0 #4ade8000}}form{gap:16px;display:grid}.field{gap:8px;display:grid}.field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600}input:not([type]),input[type=text]{width:100%;min-height:48px;font:600 17px var(--font-body);color:var(--ink);background:var(--surface-050);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 14px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:#5e6475}input:focus-visible{border-color:var(--ice-500);box-shadow:var(--shadow-glow);outline:none}input[type=range]{width:100%;accent-color:var(--ice-500)}.hint{color:var(--ink-muted);margin:0;font-size:14px;line-height:20px}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:36px;height:36px;padding:0;transition:transform .12s,box-shadow .15s;box-shadow:inset 0 -3px #0000002e}.swatch:hover{transform:scale(1.08)}.swatch[aria-pressed=true]{border-color:var(--surface-000);transform:scale(1.08);box-shadow:0 0 0 2px #fff,0 4px 14px #00000059}.swatch:focus-visible{box-shadow:var(--shadow-glow);outline:none}.btn{min-height:48px;font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;color:#fff;background:var(--grad-blue);border-radius:var(--radius-pill);cursor:pointer;border:none;justify-content:center;align-items:center;padding:12px 28px;font-size:17px;font-weight:700;transition:transform .12s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 6px 20px #00acd84d}.btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 28px #00acd866}.btn:active{transform:translateY(0)}.btn:focus-visible{box-shadow:var(--shadow-glow);outline:none}.btn:disabled{opacity:.65;cursor:wait;transform:none}.btn.big{min-height:56px;font-size:19px}.btn.ghost{color:var(--ink);border:1px solid var(--line);box-shadow:none;background:0 0}.btn.ghost:hover{border-color:var(--ice-300);color:var(--ice-300)}.error{color:#ff8a96;margin:0;font-size:14px}.error:empty{display:none}details.card{gap:0}details.card[open]{gap:14px}summary{cursor:pointer;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:17px;font-weight:700;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--ink-muted);font-size:22px;font-weight:400;transition:transform .2s}details[open] summary:after{transform:rotate(45deg)}.controls{grid-template-columns:auto 1fr;align-items:baseline;gap:10px 14px;margin:0;font-size:15px;line-height:22px;display:grid}.controls dt{flex-wrap:wrap;gap:4px;display:flex}.controls dd{color:var(--ink-muted);margin:0}kbd{min-width:26px;font-family:var(--font-display);letter-spacing:.04em;text-align:center;text-transform:uppercase;color:var(--ink);background:var(--surface-100);border:1px solid var(--line);border-radius:var(--radius-sm);white-space:nowrap;border-bottom-width:2px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.back{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);justify-self:start;font-size:13px;font-weight:700;text-decoration:none;transition:color .15s}.back:hover{color:var(--ice-300)}@media (width<=640px){.hud-top-left{min-width:0;padding:8px 12px}#score{font-size:12px}#timer{font-size:24px}.controls{grid-template-columns:1fr;gap:2px}.controls dd{margin-bottom:8px}}.lobby-main{align-content:start;gap:16px;display:grid}.lobby-side{align-content:start}@media (width>=900px){.panel.lobby{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;column-gap:28px;width:min(960px,100%)}.lobby>.brand,.lobby>.back{grid-column:1/-1}.lobby-side{margin-top:8px;position:sticky;top:0}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#score{gap:3px;min-width:170px;display:grid}#score:after{content:attr(data-limit);font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-size:10px;font-weight:600}#score .team{grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:14px;display:grid}#score .team .dot{border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 2px #ffffff26}#score .team .name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}#score .team .points{font-variant-numeric:tabular-nums}#score .team.mine .name{color:var(--ice-300)}#score .team.mine .dot{box-shadow:0 0 0 2px #fff}#chill .flake.part{color:var(--ice-300);opacity:calc(.3 + var(--fill,.5) * .7)}#weapon{letter-spacing:.06em;text-transform:uppercase;justify-items:center;gap:4px;font-size:13px;font-weight:700;display:grid}#weapon[data-weapon=blaster]{color:var(--ice-300)}#weapon[data-weapon=cannon]{color:var(--gold-400)}.weapon-bar{background:#ffffff2e;border-radius:2px;width:140px;height:4px;display:block;overflow:hidden}#weapon-fill{transform-origin:0;background:currentColor;height:100%;transition:transform .1s;display:block}.team-picker{gap:8px;display:grid}.team-option{text-align:left;width:100%;font:inherit;color:var(--ink);background:var(--surface-050);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:12px;padding:10px 14px;transition:border-color .15s,background-color .15s;display:flex}.team-option:hover:not(:disabled){border-color:var(--ice-700)}.team-option:focus-visible{box-shadow:var(--shadow-glow);outline:none}.team-option[aria-checked=true]{border-color:var(--ice-500);background:var(--tint-ice-12)}.team-option:disabled{opacity:.5;cursor:not-allowed}.team-dot{background:conic-gradient(#d8453b 0 25%, #3b7fd8 0 50%, #3cb86a 0 75%, #e8b23a 0);border-radius:50%;flex:none;width:14px;height:14px;box-shadow:0 0 0 2px #ffffff1f}.team-option.new .team-dot{box-shadow:inset 0 0 0 2px var(--ink-muted);background:0 0}.team-option[aria-checked=true] .team-dot{box-shadow:0 0 0 2px #fff}.team-text{min-width:0;display:grid}.team-text strong{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.team-text small{color:var(--ink-muted);font-size:13px}.new-team{display:block}.card-subtitle{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:6px 0 0;font-size:15px;font-weight:700}.pickup-chip{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:var(--radius-pill);padding:1px 10px;font-size:12px;font-weight:700;display:inline-block}.pickup-chip.blaster{color:var(--night-900);background:var(--ice-300)}.pickup-chip.cannon{color:var(--night-900);background:var(--gold-400)}h3.card-title{font-family:var(--font-display);text-transform:uppercase;margin:0}#prompt{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:var(--night-900);background:var(--ice-300);border-radius:var(--radius-pill);text-shadow:none;padding:6px 14px;font-size:14px;font-weight:700;animation:.2s ease-out prompt-in;position:absolute;top:calc(50% + 40px);left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00acd859}@keyframes prompt-in{0%{opacity:0;transform:translate(-50%,6px)}}#flight{letter-spacing:.06em;text-transform:uppercase;color:var(--ice-300);justify-items:center;gap:5px;font-size:13px;font-weight:700;display:grid}#bombs{letter-spacing:.12em}.fuel-bar{background:#ffffff2e;border-radius:3px;width:180px;height:6px;display:block;overflow:hidden}#fuel-fill{background:var(--grad-blue);transform-origin:0;height:100%;transition:transform .2s linear;display:block}#flight.low #fuel-fill{background:var(--berry-500);animation:.6s ease-in-out infinite alternate blink-fuel}@keyframes blink-fuel{to{opacity:.45}}.pickup-chip.plane{color:#fff;background:var(--ice-700)}#ammo{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:16px;font-weight:700}#ammo .count{min-width:2ch}#ammo.out .count{letter-spacing:.05em;text-transform:uppercase;color:var(--gold-400);font-size:13px}#ammo .ammo-bar{background:#ffffff2e;border-radius:3px;width:110px;height:5px;display:block;overflow:hidden}#ammo .ammo-bar span{transform-origin:0;background:#fff;height:100%;transition:transform .15s;display:block}#ammo.low .ammo-bar span{background:var(--gold-400)}#ammo.out .ammo-bar{display:none}#scoop-bar{width:160px}.pickup-chip.cart{color:#fff;background:var(--berry-500)}
