:root{--bg:#05070c;--glass:#0c101a85;--glass-strong:#0a0e16c7;--line:#ffffff17;--line-strong:#ffffff2e;--text:#e9f1f7;--muted:#dce8f294;--accent:#6fc1d3;--accent-2:#5b8fc9;--accent-glow:#6fc1d373;--danger:#ff3b5c;--warn:#ffb02e;--radius:14px;--font:"Segoe UI Variable Display", "Segoe UI", "Microsoft JhengHei UI", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;--num:"Bahnschrift", "DIN Alternate", "Segoe UI", var(--font)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#app{position:fixed;inset:0}#app canvas{outline:none;display:block;width:100%!important;height:100%!important}#ui{pointer-events:none;z-index:10;position:fixed;inset:0}#ui>*{pointer-events:auto}.hidden{display:none!important}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px)saturate(1.3);box-shadow:0 20px 60px #00000059,inset 0 1px #ffffff0f}#loading{z-index:50;background:radial-gradient(at 50% 60%,#0d1424 0%,#04050a 70%);place-items:center;transition:opacity .8s;display:grid;position:fixed;inset:0}#loading.fade{opacity:0;pointer-events:none}.loader{text-align:center;width:min(440px,80vw)}.loader .logo{margin-bottom:36px}.loader-bar{background:#ffffff14;border-radius:2px;height:2px;overflow:hidden}.loader-bar>div{background:linear-gradient(90deg, var(--accent-2), var(--accent));width:0;height:100%;box-shadow:0 0 12px var(--accent-glow);transition:width .25s}.loader-text{letter-spacing:.24em;color:var(--muted);text-transform:uppercase;margin-top:14px;font-size:12px}.logo{flex-direction:column;align-items:flex-start;line-height:1;display:inline-flex}.logo .mark{font-family:var(--num);letter-spacing:.06em;background:linear-gradient(100deg, #fff 0%, #dde9ee 40%, var(--accent) 70%, var(--accent-2) 100%);color:#0000;filter:drop-shadow(0 0 10px #6fc1d32e);-webkit-background-clip:text;background-clip:text;font-size:64px;font-style:italic;font-weight:700}.logo .mark span{font-weight:300}.logo .sub{letter-spacing:.52em;color:var(--muted);margin-top:10px;padding-left:4px;font-size:12px}.logo .bar{background:linear-gradient(90deg, var(--accent), transparent);width:120px;height:2px;margin-top:14px}#main-menu{background:linear-gradient(90deg,#080b10db 0%,#080b108c 35%,#080b1038 70%);flex-direction:column;justify-content:center;padding:0 7vw;animation:.9s both fadeIn;display:flex;position:fixed;inset:0}.menu-list{flex-direction:column;gap:8px;width:340px;margin-top:54px;display:flex}.menu-btn{width:100%;color:var(--text);font:inherit;letter-spacing:.06em;text-align:left;cursor:pointer;background:#ffffff05;border:1px solid #0000;border-radius:10px;align-items:center;gap:16px;padding:15px 22px;font-size:17px;transition:background .25s,border-color .25s,transform .25s,padding .25s;animation:.6s cubic-bezier(.2,.8,.2,1) both slideIn;display:flex;position:relative;overflow:hidden}.menu-btn .en{font-family:var(--num);letter-spacing:.22em;color:var(--muted);margin-left:auto;font-size:11px}.menu-btn .idx{font-family:var(--num);color:var(--accent);opacity:.7;width:20px;font-size:12px}.menu-btn:before{content:"";background:var(--accent);width:2px;box-shadow:0 0 12px var(--accent);transition:transform .25s;position:absolute;top:18%;bottom:18%;left:0;transform:scaleY(0)}.menu-btn:hover,.menu-btn:focus-visible{background:linear-gradient(90deg,#6fc1d324,#6fc1d305);border-color:#6fc1d338;outline:none;padding-left:30px}.menu-btn:hover:before,.menu-btn:focus-visible:before{transform:scaleY(1)}.menu-btn.primary{background:linear-gradient(90deg,#6fc1d338,#4d8dff0f);border-color:#6fc1d359}.menu-footer{letter-spacing:.2em;color:var(--muted);justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:32px;left:7vw;right:4vw}.menu-car-tag{text-align:right;animation:1.2s .3s both fadeIn;position:absolute;bottom:70px;right:5vw}.menu-car-tag .name{font-family:var(--num);letter-spacing:.08em;font-size:26px;font-style:italic}.menu-car-tag .tag{color:var(--muted);letter-spacing:.1em;margin-top:6px;font-size:13px}.panel-wrap{background:#02040873;place-items:center;animation:.3s both fadeIn;display:grid;position:fixed;inset:0}.panel{flex-direction:column;width:min(860px,92vw);max-height:86vh;animation:.35s cubic-bezier(.2,.8,.2,1) both popIn;display:flex}.panel-head{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:22px 28px 18px;display:flex}.panel-head h2{letter-spacing:.08em;margin:0;font-size:22px;font-weight:600}.panel-head .en{font-family:var(--num);letter-spacing:.3em;color:var(--accent);font-size:11px}.panel-head .spacer{flex:1}.panel-body{padding:18px 28px 22px;overflow-y:auto}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.panel-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 28px 22px;display:flex}.btn{border:1px solid var(--line-strong);color:var(--text);font:inherit;letter-spacing:.06em;cursor:pointer;background:#ffffff0a;border-radius:9px;padding:10px 22px;font-size:14px;transition:all .2s}.btn:hover,.btn:focus-visible{border-color:var(--accent);background:#6fc1d31a;outline:none;box-shadow:0 0 18px #6fc1d32e}.btn.primary{background:linear-gradient(90deg,#6fc1d347,#4d8dff33);border-color:#6fc1d38c}.btn.danger:hover{border-color:var(--danger);background:#ff3b5c1f;box-shadow:0 0 18px #ff3b5c33}.tabs{background:#ffffff0a;border-radius:10px;gap:4px;padding:4px;display:flex}.tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 16px;font-size:13px;transition:all .2s}.tab.active{color:var(--text);background:#6fc1d329;box-shadow:inset 0 0 0 1px #6fc1d359}.section-title{letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin:18px 0 10px;font-size:11px}.section-title:first-child{margin-top:4px}.presets{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.preset{border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;text-align:center;background:#ffffff08;border-radius:10px;padding:14px 10px;transition:all .2s}.preset .p-name{font-family:var(--num);letter-spacing:.12em;font-size:16px}.preset .p-desc{color:var(--muted);margin-top:4px;font-size:11px}.preset:hover{border-color:var(--line-strong)}.preset.active{border-color:var(--accent);background:#6fc1d31a;box-shadow:0 0 22px #6fc1d326,inset 0 0 0 1px #6fc1d340}.row{border-bottom:1px solid #ffffff0a;grid-template-columns:1fr 300px;align-items:center;gap:16px;padding:11px 4px;display:grid}.row label{font-size:14px}.row .hint{color:var(--muted);margin-top:2px;font-size:11px;display:block}.ctrl{justify-content:flex-end;align-items:center;gap:12px;display:flex}.ctrl .val{text-align:right;min-width:52px;font-family:var(--num);color:var(--accent);font-size:13px}input[type=range]{appearance:none;background:#ffffff24;border-radius:2px;outline:none;width:200px;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;box-shadow:0 0 0 3px #6fc1d359, 0 0 12px var(--accent-glow);cursor:pointer;background:#fff;border-radius:50%}.seg{background:#ffffff0d;border-radius:9px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 11px;font-size:12px;transition:all .15s}.seg button.active{color:#031016;background:var(--accent);box-shadow:0 0 14px var(--accent-glow)}.toggle{cursor:pointer;background:#ffffff24;border:none;border-radius:12px;width:44px;height:24px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle.on{background:var(--accent);box-shadow:0 0 14px var(--accent-glow)}.toggle.on:after{transform:translate(20px)}.keycap{border:1px solid var(--line-strong);min-width:72px;color:var(--text);font-family:var(--num);cursor:pointer;background:#ffffff0d;border-radius:7px;padding:7px 12px;font-size:13px;transition:all .15s}.keycap:hover{border-color:var(--accent)}.keycap.listening{border-color:var(--warn);color:var(--warn);animation:1s infinite pulse}#garage{pointer-events:none;animation:.4s both fadeIn;position:fixed;inset:0}#garage>*{pointer-events:auto}.garage-card{width:400px;padding:26px 28px;position:absolute;bottom:9vh;left:5vw}.garage-card .idx{font-family:var(--num);letter-spacing:.3em;color:var(--accent);font-size:12px}.garage-card h3{font-family:var(--num);letter-spacing:.05em;margin:8px 0 4px;font-size:30px;font-style:italic}.garage-card .tagline{color:var(--muted);margin-bottom:18px;font-size:13px}.stat{letter-spacing:.1em;color:var(--muted);grid-template-columns:70px 1fr 36px;align-items:center;gap:12px;margin:9px 0;font-size:12px;display:grid}.stat .track{background:#ffffff14;border-radius:2px;height:4px;overflow:hidden}.stat .fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));height:100%;box-shadow:0 0 10px var(--accent-glow);transition:width .5s cubic-bezier(.2,.8,.2,1)}.stat .num{font-family:var(--num);color:var(--text);text-align:right}.garage-nav{cursor:pointer;width:56px;height:56px;color:var(--text);border-radius:50%;place-items:center;font-size:22px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.garage-nav.prev{left:2.5vw}.garage-nav.next{right:2.5vw}.garage-actions{gap:10px;margin-top:20px;display:flex}#hud{position:fixed;inset:0;pointer-events:none!important}#hud *{pointer-events:none}.hud-fps{font-family:var(--num);letter-spacing:.08em;color:var(--muted);border-radius:10px;padding:8px 14px;font-size:12px;position:absolute;top:18px;left:20px}.hud-fps b{color:var(--text);font-size:16px;font-weight:600}.hud-fps .q{color:var(--accent);margin-left:10px}.speedo{width:260px;height:260px;position:absolute;bottom:30px;right:34px}.speedo svg{position:absolute;inset:0;overflow:visible}.speedo .readout{flex-direction:column;justify-content:center;align-items:center;padding-top:8px;display:flex;position:absolute;inset:0}.speedo .spd{font-family:var(--num);letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-shadow:0 0 24px #6fc1d359;font-size:66px;font-weight:600;line-height:1}.speedo .unit{letter-spacing:.35em;color:var(--muted);margin-top:4px;font-size:11px}.speedo .gear{width:38px;height:38px;font-family:var(--num);color:var(--accent);background:#6fc1d314;border:1px solid #6fc1d366;border-radius:10px;place-items:center;margin-top:12px;font-size:22px;font-weight:700;transition:transform .12s;display:grid}.speedo .gear.bump{transform:scale(1.2)}.speedo .rpm-num{text-align:center;width:100%;font-family:var(--num);letter-spacing:.2em;color:var(--muted);font-size:11px;position:absolute;bottom:30px}.speedo-bg{-webkit-backdrop-filter:blur(6px);background:radial-gradient(circle,#080c14b3 0%,#080c1466 62%,#080c1400 72%);border-radius:50%;position:absolute;inset:14px}.redline .spd{color:#ffd3dc}.nitro{width:300px;padding:14px 18px 16px;position:absolute;bottom:40px;left:34px}.nitro .label{letter-spacing:.3em;color:var(--muted);justify-content:space-between;margin-bottom:10px;font-size:11px;display:flex}.nitro .label b{font-family:var(--num);color:var(--text);letter-spacing:.08em}.nitro .cells{grid-template-columns:repeat(12,1fr);gap:4px;display:grid;transform:skew(-18deg)}.nitro .cell{background:#ffffff14;border-radius:2px;height:12px;transition:background .15s,box-shadow .15s}.nitro .cell.on{background:linear-gradient(180deg, #9ff4ff, var(--accent));box-shadow:0 0 10px var(--accent-glow)}.nitro.active .cell.on{background:linear-gradient(#fff,#8ab4ff);box-shadow:0 0 16px #8cb4ffe6}.nitro .meta{letter-spacing:.14em;color:var(--muted);justify-content:space-between;margin-top:10px;font-size:11px;display:flex}.drift{text-align:center;opacity:0;transition:opacity .3s;position:absolute;top:16vh;left:50%;transform:translate(-50%)}.drift.show{opacity:1}.drift .t{letter-spacing:.5em;color:var(--accent);font-size:12px}.drift .v{font-family:var(--num);text-shadow:0 0 20px var(--accent-glow);font-size:40px;font-style:italic;font-weight:700}.minimap{border-radius:50%;width:196px;height:196px;padding:0;position:absolute;top:18px;right:20px;overflow:hidden}.minimap canvas{width:100%;height:100%;display:block}.minimap .n{font-family:var(--num);color:var(--accent);font-size:10px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.speedlines{opacity:0;background:repeating-conic-gradient(at 50% 52%,#fff0 0deg 2.6deg,#c8f0ff12 2.6deg 2.9deg);animation:.25s linear infinite spin;position:absolute;inset:-10%;-webkit-mask-image:radial-gradient(circle at 50% 52%,#0000 0% 38%,#000 80%);mask-image:radial-gradient(circle at 50% 52%,#0000 0% 38%,#000 80%)}.toast{letter-spacing:.18em;opacity:0;padding:10px 22px;font-size:13px;transition:opacity .3s,transform .3s;position:absolute;top:30px;left:50%;transform:translate(-50%)}.toast.show{opacity:1;transform:translate(-50%)translateY(6px)}.hint-keys{white-space:nowrap;color:var(--muted);gap:16px;padding:10px 18px;font-size:12px;transition:opacity 1s;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.hint-keys kbd{font-family:var(--num);border:1px solid var(--line-strong);color:var(--text);border-radius:5px;margin-right:6px;padding:2px 7px}.pause-panel{width:380px;padding:28px}.pause-panel h2{font-family:var(--num);letter-spacing:.14em;margin:0 0 4px;font-style:italic}.pause-panel .sub{color:var(--muted);letter-spacing:.3em;margin-bottom:22px;font-size:12px}.pause-panel .menu-list{width:100%;margin-top:0}.modal{text-align:center;width:420px;padding:28px}.modal p{color:var(--muted);line-height:1.7}.modal .actions{justify-content:center;gap:12px;margin-top:22px;display:flex}#exit-screen{z-index:60;text-align:center;background:#020306;place-items:center;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(3deg)}}@media (max-width:900px){.logo .mark{font-size:44px}.menu-list{width:280px}.speedo{transform-origin:100% 100%;transform:scale(.75)}.nitro{transform-origin:0 100%;transform:scale(.8)}.minimap{transform-origin:100% 0;transform:scale(.7)}.hint-keys{display:none}.row{grid-template-columns:1fr}.ctrl{justify-content:flex-start}}html,body{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;overscroll-behavior:none}#touch{z-index:12;position:fixed;inset:0;pointer-events:none!important}#touch>*{pointer-events:auto}.t-steer-zone{touch-action:none;width:45vw;height:62vh;position:absolute;bottom:0;left:0}.t-steer-base{left:calc(env(safe-area-inset-left) + 140px);top:calc(100% - 140px - env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);opacity:.6;background:radial-gradient(circle,#0c101a40 0%,#0c101a80 70%);border:2px solid #ffffff29;border-radius:50%;width:170px;height:170px;transition:opacity .15s,border-color .15s;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 20px #ffffff08}.t-steer-base:after{content:"";border:1px dashed #ffffff1f;border-radius:50%;width:40%;height:40%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-steer-base.on{opacity:1;border-color:#6fc1d38c}.t-arrow{color:#ffffff59;font-size:18px;transition:color .1s,text-shadow .1s;position:absolute;top:50%;transform:translateY(-50%)}.t-arrow.l{left:14px}.t-arrow.r{right:14px}.t-steer-base.left .t-arrow.l,.t-steer-base.right .t-arrow.r{color:var(--accent);text-shadow:0 0 10px var(--accent-glow)}.t-steer-knob{width:70px;height:70px;box-shadow:0 0 18px var(--accent-glow), 0 4px 12px #0006;z-index:1;background:radial-gradient(circle at 40% 35%,#fff,#9ff4ff 40%,#33e6ff);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-steer-hint{left:calc(env(safe-area-inset-left) + 140px);bottom:calc(10px + env(safe-area-inset-bottom));letter-spacing:.15em;color:var(--muted);white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.t-pedals{right:calc(18px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));grid-template-rows:78px 140px;grid-template-columns:96px 112px;gap:12px;display:grid;position:absolute}.t-btn{-webkit-backdrop-filter:blur(10px);color:var(--text);font:inherit;letter-spacing:.08em;touch-action:none;-webkit-tap-highlight-color:transparent;background:#0c101a73;border:1px solid #ffffff29;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:16px;font-weight:600;transition:transform 60ms,background .1s;display:flex}.t-btn small{font-family:var(--num);letter-spacing:.25em;color:var(--muted);font-size:10px}.t-btn.down{transform:scale(.94)}.t-gas{background:linear-gradient(#6fc1d347,#6fc1d31a);border-color:#6fc1d380}.t-gas.down{box-shadow:0 0 26px var(--accent-glow);background:#6fc1d380}.t-brake.down{border-color:var(--danger);background:#ff3b5c73}.t-hb.down{border-color:var(--warn);background:#ffb02e73}.t-nitro{border-color:#8cb4ff73}.t-nitro.down{background:#8cb4ff8c;box-shadow:0 0 26px #8cb4ffb3}.t-top{top:calc(14px + env(safe-area-inset-top));gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.t-small{width:52px;height:44px;color:var(--text);touch-action:none;-webkit-tap-highlight-color:transparent;background:#0c101a80;border:1px solid #ffffff29;border-radius:12px;font-size:16px}body.touch .hint-keys{display:none}body.touch .speedo{bottom:auto;left:50%;right:auto;top:calc(60px + env(safe-area-inset-top));transform-origin:top;transform:translate(-50%)scale(.62)}body.touch .nitro{left:auto;right:calc(18px + env(safe-area-inset-right));bottom:calc(260px + env(safe-area-inset-bottom));width:220px;transform:none}body.touch .hud-fps{top:calc(14px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left))}body.touch .minimap{top:calc(14px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));transform-origin:100% 0;transform:scale(.75)}body.touch .menu-btn{padding:18px 22px}.menu-fs{width:340px;margin-top:18px;font-size:13px}.panel-body{touch-action:pan-y;-webkit-overflow-scrolling:touch}.race-panel{width:250px;padding:12px 16px;position:absolute;top:64px;left:20px}.race-panel .rp-head{letter-spacing:.22em;color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.race-panel .rp-status{color:#031016;background:var(--accent);font-family:var(--num);border-radius:4px;padding:1px 8px}.race-panel .rp-status[data-s=READY]{color:#fff;background:#ff3b5c}.race-panel .rp-status[data-s=FINISH]{background:#ffd23a}.race-panel .rp-lap{align-items:baseline;gap:10px;margin-top:8px;display:flex}.race-panel .rp-lap b{font-family:var(--num);font-size:30px;font-style:italic}.race-panel .k{letter-spacing:.2em;color:var(--muted);font-size:11px}.race-panel .rp-time{font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--accent);text-shadow:0 0 14px var(--accent-glow);font-size:26px}.race-panel .rp-grid{font-family:var(--num);grid-template-columns:auto 1fr;gap:2px 12px;margin-top:6px;font-size:13px;display:grid}.race-panel .rp-grid span:not(.k){text-align:right;font-variant-numeric:tabular-nums}.race-panel .rp-cps{gap:4px;margin-top:10px;display:flex}.race-panel .rp-cps i{background:#ffffff1f;border-radius:2px;flex:1;height:4px}.race-panel .rp-cps i.done{background:var(--accent)}.race-panel .rp-cps i.next{background:#ffd23a;box-shadow:0 0 8px #ffd23a}.countdown{font-family:var(--num);color:#fff;opacity:0;pointer-events:none;text-shadow:0 0 40px var(--accent-glow);font-size:150px;font-style:italic;font-weight:800;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.countdown.show{animation:1s ease-out forwards cdPop}.countdown.go{color:#3dff8b;text-shadow:0 0 50px #3dff8bb3}.countdown.fin,.countdown.best{color:#ffd23a;font-size:110px}.countdown.lap{font-size:90px}.countdown.fin{animation-duration:2.6s}@keyframes cdPop{0%{opacity:0;transform:translate(-50%,-50%)scale(1.6)}15%{opacity:1;transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(.92)}}.wrongway{letter-spacing:.2em;opacity:0;background:#ff3b5cd9;border-radius:10px;padding:10px 26px;font-weight:800;transition:opacity .2s;position:absolute;top:22%;left:50%;transform:translate(-50%)}.wrongway.show{opacity:1;animation:.8s infinite pulse}body.touch .race-panel{top:calc(60px + env(safe-area-inset-top));transform-origin:0 0;transform:scale(.85)}.online-panel{width:min(640px,92vw)}.online-panel .field{flex-direction:column;gap:6px;margin:10px 0 14px;display:flex}.online-panel .field>span{letter-spacing:.25em;color:var(--accent);font-size:11px}.online-panel input{font:inherit;letter-spacing:.06em;border:1px solid var(--line-strong);color:var(--text);-webkit-user-select:text;user-select:text;background:#ffffff0d;border-radius:9px;outline:none;padding:12px 14px;font-size:16px}.online-panel input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6fc1d326}.online-panel .in-room{font-family:var(--num);letter-spacing:.35em;font-size:22px}.online-actions{gap:10px;margin-top:6px;display:flex}.online-actions .btn{flex:1;padding:13px;font-size:15px}.online-error{color:#ff7a90;min-height:20px;margin-top:12px;font-size:13px}.online-hint{color:var(--muted);letter-spacing:.05em;margin-top:6px;font-size:11px}.online-wrap.busy .btn{opacity:.5;pointer-events:none}.net-status{color:var(--muted);font-size:12px;font-family:var(--num);align-items:center;gap:8px;display:flex}.net-status i{background:#666;border-radius:50%;width:8px;height:8px}.net-status[data-s=online] i{background:#3dff8b;box-shadow:0 0 10px #3dff8b}.net-status[data-s=connecting] i,.net-status[data-s=reconnecting] i{background:var(--warn);animation:1s infinite pulse}.room-id-row{align-items:center;gap:14px;padding:6px 0 4px;display:flex}.room-id-row .k{letter-spacing:.25em;color:var(--muted);font-size:11px}.room-id-row .room-id{font-family:var(--num);letter-spacing:.3em;color:var(--accent);text-shadow:0 0 18px var(--accent-glow);font-size:34px}.room-id-row .count{font-family:var(--num);margin-left:auto;font-size:16px}.btn.small{padding:6px 12px;font-size:12px}.player-list{margin:0;padding:0;list-style:none}.player-list li{counter-increment:pl;border-bottom:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;display:flex}.player-list li:before{content:counter(pl);font-family:var(--num);color:var(--muted);width:18px}.player-list li.me{background:#6fc1d30f}.player-list .nm{flex:1;font-size:15px}.player-list .nm small{color:var(--muted)}.player-list .car{font-family:var(--num);letter-spacing:.15em;color:var(--muted);font-size:11px}.player-list .tag{font-family:var(--num);letter-spacing:.2em;background:#ffffff14;border-radius:5px;padding:3px 8px;font-size:10px}.player-list .tag.host{color:#ffd23a;background:#ffd23a2e}.player-list .tag.ready{color:#3dff8b;background:#3dff8b2e}.player-list .tag.off{color:#ff7a90;background:#ff3b5c33}.panel-foot .spacer{flex:1}.seg button:disabled{opacity:.45;cursor:default}.board{border-collapse:collapse;width:100%;font-family:var(--num)}.board th{text-align:left;letter-spacing:.25em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:11px;font-weight:500}.board td{border-bottom:1px solid #ffffff0d;padding:11px 10px;font-size:16px}.board tr.me td{color:var(--accent)}.board td:first-child{width:36px;font-style:italic;font-weight:700}.net-banner{color:#1a1000;letter-spacing:.1em;z-index:40;background:#ffb02ee6;border-radius:10px;padding:10px 22px;font-weight:700;animation:1.2s infinite pulse;position:fixed;top:14px;left:50%;transform:translate(-50%)}#labels{pointer-events:none;z-index:5;position:fixed;inset:0}.name-tag{-webkit-backdrop-filter:blur(6px);white-space:nowrap;will-change:transform;background:#080c1499;border:1px solid #ffffff24;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:flex;position:absolute;top:0;left:0}.name-tag .pos{font-family:var(--num);color:var(--accent);font-size:11px}.race-panel .rp-grid .pos{color:#ffd23a}.race-panel .rp-online{display:none}.race-panel.online .rp-online{display:contents}body.online .offline-only{display:none}body.calm .glass{background:#090c11b3;border-color:#ffffff1f}body.calm .speedo-bg{background:radial-gradient(circle,#080b10d1 0%,#080b108c 62%,#080b1000 72%)}body.calm .speedlines{opacity:0!important}.menu-car-tag .track{font-family:var(--num);letter-spacing:.3em;color:var(--accent);margin-bottom:6px;font-size:12px}body.day .glass{background:#0c0f14c2;border-color:#ffffff24}body.day .menu-btn{background:#080b1059}body.day .menu-car-tag{text-shadow:0 1px 6px #0009}body.day .menu-footer{text-shadow:0 1px 4px #000000b3}body.day .hint-keys kbd{background:#00000059}
