/* Keyframes & animation helpers */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(.95); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes bounce {
  0%,20%,53%,80%,100% { transform: translateX(-50%) translateY(0); }
  40%,43% { transform: translateX(-50%) translateY(-10px); }
  70% { transform: translateX(-50%) translateY(-5px); }
  90% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes pulse {
  0%,100% { opacity: 1; } 50% { opacity: .5; }
}
@keyframes slideInRight {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
