/* Scroll-triggered animations with cross-browser compatibility */

/* Base animation classes */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, transform;
}

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

/* Fade in animations */
.fade-in-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

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

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

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

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

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

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

/* Scale animations */
.scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

/* Stagger animation delays for grid items */
.animate-stagger-1 { transition-delay: 0.1s; }
.animate-stagger-2 { transition-delay: 0.2s; }
.animate-stagger-3 { transition-delay: 0.3s; }
.animate-stagger-4 { transition-delay: 0.4s; }
.animate-stagger-5 { transition-delay: 0.5s; }
.animate-stagger-6 { transition-delay: 0.6s; }

/* Hero slider animations */
.hero-slider-section {
    overflow: hidden;
}

.slide-caption {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

.slide-caption.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Section title animations */
.section-title {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.section-title.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

.section-subtitle {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out 0.2s, transform 0.8s ease-out 0.2s;
}

.section-subtitle.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

.section-description {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out 0.4s, transform 0.8s ease-out 0.4s;
}

.section-description.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Full-width banner animations */
.full-width-banner {
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

.full-width-banner.animate-visible {
    opacity: 1;
    transform: scale(1);
}

/* Grid animations */
.awards-grid .award-card,
.testimonials-grid .testimonial-card,
.encounters-grid .encounter-card,
.paintings-grid .painting-card,
.book-contributors .contributor-card {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.awards-grid .award-card.animate-visible,
.testimonials-grid .testimonial-card.animate-visible,
.encounters-grid .encounter-card.animate-visible,
.paintings-grid .painting-card.animate-visible,
.book-contributors .contributor-card.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Button animations */
.btn-view-more,
.video-play-btn {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.btn-view-more.animate-visible,
.video-play-btn.animate-visible {
    opacity: 1;
    transform: scale(1);
}

/* Profile content animations */
.profile-content p {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.profile-content p.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Book content animations */
.book-image {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.book-image.animate-visible {
    opacity: 1;
    transform: translateX(0);
}

.book-description {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.8s ease-out 0.3s, transform 0.8s ease-out 0.3s;
}

.book-description.animate-visible {
    opacity: 1;
    transform: translateX(0);
}

/* Responsive considerations */
@media (max-width: 768px) {
    .animate-on-scroll,
    .fade-in-up,
    .fade-in-left,
    .fade-in-right,
    .scale-in {
        transform: translateY(20px);
    }
    
    .fade-in-left {
        transform: translateX(-20px);
    }
    
    .fade-in-right {
        transform: translateX(20px);
    }
    
    .book-image,
    .book-description {
        transform: translateY(20px);
    }
    
    .book-description {
        transition-delay: 0.2s;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll,
    .fade-in-up,
    .fade-in-left,
    .fade-in-right,
    .fade-in,
    .scale-in,
    .slide-caption,
    .section-title,
    .section-subtitle,
    .section-description,
    .full-width-banner,
    .awards-grid .award-card,
    .testimonials-grid .testimonial-card,
    .encounters-grid .encounter-card,
    .paintings-grid .painting-card,
    .book-contributors .contributor-card,
    .btn-view-more,
    .video-play-btn,
    .profile-content p,
    .book-image,
    .book-description {
        transition: none;
        opacity: 1;
        transform: none;
    }
}

/* Performance optimization */
.animate-on-scroll,
.fade-in-up,
.fade-in-left,
.fade-in-right,
.scale-in {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    perspective: 1000px;
    -webkit-perspective: 1000px;
}