.site-background{z-index:-1;background:var(--bg,#f4f4f4);pointer-events:none;position:fixed;inset:0;overflow:hidden}.site-bg__blob{background:var(--color,#e3e1ec);filter:blur(clamp(40px,5vw,90px));will-change:transform;border-radius:900px;position:absolute}.site-bg__blob--1{width:max(400px,66vw);height:max(400px,60vw)}.site-bg__blob--2{filter:blur(clamp(40px,5vw,90px))hue-rotate(135deg)brightness(1.3);width:max(225px,30vw);height:max(300px,40vw);top:20vh;right:20vh}.site-bg__blob--3{filter:blur(clamp(40px,5vw,90px))hue-rotate(-135deg);width:max(200px,20vw);height:max(100px,10vw);bottom:20vh;left:20vw}.site-bg__blob--1{animation:34s ease-in-out infinite alternate blob-wander-1}.site-bg__blob--2{animation:27s ease-in-out infinite alternate blob-wander-2}.site-bg__blob--3{animation:31s ease-in-out infinite alternate blob-wander-3}@keyframes blob-wander-1{0%{transform:translate(-260px,240px)rotate(-20deg)}25%{transform:translate(180px,-120px)rotate(60deg)}50%{transform:translate(-90px,170px)rotate(130deg)}75%{transform:translate(340px,-60px)rotate(20deg)}to{transform:translate(-150px,-180px)rotate(95deg)}}@keyframes blob-wander-2{0%{transform:translate(210px,-300px)rotate(30deg)}30%{transform:translate(-320px,90px)rotate(-25deg)}60%{transform:translate(120px,180px)rotate(110deg)}to{transform:translate(-60px,-140px)rotate(150deg)}}@keyframes blob-wander-3{0%{transform:translate(-120px,330px)rotate(140deg)}35%{transform:translate(280px,-50px)rotate(40deg)}70%{transform:translate(-380px,-150px)rotate(-30deg)}to{transform:translate(90px,120px)rotate(75deg)}}@media (prefers-reduced-motion:reduce){.site-bg__blob,.site-background:after{animation:none}}.site-background:after{content:"";z-index:10;pointer-events:none;will-change:transform;opacity:.35;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)'/%3E%3C/svg%3E");background-size:200px 200px;animation:.5s step-end infinite grain;position:absolute;inset:-15%}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}30%{transform:translate(3%,5%)}50%{transform:translate(-8%,2%)}70%{transform:translate(5%,-5%)}90%{transform:translate(-2%,8%)}}
