/* Reveal and hover use separate properties, durations and delays on the same element. */
.im-home.im-home-aos-ready [data-im-reveal]{
 opacity:0;
 translate:0 36px;
 scale:1;
 rotate:none;
 filter:blur(3px);
 transition:
  opacity var(--im-motion-duration,850ms) cubic-bezier(.16,1,.3,1),
  translate var(--im-motion-duration,850ms) cubic-bezier(.16,1,.3,1),
  scale var(--im-motion-duration,850ms) cubic-bezier(.16,1,.3,1),
  rotate var(--im-motion-duration,850ms) cubic-bezier(.16,1,.3,1),
  filter var(--im-motion-duration,850ms) cubic-bezier(.16,1,.3,1),
  clip-path var(--im-motion-duration,850ms) cubic-bezier(.16,1,.3,1),
  transform var(--im-hover-duration,350ms) ease,
  background-color var(--im-hover-duration,350ms) ease,
  border-color var(--im-hover-duration,350ms) ease,
  box-shadow var(--im-hover-duration,350ms) ease,
  color var(--im-hover-duration,350ms) ease;
 transition-delay:0ms;
}
.im-home .im-home-svc{--im-hover-duration:450ms}
.im-home .im-home-tcard{--im-hover-duration:400ms}
.im-home .im-home-crit,.im-home .im-landing-inc,.im-home .im-landing-why,.im-home .im-landing-kpi,.im-home .im-landing-step,.im-about-page .im-about-val{--im-hover-duration:300ms}
.im-home.im-home-aos-ready [data-im-reveal][data-im-reveal]{transition-delay:0ms}
.im-home.im-home-aos-ready [data-aos="im-title"]{translate:0 30px;filter:blur(5px);clip-path:inset(0 0 100% 0);scale:.98}
.im-home.im-home-aos-ready [data-aos="im-slide-left"]{translate:44px 0;filter:blur(3px)}
.im-home.im-home-aos-ready [data-aos="im-slide-right"]{translate:-44px 0;filter:blur(3px)}
.im-home.im-home-aos-ready [data-aos="im-zoom"]{translate:0 20px;scale:.88;filter:blur(2px)}
.im-home.im-home-aos-ready [data-aos="im-flip"]{translate:0 28px;scale:.94;rotate:x -18deg;transform-origin:center top;filter:blur(1px)}
.im-home.im-home-aos-ready .im-home-framework__s6,.im-home.im-home-aos-ready .im-about-fwline{perspective:1200px}
.im-home.im-home-aos-ready [data-im-reveal].im-motion-in{
 opacity:1;translate:0 0;scale:1;rotate:none;filter:blur(0);clip-path:none;
 /* Stagger belongs to the first six reveal properties; hover always responds immediately. */
 transition-delay:var(--im-motion-delay,0ms),var(--im-motion-delay,0ms),var(--im-motion-delay,0ms),var(--im-motion-delay,0ms),var(--im-motion-delay,0ms),var(--im-motion-delay,0ms),0ms,0ms,0ms,0ms,0ms;
}
.im-home.im-home-aos-ready [data-aos="im-title"].im-motion-in{clip-path:inset(-10px -8px -10px -8px)}
/* Keep links/form fields immediately readable when reached using the keyboard. */
.im-home.im-home-aos-ready [data-im-reveal]:focus-within{opacity:1;translate:0 0;scale:1;rotate:none;filter:none;clip-path:none;transition-delay:0ms}

/* TOP 12: real scroll progress per card, independent of the grid and link hover. */
.im-home .im-home-project-motion{display:flex;min-width:0}
.im-home .im-home-project-motion__surface{display:flex;flex:1;min-width:0;width:100%;transform-origin:center center}
.im-home .im-home-project-motion__surface>.im-home-pcard{width:100%;height:100%}
.im-home.im-home-aos-ready .im-home-project-motion__surface{
 transform:translate3d(0,var(--im-project-y,0px),0) scale(var(--im-project-scale,1));
 opacity:var(--im-project-opacity,1);
 transition:transform 80ms linear,opacity 80ms linear;
}
.im-home.im-home-aos-ready .im-home-project-visible .im-home-project-motion__surface{will-change:transform,opacity}
.im-home.im-home-aos-ready .im-home-project-motion:focus-within .im-home-project-motion__surface{transform:none;opacity:1;transition-duration:150ms}
@media(max-width:600px){
 .im-home.im-home-aos-ready [data-aos="im-slide-left"]{translate:22px 0}
 .im-home.im-home-aos-ready [data-aos="im-slide-right"]{translate:-22px 0}
 .im-home.im-home-aos-ready [data-im-reveal].im-motion-in{translate:0 0}
}
@media(prefers-reduced-motion:reduce){
 .im-home [data-im-reveal],.im-home .im-home-project-motion__surface{opacity:1!important;translate:none!important;scale:none!important;rotate:none!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important;will-change:auto!important}
}
