*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg-page); color: var(--text-body); font: var(--type-body); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { margin: 0; color: var(--text-strong); text-wrap: balance; }
h1 { font: var(--type-h1); } h2 { font: var(--type-h2); } h3 { font: var(--type-h3); } h4 { font: var(--type-h4); }
p { margin: 0; text-wrap: pretty; }
a { color: var(--text-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--text-link-hover); text-decoration-thickness: 2px; }
:focus-visible { outline: var(--focus-width) solid var(--focus-ring); outline-offset: 2px; }
::selection { background: var(--sage-200); color: var(--text-strong); }
[class^="icon-"], [class*=" icon-"] { line-height: 1; display: inline-flex; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; } }
