/* Modern Animations */

.will-fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform, opacity;
}

.fade-in {
    opacity: 1;
    transform: translateY(0);
}


/* Feature card fade in with staggered delay */

.feature-card.will-fade-in {
    transform: translateY(40px) scale(0.95);
}

.feature-card.fade-in {
    transform: translateY(0) scale(1);
}

.feature-card:nth-child(1).fade-in {
    transition-delay: 0.1s;
}

.feature-card:nth-child(2).fade-in {
    transition-delay: 0.2s;
}

.feature-card:nth-child(3).fade-in {
    transition-delay: 0.3s;
}

.feature-card:nth-child(4).fade-in {
    transition-delay: 0.4s;
}


/* Hero section fade in */

.hero-text.will-fade-in {
    transform: translateX(-50px);
    opacity: 0;
}

.hero-mockup.will-fade-in {
    transform: translateX(50px);
    opacity: 0;
}

.hero-text.fade-in,
.hero-mockup.fade-in {
    transform: translateX(0);
    opacity: 1;
}


/* Button fade in */

.btn.will-fade-in {
    transform: translateY(20px) scale(0.9);
    opacity: 0;
}

.btn.fade-in {
    transform: translateY(0) scale(1);
    opacity: 1;
}


/* Feature list fade in */

.hero-feature.will-fade-in {
    transform: translateY(15px);
    opacity: 0;
}

.hero-feature.fade-in {
    transform: translateY(0);
    opacity: 1;
}

.hero-feature:nth-child(1).fade-in {
    transition-delay: 0.4s;
}

.hero-feature:nth-child(2).fade-in {
    transition-delay: 0.5s;
}

.hero-feature:nth-child(3).fade-in {
    transition-delay: 0.6s;
}