*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 7.5rem; }
body { margin: 0; color: var(--ink); background: var(--surface); font-family: var(--font-sans); font-size: var(--step-0); line-height: 1.68; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
a { color: var(--primary-dark); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: var(--primary); }
p, ul, ol, blockquote { margin-top: 0; }
p { margin-bottom: 1.15em; }
ul, ol { padding-left: 1.25rem; }
h1, h2, h3, h4 { color: var(--ink-strong); line-height: 1.12; letter-spacing: -.026em; margin: 0 0 .65em; text-wrap: balance; }
h1 { font-size: var(--step-5); max-width: 18ch; }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-1); }
h4 { font-size: var(--step-0); }
strong { color: var(--ink-strong); }
hr { border: 0; border-top: 1px solid var(--border); margin: var(--space-4) 0; }
::selection { background: var(--primary-soft); color: var(--ink-strong); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: .2rem; }
[hidden] { display: none !important; }
.skip-link { position: fixed; left: 1rem; top: 1rem; z-index: 2000; background: var(--accent); color: var(--ink-strong); padding: .8rem 1rem; font-weight: 800; transform: translateY(-180%); transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }
.icon { width: 1.2em; height: 1.2em; flex: 0 0 auto; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
