body {
  margin: 0;
  overflow: hidden;
  background: #000;
}

.intro {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  background: #000;
}

.nebula-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(10, 0, 25, 0.7) 0%, #000 75%);
  animation: nebula-drift 200s linear infinite;
  opacity: 0.6;
}

.cosmic-center {
  position: relative;
  width: 60vmin;
  max-width: 400px;
  aspect-ratio: 1;
}

.cosmic-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 0 120px #00d4ffaa)
          drop-shadow(0 0 220px #7c3aedaa)
          drop-shadow(0 0 320px #ff2e6399);
  animation: heartbeat-pulse 5s ease-in-out infinite;
}

.vortex-ring {
  position: absolute;
  inset: -70%;
  border-radius: 50%;
  background: conic-gradient(transparent 0%, #00d4ff 15%, #7c3aed 45%, #ff2e63 75%, transparent);
  opacity: 0.45;
  animation: rotate-slow 40s linear infinite;
  filter: blur(14px);
  mix-blend-mode: screen;
}

.hyperspace-particles {
  position: absolute;
  inset: -200%;
  pointer-events: none;
}

.hyperspace-particles::before,
.hyperspace-particles::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent, #00d4ff66, transparent);
  animation: warp-lines 9s linear infinite;
  mix-blend-mode: screen;
  filter: blur(5px);
}

.hyperspace-particles::after {
  background: linear-gradient(transparent, #ff2e6366, transparent);
  animation-delay: 3s;
}

/* Animazioni loop infinite */
@keyframes heartbeat-pulse {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  40%      { transform: scale(1.08); filter: brightness(1.25); }
  70%      { transform: scale(0.96); filter: brightness(1.08); }
}

@keyframes rotate-slow {
  to { transform: rotate(360deg); }
}

@keyframes warp-lines {
  0%   { transform: translateY(-250%) rotate(0deg); opacity: 0.9; }
  100% { transform: translateY(250%) rotate(120deg); opacity: 0; }
}

@keyframes nebula-drift {
  0%   { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}