* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-sans); font-size: var(--step-0); line-height: 1.8; overflow-x: clip; }
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p, figure, blockquote, dl, dd { margin-top: 0; }
h1, h2, h3 { max-width: 100%; line-height: 1.28; letter-spacing: -.035em; line-break: strict; overflow-wrap: break-word; word-break: normal; text-wrap: balance; }
h1, h2 { font-family: var(--font-serif); font-weight: 600; }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-1); }
.heading-phrase { display: block; white-space: nowrap; }
p { text-wrap: pretty; }
ul { padding-left: 1.25rem; }
blockquote { margin-left: 0; font-family: var(--font-serif); }
:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
.wrap { width: var(--wrap); margin-inline: auto; }
.section-space { padding-block: clamp(72px, 9vw, 140px); }
.skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 10px 16px; background: #fff; color: #000; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.staging-flag { padding: 5px 20px; color: #fff; background: #8b2b26; font-weight: 700; font-size: .76rem; letter-spacing: .08em; text-align: center; }
.kicker { margin-bottom: 18px; color: var(--blue); font-size: var(--step--1); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.lede { max-width: 47rem; color: var(--ink-soft); font-size: var(--step-1); line-height: 1.75; }
.prose { max-width: 780px; }
.prose > * + * { margin-top: 1.35em; }
.prose h2 { margin-top: 2.2em; font-size: var(--step-2); }
.prose h3 { margin-top: 1.8em; }
.prose li + li { margin-top: .55em; }
.text-link { font-weight: 800; }
.section-heading { margin-bottom: clamp(38px, 5vw, 70px); }
.section-heading h2 { margin-bottom: 0; }
.section-heading--split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 8vw; align-items: end; }
.section-heading--split > * { min-width: 0; }
.section-heading--split > p { margin-bottom: .4rem; color: var(--ink-soft); }
.editorial-columns { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr); gap: clamp(40px, 8vw, 120px); }
.editorial-columns h2 { font-size: var(--step-2); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 12px 24px; border: 1px solid var(--navy); background: var(--navy); color: #fff; font-weight: 800; text-decoration: none; transition: .2s ease; }
.button:hover { background: var(--blue); border-color: var(--blue); transform: translateY(-2px); }
.button--outline { color: var(--navy); background: transparent; }
.button--ghost { border-color: rgba(255,255,255,.7); background: rgba(8,28,44,.16); backdrop-filter: blur(7px); }
.button--small { min-height: 44px; padding: 8px 18px; font-size: .9rem; }
.arrow-link { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid currentColor; font-weight: 800; text-decoration: none; }
.arrow-link:hover span:last-child { transform: translate(3px,-3px); }
.arrow-link span:last-child { transition: transform .2s; }
.page-cta { padding: clamp(60px, 8vw, 110px) 0; color: #fff; background: var(--navy); }
.page-cta, .home-hero, .purpose-rail { --focus-ring: #f3d58a; }
.page-cta .wrap { display: flex; justify-content: space-between; gap: 40px; align-items: center; }
.page-cta h2 { margin-bottom: 0; max-width: 720px; }
.useful-empty { padding: 32px; border: 1px solid var(--line); background: rgba(255,255,255,.5); }
