/* ═══════════════════════════════════════════════════
   GURUS AGENCY — ANIMATIONS.CSS
   Scroll reveals, glows, tickers, hover effects
═══════════════════════════════════════════════════ */

/* ── Scroll Reveal ── */
.gurus-reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.85s cubic-bezier(0.16,1,0.3,1),
              transform 0.85s cubic-bezier(0.16,1,0.3,1);
}
.gurus-reveal.is-visible { opacity: 1; transform: none; }
.gurus-reveal-d1 { transition-delay: 0.10s; }
.gurus-reveal-d2 { transition-delay: 0.20s; }
.gurus-reveal-d3 { transition-delay: 0.30s; }
.gurus-reveal-d4 { transition-delay: 0.40s; }
.gurus-reveal-left  { opacity: 0; transform: translateX(-40px); transition: opacity 0.85s cubic-bezier(0.16,1,0.3,1), transform 0.85s cubic-bezier(0.16,1,0.3,1); }
.gurus-reveal-right { opacity: 0; transform: translateX(40px);  transition: opacity 0.85s cubic-bezier(0.16,1,0.3,1), transform 0.85s cubic-bezier(0.16,1,0.3,1); }
.gurus-reveal-left.is-visible,
.gurus-reveal-right.is-visible { opacity: 1; transform: none; }

/* ── Glow Pulse ── */
@keyframes gurusPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%       { transform: scale(1.18); opacity: 0.7; }
}
.gurus-glow {
  border-radius: 50%; filter: blur(70px); pointer-events: none;
  animation: gurusPulse 9s ease-in-out infinite;
}
.gurus-glow-purple { background: radial-gradient(circle, rgba(116,72,230,0.28), transparent 70%); }
.gurus-glow-purple-soft { background: radial-gradient(circle, rgba(116,72,230,0.14), transparent 70%); animation-delay: -4s; }

/* ── Blink dot ── */
@keyframes gurusBlink { 0%,100%{opacity:1} 50%{opacity:0.2} }
.gurus-blink { animation: gurusBlink 2s infinite; }

/* ── Scroll Line ── */
@keyframes gurusScrollLine {
  0%   { transform: scaleY(0); transform-origin: top; }
  49%  { transform: scaleY(1); transform-origin: top; }
  50%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}
.gurus-scroll-line { animation: gurusScrollLine 2.2s ease-in-out infinite; }

/* ── Ticker ── */
@keyframes gurusTick { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.gurus-ticker-track { animation: gurusTick 30s linear infinite; }
.gurus-ticker-track:hover { animation-play-state: paused; }

/* ── Grid Background ── */
.gurus-grid-bg {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(116,72,230,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(116,72,230,0.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 85% 85% at 50% 50%, black 0%, transparent 100%);
}

/* ── Hero Text Entrance ── */
@keyframes gurusFadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: none; }
}
.gurus-hero-badge   { opacity: 0; animation: gurusFadeUp 0.9s 0.15s cubic-bezier(0.16,1,0.3,1) forwards; }
.gurus-hero-h1      { opacity: 0; animation: gurusFadeUp 1.0s 0.35s cubic-bezier(0.16,1,0.3,1) forwards; }
.gurus-hero-sub     { opacity: 0; animation: gurusFadeUp 1.0s 0.55s cubic-bezier(0.16,1,0.3,1) forwards; }
.gurus-hero-btns    { opacity: 0; animation: gurusFadeUp 1.0s 0.72s cubic-bezier(0.16,1,0.3,1) forwards; }
.gurus-hero-stats   { opacity: 0; animation: gurusFadeUp 1.0s 1.00s cubic-bezier(0.16,1,0.3,1) forwards; }
.gurus-hero-scroll  { opacity: 0; animation: gurusFadeUp 1.0s 1.30s cubic-bezier(0.16,1,0.3,1) forwards; }

/* ── Service Card Hover ── */
.gurus-svc-card { position: relative; overflow: hidden; }
.gurus-svc-card::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(116,72,230,0.1), transparent);
  opacity: 0; transition: opacity 0.35s;
}
.gurus-svc-card:hover::before { opacity: 1; }
.gurus-svc-icon { transition: transform 0.4s cubic-bezier(0.16,1,0.3,1); }
.gurus-svc-card:hover .gurus-svc-icon { transform: rotate(-6deg) scale(1.1); }
.gurus-svc-arrow { transition: all 0.3s; }
.gurus-svc-card:hover .gurus-svc-arrow {
  background: var(--gurus-purple) !important;
  border-color: var(--gurus-purple) !important;
  color: white !important;
}

/* ── Process Card Hover Bar ── */
.gurus-proc-bar {
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--gurus-purple);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.gurus-proc-card:hover .gurus-proc-bar { transform: scaleX(1); }
.gurus-proc-num { transition: color 0.3s; }
.gurus-proc-card:hover .gurus-proc-num { color: rgba(116,72,230,0.40) !important; }

/* ── Philosophy Element Hover ── */
.gurus-pe {
  transition: background 0.35s, border-color 0.35s,
              transform 0.35s cubic-bezier(0.16,1,0.3,1);
}
.gurus-pe:hover {
  background: rgba(116,72,230,0.14) !important;
  border-color: rgba(116,72,230,0.4) !important;
  transform: translateY(-6px);
}
.gurus-pe-icon { transition: transform 0.35s cubic-bezier(0.16,1,0.3,1); display: block; }
.gurus-pe:hover .gurus-pe-icon { transform: scale(1.2); }

/* ── Navbar Stuck ── */
.gurus-nav-stuck {
  background: rgba(17,17,17,0.90) !important;
  backdrop-filter: blur(24px) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

/* ── Counter Number ── */
@keyframes countUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
.gurus-counter { display: inline-block; animation: countUp 0.5s var(--gurus-ease) forwards; }
