*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; color: var(--ink-950); background: var(--paper); font-family: var(--font-sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
p, h1, h2, h3, ul, ol { margin-top: 0; }
h1, h2, h3 { color: var(--ink-950); font-weight: 700; letter-spacing: 0; line-height: 1.08; text-wrap: balance; }
h1 { font-size: clamp(2.75rem, 5vw, 4.75rem); }
h2 { font-size: clamp(2.1rem, 4.5vw, 4rem); }
h3 { font-size: 1.25rem; }
p { color: var(--slate-600); }
::selection { color: var(--ink-950); background: var(--mint-400); }
:focus-visible { outline: 3px solid var(--blue-500); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 1000; left: 16px; top: 12px; padding: 10px 16px; color: var(--white); background: var(--blue-500); border-radius: 8px; transform: translateY(-150%); transition: transform .2s; }
.skip-link:focus { transform: none; }
.section-dark { color: var(--white); background: var(--ink-950); }
.section-dark h1, .section-dark h2, .section-dark h3 { color: var(--white); }
.section-dark p { color: #aebdcd; }
.test-banner { padding: 7px 16px; color: var(--ink-950); background: var(--mint-400); font-size: .78rem; font-weight: 800; text-align: center; letter-spacing: .04em; text-transform: uppercase; }
