/* Erebe v7: visible and keyboard-operable accessibility enhancements. Baseline AAA target, not certification. */
:root { color-scheme: light; }
html { scroll-padding-top: 112px; }
body { font-size: 1rem; }
main :where(p,li,dd,blockquote) { line-height: 1.75; }
main :where(p,li) { hyphens: auto; overflow-wrap: anywhere; }
main :where(p,li,blockquote) { text-align: left; }
:where(.article-body,.long-read,.town-section,.page-content,.presentation-page) :where(p,li) { max-width: 79ch; }
:where(.town-meta,.map-resource-era,.map-domain,.map-schematic-body figcaption,.field-photo figcaption,.field-figure figcaption,.presentation-card-info) { color: #283c2d !important; }
:where(.page-content,.town-shell,.article-body,.presentation-page,.access-statement) a:not(.btn):not(.game-button):not(.map-action):not(.presentation-download):not(.presentation-cover) { text-decoration: underline; text-underline-offset: .18em; }
:where(.page-content,.town-shell,.article-body,.presentation-page,.access-statement) a:not(.btn):not(.game-button):not(.map-action):not(.presentation-download):not(.presentation-cover):hover { text-decoration-thickness: .15em; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 4px solid #c28c12 !important; outline-offset: 4px !important; box-shadow: 0 0 0 3px #102e22 !important; }
:where(button,a,summary,input,select,textarea) { -webkit-tap-highlight-color: rgba(255,201,78,.35); }
:where(.presentation-card,.presentation-promo,.presentation-home-promo,.presentation-jump,.presentation-transcript,.presentation-intro,.presentation-help) { scroll-margin-top: 114px; }
.presentation-intro,.presentation-help { max-width: 78ch; margin: 0 auto 2rem; }
.presentation-lede { max-width: 74ch; font-size: 1.12rem; }
.presentation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; margin: 1.7rem 0 3rem; }
.presentation-card { display: flex; flex-direction: column; background: #fffdf4; border: 2px solid #6a755c; border-radius: 12px; overflow: hidden; }
.presentation-cover { display: block; overflow: hidden; background: #dbe4d5; }
.presentation-cover img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.presentation-card-body { padding: 22px 25px 26px; display: flex; flex-direction: column; flex: 1; }
.presentation-card-body h2 { font-size: clamp(1.35rem,2.4vw,1.9rem); line-height:1.25; color:#193624; margin: .25rem 0 1rem; }
.presentation-card-body p { color:#24372b; }
.presentation-card-info { margin-top:auto; font-weight: 650; }
.presentation-card-actions,.presentation-promo-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items:center; }
.presentation-card-actions { margin-top: 1.3rem; }
.presentation-download { display: inline-flex; align-items:center; justify-content:center; min-height:48px; padding:13px 19px; border-radius:6px; border:2px solid #143824; color:#fff!important; background:#143824; font-weight:750; text-align:center; text-decoration:none!important; line-height:1.45; }
.presentation-download:hover,.presentation-download:focus-visible { color:#fff!important; background:#0a2416; text-decoration:underline!important; }
.presentation-textlink { display: inline-flex; align-items:center; min-height:48px; padding:9px 2px; color:#153d25!important; font-weight:700; text-decoration:underline!important; }
.presentation-promo { background:linear-gradient(120deg,#edf1e3,#f8f2df); border:2px solid #657959; border-radius:12px; padding:26px 30px; margin:0 0 3rem; }
.presentation-promo h2,.presentation-home-promo h3 { color:#193624; font-size:clamp(1.35rem,2.6vw,2rem); line-height:1.22; }
.presentation-promo p,.presentation-home-promo p { max-width:74ch; }
.presentation-home-promo { display:flex;flex-wrap:wrap;align-items:center;gap:22px;background:#f6f0de;border:2px solid #667a57;border-radius:12px;padding:25px;margin:35px 0; }
.presentation-home-promo > div { flex: 1 1 420px; }
.presentation-jump { background:#f5f2e8; border:1px solid #777f6b; padding:22px 26px; border-radius:10px; margin: 28px 0 45px; }
.presentation-jump h2 { margin:0 0 13px; color:#1e3e2a; }
.presentation-jump ol { columns:2; column-gap:32px; padding-left:1.3rem; }
.presentation-jump li { break-inside:avoid; padding:.25rem .2rem; }
.presentation-jump a,.presentation-return a { color:#143d26!important; font-weight:650; }
.presentation-transcript { background:#fffdf5; border:1px solid #7f846f; border-left:6px solid #2e6241; border-radius:8px; padding:22px 27px; margin:28px 0; }
.presentation-transcript h2 { color:#183a27;font-size:clamp(1.42rem,3vw,1.95rem);line-height:1.3;margin:0 0 16px; }
.presentation-transcript h3 { color:#183a27;font-size:1.14rem;line-height:1.4;margin:22px 0 8px; }
.presentation-transcript ul { margin:.55rem 0 1.4rem;padding-left:1.4rem; }
.presentation-transcript li { margin-bottom:.6rem; }
.presentation-sources { overflow-wrap:anywhere; }
.presentation-return { margin:2rem 0 5rem; }
@media(max-width:850px){ .presentation-grid { grid-template-columns:minmax(0,1fr); } .presentation-jump ol {columns:1} }
@media(max-width:600px){ .presentation-card-body,.presentation-transcript,.presentation-promo { padding:17px; } .presentation-home-promo { padding:17px; } }
/* At extreme zoom or short screens, a sticky header would obscure content and keyboard focus: switch to normal flow. */
@media(max-height:600px),(max-width:320px){ .site-header { position:static!important; } html {scroll-padding-top:20px;} }
@media(prefers-reduced-motion:reduce){ :where(.presentation-card,.presentation-cover img,.presentation-promo) {animation:none!important;transition:none!important;} }
html[data-erebe-motion="true"] :where(.presentation-card,.presentation-cover img,.presentation-promo) {animation:none!important;transition:none!important;}
@media print { .site-header {position:static!important;} .presentation-card { break-inside:avoid; } .presentation-transcript { break-inside:avoid; } .presentation-download {color:#000!important;background:transparent;border:1px solid #000;} }

html[data-erebe-contrast="true"] :where(.presentation-card,.presentation-promo,.presentation-home-promo,.presentation-jump,.presentation-transcript,.presentation-intro,.presentation-help) {background:#fff!important;color:#111!important;border-color:#111!important;}
html[data-erebe-contrast="true"] :where(.presentation-card h2,.presentation-home-promo h3,.presentation-transcript h2,.presentation-transcript h3,.presentation-card p,.presentation-promo p) {color:#111!important;}
