/* ============================================================
   Mycelial - Animations
   Every @keyframes loop in the system.

   Tiers:
     micro    200ms        hover feedback, tints, action-bar fade
     snap     350-500ms    long-press; icon hover-morphs
     settle   600-750ms    morphs, slider engage, tendril growth
     breath   4-30s        ambient loops
   ============================================================ */
@keyframes breathe {
    0%, 100% { opacity: 0.14; transform: scale(1.0); }
    50%      { opacity: 0.22; transform: scale(1.03); }
  }

@keyframes pulse-out {
    0%   { stroke-opacity: 0.95; r: 2; }
    100% { stroke-opacity: 0;    r: 11; }
  }

@keyframes breathe-soft {
    0%, 100% { opacity: 0.85; transform: scale(1.0); }
    50%      { opacity: 1.0; transform: scale(1.04); }
  }

@keyframes spore-pulse {
    0%, 100% { opacity: 0.55; }
    50%      { opacity: 1.0; }
  }

@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
  }

@keyframes lift-spore {
    0%   { transform: translateY(0); opacity: 1; }
    60%  { transform: translateY(-4px); opacity: 0.8; }
    100% { transform: translateY(-8px); opacity: 0; }
  }

@keyframes state-spore {
    0%   { background: rgba(142,255,176,0.0); box-shadow: 0 0 0 0 rgba(142,255,176,0); }
    8%   { background: rgba(142,255,176,0.12); box-shadow: 0 0 24px 2px rgba(142,255,176,0.22); }
    100% { background: rgba(142,255,176,0.0); box-shadow: 0 0 0 0 rgba(142,255,176,0); }
  }

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