* {
	margin:0;
	padding:0; 
	box-sizing:border-box;
	}
	
img {max-width:100%;}

.bold {font-weight:bold;}
.italics {font-style:italic;}

.clearfix {clear:both;}

section{
	padding:1em;
	}

body {
	font-family: sans-serif;
	background-color:black;
	}

header {
	position:relative;
	padding-top:2%;
	}
	
footer {
	padding:2%;
	text-align:left;
	}
	
nav {
	padding-top:160px;
	font-family: 'Quicksand', sans-serif;
	}
	
nav ul {
	list-style-type:none;
	display:flex; /*allows flexbox properties to be used, li becomes fles items. */
	flex-direction:column; /*sets the li to be stacked for mobile first */
	}
	
nav a {
	display:block;
	width:100%;
	}
	
	
nav li {
	text-align:center; /* aligns li text center */
	color:white;
	}

nav li a {
	display:block; /*this makes the padding clickable for the link. must include.*/
	padding:1em;
	text-decoration:underline;
	text-decoration-style:dotted;
	color:white;
	}
	
footer nav{
	padding:2%;
	text-align:left;
	}
	
a {
    text-decoration: underline;
    text-decoration-color: #0066ff;
	}	
		
a:link {
    color: white; 
    text-shadow: 1px 1px black;
	text-decoration-style:dotted;
	}
	
a:visited {
    color: #0066ff;
    text-shadow: 1.5px 1.5px white;
	text-decoration-style:dotted;
	}
	
a:hover {
    color: white;
    text-shadow: 1.5px 1.5px red;
	text-decoration:underline;
	text-decoration-style: solid;
	}
	
a:active {
    color: white;
    text-shadow: 1.5px 1.5px #0066ff;
	}
		
h1 {
	font-family: 'Comfortaa', cursive;
	padding:1em;
	text-align:center;
	color:white;
	}
	
h2 {
	font-family: 'Raleway', sans-serif;
	padding:0 1em 1em 1em;
	color:white;
    margin:0 2%;
	}	
	
p {
	font-family: 'Raleway', sans-serif;
	padding:.5em;
	color:white;
    margin:2%;
	}

.fancybox-slide--iframe .fancybox-content {
	width:100%;
	height:100%;
	max-width:100%;
	max-height:100%;
	}
	
.logo {
	position:absolute;
	max-height:140px;
	}
	
.snapcodes {
	padding:0 1em 0 1em;
	}
	
.white {pointer-events: none;}
	
/*FLEX*/
.grid {
    min-height:50%;
    display:flex;
    flex-wrap:wrap;
    flex-direction:row;
    }
    
.grid li {
    display:flex; 
    flex-basis:calc(50%);  
    justify-content:center;
    flex-direction:column;
    }
    
.box {
	text-align:center;
    display:block;
    min-height:25%;
	min-width:50%;
	}
.boxl {
	text-align:left;
	}
	
/*TILT*/
.project {
  padding:1em;
  width: 100%;
  float: left;
  margin-right: 5%;
}

.project__image {
  display: block;
  position: relative;
}

.project__image img {
  width: 100%;
  max-width: 100%;
  display: block;
}

.project__image:after {
  content: " ";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.4));
  transition: opacity .3s ease;
  opacity: 0;
}

.project__card {
  position: relative;
  will-change: transform;
  transition: box-shadow .3s ease;
  box-shadow: 0 10px 30px transparent;
}

.project__card.hover-in {
  transition: -webkit-transform .2s ease-out;
  transition: transform .2s ease-out;
  transition: transform .2s ease-out, -webkit-transform .2s ease-out;
}

.project__card.hover-out {
  transition: -webkit-transform .2s ease-in;
  transition: transform .2s ease-in;
  transition: transform .2s ease-in, -webkit-transform .2s ease-in;
}

.project:hover .project__card { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); }

.project:hover .project__image:after { opacity: 1; }

/*SOCIAL SIDEBAR*/
.social {
  width: 200px;
  height: 220px;
  position: fixed;
  margin-top: 30px;
  perspective: 1000px
}

.social li a {
  display: block;
  height: 20px;
  width: 40px;
  background: #222;
  border-bottom: 1px solid #333;
  font: normal normal normal
  16px/20px 
  'FontAwesome', 'Source Sans Pro', Helvetica, Arial, sans-serif;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  padding: 10px;
  text-decoration: none;
  text-align: center;
  transition: background .5s ease .300ms
}

