/* Scroll-reveal utility, paired with assets/js/animations.js. */
.pf-reveal {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 350ms cubic-bezier(0.22, 1, 0.36, 1), transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.pf-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Staggered entrance for grid/rail items so a row doesn't pop in as one flat
   block — each successive card lands slightly after the one before it. */
.pf-product-grid > li.pf-reveal:nth-child(1),
.pf-slider__track > li.pf-reveal:nth-child(1),
.category-rail > a.pf-reveal:nth-child(1) { transition-delay: 0ms; }

.pf-product-grid > li.pf-reveal:nth-child(2),
.pf-slider__track > li.pf-reveal:nth-child(2),
.category-rail > a.pf-reveal:nth-child(2) { transition-delay: 60ms; }

.pf-product-grid > li.pf-reveal:nth-child(3),
.pf-slider__track > li.pf-reveal:nth-child(3),
.category-rail > a.pf-reveal:nth-child(3) { transition-delay: 120ms; }

.pf-product-grid > li.pf-reveal:nth-child(4),
.pf-slider__track > li.pf-reveal:nth-child(4),
.category-rail > a.pf-reveal:nth-child(4) { transition-delay: 180ms; }

.pf-product-grid > li.pf-reveal:nth-child(n+5),
.pf-slider__track > li.pf-reveal:nth-child(n+5),
.category-rail > a.pf-reveal:nth-child(n+5) { transition-delay: 220ms; }

@media (prefers-reduced-motion: reduce) {
    .pf-reveal { opacity: 1; transform: none; transition: none; }
}
