*{box-sizing:border-box}html,body,#root{background:#0b0e13;width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{font-family:system-ui,Segoe UI,sans-serif}:root{--hud-accent:#ff6a00;--hud-nitro:#00e0ff;--hud-nitro-deep:#0090ff;--hud-danger:#ff2b2b;--hud-gain:#7bff9d;--hud-loss:#ff6a6a;--hud-ink:#fff;--hud-ink70:#ffffffb3;--hud-ink45:#ffffff73;--hud-ink32:#ffffff52;--hud-panel:#0a0c12d1;--hud-panel-line:#ffffff24;--hud-track:#ffffff12;--font-display:"Anton", "Archivo Black", Impact, "Arial Narrow", sans-serif;--font-label:"Barlow Condensed", "Oswald", "Roboto Condensed", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Roboto Mono", ui-monospace, monospace;--hud-scale:1}.app{font-family:var(--font-label);background:#05070c;position:fixed;inset:0;overflow:hidden}.cjk{letter-spacing:.08em;text-transform:none}.app canvas{touch-action:none;width:100%;height:100%;display:block}.race-entry-hold{left:50%;bottom:calc(300px * var(--hud-scale));background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-left:3px solid var(--hud-nitro);width:min(360px,82vw);color:var(--hud-ink);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;padding:12px 16px 14px;position:absolute;transform:translate(-50%)}.race-entry-copy{justify-content:space-between;align-items:center;gap:16px;line-height:1;display:flex}.race-entry-copy strong{color:var(--hud-nitro);letter-spacing:.28em;font-size:15px;font-weight:700}.race-entry-copy span{text-align:right;min-width:52px;font-family:var(--font-mono);color:var(--hud-ink70);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.race-entry-bar{background:var(--hud-track);border:1px solid var(--hud-panel-line);height:10px;margin-top:10px;position:relative;overflow:hidden;transform:skew(-12deg)}.race-entry-bar span{background:linear-gradient(90deg, var(--hud-nitro-deep), var(--hud-nitro));height:100%;transition:width 80ms linear;display:block}.race-message{background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-left:4px solid var(--hud-accent);max-width:min(560px,88vw);color:var(--hud-ink);font-family:var(--font-display);letter-spacing:.02em;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-shadow:0 4px 22px #000c;padding:14px 28px;font-size:40px;position:absolute;top:22%;left:50%;transform:translate(-50%)skew(-12deg)}.race-message>span{display:block;transform:skew(12deg)}.app.touch .race-message{font-size:22px;top:clamp(210px,32dvh,260px)}.app.touch .race-entry-hold{bottom:calc(max(16px, env(safe-area-inset-bottom)) + 256px);width:min(300px,78vw);padding:10px 12px 12px}@media (width<=520px){.race-entry-hold{width:min(300px,78vw)}.race-entry-copy{gap:10px}}.controls{pointer-events:auto;flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex}.control-group{gap:6px;display:flex}.controls button{font-family:var(--font-label);letter-spacing:.14em;color:var(--hud-ink70);background:var(--hud-panel);border:1px solid var(--hud-panel-line);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:9px 18px;font-size:16px;font-weight:600;transition:background .15s,color .15s,border-color .15s;transform:skew(-12deg)}.controls button>span{align-items:center;gap:7px;display:inline-flex;transform:skew(12deg)}.controls button em{font-style:normal}.app.touch .controls button em{display:none}.app.touch .controls button{padding:9px 12px}.controls button:hover{color:var(--hud-ink);border-color:#ffffff57}.controls button.active{background:var(--hud-accent);border-color:var(--hud-accent);color:#0a0a0a;font-weight:700}.race-enter{background:var(--hud-nitro)!important;border-color:var(--hud-nitro)!important;color:#04121a!important;font-size:18px!important;font-weight:700!important}.race-enter:hover{box-shadow:0 0 22px #00e0ff8c}.race-exit{background:var(--hud-danger)!important;border-color:var(--hud-danger)!important;color:#fff!important}.race-exit:hover{box-shadow:0 0 22px #ff4d6280}.hint{letter-spacing:.08em;max-width:420px;color:var(--hud-ink45);border-left:2px solid var(--hud-panel-line);background:#0a0c128c;margin-top:2px;padding:5px 10px;font-size:14px}.mobile-controls{pointer-events:none;z-index:20;position:absolute;inset:0}.steer-pad,.pedal-pad{bottom:max(18px, env(safe-area-inset-bottom));align-items:flex-end;gap:12px;display:flex;position:absolute}.steer-pad{left:max(28px, calc(env(safe-area-inset-left) + 22px))}.pedal-pad{right:max(20px, calc(env(safe-area-inset-right) + 14px));align-items:center}.touch-btn{pointer-events:auto;width:84px;height:76px;color:var(--hud-ink70);background:var(--hud-panel);border:1px solid var(--hud-panel-line);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;transition:background .1s,color .1s,box-shadow .1s;display:flex;position:relative;transform:skew(-12deg)}.touch-btn>*{pointer-events:none;transform:skew(12deg)}.touch-btn em{letter-spacing:.18em;opacity:.75;font-size:13px;font-style:normal;font-weight:700}.touch-btn.pressed{filter:brightness(1.25);box-shadow:inset 0 0 0 2px}.btn-steer{width:96px;height:92px}.btn-up{color:#0a0a0a;background:var(--hud-accent);border-color:var(--hud-accent);width:104px;height:104px}.btn-up em{opacity:.7}.btn-down{width:80px;height:72px}.btn-brake-hand{width:80px;height:72px;color:var(--hud-loss);border-color:#ff6a6a66}.btn-brake-hand.btn-air-up{color:var(--hud-nitro);border-color:#00e0ff8c}.btn-boost{width:80px;height:72px;color:var(--hud-ink32)}.btn-boost.ready{color:#04121a;background:var(--hud-nitro);border-color:var(--hud-nitro);box-shadow:0 0 20px #00e0ff73}@media (width<=700px){.steer-pad,.pedal-pad{bottom:max(16px, env(safe-area-inset-bottom))}.steer-pad{left:max(16px, calc(env(safe-area-inset-left) + 10px));gap:8px}.app.touch .pedal-pad{right:max(12px, calc(env(safe-area-inset-right) + 8px))}.btn-steer{width:64px;height:64px}.btn-up{width:76px;height:112px}.btn-down,.btn-brake-hand,.btn-boost{width:54px;height:54px}.touch-btn em{letter-spacing:.08em;font-size:9px}.touch-btn svg{width:24px;height:24px}}@media (width<=360px){.steer-pad{left:max(12px, calc(env(safe-area-inset-left) + 8px));gap:6px}.app.touch .pedal-pad{right:max(12px, calc(env(safe-area-inset-right) + 6px))}.btn-steer{width:58px;height:58px}.btn-up{width:70px;height:104px}.btn-down,.btn-brake-hand,.btn-boost{width:50px;height:50px}}@media (orientation:landscape) and (height<=430px){.steer-pad,.pedal-pad{bottom:max(8px, env(safe-area-inset-bottom))}.btn-steer{width:56px;height:52px}.btn-up{width:68px;height:96px}.btn-down,.btn-brake-hand,.btn-boost{width:48px;height:48px}}.app.touch .controls{gap:6px}.app.touch .controls .control-group{gap:4px}.app.touch .controls button{box-sizing:border-box;place-items:center;width:44px;height:44px;padding:0;display:grid}.app.touch .race-enter{font-size:16px!important}.app.touch .hint{display:none}@media (orientation:landscape) and (height<=430px){.app.touch .race-message,.app.touch .race-entry-hold{top:218px;bottom:auto}}@media (orientation:landscape) and (height<=430px) and (width<=620px){.app.touch .race-message,.app.touch .race-entry-hold{box-sizing:border-box;width:min(180px,70vw);top:124px;bottom:auto}}.help-overlay{z-index:50;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-label);background:#04060ac7;place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.help-card{-webkit-overflow-scrolling:touch;box-sizing:border-box;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-top:3px solid var(--hud-accent);width:min(440px,88vw);max-height:min(88dvh,760px);color:var(--hud-ink);padding:24px 26px;overflow-y:auto;box-shadow:0 20px 60px #0009}.help-card h2{font-family:var(--font-display);letter-spacing:.02em;margin:0 0 16px;font-size:34px;font-weight:400}.help-grid{grid-template-columns:auto 1fr;align-items:center;gap:10px 16px;font-size:16px;display:grid}.help-grid>span:nth-child(odd){color:var(--hud-ink45);letter-spacing:.06em}.help-grid>span:nth-child(2n){text-align:right}kbd{min-width:20px;font-family:var(--font-mono);text-align:center;color:var(--hud-ink70);border:1px solid var(--hud-panel-line);background:#ffffff12;border-bottom-width:2px;margin:0 1px;padding:2px 7px;font-size:13px;display:inline-block}.help-note{letter-spacing:.04em;color:var(--hud-ink45);margin:16px 0 18px;font-size:15px;line-height:1.55}.setup-steps{gap:5px;margin-bottom:14px;display:flex}.setup-step{background:#ffffff1f;flex:1;height:4px;transition:background .2s;transform:skew(-12deg)}.setup-step.done{background:var(--hud-accent)}.keyguide{margin:4px 0 14px}.keyguide-drive{justify-content:center;align-items:center;gap:18px;padding:16px 0 14px;display:flex}.keyguide-or{letter-spacing:.16em;color:var(--hud-ink32);font-size:13px}.keyguide-cluster{grid-template-rows:repeat(2,34px);grid-template-columns:repeat(3,34px);gap:4px;display:grid}.cap-up{grid-area:1/2}.cap-left{grid-area:2/1}.cap-down{grid-area:2/2}.cap-right{grid-area:2/3}.keycap{box-sizing:border-box;min-width:34px;height:34px;font-family:var(--font-mono);color:var(--hud-ink);border:1px solid var(--hud-panel-line);background:linear-gradient(#ffffff21,#ffffff0a);border-bottom:3px solid #0000008c;place-items:center;padding:0 8px;font-size:14px;font-weight:700;display:grid;box-shadow:inset 0 1px #ffffff2e}.keycap-wide{min-width:84px}.keyguide-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.keyguide-row{align-items:center;gap:14px;display:flex}.keyguide-keys{flex-shrink:0;gap:5px;min-width:118px;display:flex}.keyguide-meaning{color:var(--hud-ink70);align-items:center;gap:8px;font-size:16px;display:flex}.keyguide-iconset{gap:2px;display:inline-flex}.keyguide-hint{color:var(--hud-ink45);justify-content:center;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;display:flex}.flight-keyguide-note{border-left:3px solid var(--hud-nitro);color:var(--hud-ink70);background:#00e0ff12;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;font-size:12px;line-height:1.4;display:flex}.flight-keyguide-note svg{color:var(--hud-nitro);flex:none}.flight-keyguide-note strong{color:var(--hud-ink);margin-right:5px}.touch-keyguide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0 12px;display:grid}.touch-keyguide-item{box-sizing:border-box;border-left:3px solid var(--hud-nitro);min-height:66px;color:var(--hud-nitro);background:#ffffff0d;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:8px 9px;display:grid}.touch-keyguide-copy{flex-direction:column;gap:2px;min-width:0;line-height:1.15;display:flex}.touch-keyguide-copy strong{font-family:var(--font-label);letter-spacing:0;color:var(--hud-ink);font-size:12px}.touch-keyguide-copy span{color:var(--hud-ink45);font-size:12px}.touch-keyguide-notes{gap:6px;margin-bottom:14px;display:grid}.touch-keyguide-note{border:1px solid var(--hud-panel-line);color:var(--hud-ink70);background:#0000003d;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;padding:7px 9px;font-size:12px;line-height:1.4;display:grid}.touch-keyguide-note>:first-child{color:var(--hud-accent);justify-self:center}.touch-keyguide-note strong{color:var(--hud-ink);margin-right:6px}.help-start,.car-select{width:100%;font-family:var(--font-label);letter-spacing:.18em;color:#0a0a0a;background:var(--hud-accent);cursor:pointer;border:none;padding:13px;font-size:18px;font-weight:700;transition:filter .15s,box-shadow .15s;transform:skew(-12deg)}.help-start>span,.car-select>span{display:inline-block;transform:skew(12deg)}.help-start:hover,.car-select:hover{filter:brightness(1.1);box-shadow:0 0 24px #ff6a0073}.help-start:disabled{color:var(--hud-ink32);cursor:not-allowed;box-shadow:none;filter:none;background:#ffffff1a}.setup-field{margin:18px 0 16px;display:block}.setup-field-label{letter-spacing:.24em;color:var(--hud-ink45);margin-bottom:7px;font-size:14px;display:block}.setup-name{box-sizing:border-box;width:100%;font-size:16px;font-family:var(--font-label);letter-spacing:.06em;color:var(--hud-ink);border:1px solid var(--hud-panel-line);background:#00000073;outline:none;padding:12px 13px;transition:border-color .15s,box-shadow .15s}.setup-name::placeholder{color:var(--hud-ink32)}.setup-name:focus{border-color:var(--hud-accent);box-shadow:0 0 0 2px #ff6a0047}.help-card-wide{width:min(780px,92vw)}.setup-greeting{letter-spacing:.08em;color:var(--hud-ink45);margin:4px 0 18px;font-size:16px}.car-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.car-card{border:1px solid var(--hud-panel-line);text-align:center;background:#0006;flex-direction:column;padding:10px;transition:border-color .15s;display:flex}.car-card:hover{border-color:#ff6a008c}.car-preview{aspect-ratio:4/3;background:#05070c;width:100%;line-height:0;overflow:hidden}.car-preview-canvas{width:100%;height:100%}.car-label{font-family:var(--font-display);letter-spacing:.02em;color:var(--hud-ink);margin-top:10px;font-size:22px;font-weight:400}.car-tagline{letter-spacing:.04em;min-height:34px;color:var(--hud-ink45);margin-top:4px;font-size:14px;line-height:1.35}.car-select{letter-spacing:.16em;margin-top:10px;padding:10px;font-size:15px}.color-row{align-items:center;gap:12px;margin-top:16px;display:flex}.color-row-label{letter-spacing:.24em;color:var(--hud-ink45);flex-shrink:0;font-size:14px}.color-swatches{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{cursor:pointer;border:2px solid #ffffff2e;border-radius:50%;width:28px;height:28px;padding:0;transition:transform .12s,border-color .12s,box-shadow .12s;position:relative}.color-swatch:hover{transform:scale(1.12)}.color-swatch.selected{box-shadow:0 0 0 2px var(--hud-accent);border-color:#fff}.swatch-default{background:conic-gradient(#e63946,#ff7a00,#f6c945,#2ec4b6,#3a86ff,#8338ec,#e63946)}.color-custom{background:#00000080;place-items:center;font-size:14px;display:grid;overflow:hidden}.color-custom input[type=color]{opacity:0;cursor:pointer;border:none;padding:0;position:absolute;inset:0}.setup-back{width:100%;font-size:14px;font-family:var(--font-label);letter-spacing:.2em;color:var(--hud-ink45);border:1px solid var(--hud-panel-line);cursor:pointer;background:0 0;margin-top:16px;padding:10px;transition:background .15s,color .15s}.setup-back:hover{color:var(--hud-ink);background:#ffffff0f}@media (width<=640px){.car-grid{grid-template-columns:1fr}.car-tagline{min-height:0}.help-card{padding:18px 16px}.car-card{text-align:left;grid-template-columns:96px minmax(0,1fr) auto;grid-template-areas:"preview label select""preview tagline select";align-items:center;gap:2px 12px;display:grid}.car-preview{grid-area:preview;width:96px}.car-label{grid-area:label;margin-top:0;font-size:20px}.car-tagline{grid-area:tagline}.car-select{grid-area:select;margin-top:0;padding:9px 16px}}@media (height<=560px){.help-card{padding:14px 16px}.help-card h2{margin-bottom:8px;font-size:18px}.setup-field{margin:12px 0}}.app.touch .pedal-pad{grid-template-rows:auto auto auto;grid-template-columns:auto auto;align-items:center;gap:8px 12px;display:grid}@media (width<=700px){.app.touch .pedal-pad{gap:6px 8px}}@media (width<=360px){.app.touch .pedal-pad{gap:5px 6px}}.app.touch .btn-boost{grid-area:1/1}.app.touch .btn-brake-hand{grid-area:2/1}.app.touch .btn-down{grid-area:3/1}.app.touch .btn-up{grid-area:1/2/span 3}.creator-overlay{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-label);background:#04060ac7;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.creator-panel{box-sizing:border-box;text-align:center;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-top:3px solid var(--hud-nitro);width:min(380px,90vw);color:var(--hud-ink);flex-direction:column;align-items:center;gap:8px;padding:30px 26px 26px;display:flex;position:relative;box-shadow:0 20px 60px #0009}.creator-close{width:32px;height:32px;color:var(--hud-ink45);border:1px solid var(--hud-panel-line);cursor:pointer;background:0 0;font-size:15px;position:absolute;top:10px;right:12px}.creator-close:hover{color:var(--hud-ink);background:#ffffff12}.creator-avatar{border:2px solid var(--hud-nitro);object-fit:cover;background:#05070c;border-radius:50%;width:96px;height:96px}.creator-name{font-family:var(--font-display);margin:8px 0 0;font-size:28px;font-weight:400}.creator-handle{font-family:var(--font-mono);color:var(--hud-gain);margin:0;font-size:14px}.creator-tagline{letter-spacing:.06em;color:var(--hud-ink45);margin:4px 0 10px;font-size:15px}.creator-link{letter-spacing:.18em;color:#04121a;background:var(--hud-nitro);padding:11px 22px;font-size:16px;font-weight:700;text-decoration:none;transition:box-shadow .15s;display:inline-block;transform:skew(-12deg)}.creator-link>span{display:inline-block;transform:skew(12deg)}.creator-link:hover{box-shadow:0 0 24px #00e0ff80}.intro-screen{z-index:80;font-family:var(--font-label);opacity:1;background:radial-gradient(120% 90% at 50% 110%,#ff6a002e,#0000 60%),linear-gradient(160deg,#05070c 0%,#0a0c12 55%,#14100c 100%);place-items:center;transition:opacity .6s;display:grid;position:absolute;inset:0;overflow:hidden}.intro-screen.intro-leave{opacity:0;pointer-events:none}.intro-speedlines{pointer-events:none;position:absolute;inset:0}.intro-speedline{top:calc(6% + var(--i) * 10.5%);width:38vw;height:2px;animation:1.7s linear infinite intro-speedline-sweep;animation-delay:calc(var(--i) * -.21s);background:linear-gradient(90deg,#0000,#ff6a0099,#0000);position:absolute;left:0;transform:translate(-40vw)}.intro-speedline:nth-child(2n){background:linear-gradient(90deg,#0000,#f8fafc4d,#0000);width:26vw;height:1px;animation-duration:1.25s}@keyframes intro-speedline-sweep{to{transform:translate(140vw)}}.intro-center{text-align:center;justify-items:center;gap:14px;padding:0 24px;display:grid}.intro-checker{opacity:.85;background:repeating-conic-gradient(#e7edf5 0% 25%,#0b0e13 0% 50%) 0 0/24px 12px;border-radius:3px;width:min(420px,76vw);height:12px}.intro-kicker{letter-spacing:.42em;color:var(--hud-accent);margin-top:6px;font-size:14px;font-weight:600}.intro-title{font-family:var(--font-display);letter-spacing:.02em;color:var(--hud-ink);text-shadow:0 0 26px #ff6a0066,0 4px #3c1600e6;margin:0;font-size:clamp(44px,10vw,92px);font-style:italic;font-weight:400;line-height:1}.intro-title-accent{color:var(--hud-accent)}.intro-sub{letter-spacing:.08em;color:var(--hud-ink45);font-size:15px}.intro-progress{background:var(--hud-track);border:1px solid var(--hud-panel-line);width:min(420px,76vw);height:10px;margin:10px 0 6px;overflow:hidden;transform:skew(-12deg)}.intro-progress-fill{background:linear-gradient(90deg, #b34a00, var(--hud-accent));transform-origin:0;width:100%;height:100%;transition:transform .45s;animation:2.6s cubic-bezier(.2,.7,.3,1) forwards intro-progress-fill;transform:scaleX(0);box-shadow:0 0 16px #ff6a00bf}.intro-progress-fill.full{animation:none;transform:scaleX(1)}@keyframes intro-progress-fill{to{transform:scaleX(.88)}}.net-hud{pointer-events:none;flex-direction:column;align-items:stretch;gap:6px;width:100%;min-height:0;display:flex}.net-bar{align-items:stretch;gap:6px;display:flex}.net-status,.net-chat-toggle{pointer-events:auto;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-left:3px solid var(--hud-nitro);color:var(--hud-ink);font-family:var(--font-label);letter-spacing:.16em;cursor:pointer;text-align:left;border-radius:4px;align-items:center;gap:7px;padding:7px 10px;font-size:13px;display:flex}.net-status{flex:1;min-width:0}.net-chat-toggle{border-left-width:1px;border-left-color:var(--hud-panel-line);color:var(--hud-ink70);flex:none}.net-chat-toggle.active{border-color:var(--hud-nitro);color:var(--hud-nitro)}.net-status:hover,.net-chat-toggle:hover{border-color:var(--hud-nitro);color:var(--hud-ink)}.net-status:focus-visible,.net-chat-toggle:focus-visible{outline:2px solid var(--hud-nitro);outline-offset:2px}.net-status-hint{border:1px solid var(--hud-panel-line);letter-spacing:.1em;color:var(--hud-ink45);border-radius:3px;flex:none;padding:2px 6px;font-size:10px}.net-status:hover .net-status-hint{border-color:var(--hud-nitro);color:var(--hud-nitro)}.net-status-dot{background:var(--hud-nitro);width:8px;height:8px;box-shadow:0 0 8px var(--hud-nitro);border-radius:50%;flex:none}.net-status-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.net-status.offline,.net-status.limited{border-left-color:#ff6a6a}.net-status.offline .net-status-dot,.net-status.limited .net-status-dot{background:#ff6a6a;box-shadow:0 0 8px #ff6a6a}.net-status.connecting,.net-status.idle{border-left-color:var(--hud-ink45)}.net-status.connecting .net-status-dot,.net-status.idle .net-status-dot{background:var(--hud-ink45);box-shadow:none}.net-badge{background:var(--hud-accent);color:#0a0a0a;min-width:18px;height:18px;font-family:var(--font-mono);text-align:center;letter-spacing:0;border-radius:9px;flex:none;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.net-roster-overlay{z-index:60;pointer-events:auto;background:#04070fb8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.net-roster-modal{background:var(--hud-panel);border:1px solid var(--hud-nitro);border-radius:6px;flex-direction:column;gap:10px;width:min(420px,92vw);max-height:min(80dvh,560px);padding:16px;display:flex;box-shadow:0 18px 60px #0009}.net-roster-head{color:var(--hud-nitro);align-items:center;gap:8px;display:flex}.net-roster-head h2{font-family:var(--font-label);letter-spacing:.18em;color:var(--hud-ink);flex:1;margin:0;font-size:17px}.net-roster-close{color:var(--hud-ink45);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:16px;line-height:1}.app.touch .net-roster-close{box-sizing:border-box;width:44px;height:44px}.net-roster-close:hover{color:var(--hud-ink)}.net-roster-note{font-family:var(--font-label);letter-spacing:.1em;color:var(--hud-ink32);margin:0;font-size:11px}.net-roster{flex-direction:column;flex:1;gap:3px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.net-roster-row{font-family:var(--font-mono);color:var(--hud-ink);border-radius:3px;align-items:center;gap:8px;padding:5px 6px;font-size:13px;display:flex}.net-roster-row.self{background:#ff6a001f}.net-roster-swatch{border:1px solid #ffffff59;border-radius:3px;flex:none;width:12px;height:12px}.net-roster-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.net-roster-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.net-roster-meta{font-family:var(--font-label);letter-spacing:.08em;color:var(--hud-ink45);white-space:nowrap;align-items:center;gap:6px;font-size:10px;display:flex;overflow:hidden}.net-roster-geo{flex:none}.net-roster-ip{font-family:var(--font-mono);letter-spacing:0;color:var(--hud-ink32);flex:none}.net-roster-model{font-family:var(--font-label);letter-spacing:.12em;color:var(--hud-ink45);flex:none;font-size:11px}.net-roster-tag{font-family:var(--font-label);letter-spacing:.1em;color:var(--hud-ink70);background:#ffffff1f;border-radius:8px;flex:none;padding:1px 5px;font-size:10px}.net-roster-tag.racing{color:#0a0a0a;background:#ff6a00d9}.net-roster-empty{font-family:var(--font-label);letter-spacing:.14em;color:var(--hud-ink32);padding:6px;font-size:12px}.net-chat-panel{pointer-events:auto;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-radius:4px;flex-direction:column;flex:1;gap:6px;min-height:0;padding:8px 10px 10px;display:flex}.net-chat-log{flex-direction:column;flex:1;gap:4px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.net-chat-empty{font-family:var(--font-label);letter-spacing:.14em;color:var(--hud-ink32);font-size:12px}.net-chat-line{font-family:var(--font-mono);color:var(--hud-ink);word-break:break-word;font-size:13px;line-height:1.4}.net-chat-line b{color:var(--hud-nitro);margin-right:6px;font-weight:700}.net-chat-line.self b{color:var(--hud-accent)}.net-chat-form{align-items:center;gap:6px;display:flex}.net-chat-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.net-chat-input{border:1px solid var(--hud-panel-line);min-width:0;color:var(--hud-ink);font-family:var(--font-mono);background:#00000073;border-radius:3px;flex:1;padding:6px 8px;font-size:13px}.net-chat-input:focus{outline:2px solid var(--hud-nitro);outline-offset:1px}.net-chat-send{background:var(--hud-nitro);color:#04121a;font-family:var(--font-label);letter-spacing:.14em;cursor:pointer;border:none;border-radius:3px;flex:none;padding:6px 10px;font-size:13px}@media (width<=420px){.app.touch .net-status-hint{display:none}}.character-stage{aspect-ratio:4/3;border:1px solid var(--hud-panel-line);border-radius:6px;width:100%;max-height:34vh;margin-bottom:10px;overflow:hidden}.character-grid{flex-wrap:wrap;justify-content:center;gap:6px;width:100%;max-height:22vh;margin-bottom:14px;display:flex;overflow-y:auto}.character-chip{border:1px solid var(--hud-panel-line);color:var(--hud-ink70);font-family:var(--font-label);letter-spacing:.12em;cursor:pointer;background:#0a0e16b3;border-radius:999px;padding:7px 12px;font-size:13px}.character-chip:hover{border-color:var(--hud-ink45);color:var(--hud-ink)}.character-chip.selected{border-color:var(--hud-accent);color:var(--hud-accent);background:#ff6a002e}.character-preview-canvas{width:100%;height:100%;display:block}.setup-start-row{gap:8px;width:100%;margin-bottom:8px;display:flex}.setup-done{background:var(--hud-accent);color:#0a0a0a;font-family:var(--font-label);letter-spacing:.2em;cursor:pointer;border:none;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 10px;font-size:16px;display:flex}.setup-done:hover{filter:brightness(1.08)}.setup-done.alt{background:var(--hud-nitro);color:#04121a}.controls button.avatar-toggle{color:var(--hud-nitro);border-color:#00e0ff8c}.controls button.avatar-toggle.on-foot{border-color:var(--hud-accent);color:var(--hud-accent);background:#ff6a0029}.controls button.avatar-toggle:disabled{opacity:.35;cursor:not-allowed}.controls .control-group.bgm-group{flex-direction:column;align-items:stretch;gap:0}.bgm-select-label{font-family:var(--font-label);letter-spacing:.16em;color:var(--hud-ink45);align-items:center;gap:6px;padding:0 2px 4px;font-size:11px;display:flex}.bgm-select{pointer-events:auto;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-left:3px solid var(--hud-nitro);width:100%;color:var(--hud-ink);font-family:var(--font-label);letter-spacing:.1em;cursor:pointer;border-radius:3px;padding:7px 8px;font-size:13px}.bgm-select:hover{border-color:var(--hud-nitro)}.bgm-select:focus-visible{outline:2px solid var(--hud-nitro);outline-offset:2px}.bgm-select option{color:var(--hud-ink);background:#0b1020}@media (width<=420px){.app.touch .bgm-select-label span{display:none}.app.touch .bgm-select{letter-spacing:0;padding:6px 2px;font-size:11px}}.left-rail{z-index:15;pointer-events:none;left:calc(56px * var(--hud-scale));top:calc(150px * var(--hud-scale));bottom:calc(300px * var(--hud-scale));flex-direction:column;align-items:stretch;gap:10px;width:clamp(232px,21vw,320px);display:flex;position:fixed}.left-rail .net-hud.open,.left-rail .net-chat-panel{flex:1;min-height:0}.mobile-tools,.mobile-net-hud{display:none}.app.touch .mobile-net-hud{z-index:25;left:max(12px, env(safe-area-inset-left));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 128px);pointer-events:none;width:min(226px,100vw - 170px);display:block;position:fixed}.app.touch .mobile-net-hud .net-hud.open{max-height:min(34dvh,260px)}.app.touch .mobile-net-hud .net-chat-panel{min-height:112px}.app.touch .mobile-tools{z-index:30;left:max(10px, env(safe-area-inset-left));top:calc(max(8px, env(safe-area-inset-top)) + 84px);pointer-events:auto;display:block;position:fixed}.mobile-tools-toggle{box-sizing:border-box;width:48px;height:44px;color:var(--hud-ink70);background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-left:3px solid var(--hud-nitro);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:4px;place-items:center;list-style:none;display:grid}.mobile-tools-toggle span{display:none}.mobile-tools-toggle::-webkit-details-marker{display:none}.mobile-tools[open] .mobile-tools-toggle{color:#04121a;background:var(--hud-nitro);border-color:var(--hud-nitro)}.app.touch .mobile-tools-panel{box-sizing:border-box;width:min(286px, calc(100vw - max(20px, env(safe-area-inset-left)) - max(20px, env(safe-area-inset-right))));overscroll-behavior:contain;border:1px solid var(--hud-panel-line);pointer-events:auto;background:#070a10f0;border-radius:6px;gap:8px;max-height:min(62dvh,520px);padding:12px 16px 14px 20px;position:absolute;top:52px;bottom:auto;left:0;overflow:auto;box-shadow:0 16px 36px #0000007a}.app.touch .mobile-tools-panel :is(button,input,select){box-sizing:border-box;min-height:44px}.app.touch .mobile-tools-panel button{min-width:44px}@media (orientation:landscape) and (height<=430px){.app.touch .mobile-tools{top:calc(max(6px, env(safe-area-inset-top)) + 78px)}.app.touch .mobile-tools-panel{max-height:calc(100dvh - 136px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.app.touch .mobile-tools-panel .controls,.app.touch .mobile-tools-panel .control-group{flex-flow:wrap}}.car-preview-still{object-fit:cover;border:1px solid var(--hud-panel-line);background:#0d1320;border-radius:3px;width:100%;height:100%;display:block}@media (orientation:landscape) and (height<=430px){.app.touch .mobile-net-hud{left:50%;bottom:max(8px, env(safe-area-inset-bottom));width:min(250px,44vw);transform:translate(-50%)}.app.touch .mobile-net-hud .net-hud.open{max-height:min(42dvh,170px)}}.time-bar{background:var(--hud-panel);border:1px solid var(--hud-panel-line);pointer-events:auto;border-radius:999px;gap:4px;padding:4px;display:flex}.time-btn{color:var(--hud-ink45);font-family:var(--font-label);letter-spacing:.14em;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.time-btn:hover{color:var(--hud-ink);background:#ffffff12}.time-btn.active{background:var(--hud-accent);color:#0a0a0a}.time-btn:focus-visible{outline:2px solid var(--hud-nitro);outline-offset:2px}.app:not(.touch) .left-rail .time-bar{top:calc(40px * var(--hud-scale));position:fixed;left:50%;transform:translate(-50%)}.app.touch .time-bar{align-self:flex-start;padding:3px}.app.touch .time-btn{letter-spacing:.08em;padding:6px 9px;font-size:11px}@media (width<=460px){.app.touch .time-btn span{display:none}.app.touch .time-btn{padding:7px 10px}}.guestbook-overlay{z-index:60;padding:20px;padding-top:max(20px, env(safe-area-inset-top));padding-bottom:max(20px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-label);background:#04060ac7;place-items:center;display:grid;position:absolute;inset:0}.guestbook-panel{box-sizing:border-box;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-top:3px solid var(--hud-accent);width:min(560px,92vw);max-height:min(86dvh,760px);color:var(--hud-ink);flex-direction:column;padding:22px 22px 18px;display:flex;position:relative;box-shadow:0 20px 60px #0009}.guestbook-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.guestbook-title,.admin-title{font-family:var(--font-display);letter-spacing:.04em;align-items:baseline;gap:10px;margin:0;font-size:26px;font-weight:400;display:flex}.guestbook-sub{font-family:var(--font-label);color:var(--hud-ink45);font-size:14px}.guestbook-close{width:32px;height:32px;color:var(--hud-ink45);border:1px solid var(--hud-panel-line);cursor:pointer;background:0 0;flex:none;font-size:15px}.guestbook-close:hover{color:var(--hud-ink);background:#ffffff12}.guestbook-admin-flag{color:var(--hud-danger);background:#ff2b2b17;border:1px solid #ff2b2b73;flex-wrap:wrap;flex:none;align-items:center;gap:8px;margin:10px 0 0;padding:6px 10px;font-size:13px;display:flex}.guestbook-wipe{color:var(--hud-danger);cursor:pointer;background:0 0;border:1px solid #0000;margin-left:auto;padding:4px;transition:border-color .15s,background .15s;display:inline-flex}.guestbook-wipe:hover{border-color:var(--hud-danger);background:#ff2b2b2e}.guestbook-admin-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.guestbook-admin-actions button{font-family:var(--font-label);letter-spacing:.08em;color:var(--hud-ink70);border:1px solid var(--hud-panel-line);cursor:pointer;background:0 0;padding:4px 10px;font-size:12px}.guestbook-admin-actions button.danger{color:var(--hud-ink);background:var(--hud-danger);border-color:var(--hud-danger);font-weight:700}.guestbook-admin-actions button:disabled{opacity:.5;cursor:default}.guestbook-admin-msg{width:100%;color:var(--hud-ink70);font-size:12px}.guestbook-body{flex:1;min-height:0;margin:14px 0 0;padding-right:4px;overflow-y:auto}.guestbook-empty,.guestbook-error,.guestbook-confirm{letter-spacing:.04em;color:var(--hud-ink45);margin:10px 0;font-size:14px}.guestbook-error{color:var(--hud-loss)}.guestbook-thread{border-left:2px solid var(--hud-panel-line);margin-bottom:14px}.guestbook-post{background:#ffffff08;padding:10px 12px}.guestbook-post+.guestbook-post{margin-top:2px}.guestbook-post.reply{border-left:2px solid var(--hud-accent);background:#ffffff0d;margin-left:20px}.guestbook-post.deleted{opacity:.55}.guestbook-meta{min-width:0;color:var(--hud-ink45);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:12px;display:flex}.guestbook-author-icon{color:var(--hud-accent);align-self:center;display:inline-flex}.guestbook-author{overflow-wrap:anywhere;min-width:0;max-width:14em;color:var(--hud-ink);font-size:14px;font-weight:700}.guestbook-origin,.guestbook-when{overflow-wrap:anywhere;min-width:0;font-family:var(--font-mono);font-size:11px}.guestbook-edited{color:var(--hud-nitro);font-size:11px}.guestbook-text{color:var(--hud-ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;font-size:14px;line-height:1.55}.guestbook-actions{gap:6px;margin-top:8px;display:flex}.guestbook-actions button,.guestbook-form-actions button{font-family:var(--font-label);letter-spacing:.1em;color:var(--hud-ink70);border:1px solid var(--hud-panel-line);cursor:pointer;background:0 0;padding:6px 12px;font-size:13px;transition:border-color .15s,color .15s}.guestbook-actions button:hover,.guestbook-form-actions button:hover{color:var(--hud-ink);border-color:var(--hud-ink45)}.guestbook-form-actions button.primary{color:#04121a;background:var(--hud-accent);border-color:var(--hud-accent);font-weight:700}.guestbook-form-actions button.danger{color:var(--hud-ink);background:var(--hud-danger);border-color:var(--hud-danger);font-weight:700}.guestbook-form-actions button:disabled{opacity:.5;cursor:default}.guestbook-form{margin-top:8px}.guestbook-field{margin-bottom:10px;display:block}.guestbook-field-label{letter-spacing:.2em;color:var(--hud-ink45);margin-bottom:5px;font-size:12px;display:block}.guestbook-input{box-sizing:border-box;width:100%;font-family:var(--font-label);letter-spacing:.04em;color:var(--hud-ink);border:1px solid var(--hud-panel-line);background:#00000073;outline:none;padding:9px 11px;font-size:15px;transition:border-color .15s,box-shadow .15s}.guestbook-input::placeholder{color:var(--hud-ink32)}.guestbook-input:focus{border-color:var(--hud-accent);box-shadow:0 0 0 2px #ff6a0047}.guestbook-textarea{resize:vertical;line-height:1.5}.guestbook-form-actions{justify-content:flex-end;gap:8px;display:flex}.guestbook-foot{border-top:1px solid var(--hud-panel-line);flex:none;margin-top:12px;padding-top:12px}.guestbook-write{width:100%;font-family:var(--font-label);letter-spacing:.18em;color:#170800;background:var(--hud-accent);cursor:pointer;border:none;padding:11px 22px;font-size:15px;font-weight:700;transition:box-shadow .15s;transform:skew(-12deg)}.guestbook-write>span{display:inline-block;transform:skew(12deg)}.guestbook-write:hover{box-shadow:0 0 24px #ff6a0080}.admin-panel{box-sizing:border-box;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-top:3px solid var(--hud-danger);width:min(340px,90vw);color:var(--hud-ink);padding:24px 22px 20px;position:relative;box-shadow:0 20px 60px #0009}.admin-title{margin-bottom:16px}.app.touch .guestbook-panel{width:100%;max-height:88dvh;padding:16px 14px 14px}.app.touch .guestbook-actions button,.app.touch .guestbook-form-actions button,.app.touch .guestbook-close{min-width:44px;min-height:44px}.app.touch .guestbook-write{min-height:48px}.app.touch .guestbook-input{font-size:16px}@media (width<=420px){.guestbook-title,.admin-title{font-size:21px}.guestbook-post.reply{margin-left:10px}}@keyframes guestbook-overlay-in{0%{opacity:0}}@keyframes guestbook-panel-in{0%{opacity:0;transform:translateY(14px)scale(.985)}}@keyframes guestbook-card-in{0%{opacity:0;transform:translateY(8px)}}.guestbook-overlay{animation:.18s ease-out both guestbook-overlay-in}.guestbook-panel,.admin-panel{animation:.26s cubic-bezier(.2,.7,.3,1) both guestbook-panel-in}.guestbook-thread{animation:.22s ease-out both guestbook-card-in;animation-delay:var(--stagger,0s)}@media (prefers-reduced-motion:reduce){.guestbook-overlay,.guestbook-panel,.admin-panel,.guestbook-thread{animation:none}}.guestbook-icon-picker{gap:6px;display:flex}.guestbook-icon-btn{width:40px;height:36px;color:var(--hud-ink45);border:1px solid var(--hud-panel-line);cursor:pointer;background:#00000073;place-items:center;transition:color .15s,border-color .15s,background .15s;display:grid}.guestbook-icon-btn:hover{color:var(--hud-ink);border-color:var(--hud-ink45)}.guestbook-icon-btn.selected{color:var(--hud-accent);border-color:var(--hud-accent);background:#ff6a0024}.guestbook-counter{float:right;font-family:var(--font-mono);letter-spacing:0;color:var(--hud-ink32);font-size:11px}.guestbook-more{font-family:var(--font-label);letter-spacing:.08em;color:var(--hud-nitro);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:2px 0;font-size:13px}.guestbook-more:hover{text-decoration:underline}.guestbook-pager{border-top:1px solid var(--hud-panel-line);flex-wrap:wrap;flex:none;justify-content:center;gap:4px;margin-top:10px;padding-top:10px;display:flex}.guestbook-pager button{min-width:30px;height:30px;font-family:var(--font-mono);color:var(--hud-ink70);border:1px solid var(--hud-panel-line);cursor:pointer;background:0 0;padding:0 7px;font-size:13px;transition:color .15s,border-color .15s}.guestbook-pager button:hover:not(:disabled){color:var(--hud-ink);border-color:var(--hud-ink45)}.guestbook-pager button.current{color:#170800;background:var(--hud-accent);border-color:var(--hud-accent);font-weight:700}.guestbook-pager button:disabled{opacity:.35;cursor:default}.app.touch .guestbook-icon-btn,.app.touch .guestbook-pager button,.app.touch .guestbook-more{min-width:44px;min-height:44px}.app.touch .guestbook-icon-btn{width:44px}.app.touch .guestbook-wipe,.app.touch .guestbook-admin-actions button{min-width:44px;min-height:44px}.scene-editor{z-index:15;top:calc(258px * var(--hud-scale));right:calc(56px * var(--hud-scale));width:272px;max-height:calc(100dvh - 300px * var(--hud-scale));box-sizing:border-box;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-top:3px solid var(--hud-accent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--hud-ink);font-family:var(--font-label);padding:14px 16px 16px;animation:.18s ease-out both hud-enter;position:fixed;overflow-y:auto;box-shadow:0 18px 48px #0000008c}.scene-editor-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.scene-editor-title{letter-spacing:.08em;margin:0;font-size:15px;font-weight:700}.scene-editor-close{border:1px solid var(--hud-panel-line);color:var(--hud-ink45);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:14px;line-height:1.2;transition:color .15s,border-color .15s}.scene-editor-close:hover{color:var(--hud-ink);border-color:var(--hud-accent)}.scene-editor-empty,.scene-editor-note,.scene-editor-status{color:var(--hud-ink45);margin:0;font-size:12px;line-height:1.5}.scene-editor-target{color:var(--hud-accent);margin:0 0 10px;font-size:14px;font-weight:700}.scene-editor-field{border:none;margin:0 0 12px;padding:0}.scene-editor-field legend{letter-spacing:.12em;color:var(--hud-ink45);margin-bottom:5px;padding:0;font-size:11px}.scene-editor-axis{grid-template-columns:14px 22px 1fr 22px;align-items:center;gap:5px;margin-bottom:4px;display:grid}.scene-editor-axis-label{font-family:var(--font-mono);color:var(--hud-ink45);font-size:11px}.scene-editor-nudge{border:1px solid var(--hud-panel-line);height:24px;color:var(--hud-ink70);cursor:pointer;background:#ffffff0f;border-radius:3px;padding:0;font-size:13px;line-height:1;transition:background .15s,color .15s}.scene-editor-nudge:hover{color:var(--hud-ink);background:#ff6a0038}.scene-editor-input{box-sizing:border-box;border:1px solid var(--hud-panel-line);width:100%;min-width:0;height:26px;color:var(--hud-ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;background:#00000073;border-radius:3px;padding:0 6px;font-size:12px}.scene-editor-input:focus{border-color:var(--hud-accent);outline:none}.scene-editor-actions{gap:8px;margin-top:14px;display:flex}.scene-editor-actions button{border:1px solid var(--hud-panel-line);color:var(--hud-ink70);font-family:var(--font-label);cursor:pointer;background:#ffffff0f;border-radius:3px;flex:1;padding:8px 0;font-size:13px;transition:background .15s,color .15s,border-color .15s}.scene-editor-actions button.primary{background:var(--hud-accent);border-color:var(--hud-accent);color:#0a0a0a;font-weight:700}.scene-editor-actions button:disabled{opacity:.4;cursor:default}.scene-editor-actions button:not(:disabled):hover{border-color:var(--hud-accent);color:var(--hud-ink)}.scene-editor-actions button.primary:not(:disabled):hover{color:#0a0a0a}.scene-editor-status,.scene-editor-note{margin-top:10px}.app.touch .scene-editor{display:none}.gl-lost{z-index:45;background:var(--hud-panel);border:1px solid var(--hud-panel-line);border-top:3px solid var(--hud-danger);color:var(--hud-ink);font-family:var(--font-label);text-align:center;place-items:center;gap:12px;padding:20px 24px;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0009}.gl-lost p{margin:0;font-size:15px}.gl-lost button{background:var(--hud-accent);color:#0a0a0a;font-family:var(--font-label);cursor:pointer;border:none;border-radius:3px;min-height:44px;padding:10px 20px;font-size:14px;font-weight:700}.hud{z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--hud-ink);font-family:var(--font-label);position:absolute;inset:0}.hud-vignette{z-index:5;pointer-events:none;background:radial-gradient(120% 80% at 50% 40%,#0000 45%,#000000b8 100%);position:absolute;inset:0}.hud-widget{z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--hud-ink);font-family:var(--font-label);transform:scale(var(--hud-scale,1));animation:.25s ease-out both hud-enter;position:absolute}@keyframes hud-enter{0%{opacity:0}}.hud-a{left:calc(56px * var(--hud-scale,1));top:calc(48px * var(--hud-scale,1));transform-origin:0 0;animation-delay:0s}.hud-b{right:calc(56px * var(--hud-scale,1));top:calc(48px * var(--hud-scale,1));transform-origin:100% 0;animation-delay:60ms}.hud-c{left:calc(56px * var(--hud-scale,1));bottom:calc(56px * var(--hud-scale,1));transform-origin:0 100%;animation-delay:.12s}.hud-d{left:calc(56px * var(--hud-scale,1));bottom:calc((56px + 66px + 26px) * var(--hud-scale,1));transform-origin:0 100%;animation-delay:.18s}.hud-e{right:calc(56px * var(--hud-scale,1));bottom:calc(44px * var(--hud-scale,1));transform-origin:100% 100%;animation-delay:.24s}.hud-f{left:50%;bottom:calc(52px * var(--hud-scale,1));transform:translateX(-50%) scale(var(--hud-scale,1));transform-origin:bottom;animation-delay:.12s}.position-hud{z-index:12;right:calc(56px * var(--hud-scale,1));top:calc(230px * var(--hud-scale,1));transform:scale(var(--hud-scale,1));transform-origin:100% 0;pointer-events:auto;position:absolute}.position-hud summary{border:1px solid var(--hud-panel-line);border-left:3px solid var(--hud-nitro);background:var(--hud-panel);width:46px;height:46px;color:var(--hud-ink70);cursor:pointer;border-radius:4px;place-items:center;list-style:none;display:grid}.position-hud summary::-webkit-details-marker{display:none}.position-hud[open] summary{border-color:var(--hud-nitro);color:var(--hud-nitro)}.position-panel{border:1px solid var(--hud-panel-line);border-right:3px solid var(--hud-nitro);background:var(--hud-panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:4px;flex-direction:column;align-items:flex-end;gap:4px;width:236px;padding:9px 11px;display:flex;position:absolute;top:52px;right:0}.position-panel span{color:var(--hud-ink45);letter-spacing:.2em;font-size:10px}.position-panel strong{color:var(--hud-ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap;font-size:15px}.slab{align-items:stretch;height:88px;display:flex}.slab-chip,.slab-panel{transform:skew(-12deg)}.slab-chip>*,.slab-panel>*{transform:skew(12deg)}.slab-chip{background:var(--hud-accent);color:#0a0a0a;align-items:baseline;gap:4px;padding:0 22px;display:flex}.slab-chip b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:74px;font-weight:400;line-height:88px}.slab-chip i{font-family:var(--font-label);letter-spacing:.06em;font-size:26px;font-style:normal;font-weight:700}.slab-panel{background:var(--hud-panel);border:1px solid var(--hud-panel-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-left:none;flex-direction:column;justify-content:center;gap:4px;padding:0 24px;display:flex}.slab-label{letter-spacing:.28em;color:var(--hud-ink45);font-size:15px;font-weight:600}.slab-value{letter-spacing:.06em;white-space:nowrap;max-width:220px;color:var(--hud-ink);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;overflow:hidden}.lapbox{text-align:right;flex-direction:column;align-items:flex-end;gap:6px;display:flex}.lap-line{align-items:baseline;gap:10px;display:flex}.lap-line small{letter-spacing:.3em;color:var(--hud-ink45);font-size:16px;font-weight:600}.lap-line b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:52px;font-weight:400;line-height:.9}.lap-line i{color:var(--hud-ink45);font-size:26px;font-style:normal;font-weight:600}.lap-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-shadow:0 4px 24px #000c;font-size:46px;font-weight:700;line-height:1}.delta-chip{border:1px solid var(--delta-color,var(--hud-ink32));background:color-mix(in srgb, var(--delta-color,#888) 12%, transparent);align-items:baseline;gap:10px;padding:5px 12px;transition:background .24s;display:flex}.delta-chip.pulse{background:color-mix(in srgb, var(--delta-color,#888) 20%, transparent)}.delta-chip b{font-family:var(--font-mono);color:var(--delta-color,var(--hud-ink32));font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.delta-chip small{letter-spacing:.2em;color:var(--hud-ink45);font-size:15px;font-weight:600}.lap-best{letter-spacing:.24em;color:#ffffff59;font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.nitro{width:340px}.nitro-head{justify-content:space-between;align-items:baseline;margin-bottom:7px;display:flex}.nitro-head strong{letter-spacing:.28em;color:var(--hud-nitro);font-size:15px;font-weight:700}.nitro-head span{font-family:var(--font-mono);color:var(--hud-ink70);font-variant-numeric:tabular-nums;font-size:18px}.nitro-bar{background:var(--hud-track);border:1px solid var(--hud-panel-line);height:26px;overflow:hidden;transform:skew(-12deg)}.nitro-fill{background:linear-gradient(90deg, var(--hud-nitro-deep), var(--hud-nitro));width:0;height:100%;transition:width .12s ease-out}.nitro.firing .nitro-fill{background:#fff;transition:none}.nitro-pips{gap:6px;margin-top:7px;display:flex}.nitro-pip{background:#ffffff29;flex:1;height:5px;transition:background .15s,box-shadow .15s;transform:skew(-12deg)}.nitro-pip.on{background:var(--hud-nitro);box-shadow:0 0 10px #00e0ffb3}.drift{box-sizing:border-box;border-left:3px solid var(--hud-accent);opacity:.18;background:#ff6a0024;width:340px;padding:14px 18px;transition:opacity .16s ease-out,transform .16s ease-out;transform:translate(-16px)}.drift.on{opacity:1;transform:translate(0)}.drift.punch .drift-score{transform:scale(1.25)}.drift-label{letter-spacing:.3em;color:#ffb27a;font-size:14px;font-weight:700}.drift-row{align-items:baseline;gap:12px;margin-top:2px;display:flex}.drift-score{font-family:var(--font-display);font-variant-numeric:tabular-nums;transform-origin:0;font-size:54px;font-weight:400;line-height:1;transition:transform .32s cubic-bezier(.2,1.4,.4,1)}.drift-mult{font-family:var(--font-display);color:var(--hud-accent);font-size:30px;font-weight:400}.tacho{width:360px;height:360px;position:relative}.tacho-disc{background:radial-gradient(circle,#080a10e6 58%,#080a1073 72%,#0000 74%);border-radius:50%;position:absolute;inset:0}.tacho-ring{border:1px solid var(--hud-panel-line);border-radius:50%;position:absolute;inset:14px}.tacho-sweep,.tacho-redline{border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 0 61%,#000 62%);mask:radial-gradient(circle,#0000 0 61%,#000 62%)}.tacho-sweep{background:conic-gradient(from -120deg, var(--hud-accent) 0deg var(--sweep,0deg), transparent var(--sweep,0deg) 360deg)}.tacho-redline{background:conic-gradient(from -120deg, transparent 0 192deg, var(--hud-danger) 192deg 240deg, transparent 240deg);opacity:.12;transition:opacity .16s}.tacho-redline.hot{opacity:1;transition-duration:80ms}.tacho-redline.flash{animation:.166s step-end infinite tacho-redline-flash}@keyframes tacho-redline-flash{50%{opacity:.55}}.tacho-tick{background:var(--hud-ink32);position:absolute;top:50%;left:50%}.tacho-tick.major{background:var(--hud-ink70)}.tacho-tick.red{background:var(--hud-danger)}.tacho-needle{transform-origin:50% 100%;background:linear-gradient(180deg, #fff, var(--hud-accent) 78%, transparent);border-radius:3px;width:6px;height:132px;margin-top:-132px;margin-left:-3px;position:absolute;top:50%;left:50%;box-shadow:0 0 18px #ff6a00bf}.tacho-hub{background:#12151d;border:2px solid #ffffff4d;border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute;top:50%;left:50%}.tacho-speed{text-align:center;text-shadow:0 4px 30px #000c;position:absolute;bottom:64px;left:0;right:0}.tacho-speed b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:108px;font-weight:400;line-height:.88;display:block}.tacho-speed small{letter-spacing:.36em;color:#ffffff80;font-size:17px;font-weight:600}.tacho-gear{background:var(--hud-accent);clip-path:polygon(14% 0,100% 0,86% 100%,0 100%);place-items:center;width:64px;height:64px;margin-left:-32px;transition:transform .14s cubic-bezier(.2,1.6,.4,1);display:grid;position:absolute;top:26px;left:50%}.tacho-gear.shift{transform:scale(1.18)}.tacho-gear span{font-family:var(--font-display);color:#0a0a0a;font-size:42px;font-weight:400}.minimap{border:1px solid var(--hud-panel-line);background:#080a108c;width:300px;height:170px;line-height:0;position:relative}.minimap canvas{width:100%;height:100%}.minimap-caption{letter-spacing:.26em;color:#ffffff6b;font-size:13px;font-weight:600;line-height:1;position:absolute;bottom:8px;left:10px}.app.touch .hud-widget{animation-duration:.18s;transform:none}.app.touch .hud-a{left:max(10px, env(safe-area-inset-left));top:max(8px, env(safe-area-inset-top))}.app.touch .slab{height:50px}.app.touch .slab-chip{gap:2px;padding:0 9px}.app.touch .slab-chip b{font-size:38px;line-height:50px}.app.touch .slab-chip i{font-size:12px}.app.touch .slab-panel{gap:2px;padding:0 9px}.app.touch .slab-label{letter-spacing:.16em;font-size:8px}.app.touch .slab-value{max-width:66px;font-size:11px}.app.touch .hud-b{right:max(10px, env(safe-area-inset-right));top:max(8px, env(safe-area-inset-top))}.app.touch .position-hud{right:max(10px, env(safe-area-inset-right));top:calc(max(8px, env(safe-area-inset-top)) + 54px);transform:none}.app.touch .position-hud summary{width:44px;height:44px}.app.touch .position-panel{width:204px;padding:8px 10px;top:48px}.app.touch .position-panel strong{font-size:13px}.app.touch .lapbox{gap:0}.app.touch .lap-line{gap:4px}.app.touch .lap-line small{letter-spacing:.14em;font-size:8px}.app.touch .lap-line b{font-size:38px}.app.touch .lap-line i{font-size:11px}.app.touch .lap-time,.app.touch .delta-chip,.app.touch .lap-best,.app.touch .hud-e{display:none}.app.touch .hud-f{left:50%;top:max(8px, env(safe-area-inset-top));bottom:auto;transform:translate(-50%)}.app.touch .minimap{width:96px;height:54px}.app.touch .minimap-caption{display:none}.app.touch .hud-c{left:max(10px, env(safe-area-inset-left));top:calc(max(8px, env(safe-area-inset-top)) + 58px);bottom:auto}.app.touch .nitro{width:126px}.app.touch .nitro-head{margin-bottom:3px}.app.touch .nitro-head strong,.app.touch .nitro-head span{font-size:9px}.app.touch .nitro-bar{height:6px}.app.touch .nitro-pips,.app.touch .hud.on-foot .hud-c{display:none}.app.touch .hud-d{left:50%;top:calc(max(8px, env(safe-area-inset-top)) + 66px);display:none;bottom:auto;transform:translate(-50%)}.app.touch .hud-d:has(.drift.on){display:block}.app.touch .drift{width:178px;padding:8px 10px;transform:none}.app.touch .drift-label{letter-spacing:.16em;font-size:9px}.app.touch .drift-row{margin-top:0}.app.touch .drift-score{font-size:32px}.app.touch .drift-mult{font-size:20px}@media (orientation:landscape) and (height<=430px){.app.touch .hud-a,.app.touch .hud-b,.app.touch .hud-f{top:max(6px, env(safe-area-inset-top))}.app.touch .hud-c{top:calc(max(6px, env(safe-area-inset-top)) + 54px)}.app.touch .minimap{width:86px;height:48px}:is(.app.touch .hud-d,.app.touch .hud-d:has(.drift.on)){display:none}}.footspeed{flex-direction:column;justify-content:center;align-items:center;gap:2px;width:360px;height:360px;display:flex;position:relative}.footspeed-ring{border:1px solid var(--hud-panel-line);background:radial-gradient(circle,#080a10e6 58%,#080a1073 72%,#0000 74%);border-radius:50%;position:absolute;inset:14px}.footspeed-label,.footspeed-unit,.footspeed-state{font-family:var(--font-label);letter-spacing:.28em;color:var(--hud-ink45);position:relative}.footspeed-label{font-size:17px}.footspeed-value{font-family:var(--font-display);color:var(--hud-ink);font-variant-numeric:tabular-nums;text-shadow:0 4px 30px #000c;font-size:92px;line-height:1;position:relative}.footspeed-unit{font-size:20px}.footspeed-state{color:var(--hud-nitro);margin-top:10px;font-size:15px}.footspeed.running .footspeed-value,.footspeed.running .footspeed-state{color:var(--hud-accent)}
