/* Reveal base */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
[data-reveal].is-in{opacity:1;transform:translateY(0)}
.hero__title .line[data-reveal]{transform:translateY(105%);opacity:1}
.hero__title .line.is-in{transform:translateY(0)}

/* Fallback: if GSAP missing, ensure content eventually visible */
.no-js-anim [data-reveal]{opacity:1;transform:none}
.no-js-anim .hero__title .line[data-reveal]{transform:none}

/* Card entrance */
.service-card,.why__feature,.process__step,.faq__item,.stat{opacity:0;transform:translateY(24px)}
.is-in+.service-card,.service-card.is-in{opacity:1;transform:translateY(0)}
.services__grid.is-in .service-card,.why__features.is-in .why__feature,.process__grid.is-in .process__step,.faq__list.is-in .faq__item,.stats__grid.is-in .stat{opacity:1;transform:translateY(0)}
.service-card,.why__feature,.process__step,.faq__item,.stat{transition:opacity .8s var(--ease-out),transform .8s var(--ease-out),border-color .5s var(--ease),background .5s var(--ease)}

/* Ensure nothing stays hidden if JS fails entirely */
@media (scripting: none){
  [data-reveal],.service-card,.why__feature,.process__step,.faq__item,.stat{opacity:1!important;transform:none!important}
}
