@tailwind base;
@tailwind components;
@tailwind utilities;

/* Definition of the design system. All colors, gradients, fonts, etc should be defined here. 
All colors MUST be HSL. */
@layer base {
  :root {
    --background: 0 0% 0%;
    --foreground: 0 0% 100%;
    --card: 0 0% 0%;
    --card-foreground: 0 0% 100%;
    --popover: 0 0% 0%;
    --popover-foreground: 0 0% 100%;
    --primary: 271 91% 65%;
    --primary-foreground: 0 0% 100%;
    --secondary: 271 15% 15%;
    --secondary-foreground: 0 0% 100%;
    --muted: 271 15% 15%;
    --muted-foreground: 0 0% 70%;
    --accent: 271 15% 15%;
    --accent-foreground: 0 0% 100%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 271 30% 20%;
    --input: 271 30% 20%;
    --ring: 271 91% 65%;
    --radius: 0.5rem;
    --sidebar-background: 0 0% 5%;
    --sidebar-foreground: 0 0% 90%;
    --sidebar-primary: 271 91% 65%;
    --sidebar-primary-foreground: 0 0% 100%;
    --sidebar-accent: 271 15% 15%;
    --sidebar-accent-foreground: 0 0% 100%;
    --sidebar-border: 271 30% 20%;
    --sidebar-ring: 271 91% 65%;
  }
}

@font-face {
  font-family: 'Horizon';
  src: url('/fonts/horizon.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Archivo';
  src: url('/fonts/archivo.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground;
    margin: 0;
    padding: 0;
    min-height: 100vh;
    background: linear-gradient(
      135deg,
      #000000 0%,
      #1a1a2e 25%,
      #16213e 50%,
      #0f0f23 75%,
      #000000 100%
    );
  }

  html {
    scroll-behavior: smooth;
    margin: 0;
    padding: 0;
  }
}

@layer utilities {
  .neon-glow {
    text-shadow:
      0 0 10px rgba(168, 85, 247, 0.5),
      0 0 20px rgba(168, 85, 247, 0.3),
      0 0 40px rgba(168, 85, 247, 0.2);
  }

  .animate-fade-in {
    animation: fadeIn 2s ease-out forwards;
  }

  @keyframes fadeIn {
    from {
      opacity: 0;
      transform: translateY(20px) scale(0.95);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

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

  @keyframes float {
    0%,
    100% {
      transform: translateY(0px) rotate(0deg);
    }
    50% {
      transform: translateY(-10px) rotate(2deg);
    }
  }

  .animate-glow {
    animation: glow 2s ease-in-out infinite alternate;
  }

  @keyframes glow {
    from {
      box-shadow: 0 0 20px #8b5cf6;
    }
    to {
      box-shadow:
        0 0 30px #8b5cf6,
        0 0 40px #8b5cf6;
    }
  }

  .pill-btn {
    @apply px-4 py-2 rounded-full bg-gradient-to-r from-purple-600/20 to-blue-600/20 border border-purple-500/30 text-purple-300 backdrop-blur-sm hover:from-purple-600/30 hover:to-blue-600/30 transition-all duration-300;
  }
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #1a1a1a;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(to bottom, #8b5cf6, #3b82f6);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(to bottom, #9333ea, #2563eb);
}

/* Estilos específicos para el fondo gradiente oscuro */
.bg-dark-gradient {
  background: linear-gradient(
    135deg,
    #000000 0%,
    #1a1a2e 25%,
    #16213e 50%,
    #0f0f23 75%,
    #000000 100%
  );
}

/* Asegurar que el coming soon tenga el efecto correcto */
.coming-soon-text {
  background: linear-gradient(135deg, #a855f7 0%, #3b82f6 50%, #10b981 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Mejoras para el contraste y visibilidad */
.text-enhanced {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
}

/* Asegurar que las animaciones funcionen correctamente */
@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
