:root{--panel: rgba(15, 23, 42, .82);--panel-soft: rgba(255, 255, 255, .88);--line: rgba(255, 255, 255, .22);--text: #f8fafc;--muted: #cbd5e1;--ink: #111827;--accent: #f04438;--accent-2: #0ea5e9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:#111827;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:100dvh;margin:0;overflow:hidden;overscroll-behavior:none}button{font:inherit}.game-shell{position:relative;width:100%;height:100%;min-height:100dvh;background:#0f172a}#stage{position:absolute;top:0;right:0;bottom:0;left:0}#stage canvas{display:block;width:100%;height:100%;cursor:none;touch-action:none}.fps-counter{position:absolute!important;top:18px!important;right:18px!important;left:auto!important;z-index:5}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}#menu-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.main-menu{pointer-events:auto;min-height:100%;display:grid;grid-template-rows:auto 1fr;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;background:linear-gradient(90deg,#0f172af0,#0f172a66),url(/assets/hero-CLDdwZDr.png) center / cover}.main-menu-topbar{min-height:74px;display:grid;grid-template-columns:minmax(190px,260px) 1fr minmax(280px,380px);align-items:center;gap:18px;padding:14px 24px;border-bottom:1px solid var(--line);background:#0f172ab8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.main-menu-brand,.main-menu-brand strong{display:grid}.main-menu-brand span{color:var(--muted);font-size:13px}.main-menu-brand strong{font-size:20px}.main-menu-tabs{display:flex;gap:8px;justify-content:center}.main-menu-tabs button{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:#ffffff14;cursor:pointer}.main-menu-tabs button.active,.main-menu-tabs button:hover{color:var(--ink);background:#bae6fd}.main-menu-screen{min-height:0;display:grid}.race-setup,.tracks-menu{min-height:100%;display:grid;grid-template-columns:minmax(280px,1fr) 340px;align-items:end;gap:28px;padding:32px 52px 52px}.race-setup-copy,.tracks-menu-copy{max-width:680px;padding-bottom:18px}.eyebrow{margin:0 0 12px;color:#bae6fd;font-size:13px;font-weight:700;letter-spacing:0;text-transform:uppercase}.race-setup h1,.tracks-menu h1,.menu-placeholder h1{margin:0 0 16px;font-size:64px;line-height:.96;letter-spacing:0}.race-setup p,.tracks-menu p,.menu-placeholder p{margin:0;max-width:520px;color:var(--muted);font-size:18px;line-height:1.55}.race-setup-panel,.tracks-menu-panel{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.race-setup-panel div{display:flex;justify-content:space-between;gap:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.account-panel{display:grid!important;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:0;border:0}.account-panel img,.driver-avatar-placeholder{width:42px;height:42px;border-radius:50%;background:#0ea5e9}.account-panel strong,.account-panel span{text-align:left}.account-panel div{display:grid;gap:2px;padding:0;border:0}.account-panel button{min-width:82px}.menu-placeholder{align-self:end;max-width:620px;padding:32px 52px 52px}.track-library-list{display:grid;gap:10px;max-height:420px;overflow:auto}.track-library-item{display:flex;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#ffffff14}.track-library-item div{display:grid;gap:3px}.track-library-item span,.track-library-item time,.track-library-empty{color:var(--muted);font-size:13px}.auth-view{pointer-events:auto;min-height:100%;display:grid;place-items:center;overflow:auto;touch-action:pan-y;padding:24px;background:linear-gradient(90deg,#0f172af0,#0f172a75),url(/assets/hero-CLDdwZDr.png) center / cover}.auth-panel{width:min(420px,100%);display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-panel h1{margin:0;font-size:34px;letter-spacing:0}.auth-panel p{margin:0;color:var(--muted);line-height:1.5}.auth-panel button{min-height:44px;border:0;border-radius:6px;color:#fff;background:var(--accent);cursor:pointer}.auth-panel button:hover{background:#d92d20}.in-game-menu-backdrop{pointer-events:auto;position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#0f172a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.in-game-menu{width:min(340px,100%);display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.in-game-menu h1{margin:0 0 4px;font-size:34px;letter-spacing:0}.in-game-menu button{min-height:44px;border:0;border-radius:6px;color:#fff;background:var(--accent);cursor:pointer}.in-game-menu button:hover{background:#d92d20}.in-game-menu .secondary-button{color:var(--ink);background:var(--panel-soft)}.in-game-menu .secondary-button:hover{background:#e0f2fe}.track-choice{display:grid;gap:8px}.track-choice select{min-height:40px;width:100%;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#ffffffeb}.race-setup-panel span,.topbar span,.race-panel span,.controls-panel span,.speed-panel span{color:var(--muted);font-size:13px}.race-setup-panel strong{text-align:right}.race-setup-panel button,.tracks-menu-panel button{min-height:44px;border:0;border-radius:6px;color:#fff;background:var(--accent);cursor:pointer}.race-setup-panel button:hover,.tracks-menu-panel button:hover{background:#d92d20}.race-setup-panel .secondary-button,.account-panel .secondary-button{color:var(--ink);background:var(--panel-soft)}.race-setup-panel .secondary-button:hover,.account-panel .secondary-button:hover{background:#e0f2fe}.topbar{position:absolute;top:18px;left:18px;right:18px;display:flex;gap:10px;align-items:stretch}.topbar div,.race-panel,.controls-panel,.speed-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar div{min-width:130px;padding:10px 12px;display:grid;gap:2px}.topbar strong{font-size:16px}.speed-panel{position:absolute;right:18px;bottom:18px;width:168px;height:104px;display:grid;place-items:center;align-content:center}.speed-panel strong{font-size:52px;line-height:.9}.race-panel{position:absolute;left:18px;bottom:18px;min-width:210px;padding:12px;display:grid;gap:10px}.race-panel div{display:flex;justify-content:space-between;gap:16px}.controls-panel{position:absolute;left:50%;bottom:18px;transform:translate(-50%);min-width:220px;padding:10px 12px;display:flex;justify-content:center;gap:14px}.mobile-controls{pointer-events:auto;position:absolute;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:6;display:none;justify-content:space-between;align-items:end;gap:18px}.mobile-steer-controls,.mobile-drive-controls{display:flex;gap:12px}.mobile-controls button{width:82px;height:62px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#0f172ab8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:700;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none}.mobile-controls button:active{color:var(--ink);background:#bae6fd}.reticle{pointer-events:none;position:absolute;left:50%;top:50%;width:28px;height:28px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.78);border-radius:50%;box-shadow:0 0 0 1px #0f172a73,0 0 18px #0ea5e9a6}.reticle:before,.reticle:after{content:"";position:absolute;background:#ffffffe6}.reticle:before{left:50%;top:-8px;width:2px;height:42px;transform:translate(-50%)}.reticle:after{left:-8px;top:50%;width:42px;height:2px;transform:translateY(-50%)}.editor-toolbar{pointer-events:auto;position:absolute;top:18px;left:18px;right:18px;min-height:62px;display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.editor-title{display:grid;min-width:170px}.editor-title span,.editor-toolbar>span{color:var(--muted);font-size:13px}.tool-group,.save-form,.load-form{display:flex;gap:8px}.editor-toolbar button,.save-form input,.load-form select,.tool-group select{min-height:38px;border:1px solid var(--line);border-radius:6px}.editor-toolbar button{padding:0 12px;color:var(--text);background:#ffffff1a;cursor:pointer}.editor-toolbar button.active,.editor-toolbar button:hover{color:var(--ink);background:#bae6fd}.save-form input,.load-form select,.tool-group select{width:180px;padding:0 10px;color:var(--ink);background:#ffffffeb}.load-form select{width:220px}.tool-group select{width:190px}.editor-help{pointer-events:none;position:absolute;left:50%;bottom:18px;transform:translate(-50%);padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fatal-error{min-height:100%;display:grid;place-items:center;color:#fff}@media (max-width: 760px){.main-menu-topbar{grid-template-columns:1fr;align-items:stretch;gap:12px}.main-menu-tabs{justify-content:flex-start;overflow-x:auto}.race-setup,.tracks-menu{grid-template-columns:1fr;align-content:end;padding:24px}.race-setup h1,.tracks-menu h1,.menu-placeholder h1{font-size:42px}.menu-placeholder{padding:24px}.topbar{flex-wrap:wrap}.editor-toolbar{align-items:stretch;flex-direction:column}.controls-panel{display:none}.race-panel,.speed-panel{bottom:96px}}@media (pointer: coarse){.controls-panel{display:none}.mobile-controls{display:flex}.race-panel,.speed-panel{bottom:96px}}@media (pointer: coarse) and (orientation: portrait){.mobile-controls{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));gap:10px}.mobile-steer-controls,.mobile-drive-controls{gap:8px}.mobile-controls button{width:72px;height:58px;font-size:13px}.race-panel,.speed-panel{bottom:88px}}
