:root{--bg: #101919;--surface: #162121;--deep: #0c1313;--text: #eae6dc;--muted: #a8b2ad;--gold: #d6b47a;--line: rgba(213, 193, 155, .19);--ink: #3b2f25;--paper: #f6eedb;--serif: "Cormorant Garamond", Georgia, serif;--sans: "DM Sans", Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5;overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:22px;height:64px;padding:0 22px;background:var(--deep);border-bottom:1px solid var(--line);flex:none;z-index:5}.wordmark{font-family:var(--serif);font-size:22px;letter-spacing:.17em;font-weight:600;display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;white-space:nowrap}.brand-sigil{height:29px;width:24px;border:1px solid var(--gold);color:var(--gold);font-size:20px;line-height:26px;text-align:center;letter-spacing:0;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%)}.title{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--gold);white-space:nowrap}.search{position:relative;margin-left:auto;width:min(420px,40vw)}.search input{width:100%;height:40px;padding:0 14px;border:1px solid #4a5048;background:var(--surface);border-radius:2px;color:var(--text)}.search input::placeholder{color:#8d9a93}.search-results{position:absolute;top:44px;left:0;right:0;margin:0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid #4a5048;box-shadow:0 12px 30px #0008;max-height:60vh;overflow-y:auto;z-index:20}.search-results li{display:flex;flex-direction:column;padding:8px 14px;cursor:pointer}.search-results li.active{background:#d6b47a24}.result-label{font-size:15px}.result-detail{font-size:12px;color:var(--muted)}.stage{position:relative;flex:1;min-height:0;background:#e8e4da}.map-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}.map-canvas:active{cursor:grabbing}.map-canvas:focus-visible{outline-offset:-4px}.controls{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;box-shadow:0 4px 14px #0004}.controls button{width:40px;height:40px;border:1px solid #4a5048;background:var(--surface);font-size:20px;line-height:1}.controls button+button{border-top:0}.controls button:hover{color:var(--gold)}.controls .fit{font-size:16px}.compass{position:absolute;right:22px;top:162px;width:32px;text-align:center;color:var(--ink);font-family:var(--serif);font-weight:600;font-size:15px}.compass svg{width:18px;height:26px;fill:var(--ink);display:block;margin:0 auto}.scale{position:absolute;left:18px;bottom:44px;display:flex;align-items:center;gap:8px;color:var(--ink);font-size:12px;font-weight:500;text-shadow:0 0 3px var(--paper)}.scale-bar{height:7px;border:1.5px solid var(--ink);border-top:0}.layers{position:absolute;left:18px;top:18px;max-width:calc(100% - 100px)}.layers-button{height:40px;padding:0 14px;border:1px solid #4a5048;background:var(--surface);font-size:14px;box-shadow:0 4px 14px #0004}.layers-body{margin-top:6px;padding:12px 14px;background:var(--surface);border:1px solid #4a5048;box-shadow:0 8px 24px #0006;min-width:230px}.layers fieldset{border:0;margin:0 0 10px;padding:0}.layers legend{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.toggle{display:flex;align-items:center;gap:10px;padding:3px 0;font-size:14px;cursor:pointer}.toggle input{accent-color:var(--gold);width:16px;height:16px}.legend{list-style:none;margin:0;padding:0;font-size:13px}.legend li{display:flex;align-items:center;gap:10px;padding:2px 0}.legend i{width:18px;height:12px;border:1px solid var(--ink);display:inline-block}.ramp{display:flex;align-items:center;gap:8px;font-size:12px}.ramp i{flex:1;height:12px;background:linear-gradient(90deg,#e8cda0,#8a5546);border:1px solid var(--ink)}.panel{position:absolute;z-index:4;right:74px;top:18px;width:min(360px,calc(100% - 110px));max-height:calc(100% - 90px);overflow-y:auto;background:var(--surface);border:1px solid #4a5048;box-shadow:0 14px 40px #0008;padding:22px 22px 18px}.panel h2{font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.1;margin:0 0 10px}.panel-kicker{margin:0 0 6px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}.panel-status{margin:0 0 12px;padding:6px 10px;border-left:2px solid var(--gold);background:#d6b47a1a;font-size:13px}.panel-lede{font-family:var(--serif);font-size:19px;font-style:italic;color:#d9d4c6;margin:0 0 10px}.panel p{color:#c9d0ca;font-size:14px}.panel-close{position:absolute;right:10px;top:8px;width:32px;height:32px;border:0;background:none;font-size:24px;color:var(--muted)}.panel-close:hover{color:var(--gold)}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0 0;font-size:14px}.facts dt{color:var(--muted)}.facts dd{margin:0}.link{background:none;border:0;padding:0;color:var(--gold);text-decoration:underline;text-underline-offset:3px}.households{margin:12px 0 0;padding-left:18px;font-size:13px;color:#c9d0ca}.credit{position:absolute;left:0;right:0;bottom:0;margin:0;padding:6px 18px;font-size:12px;color:#4b3e31;background:linear-gradient(0deg,#f6eedbeb,#f6eedb8c);pointer-events:none}.loading{display:grid;place-items:center;height:100%;font-family:var(--serif);font-size:24px;font-style:italic;color:var(--gold)}@media(max-width:720px){.topbar{gap:12px;padding:0 12px;height:58px}.title{display:none}.wordmark{font-size:0;gap:0}.wordmark .brand-sigil{font-size:20px}.search{width:auto;flex:1}.panel{inset:auto 0 0;width:auto;max-height:52%;border-left:0;border-right:0;border-bottom:0}.controls{top:70px}.compass{display:none}.scale{bottom:34px}.credit{font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
