/* Reset, page, type roles and motion preferences. */
* { box-sizing: border-box; }
html, body { height: 100%; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 16px/1.5 var(--font-text); -webkit-font-smoothing: antialiased; font-kerning: normal;
  overflow: hidden; overscroll-behavior: none; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
:focus { outline: none; }
:focus-visible { box-shadow: var(--focus); border-radius: var(--radius-sm); }
::selection { background: var(--signal); color: var(--signal-ink); }
a { color: inherit; text-decoration-color: var(--signal); text-underline-offset: 3px; }

.title {
  margin: 0; font-family: var(--font-display); font-weight: var(--title-weight); font-size: var(--title-size);
  line-height: var(--title-leading); letter-spacing: var(--title-tracking); text-transform: var(--title-case);
  color: var(--title-ink);
}
.title span { color: var(--title-accent-ink); }
.eyebrow {
  margin: 0 0 10px; font: 500 var(--label-size)/1.2 var(--label-font); letter-spacing: var(--label-tracking);
  text-transform: var(--label-case); color: var(--ink-muted);
}
.tagline { margin: 16px 0 0; color: var(--ink-muted); font-size: 1.05rem; max-width: 36ch; }
.muted { color: var(--ink-muted); }
.small { font-size: .86rem; }
h2 { margin: 0 0 18px; font: var(--heading-weight) 1.6rem/1.15 var(--font-display); letter-spacing: var(--heading-tracking);
  text-transform: var(--heading-case); }
h3 { margin: 0 0 12px; font: 500 var(--label-size)/1.2 var(--label-font); color: var(--ink-muted);
  letter-spacing: var(--label-tracking); text-transform: var(--label-case); }

:root[data-reduced-motion="on"] *, :root[data-reduced-motion="on"] *::before, :root[data-reduced-motion="on"] *::after {
  animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
@media (prefers-reduced-motion: reduce) {
  :root:not([data-reduced-motion="off"]) *, :root:not([data-reduced-motion="off"]) *::before, :root:not([data-reduced-motion="off"]) *::after {
    animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
