.spinner-dualring,
.spinner-hourglass {
	display: inline-block;
	width: var(--bs-spinner-width);
	height: var(--bs-spinner-height);
	vertical-align: var(--bs-spinner-vertical-align);
	border-radius: 50%;
	-webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
	animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
}
@-webkit-keyframes spinner-dualring {
	to {
		transform: rotate(360deg) /* rtl:ignore */;
	}
}
@keyframes spinner-dualring {
	to {
		transform: rotate(360deg) /* rtl:ignore */;
	}
}
.spinner-dualring {
	--bs-spinner-width: 2rem;
	--bs-spinner-height: 2rem;
	--bs-spinner-vertical-align: -0.125em;
	--bs-spinner-border-width: 0.25em;
	--bs-spinner-animation-speed: 0.75s;
	--bs-spinner-animation-name: spinner-dualring;
	border: var(--bs-spinner-border-width) solid currentcolor;
	border-color: transparent currentcolor transparent currentcolor;
}
.spinner-dualring-sm {
	--bs-spinner-width: 1rem;
	--bs-spinner-height: 1rem;
	--bs-spinner-border-width: 0.2em;
}


@keyframes spinner-hourglass {
	0% {
		transform: rotate(0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
	}
	50% {
		transform: rotate(900deg);
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	100% {
		transform: rotate(1800deg);
	}
}
.spinner-hourglass {
	--bs-spinner-width: 2rem;
	--bs-spinner-height: 2rem;
	--bs-spinner-vertical-align: -0.125em;
	--bs-spinner-border-width: 0.25em;
	--bs-spinner-animation-speed: 1.25s;
	--bs-spinner-animation-name: spinner-hourglass;
	box-sizing: border-box;
	border: 1rem solid currentcolor;
	border-color: currentcolor transparent currentcolor transparent;
}
.spinner-hourglass-sm {
	--bs-spinner-width: 1rem;
	--bs-spinner-height: 1rem;
	--bs-spinner-border-width: 0.2em;
	border: .5rem solid currentcolor;
	border-color: currentcolor transparent currentcolor transparent;
}

@media (prefers-reduced-motion: reduce) {
	.spinner-dualring,
	.spinner-hourglass {
		--bs-spinner-animation-speed: 1.5s;
	}
}

.loader-3dots-waves {
	width: 60px;
	aspect-ratio: 2;
	--loader-bg: no-repeat radial-gradient(circle closest-side,currentcolor 90%,#0000);
	background: var(--loader-bg) 0%   50%, var(--loader-bg) 50%  50%, var(--loader-bg) 100% 50%;
	background-size: calc(100%/3) 50%;
	animation: loader-3dots-waves 1s infinite linear;
}
.loader-3dots-waves.loader-3dots-waves-sm {
	width: 40px;
}
@keyframes loader-3dots-waves {
	20%{background-position:0%   0%, 50%  50%,100%  50%}
	40%{background-position:0% 100%, 50%   0%,100%  50%}
	60%{background-position:0%  50%, 50% 100%,100%   0%}
	80%{background-position:0%  50%, 50%  50%,100% 100%}
}
