.background {
    position: absolute;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(ellipse at 25% 20%, rgba(139, 168, 136, 0.35), transparent 40%),
        radial-gradient(ellipse at 75% 55%, rgba(181, 212, 181, 0.28), transparent 45%),
        radial-gradient(ellipse at 50% 80%, rgba(155, 170, 143, 0.30), transparent 38%),
        radial-gradient(ellipse at 15% 70%, rgba(221, 213, 197, 0.32), transparent 35%);
    z-index: -1;
    animation: bg-flow-color 18s infinite ease-in-out,
               bg-drift 35s infinite linear;
}

@keyframes bg-flow-color {
    0% { opacity: 0.75; filter: hue-rotate(0deg); }
    33% { opacity: 1; filter: hue-rotate(3deg); }
    66% { opacity: 0.85; filter: hue-rotate(-2deg); }
    100% { opacity: 0.75; filter: hue-rotate(0deg); }
}

@keyframes bg-drift {
    0% { background-position: 0% 0%, 100% 100%, 50% 80%, 20% 60%; }
    25% { background-position: 15% 10%, 85% 90%, 60% 70%, 10% 75%; }
    50% { background-position: 5% 5%, 95% 95%, 45% 85%, 25% 55%; }
    75% { background-position: 20% 15%, 80% 85%, 55% 75%, 15% 65%; }
    100% { background-position: 0% 0%, 100% 100%, 50% 80%, 20% 60%; }
}

.dynamic-glow {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    background:
        radial-gradient(ellipse at 12% 25%, rgba(155, 170, 143, 0.38), transparent 42%),
        radial-gradient(ellipse at 88% 35%, rgba(181, 212, 181, 0.34), transparent 46%),
        radial-gradient(ellipse at 55% 88%, rgba(232, 224, 208, 0.30), transparent 48%),
        radial-gradient(ellipse at 78% 12%, rgba(139, 168, 136, 0.28), transparent 40%);
    background-size: 220% 220%;
    opacity: 0.65;
    animation: glow-shift-sage 24s infinite alternate ease-in-out;
    pointer-events: none;
}

@keyframes glow-shift-sage {
    0% { background-position: 0% 0%; background-size: 220% 220%; opacity: 0.55; }
    33% { background-position: 60% 30%; background-size: 260% 240%; opacity: 0.78; }
    66% { background-position: 40% 70%; background-size: 230% 250%; opacity: 0.62; }
    100% { background-position: 0% 0%; background-size: 220% 220%; opacity: 0.55; }
}
