/* 通用动画样式 */
:root {
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

/* 滚动动画基础类 */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s var(--ease-out-expo);
}

.animate-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

.animate-on-scroll-delay-1 { transition-delay: 0.1s; }
.animate-on-scroll-delay-2 { transition-delay: 0.2s; }
.animate-on-scroll-delay-3 { transition-delay: 0.3s; }
.animate-on-scroll-delay-4 { transition-delay: 0.4s; }

/* 淡入效果 */
.animate-fade-in {
    opacity: 0;
    transition: opacity 1s var(--ease-out-expo);
}

.animate-fade-in.visible { opacity: 1; }

/* 缩放效果 */
.animate-scale-in {
    opacity: 0;
    transform: scale(0.95);
    transition: all 0.8s var(--ease-out-expo);
}

.animate-scale-in.visible {
    opacity: 1;
    transform: scale(1);
}

/* 滑动效果 */
.animate-slide-left {
    opacity: 0;
    transform: translateX(40px);
    transition: all 0.8s var(--ease-out-expo);
}

.animate-slide-left.visible {
    opacity: 1;
    transform: translateX(0);
}

.animate-slide-right {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 0.8s var(--ease-out-expo);
}

.animate-slide-right.visible {
    opacity: 1;
    transform: translateX(0);
}

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

.animate-float {
    animation: float 6s ease-in-out infinite;
}

/* 淡入上移动画 */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in-up {
    opacity: 0;
    animation: fadeInUp 0.8s var(--ease-out-expo) forwards;
}

/* 产品卡片动画 */
.product-card {
    opacity: 0;
    transform: translateY(30px);
}

.product-card.visible {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.6s var(--ease-out-expo);
}

/* 价值卡片动画 */
.value-card {
    opacity: 0;
    transform: scale(0.9);
}

.value-card.visible {
    opacity: 1;
    transform: scale(1);
    transition: all 0.6s var(--ease-out-expo);
}

/* 新闻卡片动画 */
.news-card {
    opacity: 0;
    transform: translateY(20px);
}

.news-card.visible {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.6s var(--ease-out-expo);
}

/* 页面入场动画 */
.page-content > * {
    opacity: 0;
    animation: fadeInUp 0.8s var(--ease-out-expo) forwards;
}

.page-label { animation-delay: 0.2s; }
.page-title { animation-delay: 0.3s; }
.page-desc { animation-delay: 0.5s; }
.page-actions { animation-delay: 0.7s; }
