/* Reveal on scroll with premium easing */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.in-view {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger for grid items */
.features .reveal:nth-child(1) { transition-delay: 0s; }
.features .reveal:nth-child(2) { transition-delay: 0.1s; }
.features .reveal:nth-child(3) { transition-delay: 0.2s; }
.features .reveal:nth-child(4) { transition-delay: 0s; }
.features .reveal:nth-child(5) { transition-delay: 0.1s; }
.features .reveal:nth-child(6) { transition-delay: 0.2s; }

.testimonials .reveal:nth-child(1) { transition-delay: 0s; }
.testimonials .reveal:nth-child(2) { transition-delay: 0.1s; }
.testimonials .reveal:nth-child(3) { transition-delay: 0.2s; }

/* Hero fade-in */
.hero-left > * {
    opacity: 0;
    animation: fadeUp 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.hero-left > *:nth-child(1) { animation-delay: 0.1s; }
.hero-left > *:nth-child(2) { animation-delay: 0.2s; }
.hero-left > *:nth-child(3) { animation-delay: 0.3s; }
.hero-left > *:nth-child(4) { animation-delay: 0.4s; }
.hero-left > *:nth-child(5) { animation-delay: 0.5s; }

.hero-right {
    opacity: 0;
    animation: fadeUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Feed items entry */
@keyframes feedIn {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}