/* RG Engine Animation System */
:root{
  --rg-motion-duration:600ms;
  --rg-motion-stagger:90ms;
  --rg-motion-distance:24px;
  --rg-motion-ease:cubic-bezier(.22,1,.36,1);
  --rg-motion-fast:220ms;
}
html[data-rg-motion="off"] *,html[data-rg-motion="off"] *::before,html[data-rg-motion="off"] *::after{
  animation-duration:1ms!important;
  animation-iteration-count:1!important;
  transition-duration:1ms!important;
  scroll-behavior:auto!important;
}
.rg-reveal{
  opacity:0;
  transform:translate3d(0,var(--rg-motion-distance),0);
  transition:
    opacity var(--rg-motion-duration) var(--rg-motion-ease),
    transform var(--rg-motion-duration) var(--rg-motion-ease),
    filter var(--rg-motion-duration) var(--rg-motion-ease);
  transition-delay:var(--rg-motion-delay,0ms);
  will-change:opacity,transform,filter;
}
.rg-reveal[data-rg-effect="fade"]{transform:none}
.rg-reveal[data-rg-effect="fade-down"]{transform:translate3d(0,calc(var(--rg-motion-distance) * -1),0)}
.rg-reveal[data-rg-effect="fade-left"]{transform:translate3d(var(--rg-motion-distance),0,0)}
.rg-reveal[data-rg-effect="fade-right"]{transform:translate3d(calc(var(--rg-motion-distance) * -1),0,0)}
.rg-reveal[data-rg-effect="scale"]{transform:scale(.94)}
.rg-reveal[data-rg-effect="blur"]{transform:none;filter:blur(12px)}
.rg-reveal[data-rg-effect="slide-up"]{transform:translate3d(0,calc(var(--rg-motion-distance) * 1.7),0)}
.rg-reveal[data-rg-effect="slide-down"]{transform:translate3d(0,calc(var(--rg-motion-distance) * -1.7),0)}
.rg-reveal.is-visible{opacity:1;transform:none;filter:none}
.rg-stagger>*{--rg-motion-delay:calc(var(--rg-stagger-index,0) * var(--rg-motion-stagger))}
.rg-hover-lift{transition:transform var(--rg-motion-fast) var(--rg-motion-ease),box-shadow var(--rg-motion-fast) var(--rg-motion-ease)}
.rg-hover-lift:hover{transform:translateY(-4px)}
.rg-page-enter{animation:rg-page-enter var(--rg-motion-duration) var(--rg-motion-ease) both}
.rg-page-leave{animation:rg-page-leave var(--rg-motion-fast) ease both}
@keyframes rg-page-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes rg-page-leave{from{opacity:1}to{opacity:0}}
@media (prefers-reduced-motion:reduce){
  html:not([data-rg-force-motion="on"]) *,html:not([data-rg-force-motion="on"]) *::before,html:not([data-rg-force-motion="on"]) *::after{
    animation-duration:1ms!important;
    animation-iteration-count:1!important;
    transition-duration:1ms!important;
    scroll-behavior:auto!important;
  }
  html:not([data-rg-force-motion="on"]) .rg-reveal{opacity:1!important;transform:none!important;filter:none!important}
}
