.loader_wrap {
	background: #fff;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	position: fixed;
	opacity: 1;
	transition: opacity 1s ease-out;
}
.loader_wrap.hidden {
	opacity: 0;
}
.loader_wrap .loader {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation: rotate 1s infinite;
	height: 50px;
	width: 50px;
	z-index: 55;
}

.loader:before,
.loader:after {
	position: absolute;
	border-radius: 50%;
	content: '';
	display: block;
	height: 20px;
	width: 20px;
}
.loader:before {
	position: absolute;

	animation: ball1 1s infinite;
	background-color: #cb2025;
	box-shadow: 30px 0 0 #f8b334;
	margin-bottom: 10px;
}
.loader:after {
	position: absolute;
	animation: ball2 1s infinite;
	background-color: #00a096;
	box-shadow: 30px 0 0 #97bf0d;
}

@keyframes rotate {
	0% {
		transform: rotate(0deg) scale(0.8);
	}
	50% {
		transform: rotate(360deg) scale(1.2);
	}
	100% {
		transform: rotate(720deg) scale(0.8);
	}
}

@keyframes ball1 {
	0% {
		box-shadow: 30px 0 0 #f8b334;
	}
	50% {
		box-shadow: 0 0 0 #f8b334;
		margin-bottom: 0;
		transform: translate(15px, 15px);
	}
	100% {
		box-shadow: 30px 0 0 #f8b334;
		margin-bottom: 10px;
	}
}

@keyframes ball2 {
	0% {
		box-shadow: 30px 0 0 #97bf0d;
	}
	50% {
		box-shadow: 0 0 0 #97bf0d;
		margin-top: -20px;
		transform: translate(15px, 15px);
	}
	100% {
		box-shadow: 30px 0 0 #97bf0d;
		margin-top: 0;
	}
}
