.elephanta-effect-target {
	--elephanta-scroll-x: 0px;
	--elephanta-scroll-y: 0px;
	--elephanta-scroll-rotate: 0deg;
	--elephanta-scroll-scale: 1;
	--elephanta-mouse-x: 0px;
	--elephanta-mouse-y: 0px;
	--elephanta-mouse-rotate-x: 0deg;
	--elephanta-mouse-rotate-y: 0deg;
	--elephanta-hover-y: 0px;
	--elephanta-hover-rotate: 0deg;
	--elephanta-hover-scale: 1;
	--elephanta-perspective: 1000px;
	--elephanta-scroll-opacity: 1;
	--elephanta-scroll-blur: 0px;
	backface-visibility: hidden;
	filter: blur(var(--elephanta-scroll-blur));
	opacity: var(--elephanta-scroll-opacity);
	transform:
		perspective(var(--e-con-transform-perspective, 0))
		rotate(var(--e-con-transform-rotateZ, 0))
		rotateX(var(--e-con-transform-rotateX, 0))
		rotateY(var(--e-con-transform-rotateY, 0))
		translate(var(--e-con-transform-translate, 0))
		translateX(var(--e-con-transform-translateX, 0))
		translateY(var(--e-con-transform-translateY, 0))
		scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1))))
		scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1))))
		skewX(var(--e-con-transform-skewX, 0))
		skewY(var(--e-con-transform-skewY, 0))
		perspective(var(--e-transform-perspective, 0))
		rotate(var(--e-transform-rotateZ, 0))
		rotateX(var(--e-transform-rotateX, 0))
		rotateY(var(--e-transform-rotateY, 0))
		translate(var(--e-transform-translate, 0))
		translateX(var(--e-transform-translateX, 0))
		translateY(var(--e-transform-translateY, 0))
		scaleX(calc(var(--e-transform-flipX, 1) * var(--e-transform-scaleX, var(--e-transform-scale, 1))))
		scaleY(calc(var(--e-transform-flipY, 1) * var(--e-transform-scaleY, var(--e-transform-scale, 1))))
		skewX(var(--e-transform-skewX, 0))
		skewY(var(--e-transform-skewY, 0))
		perspective(var(--elephanta-perspective))
		translate3d(
			calc(var(--elephanta-scroll-x) + var(--elephanta-mouse-x)),
			calc(var(--elephanta-scroll-y) + var(--elephanta-mouse-y) + var(--elephanta-hover-y)),
			0
		)
		rotateX(var(--elephanta-mouse-rotate-x))
		rotateY(var(--elephanta-mouse-rotate-y))
		rotateZ(calc(var(--elephanta-scroll-rotate) + var(--elephanta-hover-rotate)))
		scale(var(--elephanta-scroll-scale))
		scale(var(--elephanta-hover-scale));
	transform-origin: var(--elephanta-transform-origin, center center);
	will-change: transform, opacity, filter;
}

.elephanta-advanced-enabled:hover > .elephanta-effect-target,
.elephanta-advanced-enabled:hover.elephanta-effect-target,
.elephanta-advanced-enabled:hover .elephanta-effect-target[data-elephanta-inner-target="yes"] {
	--elephanta-hover-y: var(--elephanta-hover-lift, 0px);
	--elephanta-hover-rotate: var(--elephanta-hover-rotation, 0deg);
	--elephanta-hover-scale: var(--elephanta-hover-scale-active, 1);
}

.elephanta-sticky-active {
	position: sticky !important;
	z-index: var(--elephanta-sticky-z, 10);
}

.elephanta-sticky-top {
	top: var(--elephanta-sticky-offset, 0px);
}

.elephanta-sticky-bottom {
	bottom: var(--elephanta-sticky-offset, 0px);
}

.elephanta-reveal-pending {
	opacity: 0;
	transition-property: opacity, translate, scale, rotate;
	transition-duration: var(--elephanta-reveal-duration, 700ms);
	transition-delay: var(--elephanta-reveal-delay, 0ms);
	transition-timing-function: cubic-bezier(.2, .75, .25, 1);
}

.elephanta-reveal-pending.elephanta-reveal-slide-up { translate: 0 40px; }
.elephanta-reveal-pending.elephanta-reveal-slide-down { translate: 0 -40px; }
.elephanta-reveal-pending.elephanta-reveal-slide-left { translate: 40px 0; }
.elephanta-reveal-pending.elephanta-reveal-slide-right { translate: -40px 0; }
.elephanta-reveal-pending.elephanta-reveal-zoom-in { scale: .82; }
.elephanta-reveal-pending.elephanta-reveal-zoom-out { scale: 1.18; }
.elephanta-reveal-pending.elephanta-reveal-rotate-in { rotate: -6deg; scale: .94; }

.elephanta-reveal-visible {
	opacity: 1;
	translate: 0 0;
	scale: 1;
	rotate: 0deg;
}

@media (prefers-reduced-motion: reduce) {
	.elephanta-effect-target {
		transition-duration: .01ms !important;
	}

	.elephanta-reveal-pending {
		opacity: 1;
		translate: none;
		scale: 1;
		rotate: none;
		transition: none;
	}
}
