/* ==========================================================
   TASA TECHNOLOGIES — EVERY COMPONENT MOTION SYSTEM v2
   Hero load choreography + scroll reveals + image motion +
   card/button/icon micro interactions. Layout-safe & responsive.
   ========================================================== */

/* New engine owns captured Elementor entrances. */
.offline-js .offline-anim.tasa-motion-node,
.offline-js .offline-anim.offline-anim-done:not(.tasa-hero-piece):not(.tasa-hero-stage){visibility:visible!important;animation:none!important}

/* ---------- Hero: unmistakable page-load motion ---------- */
@keyframes tasaHeroStageIn{0%{opacity:.15;transform:scale(1.025)}100%{opacity:1;transform:scale(1)}}
@keyframes tasaHeroUp{0%{opacity:0;transform:translate3d(0,48px,0)}100%{opacity:1;transform:none}}
@keyframes tasaHeroLeft{0%{opacity:0;transform:translate3d(-70px,0,0)}100%{opacity:1;transform:none}}
@keyframes tasaHeroImageLeft{0%{opacity:0;transform:translate3d(-70px,20px,0) scale(.92);filter:blur(5px)}100%{opacity:1;transform:none;filter:none}}
@keyframes tasaHeroImageRight{0%{opacity:0;transform:translate3d(70px,20px,0) scale(.92);filter:blur(5px)}100%{opacity:1;transform:none;filter:none}}
@keyframes tasaHeroPop{0%{opacity:0;transform:scale(.72)}72%{opacity:1;transform:scale(1.045)}100%{opacity:1;transform:scale(1)}}
@keyframes tasaImageFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-5px,0)}}

.tasa-motion-v2 .tasa-hero-stage{opacity:1;transform:none;transform-origin:center center;will-change:opacity,transform}
.tasa-motion-start .tasa-hero-stage{animation:tasaHeroStageIn .9s cubic-bezier(.2,.72,.22,1) both}
.tasa-motion-v2 .tasa-hero-piece{opacity:1!important;visibility:visible!important;will-change:opacity,transform,filter}
.tasa-motion-start .tasa-hero-piece{opacity:1!important;visibility:visible!important}
.tasa-motion-start .tasa-hero-piece.hero-up{animation:tasaHeroUp .78s var(--hero-delay,100ms) cubic-bezier(.2,.72,.22,1) both}
.tasa-motion-start .tasa-hero-piece.hero-left{animation:tasaHeroLeft .82s var(--hero-delay,100ms) cubic-bezier(.2,.72,.22,1) both}
.tasa-motion-start .tasa-hero-piece.hero-image-left{animation:tasaHeroImageLeft .95s var(--hero-delay,120ms) cubic-bezier(.2,.72,.22,1) both}
.tasa-motion-start .tasa-hero-piece.hero-image-right{animation:tasaHeroImageRight .95s var(--hero-delay,120ms) cubic-bezier(.2,.72,.22,1) both}
.tasa-motion-start .tasa-hero-piece.hero-pop{animation:tasaHeroPop .68s var(--hero-delay,140ms) cubic-bezier(.2,.75,.22,1) both}

/* Header components visibly load one by one. */
@keyframes tasaHeaderPiece{0%{opacity:0;transform:translate3d(0,-18px,0) scale(.96)}100%{opacity:1;transform:none}}
.tasa-motion-v2 .tasa-header-piece{opacity:0}
.tasa-motion-start .tasa-header-piece{animation:tasaHeaderPiece .55s var(--header-delay,80ms) ease-out both}

/* ---------- Core scroll reveal effects ---------- */
.tasa-motion-node{
  opacity:0;
  transition-property:opacity,transform,filter,clip-path;
  transition-duration:.82s;
  transition-timing-function:cubic-bezier(.18,.72,.24,1);
  transition-delay:var(--tasa-delay,0ms);
  will-change:opacity,transform,filter;
  backface-visibility:hidden;
  transform-origin:center center;
}
.tasa-fade-up{transform:translate3d(0,52px,0)}
.tasa-fade-down{transform:translate3d(0,-46px,0)}
.tasa-fade-left{transform:translate3d(-66px,0,0)}
.tasa-fade-right{transform:translate3d(66px,0,0)}
.tasa-zoom{transform:scale(.88);filter:blur(2px)}
.tasa-soft{transform:translate3d(0,30px,0) scale(.97);filter:blur(2px)}
.tasa-fade{transform:none}
.tasa-tilt{transform:translate3d(0,30px,0) rotate(-4deg) scale(.92)}
.tasa-image-left{transform:translate3d(-72px,0,0) scale(.94);filter:blur(3px)}
.tasa-image-right{transform:translate3d(72px,0,0) scale(.94);filter:blur(3px)}
.tasa-image-zoom{transform:translate3d(0,26px,0) scale(.88);filter:blur(3px)}
.tasa-card-left{transform:translate3d(-58px,34px,0) scale(.96)}
.tasa-card-right{transform:translate3d(58px,34px,0) scale(.96)}
.tasa-section-left{transform:translate3d(-38px,25px,0);filter:blur(1px)}
.tasa-section-right{transform:translate3d(38px,25px,0);filter:blur(1px)}
.tasa-motion-node.is-revealed{opacity:1;transform:none;filter:none;clip-path:none;will-change:auto}
.tasa-motion-node[data-tasa-delay="1"]{--tasa-delay:55ms}
.tasa-motion-node[data-tasa-delay="2"]{--tasa-delay:110ms}
.tasa-motion-node[data-tasa-delay="3"]{--tasa-delay:165ms}
.tasa-motion-node[data-tasa-delay="4"]{--tasa-delay:220ms}
.tasa-motion-node[data-tasa-delay="5"]{--tasa-delay:275ms}
.tasa-motion-node[data-tasa-delay="6"]{--tasa-delay:330ms}

