body.acs-cursor-enabled,
body.acs-cursor-enabled * {
	cursor: none !important;
}

.acs-cursor,
.acs-cursor-ring,
.acs-cursor-trail {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 2147483647;
	pointer-events: none;
	transform: translate3d(-999px, -999px, 0);
	will-change: transform, opacity;
}

.acs-cursor {
	width: var(--acs-size, 24px);
	height: var(--acs-size, 24px);
	margin-left: calc(var(--acs-size, 24px) / -2);
	margin-top: calc(var(--acs-size, 24px) / -2);
	opacity: var(--acs-opacity, 1);
	mix-blend-mode: var(--acs-blend, normal);
}

.acs-cursor-ring {
	width: var(--acs-ring-size, 42px);
	height: var(--acs-ring-size, 42px);
	margin-left: calc(var(--acs-ring-size, 42px) / -2);
	margin-top: calc(var(--acs-ring-size, 42px) / -2);
	border: var(--acs-ring-width, 2px) solid var(--acs-accent, #14b8a6);
	border-radius: 999px;
	opacity: 0.72;
	transition: width 160ms ease, height 160ms ease, margin 160ms ease, border-color 160ms ease, opacity 160ms ease;
	mix-blend-mode: var(--acs-blend, normal);
}

.acs-cursor.is-hovering + .acs-cursor-ring,
.acs-cursor-ring.is-hovering {
	width: calc(var(--acs-ring-size, 42px) * var(--acs-hover-scale, 1.35));
	height: calc(var(--acs-ring-size, 42px) * var(--acs-hover-scale, 1.35));
	margin-left: calc(var(--acs-ring-size, 42px) * var(--acs-hover-scale, 1.35) / -2);
	margin-top: calc(var(--acs-ring-size, 42px) * var(--acs-hover-scale, 1.35) / -2);
	opacity: 1;
}

.acs-cursor-trail {
	width: calc(var(--acs-size, 24px) * 0.36);
	height: calc(var(--acs-size, 24px) * 0.36);
	margin-left: calc(var(--acs-size, 24px) * -0.18);
	margin-top: calc(var(--acs-size, 24px) * -0.18);
	border-radius: 999px;
	background: var(--acs-accent, #14b8a6);
	opacity: 0;
}

.acs-shape {
	position: absolute;
	inset: 0;
	color: var(--acs-color, #111827);
	border-radius: 999px;
	background: currentColor;
}

.acs-shape-dot,
.acs-shape-pearl,
.acs-shape-matrix {
	border-radius: 999px;
	background: currentColor;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18), 0 8px 22px rgba(0, 0, 0, 0.18);
}

.acs-shape-pearl {
	background: radial-gradient(circle at 35% 30%, #fff, var(--acs-color, #111827) 58%, var(--acs-accent, #14b8a6));
}

.acs-shape-ring,
.acs-shape-frame,
.acs-shape-target,
.acs-shape-reticle,
.acs-shape-data {
	background: transparent;
	border: max(2px, calc(var(--acs-size, 24px) * 0.08)) solid currentColor;
	border-radius: 999px;
}

.acs-shape-frame,
.acs-shape-soft-square,
.acs-shape-square,
.acs-shape-pixel {
	border-radius: 6px;
}

.acs-shape-square,
.acs-shape-soft-square,
.acs-shape-pixel {
	background: currentColor;
}

.acs-shape-soft-square {
	border-radius: 9px;
	background: color-mix(in srgb, currentColor 78%, transparent);
}

.acs-shape-halo,
.acs-shape-gradient,
.acs-shape-pulse,
.acs-shape-glow,
.acs-shape-aurora {
	border-radius: 999px;
	background: radial-gradient(circle, var(--acs-color, #111827) 0 30%, color-mix(in srgb, var(--acs-accent, #14b8a6) 42%, transparent) 31% 68%, transparent 69%);
	box-shadow: 0 0 22px var(--acs-accent, #14b8a6);
}

.acs-shape-pulse {
	animation: acs-pulse 1.4s ease-in-out infinite;
}

.acs-shape-gradient,
.acs-shape-chrome,
.acs-shape-gold {
	background: linear-gradient(135deg, var(--acs-color, #111827), var(--acs-accent, #14b8a6));
	border-radius: 999px;
}

.acs-shape-gold {
	background: linear-gradient(135deg, #fef3c7, #d97706, #78350f);
}

.acs-shape-chrome {
	background: linear-gradient(135deg, #f8fafc, #64748b 48%, #020617);
}

.acs-shape-cross::before,
.acs-shape-cross::after,
.acs-shape-target::before,
.acs-shape-target::after,
.acs-shape-reticle::before,
.acs-shape-reticle::after,
.acs-shape-thin-line::before,
.acs-shape-node::before,
.acs-shape-data::before,
.acs-shape-data::after {
	content: "";
	position: absolute;
	background: currentColor;
}

.acs-shape-cross,
.acs-shape-target,
.acs-shape-reticle,
.acs-shape-thin-line,
.acs-shape-node,
.acs-shape-data,
.acs-shape-share {
	background: transparent;
}

.acs-shape-cross::before,
.acs-shape-target::before,
.acs-shape-reticle::before {
	top: 50%;
	left: 12%;
	right: 12%;
	height: 2px;
	transform: translateY(-50%);
}

.acs-shape-cross::after,
.acs-shape-target::after,
.acs-shape-reticle::after {
	top: 12%;
	bottom: 12%;
	left: 50%;
	width: 2px;
	transform: translateX(-50%);
}

.acs-shape-arrow,
.acs-shape-arrow-bold,
.acs-shape-arrow-outline,
.acs-shape-compass {
	clip-path: polygon(10% 0, 86% 50%, 50% 58%, 66% 100%, 48% 100%, 33% 63%, 10% 78%);
	background: currentColor;
	transform: rotate(-10deg);
}

.acs-shape-arrow-outline {
	background: transparent;
	border: 3px solid currentColor;
	clip-path: polygon(8% 0, 92% 51%, 54% 62%, 70% 100%, 44% 100%, 29% 68%, 6% 82%);
}

.acs-shape-arrow-bold {
	transform: rotate(-10deg) scale(1.12);
}

.acs-shape-hand,
.acs-shape-like {
	border-radius: 45% 45% 50% 50%;
	background: currentColor;
	transform: rotate(-16deg);
}

.acs-shape-hand::before,
.acs-shape-like::before {
	content: "";
	position: absolute;
	top: -26%;
	left: 34%;
	width: 30%;
	height: 48%;
	border-radius: 999px;
	background: currentColor;
}

.acs-shape-pen,
.acs-shape-brush,
.acs-shape-laser,
.acs-shape-caret,
.acs-shape-thin-line {
	width: 28%;
	left: 36%;
	border-radius: 999px;
	background: currentColor;
	transform: rotate(42deg);
}

.acs-shape-orbit,
.acs-shape-magnetic,
.acs-shape-lens {
	background: transparent;
	border: 2px solid currentColor;
	box-shadow: 0 0 0 calc(var(--acs-size, 24px) * 0.24) color-mix(in srgb, var(--acs-accent, #14b8a6) 20%, transparent);
}

.acs-shape-orbit::after,
.acs-shape-magnetic::after,
.acs-shape-lens::after {
	content: "";
	position: absolute;
	top: -12%;
	right: 8%;
	width: 30%;
	height: 30%;
	border-radius: 999px;
	background: var(--acs-accent, #14b8a6);
}

.acs-shape-brush {
	border-radius: 999px 999px 45% 45%;
}

.acs-shape-laser {
	background: var(--acs-accent, #14b8a6);
	box-shadow: 0 0 20px var(--acs-accent, #14b8a6);
}

.acs-shape-drop,
.acs-shape-liquid,
.acs-shape-bubble {
	border-radius: 55% 45% 60% 40%;
	background: color-mix(in srgb, var(--acs-color, #111827) 82%, var(--acs-accent, #14b8a6));
	transform: rotate(28deg);
}

.acs-shape-bubble {
	background: color-mix(in srgb, var(--acs-accent, #14b8a6) 35%, transparent);
	border: 2px solid var(--acs-accent, #14b8a6);
}

.acs-shape-sketch {
	border: 2px dashed currentColor;
	border-radius: 45% 55% 48% 52%;
}

.acs-shape-splash,
.acs-shape-burst {
	background: var(--acs-accent, #14b8a6);
	clip-path: polygon(50% 0, 59% 32%, 94% 18%, 68% 46%, 100% 58%, 64% 63%, 74% 100%, 50% 70%, 26% 100%, 36% 63%, 0 58%, 32% 46%, 6% 18%, 41% 32%);
}

.acs-shape-star {
	background: currentColor;
	clip-path: polygon(50% 0, 62% 35%, 99% 35%, 69% 56%, 80% 92%, 50% 70%, 20% 92%, 31% 56%, 1% 35%, 38% 35%);
}

.acs-shape-smile {
	border-radius: 999px;
	background: var(--acs-accent, #14b8a6);
}

.acs-shape-smile::before {
	content: "";
	position: absolute;
	inset: 25% 22% 30%;
	border-bottom: 3px solid currentColor;
	border-radius: 0 0 999px 999px;
}

.acs-shape-heart {
	background: currentColor;
	clip-path: polygon(50% 88%, 12% 52%, 8% 30%, 20% 12%, 40% 14%, 50% 28%, 60% 14%, 80% 12%, 92% 30%, 88% 52%);
}

.acs-shape-chat {
	border-radius: 999px;
	background: currentColor;
}

.acs-shape-chat::after {
	content: "";
	position: absolute;
	right: 10%;
	bottom: -8%;
	border: 7px solid transparent;
	border-top-color: currentColor;
	border-left-color: currentColor;
}

.acs-shape-share::before,
.acs-shape-share::after,
.acs-shape-node::after {
	content: "";
	position: absolute;
	width: 32%;
	height: 32%;
	border-radius: 999px;
	background: currentColor;
	box-shadow: calc(var(--acs-size, 24px) * 0.54) calc(var(--acs-size, 24px) * 0.18) 0 currentColor, calc(var(--acs-size, 24px) * 0.18) calc(var(--acs-size, 24px) * 0.58) 0 var(--acs-accent, #14b8a6);
}

.acs-shape-bell,
.acs-shape-bag,
.acs-shape-cart,
.acs-shape-tag,
.acs-shape-diamond {
	background: currentColor;
}

.acs-shape-bell {
	clip-path: polygon(35% 12%, 65% 12%, 77% 28%, 77% 68%, 92% 86%, 8% 86%, 23% 68%, 23% 28%);
	border-radius: 20% 20% 8% 8%;
}

.acs-shape-bag {
	clip-path: polygon(22% 30%, 78% 30%, 90% 100%, 10% 100%);
	border-radius: 0 0 8px 8px;
}

.acs-shape-cart {
	clip-path: polygon(6% 12%, 22% 12%, 31% 68%, 82% 68%, 94% 28%, 28% 28%, 25% 18%, 6% 18%);
}

.acs-shape-tag {
	clip-path: polygon(0 0, 70% 0, 100% 32%, 36% 100%, 0 64%);
}

.acs-shape-diamond {
	clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.acs-shape-wave {
	border-radius: 999px;
	background: conic-gradient(from 120deg, var(--acs-color, #111827), var(--acs-accent, #14b8a6), var(--acs-color, #111827));
}

.acs-shape-node::before {
	top: 48%;
	left: 12%;
	width: 72%;
	height: 2px;
	transform: rotate(28deg);
	background: var(--acs-accent, #14b8a6);
}

.acs-shape-data::before {
	top: 16%;
	left: 22%;
	width: 56%;
	height: 2px;
	box-shadow: 0 8px 0 currentColor, 0 16px 0 currentColor;
}

.acs-shape-image {
	background-color: transparent;
	background-image: var(--acs-custom-image);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

@keyframes acs-pulse {
	0%, 100% {
		transform: scale(0.9);
	}

	50% {
		transform: scale(1.1);
	}
}

@media (pointer: coarse), (hover: none) {
	body.acs-hide-mobile,
	body.acs-hide-mobile * {
		cursor: auto !important;
	}

	body.acs-hide-mobile .acs-cursor,
	body.acs-hide-mobile .acs-cursor-ring,
	body.acs-hide-mobile .acs-cursor-trail {
		display: none !important;
	}
}
