.fx-orbs{position:fixed;inset:-10%;z-index:-2;pointer-events:none;overflow:hidden}
.fx-orbs i{position:absolute;border-radius:50%;filter:blur(60px);opacity:.14;will-change:transform}
.fx-orbs i:nth-child(1){width:44vmax;height:44vmax;left:-10%;top:8%;background:radial-gradient(circle,#8a6bff,#0000 70%)}
.fx-orbs i:nth-child(2){width:36vmax;height:36vmax;right:-12%;top:34%;background:radial-gradient(circle,#7cf2ff,#0000 70%)}
.fx-orbs i:nth-child(3){width:28vmax;height:28vmax;left:28%;bottom:-14%;background:radial-gradient(circle,#ff9be8,#0000 70%)}
.player.playing:not(.vp) .portal{animation:dr 24s ease-in-out infinite alternate,beat var(--beat,.52s) ease-in-out infinite alternate!important}
@keyframes beat{from{filter:saturate(.6) brightness(.95)}to{filter:saturate(.8) brightness(1.08)}}
@media (prefers-reduced-motion:reduce){.fx-orbs{display:none}.player.playing:not(.vp) .portal{animation:none!important}}
