#InfinityAni {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 12px 0;
	width: 100%;
	height: 100%;
	background: #042104;
	animation: infinityColor 8s linear infinite;
}
@keyframes infinityColor {
	0% {
		filter: hue-rotate(0deg);
	}
	100% {
		filter: hue-rotate(360deg);
	}
}
#InfinityAni .frame {
	display: flex;
}
#InfinityAni .frame .circle {
	position: relative;
	width: 150px;
	height: 150px;
	margin: 0 -7.5px;
}
#InfinityAni .frame .circle span {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: rotate(calc(18deg * var(--i))); /* 360 / 20 = 18deg */
}
#InfinityAni .frame .circle span::before {
	content: "";
	position: absolute;
	right: 0;
	top: calc(50% - 7.5px);
	width: 15px;
	height: 15px;
	background: #00ff0a;
	border-radius: 50%;
	box-shadow: 0 0 10px #00ff0a,
	0 0 20px #00ff0a,
	0 0 40px #00ff0a,
	0 0 60px #00ff0a,
	0 0 80px #00ff0a,
	0 0 100px #00ff0a;
	transform: scale(0.1);
	animation: infinityAni 4s linear infinite;
	animation-delay: calc(0.1s * var(--i));
}
@keyframes infinityAni {
	0% {
		transform: scale(1);
	}
	50%, 100% {
		transform: scale(0.1);
	}
}
#InfinityAni .frame .circle:nth-child(2) {
	transform: rotate(-180deg);
}
#InfinityAni .frame .circle:nth-child(2) span::before {
	animation-delay: calc(-0.1s * var(--i));
}
