/* ==========================================================================
   AYURDAARI WELLNESS — ANIMATION SYSTEM
   ========================================================================== */

/* ---------- Keyframes ---------- */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes floatY{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-16px) rotate(4deg);}
}
@keyframes zoomSlow{
  from{transform:scale(1);}
  to{transform:scale(1.08);}
}
@keyframes driftBg{
  from{transform:translate(0,0);}
  to{transform:translate(-2%,2%);}
}
@keyframes spinSlow{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
@keyframes pulseRing{
  0%{box-shadow:0 0 0 0 rgba(184,149,82,.45);}
  100%{box-shadow:0 0 0 14px rgba(184,149,82,0);}
}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in-view{opacity:1;transform:translateY(0);}

.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal-left.in-view{opacity:1;transform:translateX(0);}

.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal-right.in-view{opacity:1;transform:translateX(0);}

.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal-scale.in-view{opacity:1;transform:scale(1);}

/* Staggering via inline delay custom property */
.reveal,.reveal-left,.reveal-right,.reveal-scale{transition-delay:var(--d,0s);}

/* ---------- Text line reveal ---------- */
.reveal-lines .line{overflow:hidden;display:block;}
.reveal-lines .line span{display:block;transform:translateY(110%);transition:transform .8s var(--ease);transition-delay:var(--d,0s);}
.reveal-lines.in-view .line span{transform:translateY(0);}

/* ---------- Hover micro-interactions ---------- */
.underline-hover{position:relative;}
.underline-hover::after{content:'';position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease);}
.underline-hover:hover::after{transform:scaleX(1);transform-origin:left;}

/* ---------- Page transition ---------- */
body.page-enter{animation:fadeUp .5s var(--ease);}
.page-fade-out{opacity:0;transition:opacity .3s var(--ease);}

/* ---------- Loader for lightbox / async ---------- */
.spin{animation:spinSlow 1s linear infinite;}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1!important;transform:none!important;}
  .reveal-lines .line span{transform:none!important;}
}
