@keyframes drift {
    0% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(30px, -20px) scale(1.08);
    }

    100% {
        transform: translate(-20px, 25px) scale(.95);
    }
}

.blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .18;
    animation: drift 18s ease-in-out infinite alternate;
}

.blob-1 {
    animation-duration: 22s;
}

.blob-2 {
    animation-duration: 17s;
    animation-delay: -8s;
}

.blob-3 {
    animation-duration: 25s;
    animation-delay: -4s;
}

body.light .blob {
    opacity: .1;
}