*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: var(--header-offset, 6.5rem); }
body { margin: 0; font: 1rem/1.65 var(--font); color: var(--ink); background: var(--surface); -webkit-font-smoothing: antialiased; overflow-wrap: anywhere; }
h1, h2, h3 { font-family: var(--heading-font); line-height: 1.2; margin: 0 0 1rem; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.25rem, 5vw, 4rem); letter-spacing: -.04em; }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); letter-spacing: -.025em; }
h3 { font-size: 1.3rem; }
p { margin: 0 0 1rem; }
a { color: var(--blue); text-underline-offset: .2em; }
a:hover { color: var(--blue-hover); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
[hidden] { display: none !important; }
section[id] { scroll-margin-top: 0; }
section:focus, main:focus { outline: 3px solid var(--blue); outline-offset: -3px; }
ul, ol { padding-left: 1.3rem; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
