/* ============================================
 * 视创云体教通 - 通用滚动动画
 * ============================================ */

/* === 基础动画类 === */
.anim-fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.anim-fade-in-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.anim-fade-in-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.anim-fade-in {
    opacity: 0;
    transition: opacity 0.6s ease-out;
}

.anim-scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.anim-slide-up {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

/* === 动画激活状态 === */
.anim-active {
    opacity: 1;
    transform: translate(0, 0) scale(1);
}

/* === 延迟类(用于 stagger 效果) === */
.anim-delay-100 { transition-delay: 0.1s; }
.anim-delay-200 { transition-delay: 0.2s; }
.anim-delay-300 { transition-delay: 0.3s; }
.anim-delay-400 { transition-delay: 0.4s; }
.anim-delay-500 { transition-delay: 0.5s; }

/* === Hover 微交互动画 === */
.hover-lift {
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}

.hover-scale {
    transition: transform 0.2s ease-out;
}
.hover-scale:hover {
    transform: scale(1.05);
}

.hover-glow {
    transition: box-shadow 0.3s ease-out;
}
.hover-glow:hover {
    box-shadow: 0 0 20px rgba(5, 150, 105, 0.3);
}

/* === 按钮动画 === */
.btn-animate {
    transition: all 0.2s ease-out;
}
.btn-animate:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.btn-animate:active {
    transform: translateY(0);
}

/* === 数字滚动动画 === */
.count-number {
    display: inline-block;
    transition: color 0.3s ease;
}

/* === 时间轴动画 === */
.timeline-dot {
    transition: all 0.4s ease-out;
}
.timeline-dot.anim-active {
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

/* === 减少动画(可访问性) === */
@media (prefers-reduced-motion: reduce) {
    .anim-fade-in-up,
    .anim-fade-in-left,
    .anim-fade-in-right,
    .anim-fade-in,
    .anim-scale-in,
    .anim-slide-up,
    .hover-lift,
    .hover-scale,
    .hover-glow,
    .btn-animate,
    .timeline-dot {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* === 低端设备降级 === */
@media (max-width: 640px) {
    .anim-fade-in-up:not(.anim-active),
    .anim-fade-in-left:not(.anim-active),
    .anim-fade-in-right:not(.anim-active),
    .anim-slide-up:not(.anim-active) {
        transform: translateY(15px);
        transition-duration: 0.4s;
    }
    .anim-fade-in-up.anim-active,
    .anim-fade-in-left.anim-active,
    .anim-fade-in-right.anim-active,
    .anim-slide-up.anim-active {
        transform: none;
    }
}
