/* Ноябрь: туманное облако (редкое событие) */

#novemberFogLayer {
    position: fixed;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    background: transparent;
}

.nov-fog {
    position: absolute;
    pointer-events: none;
    z-index: 10;
    border-radius: 50%;
    filter: blur(18px);
    animation: novFogDrift var(--drift-dur, 14s) ease-in-out forwards;
    opacity: 0;
    transform: translateX(-50%) translateY(-50%);
}

.nov-fog--primary {
    background: radial-gradient(ellipse at center,
            rgba(190, 195, 210, 0.75) 0%,
            rgba(190, 195, 210, 0.55) 25%,
            rgba(190, 195, 210, 0.25) 50%,
            transparent 75%);
    width: 75vmax;
    height: 45vmin;
}

.nov-fog--secondary {
    background: radial-gradient(ellipse at 60% 40%,
            rgba(200, 205, 215, 0.65) 0%,
            rgba(200, 205, 215, 0.35) 40%,
            transparent 70%);
    width: 60vmax;
    height: 35vmin;
    animation-name: novFogDriftAlt;
    animation-duration: calc(var(--drift-dur, 14s) * 1.1);
}

.nov-fog--accent {
    background: radial-gradient(ellipse at 30% 50%,
            rgba(180, 185, 200, 0.7) 0%,
            rgba(180, 185, 200, 0.4) 30%,
            transparent 65%);
    width: 35vmax;
    height: 22vmin;
    animation-name: novFogDriftAlt2;
    animation-duration: calc(var(--drift-dur, 14s) * 1.25);
    animation-delay: 0.2s;
}

@keyframes novFogDrift {
    0% {
        transform: translateX(-50%) translateY(-50%) translate(0, 0);
        opacity: 0;
    }
    10% { opacity: 0.9; }
    30% { transform: translateX(-50%) translateY(-50%) translate(18vw, -8vh); }
    60% {
        transform: translateX(-50%) translateY(-50%) translate(40vw, 6vh);
        opacity: 0.8;
    }
    90% {
        transform: translateX(-50%) translateY(-50%) translate(65vw, -4vh);
        opacity: 0.4;
    }
    100% {
        transform: translateX(-50%) translateY(-50%) translate(90vw, 2vh);
        opacity: 0;
    }
}

@keyframes novFogDriftAlt {
    0% {
        transform: translateX(-50%) translateY(-50%) translate(0, 0);
        opacity: 0;
    }
    10% { opacity: 0.85; }
    35% { transform: translateX(-50%) translateY(-50%) translate(22vw, 10vh); }
    65% {
        transform: translateX(-50%) translateY(-50%) translate(48vw, -6vh);
        opacity: 0.7;
    }
    100% {
        transform: translateX(-50%) translateY(-50%) translate(75vw, 8vh);
        opacity: 0;
    }
}

@keyframes novFogDriftAlt2 {
    0% {
        transform: translateX(-50%) translateY(-50%) translate(0, 0);
        opacity: 0;
    }
    10% { opacity: 0.8; }
    40% { transform: translateX(-50%) translateY(-50%) translate(25vw, -5vh); }
    70% {
        transform: translateX(-50%) translateY(-50%) translate(55vw, 12vh);
        opacity: 0.6;
    }
    100% {
        transform: translateX(-50%) translateY(-50%) translate(80vw, -8vh);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    #novemberFogLayer {
        display: none;
    }
}
