:root{--red:#e63946;--red-deep:#b5172a;--navy:#0d1024;--panel:#0d1024b8;--panel-solid:#0d1024eb;--line:#ffffff24;--text:#f5f6fa;--muted:#b8bdd6;--ok:#3ddc97;--plan:#ffb627;--danger:#ff3b4e;--display:"Arial Black", "Segoe UI Black", "Helvetica Neue", system-ui, sans-serif;--ui:system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}*{box-sizing:border-box}html,body{background:var(--navy);height:100%;color:var(--text);font-family:var(--ui);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#app{position:fixed;inset:0}#game{width:100%;height:100%;display:block;position:absolute;inset:0}#hud-root,#ui-root{pointer-events:none;position:absolute;inset:0}#ui-root>*{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer}kbd{min-width:1.7em;font:700 .85em var(--ui);text-align:center;background:#ffffff1f;border:1px solid #ffffff38;border-bottom-width:3px;border-radius:6px;margin:0 .12em;padding:.12em .45em;display:inline-block}.menu{background:linear-gradient(90deg,#080a18d1 0%,#080a1840 30%,#080a1800 45% 55%,#080a1840 70%,#080a18d1 100%),linear-gradient(#080a188c 0%,#080a1800 25% 62%,#080a18d9 100%);grid-template-rows:auto 1fr auto;padding:2.2vh 2.4vw;display:grid;position:absolute;inset:0;overflow:auto}.menu.hidden{display:none}.menu-top{flex-direction:column;align-items:center;gap:.6vh;display:flex}.logo{font:900 clamp(34px, 5.2vw, 78px) / 1 var(--display);letter-spacing:-.02em;text-transform:uppercase;text-shadow:0 4px 0 var(--red-deep), 0 10px 30px #0009;align-items:center;gap:.4em;font-style:italic;display:flex}.logo-heart svg{width:.95em;height:.9em;fill:var(--red);filter:drop-shadow(0 0 18px #e63946e6);vertical-align:middle;animation:1.1s ease-in-out infinite beat}@keyframes beat{0%,to{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}36%{transform:scale(1.1)}}.tagline{font:800 clamp(13px, 1.3vw, 19px) var(--ui);letter-spacing:.22em;text-transform:uppercase;color:#ffd6da;text-shadow:0 2px 10px #000c}.segs{border:1px solid var(--line);background:#00000059;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.seg{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:.45em 1.05em;font-size:14px;font-weight:800;transition:background .15s,color .15s}.seg:hover{color:#fff;background:#ffffff14}.seg.on{background:var(--red);color:#fff;box-shadow:0 2px 12px #e639468c}.segs.players{margin-top:1.2vh}.segs.players .seg{padding:.55em 1.4em;font-size:16px}.menu-cards{justify-content:space-between;align-items:center;padding:1.5vh 0;display:flex}.card{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-left:6px solid var(--kc);border-radius:18px;width:min(380px,30vw);padding:16px 18px 18px;box-shadow:0 20px 50px #00000073}.menu-cards.two .card:last-child{border-left:1px solid var(--line);border-right:6px solid var(--kc)}.card-head{font:900 13px var(--ui);text-transform:uppercase;letter-spacing:.14em;color:var(--kc);filter:brightness(1.35);justify-content:space-between;align-items:baseline;display:flex}.card-head .hint{letter-spacing:.02em;text-transform:none;color:var(--muted);filter:none;font-weight:600}.driver{align-items:center;gap:10px;margin:8px 0 6px;display:flex}.driver-name{text-align:center;flex:1}.driver-name .name{font:900 clamp(28px, 2.6vw, 40px) / 1 var(--display);text-transform:uppercase;text-shadow:0 3px #00000059;font-style:italic}.driver-name .title{color:var(--ka);filter:brightness(1.2);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:13px;font-weight:800}.arrow{border:1px solid var(--line);background:#ffffff14;border-radius:50%;place-items:center;width:42px;height:42px;font-size:26px;font-weight:900;line-height:1;transition:background .15s,transform .1s;display:grid}.arrow:hover{background:var(--red)}.arrow:active{transform:scale(.92)}.arrow.small{width:32px;height:32px;font-size:20px}.bio{color:#dfe2f1;margin:6px 0;font-size:14px;line-height:1.45}.quote{color:#ffd6da;margin:4px 0 12px;font-style:italic;font-weight:700}.row-label{font:800 11px var(--ui);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:6px}.assist-desc{color:var(--muted);margin-top:8px;font-size:13px}.menu-bottom{grid-template-columns:1fr auto 1fr;grid-template-areas:"setup start options""controls controls controls";align-items:end;gap:1.4vh 2vw;display:grid}.race-setup{flex-wrap:wrap;grid-area:setup;align-items:flex-end;gap:18px;display:flex}.setup-item.track{max-width:340px}.stepper{align-items:center;gap:10px;display:flex}.track-name{font:900 20px var(--display);text-transform:uppercase;text-align:center;min-width:150px;font-style:italic}.track-desc{color:var(--muted);margin-top:6px;font-size:12.5px;line-height:1.4}.num{font:900 24px var(--display);text-align:center;min-width:28px}.start{background:linear-gradient(180deg, #ff5263, var(--red) 45%, var(--red-deep));font:900 clamp(22px, 2.2vw, 32px) / 1 var(--display);letter-spacing:.02em;color:#fff;text-shadow:0 3px #0000004d;border:0;border-radius:18px;flex-direction:column;grid-area:start;align-items:center;gap:6px;padding:18px 46px 14px;font-style:italic;transition:transform .1s;animation:2.2s ease-in-out infinite glow;display:flex;box-shadow:0 8px #7d0f1d,0 16px 40px #e639468c}.start span{font:700 12px var(--ui);letter-spacing:.2em;text-transform:uppercase;opacity:.85;font-style:normal}.start:hover{transform:translateY(-2px)scale(1.02)}.start:active{transform:translateY(5px);box-shadow:0 3px #7d0f1d,0 8px 20px #e639468c}@keyframes glow{50%{box-shadow:0 8px #7d0f1d,0 16px 60px #e63946d9}}.options{flex-direction:column;grid-area:options;align-items:flex-end;gap:8px;display:flex}.opt{align-items:center;gap:10px;display:flex}.opt .row-label{margin:0}.controls{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;grid-area:controls;justify-self:center;padding:8px 16px;font-size:13px}.controls summary{cursor:pointer;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);text-align:center;font-size:12px;font-weight:800}.controls table{border-collapse:collapse;margin-top:8px}.controls td,.controls th{text-align:left;padding:4px 10px}.controls th{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:11px}.solo-note{color:var(--muted);text-align:center;margin-top:6px}.hud{font-family:var(--ui);text-shadow:0 2px #00000073,0 0 14px #00000080;--s:1;position:absolute;overflow:hidden}.hud.compact{--s:.78}.hud-tl{left:calc(22px * var(--s));top:calc(16px * var(--s));position:absolute}.hud-pos{font:900 calc(64px * var(--s)) / .95 var(--display);letter-spacing:-.02em;font-style:italic}.pos-of{opacity:.8;margin-left:4px;font-size:.42em}.hud-lap{font:900 calc(24px * var(--s)) var(--display);margin-top:calc(4px * var(--s));font-style:italic}.hud-time{font:800 calc(20px * var(--s)) var(--ui);font-variant-numeric:tabular-nums}.hud-best{font:700 calc(14px * var(--s)) var(--ui);color:#ffe08a;font-variant-numeric:tabular-nums}.hud-player{margin-top:calc(8px * var(--s));background:var(--pc);font:900 calc(16px * var(--s)) var(--display);text-shadow:0 1px #0006;border-radius:999px;padding:2px 12px;font-style:italic;display:inline-block}.hud-map{right:calc(16px * var(--s));top:calc(16px * var(--s));width:calc(180px * var(--s));height:calc(180px * var(--s));background:radial-gradient(circle,#0d10248c 60%,#0d102440);border:2px solid #ffffff2e;border-radius:50%;position:absolute}.hud-bl{left:calc(22px * var(--s));bottom:calc(20px * var(--s));width:calc(240px * var(--s));position:absolute}.hud-speed{align-items:baseline;gap:8px;display:flex}.speed-num{font:900 calc(78px * var(--s)) / .9 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-style:italic}.speed-unit{font:800 calc(18px * var(--s)) var(--ui);opacity:.85}.meter{height:calc(18px * var(--s));margin-top:calc(8px * var(--s));background:#00000073;border:1px solid #fff3;border-radius:999px;position:relative;overflow:hidden}.meter .fill{background:linear-gradient(90deg,#4cc9f0,#7b61ff);border-radius:999px;transition:width .1s linear;position:absolute;inset:0 auto 0 0}.meter.full .fill{background:linear-gradient(90deg,#7b61ff,#ff4fd8);animation:.8s linear infinite shimmer}.meter.active .fill{background:linear-gradient(90deg,#ffb627,#ff4f2e)}@keyframes shimmer{50%{filter:brightness(1.5)}}.meter-label{font:900 calc(11px * var(--s)) var(--ui);letter-spacing:.24em;place-items:center;display:grid;position:absolute;inset:0}.drift-pips{margin-top:calc(6px * var(--s));gap:6px;display:flex}.pip{width:calc(26px * var(--s));height:calc(8px * var(--s));background:#ffffff26;border-radius:4px;transition:background .1s}.pip.charging{background:#ffffff80}.pip.on.t1{background:#ffd34d;box-shadow:0 0 10px #ffd34d}.pip.on.t2{background:#ff4f2e;box-shadow:0 0 12px #ff4f2e}.hud-br{right:calc(22px * var(--s));bottom:calc(20px * var(--s));width:calc(290px * var(--s));gap:calc(10px * var(--s));flex-direction:column;display:flex;position:absolute}.gauge{border-radius:calc(14px * var(--s));padding:calc(8px * var(--s)) calc(12px * var(--s));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0d10248c;border:1px solid #ffffff24}.gauge-head{justify-content:space-between;align-items:center;display:flex}.gauge-label{font:900 calc(13px * var(--s)) var(--ui);letter-spacing:.2em}.chip{font:800 calc(11px * var(--s)) var(--ui);text-shadow:none;color:#0d1024;background:var(--ok);border-radius:999px;padding:2px 9px}.chip.plan{background:var(--plan)}.chip.danger{background:var(--danger);color:#fff;animation:.7s steps(2,end) infinite flash}.bar{height:calc(14px * var(--s));margin:calc(6px * var(--s)) 0 calc(4px * var(--s));background:#00000080;border-radius:999px;position:relative;overflow:hidden}.bar .fill{background:var(--ok);border-radius:999px;transition:width .12s linear;position:absolute;inset:0 auto 0 0}.bar .fill.plan{background:var(--plan)}.bar .fill.danger{background:var(--danger)}.bar .mark{background:#fff;width:3px;margin-left:-1px;position:absolute;top:-2px;bottom:-2px;box-shadow:0 0 6px #000}.gauge-sub{font:700 calc(12px * var(--s)) var(--ui);color:#d8dcef;font-variant-numeric:tabular-nums;min-height:1.2em}.hud-center{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:18%;left:0;right:0}.big{font:900 calc(120px * var(--s)) / 1 var(--display);letter-spacing:-.02em;opacity:0;text-transform:uppercase;text-shadow:0 6px 0 var(--red-deep), 0 14px 40px #0009;text-align:center;white-space:nowrap;font-style:italic;transition:opacity .25s,transform .25s;transform:scale(.6)}.big.show{opacity:1;transform:scale(1)}.big.pop{animation:.45s cubic-bezier(.2,1.6,.4,1) pop}.big.go{color:#fff;text-shadow:0 6px #1d8a52,0 14px 40px #0009}.big.lap,.big.final{font-size:calc(70px * var(--s))}.big.final{color:#ffe08a}.big.finish{font-size:calc(90px * var(--s));color:#fff}@keyframes pop{0%{opacity:0;transform:scale(1.8)}to{opacity:1;transform:scale(1)}}.msgs{flex-direction:column;align-items:center;gap:6px;display:flex}.msg{font:900 calc(26px * var(--s)) var(--display);text-transform:uppercase;white-space:nowrap;border-radius:10px;padding:4px 18px;font-style:italic;transition:opacity .3s,transform .3s;animation:.3s cubic-bezier(.2,1.5,.4,1) msgIn}.msg.good{color:#9dffcf}.msg.warn{color:#ffd166;background:#780a148c}.msg.info{color:#fff;font-size:calc(18px * var(--s))}.msg.out{opacity:0;transform:translateY(-10px)scale(.9)}@keyframes msgIn{0%{opacity:0;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.hud-service{left:50%;bottom:calc(26px * var(--s));width:calc(340px * var(--s));margin-left:calc(-170px * var(--s));opacity:0;transition:opacity .2s,transform .2s;position:absolute;transform:translateY(20px)}.hud-service.show{opacity:1;transform:none}.hud-service .label{text-align:center;font:900 calc(24px * var(--s)) var(--display);font-style:italic}.hud-service .bar{height:calc(16px * var(--s));border:1px solid #ffffff4d}.hud-service.fuel .fill{background:linear-gradient(90deg,#2f7de0,#4cc9f0)}.hud-service.repair .fill{background:linear-gradient(90deg,#e8742a,#ffb627)}.wrong-way{font:900 calc(54px * var(--s)) var(--display);color:var(--danger);opacity:0;pointer-events:none;font-style:italic;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.wrong-way.show{opacity:1;animation:.6s steps(2,end) infinite flash}@keyframes flash{50%{opacity:.3}}.respawn{width:calc(160px * var(--s));height:8px;margin-left:calc(-80px * var(--s));opacity:0;background:#00000080;border-radius:4px;position:absolute;bottom:30%;left:50%;overflow:hidden}.respawn.show{opacity:1}.respawn-fill{background:#fff;height:100%}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;background:#080a188c;place-items:center;transition:opacity .25s;display:grid;position:absolute;inset:0}.overlay.show{opacity:1}.panel{background:var(--panel-solid);border:1px solid var(--line);border-top:5px solid var(--red);border-radius:20px;flex-direction:column;gap:10px;min-width:320px;padding:26px 32px;display:flex;box-shadow:0 30px 80px #0000008c}.panel.wide{min-width:min(860px,92vw)}.panel h2{font:900 40px var(--display);text-transform:uppercase;text-align:center;margin:0 0 8px;font-style:italic}.btn{border:1px solid var(--line);background:#ffffff14;border-radius:12px;padding:12px 20px;font-size:16px;font-weight:800;transition:background .15s}.btn:hover{background:#ffffff29}.btn.primary{background:var(--red);border-color:#0000}.btn.primary:hover{background:#ff5263}.results-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.results-table th{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);padding:6px 10px;font-size:11px}.results-table td{border-bottom:1px solid #ffffff0f;padding:9px 10px;font-weight:700}.results-table tr.human td{background:#ffffff0f}.results-table tr.winner .place{color:#ffd166}.results-table .place{font:900 20px var(--display);font-style:italic}.results-table .who{font-weight:900}.swatch{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:8px;display:inline-block}.you{background:var(--pc);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px}.est{color:var(--muted)}.buttons{justify-content:center;gap:12px;margin-top:10px;display:flex}.overlay.loading{background:var(--navy)}.loading-heart{background:var(--red);width:70px;height:64px;clip-path:path("M35 62 C8 42 0 30 0 18 C0 8 8 0 18 0 C25 0 31 4 35 10 C39 4 45 0 52 0 C62 0 70 8 70 18 C70 30 62 42 35 62Z");filter:drop-shadow(0 0 20px #e63946cc);animation:1s ease-in-out infinite beat}@media (height<=760px){.bio{display:none}}.menu .builder{border:1px solid var(--line);color:var(--text);font:600 13px var(--ui);cursor:pointer;background:#ffffff14;border-radius:999px;margin-top:8px;padding:6px 12px}.menu .builder:hover{background:#ffffff29}.menu .share-game{border:1px solid var(--line);color:var(--text);font:600 13px var(--ui);cursor:pointer;background:#00000059;border-radius:999px;padding:6px 14px}.menu .share-game:hover{background:#ffffff29}.noscript{max-width:640px;color:var(--text);font:17px/1.55 var(--ui);margin:12vh auto;padding:0 24px}.noscript h1{font:italic 900 44px/1 var(--display);text-transform:uppercase;color:var(--red)}.editor{z-index:40;background:var(--navy);color:var(--text);font-family:var(--ui);pointer-events:auto;grid-template-rows:auto 1fr auto;display:grid;position:absolute;inset:0}.editor.hidden{display:none}.ed-top{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.ed-title{font:900 18px var(--display);letter-spacing:.02em;margin:0 8px}.ed-name{color:var(--muted);align-items:center;gap:6px;margin-right:auto;font-size:13px;display:flex}.ed-name input,.ed-open{border:1px solid var(--line);color:var(--text);font:600 14px var(--ui);-webkit-user-select:text;user-select:text;background:#ffffff14;border-radius:8px;padding:6px 10px}.ed-name input{width:220px}.ed-open option,.ed-open optgroup{background:var(--navy)}.ed-btn{border:1px solid var(--line);color:var(--text);font:600 13px var(--ui);cursor:pointer;white-space:nowrap;background:#ffffff14;border-radius:8px;padding:7px 12px}.ed-btn:hover{background:#ffffff29}.ed-btn.go{background:var(--red);border-color:var(--red);font-weight:800}.ed-btn.go:disabled{opacity:.4;cursor:not-allowed}.ed-btn.danger{color:#ffb3bb;border-color:#ff3b4e80}.ed-main{grid-template-columns:170px 1fr 250px;min-height:0;display:grid}.ed-tools,.ed-side{background:var(--panel-solid);padding:10px;overflow-y:auto}.ed-tools{border-right:1px solid var(--line)}.ed-side{border-left:1px solid var(--line);flex-direction:column;gap:10px;display:flex}.ed-group{margin-bottom:10px}.ed-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 0;font-size:11px}.ed-tool{width:100%;color:var(--text);font:600 13px var(--ui);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;margin:2px 0;padding:5px 8px;display:flex}.ed-tool span{text-align:center;width:24px;font-size:18px}.ed-tool:hover{background:#ffffff14}.ed-tool.on{border-color:var(--red);background:#e6394640}.ed-map{cursor:crosshair;touch-action:none;width:100%;height:100%;min-height:0;display:block}.ed-insp-title{font:800 16px var(--ui)}.ed-slider{color:var(--muted);grid-template-columns:1fr auto;gap:2px 8px;font-size:13px;display:grid}.ed-slider input{accent-color:var(--red);grid-column:1/-1}.ed-slider span{grid-row:1}.ed-slider output{color:var(--text);grid-area:1/2;font-weight:700}.ed-help{color:var(--muted);font-size:12px;line-height:1.45}.ed-status{border-top:1px solid var(--line);align-items:flex-start;gap:16px;min-height:38px;padding:8px 14px;font-size:13px;display:flex}.ed-stats{color:var(--muted);white-space:nowrap}.ed-ok{color:var(--ok);font-weight:700}.ed-status ul{flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;list-style:none;display:flex}.ed-status li.error{color:#ffb3bb}.ed-status li.warning{color:var(--plan)}.menu .track-tools{flex-wrap:wrap;gap:6px;display:flex}.community{z-index:40;background:var(--navy);color:var(--text);font-family:var(--ui);pointer-events:auto;grid-template-rows:auto 1fr auto;display:grid;position:absolute;inset:0}.community.hidden{display:none}.cm-top{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.cm-body{padding:16px;overflow-y:auto}.cm-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.cm-card{background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:4px;padding:10px;display:flex}.cm-map{border-radius:10px;width:100%;height:auto;display:block}.cm-name{font:800 16px var(--ui);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.cm-by,.cm-meta{color:var(--muted);font-size:12px}.cm-actions{gap:6px;margin-top:6px;display:flex}.cm-actions button{border:1px solid var(--line);color:var(--text);font:700 13px var(--ui);cursor:pointer;background:#ffffff14;border-radius:8px;padding:6px 10px}.cm-actions button:hover:not(:disabled){background:#ffffff29}.cm-actions .cm-race{background:var(--red);border-color:var(--red);flex:1}.cm-heart.on{border-color:var(--red);background:#e639464d}.cm-heart:disabled{opacity:.7;cursor:default}.cm-empty{text-align:center;color:var(--muted);margin:60px auto;font-size:16px}.cm-more{text-align:center;margin:16px}.cm-note{border-top:1px solid var(--line);color:var(--plan);padding:8px 14px;font-size:13px}.ed-dialog-back{z-index:5;background:#0000008c;place-items:center;display:grid;position:absolute;inset:0}.ed-dialog{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;width:min(420px,92vw);padding:18px;display:flex}.ed-field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.ed-field input{border:1px solid var(--line);color:var(--text);font:600 15px var(--ui);-webkit-user-select:text;user-select:text;background:#ffffff14;border-radius:8px;padding:8px 10px}.ed-note{min-height:18px;color:var(--plan);font-size:13px}.ed-link{color:var(--ok);word-break:break-all;-webkit-user-select:text;user-select:text;font:600 13px ui-monospace,monospace}.ed-dialog-buttons{justify-content:flex-end;gap:8px;display:flex}.ed-themes{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ed-themes .ed-btn.on{border-color:var(--red);background:#e639464d}.ed-btn:disabled{opacity:.4;cursor:default}
