:root {
    --koru-bg-1: #090f1a;
    --koru-bg-2: #0d1322;
    --koru-accent-a: rgba(0, 180, 157, 0.35);
    --koru-accent-b: rgba(112, 57, 148, 0.25);
    --koru-accent-c: rgba(24, 118, 255, 0.20);
}

body.koru-animated-bg {
    min-height: 100vh;
    background: radial-gradient(circle at 15% 20%, var(--koru-accent-a), transparent 40%),
                radial-gradient(circle at 85% 15%, var(--koru-accent-b), transparent 35%),
                radial-gradient(circle at 55% 85%, var(--koru-accent-c), transparent 42%),
                linear-gradient(170deg, var(--koru-bg-1), var(--koru-bg-2));
    overflow-x: hidden;
}

.koru-bg-orb {
    position: fixed;
    z-index: 0;
    border-radius: 9999px;
    filter: blur(50px);
    opacity: .55;
    pointer-events: none;
    animation: koruDrift 14s ease-in-out infinite alternate;
}

.koru-bg-orb-a { width: 300px; height: 300px; background: rgba(0,180,157,.45); top: -50px; left: -60px; }
.koru-bg-orb-b { width: 260px; height: 260px; background: rgba(112,57,148,.35); right: -40px; top: 20%; animation-delay: 1.5s; }
.koru-bg-orb-c { width: 220px; height: 220px; background: rgba(58,131,255,.35); left: 25%; bottom: -70px; animation-delay: 3s; }

@keyframes koruDrift {
    0% { transform: translate3d(0, 0, 0) scale(1); }
    100% { transform: translate3d(18px, -22px, 0) scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
    .koru-bg-orb { animation: none; }
}
