/* ब्रह्मायणी सहकारी | Animations */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes rippleAnim{to{transform:scale(4);opacity:0}}

.animate-float{animation:floatY 3.5s ease-in-out infinite}
.animate-float-slow{animation:floatY 5s ease-in-out infinite}

/* Scroll reveal */
.reveal,.reveal-up,.reveal-left,.reveal-right{opacity:0;transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform}
.reveal{transform:translateY(28px)}
.reveal-up{transform:translateY(40px)}
.reveal-left{transform:translateX(-40px)}
.reveal-right{transform:translateX(40px)}
.reveal.in-view,.reveal-up.in-view,.reveal-left.in-view,.reveal-right.in-view{opacity:1;transform:translate(0,0)}

/* Stagger delays */
.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}

/* Button ripple */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:rippleAnim .6s ease-out forwards;pointer-events:none}

/* Slider slide transition overrides */
.hero-slider .carousel-item{transition:transform .8s ease,opacity .8s ease}
.testimonial-slider .carousel-item{transition:opacity .6s ease}
.testimonial-slider .carousel-item:not(.active){opacity:.4}

/* Card top line */
.card-topline{position:relative}
.card-topline::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:4px 4px 0 0;background:linear-gradient(90deg,var(--brand-primary),var(--brand-accent));z-index:1}
