@font-face{font-family:Inter;src:url(./assets/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Barlow;src:url(./assets/barlow-700.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Barlow;src:url(./assets/barlow-800i.woff2) format("woff2");font-style:italic;font-weight:800;font-display:swap}:root{color-scheme:dark;font-family:Inter,sans-serif;--ink: #19263e;--white: #fff4dd;--muted: #e0ddda;--accent: #ffc977;--line: rgba(250, 246, 230, .29);--glass: rgba(25, 38, 62, .82);--pad: clamp(18px, 3.2vw, 56px)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--ink);color:var(--white)}body{overscroll-behavior:none}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;user-select:none;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--white);outline-offset:4px}a{color:var(--accent);text-underline-offset:.14em}#rally{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate;overflow:hidden}#world,#weather-layer,.scene-shade{position:absolute;inset:0;width:100%;height:100%}#world{display:block;touch-action:none}#weather-layer{display:block;pointer-events:none}.menu-world-clock{color:#dce4dd;font-variant-numeric:tabular-nums;letter-spacing:.05em}#rally:not([data-state=menu]) .menu-world-clock{display:none}.scene-shade{pointer-events:none}[data-state=menu] .scene-shade{background:linear-gradient(90deg,#17243ddd 0,#1a294795 26%,#1a294730 52%,transparent 73%),linear-gradient(0deg,#17243dab 0,transparent 34%)}[data-state=driving] .scene-shade,[data-state=countdown] .scene-shade{background:linear-gradient(180deg,#18243d63,transparent 23%,transparent 69%,#15244153)}.topbar{position:absolute;z-index:5;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(18px,env(safe-area-inset-top)) var(--pad) 0;pointer-events:none}.circuit-name{display:flex;align-items:center;gap:11px;height:38px;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.12em;text-shadow:0 1px 8px #18243d}[data-state=menu] .circuit-name .circuit-label{display:none}.brand-mark,.loading-mark{display:inline-flex;gap:3px;padding:0 4px;transform:skew(-22deg)}.brand-mark i,.loading-mark i{width:4px;height:16px;border-radius:1px;background:var(--accent)}.game-tools{display:flex;gap:6px;pointer-events:auto}.tool-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;min-height:40px;padding:0 12px;background:var(--glass);font-size:12px;font-weight:650;white-space:nowrap;transition:background .16s,border-color .16s}.tool-button:hover{background:#31445d;border-color:#faf6e68c}[data-state=menu] .drive-tool,[data-state=finished] .drive-tool,[data-state=paused] .drive-tool{display:none}.menu{position:absolute;inset:0;z-index:2;pointer-events:none}.menu-content{position:absolute;left:var(--pad);top:46%;transform:translateY(-46%);pointer-events:auto}h1,h2,.clock,.speed-value,.countdown,.result-time{font-family:Barlow,Arial Narrow,sans-serif}h1{margin:0 0 16px -.022em;color:var(--white);font-style:italic;font-weight:800;font-size:clamp(65px,10.1vw,154px);line-height:.87;letter-spacing:-.019em;text-shadow:0 4px 0 #18243d6b,0 12px 40px #14243b40}h1 span{color:var(--accent)}.menu-description{max-width:332px;margin:26px 0 25px;color:#e9e7dc;font-size:15px;line-height:1.56;text-wrap:pretty}.menu-actions{display:flex;gap:9px}.launch-link{min-height:44px;padding:0;display:block;border:0;background:transparent;color:#f4e7d2;font-size:12px;font-weight:720;text-align:left;text-decoration:underline;text-underline-offset:4px}.launch-link:hover{color:var(--accent)}.travel-prompt{position:absolute;z-index:6;display:grid;gap:7px;justify-items:center;pointer-events:auto;bottom:max(38px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:9px 11px 11px;border:1px solid #d8ddd35c;border-radius:6px;background:#1b2a45eb;text-align:center;box-shadow:0 6px 25px #121f3d80}.travel-place{font-size:11px;font-weight:690;color:var(--white);white-space:nowrap}.travel-prompt .button{min-height:43px;gap:10px;padding-inline:12px}.travel-prompt kbd{color:inherit;border-color:#181f205e}.weather-status{text-align:center;padding:1px 0 5px;font-size:10px;font-weight:740;color:#dddccd;font-variant-numeric:tabular-nums}.area-name{margin:1px auto 4px;max-width:100%;text-align:center;color:var(--white);font-size:10px;font-weight:750;line-height:1.16}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:0 21px;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:800;letter-spacing:.018em;white-space:nowrap;transition:transform .17s,background .17s,border-color .17s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button.primary{background:var(--accent);color:var(--ink);border-color:var(--accent);box-shadow:0 5px #8156356b}.button.primary:hover{background:#ffdb9e;border-color:#ffdb9e}.button.secondary{border-color:#faf6e661;background:var(--glass);color:var(--white)}.button.secondary:hover{background:#30425e;border-color:var(--white)}.menu-footer{position:absolute;inset:auto var(--pad) max(24px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.circuit-stats{display:flex;margin:0}.circuit-stats div{border-left:1px solid var(--line);padding:0 clamp(13px,2vw,28px)}.circuit-stats div:first-child{padding-left:0;border:0}.circuit-stats dt{font-size:9px;letter-spacing:.125em;text-transform:uppercase;color:var(--muted);font-weight:700}.circuit-stats dd{margin:2px 0 0;font:700 25px/1.04 Barlow,Arial Narrow,sans-serif;font-variant-numeric:tabular-nums}.curtain,.panel-overlay{position:absolute;z-index:12;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;padding:24px}.curtain{background:radial-gradient(ellipse at 50% 41%,#343c2b,#171d17 68%)}.loading-mark{gap:5px}.loading-mark i{width:8px;height:35px;animation:pulse 1.15s infinite alternate}.loading-mark i:nth-child(2){animation-delay:.17s}.loading-mark i:nth-child(3){animation-delay:.34s}@keyframes pulse{0%{opacity:.26}to{opacity:1}}.curtain p{font-size:14px;line-height:1.55;color:var(--muted)}.panel-overlay{background:#101711ad;backdrop-filter:blur(5px)}.panel{padding:25px 28px 29px;background:var(--glass);border:1px solid var(--line);border-radius:8px;min-width:min(310px,86vw)}.panel h2,dialog h2{font-size:clamp(37px,7vw,62px);line-height:.93;text-transform:uppercase;margin:0 0 22px}.panel-actions{display:flex;gap:8px;align-items:stretch;justify-content:center;flex-wrap:wrap}.result-label{margin:0 0 9px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}.result-time{margin:0 0 7px;font-size:clamp(47px,9vw,78px);line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.result-detail{margin:0 0 24px;color:var(--muted);font-size:13px}.hud{position:absolute;z-index:2;inset:0;pointer-events:none}.telemetry{position:absolute;top:88px;left:var(--pad);text-shadow:0 1px 9px #121b15bd}.mode-label{text-transform:uppercase;color:#f2eadd;letter-spacing:.135em;font-size:10px;font-weight:800}.clock{font-size:clamp(42px,5.8vw,85px);line-height:.94;margin:3px 0;font-weight:700;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.best{color:#eee8db;font-size:11px;font-weight:680;font-variant-numeric:tabular-nums;margin-top:7px}.best span{color:var(--white);margin-left:5px}.route-progress{display:flex;gap:4px;margin:16px 0 8px}.route-progress i{display:block;width:17px;height:3px;transform:skew(-20deg);background:#e5ebdc72}.route-progress i.checked{background:var(--accent)}.next-gate{text-transform:uppercase;font-size:9px;letter-spacing:.1em;color:var(--white);font-weight:740}.map-card{position:absolute;top:85px;right:var(--pad);width:clamp(133px,14vw,205px);padding:6px 8px 8px;background:var(--glass);border:1px solid #f3f1db44;border-radius:10px}#map{display:block;width:100%;height:auto}.map-caption{text-align:center;color:#e3e3d3;font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:750}.speedometer{position:absolute;bottom:36px;right:var(--pad);width:clamp(109px,12vw,173px);aspect-ratio:1;display:grid;place-content:center;justify-items:center;border-radius:50%;box-shadow:0 7px 30px #171e3b38;background:var(--glass);--arc: 0deg}.speedometer:before{position:absolute;content:"";inset:7px;border-radius:50%;background:conic-gradient(from 228deg,var(--accent) 0deg var(--arc),#eee9d84e var(--arc) 264deg,transparent 264deg);mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px))}.speed-value{text-align:center;font-weight:700;font-variant-numeric:tabular-nums;font-size:clamp(46px,5.5vw,78px);line-height:.75;margin-top:-5px}.speed-value small{display:block;color:var(--muted);font:700 10px/1 Inter,sans-serif;text-transform:uppercase;margin-top:6px;letter-spacing:.08em}.gear{position:absolute;bottom:7px;padding:3px 7px;color:var(--accent);font:700 17px/.95 Barlow,sans-serif}.hud-hint{position:absolute;left:var(--pad);bottom:31px;padding:7px 10px;border-radius:6px;background:var(--glass);color:var(--white);font-size:11px}.countdown,.notice{position:absolute;z-index:6;left:50%;transform:translate(-50%);font-weight:800;font-style:italic;color:var(--white);text-shadow:0 3px 16px #131a14ba;pointer-events:none;text-align:center}.countdown{top:36%;line-height:.85;font-size:clamp(95px,18vw,245px);text-transform:uppercase}.notice{top:20%;border:1px solid #f5f3df55;background:#222b20de;border-radius:5px;padding:8px 15px;font:700 13px/1.2 Inter,sans-serif;white-space:nowrap}.touch-controls{display:none}[data-travel=boat] .touch-button.drift{visibility:hidden}dialog{max-width:min(495px,calc(100vw - 26px));width:100%;max-height:calc(100dvh - 24px);padding:23px;color:var(--white);background:#202922;border:1px solid #ffffff30;border-radius:9px;box-shadow:0 22px 85px #0007}dialog::backdrop{background:#101611bb;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}dialog h2{font-size:46px;margin-bottom:12px}.guide-list{margin:0 0 16px}.guide-list div{display:flex;justify-content:space-between;gap:13px;padding:9px 0;border-bottom:1px solid #ffffff23;font-size:13px}.guide-list dt{font-weight:700}.guide-list dd{margin:0;color:var(--muted);text-align:right}kbd{font:inherit;color:var(--white);border:1px solid #ffffff28;padding:2px 4px;border-radius:3px}dialog p{color:var(--muted);font-size:13px;line-height:1.6;margin:10px 0 0}.noscript{position:absolute;z-index:20;inset:auto 0 30px;text-align:center}@media(pointer:coarse),(max-width:720px){.topbar{padding-top:max(10px,env(safe-area-inset-top))}.topbar .tool-button{padding-inline:9px;min-height:43px;font-size:11px}.map-card{top:69px;width:127px}.telemetry{top:70px}.speedometer{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 82px);width:106px}.speed-value{font-size:49px}.hud-hint{display:none}.travel-prompt{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 83px)}.travel-prompt .button{min-height:44px}.touch-controls{position:absolute;z-index:5;inset:auto var(--pad) max(14px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:8px;pointer-events:none}.steer-controls,.pedal-controls{display:flex;gap:5px}.touch-button{width:clamp(45px,13vw,70px);min-height:clamp(48px,13vw,69px);border:1px solid #fff7;border-radius:7px;background:#18241dd9;color:var(--white);pointer-events:auto;touch-action:none;padding:0;font-size:11px;font-weight:830;box-shadow:0 3px 7px #1017113e}.steer-controls .touch-button{font-size:36px;line-height:1;font-weight:550;padding-bottom:5px}.touch-button.drift{width:49px;min-height:44px}.touch-button.throttle{color:#202419;border-color:#ffb28e;background:var(--accent)}.touch-button.is-held{background:var(--white);color:var(--ink)}}@media(max-width:640px)and (orientation:portrait){:root{--pad: 15px}[data-state=menu] .scene-shade{background:linear-gradient(0deg,#17243df5 0%,#17243ddd 23%,#19263e4d 55%,transparent 76%),linear-gradient(180deg,#19263e65,transparent 21%)}.menu-content{left:var(--pad);right:var(--pad);top:auto;bottom:max(99px,calc(env(safe-area-inset-bottom) + 86px));transform:none}h1{font-size:clamp(44px,16.2vw,94px);margin-bottom:8px}.menu-description{margin:15px 0 16px;font-size:13px;max-width:255px}.button{min-height:48px;padding-inline:16px}.launch-link{min-height:40px}.menu-footer{bottom:max(17px,env(safe-area-inset-bottom))}.circuit-stats div{padding-inline:10px}.circuit-stats dt{font-size:8px;letter-spacing:.07em}.circuit-stats dd{font-size:23px}.circuit-name{font-size:10px;gap:6px}#rally:not([data-state=menu]) .circuit-name .circuit-label{display:none}.game-tools{gap:4px}#rally:not([data-state=menu]) #help-btn{display:none}.countdown{top:38%}.notice{top:27%}}@media(max-width:920px)and (max-height:485px)and (orientation:landscape){:root{--pad: 15px}.menu-content{top:45%}h1{font-size:clamp(48px,8.2vw,81px)}.menu-description{margin:9px 0;max-width:270px;font-size:12px}.menu-content{top:44%}.button{min-height:44px}.menu-footer{bottom:11px}.launch-link{min-height:37px}.travel-prompt{bottom:78px}.circuit-stats dd{font-size:19px}.circuit-stats dt{font-size:8px}.map-card{width:105px;top:56px}.telemetry{top:57px}.speedometer{bottom:75px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
