/* Kurzor – vlastní kurzor (tečka + doháněný prsten) */

:root {
	--kurzor-color: #e82629;
	--kurzor-dot-size: 10px;
	--kurzor-dot-size-hover: 18px;
	--kurzor-ring-size: 32px;
	--kurzor-ring-border: rgba(232, 38, 41, 0.4);
	--kurzor-ring-border-width: 2px;
}

/* Systémový kurzor schováme až ve chvíli, kdy JS potvrdí myš.
   Při otevřeném nativním okně (dialog/popover/fullscreen) ho vrátíme –
   viz .kurzor-suppressed – protože top-layer stejně nepřebijeme. */
html.kurzor-active:not(.kurzor-suppressed),
html.kurzor-active:not(.kurzor-suppressed) body,
html.kurzor-active:not(.kurzor-suppressed) a,
html.kurzor-active:not(.kurzor-suppressed) button,
html.kurzor-active:not(.kurzor-suppressed) input,
html.kurzor-active:not(.kurzor-suppressed) textarea,
html.kurzor-active:not(.kurzor-suppressed) select,
html.kurzor-active:not(.kurzor-suppressed) label,
html.kurzor-active:not(.kurzor-suppressed) [role="button"] {
	cursor: none;
}

/* Otevřené nativní okno: falešný kurzor pryč, ať nepřekáží. */
html.kurzor-suppressed .kurzor-dot,
html.kurzor-suppressed .kurzor-ring {
	opacity: 0 !important;
}

.kurzor-dot,
.kurzor-ring {
	position: fixed;
	top: 0;
	left: 0;
	pointer-events: none;
	mix-blend-mode: normal;
	will-change: transform;
	opacity: 0;
	transition: opacity 150ms linear;
}

/* Co nejvýš, ať jsme nad modály z JS knihoven (nativní top-layer
   se řeší schováním, ne z-indexem). */
.kurzor-dot {
	z-index: 2147483647;
}

.kurzor-ring {
	z-index: 2147483646;
}

/* Zobrazíme až po prvním pohybu myši, ať tečka neblikne v rohu. */
.kurzor-dot.is-visible,
.kurzor-ring.is-visible {
	opacity: 1;
}

.kurzor-dot__inner,
.kurzor-ring__inner {
	display: block;
	/* Nezávisle na tématu: 32px je vnější průměr včetně rámečku. */
	box-sizing: border-box;
	border-radius: 50%;
	transform: translate(-50%, -50%) scale(1);
}

.kurzor-dot__inner {
	width: var(--kurzor-dot-size);
	height: var(--kurzor-dot-size);
	background: var(--kurzor-color);
	transition: transform 150ms ease-out;
}

.kurzor-ring__inner {
	width: var(--kurzor-ring-size);
	height: var(--kurzor-ring-size);
	border: var(--kurzor-ring-border-width) solid var(--kurzor-ring-border);
	transition: opacity 150ms ease-out;
}

/* Hover: tečka 10px → 18px, prsten mizí. */
.kurzor-dot.is-hover .kurzor-dot__inner {
	transform: translate(-50%, -50%) scale(1.8);
}

.kurzor-ring.is-hover .kurzor-ring__inner {
	opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
	.kurzor-dot__inner,
	.kurzor-ring__inner {
		transition: none;
	}
}
