*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--font-size-base);line-height:var(--line-height-base);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-stack-base);color:var(--color-text);background:var(--color-bg);min-height:100vh}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
a{color:var(--color-primary);text-decoration-thickness:1.5px;text-underline-offset:2px}
a:hover{color:var(--color-primary-soft)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-stack-display);line-height:1.25;margin:0 0 var(--space-3)}
h1{font-size:clamp(1.75rem,3.5vw,2.5rem)}
h2{font-size:clamp(1.4rem,2.5vw,1.85rem);margin-top:var(--space-5)}
h3{font-size:1.2rem;margin-top:var(--space-4)}
p,ul,ol,dl{margin:0 0 var(--space-3)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-primary);color:#fff;padding:.5rem 1rem;z-index:1000}
.skip-link:focus{left:1rem;top:1rem}
