/* ── Purpose Health base styles ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--sans);background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
a:hover{color:var(--accent)}
img,svg{display:block}
.container{max-width:var(--container);margin:0 auto}
.section{padding:var(--section-pad);position:relative;z-index:1}
.section-sm{padding:var(--section-pad-sm)}
.divider{border:none;border-top:1px solid var(--border);margin:0}
/* Grain overlay — apply .noise to body for full-page texture */
.noise::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px;opacity:0.4}
/* Scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}.reveal-delay-2{transition-delay:0.2s}.reveal-delay-3{transition-delay:0.3s}
