/* Available before React starts; shared by boot and subsequent loading screens. */
.equo-loading-logo {
  animation: equoLogoBreathe 2.4s ease-in-out infinite;
}
.equo-loading-caption {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: hsl(var(--muted-foreground, 158 12% 38%));
}
.equo-loading-bars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 32px;
  height: 22px;
  color: hsl(var(--primary, 162 69% 14%));
}
.equo-loading-bars i {
  display: block;
  width: 4px;
  height: 18px;
  border-radius: 2px;
  background: currentColor;
  animation: equoLoadingWave 1.1s ease-in-out infinite;
}
.equo-loading-bars i:nth-child(2) { animation-delay: 0.12s; }
.equo-loading-bars i:nth-child(3) { animation-delay: 0.24s; }
.equo-loading-bars i:nth-child(4) { animation-delay: 0.36s; }
.equo-loading-bars i:nth-child(5) { animation-delay: 0.48s; }
@keyframes equoLoadingWave {
  0%, 100% { transform: scaleY(0.3); opacity: 0.4; }
  50% { transform: scaleY(1); opacity: 1; }
}
@keyframes equoLogoBreathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes equoLoadingFade {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .equo-loading-logo { animation: none; }
  /* Las barras mantienen la misma animación de onda que el resto del sistema. */
}