*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);margin:0}
h1{font-size:var(--text-h1);font-weight:var(--weight-black)}
h2{font-size:var(--text-h2);font-weight:var(--weight-bold)}
h3{font-size:var(--text-h3);font-weight:var(--weight-bold)}
h4{font-size:var(--text-h4);font-weight:var(--weight-semibold)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover);text-decoration:underline;text-underline-offset:3px}
code,kbd,pre{font-family:var(--font-mono);font-size:var(--text-mono)}
::selection{background:rgba(34,200,255,.28);color:var(--ink-12)}
.stakk-eyebrow{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:var(--weight-bold);color:var(--text-muted)}
.stakk-gradient-text{background:var(--gradient-edge-h);-webkit-background-clip:text;background-clip:text;color:transparent}
.stakk-grid-bg{background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px}
@keyframes stakk-spin{to{transform:rotate(360deg)}}
@keyframes stakk-fade{from{opacity:0}to{opacity:1}}
@keyframes stakk-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes stakk-pulse{0%,100%{opacity:.55}50%{opacity:1}}
