:root{--ink:#3b3a4a;--ink-soft:#6c6a80;--card:#fffdf8e0;--card-solid:#fffdf8;--line:#3b3a4a1f;--accent:#ff8fa3;--accent-ink:#8c2f45;--r:#7fcf74;--c:#6fb1e8;--i:#f1c453;--shadow:0 6px 22px #3c325a29;--radius:16px;color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:#cdeaf7;height:100%;margin:0;overflow:hidden}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.card{background:var(--card);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #ffffffb3}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0}button:focus-visible,[tabindex]:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}.icon-btn{width:38px;height:38px;color:var(--ink);border-radius:12px;place-items:center;transition:transform .15s,background .15s;display:grid}.icon-btn svg{width:20px;height:20px}.icon-btn:hover{background:#3b3a4a12}.icon-btn:active{transform:scale(.92)}.icon-btn.active{color:var(--accent-ink);background:#ffe1e7}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.big{background:var(--accent);color:#fff;border-radius:15px;width:46px;height:46px;box-shadow:0 3px 10px #ff8fa373}.icon-btn.big svg{width:24px;height:24px}.icon-btn.big:hover{background:#ff7d94}.icon-btn.big.active{color:#fff;background:var(--accent)}.chip{color:var(--ink-soft);font-variant-numeric:tabular-nums;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700}.chip:hover{background:#3b3a4a12}.chip.active{background:var(--ink);color:#fff}.timeline{left:50%;bottom:max(16px, env(safe-area-inset-bottom));grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:min(920px,100% - 32px);padding:10px 16px 10px 10px;display:grid;position:absolute;transform:translate(-50%)}.controls{align-items:center;gap:4px;display:flex}.speeds{gap:2px;margin-left:6px;display:flex}.track-wrap{padding:14px 4px 18px}.track{cursor:pointer;touch-action:none;background:repeating-linear-gradient(-45deg,#3b3a4a0f 0 6px,#3b3a4a1c 6px 12px);border-radius:999px;height:10px;position:relative}.track-recorded{background:#d9eef9;border-radius:999px;position:absolute;inset:0 auto 0 0}.track-fill{background:linear-gradient(90deg,#9ad7a0,#6fc0e8);border-radius:999px;position:absolute;inset:0 auto 0 0}.track-present{background:var(--ink);opacity:.55;border-radius:2px;width:3px;height:22px;margin-left:-1.5px;position:absolute;top:-6px}.track-knob{border:3px solid var(--ink);background:#fff;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:50%;box-shadow:0 2px 6px #0003}.track-years{pointer-events:none;height:12px;position:absolute;inset:14px 0 auto}.track-years span{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:10px;position:absolute;transform:translate(-50%)}.track-pins{pointer-events:none;position:absolute;inset:0}.pin{pointer-events:auto;padding:0;line-height:1;transition:transform .15s;position:absolute;bottom:12px;transform:translate(-50%)}.pin:hover{z-index:2;transform:translate(-50%)translateY(-3px)scale(1.25)}.pin-icon{filter:drop-shadow(0 1px 1px #0003);font-size:15px}.when{text-align:right;min-width:116px}.date{font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}.status{color:var(--ink-soft);font-size:12px}.status[data-state=growing]:before{content:"●";color:#6cc070;margin-right:4px}.status[data-state=looking-back]:before{content:"↺";margin-right:4px}@media (width<=640px){.timeline{grid-template-columns:1fr auto;grid-template-areas:"controls when""track track";gap:4px 10px;padding:8px 12px 6px}.controls{grid-area:controls}.when{grid-area:when;min-width:0}.track-wrap{grid-area:track;padding-top:18px}.icon-btn{width:34px;height:34px}.icon-btn.big{width:40px;height:40px}.chip{padding:5px 7px;font-size:12px}}.labels{transition:opacity .3s;position:absolute;inset:0;overflow:hidden;pointer-events:none!important}.labels.hidden{opacity:0}.label{font-size:calc(13px * var(--size,1));white-space:nowrap;will-change:transform;background:#fffdf8eb;border-radius:12px;flex-direction:column;align-items:center;padding:4px 10px 5px;display:flex;position:absolute;top:0;left:0;box-shadow:0 3px 10px #3c325a2e}.label:after{content:"";border:5px solid #0000;border-top-color:#fffdf8eb;border-bottom:0;margin-left:-5px;position:absolute;bottom:-5px;left:50%}.label-name{font-weight:800}.label-pop{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.78em}.label-pop:empty{display:none}.ui-layer{position:absolute;inset:0;pointer-events:none!important}.ui-layer>*{pointer-events:auto}.city-card{top:max(16px, env(safe-area-inset-top));align-items:stretch;gap:14px;max-width:calc(100% - 32px);padding:12px 14px 12px 16px;display:flex;position:absolute;left:16px}.city-name{letter-spacing:-.01em;font-size:21px;font-weight:900;line-height:1.1}.city-charter{color:var(--ink-soft);margin-top:2px;font-size:12px}.city-pop{font-variant-numeric:tabular-nums;margin-top:8px;font-size:17px;font-weight:800}.pop-icon{font-size:14px}.rci{border-left:1px solid var(--line);align-items:stretch;gap:5px;padding-left:12px;display:flex}.rci-bar{flex-direction:column;align-items:center;gap:3px;display:flex}.rci-track{background:#3b3a4a12;border-radius:6px;flex:1;width:12px;min-height:52px;position:relative;overflow:hidden}.rci-zero{background:#3b3a4a59;height:1.5px;margin-top:-.75px;position:absolute;top:50%;left:0;right:0}.rci-fill{border-radius:4px;transition:height .4s,bottom .4s;position:absolute;left:0;right:0}.rci-r{background:var(--r)}.rci-c{background:var(--c)}.rci-i{background:var(--i)}.rci-fill.negative{opacity:.55}.rci-label{color:var(--ink-soft);font-size:11px;font-weight:800}.toolbar{top:max(16px, env(safe-area-inset-top));gap:2px;padding:6px;display:flex;position:absolute;right:16px}.inspector{min-width:190px;max-width:250px;padding:10px 12px;font-size:13px;transition:opacity .12s;position:fixed;top:0;left:0;pointer-events:none!important}.inspector.hidden{opacity:0}.insp-title{align-items:center;gap:7px;font-size:15px;font-weight:800;display:flex}.insp-sub{color:var(--ink-soft);margin:1px 0 6px 17px;font-size:12px}.insp-tag{text-transform:uppercase;letter-spacing:.04em;color:#8a7a62;background:#eee6da;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.insp-dot{border-radius:50%;flex:none;width:10px;height:10px}.dot-r{background:var(--r)}.dot-c{background:var(--c)}.dot-i{background:var(--i)}.dot-park{background:#57b65f}.dot-civic{background:#b49ad8}.dot-road{background:#8d8f9c}.insp-rows{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0 0;display:grid}.insp-rows dt{color:var(--ink-soft)}.insp-rows dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.insp-meter{color:var(--ink-soft);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:7px;font-size:12px;display:grid}.insp-meter-track{background:#3b3a4a14;border-radius:999px;height:7px;overflow:hidden}.insp-meter-fill{background:linear-gradient(90deg,#9ad7a0,#f2c14e,#ff8fa3);border-radius:999px;height:100%}.insp-meter-val{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;min-width:22px;font-weight:800}.picker-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#28284640;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.picker-backdrop.hidden{display:none}.picker{background:var(--card-solid);width:min(520px,100%);max-height:calc(100vh - 32px);padding:18px 20px 20px;overflow:auto}.picker-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.picker-head h2{margin:0;font-size:20px;font-weight:900}.icon-btn.close svg{width:18px;height:18px}.seed-row{align-items:end;gap:8px;margin-bottom:10px;display:flex}.seed-row label{color:var(--ink-soft);flex-direction:column;flex:1;gap:4px;font-size:12px;font-weight:700;display:flex}.seed-input{font:inherit;color:var(--ink);border:1.5px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:8px 12px;font-size:16px;font-weight:800}.seed-input:focus{outline:2.5px solid var(--accent);border-color:#0000}.seg,.lean-row{border:0;margin:0 0 12px;padding:0}.seg legend,.lean-row legend{color:var(--ink-soft);margin-bottom:5px;padding:0;font-size:12px;font-weight:700}.seg-options{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px;display:grid}.seg-btn{border:1.5px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;font-size:13px;font-weight:700;display:flex}.seg-btn:hover{border-color:#3b3a4a4d}.seg-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent-ink);background:#fff0f3}.seg-emoji{font-size:20px}.lean-scale{color:var(--ink-soft);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:12px;display:grid}.lean{accent-color:var(--accent);width:100%}.picker-note{color:var(--ink-soft);margin:4px 0 14px;font-size:12px}.grow-btn{background:var(--accent);color:#fff;border-radius:14px;width:100%;padding:12px;font-size:16px;font-weight:800;box-shadow:0 3px 10px #ff8fa373}.grow-btn:hover{background:#ff7d94}.ui-layer.ui-hidden>:not(.show-ui){display:none}.show-ui{opacity:.35;transition:opacity .2s;position:absolute;top:16px;right:16px}.show-ui:hover{opacity:1}.ui-layer:not(.ui-hidden) .show-ui{display:none}@media (width<=640px){.city-card{gap:10px;padding:8px 10px;top:12px;left:12px}.city-name{font-size:17px}.city-charter{display:none}.city-pop{margin-top:4px;font-size:14px}.rci-track{width:10px;min-height:40px}.toolbar{flex-direction:column;padding:4px;top:auto;bottom:140px;right:12px}.tool{width:34px;height:34px}}.flash{opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}.flash.go{animation:.55s ease-out flash}@keyframes flash{0%{opacity:.85}to{opacity:0}}@media (prefers-reduced-motion:reduce){.flash.go{animation-duration:.2s}}
