.gallery-element {
	position: relative;
	overflow: hidden;
	display: block;
	text-align: center;
	-webkit-perspective: 100rem;
	perspective: 100rem;
}

.gallery-element img {
	position: relative;
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
	filter: alpha(opacity=60);
	-moz-opacity: 0.6;
	-khtml-opacity: 0.6;
	opacity: 0.6;
	-webkit-transform: translate3d(0,0,30rem);
	transform: translate3d(0,0,30rem);
	-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
	transition: opacity 0.35s, transform 0.35s;
}

.gallery-element:hover img {
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
	filter: alpha(opacity=40);
	-moz-opacity: 0.4;
	-khtml-opacity: 0.4;
	opacity: 0.4;
	-webkit-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
}

.gallery-element > .caption {
	padding: 2.8rem;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	position: absolute;
  	top: 0;
  	left: 0;
  	width: 100%;
  	height: 100%;
	display: block;
}

.gallery-element .caption::before,
.gallery-element .caption::after {
	pointer-events: none;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 80%;
	height: 0.1rem;
	content: '';
	-webkit-transform: translate3d(-50%,-50%,0);
	transform: translate3d(-50%,-50%,0);
	-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
	transition: opacity 0.35s, transform 0.35s;
}

.gallery-element:hover .caption::before {
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
	-webkit-transform: translate3d(-50%,-50%,0) rotate(45deg);
	transform: translate3d(-50%,-50%,0) rotate(45deg);
}

.gallery-element:hover .caption::after {
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	-khtml-opacity: 0.5;
	opacity: 0.5;
	-webkit-transform: translate3d(-50%,-50%,0) rotate(-45deg);
	transform: translate3d(-50%,-50%,0) rotate(-45deg);
}

.gallery-element .caption .overlay-text .project-title {
	font-weight: 600;
	font-size: 1.8rem;
	line-height: 2.7rem;
	letter-spacing: 0.05rem;
	word-spacing: 0.3rem;
	text-transform: uppercase;
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	-webkit-transform: translate3d(0,-50%,0) translate3d(0,-150%,0);
	transform: translate3d(0,-50%,0) translate3d(0,-150%,0);
	-webkit-transition: -webkit-transform 0.35s;
	transition: transform 0.35s;
}

.gallery-element:hover .caption .overlay-text .project-title {
	-webkit-transform: translate3d(0,-50%,0) translate3d(0,-100%,0);
	transform: translate3d(0,-50%,0) translate3d(0,-100%,0);
}

.gallery-element .caption .overlay-text .category {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 600;
	text-transform: uppercase;
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	padding: 0.4rem 2.8rem;
	-webkit-transform: translate3d(0,-50%,0) translate3d(0,150%,0);
	transform: translate3d(0,-50%,0) translate3d(0,150%,0);
	-webkit-transition: -webkit-transform 0.35s;
	transition: transform 0.35s;
}

.gallery-element:hover .caption .overlay-text .category {
	-webkit-transform: translate3d(0,-50%,0) translate3d(0,100%,0);
	transform: translate3d(0,-50%,0) translate3d(0,100%,0);
}

@media (max-width: 767px) {
	.gallery-element .caption .overlay-text .project-title {
		font-size: 1.7rem;
		line-height: 2.5rem;
	}
	.gallery-element .caption .overlay-text .category {
		font-size: 1.2rem;
		line-height: 1.8rem;
	}
}

@media (max-width: 479px) {
	.gallery-element .caption::before,
	.gallery-element .caption::after {
		display: none;
	}
	.gallery-element .caption .overlay-text .project-title {
		display: none;
	}
	.gallery-element .caption .overlay-text .category {
		display: none;
	}
}