/* ============================================================
   VENDORED — DO NOT EDIT
   Source: C:/dev/ICGBrand/tokens/motion.css
   Brand version: ICG Brand v1.2 (per BRAND.md section 12)
   To update: re-copy from the canonical source.  Hand-edits
   here will be lost on the next vendor refresh.
   ============================================================ */

/* ============================================================
   ICG BRAND — MOTION
   Restrained, intentional. One big motion per section.
   prefers-reduced-motion handled in reset.css.
   ============================================================ */
:root {
  --duration-instant: 80ms;
  --duration-fast:    160ms;
  --duration-base:    240ms;
  --duration-slow:    400ms;
  --duration-slower:  720ms;
  --duration-curtain: 1200ms;

  --ease-out:        cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-in-out:     cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring:     cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
  --ease-anticipate: cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

/* Reveal on load — for hero staggered entrance */
@keyframes icg-rise {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes icg-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes icg-scale-in {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes icg-pulse-spark {
  0%, 100% { box-shadow: 0 0 0 0 var(--color-spark); opacity: 1; }
  50%      { box-shadow: 0 0 0 8px transparent; opacity: 0.85; }
}
@keyframes icg-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ----- Signal ping — radar/sonar expanding-ring for live-status dots.
        Used by FSM monitoring components (.status-dot--live, .live-badge). */
@keyframes icg-ping {
  0%   { transform: scale(1);    opacity: 0.7; }
  80%  { transform: scale(2.4);  opacity: 0;   }
  100% { transform: scale(2.4);  opacity: 0;   }
}
@keyframes icg-pulse-dot {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.55; }
}

.reveal {
  animation: icg-rise var(--duration-curtain) var(--ease-out) backwards;
}
.reveal-delay-1 { animation-delay: 80ms;  }
.reveal-delay-2 { animation-delay: 160ms; }
.reveal-delay-3 { animation-delay: 240ms; }
.reveal-delay-4 { animation-delay: 320ms; }
.reveal-delay-5 { animation-delay: 400ms; }
.reveal-delay-6 { animation-delay: 480ms; }
