/* tuli· — Motion / animations  (mirrors the app's 4C animation spec in index.css)
   Gentle entrances, floating illustrations, breathing premium gradients.
   All respect prefers-reduced-motion. */

@keyframes tuli-card-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes tuli-fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes tuli-fade-in-up {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes tuli-scale-in {
  from { opacity: 0; transform: scale(0.85); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes tuli-pop {
  0%   { transform: scale(0.8); opacity: 0; }
  60%  { transform: scale(1.06); }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes tuli-pulse-once {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.04); }
  100% { transform: scale(1); }
}
@keyframes tuli-slide-in-right {
  from { opacity: 0; transform: translateX(12px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes tuli-slide-up {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
@keyframes tuli-float {
  0%, 100% { transform: translateY(0px); }
  50%      { transform: translateY(-8px); }
}
@keyframes tuli-float-slow {
  0%, 100% { transform: translateY(0px); }
  50%      { transform: translateY(-5px); }
}
@keyframes tuli-breathe {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
@keyframes tuli-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.tuli-animate-card-in      { animation: tuli-card-in 0.4s var(--tuli-ease-out) both; }
.tuli-animate-fade-up      { animation: tuli-fade-up 0.5s var(--tuli-ease-out) both; }
.tuli-animate-fade-in-up   { animation: tuli-fade-in-up 0.3s var(--tuli-ease-out) both; }
.tuli-animate-scale-in     { animation: tuli-scale-in 0.4s var(--tuli-ease-out) both; }
.tuli-animate-pop          { animation: tuli-pop 0.45s var(--tuli-ease) both; }
.tuli-animate-slide-up     { animation: tuli-slide-up 0.3s var(--tuli-ease-out) both; }
.tuli-animate-float        { animation: tuli-float 3.5s ease-in-out infinite; }
.tuli-animate-float-slow   { animation: tuli-float-slow 4.5s ease-in-out infinite; }
.tuli-animate-breathe      { background-size: 200% 200%; animation: tuli-breathe 8s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  [class^="tuli-animate-"],
  [class*=" tuli-animate-"] {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
