/* PaletteSwitcher — extraído de src/lib/components/PaletteSwitcher.svelte.
   Scopeado con anidamiento nativo bajo su raíz para evitar colisiones
   de nombres de clase al pasar de CSS scoped de Svelte a CSS global. */

@keyframes twinkle {
	0%,
	100% {
		opacity: 1;
		transform: scale(1) rotate(0deg);
	}
	50% {
		opacity: 0.4;
		transform: scale(0.78) rotate(45deg);
	}
}

.gem-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1.5px solid var(--line-strong);
	background: transparent;
	color: var(--fg);
	cursor: pointer;
	transition:
		border-color 0.3s,
		transform 0.3s var(--ease);

	&:hover {
		border-color: var(--fg);
		transform: translateY(-2px);
	}

	.gem {
		display: inline-flex;
		transform-origin: 50% 52%;
	}

	/* Brillo sutil al pasar / mantener */
	.spark {
		position: absolute;
		top: 4px;
		right: 5px;
		display: inline-flex;
		color: var(--accent);
		opacity: 0;
		transform: scale(0.4);
		transition:
			opacity 0.3s,
			transform 0.3s var(--ease);
	}

	&:hover .spark {
		opacity: 1;
		transform: scale(1);
		animation: twinkle 1.4s var(--ease) infinite;
	}

	@media (prefers-reduced-motion: reduce) {
		.gem-btn:hover .spark {
			animation: none;
		}
	}
}
