/* ============================================================
   BrandUp — animations.css  (reveal on scroll, hovers, keyframes)
   Central timing controlled by CSS vars; respects reduced motion.
   ============================================================ */
:root{
  --bu-anim-dur:.7s;
  --bu-anim-delay-step:90ms;
  --bu-anim-dist:26px;
  --bu-anim-ease:cubic-bezier(.2,.8,.2,1);
}

/* Elements marked for reveal start hidden, then .is-in flips them in. */
[data-anim]{opacity:0;will-change:transform,opacity}
[data-anim="fade-up"]{transform:translateY(var(--bu-anim-dist))}
[data-anim="fade-in"]{transform:none}
[data-anim="scale-in"]{transform:scale(.94)}
[data-anim="slide-start"]{transform:translateX(calc(var(--bu-anim-dist) * -1.6))}
[data-anim="slide-end"]{transform:translateX(calc(var(--bu-anim-dist) * 1.6))}

[data-anim].is-in{
  opacity:1;transform:none;
  transition:opacity var(--bu-anim-dur) var(--bu-anim-ease),
             transform var(--bu-anim-dur) var(--bu-anim-ease);
  transition-delay:var(--bu-delay,0ms);
}

/* Counter shimmer on gold numbers */
@keyframes bu-pulse{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.3)}50%{box-shadow:0 0 0 6px rgba(37,211,102,0)}}
.bu-dot-live{animation:bu-pulse 2s infinite}

@keyframes bu-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.bu-order-card{animation:bu-float 5s ease-in-out infinite}

/* Hover lift already on cards; add soft zoom helper */
.bu-hover-zoom{overflow:hidden}
.bu-hover-zoom img{transition:transform .5s var(--bu-anim-ease)}
.bu-hover-zoom:hover img{transform:scale(1.06)}

/* Reduced motion — kill all of it, show content instantly */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-anim]{opacity:1!important;transform:none!important}
}
