.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.6s var(--ease),transform 0.6s var(--ease)}.reveal.visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:0.08s}.reveal-delay-2{transition-delay:0.16s}.reveal-delay-3{transition-delay:0.24s}.reveal-delay-4{transition-delay:0.32s}.reveal-delay-5{transition-delay:0.40s}.reveal-delay-6{transition-delay:0.48s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.float{animation:float 4.5s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.45;transform:scale(1.4)}}
@keyframes waBounce{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes brandsScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes heroZoom{0%{transform:scale(1.04)}100%{transform:scale(1.10)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{to{background-position:200% center}}
/* shimmer uses orange — no graphite */
.shimmer-text{display:inline-block;background:linear-gradient(90deg,var(--orange) 0%,#FFD4A8 50%,var(--orange) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;animation:shimmer 3s linear infinite}
.hover-lift{transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease)}
.hover-lift:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}
  .ticker__track,.brands__track{animation:none}
  .hero__bg{animation:none}
  .quick-action{animation:none}
  .shimmer-text{animation:none;-webkit-text-fill-color:var(--orange);color:var(--orange)}
  .float{animation:none}
  /* Reveal immediately — no translate animation */
  .reveal{opacity:1 !important;transform:none !important;transition:none !important}
  /* Disable card hover lifts */
  .hover-lift:hover{transform:none}
  /* Disable process connector animations */
  .process__connector{display:none}
}

/* ══ SCROLL PERFORMANCE: contain on animated sections ══ */
.hero,.ticker,.services,.products,.about,.whyus,.gallery,.testimonials,.cta-strip,.contact,.clients,.process,.applications,.brands{contain:layout paint}
/* ══ STABLE IMAGE ASPECT RATIOS (prevent CLS) ══ */
.hero__img img,.product-card__img img,.service-card__img img,.gallery-item img{aspect-ratio:attr(width)/attr(height)}

/* ══ BACKGROUND TAB ANIMATION THROTTLE (Issue 27) ══ */
.ticker__track,.brands__track,.hero__bg,.float,.shimmer-text{
  animation-play-state: var(--animation-play-state, running);
}
