/* animations.css — keyframes (отключаются при reduced-motion). */

@keyframes fn-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes fn-rise {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fn-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}

@keyframes fn-breathe {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50%      { transform: scale(1.15); opacity: 1; }
}

.anim-rise   { animation: fn-rise var(--transition-slow) ease both; }
.anim-fade   { animation: fn-fade-in var(--transition-normal) ease both; }
.anim-pulse  { animation: fn-pulse 2s ease-in-out infinite; }

/* Полное отключение анимаций по системной настройке или флагу пользователя */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

[data-reduced-motion="true"] *,
[data-reduced-motion="true"] *::before,
[data-reduced-motion="true"] *::after {
  animation: none !important;
  transition: none !important;
}
