.site-effect-particle {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	line-height: 1;
	pointer-events: none;
	user-select: none;
	will-change: transform;
}
.site-effect-particle > span {
	display: inline-block;
}
.site-effect-spin {
	animation: site-effect-spin linear infinite;
}
.site-effect-twinkle {
	animation: site-effect-twinkle 1.5s ease-in-out infinite alternate;
}
@keyframes site-effect-spin {
	100% {
		transform: rotate(360deg);
	}
}
@keyframes site-effect-twinkle {
	100% {
		opacity: 0.3;
		transform: scale(0.8);
	}
}
@media (prefers-reduced-motion: reduce) {
	.site-effect-particle {
		display: none;
	}
}
