/* ==========================================================================
   VERTEXVOUND v2 — ANIMATIONS
   ========================================================================== */

.reveal-up { opacity: 0; transform: translateY(50px); }
.reveal-left { opacity: 0; transform: translateX(-60px); }
.reveal-right { opacity: 0; transform: translateX(60px); }
.reveal-up.gsap-ready, .reveal-left.gsap-ready, .reveal-right.gsap-ready { opacity: 1; transform: none; }

.te-line { opacity: 0; transform: translateY(110%); display: inline-block; }
.te-line.gsap-ready { opacity: 1; transform: none; }

.loader.loaded { opacity: 0; visibility: hidden; transition: opacity .7s var(--ease-premium), visibility .7s; }

.impact-card, .core-item, .client-slot { opacity: 0; transform: translateY(30px); }
.impact-card.gsap-ready, .core-item.gsap-ready, .client-slot.gsap-ready { opacity: 1; transform: none; }

.counter { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
