/* ===== 全局动画 ===== */

/* 淡入上移 */
[data-animate="fade-up"] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

[data-animate="fade-up"].animated {
    opacity: 1;
    transform: translateY(0);
}

/* 淡入左移 */
[data-animate="fade-left"] {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

[data-animate="fade-left"].animated {
    opacity: 1;
    transform: translateX(0);
}

/* 淡入右移 */
[data-animate="fade-right"] {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

[data-animate="fade-right"].animated {
    opacity: 1;
    transform: translateX(0);
}

/* 缩放淡入 */
[data-animate="scale-in"] {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

[data-animate="scale-in"].animated {
    opacity: 1;
    transform: scale(1);
}

/* 延迟 */
[data-delay="100"] { transition-delay: 0.1s; }
[data-delay="200"] { transition-delay: 0.2s; }
[data-delay="300"] { transition-delay: 0.3s; }
[data-delay="400"] { transition-delay: 0.4s; }
[data-delay="500"] { transition-delay: 0.5s; }
[data-delay="600"] { transition-delay: 0.6s; }
[data-delay="800"] { transition-delay: 0.8s; }
[data-delay="1000"] { transition-delay: 1s; }

/* 脉冲发光 */
@keyframes pulseGlow {
    0%, 100% { 
        box-shadow: 0 0 20px rgba(231, 76, 111, 0.1);
    }
    50% { 
        box-shadow: 0 0 40px rgba(231, 76, 111, 0.3);
    }
}

/* 渐变文字动画 */
@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* 玫瑰花瓣 */
.rose-petal {
    position: absolute;
    width: 15px;
    height: 15px;
    background: radial-gradient(ellipse, #e74c6f 0%, #f472b6 60%, transparent 100%);
    border-radius: 50% 0 50% 50%;
    opacity: 0;
    pointer-events: none;
    animation: petalFall linear forwards;
}

@keyframes petalFall {
    0% {
        opacity: 0;
        transform: translateY(-20px) rotate(0deg) scale(0.8);
    }
    10% {
        opacity: 0.7;
    }
    90% {
        opacity: 0.3;
    }
    100% {
        opacity: 0;
        transform: translateY(100vh) rotate(720deg) scale(0.3);
    }
}

/* 星星闪烁 */
@keyframes twinkle {
    0%, 100% { opacity: 0.3; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.3); }
}

/* 心跳 */
@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    14% { transform: scale(1.1); }
    28% { transform: scale(1); }
    42% { transform: scale(1.1); }
    70% { transform: scale(1); }
}

/* 呼吸灯 */
@keyframes breathe {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
}

/* 涟漪扩散 */
@keyframes ripple {
    0% {
        transform: scale(0);
        opacity: 0.5;
    }
    100% {
        transform: scale(4);
        opacity: 0;
    }
}

/* 数字翻滚 */
@keyframes numberFlip {
    0% {
        transform: translateY(100%);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

/* 打字光标 */
@keyframes typewriterCursor {
    0%, 100% { border-color: var(--accent-pink); }
    50% { border-color: transparent; }
}
