/* Base typography, links and focus for every layout. */
body { font-family: var(--font-body); color: var(--ink); background: var(--page); line-height: 1.6; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--font-display); color: var(--ink); text-wrap: balance; letter-spacing: -.01em; }
h1, .h1 { font-weight: 700; }
h2, h3, h4, h5, h6, .h2, .h3, .h4, .h5, .h6 { font-weight: 600; }
a { color: var(--navy); text-underline-offset: .2em; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
a:hover { color: var(--navy-strong); text-decoration-color: currentColor; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 200; padding: .75rem 1rem; border-radius: var(--r-tight); background: var(--surface); box-shadow: var(--shadow-md); font-weight: 600; }
.skip-link:focus { top: .75rem; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
