:root{--hud:#9fe8ff;--accent:#ff8a2a;--bg:#060c168c;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}html,body{height:100%;color:var(--hud);background:#05070c;margin:0;overflow:hidden}#app canvas{display:block}#hud{pointer-events:none;letter-spacing:.08em;font-size:12px;position:fixed;inset:0}#crosshair{background:var(--hud);opacity:.8;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 5px #9fe8ff26}#score{text-align:center;position:absolute;top:16px;left:50%;transform:translate(-50%)}#score .board{background:var(--bg);letter-spacing:.2em;border:1px solid #9fe8ff40;border-radius:6px;align-items:center;gap:12px;padding:8px 18px;font-size:14px;display:flex}#score b{color:#fff;font-size:26px}#score .blue{color:#5cc8ff}#score .orange{color:#ff9a3c}#team-hint{margin-top:6px;font-size:11px}#clock{letter-spacing:.25em;color:#fff;margin-top:6px;font-size:15px}#clock.urgent{color:#ff6a3a}#countdown{color:#fff;text-shadow:0 0 24px var(--hud);opacity:0;font-size:96px;position:absolute;top:34%;left:50%;transform:translate(-50%)}#countdown.show{opacity:1}#banner{text-align:center;opacity:0;transition:opacity .4s,transform .4s;position:absolute;top:40%;left:0;right:0;transform:scale(.9)}#banner.show{opacity:1;transition:opacity .1s,transform .25s cubic-bezier(.2,1.6,.4,1);transform:scale(1)}#banner-title{letter-spacing:.25em;text-shadow:0 0 28px;font-size:clamp(28px,6vw,64px);font-weight:700}#banner-sub{letter-spacing:.3em;color:#fff;margin-top:8px;font-size:16px}#endscreen{background:radial-gradient(#060c168c,#060c16d9);justify-content:center;align-items:center;padding:16px;animation:.5s ease-out end-in;display:flex;position:absolute;inset:0}#endscreen[hidden]{display:none}#endscreen .panel{text-align:center;width:min(720px,100%)}#endscreen .label{letter-spacing:.5em;opacity:.8;font-size:12px}#end-title{letter-spacing:.2em;text-shadow:0 0 32px;margin:10px 0 14px;font-size:clamp(32px,7vw,72px);font-weight:700}#endscreen .final{letter-spacing:.2em;align-items:center;gap:14px;font-size:14px;display:inline-flex}#endscreen .final b{color:#fff;font-size:40px}#endscreen .blue{color:#5cc8ff}#endscreen .orange{color:#ff9a3c}#endscreen .teams{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:26px 0 20px;display:grid}#endscreen table{border-collapse:collapse;background:var(--bg);border:1px solid #9fe8ff33;width:100%;font-size:13px}#endscreen th,#endscreen td{text-align:right;white-space:nowrap;padding:6px 10px}#endscreen th:first-child,#endscreen td:first-child{text-align:left}#endscreen th{letter-spacing:.2em;opacity:.7;border-bottom:1px solid #9fe8ff33;font-size:10px;font-weight:400}#endscreen caption{text-align:left;letter-spacing:.3em;padding-bottom:6px}#endscreen tr.me td{color:#fff;background:#9fe8ff1a}#endscreen .mvp{color:#ffd54a;letter-spacing:.15em;border:1px solid #ffd54a;border-radius:3px;margin-left:8px;padding:1px 6px;font-size:10px}#endscreen .empty td{text-align:center;opacity:.6}#end-next{letter-spacing:.25em;color:#fff;font-size:14px}#endscreen .leave{opacity:.6;margin-top:8px;font-size:11px}#hud.ended #banner,#hud.ended #crosshair,#hud.ended #bars,#hud.ended #help,#hud.ended #status,#hud.ended #score{display:none}@keyframes end-in{0%{opacity:0;transform:scale(1.04)}}#replay-tag{color:#ff4d4d;letter-spacing:.3em;border:1px solid #ff4d4d;border-radius:4px;padding:6px 12px;animation:1s steps(2,end) infinite blink;display:none;position:absolute;top:16px;right:16px}#hud.replay #replay-tag{display:block}#hud.replay #crosshair,#hud.replay #bars,#hud.replay #help,#hud.replay #status{display:none}@keyframes blink{50%{opacity:.4}}#hud.no-jetpacks .jet-only,#hud:not(.no-jetpacks) .no-jet{display:none}#help-battle{border-top:1px solid #9fe8ff33;margin-top:6px;padding-top:6px}#crosshair.cooling{opacity:.25;box-shadow:none}#paralysis{letter-spacing:.4em;color:#fff;text-shadow:0 0 14px #3fd0ff;opacity:0;background:radial-gradient(#0000 45%,#3fd0ff59 100%);flex-direction:column;align-items:center;gap:6px;padding-top:30vh;font-size:22px;transition:opacity .25s;display:flex;position:absolute;inset:0}#paralysis.active{opacity:1;animation:.12s steps(2,end) infinite crackle}#paralysis-time{opacity:.8;font-size:14px}@keyframes crackle{50%{filter:brightness(1.35)}}#status{background:var(--bg);border:1px solid #9fe8ff40;border-radius:6px;min-width:200px;padding:10px 14px;position:absolute;top:16px;left:16px}#status .row{justify-content:space-between;gap:16px;line-height:1.7;display:flex}.label{opacity:.6}#net.offline{color:#ff6b6b}#state.floating{color:var(--accent)}#bars{flex-direction:column;gap:8px;width:min(360px,80vw);display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.bar{align-items:center;gap:10px;display:flex}.bar .label{width:40px}.track{background:#9fe8ff1f;border:1px solid #9fe8ff4d;border-radius:4px;flex:1;height:8px;overflow:hidden}.fill{background:var(--hud);width:100%;height:100%;box-shadow:0 0 8px var(--hud)}#fuel-fill.low{background:#ff4d4d;box-shadow:0 0 8px #ff4d4d}#charge-bar,#throw-bar{opacity:0;transition:opacity .15s}#charge-bar.active,#throw-bar.active{opacity:1}#throw-bar:not(.active){display:none}#charge-fill,#throw-fill{background:var(--accent);box-shadow:0 0 8px var(--accent);width:0}#toast{letter-spacing:.3em;color:#fff;text-shadow:0 0 12px var(--hud);opacity:0;font-size:16px;transition:opacity .3s;position:absolute;top:30%;left:50%;transform:translate(-50%)}#toast.show{opacity:1;transition:none}#help{background:var(--bg);border:1px solid #9fe8ff40;border-radius:6px;padding:10px 14px;line-height:1.7;position:absolute;top:16px;right:16px}#help b{color:#fff;font-weight:600}#help.hidden{display:none}#overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#03060cb8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#overlay.hidden{display:none}#overlay .panel{text-align:center;background:#08101cd9;border:1px solid #9fe8ff4d;border-radius:10px;max-width:460px;padding:32px 36px;font-size:13px;line-height:1.6}#overlay h1{letter-spacing:.4em;color:#fff;text-shadow:0 0 18px var(--hud);margin:0;font-size:34px}#overlay .sub{color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin-top:4px}#overlay button{font:inherit;letter-spacing:.2em;color:#05070c;background:var(--hud);cursor:pointer;border:none;border-radius:6px;margin-top:12px;padding:10px 26px;font-size:14px}#overlay .hint{opacity:.5;font-size:11px}@media (width<=720px){#score{top:130px}#help{font-size:11px;top:auto;bottom:90px}}#overlay .hint a{color:inherit}body.menu-page{background:radial-gradient(at top,#0c1a2e 0%,#05070c 65%);font-size:13px;overflow:auto}#menu{flex-direction:column;gap:20px;max-width:560px;margin:0 auto;padding:48px 16px;display:flex}#menu header{text-align:center}#menu h1{letter-spacing:.4em;color:#fff;text-shadow:0 0 18px var(--hud);margin:0;font-size:34px}#menu .sub{color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin:4px 0 0}#menu .panel{background:#08101cd9;border:1px solid #9fe8ff4d;border-radius:10px;padding:20px 22px}#menu h2{letter-spacing:.25em;text-transform:uppercase;color:#fff;margin:0 0 14px;font-size:13px}#menu .panel-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}#menu .status{opacity:.7;font-size:11px}#menu .status.offline{color:#ff6b6b;opacity:1}#menu .error{color:#ff6b6b;margin:0 0 12px}#menu .empty{opacity:.6;margin:0}#games{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.game{background:#9fe8ff0a;border:1px solid #9fe8ff2e;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.game-info{flex-direction:column;gap:2px;min-width:0;display:flex}.game-name{color:#fff;overflow-wrap:anywhere}.game-name.locked:after{content:" 🔒";font-size:11px}.game-meta{opacity:.6;text-transform:uppercase;letter-spacing:.1em;font-size:11px}.join{gap:8px;display:flex}#menu input:not([type=radio]){font:inherit;color:#fff;background:#9fe8ff0f;border:1px solid #9fe8ff4d;border-radius:6px;min-width:0;padding:8px 10px}#menu input:focus{border-color:var(--hud);outline:none}.join input{width:140px}#menu button{font:inherit;letter-spacing:.15em;color:#05070c;background:var(--hud);cursor:pointer;border:none;border-radius:6px;padding:8px 18px}#create{flex-direction:column;gap:14px;display:flex}#create>label,#create fieldset{border:0;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}#create fieldset{flex-flow:wrap;align-items:center;gap:16px}#create fieldset .label{width:100%}#create .hint{opacity:.55;font-size:11px}#create .choice{cursor:pointer;align-items:center;gap:6px;display:flex}#create button{align-self:flex-start;padding:10px 26px;font-size:14px}
