/* BASE — resets + the defaults every surface inherits. Kept small on purpose. */
*,*::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;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,p,figure,blockquote{margin:0}
h1,h2,h3,h4,h5{color:var(--text-strong);letter-spacing:var(--ls-tight);text-wrap:balance}
h1{font:var(--type-h1)}h2{font:var(--type-h2)}h3{font:var(--type-h3)}h4{font:var(--type-h4)}
p{text-wrap:pretty}
a{color:var(--link);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--link) 35%,transparent);transition:color var(--t-hover),border-color var(--t-hover),background-color var(--t-hover)}
a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}
a:active{color:var(--accent-dim)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:var(--bw) solid var(--focus-ring);outline-offset:2px}
button{font:inherit;color:inherit}
ul,ol{margin:0;padding-left:1.1em}
img{max-width:100%;display:block}
code,kbd,pre{font-family:var(--font-mono);font-size:.92em}
hr{border:0;border-top:var(--border);margin:var(--sp-8) 0}
::selection{background:var(--accent);color:var(--accent-ink)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--ink-900)}
::-webkit-scrollbar-thumb{background:var(--ink-500);border:2px solid var(--ink-900)}
::-webkit-scrollbar-thumb:hover{background:var(--ink-400)}
/* pixel-art images must never be smoothed */
.px-art,[data-px-art]{image-rendering:pixelated;image-rendering:crisp-edges}
/* page atmospheres */
.bg-void{background:var(--bg-void)}
.bg-grid{background-color:var(--bg-page);background-image:var(--tex-grid)}
.bg-scan::after{content:"";position:absolute;inset:0;background:var(--tex-scanline);opacity:.5;pointer-events:none;mix-blend-mode:overlay}
