/* Base Styles & Custom Animations */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Geist:wght@300;400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');

:root {
  --bg-dark: #0a0a12;
  --accent-purple: #AF40FF;
  --accent-blue: #5B42F3;
  --accent-cyan: #00DDEB;
}

body {
  background-color: var(--bg-dark);
  font-family: 'Inter', sans-serif;
  color: #f4f4f5;
  overflow-x: hidden;
}

.font-geist {
  font-family: 'Geist', sans-serif !important;
}

.font-space-grotesk {
  font-family: 'Space Grotesk', sans-serif !important;
}

/* Gradient Blur Background Effect */
.gradient-blur {
  position: fixed;
  z-index: 5;
  inset: 0 0 auto 0;
  height: 12%;
  pointer-events: none;
}

.gradient-blur>div,
.gradient-blur::before,
.gradient-blur::after {
  position: absolute;
  inset: 0;
}

.gradient-blur::before {
  content: "";
  z-index: 1;
  backdrop-filter: blur(0.5px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 0) 37.5%);
}

.gradient-blur>div:nth-of-type(1) {
  z-index: 2;
  backdrop-filter: blur(1px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 0) 50%);
}

.gradient-blur>div:nth-of-type(2) {
  z-index: 3;
  backdrop-filter: blur(2px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 62.5%);
}

.gradient-blur>div:nth-of-type(3) {
  z-index: 4;
  backdrop-filter: blur(4px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 0) 75%);
}

.gradient-blur>div:nth-of-type(4) {
  z-index: 5;
  backdrop-filter: blur(8px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 87.5%);
}

.gradient-blur>div:nth-of-type(5) {
  z-index: 6;
  backdrop-filter: blur(16px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 0) 100%);
}

.gradient-blur>div:nth-of-type(6) {
  z-index: 7;
  backdrop-filter: blur(32px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 1) 100%);
}

@media (max-width: 768px) {
  .gradient-blur {
    display: none !important;
  }

  .glass-panel,
  .glass-nav {
    backdrop-filter: none !important;
    background: rgba(15, 15, 25, 0.8) !important;
  }

  /* Add color back to mobile without heavy processing */
  body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:
      radial-gradient(circle at 20% 20%, rgba(91, 66, 243, 0.15) 0%, transparent 40%),
      radial-gradient(circle at 80% 80%, rgba(175, 64, 255, 0.15) 0%, transparent 40%);
    z-index: -10;
    pointer-events: none;
  }

  /* Lightweight Stars for Mobile */
  body::after {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image:
      radial-gradient(1px 1px at 20px 30px, #fff, rgba(0, 0, 0, 0)),
      radial-gradient(1.5px 1.5px at 100px 150px, #fff, rgba(0, 0, 0, 0)),
      radial-gradient(1px 1px at 200px 250px, #fff, rgba(0, 0, 0, 0)),
      radial-gradient(1.5px 1.5px at 300px 350px, #fff, rgba(0, 0, 0, 0)),
      radial-gradient(1px 1px at 50px 500px, #fff, rgba(0, 0, 0, 0)),
      radial-gradient(1.5px 1.5px at 150px 600px, #fff, rgba(0, 0, 0, 0)),
      radial-gradient(1px 1px at 250px 700px, #fff, rgba(0, 0, 0, 0));
    background-size: 350px 750px;
    opacity: 0.3;
    z-index: -5;
    pointer-events: none;
  }

  .aura-background-component {
    display: none !important;
  }
}

.gradient-blur::after {
  content: "";
  z-index: 8;
  backdrop-filter: blur(64px);
  mask: linear-gradient(to top, rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 1) 100%);
}

/* Glassmorphism Classes */
.glass-panel {
  background: rgba(10, 10, 18, 0.4) !important;
  backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Fix for visibility when the background "rayo" passes behind cards */
.glass-panel h2,
.glass-panel h3,
.glass-panel h4,
.glass-panel p,
.ring-1.bg-white\/5 h3,
.ring-1.bg-white\/5 p,
.ring-1.bg-white\/10 h3,
.ring-1.bg-white\/10 p {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* Darken cards that use Tailwind's bg-white/5 or similar */
.bg-white\/5,
.bg-white\/\[0\.02\],
.bg-white\/\[0\.03\],
.bg-white\/\[0\.08\],
.bg-slate-50\/5 {
  background-color: rgba(10, 10, 18, 0.45) !important;
}

.glass-nav {
  background: rgba(10, 10, 18, 0.7);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Animations */
@keyframes borderBeamRotation {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@keyframes rotate-gradient {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes float {

  0%,
  100% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-10px);
  }
}

.animate-float {
  animation: float 6s ease-in-out infinite;
}

/* Custom Utilities */
.text-gradient {
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  background-image: linear-gradient(to right, #d8ccff, #a39fea);
}

.button-gradient {
  background-image: linear-gradient(144deg, #AF40FF, #5B42F3 50%, #00DDEB);
}

/* Lucide Icon Colors */
.icon-violet {
  color: #c4b5fd;
}

.icon-emerald {
  color: #34d399;
}

.icon-blue {
  color: #60a5fa;
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #0a0a12;
}

::-webkit-scrollbar-thumb {
  background: #27272a;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #3f3f46;
}

@keyframes moveDot {
  0% {
    top: 0;
    left: 0;
  }

  25% {
    top: 0;
    left: 100%;
  }

  50% {
    top: 100%;
    left: 100%;
  }

  75% {
    top: 100%;
    left: 0;
  }

  100% {
    top: 0;
    left: 0;
  }
}

.animated-dot {
  pointer-events: none;
  transform: translate(-50%, -50%);
  animation-play-state: paused !important;
}

.integration-card:hover .animated-dot {
  animation-play-state: running !important;
}