@font-face{font-family:Display;src:local('Arial Black');font-weight:900}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#192322;color:#fff6e7;font-family:'PingFang SC','Microsoft YaHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:2px solid #fff6e7;outline-offset:5px}button{transition:background .2s,transform .2s}button:hover{filter:brightness(1.13)}button:active{transform:scale(.97)}#game{display:block;position:fixed;inset:0;width:100%;height:100%}#vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(16,24,24,.84),rgba(16,24,24,.28) 48%,transparent 75%),linear-gradient(0deg,rgba(15,23,23,.98),transparent 45%);transition:opacity .6s}body.racing #vignette{opacity:.18}header{position:absolute;left:4%;right:4%;top:28px;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{display:flex;gap:12px;text-decoration:none;color:#fff6e7;align-items:center;font-family:Display,sans-serif;font-size:18px;font-weight:900;font-style:italic;letter-spacing:1px}.brand small{display:block;font-size:9px;font-weight:500;font-style:normal;letter-spacing:5px;margin-top:3px}.brand-mark{display:grid;place-items:center;background:#ff5b32;color:#171d1a;width:39px;height:45px;font-size:40px;clip-path:polygon(12% 0,100% 0,88% 100%,0 100%)}.header-right{display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:1px}.live-dot{width:6px;height:6px;background:#ff663a;border-radius:50%;box-shadow:0 0 10px #ff663a}button.icon-button{border:1px solid #ffffff32;background:#18232055;padding:10px 13px;font-size:11px;backdrop-filter:blur(10px)}#fullscreen{font-size:19px;padding:4px 10px}#menu{position:absolute;inset:0}.hero{position:absolute;left:6%;top:20%;max-width:580px}.eyebrow{font-size:10px;letter-spacing:2.8px;display:flex;align-items:center;gap:12px;font-weight:700}.eyebrow>span{width:24px;height:2px;background:#ff6338}h1{font-size:clamp(48px,5.5vw,84px);line-height:1.16;letter-spacing:-4px;font-weight:950;margin:23px 0 24px}h1 span{color:#ff6338}.intro{font-size:13px;line-height:1.95;color:#d1d4c6;letter-spacing:1px}.hero-actions{display:flex;gap:25px;align-items:center;margin-top:27px}.primary{background:#ff5e32;color:#151d19;padding:17px 24px;min-width:200px;display:flex;align-items:center;justify-content:space-between;gap:32px;font-size:16px;font-weight:800;box-shadow:0 6px 35px #ff582322}.primary>span{font-size:25px;line-height:20px}.text-button{background:transparent;padding:15px 0;font-size:12px;letter-spacing:1px;display:flex;gap:20px}.session-note{font-size:10px;color:#9fa89d;margin-top:19px}.session-note i{font-style:normal;color:#ff7044;margin:0 10px}.bike-label{position:absolute;right:7%;top:52%;text-align:right;display:flex;flex-direction:column;gap:9px;text-shadow:0 2px 20px #0008}.bike-label>span:first-child{font-size:10px;letter-spacing:2px;color:#ffad70}.bike-label strong{font-size:27px;font-style:italic;letter-spacing:1px}.bike-label>span{font-size:11px;color:#d6d8ca}.bike-switch{display:flex;gap:20px;align-items:center;justify-content:flex-end;margin-top:5px}.bike-switch button{background:#1d262577;border:1px solid #ffffff45;width:34px;height:30px}.bike-switch span{font-size:9px;letter-spacing:6px}.route-picker{position:absolute;left:6%;right:6%;bottom:63px}.section-heading{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;margin-bottom:16px}.section-heading span:last-child{font-size:9px;color:#a1aaa0}.section-heading i{color:#ff7549;font-style:normal;margin-left:20px}.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.route{display:flex;align-items:center;gap:18px;background:#152120b0;border:1px solid #87968745;padding:13px;text-align:left;backdrop-filter:blur(14px);min-width:0}.route.selected{border-color:#ff7a4e;background:#26312ac9}.route-art{width:78px;height:64px;position:relative;overflow:hidden;flex-shrink:0;background:linear-gradient(#f4b794 0 40%,#649894 41% 64%,#ba9a6a 65%)}.route-art::after{content:'';position:absolute;inset:30% -5% -50% 40%;background:#344449;transform:rotate(-30deg);border-left:2px solid #eee5c2;border-right:2px solid #eee5c2}.route-art b{position:absolute;left:6px;top:5px;font:italic 15px Display,sans-serif;z-index:1;text-shadow:0 1px 5px #0005}.route-art.desert{background:linear-gradient(#e8ac72 0 40%,#a65e43 41% 65%,#c09053 66%)}.route-art.night{background:linear-gradient(#222e47 0 40%,#40536a 41% 64%,#617687 65%)}.route-copy{display:flex;flex-direction:column;gap:9px;white-space:nowrap}.route-copy strong{font-size:15px;letter-spacing:1px}.route-copy small{font-size:9px;color:#a5afa7;letter-spacing:.5px}.route-distance{margin-left:auto;font:italic 20px Display,sans-serif;white-space:nowrap;padding:0 3px}.route-distance small{font:8px sans-serif}.route-distance em{display:block;font:9px sans-serif;margin-top:9px;color:#839287}.route.selected .route-distance em{color:#ff8856}footer{position:absolute;bottom:23px;left:6%;right:6%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#85958d}.hidden{display:none!important}#hud{position:absolute;inset:0;pointer-events:none}#hud button{pointer-events:auto}.race-top{position:absolute;left:5%;right:5%;top:112px;display:flex;align-items:flex-start;gap:40px}.position small{font-size:9px;letter-spacing:3px;display:block}.position>strong{font:italic 54px Display,sans-serif}.position strong span{font:16px sans-serif;opacity:.6;margin-left:9px}.race-progress{width:340px;padding-top:5px}.race-progress>div:first-child,.progress-meta{display:flex;justify-content:space-between;font-size:11px}.progress-track{height:4px;background:#ffffff30;margin:13px 0 9px}.progress-track i{display:block;height:100%;background:#ff7040;width:0}.progress-meta{font:9px monospace;letter-spacing:1px;opacity:.8}#pause{margin-left:auto}.race-bottom{position:absolute;bottom:40px;left:5%;right:5%;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.vitals{width:215px;text-shadow:0 2px 10px #000}.stat-label{display:flex;justify-content:space-between;font-size:10px;margin:0 0 8px;letter-spacing:1px}.stat-label span:last-child{font-size:9px}.meter{height:6px;background:#fff3;transform:skewX(-15deg)}.meter i{display:block;width:100%;height:100%;background:#e6ecd1;transition:width .15s}.nitro-label{margin-top:19px;color:#b8eff9}.nitro i{background:#8decff}#score{display:block;margin-top:19px;font:italic 20px Display,sans-serif;letter-spacing:1px}.race-controls{display:flex;gap:20px;font-size:10px;color:#e2e8d7bb;padding-bottom:6px}.race-controls span{display:flex;align-items:center;gap:5px}kbd{display:inline-grid;place-items:center;min-width:22px;height:24px;border:1px solid #ffffff40;font:11px monospace;background:#101a2255}.speed{text-align:right}.speed>span{font-size:10px;letter-spacing:3px;color:#f6d49b}.speed>div{display:flex;align-items:baseline;gap:9px}.speed strong{font:italic 77px Display,sans-serif;line-height:1.1;letter-spacing:-4px}.speed div>span{font-size:10px;letter-spacing:2px}.speed-ticks{font-size:13px;color:#ff784e;letter-spacing:2px}#countdown{position:absolute;top:37%;width:100%;text-align:center;font:italic 110px Display,sans-serif;color:#fff5d6;text-shadow:0 5px 35px #0006}#toast{position:absolute;top:29%;width:100%;text-align:center;font-size:23px;font-weight:800;font-style:italic;color:#ffebae;text-shadow:0 2px 12px #000;opacity:0;transition:opacity .15s}#combo{position:absolute;right:6%;top:34%;text-align:right;opacity:0}#combo strong{display:block;font:italic 64px Display,sans-serif;color:#ff7944}#combo span{font-size:12px;letter-spacing:3px}#boost-fx,#damage-fx{position:absolute;inset:0;pointer-events:none;opacity:0}#boost-fx{box-shadow:inset 0 0 100px 30px #4ddaff44;background:radial-gradient(ellipse,transparent 55%,#77d6ef22);transition:opacity .2s}#damage-fx{box-shadow:inset 0 0 130px 40px #ff442988}#modal{position:absolute;inset:0;z-index:10;background:#0d171ac9;backdrop-filter:blur(16px);display:grid;place-items:center;padding:25px}.modal-box{width:520px;max-width:100%;padding:40px;background:#1d2925;border:1px solid #95a88c42;box-shadow:0 30px 100px #0005}.modal-box h2{font-size:37px;letter-spacing:-1px;line-height:1.35;margin:18px 0 23px}.modal-box .eyebrow{color:#ff8050;font-size:9px}.instructions{display:grid;gap:14px}.instruction{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;padding-bottom:12px;border-bottom:1px solid #ffffff15}.instruction>span:last-child{color:#d4d8c7}.instruction kbd{margin-right:4px}.tip{font-size:12px;line-height:1.9;color:#b4c1b0;margin-top:23px}#modal-actions{display:flex;gap:23px;margin-top:27px;align-items:center}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.result-grid span{font-size:11px;color:#b4c1b0;display:block}.result-grid strong{font:italic 29px Display,sans-serif;display:block;margin-top:8px}.result-grid strong small{font:13px sans-serif}#load-error{position:absolute;inset:20%;padding:40px;background:#182721;z-index:20}#touch-controls{position:absolute;bottom:140px;left:4%;right:4%;display:none;justify-content:space-between}#touch-controls>div{display:flex;gap:9px}#touch-controls button{width:49px;height:48px;border:1px solid #fffc;background:#1d2925a9;touch-action:none;user-select:none}body.racing header .brand{opacity:.7;transform:scale(.85);transform-origin:left}body.racing #header-label,body.racing .live-dot{display:none}
@media(min-width:1600px){.hero{top:23%}.route-picker{bottom:80px}.route{padding:18px}.route-art{width:105px;height:75px}}@media(max-height:740px) and (min-width:850px){header{top:20px}.hero{top:16%}h1{font-size:58px;margin:15px 0}.intro{font-size:12px}.hero-actions{margin-top:18px}.route-picker{bottom:51px}.route-art{height:50px;width:66px}.route{padding:10px}.section-heading{margin-bottom:10px}.bike-label{top:46%}footer{bottom:17px}}@media(max-width:1000px){.route{gap:10px}.route-copy small{font-size:8px}.route-distance{display:none}.race-controls{display:none}.hero{left:5%}.route-picker{left:5%;right:5%}.bike-label{right:5%}}@media(pointer:coarse){body.racing #touch-controls{display:flex}}@media(max-width:650px){header{top:18px;left:5%;right:5%}.brand{font-size:14px}.brand-mark{height:36px;width:31px}.header-right{gap:8px}#header-label,.live-dot{display:none}.hero{top:16%;max-width:85%}h1{font-size:47px;letter-spacing:-2px;margin:16px 0}.intro{font-size:11px;line-height:1.8}.hero-actions{margin-top:18px;gap:20px}.primary{min-width:170px;padding:14px 20px;font-size:14px}.session-note{font-size:8px}.eyebrow{font-size:8px;letter-spacing:2px}.bike-label{top:51%;right:6%;gap:5px}.bike-label strong{font-size:20px}.bike-label>span{font-size:9px}.route-picker{bottom:53px}.section-heading span:last-child{display:none}.routes{gap:7px}.route{padding:7px;flex-direction:column;align-items:flex-start;gap:8px}.route-art{width:100%;height:40px}.route-copy strong{font-size:12px}.route-copy small{display:none}.route-copy{padding:3px}.section-heading{font-size:10px;margin-bottom:10px}footer{font-size:8px;bottom:19px}footer>span:first-child{max-width:50%;line-height:1.8}.race-top{top:89px;gap:18px}.position>strong{font-size:38px}.position strong span{font-size:11px}.race-progress{width:150px}.race-progress>div:first-child{font-size:9px}.race-bottom{bottom:30px;gap:10px}.vitals{width:145px}.speed strong{font-size:52px}.speed div>span{font-size:8px}.speed-ticks{font-size:9px}.speed>span{font-size:8px;letter-spacing:1px}.modal-box{padding:25px}.modal-box h2{font-size:30px}#modal-actions{gap:15px}#toast{font-size:17px;top:30%}#pause{font-size:9px;padding:8px;white-space:nowrap}#combo strong{font-size:43px}}@media(max-height:530px){.hero{top:17%}h1{font-size:36px}.intro,.session-note{display:none}.hero-actions{margin-top:12px}.route-picker{bottom:35px}.section-heading{display:none}.route-art{height:30px}.bike-label{top:27%}footer{bottom:10px}.race-top{top:74px}.race-bottom{bottom:20px}#touch-controls{bottom:110px}}

#target-hint{position:absolute;transform:translate(-50%,-100%);padding:6px 9px;background:#172622d9;color:#c9f6d5;border:1px solid #b8e4d1aa;font:11px monospace;white-space:nowrap;pointer-events:none;display:none}#target-hint.danger{background:#a32d20;color:#fff3d1;border-color:#ff7349;animation:warning .2s infinite alternate}@keyframes warning{to{filter:brightness(1.5)}}

@media(max-width:650px) and (min-height:600px){#touch-controls{bottom:185px}.bike-label{top:55%}}
/* Season 02: career, combat readiness, and route objectives. */
.run-options{display:flex;align-items:center;gap:13px;margin-top:20px;font-size:10px}.run-options label{display:flex;gap:8px;align-items:center;color:#bac6ba}.run-options select{background:#172b25c4;color:#f3ead5;border:1px solid #9caa984d;padding:8px 6px;font:10px inherit;max-width:158px}.run-options button{background:#eee4c514;border:1px solid #c5d3b24d;padding:9px 11px;font-size:10px}.run-options button span{color:#ffc185;margin-left:12px}.hero{top:18%}.hero h1{margin-bottom:18px}.session-note{margin-top:12px}#bike-spec{font-family:monospace;letter-spacing:1px;color:#eec68c;font-size:10px}#camera{margin-left:auto;white-space:nowrap}#pause{margin-left:0;white-space:nowrap}.rage-label{margin-top:17px;color:#ffbc7e}.rage i{background:#ff8748;width:0}.charged{box-shadow:0 0 20px #ff884b99}.rage.charged i{animation:warning .3s infinite alternate}.reward-strip{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;border-top:1px solid #b8c6a839;margin-top:25px;padding-top:20px;font-size:12px}.reward-strip strong{color:#ffac68;font:italic 21px Display,sans-serif}.reward-strip small{width:100%;color:#a8bda3;font-size:10px}#draft-indicator{position:absolute;left:50%;top:68%;transform:translateX(-50%);padding:7px 15px;font-size:10px;letter-spacing:1px;color:#e2e7d580;white-space:nowrap}#draft-indicator.active{background:#80d4e2dd;color:#142c33;font-weight:700}#missions{position:absolute;right:5%;top:24%;width:156px;font-size:10px;background:#182a2433;padding:12px 13px;backdrop-filter:blur(6px)}#missions>span{font-size:9px;letter-spacing:2px;display:block;color:#d3c6a2;margin-bottom:11px}#missions>div{display:flex;justify-content:space-between;margin-top:9px;color:#f2efdbb8}#missions .complete{color:#91efb3}#missions b{font-family:monospace}.garage-summary{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:12px;color:#b2c2ad;margin-bottom:20px}.garage-summary b{color:#ffba73;margin-left:12px}.upgrade-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #8aa88c38;padding:19px 0}.upgrade-row strong{font-size:14px}.upgrade-row small{color:#ffc280;font-size:10px;margin-left:8px}.upgrade-row p{font-size:10px;color:#b7c8b2;margin:8px 0 0}.upgrade-row button{background:#ff7140;color:#132419;padding:11px 14px;font-size:11px;font-weight:700}.upgrade-row button:disabled{background:#354038;color:#93a18d;cursor:default;filter:none}.modal-box{max-height:94dvh;overflow:auto}#touch-heavy{font-size:10px;color:#ffbd79;border-color:#ffa464}#touch-heavy.charged{background:#ed723b;color:#1d221b}
@media(max-height:780px) and (min-width:850px){.hero{top:14%}.hero h1{font-size:53px;margin:14px 0}.hero-actions{margin-top:15px}.run-options{margin-top:12px}.session-note{font-size:9px}.intro{font-size:11px}#missions{top:26%}#draft-indicator{top:65%}.rage-label{margin-top:13px}}
@media(max-width:650px){.hero{top:14%}.run-options{gap:7px;flex-wrap:wrap;font-size:9px;margin-top:13px}.run-options label{gap:6px}.run-options select{max-width:133px;font-size:9px;padding:7px 2px}.run-options button{font-size:9px;padding:8px}.run-options button span{margin-left:6px}.session-note{font-size:7px}.bike-label{top:58%}.bike-label #bike-spec{font-size:8px}.race-top{gap:9px}.race-progress{width:118px}.position>strong{font-size:33px}.position strong span{font-size:9px}#camera{padding:8px 5px;font-size:8px}#pause{padding:8px 5px;font-size:8px}#missions{top:21%;right:5%;width:116px;padding:8px;font-size:8px}#missions>span{font-size:8px;margin-bottom:8px;letter-spacing:1px}#missions>div{margin-top:6px}#draft-indicator{top:64%;font-size:8px;padding:5px 8px}.rage-label{margin-top:13px}#touch-controls{bottom:210px}#touch-controls button{width:42px;height:44px;font-size:11px}#touch-controls>div{gap:5px}#touch-heavy{position:absolute;right:0;bottom:54px;width:72px!important}.speed strong{font-size:47px}.race-bottom{bottom:25px}#combo{top:39%}.modal-box h2{font-size:25px}.garage-summary{font-size:11px}}
@media(max-height:530px){.hero{top:18%}.hero h1{font-size:33px}.run-options{margin-top:8px}.run-options label{display:none}.hero-actions{margin-top:8px}.primary{padding:12px 20px}.session-note{display:none}#missions{top:25%;font-size:8px}#draft-indicator{top:70%}.vitals{width:150px}.stat-label{font-size:8px;margin-bottom:4px}.meter{height:4px}.nitro-label,.rage-label{margin-top:7px}#score{margin-top:8px}.race-bottom{bottom:10px}#touch-controls{bottom:135px}}
