@font-face{font-family:Barlow;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/barlow-medium.ttf)format("truetype")}@font-face{font-family:Barlow;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/barlow-bold.ttf)format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/barlow-condensed-black.ttf)format("truetype")}@font-face{font-family:Barlow Condensed;font-style:italic;font-weight:600 900;font-display:swap;src:url(/fonts/barlow-condensed-black-italic.ttf)format("truetype")}:root{color:#173338;font-synthesis:none;--ink:#173338;--lime:#deff7b;--white:#fffdf1;background:#a9d4d5;font-family:Barlow,Arial,sans-serif;font-weight:500}.course-card .assist-toggle{letter-spacing:0;align-items:center;gap:8px;margin:10px 0 5px;font-size:12px;display:flex}.assist-toggle input{accent-color:#315e46;width:17px;height:17px;margin:0}#assist-note{letter-spacing:0;color:#536b67;font-size:10px;line-height:1.5;display:block}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline-offset:5px;outline:3px solid #f97c45}button:disabled{cursor:wait}button{touch-action:manipulation}button:hover{filter:brightness(1.08)}[hidden]{display:none!important}#game{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}.vignette{pointer-events:none;background:linear-gradient(90deg,#e6ebd1eb,#e6ebd18c 27%,#0000 54%),linear-gradient(#0000 80%,#0f2e2f3b);position:fixed;inset:0}body.racing .vignette{background:linear-gradient(#0e292d57,#0000 25% 65%,#0e292d66)}.topbar{z-index:5;justify-content:space-between;align-items:center;gap:14px;padding:28px 3.3vw;display:flex;position:fixed;top:0;left:0;right:0}.brand{letter-spacing:-.9px;color:var(--ink);align-items:center;gap:4px;font-size:21px;font-weight:800;text-decoration:none;display:flex}.brand>span:not(.brand-mark){font-weight:500}.brand small{letter-spacing:0;border:1px solid;margin-left:4px;padding:2px 3px;font-size:10px}.brand-mark{background:var(--ink);color:var(--lime);border-radius:8px;place-items:center;width:38px;height:38px;margin-right:7px;font-family:Barlow Condensed,sans-serif;font-size:28px;font-style:italic;display:inline-grid}.top-actions{align-items:center;gap:12px;display:flex}.prototype{letter-spacing:1.7px;align-items:center;gap:8px;margin-right:16px;font-size:10px;font-weight:700;display:flex}.prototype i{background:#4b795a;border-radius:100%;width:6px;height:6px}.icon-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:1px;background:#fffdf15c;border:1px solid #17333840;border-radius:7px;padding:12px 15px;font-size:10px;font-weight:700}.icon-button span{margin-left:10px;font-weight:800}.home-panel{z-index:2;position:fixed;top:19%;left:6.5%}.eyebrow{letter-spacing:2px;align-items:center;gap:9px;font-size:11px;font-weight:700;display:flex}.eyebrow>span{background:var(--ink);width:20px;height:2px}h1{letter-spacing:-2px;margin:25px 0 23px;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(70px,7.7vw,126px);font-weight:900;line-height:.86}h1 em{color:#f26b3a;font-style:italic}p.intro{color:#315254;margin:0 0 24px;font-size:15px;line-height:1.55}.primary{background:var(--ink);min-width:230px;color:var(--lime);letter-spacing:1px;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:50px;padding:18px 23px;font-size:13px;font-weight:800;display:flex;box-shadow:0 5px #0a23251c}.primary span{font-size:25px;line-height:1}.start-note{letter-spacing:1.8px;color:#4c6964;margin:13px 0 0;font-size:9px}.course-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffdf1e6;border:1px solid #fff8;border-radius:10px;width:340px;padding:22px 24px 15px;position:fixed;bottom:14%;right:3.3%;transform:rotate(-2deg);box-shadow:0 12px 50px #183c3610}.course-top{letter-spacing:1px;justify-content:space-between;align-items:center;font-size:9px;font-weight:700;display:flex}.tag{background:#dce7d7;border-radius:3px;padding:4px 5px;font-size:8px}.course-card h2{margin:14px 0;font-family:Barlow Condensed,Impact,sans-serif;font-size:29px}.course-card h2 span{float:right;font-family:Arial;font-size:21px}.course-details{gap:24px;font-size:15px;font-weight:700;display:flex}.course-details small{letter-spacing:1px;margin-top:4px;font-size:8px;font-weight:600;display:block}.course-line{margin-top:12px}.course-line svg{fill:none;stroke:#f8844d;stroke-width:2px;width:100%;height:35px}.course-card p{letter-spacing:1px;border-top:1px solid #163b3020;gap:8px;margin:5px 0 0;padding-top:12px;font-size:8px;display:flex}.course-card p>span{margin-left:auto;font-size:7px}.controls{z-index:3;border-top:1px solid #17333830;align-items:center;gap:26px;padding-top:17px;display:flex;position:fixed;bottom:24px;left:3.3%;right:3.3%}.controls>div{align-items:center;gap:5px;display:flex}.controls>div>span{letter-spacing:1px;margin-left:5px;font-size:9px;font-weight:700}kbd{text-align:center;background:#fffdf14d;border:1px solid #17333840;border-radius:4px;min-width:24px;height:24px;padding:5px;font-family:inherit;font-size:10px}.footer-note{letter-spacing:2px;align-items:center;gap:12px;margin-left:auto;font-size:9px;font-weight:700;display:flex}.footer-note>span{font-size:24px}.racing .topbar,.racing .brand,.racing .controls{color:var(--white)}.racing .brand-mark{background:var(--lime);color:var(--ink)}.racing .icon-button{color:#fff;background:#1733388c;border-color:#ffffff38}.racing .prototype{display:none}.racing .controls{border-color:#ffffff35}.racing kbd{background:#16363850;border-color:#ffffff40}.hud{color:var(--white)}.race-heading{text-align:center;width:260px;position:fixed;top:35px;left:50%;transform:translate(-50%)}.race-heading>.eyebrow{justify-content:center;font-size:10px}.progress-track{background:#fff5;height:3px;margin:9px 0}.progress-track>div{background:var(--lime);width:0;height:100%}.race-heading>span:last-child{letter-spacing:1px;font-size:9px}.timer{text-align:right;flex-direction:column;display:flex;position:fixed;top:120px;right:3.3%}.timer>span{letter-spacing:2px;font-size:10px}.timer>strong{font-variant-numeric:tabular-nums;font-family:Barlow Condensed,Impact,sans-serif;font-size:58px;font-weight:700;line-height:1.15}.timer>small{letter-spacing:1px;font-size:10px}.timer b{margin-left:8px;font-weight:500}.speed-card{width:190px;position:fixed;bottom:110px;left:3.3%}.speed-card>strong{text-align:left;width:112px;font-family:Barlow Condensed,Impact,sans-serif;font-size:90px;font-style:italic;font-weight:800;line-height:1;display:inline-block}.speed-card>span{letter-spacing:2px;font-size:10px}.heat-label{letter-spacing:1.2px;justify-content:space-between;margin:10px 0;font-size:8px;display:flex}.heat-track{background:#fff4;border-radius:4px;height:5px;overflow:hidden}.heat-track>div{background:var(--lime);width:0;height:100%;transition:background .2s}.heat-track>div.hot{background:#ff8451}.feedback{text-shadow:0 3px 15px #1238;text-align:center;white-space:nowrap;color:var(--lime);font-family:Barlow Condensed,Impact,sans-serif;font-size:42px;font-style:italic;font-weight:800;position:fixed;top:31%;left:50%;transform:translate(-50%)}.restart{color:#fff;letter-spacing:1px;background:#17333865;border:1px solid #fff5;border-radius:5px;align-items:center;gap:15px;padding:10px 14px;font-size:10px;display:flex;position:fixed;bottom:125px;right:3.3%}.modal{z-index:10;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#102c3a80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fffdf1;border-radius:13px;width:410px;max-width:100%;padding:38px;box-shadow:0 25px 100px #0b2d3b33}.modal-card h2{letter-spacing:-.5px;margin:25px 0 15px;font-family:Barlow Condensed,Impact,sans-serif;font-size:60px;line-height:.95}.modal-card h2 em{color:#ed7342}.modal-card p{color:#536b67;font-size:14px;line-height:1.5}.modal-card .primary{width:100%;margin-top:25px}.secondary{letter-spacing:1px;background:0 0;border:0;width:100%;padding:18px 0 0;font-size:10px;font-weight:700}.finish-time{font-family:Barlow Condensed,Impact,sans-serif;font-size:56px;font-weight:700}.result-stats{letter-spacing:1px;gap:25px;font-size:9px;display:flex}.result-stats b{margin-right:3px;font-size:18px}.touch-controls{z-index:6;pointer-events:none;justify-content:space-between;gap:10px;display:flex;position:fixed;bottom:15px;left:15px;right:15px}.touch-group{pointer-events:auto;gap:7px;display:flex}.touch-controls button{color:#fffdf1;touch-action:none;-webkit-user-select:none;user-select:none;background:#173338a8;border:1px solid #fff8;border-radius:10px;width:45px;height:48px;font-size:23px;font-weight:700}.touch-controls .touch-go{background:var(--lime);color:var(--ink);width:65px;font-size:12px}.touch-controls .touch-boost{color:var(--ink);background:#f08149;width:60px;font-size:10px}.touch-controls button:active{transform:scale(.94)}@media (height<=750px) and (width>=800px){.home-panel{top:18%}h1{margin:19px 0;font-size:clamp(65px,7vw,95px)}.intro{margin-bottom:18px!important;font-size:13px!important}.primary{padding:15px 22px}.course-card{bottom:15%}.topbar{padding-top:20px}}@media (width<=800px){.topbar{padding:17px 20px}.brand{font-size:17px}.brand-mark{width:30px;height:30px;font-size:24px}.prototype{display:none}.icon-button{padding:10px;font-size:9px}.home-panel{top:18%;left:6%}h1{font-size:85px}.intro{font-size:13px!important}.course-card{width:250px;padding:15px 18px;bottom:11%;right:4%}.course-card h2{font-size:25px}.course-details{gap:18px}.course-card p>span{display:none}.controls{gap:12px;bottom:17px;left:20px;right:20px}.controls>div>span{letter-spacing:0;font-size:7px}.footer-note{display:none}.race-heading{width:180px;top:80px}.timer{top:135px;right:20px}.timer>strong{font-size:43px}.speed-card{width:160px;bottom:95px;left:20px}.speed-card>strong{width:88px;font-size:72px}.restart{bottom:100px;right:20px}.racing .controls{display:none}.feedback{font-size:32px;top:36%}}@media (width<=520px){.vignette{background:linear-gradient(90deg,#e6ebd1e6,#0000 90%)}.home-panel{top:16%}h1{margin:20px 0;font-size:78px}.intro{line-height:1.4!important}.primary{min-width:205px;padding:16px 20px}.course-card{width:210px;padding:12px 15px;bottom:11%}.course-card h2{margin:9px 0;font-size:22px}.course-top{font-size:7px}.tag{font-size:6px}.course-details{gap:15px;font-size:12px}.course-details small{font-size:6px}.course-line{margin-top:4px}.course-line svg{height:20px}.controls>div:not(:first-child){display:none}.controls>div:first-child>span{font-size:9px}.controls{bottom:20px}.brand{font-size:15px}.top-actions{gap:6px}.icon-button span{margin-left:5px}.race-heading{top:78px}.timer{top:130px}.modal-card{padding:28px}.modal-card h2{font-size:54px}.touch-group{gap:4px}.touch-controls{left:10px;right:10px}.touch-controls button{width:36px;height:45px}.touch-controls .touch-go{width:50px}.touch-controls .touch-boost{width:49px}}@media (height<=520px){.topbar{padding:12px 20px}.home-panel{top:20%;left:5%}h1{margin:12px 0;font-size:57px}.home-panel .intro{display:none}.home-panel .eyebrow{font-size:8px}.start-note{margin-top:8px;font-size:7px}.primary{min-width:190px;padding:12px 18px}.course-card{width:245px;padding:15px;bottom:17%}.course-card h2{margin:10px 0;font-size:25px}.controls{padding-top:8px;bottom:12px}.race-heading{width:180px;top:18px}.timer{top:90px}.timer>strong{font-size:40px}.speed-card{bottom:75px}.speed-card>strong{width:75px;font-size:58px}.restart{padding:5px 10px;bottom:83px}.modal-card{width:420px;padding:20px 28px}.modal-card h2{margin:15px 0 10px;font-size:36px}.modal-card h2 br{display:none}.modal-card .primary{margin-top:15px}.finish-time{font-size:36px}.modal-card p{margin:8px 0}.feedback{font-size:32px;top:37%}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}label{letter-spacing:1px;margin:12px 0;font-size:10px;font-weight:700;display:block}select{color:#173338;background:#fffdf1;border:1px solid #17333840;border-radius:5px;width:100%;margin-top:6px;padding:10px;font:600 12px Barlow,Arial,sans-serif;display:block}.race-heading{width:330px}.race-heading>.eyebrow{font-size:9px}.feedback{white-space:normal;width:max-content;max-width:90vw;font-size:30px}.design-card{max-height:90vh;overflow-y:auto}.design-actions{gap:7px;margin:14px 0;display:flex}.design-actions button{background:#e0ead9;border:1px solid #17333840;border-radius:4px;flex:1;padding:9px 4px;font-size:11px}#design-pieces{max-height:90px;font-size:11px;overflow:auto}#design-count{font-size:10px}#design-note{font-size:12px}.course-card{transform:none}#advance+.secondary{margin-top:2px}@media (width<=520px){.home-panel{top:13%}h1{margin:14px 0!important;font-size:62px!important}.home-panel .intro{display:none}.home-panel .eyebrow{font-size:8px}.course-card{width:88%;padding:12px 15px;bottom:10%;right:6%}.course-card h2{font-size:23px}.course-card label{margin:8px 0}.course-card select{padding:8px}.course-card .secondary{padding-top:9px}.race-heading{width:260px}.race-heading>.eyebrow{font-size:8px}.feedback{font-size:24px}.modal-card{max-height:90vh;overflow-y:auto}}@media (width<=520px) and (height<=780px){h1{font-size:48px!important}.home-panel{top:12%}.course-card{bottom:9%}.course-card h2{margin:5px 0}.course-card p{padding-top:8px}.start-note{display:none}}.modal-card{width:min(410px,100vw - 40px);min-width:0}.modal-card .primary{min-width:0}@media (width<=520px) and (height<=780px){.home-panel{top:13%}h1{margin:16px 0;font-size:62px}.home-panel .intro{margin-bottom:18px;font-size:12px!important}.course-card{bottom:10%}}@media (pointer:coarse){.controls>div,.controls>.footer-note{display:none!important}.controls:before{content:"TOUCH CONTROLS · HOLD GO TO RIDE";letter-spacing:1.3px;font-size:9px;font-weight:700}.racing .controls{display:none}}.design-card{text-align:left!important;width:min(880px,94vw)!important}.design-card h2{margin:8px 0!important;font-size:clamp(30px,5vw,48px)!important}.design-card>p{margin:10px 0;font-size:14px}.part-gallery{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;display:grid}.part-gallery button{background:#e9edda;border:1px solid #c2cabb;border-radius:5px;min-height:56px;padding:2px;position:relative}.part-gallery button[aria-pressed=true]{background:var(--lime);border:2px solid var(--ink)}.part-gallery svg{width:100%;display:block}.part-gallery b{font-size:12px;position:absolute;top:3px;left:6px}.part-gallery .baseline{stroke:#94a399;stroke-width:1px}.part-gallery .shape{stroke:#9c603a;stroke-width:3px;fill:none;stroke-linejoin:round}.part-gallery .mud{stroke-dasharray:3 4;stroke-width:7px}.part-gallery .cooling{stroke:#457c66;stroke-width:5px}.part-gallery .pit{stroke:#173338}.design-options{grid-template-columns:2fr 1fr .6fr;gap:12px;margin-top:12px;display:grid}.design-options label{letter-spacing:1px;font-size:11px;font-weight:700}.design-options select{width:100%;font:inherit;letter-spacing:0;padding:10px 4px;font-size:13px}.design-timeline{word-break:break-word;background:#e7ebd7;border:1px solid #bac4ad;border-radius:5px;max-height:90px;margin-top:8px;padding:12px;font-size:13px;line-height:1.8;overflow:auto}.design-card .design-actions{flex-wrap:wrap;gap:6px;display:flex}.design-actions button{padding:9px 12px}.design-card #part-description{min-height:36px}.design-card .primary{margin-top:12px}.design-card .secondary{margin-top:6px}@media (width<=600px){.part-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}.part-gallery button{min-height:44px}.part-gallery svg{max-height:44px}.design-options{gap:6px}.design-options select{font-size:11px}.design-card{padding:20px!important}.design-card>p{font-size:12px}.design-card .primary{padding:14px!important}}.feedback{white-space:normal;pointer-events:none;background:#142e31d9;border-radius:8px;width:max-content;max-width:calc(100vw - 32px);padding:8px 16px;font-family:Barlow,Arial,sans-serif;font-size:clamp(13px,1.5vw,21px);font-style:normal;line-height:1.6}.feedback:empty{display:none}.start-actions{gap:10px;display:flex}.start-actions .primary{gap:24px;min-width:0}.online-open{background:var(--lime);color:var(--ink)}.online-panel{z-index:12}.online-card{text-align:left;width:min(520px,100vw - 32px);max-height:90dvh;overflow-y:auto}.online-card h2{margin:14px 0;font-size:44px}.online-card input{width:100%;font:inherit;letter-spacing:0;background:var(--white);color:var(--ink);border:1px solid #17333840;border-radius:5px;margin-top:6px;padding:12px;font-size:16px;display:block}.online-actions{flex-wrap:wrap;gap:10px;display:flex}.online-actions .primary{letter-spacing:0;flex:1;justify-content:center;min-width:0;padding:15px 10px}.online-card .online-help{color:#536b67;font-size:12px;line-height:1.6}.online-code{letter-spacing:6px;font-size:36px}.online-roster,#online-standings{white-space:pre-line;overflow-wrap:anywhere;line-height:2}.online-roster{background:#e5eacd;border-radius:8px;margin-bottom:14px;padding:14px;font-size:14px}#online-status{min-height:24px;font-size:13px;line-height:1.6}.online-card button:disabled{opacity:.45;cursor:not-allowed}.online-countdown{z-index:8;color:var(--lime);text-shadow:0 4px 18px #173338;font:900 100px Barlow Condensed,sans-serif;position:fixed;top:32%;left:50%;transform:translate(-50%)}.online-race{z-index:4;max-width:240px;color:var(--white);background:#142e31dd;border-radius:8px;padding:12px 16px;font-size:12px;position:fixed;top:110px;left:24px}.online-race .secondary{color:var(--lime);margin:0;padding:6px 0;font-size:11px}@media (width<=600px){.start-actions{gap:8px;width:87vw}.start-actions .primary{flex:1;gap:8px;padding:14px 12px;font-size:11px}.online-card{padding:22px!important}.online-card h2{font-size:32px}.online-actions .primary{font-size:12px}.online-race{max-width:175px;padding:7px 10px;font-size:10px;top:158px;left:12px}.online-countdown{font-size:80px}.online-roster{font-size:12px}}@media (height<=500px){.online-race{max-width:190px;font-size:10px;line-height:1.4;top:80px}.online-card{max-height:94dvh}.online-card h2{font-size:28px}}.touch-controls{left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));align-items:flex-end}.touch-group{gap:8px}.touch-steer{grid-template-columns:repeat(2,56px);display:grid}.touch-controls button{-webkit-touch-callout:none;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:56px;height:56px;padding:4px;transition:background 80ms,box-shadow 80ms;display:flex;box-shadow:0 3px #071f2980}.touch-controls button span{font-size:24px;line-height:1}.touch-controls button small{letter-spacing:.5px;font-size:10px;line-height:1.3}.touch-controls button[aria-pressed=true]{color:#173338;background:#efffa4;transform:translateY(2px);box-shadow:inset 0 0 0 3px #fff9,0 0 16px #dfff7580}.touch-drive{flex-direction:column;align-items:flex-end;gap:7px;display:flex}.touch-hint{color:#fffdf1;text-shadow:0 1px 4px #102c3a;font-size:10px}.touch-pedals{flex-direction:column;gap:6px;display:flex}.touch-controls .touch-boost{background:#f08149;width:104px;height:52px;font-size:17px}.touch-controls .touch-go{width:104px;height:72px;font-size:23px}.touch-controls .touch-boost[aria-pressed=true]{background:#ffc37d;box-shadow:inset 0 0 0 3px #fff9,0 0 20px #ff8d4da0}@media (width<=800px),(pointer:coarse){.racing .speed-card{bottom:calc(190px + env(safe-area-inset-bottom));width:135px;left:20px}.racing .speed-card>strong{width:78px;font-size:58px}.racing .restart{bottom:calc(175px + env(safe-area-inset-bottom));min-height:44px}.controls:before{content:"双拇指操作 · 左手换道 / 姿态 · 右手油门"}.racing .controls{display:none}}@media (height<=500px) and (pointer:coarse){.racing .speed-card{left:155px;bottom:calc(20px + env(safe-area-inset-bottom));width:115px}.racing .speed-card>strong{width:65px;font-size:48px}.racing .restart{right:140px;bottom:calc(20px + env(safe-area-inset-bottom))}.racing .heat-label{margin:5px 0}}
