/* ---------- Pearl Education: scroll reveals (see guide-motion.js) ----------
   The hidden state applies instantly; only the reveal (.is-in) is animated. */

/* Rise: headings, fact boxes, tables, galleries, reels, FAQ */
html.yens-motion .yens-gm--rise {
	opacity: 0;
	transform: translate3d(0, 22px, 0);
}

/* Slide: buyer's notes come in from the left */
html.yens-motion .yens-gm--slide {
	opacity: 0;
	transform: translate3d(-18px, 0, 0);
}

/* Photo: fades in while the image settles from a slight zoom */
html.yens-motion .yens-gm--photo {
	opacity: 0;
	overflow: hidden;
}

html.yens-motion .yens-gm--photo img {
	transform: scale(1.06);
}

html.yens-motion .yens-gm.is-in {
	opacity: 1;
	transform: none;
	transition: opacity 0.9s var(--yens-ease-out, cubic-bezier(0.22, 1, 0.36, 1)), transform 1s var(--yens-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}

html.yens-motion .yens-gm--photo.is-in img {
	transform: none;
	transition: transform 1.6s var(--yens-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}

/* Cascades: rows, facts, gallery photos, reels, FAQ items follow one another */
html.yens-motion .yens-gm--cascade .yens-gm-kid {
	opacity: 0;
}

html.yens-motion .yens-gm--cascade .yens-gm-kid:not(tr) {
	transform: translate3d(0, 10px, 0);
}

html.yens-motion .yens-gm--cascade.is-in .yens-gm-kid {
	opacity: 1;
	transform: none;
	transition: opacity 0.6s ease, transform 0.7s var(--yens-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
	transition-delay: calc(0.18s + var(--yens-gm-i, 0) * 0.07s);
}

@media (prefers-reduced-motion: reduce) {
	html.yens-motion .yens-gm,
	html.yens-motion .yens-gm img,
	html.yens-motion .yens-gm .yens-gm-kid {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
