:root{--hot:#ff5a1f;--amber:#ffb02e;--bg:#0c0a099e;--line:#ffffff24;--disp:Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Black", sans-serif;--ui:"Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif}*{box-sizing:border-box}html,body{color:#fff;height:100%;font-family:var(--ui);-webkit-user-select:none;user-select:none;background:#0b0908;margin:0;overflow:hidden}canvas#game{width:100%;height:100%;display:block;position:fixed;inset:0}#hud,#menu,#loading{pointer-events:none;position:fixed;inset:0}#hud{font-size:clamp(11px,1.15vh,15px)}.hidden{display:none!important}#loading{z-index:30;background:radial-gradient(at 50% 60%,#2a1509 0%,#0b0908 70%);flex-direction:column;justify-content:center;align-items:center;gap:22px;transition:opacity .6s;display:flex}.logo{font-family:var(--disp);letter-spacing:.04em;color:#f3ece4;text-shadow:0 0 40px #ff5a1f73,0 6px #000;font-size:clamp(56px,12vh,150px);line-height:.9;transform:skew(-8deg)}.logo span{color:var(--hot)}#loading .bar{background:#ffffff1f;width:min(420px,60vw);height:6px}#loading .bar i{background:linear-gradient(90deg, var(--hot), var(--amber));width:0;height:100%;transition:width .2s;display:block}#loadtext{letter-spacing:.3em;text-transform:uppercase;opacity:.6;font-size:12px}.panel{background:var(--bg);border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#top{text-align:center;position:absolute;top:1.6vh;left:50%;transform:translate(-50%)}#timer{font-family:var(--disp);letter-spacing:.04em;text-shadow:0 2px #000,0 0 18px #000000b3;font-size:4.6vh;line-height:1}#timer.warn{color:var(--hot);animation:.8s infinite pulse}#phase{letter-spacing:.32em;text-transform:uppercase;opacity:.85;text-shadow:0 1px 2px #000;margin-top:.4vh;font-size:1.25vh}@keyframes pulse{50%{opacity:.55}}#feed{flex-direction:column;align-items:flex-end;gap:.5vh;display:flex;position:absolute;top:1.6vh;right:1.6vw}.feeditem{background:var(--bg);border-right:3px solid var(--hot);white-space:nowrap;padding:.5vh .9vw;font-size:1.45vh;animation:.25s ease-out slidein}.feeditem b{font-weight:700}.feeditem i{opacity:.7;letter-spacing:.1em;margin:0 .5em;font-size:.85em;font-style:normal}.feeditem.me{background:#ff5a1f59}@keyframes slidein{0%{opacity:0;transform:translate(30px)}}#board{width:19vh;min-width:150px;font-size:1.3vh;position:absolute;top:21.6vh;left:1.6vw}#board .row{background:var(--bg);border-left:3px solid #0000;justify-content:space-between;margin-bottom:2px;padding:.3vh .7vh;display:flex}#board .row.focus{background:#fff3}#board .row.dead{opacity:.4;text-decoration:line-through}#board .row span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#map{border:2px solid var(--line);background:#0a09088c;border-radius:50%;width:19vh;min-width:150px;height:19vh;min-height:150px;position:absolute;top:1.6vh;left:1.6vw}#status{width:min(34vw,420px);position:absolute;bottom:2.4vh;left:1.6vw}#vname{font-family:var(--disp);letter-spacing:.05em;text-shadow:0 2px #000;transform-origin:0;font-size:3vh;transform:skew(-8deg)}#vname small{font-family:var(--ui);letter-spacing:.25em;opacity:.75;margin-left:1em;font-size:1.2vh;font-weight:600}.bar{border:1px solid var(--line);background:#0009;height:2.1vh;margin-top:.6vh;position:relative;overflow:hidden;transform:skew(-14deg)}.bar>i{transform-origin:0;background:linear-gradient(90deg,#d93b1c,#ffb02e 70%,#ffe37a);width:100%;transition:transform .12s;position:absolute;inset:0}.bar>u{transform-origin:0;opacity:.5;background:#fff;transition:transform .6s .25s;position:absolute;inset:0}.bar>b{text-shadow:0 1px 2px #000;font-size:1.3vh;font-weight:700;position:absolute;top:50%;right:8px;transform:translateY(-50%)skew(14deg)}.bar.nitro{height:1.2vh}.bar.nitro>i{background:linear-gradient(90deg,#1c6fd9,#5fd0ff)}.bar.crit>i{animation:.45s infinite pulse}#loadout{align-items:flex-end;gap:1vh;display:flex;position:absolute;bottom:2.4vh;right:1.6vw}.slot{text-align:center;width:12vh;min-width:96px;padding:.8vh;position:relative;overflow:hidden}.slot .key{opacity:.65;letter-spacing:.1em;font-size:1.1vh;position:absolute;top:.4vh;left:.6vh}.slot .big{font-family:var(--disp);margin-top:1vh;font-size:3vh;line-height:1.1}.slot .lbl{letter-spacing:.16em;opacity:.85;text-transform:uppercase;font-size:1.1vh}.slot .cool{transform-origin:top;background:#0000009e;height:100%;position:absolute;bottom:0;left:0;right:0}.slot.ready{border-color:var(--amber);box-shadow:inset 0 0 18px #ffb02e59}.slot.empty .big{opacity:.3}#speed{text-align:center;font-family:var(--disp);text-shadow:0 2px #000;font-size:4vh;line-height:.9;position:absolute;bottom:2.4vh;left:50%;transform:translate(-50%)}#speed small{font-family:var(--ui);letter-spacing:.3em;opacity:.7;font-size:1.1vh;display:block}#center{text-align:center;width:90vw;position:absolute;top:27%;left:50%;transform:translate(-50%,-50%)}#announce{font-family:var(--disp);letter-spacing:.05em;text-shadow:0 4px #000,0 0 50px #000c;opacity:0;font-size:9vh;line-height:1;transform:skew(-8deg)}#announce.show{animation:.35s cubic-bezier(.2,1.6,.4,1) forwards slam}#announce.out{opacity:0;transition:opacity .5s}#announce.warn{color:var(--hot)}#announce.good{color:#ffd84a}#announce.bad{color:#ff3b3b}#announcesub{letter-spacing:.34em;text-transform:uppercase;text-shadow:0 1px 3px #000;opacity:0;margin-top:1vh;font-size:1.9vh;transition:opacity .3s}@keyframes slam{0%{opacity:0;transform:skew(-8deg)scale(2.2)}to{opacity:1;transform:skew(-8deg)scale(1)}}#count{font-family:var(--disp);text-shadow:0 8px #000,0 0 80px #ff5a1fb3;opacity:0;font-size:26vh;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}#count.show{animation:.9s ease-out forwards countpop}@keyframes countpop{0%{opacity:0;transform:translate(-50%,-50%)scale(1.8)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(.8)}}#hitmark{opacity:0;width:5vh;height:5vh;margin:-2.5vh;position:absolute;top:50%;left:50%}#hitmark:before,#hitmark:after{content:"";clip-path:polygon(0 0,100% 0,100% 32%,0 32%,0 68%,100% 68%,100% 100%,0 100%);background:#fff;width:3px;margin-left:-1.5px;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 6px #000}#hitmark:before{transform:rotate(45deg)}#hitmark:after{transform:rotate(-45deg)}#hitmark.kill:before,#hitmark.kill:after{background:#ff3b1f;width:5px}#hurt{position:absolute;inset:0}.hurtarc{background:conic-gradient(from -22deg,#0000 0deg,#ff3c1e99 22deg,#0000 44deg 360deg);border-radius:50%;width:70vh;height:70vh;margin:-35vh;animation:.8s forwards fade;position:absolute;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#0000 61%,#000 64% 68%,#0000 71%);mask:radial-gradient(circle,#0000 61%,#000 64% 68%,#0000 71%)}@keyframes fade{to{opacity:0}}.dmgnum{font-family:var(--disp);color:#ffe37a;text-shadow:0 2px #000;pointer-events:none;font-size:2.6vh;animation:.8s ease-out forwards rise;position:absolute}@keyframes rise{to{opacity:0;transform:translateY(-6vh)}}.tag{text-align:center;white-space:nowrap;text-shadow:0 1px 2px #000,0 0 4px #000;will-change:transform;font-size:1.25vh;font-weight:700;position:absolute;transform:translate(-50%,-100%)}.tag .hp{background:#000000b3;border:1px solid #ffffff40;width:7vh;height:.7vh;margin:2px auto 0}.tag .hp i{background:#ff5a1f;height:100%;display:block}.tag.locked:after{content:"";border:2px solid var(--hot);border-left-color:#0000;border-right-color:#0000;border-radius:50%;width:5vh;height:5vh;margin:1vh 0 0 -2.5vh;animation:1.2s linear infinite spin;position:absolute;top:100%;left:50%}@keyframes spin{to{transform:rotate(360deg)}}#respawn{text-align:center;padding:1.4vh 3vw;position:absolute;top:62%;left:50%;transform:translate(-50%)}#respawn b{font-family:var(--disp);color:var(--hot);letter-spacing:.06em;font-size:4vh;display:block}#respawn span{letter-spacing:.2em;text-transform:uppercase;opacity:.85;font-size:1.5vh}#pickup{font-family:var(--disp);letter-spacing:.08em;color:#ffe37a;text-shadow:0 2px #000;opacity:0;font-size:3vh;transition:opacity .3s;position:absolute;bottom:14vh;left:50%;transform:translate(-50%)}#demo{letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;padding:.6vh 1.4vw;font-size:1.3vh;position:absolute;bottom:9.5vh;left:50%;transform:translate(-50%)}#demo b{color:var(--amber)}#hint{letter-spacing:.08em;white-space:nowrap;padding:.8vh 1.4vw;font-size:1.35vh;transition:opacity 1s;position:absolute;bottom:9.5vh;left:50%;transform:translate(-50%)}#hint kbd{font-family:var(--ui);background:#ffffff29;border:1px solid #ffffff4d;border-radius:3px;margin:0 .15em 0 .8em;padding:0 .5em;font-weight:700}#fps{opacity:.6;text-align:right;white-space:pre;font-family:monospace;font-size:11px;position:absolute;top:50%;right:1.6vw}#menu{z-index:20;pointer-events:auto;background:linear-gradient(#080605c7 0%,#08060526 40%,#080605d9 100%);flex-direction:column;justify-content:space-between;align-items:center;padding:5vh 4vw 4vh;display:flex}#menu .logo{font-size:clamp(60px,15vh,170px)}#menu .tagline{letter-spacing:.6em;text-transform:uppercase;opacity:.85;text-align:center;margin-top:1vh;font-size:1.7vh}#cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2vw;width:min(1200px,92vw);display:grid}.card{cursor:pointer;border:2px solid var(--line);background:#0e0c0bb8;padding:1.6vh 1.2vw;transition:transform .15s,border-color .15s,background .15s;position:relative}.card:hover{background:#1e1814d9;transform:translateY(-4px)}.card.sel{border-color:var(--c);box-shadow:0 0 30px color-mix(in srgb, var(--c) 45%, transparent);background:#221a15eb}.card h3{font-family:var(--disp);letter-spacing:.05em;color:var(--c);transform-origin:0;margin:0;font-size:3.2vh;font-weight:400;transform:skew(-8deg)}.card .cls{letter-spacing:.26em;text-transform:uppercase;opacity:.75;margin:.3vh 0 1vh;font-size:1.2vh}.card p{opacity:.88;min-height:4.2em;margin:0 0 1vh;font-size:1.45vh;line-height:1.4}.stat{letter-spacing:.14em;text-transform:uppercase;grid-template-columns:6.5em 1fr;align-items:center;margin-top:.4vh;font-size:1.15vh;display:grid}.stat div{background:#ffffff1f;height:.7vh}.stat div i{background:var(--c);height:100%;display:block}.card .sp{border-top:1px solid var(--line);margin-top:1.1vh;padding-top:.9vh;font-size:1.3vh}.card .sp b{color:var(--amber);letter-spacing:.1em}#menubtns{align-items:center;gap:1.4vw;display:flex}.btn{font-family:var(--disp);letter-spacing:.08em;cursor:pointer;color:#140a05;background:linear-gradient(#ffb02e,#ff5a1f);border:0;padding:1.2vh 4vw;font-size:3.6vh;transition:transform .1s,filter .1s;transform:skew(-10deg);box-shadow:0 6px #7a2408,0 12px 30px #00000080}.btn:hover{filter:brightness(1.15);transform:skew(-10deg)translateY(-2px)}.btn.ghost{color:#fff;box-shadow:0 0 0 2px var(--line) inset;background:#14100ecc;padding:1.4vh 2vw;font-size:2.2vh}#menufoot{opacity:.7;letter-spacing:.08em;text-align:center;font-size:1.25vh;line-height:1.7}#menufoot a{color:var(--amber);cursor:pointer;text-decoration:underline}#credits{border:1px solid var(--line);z-index:40;pointer-events:auto;-webkit-user-select:text;user-select:text;background:#0a0807f5;padding:3vh 3vw;font-size:13px;line-height:1.6;position:fixed;inset:8vh 12vw;overflow:auto}#credits h2{font-family:var(--disp);letter-spacing:.06em;margin:0 0 1vh;font-weight:400}#credits pre{white-space:pre-wrap;font-family:var(--ui)}@media (max-width:900px){#cards{grid-template-columns:repeat(2,1fr)}.card p{display:none}}#presets{letter-spacing:.2em;justify-content:center;align-items:center;gap:.6vw;margin-bottom:1.8vh;font-size:1.3vh;display:flex}#presets button{font-family:var(--disp);letter-spacing:.08em;color:#fff;border:2px solid var(--line);cursor:pointer;background:#14100ecc;padding:.7vh 1.4vw;font-size:1.9vh;transform:skew(-10deg)}#presets button.sel{border-color:var(--amber);color:var(--amber);box-shadow:inset 0 0 14px #ffb02e59}#presets .hint{opacity:.55;letter-spacing:.1em;margin-left:1vw}#touch{z-index:15;pointer-events:none;touch-action:none;position:fixed;inset:0}#tsteer{pointer-events:auto;touch-action:none;width:48%;height:72%;position:absolute;bottom:0;left:0}#tsteer>span{letter-spacing:.3em;opacity:.55;text-shadow:0 1px 3px #000;font-size:1.6vh;transition:opacity .6s;position:absolute;bottom:9vh;left:6vw}#tsteer.used>span{opacity:0}#tsteer .ring{opacity:0;background:#00000047;border:2px solid #ffffff47;border-radius:4.5vh;width:22vh;height:9vh;margin:-4.5vh 0 0 -11vh;transition:opacity .15s;position:fixed}#tsteer .ring.on{opacity:1}#tsteer .knob{background:#ffb02ed9;border-radius:50%;width:8vh;height:8vh;margin:-4vh;position:absolute;top:50%;left:50%;box-shadow:0 0 16px #ff8c1e99}#tbtns{right:max(2vw, env(safe-area-inset-right));bottom:max(3vh, env(safe-area-inset-bottom));pointer-events:auto;grid-template-columns:repeat(2,15vh);grid-auto-rows:15vh;gap:1.6vh;display:grid;position:absolute}.tb{touch-action:none;-webkit-tap-highlight-color:transparent;background:#0e0c0b8c;border:2px solid #ffffff4d;border-radius:2.4vh;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.tb b{font-family:var(--disp);font-size:4.4vh;font-weight:400;line-height:1}.tb i{letter-spacing:.14em;opacity:.8;margin-top:.5vh;font-size:1.5vh;font-style:normal}.tb u{transform-origin:top;pointer-events:none;background:#0009;position:absolute;inset:0;transform:scaleY(0)}.tb.down{background:#ff8c1e8c;border-color:#ffb02e;transform:scale(.95)}.tb.ready{border-color:#ffb02e;box-shadow:inset 0 0 18px #ffb02e73}.tb.empty b{opacity:.35}.tb.wide{grid-column:span 2;align-self:end;height:11vh}.tb.wide b{letter-spacing:.08em;font-size:3.4vh}#rotate{z-index:50;font-family:var(--disp);letter-spacing:.06em;pointer-events:auto;background:#0b0908;justify-content:center;align-items:center;font-size:6vw;display:none;position:fixed;inset:0}@media (orientation:portrait){body.touch #rotate{display:flex}}body.touch #loadout,body.touch #speed,body.touch #board,body.touch #hint,body.touch #fps{display:none!important}body.touch #status{width:30vw;inset:9vh 2vw auto auto}body.touch #vname{text-align:right;transform-origin:100%;font-size:2.6vh}body.touch #map{width:24vh;height:24vh}body.touch #feed{top:22vh}body.touch #demo{bottom:3vh}#drivebtn{margin-top:2vh;padding:1.6vh 7vw;font-size:6vh;animation:1.4s infinite pulse}#driver{text-align:center;letter-spacing:.16em;width:min(420px,70vw);margin:1.4vh auto 0;font-size:1.3vh}#driver b{font-family:var(--disp);letter-spacing:.08em;color:var(--amber);font-size:2vh;font-weight:400}#driver>div{background:#ffffff24;height:.7vh;margin:.5vh 0}#driver>div i{background:linear-gradient(90deg, var(--hot), var(--amber));height:100%;display:block}#driver span{opacity:.7}#paints{letter-spacing:.2em;justify-content:center;align-items:center;gap:.8vw;margin-bottom:1.2vh;font-size:1.3vh;display:flex}#swatches{gap:.5vw;display:flex}.sw{cursor:pointer;border:2px solid #ffffff40;border-radius:50%;width:3.4vh;height:3.4vh;padding:0;font-size:1.4vh;line-height:1}.sw.sel{box-shadow:0 0 0 2px var(--amber);border-color:#fff}.sw.locked{opacity:.35;cursor:not-allowed;filter:grayscale(.7)}.card.locked{cursor:not-allowed}.card.locked>:not(.lock){opacity:.28;filter:grayscale(.8)}.card .lock{flex-direction:column;justify-content:center;align-items:center;gap:.6vh;display:flex;position:absolute;inset:0}.card .lock b{font-family:var(--disp);letter-spacing:.1em;font-size:3.4vh;font-weight:400}.card .lock span{letter-spacing:.18em;text-transform:uppercase;opacity:.85;font-size:1.4vh}#tutorial{z-index:16;border:1px solid var(--amber);letter-spacing:.03em;text-align:center;pointer-events:none;background:#0c0a09cc;max-width:86vw;padding:1.4vh 2.4vw;font-size:2.2vh;position:fixed;top:15vh;left:50%;transform:translate(-50%)}#tutorial.pop{animation:.3s ease-out slam}#tutorial b{color:var(--amber)}#tutorial kbd{font-family:var(--ui);background:#ffffff29;border:1px solid #ffffff59;border-radius:4px;margin:0 .15em;padding:0 .5em;font-weight:700}#postmatch{z-index:25;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080605b8;justify-content:center;align-items:center;animation:.4s fadein;display:flex;position:fixed;inset:0}@keyframes fadein{0%{opacity:0}}.pm{text-align:center;width:min(980px,94vw);max-height:96vh;padding:0 1.5vw 1vh;overflow:hidden auto}.pmhead{font-family:var(--disp);letter-spacing:.05em;text-shadow:0 4px #000;font-size:9vh;line-height:1;transform:skew(-8deg)}.pmhead.win{color:#ffd84a}.pmsub{letter-spacing:.24em;text-transform:uppercase;opacity:.85;margin:1vh 0 2.4vh;font-size:1.7vh}.pmcols{text-align:left;grid-template-columns:1.1fr 1fr;gap:1.6vw;display:grid}.pmbox{border:1px solid var(--line);background:#0e0c0bcc;padding:1.8vh 1.6vw}.pmline{border-bottom:1px solid #ffffff0f;justify-content:space-between;padding:.5vh 0;font-size:1.8vh;display:flex}.pmline b{color:var(--amber);font-weight:700}.pmline.total{border-bottom:0;padding-top:1vh;font-size:2.1vh}.pmbar{margin-top:1.6vh}.pmbar label{letter-spacing:.2em;opacity:.9;justify-content:space-between;font-size:1.3vh;display:flex}.pmbar label b{color:var(--amber)}.pmbar>div{background:#ffffff1f;height:1.4vh;margin-top:.5vh;overflow:hidden;transform:skew(-14deg)}.pmbar i{background:linear-gradient(90deg, var(--hot), var(--amber));height:100%;transition:width .7s ease-out;display:block}.pmunlocks{flex-direction:column;gap:1vh;display:flex}.unlock{border-left:5px solid var(--c);background:#0e0c0bd9;padding:1.2vh 1.2vw;animation:.4s ease-out backwards slidein}.unlock:nth-child(2){animation-delay:.25s}.unlock:nth-child(3){animation-delay:.5s}.unlock:nth-child(4){animation-delay:.75s}.unlock small{letter-spacing:.26em;color:var(--c);font-size:1.2vh;display:block}.unlock b{font-family:var(--disp);letter-spacing:.05em;font-size:3vh;font-weight:400;line-height:1.15;display:block}.unlock span{opacity:.8;font-size:1.4vh}.unlock.dim{--c:#6b625a}.pmbtns{justify-content:center;gap:1.4vw;margin-top:3vh;display:flex}@media (max-width:760px),(max-height:480px){.pmcols{grid-template-columns:1fr 1fr}.pmhead{font-size:13vh}.pmline,.pmline.total{font-size:3vh}.unlock b{font-size:5vh}.unlock span,.unlock small,.pmbar label{font-size:2.4vh}.pmsub{font-size:2.6vh}#tutorial{font-size:3.6vh;top:20vh}}
