:root{color-scheme:light;--reading-offset:100px}
html{scroll-padding-top:var(--reading-offset)}
.reading-bar{position:sticky;top:0;z-index:1100;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 4px 14px #00000008}
.reading-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding-top:12px;padding-bottom:12px;font-size:clamp(14px,calc(10px * var(--font-scale)),18px);line-height:1.5}
.reading-font{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1;min-width:0}
.reading-font label{color:var(--muted);flex-shrink:0}
.reading-bar select,.reading-bar input,.reading-bar button{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:4px;font:inherit;min-height:40px;padding:7px 11px}
.reading-bar select{width:190px;min-width:0;max-width:100%;text-overflow:ellipsis}
.reading-bar button{white-space:nowrap}
.reading-bar button:hover:not(:disabled){background:var(--wash);border-color:var(--green)}
.reading-bar button:disabled{opacity:.4}
.reading-bar #manual-font-toggle,.reading-bar #reading-reset{border-color:transparent;color:var(--muted);padding-left:5px;padding-right:5px}
.reading-size{display:flex;align-items:center;gap:4px;flex-shrink:0}
.reading-size button{width:40px;padding:2px;font-size:24px;line-height:1}
.reading-size output{min-width:60px;text-align:center;font-variant-numeric:tabular-nums}
#theme-toggle{display:flex;align-items:center;gap:8px}
#theme-toggle[aria-pressed=true]{color:var(--paper);background:var(--green);border-color:var(--green)}
.manual-font-form{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-basis:100%;border-top:1px solid var(--line);padding-top:10px}
.manual-font-form input{width:250px;min-width:0;max-width:100%}
.reading-status{flex-basis:100%;color:var(--muted);font-size:.95em;overflow-wrap:anywhere}
.reading-bar:has(.manual-font-form:not([hidden])){max-height:50vh;overflow:auto}
.place-card,.source-item{scroll-margin-top:0}

/* Additional reflow for the largest reading sizes and long local font names. */
@media screen{
  [data-large-type=true] .hero{grid-template-columns:minmax(0,1fr)}
  [data-large-type=true] .hero-art>img{height:auto;max-height:540px;object-fit:cover}
  [data-large-type=true] .place-grid:not(.list-layout){grid-template-columns:repeat(2,minmax(0,1fr))}
  [data-large-type=true] .route-grid{grid-template-columns:1fr}
  [data-large-type=true] .feature-grid,[data-large-type=true] .interlude,[data-large-type=true] .method-intro{grid-template-columns:minmax(0,1fr)}
  [data-large-type=true] .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  [data-large-type=true] .brand{min-width:0;flex-shrink:1}
  [data-large-type=true] .brand>span{overflow-wrap:anywhere}
  [data-large-type=true] .hero h1,[data-large-type=true] h2{overflow-wrap:anywhere}
}
@media(max-width:800px){
  .reading-controls{gap:8px 12px}
  .reading-font{flex-basis:100%}
  .reading-font select{flex:1;width:auto;max-width:280px}
  .reading-bar #load-local-fonts{font-size:.9em}
  [data-large-type=true] .place-grid:not(.list-layout),[data-large-type=true] .timeline{grid-template-columns:1fr}
}
@media(max-width:520px){
  .reading-controls{padding:10px 20px;gap:7px 10px}
  .reading-font{gap:6px}
  .reading-font select{flex-basis:calc(100% - 44px);max-width:none}
  .reading-bar #load-local-fonts{font-size:inherit}
  .reading-size{margin-right:auto}
  .reading-size output{min-width:52px}
  .reading-bar #theme-toggle{padding-left:8px;padding-right:8px;gap:5px}
  .manual-font-form label{flex-basis:100%}
  .manual-font-form input{flex:1;width:0}
}

/* Dark colors apply on screen; paper/PDF keeps the original light palette. */
@media screen{
  :root[data-theme=dark]{color-scheme:dark;--paper:#1b201c;--ink:#e8eade;--muted:#adb4a7;--green:#b4c5a6;--red:#e7a38d;--line:#434b42;--wash:#2a332b}
  [data-theme=dark] .atlas-section,[data-theme=dark] .method-section{background:#222922}
  [data-theme=dark] .hero-art>img,[data-theme=dark] .feature-art img,[data-theme=dark] .interlude img,[data-theme=dark] .card-image>img{mix-blend-mode:normal}
  [data-theme=dark] .art-stamp,[data-theme=dark] .card-number,[data-theme=dark] .bookmark-button{background:#1b201ce8;border-color:var(--line)}
  [data-theme=dark] .brand>img{background:#e9ecdf;border-radius:3px}
  [data-theme=dark] .chip.active,[data-theme=dark] .saved-filter[aria-pressed=true],[data-theme=dark] .view-toggle button.active{color:var(--paper)}
  [data-theme=dark] .button.primary:hover{background:#cad9bd}
  [data-theme=dark] .chip:hover:not(.active){background:var(--wash)}
  [data-theme=dark] .place-card,[data-theme=dark] .map-shell,[data-theme=dark] .evidence-grid,[data-theme=dark] .fact-notes details,[data-theme=dark] .map-list-row,[data-theme=dark] .map-number{border-color:var(--line)}
  [data-theme=dark] .card-summary,[data-theme=dark] .card-meta span,[data-theme=dark] .detail-content p,[data-theme=dark] .method-intro p{color:var(--muted)}
  [data-theme=dark] .detail-content .caution{background:var(--wash);border-color:#899b7e}
  [data-theme=dark] .badge.testimony{color:#c5d9b5;background:#2d3c2c;border-color:#566b4b}
  [data-theme=dark] .badge.reported{color:#ead2a3;background:#3b3425;border-color:#76643f}
  [data-theme=dark] .badge.context{color:#c8d0d3;background:#303a3d;border-color:#56696c}
  [data-theme=dark] .timeline-section{background:#28362c;color:var(--ink)}
  [data-theme=dark] .source-item:target{background:var(--wash);outline-color:var(--wash)}
  [data-theme=dark] .skip{color:var(--paper)}
  [data-theme=dark] #map{background:#27302a}
  [data-theme=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.8) saturate(.6)}
  [data-theme=dark] .map-label,[data-theme=dark] .map-overlay button,[data-theme=dark] .leaflet-control-attribution{background:#1b201cee;color:var(--ink);border-color:var(--line)}
  [data-theme=dark] .leaflet-control-attribution a,[data-theme=dark] .leaflet-container a{color:var(--green)}
  [data-theme=dark] .leaflet-bar a,[data-theme=dark] .leaflet-popup-content-wrapper,[data-theme=dark] .leaflet-popup-tip{background:var(--paper);color:var(--ink);border-color:var(--line)}
  [data-theme=dark] .leaflet-bar a:hover{background:var(--wash)}
  [data-theme=dark] .leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
  [data-theme=dark] .atlas-pin{color:#1b201c;border-color:#1b201c}
  [data-theme=dark] .atlas-pin.reported{background:#dec28a}
  [data-theme=dark] .atlas-pin.context{background:#b7c6cc}
  [data-theme=dark] .cluster-pin{background:#b4c5a6;color:#1b201c;border-color:#1b201c;box-shadow:0 0 0 4px #b4c5a628}
  [data-theme=dark] .map-status{background:#3b3425;color:#ead2a3;border-color:#76643f}
}
@media print{
  :root{color-scheme:light}
  .reading-bar{display:none!important}
  html{scroll-padding-top:0}
}
