/* JVA-style living background */
.ambient{inset:-12%;animation:ambient-breathe 12s ease-in-out infinite alternate}
.ambient span{border-radius:48% 52% 62% 38%/45% 55% 45% 55%;will-change:transform,border-radius,filter}
.ambient span:nth-child(1){animation:wave-one 13s ease-in-out infinite alternate}
.ambient span:nth-child(2){animation:wave-two 17s cubic-bezier(.45,.05,.55,.95) infinite alternate}
.ambient span:nth-child(3){background:radial-gradient(ellipse,rgba(225,13,18,.12),transparent 65%);animation:wave-three 20s ease-in-out infinite alternate}
.scheduler aside{background-size:140% 140%;animation:aside-flow 12s ease-in-out infinite alternate}
.scheduler aside:after{animation:aside-ring 14s ease-in-out infinite alternate}

@keyframes ambient-breathe{0%{filter:saturate(.9) brightness(.85)}100%{filter:saturate(1.18) brightness(1.08)}}
@keyframes wave-one{0%{transform:translate3d(-5vw,-3vh,0) rotate(-16deg) scale(.92);border-radius:42% 58% 48% 52%/60% 38% 62% 40%}45%{transform:translate3d(9vw,3vh,0) rotate(-4deg) scale(1.1);border-radius:62% 38% 66% 34%/42% 61% 39% 58%}100%{transform:translate3d(20vw,-2vh,0) rotate(9deg) scale(.98);border-radius:38% 62% 44% 56%/55% 35% 65% 45%}}
@keyframes wave-two{0%{transform:translate3d(-8vw,8vh,0) rotate(9deg) scale(.85);filter:blur(75px)}50%{transform:translate3d(12vw,-9vh,0) rotate(-10deg) scale(1.18);filter:blur(42px)}100%{transform:translate3d(25vw,5vh,0) rotate(6deg) scale(1.04);filter:blur(66px)}}
@keyframes wave-three{0%{transform:translate3d(8vw,0,0) rotate(-8deg) scale(.9);border-radius:44% 56% 39% 61%/63% 43% 57% 37%}100%{transform:translate3d(-23vw,17vh,0) rotate(18deg) scale(1.22);border-radius:68% 32% 59% 41%/36% 65% 35% 64%}}
@keyframes aside-flow{0%{background-position:0% 30%}100%{background-position:100% 68%}}
@keyframes aside-ring{0%{transform:translate(-35px,15px) rotate(-25deg) scale(.85);opacity:.25}100%{transform:translate(95px,-70px) rotate(4deg) scale(1.3);opacity:.75}}

@media(prefers-reduced-motion:reduce){.ambient,.ambient span,.scheduler aside,.scheduler aside:after{animation:none!important}}
