.city-navigation{position:absolute;top:85px;left:35px;z-index:7;display:flex;align-items:flex-start;flex-direction:column;gap:8px;max-width:340px}.city-back{font-size:10px;color:#8d7898;display:flex;align-items:center;gap:9px;min-height:30px;padding:0}.city-back span{font-size:20px;line-height:1}.city-title-row{display:flex;align-items:center;gap:10px}.city-title-row h2{font-size:35px;line-height:1.2;font-weight:500;letter-spacing:-.06em;outline:none}.city-title-row>button{border:1px solid #a28da22e;border-radius:50%;width:31px;height:31px;font-size:20px;color:#9b83a5;background:#fff8;line-height:1;padding:0 0 6px}.city-title-row>button:hover{background:#fff}.local-areas-toggle{border-radius:24px;padding:9px 13px;min-height:35px;font-size:10px;color:#8d739b;margin-top:2px}.city-mode .interaction-hint{top:226px;font-size:9px}.city-mode .signature h1{font-size:11px}.city-mode .signature{opacity:.83}.city-mode .bottom-left .view-note{display:none}.city-is-loading #marker-layer,.city-is-loading #geo-base{pointer-events:none}
#map-world{transition:transform .62s cubic-bezier(.22,.7,.2,1),opacity .2s ease;opacity:1}#map-world.city-crossfade{opacity:0}#map-world.city-arrival{animation:city-arrive .75s cubic-bezier(.22,.7,.2,1)}.city-loading{position:absolute;bottom:9%;left:50%;transform:translateX(-50%);padding:13px 20px;border-radius:24px;display:flex;align-items:center;gap:9px;font-size:11px;z-index:10;white-space:nowrap}.city-loading i{display:block}
.local-marker{cursor:pointer;outline:none}.local-marker-label{opacity:0;font-size:14px;transition:opacity .15s}.local-marker:hover .local-marker-label,.local-marker:focus .local-marker-label,.local-marker.selected .local-marker-label{opacity:1}.local-marker:hover .marker-pin,.local-marker.selected .marker-pin{stroke-width:3}.local-marker:focus .marker-focus{opacity:1}.local-heat .heat-ring{opacity:.35}.local-heat.selected .heat-ring{opacity:1;stroke-width:2}.local-area-shape{fill-opacity:.23;stroke:#fff;stroke-width:1.15;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill-opacity .2s}.local-area-shape:hover,.local-area-shape.selected{fill-opacity:.48;stroke:#74617e;stroke-width:1.7}.local-areas-panel{left:35px;top:223px;width:315px;max-height:calc(100dvh - 327px);overflow:auto}.local-areas-panel .search-results{max-height:240px}.local-areas-panel .close-button,.local-detail .close-button,.city-data-panel .close-button{font:23px Arial,sans-serif}.local-areas-panel input{font-size:12px}
.local-detail h2{font-size:24px;line-height:1.3;overflow-wrap:anywhere}.local-total{display:flex;align-items:center;gap:14px;margin:17px 0 14px}.local-total strong{font-size:48px;font-weight:500;letter-spacing:-.06em;line-height:1}.local-total>span{font-size:10px;line-height:1.65;color:#86708f;max-width:155px}.local-detail #local-area-context{font-size:10px;line-height:1.8;color:#8d7897}.local-map-link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;padding:12px 0;margin-top:15px;color:#81618f;font-size:10px;min-height:40px}.local-map-link span{font-size:16px}.local-source-line{margin-top:12px;display:flex;flex-direction:column;gap:8px;font-size:9px;line-height:1.6;color:#a08caa}.local-source-line a{color:#886f96;font-size:9px}.local-source-line small{font-size:8px}
.city-data-button{position:absolute;left:31px;bottom:81px;z-index:15;border-radius:25px;padding:10px 14px;min-height:37px;color:#897193;font-size:10px;max-width:310px;line-height:1.4;text-align:left;transition:background .2s,transform .2s}.city-data-button:before{content:'';display:inline-block;width:5px;height:5px;background:#8b9d85;margin-right:8px;border-radius:50%;vertical-align:1px}.city-data-button.no-local-data:before{background:#a995b3}.city-data-button:hover{background:#fff;transform:translateY(-1px)}.city-status-note{position:absolute;left:35px;bottom:133px;font-size:9px;color:#9d89a5;z-index:3;line-height:1.6;max-width:270px;pointer-events:none}.city-data-panel{left:31px;bottom:133px;width:319px;max-height:calc(100dvh - 245px);overflow:auto;animation:card-in .2s ease-out}.city-data-panel .panel-topline>span{font-size:10px;color:#9c85a6}.city-data-panel h2{font-size:18px;font-weight:500;letter-spacing:-.03em;line-height:1.4;margin:6px 0 13px}.city-data-panel>p{font-size:11px;line-height:1.85;color:#8d7798;margin:9px 0}.city-data-panel>p#city-data-note{color:#a18cab;font-size:10px}.city-data-panel>a{font-size:11px;display:block;padding:8px 0}.local-period-label{font-size:10px;color:#957f9f;margin:15px 0 9px}.local-settings-copy{font-size:11px;line-height:1.8;color:#8c7896}.local-methodology{margin-top:10px;border-top:1px solid var(--line)}.local-methodology summary{font-size:10px;color:#987fa4;cursor:pointer;padding:11px 0}.local-methodology p,.local-methodology a{font-size:10px;line-height:1.8;color:#9882a1}.local-methodology a{display:block;padding:8px 0}
.city-entry-links{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 7px}.city-entry-links button{padding:6px 9px;min-height:32px;font-size:9px;border-radius:20px;background:#e9ddeb70;color:#81658e;border:1px solid #a28aa51a}.city-entry-links button:hover{background:#e3d3e7}
@keyframes city-arrive{from{opacity:.25}to{opacity:1}}
@media(min-width:1600px){.city-navigation{left:45px;top:92px}.city-mode .interaction-hint{left:45px;top:233px}}
@media(max-width:1050px){.city-navigation{left:25px;top:79px}.city-title-row h2{font-size:31px}.city-mode .interaction-hint{left:25px;top:216px}.local-areas-panel{left:24px;top:210px}.city-data-button{left:23px}.city-status-note{left:26px}.city-data-panel{left:23px}}
@media(max-width:680px){.city-navigation{left:20px;top:72px;gap:5px;max-width:calc(100vw - 40px);width:calc(100vw - 40px)}.city-back{font-size:10px;min-height:27px}.city-title-row h2{font-size:28px}.city-title-row{gap:9px}.city-title-row>button{width:28px;height:28px}.local-areas-toggle{position:absolute;right:0;bottom:1px;font-size:9px;min-height:34px;padding:8px 11px;max-width:145px}.city-mode .interaction-hint{top:147px;left:21px;font-size:9px}.city-mode .map-stage{inset:159px 0 150px}.city-data-button{left:18px;bottom:calc(82px + env(safe-area-inset-bottom));font-size:9px;max-width:calc(100vw - 36px);padding:9px 13px}.city-status-note{left:20px;bottom:calc(127px + env(safe-area-inset-bottom));font-size:8px;max-width:calc(100vw - 40px)}.city-data-panel{left:17px;bottom:calc(130px + env(safe-area-inset-bottom));width:calc(100vw - 34px);max-height:calc(100dvh - 250px)}.city-data-panel>p{font-size:12px}.city-data-panel>p#city-data-note{font-size:11px}.local-areas-panel{left:17px;top:157px;width:calc(100vw - 34px);max-height:calc(100dvh - 280px)}.local-areas-panel input{font-size:16px}.local-areas-panel .search-results{max-height:210px}.local-detail #local-area-context{font-size:11px}.local-source-line a{font-size:10px}.local-map-link{font-size:11px}.local-detail h2{font-size:23px}.city-loading{bottom:14%;font-size:10px}.local-areas-panel .search-results small{font-size:10px}}
@media(max-width:390px){.city-title-row h2{font-size:24px}.local-areas-toggle{font-size:8px;padding:8px 9px;max-width:126px}.city-title-row{gap:5px}.city-navigation{left:17px;width:calc(100vw - 34px)}}
@media(max-height:550px) and (min-width:681px){.city-navigation{top:64px}.city-title-row h2{font-size:27px}.city-mode .interaction-hint{display:none}.city-data-button{bottom:65px}.city-status-note{bottom:107px}.local-areas-panel{top:150px;max-height:calc(100dvh - 230px)}.city-data-panel{bottom:111px;max-height:calc(100dvh - 200px)}}
@media(prefers-reduced-motion:reduce){#map-world{transition:none!important;animation:none!important}}

/* The city heat layer is immediately visible; controls stay in one compact row. */
.city-layer-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.city-layer-controls .local-areas-toggle{position:static;margin:0;min-height:40px}
.city-heat-toggle{display:flex;align-items:center;gap:7px;border-radius:24px;padding:9px 13px;min-height:40px;font-size:10px;color:#735b82;white-space:nowrap}
.city-heat-toggle i{display:block;width:10px;height:10px;border-radius:50%;background:conic-gradient(#43a58c,#d9ba3c,#ec9245,#d85b61,#43a58c);box-shadow:0 0 0 3px #b6a0b317}
.city-heat-toggle[aria-pressed=false] i{background:#b9aebe}
.city-heat-toggle:hover,.local-areas-toggle:hover{background:#fff}
#map-world{transition:transform .32s cubic-bezier(.22,.7,.2,1),opacity .09s ease}
#map-world.city-arrival{animation-duration:.3s}
#heat-layer{transition:opacity .18s ease}
.local-heat .heat-ring{opacity:.53;stroke-width:1}
.local-area-shape{fill-opacity:.31}
.local-heat-off #heat-layer{opacity:0}
.local-heat-off .local-area-shape,.local-heat-off .local-area-shape:hover,.local-heat-off .local-area-shape.selected{fill-opacity:0}
@media(max-width:680px){.city-layer-controls{gap:7px;margin-top:3px}.city-heat-toggle,.city-layer-controls .local-areas-toggle{font-size:10px;padding:9px 12px;min-height:40px;max-width:none}.city-mode .interaction-hint{top:193px;max-width:calc(100vw - 40px)}.city-mode .map-stage{inset:205px 0 150px}.local-areas-panel{top:201px;max-height:calc(100dvh - 315px)}}
@media(prefers-reduced-motion:reduce){#heat-layer{transition:none}}

.estimate-label{padding:5px 8px;border:1px dashed #9b75a77a;border-radius:12px;background:#eee4efb3;color:#865a92;font-size:9px;font-weight:600;letter-spacing:.01em;white-space:nowrap}
.estimated-heat .heat-ring{stroke-dasharray:5 5;opacity:.8}
.estimated-mode .city-heat-toggle i{background:conic-gradient(#72a7b2,#939bc4,#a67db6,#b75891,#72a7b2)}
.estimated-mode .city-heat-toggle[aria-pressed=false] i{background:#b9aebe}
.estimated-mode .city-data-button{border:1px dashed #a27eab70;color:#775082;background:#faf4f9d9}
.estimated-detail .local-total strong{font-size:32px;letter-spacing:-.04em}
.estimated-detail .detail-kicker>span{font-size:8px;letter-spacing:.08em;color:#8b5b98}
.estimated-detail{max-height:calc(100dvh - 210px);overflow-y:auto}
.estimated-detail #local-area-context{color:#7d6588}
#city-recorded-context{padding-top:10px;border-top:1px solid var(--line);font-size:10px}
#city-estimate-sources a{display:block;margin:8px 0;font-size:11px}
@media(max-width:680px){.estimate-label{font-size:8px;padding:4px 6px}.city-title-row{gap:7px}.estimated-detail{max-height:calc(100dvh - 265px)}.estimated-detail .local-total strong{font-size:29px}}
