:root{--panel:#fff8ec;--panel-2:#fdeed5;--track:#ead9bd;--ink:#3a2e2a;--ink-soft:#6b5a50;--line:#7a5a3c33;--teal:#0f7a6e;--teal-ink:#fff;--sel:#dff3ef;--pos:#1a6e64;--accent:#c62828;--accent-text:#c62828;--gold:#ffc83d;--cost:#8a5600;--focus:#0f7a6e;--shadow:0 4px 14px #3c28142e;--radius:14px;--font-head:"Baloo 2", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--bg:#a6def7}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--panel:#2b2530;--panel-2:#372f3d;--track:#4a4052;--ink:#f7ecdf;--ink-soft:#c4b6a8;--line:#ffe6c829;--sel:#1f4a45;--pos:#5fd3c2;--accent-text:#ff8a80;--cost:#e8a33a;--focus:#5fd3c2;--shadow:0 4px 14px #00000073;--bg:#1f2b52;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--panel:#2b2530;--panel-2:#372f3d;--track:#4a4052;--ink:#f7ecdf;--ink-soft:#c4b6a8;--line:#ffe6c829;--sel:#1f4a45;--pos:#5fd3c2;--accent-text:#ff8a80;--cost:#e8a33a;--focus:#5fd3c2;--shadow:0 4px 14px #00000073;--bg:#1f2b52;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#sTheme{min-width:110px;min-height:44px;font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:0 10px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}svg.icon{vertical-align:-.25em;flex:none;width:1.25em;height:1.25em}#app{position:fixed;top:0;bottom:0;left:0;right:0}#viewport{touch-action:none;position:absolute;top:0;bottom:0;left:0;right:0}#viewport canvas{touch-action:none;display:block}.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.tiny{color:var(--ink-soft);font-size:11.5px;font-weight:700}.warn-text{color:var(--accent-text)}.soft{opacity:.85;font-weight:600}#topbar{top:max(10px, env(safe-area-inset-top));pointer-events:none;align-items:flex-start;gap:10px;display:flex;position:absolute;left:12px;right:12px}#topbar>*{pointer-events:auto}#citycard{min-width:170px;padding:8px 12px}.city-row{align-items:center;gap:8px;display:flex}.city-name{font-family:var(--font-head);font-size:18px;font-weight:800;line-height:1}.badge{background:var(--accent);color:#fff;font-family:var(--font-head);border-radius:6px;padding:2px 8px 1px;font-size:12.5px;font-weight:700}.tier-progress{background:var(--track);border-radius:6px;height:6px;margin:7px 0 3px;overflow:hidden}#tierBar{background:var(--gold);border-radius:6px;width:0;height:100%;transition:width .4s}#resources{flex-wrap:wrap;flex:1;justify-content:center;gap:8px;display:flex}.pill{background:var(--panel);min-height:40px;box-shadow:var(--shadow);border:1px solid var(--line);font-family:var(--font-head);border-radius:999px;align-items:center;gap:6px;padding:5px 14px 5px 6px;font-size:18px;font-weight:700;line-height:1;display:flex}.pill .ico{color:#3a2e2a;background:#fdeed5;border-radius:50%;place-items:center;width:28px;height:28px;display:inline-grid}.pill .ico svg.icon{width:22px;height:22px}.pill small{color:var(--pos);font-size:12.5px;font-weight:700}.pill small.neg{color:var(--accent-text)}.pill.bump{animation:.35s bump}.pill.warn{animation:1s 3 warn;box-shadow:0 0 0 3px #c6282899}@keyframes bump{40%{transform:scale(1.1)}}@keyframes warn{50%{box-shadow:0 0 0 6px #c6282859}}#timecard{flex-direction:column;align-items:flex-end;gap:4px;padding:6px 8px 6px 12px;display:flex}.cal{font-family:var(--font-head);align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.chip{background:var(--accent);color:#fff;border-radius:6px;align-items:center;gap:4px;padding:2px 8px 2px 4px;font-size:12.5px;font-weight:800;display:flex}.chip[data-kind=harvest]{background:#8a5600}.chip[data-kind=rain]{background:#2b6f9e}.chip svg.icon{color:#fff}.speeds{gap:3px;display:flex}.speeds button{background:var(--panel-2);border-radius:8px;place-items:center;width:32px;height:30px;display:grid}.speeds button svg.icon{width:18px;height:18px}.speeds button.on{background:var(--teal);color:var(--teal-ink)}#quests{width:270px;padding:6px 8px 8px;position:absolute;top:104px;left:12px}.quest-head{width:100%;font-family:var(--font-head);justify-content:space-between;align-items:center;padding:2px 4px;font-size:15px;font-weight:800;display:flex}.quest-head .qh{align-items:center;gap:6px;display:flex}#quests.collapsed #questList{display:none}#quests.collapsed .caret{transform:rotate(-90deg)}#questList{flex-direction:column;gap:6px;margin:2px 0 0;padding:0;list-style:none;display:flex}.quest{background:var(--panel-2);border-radius:10px;padding:7px 9px 8px;font-size:13px;font-weight:700;line-height:1.25}.quest .q-top{align-items:center;gap:7px;display:flex}.quest .q-icon{flex:none;place-items:center;width:30px;height:30px;display:grid}.quest .q-icon svg.icon{width:22px;height:22px}.quest .q-hint{color:var(--ink-soft);margin-top:3px;font-size:11.5px;font-weight:600}.quest .q-bar{background:var(--track);border-radius:5px;height:6px;margin-top:6px;overflow:hidden}.quest .q-bar div{background:var(--teal);border-radius:5px;height:100%;transition:width .4s}.quest .q-meta{color:var(--ink-soft);justify-content:space-between;margin-top:3px;font-size:11.5px;display:flex}.quest.done{animation:.9s forwards questDone}@keyframes questDone{0%,30%{color:#3a2e2a;background:#fff3b0}to{opacity:0;transform:translate(-120%)}}#feed{pointer-events:none;flex-direction:column;gap:6px;width:min(370px,100vw - 24px);display:flex;position:absolute;bottom:96px;left:12px}.msg{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;align-items:flex-start;gap:8px;padding:7px 11px 7px 8px;font-size:13px;font-weight:700;transition:opacity .6s,transform .6s;animation:.35s ease-out msgIn;display:flex}.msg .msg-ico{width:20px;height:20px;margin-top:-1px}.msg .who{color:var(--accent-text);white-space:nowrap;font-weight:800}.msg.warn{border-color:#c6282899}.msg.fest{color:#3a2e2a;background:#fff3b0}.msg.fest .who{color:#c62828}.msg.out{opacity:0;transform:translate(-20px)}@keyframes msgIn{0%{opacity:0;transform:translateY(10px)}}#toolbar{left:50%;bottom:max(10px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:8px;max-width:calc(100vw - 16px);display:flex;position:absolute;transform:translate(-50%)}#cats{background:var(--panel);box-shadow:var(--shadow);border:1px solid var(--line);scrollbar-width:none;border-radius:18px;gap:4px;max-width:100%;padding:6px;display:flex;overflow-x:auto}#cats::-webkit-scrollbar{display:none}.cat{white-space:nowrap;border-radius:12px;flex-direction:column;flex:none;align-items:center;gap:1px;min-width:66px;min-height:56px;padding:4px 6px 3px;font-size:11.5px;font-weight:800;display:flex;position:relative}.cat .ci{object-fit:contain;place-items:center;width:34px;height:30px;display:grid}.cat .ci svg.icon{width:24px;height:24px}.cat:hover{background:var(--panel-2)}.cat.on{background:var(--teal);color:var(--teal-ink)}.cat.tool.on{background:var(--accent);color:#fff}.cat.new:after{content:"";background:var(--accent);border:2px solid var(--panel);border-radius:50%;width:9px;height:9px;position:absolute;top:5px;right:9px}.divider{background:var(--line);flex:none;width:1px;margin:6px 2px}#tray{background:var(--panel);box-shadow:var(--shadow);border:1px solid var(--line);scrollbar-width:thin;border-radius:18px;gap:8px;max-width:100%;padding:8px;display:flex;overflow-x:auto}#tray:empty{display:none}.bcard{background:var(--panel-2);text-align:center;border:2px solid #0000;border-radius:12px;flex:none;width:106px;padding:4px 6px 6px;position:relative}.bcard:hover{border-color:var(--line)}.bcard.on{border-color:var(--teal);background:var(--sel)}.bcard img,.bcard .noimg{pointer-events:none;place-items:center;width:72px;height:72px;margin:0 auto;display:grid}.bcard .bn{font-family:var(--font-head);font-size:13.5px;font-weight:700;line-height:1.1}.bcard .be{color:var(--ink-soft);font-size:11px;font-weight:700}.bcard .bc{font-family:var(--font-head);color:var(--cost);margin-top:3px;font-size:13.5px;font-weight:800}.bcard.cant .bc{color:var(--accent-text)}.bcard.locked img{filter:grayscale();opacity:.5}.bcard.locked .bc,.bcard.built .bc{color:var(--ink-soft);font-size:11.5px}.bcard .lock{position:absolute;top:5px;right:6px}.bcard.built img{opacity:.5}#selinfo{width:min(520px,100%);padding:8px 12px;font-size:13px;line-height:1.4}#selinfo .si-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}#selinfo .si-head b{font-family:var(--font-head);font-size:16px}#selinfo .si-head span{color:var(--ink-soft);font-weight:700}#selinfo .si-head .si-cost{color:var(--cost);font-family:var(--font-head);margin-left:auto;font-weight:800}#selinfo p{margin:3px 0 4px;font-weight:600}.bits{color:var(--pos);flex-wrap:wrap;gap:4px 12px;font-weight:800;display:flex}.bits span{align-items:center;gap:3px;display:inline-flex}#tooltip{pointer-events:none;background:var(--panel);color:var(--ink);box-shadow:var(--shadow);border:1px solid var(--line);z-index:5;border-radius:10px;max-width:270px;padding:7px 10px;font-size:13px;font-weight:700;line-height:1.4;position:absolute;transform:translate(16px,16px)}#tooltip .tt-title{font-family:var(--font-head);font-size:14.5px;font-weight:800}#tooltip .good{color:var(--pos)}#tooltip .bad{color:var(--accent-text)}#tooltip .meh{color:var(--ink-soft)}#tooltip svg.icon{width:1.1em;height:1.1em}#inspect{width:300px;padding:12px 14px;animation:.25s msgIn;position:absolute;top:104px;right:12px}#inspect h3{font-family:var(--font-head);margin:0;padding-right:36px;font-size:20px;line-height:1.1}#inspect .sub{color:var(--ink-soft);font-size:12.5px;font-weight:700}#inspect p{margin:8px 0;font-size:13px;line-height:1.45}#inspect .stats{grid-template-columns:1fr 1fr;gap:6px;display:grid}#inspect .stat{background:var(--panel-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:2px 4px;padding:5px 8px;font-size:12px;font-weight:700;display:flex}#inspect .stat b{font-family:var(--font-head);flex-basis:100%;font-size:16px}#inspect .hint{align-items:flex-start;gap:5px;margin-top:8px;font-size:12.5px;font-weight:700;display:flex}#inspect .row{gap:8px;margin-top:10px;display:flex}.btn{background:var(--panel-2);border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:8px 12px;font-size:14px;font-weight:800;display:inline-flex}.btn.primary{background:var(--teal);color:var(--teal-ink)}.btn.danger{color:#b71c1c;background:#fde3e1}.x{border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:6px;right:6px}.x:hover{background:var(--panel-2)}#breakdown{z-index:4;min-width:250px;padding:10px 14px;font-size:13px;font-weight:700;position:absolute;top:64px;left:50%;transform:translate(-50%)}#breakdown .r{justify-content:space-between;gap:18px;padding:2px 0;display:flex}#breakdown .r span{align-items:center;gap:6px;display:inline-flex}#breakdown .r.total{border-top:1px solid var(--line);font-family:var(--font-head);margin-top:4px;padding-top:5px;font-size:15px}#floaters{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.floater{font-family:var(--font-head);color:#fff;white-space:nowrap;will-change:transform, opacity;background:#3a2e2ae0;border-radius:8px;padding:1px 8px;font-size:15px;font-weight:800;position:absolute;top:0;left:0}.floater.money{color:#ffe066}.floater.cost{color:#ffd0cc;font-size:13.5px}.floater.up{color:#b9ffb0}#banner{text-align:center;pointer-events:none;z-index:6;border:3px solid var(--gold);background:#b71c1cf0;border-radius:16px;max-width:calc(100vw - 32px);padding:10px 26px 12px;animation:4.2s forwards bannerIn;position:absolute;top:20%;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}#banner .b1{font-family:var(--font-head);color:#fff;font-size:clamp(26px,5vw,48px);font-weight:800;line-height:1.05}#banner .b2{font-family:var(--font-head);color:#fff3b0;margin-top:4px;font-size:clamp(15px,2.2vw,20px);font-weight:700}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%,16px)scale(.85)}12%{opacity:1;transform:translate(-50%)scale(1.03)}20%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-16px)}}#placebar{align-self:flex-end;gap:10px;display:flex}#placebar button{background:var(--panel);width:52px;height:52px;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:50%;place-items:center;display:grid}#placebar button svg.icon{width:24px;height:24px}#placebar #pbCancel{background:var(--accent);color:#fff}#modal{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#141e3266;place-items:center;padding:16px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.modal-card{width:min(520px,100%);max-height:calc(100dvh - 32px);padding:22px 24px;animation:.3s msgIn;position:relative;overflow:auto}.modal-card h1{font-family:var(--font-head);color:var(--accent-text);margin:0;font-size:46px;font-weight:800;line-height:1}.modal-card h2{font-family:var(--font-head);margin:0 0 8px}.modal-card .tag{color:var(--ink-soft);margin:6px 0 12px;font-weight:800}.modal-card p,.modal-card li{font-size:14.5px;line-height:1.5}.modal-card ul{padding-left:18px}.modal-card li{margin:5px 0}.modal-card li::marker{color:var(--accent)}.modal-card .keys{color:var(--ink-soft);font-size:13px}.modal-card .row{justify-content:center;gap:10px;margin-top:14px;display:flex}.modal-card .btn{font-size:15px}.modal-card.welcome-menu{gap:20px;width:min(820px,100%);padding:26px;display:grid}.menu-header{justify-content:space-between;align-items:start;gap:16px;display:flex}.menu-header>div{flex:1;min-width:0}.welcome-menu .menu-tag{text-wrap:pretty;max-width:48ch;color:var(--ink-soft);margin:8px 0 0}.welcome-menu .menu-header .btn{flex:none;width:auto;min-height:44px;margin-top:0}.menu-main{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.menu-preview{min-width:0;margin:0}.menu-preview canvas{object-fit:contain;background:#6aa6bc;border-radius:10px;width:100%;height:216px;display:block}.menu-preview figcaption{color:var(--ink-soft);margin-top:8px;font-size:12px}.menu-start{gap:10px;min-width:0;display:grid}.menu-label{color:var(--ink-soft);font-size:13px;font-weight:800}.welcome-menu select{width:100%;max-width:100%;min-height:44px;font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--ink-soft);border-radius:10px;padding:8px 10px;font-size:16px}.welcome-menu .menu-region-name{margin:0;font-size:22px;line-height:1.2}.welcome-menu .menu-description{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.welcome-menu .menu-warning{color:var(--accent-text);margin:0}.menu-play{gap:10px;margin-top:4px;display:grid}.menu-play .btn{white-space:normal;min-height:44px}.menu-options{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:16px;display:grid}.menu-audio{border:1px solid var(--ink-soft);background:var(--panel-2);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.menu-audio[aria-checked=true]{background:var(--sel);border-color:var(--focus)}.menu-audio b{color:var(--ink-soft);font-size:13px}.menu-audio[aria-checked=true] b{color:var(--pos)}.menu-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.welcome-menu .menu-footer .btn{flex:none;width:auto;min-height:44px;margin-top:0}.menu-language-short{display:none}@media (max-width:620px){.modal-card.welcome-menu{gap:12px;padding:16px}.welcome-menu h1{font-size:34px}.menu-header{align-items:center;gap:12px}.menu-header .btn{padding:8px 10px;font-size:13px}.welcome-menu .menu-header .btn{width:44px;padding:10px}.menu-settings-label{display:none}.welcome-menu .menu-tag{margin-top:6px;font-size:13px}.menu-main{grid-template-columns:minmax(0,1fr);gap:12px}.menu-preview canvas{height:clamp(90px,17dvh,140px)}.menu-preview figcaption{margin-top:4px;font-size:11px}.menu-start{gap:8px}.menu-options{gap:10px;padding-top:12px}.menu-audio{padding:8px 10px}.menu-footer{flex-wrap:nowrap;gap:10px}.welcome-menu .menu-footer .btn{padding:8px 10px;font-size:13px}.menu-language-full{display:none}.menu-language-short{display:inline}.menu-footer .seg{gap:4px}}@media (max-width:620px) and (max-height:650px){.welcome-menu .menu-tag{display:none}.menu-preview canvas{height:56px}.welcome-menu .menu-description,.welcome-menu .menu-warning{font-size:13px;line-height:1.4}.modal-card.welcome-menu{gap:6px;padding:14px}.welcome-menu .menu-main{gap:8px}.welcome-menu .menu-region-name{font-size:20px}.welcome-menu .menu-start>span.menu-label{display:none}.welcome-menu .menu-start{gap:6px}.welcome-menu .menu-options{padding-top:6px}}.lantern-row{gap:18px;margin-bottom:6px;display:flex}.lantern-row svg.icon{color:#3a2e2a;transform-origin:50% 0;width:34px;height:34px;animation:3.2s ease-in-out infinite alternate sway}.lantern-row svg.icon:nth-child(2){animation-delay:-1.1s}.lantern-row svg.icon:nth-child(3){animation-delay:-2.2s}@keyframes sway{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}.setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:48px;font-weight:700;display:flex}.toggle{background:0 0;border-radius:999px;width:52px;height:44px;transition:background .2s;position:relative}.toggle:before{content:"";background:var(--track);border-radius:999px;position:absolute;top:7px;bottom:7px;left:0;right:0}.toggle:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .2s;position:absolute;top:10px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle.on:before{background:var(--teal)}.toggle.on:after{left:25px}.seg{background:var(--panel-2);border-radius:10px;padding:3px;display:flex}.seg button{border-radius:8px;min-height:44px;padding:5px 14px;font-weight:800}.seg button.on{background:var(--teal);color:var(--teal-ink)}#loading{z-index:20;color:#3a2e2a;background:#fdeed5;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:opacity .5s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#loading.gone{opacity:0;pointer-events:none}.loading-logo{width:72px;height:72px}.loading-title{font-family:var(--font-head);color:#c62828;margin:0;font-size:34px;font-weight:800}.loading-intro{text-align:center;width:min(540px,100vw - 48px);margin:0;font-size:15px;line-height:1.6}.help-about{color:var(--ink);text-underline-offset:3px;align-items:center;min-height:44px;display:inline-flex}.loading-about{color:#3a2e2a;text-underline-offset:3px;align-items:center;min-height:44px;display:inline-flex}.loading-text{text-align:center;font-size:14px;font-weight:700}.loading-text span{color:#6b5a50;display:block}#fatal{z-index:30;background:#fdeed5;place-items:center;padding:16px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.fatal-card{max-width:440px;padding:20px 22px}.fatal-card h2{font-family:var(--font-head);color:var(--accent-text);margin:0 0 6px}.fatal-card p{white-space:pre-line;line-height:1.5}.noscript{color:#3a2e2a;background:#fff8ec;border-radius:10px;padding:12px;position:fixed;top:auto;bottom:16px;left:16px;right:16px}.speeds button.mayor{position:relative}.speeds button.on.mayor,#btnLayers.on{background:var(--teal);color:var(--teal-ink)}.speeds button.alert:after{content:"";background:var(--accent);border:2px solid var(--panel);border-radius:50%;width:9px;height:9px;position:absolute;top:3px;right:3px}.chip.desk{cursor:pointer;gap:6px;min-height:30px;padding:3px 10px 3px 6px;font-size:13px}#pGoods.warn{animation:1.4s ease-in-out 2 warn}.modal-card.wide{width:min(760px,100%)}.modal-card.wide h2,.modal-card.decision h2{align-items:center;gap:8px;padding-right:40px;display:flex}.modal-card h3{font-family:var(--font-head);align-items:center;gap:6px;margin:14px 0 6px;font-size:16px;display:flex}.tabs{border-bottom:2px solid var(--line);gap:4px;margin:4px 0 10px;display:flex;overflow-x:auto}.tabs button{min-height:44px;color:var(--ink-soft);white-space:nowrap;border-radius:10px 10px 0 0;align-items:center;gap:6px;padding:6px 12px;font-weight:800;display:inline-flex}.tabs button[aria-selected=true]{background:var(--teal);color:var(--teal-ink)}#oPanel{min-height:300px}#oPanel .r,#breakdown .r{justify-content:space-between;gap:14px;padding:3px 0;font-size:14px;font-weight:700;display:flex}#oPanel .r span,#breakdown .r span{align-items:center;gap:6px;display:inline-flex}#oPanel .r.total{border-top:1px solid var(--line);font-family:var(--font-head);margin-top:4px;padding-top:5px}#oPanel .r.big{font-family:var(--font-head);background:var(--panel-2);border-radius:10px;margin-top:10px;padding:8px 12px;font-size:18px}#oPanel .r.big.pos b{color:var(--pos)}#oPanel .r.big.neg b{color:var(--accent-text)}.cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.cols h3{margin-top:0}.note{color:var(--ink-soft);align-items:flex-start;gap:6px;margin:6px 0;font-weight:700;display:flex;font-size:13px!important}.note.warn-text{color:var(--accent-text)}.seg.wide{width:100%;display:flex}.seg.wide button{flex:1;min-height:44px}.loan{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:14px;font-weight:700;display:flex}.loan .btn{flex:none;min-width:80px}.policies{margin:0;list-style:none;padding:0!important}.policy{background:var(--panel-2);border-radius:12px;padding:10px 12px;margin:0 0 8px!important}.policy.on{background:var(--sel)}.policy .p-head{align-items:center;gap:8px;display:flex}.policy .p-head b{flex:1;font-size:15px}.policy p{margin:4px 0 6px;font-size:13.5px!important}.policy.locked{opacity:.75}.lockline{color:var(--ink-soft);align-items:center;gap:4px;font-size:12.5px;font-weight:800;display:inline-flex}.fxs{flex-wrap:wrap;gap:5px;display:flex}.fx{background:var(--panel);border:1px solid var(--line);border-radius:6px;align-items:center;gap:4px;padding:2px 8px 2px 4px;font-size:12.5px;font-weight:800;display:inline-flex}.fx.good{color:var(--pos)}.fx.bad{color:var(--accent-text)}.fx.meh{color:var(--ink-soft)}.inds{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.ind{align-items:flex-start;gap:8px;display:flex}.ind>svg.icon{width:26px;height:26px;margin-top:2px}.ind>div{flex:1;min-width:0}.ind-top{justify-content:space-between;font-size:14px;display:flex}.ind-top span{font-family:var(--font-head);font-weight:800}.ind-d{color:var(--ink-soft);font-size:12.5px;font-weight:700}.ind-tip{color:var(--accent-text);margin-top:2px;font-size:12.5px;font-weight:700}.meter{background:var(--track);border-radius:4px;height:8px;margin:3px 0;overflow:hidden}.meter div{border-radius:4px;height:100%}.meter .ok{background:var(--pos)}.meter .mid{background:var(--cost)}.meter .low{background:var(--accent-text)}.factors{columns:2;column-gap:18px}.factors .r{break-inside:avoid}b.pos{color:var(--pos)}.term-head{font-family:var(--font-head);justify-content:space-between;align-items:baseline;font-size:18px;display:flex}.term-head span{color:var(--ink-soft);font-size:14px}.targets,.past{margin:0;list-style:none;padding:0!important}.target{background:var(--panel-2);border-radius:10px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex;margin:0 0 6px!important}.target>div{flex:1}.target.ok{background:var(--sel)}.past li{align-items:center;gap:6px;display:flex}.grade{font-family:var(--font-head);margin:4px 0 10px;font-size:22px;font-weight:800}.grade.excellent,.grade.good{color:var(--pos)}.grade.fail{color:var(--accent-text)}.d-label{color:var(--ink-soft);align-items:center;gap:6px;margin-bottom:4px;font-size:12.5px;font-weight:800;display:inline-flex}.choices{gap:8px;margin-top:12px;display:grid}.choice{text-align:left;background:var(--panel-2);border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;min-height:56px;padding:10px 12px;display:flex}.choice:hover{border-color:var(--teal)}.choice:focus-visible{border-color:var(--teal)}.choice b{font-size:15px}#layerMenu{z-index:6;flex-direction:column;width:230px;padding:6px;display:flex;position:absolute;top:100px;right:12px}#layerMenu button{text-align:left;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:4px 10px;font-weight:700;display:flex}#layerMenu button:hover{background:var(--panel-2)}#layerMenu button.on{background:var(--teal);color:var(--teal-ink)}#legend{left:12px;bottom:calc(var(--toolbar-h,80px) + 22px);z-index:3;flex-direction:column;gap:2px;max-width:340px;padding:8px 44px 8px 12px;font-size:13px;font-weight:700;display:flex;position:absolute}.x.small{width:36px;height:36px;top:4px;right:4px}.btn.small{width:100%;min-height:44px;margin-top:8px;font-size:13.5px}#breakdown .r.req span{color:var(--accent-text)}#breakdown .r.req.ok span{color:var(--pos)}#breakdown .r.tip{color:var(--ink-soft);max-width:300px;font-size:12px}#inspect .stat.bad{color:var(--accent-text)}.needs{margin:4px 0 0;padding:0;list-style:none}.needs li{align-items:center;gap:6px;padding:2px 0;font-size:12.5px;font-weight:700;display:flex}.agent-purpose{font-family:var(--font-head);align-items:center;gap:8px;margin:8px 0;font-size:17px;display:flex}.agent-purpose svg.icon{width:26px;height:26px}@media (max-width:900px){#topbar{flex-wrap:wrap}#resources{flex-basis:100%;order:3;justify-content:flex-start;gap:6px}.pill{padding:4px 10px 4px 5px;font-size:15.5px}.pill .ico{width:24px;height:24px}.pill .ico svg.icon{width:19px;height:19px}#citycard{flex:1}#quests{top:auto;bottom:calc(var(--toolbar-h,80px) + 22px);width:250px;max-height:calc(100dvh - var(--toolbar-h,80px) - 180px);overflow:auto}#feed{bottom:calc(var(--toolbar-h,80px) + 22px)}#quests:not(.collapsed)~#feed{display:none}#quests.collapsed~#feed{bottom:calc(var(--toolbar-h,80px) + 80px)}#inspect{top:auto;bottom:calc(var(--toolbar-h,80px) + 22px);width:auto;max-height:calc(100dvh - var(--toolbar-h,80px) - 180px);left:8px;right:8px;overflow:auto}}@media (max-width:560px){#topbar{gap:6px}#citycard{flex:1 1 0;min-width:0;padding:6px 10px}.city-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}#tierLabel{display:none}#timecard{display:contents}.cal{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);flex:none;order:1;align-self:stretch;padding:8px 10px;font-size:13.5px}#timecard>*{pointer-events:auto}#festivalChip{flex-basis:100%;order:3;justify-content:center}#resources{order:4}.speeds{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);flex-basis:100%;order:2;justify-content:space-between;padding:4px}.speeds button{flex:1}.cat{min-width:56px;font-size:10.5px}.bcard{width:94px}.bcard img{width:60px;height:60px}#quests{width:calc(100vw - 24px)}.pill small,#selinfo p{display:none}.cols,.inds{grid-template-columns:1fr}.factors{columns:1}.tabs button span{display:none}#layerMenu{top:auto;bottom:calc(var(--toolbar-h,80px) + 22px);right:8px}#legend{max-width:none;left:8px;right:8px}.chip.desk{flex-basis:100%;order:3;justify-content:center}}@media (pointer:coarse){.speeds button{width:40px;height:44px}.pill,.quest-head{min-height:44px}.x{width:44px;height:44px}.cat{min-height:60px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body.walking #quests,body.walking #topbar,body.walking #toolbar,body.walking #inspect,body.walking #breakdown,body.walking #layerMenu,body.walking #legend,body.walking #tooltip,body.walking #decisionChip{display:none!important}body.walking #btnWalk{background:var(--teal);color:var(--teal-ink)}#walkHud{pointer-events:none;z-index:8;position:fixed;top:0;bottom:0;left:0;right:0}#walkHud>*{pointer-events:auto}#walkAim{pointer-events:none;background:#fff;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #3a2e2a8c}#walkPrompt{border-radius:var(--radius);background:var(--panel);max-width:calc(100vw - 32px);color:var(--ink);box-shadow:var(--shadow);pointer-events:none;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:800;display:flex;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}#walkPrompt kbd{background:var(--teal);min-width:22px;color:var(--teal-ink);text-align:center;border-radius:6px;margin-right:4px;padding:1px 6px;font-family:inherit;display:inline-block}#walkTalk{width:min(520px,100vw - 32px);padding:14px 16px;position:absolute;bottom:88px;left:50%;transform:translate(-50%)}#walkTalk .who{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}#walkTalk .who b{font-family:var(--font-head);font-size:18px}#walkTalk .who span{color:var(--ink-soft);font-size:13px;font-weight:700}#walkTalk .said{margin:8px 0 12px;font-size:16px;line-height:1.5}#walkTalk .row{gap:8px;display:flex}#walkTalk .tiny{align-items:center;gap:4px;margin-top:10px;display:flex}.walk-header{top:calc(16px + env(safe-area-inset-top));justify-content:space-between;align-items:start;gap:12px;display:flex;position:absolute;left:16px;right:16px}.walk-place{background:var(--panel);border-radius:var(--radius);min-width:0;padding:10px 16px;display:grid}.walk-place b{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-head);font-size:20px;overflow:hidden}.walk-place span{color:var(--ink-soft);font-size:13px}.walk-header .row{flex:none;gap:6px;display:flex}.walk-header button{background:var(--panel);white-space:nowrap;flex:none;width:auto;min-height:44px}#walkSettings{width:44px;padding:10px}.walk-actions{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);gap:8px;padding:8px;display:flex;position:absolute}.walk-actions button{white-space:nowrap;flex:none;width:auto;min-height:44px}.walk-actions kbd{font:inherit;opacity:.8;font-size:12px}#walkAct:disabled{background:var(--panel-2);color:var(--ink-soft);opacity:1}#walkHelp{left:16px;bottom:calc(16px + env(safe-area-inset-bottom));background:var(--panel);width:min(360px,100vw - 520px);color:var(--ink-soft);box-shadow:var(--shadow);pointer-events:auto;border-radius:10px;margin:0;padding:8px 12px;position:absolute}#walkHelp summary{cursor:pointer;min-height:44px;padding:8px 0;font-weight:800}#walkHelp[open]{max-height:calc(100dvh - 140px);overflow:auto}#walkHelp p{margin:8px 0;font-size:13px;line-height:1.5}#walkFeedback{width:min(440px,100vw - 32px);color:var(--accent-text);background:var(--panel);border-radius:10px;padding:12px 16px;position:absolute;top:104px;left:50%;transform:translate(-50%)}#walkPad{left:16px;bottom:calc(16px + env(safe-area-inset-bottom));touch-action:none;grid-template-rows:56px 56px;grid-template-columns:repeat(3,56px);gap:6px;display:grid;position:absolute}#walkPad button{background:var(--panel);color:var(--ink);box-shadow:var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:14px;place-items:center;display:grid}#walkPad button svg{width:26px;height:26px}#walkPad button:nth-child(4){grid-column:2}#walkHud .touch{display:none}@media (pointer:coarse),(max-width:640px){#walkHud .desk{display:none}#walkHud .touch{display:grid}.walk-header{left:12px;right:12px;top:calc(12px + env(safe-area-inset-top));gap:8px}.walk-place{flex:1;padding:8px 12px}.walk-place b{font-size:18px}.walk-header .row{flex-direction:column-reverse;align-items:end}.walk-header .row button{padding:8px 12px}.walk-actions{flex-direction:column;gap:6px;width:144px;padding:6px;right:12px}.walk-actions button{white-space:normal;justify-content:center;width:100%;padding:8px;font-size:13px}#walkHelp{left:12px;bottom:calc(194px + env(safe-area-inset-bottom));width:min(340px,100vw - 24px);padding:4px 10px;font-size:13px}#walkHelp[open]{bottom:calc(194px + env(safe-area-inset-bottom));max-height:max(52px,100dvh - 310px)}#walkPad{grid-template-rows:48px 48px;grid-template-columns:repeat(3,48px);gap:4px;left:12px}#walkPad button{border-radius:10px}#walkPrompt{bottom:calc(196px + env(safe-area-inset-bottom))}#walkTalk{bottom:calc(190px + env(safe-area-inset-bottom))}}#pins{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.pin{pointer-events:auto;cursor:pointer;width:0;height:0;position:absolute;top:0;left:0}.pin>span{color:#3a2e2a;background:#ffb020;border:2px solid #fff;border-radius:50%;place-items:center;width:30px;height:30px;animation:2.4s ease-in-out infinite pinBob;display:grid;position:absolute;top:-38px;left:-15px;box-shadow:0 2px 6px #28190a59}.pin>span:after{content:"";border:5px solid #0000;border-top-color:#fff;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.pin>span svg{width:17px;height:17px}.pin.bad>span{color:#fff;background:#c62828}.pin.flood>span{color:#fff;background:#1e6fbf}.pin:hover>span{transform:scale(1.15)}@keyframes pinBob{50%{translate:0 -3px}}@media (prefers-reduced-motion:reduce){.pin>span{animation:none}}body.walking #pins{display:none}.activity-tabs{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.activity-tabs button{border:1px solid var(--line,#d9c9ab);color:#4b3829;font:inherit;cursor:pointer;background:#fff8e9;border-radius:9px;padding:8px 12px}.activity-tabs button[aria-selected=true]{color:#fff;background:#315c4a}.activities input,.activities select,.modal-card>select{font:inherit;color:#3f362b;background:#fffdf7;border:1px solid #b9aa8d;border-radius:8px;max-width:100%;padding:8px}.activities input:focus-visible{outline-offset:2px;outline:3px solid #167868}.activities select:focus-visible{outline-offset:2px;outline:3px solid #167868}.activity-tabs button:focus-visible{outline-offset:2px;outline:3px solid #167868}.activities select{width:100%;margin:6px 0 12px;display:block}.activity-section{border-top:1px solid #d9c9ab;padding:10px 0}.activity-section h3,.activity-item h3{margin:6px 0}.activity-item{border-bottom:1px solid #e6dbc6;padding:12px 0}.activity-line{flex-wrap:wrap;justify-content:space-between;gap:8px;padding:6px 0;display:flex}.activity-grid{grid-template-columns:1fr 2fr;align-items:center;gap:8px;display:grid}.activity-coordinates{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.activity-coordinates label{align-items:center;gap:8px;display:flex}.activity-coordinates input{width:100%;min-width:0}.activity-photo{margin:12px 0}.activity-photo img{border-radius:12px;width:100%;display:block}.activity-photo figcaption{padding:5px 0;font-size:.85rem}#aFeedback{color:#315c4a;min-height:1.5em}#aNameForm input{flex:1;min-width:0}@media (max-width:560px){.activity-tabs button{flex:1 0 30%;padding:9px 4px;font-size:.85rem}.activities .btn{white-space:normal}}.menu-brand{width:min(256px,100%);display:block}.menu-brand img{width:100%;height:auto;display:block}:-webkit-any(.menu-brand,.city-row,.walk-brand) .brand-dark{display:none}:is(.menu-brand,.city-row,.walk-brand) .brand-dark{display:none}:root[data-theme=dark] :-webkit-any(.menu-brand,.city-row,.walk-brand) .brand-light{display:none}:root[data-theme=dark] :is(.menu-brand,.city-row,.walk-brand) .brand-light{display:none}:root[data-theme=dark] :-webkit-any(.menu-brand,.city-row,.walk-brand) .brand-dark{display:block}:root[data-theme=dark] :is(.menu-brand,.city-row,.walk-brand) .brand-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :-webkit-any(.menu-brand,.city-row,.walk-brand) .brand-light{display:none}:root:not([data-theme=light]) :is(.menu-brand,.city-row,.walk-brand) .brand-light{display:none}:root:not([data-theme=light]) :-webkit-any(.menu-brand,.city-row,.walk-brand) .brand-dark{display:block}:root:not([data-theme=light]) :is(.menu-brand,.city-row,.walk-brand) .brand-dark{display:block}}@media (max-width:560px){.menu-brand{width:min(200px,100%)}}.city-brand{flex:none;width:24px;height:24px}.city-row{min-width:0}.city-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.menu-map-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:10px;display:grid}.menu-map-controls label{gap:6px;min-width:0;display:grid}.menu-map-controls .btn{min-height:44px;margin:0;padding:8px}@media (max-width:620px){.menu-start,.menu-map-controls{gap:8px}.menu-map-controls .menu-label{font-size:12px}.menu-map-controls select{min-height:44px;padding:6px 8px;font-size:14px}.menu-map-controls .btn{font-size:13px}}.walk-brand{align-items:center;gap:8px;min-width:0;display:flex}.walk-brand b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}
