.grid-wrap {
	clear: both;
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

.grid {
	margin: 30px auto;
	padding: 0;
	list-style: none;
	min-height: 500px;
}

.js .grid {
	background: url(/images/loading.gif) no-repeat 50% 100px #f0f0f0;
}

.js .grid.loaded {
	background: none;
}

.grid li {
	display: inline-block;
	overflow: hidden;
	width: 33.3%;
	text-align: left;
	vertical-align: top;
}

.js .grid li {
	display: none;
	float: left;
}

.js .grid.loaded li {
	display: block;
}

/* Title box */
.title-box h2 {
	display: block;
	margin: 2px;
	line-height:30px;
	padding: 20px;
	font-size:24px;
	background: #27292c;
	color: #b6b8b9;
	letter-spacing: 2px;
	font-weight: 300;
}

.title-box h2 a {
	display: block;
	font-weight: 900;
	color:#fff;
}

.title-box h2 a:hover {
	color: #D3EEE2;
}

/* Anchor and image */
.grid li > a,
.grid li img {
	display: block;
	outline: none;
	border: none;
}

.grid li > a {
	position: relative;
	overflow: hidden;
	margin: 2px;
}

/* Curtain element */
.grid .curtain {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	height: 100%;
	background: #f3f3f3;
}

.grid.swipe-right .curtain {
	-webkit-transform: translate3d(-100%,0,0);
	transform: translate3d(-100%,0,0);
}

.grid.swipe-down .curtain {
	-webkit-transform: translate3d(0,-100%,0);
	transform: translate3d(0,-100%,0);
}

.grid.swipe-rotate .curtain {
	width: 200%;
	height: 200%;
	-webkit-transform: rotate3d(0,0,1,90deg);
	transform: rotate3d(0,0,1,90deg);
	-webkit-transform-origin: top left;
	transform-origin: top left;
}

/* Shadow */
.grid .curtain::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,1);
	content: '';
}

.grid.swipe-right .curtain::after,
.grid.swipe-rotate .curtain::after {
	left: -100%;
}

.grid.swipe-down .curtain::after {
	top: -100%;
}

/* Title */
.grid li *{-moz-transition: all 0.2s ease; -o-transition: all 0.2s ease; -ms-transition: all 0.2s ease; transition: all 0.2s ease;}
.grid li img{ width:110%; float:left;}
.grid li .info-box { width:100%; height:100%; float:left; position:absolute; left:0; top:0; padding:20px; background:rgba(39,41,44,0.9); color:#fff; opacity:0;}
.grid li:hover .info-box{opacity:1;}
.grid li:hover .info-box h4{ margin-top:60px;}
.grid li:hover img{ margin-left:-5%;}
.grid li .info-box h4{ font-size:24px; font-weight:800; margin-top:20px;}
.grid li .info-box span{ font-family:times new roman; font-size:16px; font-style:italic; position:relative; margin-bottom:20px; display:block;}
.grid li .info-box span:after{content:''; width:40px; height:1px; background:#fff; position:absolute; left:0; bottom:-20px;}
.grid li .info-box p{font-weight:300; margin-top:20px; display:inline-block;}


/* Animations */

/* Swipe right */
.grid.swipe-right li.animate .curtain {
	-webkit-animation: swipeRight 1.5s cubic-bezier(0.6,0,0.4,1) forwards;
	animation: swipeRight 1.5s cubic-bezier(0.6,0,0.4,1) forwards;
}

@-webkit-keyframes swipeRight {
	0% {} /* fixes Chrome 35.0.1916.114 issue (easing breaks) */
	50%, 60% { -webkit-transform: translate3d(0,0,0); }
	100% { -webkit-transform: translate3d(100%,0,0); }
}

@keyframes swipeRight {
	0% {}
	50%, 60% { -webkit-transform: translate3d(0,0,0); transform: translate(0); }
	100% { -webkit-transform: translate3d(100%,0,0); transform: translate3d(100%,0,0); }
} 

/* Swipe down */
.grid.swipe-down li.animate .curtain {
	-webkit-animation: swipeDown 1.5s cubic-bezier(0.6,0,0.4,1) forwards;
	animation: swipeDown 1.5s cubic-bezier(0.6,0,0.4,1) forwards;
}

@-webkit-keyframes swipeDown {
	0% {} /* fixes Chrome 35.0.1916.114 issue (easing breaks) */
	50%, 60% { -webkit-transform: translate3d(0,0,0); }
	100% { -webkit-transform: translate3d(0,100%,0); }
}

@keyframes swipeDown {
	0% {}
	50%, 60% { -webkit-transform: translate(0); transform: translate(0); }
	100% { transform: translate3d(0,100%,0); transform: translate3d(0,100%,0); }
}

/* Swipe rotate */
.grid.swipe-rotate li.animate .curtain {
	-webkit-animation: swipeRotate 1.5s ease forwards;
	animation: swipeRotate 1.5s ease forwards;
}

@-webkit-keyframes swipeRotate {
	0% {} /* fixes Chrome 35.0.1916.114 issue (easing breaks) */
	50%, 60% { -webkit-transform: rotate3d(0,0,1,0deg); }
	100% { -webkit-transform: rotate3d(0,0,1,-90deg); }
}

@keyframes swipeRotate {
	0% {}
	50%, 60% { -webkit-transform: rotate3d(0,0,1,0deg); transform: rotate3d(0,0,1,0deg); }
	100% { -webkit-transform: rotate3d(0,0,1,-90deg); transform: rotate3d(0,0,1,-90deg); }
}

/* Shadow */
.grid li.animate .curtain::after {
	-webkit-animation: fadeOut 1.5s ease forwards;
	animation: fadeOut 1.5s ease forwards;
	-webkit-animation-delay: inherit;
	animation-delay: inherit;
}

@-webkit-keyframes fadeOut {
	0% {} /* fixes Chrome 35.0.1916.114 issue (easing breaks) */
	50%, 60% { opacity: 1; }
	100% { opacity: 0; }
}

@keyframes fadeOut {
	0% {}
	50%, 60% { opacity: 1; }
	100% { opacity: 0; }
}

/* Hide image and title and show at half time */
.js .grid li img,
.js .grid li h3 {
	visibility: hidden;
}

.grid li.animate img,
.grid li.animate h3 {
	-webkit-animation: showMe 1.5s step-end forwards;
	animation: showMe 1.5s step-end forwards;
}

@-webkit-keyframes showMe {
	from { visibility: hidden; }
	60%, 100% { visibility: visible; }
}

@keyframes showMe {
	from { visibility: hidden; }
	60%, 100% { visibility: visible; }
}

.grid li.shown img,
.grid li.shown h3 {
	visibility: visible;
}