/* ==========================================================================
   InsideDreamin - Modern Hybrid Experience (Advocacy + Enterprise Aesthetics)
   Clean, vibrant, high-contrast typography, infinite marquee, and interactive gamification
   ========================================================================== */

:root {
  --brand-purple: #5B21B6;
  --brand-violet: #7C3AED;
  --brand-darkViolet: #3B1C96;
  --brand-deep: #1E0B4B;
  --brand-fuchsia: #C026D3;
  --brand-pink: #EC4899;
  --brand-coral: #F97316;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Instrument Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background-color: #ffffff;
  color: #0f172a;
  overflow-x: hidden;
}

h1, h2, h3, h4, .font-outfit {
  font-family: 'Outfit', sans-serif;
}

/* ==========================================================
   INFINITE HORIZONTAL MARQUEE (Enterprise Style)
   ========================================================== */
@keyframes marqueeLeft {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}

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

.marquee-container {
  overflow: hidden;
  user-select: none;
  position: relative;
  width: 100%;
}

.marquee-track {
  display: flex;
  width: max-content;
  animation: marqueeLeft 48s linear infinite;
  gap: 1.5rem;
}

.marquee-track-reverse {
  display: flex;
  width: max-content;
  animation: marqueeRight 52s linear infinite;
  gap: 1.5rem;
}

.marquee-container:hover .marquee-track,
.marquee-container:hover .marquee-track-reverse {
  animation-play-state: paused;
}

/* Gradient Fade Edges for Marquee */
.marquee-fade-left {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 120px;
  background: linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0));
  z-index: 10;
  pointer-events: none;
}

.marquee-fade-right {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 120px;
  background: linear-gradient(to left, #ffffff, rgba(255, 255, 255, 0));
  z-index: 10;
  pointer-events: none;
}

/* ==========================================================
   FLOATING REACTIONS & HERO ANIMATIONS
   ========================================================== */
@keyframes floatUp {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.6);
  }
  20% {
    opacity: 1;
    transform: translateY(0px) scale(1);
  }
  80% {
    opacity: 0.95;
    transform: translateY(-80px) scale(1.08);
  }
  100% {
    opacity: 0;
    transform: translateY(-120px) scale(0.85);
  }
}

.floating-reaction {
  position: absolute;
  animation: floatUp 3.2s ease-in-out infinite;
  pointer-events: none;
  z-index: 30;
}

/* Gentle Floating Orbs in CTA Banner */
@keyframes orbFloat {
  0%, 100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-14px) scale(1.06);
  }
}

.animate-orb-float {
  animation: orbFloat 6s ease-in-out infinite;
}

.animate-orb-float-delayed {
  animation: orbFloat 7.5s ease-in-out 1.5s infinite;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 9px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Card Subtle Hover Transitions */
.card-hover-elevate {
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
.card-hover-elevate:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 35px -8px rgba(91, 33, 182, 0.14);
}

/* Step Badge Gradient */
.step-number-badge {
  background: linear-gradient(135deg, #7C3AED, #3B1C96);
  color: #ffffff;
  box-shadow: 0 8px 16px -4px rgba(124, 58, 237, 0.4);
}
