:root{--bg:#05070f;--ink:#f4efe6;--muted:#9aa6c7;--panel:#0a0e1ed1;--line:#a0b4ff2e;--hot:#ff9a1f;--hot2:#ff3f6c;--gold:#ffd34d;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#stage{touch-action:none;position:absolute;inset:0}#stage canvas{width:100%;height:100%;display:block}.hidden{display:none!important}#labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.name-tag{letter-spacing:.02em;text-shadow:0 0 6px #000,0 1px 2px #000;white-space:nowrap;will-change:transform;font-size:13px;font-weight:700;position:absolute;top:0;left:0}#vignette{pointer-events:none;background:radial-gradient(#0000 55%,#00020c99 100%);position:absolute;inset:0}#hurt{pointer-events:none;opacity:0;background:radial-gradient(#0000 40%,#ff28148c 100%);position:absolute;inset:0}.btn{font:inherit;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#283460bf;border-radius:12px;padding:10px 18px;font-weight:700;transition:transform 80ms,background .15s,box-shadow .15s}.btn:hover{background:#3c4c8cd9}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.hot{color:#2a0d00;background:linear-gradient(#ffb13d,#ff5a2e);border-color:#ffdca099;box-shadow:0 0 22px #ff782873}.btn.hot:hover{box-shadow:0 0 32px #ff963cb3}.btn.ghost{background:#141a3299}.btn.big{width:100%;padding:13px 22px;font-size:18px}.btn.small{border-radius:10px;padding:7px 12px;font-size:14px}.mini{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#3c4c8c99;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:700}.link-btn{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;text-decoration:underline}.icon-btn{border:1px solid var(--line);background:var(--panel);width:40px;height:40px;color:var(--ink);cursor:pointer;border-radius:12px;font-size:20px}.row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.muted{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);border-radius:16px;padding:14px 16px;box-shadow:0 10px 40px #00000080}#title{padding:calc(16px + var(--safe-t)) 16px calc(16px + var(--safe-b));background:radial-gradient(at 50% 40%,#05071459,#03040cd9 75%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow-y:auto}.title-inner{text-align:center;width:min(460px,100%);margin:auto}.logo{text-transform:uppercase;letter-spacing:.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:900;line-height:.9}.logo span{background:linear-gradient(#fff6d6 0%,#ffd34d 35%,#ff7a1a 70%,#ff3f6c 100%);color:#0000;filter:drop-shadow(0 0 18px #ff8c28a6)drop-shadow(0 0 2px #ffe6a0e6);-webkit-background-clip:text;background-clip:text;animation:3.2s infinite flicker;display:block}.logo .l1{font-size:clamp(30px,8.6vw,54px)}.logo .l2{font-size:clamp(54px,15vw,100px)}@keyframes flicker{0%,to{filter:drop-shadow(0 0 18px #ff8c28a6)drop-shadow(0 0 2px #ffe6a0e6)}45%{filter:drop-shadow(0 0 26px #ffaa3ce6)drop-shadow(0 0 3px #fff0be)}50%{filter:drop-shadow(0 0 12px #ff6e1e80)drop-shadow(0 0 2px #ffe6a0cc)}}.tag{color:var(--muted);margin:10px 0 18px;font-size:16px}.form{flex-direction:column;gap:10px;display:flex}.form .name{color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}input{font:inherit;color:var(--ink);border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#0a0e1ecc;border-radius:10px;outline:none;padding:9px 12px}input:focus{border-color:#ffb450b3}#name{width:180px;font-weight:700}.join-row{gap:8px;display:flex}.join-row input{text-transform:uppercase;letter-spacing:.15em;flex:1;min-width:0}.arsenal{text-align:left;color:var(--muted);border:1px solid var(--line);background:#080b188c;border-radius:12px;gap:4px;margin:18px 0 8px;padding:10px 12px;font-size:13px;display:grid}.arsenal b{color:var(--ink)}.controls{color:var(--muted);margin:8px 0 0;font-size:12px}.foot{margin:4px 0 0}body.touch .desktop-only,body:not(.touch) .touch-only{display:none}#hud{pointer-events:none;position:absolute;inset:0}#hud button,#hud .panel,#hud input{pointer-events:auto}.hud-tl{top:calc(10px + var(--safe-t));left:calc(10px + var(--safe-l));flex-wrap:wrap;align-items:center;gap:8px;max-width:50vw;display:flex;position:absolute}.chip{background:var(--panel);border:1px solid var(--line);pointer-events:auto;border-radius:12px;align-items:center;gap:6px;padding:6px 8px 6px 10px;font-size:14px;display:flex}.chip b{letter-spacing:.12em;color:var(--gold)}.chip .label{color:var(--muted);font-size:12px}.map-row{flex-basis:100%;line-height:0}#minimap{border-radius:6px;box-shadow:0 0 0 1px #a0b4ff2e,0 2px 10px #00000080}#edge-arrows{position:absolute;inset:0;overflow:hidden}.edge-arrow{filter:drop-shadow(0 0 4px)drop-shadow(0 1px 2px #000);width:18px;height:18px;position:absolute;top:-9px;left:-9px}.edge-arrow:before{content:"";clip-path:polygon(100% 50%,15% 5%,35% 50%,15% 95%);background:currentColor;position:absolute;inset:0}.net{color:var(--muted);text-shadow:0 1px 2px #000;font-size:11px}.hud-tc{top:calc(10px + var(--safe-t));text-align:center;text-shadow:0 0 10px #000,0 1px 3px #000;position:absolute;left:50%;transform:translate(-50%)}#phase{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:12px}#timer{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.hud-tr{top:calc(10px + var(--safe-t));right:calc(10px + var(--safe-r));flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute}#scores{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:130px;padding:6px 10px;font-size:14px}#scores .s{justify-content:space-between;align-items:center;gap:8px;display:flex}#scores .s .n{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden}#scores .s.me .n{text-decoration:underline}#scores .k{font-variant-numeric:tabular-nums;font-weight:800}#scores .d{color:var(--muted);font-size:12px}.dot{background:currentColor;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block;box-shadow:0 0 8px}#feed{flex-direction:column;align-items:flex-end;gap:4px;display:flex}#feed .f{white-space:nowrap;background:#080a16b3;border-radius:8px;padding:3px 8px;font-size:13px;animation:.25s ease-out feedIn}@keyframes feedIn{0%{opacity:0;transform:translate(20px)}}#center-msg{text-align:center;color:var(--gold);text-shadow:0 0 24px #ff8c28cc,0 2px 4px #000;pointer-events:none;font-family:Georgia,serif;font-size:clamp(42px,9vw,96px);font-weight:900;position:absolute;top:34%;left:0;right:0}#center-msg.pop{animation:.45s ease-out pop}@keyframes pop{0%{opacity:0;transform:scale(1.6)}}#sub-msg{text-align:center;text-shadow:0 0 10px #000,0 1px 3px #000;pointer-events:none;font-size:18px;font-weight:700;position:absolute;top:calc(34% + clamp(54px,11vw,116px));left:0;right:0}.hud-bottom{left:50%;bottom:calc(14px + var(--safe-b));flex-direction:column;align-items:center;gap:6px;width:min(420px,70vw);display:flex;position:absolute;transform:translate(-50%)}#hp{border:1px solid var(--line);background:#0a0c1acc;border-radius:7px;width:100%;height:14px;position:relative;overflow:hidden}#hp .fill{transform-origin:0;background:linear-gradient(90deg,#ff3f3f,#ffb13d 50%,#ffe27a);transition:transform .12s;position:absolute;inset:0;box-shadow:0 0 12px #ffaa3c99}#hp .val{text-align:center;text-shadow:0 0 3px #000;font-size:11px;font-weight:800;line-height:14px;position:absolute;inset:0}#weapons{gap:6px;display:flex}.slot{background:var(--panel);border:1px solid var(--line);white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;display:flex}.slot .key{color:var(--muted);font-size:10px}.slot.special{border-color:#ffc86480;box-shadow:0 0 14px #ffa03c40}.slot.special.empty{opacity:.45;box-shadow:none;border-color:var(--line)}.slot .ammo{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:800}.fuel{vertical-align:middle;background:#ffffff1f;border-radius:4px;width:60px;height:7px;display:inline-block;overflow:hidden}.fuel i{background:linear-gradient(90deg,#ff7a1a,#ffd34d);height:100%;display:block}body.touch .slot .key,body.touch .slot.melee{display:none}#lobby{top:calc(64px + var(--safe-t));left:calc(10px + var(--safe-l));text-align:center;width:min(320px,100vw - 20px);position:absolute}#lobby h3{color:var(--gold);margin:0 0 4px}#lobby p{margin:0 0 10px;font-size:13px}.invite{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.invite input{text-align:center;width:100%;color:var(--gold);font-size:13px}#lobby-players{text-align:left;margin:0 0 10px;padding:0;font-size:14px;list-style:none}#lobby-players li{padding:3px 4px}#lobby-players .tag{color:var(--muted);margin:0 0 0 6px;font-size:11px}#lobby-show{top:calc(64px + var(--safe-t));left:calc(10px + var(--safe-l));position:absolute}#results{text-align:center;width:min(420px,100vw - 24px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#results h2{color:var(--gold);text-shadow:0 0 18px #ff9628b3;margin:4px 0 10px;font-family:Georgia,serif;font-size:30px}#results table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:15px}#results td,#results th{text-align:left;padding:5px 6px}#results th{color:var(--muted);font-size:12px;font-weight:600}#results td.num,#results th.num{text-align:right;font-variant-numeric:tabular-nums}#results tr.win td{color:var(--gold);font-weight:800}#menu{background:#02030a8c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#menu .panel{text-align:center;flex-direction:column;gap:10px;width:min(320px,100vw - 32px);display:flex}#menu h3{margin:0 0 4px}#toast{left:50%;bottom:calc(90px + var(--safe-b));background:var(--panel);border:1px solid var(--line);opacity:0;pointer-events:none;border-radius:12px;padding:8px 14px;font-size:14px;transition:opacity .25s;position:absolute;transform:translate(-50%)}#toast.on{opacity:1}#rotate-hint{display:none}body.playing #rotate-hint,body.touched .touch-hint{display:none!important}body:not(.touch) #touch{display:none}#touch{pointer-events:none;position:absolute;inset:0}.stick{opacity:0;background:radial-gradient(circle,#ffffff0d,#ffffff05);border:2px solid #ffffff2e;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .12s;position:absolute}.stick.on{opacity:1}.stick .knob{background:#ffdca059;border:2px solid #ffdca099;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 0 16px #ffaa3c66}.stick-r .knob{background:#ff785059;border-color:#ff966eb3}.tbtn{pointer-events:auto;width:74px;height:74px;color:var(--ink);font:inherit;touch-action:none;background:#1e14288c;border:2px solid #ffdca080;border-radius:50%;font-size:14px;font-weight:800;position:absolute}.tbtn.down{background:#ff963c80;transform:scale(.94)}.btn-melee{right:calc(18px + var(--safe-r));bottom:calc(120px + var(--safe-b))}.btn-dash{right:calc(104px + var(--safe-r));bottom:calc(150px + var(--safe-b));width:60px;height:60px}.touch-hint{top:calc(64px + var(--safe-t));text-align:center;color:#ffffff59;font-size:11px;position:absolute;left:0;right:0}body.touch .hud-bottom{bottom:calc(10px + var(--safe-b));width:min(300px,46vw)}@media (max-width:640px){#scores{min-width:100px;font-size:12px}#timer{font-size:20px}.hud-tl{max-width:40vw}#room-chip .label{display:none}}@media (orientation:portrait) and (pointer:coarse){#rotate-hint{left:50%;bottom:calc(8px + var(--safe-b));color:#fff6;pointer-events:none;white-space:nowrap;font-size:11px;display:block;position:absolute;transform:translate(-50%)}.touch-hint{display:none}}.slot .key .k-pad,body.pad .slot .key .k-kb{display:none}body.pad .slot .key .k-pad{display:inline}
