.ccp-cursor {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 2147483647;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s;
	will-change: transform;
}

.ccp-cursor.ccp-visible {
	opacity: 1;
}

.ccp-inner {
	transition: transform 0.2s ease, filter 0.2s ease;
}

.ccp-inner img {
	display: block;
	width: var(--ccp-size, 32px);
	height: var(--ccp-size, 32px);
	transform: translate(-50%, -50%);
}

/* ── Hover-Effekte ───────────────────────────────────── */

.ccp-h-scale .ccp-inner {
	transform: scale(1.5);
}

.ccp-h-pulse .ccp-inner {
	animation: ccp-pulse 0.6s ease-in-out infinite;
}

.ccp-h-glow .ccp-inner {
	filter: drop-shadow(0 0 8px var(--ccp-glow-1, rgba(124, 179, 66, 0.8)))
	        drop-shadow(0 0 16px var(--ccp-glow-2, rgba(124, 179, 66, 0.4)));
}

.ccp-h-invert .ccp-inner {
	filter: invert(1);
}

/* ── Klick-Effekte ───────────────────────────────────── */

.ccp-c-shrink .ccp-inner {
	transform: scale(0.6);
}

.ccp-c-ripple::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: var(--ccp-size, 32px);
	height: var(--ccp-size, 32px);
	border: 2px solid var(--ccp-ripple, rgba(124, 179, 66, 0.7));
	border-radius: 50%;
	transform: translate(-50%, -50%);
	animation: ccp-ripple 0.5s ease-out forwards;
	pointer-events: none;
}

.ccp-c-spin .ccp-inner {
	animation: ccp-spin 0.35s ease-in-out;
}

/* ── Keyframes ───────────────────────────────────────── */

@keyframes ccp-pulse {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.35); }
}

@keyframes ccp-ripple {
	0%   { opacity: 1; width: var(--ccp-size, 32px); height: var(--ccp-size, 32px); }
	100% { opacity: 0; width: calc(var(--ccp-size, 32px) * 3); height: calc(var(--ccp-size, 32px) * 3); }
}

@keyframes ccp-spin {
	0%   { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* ── Reduced motion ──────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
	.ccp-cursor,
	.ccp-inner {
		transition: none !important;
	}
	.ccp-h-pulse .ccp-inner,
	.ccp-c-spin .ccp-inner,
	.ccp-c-ripple::after {
		animation: none !important;
	}
}
