:root{color-scheme:dark;--cyan:#7fe9ff;--gold:#ffd08d;--ink:#080d19;--line:#263748;--muted:#90a2bb}*{box-sizing:border-box}html,body{margin:0;background:#060a11;color:#eef6ff;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}#game{max-width:1740px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 330px;min-height:100vh;padding:18px;gap:18px}.arena{position:relative;min-height:850px;height:calc(100vh - 36px);overflow:hidden;border:1px solid #2b3b52;border-radius:25px;background:#091526;isolation:isolate}canvas{display:block;width:100%;height:100%;position:absolute;inset:0}.cinema{pointer-events:none;position:absolute;inset:0;background:linear-gradient(#040914dd,transparent 42%,transparent 60%,#030811e8),radial-gradient(ellipse at center,transparent 45%,#02050b88)}header{position:absolute;top:25px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:10px;text-decoration:none;color:white;font-size:13px;font-weight:900;letter-spacing:2px}.brand i{color:var(--gold);font-style:normal;font-size:34px}.brand span{padding-top:8px}.brand small{display:block;font-size:8px;letter-spacing:2.3px;color:#a3b7cf;margin-top:5px}.preview-tag{border:1px solid #6b623d;border-radius:6px;padding:7px 9px;font-size:8px;letter-spacing:1.4px;color:#ffe0a0;background:#2b251a66}.masthead{position:absolute;top:114px;left:30px}.eyebrow{font-size:9px;letter-spacing:2.6px;color:#75d8ec;font-weight:bold}.masthead h1{font-size:clamp(45px,5vw,76px);font-weight:900;letter-spacing:-4px;line-height:.9;margin:14px 0 12px;text-shadow:0 3px 30px #111}.masthead h1 em{font-style:italic;color:var(--cyan)}.masthead p{color:#c4d3e5;font-size:12px;letter-spacing:.4px}.top-hud{position:absolute;top:264px;left:30px;right:30px;display:flex;gap:34px;align-items:center;padding-top:15px;border-top:1px solid #a9daff33}.top-hud small,.energy small{display:block;font-size:8px;letter-spacing:1.8px;color:#9caec6;margin-bottom:8px}.top-hud b{font-size:25px;letter-spacing:1px}.top-hud .muted{font-size:14px;color:#71849c}.race-progress{margin-left:auto;width:35%}.race-progress small{display:flex;justify-content:space-between}.meter{height:3px;background:#c3dcff26;border-radius:3px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:#7fe9ff;box-shadow:0 0 10px #7fe9ff;transition:width .2s}.standings{position:absolute;top:355px;left:30px;display:grid;gap:7px;width:180px}.rank-row{display:flex;align-items:center;gap:8px;font-size:11px;padding:9px 10px;background:linear-gradient(90deg,#07111fe8,#07111f55);border-left:2px solid var(--team);border-radius:0 7px 7px 0}.rank-row.selected{outline:1px solid #ffffff55}.rank-row .rank{font-size:12px;color:#a9bad0;width:12px}.rank-row strong{flex:1;letter-spacing:.7px;font-size:10px}.rank-row small{font-size:8px;color:#adc0d2}.sector-label{position:absolute;left:30px;bottom:185px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:9px;letter-spacing:1.8px}.sector-label i{width:6px;height:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 10px #ffcb7c}.sector-label small{width:100%;font-size:8px;color:#98b2ce;margin-left:14px}.bottom-hud{position:absolute;bottom:65px;left:30px;right:30px;display:flex;align-items:center;gap:28px}.velocity{display:flex;align-items:baseline;gap:8px}.velocity>span{font-size:66px;font-weight:900;letter-spacing:-4px;font-variant-numeric:tabular-nums}.velocity small{font-size:9px;color:#a5bdd5}.energy{flex:1;max-width:300px}.energy small{display:flex;justify-content:space-between}.energy>span{display:block;font-size:7px;letter-spacing:1.2px;color:#a8c6df;margin-top:10px}.bottom-hud button{margin-left:auto;background:#12243cbb;color:#c8e7fa;border:1px solid #47708b66;padding:10px;border-radius:6px;font-size:9px}.track-map{position:absolute;right:24px;bottom:175px;width:90px;height:120px;opacity:.9}.track-map path{fill:none;stroke:#96c9ff40;stroke-width:7}.track-map circle{stroke:#fff;stroke-width:1}footer{position:absolute;left:30px;right:30px;bottom:24px;display:flex;justify-content:space-between;color:#7493b0;font-size:7px;letter-spacing:1.5px}.dot{display:inline-block;width:5px;height:5px;background:#77edc8;box-shadow:0 0 12px #77edc8;border-radius:50%;margin-right:8px}footer b{font-weight:400}.welcome{position:absolute;left:27%;top:43%;padding:25px 30px 22px;background:linear-gradient(135deg,#081225dd,#091427aa);border:1px solid #5caed74d;border-radius:18px;box-shadow:0 20px 70px #01061177;backdrop-filter:blur(12px);width:min(380px,65%)}.welcome h2{font-size:50px;line-height:.96;letter-spacing:-2px;margin:18px 0;color:#f4f9ff}.welcome h2 em{color:var(--gold)}.welcome p{font-size:12px;line-height:1.9;color:#c0d0e4}.primary{border:1px solid #b1f6ff;background:linear-gradient(135deg,#a6eeff,#56bfec);color:#07283c;border-radius:8px;padding:14px 17px;font-weight:bold;font-size:12px;box-shadow:0 4px 25px #32cfff22}.primary span{margin-left:16px}.welcome small,.results>small{display:block;font-size:8px;line-height:1.8;color:#91a8c3;margin-top:13px}.rail{padding:20px 8px 15px 10px;min-width:0}.rail-heading .eyebrow{font-size:8px;letter-spacing:2px;color:#91a2ba}.rail-heading h2{font-size:34px;line-height:1.03;letter-spacing:-1.4px;margin:20px 0 13px}.rail-heading p{font-size:12px;line-height:1.8;color:#91a2bb;margin-bottom:26px}.join-panel{border-top:1px solid var(--line);padding-top:16px}.join-panel h3,.audio-settings h3{font-size:11px;margin:0 0 12px}.join-panel h3 span{float:right;font-size:8px;color:var(--cyan)}.join-panel label{font-size:8px;color:#90a2bb;display:block;margin-bottom:6px}.join-panel input,.join-panel select,.settings select{width:100%;border:1px solid #293e56;background:#0e1b2c;color:#d8e5f4;padding:10px;border-radius:7px;font-size:11px}.join-panel input{margin-bottom:10px}.join-row{display:flex;gap:6px}.join-row button{flex-shrink:0;background:#172f44;color:var(--cyan);border:1px solid #315874;border-radius:7px;padding:8px 12px;font-size:11px}.join-panel p{font-size:9px;color:#8196ae;line-height:1.7;margin-bottom:22px}.team-heading{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#657a93}.team-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.team-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 22px}.team-buttons button{border:1px solid #293b50;border-left:3px solid var(--team);border-radius:6px;background:#0b1726;color:#e1edfa;padding:9px 10px;text-align:left;font-size:10px}.team-buttons button.active{background:#1b3046;border-color:var(--team)}.team-buttons button small{display:block;color:#839ab4;font-size:8px;margin-top:4px}.effect-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;color:#8296ae;margin-bottom:10px}.effects{display:grid;gap:7px}.effects>button{display:flex;gap:12px;align-items:center;text-align:left;border:1px solid #27394e;background:linear-gradient(110deg,#142238,#0d1726);padding:10px 12px;color:#e9f3ff;border-radius:10px;transition:border .2s}.effects>button:hover{border-color:#6bcaef}.effects i{font-style:normal;font-size:23px;color:var(--cyan);width:26px;text-align:center}.effects span{font-size:11px;font-weight:bold}.effects small{display:block;color:#839ab3;font-size:8px;font-weight:400;margin-top:5px}.effects b{font-size:10px;color:#647f9b;margin-left:auto}.audio-settings{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.audio-settings>div{grid-column:1/-1}.audio-settings h3{margin:0 0 5px}.audio-settings>div>span{font-size:7px;letter-spacing:1.8px;color:#8b7ebc}.audio-settings button,.settings button{background:#112239;border:1px solid #2c455d;color:#c4d9ee;padding:9px;border-radius:6px;font-size:10px}.audio-settings label{font-size:8px;color:#92a8bf;text-align:right}.audio-settings input{grid-column:1/-1;accent-color:#6ae2ff;width:100%;height:9px}.settings{display:flex;gap:10px;margin-top:15px;align-items:end}.settings>button{height:37px}.settings label{flex:1;font-size:8px;color:#8ca1b9}.settings select{font-size:9px;padding:8px;margin-top:5px}.footnote{font-size:9px;color:#6a819d;line-height:1.8;margin-top:18px}#notice{position:absolute;left:50%;top:40%;transform:translate(-50%,10px);background:#09182de8;border:1px solid #7ee8ff66;border-radius:30px;color:white;text-align:center;padding:13px 22px;font-size:12px;font-weight:700;max-width:80%;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}#notice.on{opacity:1;transform:translate(-50%,0)}#flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent,#62d9ff99);transition:opacity .2s}#countdown{position:absolute;top:42%;left:0;right:0;text-align:center;pointer-events:none}#countdown strong{display:block;font-size:140px;color:#e0fcff;text-shadow:0 0 55px #34bfffb3;line-height:1}#countdown span{font-size:9px;letter-spacing:5px;color:#bceaff}#paused{position:absolute;inset:0;background:#020815c9;backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:8}#paused strong{letter-spacing:4px;font-size:22px}#paused span{font-size:12px;color:#8fbedb}.results{position:absolute;top:32%;left:15%;right:15%;padding:32px;text-align:center;border:1px solid #d5bd8555;background:#081326ed;border-radius:22px;box-shadow:0 25px 70px #0008;backdrop-filter:blur(14px)}.results h2{font-size:42px;font-style:italic;margin:16px 0;letter-spacing:-2px}.results p{font-size:12px;color:#bdcde2;line-height:1.7}.podium-row{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #ffffff10;font-size:12px;text-align:left}.podium-row b{color:var(--team);flex:1}.podium-row small{font-size:10px;color:#8fa8bf}.results .primary{margin-top:22px}#error{position:fixed;inset:20%;z-index:99;background:#101e35;border:1px solid #5dc2e5;border-radius:20px;text-align:center;padding:40px;line-height:1.8}#error button{padding:12px 20px}
@media(min-width:1500px){.arena{min-height:960px}.masthead{top:125px}.masthead h1{font-size:88px}.top-hud{top:290px}.standings{top:380px}.welcome{top:45%;left:30%}}
@media(max-width:1100px){#game{grid-template-columns:minmax(0,1fr) 280px;padding:10px;gap:10px}.rail{padding:16px 5px}.masthead h1{font-size:52px}.race-progress{width:25%}.top-hud{gap:20px}.welcome{left:24%;padding:24px;width:70%;top:44%}.welcome h2{font-size:42px}.track-map{bottom:200px}.velocity>span{font-size:52px}.energy{max-width:200px}.top-hud,.bottom-hud,header{left:24px;right:24px}}
@media(max-width:780px){#game{grid-template-columns:1fr;padding:8px}.arena{height:900px;min-height:900px}.rail{padding:25px 18px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.rail-heading,.footnote{grid-column:1/-1}.rail-heading h2 br,.rail-heading p br{display:none}.rail-heading h2{margin:10px 0}.rail-heading p{margin:0}.join-panel{grid-column:1/-1}.team-heading,.effect-heading{grid-column:1/-1}.team-buttons{grid-column:1/-1;margin:0;grid-template-columns:repeat(4,1fr)}.effects,.audio-settings,.settings{grid-column:1/-1}.audio-settings{margin-top:0}.top-hud{top:250px}.standings{top:340px}.masthead{top:115px}.masthead h1{font-size:60px}.welcome{left:24%;top:45%;width:72%}.welcome .eyebrow{font-size:7px}.welcome h2{font-size:40px}.bottom-hud{gap:15px}.velocity>span{font-size:54px}.track-map{right:14px}.results{left:6%;right:6%;padding:24px}.results h2{font-size:34px}}
@media(max-width:420px){.arena{min-height:800px;height:800px}header{left:17px;right:17px;top:20px}.preview-tag{font-size:6px;padding:7px}.masthead{left:18px;top:100px}.masthead h1{font-size:50px}.masthead p{font-size:9px}.top-hud{top:218px;left:18px;right:18px;gap:17px}.top-hud small{font-size:7px;letter-spacing:1px}.top-hud b{font-size:22px}.race-progress{width:28%}.standings{left:18px;top:300px;width:142px}.rank-row{font-size:9px;padding:7px}.rank-row strong{font-size:8px}.welcome{top:47%;left:20%;width:76%;padding:20px}.welcome h2{font-size:36px}.welcome p{font-size:10px}.bottom-hud{left:18px;right:18px;gap:12px;bottom:68px}.velocity>span{font-size:46px}.velocity small{font-size:7px}.energy small{font-size:7px}.energy>span{font-size:6px}.bottom-hud button{font-size:8px;padding:8px}.sector-label{left:18px;font-size:7px;bottom:178px}.track-map{width:65px;height:90px;bottom:175px}footer{left:18px;right:18px;font-size:6px;letter-spacing:.8px}.team-buttons{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.meter i,#notice,#flash{transition:none}}

body[data-mode="source"],body[data-mode="controller"]{overflow-x:hidden}
body[data-mode="source"] #game{padding:0;display:block;width:100vw;height:100vh;max-width:none;min-height:0}
body[data-mode="source"] .arena{width:100%;height:100vh;min-height:0;border:0;border-radius:0}
body[data-mode="source"] .rail,body[data-mode="source"] .welcome button,body[data-mode="source"] .results button{display:none}
body[data-mode="source"] .masthead h1{font-size:76px}body[data-mode="source"][data-layout="portrait"] .masthead{top:130px}
body[data-mode="source"][data-layout="portrait"] .top-hud{top:290px}body[data-mode="source"][data-layout="portrait"] .standings{top:390px;width:230px}
body[data-mode="source"] .welcome{top:45%;left:25%;width:50%;max-width:600px}.rush-controls{display:flex;gap:8px;margin-top:18px}.rush-controls button{border:1px solid #35516a;background:#14243b;color:#cde6fb;border-radius:6px;padding:10px;font-size:10px}
.rush-network{position:absolute;left:30px;bottom:45px;color:#80bece;font-size:9px;letter-spacing:.4px}.rush-network.bad{color:#ffae96}.rush-supporters{position:absolute;left:30px;right:30px;bottom:150px;font-size:9px;color:#c7e6fa;text-align:center;text-shadow:0 2px 10px #000}
.rush-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.rush-legend>div{display:flex;gap:8px;align-items:center;min-width:0}.rush-legend img{width:32px;height:32px;object-fit:contain}.rush-legend span{font-size:10px;color:#e7f1fa}.rush-legend small{display:block;font-size:8px;color:#96b4cc;margin-top:5px}
body[data-mode="controller"] .join-panel,body[data-mode="controller"] .effect-heading,body[data-mode="controller"] .effects{display:none}body[data-mode="source"][data-layout="landscape"] .standings{top:355px}
