:root{--ink:#fff7e8;--dim:#fff7e899;--accent:#ffcc4d;--aura:#b88cff;--danger:#ff4d4d;--ok:#6be38a;--panel:#120e1eb8;--panel-border:#ffdca02e;--font:"Rubik", system-ui, sans-serif;--display:"Bungee", "Impact", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;background:#0b0a16;margin:0;overflow:hidden}#game{position:fixed;inset:0}#game canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}.hidden{display:none!important}.hud{position:absolute;inset:0}.crosshair{width:0;height:0;position:absolute;top:50%;left:50%}.crosshair i{background:#fff;border-radius:1px;position:absolute;box-shadow:0 0 2px #000,0 0 1px #000}.crosshair .dot{border-radius:50%;width:3px;height:3px;top:-1.5px;left:-1.5px}.crosshair .l,.crosshair .r{width:9px;height:2px;top:-1px}.crosshair .t,.crosshair .b{width:2px;height:9px;left:-1px}.hitmarker{opacity:0;width:0;height:0;transition:opacity .12s;position:absolute;top:50%;left:50%}.hitmarker i{background:#fff;width:11px;height:2.5px;position:absolute;top:-1.25px;left:-5.5px;box-shadow:0 0 3px #000c}.hitmarker.show{opacity:1;transition:none}.hitmarker.weak i{background:var(--accent)}.hitmarker.kill i{background:var(--danger);width:15px}.hitmarker.armor i{background:#9ab}.bottom-left{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:26px;left:28px}.health{align-items:center;gap:12px;display:flex}.health .num{font-family:var(--display);text-shadow:0 2px #00000080;min-width:88px;font-size:44px;line-height:1}.health .bar{background:#00000073;border:1px solid #ffffff1f;border-radius:6px;width:240px;height:12px;position:relative;overflow:hidden}.health .fill{background:linear-gradient(90deg,#ff6b4a,#ffc36b);height:100%;transition:width .15s}.health .ghost{background:#ffffff80;height:100%;transition:width .6s .25s;position:absolute;top:0;left:0}.health.low .num{color:var(--danger);animation:.6s infinite alternate pulse}@keyframes pulse{to{transform:scale(1.06)}}.bottom-right{text-align:right;position:absolute;bottom:22px;right:28px}.ammo{font-family:var(--display);text-shadow:0 2px #00000080;line-height:1}.ammo .mag{font-size:52px}.ammo .res{color:var(--dim);margin-left:6px;font-size:22px}.ammo.empty .mag{color:var(--danger)}.weapon-name{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:4px;font-size:14px;font-weight:800}.slots{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.slots span{color:var(--dim);background:#0006;border:1px solid #0000;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:800}.slots span.on{color:#111;background:var(--accent)}.reload-hint{color:var(--accent);letter-spacing:.15em;margin-top:6px;font-size:13px;font-weight:800;animation:.5s infinite alternate pulse}.top-left{position:absolute;top:22px;left:28px}.objective{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;max-width:360px;padding:10px 14px}.objective .title{font-family:var(--display);color:var(--accent);letter-spacing:.04em;font-size:15px}.objective .sub{color:var(--dim);margin-top:3px;font-size:13px}.objective .count{margin-top:4px;font-size:13px}.top-right{text-align:right;position:absolute;top:22px;right:28px}.aura{font-family:var(--display);color:var(--aura);text-shadow:0 0 14px #b88cff99,0 2px #00000080;font-size:26px}.aura small{font-family:var(--font);letter-spacing:.2em;color:var(--dim);font-size:12px;font-weight:800;display:block}.killfeed{flex-direction:column;align-items:flex-end;gap:4px;margin-top:10px;display:flex}.killfeed div{background:#00000073;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600;animation:.2s ease-out feedIn}.killfeed b{color:var(--aura)}@keyframes feedIn{0%{opacity:0;transform:translate(20px)}}.announce{text-align:center;opacity:0;transition:opacity .3s,transform .3s;position:absolute;top:17%;left:0;right:0;transform:scale(.9)}.announce.show{opacity:1;transform:scale(1)}.announce .big{font-family:var(--display);text-shadow:0 4px #00000073,0 0 30px #ffa03c59;letter-spacing:.02em;font-size:58px}.announce .small{color:var(--dim);margin-top:6px;font-size:18px;font-weight:600}.subtitles{flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.subtitles div{background:#0009;border-radius:6px;padding:4px 12px;font-size:16px;font-weight:600;animation:.15s feedIn}.subtitles .dir{color:var(--accent);margin-right:6px}.popups{position:absolute;inset:0;overflow:hidden}.popup{font-family:var(--display);color:var(--aura);text-shadow:0 2px #0009,0 0 12px #b88cffcc;white-space:nowrap;font-size:20px;animation:1.1s ease-out forwards popUp;position:absolute;transform:translate(-50%,-50%)}.popup.dmg{color:#fff;font-size:15px;animation-duration:.6s}.popup.dmg.weak{color:var(--accent);font-size:19px}@keyframes popUp{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}to{opacity:0;transform:translate(-50%,-160%)scale(1)}}.damage-dir{width:0;height:0;position:absolute;top:50%;left:50%}.damage-dir i{filter:drop-shadow(0 0 8px #ff0000b3);opacity:0;border-top:6px solid #ff3c28e6;border-radius:50%;width:150px;height:150px;transition:opacity .5s;position:absolute;top:-75px;left:-75px}.vignette{opacity:0;background:radial-gradient(#0000 50%,#a0000099 100%);transition:opacity .2s;position:absolute;inset:0}.flash{opacity:0;background:#ff281440;transition:opacity .35s;position:absolute;inset:0}.flash.on{opacity:1;transition:none}.bossbar{text-align:center;width:min(620px,60vw);position:absolute;top:20px;left:50%;transform:translate(-50%)}.bossbar .name{font-family:var(--display);letter-spacing:.03em;text-shadow:0 2px #00000080;font-size:20px}.bossbar .phase{letter-spacing:.2em;color:var(--accent);font-size:12px;font-weight:800}.bossbar .bar{background:#00000080;border:1px solid #fff3;border-radius:7px;height:14px;margin-top:5px;overflow:hidden}.bossbar .fill{background:linear-gradient(90deg,#7fbf4a,#c8e06a);height:100%;transition:width .2s}.scope{background:radial-gradient(circle,#0000 0 34vh,#000 34.3vh);position:absolute;inset:0}.scope:before,.scope:after{content:"";background:#000000d9;position:absolute}.scope:before{height:1.5px;top:50%;left:0;right:0}.scope:after{width:1.5px;top:0;bottom:0;left:50%}.scope .rd{background:#ff3b3b;border-radius:50%;width:6px;height:6px;margin:-3px;position:absolute;top:50%;left:50%;box-shadow:0 0 6px red}.debug{white-space:pre;color:#bfe;background:#0000008c;border-radius:4px;padding:6px 8px;font:11px/1.35 ui-monospace,Menlo,monospace;position:absolute;bottom:120px;left:10px}.enemy-labels{position:absolute;inset:0}.enemy-labels div{white-space:nowrap;color:#cfe;background:#0009;border-radius:3px;padding:1px 4px;font:10px ui-monospace,Menlo,monospace;position:absolute;transform:translate(-50%,-100%)}.fps{color:#9f9;text-shadow:0 1px #000;font:11px ui-monospace,Menlo,monospace;position:absolute;bottom:6px;right:8px}.screen{pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.screen.dim{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0806149e}.menu{flex-direction:column;align-items:stretch;gap:10px;min-width:320px;display:flex}.title{text-align:center;margin-bottom:18px}.title h1{font-family:var(--display);letter-spacing:.01em;background:linear-gradient(#fff3c4 0%,#ffc34d 55%,#ff7a3d 100%);color:#0000;filter:drop-shadow(0 5px #3c140acc)drop-shadow(0 0 30px #ff8c3c4d);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(42px,7vw,92px);line-height:.95}.title p{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin:8px 0 0;font-size:13px;font-weight:600}button.btn{pointer-events:auto;font-family:var(--display);letter-spacing:.03em;color:var(--ink);background:var(--panel);border:1px solid var(--panel-border);cursor:pointer;text-align:left;border-radius:12px;padding:12px 22px;font-size:20px;transition:transform 80ms,background .12s,border-color .12s}button.btn:hover,button.btn:focus-visible{border-color:var(--accent);background:#ffbe5a38;outline:none;transform:translate(4px)}button.btn.primary{color:#2a1406;text-align:center;background:linear-gradient(#ffcf5a,#ff9a3d);border-color:#ffdd8a;font-size:26px}button.btn.primary:hover{transform:scale(1.03)}button.btn:disabled{opacity:.4;cursor:default;transform:none}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;max-width:min(920px,92vw);max-height:86vh;padding:22px 26px;overflow:auto}.panel h2{font-family:var(--display);color:var(--accent);margin:0 0 14px;font-size:30px}.row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:18px;padding:7px 0;display:flex}.row label{font-weight:600}.row input[type=range]{width:220px;accent-color:var(--accent)}.row select,.row input[type=checkbox]{accent-color:var(--accent);font:inherit;color:var(--ink);border:1px solid var(--panel-border);background:#221a33;border-radius:6px;padding:4px 8px}.row .val{text-align:right;width:48px;color:var(--dim);font-variant-numeric:tabular-nums}.diffs{grid-template-columns:repeat(3,1fr);gap:12px;margin:10px 0 18px;display:grid}.diff{pointer-events:auto;cursor:pointer;background:#0000004d;border:2px solid #0000;border-radius:12px;padding:14px}.diff.on{border-color:var(--accent);background:#ffc85a1f}.diff h3{font-family:var(--display);margin:0 0 6px;font-size:18px}.diff p{color:var(--dim);margin:0;font-size:13px}.shop{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.card{background:#0000004d;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:6px;padding:14px;display:flex}.card h3{font-family:var(--display);margin:0;font-size:17px}.card p{color:var(--dim);flex:1;margin:0;font-size:13px}.card .cost{color:var(--aura);font-weight:800}.card.owned{border-color:#6be38a66}.card button{pointer-events:auto}.bestiary{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.beast{background:#0000004d;border:1px solid #ffffff14;border-radius:12px;padding:14px}.beast h3{font-family:var(--display);margin:0 0 4px;font-size:18px}.beast .role{letter-spacing:.15em;color:var(--accent);text-transform:uppercase;font-size:11px;font-weight:800}.beast p{color:var(--dim);margin:6px 0;font-size:13px}.beast canvas{background:radial-gradient(circle at 50% 40%,#3a2e58,#120e22);border-radius:8px;width:100%;height:150px;display:block}.stats{grid-template-columns:1fr 1fr;gap:6px 22px;margin:12px 0 18px;font-size:15px;display:grid}.stats b{color:var(--accent);float:right}.death h1{font-family:var(--display);color:var(--danger);text-shadow:0 4px #300;text-align:center;margin:0;font-size:64px}.hint{color:var(--dim);text-align:center;margin-top:10px;font-size:13px}.keys{color:var(--dim);font-size:13px;line-height:1.7}.keys kbd{color:var(--ink);background:#ffffff1f;border-radius:4px;padding:1px 6px;font-family:inherit;font-weight:700}.loading{pointer-events:auto;background:#0b0a16;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.loading .bar{background:#ffffff1a;border-radius:4px;width:320px;height:8px;overflow:hidden}.loading .fill{background:linear-gradient(90deg,#ffcf5a,#ff7a3d);width:0;height:100%;transition:width .1s}.loading .what{color:var(--dim);height:14px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.click-to-play{text-align:center;font-family:var(--display);text-shadow:0 2px #000;font-size:22px;animation:.8s infinite alternate pulse;position:absolute;bottom:12%;left:0;right:0}.challenge-toast{border:1px solid var(--aura);background:linear-gradient(90deg,#7846c8d9,#3c1e78d9);border-radius:10px;padding:10px 18px;font-weight:800;animation:.25s feedIn;position:absolute;top:32%;left:50%;transform:translate(-50%)}.console{pointer-events:auto;background:#000000d9;flex-direction:column;max-height:45vh;padding:8px 10px;font:13px ui-monospace,Menlo,monospace;display:flex;position:absolute;top:0;left:0;right:0}.console .log{white-space:pre-wrap;color:#bdf;flex:1;overflow:auto}.console input{color:#fff;font:inherit;background:0 0;border:none;border-top:1px solid #333;outline:none;padding:6px 0 0}.audio-debug{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;max-height:70vh;display:grid;overflow:auto}.audio-debug button{pointer-events:auto;color:#dfe;cursor:pointer;text-align:left;background:#221a33;border:1px solid #443;border-radius:4px;padding:5px;font:12px ui-monospace,Menlo,monospace}.timeslow{pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(#78c8ff00 45%,#5aa0e659 100%);transition:opacity .4s;position:absolute;inset:0}.timeslow.on{opacity:1}:root{--lire:#ffd35a;--pap:#ff5ce1}.lire{font-family:var(--display);color:var(--lire);text-shadow:0 0 12px #ffc83c73,0 2px #00000080;transform-origin:100%;margin-top:6px;font-size:24px}.lire small{font-family:var(--font);letter-spacing:.2em;color:var(--dim);font-size:12px;font-weight:800;display:block}.lire.bump{animation:.25s ease-out lireBump}@keyframes lireBump{0%{transform:scale(1.18)}to{transform:scale(1)}}.lire-floats{height:0;position:relative}.lire-floats div{font-family:var(--display);color:var(--lire);text-shadow:0 2px #0009;white-space:nowrap;font-size:15px;animation:.9s ease-out forwards lireUp;position:absolute;top:-6px;right:0}.lire-floats div.big{color:#fff3b0;font-size:19px}.lire-floats div.neg{color:#ff8a7a}@keyframes lireUp{0%{opacity:0;transform:translate(-6px,6px)}15%{opacity:1}to{opacity:0;transform:translate(-30px,-26px)}}.prompt{text-align:center;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;min-width:280px;max-width:min(560px,90vw);padding:9px 16px;animation:.15s feedIn;position:absolute;top:61%;left:50%;transform:translate(-50%)}.prompt .l1{font-family:var(--display);letter-spacing:.02em;font-size:18px}.prompt .l2{color:var(--dim);margin-top:3px;font-size:13px}.prompt .l2.blocked{color:var(--danger);font-weight:700}.prompt kbd{color:#2a1406;min-width:24px;font-family:var(--display);background:#fff4d6;border-radius:5px;margin-right:4px;padding:1px 6px;font-size:15px;display:inline-block;box-shadow:0 2px #b98a3a}.prompt .cost{color:var(--lire);margin-left:6px}.prompt .cost.no{color:var(--danger)}.perks{gap:6px;min-height:0;display:flex}.perks i{background:radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--c) 70%, white), var(--c));width:34px;height:34px;box-shadow:0 0 10px var(--c), 0 2px 0 #00000080;border:2px solid #fff4d6;border-radius:50%;place-items:center;font-size:18px;font-style:normal;animation:.3s feedIn;display:grid}.ability{align-items:center;gap:6px;display:flex}.ability .ic{background:color-mix(in srgb, var(--c) 45%, #120e22);border:2px solid var(--c);border-radius:12px;place-items:center;width:48px;height:48px;font-size:26px;display:grid;position:relative;overflow:hidden}.ability .cd{background:#080614b8;position:absolute;bottom:0;left:0;right:0}.ability.ready .ic{box-shadow:0 0 14px var(--c);animation:.7s infinite alternate pulse}.ability kbd{background:#ffffff24;border-radius:4px;padding:1px 6px;font-size:12px;font-weight:800}.pu-chips{flex-wrap:wrap;justify-content:center;gap:8px;width:max-content;max-width:min(760px,56vw);display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.pu-chips .chip{border:2px solid var(--c);box-shadow:0 0 12px color-mix(in srgb, var(--c) 60%, transparent);background:#0000008c;border-radius:22px;align-items:center;gap:6px;padding:3px 12px 3px 4px;display:flex}.pu-chips .chip b{background:var(--c);width:28px;height:28px;font-size:14px;font-family:var(--display);border-radius:50%;place-items:center;display:grid}.pu-chips .chip span{letter-spacing:.08em;font-size:11px;font-weight:800}.pu-chips .chip em{font-style:normal;font-family:var(--display);text-align:right;min-width:20px;font-size:16px}.pu-chips .chip.ending{animation:.25s infinite alternate pulse}.pu-banner{text-align:center;opacity:0;pointer-events:none;position:absolute;top:27%;left:0;right:0}.pu-banner.show{animation:2.6s ease-out forwards puIn}.pu-banner .t{font-family:var(--display);letter-spacing:.02em;text-shadow:0 5px #00000080,0 0 40px;font-size:clamp(30px,7vw,64px)}.pu-banner .s{color:var(--ink);text-shadow:0 2px #0009;margin-top:4px;font-size:18px;font-weight:700}@keyframes puIn{0%{opacity:0;transform:scale(1.8)rotate(-4deg)}10%{opacity:1;transform:scale(.95)rotate(1deg)}16%{transform:scale(1.03)rotate(0)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)translateY(-10px)}}.whiteout{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}.whiteout.on{animation:1.6s ease-out forwards whiteout}@keyframes whiteout{0%{opacity:1}30%{opacity:.9}to{opacity:0}}.ov-insta,.ov-tax{pointer-events:none;opacity:0;transition:opacity .4s;position:absolute;inset:0}.ov-insta{background:radial-gradient(#0000 55%,#c8001e59 100%)}.ov-tax{box-shadow:inset 0 0 0 6px #8fbf3acc,inset 0 0 60px #8fbf3a80}.ov-insta.on,.ov-tax.on{opacity:1}.mod-tag{font-family:var(--display);letter-spacing:.15em;color:#111;background:repeating-linear-gradient(45deg,#ffcc4d 0 8px,#222 8px 16px);border-radius:4px;padding:2px 10px;font-size:12px;position:absolute;top:4px;left:50%;transform:translate(-50%)}.mod-tag:before{content:""}.weapon-name.pap{background:linear-gradient(90deg,#ff5ce1,#4cf2ff,#ffe066,#ff5ce1) 0 0/300% 100%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite papShift;color:#0000!important}@keyframes papShift{to{background-position:300% 0}}.slots span.pap{border-color:var(--pap)}.slots span.box{border-color:#b98cff}.popup.crit{color:#ff9f1c;text-shadow:0 2px #0009,0 0 16px #ff7800e6;font-size:26px}.modmenu{width:min(860px,94vw);position:relative;overflow:hidden}.modmenu:before{content:"";background:repeating-linear-gradient(45deg,#ffcc4d 0 12px,#222 12px 24px);height:8px;position:absolute;top:0;left:0;right:0}.modmenu h2{align-items:baseline;gap:12px;display:flex}.modmenu h2 small{font-family:var(--font);color:var(--danger);letter-spacing:.12em;font-size:12px;font-weight:800}.modgrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.modbox{background:#0000004d;border:1px solid #ffffff14;border-radius:12px;padding:12px}.modbox h3{font-family:var(--display);color:var(--accent);letter-spacing:.04em;margin:0 0 8px;font-size:15px}.modbox .b{flex-wrap:wrap;gap:6px;display:flex}.modbox button,.modbox select{pointer-events:auto;font:700 13px var(--font);color:var(--ink);border:1px solid var(--panel-border);cursor:pointer;background:#221a33;border-radius:8px;padding:6px 10px}.modbox button:hover{border-color:var(--accent);background:#ffbe5a33}.modbox button.on{color:#2a1406;background:linear-gradient(#ffcf5a,#ff9a3d);border-color:#ffdd8a}.modbox .round{align-items:center;gap:6px;display:flex}.modbox .round b{font-family:var(--display);text-align:center;min-width:40px;font-size:22px}.modbox input[type=range]{pointer-events:auto;accent-color:var(--accent);width:100%}.squad{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;gap:6px;width:250px;margin-top:10px;padding:8px 10px;display:flex}.squad .mate{grid-template-columns:10px 1fr auto auto;align-items:center;gap:2px 8px;font-size:13px;font-weight:700;display:grid}.squad .mate i{border-radius:50%;width:10px;height:10px}.squad .mate .n{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.squad .mate em{letter-spacing:.1em;color:var(--danger);font-size:10px;font-style:normal}.squad .mate .k{color:var(--dim);font-size:12px}.squad .mate .hb{background:#ffffff1f;border-radius:2px;grid-column:2/5;height:4px;overflow:hidden}.squad .mate .hb div{background:linear-gradient(90deg,#6be38a,#c8e06a);height:100%}.squad .mate.out{opacity:.55}.squad .mate.me .n{color:var(--accent)}.squad .ping{color:var(--dim);text-align:right;font-size:10px}.net-banner{border:1px solid var(--danger);color:#ffd0c8;letter-spacing:.03em;background:#280a0ad9;border-radius:10px;padding:8px 16px;font-weight:800;animation:.8s infinite alternate pulse;position:absolute;top:58px;left:50%;transform:translate(-50%)}.lobby{width:min(760px,94vw)}.lobby .code{font-family:var(--display);letter-spacing:.25em;color:var(--accent);text-align:center;-webkit-user-select:text;user-select:text;cursor:copy;margin:4px 0 2px;font-size:56px}.lobby .players{flex-direction:column;gap:8px;margin:14px 0;display:flex}.lobby .pl{background:#0000004d;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-weight:700;display:flex}.lobby .pl i{border-radius:50%;width:14px;height:14px}.lobby .pl .tag{letter-spacing:.12em;color:var(--dim);margin-left:auto;font-size:11px}.lobby .pl .tag.ok{color:var(--ok)}.lobby .pl button{pointer-events:auto;font:700 12px var(--font);color:var(--ink);border:1px solid var(--danger);cursor:pointer;background:#3a1a22;border-radius:6px;padding:3px 8px}.lobby .empty{opacity:.35;font-weight:600}.online-form input{pointer-events:auto;font:700 16px var(--font);color:var(--ink);border:1px solid var(--panel-border);background:#221a33;border-radius:8px;width:100%;padding:8px 10px}.online-form input.code-in{font-family:var(--display);letter-spacing:.3em;text-transform:uppercase;text-align:center;font-size:26px}.online-form label{margin:12px 0 4px;font-weight:700;display:block}.online-form .cols{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.online-form .box{background:#0000004d;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.online-form .box h3{font-family:var(--display);margin:0;font-size:18px}.online-form .err{color:var(--danger);min-height:20px;margin-top:10px;font-weight:700}.online-form .status{color:var(--dim);min-height:20px;margin-top:10px}html,body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none}body.touch{touch-action:none}input,textarea{-webkit-user-select:text;user-select:text}.panel{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.screen{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{touch-action:manipulation}.row-btns{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:4px;display:flex}button.btn.small{border-radius:10px;padding:9px 14px;font-size:15px}button.btn.primary.small{font-size:16px}button.btn.flashed{border-color:var(--ok);color:var(--ok)}button.btn.primary.flashed{color:#0f3a1c;background:linear-gradient(#9ff0b4,#6be38a)}.sub-h{font-family:var(--display);color:var(--accent);margin:14px 0 6px;font-size:15px}.touch-keys{margin-bottom:4px}.menu-main,.menu-more{gap:10px;display:grid}.challenge-card{border:1px solid var(--aura);text-align:center;background:linear-gradient(90deg,#7846c88c,#3c1e788c);border-radius:12px;max-width:460px;margin:-6px auto 6px;padding:9px 14px;font-size:14px;font-weight:600}.challenge-card b{color:var(--accent)}.about{display:none}.about-body h1{font-family:var(--display);color:var(--accent);margin:0 0 10px;font-size:26px;line-height:1.15}.about-body h2{margin:18px 0 6px;font-size:20px}.about-body h3{color:var(--ink);margin:12px 0 2px;font-size:15px}.about-body p,.about-body li{color:var(--dim);-webkit-user-select:text;user-select:text;margin:4px 0;font-size:14px;line-height:1.55}.about-body b{color:var(--ink)}.about-body ul{margin:4px 0;padding-left:20px}.about-body footer p{margin-top:16px;font-size:12px}.about-panel .row-btns{background:linear-gradient(#140f2200,#140f22 35%);margin:0 -26px -22px;padding:18px 26px 16px;position:sticky;bottom:-22px}.invite{background:#00000040;border-radius:12px;padding:10px 12px 12px}.invite-row,.share-row{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.invite-row input,.share-row input{pointer-events:auto;min-width:0;font:600 14px var(--font);color:var(--ink);border:1px solid var(--panel-border);background:#221a33;border-radius:10px;flex:180px;padding:8px 10px}.invite-row input{color:var(--dim);font-size:13px}.invite-banner{background:#6be38a24;border:1px solid #6be38a80;border-radius:10px;margin-bottom:4px;padding:9px 12px;font-weight:600}.invite-banner b{color:var(--ok)}.share-box{background:#00000040;border-radius:12px;flex-direction:column;gap:10px;margin:-6px 0 14px;padding:10px 12px;display:flex}.share-box:before{content:"Share your run";font-family:var(--display);color:var(--accent);font-size:14px}.share-preview{border:1px solid var(--panel-border);border-radius:10px;align-self:center;width:100%;max-width:420px;height:auto}.touch{--sl:env(safe-area-inset-left);--sr:env(safe-area-inset-right);--sb:env(safe-area-inset-bottom);--st:env(safe-area-inset-top);position:absolute;inset:0}.t-zone{pointer-events:auto;touch-action:none;position:absolute;inset:0}.t-stick{width:132px;height:132px;left:calc(118px + var(--sl));top:calc(100% - 128px - var(--sb));pointer-events:none;opacity:.55;background:radial-gradient(circle,#fff7e80f,#fff7e81f);border:2px solid #fff7e838;border-radius:50%;margin:-66px 0 0 -66px;transition:opacity .15s;position:absolute}.t-stick.active{opacity:1;transition:none}.t-stick .knob{background:radial-gradient(circle at 40% 35%,#ffffff8c,#fff7e840);border:2px solid #fff7e899;border-radius:50%;width:58px;height:58px;margin:-29px;position:absolute;top:50%;left:50%}.t-btn{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;width:60px;height:60px;color:var(--ink);font:800 11px var(--font);letter-spacing:.06em;background:#120e1e80;border:2px solid #fff7e861;border-radius:50%;padding:0;position:absolute;box-shadow:0 2px 8px #00000059}.t-btn.on{border-color:var(--accent);background:#ffcc4d73;transform:scale(.93)}.t-fire{width:94px;height:94px;right:calc(28px + var(--sr));bottom:calc(40px + var(--sb));font:16px var(--display);background:radial-gradient(circle at 50% 35%,#ff6e4699,#a01e148c);border-color:#ffaa82cc}.t-fire.on{background:radial-gradient(circle at 50% 35%,#ff965ad9,#c8321ecc)}.t-aim{right:calc(138px + var(--sr));bottom:calc(22px + var(--sb))}.t-aim.on{background:#4cc9f073;border-color:#4cc9f0;transform:none}.t-crouch{right:calc(140px + var(--sr));bottom:calc(98px + var(--sb));width:56px;height:56px}.t-jump{right:calc(44px + var(--sr));bottom:calc(146px + var(--sb));width:66px;height:66px}.t-reload{right:calc(126px + var(--sr));bottom:calc(166px + var(--sb));width:52px;height:52px;font-size:9px}.t-swap{right:calc(52px + var(--sr));bottom:calc(224px + var(--sb));width:50px;height:50px;font-size:10px}.t-dash{right:calc(130px + var(--sr));bottom:calc(232px + var(--sb));width:52px;height:52px;font-size:10px}.t-ability{right:calc(208px + var(--sr));bottom:calc(238px + var(--sb));border-color:var(--aura);width:52px;height:52px;font-size:22px}.t-use{right:calc(206px + var(--sr));bottom:calc(148px + var(--sb));width:74px;height:74px;font:15px var(--display);color:#2a1406;opacity:0;pointer-events:none;background:linear-gradient(#ffcf5a,#ff9a3d);border-color:#ffdd8a;transition:opacity .15s,transform .15s;transform:scale(.6)}.t-use.ready{opacity:1;pointer-events:auto;animation:.6s infinite alternate pulse;transform:scale(1)}.t-use.ready.on{animation:none;transform:scale(.93)}.t-pause{top:calc(10px + var(--st));right:calc(12px + var(--sr));letter-spacing:0;width:44px;height:44px;font-size:14px}.t-rotate{display:none}@media (orientation:portrait){body.touch.playing:not(.portrait-ok) .t-rotate{z-index:5;text-align:center;pointer-events:auto;background:#080614eb;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.t-rotate .ic{margin-bottom:10px;font-size:54px}.t-rotate b{font-family:var(--display);color:var(--accent);font-size:22px}.t-rotate p{color:var(--dim);margin:8px 0 16px}}body.touch .top-right{right:calc(66px + env(safe-area-inset-right))}body.touch .bottom-right{right:calc(224px + env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom))}body.touch .bottom-left{left:calc(18px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom))}body.touch .top-left{left:calc(14px + env(safe-area-inset-left));top:calc(10px + env(safe-area-inset-top))}body.touch .slots span{pointer-events:auto;padding:6px 10px;font-size:13px}body.touch .pu-chips{bottom:auto;top:calc(52px + env(safe-area-inset-top))}body.touch .ability kbd{display:none}body.touch .prompt{max-width:min(440px,58vw);top:22%;left:42%}body.touch .crosshair,body.touch .hitmarker{pointer-events:none}@media (max-height:560px),(max-width:700px){.health .num{min-width:60px;font-size:30px}.health .bar{width:150px;height:9px}.ammo .mag{font-size:34px}.ammo .res{font-size:16px}.weapon-name{font-size:11px}.objective{max-width:250px;padding:6px 10px}.objective .title{font-size:12px}.objective .sub{font-size:11px}.objective .count{margin-top:2px;font-size:11px}.aura{font-size:19px}.lire{font-size:18px}.aura small,.lire small{font-size:9px}.killfeed div{padding:3px 8px;font-size:11px}.killfeed div:nth-child(n+4){display:none}.announce{top:14%}.announce .big{font-size:34px}.announce .small{font-size:14px}.subtitles{bottom:104px}.subtitles div{font-size:13px}.prompt{min-width:220px;padding:7px 12px;top:56%}.prompt .l1{font-size:15px}.prompt .l2{font-size:11px}.perks i{width:26px;height:26px;font-size:14px}.ability .ic{width:38px;height:38px;font-size:20px}.bossbar{top:8px}.bossbar .name{font-size:15px}.squad{gap:4px;width:190px;padding:6px 8px}.squad .mate{font-size:11px}.net-banner{padding:6px 12px;font-size:13px;top:44px}.challenge-toast{font-size:13px;top:24%}.pu-chips .chip span{display:none}.panel{border-radius:14px;max-height:calc(100dvh - 16px);padding:16px}.panel h2{margin-bottom:10px;font-size:22px}.death h1{font-size:38px}.stats{gap:4px 16px;margin:8px 0 12px;font-size:13px}button.btn{padding:10px 16px;font-size:16px}button.btn.primary{font-size:20px}.lobby .code{font-size:40px}.lobby .players{gap:6px;margin:10px 0}.lobby .pl{padding:7px 10px}.diff{padding:10px}.diff h3{font-size:15px}.diff p{font-size:12px}.row{gap:10px;padding:5px 0}.row input[type=range]{width:150px}.loading h1{font-size:34px!important}}@media (max-height:800px){.panel>.row-btns{z-index:1;background:linear-gradient(#140f2200,#140f22 40%);margin:0 -26px -22px;padding:14px 26px 16px;position:sticky;bottom:-22px}.menu{width:min(620px,94vw)}.menu-more{grid-template-columns:1fr 1fr;gap:8px}.menu-more button.btn{padding:10px 14px;font-size:16px}.title h1{font-size:clamp(34px,10vh,84px)}}@media (max-height:560px){.menu{gap:8px;width:min(760px,94vw)}.title{margin-bottom:4px}.title h1{font-size:clamp(26px,9vh,44px)}.title h1 br{display:none}.title p{margin-top:4px;font-size:11px}.menu-main{grid-template-columns:1fr 1fr}.menu-more{grid-template-columns:repeat(3,1fr);gap:8px}.menu-more button.btn{text-align:center;padding:8px 10px;font-size:14px}.menu .hint{display:none}.challenge-card{margin:0 auto;padding:6px 10px;font-size:12px}.diffs{margin:6px 0 10px}.panel.death,.lobby{max-height:calc(100dvh - 12px)}.panel>.row-btns{z-index:1;background:linear-gradient(#140f2200,#140f22 40%);margin:0 -16px -16px;padding:12px 16px;position:sticky;bottom:-16px}.about-panel .row-btns{margin:0 -16px -16px;padding:12px 16px;bottom:-16px}.diffs .diff p:not(:last-child),.diffs .diff.mode p{display:none}.diffs .diff.mode p:last-child:not(:first-of-type){display:block}.share-preview{max-width:280px}}@media (max-width:700px){.menu{width:min(440px,92vw);min-width:0}.menu-more{grid-template-columns:1fr 1fr}.menu-more button.btn{text-align:center;padding:9px 10px;font-size:14px}.diffs,.online-form .cols,.bestiary{grid-template-columns:1fr!important}.shop,.modgrid,.stats{grid-template-columns:1fr}.row{flex-wrap:wrap}.lobby .code{letter-spacing:.15em}}@media (hover:none){button.btn:hover{transform:none}}
