:root{
  --paper:#f3f7f6;
  --white:#fff;
  --ink:#142326;
  --muted:#5f7072;
  --line:#d7e0de;
  --accent:#1d6b5b;
  --soft:#e7f1ee;
  --error:#a84035;
  --app-bg:#061318;
  --app-chrome:#091b21;
  --app-panel:#102b33;
  --app-raised:#173a42;
  --app-selected:#1a454f;
  --app-text:#f0f7f5;
  --app-muted:#a1bfc2;
  --app-accent:#cae0cf;
  --app-gold:#d2a854;
  --app-border:rgba(92,148,161,.45);
  --radius:14px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:15px;line-height:1.65}
body.explore-page{height:100dvh;overflow:hidden;background:var(--app-bg);color:var(--app-text);color-scheme:dark}
a{color:var(--accent);text-underline-offset:3px}
button,input,select{font:inherit}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.45}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e1b65f;outline-offset:2px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-90px;left:16px;z-index:4000;background:var(--white);color:var(--ink);padding:10px 14px;border-radius:8px}
.skip-link:focus{top:10px}
h1,h2,h3,p{margin-top:0}
h1{font-size:31px;font-weight:720;letter-spacing:-.025em;line-height:1.25;margin-bottom:0}
h2{font-size:22px;line-height:1.4}
h3{font-size:17px;line-height:1.45}
.muted{color:var(--muted);font-size:13px}

/* Shared chrome */
.site-header{
  height:68px;
  padding:0 max(20px,calc((100vw - 1520px)/2));
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--app-border);
  background:var(--app-chrome);
  color:var(--app-text);
  gap:18px;
}
.brand{display:flex;align-items:center;gap:11px;color:var(--app-text);font-weight:720;font-size:17px;line-height:1.2;text-decoration:none;white-space:nowrap}
.brand-name small,.brand small{display:block;margin-top:3px;font-size:8px;font-weight:650;color:var(--app-muted);letter-spacing:.14em}
.brand b{font-size:10px;letter-spacing:.12em;font-weight:600;color:var(--app-gold)}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--app-border);border-radius:10px;background:linear-gradient(145deg,var(--app-raised),var(--app-panel));color:var(--app-accent);font-family:serif;font-size:20px;box-shadow:inset 0 1px rgba(255,255,255,.05)}
.brand-mark svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.site-header nav{display:flex;align-items:center;gap:20px}
.site-header nav a{font-size:12px;color:var(--app-muted);text-decoration:none;white-space:nowrap}
.site-header nav a:hover,.site-header nav a.current{color:var(--app-text)}

