/* Scroll reveal: cards slide up + fade in with stagger */
.pl-scroll-card {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(0.96);
  transform-origin: center center;
  will-change: transform, opacity;
  transition:
    opacity 320ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--pl-scroll-delay, 0ms);
}

.pl-scroll-card.pl-scroll-reveal--inview {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* Scroll reveal: sections fade in gently */
.pl-scroll-section {
  opacity: 0;
  transform: translateY(16px);
  will-change: transform, opacity;
  transition:
    opacity 500ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}

.pl-scroll-section.pl-scroll-reveal--inview {
  opacity: 1;
  transform: translateY(0);
}

/* Reduced motion: show everything immediately */
@media (prefers-reduced-motion: reduce) {
  .pl-scroll-card,
  .pl-scroll-card.pl-scroll-reveal--inview,
  .pl-scroll-section,
  .pl-scroll-section.pl-scroll-reveal--inview {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }
}
