/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Root ──────────────────────────────────────────────────── */
html { scroll-behavior: smooth; }
body {
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Skip link ─────────────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: 0; left: var(--s-2);
  z-index: 9999;
  padding: var(--s-1) var(--s-4);
  background: var(--color-ink);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  text-decoration: none;
  transform: translateY(-100%);
  transition: transform var(--transition-fast);
}
.skip-link:focus { transform: translateY(0); }

/* ── Focus visible ─────────────────────────────────────────── */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
  border-radius: 3px;
}

/* ── Headings ──────────────────────────────────────────────── */
h1 {
  font-size: clamp(48px, 6vw, 80px);
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--color-ink);
}
h2 {
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.03em;
}
h3 {
  font-size: clamp(17px, 1.6vw, 20px);
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* ── Body copy ─────────────────────────────────────────────── */
p {
  max-width: 65ch;
  line-height: 1.65;
  color: var(--color-muted);
}
a { color: var(--color-accent); }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }

/* ── Section wrapper ───────────────────────────────────────── */
.section { padding: var(--s-16) var(--pad-x); }
.section--sm { padding: var(--s-12) var(--pad-x); }
.section--lg { padding: var(--s-16) var(--pad-x); }
.section__inner {
  max-width: var(--max-width);
  margin: 0 auto;
}

/* ── Section label (eyebrow) ───────────────────────────────── */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--color-muted);
  margin-bottom: var(--s-3);
}
.eyebrow::before {
  content: '';
  display: block;
  width: 20px; height: 1px;
  background: var(--color-muted);
}

/* ── Utilities ─────────────────────────────────────────────── */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}
.text-muted  { color: var(--color-muted); }
.text-center { text-align: center; }

/* ── Reveal animations (IntersectionObserver) ──────────────── */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
[data-delay="1"] { transition-delay: 80ms; }
[data-delay="2"] { transition-delay: 160ms; }
[data-delay="3"] { transition-delay: 240ms; }
[data-delay="4"] { transition-delay: 320ms; }
[data-delay="5"] { transition-delay: 400ms; }
[data-delay="6"] { transition-delay: 480ms; }

/* ── CTA strip ─────────────────────────────────────────────── */
.cta-strip {
  background: var(--color-ink);
  padding: var(--s-16) var(--pad-x);
  text-align: center;
}
.cta-strip h2 { color: #fff; margin-bottom: var(--s-2); }
.cta-strip p  { color: rgba(255,255,255,.45); margin: 0 auto var(--s-8); max-width: 44ch; }

/* ── Reduced motion ────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}
