/* ======================================== ANIMATIONS.CSS - Scroll Reveal Animations ======================================== */ /* Base animation classes */ .animate-on-scroll { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-on-scroll.animate-in { opacity: 1; transform: translateY(0); } /* Different animation variants */ .animate-fade-up { opacity: 0; transform: translateY(50px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-fade-up.animate-in { opacity: 1; transform: translateY(0); } .animate-fade-left { opacity: 0; transform: translateX(-50px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-fade-left.animate-in { opacity: 1; transform: translateX(0); } .animate-fade-right { opacity: 0; transform: translateX(50px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-fade-right.animate-in { opacity: 1; transform: translateX(0); } .animate-scale { opacity: 0; transform: scale(0.9); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-scale.animate-in { opacity: 1; transform: scale(1); } /* Staggered animations for children */ .animate-stagger { opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-stagger.animate-in { opacity: 1; transform: translateY(0); } /* Delay variants for staggered animations */ .animate-delay-1 { transition-delay: 0.1s; } .animate-delay-2 { transition-delay: 0.2s; } .animate-delay-3 { transition-delay: 0.3s; } .animate-delay-4 { transition-delay: 0.4s; } .animate-delay-5 { transition-delay: 0.5s; } .animate-delay-6 { transition-delay: 0.6s; } /* Section-specific animations */ .benefits { opacity: 0; transform: translateY(50px); transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .benefits.animate-in { opacity: 1; transform: translateY(0); } .profile { opacity: 0; transform: translateY(50px); transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s; } .profile.animate-in { opacity: 1; transform: translateY(0); } .process { opacity: 0; transform: translateY(50px); transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.3s; } .process.animate-in { opacity: 1; transform: translateY(0); } .faq { opacity: 0; transform: translateY(50px); transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.4s; } .faq.animate-in { opacity: 1; transform: translateY(0); } .testimonials { opacity: 0; transform: translateY(50px); transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.5s; } .testimonials.animate-in { opacity: 1; transform: translateY(0); } .cta-carousel { opacity: 0; transform: translateY(50px); transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.6s; } .cta-carousel.animate-in { opacity: 1; transform: translateY(0); } /* Enhanced benefit cards animation */ .benefit-card { opacity: 0; transform: translateY(30px) scale(0.95); transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .benefit-card.animate-in { opacity: 1; transform: translateY(0) scale(1); } /* Process steps animation */ .process__step { opacity: 0; transform: translateY(40px); transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .process__step.animate-in { opacity: 1; transform: translateY(0); } /* FAQ items animation */ .faq__item { opacity: 0; transform: translateX(-30px); transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .faq__item.animate-in { opacity: 1; transform: translateX(0); } /* Section headers animation */ .section-header { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .section-header.animate-in { opacity: 1; transform: translateY(0); } /* Profile cards animation */ .profile__requirements, .profile__desired { opacity: 0; transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .profile__requirements { transform: translateX(-40px); } .profile__desired { transform: translateX(40px); } .profile__requirements.animate-in, .profile__desired.animate-in { opacity: 1; transform: translateX(0); } /* Testimonial cards animation */ .testimonial-slide { transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* CTA section specific animations */ .cta-carousel__text { opacity: 0; transform: translateX(-40px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .cta-carousel__text.animate-in { opacity: 1; transform: translateX(0); } .cta-carousel__images { opacity: 0; transform: translateX(40px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s; } .cta-carousel__images.animate-in { opacity: 1; transform: translateX(0); } /* Stats animation */ .stat-item { opacity: 0; transform: translateY(20px); transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .stat-item.animate-in { opacity: 1; transform: translateY(0); } /* Respect reduced motion preference */ @media (prefers-reduced-motion: reduce) { .animate-on-scroll, .animate-fade-up, .animate-fade-left, .animate-fade-right, .animate-scale, .animate-stagger, .benefits, .profile, .process, .faq, .testimonials, .cta-carousel, .benefit-card, .process__step, .faq__item, .section-header, .profile__requirements, .profile__desired, .cta-carousel__text, .cta-carousel__images, .stat-item { opacity: 1; transform: none; transition: none; } } /* Enhanced entrance animations */ @keyframes slideInFromBottom { 0% { opacity: 0; transform: translateY(50px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes fadeInScale { 0% { opacity: 0; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } } @keyframes slideInFromLeft { 0% { opacity: 0; transform: translateX(-50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes slideInFromRight { 0% { opacity: 0; transform: translateX(50px); } 100% { opacity: 1; transform: translateX(0); } } /* Pulse animation for important elements */ @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .animate-pulse { animation: pulse 2s ease-in-out infinite; } /* Floating animation for decorative elements */ @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .animate-float { animation: float 3s ease-in-out infinite; }