/* ---------- Every image has independent motion ---------- */
.tasa-motion-image{
  transition:transform .58s cubic-bezier(.18,.72,.24,1),filter .42s ease,opacity .42s ease!important;
  backface-visibility:hidden;
}
@media (hover:hover) and (pointer:fine){
  .tasa-motion-image:hover{transform:translate3d(0,-4px,0) scale(1.025);filter:saturate(1.04)}
  .mp-team-image:hover .tasa-motion-image,.mp-industry-image:hover .tasa-motion-image,.elementor-widget-image:hover .tasa-motion-image{transform:translate3d(0,-5px,0) scale(1.035)}
}

/* ---------- Cards / buttons / links / icons ---------- */
.tasa-motion-card{transition:transform .34s cubic-bezier(.18,.72,.24,1),box-shadow .34s ease,border-color .28s ease!important;backface-visibility:hidden}
@media (hover:hover) and (pointer:fine){
  .tasa-motion-card:hover{transform:translate3d(0,-9px,0) scale(1.012);box-shadow:0 20px 42px rgba(0,35,102,.14)}
}
.tasa-motion-button{transition:transform .24s ease,box-shadow .24s ease,filter .24s ease!important;backface-visibility:hidden}
@media (hover:hover) and (pointer:fine){
  .tasa-motion-button:hover{transform:translate3d(0,-3px,0) scale(1.025);filter:brightness(1.045)}
  .tasa-motion-button:active{transform:scale(.97)}
}
.tasa-motion-button:focus-visible{outline:3px solid rgba(59,87,136,.3);outline-offset:3px}

/* FAQ / inputs are motion-aware without layout shifts. */
.mp-faq-item{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease!important}
@media (hover:hover) and (pointer:fine){.mp-faq-item:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(0,35,102,.09)}}
input,textarea,select{transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease,transform .22s ease!important}
input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px rgba(0,35,102,.09);transform:translateY(-1px)}

/* Social / tech icon micro motion. */
.tasa-shell-footer-social a,.tasa-shell-social a,.tasa-tech-delivery-icon,.mp-brand-row img,.mp-team-linkedin svg{
  transition:transform .28s ease,box-shadow .28s ease,filter .28s ease!important;
}
@media (hover:hover) and (pointer:fine){
  .tasa-shell-footer-social a:hover,.tasa-shell-social a:hover{transform:translateY(-4px) scale(1.08)}
  .tasa-tech-delivery-item:hover .tasa-tech-delivery-icon,.mp-brand-row>div:hover img,.mp-team-linkedin:hover svg{transform:translateY(-3px) rotate(3deg) scale(1.08)}
}

/* Mobile drawer animation, while preserving clickability. */
@keyframes tasaDrawerIn{0%{opacity:0;transform:translate3d(-24px,0,0)}100%{opacity:1;transform:none}}
@keyframes tasaSubIn{0%{opacity:0;transform:translate3d(0,-10px,0)}100%{opacity:1;transform:none}}
@media (max-width:1024px){
  .tasa-shell-nav.open>a,.tasa-shell-nav.open>.tasa-shell-more{animation:tasaDrawerIn .42s cubic-bezier(.18,.72,.24,1) both}
  .tasa-shell-nav.open>a:nth-child(2){animation-delay:.04s}.tasa-shell-nav.open>a:nth-child(3){animation-delay:.08s}.tasa-shell-nav.open>a:nth-child(4){animation-delay:.12s}.tasa-shell-nav.open>a:nth-child(5){animation-delay:.16s}.tasa-shell-nav.open>a:nth-child(6){animation-delay:.20s}.tasa-shell-nav.open>.tasa-shell-more{animation-delay:.24s}
  .tasa-shell-more.open .tasa-shell-dropdown a{animation:tasaSubIn .34s ease-out both}
  .tasa-shell-more.open .tasa-shell-dropdown a:nth-child(2){animation-delay:.04s}.tasa-shell-more.open .tasa-shell-dropdown a:nth-child(3){animation-delay:.08s}.tasa-shell-more.open .tasa-shell-dropdown a:nth-child(4){animation-delay:.12s}.tasa-shell-more.open .tasa-shell-dropdown a:nth-child(5){animation-delay:.16s}.tasa-shell-more.open .tasa-shell-dropdown a:nth-child(6){animation-delay:.20s}
}

