/* ===== SCROLL-TRIGGERED ANIMATIONS ===== */

/* Base hidden state for all animated elements */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Slide from left */
.reveal-left {
    opacity: 0;
    transform: translateX(-60px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-left.visible {
    opacity: 1;
    transform: translateX(0);
}

/* Slide from right */
.reveal-right {
    opacity: 0;
    transform: translateX(60px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-right.visible {
    opacity: 1;
    transform: translateX(0);
}

/* Scale up from small */
.reveal-scale {
    opacity: 0;
    transform: scale(0.85);
    transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-scale.visible {
    opacity: 1;
    transform: scale(1);
}

/* Blur in */
.reveal-blur {
    opacity: 0;
    filter: blur(10px);
    transform: translateY(20px);
    transition: opacity 0.8s ease, filter 0.8s ease, transform 0.8s ease;
}
.reveal-blur.visible {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

/* Stagger children with delay */
.stagger-children .reveal:nth-child(1) { transition-delay: 0s; }
.stagger-children .reveal:nth-child(2) { transition-delay: 0.12s; }
.stagger-children .reveal:nth-child(3) { transition-delay: 0.24s; }
.stagger-children .reveal:nth-child(4) { transition-delay: 0.36s; }
.stagger-children .reveal:nth-child(5) { transition-delay: 0.48s; }

/* ===== HERO ENTRANCE ===== */
.hero-content .hero-label {
    animation: heroFadeDown 1s 0.2s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.hero-content h1 {
    animation: heroFadeUp 1.1s 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.hero-content .hero-btns {
    animation: heroFadeUp 1s 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes heroFadeDown {
    from { opacity: 0; transform: translateY(-30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== PARALLAX SUBTLE FLOAT ===== */
.parallax-float {
    transition: transform 0.3s ease-out;
    will-change: transform;
}

/* ===== MISSION DOTS PULSE ===== */
.dot-divider .dot {
    animation: dotPulse 2s infinite ease-in-out;
}
.dot-divider .dot:nth-child(2) { animation-delay: 0.3s; }
.dot-divider .dot:nth-child(3) { animation-delay: 0.6s; }
@keyframes dotPulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.4); opacity: 0.7; }
}

/* ===== HIGHLIGHT TEXT REVEAL ===== */
.highlight {
    background-size: 0% 100%;
    background-image: linear-gradient(120deg, rgba(92,109,63,0.15) 0%, rgba(92,109,63,0.15) 100%);
    background-repeat: no-repeat;
    transition: background-size 0.6s ease;
    padding: 2px 4px;
    border-radius: 4px;
}
.highlight.text-revealed {
    background-size: 100% 100%;
}

/* ===== VISION IMAGES STAGGER ===== */
.vision-images .img-large {
    opacity: 0;
    transform: translateY(30px) scale(0.95);
    transition: all 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.vision-images .img-small {
    opacity: 0;
    transform: translateY(40px) scale(0.9);
    transition: all 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.vision-images .img-small:nth-child(2) { transition-delay: 0.15s; }
.vision-images .img-small:nth-child(3) { transition-delay: 0.3s; }
.vision-images.visible .img-large,
.vision-images.visible .img-small {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* ===== FLOATING CIRCLES GENTLE BOB ===== */
.floating-circle {
    animation: gentleBob 4s infinite ease-in-out;
}
.floating-circle.circle-2 { animation-delay: 1.3s; animation-duration: 4.5s; }
.floating-circle.circle-3 { animation-delay: 2.6s; animation-duration: 5s; }
@keyframes gentleBob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

/* ===== RHEMA VIDEO BOX HOVER ===== */
.rhema-video-box {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.4s ease;
}
.rhema-video-box:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 50px rgba(0,0,0,0.15);
}
.play-btn-circle {
    transition: transform 0.3s ease, background 0.3s ease;
}
.rhema-video-box:hover .play-btn-circle {
    transform: scale(1.15);
}

/* ===== EVENT CARD PARALLAX TILT ===== */
.sliced-wrapper {
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.sliced-wrapper:hover {
    transform: scale(1.02);
}
.sliced-wrapper:hover .event-title-overlay {
    letter-spacing: 2px;
    transition: letter-spacing 0.4s ease;
}

/* ===== SECTION DIVIDER LINE ===== */
.section-line-reveal {
    width: 0;
    height: 2px;
    background: var(--clr-primary, #5c6d3f);
    margin: 0 auto 2rem;
    transition: width 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.section-line-reveal.visible {
    width: 60px;
}

/* ===== SMOOTH SECTION TRANSITIONS ===== */
.mission-section,
.about-section,
.vision-section,
.ministries-section,
.rhema-section {
    position: relative;
}

/* Counter animation for stats if needed */
.count-up {
    font-variant-numeric: tabular-nums;
}

/* ===== MOBILE REFINEMENTS ===== */
@media (max-width: 767px) {
    .reveal { transform: translateY(25px); }
    .reveal-left { transform: translateX(-30px); }
    .reveal-right { transform: translateX(30px); }
    .floating-circle { animation: none; }
}
