/* ==========================================================================
   Animations — reveal, hover, floating effects
   ========================================================================== */

/* Reveal (JS toggles .visible) */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.visible{opacity:1;transform:translateY(0)}

.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal-left.visible{opacity:1;transform:translateX(0)}

.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal-right.visible{opacity:1;transform:translateX(0)}

.reveal-zoom{opacity:0;transform:scale(.9);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal-zoom.visible{opacity:1;transform:scale(1)}

.reveal-fade{opacity:0;transition:opacity 1s ease}
.reveal-fade.visible{opacity:1}

/* Stagger children by index (data-delay) */
.reveal[data-delay="1"]{transition-delay:.1s}
.reveal[data-delay="2"]{transition-delay:.2s}
.reveal[data-delay="3"]{transition-delay:.3s}
.reveal[data-delay="4"]{transition-delay:.4s}
.reveal[data-delay="5"]{transition-delay:.5s}

/* Parallax bg tag (subtle) */
.parallax{background-attachment:fixed}
@media (max-width:900px){.parallax{background-attachment:scroll}}

/* Floating idle animation for hero elements */
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.float-idle{animation:floatY 4s ease-in-out infinite}

/* Pulse (for popular badge) */
@keyframes pulseGold{0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.5)}50%{box-shadow:0 0 0 12px rgba(212,175,55,0)}}
.popular-badge{animation:pulseGold 2.4s ease-in-out infinite}

/* Shimmer for section eyebrow */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* Hover lift utility */
.hover-lift{transition:transform .3s ease,box-shadow .3s ease}
.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}

/* Counter placeholder — no animation needed at CSS layer */
