* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: var(--font); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body::selection { color: #fff; background: var(--blue); }
a { color: inherit; text-decoration: none; }
img, svg { max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.035em; line-height: 1.1; }
h1 { font-size: clamp(2.75rem, 6vw, 5rem); font-weight: 650; }
h2 { font-size: clamp(2.15rem, 4vw, 3.35rem); font-weight: 640; }
h3 { font-size: 1.25rem; font-weight: 650; }
p { color: var(--ink-soft); }
.container { width: min(100% - 2rem, 1200px); }
.skip-link { position: fixed; z-index: 9999; top: -100px; left: 1rem; padding: .8rem 1rem; color: #fff; background: var(--navy); border-radius: 8px; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid rgba(41,184,211,.85); outline-offset: 3px; }
.eyebrow { display: flex; align-items: center; gap: .65rem; margin-bottom: 1.35rem; color: var(--blue); font-size: .76rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow::before { width: 24px; height: 1px; content: ""; background: currentColor; }
.eyebrow.light { color: #82d9e8; }
.section-heading { max-width: 760px; margin-bottom: clamp(2.4rem, 5vw, 4.2rem); }
.section-heading h2 { margin-bottom: 1.25rem; }
.section-heading p { max-width: 680px; margin-bottom: 0; font-size: 1.08rem; }
.section-heading.split { display: grid; max-width: none; grid-template-columns: 1.45fr .75fr; gap: 4rem; align-items: end; }
.section-heading.split h2 { margin-bottom: 0; }
.section-heading.centered { margin-right: auto; margin-left: auto; text-align: center; }
.section-heading.centered .eyebrow { justify-content: center; }
.section-heading.centered p { margin-inline: auto; }
.reveal { opacity: 1; transform: none; }
.reveal.animate-ready { opacity: 0; transform: translateY(20px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.animate-ready.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } .reveal, .reveal.animate-ready { opacity: 1; transform: none; } }
@media (max-width: 767.98px) { .section-heading.split { grid-template-columns: 1fr; gap: 1rem; } h1 { font-size: clamp(2.6rem, 12vw, 4rem); } }
