.page-bg {
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
            radial-gradient(60% 60% at 20% 15%, rgba(142,45,226,.45), transparent 60%),
            radial-gradient(60% 60% at 80% 25%, rgba(37,117,252,.35), transparent 65%),
            radial-gradient(70% 70% at 50% 85%, rgba(255,94,153,.25), transparent 70%),
            linear-gradient(180deg, var(--bg1), var(--bg2));
    background-size: 300% 300%;
    animation: bgShift 15s ease infinite;
    filter: saturate(1.2) brightness(1.1);
}

@keyframes bgShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}