:root{color:#263b3d;font-synthesis:none;font-synthesis-weight:none;font-synthesis-style:none;--paper:#f8f8eff2;--ink:#183e47;--gold:#bd914d;background:#b6c9ce;font-family:Arial,Helvetica,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#game{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #bd914d}#game{touch-action:none;outline:none;display:block}#app{pointer-events:none;position:fixed;inset:0}button,input,canvas#minimap,.dev-panel,.pause-card{pointer-events:auto}button{color:inherit;border:0}button:hover{background:#e5e8dc}.hud-top{justify-content:space-between;align-items:center;gap:20px;display:flex;position:absolute;top:28px;left:32px;right:32px}.brand{color:var(--ink);background:var(--paper);border:1px solid #fff9;border-radius:4px;align-items:center;gap:12px;padding:12px 18px 12px 13px;display:flex;box-shadow:0 3px 18px #29464c17}.brand-icon{background:var(--ink);color:#f1eddb;letter-spacing:-3px;border-radius:2px;padding:7px 10px 7px 6px;font-size:29px;font-weight:900;line-height:1}.brand-icon span{color:#d5ab65;font-size:23px}.brand h1{letter-spacing:1.2px;margin:0;font-size:22px;font-weight:800;line-height:1.2}.brand h1 strong{font-weight:400}.brand p{letter-spacing:1.6px;color:#6c7c76;margin:6px 0 0;font-size:8px;font-weight:700}.brand p span{color:#a88346;letter-spacing:1px;margin-left:8px;font-size:7px}.toolbar{background:var(--paper);border-radius:4px;gap:1px;padding:5px;display:flex;box-shadow:0 3px 18px #29464c17}.toolbar button{letter-spacing:.2px;background:0 0;border-radius:2px;padding:10px 12px;font-size:11px;font-weight:600}.toolbar button span{padding-right:4px;font-size:16px;font-weight:400}.toolbar button:hover,.toolbar button.active{background:#e2e6dc}.toolbar button.active{color:#957031}.toolbar .pause-button{border-left:1px solid #dbdfd4;margin-left:5px;padding:7px 14px;font-size:20px}.drive-card{background:var(--paper);border-radius:4px;width:292px;padding:17px 20px;position:absolute;top:128px;left:32px;box-shadow:0 3px 18px #29464c17}.eyebrow{letter-spacing:1.8px;color:#687871;font-size:8px;font-weight:800}.eyebrow #checkpoint-counter{float:right;color:#9b7a46;letter-spacing:1px}.destination{align-items:center;gap:13px;margin-top:12px;display:flex}.route-dot{background:var(--gold);border:2px solid #f5eee0;border-radius:50%;outline:1px solid #c2a576;flex:none;width:10px;height:10px}.destination h2{margin:0 0 5px;font-size:16px;font-weight:600;line-height:1.2}.destination p{color:#6d7a73;margin:0;font-size:10px;line-height:1.4}.location{color:#fff;text-shadow:0 1px 4px #304a51;align-items:center;gap:10px;display:flex;position:absolute;bottom:300px;left:34px}.location-dot{background:#eac98a;border-radius:50%;width:6px;height:6px}.location span{font-size:14px;font-weight:600}.location small{opacity:.83;margin-top:5px;font-size:10px;display:block}.minimap-wrap{background:var(--paper);border-radius:4px;width:252px;padding:10px;transition:width .25s,height .25s;position:absolute;bottom:42px;left:32px;box-shadow:0 4px 20px #203b4326}.map-title{letter-spacing:1.2px;justify-content:space-between;align-items:center;padding:0 2px 8px;font-size:8px;font-weight:800;display:flex}.map-title button{background:0 0;padding:0 3px;font-size:17px;line-height:1}.minimap-wrap canvas,.minimap-wrap img{border-radius:1px;width:100%;height:180px;display:block}.map-legend{letter-spacing:.5px;color:#5c706b;align-items:center;gap:6px;margin-top:9px;font-size:7px;display:flex}.legend-road{background:#a9b19f;width:13px;height:3px}.legend-car{clip-path:polygon(50% 0,100% 100%,0 100%);background:#254852;width:5px;height:7px;margin-left:7px}.north{margin-left:auto;font-weight:700}.map-notice{color:#8b8f7f;margin-top:7px;font-size:7px}.minimap-wrap.expanded{width:min(650px,100vw - 64px);padding:18px;position:absolute;bottom:50%;left:50%;transform:translate(-50%,50%);box-shadow:0 15px 120px #12303b70}.minimap-wrap.expanded canvas,.minimap-wrap.expanded img{height:min(60vh,520px)}.minimap-wrap.expanded .map-title{margin-bottom:8px;font-size:10px}.minimap-wrap.expanded .map-legend,.minimap-wrap.expanded .map-notice{font-size:9px}.speedometer{color:#fff;text-shadow:0 2px 10px #203e4666;width:196px;position:absolute;bottom:58px;right:42px}.speed-value{justify-content:flex-end;align-items:baseline;gap:13px;font-style:italic;display:flex}.speed-value>span{letter-spacing:-5px;font-size:84px;font-weight:400;line-height:1}.speed-value small{letter-spacing:1.8px;font-size:10px;font-style:normal;font-weight:700}.speed-footer{border-top:1px solid #ffffff61;align-items:center;gap:12px;margin-top:12px;padding-top:13px;display:flex}.speed-footer #gear{color:#e3c389;font-size:16px}.speed-footer #vehicle-status{letter-spacing:1.4px;white-space:nowrap;font-size:7px;font-weight:700}.speed-line{background:#d6af65;width:27px;height:3px;margin-left:auto}.keyboard-guide{color:#f1f3e9;white-space:nowrap;background:#1f363aab;border-radius:3px;gap:18px;padding:13px 17px;display:flex;position:absolute;bottom:58px;left:50%;transform:translate(-50%)}.keyboard-guide span{letter-spacing:1px;align-items:center;gap:4px;font-size:7px;display:flex}.keyboard-guide kbd{color:#e9e7d5;text-align:center;background:#f3f5e41f;border:1px solid #ffffff30;border-bottom:2px solid #ffffff47;border-radius:2px;min-width:19px;padding:3px 4px;font-size:9px;line-height:1.1}.keyboard-guide kbd:last-of-type{margin-right:4px}.free-guide{background:var(--paper);letter-spacing:1.2px;white-space:nowrap;border-radius:3px;padding:14px 18px;font-size:8px;font-weight:700;position:absolute;bottom:58px;left:50%;transform:translate(-50%)}.free-guide span{letter-spacing:0;color:#667c76;margin-top:6px;font-size:11px;font-weight:400;display:block}.attribution{color:#f2f3ec;text-shadow:0 1px 4px #203c43;opacity:.8;max-width:calc(100% - 64px);font-size:7px;line-height:1.5;position:absolute;bottom:14px;left:32px;right:32px}.dev-panel{scrollbar-width:thin;background:#f5f7eef7;border-radius:4px;width:292px;max-height:calc(100vh - 165px);padding:19px;position:absolute;top:122px;right:32px;overflow:auto;box-shadow:0 6px 30px #213e433d}.dev-heading{justify-content:space-between;align-items:center;display:flex}.dev-heading h2{margin:0;font-size:16px;font-weight:600}.dev-heading button{background:0 0;padding:0 3px;font-size:23px;line-height:1}.dev-stats{border-top:1px solid #d7ddce;border-bottom:1px solid #d7ddce;grid-template-columns:repeat(2,1fr);gap:12px 8px;margin:18px 0;padding:14px 0;display:grid}.dev-stats span{color:#7b8980;font-size:9px}.dev-stats b{color:#304e4d;min-width:32px;font-size:17px;font-weight:500;display:inline-block}.check{cursor:pointer;align-items:center;gap:8px;margin:11px 0;font-size:10px;line-height:1.4;display:flex}.check input{accent-color:#315950;width:14px;height:14px;margin:0}.dev-section{letter-spacing:1.3px;color:#728073;margin:22px 0 13px;font-size:8px;font-weight:700}.slider-label{margin:14px 0;display:block}.slider-label>span{color:#617569;justify-content:space-between;font-size:10px;display:flex}.slider-label output{color:#334e45;font-size:10px}.slider-label input{accent-color:#52776a;width:100%;height:4px;margin:12px 0 0}.dev-note{color:#819084;margin:22px 0 0;font-size:9px;line-height:1.7}.pause-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#183b485e;place-items:center;display:grid;position:absolute;inset:0}.pause-card{background:#f4f3e8;border-radius:4px;width:350px;max-width:90vw;padding:45px;box-shadow:0 20px 70px #173a4850}.pause-card h2{letter-spacing:-1px;margin:18px 0 12px;font-size:30px;font-weight:400}.pause-card p{color:#748076;margin:0 0 30px;font-size:12px}.pause-card button{color:#fff;text-align:left;background:#214750;border-radius:2px;width:100%;padding:14px 17px;font-size:11px}.pause-card button:hover{background:#35626b}.pause-card button span{float:right;font-size:15px}.pause-card small{color:#929788;margin-top:15px;font-size:8px;line-height:1.7;display:block}.toast{color:#405950;opacity:0;text-align:center;background:#f7f5e8f5;border-radius:3px;max-width:90vw;padding:14px 20px;font-size:11px;transition:opacity .2s,transform .2s;position:absolute;top:120px;left:50%;transform:translate(-50%,-5px);box-shadow:0 3px 20px #2446521f}.toast.visible{opacity:1;transform:translate(-50%)}[hidden]{display:none!important}#loading{z-index:10;color:#24464a;background:#e8ebe1;flex-direction:column;justify-content:center;align-items:center;transition:opacity .65s;display:flex;position:fixed;inset:0}#loading.loaded{opacity:0;pointer-events:none}.loading-mark{letter-spacing:-8px;color:#355b60;margin-right:8px;font-size:62px;font-weight:800}#loading h1{letter-spacing:4px;margin:20px 0 0;font-size:19px}#loading p{color:#7b8c7e;text-align:center;max-width:450px;margin:22px 0;padding:0 24px;font-size:12px;line-height:1.8}.loading-track{background:#d1d9c9;width:160px;height:2px;overflow:hidden}.loading-track span{background:#ac986a;width:50%;height:100%;animation:1.5s ease-in-out infinite loading;display:block}#loading small{letter-spacing:1px;color:#9b9f8f;margin-top:22px;font-size:9px}#loading.failed .loading-track{display:none}#loading.failed button{color:#fff;background:#24464a;border-radius:3px;margin-top:16px;padding:12px 25px}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(300%)}}.touch-controls{justify-content:space-between;display:none;position:absolute;bottom:60px;left:24px;right:24px}.touch-controls>div{gap:9px;display:flex}.touch-controls button{color:#24474c;touch-action:none;background:#edf2e0d6;border-radius:50%;width:54px;height:54px;font-size:22px}.touch-controls button.pressed{color:#f0f0de;background:#24474c}@media (max-width:1000px){.hud-top{top:20px;left:20px;right:20px}.brand{padding:10px}.brand h1{font-size:18px}.brand p span{display:none}.toolbar button{padding:9px;font-size:10px}.toolbar button span{padding-right:2px}.drive-card{width:250px;padding:14px;top:112px;left:20px}.minimap-wrap{width:210px;bottom:35px;left:20px}.minimap-wrap canvas,.minimap-wrap img{height:155px}.location{bottom:260px;left:22px}.speedometer{width:150px;bottom:50px;right:24px}.speed-value>span{font-size:67px}.keyboard-guide{gap:9px;padding:10px;bottom:44px}.keyboard-guide span{gap:2px;font-size:6px}.keyboard-guide kbd{min-width:16px;padding:3px;font-size:8px}.attribution{font-size:6px;bottom:9px;left:20px;right:20px}.dev-panel{top:108px;right:20px}.toast{top:106px}}@media (max-width:760px){.hud-top{align-items:flex-start;top:15px;left:15px;right:15px}.brand-icon{padding:6px;font-size:22px}.brand-icon span{font-size:17px}.brand h1{letter-spacing:.7px;font-size:14px}.brand p{letter-spacing:1px;font-size:6px}.brand{gap:8px;padding:8px 10px}.toolbar{gap:0;padding:3px}.toolbar button{min-width:33px;padding:7px 9px;font-size:0}.toolbar button span{padding:0;font-size:17px}.toolbar .pause-button{margin-left:2px;padding:6px 11px;font-size:16px}.drive-card{width:225px;padding:13px 14px;top:92px;left:15px}.destination h2{font-size:14px}.destination p{font-size:9px}.eyebrow{font-size:7px}.keyboard-guide{gap:8px;padding:10px;bottom:36px;left:auto;right:188px;transform:none}.keyboard-guide span:nth-child(3),.keyboard-guide span:nth-child(4){display:none}.minimap-wrap{width:169px;padding:8px;bottom:32px;left:15px}.minimap-wrap canvas,.minimap-wrap img{height:128px}.map-title{letter-spacing:.8px;font-size:6px}.map-legend{gap:3px;font-size:6px}.map-notice{font-size:6px}.location{bottom:224px;left:17px}.location span{font-size:12px}.location small{font-size:8px}.speedometer{width:124px;bottom:35px;right:18px}.speed-value>span{font-size:61px}.speed-value{gap:10px}.speed-value small{font-size:8px}.speed-footer{gap:8px;margin-top:6px;padding-top:9px}.speed-footer #vehicle-status{letter-spacing:.5px;font-size:6px}.speed-line{display:none}.speed-footer #gear{font-size:13px}.attribution{font-size:5px;bottom:7px;left:15px}.dev-panel{width:255px;max-height:calc(100vh - 128px);top:91px;right:15px}.toast{font-size:10px;top:190px}.free-guide{padding:12px;font-size:7px;bottom:38px;left:auto;right:18px;transform:none}.free-guide span{white-space:normal;max-width:160px;font-size:8px;line-height:1.6}}@media (pointer:coarse){.touch-controls{display:flex;bottom:35px;left:15px;right:15px}.keyboard-guide{display:none}.speedometer{bottom:105px;right:20px}.minimap-wrap{bottom:105px}.location{bottom:290px}.attribution{bottom:8px}.free-guide{bottom:110px}}@media (max-height:540px){.drive-card{width:210px;padding:11px;top:88px}.destination h2{font-size:13px}.destination p{font-size:8px}.destination{margin-top:9px}.location{bottom:220px}.minimap-wrap{width:175px}.minimap-wrap canvas,.minimap-wrap img{height:120px}.minimap-wrap .map-notice{display:none}.speedometer{bottom:40px}.hud-top{top:14px}.dev-panel{max-height:calc(100vh - 120px);top:82px}.touch-controls{bottom:30px}.touch-controls button{width:44px;height:44px}.touch-controls+.attribution{font-size:5px}}.attribution a{pointer-events:auto;color:inherit;text-underline-offset:2px}.attribution a:hover{color:#fff}.quality-label{color:#617569;flex-direction:column;gap:8px;margin:0 0 18px;font-size:10px;display:flex}.quality-label select{pointer-events:auto;color:#36554d;background:#e6eadd;border:1px solid #d5ddcc;border-radius:2px;max-width:100%;padding:8px;font-size:10px}.software-renderer .pause-overlay{-webkit-backdrop-filter:none}.attribution{color:#edf1e7;opacity:1;text-shadow:none;background:#1d4149;border-radius:2px;padding:5px 8px;font-size:10px;line-height:1.4;bottom:8px}@media (max-width:1000px){.attribution{font-size:10px;bottom:6px}.minimap-wrap{bottom:48px}.speedometer,.keyboard-guide{bottom:60px}}@media (max-width:760px){.attribution{max-width:calc(100% - 30px);padding:4px 6px;font-size:9px;left:15px;right:15px}.minimap-wrap{bottom:68px}.speedometer,.keyboard-guide{bottom:72px}.location{bottom:258px}.free-guide{bottom:72px}}@media (pointer:coarse){.touch-controls{bottom:65px}.minimap-wrap,.speedometer{bottom:135px}.location{bottom:320px}.free-guide{bottom:135px}}.software-renderer{--paper:#f8f8ef}.software-renderer .drive-card{box-shadow:none}@media (max-width:480px){.keyboard-guide{display:none}}.hud-top{top:16px;left:18px;right:18px}.brand{gap:10px;padding:10px 13px}.brand-icon{width:32px;height:30px;font-size:24px}.brand h1{font-size:19px}.brand p{margin-top:4px;font-size:6px}.toolbar{min-height:42px;padding:3px 5px}.toolbar button{padding:8px 10px;font-size:11px}.drive-card{width:245px;padding:10px 13px;top:81px;left:18px}.drive-card h2{font-size:13px}.drive-card .eyebrow{margin-bottom:7px;font-size:7px}.minimap-wrap{width:190px;padding:8px;bottom:35px;left:18px}.location{bottom:242px;left:18px}.location #street-name{font-size:13px}.keyboard-guide{padding:8px 11px;font-size:7px;bottom:35px}.speedometer{width:140px;bottom:43px;right:25px}.speed-value #speed{font-size:63px}.speed-footer{font-size:7px}.attribution{padding:5px 8px;font-size:9px;bottom:8px;left:18px;right:18px}.minimap-wrap.expanded{width:min(78vw,1000px)}.dev-panel{max-height:calc(100vh - 112px);top:78px;right:18px;overflow-y:auto}@media (max-width:600px){.brand h1{font-size:15px}.brand p{display:none}.brand-icon{width:26px;height:25px;font-size:20px}.toolbar button{padding:8px}.drive-card{width:210px;top:73px}.minimap-wrap{width:150px;bottom:98px}.location{bottom:265px}.speedometer{bottom:110px}.attribution{font-size:8px;left:6px;right:6px}.keyboard-guide{display:none}}.coverage-legend{display:none}.expanded .coverage-legend{display:inline}#visit-place,#visit-button{width:100%;font:inherit;color:#234349;pointer-events:auto;background:#f9f8ef;border:1px solid #bcc8bd;border-radius:3px;margin:7px 0;padding:9px}#visit-button{color:#f9f8ef;background:#234349}@media (max-width:600px){.hud-top{flex-wrap:wrap;gap:7px;top:10px;left:12px;right:12px}.brand{padding:7px 10px}.toolbar{justify-content:space-between;width:100%;min-height:39px}.toolbar button{min-width:32px;padding:7px 8px;font-size:10px}.toolbar button span{padding-right:3px;font-size:15px}.toolbar .pause-button{padding:5px 10px}.drive-card{width:210px;top:108px;left:12px}.dev-panel{max-height:calc(100vh - 140px);top:106px;right:12px}}.source-inspector{border-block:1px solid #bbc4b7;margin:16px 0;padding:10px 0;font-size:11px;line-height:1.5}.source-inspector summary{cursor:pointer;font-weight:700}.source-inspector input{width:100%;margin:5px 0;padding:7px}.source-inspector button{margin:3px 2px 3px 0;padding:6px 8px}.source-inspector pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}.source-inspector a{color:#275965;text-decoration:underline}
