*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1rem); }
body { margin: 0; color: var(--color-ink); background: var(--color-surface); font-family: var(--font-sans); font-size: var(--text-base); line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
ul, ol { margin-top: 0; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
[aria-disabled="true"] { cursor: not-allowed; opacity: .62; }
.container { width: min(var(--container), calc(100% - 2.5rem)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 1000; padding: .7rem 1rem; color: #fff; background: var(--color-navy-900); border-radius: var(--radius-sm); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.eyebrow { margin-bottom: 1rem; color: var(--color-blue-600); font-size: .72rem; font-weight: 850; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase; }
.section-heading { max-width: 49rem; margin-bottom: 3rem; }
.section-heading h2 { margin-bottom: 1.25rem; font-size: clamp(2.4rem, 5vw, 4.7rem); line-height: 1.02; letter-spacing: -.055em; }
.section-heading > p:not(.eyebrow) { max-width: 42rem; margin-bottom: 0; color: var(--color-muted); font-size: var(--text-lg); }
.section-heading--split { max-width: none; display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 4rem; }
.section-heading--split > p { padding-bottom: .45rem; }
.reveal-ready [data-reveal] { opacity: 0; transform: translateY(1.25rem); transition: opacity 520ms ease, transform 520ms ease; }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; }
