/**
 * Animations, Transitions & Photosensitivity-Safe Silent Pulses
 */

/* Orb Breathing Ambient Cycle */
@keyframes orb-breath {
  0% {
    transform: scale(0.88);
    opacity: 0.65;
  }
  100% {
    transform: scale(1.08);
    opacity: 1;
  }
}

/* Completion Bloom */
@keyframes bloom-fade-in {
  0% {
    opacity: 0;
    transform: scale(0.94);
  }
  60% {
    opacity: 1;
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* Prep Countdown Pulse */
@keyframes prep-tick {
  0% {
    transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.prep-tick-anim {
  animation: prep-tick 450ms var(--ease-spring);
}

/* Silent Mode Photosensitivity-Safe Screen Flash (< 3 Hz) */
@keyframes silent-pulse-soft {
  0% {
    opacity: 0;
  }
  40% {
    opacity: 0.85;
  }
  100% {
    opacity: 0;
  }
}

@keyframes silent-pulse-double {
  0% {
    opacity: 0;
  }
  25% {
    opacity: 0.8;
  }
  45% {
    opacity: 0.15;
  }
  70% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
  }
}

.trigger-silent-pulse-soft {
  animation: silent-pulse-soft 1400ms var(--ease-smooth) forwards;
}

.trigger-silent-pulse-double {
  animation: silent-pulse-double 1600ms var(--ease-smooth) forwards;
}

/* Staggered Item Entrance for Presets & History */
.animate-entrance {
  animation: entrance-up var(--duration-base) var(--ease-spring) both;
}

@keyframes entrance-up {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Tabular Digits Crossfade Transition */
.digit-transition {
  transition: opacity 120ms ease-out, transform 120ms ease-out;
}

/* Respect Prefers-Reduced-Motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .breath-orb {
    animation: none !important;
    transform: scale(1) !important;
    opacity: 0.8 !important;
  }

  .silent-flash-overlay.trigger-silent-pulse-soft,
  .silent-flash-overlay.trigger-silent-pulse-double {
    animation: none !important;
    opacity: 0.7;
    transition: opacity 300ms ease;
  }
}
