*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
html[data-motion="off"]{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.7;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;text-rendering:optimizeLegibility}
main{flex:1;display:block}
img,svg,video,canvas{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;letter-spacing:-.02em;margin:0 0 var(--s-4);font-weight:600}
h1{font-size:clamp(2.4rem,6vw,4.4rem)}
h2{font-size:clamp(1.6rem,3.4vw,2.3rem)}
h3{font-size:1.25rem}
p{margin:0 0 var(--s-4)}
a{color:var(--link);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s var(--ease)}
a:hover{background-size:100% 1px}
ul,ol{margin:0 0 var(--s-4);padding-left:1.25rem}
li{margin-bottom:.35rem}
code,kbd{font-family:var(--font-mono);font-size:.9em}
hr{border:0;border-top:1px solid var(--border);margin:var(--s-6) 0}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--accent);color:var(--accent-ink);padding:.6rem 1rem;border-radius:8px;font-weight:600}
.skip:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:var(--font-mono)}
.grad-text{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.dim{color:var(--text-dim)}
