.bible-atlas{--ba-water:#dbe6e4;--ba-land:#eee4cf;--ba-river:#6a9299;--ba-route:#aa594b;--ba-label:#6b6855;--ba-point:#825849;min-width:0}html[data-theme="dark"] .bible-atlas{--ba-water:#192d35;--ba-land:#303c35;--ba-river:#6c9a9b;--ba-route:#e1a189;--ba-label:#c0c3a8;--ba-point:#e1b98d}.ba-intro{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:14px 0 34px}.ba-intro h1{font:400 clamp(2.5rem,4.8vw,4.6rem)/1.08 var(--font-serif);letter-spacing:-.04em;margin:14px 0 20px}.ba-intro h1 em{color:var(--color-accent);font-weight:400}.ba-intro>div>p:last-child{color:var(--color-muted);font-size:.95rem;line-height:1.8;max-width:650px}.ba-timeline-link{color:var(--color-meta);font-size: .9375rem;white-space:nowrap;padding-bottom:8px;border-bottom:1px solid var(--color-line);margin-bottom:10px}.ba-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 20px}.ba-periods button{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-ink);padding:18px 22px;text-align:left;cursor:pointer}.ba-periods small{display:block;color:var(--color-meta);letter-spacing:.08em;font-size: .9375rem;margin-bottom:8px;text-transform:uppercase}.ba-periods strong{font:400 1.2rem var(--font-serif)}.ba-periods button[aria-pressed=true]{border-color:var(--color-accent);box-shadow:inset 0 -3px var(--color-accent);background:color-mix(in srgb,var(--color-surface) 82%,var(--color-soft))}.ba-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;border:1px solid var(--color-line);border-radius:18px 7px 18px 7px;overflow:hidden;box-shadow:var(--shadow-soft)}.ba-map-wrap{position:relative;min-height:570px}.ba-map-wrap #bible-atlas-map{position:absolute;inset:0;background:var(--ba-water);font-family:var(--font-sans);z-index:0}.bible-atlas .leaflet-container .ba-land{fill:var(--ba-land);stroke:color-mix(in srgb,var(--ba-label) 40%,transparent)}.bible-atlas .leaflet-container .ba-river{stroke:var(--ba-river)}.bible-atlas .leaflet-container .ba-route{stroke:var(--ba-route)}.bible-atlas.ba-return{--ba-route:#65886c}html[data-theme="dark"] .bible-atlas.ba-return{--ba-route:#c2d49b}.ba-map-label{color:var(--ba-label);font-size: .9375rem;letter-spacing:.18em;text-align:center;white-space:nowrap;opacity:.75;text-shadow:0 1px 3px var(--ba-land);pointer-events:none}.ba-water-label{font:italic .9375rem var(--font-serif);color:var(--ba-river);letter-spacing:.05em}.ba-empire-label{font-size: .9375rem;letter-spacing:.2em;opacity:.65}.ba-place-marker{background:transparent;border:0;cursor:pointer}.ba-marker-dot{display:block;width:11px;height:11px;border:2px solid var(--ba-land);border-radius:50%;background:var(--ba-point);box-shadow:0 0 0 1px var(--ba-point);position:absolute;left:4px;top:4px}.ba-marker-name{position:absolute;left:20px;top:-3px;color:var(--color-ink);font:600 .9375rem/1.5 var(--font-serif);white-space:nowrap;background:color-mix(in srgb,var(--ba-land) 85%,transparent);padding:1px 5px;border-radius:3px}.ba-place-marker.is-selected .ba-marker-dot{background:var(--ba-route);box-shadow:0 0 0 6px color-mix(in srgb,var(--ba-route) 22%,transparent)}.ba-place-marker.is-selected .ba-marker-name{color:var(--ba-route);font-weight:700}.bible-atlas .leaflet-control-zoom a{background:var(--color-paper);color:var(--color-ink);border-color:var(--color-line)}.bible-atlas .leaflet-bar{border:1px solid var(--color-line);box-shadow:var(--shadow-soft)}.bible-atlas .leaflet-control-attribution{background:color-mix(in srgb,var(--color-paper) 90%,transparent);color:var(--color-muted);font-size: .9375rem}.bible-atlas .leaflet-control-attribution a{color:var(--color-meta)}.bible-atlas .leaflet-control-scale-line{background:var(--color-paper);color:var(--color-muted);border-color:var(--color-muted);font-size: .9375rem}.ba-reset{position:absolute;z-index:500;top:18px;right:18px;border:1px solid var(--color-line);background:var(--color-paper);color:var(--color-ink);border-radius:30px;padding:10px 14px;cursor:pointer;font-size: .9375rem;box-shadow:var(--shadow-soft)}.ba-map-caption{position:absolute;z-index:400;top:22px;left:22px;display:flex;align-items:center;gap:15px;color:var(--ba-label);font-size: .9375rem;letter-spacing:.17em;pointer-events:none}.ba-map-caption small{display:block;font-family:var(--font-serif);font-size: .9375rem;font-style:italic;letter-spacing:0;margin-top:5px}.ba-north{font-size:16px;letter-spacing:0;border-right:1px solid var(--ba-label);padding-right:15px}.ba-panel{background:var(--color-paper);padding:30px 26px;border-left:1px solid var(--color-line)}.ba-panel h2{font:400 1.85rem/1.13 var(--font-serif);margin:14px 0 18px}.ba-panel-copy{color:var(--color-muted);font-size: .9375rem;line-height:1.85}.ba-panel .eyebrow{font-size: .9375rem;letter-spacing:.11em}.ba-place-detail{margin-top:28px;padding-top:25px;border-top:1px solid var(--color-line)}.ba-place-detail h3{font:400 1.6rem var(--font-serif);margin:10px 0}.ba-place-detail>p:not(.eyebrow){font-size: .9375rem;line-height:1.85;color:var(--color-muted)}.ba-place-detail .ba-place-ref{color:var(--color-meta);font-size: .9375rem}.ba-place-detail a{color:var(--color-meta);font-size: .9375rem;display:inline-block;margin-top:10px}.ba-map-footer{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0;color:var(--color-muted);font-size: .9375rem;line-height:1.8}.ba-route-key{display:inline-block;width:26px;border-top:2px dashed var(--ba-route);vertical-align:middle;margin-right:7px}.ba-point-key{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ba-point);margin:0 7px 0 15px}.ba-map-footer p{max-width:360px;margin:0}.ba-load-status:empty{display:none}.ba-load-status{color:var(--color-accent);font-size: .9375rem}.ba-places,.ba-reading{margin-top:55px}.ba-section-heading h2,.ba-reading h2{font:400 clamp(1.8rem,3vw,2.5rem) var(--font-serif);margin:10px 0 26px}.ba-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ba-place-grid button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-card);padding:20px;text-align:left;color:var(--color-ink);cursor:pointer;display:grid;gap:10px}.ba-place-grid small{color:var(--color-meta);font-size: .9375rem;letter-spacing:.12em}.ba-place-grid strong{font:400 1.4rem var(--font-serif);display:flex;justify-content:space-between;gap:8px}.ba-place-grid strong span{color:var(--color-meta);font-size:1rem}.ba-place-grid button>span{color:var(--color-muted);font-size: .9375rem;line-height:1.6}.ba-place-grid button[aria-pressed=true],.ba-place-grid button:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-surface) 90%,var(--color-soft))}.ba-reading>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.ba-reading a{display:grid;gap:12px;border-top:2px solid var(--color-line);padding-top:22px;text-decoration:none}.ba-reading strong{font:400 1.5rem var(--font-serif);color:var(--color-ink)}.ba-reading span{font-size: .9375rem;line-height:1.8;color:var(--color-muted)}.ba-reading small{color:var(--color-meta);font-size: .9375rem}.ba-method{margin:50px 0 10px;border-block:1px solid var(--color-line);padding:20px 0;font-size: .9375rem;color:var(--color-muted);line-height:1.85}.ba-method summary{cursor:pointer;color:var(--color-ink)}.bible-atlas button:focus-visible,.bible-atlas a:focus-visible,.ba-place-marker:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}
@media(min-width:1350px){.ba-workspace{width:calc(100% + 120px);margin-left:-60px;grid-template-columns:minmax(0,1fr) 340px}.ba-map-wrap{min-height:600px}}
@media(max-width:900px){.ba-intro{display:block}.ba-timeline-link{display:inline-block;margin-top:15px}.ba-workspace{grid-template-columns:minmax(0,1fr)}.ba-map-wrap{min-height:470px}.ba-panel{border-left:0;border-top:1px solid var(--color-line);display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.ba-panel-date,.ba-panel-title,.ba-panel-copy{grid-column:1}.ba-place-detail{grid-column:2;grid-row:1/4;margin-top:0;padding-top:0;padding-left:25px;border-top:0;border-left:1px solid var(--color-line)}.ba-map-footer{display:block}.ba-map-footer p{max-width:none;margin-top:8px}.ba-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ba-intro h1{font-size:2.5rem}.ba-intro>div>p:last-child{font-size: .9375rem}.ba-periods{gap:6px}.ba-periods button{padding:13px 10px}.ba-periods small{font-size: .9375rem;line-height:1.6;letter-spacing:0}.ba-periods strong{font-size: .9375rem;line-height:1.3;display:block}.ba-map-wrap{min-height:420px}.ba-panel{display:block;padding:24px}.ba-place-detail{padding:22px 0 0;margin-top:24px;border:0;border-top:1px solid var(--color-line)}.ba-reset{top:12px;right:12px;padding:8px 10px;font-size: .9375rem}.ba-map-caption{top:18px;left:14px;font-size: .9375rem;gap:8px}.ba-map-caption small{font-size: .9375rem}.ba-north{font-size: .9375rem;padding-right:8px}.ba-reading>div{grid-template-columns:1fr}.ba-place-grid button{padding:16px}.ba-marker-name{font-size: .9375rem}}
.ba-place-jerusalem .ba-marker-name{left:-91px;top:-15px}.ba-place-lachish .ba-marker-name{left:-39px;top:17px}.ba-route-label{color:var(--ba-route);font-size: .9375rem;letter-spacing:0;opacity:1;font-family:var(--font-serif);font-style:italic}
/* Disclosure controls: + when closed, − when open; never a triangle. */
.ba-method > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; }
.ba-method > summary::marker { content: ''; }
.ba-method > summary::-webkit-details-marker { display: none; }
.ba-method > summary::after { content: '+'; flex-shrink: 0; color: var(--color-meta); font-size: 1.5rem; line-height: 1; }
.ba-method[open] > summary::after { content: '−'; }
/* Cartographic labels need their own contrast, including the night theme. */
.bible-atlas { --ba-city-ink: #30291f; --ba-city-paper: #fff5de; --ba-caption-ink: #554b38; --ba-water-ink: #315967; }
html[data-theme="dark"] .bible-atlas { --ba-city-ink: #fff4dc; --ba-city-paper: #1c2b29; --ba-caption-ink: #f1e2c3; --ba-water-ink: #c3e4e7; }
.ba-map-label { color: var(--ba-caption-ink); opacity: 1; font-size: .9375rem; text-shadow: 0 1px 2px var(--ba-city-paper), 0 0 5px var(--ba-city-paper); }
.ba-water-label { color: var(--ba-water-ink); font-size: .9375rem; }
.ba-empire-label { color: var(--ba-caption-ink); opacity: 1; font-size: .9375rem; }
.bible-atlas .ba-marker-name { color: var(--ba-city-ink); background: var(--ba-city-paper); font-size: .9375rem; font-weight: 600; padding: 2px 6px; border: 1px solid color-mix(in srgb, var(--ba-city-ink) 25%, transparent); box-shadow: 0 1px 4px #0003; text-shadow: none; }
.bible-atlas .ba-place-marker.is-selected .ba-marker-name { color: var(--ba-city-ink); border-color: var(--ba-route); box-shadow: 0 0 0 1px var(--ba-route); }
.ba-place-jerusalem .ba-marker-name { left: -103px; top: -20px; }
.ba-place-lachish .ba-marker-name { left: -48px; top: 19px; }
.ba-route-label { color: var(--ba-city-ink); background: var(--ba-city-paper); border-radius: 3px; font-size: .9375rem; line-height: 26px; text-shadow: none; }
.ba-map-caption { color: var(--ba-caption-ink); text-shadow: 0 1px 3px var(--ba-city-paper); }
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]):not([data-theme="dark"]) .bible-atlas {
    --ba-water: #192d35; --ba-land: #303c35; --ba-river: #6c9a9b; --ba-route: #e1a189; --ba-label: #c0c3a8; --ba-point: #e1b98d;
    --ba-city-ink: #fff4dc; --ba-city-paper: #1c2b29; --ba-caption-ink: #f1e2c3; --ba-water-ink: #c3e4e7;
  }
  html:not([data-theme="light"]):not([data-theme="dark"]) .bible-atlas.ba-return { --ba-route: #c2d49b; }
}
/* Route directions remain light annotations, without a label box. */
.bible-atlas .ba-route-label {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: var(--ba-caption-ink);
  text-shadow: 0 1px 2px var(--ba-city-paper), 0 0 5px var(--ba-city-paper);
}
/* Full atlas navigation. */
.ba-epochs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:4px 0 18px;margin-bottom:12px;scroll-margin-top:110px}
.ba-epochs button{flex-shrink:0;border:1px solid var(--color-line);border-radius:30px;background:var(--color-surface);color:var(--color-muted);padding:10px 15px;font:inherit;font-size: .9375rem;cursor:pointer}
.ba-epochs button[aria-pressed=true]{background:var(--color-soft-blue);color:var(--color-ink);border-color:var(--color-accent)}
.ba-journey-heading{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin-bottom:12px}.ba-journey-heading p{margin:0}.ba-counter{font-size: .9375rem;color:var(--color-muted)}
.ba-periods{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.ba-periods button{font:inherit}.ba-periods strong{line-height:1.35}.ba-periods small{line-height:1.6;min-height:1.5em}
.ba-panel-ref{color:var(--color-meta);font-size: .9375rem;line-height:1.8}.ba-journey-note{font-size: .9375rem;line-height:1.85;color:var(--color-muted);border-left:2px solid var(--color-accent);padding-left:16px;margin:8px 0 26px;max-width:950px}
.ba-place-detail .ba-identification{border-left:2px solid var(--color-accent);padding-left:12px;font-size: .9375rem}.ba-place-grid button>.ba-uncertain{font-size: .9375rem;color:var(--color-meta)}
.bible-atlas .leaflet-container .ba-sea-route{stroke:var(--ba-water-ink)}.ba-sea-key{display:inline-block;width:25px;border-top:2px dotted var(--ba-water-ink);vertical-align:middle;margin:0 7px 0 15px}
.ba-map-footer>div{line-height:2.2;max-width:700px}.ba-catalogue li{margin-block:8px}.ba-catalogue h3{font:400 1.4rem var(--font-serif);color:var(--color-ink);margin:25px 0 12px}.ba-catalogue a{color:var(--color-meta)}
@media(max-width:900px){.ba-panel-ref{grid-column:1}.ba-panel .ba-place-detail{grid-row:1/5}}
@media(max-width:600px){.ba-periods{display:flex;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.ba-periods button{flex:0 0 180px;padding:15px}.ba-periods strong{font-size:1.05rem}.ba-periods small{font-size: .9375rem}.ba-map-caption{top:60px}.ba-place-grid strong{font-size:1.2rem}}
/* Bound Leaflet's internal panes and controls below the site's sticky header. */
.bible-atlas { position: relative; isolation: isolate; z-index: 0; }
.ba-workspace { position: relative; isolation: isolate; z-index: 0; }
/* Keep selection, map and its result together in one explorer. */
.ba-intro{padding:8px 0 20px;align-items:center}.ba-intro h1{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.15;letter-spacing:-.025em;margin:8px 0 12px}.ba-intro>div>p:last-child{margin:0;line-height:1.6}.ba-intro .eyebrow{margin:0}.ba-timeline-link{white-space:normal;max-width:230px}
.ba-explorer-controls{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:14px;padding:18px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-card);scroll-margin-top:112px}
.ba-explorer-controls label{display:grid;gap:8px;min-width:0;font-size:1rem;font-weight:650;color:var(--color-ink)}
.ba-explorer-controls select{display:block;width:100%;min-width:0;margin:0;padding:10px 32px 10px 12px;height:46px;border:1px solid var(--color-line);border-radius:6px;color:var(--color-ink);background-color:var(--color-paper);font:400 1rem var(--font-sans);letter-spacing:normal;overflow:hidden;white-space:nowrap}
.ba-explorer-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 6px}.ba-explorer-heading .eyebrow{font-size:.9375rem;letter-spacing:0;margin:0 0 5px}.ba-explorer-heading h2{font:400 clamp(1.3rem,2.2vw,1.8rem)/1.2 var(--font-serif);margin:0}.ba-action-help{font-size:.9375rem;color:var(--color-muted);line-height:1.5;margin:8px 0 16px}
.ba-workspace{width:100%;margin-left:0;grid-template-columns:185px minmax(0,1fr) 300px;height:clamp(400px,calc(100dvh - 330px),620px)}
.ba-workspace .ba-map-wrap{min-height:0;height:100%}.ba-workspace .ba-place-list{display:flex;flex-direction:column;min-height:0;margin:0;padding:16px 10px;background:var(--color-paper);border-right:1px solid var(--color-line)}
.ba-place-list h3{font:600 1rem var(--font-sans);margin:0;padding:0 6px 14px;border-bottom:1px solid var(--color-line)}
.ba-place-list .ba-place-grid{display:flex;flex-direction:column;gap:6px;overflow-y:auto;scrollbar-width:thin;padding-top:12px;min-height:0}
.ba-place-list .ba-place-grid button{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 8px;text-align:left;flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:5px}
.ba-place-list .ba-place-grid strong{display:block;font:500 1rem/1.35 var(--font-sans);overflow-wrap:anywhere}.ba-place-list .ba-place-number{font-size:.9375rem;color:var(--color-meta);flex-shrink:0}
.ba-place-list .ba-place-grid button[aria-pressed=true]{background:var(--color-soft-blue);border-color:var(--color-accent)}.ba-place-list .ba-place-grid button:hover{border-color:var(--color-accent)}
.ba-workspace .ba-panel{display:block;overflow-y:auto;scrollbar-width:thin;padding:20px;border-left:1px solid var(--color-line);border-top:0}.ba-workspace .ba-panel>.eyebrow{font-size:.9375rem;letter-spacing:0;margin:0 0 18px;color:var(--color-muted)}
.ba-workspace .ba-place-detail{margin:0;padding:0;border:0}.ba-workspace .ba-place-detail>.eyebrow{font-size:.9375rem;letter-spacing:0;margin-top:0}.ba-workspace .ba-place-detail h3{font-size:1.7rem;margin:10px 0 16px}.ba-workspace .ba-place-detail p{line-height:1.7}.ba-workspace .ba-place-detail a{font-size:1rem;line-height:1.6}
.ba-journey-explanation{margin:14px 0 20px}.ba-journey-explanation .ba-panel-copy{font-size:1rem;line-height:1.8}.ba-journey-explanation .ba-journey-note{margin-bottom:8px}.ba-reading{margin-top:32px}
@media(min-width:1500px){.ba-workspace{width:calc(100% + 120px);margin-left:-60px;grid-template-columns:200px minmax(0,1fr) 320px}}
@media(max-width:1099px){.ba-workspace{grid-template-columns:minmax(0,1fr) 290px}.ba-workspace .ba-place-list{display:none}}
@media(max-width:900px){.ba-intro{display:block}.ba-timeline-link{margin:12px 0 0}.ba-explorer-controls{grid-template-columns:1fr 1fr;padding:14px;gap:12px}.ba-explorer-controls label:last-child{grid-column:1/-1}.ba-workspace{display:flex;flex-direction:column;height:auto}.ba-workspace .ba-map-wrap{height:300px;min-height:300px}.ba-workspace .ba-panel{overflow:visible;border-left:0;border-top:1px solid var(--color-line);padding:20px}.ba-workspace .ba-panel>.eyebrow{margin-bottom:12px}.ba-workspace .ba-place-detail h3{font-size:1.6rem;margin:8px 0 12px}.ba-workspace .ba-place-detail>p{margin-block:10px}.ba-map-caption{display:none}.ba-map-footer{padding-block:10px}.ba-journey-explanation{margin-top:4px}.ba-explorer-heading{margin-top:16px}.ba-explorer-heading h2{font-size:1.4rem}.ba-counter{white-space:nowrap}}
@media(max-width:420px){.ba-explorer-controls{gap:12px 8px;padding:12px}.ba-explorer-controls select{padding-left:8px;font-size:.9375rem}.ba-intro h1{font-size:1.85rem}}
.ba-explorer-shell{position:relative}.ba-explorer-controls{position:sticky;top:104px;z-index:10;box-shadow:0 4px 14px #0001;background:var(--color-paper)}
@media(max-width:900px){.ba-explorer-controls{grid-template-columns:1fr 1.3fr 1fr;top:8px}.ba-explorer-controls label:last-child{grid-column:auto}.ba-workspace .ba-map-wrap{height:clamp(220px,32dvh,300px);min-height:220px}}
@media(min-width:761px) and (max-width:900px){.ba-explorer-controls{top:104px}}
@media(max-width:420px){.ba-explorer-controls{grid-template-columns:1fr 1fr}.ba-explorer-controls label:last-child{grid-column:1/-1}}
@media(min-width:901px){
 .ba-workspace{height:clamp(320px,calc(100dvh - 560px),560px)}
 .ba-workspace .ba-panel{display:flex;flex-direction:column;overflow:hidden;padding:18px}
 .ba-workspace .ba-panel>.eyebrow{margin-bottom:12px}
 .ba-workspace .ba-place-detail{display:flex;flex-direction:column;flex:1;min-height:0}
 .ba-workspace .ba-place-detail>.eyebrow{margin:0;font-size:.9375rem}
 .ba-workspace .ba-place-detail h3{margin:7px 0 10px;font-size:1.5rem}
 .ba-place-reading{flex:1;overflow:auto;min-height:0;scrollbar-width:thin;padding-right:5px}
 .ba-place-reading p:first-child{margin-top:0}
 .ba-workspace .ba-place-detail>a{flex-shrink:0;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-line)}
}
@media(max-width:900px){.ba-place-reading{overflow:visible}.ba-workspace .ba-place-detail .ba-place-reading p{font-size:1rem;line-height:1.7}}
@media(min-width:901px){.ba-explorer-controls{padding-block:14px}}
/* The explorer flows as one unit: controls never cover its heading or map. */
.ba-explorer-shell>.ba-explorer-controls{position:relative;top:auto}
