:root {
  --paper: #f5f2eb; --surface: #fffdf8; --ink: #242b27; --muted: #62665e;
  --forest: #294c3d; --forest-hover: #1d3b2e; --soft-green: #e5ebe2;
  --line: #d9d9ce; --focus: #9e520d; --danger: #8e352a; --danger-bg: #faeee8;
  --ochre: #8b5924; --soft-ochre: #f1e8d8; --shadow: 0 18px 55px #26342818;
  --serif: Iowan Old Style, Baskerville, Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --s1: .4rem; --s2: .75rem; --s3: 1rem; --s4: 1.5rem; --s5: 2rem; --s6: 3rem; --s7: 4.5rem;
  --radius: 8px; --measure: 68ch; --wide: 1200px;
}
* { box-sizing: border-box; }
html { font-size: 18px; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); font-size: 1rem; line-height: 1.6; background: var(--paper); color: var(--ink); }
body:has(dialog[open]) { overflow: hidden; }
h1,h2,h3,p,blockquote { margin: 0; }
h1,h2,h3 { font-family: var(--serif); font-weight: 500; line-height: 1.12; text-wrap: balance; }
h1 { font-size: clamp(2.25rem, 6.5vw, 4.8rem); letter-spacing: -.045em; }
h2 { font-size: clamp(1.65rem, 3vw, 2.3rem); letter-spacing: -.025em; }
h3 { font-size: 1.45rem; }
p { max-width: var(--measure); }
a { color: var(--forest); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
button, input, textarea, select { font: inherit; }
button, .button { min-height: 48px; border: 1px solid var(--forest); border-radius: var(--radius); padding: .62rem 1rem; background: var(--forest); color: #fff; cursor: pointer; text-decoration: none; display: inline-flex; justify-content: center; align-items: center; gap: .5rem; line-height: 1.3; font-weight: 600; transition: background-color .15s, border-color .15s; }
button:hover, .button:hover { background: var(--forest-hover); }
button:disabled { cursor: wait; opacity: .65; }
button.secondary, .button.secondary { background: transparent; color: var(--forest); border-color: var(--line); }
button.secondary:hover, .button.secondary:hover { background: var(--soft-green); border-color: var(--forest); }
button.quiet-button { background: transparent; border-color: transparent; color: var(--forest); padding: .6rem .5rem; }
button.quiet-button:hover { background: var(--soft-green); }
button.danger { background: var(--danger); border-color: var(--danger); }
button.small, .button.small { font-size: .92rem; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
input, textarea, select { border: 1px solid #9b9e93; border-radius: var(--radius); color: var(--ink); background: var(--surface); padding: .75rem .85rem; width: 100%; min-height: 48px; max-width: 100%; }
textarea { resize: vertical; min-height: 150px; line-height: 1.6; }
input::placeholder, textarea::placeholder { color: #6d7168; opacity: 1; }
label, legend { font-weight: 600; }
label { display: block; margin-bottom: .4rem; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
select { text-overflow: ellipsis; }
pre, blockquote, .source-name, .exact-text { overflow-wrap: anywhere; }
blockquote, .exact-text { white-space: pre-wrap; }
blockquote { border-left: 3px solid var(--forest); padding: .5rem 0 .5rem 1rem; }
img, video { display: block; width: 100%; max-width: 100%; height: auto; }
video { background: #1d211e; aspect-ratio: 4/3; object-fit: contain; }
img { object-fit: cover; }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--s5) 0; }
[hidden] { display: none !important; }
.skip-link { position: absolute; left: 12px; top: -90px; z-index: 30; padding: .8rem; background: var(--surface); }
.skip-link:focus { top: 10px; }
.local-strip { min-height: 34px; padding: .3rem var(--s3); display: flex; justify-content: center; align-items: center; gap: .4rem; font-size: .78rem; letter-spacing: .025em; background: #e7ebdf; color: #374938; text-align: center; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--forest); flex-shrink: 0; }
.site-header, main, .site-footer { width: min(var(--wide), calc(100% - 2 * var(--s3))); margin-inline: auto; }
.site-header { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); padding: var(--s4) 0; border-bottom: 1px solid var(--line); }
.brand { text-decoration: none; display: inline-flex; flex-direction: column; color: var(--ink); line-height: 1; }
.brand-top { font-size: .66rem; letter-spacing: .25em; margin-bottom: .3rem; font-weight: 650; }
.brand-bottom { font-family: var(--serif); font-size: 2rem; letter-spacing: -.04em; }
.main-nav { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.main-nav a { padding: .6rem .65rem; min-height: 46px; color: var(--muted); font-size: .94rem; text-decoration: none; border-radius: var(--radius); }
.main-nav a[aria-current="page"] { color: var(--forest); background: var(--soft-green); font-weight: 600; }
.main-nav a:hover { background: var(--soft-green); color: var(--forest); }
main { min-height: 65vh; padding-top: var(--s5); padding-bottom: var(--s7); }
.site-footer { padding: var(--s4) 0 var(--s5); border-top: 1px solid var(--line); display: grid; gap: .7rem; font-size: .8rem; color: var(--muted); }
.site-footer p:first-child { letter-spacing: .16em; font-size: .7rem; }
.eyebrow { color: var(--forest); display: block; font-size: .76rem; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; }
.lede { font-size: 1.12rem; line-height: 1.6; color: #4f574e; max-width: 58ch; }
.muted, .help-text { color: var(--muted); }
.help-text, .meta { font-size: .86rem; line-height: 1.55; }
.meta { color: var(--muted); }
.stack > * + * { margin-top: var(--s3); }
.stack-lg > * + * { margin-top: var(--s4); }
.cluster { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2); }
.align-start { align-items: flex-start; }
.spread { justify-content: space-between; }
.section { margin-top: var(--s6); }
.section-head { display: flex; flex-wrap: wrap; gap: var(--s3); justify-content: space-between; align-items: baseline; margin-bottom: var(--s4); }
.hero { display: grid; gap: var(--s4); }
.hero-copy { padding: var(--s3) 0; }
.hero-copy .eyebrow { margin-bottom: var(--s3); }
.hero-copy .lede { margin-top: var(--s4); }
.hero-image { overflow: hidden; border-radius: var(--radius); background: #dedbca; margin: 0; }
.hero-image img { aspect-ratio: 4/3; object-fit: contain; background: #202720; }
.hero-image figcaption { font-size: .78rem; padding: .7rem .85rem; color: #525a4e; background: #e9e9df; }
.search-panel { border-bottom: 1px solid var(--line); padding-bottom: var(--s5); margin-top: var(--s5); }
.search-line { display: grid; gap: var(--s2); }
.search-line input { min-height: 56px; background: var(--surface); }
.filter-line { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s3); }
.filter-line > div { flex: 1; min-width: 130px; max-width: 230px; }
.filter-line label { font-size: .84rem; font-weight: 500; }
.pills { display: flex; flex-wrap: wrap; gap: .55rem; }
.pill { background: transparent; border: 1px solid var(--line); color: var(--forest); border-radius: 30px; font-size: .88rem; padding: .55rem .9rem; min-height: 44px; }
.pill:hover, .pill[aria-pressed="true"] { color: var(--forest); background: var(--soft-green); border-color: var(--forest); }
.scene-grid { display: grid; gap: var(--s4); }
.scene-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.scene-image { aspect-ratio: 4/3; background: #e4e4d9; overflow: hidden; display: flex; justify-content: center; align-items: center; color: var(--muted); }
.scene-image img { width: 100%; height: 100%; object-fit: contain; background: #202720; }
.image-placeholder { padding: var(--s4); text-align: center; font-family: var(--serif); font-size: 1.5rem; }
.scene-card-body { padding: var(--s4); display: grid; gap: var(--s2); flex: 1; }
.scene-card-body button { justify-self: start; margin-top: .3rem; }
.scene-card h3 { font-size: 1.55rem; }
.caption-excerpt { color: #555e53; font-size: .92rem; }
.tag { font-size: .73rem; line-height: 1.4; display: inline-block; border-radius: 4px; background: var(--soft-green); color: #36513a; padding: .26rem .5rem; }
.tag.unconfirmed { color: #775323; background: var(--soft-ochre); }
.tag.test { background: #e8e7ed; color: #585363; }
.story-panel { display: grid; gap: var(--s5); padding: var(--s5); background: var(--soft-green); border-radius: var(--radius); }
.story-panel .story-copy { display: grid; gap: var(--s3); align-content: center; }
.story-panel img { aspect-ratio: 4/3; object-fit: contain; background: #202720; border-radius: 5px; }
.notice { padding: var(--s3) var(--s4); background: #e9ede4; border-left: 3px solid var(--forest); border-radius: 0 var(--radius) var(--radius) 0; font-size: .94rem; }
.notice.error { background: var(--danger-bg); border-color: var(--danger); color: #723126; }
.notice.warning { background: var(--soft-ochre); border-color: var(--ochre); color: #664a2a; }
.loading-state, .empty-state { padding: var(--s6) var(--s4); border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); text-align: center; }
.review-intro { max-width: 760px; margin-bottom: var(--s5); }
.review-intro h1 { font-size: clamp(2.1rem, 5vw, 3.35rem); margin-top: var(--s2); }
.review-layout { display: grid; gap: var(--s5); align-items: start; }
.review-media { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.media-context { padding: var(--s4); display: grid; gap: .55rem; }
.reply-box { padding: var(--s4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.reply-box h2 { margin-bottom: var(--s3); font-size: 1.65rem; }
.reply-box textarea { min-height: 185px; }
.reply-box .actions { margin-top: var(--s4); }
.field { margin-bottom: var(--s3); }
.field .help-text { margin-top: .45rem; }
.actions { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; }
.receipt { background: #edf2e8; border: 1px solid #bccab8; padding: var(--s4); border-radius: var(--radius); }
.receipt h2 { color: var(--forest); }
details { border-top: 1px solid var(--line); padding-top: var(--s2); }
summary { cursor: pointer; color: var(--forest); min-height: 44px; display: list-item; padding: .5rem 0; font-weight: 550; }
details > :not(summary) { margin-top: var(--s2); }
.source-facts { display: grid; gap: .65rem; margin: 0; font-size: .9rem; }
.source-facts div { min-width: 0; }
.source-facts dt { color: var(--muted); font-size: .8rem; }
.source-facts dd { margin: .12rem 0 0; overflow-wrap: anywhere; }
.desk-header { display: grid; gap: var(--s3); margin-bottom: var(--s5); }
.desk-header h1 { font-size: clamp(2.25rem, 5vw, 3.8rem); }
.desk-layout { display: grid; gap: var(--s4); align-items: start; }
.desk-panel { padding: var(--s4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); min-width: 0; }
.desk-panel h2 { font-size: 1.7rem; }
.desk-sidebar { display: grid; gap: var(--s4); min-width: 0; }
.desk-search { display: grid; gap: var(--s2); margin-top: var(--s4); align-items: end; }
.question-list { display: grid; gap: var(--s2); margin-top: var(--s3); }
.question-item { display: grid; gap: .5rem; border: 1px solid var(--line); border-radius: var(--radius); padding: var(--s3); background: var(--surface); }
.question-item.selected { border-color: var(--forest); box-shadow: inset 3px 0 var(--forest); }
.question-text { font-size: .98rem; line-height: 1.55; }
.question-item button { justify-self: start; }
.question-item .meta { font-size: .76rem; }
.pager { display: flex; justify-content: space-between; align-items: center; gap: .6rem; flex-wrap: wrap; margin-top: var(--s4); }
.selected-question { border-left: 3px solid var(--forest); padding-left: var(--s3); margin: var(--s3) 0 var(--s4); }
.checkbox-field { display: flex; align-items: flex-start; gap: .65rem; font-size: .9rem; font-weight: 400; cursor: pointer; }
.checkbox-field input { width: 23px; height: 23px; min-height: 23px; margin-top: .2rem; flex-shrink: 0; accent-color: var(--forest); }
.contribution-list { display: grid; gap: var(--s3); }
.contribution { border-bottom: 1px solid var(--line); padding-bottom: var(--s4); }
.contribution:last-child { border: 0; padding-bottom: 0; }
.contribution blockquote { margin: var(--s2) 0; font-size: .96rem; }
.contribution h3 { font-size: 1.2rem; }
.email-preview { margin-block: var(--s3); background: var(--paper); padding: var(--s3); border-radius: var(--radius); }
dialog { width: min(850px, calc(100% - 1.25rem)); padding: var(--s4); max-height: 90dvh; overflow: auto; border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 12px; box-shadow: var(--shadow); }
dialog::backdrop { background: #18241cd4; }
.dialog-top { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); margin-bottom: var(--s3); }
.dialog-top .quiet-button { flex-shrink: 0; }
#scene-dialog-body { display: grid; gap: var(--s4); }
#scene-dialog-title { font-size: clamp(1.7rem, 4vw, 2.5rem); }
.media-error { margin: var(--s3); }
.flow-status { margin-top: var(--s3); }
@media (min-width: 620px) {
  .site-header { flex-direction: row; align-items: center; justify-content: space-between; padding-block: var(--s4); }
  .site-header, main, .site-footer { width: min(var(--wide), calc(100% - 2 * var(--s5))); }
  .search-line { grid-template-columns: minmax(0,1fr) auto; }
  .scene-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .source-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .desk-search { grid-template-columns: minmax(0,1fr) auto; }
}
@media (min-width: 900px) {
  main { padding-top: var(--s6); }
  .hero { grid-template-columns: 1.02fr 1fr; gap: var(--s6); align-items: center; }
  .story-panel { grid-template-columns: 1fr 1.05fr; padding: var(--s6); }
  .review-layout { grid-template-columns: 1.2fr 1fr; }
  .reply-box { padding: var(--s5); }
  .desk-layout { grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr); }
  .site-footer { grid-template-columns: 1fr 2fr; }
}
@media (min-width: 1150px) { .scene-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 375px) { .main-nav { gap: 0; } .main-nav a { padding-inline: .5rem; } .strip-detail { display: none; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }

/* Full archive: the same paper, type and touch controls as the memory invitation. */
.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; }
.archive-hero { display:grid; gap:2rem; align-items:center; padding-bottom:1.5rem; }
.hero-actions { margin-top:1.7rem; }
.hero-footnote { font-size:.77rem; color:var(--muted); margin-top:1.5rem; }
.film-collage { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; align-items:start; }
.collage-frame { display:block; padding:.4rem; background:var(--surface); border:1px solid var(--line); box-shadow:0 7px 15px #242b2710; text-decoration:none; min-width:0; }
.collage-frame img { aspect-ratio:4/3; object-fit:contain; background:#202720; }
.collage-frame span { display:block; font-size:.7rem; line-height:1.4; padding:.65rem .35rem .4rem; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.collage-0 { grid-column:1/-1; margin-right:9%; }
.collage-1 { margin-left:7%; margin-top:.6rem; }
.collage-2 { margin-top:-1.3rem; }
.home-search { background:#e9e9df; padding:1.25rem; margin-top:2.25rem; border-radius:var(--radius); }
.home-search label { font-family:var(--serif); font-size:1.5rem; font-weight:500; margin-bottom:.8rem; }
.video-grid { display:grid; gap:2rem 1.25rem; }
.video-card { min-width:0; }
.video-art { display:block; position:relative; background:#dddcd1; aspect-ratio:4/3; overflow:hidden; border-radius:5px; }
.video-art img { height:100%; width:100%; object-fit:contain; background:#202720; }
.video-art:hover img { opacity:.9; }
.runtime { position:absolute; right:.5rem; bottom:.5rem; font-size:.7rem; color:#fff; background:#202720e8; padding:.2rem .4rem; border-radius:3px; }
.video-card-body { display:grid; gap:.5rem; padding-top:.8rem; }
.video-card .eyebrow { letter-spacing:.07em; font-size:.66rem; }
.edition-label { margin-left:.25rem; color:var(--muted); font-weight:500; }
.video-card h3 { font-size:1.32rem; letter-spacing:-.02em; }
.video-card h3 a { color:var(--ink); text-decoration:none; }
.video-card h3 a:hover { text-decoration:underline; }
.video-summary { font-size:.84rem; line-height:1.6; color:var(--muted); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.video-card .meta { font-size:.72rem; }
.chapter-panel { display:grid; gap:2rem; background:var(--soft-green); border-radius:8px; padding:1.5rem; }
.people-cloud { display:flex; align-content:center; align-items:center; flex-wrap:wrap; gap:.6rem; }
.people-cloud a { border:1px solid #b7c4b5; padding:.55rem .8rem; border-radius:6px; text-decoration:none; background:#f5f7f060; }
.people-cloud a:hover { background:var(--surface); }
.people-cloud small { display:block; color:var(--muted); font-size:.63rem; }
.collection-grid { display:grid; gap:1rem; }
.collection-tile { display:grid; gap:.65rem; padding:1.4rem; background:var(--surface); border:1px solid var(--line); border-radius:6px; text-decoration:none; color:var(--ink); position:relative; }
.collection-tile:hover { background:var(--soft-green); }
.collection-tile p { font-size:.85rem; color:var(--muted); }
.collection-number { font-size:.7rem; letter-spacing:.1em; color:var(--ochre); }
.collection-arrow { position:absolute; right:1.2rem; top:1.2rem; }
.catalogue-accounting { margin-top:3rem; font-size:.8rem; color:var(--muted); max-width:85ch; }
.catalogue-accounting p, .catalogue-accounting ul { margin-top:.7rem; }
.catalogue-accounting summary { min-height:44px; padding:.6rem 0; }
.page-heading { margin-bottom:1.75rem; }
.page-heading h1 { font-size:clamp(2.5rem,5vw,4rem); }
.catalogue-search { display:grid; gap:1rem; background:#e9e9df; padding:1.3rem; border-radius:8px; }
.library-filters { display:grid; gap:.8rem; }
.library-filters label { font-size:.78rem; }
.catalogue-search .help-text { font-size:.73rem; }
.back-link { display:inline-flex; align-items:center; min-height:44px; margin-bottom:1.1rem; font-size:.85rem; }
.video-detail { display:grid; gap:2rem; }
.video-detail h1 { font-size:clamp(2.1rem,4.3vw,3.4rem); }
.detail-art img { aspect-ratio:4/3; object-fit:contain; background:#202720; border-radius:6px; }
.detail-art p { margin-top:.75rem; }
.detail-columns { display:grid; gap:2rem; }
.detail-columns h3 { font-size:1.2rem; }
.person-search { max-width:600px; margin-bottom:1rem; }
.people-grid { display:grid; gap:.8rem; }
.person-card { display:flex; align-items:center; gap:1rem; padding:1rem; background:var(--surface); border:1px solid var(--line); border-radius:6px; color:var(--ink); text-decoration:none; min-width:0; }
.person-card:hover { background:var(--soft-green); }
.person-card > div { flex:1; min-width:0; overflow-wrap:anywhere; }
.person-card h2 { font-size:1.3rem; }
.person-card p { font-size:.75rem; color:var(--muted); margin-top:.2rem; }
.person-initial { display:grid; place-items:center; flex-shrink:0; width:2.5rem; height:2.5rem; background:var(--soft-green); border-radius:50%; color:var(--forest); font-family:var(--serif); font-size:1.5rem; }
.chronology { display:grid; gap:1.5rem; }
.chronology-row { display:grid; gap:1rem; padding-bottom:1.5rem; border-bottom:1px solid var(--line); }
.chronology-row h2 { font-size:1.5rem; }
.chronology-date { font-family:var(--serif); font-size:1.5rem; color:var(--forest); }
.chronology-image img { aspect-ratio:4/3; object-fit:contain; background:#202720; border-radius:4px; }
.atlas-controls { display:grid; gap:1rem; background:var(--surface); padding:1rem; border:1px solid var(--line); border-radius:8px; margin-bottom:.8rem; }
.atlas-controls label { font-size:.83rem; }
.atlas-years input[type="range"] { accent-color:var(--forest); padding:0; border:0; background:transparent; cursor:pointer; }
.atlas-years .checkbox-field { margin:0; align-items:center; }
.atlas-years .checkbox-field input { margin:0; }
.map-switch { display:flex; gap:.4rem; align-items:end; }
.map-switch button[aria-pressed="true"] { background:var(--forest); color:#fff; }
.atlas-layout { display:grid; gap:1.5rem; align-items:start; }
.map-panel { min-width:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#e4edeb; }
.map-graphic { overflow:hidden; }
.map-graphic svg { width:100%; display:block; min-height:220px; }
.map-water { fill:#e4edeb; }
.map-land { fill:#f9f6ec; stroke:#c8cebc; stroke-width:.25; }
.map-hit { fill:transparent; }
.map-dot { fill:#345d48; stroke:#fffdf8; stroke-width:.5; }
.map-point { cursor:pointer; }
.map-point:hover .map-dot, .map-point[aria-pressed="true"] .map-dot { fill:#a25727; stroke:#432d19; stroke-width:.45; }
.map-point:focus { outline:none; }
.map-point:focus .map-dot { stroke:#9e520d; stroke-width:1.4; }
.map-caption { display:grid; gap:.35rem; padding:.85rem; font-size:.7rem; background:#f0f2e9; color:var(--muted); }
.atlas-sidebar h2 { font-size:1.45rem; margin-bottom:.5rem; }
.atlas-place-list { margin-top:.8rem; max-height:385px; overflow:auto; padding:.25rem; }
.atlas-place { display:flex; width:100%; justify-content:space-between; align-items:center; background:transparent; color:var(--forest); border:0; border-radius:4px; padding:.55rem .65rem; text-align:left; font-weight:500; font-size:.87rem; }
.atlas-place small { display:block; font-size:.65rem; font-weight:400; color:var(--muted); }
.atlas-place:hover, .atlas-place[aria-pressed="true"] { background:var(--soft-green); }
.map-source-labels { margin-bottom:1.2rem; }
@media (min-width:540px) {
 .video-grid, .collection-grid, .people-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .library-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .chronology-row { grid-template-columns:1fr 2fr; }
 .chronology-date { grid-column:1/-1; }
}
@media (min-width:900px) {
 .archive-hero { grid-template-columns:1.05fr 1fr; gap:4rem; }
 .film-collage { align-self:center; }
 .collage-0 { margin-left:2%; }
 .collage-1, .collage-2 { margin-top:-1rem; }
 .chapter-panel { grid-template-columns:1.2fr 1fr; padding:2.4rem; gap:3rem; }
 .video-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .collection-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .collection-tile h3 { font-size:1.3rem; }
 .library-filters { grid-template-columns:repeat(5,minmax(0,1fr)); }
 .video-detail { grid-template-columns:1.1fr 1fr; gap:2.3rem; }
 .detail-columns { grid-template-columns:1fr 1fr; gap:3rem; }
 .people-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .chronology-row { grid-template-columns:110px 200px 1fr; gap:1.5rem; }
 .chronology-date { grid-column:auto; }
 .atlas-controls { grid-template-columns:1fr 1.6fr auto; gap:1.8rem; align-items:center; padding:1.2rem; }
 .atlas-layout { grid-template-columns:minmax(0,1fr) 260px; }
}
@media (max-width:899px) { .site-header { flex-wrap:wrap; } .main-nav { gap:.15rem; } .main-nav a { font-size:.85rem; padding:.55rem; } }

.map-borders { fill:none; stroke:#b9c1b1; stroke-width:.3; }
.map-states { fill:none; stroke:#cad0be; stroke-width:.18; }
.region-dot { fill:#f9f6ec; stroke:#345d48; stroke-width:.8; }

.library-options summary { cursor:pointer; min-height:44px; padding:.5rem 0; font-weight:600; font-size:.88rem; }
.library-options[open] .library-filters { margin-top:.8rem; }

/* Search passages reuse the archive's paper, typography and touch controls. */
.caption-start { padding:var(--s4); border-left:3px solid var(--forest); }
.caption-results { display:grid; gap:var(--s5); }
.caption-result { display:grid; gap:var(--s3); padding-bottom:var(--s5); border-bottom:1px solid var(--line); min-width:0; }
.caption-result h3 a { color:var(--ink); text-decoration:none; }
.caption-result h3 a:hover { text-decoration:underline; }
.caption-result .eyebrow { font-size:.66rem; letter-spacing:.07em; }
.caption-result-art { max-width:210px; align-self:start; }
.caption-result-art img { aspect-ratio:4/3; object-fit:contain; background:var(--ink); border-radius:5px; }
.caption-time { font-variant-numeric:tabular-nums; font-weight:600; color:var(--forest); }
.caption-time span { font-size:.8rem; font-weight:400; color:var(--muted); }
.caption-quote { background:var(--surface); padding:var(--s3); max-width:var(--measure); }
.caption-open { display:inline-flex; align-items:center; min-height:44px; font-size:.9rem; }
.caption-warning { font-size:.83rem; }
.caption-passage-layout { display:grid; gap:var(--s5); }
.caption-passage-layout > * { min-width:0; }
.caption-cues { list-style:none; padding:0; margin:0; }
.caption-cues li { padding:var(--s3) 0; border-top:1px solid var(--line); display:grid; gap:var(--s2); }
.caption-cue-time { font-variant-numeric:tabular-nums; color:var(--forest); font-size:.78rem; }
.caption-cue-time span { color:var(--muted); }
.caption-recording { padding:var(--s4); border:1px solid var(--line); border-radius:var(--radius); align-self:start; }
.caption-recording img { aspect-ratio:4/3; object-fit:contain; background:var(--ink); }
.caption-recording h2 { font-size:1.55rem; }
@media (min-width:640px) {
  .caption-result:has(.caption-result-art) { grid-template-columns:160px minmax(0,1fr); gap:var(--s4); }
  .caption-cues li { grid-template-columns:110px minmax(0,1fr); gap:var(--s4); }
  .caption-cue-time span { display:block; }
}
@media (min-width:900px) { .caption-passage-layout { grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr); gap:var(--s6); } }
