/* ==========================================================================
   ORBIS — Animaciones de interfaz.
   Todo lo definido aquí queda anulado bajo prefers-reduced-motion.
   ========================================================================== */

/* Barrido de aparición de panel (fase 3-4) */
@keyframes orbis-barrido {
  from { clip-path: inset(0 100% 0 0); opacity: 0; }
  to   { clip-path: inset(0 0 0 0);    opacity: 1; }
}

/* Pulso suave del borde vivo de un panel activo */
@keyframes orbis-pulso-borde {
  0%, 100% { box-shadow: 0 0 0 rgba(0, 229, 255, 0); }
  50%      { box-shadow: 0 0 14px rgba(0, 229, 255, 0.45); }
}

/* Líneas de escaneo sutiles sobre el conjunto de la interfaz */
@keyframes orbis-escaneo {
  from { transform: translateY(-100%); }
  to   { transform: translateY(100%); }
}

/* Cursor de espera del arranque */
@keyframes orbis-parpadeo {
  0%, 45%  { opacity: 1; }
  50%, 95% { opacity: 0.25; }
}

.arranque__detalle::after {
  content: "▌";
  margin-left: 2px;
  animation: orbis-parpadeo 1.1s steps(1, end) infinite;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    scroll-behavior: auto !important;
  }
  .arranque__detalle::after { animation: none; opacity: 1; }
}

/* Giro lento de la retícula de la proyección orbital. Decorativo. */
@keyframes orbis-girar {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Latido del testigo de cámara encendida */
@keyframes orbis-testigo {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.35; }
}
