*,
*::before,
*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;color:var(--ink);background:var(--paper);min-height:100dvh}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
button:disabled{cursor:not-allowed}
img,canvas,svg{display:block;max-width:100%}
h1,h2,h3{line-height:1.1;text-wrap:balance}
p{max-width:70ch}
a{color:var(--teal);text-underline-offset:3px}
a,button,input,textarea,select{transition:background .18s,color .18s,border-color .18s,transform .18s}
button:active:not(:disabled){transform:translateY(1px)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:fixed;top:-60px;left:16px;padding:12px;background:var(--paper);z-index:100}
.skip:focus{top:16px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
