/* Each effect is an opt-in native block style. No page content starts hidden. */
.is-style-psc-image-zoom {
	overflow: hidden;
}

.is-style-psc-image-zoom:focus-within {
	/* Do not clip or replace the theme's two-color keyboard focus indicator. */
	overflow: visible;
}

.is-style-psc-link-underline a[href]:not(.wp-element-button):not(:has(img, svg)) {
	background-image: linear-gradient(currentColor, currentColor);
	background-position: left bottom;
	background-repeat: no-repeat;
	background-size: 0 1px;
	/* Keep existing text decoration and focus outlines for link recognition. */
}

.is-style-psc-link-underline a[href]:not(.wp-element-button):not(:has(img, svg)):focus-visible {
	background-size: 100% 1px;
}

@media (hover: hover) and (pointer: fine) {
	.is-style-psc-link-underline a[href]:not(.wp-element-button):not(:has(img, svg)):hover {
		background-size: 100% 1px;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.is-style-psc-reveal.psc-is-revealing {
		animation: psc-block-reveal 0.9s ease-out;
	}

	@keyframes psc-block-reveal {
		/* Keep authored text contrast intact throughout the entrance. */
		from { translate: 0 40px; }
		to { translate: 0 0; }
	}

	.is-style-psc-link-underline a[href]:not(.wp-element-button):not(:has(img, svg)) {
		transition: background-size 0.25s ease;
	}

	.is-style-psc-button-lift .wp-block-button__link {
		transition: translate 0.18s ease;
	}

	.is-style-psc-button-lift .wp-block-button__link:focus-visible {
		translate: 0 -2px;
	}

	.is-style-psc-image-zoom img {
		transition: transform 0.95s cubic-bezier(0.4, 0, 0.2, 1);
		transform-origin: center;
	}

	.is-style-psc-image-zoom:focus-within img {
		transform: scale(1.03);
	}

	@media (hover: hover) and (pointer: fine) {
		.is-style-psc-button-lift .wp-block-button__link:hover { translate: 0 -2px; }
		.is-style-psc-button-lift .wp-block-button__link:active { translate: 0 1px; }
		.is-style-psc-image-zoom:hover img { transform: scale(1.03); }
	}
}

/* The block editor always exposes stationary, fully visible editable content. */
.editor-styles-wrapper .is-style-psc-image-zoom {
	overflow: visible;
}

.editor-styles-wrapper .is-style-psc-reveal,
.editor-styles-wrapper .is-style-psc-button-lift .wp-block-button__link,
.editor-styles-wrapper .is-style-psc-image-zoom img {
	animation: none !important;
	transition: none !important;
	translate: none !important;
	transform: none !important;
	opacity: 1 !important;
}

#psc-reading-progress {
	position: fixed;
	inset-inline: 0;
	top: 0;
	height: 4px;
	z-index: 998;
	background: rgb(0 32 92 / 10%);
	pointer-events: none;
	contain: layout paint;
}

#psc-reading-progress[hidden] { display: none; }

#psc-reading-progress > span {
	display: block;
	height: 100%;
	background: var(--wp--preset--color--psc-green, #036636);
	transform: scaleX(0);
	transform-origin: left center;
	/* Progress follows position directly, with no extra motion or live alerts. */
}

[dir="rtl"] #psc-reading-progress > span { transform-origin: right center; }

@media (prefers-reduced-motion: reduce) {
	.is-style-psc-reveal.psc-is-revealing,
	.is-style-psc-button-lift .wp-block-button__link,
	.is-style-psc-image-zoom img,
	.is-style-psc-link-underline a[href] {
		animation: none !important;
		transition: none !important;
		translate: none !important;
	}
	.is-style-psc-image-zoom img { transform: none !important; }
}

@media print {
	#psc-reading-progress { display: none !important; }
	.is-style-psc-reveal { animation: none !important; opacity: 1 !important; translate: none !important; }
	.is-style-psc-image-zoom img { transform: none !important; }
}
