* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation: none !important; transition: none !important; }
}

body {
  font-family: var(--font-body);
  background: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
  font-family: var(--font-display);
  color: var(--text-dark);
  line-height: 1.15;
  font-weight: 500;
}

h1 { font-size: clamp(2.25rem, 4vw + 1rem, 3.5rem); }
h2 { font-size: clamp(1.75rem, 2.5vw + 1rem, 2.5rem); }
h3 { font-size: 1.25rem; }

p { max-width: 62ch; }

a { color: inherit; }

.wrap {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: var(--tagline-tracking);
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--accent);
  display: block;
  margin-bottom: 0.75rem;
}

section { padding: 5rem 0; }

a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid var(--text-dark);
  outline-offset: 3px;
}
