/* Base — resets, ambient page background, element defaults, layout helpers. */
*,*::before,*::after{box-sizing:border-box}

body{margin:0;min-height:100dvh;background-color:var(--surface-page);background-image:radial-gradient(circle at 15% 0%,var(--ambient-1) 0%,transparent 40%),radial-gradient(circle at 85% 100%,var(--ambient-2) 0%,transparent 40%),radial-gradient(circle at 50% 50%,var(--ambient-3) 0%,transparent 60%);background-attachment:fixed;color:var(--text-heading);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}

h1,h2,h3{margin:0 0 0.5em 0;font-weight:var(--fw-bold);color:var(--text-heading);line-height:var(--lh-tight);letter-spacing:var(--ls-heading)}
h1{font-size:var(--fs-display)}
h2{font-size:var(--fs-h2);margin-bottom:var(--sp-6)}
h3{font-size:var(--fs-h3);margin-bottom:var(--sp-2)}
h1,h2{text-wrap:balance}
p{margin:0 0 1.25em;max-width:var(--measure);text-wrap:pretty}
a{color:var(--sage-700);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--sage-900)}

/* Layout helpers */
.wrap{width:100%;max-width:var(--wrap-max);margin-inline:auto;padding-inline:max(var(--sp-5),env(safe-area-inset-left))}
.section{padding-block:var(--section-y)}
.grid{display:grid;gap:var(--gap-grid);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
