/* 粒子动画系统 */
@keyframes snowfall {
    0% {
        transform: translateY(-10vh) rotate(0deg);
    }
    100% {
        transform: translateY(100vh) rotate(360deg);
    }
}

/* 灯笼3D效果 */
/* 灯笼3D效果 */
@keyframes lanternFloat {
    0%, 100% {
        transform: translateY(0) rotate(-7deg) translateZ(25px); /* 调整旋转和Z轴位移 */
    }
    50% {
        transform: translateY(-15px) rotate(7deg) translateZ(0); /* 调整Y轴位移和旋转 */
    }
}

/* 数字翻转动画 */
@keyframes numberFlip {
    0% {
        transform: perspective(400px) rotateX(0);
    }
    100% {
        transform: perspective(400px) rotateX(360deg);
    }
}

/* 全息投影效果 */
/* 全息投影效果 */
@keyframes hologram {
    0% {
        box-shadow: 0 0 30px rgba(255, 215, 0, 0.2); /* 调整阴影 */
    }
    50% {
        box-shadow: 0 0 50px rgba(255, 215, 0, 0.4); /* 调整阴影 */
    }
    100% {
        box-shadow: 0 0 30px rgba(255, 215, 0, 0.2); /* 调整阴影 */
    }
}

/* 金色涟漪动画 */
@keyframes ripple {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.4);
    }
    100% {
        box-shadow: 0 0 0 20px rgba(255, 215, 0, 0);
    }
}

/* 故障艺术效果 */
/* 故障艺术效果 */
@keyframes glitch {
    0% {
        transform: translate(0);
        opacity: 1;
    }
    20% {
        transform: translate(-1px, 1px); /* 调整位移 */
        opacity: 0.95; /* 调整透明度 */
    }
    40% {
        transform: translate(-1px, -1px); /* 调整位移 */
        opacity: 0.9; /* 调整透明度 */
    }
    60% {
        transform: translate(1px, 1px); /* 调整位移 */
        opacity: 0.95; /* 调整透明度 */
    }
    80% {
        transform: translate(1px, -1px); /* 调整位移 */
        opacity: 0.9; /* 调整透明度 */
    }
    100% {
        transform: translate(0);
        opacity: 1;
    }
}

/* 祥云粒子效果 */
@keyframes cloudFlow {
    0% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 100% 50%;
    }
}

/* 动态渐变背景 */
@keyframes gradientShift {
    0% {
        background-position: 0% 50%;
    }
    25% {
        background-position: 100% 0%;
    }
    50% {
        background-position: 100% 100%;
    }
    75% {
        background-position: 0% 100%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* 星空背景效果 */
@keyframes starField {
    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 0.3;
    }
    50% {
        opacity: 0.8;
    }
    100% {
        transform: translateY(-100vh) rotate(360deg);
        opacity: 0.3;
    }
}

/* 光线扫过效果 */
@keyframes lightSweep {
    0% {
        transform: translateX(-100%) skewX(-15deg);
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        transform: translateX(200%) skewX(-15deg);
        opacity: 0;
    }
}

/* 雪花飘落动画 */
@keyframes snowfall {
    0% {
        transform: translateY(-10vh) rotate(0deg) translateX(0);
        opacity: 1;
    }
    50% {
        transform: translateY(50vh) rotate(180deg) translateX(20px);
        opacity: 0.8;
    }
    100% {
        transform: translateY(110vh) rotate(360deg) translateX(-10px);
        opacity: 0;
    }
}

/* 金粉漂浮动画 */
@keyframes goldenFloat {
    0% {
        transform: translateY(-10vh) translateX(0) scale(1) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    50% {
        transform: translateY(50vh) translateX(30px) scale(1.2) rotate(180deg);
        opacity: 0.8;
    }
    90% {
        opacity: 0.6;
    }
    100% {
        transform: translateY(110vh) translateX(-20px) scale(0.8) rotate(360deg);
        opacity: 0;
    }
}

/* 花瓣飘落动画 */
@keyframes petalFall {
    0% {
        transform: translateY(-10vh) translateX(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: 0.8;
    }
    25% {
        transform: translateY(25vh) translateX(40px) rotate(90deg);
    }
    50% {
        transform: translateY(50vh) translateX(-20px) rotate(180deg);
        opacity: 0.6;
    }
    75% {
        transform: translateY(75vh) translateX(30px) rotate(270deg);
    }
    100% {
        transform: translateY(110vh) translateX(-10px) rotate(360deg);
        opacity: 0;
    }
}

/* 星星闪烁动画 */
@keyframes starTwinkle {
    0% {
        transform: translateY(-10vh) scale(0.5) rotate(0deg);
        opacity: 0;
        filter: brightness(1);
    }
    10% {
        opacity: 1;
        filter: brightness(1.5);
    }
    20% {
        filter: brightness(0.8);
    }
    30% {
        filter: brightness(2);
    }
    50% {
        transform: translateY(50vh) scale(1.5) rotate(180deg);
        opacity: 0.8;
        filter: brightness(1.2);
    }
    70% {
        filter: brightness(0.6);
    }
    90% {
        filter: brightness(2.5);
    }
    100% {
        transform: translateY(110vh) scale(0.3) rotate(360deg);
        opacity: 0;
        filter: brightness(1);
    }
}

/* 点击涟漪效果 */
@keyframes rippleExpand {
    0% {
        transform: scale(0);
        opacity: 1;
    }
    50% {
        opacity: 0.8;
    }
    100% {
        transform: scale(4);
        opacity: 0;
    }
}

/* 福字浮动动画 */
@keyframes fuFloat {
    0%, 100% {
        transform: rotate(-15deg) translateY(0) scale(1);
    }
    25% {
        transform: rotate(-10deg) translateY(-10px) scale(1.1);
    }
    50% {
        transform: rotate(-20deg) translateY(-5px) scale(1.05);
    }
    75% {
        transform: rotate(-12deg) translateY(-15px) scale(1.15);
    }
}

/* 鞭炮弹跳动画 */
@keyframes firecrackerBounce {
    0%, 100% {
        transform: translateY(0) rotate(0deg) scale(1);
    }
    25% {
        transform: translateY(-15px) rotate(-5deg) scale(1.1);
    }
    50% {
        transform: translateY(-5px) rotate(5deg) scale(1.05);
    }
    75% {
        transform: translateY(-20px) rotate(-3deg) scale(1.15);
    }
}

/* 桃花摇摆动画 */
@keyframes blossomSway {
    0%, 100% {
        transform: rotate(0deg) translateX(0);
    }
    25% {
        transform: rotate(8deg) translateX(5px);
    }
    50% {
        transform: rotate(-5deg) translateX(-3px);
    }
    75% {
        transform: rotate(12deg) translateX(8px);
    }
}

/* 红包漂浮动画 */
@keyframes envelopeFloat {
    0%, 100% {
        transform: translateY(0) rotate(5deg) scale(1);
    }
    33% {
        transform: translateY(-12px) rotate(-2deg) scale(1.08);
    }
    66% {
        transform: translateY(-6px) rotate(8deg) scale(1.04);
    }
}
