/* Saaram Labs brand: self-hosted type, one accent colour, serif-italic emphasis */
@font-face{font-family:'Geist';font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/geist.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic.woff2) format('woff2')}
/* zero-specificity defaults so a page theme (e.g. HealthPulse teal) can override them */
:where(:root){--fh:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;--fb:var(--fh);--fs:'Instrument Serif',Georgia,serif;--accent:#b9a6ff;--em:#cfc8ea}
body{font-family:var(--fb)}
h1,h2,h3,.brand{font-family:var(--fh);letter-spacing:-.035em}
/* emphasis is a serif italic, never a colour gradient */
.soft,.grad{font-family:var(--fs);font-style:italic;font-weight:400;letter-spacing:0;font-size:1.06em;color:var(--em);background:none;-webkit-text-fill-color:currentColor}
h1 .soft,h1 .grad{color:#fff}
.notify input,.notify button,.contactform input,.contactform textarea,.contactform button{font-family:var(--fb)}
/* hero content animates in with CSS so it never waits for the scroll-reveal script (faster LCP) */
@keyframes rise{from{opacity:0;transform:translateY(20px)}}
.silk-host .rv{opacity:1;transform:none;transition:none;animation:rise .9s cubic-bezier(.2,.7,.2,1) both}

/* Background below the hero: no blobs or grid. A fine film grain plus a sparse dust field that
   drifts slowly upward, continuing the hero's particles; content scrolls over it. */
.aurora,.gridbg{display:none}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.05;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23n)'/%3E%3C/svg%3E")}
body::after{content:"";position:fixed;left:0;right:0;top:0;height:calc(100vh + 1440px);z-index:-2;pointer-events:none;opacity:.55;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480'%3E%3Cg fill='%23ebe8ff'%3E%3Ccircle cx='217.1' cy='268.7' r='0.87' fill-opacity='0.51'/%3E%3Ccircle cx='243.8' cy='281.9' r='0.57' fill-opacity='0.53'/%3E%3Ccircle cx='302.3' cy='380.6' r='0.54' fill-opacity='0.44'/%3E%3Ccircle cx='43.5' cy='388.6' r='0.78' fill-opacity='0.32'/%3E%3Ccircle cx='471.5' cy='463.1' r='0.76' fill-opacity='0.58'/%3E%3Ccircle cx='75.6' cy='7.2' r='0.71' fill-opacity='0.33'/%3E%3Ccircle cx='91.3' cy='116.1' r='0.51' fill-opacity='0.51'/%3E%3Ccircle cx='211.5' cy='404.4' r='0.71' fill-opacity='0.59'/%3E%3Ccircle cx='239.9' cy='318.0' r='0.68' fill-opacity='0.43'/%3E%3Ccircle cx='478.9' cy='477.9' r='0.84' fill-opacity='0.62'/%3E%3Ccircle cx='151.3' cy='110.2' r='0.62' fill-opacity='0.33'/%3E%3Ccircle cx='367.8' cy='192.2' r='0.84' fill-opacity='0.47'/%3E%3Ccircle cx='459.9' cy='406.7' r='0.50' fill-opacity='0.39'/%3E%3Ccircle cx='436.9' cy='225.6' r='0.89' fill-opacity='0.48'/%3E%3Ccircle cx='35.1' cy='302.1' r='0.81' fill-opacity='0.42'/%3E%3Ccircle cx='41.8' cy='159.6' r='0.89' fill-opacity='0.64'/%3E%3Ccircle cx='56.6' cy='118.3' r='0.54' fill-opacity='0.33'/%3E%3Ccircle cx='382.6' cy='85.3' r='0.72' fill-opacity='0.50'/%3E%3Ccircle cx='91.5' cy='351.3' r='0.55' fill-opacity='0.59'/%3E%3Ccircle cx='55.9' cy='202.0' r='0.59' fill-opacity='0.42'/%3E%3Ccircle cx='466.0' cy='385.6' r='0.62' fill-opacity='0.70'/%3E%3Ccircle cx='101.1' cy='189.3' r='0.84' fill-opacity='0.59'/%3E%3Ccircle cx='48.2' cy='474.9' r='0.59' fill-opacity='0.42'/%3E%3Ccircle cx='370.9' cy='157.9' r='0.62' fill-opacity='0.33'/%3E%3Ccircle cx='43.3' cy='279.7' r='0.60' fill-opacity='0.57'/%3E%3Ccircle cx='178.4' cy='217.5' r='0.88' fill-opacity='0.52'/%3E%3Ccircle cx='275.8' cy='415.9' r='0.57' fill-opacity='0.37'/%3E%3Ccircle cx='436.0' cy='392.5' r='0.60' fill-opacity='0.39'/%3E%3Ccircle cx='354.9' cy='451.4' r='0.58' fill-opacity='0.73'/%3E%3Ccircle cx='423.5' cy='289.7' r='0.67' fill-opacity='0.35'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720'%3E%3Cg fill='%23d4cdf2'%3E%3Ccircle cx='27.9' cy='693.1' r='1.02' fill-opacity='0.25'/%3E%3Ccircle cx='185.0' cy='593.1' r='1.20' fill-opacity='0.17'/%3E%3Ccircle cx='126.3' cy='518.7' r='0.93' fill-opacity='0.16'/%3E%3Ccircle cx='402.7' cy='613.7' r='1.21' fill-opacity='0.17'/%3E%3Ccircle cx='660.5' cy='146.9' r='0.91' fill-opacity='0.17'/%3E%3Ccircle cx='320.9' cy='43.5' r='0.99' fill-opacity='0.19'/%3E%3Ccircle cx='412.0' cy='94.7' r='1.08' fill-opacity='0.28'/%3E%3Ccircle cx='706.0' cy='473.0' r='1.25' fill-opacity='0.23'/%3E%3Ccircle cx='101.0' cy='25.3' r='0.91' fill-opacity='0.28'/%3E%3Ccircle cx='504.7' cy='693.2' r='0.91' fill-opacity='0.23'/%3E%3Ccircle cx='347.2' cy='526.0' r='1.06' fill-opacity='0.30'/%3E%3Ccircle cx='54.2' cy='393.2' r='1.27' fill-opacity='0.28'/%3E%3Ccircle cx='530.7' cy='506.7' r='1.30' fill-opacity='0.28'/%3E%3Ccircle cx='253.3' cy='493.3' r='1.35' fill-opacity='0.28'/%3E%3C/g%3E%3C/svg%3E");will-change:transform;animation:dust 300s linear infinite}
@keyframes dust{to{transform:translate3d(0,-1440px,0)}}
footer .flinks{display:flex;gap:22px;flex-wrap:wrap}
footer .flinks a:hover{color:var(--ink)}
@media(prefers-reduced-motion:reduce){body::after{animation:none}}
