/* ============================================================================
   ANIMATIONS.CSS — Animaciones Monocromáticas de Alto Rendimiento
   60fps GPU, Micro-movimientos fluidos y transiciones suaves
============================================================================ */

/* ---- Pulso Plateado/Blanco ---- */
@keyframes pulse-white {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 8px #ffffff, 0 0 16px rgba(255, 255, 255, 0.6);
    opacity: 1;
  }
  50% {
    transform: scale(1.35);
    box-shadow: 0 0 14px #ffffff, 0 0 24px rgba(255, 255, 255, 0.3);
    opacity: 0.6;
  }
}

/* ---- Rotación & Péndulo Suave de Pistas Concéntricas ---- */
@keyframes stadium-rotate {
  0%   { transform: translateY(-50%) rotate(0deg) scale(1); }
  50%  { transform: translateY(-50%) rotate(2.2deg) scale(1.02); }
  100% { transform: translateY(-50%) rotate(-2.2deg) scale(0.99); }
}

/* ---- Levitación Suave del Retrato Hero ---- */
@keyframes levitate-portrait {
  0%, 100% { transform: translate3d(0, 0px, 0); }
  50%      { transform: translate3d(0, -10px, 0); }
}

/* ---- Parpadeo de Cursor Láser ---- */
@keyframes blink {
  0%, 49%   { opacity: 1; }
  50%, 100% { opacity: 0; }
}

/* ---- Barras de Ecualizador de Audio (En Plata/Blanco) ---- */
@keyframes soundwave-bar {
  0%, 100% { height: 4px; }
  50%      { height: 18px; }
}

.soundwave {
  display: inline-flex;
  align-items: flex-end;
  gap: 3px;
  height: 20px;
}

.soundwave span {
  width: 2.5px;
  background: var(--c-white);
  border-radius: 2px;
  animation: soundwave-bar 1.2s infinite ease-in-out;
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.4);
}

.soundwave span:nth-child(1) { animation-delay: 0.0s; height: 8px; }
.soundwave span:nth-child(2) { animation-delay: 0.2s; height: 16px; }
.soundwave span:nth-child(3) { animation-delay: 0.4s; height: 10px; }
.soundwave span:nth-child(4) { animation-delay: 0.1s; height: 18px; }
.soundwave span:nth-child(5) { animation-delay: 0.3s; height: 6px; }

/* ---- Barrido de Láser Plateado en Bordes ---- */
.card::before,
.track::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), #ffffff, rgba(255, 255, 255, 0.6), transparent);
  transform: translateX(-100%);
  transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 5;
  pointer-events: none;
}

.card:hover::before,
.track:hover::before {
  transform: translateX(100%);
}

/* ---- Entrada Inmediata Sin Retraso ---- */
@keyframes reveal-fast {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---- Revelación al Scroll Bidireccional Rápida & Fluida (Tiempo de respuesta < 0.3s) ---- */
[data-reveal] {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Entrada rápida del Hero al cargar */
.hero__badge,
.hero__brand-lockup,
.hero__title,
.hero__role-wrap,
.hero__bio,
.hero__meta,
.hero__actions {
  animation: reveal-fast 0.25s var(--ease-quick) both;
}

.hero__badge        { animation-delay: 0.02s; }
.hero__brand-lockup { animation-delay: 0.05s; }
.hero__title        { animation-delay: 0.08s; }
.hero__role-wrap    { animation-delay: 0.12s; }
.hero__bio          { animation-delay: 0.15s; }
.hero__meta         { animation-delay: 0.18s; }
.hero__actions      { animation-delay: 0.22s; }
