*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--to-font);
  color: var(--to-ink);
  background: var(--to-sand-2);
  font-size: 16px;
  line-height: 1.58;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--to-primary) 28%, transparent); outline-offset: 3px; }
::selection { background: var(--to-danger-border); }
.page-shell { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.container { width: min(100% - 40px, var(--to-container)); margin-inline: auto; }
.narrow { width: min(100% - 40px, 880px); margin-inline: auto; }
.section { padding: 84px 0; }
.section-sm { padding: 56px 0; }
.eyebrow {
  color: var(--to-primary);
  font-weight: 780;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .77rem;
  margin: 0 0 12px;
}
.kicker {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid var(--to-primary-border);
  background: var(--to-lilac);
  color: var(--to-ink);
  padding: 7px 12px;
  border-radius: 999px;
  font-size: .86rem;
  font-weight: 720;
  margin-bottom: 18px;
}
h1, h2, h3, h4, p { margin-top: 0; }
h1 {
  font-size: clamp(2.42rem, 4.4vw, 4rem);
  line-height: 1.04;
  letter-spacing: 0;
  font-weight: 900;
  margin-bottom: 20px;
}
h2 {
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.08;
  letter-spacing: 0;
  font-weight: 850;
  margin-bottom: 16px;
}
h3 {
  font-size: clamp(1.23rem, 2vw, 1.55rem);
  line-height: 1.22;
  letter-spacing: 0;
  font-weight: 820;
  margin-bottom: 10px;
}
h4 { font-size: 1.02rem; margin-bottom: 8px; }
.lede {
  font-size: clamp(1.05rem, 1.4vw, 1.22rem);
  color: var(--to-ink-2);
  max-width: 720px;
}
.text-muted { color: var(--to-muted); }
.small { font-size: .9rem; }
.text-center { text-align: center; }
.centered { margin-inline: auto; }
.divider { height: 1px; background: var(--to-line); margin: 28px 0; }
.skip-link {
  position: absolute; left: -999px; top: 8px; background: var(--to-white); color: var(--to-ink);
  border: 1px solid var(--to-line); border-radius: 8px; padding: 8px 12px; z-index: 1000;
}
.skip-link:focus { left: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
