/* Homepage reveal motion: animate the content pieces, not entire tall sections. */
body.vv10-home-motion-ready #root .vv10-home-motion-reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(.985);
  transition-property: opacity, transform;
  transition-duration: 640ms;
  transition-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: var(--vv10-motion-delay, 0ms);
}

body.vv10-home-motion-ready #root .vv10-home-motion-reveal.is-motion-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@media screen and (max-width: 768px) {
  body.vv10-home-motion-ready #root .vv10-home-motion-reveal {
    transform: translate3d(0, 18px, 0) scale(.99);
    transition-duration: 620ms;
  }
}

/* Preserve small, quick hover/focus feedback after scroll reveal completes. */
@media (hover: hover) and (pointer: fine) {
  body.vv10-home-motion-ready #root .vv10-home-motion-reveal.is-motion-visible:is(
    .tpm-portal-entry__item,
    .tpm-portal-introduce__card,
    .tpm-portal-capability__card.is-active,
    .tpm-portal-product__card,
    .tpm-portal-guide__card,
    .tpm-portal-solution__product-item
  ):hover {
    transform: translate3d(0, -2px, 0) scale(1);
    transition-duration: 220ms;
    transition-delay: 0ms;
  }
}

body.vv10-home-motion-ready #root .vv10-home-motion-reveal.is-motion-visible:is(
  .tpm-portal-entry__item,
  .tpm-portal-introduce__card,
  .tpm-portal-capability__card.is-active,
  .tpm-portal-product__card,
  .tpm-portal-guide__card,
  .tpm-portal-solution__product-item
):is(:focus-visible, :focus-within) {
  transform: translate3d(0, -2px, 0) scale(1);
  transition-duration: 220ms;
  transition-delay: 0ms;
}

@media (prefers-reduced-motion: reduce) {
  body.vv10-home-motion-ready #root .vv10-home-motion-reveal,
  body.vv10-home-motion-ready #root .vv10-home-motion-reveal.is-motion-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  #root .tpm-portal-entry__item,
  #root .tpm-portal-introduce__card,
  #root .tpm-portal-capability__card.is-active,
  #root .tpm-portal-product__card,
  #root .tpm-portal-guide__card,
  #root .tpm-portal-solution__product-item {
    transition: none;
    transform: none;
  }
}


/* Larger homepage media fades only after its lazy-loaded image is ready and near view. */
body.vv10-home-motion-ready #root img.vv10-home-motion-image {
  opacity: 0;
  transform: translate3d(0, 50px, 0) scale(.92);
  transition: opacity 900ms cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.vv10-home-motion-ready #root img.vv10-home-motion-image.is-motion-image-loaded.is-motion-image-in-view.is-motion-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@media screen and (max-width: 768px) {
  body.vv10-home-motion-ready #root img.vv10-home-motion-image {
    transform: translate3d(0, 32px, 0) scale(.94);
    transition-duration: 760ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.vv10-home-motion-ready #root img.vv10-home-motion-image,
  body.vv10-home-motion-ready #root img.vv10-home-motion-image.is-motion-image-loaded.is-motion-image-in-view.is-motion-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
