/* animations.css — R99 */
@keyframes hero-fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-title { animation: hero-fade-in 0.6s ease-out both; }

@keyframes slide-up {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
.age-dialog { animation: slide-up 0.5s ease-out; }

@keyframes page-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}
.page.active { animation: page-enter 0.4s ease-out; }

@keyframes card-load {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.card { animation: card-load 0.4s ease-out both; }

@keyframes nav-active {
  0% { transform: scale(1); }
  50% { transform: scale(1.12); }
  100% { transform: scale(1.05); }
}
.nav-item.active { animation: nav-active 0.2s ease; }

@keyframes mic-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255,123,66,0.4); }
  50% { transform: scale(1.08); box-shadow: 0 0 0 12px rgba(255,123,66,0); }
}
.mic-recording { animation: mic-pulse 1.5s ease-in-out infinite; }

@keyframes sos-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(198,40,40,0.5); }
  50% { box-shadow: 0 0 0 14px rgba(198,40,40,0); }
}
.sos-button { animation: sos-pulse 2s ease-in-out infinite; }

@keyframes toast-in {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}
.toast { animation: toast-in 0.3s ease; }

@keyframes toast-out {
  from { opacity: 1; }
  to { opacity: 0; }
}
.toast.hiding { animation: toast-out 0.5s ease forwards; }

@keyframes list-item-in {
  from { opacity: 0; transform: translateX(-8px); }
  to { opacity: 1; transform: translateX(0); }
}
.list-item { animation: list-item-in 0.4s ease-out both; }

@keyframes success-bounce {
  0% { transform: scale(0); }
  50% { transform: scale(1.15); }
  100% { transform: scale(1); }
}
.success-icon { animation: success-bounce 0.5s ease; display: inline-block; font-size: 48px; }

.btn { transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1); }
.btn:active { transform: scale(0.96); }

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