/**
 * Sirius Presence Light / Luz de Presença.
 *
 * Primitive opt-in: nenhum componente recebe o efeito sem declarar
 * data-sirius-presence-light ou .sirius-presence-light.
 * A camada dedicada preserva o background original da superfície.
 */

:where([data-sirius-presence-light], .sirius-presence-light) {
	--sirius-presence-x: 50%;
	--sirius-presence-y: 50%;
	--sirius-presence-intensity: 0;
	--sirius-presence-radius: 18rem;
	--sirius-presence-radius-secondary: 13rem;
	--sirius-presence-rgb: var(--sirius-gold-300-rgb, 210, 183, 123);
	--sirius-presence-rgb-secondary: var(--sirius-gold-300-rgb, 210, 183, 123);
	--sirius-presence-alpha-core: .09;
	--sirius-presence-alpha-mid: .038;
	--sirius-presence-alpha-secondary: 0;
	position: relative;
	isolation: isolate;
}

:where([data-sirius-presence-light="gold"], .sirius-presence-light) {
	--sirius-presence-rgb: var(--sirius-gold-300-rgb, 210, 183, 123);
	--sirius-presence-rgb-secondary: var(--sirius-gold-400-rgb, 184, 151, 92);
	--sirius-presence-alpha-core: .095;
	--sirius-presence-alpha-mid: .040;
	--sirius-presence-alpha-secondary: .018;
}

[data-sirius-presence-light="wine"] {
	--sirius-presence-rgb: var(--sirius-wine-400-rgb, 136, 78, 81);
	--sirius-presence-rgb-secondary: var(--sirius-wine-500-rgb, 111, 55, 60);
	--sirius-presence-alpha-core: .085;
	--sirius-presence-alpha-mid: .038;
	--sirius-presence-alpha-secondary: .018;
}

[data-sirius-presence-light="moss"] {
	--sirius-presence-rgb: var(--sirius-moss-500-rgb, 69, 82, 72);
	--sirius-presence-rgb-secondary: var(--sirius-gold-300-rgb, 210, 183, 123);
	--sirius-presence-alpha-core: .10;
	--sirius-presence-alpha-mid: .042;
	--sirius-presence-alpha-secondary: .012;
}

[data-sirius-presence-light="ritual"] {
	--sirius-presence-rgb: var(--sirius-gold-300-rgb, 210, 183, 123);
	--sirius-presence-rgb-secondary: 136, 78, 81;
	--sirius-presence-alpha-core: .070;
	--sirius-presence-alpha-mid: .030;
	--sirius-presence-alpha-secondary: .050;
	--sirius-presence-radius: 20rem;
	--sirius-presence-radius-secondary: 14rem;
}

[data-sirius-presence-light="institutional"] {
	--sirius-presence-rgb: var(--sirius-gold-400-rgb, 184, 151, 92);
	--sirius-presence-rgb-secondary: var(--sirius-gold-300-rgb, 210, 183, 123);
	--sirius-presence-alpha-core: .055;
	--sirius-presence-alpha-mid: .024;
	--sirius-presence-alpha-secondary: .010;
	--sirius-presence-radius: 21rem;
	--sirius-presence-radius-secondary: 15rem;
}

.sirius-presence-light__layer {
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	pointer-events: none;
	contain: paint;
	overflow: hidden;
	opacity: 0;
	background:
		radial-gradient(
			circle var(--sirius-presence-radius) at var(--sirius-presence-x) var(--sirius-presence-y),
			rgba(var(--sirius-presence-rgb), var(--sirius-presence-alpha-core)) 0%,
			rgba(var(--sirius-presence-rgb), var(--sirius-presence-alpha-mid)) 38%,
			transparent 74%
		),
		radial-gradient(
			circle var(--sirius-presence-radius-secondary) at var(--sirius-presence-x) var(--sirius-presence-y),
			rgba(var(--sirius-presence-rgb-secondary), var(--sirius-presence-alpha-secondary)) 0%,
			transparent 70%
		);
	transition: opacity 180ms ease-out;
}

@media (pointer: fine) and (hover: hover) {
	:where([data-sirius-presence-light], .sirius-presence-light).is-sirius-presence-aware > .sirius-presence-light__layer {
		opacity: var(--sirius-presence-intensity);
	}
}

/*
 * Mobile-first: em ponteiros coarse/touch a primitive permanece semanticamente
 * disponível, mas não cria tracking nem iluminação dependente de movimento.
 */
@media (pointer: coarse), (hover: none) {
	.sirius-presence-light__layer {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sirius-presence-light__layer {
		display: none !important;
		transition: none !important;
	}
}
