
@-webkit-keyframes a {
	0% {
		-webkit-transform: translate(-50%, -50%) rotateX(0) rotateY(0);
		transform: translate(-50%, -50%) rotateX(0) rotateY(0);
	}
	
	50% {
		-webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(0);
		transform: translate(-50%, -50%) rotateX(-180deg) rotateY(0);
	}
	
	to {
		-webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg);
		transform: translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg);
	}
}

@keyframes a {
	0% {
		-webkit-transform: translate(-50%, -50%) rotateX(0) rotateY(0);
		transform: translate(-50%, -50%) rotateX(0) rotateY(0);
	}
	
	50% {
		-webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(0);
		transform: translate(-50%, -50%) rotateX(-180deg) rotateY(0);
	}
	
	to {
		-webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg);
		transform: translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg);
	}
}

.fluidbox {
	outline: none;
}

.fluidbox__overlay {
	background-color: hsla(0, 0%, 100%, .85);
	cursor: pointer;
	cursor: zoom-out;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: -100%;
	left: 0;
	bottom: -100%;
	right: 0;
	-webkit-transition: all .5s ease-in-out;
	transition: all .5s ease-in-out;
}

.fluidbox--opened .fluidbox__overlay {
	pointer-events: auto;
}

.fluidbox__wrap {
	background-position: center center;
	background-size: cover;
	margin: 0 auto;
	position: relative;
	-webkit-transition: all .5s ease-in-out;
	transition: all .5s ease-in-out;
}

.fluidbox--closed .fluidbox__thumb, .fluidbox__thumb {
	-webkit-transition: opacity 0s ease-in-out 0s;
	transition: opacity 0s ease-in-out 0s;
}

.fluidbox__ghost {
	background-size: 100% 100%;
	background-position: center center;
	background-repeat: no-repeat;
	position: absolute;
	-webkit-transition: opacity 0s 0s, -webkit-transform .5s 0s;
	transition: opacity 0s 0s, -webkit-transform .5s 0s;
	transition: opacity 0s 0s, transform .5s 0s;
	transition: opacity 0s 0s, transform .5s 0s, -webkit-transform .5s 0s;
}

.fluidbox--opened .fluidbox__ghost {
	cursor: pointer;
	cursor: zoom-out;
}

.fluidbox--closed .fluidbox__ghost {
	-webkit-transition: opacity 0s .5s, -webkit-transform .5s 0s;
	transition: opacity 0s .5s, -webkit-transform .5s 0s;
	transition: opacity 0s .5s, transform .5s 0s;
	transition: opacity 0s .5s, transform .5s 0s, -webkit-transform .5s 0s;
}

.fluidbox__loader {
	opacity: 0;
	-webkit-perspective: 200px;
	perspective: 200px;
	pointer-events: none;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
}

.fluidbox__loader:before {
	background-color: hsla(0, 0%, 100%, .85);
	content: "";
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20%;
	padding-bottom: 20%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	-webkit-transition-property: -webkit-transform;
	transition-property: -webkit-transform;
	transition-property: transform;
	transition-property: transform, -webkit-transform;
	-webkit-transition-duration: .5s;
	transition-duration: .5s;
	-webkit-transition-delay: 0s;
	transition-delay: 0s;
}

.fluidbox--loading .fluidbox__loader {
	opacity: 1;
	-webkit-transition: opacity .5s ease-in-out .5s;
	transition: opacity .5s ease-in-out .5s;
}

.fluidbox--loading .fluidbox__loader:before {
	-webkit-animation: a 1s 0s infinite ease-in-out forwards;
	animation: a 1s 0s infinite ease-in-out forwards;
}
