@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}
.animate-float {
    animation: float 4s ease-in-out infinite;
}

/* 品牌AI足迹模块动画 */
@keyframes footprint-shake {
    10%, 90% { transform: translate3d(-1px, 0, 0); }
    20%, 80% { transform: translate3d(2px, 0, 0); }
    30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
    40%, 60% { transform: translate3d(4px, 0, 0); }
}

.footprint-shake {
    animation: footprint-shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
}

.footprint-scanning::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 2px;
    background: linear-gradient(90deg, transparent, #3b82f6, transparent);
    z-index: 10;
    opacity: 1;
    animation: footprint-scan 2s infinite linear;
}

@keyframes footprint-scan {
    0% { left: -50%; }
    100% { left: 150%; }
}

.footprint-item-show {
    opacity: 1;
    transform: translateY(0);
    animation: footprint-item-pulse 2s ease-in-out infinite;
}

@keyframes footprint-item-pulse {
    0%, 100% { 
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
    50% { 
        box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
    }
}

/* 序号卡片闪光效果 */
.animate-shimmer {
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(200%);
    }
}

.footprint-loading::after {
    content: '...';
    display: inline-block;
    width: 20px;
    animation: footprint-dot-loading 1s infinite;
    color: #3b82f6;
}

@keyframes footprint-dot-loading {
    0% { content: '.'; opacity: 0.4; }
    25% { content: '.'; opacity: 1; }
    33% { content: '..'; opacity: 0.4; }
    58% { content: '..'; opacity: 1; }
    66% { content: '...'; opacity: 0.4; }
    91% { content: '...'; opacity: 1; }
    100% { content: '.'; opacity: 0.4; }
}

.footprint-dot-active {
    animation: footprint-dot-breath 2s infinite ease-in-out;
}

@keyframes footprint-dot-breath {
    0%, 100% { 
        opacity: 0.4; 
        transform: scale(0.85); 
    }
    50% { 
        opacity: 1; 
        transform: scale(1.15); 
    }
}

.footprint-glow-ring {
    opacity: 0;
    animation: footprint-ring-breath 2s infinite ease-in-out;
}

@keyframes footprint-ring-breath {
    0%, 100% { 
        transform: scale(1); 
        opacity: 0; 
    }
    50% { 
        transform: scale(1.8); 
        opacity: 0.5; 
    }
}

/* 防止 Tailwind 与原老样式冲突的基础重置 */
.main-content { line-height: 1.5; -webkit-text-size-adjust: 100%; font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }
.main-content *, .main-content ::before, .main-content ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; }
.main-content img, .main-content svg { display: block; vertical-align: middle; }
.main-content button { cursor: pointer; }