@import url('/fx-design.css');
:root{color-scheme:dark;--ink:#e9f0e8;--muted:#83958f;--acid:#baff62;--panel:#101c1d;--line:#2a3a38;--mono:'DM Mono',monospace;--display:'Barlow Condensed',Impact,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#081110;color:var(--ink)}body{font-family:var(--mono);font-size:11px}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--acid);outline-offset:3px}.app{min-height:100vh;display:flex;flex-direction:column;padding:0 3.2vw}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font:800 21px/0.8 var(--display);letter-spacing:.04em}.brand b{color:var(--acid)}.brand small{display:block;color:#81918a;font:9px/1 var(--mono);letter-spacing:.16em;margin-top:8px}.brand-mark{font:900 italic 39px/.8 var(--display);color:var(--acid);letter-spacing:-.13em;padding-right:10px}.brand-mark span{font:900 12px var(--display);letter-spacing:-.12em}.top-right{display:flex;align-items:center;gap:32px}.connection{font-size:10px;color:#a0b4aa;letter-spacing:.13em}.connection i,.live-badge i,.eyebrow i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--acid);margin-right:8px;box-shadow:0 0 12px #baff6299}.connection i.offline{background:#ff7878;box-shadow:none}.text-button{border:0;border-left:1px solid var(--line);padding:8px 0 8px 30px;background:none;color:var(--ink);letter-spacing:.12em}.text-button span{color:var(--acid);padding-left:16px}.game-layout{flex:1;min-height:540px;display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:1px;padding:20px 0 12px}.race-view{position:relative;overflow:hidden;min-height:540px;background:#1b2c2c;border:1px solid #324542}.race-view:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #07121088;background:linear-gradient(180deg,#0a1712a8,transparent 25%,transparent 68%,#071310bd)}canvas{width:100%;height:100%;position:absolute;inset:0;display:block}.race-top,.race-bottom,.controls-hint,.race-message{position:absolute;z-index:1}.race-top{left:28px;right:28px;top:25px;display:flex;justify-content:space-between}.eyebrow{font:10px var(--mono);letter-spacing:.13em;color:#a6b7aa}.slash{color:var(--acid);padding:0 5px}.track-name h1,.side-head h2,.standings-overlay h2{font:900 40px/.9 var(--display);letter-spacing:.02em;margin:13px 0 6px;text-transform:uppercase}.track-name p{margin:0;color:#bac6b6}.round-clock{text-align:right}.round-clock span,.round-clock strong{display:block}.round-clock span{font-size:9px;color:#a5b5a7;letter-spacing:.1em}.round-clock strong{font:700 25px var(--display);margin-top:6px}.race-bottom{bottom:68px;left:28px;right:28px;display:flex;align-items:end;justify-content:space-between}.speed-readout>span{font:900 italic 70px/.8 var(--display);letter-spacing:-.03em}.speed-readout small{font-size:10px;color:var(--acid);margin-left:8px}.speed-bars{display:flex;gap:3px;margin-top:12px}.speed-bars i{width:12px;height:3px;transform:skew(-25deg);background:var(--acid)}.speed-bars i:nth-last-child(-n+3){opacity:.25}.lap-readout{display:grid;gap:10px;text-align:right;color:#a0b4a7;font-size:9px;letter-spacing:.08em}.lap-readout b{display:inline-block;color:white;font:600 17px var(--display);min-width:80px}.controls-hint{bottom:20px;left:28px;display:flex;gap:19px;color:#b3c1b3;font-size:9px;letter-spacing:.04em}kbd{display:inline-block;border:1px solid #70837a;border-radius:2px;padding:3px 5px;margin-right:3px;font:9px var(--mono);color:#d6e2d5}.race-message{top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 18px;background:#0b1715df;color:var(--acid);letter-spacing:.12em}.sidebar{background:#101c1b;border:1px solid #293b36;display:flex;flex-direction:column;padding:25px 21px}.side-head{display:flex;justify-content:space-between;align-items:start}.side-head h2,.standings-overlay h2{font-size:35px;margin:12px 0 28px}.side-head h2 span,.standings-overlay h2 span{color:var(--acid)}.live-badge{font-size:9px;color:var(--acid);border:1px solid #4e6746;padding:7px}.live-badge i{width:5px;height:5px;margin-right:4px}.leaderboard-heading{display:flex;justify-content:space-between;padding:12px 0;color:#81948b;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:9px}.leaderboard{list-style:none;padding:0;margin:0;overflow:auto}.leaderboard li:not(.empty-board){display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:57px;border-bottom:1px solid #263632}.rank{color:#83958b}.rank.first{color:var(--acid)}.pilot{overflow:hidden}.pilot strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ecf1e8;font:700 16px var(--display);letter-spacing:.03em}.pilot small{display:block;font:9px var(--mono);color:#7f9389;margin-top:3px}.pilot-time{color:#d9e4d6;font:600 17px var(--display)}.empty-board{padding:20px 0;color:#83958b;line-height:1.6}.side-footer{margin-top:auto;padding-top:25px}.side-footer strong{display:block;font:700 29px var(--display);margin-top:5px}.side-footer small{font:9px var(--mono);color:#87998e}.tab-hint{border-top:1px solid var(--line);margin-top:19px;padding-top:17px;color:#91a499;font-size:9px}.bottom-bar{height:43px;display:flex;justify-content:space-between;align-items:center;color:#72857b;font-size:9px;letter-spacing:.12em}.bottom-bar b{color:var(--acid);font-size:13px}.overlay{position:fixed;inset:0;z-index:5;background:#020a09c7;display:flex;justify-content:center;align-items:center;padding:20px;backdrop-filter:blur(6px)}.overlay[hidden],.standings-overlay[hidden]{display:none}.garage-panel{width:min(490px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#14221f;border:1px solid #526a57;padding:28px 32px 30px;box-shadow:0 24px 100px #0009}.garage-header{display:flex;justify-content:space-between;align-items:center}.close-button{border:0;background:none;color:#a8b9ab;font:27px var(--display)}.garage-copy .overline{font:10px var(--mono);color:var(--acid);letter-spacing:.14em;margin:34px 0 9px}.garage-copy h2{font:900 italic 76px/.76 var(--display);letter-spacing:-.025em;margin:0}.garage-copy h2 em{color:var(--acid);font-style:inherit}.garage-copy>p:last-child{color:#aabcb0;font:11px/1.6 var(--mono);max-width:320px;margin:19px 0 24px}form>label,legend{display:block;color:#e2eae0;font-size:10px;letter-spacing:.1em;width:100%;margin-bottom:9px}form>label span,legend span{float:right;color:#71867a;font-size:9px}input[type=text],input:not([type]){width:100%;height:45px;background:#0b1715;border:1px solid #43574c;padding:0 13px;color:white;border-radius:0}input::placeholder{color:#687f71}fieldset{padding:0;border:0;margin:21px 0 0}.model-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.model-options label input,.colors label input{position:absolute;opacity:0}.model-options label span{display:flex;flex-direction:column;gap:3px;background:#0d1917;border:1px solid #35483e;padding:12px;cursor:pointer}.model-options input:checked+span{border-color:var(--acid);background:#213323}.model-options input:focus-visible+span,.colors input:focus-visible+span{outline:2px solid white;outline-offset:2px}.model-options b{color:var(--acid);font:10px var(--mono)}.model-options strong{font:700 19px var(--display)}.model-options small{color:#7f9185;font-size:8px}.colors{display:flex;gap:12px}.colors span{display:block;width:26px;height:26px;background:var(--swatch);border:3px solid #14221f;outline:1px solid transparent;cursor:pointer}.colors input:checked+span{outline-color:var(--acid)}.form-error{color:#ff9b91;min-height:14px;margin:13px 0 5px}.join-button{width:100%;border:0;background:var(--acid);color:#10200e;display:flex;justify-content:space-between;padding:16px;font:800 18px var(--display);letter-spacing:.04em}.join-button:hover{background:#d5ff9c}.form-note{color:#768a7c;font-size:9px;letter-spacing:.06em;margin:13px 0 0}.standings-overlay{position:fixed;z-index:3;inset:0;background:#040b09c9;display:grid;place-items:center;backdrop-filter:blur(5px)}.standings-overlay>div{width:min(550px,90vw);max-height:80vh;overflow:auto;background:#12211e;border:1px solid #4e6755;padding:32px}.standings-overlay p{color:#8da196;margin:25px 0 0;font-size:9px;letter-spacing:.1em}@media(max-width:850px){.app{padding:0 15px}.game-layout{grid-template-columns:1fr}.race-view{min-height:58vh}.sidebar{min-height:260px}.side-footer{display:flex;justify-content:space-between;align-items:end}.tab-hint{border:0}.topbar{height:67px}.bottom-bar{gap:15px}.controls-hint{gap:8px;font-size:8px}}@media(max-width:500px){.connection span{display:none}.top-right{gap:10px}.text-button{padding-left:15px}.race-top{left:15px;right:15px}.track-name h1{font-size:30px}.race-bottom{left:15px;right:15px}.controls-hint{left:15px;right:15px;flex-wrap:wrap;bottom:12px}.controls-hint span:nth-child(2)~span{display:none}.garage-panel{padding:24px}.garage-copy h2{font-size:65px}.bottom-bar span:last-child{display:none}}
.colors .aqua{--swatch:#55e6dc}.colors .gold{--swatch:#f7c75e}.colors .coral{--swatch:#ff7380}.colors .violet{--swatch:#a998ff}.colors .white{--swatch:#f3f4e9}
.boost-meter{width:150px;margin-top:12px}.boost-meter>div{display:flex;justify-content:space-between;align-items:center;color:#b6c8b6;font-size:9px;letter-spacing:.08em}.boost-meter b{color:var(--acid)}.boost-meter progress{display:block;width:100%;height:7px;margin-top:6px;appearance:none;border:0;background:#243c35}.boost-meter progress::-webkit-progress-bar{background:#243c35}.boost-meter progress::-webkit-progress-value{background:var(--acid);box-shadow:0 0 14px #baff62}.boost-meter progress::-moz-progress-bar{background:var(--acid)}.ship-preview{height:138px;position:relative;overflow:hidden;margin-bottom:8px;border:1px solid #40564d;background:radial-gradient(ellipse at 50% 65%,#315b50 0,#172b28 38%,#0b1715 75%)}.ship-preview:before,.ship-preview:after{content:'';position:absolute;pointer-events:none}.ship-preview:before{inset:0;background:repeating-linear-gradient(90deg,transparent 0 36px,#a6d9b908 37px 38px),repeating-linear-gradient(0deg,transparent 0 26px,#a6d9b908 27px 28px)}.ship-preview:after{left:20%;right:20%;bottom:14px;height:20px;border:1px solid #7bcab74f;border-radius:50%}.ship-preview canvas{position:absolute;inset:0;width:100%;height:100%}.ship-preview-label,.ship-preview-spec{position:absolute;z-index:1;top:10px;left:12px;color:#a5b9aa;font-size:8px;letter-spacing:.1em}.ship-preview-label b,.ship-preview-spec b{color:var(--acid)}.ship-preview-spec{top:auto;bottom:10px;left:auto;right:12px}@media(max-width:500px){.controls-hint span:nth-child(2)~span{display:inline}.controls-hint{gap:5px;font-size:8px}.controls-hint kbd{padding:2px 3px}.race-bottom{bottom:79px}.boost-meter{width:120px}}
.pad-key{display:grid;gap:9px;border-top:1px solid var(--line);padding:16px 0;margin-bottom:15px;color:#9cb0a4;font-size:9px;letter-spacing:.07em}.pad-key i{display:inline-block;width:13px;height:5px;margin-right:8px;transform:skew(-25deg);vertical-align:middle}.speed-key{background:#62e6ff;box-shadow:0 0 7px #62e6ff}.energy-key{background:#baff62;box-shadow:0 0 7px #baff62}@media(max-width:850px){.pad-key{margin:0 15px 0 0;border:0;padding:0}}
.speed-effects{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;overflow:hidden;background:repeating-conic-gradient(from 3deg at 50% 48%,transparent 0deg 5.7deg,rgba(211,248,255,.75) 5.8deg 5.98deg,transparent 6.2deg 12deg);-webkit-mask-image:radial-gradient(ellipse at 50% 48%,transparent 0%,transparent 47%,#000 100%);mask-image:radial-gradient(ellipse at 50% 48%,transparent 0%,transparent 47%,#000 100%);transition:opacity .35s}.speed-effects.fast{opacity:.15;animation:speed-pulse .22s linear infinite alternate}.speed-effects.boosting{opacity:.42;animation-duration:.12s}@keyframes speed-pulse{from{transform:scale(1)}to{transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){.speed-effects.fast{animation:none}}
@media(max-width:500px){.brand{font-size:17px}.brand-mark{font-size:31px}.brand small{font-size:7px}.top-right{gap:6px}.text-button{padding-left:8px;letter-spacing:.03em;font-size:9px}.text-button span{padding-left:4px}}
/* Put the circuit in the foreground; the full timing grid remains on Tab. */
.game-layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.race-view{min-height:620px}.race-top{top:24px;left:28px;right:28px}.race-top .eyebrow,.round-clock>span{color:#d9ff54;font-weight:500;letter-spacing:.12em;text-shadow:0 1px 5px #050b13}.current-lap{display:block;font:900 italic clamp(34px,4vw,58px)/.95 var(--display);letter-spacing:.03em;color:#f2f6f3;text-shadow:0 3px 2px #19242d;margin:6px 0}.track-name h1{font:700 19px/1 var(--display);margin:10px 0 3px}.track-name p{font-size:9px;text-shadow:0 1px 4px #000}.round-clock strong{font:900 italic 36px/.95 var(--display);text-shadow:0 3px 2px #19242d}.round-clock .pilots-online{display:block;font:10px var(--mono);margin-top:12px;color:#e7f6e8}.boost-meter progress::-webkit-progress-value{background:repeating-linear-gradient(90deg,#d9ff54 0 6px,transparent 6px 8px)}.boost-meter progress::-moz-progress-bar{background:repeating-linear-gradient(90deg,#d9ff54 0 6px,transparent 6px 8px)}.speed-effects{background:linear-gradient(110deg,rgba(110,218,255,.16),transparent 18%,transparent 82%,rgba(110,218,255,.16));-webkit-mask-image:none;mask-image:none;animation:none!important}.speed-effects.fast{opacity:.4}.speed-effects.boosting{opacity:.85}.controls-hint{opacity:.8}@media(max-width:850px){.game-layout{grid-template-columns:1fr}.race-view{min-height:70vh}.current-lap{font-size:40px}}@media(max-width:500px){.race-view{min-height:65vh}.race-top{top:16px;left:15px;right:15px}.current-lap{font-size:32px}.round-clock strong{font-size:25px}.track-name p{max-width:180px}}
.round-clock .pilots-online span{display:inline;color:inherit}
.speed-effects.reduced.fast{opacity:.12}.speed-effects.reduced.boosting{opacity:.2}
/* Night circuit palette: cool HUD light against deep violet-black panels. */
:root{--ink:#e9f3fa;--muted:#8a9cab;--acid:#64efff;--panel:#10101d;--line:#333147}
html,body{background:#080811;color:var(--ink)}
.race-view{background:#10101e;border-color:#353248}
.race-view:after{box-shadow:inset 0 0 100px #08051699;background:linear-gradient(180deg,#090617a8,transparent 25%,transparent 68%,#080614bd)}
.garage-panel,.standings-overlay>div,.sidebar{background:#11101e;border-color:#504260}
.overlay,.standings-overlay{background:#05040edb}
input[type=text],input:not([type]),.model-options label span{background:#0b0b17;border-color:#3c3a51}
.model-options input:checked+span{background:#142e39;border-color:var(--acid)}
.ship-preview{border-color:#3e3a59;background:radial-gradient(ellipse at 50% 65%,#20394b 0,#17162c 42%,#090a17 78%)}
.join-button{background:#64efff;color:#0b1522}.join-button:hover{background:#b1f7ff}
.race-top .eyebrow,.round-clock>span{color:#7cf2ff}
.boost-meter progress::-webkit-progress-value{background:repeating-linear-gradient(90deg,#64efff 0 6px,transparent 6px 8px)}
.boost-meter progress::-moz-progress-bar{background:repeating-linear-gradient(90deg,#64efff 0 6px,transparent 6px 8px)}
.energy-warning{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;box-shadow:inset 0 0 80px 12px #ff304b88;transition:opacity .2s}.energy-warning.active{opacity:.8;animation:energy-warning-pulse 1s ease-in-out infinite alternate}.boost-meter.critical b{color:#ff5360}.boost-meter.critical progress::-webkit-progress-value{background:repeating-linear-gradient(90deg,#ff5360 0 6px,transparent 6px 8px);box-shadow:0 0 12px #ff304b}.boost-meter.critical progress::-moz-progress-bar{background:repeating-linear-gradient(90deg,#ff5360 0 6px,transparent 6px 8px)}@keyframes energy-warning-pulse{from{opacity:.25}to{opacity:.8}}@media(prefers-reduced-motion:reduce){.energy-warning.active{animation:none;opacity:.5}}
.connection i,.live-badge i,.eyebrow i{box-shadow:0 0 12px #64efff99}
.connection i.offline{background:#ff7878;box-shadow:none}
@media(max-width:500px){.topbar{height:auto;min-height:67px;flex-wrap:wrap;gap:8px;padding:12px 0}.top-right{width:100%;justify-content:space-between;gap:4px}.top-right .text-button{padding:6px 0 6px 8px}}

.garage-link{text-decoration:none}.garage-link:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
.credit-reward{position:absolute;z-index:4;top:115px;left:50%;transform:translateX(-50%);padding:10px 16px;border-left:2px solid #c4ff67;background:#101a20e8;color:#d8ff9f;font:700 11px var(--mono);letter-spacing:.08em;text-align:center;pointer-events:none}.credit-reward[hidden]{display:none}@media(max-width:600px){.credit-reward{top:125px;width:max-content;max-width:85%;font-size:9px}}
.versus-menu{position:relative}.versus-menu summary{cursor:pointer;list-style:none;white-space:nowrap}.versus-menu summary::-webkit-details-marker{display:none}.versus-menu summary:focus-visible{outline:2px solid var(--acid);outline-offset:3px}.versus-panel{position:absolute;z-index:10;top:calc(100% + 8px);right:0;width:min(320px,90vw);max-height:75vh;overflow:auto;padding:20px;background:#101c1d;border:1px solid #536a5c;box-shadow:0 12px 35px #0009}.versus-panel h2,.versus-results h2{font:900 30px/.95 var(--display);margin:10px 0}.versus-panel h2 span,.versus-results h2 span{color:var(--acid)}.versus-panel p{color:#a6b7aa;line-height:1.5}.versus-panel label{display:block;color:#a6b7aa;letter-spacing:.08em;margin:16px 0 8px}.versus-panel input{height:38px}.versus-join{display:flex;gap:6px}.versus-join button,.versus-secondary{border:1px solid #536a5c;background:#101c1d;color:var(--ink);padding:0 14px}.versus-action{width:100%;border:0;background:var(--acid);color:#10200e;padding:11px;font:800 16px var(--display);letter-spacing:.06em}.versus-action:hover{background:#d5ff9c}.versus-secondary{width:100%;margin-top:8px;padding:10px}.versus-panel ol,.versus-position ol,.versus-results ol{list-style:none;padding:0}.versus-panel li{padding:7px 0;border-bottom:1px solid var(--line);color:var(--ink)}#versus-feedback{color:#ff9b91}.versus-countdown{position:absolute;z-index:3;top:42%;left:50%;transform:translate(-50%,-50%);color:var(--acid);font:900 italic 96px/.9 var(--display);text-shadow:0 3px 16px #000}.versus-position{position:absolute;z-index:2;top:140px;right:28px;text-align:right;color:#e9f0e8;text-shadow:0 2px 5px #000}.versus-position strong{font:800 22px var(--display);color:var(--acid)}.versus-position ol{margin:6px 0;line-height:1.7}.versus-results{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%);width:min(360px,90%);max-height:80%;overflow:auto;padding:24px;background:#101c1df2;border:1px solid #536a5c;box-shadow:0 12px 35px #0009}.versus-results li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.versus-results li b{color:var(--acid)}.versus-countdown[hidden],.versus-position[hidden],.versus-results[hidden],.versus-panel [hidden]{display:none}@media(max-width:500px){.versus-menu summary{padding:6px 0 6px 8px}.versus-panel{right:auto;left:-55px}.versus-position{top:110px;right:15px;font-size:9px}.versus-position strong{font-size:17px}}
.versus-countdown{font-size:clamp(112px,20vw,240px);line-height:.8;color:#e8ffca;-webkit-text-stroke:2px #b4ff59;text-shadow:0 0 8px #d8ffad,0 0 28px #8dff43,0 8px 0 #2b5e25,0 15px 30px #000}.versus-countdown.go{font-size:clamp(85px,16vw,180px);color:#dcff90}.versus-countdown.pulse{animation:versus-cue .9s cubic-bezier(.15,.75,.2,1) both}@keyframes versus-cue{0%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}18%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:.8;transform:translate(-50%,-50%) scale(.95)}}@media(prefers-reduced-motion:reduce){.versus-countdown.pulse{animation:none}}
.versus-countdown.model{opacity:0!important;pointer-events:none}
.versus-waiting[hidden]{display:none}.versus-waiting{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 25%,#1c2a29,#071014 70%);opacity:1}.versus-waiting.is-fading{opacity:0;pointer-events:none;transition:opacity .55s ease}.versus-waiting-content{width:min(100%,520px)}.versus-waiting-brand{color:var(--acid);font:700 11px var(--mono);letter-spacing:.18em}.versus-waiting-brand b{color:var(--ink)}.versus-waiting h2{margin:32px 0 0;color:var(--ink);font:900 italic clamp(34px,7vw,64px)/.95 var(--display)}.versus-waiting h2 span{color:var(--acid)}.versus-waiting p{margin:18px 0 0;color:#a6b7aa;font:11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase}.versus-waiting-bar{height:3px;margin-top:28px;overflow:hidden;background:#284442}.versus-waiting-bar::after{content:'';display:block;width:36%;height:100%;background:var(--acid);animation:versus-waiting-sweep 1.3s ease-in-out infinite alternate}@keyframes versus-waiting-sweep{to{transform:translateX(178%)}}@media(prefers-reduced-motion:reduce){.versus-waiting.is-fading{transition:opacity .15s ease}.versus-waiting-bar::after{animation:none;width:100%}}
.versus-action:disabled{background:#43574c;color:#a6b7aa;cursor:default}
#versus-create{margin-top:16px}
.versus-protection{position:absolute;z-index:2;left:50%;top:62%;transform:translateX(-50%);padding:6px 10px;background:#101c1dd9;color:#a5f3ff;letter-spacing:.1em;pointer-events:none}.versus-protection[hidden]{display:none}.versus-results:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
.weapon-hud{position:absolute;z-index:2;left:50%;bottom:54px;transform:translateX(-50%);display:grid;gap:3px;min-width:140px;padding:8px 14px;border:1px solid #ffc642;background:#101c1de8;color:#ffc642;text-align:center;pointer-events:none}.weapon-hud span,.weapon-hud small{font-size:10px;letter-spacing:.12em}.weapon-hud strong{font:800 18px var(--display);color:#fff}.weapon-hud[hidden]{display:none}
.weapon-equipped{display:flex;align-items:center;justify-content:center;gap:8px}.weapon-equipped svg{width:30px;height:30px;fill:none;stroke:#ffc642;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #ffa825)}
.incoming-warning,.combat-damage{position:absolute;z-index:3;left:50%;transform:translateX(-50%);pointer-events:none;font:800 16px var(--display);letter-spacing:.1em;text-shadow:0 0 12px currentColor}.incoming-warning{top:24%;color:#ffba46;animation:combat-warning .45s ease-in-out infinite alternate}.combat-damage{bottom:calc(100% + 8px);color:#ff6554;white-space:nowrap}.incoming-warning[hidden],.combat-damage[hidden]{display:none}.boost-meter.combat-hit{animation:combat-hit .28s ease-out 3}.boost-meter.combat-hit #energy-label,.boost-meter.combat-hit b{color:#ff6657}@keyframes combat-warning{from{opacity:.65}to{opacity:1}}@keyframes combat-hit{50%{filter:brightness(2);transform:translateX(3px)}}@media(prefers-reduced-motion:reduce){.incoming-warning,.boost-meter.combat-hit{animation:none}}
.boost-meter.soft.combat-hit{animation:none;filter:brightness(1.45)}.incoming-warning.soft{animation:none}
.versus-settings select,.versus-results select{display:block;width:100%;height:38px;padding:0 10px;background:#0b1715;border:1px solid #43574c;border-radius:0;color:var(--ink);font:inherit}.versus-settings select:disabled{opacity:.8}.versus-settings select:focus-visible,.versus-results select:focus-visible{outline:2px solid var(--acid);outline-offset:3px}.versus-results{top:140px;right:28px;left:auto;transform:none;width:min(290px,38%);max-height:calc(100% - 170px);padding:16px;background:#101c1dea}.versus-results h2{font-size:26px}.versus-results p{color:var(--acid);font-weight:700}.versus-results label{display:block;color:#a6b7aa;letter-spacing:.08em;margin:12px 0 8px}.versus-results .versus-action{margin-top:12px}.versus-results [hidden]{display:none}@media(max-width:600px){.versus-results{top:105px;right:12px;width:min(250px,58%);max-height:55%;padding:12px}.versus-results h2{font-size:22px}.versus-results li{padding:6px 0}.versus-results select{height:34px}}
.versus-results.final{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(360px,90%);max-height:80%;padding:24px}
@media(max-width:500px){.versus-panel{position:fixed;top:80px;left:12px;right:12px;width:auto;max-height:calc(100vh - 100px)}}
.audio-settings{position:relative}.audio-settings summary{cursor:pointer;list-style:none;white-space:nowrap}.audio-settings summary::-webkit-details-marker{display:none}.audio-settings summary:focus-visible{outline:2px solid var(--acid);outline-offset:3px}.audio-settings-panel{position:absolute;z-index:10;right:0;top:calc(100% + 8px);width:220px;padding:16px;background:#101c1d;border:1px solid #536a5c;box-shadow:0 12px 35px #0009}.audio-settings-panel label{display:flex;justify-content:space-between;color:#dbe8da;letter-spacing:.09em;font-size:10px}.audio-settings-panel output{color:var(--acid)}.audio-settings-panel input{display:block;width:100%;margin:9px 0 16px;accent-color:var(--acid)}.audio-settings-panel input:last-child{margin-bottom:0}@media(max-width:500px){.top-right .audio-settings summary{padding:6px 0 6px 8px}}
.music-credit{margin:0;color:#a5b7ad;font-size:9px;line-height:1.5;letter-spacing:0}.music-credit a{color:var(--acid)}

/* Recharge feedback follows actual server-recorded zone recovery. */
.energy-key{background:#ff4ae2;box-shadow:0 0 7px #ff4ae2}
.boost-meter.recharging #energy-label,.boost-meter.recharging b{color:#ff82ec;text-shadow:0 0 9px #ff4ae2}
.boost-meter.recharging progress::-webkit-progress-value{background:repeating-linear-gradient(90deg,#ff62e8 0 6px,transparent 6px 8px);box-shadow:0 0 12px #ff4ae2}
.boost-meter.recharging progress::-moz-progress-bar{background:repeating-linear-gradient(90deg,#ff62e8 0 6px,transparent 6px 8px);box-shadow:0 0 12px #ff4ae2}
.boost-meter.recharging:not(.soft){animation:recharge-glow .6s ease-in-out infinite alternate}
@keyframes recharge-glow{from{filter:brightness(.9)}to{filter:brightness(1.2)}}
@media(prefers-reduced-motion:reduce){.boost-meter.recharging{animation:none!important}}

.world-results{position:fixed;z-index:4;inset:0;display:grid;place-items:center;padding:18px;background:#050713b8;backdrop-filter:blur(4px);pointer-events:none}
.world-results[hidden]{display:none}.world-results-panel{width:min(480px,100%);max-height:90vh;overflow:auto;padding:24px;background:#11101ef5;border:1px solid #504260;box-shadow:0 20px 80px #000b}.world-results h2{font:900 italic 36px/1 var(--display);margin:10px 0}.world-results p{color:#a8bdc8;letter-spacing:.06em}.world-results .leaderboard{margin:12px 0}.world-results .leaderboard li.is-self{background:#64efff18;outline:1px solid #64efff75}.world-results-clock{border-top:1px solid var(--line);padding-top:14px;color:#a8bdc8;letter-spacing:.12em}.world-results-clock strong{color:var(--acid);font:900 28px var(--display);padding:0 5px}@media(max-width:500px){.world-results-panel{padding:16px}.world-results h2{font-size:26px}.world-results .leaderboard li{padding:5px 0}}

/* Keep every race control reachable as the header narrows. */
@media(max-width:1200px){.topbar{height:auto;min-height:83px;flex-wrap:wrap;gap:12px;padding:12px 0}.top-right{min-width:0;flex-wrap:wrap;gap:8px 16px}.top-right .text-button{padding-left:12px}}
@media(max-width:700px){.top-right{width:100%;justify-content:flex-start}.top-right .text-button{white-space:nowrap}}

/* Shared brand palette for the race HUD and multiplayer controls. */
:root{--ink:var(--fx-text);--muted:var(--fx-muted);--acid:var(--fx-brand);--panel:var(--fx-surface);--line:var(--fx-line);--mono:var(--fx-mono);--display:var(--fx-display)}
html,body{background:var(--fx-bg)}
.versus-panel,.audio-settings-panel,.versus-results{background:var(--fx-surface);border-color:var(--fx-line)}
.energy-key{background:var(--fx-recovery);box-shadow:0 0 7px var(--fx-recovery)}
.speed-key{background:var(--fx-cyan);box-shadow:0 0 7px var(--fx-cyan)}
.incoming-warning,.combat-damage{color:var(--fx-danger)}

/* Keep missed-sector guidance visible without covering the racing line. */
.race-message.sector-warning{top:105px;transform:translateX(-50%);pointer-events:none;font-size:10px}
