/* animations.css - keyframes, scroll reveals, floats, shimmer */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes fadeLeft { from{opacity:0;transform:translateX(-28px)} to{opacity:1;transform:translateX(0)} }
@keyframes fadeRight { from{opacity:0;transform:translateX(28px)} to{opacity:1;transform:translateX(0)} }
@keyframes scaleIn { from{opacity:0;transform:scale(0.92)} to{opacity:1;transform:scale(1)} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes float { 0%,100%{transform:translateY(0) rotate(0deg)} 33%{transform:translateY(-14px) rotate(2deg)} 66%{transform:translateY(-6px) rotate(-1.5deg)} }
@keyframes floatSlow { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-20px)} }
@keyframes shimmer { 0%{background-position:-200% center} 100%{background-position:200% center} }
@keyframes pulse-ring { 0%{transform:scale(1);opacity:.6} 100%{transform:scale(1.6);opacity:0} }
@keyframes toastIn { from{opacity:0;transform:translateY(20px) scale(.9)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes gradientShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes countUp { from{transform:translateY(100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes wiggle { 0%,100%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} }

.reveal { opacity:0; transform:translateY(30px); transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1); }
.reveal.reveal--left { transform:translateX(-30px); }
.reveal.reveal--right { transform:translateX(30px); }
.reveal.reveal--scale { transform:scale(.94); }
.reveal.visible { opacity:1; transform:none; }

.stagger > *:nth-child(1){transition-delay:0ms}
.stagger > *:nth-child(2){transition-delay:80ms}
.stagger > *:nth-child(3){transition-delay:160ms}
.stagger > *:nth-child(4){transition-delay:240ms}
.stagger > *:nth-child(5){transition-delay:320ms}
.stagger > *:nth-child(6){transition-delay:400ms}

.anim-hero-1{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .1s both}
.anim-hero-2{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .22s both}
.anim-hero-3{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .34s both}
.anim-hero-4{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .46s both}
.anim-hero-5{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .58s both}
.anim-fade-right{animation:fadeRight .9s cubic-bezier(.16,1,.3,1) .3s both}
.anim-scale-in{animation:scaleIn .8s cubic-bezier(.16,1,.3,1) .2s both}

.float-1{animation:float 4.5s ease-in-out infinite}
.float-2{animation:float 5.5s ease-in-out .7s infinite}
.float-3{animation:float 6s ease-in-out 1.4s infinite}
.float-slow{animation:floatSlow 8s ease-in-out infinite}

.shimmer{background:linear-gradient(90deg,var(--cream-200) 25%,var(--cream-100) 50%,var(--cream-200) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}
.gradient-text{background:linear-gradient(135deg,var(--caramel-500),var(--rose-500),var(--gold-500));background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s ease infinite}
.hover-lift{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.hover-lift:hover{transform:translateY(-5px)}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
}
