@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=EB+Garamond:wght@400;500;600&display=swap");

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-ui);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }

/* Type roles */
.t-display { font: 500 var(--fs-display)/var(--lh-display) var(--font-display); letter-spacing: var(--ls-display); color: var(--color-ink); margin: 0; }
.t-h1      { font: 500 var(--fs-h1)/var(--lh-h1) var(--font-display); letter-spacing: var(--ls-h1); color: var(--color-ink); margin: 0; }
.t-h2      { font: 500 var(--fs-h2)/var(--lh-h2) var(--font-display); letter-spacing: var(--ls-h2); color: var(--color-ink); margin: 0; }
.t-h3      { font: 500 var(--fs-h3)/var(--lh-h3) var(--font-display); letter-spacing: var(--ls-h3); color: var(--color-ink); margin: 0; }
.t-body    { font: 400 var(--fs-body)/var(--lh-body) var(--font-ui); color: var(--color-text); margin: 0; }
.t-body.hero__sub, .t-body.lede, .t-body.legal__intro, .t-body.contact__sub { color: var(--color-text-sub); }
.t-small   { font: 500 var(--fs-small)/var(--lh-small) var(--font-ui); letter-spacing: var(--ls-small); }
.t-eyebrow { font: 500 var(--fs-eyebrow)/1 var(--font-ui); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--color-text-muted); }
.t-eyebrow--lg { margin: 0; font: 500 13px/20px var(--font-ui); letter-spacing: .08em; }
.t-accent  { font-family: var(--font-accent); font-weight: 600; color: var(--color-primary); letter-spacing: inherit; }   /* call-out words: EB Garamond */

/* author display rules (flex etc.) must never un-hide [hidden] elements */
[hidden] { display: none !important; }
section[id] { scroll-margin-top: 80px; }

/* Lenis */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
