:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent:#ff3b3b;--accent2:#7f5cff;--gold:#ffb300;--ink:#e8eaf6;--panel:#10131f;--line:#2a3148}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;background:#07080f;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}#app{position:fixed;inset:0}canvas{display:block}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #fff}.hud{pointer-events:none;position:fixed;inset:0}.hud.away{visibility:hidden}.hud .crosshair{width:24px;height:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hud .crosshair:before,.hud .crosshair:after{content:"";background:#e8ffe8;position:absolute;box-shadow:0 0 2px #000}.hud .crosshair:before{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.hud .crosshair:after{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.hud .crosshair .dot{background:#07080f;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hud .hitmarker{opacity:0;width:30px;height:30px;transition:opacity .25s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.hud .hitmarker.show{opacity:1;transition:none}.hud .hitmarker.head{filter:drop-shadow(0 0 4px var(--accent))}.hud .hitmarker span{background:#fff;position:absolute}.hud .hitmarker span:first-child{width:9px;height:2px;top:50%;left:0}.hud .hitmarker span:nth-child(2){width:9px;height:2px;top:50%;right:0}.hud .hitmarker span:nth-child(3){width:2px;height:9px;top:0;left:50%}.hud .hitmarker span:nth-child(4){width:2px;height:9px;bottom:0;left:50%}.hud .vignette{transition:box-shadow .5s;position:absolute;inset:0;box-shadow:inset 0 0 160px #f000}.hud .vignette.low{animation:.85s ease-in-out infinite lowpulse}.hud .vignette.hurt{transition:none;animation:none;box-shadow:inset 0 0 160px #ff0000bf}.hud .bottom-left{text-shadow:0 2px 6px #000;align-items:baseline;gap:18px;font-size:42px;font-weight:800;display:flex;position:absolute;bottom:20px;left:24px}.hud .bottom-left .hp.low{color:var(--accent);animation:.8s infinite pulse}.hud .bottom-left small{opacity:.7;letter-spacing:.1em;font-size:14px;font-weight:600}.hud .bottom-right{text-align:right;text-shadow:0 2px 6px #000;position:absolute;bottom:20px;right:24px}.hud .bottom-right .ammo{font-size:42px;font-weight:800}.hud .bottom-right .ammo span{opacity:.7;font-size:20px}.hud .bottom-right .wname{letter-spacing:.15em;text-transform:uppercase;opacity:.8;font-size:14px}.hud .bottom-right .reloading{color:var(--gold);letter-spacing:.1em;font-size:14px}.hud .top{text-align:center;text-shadow:0 2px 6px #000;position:absolute;top:14px;left:50%;transform:translate(-50%)}.hud .top .timer{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.hud .top .phase{letter-spacing:.2em;text-transform:uppercase;opacity:.8;font-size:12px}.hud .top .teams{justify-content:center;gap:24px;font-size:20px;font-weight:800;display:flex}.hud .top .teams .t0{color:var(--accent2)}.hud .top .teams .t1{color:var(--gold)}.hud .streak{letter-spacing:.14em;color:#ffc42e;text-shadow:0 2px #000;opacity:0;background:#000000b8;border-radius:8px;padding:6px 16px;font-size:32px;font-weight:900;position:absolute;top:16%;left:50%;transform:translate(-50%)}.hud .streak.show{animation:1.7s forwards streak-in}.hud .killfeed{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:14px;right:18px}.hud .killfeed div{background:#0000008c;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:14px;font-weight:600;animation:6s forwards fade;display:flex}.hud .killfeed .me{outline:1px solid var(--accent)}.hud .killfeed .hs-row{box-shadow:inset 0 0 0 1px #ff3b3ba6}.hud .killfeed .who{text-shadow:0 1px 2px #000}.hud .killfeed .gun{color:#d5efe0;align-items:center;gap:4px;display:inline-flex}.hud .killfeed .gun.hs{color:var(--accent)}.hud .killfeed .gun em{letter-spacing:.08em;background:var(--accent);color:#fff;border-radius:3px;padding:1px 4px;font-size:10px;font-style:normal;font-weight:900}.hud .killfeed .wicon{width:22px;height:22px;display:block}.hud .center{text-align:center;text-shadow:0 2px 8px #000;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.hud .center .big{letter-spacing:.05em;font-size:48px;font-weight:900}.hud .center .sub{opacity:.85;margin-top:6px;font-size:18px}.hud .chatlog{text-shadow:0 1px 4px #000;flex-direction:column;gap:3px;max-width:40vw;font-size:14px;display:flex;position:absolute;top:50%;left:20px}.hud .chatlog div{animation:10s forwards fade}.hud .chatlog b{color:var(--gold)}.hud .chatbox{pointer-events:auto;display:none;position:absolute;top:calc(50% + 120px);left:20px}.hud .chatbox.open{display:block}.hud .chatbox input{color:#fff;background:#000000b3;border:1px solid #555;border-radius:6px;outline:none;width:360px;padding:8px 12px;font-size:15px}.hud .status{opacity:.6;letter-spacing:.1em;text-transform:uppercase;font-size:12px;position:absolute;top:14px;left:20px}.scoreboard{border:1px solid var(--line);pointer-events:none;z-index:20;background:#080a12f0;border-radius:12px;min-width:min(560px,94vw);padding:16px 20px 12px;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 50px #000a}.scoreboard.show{display:block}.scoreboard h2{letter-spacing:.14em;text-align:center;margin:0;font-size:18px}.scoreboard .tscores{justify-content:center;gap:28px;margin-top:6px;font-size:18px;font-weight:800;display:flex}.scoreboard .tscores .t0{color:var(--accent2)}.scoreboard .tscores .t1{color:var(--gold)}.scoreboard .podium{border-bottom:2px solid #334;justify-content:center;align-items:flex-end;gap:12px;min-height:128px;margin:12px 0 8px;display:flex}.scoreboard .pod{flex-direction:column;justify-content:flex-end;align-items:center;width:112px;display:flex}.scoreboard .pod i{background:var(--c);width:100%;box-shadow:inset 0 4px 0 var(--team);border-radius:6px 6px 0 0;display:block}.scoreboard .pod.p1 i{height:78px}.scoreboard .pod.p2 i{height:52px}.scoreboard .pod.p3 i{height:34px}.scoreboard .pod .pname{text-overflow:ellipsis;white-space:nowrap;max-width:108px;font-size:14px;font-weight:800;overflow:hidden}.scoreboard .pod .pk{opacity:.75;font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:11px}.scoreboard .pod .mvp,.scoreboard .pod .place{letter-spacing:.12em;margin-bottom:3px;font-size:10px;font-weight:900}.scoreboard .pod .mvp{color:#1a1200;background:var(--gold);border-radius:999px;padding:1px 6px}.scoreboard .pod .place{opacity:.55}.scoreboard table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.scoreboard th,.scoreboard td{text-align:left;padding:6px 8px}.scoreboard th{letter-spacing:.15em;text-transform:uppercase;opacity:.6;font-size:11px}.scoreboard td.num,.scoreboard th.num{text-align:right}.scoreboard tr.me td{background:#ff3b3b26}.scoreboard tr.t1 td:first-child{border-left:3px solid var(--gold)}.scoreboard tr.t0 td:first-child{border-left:3px solid var(--accent2)}.scoreboard .pip{border-radius:2px;width:8px;height:8px;margin-right:8px;display:inline-block}.scoreboard .pip.t0{background:var(--accent2)}.scoreboard .pip.t1{background:var(--gold)}.scoreboard .nm.t0{color:#d2c6ff}.scoreboard .nm.t1{color:#ffd56a}.scoreboard .tag{letter-spacing:.08em;vertical-align:1px;border-radius:3px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:800}.scoreboard .tag.mvp{background:var(--gold);color:#1a1200}.scoreboard .tag.bot{color:#9eb4c8;background:#243044}.scoreboard .tag.dead{color:#c08080}.join{z-index:40;background:radial-gradient(at 50% 18%,#1a2348 0%,#07080f 68%);grid-template:"brand brand""stage card"minmax(0,1fr)"howto howto"/minmax(280px,400px) minmax(340px,440px);justify-content:center;align-items:stretch;gap:8px 16px;padding:12px 18px 10px;display:grid;position:fixed;inset:0;overflow:auto}.join .touch{color:#ffd0c8;border:1px solid var(--accent);z-index:2;background:#3a120f;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;position:absolute;top:8px;left:50%;transform:translate(-50%)}.join .brand{text-align:center;grid-area:brand}.join h1{letter-spacing:.12em;color:#fff;text-shadow:0 0 22px #ff3b3b73;margin:0;font-size:40px;font-weight:900}.join h1 span{color:var(--accent)}.join .tag{opacity:.65;letter-spacing:.16em;text-transform:uppercase;margin:2px 0 0;font-size:12px}.join .stage{border:1px solid var(--line);background:radial-gradient(circle at 50% 78%,#2a241c 0%,#12162a 46%,#0b0e18 78%);border-radius:16px;grid-area:stage;min-height:220px;position:relative;overflow:hidden}.join .stage canvas{width:100%;height:100%}.join .stage:before,.join .stage:after{content:"";border:2px solid var(--accent);pointer-events:none;width:18px;height:18px;position:absolute}.join .stage:before{border-bottom:0;border-right:0;top:10px;left:10px}.join .stage:after{border-top:0;border-left:0;bottom:10px;right:10px}.join .who{text-align:center;background:linear-gradient(#0000,#000000b8);padding:22px 12px 10px;position:absolute;bottom:0;left:0;right:0}.join .who b{letter-spacing:.06em;font-size:16px;display:block}.join .who small{opacity:.75;margin-top:2px;font-size:12px;display:block}.join .card{border:1px solid var(--line);background:#0a0c16e6;border-radius:16px;grid-area:card;padding:12px 16px 14px;overflow:auto;box-shadow:0 16px 40px #0008}.join label{letter-spacing:.14em;text-transform:uppercase;opacity:.65;margin:8px 0 4px;font-size:11px;display:block}.join input[type=text]{color:#fff;background:#0c101c;border:1px solid #334;border-radius:8px;outline:none;width:100%;padding:8px 10px;font-size:16px}.join input[type=text]:focus{border-color:var(--accent)}.join #room{letter-spacing:.14em;text-align:center;text-transform:lowercase;padding:8px 10px;font-size:26px;font-weight:800}.join .invite{text-align:center;letter-spacing:.02em;opacity:.55;margin:4px 0 0;font-size:12px}.join .skins{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.join .skin{cursor:pointer;text-align:left;color:#fff;border:2px solid #223;border-left-width:5px;border-left-color:var(--skin,#445);background:#0c101c;border-radius:8px;padding:7px 8px}.join .skin:hover{border-color:#556;border-left-color:var(--skin,#445)}.join .skin.sel{border-color:var(--skin,var(--accent));box-shadow:0 0 0 1px var(--skin,var(--accent))}.join .skin b{font-size:13px;display:block}.join .weapons{gap:6px;display:flex}.join .weapon{cursor:pointer;color:#fff;background:#0c101c;border:2px solid #223;border-radius:8px;flex:1;padding:8px 6px;font-size:14px;font-weight:800}.join .weapon.sel{border-color:var(--gold);color:var(--gold)}.join .room-actions{gap:6px;margin-top:6px;display:flex}.join .room-actions button,.join .chip{color:#fff;cursor:pointer;background:#182033;border:1px solid #334;border-radius:8px}.join .room-actions button{flex:1;padding:7px 8px;font-size:13px;font-weight:700}.join .room-actions button:hover,.join .chip:hover{border-color:#778}.join .recent{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.join .recent[hidden]{display:none}.join .chip{letter-spacing:.04em;padding:3px 8px;font-size:12px}.join .chip.sel{border-color:var(--accent);color:#fff}.join button.go{letter-spacing:.18em;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:10px;padding:11px;font-size:18px;font-weight:900}.join button.go:hover{filter:brightness(1.08)}.join .howto{text-align:center;opacity:.72;letter-spacing:.02em;grid-area:howto;font-size:12px}.join .howto kbd,.paused kbd{background:#1c2438;border:1px solid #3a4460;border-radius:4px;padding:0 5px;font-family:inherit;font-size:11px}.paused{z-index:30;background:#04060cd6;place-items:center;padding:16px;display:none;position:fixed;inset:0}.paused.show{display:grid}.paused .card{text-align:left;border:1px solid var(--line);background:#0a0c16f0;border-radius:16px;width:min(760px,96vw);max-height:calc(100vh - 28px);padding:16px 18px 14px;overflow:auto;box-shadow:0 20px 50px #000c}.paused h2{letter-spacing:.16em;text-align:center;margin:0;font-size:28px}.paused p{opacity:.7;text-align:center;margin:4px 0 12px;font-size:14px}.paused .menu{grid-template-columns:1.15fr .85fr;gap:16px 22px;display:grid}.paused .stack{flex-direction:column;gap:8px;display:flex}.paused .stack>label{letter-spacing:.12em;text-transform:uppercase;grid-template-columns:72px 42px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.paused .stack>label b{font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;font-size:13px}.paused .stack>label.check{text-transform:none;letter-spacing:.04em;grid-template-columns:auto 1fr;font-size:14px}.paused .stack>label.mode,.paused .stack>label.gfx{grid-template-columns:72px 1fr}.paused input[type=range]{width:100%;accent-color:var(--accent)}.paused select{color:#fff;background:#0c101c;border:1px solid #334;border-radius:8px;width:100%;padding:7px 8px}.paused .bots{letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;display:flex}.paused .bots b{text-align:center;letter-spacing:0;min-width:1.2em;font-size:18px}.paused button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:800}.paused button.alt{background:#1c2438;border:1px solid #334}.paused button.restart{width:100%}.paused .actions{justify-content:center;gap:8px;margin-top:12px;display:flex}.paused .actions button{letter-spacing:.08em;padding:10px 22px;font-size:16px}.paused .cheatsheet{border:1px solid var(--line);background:#0c101c;border-radius:10px;grid-template-columns:1fr 1fr;gap:5px 10px;margin:0;padding:8px 10px;font-size:12px;list-style:none;display:grid}.paused .cheatsheet li{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.paused .cheatsheet kbd{margin-right:1px}@media (width<=760px){.join{grid-template-columns:minmax(0,520px);grid-template-areas:"brand""stage""card""howto"}.join .stage{height:200px;min-height:180px}.paused .menu{grid-template-columns:1fr}}@media (height<=700px){.join h1{font-size:30px}.join .card{padding:8px 12px 10px}.join label{margin:6px 0 3px}.join button.go{margin-top:8px;padding:8px}.join .skin{padding:5px 6px}.paused h2{font-size:22px}}@keyframes fade{0%,75%{opacity:1}to{opacity:0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes lowpulse{0%,to{box-shadow:inset 0 0 90px #96000061}50%{box-shadow:inset 0 0 170px #ff1e1eb8}}@keyframes streak-in{0%{opacity:0;transform:translate(-50%)scale(1.35)}10%{opacity:1;transform:translate(-50%)scale(1)}72%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(1)}}.build{opacity:.35;font-size:10px;position:fixed;bottom:4px;right:8px}
