.csm-stage {
	--csm-perspective: 1200px;
	position: relative;
	display: flex;
	width: 100%;
	isolation: isolate;
	perspective: var(--csm-perspective);
	contain: layout paint style;
}

.csm-stage__camera {
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
	pointer-events: none;
	will-change: transform;
}

.csm-object {
	position: absolute;
	inset-inline-start: 0;
	top: 0;
	width: var(--csm-width, 34vw);
	max-width: none;
	margin: 0;
	transform-origin: 50% 50%;
	transform-style: preserve-3d;
	backface-visibility: hidden;
	will-change: transform;
	pointer-events: none;
}

.csm-object__image {
	--csm-base-blur: 0px;
	--csm-motion-blur: 0px;
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	object-fit: var(--csm-fit, contain);
	filter: blur(calc(var(--csm-base-blur) + var(--csm-motion-blur)));
	transform: translateZ(0.01px);
	backface-visibility: hidden;
	user-select: none;
}

.csm-object__glow {
	position: absolute;
	inset: 12%;
	z-index: -1;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(255 255 255 / 38%), rgb(125 170 255 / 12%) 45%, transparent 72%);
	filter: blur(28px);
	transform: translateZ(-1px) scale(1.12);
}

.csm-object__reflection {
	position: absolute;
	top: 100%;
	inset-inline: 0;
	height: 34%;
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% auto;
	opacity: 0.18;
	filter: blur(2px);
	mask-image: linear-gradient(to bottom, rgb(0 0 0 / 50%), transparent);
	transform: scaleY(-1) translateY(100%);
	transform-origin: top;
}

.csm-stage--static {
	min-height: auto !important;
	overflow: visible !important;
}

.csm-stage--static .csm-stage__camera {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.csm-stage--static .csm-object {
	position: relative;
	transform: none !important;
}

[dir="rtl"] .csm-stage,
.rtl .csm-stage {
	direction: rtl;
}

@media (prefers-reduced-motion: reduce) {
	.csm-object,
	.csm-stage__camera {
		transition: none !important;
	}
}

@media (max-width: 767px) {
	.csm-object {
		width: min(var(--csm-width, 70vw), 90vw);
	}
}

