*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; display: block; }
img { height: auto; }
a { color: var(--olive-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--gold-dark); }
ul, ol { margin: 0; padding: 0; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }

h1, h2, h3, h4 { font-family: var(--font-head); color: var(--olive-deep); margin: 0 0 .5em; font-weight: 600; }
h1 { font-size: clamp(36px, 5vw, 60px); line-height: 1.05; font-weight: 700; letter-spacing: -.02em; }
h2 { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.15; letter-spacing: -.01em; }
h3 { font-size: 1.25rem; line-height: 1.3; }
h1 em, h2 em { font-style: normal; isolation: isolate; color: var(--gold-dark); position: relative; white-space: nowrap; }
h1 em::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .04em; height: .16em;
  background: var(--gold-light); z-index: -1; border-radius: 4px;
}

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: var(--section-y) 0; }
.section--tint { background: var(--olive-tint); }
.section-head { max-width: 680px; margin-bottom: 48px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.eyebrow {
  display: inline-block; font-size: .8125rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold-dark); margin-bottom: 12px;
}
.lede { font-size: 1.1875rem; color: var(--text-soft); max-width: 60ch; }
.muted { color: var(--text-soft); }

:focus-visible { outline: 3px solid var(--gold-dark); outline-offset: 3px; border-radius: 4px; }
.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 200; background: var(--olive-deep); color: #fff;
  padding: 10px 18px; border-radius: var(--radius-sm); transition: top .2s;
}
.skip-link:focus { top: 12px; color: #fff; }
.sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Placeholder marker: anything still to be confirmed */
.tbc { background: var(--gold-light); border-bottom: 1px dashed var(--gold-dark); padding: 0 4px; border-radius: 3px; color: var(--olive-deep); }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--i, 0) * 90ms); }
.reveal.in-view { opacity: 1; transform: none; }

@keyframes blob-float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(18px, -22px) scale(1.06); }
}
@keyframes shimmer { to { background-position: -200% 0; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
h1, h2 { text-wrap: balance; }
