*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-porcelain); color: var(--color-ink); font-family: var(--font-body); line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 3px solid var(--color-coral); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 100; top: 1rem; left: 1rem; transform: translateY(-180%); background: var(--color-ink); color: var(--color-paper); padding: .75rem 1rem; }
.skip-link:focus { transform: none; }
.eyebrow { font-size: var(--text-xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: .96; }
.section-shell { width: min(100%, var(--container)); margin-inline: auto; padding: var(--section-space) var(--gutter); }
.section-shell--split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
.lede { max-width: 40rem; font-size: var(--text-lg); line-height: 1.55; }
.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity var(--transition-slow), transform var(--transition-slow); }
.js .reveal.is-visible { opacity: 1; transform: none; }
@media (min-width: 800px) { .section-shell--split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
