/* ============================================================
   FISHING TRIBE - Animations & Keyframes
   ============================================================ */

/* Line-by-line masked reveal */
.reveal-line { display: block; overflow: hidden; }
.reveal-line > span { display: block; transform: translateY(110%); transition: transform 1s var(--ease); }
.is-visible .reveal-line > span { transform: translateY(0); }

/* Generic fade/slide-up reveal */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity .9s var(--ease), transform .9s var(--ease); will-change: transform, opacity; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Scale-in reveal for cards */
.reveal-scale { opacity: 0; transform: translateY(30px) scale(0.97); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-scale.is-visible { opacity: 1; transform: translateY(0) scale(1); }

/* Staggering via inline transition-delay set in JS or utility classes */
.d1 { transition-delay: .08s; }
.d2 { transition-delay: .16s; }
.d3 { transition-delay: .24s; }
.d4 { transition-delay: .32s; }
.d5 { transition-delay: .40s; }
.d6 { transition-delay: .48s; }
.d7 { transition-delay: .56s; }
.d8 { transition-delay: .64s; }

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes scrollDot {
  0% { opacity: 0; transform: translate(-50%, 0); }
  40% { opacity: 1; }
  80% { opacity: 0; transform: translate(-50%, 14px); }
  100% { opacity: 0; }
}

/* Floating ambient orbs in hero */
@keyframes floaty {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-24px) translateX(12px); }
}
.orb { position: absolute; border-radius: 50%; filter: blur(60px); z-index: -1; pointer-events: none; }
.orb.g1 { width: 340px; height: 340px; background: rgba(212,175,55,0.18); top: 12%; right: 8%; animation: floaty 12s ease-in-out infinite; }
.orb.g2 { width: 260px; height: 260px; background: rgba(46,204,113,0.14); bottom: 14%; left: 6%; animation: floaty 15s ease-in-out infinite reverse; }

/* Count-up helper (no anim needed, JS driven) */

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .reveal, .reveal-scale { opacity: 1; transform: none; }
  .reveal-line > span { transform: none; }
  html { scroll-behavior: auto; }
  .marquee-inner { animation: none; }
}
