/* ============================================================
   ANIMATIONS & TRANSITIONS — Lakshya Sharma Portfolio
   Premium scroll-triggered & entrance animation system
   ============================================================ */

/* ── Scroll Reveal Classes ────────────────────────────────── */
.reveal-item {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  filter: blur(4px);
  will-change: opacity, transform, filter;
}

.reveal-item.active {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.94) translateY(16px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  filter: blur(3px);
}

.reveal-scale.active {
  opacity: 1;
  transform: scale(1) translateY(0);
  filter: blur(0);
}

/* Stagger Delays */
.delay-1 { transition-delay: 0.08s; }
.delay-2 { transition-delay: 0.16s; }
.delay-3 { transition-delay: 0.24s; }
.delay-4 { transition-delay: 0.32s; }
.delay-5 { transition-delay: 0.4s; }
.delay-6 { transition-delay: 0.48s; }
.delay-7 { transition-delay: 0.56s; }

/* ── Keyframe Animations ──────────────────────────────────── */

/* Float gentle */
@keyframes floatGentle {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(0.5deg); }
}

.float-gentle {
  animation: floatGentle 6s ease-in-out infinite;
}

/* Spin continuous (slow) */
@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.spin-slow {
  animation: spinSlow 25s linear infinite;
}

/* Pulse glow ring */
@keyframes pulseGlowRing {
  0%, 100% { box-shadow: 0 0 12px rgba(255, 107, 53, 0.1); }
  50% { box-shadow: 0 0 28px rgba(255, 107, 53, 0.25); }
}

.glow-pulse {
  animation: pulseGlowRing 3s ease-in-out infinite;
}

/* Shimmer effect for cards */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Gradient border animation */
@keyframes borderGlow {
  0%, 100% { border-color: rgba(255, 107, 53, 0.15); }
  50% { border-color: rgba(255, 107, 53, 0.35); }
}

/* ── Section Transitions ──────────────────────────────────── */
.section {
  transition: background-color 0.6s ease;
}

/* ── Reduced Motion Override ──────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .reveal-item,
  .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    filter: none !important;
  }

  .hero-anim {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }

  .float-gentle,
  .spin-slow,
  .glow-pulse {
    animation: none !important;
  }

  .bg-orb {
    animation: none !important;
  }

  .cutout-glow,
  .cutout-depth-ring,
  .coming-soon-icon,
  .scroll-line,
  .loader-logo,
  .loader-logo-img,
  .loader-bar-fill,
  .cs-line,
  .coming-soon-dots span,
  .coming-soon-progress-bar,
  .cutout-badge {
    animation: none !important;
  }
}
