/* Base: reset, document defaults, typography primitives. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--color-ground);color:var(--color-ink);font-family:var(--font-text);font-size:var(--text-md);line-height:var(--leading-text);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);text-wrap:balance}
h1{font-size:var(--text-4xl);line-height:var(--leading-tight)}
h2{font-size:var(--text-3xl);line-height:var(--leading-snug);margin-bottom:var(--space-6)}
h3{font-size:var(--text-xl);line-height:1.2;font-weight:var(--weight-display-strong)}
a{color:var(--color-accent-strong);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
a:hover{color:var(--color-ink)}
a:focus-visible,button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
img{max-width:100%;height:auto;display:block}
button{font:inherit}
section[id]{scroll-margin-top:var(--scroll-offset)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gutter);top:var(--space-3);z-index:100;background:var(--color-ground);padding:var(--space-3);outline:2px solid var(--color-accent)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
