:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#173b36;background:#98b9af;font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #234b4140;color:inherit;background:#f8f5e9;border-radius:6px;padding:11px 16px;font-weight:650;transition:background .15s,transform .15s}button:hover{background:#e8e3cf;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:default;transform:none}button.primary{background:#f2ca62;border-color:#f2ca62;color:#213b30}button.primary:hover{background:#ffdb78}button.dark{background:#1a443a;color:#fff5dc}button.danger{color:#ac3b2c}button.small{font-size:.82rem;padding:7px 10px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f2ab37;outline-offset:3px}input,select{border:1px solid #244d3d40;background:#fffdf4;border-radius:5px;padding:11px 12px;min-width:0;color:#173b36}input{width:100%}label{display:block;font-size:.875rem;font-weight:600;margin-bottom:7px}h1,h2,h3,p{margin-top:0}h1{font-size:3.3rem;line-height:1.02;letter-spacing:-.065em;font-weight:850;margin-bottom:16px}h2{font-size:1.55rem;letter-spacing:-.035em;margin-bottom:8px}h3{font-size:1rem}p{line-height:1.55}small,.muted{color:#587166}small{font-size:.8rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:750;margin-bottom:13px}.rule{height:1px;background:#254c3f24;margin:22px 0}.topbar{position:fixed;z-index:5;top:0;left:0;right:0;height:70px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;background:#143930;color:#fff8e4;border-bottom:1px solid #ffffff18}.brand{display:flex;align-items:center;gap:13px;font-size:1.1rem;font-weight:800;letter-spacing:-.02em}.brandmark{background:#f0c761;color:#173b31;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:.85rem;transform:rotate(-12deg)}.top-actions{display:flex;align-items:center;gap:9px}.top-actions button{background:transparent;color:#e6ecdb;border-color:#a0b4a252;font-size:.8rem;padding:7px 10px}.connection{font-size:.75rem;letter-spacing:.05em;color:#c5d7bc}.connection.bad{color:#ffc3a8}.panel{position:fixed;z-index:4;left:30px;top:98px;bottom:30px;width:390px;padding:29px;background:#f7f3e4f5;border:1px solid #fff8e2;border-radius:12px;box-shadow:0 12px 50px #193f3920;overflow:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel.home{bottom:auto;max-height:calc(100vh - 125px)}.field{margin-top:17px}.full{width:100%}.stack{display:grid;gap:10px}.row{display:flex;gap:10px;align-items:center}.between{justify-content:space-between}.badge{display:inline-block;background:#dae4d5;padding:6px 9px;border-radius:4px;font-size:.75rem;font-weight:650}.vehicle-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.vehicle-tile{height:62px;padding:3px;overflow:hidden;border:2px solid #d2d9cb;background:#e9eee4}.vehicle-model{position:relative;display:block;width:100%;height:100%}.vehicle-model canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vehicle-model.has-3d img{visibility:hidden}.vehicle-tile img{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px;transform:scale(3)}.vehicle-tile.selected{background:#1b4b3e;border-color:#1b4b3e}.player-selection{position:fixed;z-index:4;inset:0;min-width:0;overflow-x:hidden;overflow-y:auto;background:linear-gradient(180deg,#062b2926 42%,#031d1cd9 84%,#021514fa),var(--race-bay) center top / cover no-repeat;color:#fff8e4}body.selecting>#scene,body.selecting>#labels{visibility:hidden}body.lobbying>#scene,body.lobbying>#labels{visibility:hidden}.selection-shell{width:min(1240px,calc(100vw - 40px));height:100svh;min-height:700px;margin:0 auto;padding:72px 0 14px;display:grid;grid-template-rows:auto clamp(165px,27svh,245px) auto auto;align-content:start;gap:8px}.selection-topbar{z-index:7;height:82px;border:0;background:linear-gradient(180deg,#021d1ce8,transparent);pointer-events:none}.selection-topbar .brand,.selection-topbar .top-actions{pointer-events:auto}.selection-brand{gap:8px;color:#f7faf5;font-size:clamp(1.8rem,3.5vw,3rem);font-style:italic;font-weight:950;letter-spacing:-.08em;text-transform:uppercase;text-shadow:0 5px 24px #001614}.selection-brand .race-dash,.selection-brand .race-av{color:#f6ed60}.selection-brand .race-marks{margin-left:1px;color:#4a8179;font-size:.72em;letter-spacing:-.18em;transform:skew(-10deg)}.selection-topbar .top-actions,.selection-topbar .connection{display:none}.selection-title{position:relative;z-index:2;justify-self:center;margin:0;color:#f8fbf5;font-size:clamp(2rem,4vw,4rem);font-style:italic;font-weight:950;letter-spacing:-.075em;line-height:.95;text-align:center;text-transform:uppercase;white-space:nowrap;text-shadow:0 4px 0 #092c29,0 8px 25px #001311}.selection-title strong{color:#fff265;font-weight:inherit}.hero-stage{position:relative;min-width:0;min-height:165px;overflow:hidden}.hero-vehicle{position:absolute;left:50%;top:50%;width:min(800px,66vw);height:min(390px,44vh);transform:translate(-50%,-48%);filter:drop-shadow(0 25px 19px #001b1a8c)}.hero-vehicle canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hero-vehicle img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.75);mix-blend-mode:screen}.hero-vehicle.has-3d img{visibility:hidden}.vehicle-choice{position:relative;z-index:2;width:100%;min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:10px;align-items:center}.vehicle-rail{min-width:0;overflow:visible}.vehicle-rail::-webkit-scrollbar{display:none}.vehicle-rail .vehicle-showcase{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(760px,100%);margin:0 auto;gap:10px;padding:4px 6px}.vehicle-rail .vehicle-tile{width:100%;height:clamp(76px,7vw,94px);padding:0;overflow:hidden;border:2px solid #b6d4ca52;border-radius:10px;background:#6ca79c52;box-shadow:inset 0 0 18px #9be7d51a}.vehicle-rail .vehicle-tile img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(2.35)}.vehicle-rail .vehicle-tile:hover{border-color:#f9ed7b;background:#8bc6b9a6;transform:translateY(-2px)}.vehicle-rail .vehicle-tile.selected{border-color:#fff56c;background:#9ccdc0a8;box-shadow:0 0 0 2px #fff56c80,0 0 22px #fff45f8f,inset 0 0 18px #fffca336;transform:translateY(-2px)}.rail-arrow{width:42px;height:62px;padding:0;border:0;background:transparent;color:#fff26a;font-size:2.8rem;line-height:1;text-shadow:0 0 15px #fff36c}.rail-arrow:hover{background:transparent;color:#fffbb0;transform:scale(1.12)}.join-controls{position:relative;z-index:3;width:min(520px,100%);margin:0 auto;display:grid;justify-items:center;gap:7px}.join-controls input{height:56px;padding:10px 24px;border:3px solid #f9ef68;border-radius:13px;background:transparent;box-shadow:0 0 0 1px #102c29,inset 0 0 22px #0018178c,0 0 18px #ffef5330;color:#f9fff6;text-align:center;font-size:clamp(1.25rem,2.2vw,1.8rem);font-weight:800;letter-spacing:-.025em}.join-controls input::placeholder{color:#9bb9b2;opacity:.8}.join-row{width:100%;display:grid;grid-template-columns:1fr minmax(220px,300px) 1fr;gap:17px;align-items:center}.join-row i{width:44px;height:32px;justify-self:end;opacity:.7;background:linear-gradient(45deg,#dfda54 25%,transparent 25%) 0 0 / 20px 20px,linear-gradient(45deg,transparent 75%,#dfda54 75%) 0 0 / 20px 20px,linear-gradient(45deg,transparent 75%,#dfda54 75%) 10px -10px / 20px 20px,linear-gradient(45deg,#dfda54 25%,transparent 25%) -10px 10px / 20px 20px}.join-row i:last-child{justify-self:start}.join-controls .primary{width:100%;min-height:60px;border:1px solid #fff9a5;border-radius:15px;background:linear-gradient(180deg,#fffb83,#f0df40);box-shadow:0 8px 20px #0008,0 0 26px #fff25961,inset 0 2px #ffffcf;color:#092d2b;font-size:clamp(1.8rem,3vw,2.7rem);font-style:italic;font-weight:950;letter-spacing:-.055em}.join-controls .primary:hover{background:linear-gradient(180deg,#ffffa1,#ffeb48);transform:translateY(-2px) scale(1.015)}.join-controls .spectator-link{padding:3px 8px;border:0;background:transparent;color:#bfd4ce;font-size:.82rem}.room-picker{width:100%;display:grid;justify-items:center;gap:6px}.room-heading,.room-empty{margin:0;color:#bfd4ce;font-size:.82rem;text-align:center}.room-heading{font-weight:750;letter-spacing:.08em;text-transform:uppercase}.room-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.room-chip{display:grid;gap:1px;min-width:150px;padding:8px 16px;border:2px solid #f9ef68;border-radius:12px;background:#082f2cd9;box-shadow:0 0 14px #ffef5330;color:#f9fff6;text-align:center}.room-chip:hover{background:#0d413cdd}.room-chip strong{font-size:1.1rem;font-weight:850}.room-chip span{color:#bfd4ce;font-size:.75rem;font-weight:600}.room-back{color:#bfd4ce;font-size:.78rem}.host-home form{margin-top:18px}.host-home label{font-size:.85rem;font-weight:700}.host-home input{width:100%;padding:10px 12px;border:1px solid #234b4160;border-radius:6px;background:#fffdf4;color:inherit}.host-resume{font-weight:700}.lobby-room{margin:0 0 10px;color:#cfe2dc;font-size:.9rem}.lobby-topbar{z-index:8;height:82px;border:0;background:linear-gradient(180deg,#021d1cf2,#052b298c 70%,transparent)}.lobby-topbar .top-actions button{background:#082f2cb8;border-color:#b7d2cb40;color:#eaf2e8}.race-lobby{--lobby-line: #a9d7ca3b;position:fixed;z-index:4;inset:0;min-width:0;overflow:hidden;background:linear-gradient(180deg,#062b293d 20%,#031d1cbf 78%,#021514f2),var(--race-bay) center top / cover no-repeat;color:#f8fbf5}.lobby-shell{position:relative;width:min(1460px,calc(100vw - 48px));height:100svh;min-height:650px;margin:0 auto;padding:92px 0 104px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px}.lobby-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:0 6px;text-shadow:0 4px 20px #001816}.lobby-heading .eyebrow,.lobby-control .eyebrow{margin-bottom:4px;color:#b7d5cd}.lobby-heading h1{margin:0;color:#f8fbf5;font-size:clamp(2.5rem,4.2vw,4.6rem);font-style:italic;font-weight:950;line-height:.92;text-transform:uppercase}.lobby-heading h1 strong{color:#fff265;font-weight:inherit}.lobby-heading p{margin:8px 0 0;color:#bed2cc;font-size:.92rem}.lobby-count{min-width:130px;padding:10px 16px;border:1px solid #e9f5d238;border-radius:12px;background:#052d2aa6;box-shadow:0 10px 35px #00181552;text-align:center}.lobby-count b{display:block;color:#fff265;font-size:2rem;line-height:1}.lobby-count small{color:#c3d8d2;text-transform:uppercase;letter-spacing:.08em}.lobby-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.lobby-roster,.lobby-control,.lobby-waiting{min-height:0;border:1px solid var(--lobby-line);border-radius:16px;background:linear-gradient(145deg,#0b3d39d9,#052c2ad4);box-shadow:0 18px 55px #00161473,inset 0 1px #dff8ee1f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.lobby-roster{margin:0;padding:18px;display:grid;grid-template-rows:auto minmax(0,1fr)}.lobby-roster-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 2px 13px;border-bottom:1px solid var(--lobby-line)}.lobby-roster-bar h2{margin:0;color:#f8fbf5;font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em}.lobby-roster-bar span{color:#b8d1ca;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.lobby-player-grid{min-height:0;padding:14px 3px 3px;overflow:hidden;display:grid;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));grid-auto-rows:116px;gap:10px}.lobby-player-grid.is-dense,.lobby-player-grid.is-packed{grid-template-rows:repeat(var(--grid-rows),minmax(0,1fr));grid-auto-rows:0}.lobby-player-grid.is-dense{gap:8px}.lobby-player-grid.is-packed{gap:6px}.lobby-player-card{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid #b6d4ca45;border-radius:11px;background:linear-gradient(155deg,#79aaa057,#153f3b8c);box-shadow:inset 0 0 22px #82d6c71a}.lobby-player-card.is-you{border-color:#fff266;box-shadow:0 0 0 2px #fff2664a,0 0 22px #fff45c38,inset 0 0 22px #fff45c14}.lobby-player-card.is-offline{opacity:.48;filter:grayscale(.7)}.lobby-player-vehicle{height:calc(100% - 39px);min-height:0;overflow:hidden}.lobby-player-vehicle img{width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.55)}.lobby-player-name{position:absolute;left:0;right:0;bottom:0;height:39px;padding:6px 9px;display:flex;align-items:center;justify-content:space-between;gap:7px;background:#041f1ded}.lobby-player-name strong{min-width:0;overflow:hidden;color:#f8fbf5;font-size:.79rem;text-overflow:ellipsis;white-space:nowrap}.lobby-player-name span{flex:0 0 auto;color:#fff36a;font-size:.59rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.lobby-player-grid.is-dense .lobby-player-name,.lobby-player-grid.is-packed .lobby-player-name{height:30px;padding:4px 7px}.lobby-player-grid.is-dense .lobby-player-vehicle,.lobby-player-grid.is-packed .lobby-player-vehicle{height:calc(100% - 30px)}.lobby-player-grid.is-packed .lobby-player-name{height:25px;padding:3px 5px}.lobby-player-grid.is-packed .lobby-player-vehicle{height:calc(100% - 25px)}.lobby-player-grid.is-packed .lobby-player-name strong{font-size:.68rem}.lobby-player-grid.is-packed .lobby-player-name span{font-size:.54rem}.lobby-player-grid.is-packed .lobby-manage{top:3px;right:3px;width:22px;height:20px}.lobby-manage{position:absolute;top:5px;right:5px;width:27px;height:25px;padding:0;border-color:#d9eee84d;background:#042421d4;color:#e8f3ed;font-size:.65rem;letter-spacing:-.15em}.lobby-empty{display:grid;place-items:center;color:#b8d1ca}.lobby-control,.lobby-waiting{padding:19px;overflow-y:auto}.lobby-control-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.lobby-control-head h2{margin:0;color:#f8fbf5;font-size:1.45rem}.lobby-control-head>span{max-width:112px;color:#9fbdb5;font-size:.66rem;line-height:1.35;text-align:right}.lobby-share{margin-top:15px;display:grid;grid-template-columns:1.15fr 1fr;gap:7px}.lobby-control button:not(.lobby-start):not(.lobby-close),.lobby-control select{border-color:#b7d5cc46;background:#e9eee5f0;color:#143b34}.lobby-drive-link{display:inline-block;margin-top:9px;color:#fff36a;font-size:.76rem}.lobby-control .setting{margin-top:15px}.lobby-control label{color:#c5d8d2;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.race-lobby .bounce-panel{position:static;width:auto;margin:15px 0 0;padding:12px;border:1px solid #b7d5cc38;border-radius:9px;background:#062925b5;color:#eaf2e8;box-shadow:none}.race-lobby .bounce-panel[open] summary{margin-bottom:10px}.race-lobby .bounce-panel input[type=range]{margin-block:7px 1px;accent-color:#fff265}.race-lobby .bounce-panel .bounce-scale,.race-lobby .bounce-panel p{color:#a9c4bc}.race-lobby .test-traffic{margin:15px 0 0;padding:12px;border:1px dashed #bed9d04a;background:#789e7e24}.race-lobby .test-traffic .eyebrow{color:#fff36a}.race-lobby .test-traffic p{color:#bed2cc}.cpu-slider-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.cpu-slider-heading .eyebrow,.cpu-slider-heading label{margin:0}.cpu-slider-heading label{color:#eaf2e8;font-size:.72rem}.cpu-slider-heading output{display:inline-grid;min-width:25px;height:25px;margin-left:5px;place-items:center;border-radius:6px;background:#fff36a;color:#133832;font-size:.78rem;font-weight:900}.race-lobby .test-traffic input[type=range]{width:100%;height:22px;margin:7px 0 0;padding:0;accent-color:#fff265;cursor:pointer}.cpu-slider-scale{display:flex;justify-content:space-between;color:#a9c4bc;font-size:.65rem}.race-lobby .test-traffic #cpu-count-help{margin:3px 0 0}.lobby-start{width:100%;min-height:54px;margin-top:15px;border:1px solid #fff9a5;border-radius:12px;background:linear-gradient(180deg,#fffb83,#f0df40);box-shadow:0 8px 20px #0006,0 0 23px #fff2594a,inset 0 2px #ffffcf;color:#092d2b;font-size:1.08rem;font-style:italic;font-weight:950;text-transform:uppercase}.lobby-start span{padding-left:6px;font-size:1.45rem;line-height:0}.lobby-start:hover{background:linear-gradient(180deg,#ffffa1,#ffeb48)}.lobby-close{display:block;margin:9px auto 0;padding:4px 8px;border:0;background:transparent;color:#e6aaa0;font-size:.7rem}.lobby-waiting{display:grid;place-content:center;text-align:center}.waiting-pulse{width:52px;height:52px;margin:0 auto 18px;border:2px solid #fff266;border-radius:50%;box-shadow:0 0 28px #fff26666;animation:waiting-pulse 1.8s ease-in-out infinite}.lobby-waiting strong{color:#fff36a;font-size:1.35rem;text-transform:uppercase}.lobby-waiting p{max-width:210px;margin:8px auto 0;color:#aec8c0;font-size:.82rem}.lobby-driving-guide{position:absolute;left:4px;bottom:18px;display:flex;align-items:center;gap:13px;color:#f0f7f2;text-shadow:0 2px 12px #001613}.lobby-keyboard{width:82px;display:grid;grid-template-columns:repeat(3,25px);gap:3px}.lobby-keyboard kbd{height:25px;padding:3px 0;border-color:#d7e3d5;background:#eef1e6;color:#153c35;text-align:center}.lobby-keyboard kbd:first-child{grid-column:2}.lobby-driving-guide strong{display:block;color:#fff36a;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.lobby-driving-guide p{margin:3px 0 0;color:#b9cec8;font-size:.7rem;line-height:1.4}.lobby-penalty{position:absolute;right:4px;bottom:25px;margin:0;color:#fff5d3;font-size:.82rem;font-weight:750;letter-spacing:.025em;text-shadow:0 3px 16px #001613}@keyframes waiting-pulse{50%{transform:scale(.82);opacity:.45}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.swatches{display:flex;gap:10px}.swatch{height:31px;width:31px;border-radius:50%;padding:0;border:3px solid #f8f5e9;box-shadow:0 0 0 1px #153a3025}.swatch.selected{box-shadow:0 0 0 2px #1c493c}.help{font-size:.875rem;line-height:1.55}.keys{display:flex;gap:5px;margin:13px 0}kbd{background:#e5e6d9;border:1px solid #c1cbbc;border-bottom:3px solid #bbc4b4;border-radius:4px;padding:4px 7px;font:600 .8rem Segoe UI,sans-serif}.roster{list-style:none;padding:0;margin:16px 0}.test-traffic{margin:17px 0 12px;padding:13px;border:1px dashed #688470;border-radius:6px;background:#e7ebd9}.test-traffic .eyebrow{margin-bottom:5px}.test-traffic p{margin-bottom:9px;font-size:.8rem}.test-traffic .row{flex-wrap:wrap;gap:6px}.grid-roster{margin:15px 0}.grid-roster summary{cursor:pointer;font-size:.875rem;font-weight:650;padding:7px 0}.grid-roster .roster{max-height:210px;overflow-y:auto}.roster li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid #2b4a3a20}.person{display:flex;align-items:center;gap:10px;font-size:.9rem}.chip{width:12px;height:23px;border:1px solid #1b423028;border-radius:4px}.status{font-size:.75rem;font-weight:650;color:#637668}.status.ready{color:#247957}.setting{display:flex;gap:12px;margin-top:15px}.setting>div{flex:1}.setting select{width:100%}.track-note{position:fixed;right:34px;bottom:32px;color:#fff9e6;text-shadow:0 2px 12px #11382a;z-index:3;text-align:right}.track-note h2{font-size:2.1rem;margin:4px 0;letter-spacing:-.05em}.track-note span{font-size:.8rem;letter-spacing:.1em}.hud{position:fixed;top:93px;left:30px;right:30px;z-index:4;display:flex;justify-content:space-between;pointer-events:none}.telemetry{display:flex;gap:1px;background:#123930e8;border-radius:9px;overflow:hidden;color:#fff5dc;box-shadow:0 10px 30px #0e362628}.metric{padding:13px 21px;min-width:104px;border-right:1px solid #ffffff18}.metric .caption{text-transform:uppercase;font-size:.65rem;letter-spacing:.16em;color:#b5c9b2}.metric strong{display:block;font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:650;letter-spacing:-.04em;margin-top:3px}.miniwrap{position:fixed;right:30px;bottom:30px;width:230px;padding:16px;z-index:4;background:#153c33e8;color:#fff4dc;border-radius:10px}.miniwrap canvas{width:100%;height:auto}.miniwrap .row{font-size:.7rem;letter-spacing:.1em}.bounce-panel{position:fixed;right:30px;top:94px;width:258px;z-index:5;padding:16px;border-radius:10px;background:#f5f0dff2;color:#163b32;box-shadow:0 4px 20px #163b3220}.bounce-panel summary{cursor:pointer;font-weight:700;font-size:.9rem}.bounce-panel[open] summary{margin-bottom:16px}.bounce-panel label,.bounce-panel output{font-size:.85rem;font-weight:700}.bounce-panel input[type=range]{width:100%;padding:0;margin:12px 0 4px;height:24px;accent-color:#236a57;cursor:pointer}.bounce-scale,.bounce-panel p{font-size:.73rem;line-height:1.5}@media(max-width:800px){.bounce-panel{top:165px;right:12px;width:210px}}.drivehelp{position:fixed;left:30px;bottom:30px;z-index:4;background:#f5f0dfeb;border-radius:7px;padding:12px 16px;font-size:.8rem;display:flex;gap:13px;align-items:center}.drivehelp button{pointer-events:auto}.car-label{position:fixed;top:0;left:0;background:#163b32d9;color:#fff8df;border-radius:4px;padding:4px 8px;font-size:.75rem;white-space:nowrap;pointer-events:none;z-index:2}.car-label.own{background:#f2cc67;color:#183b2f;font-weight:700}.car-label[hidden]{display:none}.countdown{position:fixed;inset:0;display:grid;place-content:center;text-align:center;z-index:6;pointer-events:none;color:#fff9e5;text-shadow:0 4px 40px #193a2d}.countdown strong{font-size:8rem;font-weight:850;line-height:1}.countdown span{font-size:1rem;letter-spacing:.2em;font-weight:750;margin-bottom:20px}.alert{position:fixed;z-index:9;top:185px;left:50%;transform:translate(-50%);padding:12px 22px;background:#f4ce70;color:#243c2c;border-radius:7px;box-shadow:0 5px 25px #153c3325;font-weight:700;text-align:center;max-width:80vw}.toast{position:fixed;z-index:20;bottom:30px;left:50%;transform:translate(-50%);max-width:600px;background:#143e34;color:#fff5dd;border:1px solid #b6c9b6;padding:15px 22px;border-radius:8px;box-shadow:0 5px 30px #10382c40}.spectate{pointer-events:auto;background:#f8f2dff0;padding:13px;border-radius:8px;display:flex;gap:8px;align-items:center}.results{position:fixed;z-index:7;top:96px;bottom:28px;left:50%;transform:translate(-50%);width:min(860px,calc(100vw - 50px));overflow:auto;background:#f7f3e7f7;border:1px solid #fff6dd;border-radius:12px;padding:30px;box-shadow:0 20px 80px #173e3940}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.results-header h1{font-size:2.6rem;margin-bottom:6px}.result-head,.result-row{display:grid;grid-template-columns:38px minmax(100px,1fr) 110px 100px 110px;gap:10px;align-items:center}.result-head{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:#69806f;margin:14px 0}.result-row{padding:15px 10px;background:#fffaf0;border-top:1px solid #21442d16;font-size:.95rem;font-variant-numeric:tabular-nums;transition:transform 2s ease,background 2s}.result-row.winner{background:#efe0aa}.result-row .rank{font-weight:750}.result-row .time{font-family:ui-monospace,Consolas,monospace}.result-row small{display:block;font-size:.7rem}.awards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}.award{padding:18px;background:#e3e8d9;border-radius:6px}.award span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.award strong{font-size:1.1rem}.result-table{position:relative}.reveal{position:absolute;inset:0;z-index:2;display:grid;place-content:center;padding:20px 5px;text-align:center;background:#f7f3e7eb;border-radius:6px}.results.dense{top:82px;bottom:14px;width:min(1180px,calc(100vw - 40px));padding:20px 26px}.results.dense .results-header{margin-bottom:8px}.results.dense .results-header h1{font-size:1.9rem;margin-bottom:2px}.results.dense .result-heads,.results.dense #result-rows{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}.results.dense #result-rows{grid-template-rows:repeat(var(--result-rows),auto);grid-auto-flow:column}.results.dense .result-head,.results.dense .result-row{grid-template-columns:26px minmax(80px,1fr) 76px 50px 76px;gap:6px}.results.dense .result-head{margin:4px 0 6px}.results.dense .result-row{padding:3px 8px;font-size:.84rem}.results.dense .person{min-width:0;gap:8px}.results.dense .chip{height:16px;flex:none}.results.dense .person>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.results.dense .result-row small{display:inline;margin-left:6px}.results.dense .awards{margin-top:10px}.results.dense .row[style]{margin-top:10px!important}.results.dense .award{padding:9px 14px}.results.dense .award span{margin-bottom:3px}.results.dense .help[style]{margin-top:8px!important}@media(max-width:900px){.results.dense .result-heads,.results.dense #result-rows{display:block}.results.dense .result-head~.result-head{display:none}}.reveal .scan{height:4px;background:#dbc994;overflow:hidden;margin:24px auto;width:240px}.reveal .scan:after{content:"";display:block;background:#1a4d3c;width:45%;height:100%;animation:scan 1.2s linear infinite}@keyframes scan{0%{transform:translate(-100%)}to{transform:translate(325%)}}dialog{border:1px solid #d9dfc8;border-radius:12px;background:#f9f5e6;color:#163a2e;padding:28px;max-width:440px;box-shadow:0 20px 70px #163d3460}dialog::backdrop{background:#0e332b88}dialog p{line-height:1.5}dialog .row{justify-content:flex-end}.fallback{position:fixed;right:30px;top:100px;max-width:380px;background:#fff1d2;padding:20px;z-index:3;border-radius:8px}.hidden{display:none!important}@media(max-width:850px){.selection-shell{width:min(100% - 28px,760px);padding-top:72px}.hero-vehicle{width:min(700px,88vw)}.lobby-shell{width:calc(100vw - 28px)}.lobby-layout{grid-template-columns:minmax(0,1fr) 300px}.panel{left:18px;width:350px;top:88px;bottom:18px;padding:24px}.topbar{padding:0 18px}.connection{display:none}.miniwrap{width:175px;right:18px}.hud{left:18px;right:18px}.metric{padding:10px 13px;min-width:80px}.metric strong{font-size:1.4rem}.drivehelp{left:18px;bottom:18px;max-width:calc(100vw - 220px);flex-wrap:wrap}.awards{gap:5px}.result-head,.result-row{grid-template-columns:28px minmax(90px,1fr) 85px 65px 85px;gap:5px}.track-note{right:20px;max-width:220px}}@media(max-width:600px){body{overflow:auto}body.selecting,body.lobbying{overflow:hidden}.topbar{height:64px}.brand{font-size:.9rem}.top-actions button{font-size:.7rem;padding:6px}.panel{width:calc(100vw - 32px);left:16px;top:82px}.player-selection{inset:0;background-position:center top}.selection-shell{width:calc(100% - 20px);height:auto;min-height:100svh;padding:66px 0 16px;grid-template-rows:auto clamp(215px,27svh,245px) auto auto;gap:8px}.selection-brand{font-size:1.45rem}.lobby-topbar .top-actions button:nth-last-child(-n+2),.lobby-topbar .connection{display:none}.lobby-topbar .top-actions button{font-size:.67rem}.race-lobby{overflow-y:auto}.lobby-shell{width:calc(100% - 20px);height:auto;min-height:100svh;padding:75px 0 18px;display:block}.lobby-heading{align-items:center}.lobby-heading h1{font-size:2.1rem}.lobby-heading p{font-size:.75rem}.lobby-count{min-width:90px;padding:8px 10px}.lobby-count b{font-size:1.5rem}.lobby-layout{display:grid;grid-template-columns:1fr;margin-top:14px}.lobby-roster{min-height:430px}.lobby-player-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:92px;overflow:visible}.lobby-player-grid.is-dense,.lobby-player-grid.is-packed{grid-template-rows:none;grid-auto-rows:92px}.lobby-control,.lobby-waiting{overflow:visible}.lobby-driving-guide,.lobby-penalty{position:static}.lobby-driving-guide{margin:18px 4px 0}.lobby-penalty{margin:17px 4px 0;padding-top:15px;border-top:1px solid #b7d5cc38;font-size:.74rem}.selection-title{width:100%;font-size:clamp(1.7rem,7.8vw,2.2rem);line-height:1;white-space:normal}.selection-title span,.selection-title strong{display:block}.hero-stage{min-height:215px}.hero-vehicle{width:min(600px,126vw);height:min(310px,35svh);transform:translate(-50%,-46%)}.vehicle-choice{display:block}.rail-arrow{display:none}.vehicle-rail .vehicle-showcase{gap:6px;padding-inline:2px}.vehicle-rail .vehicle-tile{width:100%;height:clamp(54px,14vw,62px)}.vehicle-rail .vehicle-tile img{transform:scale(2.25)}.join-controls{gap:8px}.join-controls input{height:54px}.join-row{grid-template-columns:minmax(28px,1fr) minmax(180px,250px) minmax(28px,1fr);gap:7px}.join-row i{width:34px;height:26px;background-size:16px 16px}.join-controls .primary{min-height:58px}.track-note{display:none}.results{padding:18px}.result-head,.result-row{font-size:.75rem;grid-template-columns:20px minmax(75px,1fr) 65px 45px 65px}.awards{grid-template-columns:1fr}.hud{top:80px;flex-wrap:wrap;gap:10px}.metric{min-width:70px}.metric strong{font-size:1.1rem}.drivehelp{max-width:calc(100vw - 36px);bottom:10px}.miniwrap{bottom:125px;width:145px}.spectate{font-size:.8rem}}@media(max-height:680px)and (min-width:601px){.selection-shell{min-height:620px;padding-top:64px;grid-template-rows:auto 160px auto auto;gap:5px}.selection-title{font-size:2.2rem}.hero-vehicle{height:240px}.vehicle-rail .vehicle-tile{height:68px}.join-controls{gap:5px}.join-controls input{height:50px}.join-controls .primary{min-height:54px}.lobby-shell{padding-top:76px;padding-bottom:86px;gap:9px}.lobby-heading h1{font-size:2.5rem}.lobby-heading p{display:none}.lobby-player-grid{grid-auto-rows:104px}.lobby-player-vehicle{height:68px}.lobby-control{padding:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}body.reduced *{animation:none!important;transition:none!important}