/* ---------- Back to top ---------- */
#tasa-back-to-top{position:fixed;right:24px;bottom:24px;width:50px;height:50px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:#002366;color:#fff;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;z-index:9990;box-shadow:0 12px 30px rgba(0,35,102,.28);opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,20px,0) scale(.86) rotate(-8deg);transition:opacity .28s ease,visibility .28s ease,transform .32s cubic-bezier(.18,.72,.24,1),background-color .2s ease,box-shadow .2s ease}
#tasa-back-to-top svg{width:20px;height:20px;display:block;fill:currentColor}
#tasa-back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}
#tasa-back-to-top:hover,#tasa-back-to-top:focus-visible{background:#06164c;transform:translate3d(0,-4px,0) scale(1.06);box-shadow:0 16px 34px rgba(0,35,102,.36)}
#tasa-back-to-top:focus-visible{outline:3px solid rgba(59,87,136,.35);outline-offset:3px}

/* ---------- Responsive motion tuning ---------- */
@media (max-width:1024px){
  .tasa-motion-node{transition-duration:.68s}
  .tasa-fade-up{transform:translate3d(0,34px,0)}.tasa-fade-down{transform:translate3d(0,-30px,0)}.tasa-fade-left{transform:translate3d(-36px,0,0)}.tasa-fade-right{transform:translate3d(36px,0,0)}
  .tasa-image-left{transform:translate3d(-40px,0,0) scale(.96)}.tasa-image-right{transform:translate3d(40px,0,0) scale(.96)}.tasa-image-zoom{transform:translate3d(0,20px,0) scale(.93)}
  .tasa-card-left{transform:translate3d(-30px,24px,0) scale(.975)}.tasa-card-right{transform:translate3d(30px,24px,0) scale(.975)}
  .tasa-section-left{transform:translate3d(-22px,18px,0)}.tasa-section-right{transform:translate3d(22px,18px,0)}
  .tasa-zoom{transform:scale(.94);filter:blur(1px)}.tasa-soft{transform:translate3d(0,22px,0) scale(.985);filter:blur(1px)}.tasa-tilt{transform:translate3d(0,20px,0) rotate(-2deg) scale(.96)}
  #tasa-back-to-top{display:none!important}
}
@media (max-width:600px){
  .tasa-motion-node{transition-duration:.58s}
  .tasa-fade-up{transform:translate3d(0,26px,0)}.tasa-fade-down{transform:translate3d(0,-22px,0)}.tasa-fade-left{transform:translate3d(-24px,0,0)}.tasa-fade-right{transform:translate3d(24px,0,0)}
  .tasa-image-left{transform:translate3d(-26px,0,0) scale(.97);filter:none}.tasa-image-right{transform:translate3d(26px,0,0) scale(.97);filter:none}.tasa-image-zoom{transform:translate3d(0,16px,0) scale(.95);filter:none}
  .tasa-motion-node[data-tasa-delay="1"]{--tasa-delay:30ms}.tasa-motion-node[data-tasa-delay="2"]{--tasa-delay:60ms}.tasa-motion-node[data-tasa-delay="3"]{--tasa-delay:90ms}.tasa-motion-node[data-tasa-delay="4"]{--tasa-delay:120ms}.tasa-motion-node[data-tasa-delay="5"]{--tasa-delay:150ms}.tasa-motion-node[data-tasa-delay="6"]{--tasa-delay:180ms}
  .tasa-motion-start .tasa-hero-piece.hero-image-left,.tasa-motion-start .tasa-hero-piece.hero-image-right{animation-duration:.72s}
}

/* Accessibility: never hide content for people requesting reduced motion. */
@media (prefers-reduced-motion:reduce){
  .tasa-motion-node,.tasa-hero-stage,.tasa-hero-piece,.tasa-header-piece,.offline-anim{opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important}
  .tasa-motion-card,.tasa-motion-image,.tasa-motion-button,#tasa-back-to-top,.tasa-shell-footer-social a,.tasa-shell-social a,.tasa-tech-delivery-icon,.mp-brand-row img{transition:none!important;animation:none!important}
}

/* HERO TEXT SAFETY FIX v3: captured offline animation rules can never hide hero copy.
   Keyframes still animate transform/filter while the final copy remains guaranteed visible. */
.tasa-hero-stage h1,.tasa-hero-stage h2,.tasa-hero-stage h3,.tasa-hero-stage h4,.tasa-hero-stage h5,.tasa-hero-stage h6,
.tasa-hero-stage p,.tasa-hero-stage .elementor-heading-title,.tasa-hero-stage .elementor-widget-text-editor{
  visibility:visible!important;
}
