*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--color-ink);
  line-height: 1.12;
  letter-spacing: -0.035em;
}
h1 { font-size: clamp(2.15rem, 4.4vw, 4.1rem); }
h2 { font-size: clamp(1.65rem, 3vw, 2.7rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.55rem); }
p { color: var(--color-muted); }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container--narrow { width: min(calc(100% - 40px), var(--container-narrow)); margin-inline: auto; }
.section { padding: 30px 0; }
.section--compact { padding: 24px 0; }
.section--white { background: var(--color-white); }
.section--dark { background: var(--color-bg-dark); color: var(--color-white); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4 { color: var(--color-white); }
.section--dark p { color: var(--color-muted-light); }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--color-primary-strong);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.section-heading { max-width: 760px; margin-bottom: 22px; }
.section-heading p { max-width: 650px; font-size: 1rem; }
.parallax-section { --parallax-y: 0px; overflow: clip; }
.parallax-section > .container { transform: translate3d(0, var(--parallax-y), 0); will-change: transform; }
.reveal-on-scroll {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition: opacity 680ms ease, transform 680ms cubic-bezier(.22, 1, .36, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.reveal-on-scroll[data-reveal="left"] { transform: translate3d(-28px, 0, 0); }
.reveal-on-scroll[data-reveal="right"] { transform: translate3d(28px, 0, 0); }
.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 9999; padding: 12px 18px; background: white; color: black; border-radius: 8px; }
.skip-link:focus { top: 16px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) {
  .parallax-section > .container { transform: none; }
  .reveal-on-scroll { opacity: 1; transform: none; transition: none; }
}
