@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700;800;900&family=Sora:wght@400;600;700;800&display=swap');

:root {
  --bg-primary: #FFFFFF;
  --bg-secondary: #F5F7FA;
  --bg-accent: #EAF4FF;
  --purple-main: #6C63FF;
  --purple-dark: #5A52E0;
  --sky-blue: #4FACFE;
  --sky-blue-light: #00F2FE;
  --text-dark: #0F172A;
  --text-muted: #475569;
  --text-light: #64748B;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background-color: var(--bg-primary);
  color: var(--text-dark);
  font-family: 'Inter', sans-serif;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

::selection { background-color: #6C63FF; color: #FFFFFF; }

h1, h2, h3, h4, .font-heading { font-family: 'Poppins', sans-serif; }
.font-accent { font-family: 'Sora', sans-serif; }

/* Glassmorphism Styles */
.glass-card {
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: 0 10px 30px -5px rgba(108, 99, 255, 0.08), 0 4px 12px 0 rgba(0, 0, 0, 0.03);
}

.glass-card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.glass-card-hover:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -10px rgba(108, 99, 255, 0.15), 0 8px 16px 0 rgba(79, 172, 254, 0.08);
  border-color: rgba(108, 99, 255, 0.3);
}

.glass-nav {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(226, 232, 240, 0.8);
}

.glass-modal {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 1);
  box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.25);
}

/* Gradients */
.bg-gradient-purple-sky { background: linear-gradient(135deg, #6C63FF 0%, #4FACFE 100%); }
.text-gradient-purple-sky {
  background: linear-gradient(135deg, #6C63FF 0%, #4FACFE 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.text-gradient-sky-blue {
  background: linear-gradient(135deg, #4FACFE 0%, #00F2FE 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Glow */
.glow-purple { box-shadow: 0 0 25px rgba(108, 99, 255, 0.35); }
.glow-sky { box-shadow: 0 0 25px rgba(79, 172, 254, 0.35); }

/* Animated Floating Blobs */
@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(0deg) scale(1); }
  50% { transform: translateY(-20px) rotate(5deg) scale(1.05); }
}

@keyframes pulseGlow {
  0%, 100% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
}

/* Infinite Marquee Animation */
@keyframes marquee {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

.animate-marquee {
  display: flex;
  width: max-content;
  animation: marquee 30s linear infinite;
}
.animate-marquee:hover { animation-play-state: paused; }

.animate-blob { animation: float 8s ease-in-out infinite; }
.animate-blob-delayed { animation: float 10s ease-in-out infinite 2s; }
.animate-pulse-glow { animation: pulseGlow 6s ease-in-out infinite; }

/* Custom Scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #F5F7FA; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #6C63FF, #4FACFE); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #5A52E0, #00F2FE); }

/* Scroll progress bar */
#scroll-progress-bar {
  position: fixed;
  top: 33px;
  left: 0;
  width: 0%;
  height: 4px;
  background: linear-gradient(to right, #6C63FF, #4FACFE, #00F2FE);
  z-index: 100;
  border-radius: 0 9999px 9999px 0;
  box-shadow: 0 0 12px rgba(108, 99, 255, 0.8);
  pointer-events: none;
  transition: width 0.15s ease-out;
}
