.shell{flex-direction:column;width:min(1200px,100%);min-height:100svh;margin:auto;padding:36px 48px 24px;display:flex}header{justify-content:space-between;align-items:center;display:flex}.wordmark{letter-spacing:-1.5px;font-size:30px;font-weight:900}.brand-dot{color:#ba6545}.explore{font-size:14px}main{flex:1;align-items:center;display:grid}.hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:48px;padding:70px 0;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:700}h1{letter-spacing:-3px;margin:24px 0;font-size:clamp(40px,4.7vw,66px);font-weight:600;line-height:1.07}h1 span{color:#758c74}.intro{color:#657267;margin-bottom:36px;font-size:17px}.actions{gap:12px;display:flex}.button{color:#fff;background:#203a32;border:1px solid #203a32;border-radius:5px;justify-content:space-between;align-items:center;gap:40px;min-height:48px;padding:14px 22px;font-size:14px;display:inline-flex}.button:hover{background:#395446}.button.secondary{color:#203a32;background:0 0;border-color:#b3bcb0}.button.secondary:hover{background:#e6eade}.scene{background:#e8ede4;border-radius:45% 45% 12% 12%;width:100%;height:340px;overflow:hidden}.scene canvas{display:block}.scene p{padding:80px 40px}footer{color:#667466;border-top:1px solid #d8ddcf;padding-top:20px;font-size:11px}.dev-status{margin-top:12px;display:block}.placeholder{padding:70px 0}.route-note{color:#667466;margin:24px 0;font-family:monospace}@media (width<=760px){.shell{padding:24px}.hero{grid-template-columns:1fr;gap:36px;padding:60px 0 36px}.scene{height:260px}h1{letter-spacing:-2px}}@font-face{font-family:Inktown Sans;src:url(/fonts/inktown-regular.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inktown Sans;src:url(/fonts/inktown-bold.woff)format("woff");font-weight:600 900;font-style:normal;font-display:swap}:root{color:#203a32;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f2ea;font-family:Inktown Sans,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline-offset:6px;outline:3px solid #bc5c36}button,a{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #c4773d}.game{color:#253c34;background:#e7e9dc;position:fixed;inset:0;overflow:hidden}.city-canvas{position:absolute;inset:0}.city-canvas canvas{width:100%;height:100%;display:block}.game-top{top:max(24px, env(safe-area-inset-top));pointer-events:none;align-items:center;gap:30px;display:flex;position:absolute;left:32px;right:32px}.game-top a{pointer-events:auto}.game-brand{letter-spacing:-1.5px;color:#253c34;font-size:27px;font-weight:900;text-decoration:none}.game-brand span{color:#cb774b}.mode-label,.local-label{letter-spacing:1.5px;font-size:10px;font-weight:600}.local-label{letter-spacing:.3px;color:#647465;margin-left:auto}.city-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8f6eddc;border:1px solid #fff9;border-radius:4px;width:275px;max-height:calc(100% - 220px);padding:26px;position:absolute;top:100px;left:32px;overflow:auto;box-shadow:0 8px 40px #3d4b2810}.city-panel h1{letter-spacing:-1px;margin:14px 0;font-size:31px;line-height:1.1}.city-panel p{color:#647166;font-size:13px;line-height:1.6}.city-panel .eyebrow{letter-spacing:1.7px;color:#879177;font-size:9px}.city-panel .button{border:0;justify-content:space-between;width:100%;min-height:44px;margin-top:18px;display:flex}.city-counts{color:#77806c;gap:18px;margin:20px 0;font-size:10px;display:flex}.city-counts b{color:#304a3e;font-size:20px;font-weight:500;display:block}.text-button{color:#365b4c;text-underline-offset:4px;background:0 0;border:0;padding:12px 0;font-size:12px;text-decoration:underline;display:block}.metrics{border-top:1px solid #d8ddcd;padding-top:10px}.metrics>div{justify-content:space-between;padding:5px 0;font-size:11px;display:flex}.metrics b{font-variant-numeric:tabular-nums}.city-panel progress{accent-color:#396a50;width:100%;height:4px;margin-top:15px}.city-panel .error{color:#a03a24;font-size:12px}.instruction{border-left:2px solid #ae7647;padding-left:10px}.score-delta{letter-spacing:-2px;margin:20px 0;font-size:50px}.score-delta small{letter-spacing:0;color:#63745e;font-size:11px;display:block}.game-toolbar{bottom:max(28px, env(safe-area-inset-bottom));white-space:nowrap;background:#f9f8efee;border:1px solid #fff;border-radius:5px;align-items:center;gap:4px;padding:8px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #334b2420}.game-toolbar button,.canvas-controls button,.toggle button{color:#365044;background:0 0;border:0;border-radius:3px;min-height:42px;padding:10px 12px;font-size:12px}.toggle{gap:2px;display:flex}.toggle button[aria-pressed=true],.canvas-controls button[aria-pressed=true]{color:#234f3b;background:#dce5d5}.canvas-controls{background:#f9f8efee;border:1px solid #fff;border-radius:4px;flex-direction:column;display:flex;position:absolute;bottom:110px;right:28px}.canvas-controls button{border-bottom:1px solid #e2e5d9;font-size:16px}.canvas-controls button:last-child{font-size:10px}.empty-canvas{pointer-events:none;color:#65735b;position:absolute;top:43%;left:54%}.empty-canvas span{font-size:45px}.empty-canvas p{margin:5px 0;font-size:18px}.empty-canvas small{font-size:11px}.debug-legend{pointer-events:none;background:#fbfaf1ed;border-radius:4px;max-width:330px;padding:12px;font:10px/1.6 monospace;position:absolute;top:86px;right:26px}.debug-legend span{display:block}.share-link{font-size:11px;display:block}.share-link input{border:1px solid #b5c5ad;width:100%;margin-top:8px;padding:8px;font-size:11px}.webgl-fallback{z-index:5;background:#f8f5ea;border:1px solid #c2cbb8;padding:30px;position:absolute;inset:20%}.webgl-fallback button{margin:10px;padding:10px}.game input[type=file]{display:none}@media (width<=750px){.game-top{left:18px;right:18px;top:max(15px, env(safe-area-inset-top));gap:15px}.game-brand{font-size:23px}.mode-label{font-size:8px}.local-label{display:none}.city-panel{width:200px;max-height:calc(100% - 170px);padding:15px;top:65px;left:14px}.city-panel h1{margin:7px 0;font-size:22px}.city-panel p{margin:7px 0;font-size:11px}.city-panel .eyebrow{font-size:8px}.city-counts{gap:12px;margin:10px 0}.city-counts b{font-size:17px}.city-panel .button{margin-top:10px;font-size:12px}.game-toolbar{bottom:max(16px, env(safe-area-inset-bottom));gap:0;max-width:calc(100% - 20px);padding:4px;overflow:auto}.game-toolbar button,.toggle button{padding:9px;font-size:11px}.game-toolbar>button:last-of-type{display:none}.canvas-controls{bottom:90px;right:14px}.empty-canvas{max-width:145px;top:50%;left:55%}.empty-canvas p{font-size:15px}.debug-legend{max-width:none;font-size:8px;inset:auto 70px 78px 12px}.metrics>div{font-size:10px}.score-delta{margin:10px 0;font-size:36px}.webgl-fallback{padding:18px;inset:15%}}@media (height<=500px){.city-panel{width:220px;max-height:calc(100% - 130px);top:56px}.city-panel .city-counts{display:none}.game-top{top:12px}.game-toolbar{bottom:10px}.canvas-controls{bottom:76px}.city-panel h1{font-size:21px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}.pwa-status{z-index:20;background:#fcfaef;border:1px solid #b9c5ad;max-width:260px;padding:10px;font-size:11px;position:fixed;bottom:18px;right:20px;box-shadow:0 4px 20px #263c3020}.pwa-status button{color:#2c5943;background:0 0;border:0;min-height:38px}.recovery{max-width:600px;margin:10vh auto;padding:30px}.recovery .button{margin:20px 0}.submit-result{border-top:1px solid #d3dcc8;margin-top:15px;padding-top:12px;font-size:11px}.submit-result input{background:#fffef6;border:1px solid #b8c5ad;width:100%;margin-top:6px;padding:8px;display:block}.quality-picker{flex-direction:column;padding:0 5px;font-size:9px;display:flex}.quality-picker select,.route-picker select{color:#385244;font:inherit;background:#f8f9f1;border:1px solid #d0d9c5;border-radius:3px;min-height:28px}.route-picker{margin:10px 0;font-size:10px;display:block}.route-picker select{width:100%;margin-top:5px;display:block}.leaderboard{padding-left:16px;font-size:10px}.leaderboard li{padding:5px 0}.leaderboard a{text-decoration:underline}.leaderboard b{padding:0 6px}@media (width<=750px){.quality-picker{display:none}}
