/* 动画效果样式文件 */

/* 背景动画 */
@keyframes backgroundShift {
    0% { transform: translateX(-10px) translateY(-10px); }
    100% { transform: translateX(10px) translateY(10px); }
}

/* 标题发光动画 */
@keyframes titleGlow {
    0% { filter: brightness(1); }
    100% { filter: brightness(1.2); }
}

/* 面板边框扫描动画 */
@keyframes borderScan {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* 淡入动画 */
@keyframes fadeIn {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* 数据更新闪烁动画 */
@keyframes dataUpdate {
    0% { background-color: rgba(0, 255, 136, 0.3); }
    100% { background-color: transparent; }
}

/* 按钮悬停光效 */
@keyframes buttonGlow {
    0% { box-shadow: 0 0 5px rgba(0, 150, 255, 0.3); }
    50% { box-shadow: 0 0 20px rgba(0, 150, 255, 0.6); }
    100% { box-shadow: 0 0 5px rgba(0, 150, 255, 0.3); }
}

/* 连接状态脉冲动画 */
@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* 地图标记跳动动画 */
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-10px); }
    60% { transform: translateY(-5px); }
}

/* 数据流动画 */
@keyframes dataFlow {
    0% { transform: translateX(-100%); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateX(100%); opacity: 0; }
}