*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; font-family: var(--font-body); font-size: var(--fs-base); line-height: 1.65; color: var(--color-ink); background: var(--color-bg); -webkit-font-smoothing: antialiased; }
img, svg, video { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--font-heading); line-height: 1.2; margin: 0 0 var(--space-4); color: var(--color-ink); letter-spacing: -0.01em; }
h1 { font-size: var(--fs-3xl); } h2 { font-size: var(--fs-2xl); } h3 { font-size: var(--fs-lg); } h4 { font-size: var(--fs-md); }
p { margin: 0 0 var(--space-4); }
a { color: var(--color-primary); text-underline-offset: 3px; }
a:hover { color: var(--color-secondary); }
:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; border-radius: 4px; }
ul, ol { padding-left: 1.25rem; }
address { font-style: normal; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 16px; top: -60px; background: var(--color-primary); color: #fff; padding: 10px 16px; border-radius: var(--radius-sm); z-index: 1000; }
.skip-link:focus { top: 12px; color: #fff; }
.muted { color: var(--color-muted); }
.center { text-align: center; }
.rounded { border-radius: var(--radius-lg); }
main:focus { outline: none; }
.prose { color: var(--color-ink-soft); font-size: var(--fs-md); }
.prose > :last-child { margin-bottom: 0; }
.prose h2, .prose h3 { margin-top: var(--space-6); }
.prose ul, .prose ol { margin: 0 0 var(--space-4); }
.prose li { margin-bottom: var(--space-2); }
.prose blockquote { border-left: 4px solid var(--color-secondary); margin: var(--space-5) 0; padding: var(--space-2) var(--space-5); color: var(--color-ink); font-style: italic; }
.prose--center { text-align: center; }
.prose--light, .prose--light p { color: rgba(255,255,255,.88); }
