/* Site-wide animated ambience: drifting gold/purple light, faint sound waves and film grain.
   Sits behind every section (z-index -2/-1); sections without their own background let it through. */
.amb{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.amb i{position:absolute;border-radius:50%;filter:blur(85px);mix-blend-mode:screen;will-change:transform}
.amb .a1{width:46vmax;height:46vmax;left:-18vmax;top:10vh;background:radial-gradient(circle,#8a5a1c,transparent 65%);opacity:.62;animation:amb1 34s ease-in-out infinite alternate}
.amb .a2{width:40vmax;height:40vmax;right:-14vmax;top:-12vmax;background:radial-gradient(circle,#5a2f6e,transparent 65%);opacity:.6;animation:amb2 40s ease-in-out infinite alternate}
.amb .a3{width:34vmax;height:34vmax;right:8vw;bottom:-16vmax;background:radial-gradient(circle,#b8862f,transparent 65%);opacity:.42;animation:amb3 30s ease-in-out infinite alternate}
.amb .a4{width:28vmax;height:28vmax;left:30vw;top:40vh;background:radial-gradient(circle,#4a2a66,transparent 65%);opacity:.5;animation:amb4 46s ease-in-out infinite alternate}
@keyframes amb1{to{transform:translate(22vw,-12vh) scale(1.12)}}
@keyframes amb2{to{transform:translate(-18vw,26vh) scale(.92)}}
@keyframes amb3{to{transform:translate(-26vw,-20vh) scale(1.18)}}
@keyframes amb4{to{transform:translate(16vw,-22vh) scale(1.1)}}
#amb-waves{position:fixed;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.amb-grain{position:fixed;inset:-50%;z-index:-1;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:amb-grain 1.4s steps(6) infinite}
@keyframes amb-grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-2%,3%)}80%{transform:translate(4%,1%)}}
@media (prefers-reduced-motion:reduce){.amb i,.amb-grain{animation:none}}