/* Fullscreen explorer */
.app-header{height:64px;padding-inline:16px;position:relative;z-index:1100}
.explorer{height:calc(100dvh - 64px);position:relative;overflow:hidden}
.explore-layout{display:grid;grid-template-columns:380px minmax(0,1fr);height:100%;min-height:0;background:var(--app-bg)}
.results-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(180deg,var(--app-panel),#0b2229);border-right:1px solid var(--app-border)}
.results-heading{flex:0 0 auto;padding:20px 20px 13px;border-bottom:1px solid var(--app-border);background:rgba(6,19,24,.42)}
.results-heading>div:first-child{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.results-heading h1{color:var(--app-text);font-size:18px;letter-spacing:-.01em}
.eyebrow{font-size:9px;letter-spacing:.17em;color:var(--muted);margin-bottom:5px;text-transform:uppercase}
.explore-page .eyebrow{color:var(--app-gold)}
#result-summary{margin:10px 0 0;color:var(--app-accent);font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}
.result-context{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;margin-top:5px}
#active-filters{margin:0;color:var(--app-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-dot{width:5px;height:5px;border-radius:50%;background:var(--app-gold);box-shadow:0 0 0 3px rgba(210,168,84,.12);flex:0 0 auto}
.building-list{flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0}
.building-list::-webkit-scrollbar{width:8px}
.building-list::-webkit-scrollbar-thumb{background:#3b5860;border:2px solid transparent;background-clip:padding-box;border-radius:10px}
.building-card{padding:16px 18px 15px;border-bottom:1px solid rgba(92,148,161,.22);position:relative;background:transparent;transition:background .16s ease,box-shadow .16s ease}
.building-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}
.building-card:hover,.building-card.is-active{background:rgba(26,69,79,.82)}
.building-card.is-active::before{background:var(--app-gold)}
.card-topline{display:flex;align-items:center;gap:7px;color:var(--app-muted);font-size:10px;margin-bottom:6px;min-width:0}
.card-topline>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.country-dot{width:6px;height:6px;border-radius:50%;background:var(--app-gold);flex:0 0 auto}
.card-topline time{margin-left:auto;color:var(--app-accent);font-variant-numeric:tabular-nums}
.building-card h2{font-size:16px;line-height:1.45;margin:0 0 4px}
.building-card h2 a{color:var(--app-text);text-decoration:none}
.building-card h2 a:hover{text-decoration:underline;text-decoration-color:var(--app-gold)}
.candidate-title{padding:0;border:0;background:none;color:var(--app-text);font:inherit;text-align:left;cursor:pointer}
.candidate-title:hover{text-decoration:underline;text-decoration-color:var(--app-gold)}
.research-candidate-card{background:rgba(18,46,53,.42)}
.research-candidate-card .card-deck{margin-bottom:8px}
.candidate-address{margin:0 0 8px;color:var(--app-muted);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.candidate-preview .candidate-address{margin:0 0 9px}
.candidate-badge{font-size:9px;padding:2px 7px;border:1px solid var(--app-accent);border-radius:999px;color:var(--app-accent);white-space:nowrap}
.candidate-location-pending{margin-left:auto;color:var(--app-muted);font-size:10px}
.candidate-source-links{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:7px;font-size:10px;line-height:1.45}
.candidate-source-links a{color:var(--app-accent);text-decoration:underline;text-underline-offset:2px}
.candidate-preview .candidate-source-links{margin:8px 0 12px}
.candidate-note{font-size:11px;color:var(--app-muted);line-height:1.5}
.candidate-unpublished{display:inline-flex;align-items:center;color:var(--app-muted);font-size:11px}
.candidate-article-link{display:inline-flex;align-items:center;gap:6px;margin-top:5px;color:var(--app-gold);font-size:11px;font-weight:700;text-decoration:none}
.candidate-article-link:hover{text-decoration:underline}
.map-popup .candidate-source-links{display:flex;flex-direction:column}
.card-architect{font-size:11px;color:var(--app-accent);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-deck{font-size:12px;color:#dbe8e6;margin-bottom:11px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-actions{display:flex;align-items:center;gap:7px;min-height:32px;flex-wrap:wrap}
.type-label,.closed-badge{font-size:9px;padding:2px 7px;border:1px solid var(--app-border);border-radius:999px;color:var(--app-muted);line-height:1.5}
.popularity-badge{font-size:9px;padding:2px 7px;border:1px solid rgba(210,168,84,.5);border-radius:999px;color:var(--app-gold);line-height:1.5;white-space:nowrap}
.location-quality-badge{max-width:100%;min-width:0;padding:2px 7px;border:1px dashed rgba(238,198,105,.72);border-radius:999px;color:#f0d28a;font-size:8px;line-height:1.5;overflow-wrap:anywhere}
.decision-badge{font-size:9px;padding:2px 7px;border:1px solid #9f684c;border-radius:999px;color:#ffd1ad;background:rgba(159,104,76,.13);line-height:1.5;white-space:nowrap}
.closed-badge{color:#ffd1ad;border-color:#9f684c;background:rgba(159,104,76,.13)}
.map-link{margin-left:auto;background:none;border:0;color:var(--app-gold);font-size:11px;min-height:38px;padding:5px 0 5px 10px}
.data-note{flex:0 0 auto;font-size:9px;color:var(--app-muted);padding:9px 16px;margin:0;background:var(--app-chrome);border-top:1px solid rgba(92,148,161,.2)}
.data-note a{color:var(--app-accent);margin-left:4px;text-underline-offset:2px}

/* Header search and filter tray */
.filters{display:flex;align-items:center;gap:8px;flex:1;max-width:900px;min-width:0;position:relative}
.search-control{height:40px;display:flex;align-items:center;position:relative;flex:1;min-width:150px;max-width:430px}
.search-control input{width:100%;height:40px;border:1px solid var(--app-border);border-radius:11px;background:var(--app-panel);color:var(--app-text);padding:8px 36px 8px 38px;font-size:13px;outline:0}
.search-control input::placeholder{color:#79969a}
.search-control input:focus{border-color:var(--app-accent);box-shadow:0 0 0 2px rgba(202,224,207,.12)}
.search-control input::-webkit-search-cancel-button{filter:invert(1);opacity:.6}
.search-icon{position:absolute;left:14px;top:12px;width:14px;height:14px;border:1.8px solid var(--app-muted);border-radius:50%;z-index:1}
.search-icon::after{content:"";position:absolute;width:6px;height:1.8px;background:var(--app-muted);transform:rotate(45deg);right:-4px;bottom:-2px;border-radius:2px}
.scope-switch{height:40px;padding:3px;display:flex;gap:2px;background:#061419;border:1px solid var(--app-border);border-radius:11px;flex:0 0 auto}
.scope-switch button{min-width:56px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--app-muted);font-size:12px;font-weight:650}
.scope-switch button[aria-pressed="true"]{background:var(--app-selected);color:var(--app-accent);box-shadow:inset 0 0 0 1px rgba(202,224,207,.18)}
.popularity-control{height:40px;display:flex;align-items:center;gap:6px;flex:0 0 auto;padding:3px 5px 3px 9px;background:var(--app-panel);border:1px solid var(--app-border);border-radius:10px;color:var(--app-accent);white-space:nowrap;font-size:11px}
.popularity-control select{height:32px;min-width:77px;padding:0 5px;border:0;border-radius:7px;background:var(--app-selected);color:var(--app-text);font-size:12px;font-weight:650}
.icon-button,.quiet-button{min-height:40px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-panel);color:var(--app-text);font-size:11px;padding:7px 10px;white-space:nowrap}
.icon-button{display:flex;align-items:center;gap:7px}
.quiet-button{border-color:transparent;background:transparent;color:var(--app-muted)}
.icon-button:hover,.quiet-button:hover{color:var(--app-accent);background:var(--app-raised)}
.filter-button.has-filters{color:var(--app-gold);border-color:rgba(210,168,84,.55)}
.filter-icon{width:15px;height:12px;display:inline-block;background:linear-gradient(var(--app-muted),var(--app-muted)) 0 1px/15px 1px no-repeat,linear-gradient(var(--app-muted),var(--app-muted)) 0 6px/15px 1px no-repeat,linear-gradient(var(--app-muted),var(--app-muted)) 0 11px/15px 1px no-repeat;position:relative}
.filter-icon::after{content:"";position:absolute;width:3px;height:3px;border:1.5px solid var(--app-muted);border-radius:50%;left:3px;top:-1px;box-shadow:6px 5px 0 -1.5px var(--app-panel),6px 5px 0 0 var(--app-muted),-1px 10px 0 -1.5px var(--app-panel),-1px 10px 0 0 var(--app-muted)}
.extra-filters{position:absolute;top:49px;right:0;z-index:1300;width:min(720px,calc(100vw - 40px));padding:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;background:rgba(9,27,33,.98);border:1px solid var(--app-border);border-radius:16px;box-shadow:0 18px 60px rgba(0,0,0,.38);backdrop-filter:blur(16px)}
.filter-popover-heading{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;border-bottom:1px solid var(--app-border)}
.filter-popover-heading strong{font-size:14px;color:var(--app-text)}
.filter-popover-heading span{font-size:10px;color:var(--app-muted)}
.extra-filters label{display:flex;flex-direction:column;gap:5px;min-width:0}
.extra-filters label>span{font-size:10px;color:var(--app-muted)}
.extra-filters select{width:100%;min-width:0;height:40px;border:1px solid var(--app-border);border-radius:9px;background:var(--app-panel);color:var(--app-text);padding:7px 9px;font-size:12px}

/* Map */
.map-wrap{position:relative;min-width:0;min-height:0;background:#dce8e7;overflow:hidden}
#map{height:100%;width:100%;z-index:0;background:linear-gradient(145deg,#dceceb,#edf4f0)}
.leaflet-container{font-family:inherit}
.leaflet-control-zoom a{color:#173c42!important;background:#f8fbfa!important;border-color:#c5d5d3!important}
.leaflet-control-attribution{font-size:9px!important;background:rgba(248,251,250,.86)!important;color:#536568!important}
.map-actions{position:absolute;top:12px;right:12px;z-index:450;display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 76px)}
.map-actions button{height:38px;background:rgba(9,27,33,.94);border:1px solid var(--app-border);box-shadow:0 3px 12px rgba(0,0,0,.2);border-radius:9px;color:var(--app-text);font-size:10px;padding:7px 10px;backdrop-filter:blur(9px)}
.map-actions button:hover{background:var(--app-raised);color:var(--app-accent)}
.map-note{position:absolute;bottom:12px;left:12px;z-index:400;font-size:10px;line-height:1.55;padding:7px 9px;color:#466164;background:rgba(248,251,250,.94);pointer-events:none;margin:0;width:fit-content;max-width:min(450px,calc(100% - 24px));border:1px solid rgba(70,97,100,.18);border-radius:7px}
.map-note.error{color:var(--error);font-weight:650}
.map-result-summary{display:none}
.map-empty{position:absolute;z-index:500;top:50%;left:50%;transform:translate(-50%,-50%);width:min(320px,calc(100% - 32px));padding:20px;text-align:center;background:rgba(9,27,33,.96);border:1px solid var(--app-border);border-radius:15px;box-shadow:0 12px 35px rgba(0,0,0,.25);color:var(--app-text)}
.map-empty strong{display:block;font-size:15px;line-height:1.5}
.map-empty p{margin:7px 0 15px;color:var(--app-muted);font-size:12px}
.map-empty button{min-height:44px}
.arch-pin{background:none!important;border:0!important}
.pin-core{display:grid;width:28px;height:34px;margin:1px 3px 7px;place-items:center;background:var(--app-panel);border:2px solid #f5fbf8;border-radius:14px 14px 14px 3px;transform:rotate(-45deg);box-shadow:0 3px 8px rgba(0,0,0,.35);transition:transform .16s ease,background .16s ease}
.pin-glyph{display:block;width:8px;height:8px;border-radius:50%;background:var(--app-gold);transform:rotate(45deg);box-shadow:0 0 0 3px rgba(210,168,84,.18)}
.arch-pin.address-geocoded .pin-core{background:#2d2818;border-color:#f0cf7e;border-style:dashed}
.arch-pin.address-geocoded .pin-glyph{display:grid;width:auto;height:auto;place-items:center;border-radius:0;background:transparent;color:#f0cf7e;font-size:13px;font-weight:800;line-height:1;box-shadow:none}
.arch-pin:hover .pin-core,.arch-pin.active .pin-core{transform:rotate(-45deg) scale(1.18);background:#1c655e;border-color:#fff}
.arch-pin.active .pin-glyph{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.22)}
.arch-pin.address-geocoded:is(:hover,.active) .pin-core{border:2px dashed #fff}
.arch-pin.address-geocoded.active .pin-glyph{background:transparent;color:#fff;box-shadow:none}
.arch-pin.visitor-anchor .pin-core{background:#183b43;border-color:#9ed6dd;border-style:dashed}
.arch-pin.visitor-anchor .pin-glyph{display:grid;width:auto;height:auto;place-items:center;border-radius:0;background:transparent;color:#a9e5eb;font-size:16px;font-weight:800;line-height:1;box-shadow:none}
.arch-pin.visitor-anchor:is(:hover,.active) .pin-core{border:2px dashed #fff}
.arch-pin.visitor-anchor.active .pin-glyph{background:transparent;color:#fff;box-shadow:none}
/* Keep the 34×42px marker hit target while drawing a small, centered point on overview maps. */
.map-pin-overview .arch-pin .pin-core,.map-pin-region .arch-pin .pin-core{position:absolute;margin:0;transform:none;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.32)}
.map-pin-overview .arch-pin .pin-core{left:13px;top:34px;width:8px;height:8px;border-width:1px}
.map-pin-region .arch-pin .pin-core{left:11px;top:32px;width:12px;height:12px;border-width:1.5px}
.map-pin-overview .arch-pin.address-geocoded .pin-core,.map-pin-region .arch-pin.address-geocoded .pin-core{border-color:#f0cf7e;border-style:dashed;box-shadow:0 0 0 2px rgba(240,207,126,.28),0 1px 4px rgba(0,0,0,.32)}
.map-pin-overview .arch-pin.visitor-anchor .pin-core,.map-pin-region .arch-pin.visitor-anchor .pin-core{border-color:#a9e5eb;border-style:dashed;box-shadow:0 0 0 2px rgba(169,229,235,.3),0 1px 4px rgba(0,0,0,.32)}
.map-pin-overview .arch-pin .pin-glyph,.map-pin-region .arch-pin .pin-glyph{display:none}
.map-pin-overview .arch-pin:is(:hover,.active) .pin-core,.map-pin-region .arch-pin:is(:hover,.active) .pin-core{left:9px;top:30px;width:16px;height:16px;transform:none;background:#1c655e;border:2px solid #fff}
.map-pin-overview .arch-pin.address-geocoded:is(:hover,.active) .pin-core,.map-pin-region .arch-pin.address-geocoded:is(:hover,.active) .pin-core{border-style:dashed}
.map-pin-overview .arch-pin.visitor-anchor:is(:hover,.active) .pin-core,.map-pin-region .arch-pin.visitor-anchor:is(:hover,.active) .pin-core{border-style:dashed}
.leaflet-tooltip.arch-label{font-family:inherit;font-size:10px;line-height:1.4;color:var(--app-text);background:rgba(9,27,33,.95);border:1px solid var(--app-border);box-shadow:0 4px 12px rgba(0,0,0,.22);border-radius:7px;padding:5px 7px}
.leaflet-tooltip-top.arch-label::before{border-top-color:var(--app-chrome)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--app-chrome);color:var(--app-text)}
.leaflet-popup-content{margin:13px 15px;min-width:190px}
.map-wrap:has(.building-preview:not([hidden])) .leaflet-popup{display:none}
.map-popup .popup-place{margin:0 0 4px;color:var(--app-gold);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.map-popup strong{display:block;font-size:14px;margin-bottom:4px}
.map-popup span,.map-popup small{display:block;color:var(--app-muted);font-size:10px;line-height:1.5;margin-top:3px}
.map-popup a{display:block;padding:7px 0 0;color:var(--app-accent)}
.map-fallback{height:100%;display:grid;place-content:center;text-align:center;padding:24px;color:#38585a}
.map-fallback strong{font-size:17px}
.map-fallback p{margin:6px 0 0;font-size:12px}

/* Selected building detail card */
.building-preview{position:absolute;right:18px;bottom:72px;z-index:600;width:min(370px,calc(100% - 36px));max-height:calc(100% - 160px);overflow:auto;background:rgba(9,27,33,.97);border:1px solid var(--app-border);border-radius:18px;color:var(--app-text);box-shadow:0 20px 55px rgba(0,0,0,.35);backdrop-filter:blur(18px);animation:preview-in .22s ease both}
@keyframes preview-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.preview-copy{padding:18px}
.preview-close{position:absolute;top:10px;right:10px;z-index:1;width:44px;height:44px;border:1px solid var(--app-border);border-radius:50%;background:rgba(9,27,33,.86);color:var(--app-text);font-size:20px;line-height:1}
.preview-place{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 42px 6px 0;color:var(--app-gold);font-size:10px;letter-spacing:.03em}
.preview-place span{color:var(--app-accent);font-variant-numeric:tabular-nums}
.building-preview h2{font-size:19px;line-height:1.4;margin:0 0 5px;color:var(--app-text)}
.building-preview:not(:has(.card-photo)) h2{margin-right:50px}
.preview-architect{margin:0 0 10px;color:var(--app-accent);font-size:11px}
.preview-deck{margin:0 0 12px;color:#dbe8e6;font-size:12px;line-height:1.65}
.preview-status{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 13px}
.preview-status span{padding:3px 7px;border:1px solid var(--app-border);border-radius:999px;color:var(--app-muted);font-size:9px}
.preview-actions{display:flex;align-items:center;gap:9px}
.preview-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--app-border);border-radius:10px;padding:8px 13px;color:var(--app-accent);font-size:11px;text-decoration:none}
.preview-actions .preview-article-link{flex:1;background:var(--app-accent);border-color:var(--app-accent);color:var(--app-bg);font-weight:700;justify-content:space-between}
.building-preview .card-photo{margin:0;border-radius:17px 17px 0 0;overflow:hidden;background:#061318}
.building-preview .card-photo img{display:block;width:100%;height:150px;object-fit:cover}
.building-preview .card-photo figcaption{padding:5px 12px;color:var(--app-muted);font-size:8px;line-height:1.4}
.building-preview .card-photo figcaption a{color:var(--app-muted)}

/* Nearby-pin chooser */
.overlap-picker{position:absolute;top:62px;right:12px;z-index:700;background:rgba(9,27,33,.98);color:var(--app-text);box-shadow:0 15px 45px rgba(0,0,0,.38);border:1px solid var(--app-border);border-radius:15px;width:330px;max-width:calc(100% - 24px);max-height:calc(100% - 130px);overflow:auto;padding:13px}
.overlap-picker header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.overlap-picker header div{display:flex;flex-direction:column}
.overlap-picker header span{font-size:9px;color:var(--app-muted)}
.overlap-picker header strong{font-size:13px}
.overlap-picker header button{width:34px;height:34px;border:0;border-radius:50%;background:var(--app-raised);color:var(--app-text);font-size:18px}
.picker-list{border-block:1px solid var(--app-border)}
.overlap-picker .candidate{display:flex;width:100%;min-height:48px;align-items:flex-start;justify-content:center;flex-direction:column;border:0;border-bottom:1px solid rgba(92,148,161,.24);background:none;color:var(--app-text);text-align:left;padding:8px 4px}
.overlap-picker .candidate:last-child{border-bottom:0}
.overlap-picker .candidate:hover,.overlap-picker .candidate:focus-visible{background:var(--app-selected)}
.overlap-picker .candidate span{font-size:12px}
.overlap-picker .candidate small{color:var(--app-muted);font-size:9px}
.overlap-picker>p{font-size:9px;color:var(--app-muted);margin:8px 0 0}

/* View switch / native-style tab bar */
.view-switch{position:fixed;z-index:850;left:calc(50% + 190px);bottom:15px;transform:translateX(-50%);display:flex;gap:3px;padding:4px;background:rgba(9,27,33,.94);border:1px solid var(--app-border);border-radius:13px;box-shadow:0 8px 26px rgba(0,0,0,.3);backdrop-filter:blur(14px)}
.view-switch button{min-width:82px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:9px;background:none;color:var(--app-muted);font-size:10px}
.view-switch button>span:first-child{font-size:14px}
.view-switch button[aria-pressed="true"]{background:var(--app-selected);color:var(--app-accent)}
.explore-layout[data-view="list"]{grid-template-columns:1fr}
.explore-layout[data-view="list"] .map-wrap{display:none}
.explore-layout[data-view="list"] .results-panel{border-right:0}
.explore-layout[data-view="list"] .building-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start}
.explore-layout[data-view="list"] .building-card{border:1px solid rgba(92,148,161,.22);margin:-1px 0 0 -1px}
.explore-layout[data-view="list"] .results-heading{display:grid;grid-template-columns:1fr auto;align-items:end}
.explore-layout[data-view="list"] .result-context{grid-column:1/-1}
.explore-layout[data-view="map"]{grid-template-columns:1fr}
.explore-layout[data-view="map"] .results-panel{display:none}
.explore-layout[data-view="list"]~.view-switch,.explore-layout[data-view="map"]~.view-switch{left:50%}
.empty-state{padding:45px 22px;text-align:center;color:var(--app-muted);font-size:12px}
.empty-state>span{width:42px;height:42px;display:grid;place-items:center;margin:0 auto 12px;border:1px solid var(--app-border);border-radius:50%;color:var(--app-gold);font-size:20px}
.empty-state strong{display:block;color:var(--app-text);font-size:14px}
.empty-state p{margin:6px auto 15px;max-width:280px}
.empty-state a{display:block;margin-top:12px;color:var(--app-accent)}
.noscript-note{position:fixed;inset:auto 16px 16px;z-index:2000;background:var(--app-panel);border:1px solid var(--app-border);border-radius:12px;padding:12px;color:var(--app-text)}
.explore-page>footer{display:none}

/* Reading pages */
.article-page{max-width:820px;margin:0 auto;padding:42px 26px 60px}
.back-link{display:inline-block;font-size:13px;margin-bottom:28px}
.article-heading{margin-bottom:28px}
.article-heading h1{font-size:34px;margin-bottom:12px}
.article-architect{font-size:14px;color:var(--muted);margin-bottom:12px}
.article-deck{font-size:17px;line-height:1.8;margin:0;color:#334a4d}
.facts{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line);padding:18px 0;margin:0 0 24px;gap:17px 26px}
.facts dt,.verification dt{font-size:10px;color:var(--muted);letter-spacing:.04em}
.facts dd,.verification dd{margin:3px 0 0;font-size:14px}
.article-toc{display:flex;flex-wrap:wrap;gap:8px 24px;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:32px;font-size:13px}
.article-page section{margin:34px 0;scroll-margin-top:18px}
.article-page section p{line-height:1.95}
.highlights{padding-left:1.3em}
.highlights li{margin-bottom:8px}
.component{border-top:1px solid var(--line);padding:14px 0}
.component:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600}
summary span{font-size:13px;color:var(--muted);font-weight:400;margin-left:18px}
.component p{margin:12px 0 0}
.article-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--accent);border-radius:9px;min-height:44px;padding:9px 17px;text-decoration:none;font-size:13px}
.primary-button{background:var(--accent);color:white}
.secondary-button{background:white;color:var(--accent)}
.nearby{display:grid;gap:8px}
.nearby a{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none}
.nearby strong{font-size:14px;font-weight:600}
.nearby span{font-size:12px;white-space:nowrap;color:var(--muted)}
.sources{padding-left:1.5em;font-size:13px;overflow-wrap:anywhere}
.sources li{margin:14px 0;scroll-margin-top:20px}
.sources small{display:block;font-size:11px;color:var(--muted)}
.citation{font-size:11px;margin-left:4px;vertical-align:super;text-decoration:none}
.verification{display:flex;gap:24px;flex-wrap:wrap}
.article-page details>ul{font-size:13px;color:var(--muted)}
.catalogue-list{padding-left:1.2em}
.catalogue-list li{margin:12px 0}
.status-banner{padding:10px 14px;border-left:3px solid var(--accent);background:var(--soft);font-size:13px}
body:not(.explore-page)>footer{max-width:820px;margin:auto;padding:26px;display:flex;gap:22px;align-items:center;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
body:not(.explore-page)>footer span{margin-right:auto}
body:not(.explore-page)>footer a{color:var(--muted)}

@media(max-width:1120px) and (min-width:761px){
  .explore-layout{grid-template-columns:330px minmax(0,1fr)}
  .view-switch{left:calc(50% + 165px)}
  .brand-name small{display:none}
  .site-header{gap:10px}
  .header-links{display:flex!important;gap:9px!important}
  .header-links a{font-size:10px}
  .search-control{max-width:none}
  .filter-button span:last-child{display:none}
}

@media(max-width:760px){
  body.explore-page{min-height:100svh}
  .app-header{height:calc(145px + env(safe-area-inset-top));padding:calc(7px + env(safe-area-inset-top)) 10px 8px;display:grid;grid-template-columns:1fr auto;grid-template-rows:37px 85px;gap:5px 8px;align-content:center}
  .app-header .brand{font-size:15px;gap:8px}
  .app-header .brand-mark{width:32px;height:32px;border-radius:9px}
  .app-header .brand-mark svg{width:21px;height:21px}
  .app-header .brand-name small{font-size:7px;margin-top:2px}
  .header-links{grid-column:2;grid-row:1;gap:12px!important}
  .header-links a:first-child{display:none}
  .filters{grid-column:1/-1;grid-row:2;width:100%;display:grid;grid-template-columns:minmax(95px,1fr) auto 43px 43px;grid-template-rows:42px 36px;gap:5px;max-width:none}
  .popularity-control{grid-column:1/-1;grid-row:2;height:36px;justify-content:space-between;padding:2px 5px 2px 11px}
  .popularity-control select{height:30px;min-width:112px;text-align:center}
  .search-control,.search-control input{height:42px;max-width:none;min-width:0}
  .search-control input{font-size:16px;border-radius:10px;padding-left:34px}
  .search-icon{left:12px;top:13px}
  .scope-switch{height:42px}
  .scope-switch button{min-width:43px;height:34px;padding-inline:6px;font-size:11px}
  .icon-button,.quiet-button{width:43px;height:42px;min-height:42px;padding:0;justify-content:center}
  .filter-button span:last-child,.quiet-button{font-size:0}
  .quiet-button::before{content:"↺";font-size:18px}
  .extra-filters{position:fixed;top:calc(140px + env(safe-area-inset-top));left:8px;right:8px;width:auto;max-height:calc(100svh - 213px - env(safe-area-inset-top));overflow:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border-radius:14px}
  .filter-popover-heading{position:sticky;top:-14px;z-index:1;background:var(--app-chrome);padding-block:10px}
  .filter-popover-heading span{display:none}
  .extra-filters label:last-child{grid-column:1/-1}
  .extra-filters select{font-size:13px}
  .explorer{height:calc(100svh - 145px - env(safe-area-inset-top))}
  .explore-layout{height:calc(100% - 62px - env(safe-area-inset-bottom));grid-template-columns:1fr}
  .explore-layout[data-view="split"] .results-panel{display:none}
  .explore-layout[data-view="split"] .map-wrap{display:block}
  .results-panel{border-right:0}
  .results-heading{padding:15px 16px 11px}
  .results-heading h1{font-size:17px}
  .building-card{padding:15px 16px}
  .building-card h2{font-size:16px}
  .data-note{padding-bottom:10px}
  .map-actions{top:9px;right:9px;gap:4px;max-width:calc(100% - 58px)}
  .map-actions button{height:36px;padding:6px 8px}
  .map-actions #show-kanto{display:none}
  .map-note{left:8px;bottom:8px;max-width:calc(100% - 16px)}
  .map-result-summary{position:absolute;top:87px;left:8px;z-index:450;display:block;width:fit-content;max-width:calc(100% - 16px);margin:0;padding:5px 9px;border:1px solid var(--app-border);border-radius:8px;background:rgba(9,27,33,.94);color:var(--app-text);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
  .map-wrap:has(.building-preview:not([hidden])) .leaflet-bottom.leaflet-right{bottom:calc(var(--preview-height, 0px) + 12px)}
  .building-preview{position:absolute;left:8px;right:8px;bottom:8px;width:auto;max-height:min(36svh,330px);border-radius:17px}
  .preview-copy{padding:10px 14px 12px}
  .building-preview .card-photo img{height:88px}
  .building-preview .card-photo figcaption{height:19px;padding:3px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .preview-place{margin-bottom:3px}
  .building-preview h2{font-size:17px}
  .preview-architect{margin-bottom:6px}
  .preview-deck{display:none}
  .candidate-preview .preview-deck{display:block}
  .preview-status{margin-bottom:8px;gap:4px}
  .preview-status span{padding-block:2px}
  .preview-actions a{min-height:44px}
  .overlap-picker{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-width:none;max-height:55svh}
  .view-switch{position:fixed;left:0!important;right:0;bottom:0;transform:none;height:calc(62px + env(safe-area-inset-bottom));padding:4px max(14px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:grid;grid-template-columns:1fr 1fr;border:0;border-top:1px solid var(--app-border);border-radius:0;background:rgba(9,27,33,.98)}
  .view-switch [data-view="split"]{display:none}
  .view-switch button{min-width:0;height:52px;min-height:48px;flex-direction:column;gap:1px;border-radius:9px;font-size:10px}
  .view-switch button>span:first-child{font-size:18px;line-height:1}
  .explore-layout[data-view="list"] .building-list{display:block}
  .explore-layout[data-view="list"] .results-heading{display:block}
  .explore-layout[data-view="list"] .result-context{display:flex!important}
  .empty-state{padding:40px 20px}

  .site-header:not(.app-header){height:62px;padding:0 14px}
  .site-header:not(.app-header) .brand{font-size:15px}
  .site-header:not(.app-header) .brand-mark{width:32px;height:32px}
  .site-header:not(.app-header) nav{gap:12px}
  .site-header:not(.app-header) nav a{font-size:10px}
  .article-page{padding:26px 19px 45px}
  .article-heading h1{font-size:28px}
  .article-deck{font-size:16px}
  .facts{grid-template-columns:1fr;gap:14px}
  .facts>div{display:grid;grid-template-columns:66px 1fr;gap:8px}
  .facts dd{margin:0}
  .facts dt{padding-top:3px}
  .article-page h2{font-size:20px}
  .article-toc{gap:8px 19px}
  summary span{display:block;margin-left:19px}
  .verification{gap:14px 24px}
  .nearby a{align-items:flex-start;flex-direction:column;gap:3px}
  .nearby span{white-space:normal}
  body:not(.explore-page)>footer{padding:23px 14px;gap:13px;font-size:10px}
}

@media(max-width:345px){
  .site-header:not(.app-header){height:auto;min-height:62px;flex-wrap:wrap;gap:5px;padding-block:6px}
  .site-header:not(.app-header) nav{width:100%;justify-content:space-between}
  .app-header{padding-inline:7px}
  .app-header .brand-name small{display:none}
  .filters{grid-template-columns:minmax(78px,1fr) auto 40px 40px;gap:3px}
  .scope-switch button{min-width:39px}
  .icon-button,.quiet-button{width:40px}
  .search-control input{padding-right:20px}
  .building-preview .card-photo img{height:68px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
@media print{
  .site-header nav,.back-link,.article-toc,.article-actions,footer{display:none}
  body{background:white}
  .article-page{max-width:none;padding:0}
  .component{break-inside:avoid}
  .component>p{display:block!important}
  a{color:inherit}
  .article-page section{margin:20px 0}
}
