/*
 * Reform UI v2 — reveal layer.
 *
 * The reference build ships entrance states inline (opacity:0 + blur +
 * translate) and animates them in with JavaScript. We keep those exact inline
 * start states and animate to the resting state here, so the entrance matches
 * without shipping a JS animation framework.
 */

.reform-reveal {
	transition: opacity .75s cubic-bezier(.22, .61, .36, 1),
	            transform .75s cubic-bezier(.22, .61, .36, 1),
	            filter .75s cubic-bezier(.22, .61, .36, 1);
	transition-delay: var(--reform-reveal-delay, 0ms);
	will-change: opacity, transform, filter;
}

.reform-reveal.is-visible {
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
}

/*
 * Safety nets — content must never be permanently invisible.
 * 1. No JavaScript at all (html.reform-js is never added).
 * 2. Reduced-motion users get the resting state immediately.
 */
html:not(.reform-js) .reform-reveal {
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	transition: none !important;
}

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