*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 6rem; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--c-on-light);
  background: var(--c-light);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
@supports (overflow: clip) { body { overflow-x: clip; } }
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; color: inherit; }
em { font-style: italic; }

h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: 1.02; letter-spacing: -0.02em; }
h1 { font-size: var(--fs-display); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.15; letter-spacing: -0.01em; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* Skip link */
.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 100;
  padding: 0.75rem 1.25rem; border-radius: var(--radius-pill);
  background: var(--c-light); color: var(--c-dark); font-weight: 600;
  transform: translate3d(0, -200%, 0);
}
.skip-link:focus { transform: translate3d(0, 0, 0); }

/* Focus, per tone */
:focus-visible { outline: 3px solid var(--c-focus-light); outline-offset: 3px; }
.tone-dark :focus-visible, .site-nav :focus-visible, .chat-widget :focus-visible { outline-color: var(--c-focus-dark); }
.tone-primary :focus-visible { outline-color: var(--c-focus-primary); }
[tabindex="-1"]:focus { outline: none; }

/* Lenis required rules (MIT, from lenis.css) */
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoscroll) { scroll-behavior: auto !important; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth iframe { pointer-events: none; }
