:root{--fg:#e9e4da;--dim:#8d877c;--accent:#ff7a3d;--good:#4dff9a;--bad:#ff3b3b;--panel:#08090c8c;font-family:Bahnschrift,DIN Alternate,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--fg);-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#app canvas{display:block}.hidden,[hidden],body[data-mode=solo] .mp-only,body[data-mode=client] .host-only,body:not([data-mode=client]) .client-only,body:not([data-mode=solo]) .solo-only{display:none!important}#hud{pointer-events:none;position:fixed;inset:0}.panel{background:var(--panel);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid #ffffff14;border-radius:6px;position:absolute}#vignette{opacity:0;background:radial-gradient(#0000 45%,#aa0000d9 100%);position:absolute;inset:0}#dmg-dir{opacity:0;filter:drop-shadow(0 0 6px #f00c);border-top:5px solid #ff2828e6;border-radius:50%;width:260px;height:260px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair{--gap:6px;position:absolute;top:50%;left:50%}#crosshair i{background:#ffffffe6;position:absolute;box-shadow:0 0 2px #000}#crosshair i:first-child{width:2px;height:8px;left:-1px;bottom:var(--gap)}#crosshair i:nth-child(2){width:2px;height:8px;left:-1px;top:var(--gap)}#crosshair i:nth-child(3){width:8px;height:2px;top:-1px;right:var(--gap)}#crosshair i:nth-child(4){width:8px;height:2px;top:-1px;left:var(--gap)}#hitmarker{opacity:0;background:linear-gradient(#fff,#fff) 50%/2px 100% no-repeat,linear-gradient(#fff,#fff) 50%/100% 2px no-repeat;width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);-webkit-mask:radial-gradient(circle,#0000 5px,#000 6px);mask:radial-gradient(circle,#0000 5px,#000 6px)}#hitmarker.head{background:linear-gradient(#ffd23d,#ffd23d) 50%/2px 100% no-repeat,linear-gradient(#ffd23d,#ffd23d) 50%/100% 2px no-repeat}#hitmarker.kill{background:linear-gradient(var(--bad), var(--bad)) center / 3px 100% no-repeat, linear-gradient(var(--bad), var(--bad)) center / 100% 3px no-repeat;width:30px;height:30px}#stats{letter-spacing:.12em;padding:10px 14px;font-size:14px;line-height:1.5;top:16px;left:16px}#hud-level{color:var(--accent);font-weight:700}#hud-time{color:var(--dim);font-variant-numeric:tabular-nums}#minimap{width:200px;height:200px;top:16px;right:16px}#health{grid-template-columns:auto 180px auto;align-items:center;gap:12px;padding:10px 14px;display:grid;bottom:16px;left:16px}#health .label{letter-spacing:.2em;color:var(--dim);font-size:12px}#health .bar{background:#ffffff1a;border-radius:2px;height:10px;overflow:hidden}#health-fill{background:var(--good);width:100%;height:100%;transition:width .15s,background .3s}#health-fill.mid{background:#ffd23d}#health-fill.low{background:var(--bad)}#health-num{text-align:right;font-variant-numeric:tabular-nums;min-width:3ch;font-size:28px;font-weight:700}#ammo{text-align:right;min-width:170px;padding:10px 16px;bottom:16px;right:16px}#weapon-name{letter-spacing:.25em;color:var(--dim);font-size:13px}#ammo .count{font-variant-numeric:tabular-nums}#ammo-mag{font-size:40px;font-weight:700}#ammo-mag.empty{color:var(--bad)}#ammo-reserve{color:var(--dim);margin-left:6px;font-size:18px}#weapon-slots{justify-content:flex-end;gap:6px;margin-bottom:4px;display:flex}#weapon-slots span{text-align:center;color:#ffffff40;border:1px solid #ffffff26;border-radius:3px;width:18px;height:18px;font-size:11px;line-height:18px}#weapon-slots span.owned{color:var(--fg);border-color:#fff6}#weapon-slots span.active{background:var(--accent);border-color:var(--accent);color:#000}#reload-hint{letter-spacing:.25em;color:#ffd23d;text-shadow:0 0 6px #000;font-size:13px;position:absolute;top:calc(50% + 48px);left:50%;transform:translate(-50%)}#toasts{flex-direction:column-reverse;align-items:center;gap:6px;display:flex;position:absolute;bottom:110px;left:50%;transform:translate(-50%)}.toast{letter-spacing:.15em;text-shadow:0 0 8px #000,0 0 2px #000;font-size:15px;animation:2.2s forwards toast}@keyframes toast{0%{opacity:0;transform:translateY(8px)}10%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.screen{background:radial-gradient(#00000059,#000000d9);padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.card{text-align:center;background:#0a0a0dd1;border:1px solid #ffffff14;border-radius:10px;width:min(520px,100%);margin:auto;padding:32px 36px;box-shadow:0 30px 80px #0009}h1,h2,#announce{-webkit-text-stroke:2px #000;paint-order:stroke fill;text-shadow:0 3px #000,0 0 18px #0009;font-family:Impact,Anton,Arial Black,Haettenschweiler,sans-serif;font-weight:400}h1{letter-spacing:.06em;color:#fff;-webkit-text-stroke:3px #000;margin:0;font-size:clamp(44px,10vw,72px);transform:rotate(-2deg)}h1 span{color:var(--accent)}#bestiary{grid-template-columns:repeat(4,1fr);gap:10px;margin:-6px 0 20px;display:grid}.beast{color:var(--dim);background:#ffffff0a;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:11px;line-height:1.3;display:flex}.beast img{width:64px;height:64px;transition:transform .2s}.beast:hover img{transform:scale(1.15)rotate(-6deg)}.beast b{letter-spacing:.06em;color:var(--fg);font-family:Impact,Arial Black,sans-serif;font-size:16px;font-weight:400}#announce{white-space:nowrap;letter-spacing:.04em;background:linear-gradient(90deg,#ff4fd8,#ffe600,#39ff14,#00e5ff,#b388ff,#ff4fd8) 0 0/200% 100%;color:#0000;-webkit-text-stroke:2px #000;text-shadow:none;filter:drop-shadow(0 4px #000);opacity:0;-webkit-background-clip:text;background-clip:text;font-size:clamp(34px,7vw,72px);animation:1.6s ease-out forwards mlg,.6s linear infinite rainbow;position:absolute;top:26%;left:50%;transform:translate(-50%)}#announce.small{font-size:clamp(22px,4vw,38px);top:32%}#announce:empty{display:none}@keyframes mlg{0%{opacity:1;transform:translate(-50%)scale(2.4)rotate(-8deg)}12%{transform:translate(-50%)scale(.9)rotate(3deg)}20%{transform:translate(-50%)scale(1.05)rotate(-2deg)}80%{opacity:1;transform:translate(-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%)scale(1.1)translateY(-20px)}}@keyframes rainbow{to{background-position:200% 0}}h2{letter-spacing:.08em;color:#fff;margin:0 0 8px;font-size:48px}h2.bad{color:#d62828;letter-spacing:.04em;font-size:64px}h2.good{color:var(--good);font-size:64px}.tag{color:var(--dim);margin:12px 0 22px;line-height:1.6}.controls{text-align:left;color:var(--dim);grid-template-columns:repeat(2,1fr);gap:8px 16px;margin-bottom:22px;font-size:13px;display:grid}kbd{min-width:22px;font:inherit;color:var(--fg);text-align:center;border:1px solid #ffffff40;border-bottom-width:2px;border-radius:4px;margin-right:3px;padding:2px 6px;font-size:11px;display:inline-block}.row{letter-spacing:.2em;color:var(--dim);justify-content:center;align-items:center;gap:8px;margin-bottom:14px;font-size:12px;display:flex}.row label{align-items:center;gap:10px;display:flex}.row input[type=text],#seed-input{font:inherit;letter-spacing:.1em;width:190px;color:var(--fg);-webkit-user-select:text;user-select:text;background:#ffffff0f;border:1px solid #ffffff26;border-radius:5px;padding:8px 10px;font-size:15px}input[type=range]{accent-color:var(--accent);width:190px}button{width:100%;font:inherit;letter-spacing:.25em;color:#000;background:var(--accent);cursor:pointer;border:0;border-radius:6px;margin-top:10px;padding:14px;font-size:16px;font-weight:700;transition:filter .15s,transform .1s;display:block}button:hover{filter:brightness(1.15)}button:active{transform:translateY(1px)}button.ghost{color:var(--fg);background:0 0;border:1px solid #fff3}.row button{letter-spacing:0;width:auto;margin:0;padding:8px 12px}#team{flex-direction:column;gap:6px;display:flex;position:absolute;top:124px;left:16px}.mate{background:var(--panel);letter-spacing:.06em;border:1px solid #ffffff14;border-radius:6px;grid-template-rows:auto 4px;grid-template-columns:10px 1fr auto auto;align-items:center;gap:3px 8px;width:190px;padding:7px 10px;font-size:13px;display:grid}.mate i{border-radius:2px;width:10px;height:10px}.mate .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mate .st{color:var(--bad);letter-spacing:.15em;font-size:11px}.mate .spk{background:#ffffff1f;border-radius:50%;width:8px;height:8px}.mate .spk.on{background:var(--good);box-shadow:0 0 8px var(--good)}.mate .bar{background:#ffffff1a;border-radius:2px;grid-column:1/-1;overflow:hidden}.mate .bar div{height:100%;transition:width .2s}.mate.down{border-color:#ff3b3b99;animation:.8s infinite alternate pulse}@keyframes pulse{to{background:#78000080}}#downed{color:#ffb3b3;letter-spacing:.15em;text-shadow:0 0 10px #000;background:radial-gradient(#3c00001a,#3c0000bf);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding-bottom:20vh;display:flex;position:absolute;inset:0}#downed .big{color:var(--bad);font-size:40px;font-weight:800}#revive{text-align:center;letter-spacing:.2em;text-shadow:0 0 6px #000;width:280px;font-size:13px;position:absolute;top:calc(50% + 70px);left:50%;transform:translate(-50%)}#revive .bar{background:#ffffff26;border-radius:3px;height:6px;margin-top:6px;overflow:hidden}#revive-fill{background:var(--good);width:0;height:100%}#voice-ind{letter-spacing:.2em;color:var(--dim);text-shadow:0 0 6px #000;font-size:12px;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}#voice-ind .live{color:var(--bad);font-weight:700}#voice-ind .off{color:#ffffff4d}.or{letter-spacing:.2em;color:var(--dim);margin:16px 0 12px;font-size:12px}.row.join input.code{width:130px;font:inherit;letter-spacing:.4em;text-align:center;text-transform:uppercase;color:var(--fg);-webkit-user-select:text;user-select:text;background:#ffffff0f;border:1px solid #ffffff26;border-radius:5px;padding:8px;font-size:22px}.row.join button{letter-spacing:.2em;padding:12px 22px}#name-input,#lobby-seed{font:inherit;width:190px;color:var(--fg);-webkit-user-select:text;user-select:text;background:#ffffff0f;border:1px solid #ffffff26;border-radius:5px;padding:8px 10px;font-size:15px}.status{min-height:1.4em;color:var(--dim);margin:6px 0;font-size:13px}.status.err{color:var(--bad)}.tag.warn{color:#ffd23d;font-size:13px}.eyebrow{letter-spacing:.3em;color:var(--dim);font-size:12px}.code-big{letter-spacing:.3em;color:var(--accent);cursor:pointer;padding-left:.3em;font-size:56px;font-weight:800}#lobby-players{text-align:left;flex-direction:column;gap:8px;margin:18px 0;display:flex}.lp{background:#ffffff0a;border-radius:6px;grid-template-columns:14px 1fr 60px;align-items:center;gap:12px;padding:10px 14px;display:grid}.lp i{border-radius:3px;width:14px;height:14px}.lp .tagline{letter-spacing:.15em;color:var(--dim);margin-left:8px;font-size:11px}.lp .meter{background:#ffffff1a;border-radius:3px;height:6px;overflow:hidden}.lp .meter div{background:var(--good);width:0;height:100%}.lp.empty{opacity:.35;letter-spacing:.1em;font-size:13px}label.check{cursor:pointer}label.check input{accent-color:var(--accent);width:16px;height:16px}@media (width<=700px){#minimap{width:120px;height:120px}#health{grid-template-columns:auto 90px auto}}
