html { scroll-behavior: smooth; }
body { overflow-x: clip; background: var(--color-white); color: var(--color-ink); font-family: var(--font-sans); font-size: clamp(1rem, 0.97rem + 0.12vw, 1.075rem); font-weight: 400; letter-spacing: normal; line-height: 1.6; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; transition: opacity 180ms var(--ease); }
body.menu-open { overflow: hidden; }
body.is-leaving { opacity: 0; }
a { color: inherit; text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--color-red); }
button, input, select, textarea { font: inherit; }
button { border: 0; }
img, picture { display: block; max-width: 100%; }
::selection { background: var(--color-yellow); color: var(--color-ink); }
.skip-link { position: fixed; left: var(--gutter); top: -5rem; z-index: 100; padding: 0.75rem 1rem; border-radius: var(--radius-button); background: var(--color-ink); color: var(--color-white); transition: top var(--transition-fast); }
.skip-link:focus { top: 0.75rem; }
.container { width: min(100% - (2 * var(--gutter)), var(--container)); margin-inline: auto; }
.reading { max-width: var(--reading); }
.section { padding-block: var(--section-space); }
.section--compact { padding-block: clamp(3.5rem, 7vw, 7rem); }
.section-rule { border-top: 1px solid var(--color-line); }
.eyebrow { color: var(--color-ink-soft); font-size: 0.78rem; font-weight: 520; line-height: 1.25; text-transform: uppercase; }
.display, .headline, .title { font-family: var(--font-display); font-weight: 570; letter-spacing: -0.015em; text-wrap: balance; }
.display { font-size: clamp(3.4rem, 6.3vw, 6.8rem); line-height: 0.96; }
.headline { font-size: clamp(2.6rem, 4.3vw, 4.8rem); line-height: 1; }
.title { font-size: clamp(2rem, 3vw, 3.25rem); line-height: 1.05; }
.lead { max-width: 40ch; color: var(--color-ink-soft); font-size: clamp(1.12rem, 1.04rem + 0.3vw, 1.4rem); line-height: 1.5; }
.muted { color: var(--color-ink-soft); }
.kicker { display: inline-flex; align-items: center; gap: 0.65rem; }
.kicker::before { width: 1.5rem; height: 2px; border-radius: 1rem; background: var(--color-yellow); content: ""; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
:focus-visible { outline: 2px solid var(--color-red); outline-offset: 4px; }
[data-reveal] { visibility: visible; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } body { transition: none; } }
@media (max-width: 30rem) { .display { font-size: clamp(2.9rem, 13vw, 4rem); } .headline { font-size: clamp(2.2rem, 10vw, 3.1rem); } .title { font-size: clamp(1.8rem, 8vw, 2.5rem); } }
