/* ❄️ New Year Snowfall Animation ❄️ */

.snowfall-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
    overflow: hidden;
}

.snowflake {
    position: absolute;
    top: -50px;
    pointer-events: none;
    user-select: none;
    animation: snowfall linear infinite;
    opacity: 0;
    will-change: transform;
}

/* Белые снежинки с легким свечением */
.snowflake.white {
    filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.5));
}

/* Голубые снежинки с легким голубым свечением */
.snowflake.blue {
    filter: drop-shadow(0 0 2px rgba(135, 206, 235, 0.6));
}

@keyframes snowfall {
    0% {
        transform: translateY(-50px) translateX(0) rotate(0deg);
        opacity: 0;
    }
    5% {
        opacity: 1;
    }
    95% {
        opacity: 1;
    }
    100% {
        transform: translateY(100vh) translateX(var(--drift)) rotate(var(--rotation));
        opacity: 0;
    }
}

@keyframes sway {
    0%, 100% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(var(--sway-amount));
    }
}

/* Дополнительное вращение для некоторых снежинок */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Дополнительная анимация покачивания */
.snowflake.sway {
    animation: snowfall linear infinite, sway ease-in-out infinite;
}

/* Размеры снежинок с разной прозрачностью */
.snowflake.small {
    width: 14px;
    height: 14px;
    --base-opacity: 0.7;
}

.snowflake.medium {
    width: 18px;
    height: 18px;
    --base-opacity: 0.85;
}

.snowflake.large {
    width: 22px;
    height: 22px;
    --base-opacity: 1;
}

/* Эффект глубины - дальние снежинки */
.snowflake.far {
    opacity: 0.4 !important;
}

.snowflake.far.white {
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.3));
}

.snowflake.far.blue {
    filter: drop-shadow(0 0 1px rgba(135, 206, 235, 0.4));
}

/* Ближние снежинки - более яркие */
.snowflake.near {
    --base-opacity: 1;
}

.snowflake.near.white {
    filter: drop-shadow(0 0 3px rgba(255, 255, 255, 0.7));
}

.snowflake.near.blue {
    filter: drop-shadow(0 0 3px rgba(135, 206, 235, 0.8));
}

/* Вращающиеся снежинки */
.snowflake.spinning {
    animation: snowfall linear infinite, spin 4s linear infinite;
}

/* Оптимизация производительности */
.snowflake {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
}

/* Линейная анимация для лучшей производительности */
.snowflake {
    animation-timing-function: linear;
}

/* Адаптация для мобильных устройств */
@media (max-width: 768px) {
    .snowflake {
        filter: none !important; /* Убираем все эффекты на мобильных */
        opacity: 0.8;
    }
}

