body {
  background: #fff;
  color: var(--charcoal);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
}
body.is-locked { overflow: hidden; }
h1, h2, h3, h4 {
  color: var(--espresso, var(--forest-950));
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.02em;
  text-wrap: balance;
}
h1 { font-size: clamp(2.6rem, 6vw, 4.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: clamp(1.45rem, 2.5vw, 2rem); }
h4 { font-size: 1.25rem; font-weight: 600; }
button, input, select, textarea { font-family: var(--font-body); }
p + p { margin-top: 1rem; }
a { text-decoration-thickness: .08em; text-underline-offset: .2em; }
:focus-visible { outline: 3px solid var(--ochre-500); outline-offset: 4px; }
::selection { background: var(--sand-200); color: var(--forest-950); }
.skip-link { background: var(--white); color: var(--forest-950); left: 1rem; padding: .75rem 1rem; position: fixed; top: -8rem; z-index: 9999; }
.skip-link:focus { top: 1rem; }
.eyebrow { color: var(--clay, var(--ochre-600)); display: flex; align-items: center; gap: .7rem; font-family: var(--font-body); font-size: .68rem; font-weight: 600; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; }
.eyebrow::before { background: currentColor; content: ""; height: 2px; width: 2.25rem; }
.eyebrow--light { color: var(--sand-200); }
.lede { color: var(--muted); font-family: var(--font-body); font-size: clamp(1.05rem, 2vw, 1.2rem); line-height: 1.65; }
.text-link { align-items: center; color: var(--clay, var(--forest-800)); display: inline-flex; font-family: var(--font-body); font-weight: 600; gap: .45rem; text-decoration: none; }
.text-link::after { content: "→"; transition: transform var(--transition); }
.text-link:hover::after { transform: translateX(.3rem); }
.meta { color: var(--muted); font-family: var(--font-body); font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.prototype-pill { background: var(--ochre-600); border-radius: 999px; color: var(--white); font-size: .65rem; font-weight: 900; letter-spacing: .12em; padding: .35rem .65rem; position: fixed; right: 1rem; text-transform: uppercase; top: 1rem; z-index: 950; }
.sr-only { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.no-js-message { background: var(--warning); color: var(--white); padding: .8rem; text-align: center; }
