.map-page { background: var(--bg-paper); color: var(--text-ink); }
.map-page button,.map-page input { font: inherit; }
.map-page button { cursor: pointer; }
.map-page a { color: inherit; }
.map-page [hidden] { display: none !important; }
.map-page :is(button,a,input,[tabindex]):focus-visible { outline: 2px solid var(--accent-red); outline-offset: 4px; }
.map-page .nav-link[aria-current] { color: var(--accent-red); }
.skip-link { position: fixed; top: -70px; left: 20px; z-index: 100; padding: 12px; background: var(--bg-paper); }
.skip-link:focus { top: 10px; }
.atlas { width: min(1440px, calc(100% - 96px)); margin: 0 auto; }
.atlas-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding: 34px 0 32px; }
.eyebrow { display: flex; gap: 13px; font-size: 11px; color: var(--text-muted); margin-bottom: 19px; letter-spacing: .1em; }
.eyebrow a { text-decoration: none; }
.atlas h1 { font: 500 clamp(28px,3.1vw,46px)/1.5 var(--font-serif); letter-spacing: -.035em; }
.atlas h1 span { color: var(--archive-ink); }
.heading-note { padding-bottom: 5px; flex-shrink: 0; }
.folio { font: 11px/1.8 var(--font-sans); letter-spacing: .13em; color: var(--text-muted); }
.heading-note p { font-size: 12px; line-height: 1.9; color: var(--text-muted); margin-top: 8px; }
.atlas-tools { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--text-ink); border-bottom: 1px solid var(--border-subtle); min-height: 70px; }
.campus-tabs { display: flex; align-self: stretch; gap: 25px; }
.campus-tabs button { border: 0; border-bottom: 2px solid transparent; background: none; color: var(--text-muted); font-size: 13px; padding: 18px 0; }
.campus-tabs button[aria-pressed=true] { color: var(--accent-red); border-color: var(--accent-red); }
.tool-actions { display: flex; gap: 22px; align-items: center; }
.search-field { display: flex; align-items: center; gap: 12px; font-size: 11px; color: var(--text-muted); }
.search-field input { width: 152px; min-height: 40px; border: 0; border-bottom: 1px solid var(--border-subtle); background: none; border-radius: 0; font-size: 12px; color: var(--text-ink); }
.view-switch { display: flex; border: 1px solid var(--border-subtle); border-radius: 4px; padding: 3px; }
.view-switch button { background: transparent; border: 0; padding: 7px 14px; color: var(--text-muted); font-size: 12px; }
.view-switch button[aria-pressed=true] { background: var(--accent-blue); color: var(--bg-paper); border-radius: 2px; }
.load-status { font-size: 11px; color: var(--text-muted); padding: 12px 0; min-height: 40px; }
.atlas-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; align-items: start; gap: 30px; }
.spatial-column { min-width: 0; }
.map-panel { position: relative; height: 532px; background: var(--bg-surface-solid); border: 1px solid var(--border-subtle); box-shadow: var(--shadow-card); overflow: hidden; }
.map-caption { position: absolute; top: 22px; left: 25px; right: 24px; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; pointer-events: none; }
.map-caption>div { padding: 7px 12px; background: var(--bg-surface); border-left: 2px solid var(--archive-ink); backdrop-filter: blur(12px); }
.map-caption h2 { font: 500 24px/1.6 var(--font-serif); margin: 2px 0; }
.map-caption>div>span:last-child { font-size: 10px; color: var(--text-muted); }
.quiet-button { padding: 8px 10px; border: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--text-muted); border-radius: 3px; font-size: 11px !important; pointer-events: auto; min-height: 36px; }
.map-viewport { width: 100%; height: 100%; padding: 10px 12px 54px; overflow: hidden; cursor: grab; touch-action: none; }
.map-viewport:active { cursor: grabbing; }
.map-sheet { width: 100%; height: 100%; transform-origin: center; }
.map-sheet.is-focusing { transition: transform 480ms cubic-bezier(.22,.72,.22,1); }
.map-sheet img { width: 100%; height: 100%; object-fit: contain; user-select: none; filter: grayscale(1) sepia(.25) contrast(.85); mix-blend-mode: multiply; }
.map-panel.original .map-sheet img { filter: none; mix-blend-mode: normal; }
.map-bottom { position: absolute; bottom: 0; left: 0; right: 0; min-height: 47px; padding: 7px 18px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: var(--bg-surface); border-top: 1px solid var(--border-subtle); backdrop-filter: blur(12px); }
.map-note { font-size: 10px; color: var(--text-muted); }
.zoom-controls { display: flex; align-items: center; }
.zoom-controls button { width: 32px; min-height: 32px; border: 0; background: none; color: var(--text-ink); font-size: 19px; }
.zoom-controls button:disabled { opacity: .35; cursor: default; }
.zoom-controls button:last-child { font-size: 11px; width: 40px; border-left: 1px solid var(--border-subtle); margin-left: 5px; }
.zoom-controls output { font-size: 10px; width: 42px; text-align: center; }
.map-unavailable { height: 100%; padding: 160px 26px 40px; text-align: center; }
.map-unavailable h2 { font: 500 29px/1.8 var(--font-serif); margin: 15px 0; }
.map-unavailable p { font-size: 13px; color: var(--text-muted); line-height: 2; }
.index-panel { padding-top: 22px; }
.index-heading { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border-subtle); padding-bottom: 12px; }
.index-heading h2 { font: 500 18px var(--font-serif); }
.index-heading h2 span { font: 12px var(--font-sans); color: var(--archive-ink); margin-left: 9px; }
.index-heading>span { font-size: 12px; color: var(--text-muted); }
.place-index { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.index-entry { display: flex; gap: 12px; align-items: center; width: 100%; border: 0; border-bottom: 1px solid var(--border-subtle); padding: 16px 5px; text-align: left; background: transparent; color: var(--text-ink); font-size: 15px !important; }
.index-entry .entry-number { color: var(--text-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.index-entry .entry-arrow { margin-left: auto; color: var(--text-muted); }
.index-entry[aria-pressed=true] { color: var(--accent-red); }
.index-entry[aria-pressed=true] .entry-arrow { color: var(--accent-red); }
.index-entry:hover { background: var(--bg-surface); }
.place-detail { border-top: 2px solid var(--accent-blue); background: var(--bg-surface-solid); padding: 26px 25px 22px; min-height: 532px; box-shadow: var(--shadow-card); }
.detail-heading>.folio { display: block; color: var(--archive-ink); }
.detail-heading h2 { font: 500 29px/1.55 var(--font-serif); margin: 13px 0 11px; }
.detail-tags { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; font-size: 12px; color: var(--text-muted); }
.status-badge { padding: 3px 7px; color: var(--accent-blue); background: var(--bg-paper); border: 1px solid var(--border-subtle); border-radius: 2px; }
.place-description { font-size: 15px; line-height: 1.85; margin: 21px 0; }
.detail-section { border-top: 1px solid var(--border-subtle); padding-top: 15px; margin-top: 17px; }
.detail-section h3 { font-size: 13px; font-weight: 500; color: var(--text-muted); margin-bottom: 10px; }
.hierarchy { display: flex; flex-wrap: wrap; gap: 7px; font-size: 13px; align-items: center; }
.hierarchy button { padding: 0; border: 0; background: none; color: var(--accent-blue); text-decoration: underline; text-underline-offset: 3px; }
.location-note { font-size: 13px; line-height: 1.8; color: var(--text-muted); padding-left: 12px; border-left: 2px solid var(--accent-gold); margin-top: 13px; }
.photo-status { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: 11px; }
.photo-status span { display: block; margin-top: 4px; color: var(--text-muted); font-size: 10px; }
.source-summary { display: block; margin-bottom: 10px; font-size: 14px; line-height: 1.7; text-decoration: none; }
.source-summary:hover { color: var(--accent-red); }
.source-summary small { display: block; color: var(--text-muted); font-size: 12px; }
.sources-more summary,.story-excerpt summary { cursor: pointer; font-size: 13px; color: var(--accent-red); padding: 6px 0; }
.evidence-item { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border-subtle); }
.evidence-item p,.story-excerpt p { font-size: 13px; line-height: 1.8; margin-top: 8px; }
.evidence-item small { color: var(--text-muted); font-size: 12px; }
.detail-empty { color: var(--text-muted); font-size: 12px; line-height: 2; }
.drawer-toggle { display: none; }
.list-panel { min-height: 532px; }
.list-heading { padding: 18px 0 22px; border-bottom: 1px solid var(--text-ink); }
.list-heading h2 { font: 500 30px/1.8 var(--font-serif); }
.list-heading p { color: var(--text-muted); font-size: 14px; }
.list-entry { display: block; width: 100%; background: none; border: 0; border-bottom: 1px solid var(--border-subtle); padding: 19px 14px; text-align: left; color: var(--text-ink); }
.list-entry[aria-pressed=true] { background: var(--bg-surface-solid); border-left: 2px solid var(--accent-red); }
.list-entry strong { font: 500 20px/1.8 var(--font-serif); }
.list-entry small { float: right; font-size: 10px; color: var(--accent-blue); }
.list-entry p { color: var(--text-muted); font-size: 14px; line-height: 1.8; margin-top: 5px; }
.empty-results { padding: 28px 0; }
.empty-results h3 { font: 500 21px/1.8 var(--font-serif); }
.empty-results p { font-size: 14px; line-height: 1.8; color: var(--text-muted); margin: 8px 0; }
.text-button { border: 0; background: none; color: var(--accent-red); padding: 10px 0; font-size: 12px !important; }
.atlas-footer { display: flex; justify-content: space-between; gap: 30px; margin-top: 35px; padding: 22px 0 32px; border-top: 1px solid var(--border-subtle); }
.atlas-footer p,.footer-meta { font-size: 10px; color: var(--text-muted); line-height: 1.9; margin-top: 5px; }
.footer-meta { text-align: right; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.footer-meta a { text-underline-offset: 4px; }
@media (min-width: 1600px) { .map-panel { height: 600px; } }
@media (max-width: 1100px) { .atlas { width: calc(100% - 48px); } .atlas-layout { grid-template-columns: minmax(0,1fr) 300px; gap: 20px; } .atlas h1 { font-size: 32px; } .heading-note { max-width: 220px; } .place-detail { padding: 23px 20px; } .campus-tabs { gap: 18px; } .tool-actions { gap: 12px; } .map-caption { left: 10px; right: 10px; } .map-note { max-width: 110px; } }
@media (max-width: 760px) {
  .map-page .nav-menu-btn { display: flex; }
  .map-page .site-nav { height: 60px; min-height: 60px; padding: 0 20px; }
  .map-page .nav-links { display: none; }
  .map-page .nav-links.is-open { display: flex; top: 60px; }
  .atlas { width: calc(100% - 36px); }
  .atlas-heading { padding: 22px 0 23px; display: block; }
  .eyebrow { font-size: 10px; margin-bottom: 12px; }
  .atlas h1 { font-size: 29px; line-height: 1.65; }
  .atlas h1 span { display: block; }
  .heading-note { max-width: none; margin-top: 9px; }
  .heading-note .folio { display: none; }
  .heading-note p { font-size: 11px; margin: 0; }
  .heading-note br { display: none; }
  .atlas-tools { display: block; }
  .campus-tabs { min-height: 49px; justify-content: space-between; gap: 10px; }
  .campus-tabs button { padding: 13px 0; font-size: 12px; }
  .tool-actions { justify-content: space-between; padding: 10px 0; gap: 6px; border-top: 1px solid var(--border-subtle); }
  .search-field { gap: 8px; }
  .search-field input { width: 135px; font-size: 11px; }
  .view-switch button { padding: 7px 11px; }
  .load-status { font-size: 10px; padding: 10px 0; }
  .atlas-layout { display: flex; flex-direction: column; gap: 0; }
  .spatial-column { display: contents; }
  .map-panel { height: 320px; width: 100%; order: 0; }
  .list-panel { width: 100%; order: 0; }
  .index-panel { width: 100%; order: 2; }
  .empty-results { width: 100%; order: 2; }
  .map-caption { top: 12px; left: 12px; right: 12px; }
  .map-caption h2 { font-size: 18px; }
  .map-caption .folio { font-size: 8px; }
  .map-caption>div { padding: 5px 9px; }
  .map-bottom { padding: 5px 8px; }
  .map-note { max-width: 116px; font-size: 9px; }
  .zoom-controls button { min-height: 38px; width: 30px; }
  .map-viewport { padding: 12px 8px 54px; }
  .map-unavailable { padding: 130px 12px 30px; }
  .map-unavailable h2 { font-size: 23px; }
  .index-panel { padding-top: 18px; }
  .index-heading h2 { font-size: 16px; }
  .index-heading>span { font-size: 11px; }
  .place-index { grid-template-columns: 1fr; }
  .index-entry { padding: 14px 4px; }
  .place-detail { width: 100%; margin-top: 16px; min-height: 0; padding: 0 20px 23px; order: 1; }
.drawer-toggle { display: block; width: 100%; padding: 15px 0 12px; border: 0; background: none; color: var(--text-muted); font-size: 13px !important; }
  .detail-heading h2 { font-size: 25px; }
  .detail-heading>.folio { font-size: 9px; }
  .detail-body { display: none; }
  .place-detail.is-expanded { position: fixed; bottom: 0; left: 0; right: 0; z-index: 60; width: 100%; max-height: 62dvh; overflow-y: auto; margin: 0; padding: 0 23px 25px; padding-bottom: max(25px,env(safe-area-inset-bottom)); border-radius: 12px 12px 0 0; box-shadow: var(--shadow-hover); }
  .place-detail.is-expanded .drawer-toggle { position: sticky; top: 0; background: var(--bg-surface-solid); z-index: 2; }
  .place-detail.is-expanded .detail-body { display: block; }
  .atlas-footer { display: block; margin-top: 26px; padding-bottom: 25px; }
  .footer-meta { margin-top: 15px; text-align: left; }
  .list-panel { min-height: 0; }
  .list-entry { padding: 17px 7px; }
  .list-entry strong { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; } }

/* Image-relative user annotations. Position lives in original-image space. */
.map-sheet { position: relative; }
.map-markers { position: absolute; pointer-events: none; }
.map-pin,.map-cluster { position:absolute; pointer-events:auto; transform:translate(-50%,-50%) scale(var(--pin-scale,1)); transform-origin:center; touch-action:manipulation; }
.map-pin { width:28px; height:28px; border:0; background:transparent; color:var(--accent-red); display:grid; place-items:center; padding:0; }
.pin-dot { width:12px; height:12px; border:2px solid var(--bg-paper); border-radius:50%; background:var(--accent-red); box-shadow:0 0 0 1px var(--accent-red); }
.map-pin[aria-pressed=true] .pin-dot { width:15px; height:15px; }
.pin-label { position:absolute; top:2px; white-space:nowrap; font-size:11px; line-height:24px; padding:0 8px; background:var(--bg-surface-solid); border:1px solid var(--accent-red); border-radius:2px; }
.pin-left .pin-label { right:30px; }
.pin-right .pin-label { left:30px; }
.map-cluster { display:flex; align-items:center; gap:8px; white-space:nowrap; border:1px solid var(--accent-red); padding:8px 11px; background:var(--bg-surface-solid); color:var(--accent-red); border-radius:3px; font-size:12px !important; }
.map-cluster>span { font-family:var(--font-serif); font-size:18px; }
.map-cluster small { font-size:10px; color:var(--text-muted); }
.venue-links { display:flex; flex-direction:column; gap:10px; }
.venue-links button { color:var(--accent-red); text-align:left; border:0; background:transparent; font-size:13px !important; padding:4px 0; }

.pin-dot,.map-pin[aria-pressed=true] .pin-dot { width:21px; height:21px; display:grid; place-items:center; color:var(--bg-paper); font:10px/1 var(--font-sans); }
.map-pin .pin-label { display:none; }
.map-pin.show-label .pin-label,.map-pin:hover .pin-label,.map-pin:focus-visible .pin-label { display:block; }
.location-display { font-size:14px; line-height:1.9; margin-bottom:11px; }
.list-entry small { float:none; display:block; margin-bottom:6px; }
