*{box-sizing:border-box} :root{color-scheme:dark;--ink:#102524;--lime:#d5f58b;--muted:#91a39d}body{margin:0;background:#0c1819;color:#f6f5e9;font-family:Arial,"Microsoft JhengHei",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button:disabled{opacity:.35;cursor:default}main{max-width:1760px;margin:auto;padding:0 38px}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;gap:16px}.wordmark{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:900;letter-spacing:1.5px;color:#f6f5e9;text-decoration:none}.mark{color:var(--lime);font-size:40px;line-height:1}.edition{font-size:9px;font-weight:500;color:var(--muted);letter-spacing:2px;margin-left:16px;border-left:1px solid #3c4c46;padding-left:22px}.top-actions{display:flex;align-items:center;gap:12px}.prototype{font-size:10px;letter-spacing:1.6px;color:var(--muted);margin-right:16px}.top-actions button{background:transparent;color:#d2ded7;border:1px solid #374a46;border-radius:5px;min-width:36px;height:34px;font-size:12px;padding:0 9px}.top-actions button:hover{background:#304038}#game{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:#80c4dc;isolation:isolate;box-shadow:0 30px 80px #0003}canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.hud{position:absolute;inset:0;pointer-events:none;padding:30px 34px;text-shadow:0 2px 8px #102b3150}.hud-top,.hud-bottom{display:flex;justify-content:space-between;align-items:flex-start}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:700}.route strong{display:block;font-size:24px;margin:8px 0 10px}.tag{display:inline-block;font-size:9px;letter-spacing:2px;border:1px solid #fff7;border-radius:2px;padding:5px 9px}.clock{text-align:right}.clock strong{display:block;font-size:32px;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-1px;margin:5px 0}.clock>span:last-child{font-size:10px;letter-spacing:1px}.progress{position:absolute;left:34%;right:34%;top:43px;height:3px;background:#fff5}.progress>div{height:3px;background:var(--lime);width:0}.progress>i{position:absolute;top:-3px;left:0;background:var(--lime);width:9px;height:9px;border-radius:50%}.progress>span{position:absolute;top:12px;font-size:8px;letter-spacing:2px}.progress>span:last-child{right:0}.hud-bottom{position:absolute;bottom:32px;left:34px;right:34px;align-items:flex-end}.sector strong{display:block;margin:7px 0;font-size:31px}.sector em{font-size:16px;opacity:.55;font-style:normal}.sector>span:last-child{font-size:9px;letter-spacing:1px}.speed-panel{width:180px}.speed-line{display:flex;align-items:center;justify-content:space-between}.speed-line strong{font-size:70px;font-weight:900;font-style:italic;font-variant-numeric:tabular-nums;letter-spacing:-4px;line-height:1.05}.speed-line>span{font-size:9px;line-height:1.8;color:#fff9}.speed-line b{display:inline-block;background:#102a2fc9;border:1px solid #fff5;font-size:14px;width:23px;text-align:center;border-radius:3px;color:white}.nitro-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;margin:13px 0 7px}.nitro-label>span:last-child{opacity:.65}.nitro-track{height:7px;background:#071b285c;transform:skewX(-15deg);border:1px solid #ffffff45}.nitro-track>div{height:100%;background:var(--lime);width:100%}.race-message{position:absolute;left:20%;right:20%;top:29%;text-align:center;font-size:68px;font-weight:900;font-style:italic;text-shadow:0 4px 24px #092d3880}.race-message.small{font-size:20px;letter-spacing:3px}.overlay{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#082329ee 0%,#082329ca 34%,#0823293d 65%,#08232915 100%);padding:6%;z-index:3}.hidden{display:none!important}.menu-card{width:50%;max-width:540px}.accent{color:var(--lime)}h1{font-size:clamp(28px,4vw,62px);line-height:1.22;letter-spacing:-2px;margin:20px 0;font-weight:900}p{font-size:14px;line-height:1.9;color:#d2ded7;margin:16px 0}.specs{display:flex;gap:25px;border-top:1px solid #e4f3de30;padding-top:20px;margin:24px 0;font-size:10px;color:#b0c2ba}.specs b{display:block;font-size:17px;color:#fff;margin-bottom:6px}.primary{background:var(--lime);color:#142c28;border:0;border-radius:3px;font-size:15px;font-weight:800;padding:17px 24px;min-width:235px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:25px}.primary:hover{background:#e5ffac;transform:translateY(-1px)}.menu-hint{margin-top:18px;font-size:10px;color:#cbd7c9}.menu-card small{display:block;color:#91ada4;font-size:10px;margin-top:15px}.menu-stamp{position:absolute;right:5%;top:14%;text-align:right;opacity:.85;transform:rotate(-5deg)}.menu-stamp b{display:block;font-size:clamp(38px,5vw,80px);line-height:.88;letter-spacing:-4px;font-style:italic;margin:12px 0}.menu-stamp span{font-size:9px;letter-spacing:3px}.centered{justify-content:center;background:#08232aba;backdrop-filter:blur(5px)}.dialog{background:#102c2eea;border:1px solid #a8c3b335;border-radius:10px;padding:34px 45px;min-width:340px;text-align:center;box-shadow:0 30px 80px #0005}.dialog h2{font-size:38px;margin:18px 0}.dialog .primary{margin:24px auto 10px;justify-content:center}.secondary{display:block;margin:auto;border:0;color:#c3d3c9;background:transparent;padding:12px;font-size:12px}.result-time{font-size:50px;font-weight:800;color:var(--lime);font-variant-numeric:tabular-nums}.dialog p{font-size:13px}.touch-controls{display:none;position:absolute;bottom:14px;left:15px;right:15px;justify-content:space-between;z-index:2;pointer-events:none}.touch-controls>div{display:flex;gap:8px}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;width:50px;height:45px;background:#0c303caa;border:1px solid #ffffff66;color:white;border-radius:8px;font-size:14px}.touch-controls button.held{background:#d5f58b;color:#15312b}.touch-controls .gas{background:#d5f58bbd;color:#163127}.touch-controls .boost-button{color:#d5f58b}footer{min-height:74px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:9px;letter-spacing:1px;color:#99aea4}.live-dot{display:inline-block;background:var(--lime);width:5px;height:5px;border-radius:50%;margin-right:7px}.keys{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:0}.keys i{height:13px;border-left:1px solid #3a4b42;margin:0 8px}kbd{border:1px solid #3d5149;padding:4px;border-radius:3px;font-size:9px;color:#d4ddd3}.build{font-size:8px;letter-spacing:1.5px}.mobile-note{display:none}#game:fullscreen{border-radius:0;width:100vw;height:100vh;aspect-ratio:auto}body.racing .touch-controls,body.paused .touch-controls{display:none}
.car-select{display:flex;gap:10px;margin:14px 0 8px}.car-choice{position:relative;width:50%;background:#153c3e8c;border:1px solid #8aa59a66;border-radius:5px;color:#ecf2de;padding:8px 10px;text-align:left}.car-choice.selected{border:2px solid var(--lime);padding:7px 9px;background:#34524ba8}.car-choice img{float:right;width:50%;height:58px;object-fit:contain}.car-choice b{display:block;font-size:12px;margin-top:8px}.car-choice span{display:block;font-size:9px;line-height:1.6;margin-top:8px;color:#cdd7c5}.menu-card .car-detail{font-size:10px;margin:7px 0 13px;color:#d5f58b}.menu-card h1{font-size:clamp(28px,3.4vw,50px);margin:12px 0}.menu-card p{margin:10px 0}.position-label{margin-top:14px;font-size:9px;letter-spacing:1px}.position-label b{font-size:34px;color:#d5f58b;margin:0 7px 0 10px}.position-label>span{opacity:.6;font-size:14px}#standings{list-style:none;padding:0;margin:16px 0;font-size:12px;text-align:left}#standings li{display:flex;justify-content:space-between;gap:24px;padding:8px;border-bottom:1px solid #ffffff20}#standings .you{background:#d5f58b18;color:#d5f58b}#finish .dialog{padding:22px 34px}#finish .dialog h2{margin:10px 0;font-size:30px}#finish .result-time{font-size:40px}#finish .dialog .primary{margin-top:16px}
@media(max-width:900px) and (orientation:landscape){.menu-card h1{font-size:25px;line-height:1.1;margin:8px 0}.menu-card p{font-size:10px;line-height:1.4}.car-choice img{height:35px}.car-choice b{font-size:10px}.car-choice span{font-size:8px;margin-top:3px}.car-select{margin:6px 0}.menu-card .car-detail{font-size:8px;margin:5px 0}.menu-card small{margin-top:4px}.position-label{margin-top:5px}.position-label b{font-size:25px}}
@media(max-width:600px) and (orientation:portrait){.car-choice img{float:none;width:100%;height:45px}.car-choice b{margin-top:0}.car-choice span{margin-top:3px}.menu-card h1{font-size:31px}.menu-card .car-detail{font-size:9px}.position-label{margin-top:4px}.position-label b{font-size:24px}}
.turn-hint{position:absolute;left:35%;right:35%;top:82px;text-align:center;font-size:11px;letter-spacing:1px;color:#f9f8dc;background:#183c3f60;border-radius:3px;padding:7px 5px}
@media(max-width:600px){.turn-hint{top:145px;left:30%;right:30%;font-size:9px}}
body:not(.racing):not(.paused):not(.finished) .hud{visibility:hidden}
@media(min-width:901px) and (pointer:fine){main{max-width:min(1760px,calc((100svh - 164px)*16/9 + 76px))}}
@media(max-width:600px){body.racing .touch-controls{display:flex}.hud-bottom{bottom:72px}}
@media(pointer:coarse){body.racing .touch-controls{display:flex}.hud-bottom{bottom:74px}.keys{display:none}.mobile-note{display:block;text-align:center;font-size:11px;margin:0 0 12px}}
@media(max-width:900px){main{padding:0 16px}.topbar{height:64px}.edition,.prototype,.build{display:none}.wordmark{font-size:14px}.hud{padding:16px}.hud-bottom{left:16px;right:16px;bottom:18px}.route strong{font-size:17px;margin:5px 0}.eyebrow{font-size:8px}.clock strong{font-size:23px}.speed-line strong{font-size:47px}.speed-panel{width:135px}.sector strong{font-size:23px}.progress{top:25px}.menu-card{width:58%}h1{font-size:32px;margin:12px 0}.menu-card p{font-size:11px;margin:10px 0}.specs{margin:12px 0;padding-top:12px;gap:18px}.specs b{font-size:13px}.primary{padding:12px 17px;font-size:12px;min-width:190px}.menu-hint{font-size:8px;margin-top:10px}.menu-card small{font-size:8px;margin-top:8px}.menu-stamp{top:18%}.menu-stamp b{font-size:46px}footer{min-height:58px}.race-message{font-size:45px}@media(pointer:coarse){.hud-bottom{bottom:72px}}}
@media(max-width:600px) and (orientation:portrait){main{padding:0 8px}#game{aspect-ratio:3/4}.topbar{height:60px}.top-actions{gap:6px}.top-actions button{font-size:9px;min-width:30px}.menu-card{width:100%}.menu-stamp{display:none}.overlay{background:#082329c9;padding:25px}h1{font-size:37px}.menu-card p{font-size:13px}.specs{margin:20px 0}.menu-hint{font-size:9px}.progress{left:32%;right:32%;top:107px}.route .tag{font-size:7px}.clock strong{font-size:21px}.sector{display:none}.hud-bottom{bottom:80px}.speed-panel{margin-left:auto;width:86px}.speed-line strong{font-size:30px;letter-spacing:-2px}.speed-line>span{font-size:7px}.nitro-label{font-size:7px;letter-spacing:1px}.dialog{min-width:0;width:100%;padding:25px}.dialog h2{font-size:29px}.result-time{font-size:38px}.race-message{top:32%}footer{justify-content:center;font-size:8px}.keys{display:none}}
