/* Ambient Theme System */

/* Base Body Styles */
body {
    background: rgb(248, 249, 250);
    position: relative;
    transition: background-color 0.5s ease;
}

/* Amicassa Theme - Ambient Background */
body.amicassa::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
    
    background:
        radial-gradient(
            ellipse 900px 500px at 10% 15%,
            rgba(123,79,163,.18),
            transparent 65%
        ),
        radial-gradient(
            ellipse 700px 350px at 80% 10%,
            rgba(242,103,34,.16),
            transparent 70%
        ),
        radial-gradient(
            ellipse 500px 800px at 25% 80%,
            rgba(255,210,180,.12),
            transparent 75%
        ),
        radial-gradient(
            ellipse 400px 400px at 85% 65%,
            rgba(220,200,255,.10),
            transparent 70%
        );
    
    animation: ambientGlow 25s ease-in-out infinite alternate,
               ambientMove 30s ease-in-out infinite alternate;
}

/* Federal Land Inc Theme - Ambient Background */
body.federal_land_inc::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
    
    background:
        radial-gradient(
            ellipse 900px 500px at 10% 15%,
            rgba(47, 62, 153, .18),
            transparent 65%
        ),
        radial-gradient(
            ellipse 700px 350px at 80% 10%,
            rgba(84, 108, 180, .15),
            transparent 70%
        ),
        radial-gradient(
            ellipse 500px 800px at 25% 80%,
            rgba(198, 220, 255, .12),
            transparent 75%
        ),
        radial-gradient(
            ellipse 400px 400px at 85% 65%,
            rgba(218, 224, 235, .10),
            transparent 70%
        ),
        radial-gradient(
            ellipse 600px 300px at 50% 50%,
            rgba(255, 255, 255, .08),
            transparent 80%
        );
    
    animation: ambientGlow 25s ease-in-out infinite alternate,
               ambientMove 30s ease-in-out infinite alternate;
}

/* SMDC Theme - Ambient Background */
body.smdc::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
    
    background:
        radial-gradient(
            ellipse 900px 500px at 10% 15%,
            rgba(255, 223, 70, .18),
            transparent 65%
        ),
        radial-gradient(
            ellipse 700px 350px at 80% 10%,
            rgba(255, 190, 70, .15),
            transparent 70%
        ),
        radial-gradient(
            ellipse 500px 800px at 25% 80%,
            rgba(245, 90, 70, .13),
            transparent 75%
        ),
        radial-gradient(
            ellipse 400px 400px at 85% 65%,
            rgba(255, 220, 185, .10),
            transparent 70%
        ),
        radial-gradient(
            ellipse 600px 300px at 50% 50%,
            rgba(255, 248, 220, .08),
            transparent 80%
        );
    
    animation: ambientGlow 25s ease-in-out infinite alternate,
               ambientMove 30s ease-in-out infinite alternate;
}

/* Ambient Glow Animation - Breathing effect */
@keyframes ambientGlow {
    0% {
        opacity: 0.85;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
    100% {
        opacity: 0.9;
        transform: scale(1);
    }
}

/* Ambient Move Animation - Subtle drift */
@keyframes ambientMove {
    0% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(10px, -5px) scale(1.02);
    }
    50% {
        transform: translate(-5px, 10px) scale(1);
    }
    75% {
        transform: translate(-10px, -5px) scale(1.02);
    }
    100% {
        transform: translate(0, 0) scale(1);
    }
}
