/* Opt-in C27 blocks. No start state exists without successful JS initialization. */
@media (prefers-reduced-motion: no-preference) {
	html.cc-motion-ready [data-cc-block="blur-in"] { transition: filter 1s ease, opacity 1s ease; }
	html.cc-motion-ready [data-cc-block="blur-in"]:not(.cc-fx-in) { filter: blur(12px); opacity: .25; }
	html.cc-motion-ready [data-cc-block="wipe"], html.cc-motion-ready [data-cc-block="band-wipe"] { transition: clip-path 1.2s cubic-bezier(.22,1,.36,1); }
	html.cc-motion-ready [data-cc-block="wipe"]:not(.cc-fx-in), html.cc-motion-ready [data-cc-block="band-wipe"]:not(.cc-fx-in) { clip-path: inset(0 50%); }
	html.cc-motion-ready [data-cc-block="wipe"][data-cc-dir="top"]:not(.cc-fx-in), html.cc-motion-ready [data-cc-block="band-wipe"][data-cc-dir="top"]:not(.cc-fx-in) { clip-path: inset(0 0 100%); }
	html.cc-motion-ready [data-cc-block="wipe"].cc-fx-in, html.cc-motion-ready [data-cc-block="band-wipe"].cc-fx-in { clip-path: inset(0); }
	html.cc-motion-ready [data-cc-block="draw"] .cc-fx-stroke, html.cc-motion-ready [data-cc-block="draw"].cc-fx-stroke { stroke-dasharray: var(--cc-length); stroke-dashoffset: var(--cc-length); transition: stroke-dashoffset 1.6s ease; }
	html.cc-motion-ready [data-cc-block="draw"].cc-fx-in .cc-fx-stroke, html.cc-motion-ready [data-cc-block="draw"].cc-fx-in.cc-fx-stroke { stroke-dashoffset: 0; }
	/* A photo-sized dot mask expands until neighboring circles meet, revealing the original photo. */
	html.cc-motion-ready [data-cc-block="halftone"] .cc-fx-photo, html.cc-motion-ready [data-cc-block="halftone"].cc-fx-photo { animation: none; }
	html.cc-motion-ready [data-cc-block="halftone"]:not(.cc-fx-in) .cc-fx-photo, html.cc-motion-ready [data-cc-block="halftone"].cc-fx-photo:not(.cc-fx-in) { mask-image: radial-gradient(circle, #000 28%, transparent 30%); mask-size: 8px 8px; filter: grayscale(1); }
	html.cc-motion-ready [data-cc-block="halftone"].cc-fx-in .cc-fx-photo, html.cc-motion-ready [data-cc-block="halftone"].cc-fx-in.cc-fx-photo { animation: cc-fx-halftone 1.1s steps(12) both; }
	@keyframes cc-fx-halftone {
		0% { mask-image: radial-gradient(circle, #000 28%, transparent 30%); mask-size: 8px 8px; filter: grayscale(1); }
		35% { mask-image: radial-gradient(circle, #000 48%, transparent 50%); mask-size: 6px 6px; filter: grayscale(.6); }
		70% { mask-image: radial-gradient(circle, #000 65%, transparent 67%); mask-size: 4px 4px; filter: grayscale(.2); }
		100% { mask-image: none; filter: none; }
	}
}
html.cc-motion-ready [data-cc-block="scroll-zoom"], html.cc-motion-ready [data-cc-block="parallax"] { overflow: clip; }
html.cc-motion-ready [data-cc-block="dots"], html.cc-motion-ready [data-cc-block="tilt"] { position: relative; isolation: isolate; }
.cc-fx-dots { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
	html.cc-motion-ready [data-cc-block="word-fill"] { display: block; min-height: 180vh; }
	.cc-fx-pin { display: block; position: sticky; top: 12vh; padding-block: 8vh; }
	.cc-fx-pin > span { opacity: .35; transition: opacity .15s; }
	.cc-fx-pin > .cc-fx-filled { opacity: 1; }
}
@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.cc-fx-light { position: absolute; inset: 0; border-radius: inherit; opacity: 0; pointer-events: none; background: radial-gradient(circle at var(--cc-light-x, 50%) var(--cc-light-y, 50%), #fff6, transparent 60%); transition: opacity .2s; }
	.cc-fx-hot > .cc-fx-light { opacity: 1; }
	.cc-fx-preview { position: fixed; width: 200px; height: 160px; object-fit: cover; pointer-events: none; z-index: 1000; visibility: hidden; }
	.cc-fx-preview.cc-fx-show { visibility: visible; }
}
@media (max-width: 767px) {
	[data-cc-block="blur-in"], [data-cc-block="wipe"], [data-cc-block="band-wipe"] { transition-duration: .55s !important; }
}
