/* ===== 扫描线动画 ===== */
@keyframes scanlineMove {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 0 100px;
    }
}

/* ===== Glitch 故障效果 ===== */
@keyframes glitch-1 {
    0%, 100% {
        transform: translate(0);
        opacity: 0.8;
    }
    20% {
        transform: translate(-3px, 2px);
        opacity: 0.9;
    }
    40% {
        transform: translate(3px, -2px);
        opacity: 0.7;
    }
    60% {
        transform: translate(-2px, 1px);
        opacity: 0.8;
    }
    80% {
        transform: translate(2px, -1px);
        opacity: 0.9;
    }
}

@keyframes glitch-2 {
    0%, 100% {
        transform: translate(0);
        opacity: 0.8;
    }
    20% {
        transform: translate(3px, -2px);
        opacity: 0.7;
    }
    40% {
        transform: translate(-3px, 2px);
        opacity: 0.9;
    }
    60% {
        transform: translate(2px, -1px);
        opacity: 0.8;
    }
    80% {
        transform: translate(-2px, 1px);
        opacity: 0.7;
    }
}

/* ===== 卡片入场动画 ===== */
@keyframes cardFlyIn {
    0% {
        opacity: 0;
        transform: translateY(60px) scale(0.9) rotateX(15deg);
    }
    60% {
        opacity: 0.8;
        transform: translateY(-10px) scale(1.02) rotateX(-3deg);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1) rotateX(0);
    }
}

.card-enter {
    animation: cardFlyIn 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    opacity: 0;
}

/* ===== 悬浮动画 ===== */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
}

.card-float {
    animation: float 4s ease-in-out infinite;
    opacity: 1;
}

.card-float-delay-1 { animation-delay: 0s; }
.card-float-delay-2 { animation-delay: 1s; }
.card-float-delay-3 { animation-delay: 2s; }
.card-float-delay-4 { animation-delay: 3s; }
.card-float-delay-5 { animation-delay: 4s; }

/* ===== 能量流光效果 ===== */
@keyframes energyPulse {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

@keyframes borderGlow {
    0%, 100% {
        box-shadow:
            0 0 5px rgba(0, 255, 204, 0.3),
            0 0 10px rgba(0, 255, 204, 0.2),
            inset 0 0 10px rgba(0, 255, 204, 0.05);
    }
    50% {
        box-shadow:
            0 0 15px rgba(0, 255, 204, 0.5),
            0 0 30px rgba(0, 255, 204, 0.3),
            inset 0 0 20px rgba(0, 255, 204, 0.1);
    }
}

/* ===== 图标脉冲 ===== */
@keyframes iconPulse {
    0%, 100% {
        transform: scale(1);
        filter: drop-shadow(0 0 5px rgba(0, 255, 204, 0.5));
    }
    50% {
        transform: scale(1.05);
        filter: drop-shadow(0 0 15px rgba(0, 255, 204, 0.8));
    }
}

/* ===== 角落 HUD 动画 ===== */
@keyframes cornerBlink {
    0%, 100% {
        opacity: 0.6;
    }
    50% {
        opacity: 1;
    }
}

.corner-hud {
    animation: cornerBlink 2s ease-in-out infinite;
}

/* ===== 按钮悬停流光 ===== */
@keyframes buttonGlow {
    0% {
        background-position: -200% center;
    }
    100% {
        background-position: 200% center;
    }
}

/* ===== 平台标签闪烁 ===== */
@keyframes platformBlink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

/* ===== 旋转动画（装饰用） ===== */
@keyframes rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* ===== 脉冲缩放 ===== */
@keyframes pulseScale {
    0%, 100% {
        transform: scale(1);
        opacity: 0.5;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.8;
    }
}
