/* Cursor-Animation: Punkt + nachlaufender Kreis, der Text darunter invertiert (mix-blend-mode: difference). */
@media (hover: hover) and (pointer: fine) {
	html.has-praxis-cursor, html.has-praxis-cursor * { cursor: none !important; }
	html.has-praxis-cursor :is(input, textarea, select, [contenteditable="true"], iframe, .wp-block-embed) { cursor: auto !important; }
	html.has-praxis-cursor :is(input, textarea, [contenteditable="true"]) { cursor: text !important; }
}
.praxis-cursor { position: fixed; z-index: 2147483000; inset: 0 auto auto 0; pointer-events: none; mix-blend-mode: difference; opacity: 0; transition: opacity .25s; }
.praxis-cursor.is-visible { opacity: 1; }
.praxis-cursor__ring, .praxis-cursor__dot { position: absolute; top: 0; left: 0; will-change: transform; }
.praxis-cursor__ring > span {
	display: block; width: var(--pc-size, 56px); height: var(--pc-size, 56px); margin: calc(var(--pc-size, 56px) / -2) 0 0 calc(var(--pc-size, 56px) / -2);
	border-radius: 50%; background: #fff; opacity: .38; transform: scale(.32);
	transition: transform .45s cubic-bezier(.22, 1, .36, 1), opacity .3s;
}
.praxis-cursor__dot > span { display: block; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #fff; transition: transform .3s; }
.praxis-cursor.is-text .praxis-cursor__ring > span { transform: scale(1); opacity: 1; }
.praxis-cursor.is-link .praxis-cursor__ring > span { transform: scale(.8); opacity: 1; }
.praxis-cursor.is-text .praxis-cursor__dot > span, .praxis-cursor.is-link .praxis-cursor__dot > span { transform: scale(0); }
.praxis-cursor.is-down .praxis-cursor__ring > span { transform: scale(.25); }
.praxis-cursor.is-text.is-down .praxis-cursor__ring > span, .praxis-cursor.is-link.is-down .praxis-cursor__ring > span { transform: scale(.7); }
.praxis-cursor--s { --pc-size: 44px; }
.praxis-cursor--l { --pc-size: 72px; }
@media (prefers-reduced-motion: reduce) {
	.praxis-cursor__ring > span, .praxis-cursor__dot > span { transition: none; }
}
@media (hover: none), (pointer: coarse) { .praxis-cursor { display: none; } }
@media (forced-colors: active) { .praxis-cursor { display: none; } }
