*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 14%, rgba(127, 175, 189, .13), transparent 22rem),
    radial-gradient(circle at 92% 34%, rgba(232, 160, 82, .11), transparent 26rem),
    var(--paper);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body::before {
  position: fixed;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  opacity: .22;
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E");
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; font: inherit; }
h1, h2, h3, p, blockquote, figure { margin-top: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 500; line-height: .98; letter-spacing: -.035em; }
h1 { font-size: clamp(3.6rem, 6.5vw, 6.8rem); }
h2 { font-size: clamp(3rem, 5.2vw, 5.6rem); }
h3 { font-size: clamp(1.6rem, 2.3vw, 2.5rem); }
::selection { color: var(--paper); background: var(--plum); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
.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;
}
.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  padding: 10px 14px;
  color: white;
  background: var(--forest);
  border-radius: var(--radius-sm);
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
.page-shell { position: relative; z-index: 4; overflow: visible; }
.section { position: relative; z-index: 2; width: var(--container); margin-inline: auto; }
.kicker {
  margin-bottom: 22px;
  color: var(--leash);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.section-heading { max-width: 850px; }
.section-heading-wide { display: grid; grid-template-columns: 1.3fr .7fr; align-items: end; gap: 80px; max-width: none; }
.section-heading-wide > p { margin-bottom: 10px; color: var(--ink-soft); font-size: 1.08rem; }
.section-heading h2, .section-heading-wide h2 { margin-bottom: 0; }
