/* Real geography, with the sculpture's lime reserved for the selected ZIP areas. */
.t-map { height: 500px; aspect-ratio: auto; border-radius: 18px; }
.t-map #t-canvas { touch-action: pan-y; }
#t-geographic-map { position: absolute; inset: 0; width: 100%; height: 100%; visibility: hidden; }
.geographic-ready #t-canvas { visibility: hidden; }
.map-heading { top: 0; left: 0; right: 0; padding: 22px 22px 44px; align-items: flex-start; background: linear-gradient(#0a0f14e8, #0a0f1400); }
.map-heading > div { display: flex; flex-direction: column; gap: 5px; }
.atlas-label { font-size: 14px; letter-spacing: .13em; text-transform: uppercase; color: var(--soft); }
#t-city { font: 500 30px/1.05 'Clash Display', sans-serif; color: var(--paper, #f2f4ee); }
#t-recenter { pointer-events: auto; display: flex; align-items: center; gap: 7px; min-height: 44px; padding: 8px 13px; color: var(--lime); background: #0a0f14ec; border: 1px solid #ccff0040; border-radius: 24px; font-size: 14px; }
.map-footer { bottom: 64px; gap: 8px; align-items: end; }
.map-footer > span { background: #0a0f14e8; border-radius: 20px; padding: 9px 12px; font-size: 14px; }
.map-footer > span > i { border-radius: 50%; flex: none; }
.map-footer button { background: #0a0f14ed; border: 1px solid #ffffff24; }
.map-build-readout { position: absolute; left: 22px; bottom: 130px; z-index: 1; pointer-events: none; padding: 13px 16px 12px; min-width: 155px; background: #0a0f14ed; border-left: 2px solid var(--lime); border-radius: 0 10px 10px 0; }
.map-build-readout strong { display: block; color: var(--lime); font: 500 42px/.95 'Clash Display', sans-serif; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
.map-build-readout > span { display: block; margin-top: 7px; color: var(--soft); font-size: 14px; letter-spacing: .04em; }
.map-build-track { height: 2px; margin-top: 12px; background: #ccff0020; overflow: hidden; }
.map-build-track i { display: block; height: 100%; background: var(--lime); transform: scaleX(0); transform-origin: left; }
[data-build-state="complete"] .map-build-readout { border-left-color: #ccff0060; }
[data-build-state="loading"] .map-build-readout strong { color: var(--faint); }
.t-map:has(.maplibregl-popup) .map-build-readout { opacity: 0; }
.t-empty small { font-size: 14px; color: var(--faint); margin-top: 14px; }
.map-status { min-height: 32px; color: var(--soft); font-size: 14px; line-height: 1.5; margin: 10px 2px; }
.zip-details { border-block: 1px solid var(--line); }
.zip-details summary { min-height: 48px; display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--soft); }
.zip-details summary > span { font-size: 24px; color: var(--lime); }
.zip-details[open] summary > span { transform: rotate(45deg); }
.zip-list { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 0 12px; }
.zip-list button { display: flex; gap: 12px; align-items: center; min-height: 44px; padding: 9px 12px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 7px; font-size: 14px; }
.zip-list button strong { font-weight: 500; }
.zip-list button span { color: var(--soft); }
.zip-list button[aria-pressed="true"] { border-color: var(--lime); color: var(--lime); }
.zip-details > p { font-size: 14px; color: var(--soft); margin: 0 0 15px; }
#t-geographic-map .maplibregl-ctrl-top-right { top: 90px; right: 12px; }
#t-geographic-map .maplibregl-ctrl-group { background: #f2f4ee; border: 0; box-shadow: none; border-radius: 22px; padding: 3px; }
#t-geographic-map .maplibregl-ctrl-group button { width: 44px; height: 44px; }
#t-geographic-map .maplibregl-ctrl-attrib { background: #0a0f14ee; color: #c7cdd6; font: 14px/1.6 'General Sans', sans-serif; padding: 3px 6px; }
#t-geographic-map .maplibregl-ctrl-attrib a { color: #c7cdd6; }
#t-geographic-map .maplibregl-popup-content { background: #f2f4ee; color: #0e1a15; border-radius: 9px; padding: 18px; font-family: 'General Sans', sans-serif; }
#t-geographic-map .maplibregl-popup-tip { border-top-color: #f2f4ee; }
#t-geographic-map .maplibregl-popup-close-button { width: 35px; height: 35px; font-size: 22px; color: #0e1a15; }
.t-map-popup strong { font: 500 24px/1.1 'Clash Display', sans-serif; }
.t-map-popup p { font-size: 14px; margin: 8px 0; }
.t-map-popup small { font-size: 14px; line-height: 1.5; display: block; color: #526255; }
#t-geographic-map .maplibregl-cooperative-gesture-screen { background: #0a0f14cc; color: #f2f4ee; font: 500 16px/1.4 'General Sans', sans-serif; }
@media(max-width: 760px) {
  .t-map { height: 440px; aspect-ratio: auto; border-radius: 13px; }
  .map-heading { left: 0; right: 0; padding: 18px 16px 38px; }
  #t-city { font-size: 26px; }
  .atlas-label { font-size: 14px; }
  #t-recenter { font-size: 14px; padding-inline: 10px; }
  .map-footer { left: 12px; right: 12px; bottom: 70px; }
  .map-footer > span { padding: 8px 10px; font-size: 14px; }
  .map-footer button { padding: 8px 10px; font-size: 14px; }
  .map-footer > span { max-width: 205px; line-height: 1.4; border-radius: 12px; }
  .map-footer button { flex: none; }
  .map-footer button:disabled { display: none; }
  .map-footer:has(button:disabled) > span { max-width: none; }
  .map-build-readout { left: 14px; bottom: 152px; min-width: 132px; padding: 10px 12px; }
  .map-build-readout strong { font-size: 34px; }
  #t-geographic-map .maplibregl-ctrl-top-right { right: 6px; top: 84px; }
  #t-geographic-map .maplibregl-ctrl-attrib { font-size: 14px; }
}
