/* ============================================
   Ganga Enterprises — Animations
   ============================================ */

/* ── MARQUEE SCROLL (Infinite horizontal) ── */
@keyframes marqueeScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes marqueeScrollReverse {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}

/* ── TICKER CAROUSEL ── */
@keyframes tickerScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ── HERO ZOOM ── */
@keyframes heroZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.12); }
}

/* ── FADE IN VARIANTS ── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-40px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-50px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(50px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInScale {
  from { opacity: 0; transform: scale(0.85); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ── FLOAT ── */
@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-12px); }
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(2deg); }
}

/* ── PULSE ── */
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.08); }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 4px 20px rgba(37,211,102,0.4); }
  50% { box-shadow: 0 4px 35px rgba(37,211,102,0.7), 0 0 60px rgba(37,211,102,0.3); }
}

@keyframes pulseBorder {
  0%, 100% { border-color: var(--color-primary); box-shadow: var(--shadow-card); }
  50% { border-color: var(--color-highlight); box-shadow: var(--shadow-glow-teal); }
}

/* ── BOUNCE ── */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-15px); }
  60% { transform: translateY(-8px); }
}

@keyframes bounceIn {
  0% { opacity: 0; transform: scale(0.3); }
  50% { transform: scale(1.05); }
  70% { transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1); }
}

/* ── SPIN / ROTATE ── */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes wiggle {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
}

/* ── SHINE SWEEP ── */
@keyframes shine {
  0% { left: -100%; }
  100% { left: 200%; }
}

/* ── SLIDE IN ── */
@keyframes slideInFromBottom {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* ── HIGHLIGHT TEXT (Reference style) ── */
@keyframes highlightReveal {
  from { background-size: 0% 100%; }
  to { background-size: 100% 100%; }
}

/* ── COUNTER COUNT UP ── */
@keyframes countPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

/* ── RING ANIMATION ── */
@keyframes ring {
  0% { transform: rotate(0deg); }
  5% { transform: rotate(15deg); }
  10% { transform: rotate(-12deg); }
  15% { transform: rotate(10deg); }
  20% { transform: rotate(-6deg); }
  25% { transform: rotate(0deg); }
  100% { transform: rotate(0deg); }
}

/* ══════════════════════════════════════════════
   SCROLL REVEAL CLASSES
   ══════════════════════════════════════════════ */
.reveal, .reveal-left, .reveal-right, .reveal-scale {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}

.reveal.visible,
.reveal-left.visible,
.reveal-right.visible,
.reveal-scale.visible {
  opacity: 1 !important;
  transform: none !important;
}

/* Stagger children */
.stagger-children > *:nth-child(1) { transition-delay: 0.05s; }
.stagger-children > *:nth-child(2) { transition-delay: 0.1s; }
.stagger-children > *:nth-child(3) { transition-delay: 0.15s; }
.stagger-children > *:nth-child(4) { transition-delay: 0.2s; }
.stagger-children > *:nth-child(5) { transition-delay: 0.25s; }
.stagger-children > *:nth-child(6) { transition-delay: 0.3s; }
.stagger-children > *:nth-child(7) { transition-delay: 0.35s; }
.stagger-children > *:nth-child(8) { transition-delay: 0.4s; }
.stagger-children > *:nth-child(9) { transition-delay: 0.45s; }

/* ══════════════════════════════════════════════
   HIGHLIGHTED TEXT (Reference style)
   ══════════════════════════════════════════════ */
.highlight-text {
  background-image: linear-gradient(to right, var(--color-highlight) 0, var(--color-highlight) 100%);
  background-repeat: no-repeat;
  background-position: 0 85%;
  background-size: 100% 35%;
  padding: 0 4px;
  transition: background-size 0.4s ease;
}

.highlight-text:hover {
  background-size: 100% 100%;
}

/* Gradient text */
.gradient-text {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ══════════════════════════════════════════════
   BUTTON TILT / 3D EFFECT (Reference style)
   ══════════════════════════════════════════════ */
.btn-tilt {
  position: relative;
  transition: all 0.3s ease;
  box-shadow: 0 -2px rgba(0,0,0,0.1) inset;
}

.btn-tilt:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15), 0 -2px rgba(0,0,0,0.1) inset;
}

.btn-tilt:active {
  transform: translateY(-1px);
  box-shadow: 0 2px 10px rgba(0,0,0,0.1), 0 -2px rgba(0,0,0,0.1) inset;
}

/* ══════════════════════════════════════════════
   CARD HOVER EFFECTS
   ══════════════════════════════════════════════ */
.card-hover-lift {
  transition: all 0.4s var(--ease-out);
}

.card-hover-lift:hover {
  transform: translateY(-10px);
  box-shadow: var(--shadow-card-hover);
}

.card-hover-border {
  transition: all 0.3s ease;
}

.card-hover-border:hover {
  border-color: var(--color-accent) !important;
  box-shadow: var(--shadow-glow-green);
}

/* ══════════════════════════════════════════════
   IMAGE HOVER ZOOM
   ══════════════════════════════════════════════ */
.img-hover-zoom {
  overflow: hidden;
}

.img-hover-zoom img {
  transition: transform 0.6s var(--ease-out);
}

.img-hover-zoom:hover img {
  transform: scale(1.1);
}
