*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--ink-900); background: var(--white); font: 16px/1.65 var(--font-sans); -webkit-font-smoothing: antialiased; }
body, button, input, select, textarea { font-family: var(--font-sans); }
img, svg, video { display: block; max-width: 100%; }
img { object-fit: cover; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin-top: 0; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
.shell { width: var(--shell); margin-inline: auto; }
.shell-wide { width: var(--shell-wide); margin-inline: auto; }
.section { padding: clamp(76px, 9vw, 132px) 0; }
.sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
.skip-link { position: fixed; left: 20px; top: -80px; z-index: 1000; background: var(--gold-500); color: var(--forest-950); padding: 12px 18px; font-weight: 800; transition: top .2s; }
.skip-link:focus { top: 20px; }
:focus-visible { outline: 3px solid var(--gold-300); outline-offset: 3px; }
.eyebrow, .admin-eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--forest-700); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--gold-500); }
.eyebrow-light { color: rgba(255,255,255,.78); }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.32rem); color: var(--ink-700); }
.block { display: block; }
.site-notice { position: relative; z-index: 5; padding: 10px 0; font-weight: 700; text-align: center; }
.site-notice.is-success { background: #e9f5ec; color: #175536; }
.site-notice.is-error { background: #fff0ee; color: #8b2e26; }
.empty-state { grid-column: 1/-1; padding: 64px; background: var(--cream-100); border: 1px dashed var(--cream-300); text-align: center; }
.empty-state h2, .empty-state h3 { color: var(--forest-900); font: 700 2rem/1.2 var(--font-display); margin-bottom: 10px; }
.prose { color: var(--ink-700); font-size: 1.08rem; line-height: 1.86; }
.prose > * { max-width: 760px; }
.prose h2, .prose h3, .prose h4 { color: var(--forest-900); font-family: var(--font-display); line-height: 1.15; margin: 2.2em 0 .7em; }
.prose h2 { font-size: clamp(2rem, 4vw, 3rem); }
.prose h3 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.prose p, .prose ul, .prose ol, .prose blockquote, .prose pre, .prose table { margin-bottom: 1.45em; }
.prose a { color: var(--teal-600); text-decoration: underline; text-underline-offset: 3px; }
.prose blockquote { padding: 10px 0 10px 28px; border-left: 4px solid var(--gold-500); color: var(--forest-800); font: 1.35rem/1.55 var(--font-display); }
.prose img { width: 100%; height: auto; border-radius: var(--radius-sm); margin: 2rem 0; }
.prose figure { width: 100%; margin: 2rem 0; }
.prose figure img { margin: 0; }
.prose figcaption { margin-top: 9px; color: var(--ink-500); font-size: .78rem; line-height: 1.55; }
.prose pre { overflow: auto; padding: 22px; border-radius: var(--radius-sm); color: #e7f3ef; background: var(--forest-950); }
.prose table { width: 100%; border-collapse: collapse; }
.prose td, .prose th { border: 1px solid var(--line); padding: 12px; text-align: left; }
.content-embed { position: relative; aspect-ratio: 16/9; margin: 2rem 0; overflow: hidden; border-radius: var(--radius-md); }
.content-embed iframe { width: 100%; height: 100%; border: 0; }
.embedded-event { max-width: 760px; margin: 2rem 0; padding: 28px; border: 1px solid var(--cream-300); background: var(--cream-100); }
.embedded-event h3 { margin: 8px 0; font: 700 1.6rem var(--font-display); }
.hp-field { position: absolute!important; left: -10000px!important; }
dialog::backdrop { background: rgba(2,30,24,.88); }
