/* Shared Animations — extracted from app inline styles */
/* Auto-generated by css-dedup-fixer.js — do not edit manually */

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

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

@keyframes livePulse { 0%,100% { opacity: 1; box-shadow: 0 0 4px var(--positive); } 50% { opacity: 0.4; box-shadow: 0 0 8px var(--positive); } }

@keyframes fadeSlideIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

@keyframes blink { 50% { opacity: 0; } }

@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

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

@keyframes card-enter{
  0%{opacity:0;transform:translateY(-12px)}
  100%{opacity:1;transform:translateY(0)}
}

@keyframes fade-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

@keyframes pulse-glow{0%,100%{box-shadow:0 0 20px var(--accent-subtle)}50%{box-shadow:0 0 40px var(--accent-subtle)}}

@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@keyframes typing-dot{0%,80%,100%{opacity:.3}40%{opacity:1}}
