.wheel{
	display: inline-block;
	width: 24px;
	height: 24px;
	box-sizing: border-box;
	border-radius: 50%;
	border: 2px solid rgba(76,82,105,0.1);
	border-left-color: rgba(76,82,105,0.7);
	transform: translateZ(0);
	-webkit-animation: wheel_rotation 1s infinite linear;
	animation: wheel_rotation 1s infinite linear;
}

/* size */
.wheel.size_12,
.wheel.size_xxs{
	width: 12px;
	height: 12px;
}
.wheel.size_14,
.wheel.size_xs{
	width: 14px;
	height: 14px;
}
.wheel.size_16,
.wheel.size_s{
	width: 16px;
	height: 16px;
}
.wheel.size_24,
.wheel.size_m{
	width: 24px;
	height: 24px;
}
.wheel.size_32,
.wheel.size_l{
	width: 32px;
	height: 32px;
}
.wheel.size_48,
.wheel.size_xl{
	width: 48px;
	height: 48px;
	border-width: 3px;
}

/* color */
.wheel.white{
	border-color: rgba(255,255,255,.3);
	border-left-color: rgba(255,255,255,1);
}

/* full */
.wheel.full{
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.wheel.full.vertical_size_xs{
	margin-top: 16px;
	margin-bottom: 16px;
}
.wheel.full.vertical_size_s{
	margin-top: 32px;
	margin-bottom: 32px;
}
.wheel.full.vertical_size_m{
	margin-top: 64px;
	margin-bottom: 64px;
}
.wheel.full.vertical_size_l{
	margin-top: 96px;
	margin-bottom: 96px;
}
.wheel.full.vertical_size_xl{
	margin-top: 128px;
	margin-bottom: 128px;
}

/* Animation */
@-webkit-keyframes wheel_rotation{
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes wheel_rotation{
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

/* Mask */
.mask{
	position: absolute;
	z-index: 10;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	min-height: 60px;
	background: rgba(255,255,255,.6);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 5px;

	-webkit-animation: mask_fadein 400ms ease-in-out;
	animation: mask_fadein 400ms ease-in-out;
}
.mask.no_delay {
	-webkit-animation: none;
	animation: none;
}
.mask.has_progress{
	background-image: repeating-linear-gradient(
        -45deg,
		rgba(255,255,255,.06),
        rgba(255,255,255,.06) 6px,
        rgba(76,82,105,.06) 6px,
        rgba(76,82,105,.06) 12px
    );
	background-color: transparent;
	-webkit-animation: mask_progress 600ms linear infinite;
	animation: mask_progress 600ms linear infinite;
}

@-webkit-keyframes mask_fadein{
	from {opacity: 0;}
	50% {opacity: 0;}
	to {opacity: 1;}
}
@keyframes mask_fadein{
	from {opacity: 0;}
	50% {opacity: 0;}
	to {opacity: 1;}
}

@-webkit-keyframes mask_progress{
	from {background-position: 0 0;}
	to {background-position: 17px 0;}
}
@keyframes mask_progress{
	from {background-position: 0 0;}
	to {background-position: 17px 0;}
}
