@font-face{font-family:Drive;src:local(Bahnschrift)}*{box-sizing:border-box}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#172432;--panel:#192936;--text:#e2ebed;--muted:#a0b4c0;--line:#405564;--accent:#f17c4a;--mint:#67d7ba}body{background:var(--ink);color:var(--text);margin:0;font:14px Segoe UI,Arial,sans-serif;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}button,input,select{border-radius:4px}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:4px}[hidden]{display:none!important}#scene,#world{width:100%;height:100%;position:fixed;inset:0}#scene{overflow:hidden}.screen{pointer-events:none;position:absolute;inset:0}.screen button,.screen input,.screen select,.screen a{pointer-events:auto}.topbar{border-bottom:1px solid #7790a433;align-items:center;gap:40px;height:90px;margin:0 36px;display:flex}.brand{color:var(--text);letter-spacing:3px;align-items:center;gap:12px;font-family:Drive,Arial Narrow,sans-serif;font-size:19px;font-weight:750;text-decoration:none;display:flex}.brand small{letter-spacing:2.5px;color:var(--muted);margin-top:5px;font-size:8px;display:block}.brand-mark{letter-spacing:-6px;font-size:37px;line-height:1}.brand-mark span{color:var(--accent);margin-left:7px;font-size:25px}.topbar nav{gap:8px;margin-left:auto;display:flex}.nav{color:var(--muted);background:0 0;border:0;padding:16px 12px;position:relative}.nav.active{color:#fff}.nav.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:5px;left:12px;right:12px}.driver-level{letter-spacing:1px;color:var(--mint);font:11px monospace}.garage-layout{grid-template-columns:340px 1fr;height:calc(100vh - 90px);padding:0 36px;display:grid}.race-setup{pointer-events:auto;scrollbar-width:thin;background:linear-gradient(90deg,#172432ef,#172432d0 90%,#0000);padding:28px 24px 20px 0;overflow-y:auto}.eyebrow{letter-spacing:2.5px;color:var(--mint);font:10px monospace}h1{letter-spacing:-1px;margin:16px 0;font:600 clamp(32px,3.5vw,51px)/1.08 Drive,Arial Narrow,sans-serif}.intro{color:var(--muted);margin:0 0 20px;line-height:1.65}label:not(.check){color:var(--muted);letter-spacing:1px;margin:13px 0 7px;font:10px monospace;display:block}input:not([type=checkbox]):not([type=range]):not([type=color]),select{border:1px solid var(--line);width:100%;color:var(--text);background:#192a36dd;min-width:0;padding:10px 11px}input[type=color]{vertical-align:middle;background:0 0;border:0;width:32px;height:25px;margin-left:8px;padding:0}input[type=range]{width:100%;accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent)}.field-row{grid-template-columns:1.4fr 1fr;gap:10px;display:grid}.caption{color:var(--muted);margin:8px 0;font-size:11px;line-height:1.5}.check{color:var(--muted);align-items:center;gap:8px;margin:13px 0;font-size:12px;display:flex}.primary{background:var(--accent);border:1px solid var(--accent);color:#18232c;letter-spacing:.5px;justify-content:space-between;align-items:center;width:100%;padding:13px 17px;font-weight:750;display:flex}.primary:hover{background:#ffa478;border-color:#ffa478}.outline{border:1px solid var(--line);color:var(--text);background:#172432a0;padding:10px 14px}.outline:hover{border-color:var(--text)}.multiplayer-row{gap:8px;margin-top:10px;display:flex}.multiplayer-row button{flex:1}.join-row{gap:8px;margin-top:10px;display:flex}.join-row input{letter-spacing:2px;text-transform:uppercase;flex:1;width:0!important}.small-button{border:1px solid var(--line);color:var(--text);background:#304553;padding:8px 13px}.tutorial-link{color:var(--mint);text-align:left;background:0 0;border:0;padding:15px 0 5px;font-size:12px}.control-hint{color:var(--muted);margin:7px 0;font-size:10px;line-height:1.8}.garage-stage{min-width:0;position:relative}.car-heading{position:absolute;top:34px;left:30px}.car-heading h2{letter-spacing:-2px;text-transform:uppercase;margin:12px 0;font:650 clamp(36px,6vw,88px)/1 Drive,Arial Narrow,sans-serif}.car-heading p{color:var(--muted);font-size:12px}.performance{gap:18px;width:108px;display:grid;position:absolute;top:45px;right:0}.performance label{margin:0 0 6px}.stat-bar{background:#4a657555;height:3px}.stat-bar i{background:#9dc2ce;height:3px;display:block}.garage-bottom{position:absolute;bottom:24px;left:30px;right:0}.finish-options{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:15px;display:flex}.finish-options label{margin:0}.finish-options select{margin-top:6px;padding:7px;font-size:12px}.car-picker{grid-template-columns:repeat(6,1fr);gap:7px;display:grid}.car-option{color:var(--text);text-align:left;background:#192a36da;border:1px solid #66839044;min-width:0;padding:14px 7px}.car-option.active{border-color:var(--accent);background:#3b3c38b0}.car-option strong{margin:9px 0 4px;font:600 14px Drive,sans-serif;display:block}.car-option small{color:var(--muted);font-size:9px}.car-option .swatch{background:var(--car-color);width:25px;height:5px;display:block}.stage-footer{color:#8fa6b2;letter-spacing:1px;justify-content:space-between;margin-top:18px;font:9px monospace;display:flex}#loading{background:var(--panel);z-index:20;padding:12px 18px;position:fixed;bottom:15px;left:50%;transform:translate(-50%)}#toast{border:1px solid var(--mint);z-index:40;background:#203845;max-width:90vw;padding:13px 20px;position:fixed;top:96px;left:50%;transform:translate(-50%)}.race-top{background:linear-gradient(#111d2ac7,#0000);justify-content:space-between;align-items:flex-start;padding:24px 30px;display:flex}.race-identity{gap:8px;display:grid}.race-identity strong{font:550 21px Drive,sans-serif}.race-identity>span:last-child{color:var(--muted);font:12px monospace}.race-time{padding:3px 15px;font:29px monospace}.race-buttons{gap:8px;display:flex}.standings{border-left:2px solid var(--accent);background:#162633bf;min-width:155px;padding:10px 15px;position:absolute;top:125px;left:30px}.standing{justify-content:space-between;gap:18px;padding:6px 0;font-size:12px;display:flex}.standing.player{color:var(--mint)}.race-message{text-align:center;text-shadow:0 2px 15px #111;white-space:pre-line;max-width:80%;font:600 38px Drive,sans-serif;position:absolute;top:35%;left:50%;transform:translate(-50%,-50%)}.race-bottom{align-items:end;gap:35px;display:flex;position:absolute;bottom:25px;left:30px;right:30px}.speedometer{min-width:150px}.speedometer strong{font:650 75px/.9 Drive,sans-serif}.speedometer>span{color:var(--muted);margin-left:9px;font:11px monospace}#nitro-meter{background:#66758570;width:150px;height:5px;margin-top:16px}#nitro-meter i{background:var(--mint);width:100%;height:100%;display:block}.speedometer small{letter-spacing:1.5px;margin-top:7px;font:9px monospace;display:block}.race-details{gap:8px;margin-bottom:14px;font-size:12px;display:grid}.race-details span:first-child{color:var(--mint);font-family:monospace}#minimap{background:#162633aa;border:1px solid #9db2bb33;border-radius:8px;margin-left:auto}#touch-controls{pointer-events:auto;touch-action:none;justify-content:space-between;gap:10px;display:none;position:absolute;bottom:18px;left:15px;right:15px}#touch-controls>div{gap:7px;display:flex}#touch-controls button{width:52px;height:52px;color:var(--text);touch-action:none;-webkit-user-select:none;user-select:none;background:#152631cb;border:1px solid #a2bbc477;font:10px monospace}#camera-panel{border:1px solid var(--line);z-index:12;background:#192936ec;width:200px;padding:9px;position:fixed;top:105px;right:24px}.camera-preview{aspect-ratio:4/3;background:#101a24;position:relative;overflow:hidden}.camera-preview video,.camera-preview canvas{object-fit:fill;width:100%;height:100%;position:absolute;transform:scaleX(-1)}#camera-status{min-height:30px;font-size:10px;line-height:1.5}.steering-meter{background:var(--line);height:4px;margin:12px 0;position:relative}.steering-meter:before{content:"";background:#fff;width:1px;height:8px;position:absolute;top:-2px;left:50%}.steering-meter i{background:var(--mint);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;left:50%}#camera-panel button{padding:5px 8px;font-size:10px}dialog{width:calc(100vw - 32px);max-width:560px;max-height:90vh;color:var(--text);background:#1a2a36;border:1px solid #6e8d9c;border-radius:10px;padding:30px;overflow:auto;box-shadow:0 20px 100px #08142088}dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#08121dc7}dialog h2{margin:12px 0;font:600 34px Drive,sans-serif}dialog p{color:var(--muted);line-height:1.6}dialog .outline{margin-top:10px}.dialog-actions{gap:10px;margin-top:20px;display:flex}.dialog-actions .primary,.dialog-actions .outline{flex:1;width:auto;margin:0}.result-time{color:var(--mint);margin:20px 0;font:48px monospace}.result-stats{grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0;display:grid}.result-stats strong{font:25px monospace;display:block}.result-stats span{color:var(--muted);margin-top:7px;font-size:10px;display:block}#lap-splits{max-height:150px;overflow:auto}.record-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:12px 0;font-size:12px;display:flex}.settings-grid{gap:2px;display:grid}.key-bindings{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 20px;display:grid}.key-bindings button{border:1px solid var(--line);color:var(--text);background:#304553;padding:9px;font-size:11px}.key-bindings small{color:var(--mint);margin-top:5px;display:block}.achievement{border-left:2px solid var(--mint);background:#203945;margin:10px 0;padding:10px}.high-contrast .race-top,.high-contrast .standings,.high-contrast .race-bottom{background:#0d1824ed}.high-contrast .race-details{font-size:16px}.high-contrast .standing{font-size:15px}@media (width<=1100px){.garage-layout{grid-template-columns:300px 1fr;padding:0 22px}.topbar{gap:15px;margin:0 22px}.car-heading,.garage-bottom{left:15px}.performance{display:none}.car-picker{grid-template-columns:repeat(3,1fr)}.car-option{padding:10px}.car-heading h2{font-size:57px}.finish-options{gap:12px}.stage-footer{font-size:8px}.driver-level{display:none}}@media (width<=760px){.topbar{gap:8px;height:72px;margin:0 16px}.brand{letter-spacing:1px;font-size:14px}.brand-mark{font-size:30px}.brand small{letter-spacing:1px;font-size:6px}.nav{padding:12px 6px;font-size:11px}.garage-layout{grid-template-columns:260px 1fr;height:calc(100vh - 72px);padding:0 16px}.race-setup{padding-right:15px}.car-heading h2{font-size:40px}.car-heading{top:25px}.car-heading p{max-width:190px}.garage-bottom{bottom:20px}.finish-options .check{display:none}.car-option strong{font-size:12px}.car-option small{display:none}.car-option{padding:9px 6px}.race-time{font-size:21px}.race-top{padding:18px}.race-buttons .outline{padding:8px;font-size:11px}#camera-panel{width:155px;top:100px;right:18px}.race-bottom{left:18px;right:18px}.speedometer strong{font-size:60px}.race-details{max-width:190px}}@media (width<=560px){body{overflow-y:auto}#garage{position:relative}.topbar{flex-wrap:wrap;justify-content:space-between;height:90px;padding:12px 0}.topbar nav{order:3;justify-content:space-between;width:100%;margin:0}.nav{padding:4px 8px}.nav.active:after{bottom:-3px}.garage-layout{flex-direction:column;height:auto;padding:0 16px;display:flex}.garage-stage{order:0;height:430px}.race-setup{background:#172432e8;order:1;padding:20px 0 35px;overflow:visible}.car-heading{top:22px;left:0}.car-heading p{max-width:100%}.garage-bottom{bottom:0;left:0}.car-picker{grid-template-columns:repeat(3,1fr)}.car-heading h2{font-size:42px}.finish-options{gap:10px}.stage-footer{margin:13px 0}.race-setup h1{font-size:36px}#race-ui{position:fixed}.race-bottom{gap:12px;bottom:94px}.race-details{font-size:10px}.speedometer{min-width:100px}.speedometer strong{font-size:45px}#nitro-meter{width:110px}#minimap{width:110px;height:92px}.race-message{font-size:26px}.standings{min-width:120px;padding:8px;top:105px;left:18px}.standing{font-size:10px}.race-identity strong{font-size:16px}.race-identity .eyebrow{font-size:8px}.race-time{padding:0 5px;font-size:16px}.race-identity>span:last-child{font-size:10px}#camera-panel{width:135px;top:135px;right:10px}.result-stats{gap:8px}.result-stats strong{font-size:20px}dialog{padding:22px}}@media (pointer:coarse){#touch-controls{display:flex}.race-bottom{bottom:95px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.race-bottom{text-shadow:0 1px 3px #0b151e;background:linear-gradient(#0000,#0d1822d1);padding-top:45px}.race-details span{color:#eef3f5}.finish-options,.race-buttons{flex-wrap:wrap}.race-top{background:linear-gradient(#0d1822d9,#0d18224d)}.race-identity>span:last-child{color:#ecf3f5}@media (width<=560px){.garage-stage{height:660px}#touch-controls{gap:8px;display:flex;left:10px;right:10px}#touch-controls button{min-width:42px;padding:12px 9px;font-size:10px}}.finish-options .check{display:flex}@media (width<=560px){.garage-stage{height:690px}}.race-setup{padding:30px 22px 26px}.race-clock{text-align:center;gap:7px;display:grid}.lap-times{color:var(--muted);justify-content:center;gap:16px;font:9px monospace;display:flex}.lap-times b{color:var(--text);margin-top:4px;font:12px monospace;display:block}.lap-progress{background:#58728270;width:180px;height:3px;margin-top:3px;overflow:hidden}.lap-progress i{background:var(--mint);width:0;height:100%;display:block}.race-details #race-gate{color:var(--muted);font:10px monospace}.race-details .ahead{color:var(--mint)}.race-details .behind{color:#ffb08f}@media (width<=560px){.lap-progress{width:140px}.lap-times{gap:10px;font-size:8px}.lap-times b{font-size:10px}.race-bottom{gap:10px}.race-details{min-width:0;max-width:160px}.speedometer{min-width:95px}.speedometer small{letter-spacing:.5px;max-width:95px;font-size:8px}.race-details #race-gate{font-size:9px}.race-bottom #minimap{flex-shrink:0;width:92px;height:77px}}.collection-header{justify-content:space-between;align-items:center;gap:12px;margin:0 0 9px;display:flex}.collection-header>div{align-items:center;gap:10px;display:flex}.collection-header button{padding:5px 10px}.collection-header #car-position{color:var(--muted);text-align:center;min-width:45px;font:11px monospace}.car-picker{scroll-snap-type:x proximity;scrollbar-width:thin;grid-template-columns:none;grid-auto-columns:minmax(112px,1fr);grid-auto-flow:column;margin:-4px;padding:4px 4px 10px;overflow-x:auto}.car-option{scroll-snap-align:start}.car-option:focus-visible{outline-offset:0}.collection-header .eyebrow{letter-spacing:1.5px;font-size:9px}#pause-dialog #camera-panel{z-index:auto;width:min(100%,280px);margin:18px auto;position:relative;inset:auto}.race-message.tutorial-hint{width:min(480px,100% - 40px);max-width:none;text-shadow:none;background:#172432de;border:1px solid #526b7780;border-radius:6px;padding:12px 18px;font:500 17px/1.5 Segoe UI,sans-serif;top:160px;transform:translate(-50%)}@media (width<=560px){.race-message.tutorial-hint{padding:10px 14px;font-size:14px;top:215px}}#camera-panel .camera-tip{color:var(--muted);margin:7px 0;font-size:10px;line-height:1.5}#camera-panel .camera-tip:empty{display:none}#calibration-progress{width:100%;height:6px;accent-color:var(--mint)}#calibration-label{letter-spacing:.3px;font-size:10px}@media (width>=561px) and (width<=760px){.garage-layout{grid-template-columns:280px 1fr}}@media (width<=560px){.race-setup{padding:28px 22px 30px}.race-top{flex-wrap:wrap;gap:12px}.race-buttons{justify-content:flex-end;width:100%}.standings{top:155px}}.race-lobby{pointer-events:auto;border:1px solid var(--line);border-top:3px solid var(--mint);scrollbar-width:thin;background:#192936f2;width:min(440px,100% - 32px);max-height:calc(100dvh - 170px);padding:24px;position:absolute;top:145px;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 20px 70px #08142080}.race-lobby h2{margin:12px 0 20px;font:600 30px Drive,sans-serif}.lobby-ticket{border-block:1px dashed var(--line);color:var(--muted);align-items:center;gap:14px;padding:13px 0;font:9px monospace;display:flex}.lobby-ticket strong{letter-spacing:3px;color:var(--text);font:700 25px monospace}.lobby-ticket span:last-child{white-space:nowrap;margin-left:auto}.lobby-driver{border-bottom:1px solid #40556480;grid-template-columns:30px 1fr;gap:4px 10px;padding:12px 0;display:grid}.lobby-driver>span{color:var(--muted);grid-row:span 2;font:18px monospace}.lobby-driver strong{font-size:13px;font-weight:600}.lobby-driver small{color:var(--muted);font:9px/1.5 monospace}.lobby-driver.ready small{color:var(--mint)}.lobby-driver.empty{opacity:.55}.lobby-actions{gap:10px;margin:15px 0;display:flex}.lobby-actions button{flex:1;justify-content:center;width:auto}.lobby-waiting .race-bottom,.lobby-waiting #standings,.lobby-waiting #touch-controls{display:none}.race-lobby #camera-panel{width:200px;margin:12px auto;position:relative;inset:auto}.high-contrast .race-lobby{background:#0d1824}.race-lobby .caption{font-size:12px}@media (width<=560px){.race-lobby{max-height:calc(100dvh - 220px);padding:18px;top:200px}.race-lobby h2{margin-bottom:14px;font-size:27px}.lobby-ticket{gap:8px}.lobby-ticket strong{letter-spacing:2px;font-size:22px}.lobby-actions{flex-wrap:wrap}.lobby-driver{padding:10px 0}}#nitro-meter.boosting i{background:#eef3f5}#nitro-meter.low i{background:var(--accent)}#nitro-meter.boosting{box-shadow:0 0 8px #67d7ba60}.high-contrast #nitro-meter{outline:1px solid var(--muted)}.race-details #race-condition.hazard-warning{color:#ffd08b;font-weight:600}.performance{gap:14px;width:150px;margin:0}.performance dl{gap:14px;margin:0;display:grid}.performance dt{letter-spacing:1px;color:var(--muted);margin-bottom:5px;font:9px monospace}.performance dd{white-space:nowrap;margin:0 0 7px;font:600 20px Drive,Arial Narrow,sans-serif}.performance .stat-bar i{background:var(--mint)}.performance-notes p{color:var(--muted);margin:0 0 7px;font:10px/1.5 Segoe UI,sans-serif}.performance-notes p:first-child{color:var(--mint)}.car-heading{right:180px}.performance dd small{color:var(--muted);font:10px Segoe UI,sans-serif}.garage-bottom .finish-options{margin-top:16px}@media (width>=561px) and (width<=900px){body{overflow-y:auto}#garage{position:relative}.garage-layout{flex-direction:column;height:auto;padding:0 16px;display:flex}.garage-stage{order:0;height:750px}.race-setup{background:#172432e8;order:1;padding:28px 22px 30px;overflow:visible}.garage-bottom{bottom:0;left:0}.car-heading{top:22px;left:0;right:0}.car-heading h2{font-size:42px}.performance{gap:10px;width:auto;display:grid;top:300px;left:0;right:0}.performance dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}@media (width<=560px){.garage-stage{height:750px}.performance{gap:10px;width:auto;display:grid;top:300px;left:0;right:0}.performance dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.performance dd{font-size:18px}.performance dt{letter-spacing:.4px;font-size:8px}.performance-notes p{margin-bottom:4px;font-size:10px}.car-heading{right:0}}
