/* Shared project-entry motion for portfolio research pages. */
.has-portfolio-content-motion .module > h1,
.has-portfolio-content-motion .module > .lead,
.has-portfolio-content-motion .section-head,
.has-portfolio-content-motion .content-block,
.has-portfolio-content-motion .review-card,
.has-portfolio-content-motion .portfolio-content-reveal {
  opacity: 0;
  transform: translateY(var(--portfolio-motion-distance-entry));
  will-change: opacity, transform;
}

.has-portfolio-content-motion .module > h1.is-content-visible,
.has-portfolio-content-motion .module > .lead.is-content-visible,
.has-portfolio-content-motion .section-head.is-content-visible,
.has-portfolio-content-motion .content-block.is-content-visible,
.has-portfolio-content-motion .review-card.is-content-visible,
.has-portfolio-content-motion .portfolio-content-reveal.is-content-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--portfolio-motion-duration-entry) var(--portfolio-motion-ease-out-soft),
    transform var(--portfolio-motion-duration-entry) var(--portfolio-motion-ease-out-soft);
  transition-delay: var(--portfolio-content-reveal-delay, 0ms);
}

.has-portfolio-content-motion .portfolio-media-carousel__media {
  opacity: 0;
  will-change: opacity;
}

.has-portfolio-content-motion .portfolio-media-carousel__media.is-media-visible {
  opacity: 1;
  transition: opacity var(--portfolio-motion-duration-lg) var(--portfolio-motion-ease-out-soft);
}

@media (prefers-reduced-motion: reduce) {
  .has-portfolio-content-motion .module > h1,
  .has-portfolio-content-motion .module > h1.is-content-visible,
  .has-portfolio-content-motion .module > .lead,
  .has-portfolio-content-motion .module > .lead.is-content-visible,
  .has-portfolio-content-motion .section-head,
  .has-portfolio-content-motion .section-head.is-content-visible,
  .has-portfolio-content-motion .content-block,
  .has-portfolio-content-motion .content-block.is-content-visible,
  .has-portfolio-content-motion .review-card,
  .has-portfolio-content-motion .review-card.is-content-visible,
  .has-portfolio-content-motion .portfolio-content-reveal,
  .has-portfolio-content-motion .portfolio-content-reveal.is-content-visible,
  .has-portfolio-content-motion .portfolio-media-carousel__media,
  .has-portfolio-content-motion .portfolio-media-carousel__media.is-media-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
