/* 
  Stili CSS per Black Nights Community
  Basato sul design Tailwind CSS
*/

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

/* Stili personalizzati */
body {
  font-family: 'Inter', sans-serif;
}

.font-display {
  font-family: 'Orbitron', sans-serif;
}

.text-gradient {
  background: linear-gradient(135deg, #7e22ce 0%, #3b82f6 50%, #8b5cf6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.glow-text {
  text-shadow: 0 0 10px rgba(126, 34, 206, 0.5), 0 0 20px rgba(59, 130, 252, 0.3);
}

.btn-glow {
  box-shadow: 0 4px 20px rgba(126, 34, 206, 0.4);
  transition: all 0.3s ease;
}

.btn-glow:hover {
  box-shadow: 0 6px 25px rgba(126, 34, 206, 0.6);
  transform: translateY(-2px);
}

.nav-link {
  @apply px-4 py-2.5 rounded-lg font-medium text-muted-foreground hover:text-foreground transition-colors relative;
}

.nav-link.active {
  @apply text-primary;
}

.nav-link.active::after {
  content: '';
  @apply absolute bottom-0 left-1/2 w-1/2 h-0.5 bg-primary -translate-x-1/2;
}

.bg-noise {
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23000' fill-opacity='0.05'/%3E%3C/svg%3E");
}

.bg-grid {
  background-image: 
    linear-gradient(rgba(126, 34, 206, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(126, 34, 206, 0.1) 1px, transparent 1px);
  background-size: 30px 30px;
}

.rule-card {
  @apply p-6 rounded-2xl border border-border/50 bg-card/50 backdrop-blur-sm hover:bg-card transition-all duration-300 group;
  animation: fadeInUp 0.6s ease-out;
  animation-fill-mode: both;
}

.staff-card {
  @apply p-4 rounded-2xl bg-card/50 backdrop-blur-sm transition-all duration-300;
  animation: fadeInUp 0.6s ease-out;
  animation-fill-mode: both;
}

.animated-border {
  position: relative;
}

.animated-border::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: linear-gradient(135deg, #7e22ce, #3b82f6, #8b5cf6);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
}

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

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

@keyframes pulse-glow {
  0% {
    opacity: 0.4;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.1);
  }
  100% {
    opacity: 0.4;
    transform: scale(1);
  }
}

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

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

/* Colori personalizzati */
.bg-gold {
  background-color: #d4af37;
}

.text-gold {
  color: #d4af37;
}

.bg-night-blue {
  background-color: #0a0f2c;
}

.text-night-blue {
  color: #0a0f2c;
}

.text-muted-foreground {
  color: #9ca3af;
}

.bg-background {
  background-color: #0f172a;
}

.text-foreground {
  color: #f1f5f9;
}

.bg-card {
  background-color: #1e293b;
}

.border-border {
  border-color: #334155;
}

.bg-primary {
  background-color: #7e22ce;
}

.text-primary-foreground {
  color: #f8fafc;
}

/* Media queries per responsive design */
@media (max-width: 768px) {
  .nav-link {
    @apply px-3 py-2;
  }
  
  .text-gradient {
    font-size: 1.5rem;
  }
}