/* =====================================================
   ANIMACIONES — respeta prefers-reduced-motion (al final
   del archivo se desactivan todas si el usuario lo pidió).
===================================================== */

@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes revealUp{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
@keyframes popIn{0%{opacity:0;transform:scale(.9) translateY(16px);}100%{opacity:1;transform:scale(1) translateY(0);}}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}
@keyframes pulseGlow{0%,100%{opacity:.16;transform:scale(1);}50%{opacity:.3;transform:scale(1.08);}}
@keyframes gradientShift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(240,192,48,.55);}70%{box-shadow:0 0 0 16px rgba(240,192,48,0);}100%{box-shadow:0 0 0 0 rgba(240,192,48,0);}}
@keyframes wordUp{from{opacity:0;transform:translateY(1em) rotate(3deg);}to{opacity:1;transform:translateY(0) rotate(0);}}

.reveal{animation:revealUp .7s cubic-bezier(.2,.7,.2,1) both;}
.reveal-observe.in-view{animation:popIn .7s cubic-bezier(.2,.7,.2,1) both;}
.services-grid .reveal-observe.in-view:nth-child(1){animation-delay:0s;}
.services-grid .reveal-observe.in-view:nth-child(2){animation-delay:.08s;}
.services-grid .reveal-observe.in-view:nth-child(3){animation-delay:.16s;}
.services-grid .reveal-observe.in-view:nth-child(4){animation-delay:.24s;}
.services-grid .reveal-observe.in-view:nth-child(5){animation-delay:.32s;}
.services-grid .reveal-observe.in-view:nth-child(6){animation-delay:.4s;}
.services-grid .reveal-observe.in-view:nth-child(7){animation-delay:.48s;}
.services-grid .reveal-observe.in-view:nth-child(8){animation-delay:.56s;}

.hero-word{display:inline-block;opacity:0;animation:wordUp .7s cubic-bezier(.2,.7,.2,1) both;}

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