.social li:first-child a:hover { background: #3b5998 }
.social li:nth-child(2) a:hover { background: #00acee }
.social li:nth-child(3) a:hover { background: #ea4c89 }
.social li:nth-child(4) a:hover { background: #dd4b39 }

.social li:first-child a { border-radius: 0 5px 0 0 }
.social li:last-child a { border-radius: 0 0 5px 0 }
    
.social li a span {
  width: 100px;
  float: left;
  text-align: center;
  background: #222;
  color: #fff;
  margin: -25px 74px;
  padding: 8px;
  transform-origin: 0;
  visibility: hidden;
  opacity: 0;
  transform: rotateY(45deg);
  border-radius: 5px;
  transition: all .5s ease .300ms
}

.social li span:after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: -20px;
  top: 7px;
  border-left: 10px solid transparent;
  border-right: 10px solid #222;
  border-bottom: 10px solid transparent;
  border-top: 10px solid transparent;
}

.social li a:hover span {
  visibility: visible;
  opacity: 1;
  transform: rotateY(0)
}


/*ANIMATION*/
.red {
    animation-name:nwin;
	animation-duration:.8s;
	animation-timing-function:ease;
	animation-iteration-count:1;
	animation-fill-mode:both;
    animation-play-state:running;
    }
.red:hover {
	animation-name:nwout;
	animation-duration:.8s;
	animation-timing-function:ease;
	animation-iteration-count:1;
	animation-fill-mode:both;
    animation-play-state:running;
	}
@keyframes nwin {
    from {transform: translate(-4px, -2px)}
   	to {transform: translate(0px, 0px);}
	}
@keyframes nwout {
    from {transform: translate(0px, 0px)}
   	to {transform: translate(-4px, -2px);}
	}

.blue {
    animation-name:nein;
	animation-duration:.8s;
	animation-timing-function:ease;
	animation-iteration-count:1;
	animation-fill-mode:both;
    animation-play-state:running;
    }
.blue:hover {
	animation-name:neout;
	animation-duration:.8s;
	animation-timing-function:ease;
	animation-iteration-count:1;
	animation-fill-mode:both;
    animation-play-state:running;
	}
@keyframes nein {
    from {transform: translate(6px,3px)}
   	to {transform: translate(0px, 0px);}
	}
@keyframes neout {
    from {transform: translate(0px, 0px)}
   	to {transform: translate(6px, 3px);}
	}
#portfolio {
	padding:0;
	}
	
.tbopgif {
	width:100%;
	}	

.current {
	text-decoration:overline underline;
	text-decoration-color:white;
	}

/* small devices and tablets */
@media only screen and (min-width: 768px) {
	 body {background-color:black;}
	 
	.wrap {
    	width:80%;
	 	margin:0 auto;
	 	max-width:980px;
    	}
	 
	 h1 {
	 	font-size:1.5em;
	 	}
	
	 nav ul {
	 	flex-direction:row;
	 	justify-content:space-between;
		width:100%;
		}
	 	
	 nav li {
	 	flex:1 0 auto;
		padding:0;
	 	}
	 footer nav {
		font-size:.8em; 
		}		
	 footer nav li {
  	 	display:inline-block;
    	padding:0%;
    	}
	 footer {
		padding:2%;
		text-align:center;
		}
		
    .ragl {
    	text-align:right;
    	padding-right:25%;
    	}
		
	.logo {
		width:25%;
		margin:2% 37%; /*centered*/
		}
	
	.grid {
	 	display:flex; /*default direction is row so puts .box in row */
	 	flex-wrap:wrap; /*wraps boxes to next row*/
	 	}
		
	.box {
	 	flex-grow:1; /*this makes all the flex items equal in a row*/
	 	flex-basis:25%; /*to get 3 items per row to width needs to be 33%, 4 would be 25% */
	 	display:flex; /*child elements (image and text) can use flex*/
	 	flex-direction:column; /*child elements (image and text) are stacked*/
	 	}
		
	.box p {margin-top:auto;}

		
	/*ANIMATION*/
	.red {
		animation-name:nwin;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	.red:hover {
		animation-name:nwout;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	@keyframes nwin {
		from {transform: translate(-4px, -2px)}
		to {transform: translate(0px, 0px);}
		}
	@keyframes nwout {
		from {transform: translate(0px, 0px)}
		to {transform: translate(-4px, -2px);}
		}

	.blue {
		animation-name:nein;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	.blue:hover {
		animation-name:neout;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	@keyframes nein {
		from {transform: translate(6px,3px)}
		to {transform: translate(0px, 0px);}
		}
	@keyframes neout {
		from {transform: translate(0px, 0px)}
		to {transform: translate(6px, 3px);}
		}
		
}

/* medium devices and desktops */
@media only screen and (min-width: 992px) {
	 .wrap {
    	width:80%;
	 	margin:0 auto;
	 	max-width:980px;
    	}
    	
	header {
		display:flex;
		justify-content:space-between;
		}
		
	h1 {
	 	font-size:2em;
	 	}
	 	
	nav {
		font-size:1.5em;
		}	
	footer nav {
		font-size: 1.2em;
		}
	.red {
		animation-name:nwin;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	.red:hover {
		animation-name:nwout;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	@keyframes nwin {
		from {transform: translate(-4px, -2px)}
		to {transform: translate(0px, 0px);}
		}
	@keyframes nwout {
		from {transform: translate(0px, 0px)}
		to {transform: translate(-4px, -2px);}
		}

	.blue {
		animation-name:nein;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	.blue:hover {
		animation-name:neout;
		animation-duration:.8s;
		animation-timing-function:ease;
		animation-iteration-count:1;
		animation-fill-mode:both;
		animation-play-state:running;
		}
	@keyframes nein {
		from {transform: translate(8px,4px)}
		to {transform: translate(0px, 0px);}
		}
	@keyframes neout {
		from {transform: translate(0px, 0px)}
		to {transform: translate(8px, 4px);}
		}
	 	

}


/* large devices and wide screens */
@media only screen and (min-width: 1200px) {
    .wrap {
    	width:80%;
	 	margin:0 auto;
	 	max-width:980px;
    	}
    	
	h1 {
	 	font-size:2.2em;
	 	}
	
	nav {
		font-size:2em;
		}	
		
	footer nav {
		font-size:1.5em;
		}
	header {
		display:flex;
		justify-content:space-between;
		}
	

}