/* Tempest Carousel Background Zoom */

/*
 * v1.0.5:
 * - no injected markup
 * - no slide-level covering layer
 * - animated image sits on the same GenerateBlocks element that originally held the background
 */

.ttcbz-zoom-target {
	position: relative !important;
	overflow: hidden !important;
	isolation: isolate;
	background-color: transparent !important;
}

.ttcbz-zoom-target::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: var(--ttcbz-bg-image, none);
	background-position: var(--ttcbz-bg-position, center center);
	background-repeat: var(--ttcbz-bg-repeat, no-repeat);
	background-size: var(--ttcbz-bg-size, cover);
	transform-origin: center center;
	will-change: transform;
	pointer-events: none;
}

.ttcbz-zoom-target > * {
	position: relative;
	z-index: 1;
}

.ttcbz-zoom-target.ttcbz-odd::after {
	animation: ttcbzZoomIn var(--ttcbz-duration, 12s) ease-in-out infinite alternate;
}

.ttcbz-zoom-target.ttcbz-even::after {
	animation: ttcbzZoomOut var(--ttcbz-duration, 12s) ease-in-out infinite alternate;
}

/* Hide only the original image source after it has been copied. */
.ttcbz-source-hidden {
	background-image: none !important;
}

.ttcbz-source-before-hidden::before {
	background-image: none !important;
}

@keyframes ttcbzZoomIn {
	from { transform: scale(1); }
	to { transform: scale(var(--ttcbz-scale, 1.08)); }
}

@keyframes ttcbzZoomOut {
	from { transform: scale(var(--ttcbz-scale, 1.08)); }
	to { transform: scale(1); }
}
