*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  position: relative;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: .035;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; line-height: 1.05; letter-spacing: -0.01em; margin: 0; color: var(--ink); }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; background: none; border: none; }
input, select { font: inherit; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 18px;
}
.eyebrow::before { content: ""; width: 22px; height: 1.5px; background: var(--line-strong); display: inline-block; }

.section { padding: 88px 0; }
.section--tight { padding: 64px 0; }
.section--paper-deep { background: var(--paper-deep); }

.section--fade-top {
  position: relative;
  overflow: hidden;

  background: linear-gradient(to bottom, var(--white) 0%, #F2EFEB 100%);
}
.section--fade-top::before {
  content: "";
  position: absolute; inset: 0; z-index: 0;
  opacity: .25; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.section--fade-top > .wrap { position: relative; z-index: 1; }
.section--ink { background: var(--ink); color: var(--paper); }
.section--ink h2 { color: var(--paper); }

.section--ink .eyebrow, .leadblock .eyebrow { color: rgba(250,250,251,.8); }
.section--ink .eyebrow::before, .leadblock .eyebrow::before { background: rgba(250,250,251,.4); }

[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
[data-reveal-stagger] > * { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
[data-reveal-stagger].is-visible > * { opacity: 1; transform: translateY(0); }
[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: .05s; }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: .12s; }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: .19s; }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: .26s; }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: .33s; }
[data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: .40s; }

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

@media (max-width: 900px) {
  .section { padding: 64px 0; }
  .wrap { padding: 0 22px; }
}
