/* Your main CSS here! */

html, body, #pages {
	margin: 0;
	padding: 0;
	height: 100%;
}

body {
	font-family: 'BenchNine', sans-serif;
	font-size: 2em;
	background-color: #FDFDFD;
	background-image: url(../img/body_noise.png);
}

.painted {
	background-image: url(../img/strong.png);
	background-position: left 70%;
	background-size: 0% 1em;
	background-repeat: no-repeat;
	padding: 0 0.5em;
	margin: 0 -0.5em;
	-webkit-transition: background 30ms ease-in 1.4s;
	-moz-transition: background 30ms ease-in 1.4s;
	-ms-transition: background 30ms ease-in 1.4s;
	-o-transition: background 30ms ease-in 1.4s;
	transition: background 30ms ease-in 1.4s;
}

#nav-toggle {
	position: absolute;
	top: 10px;
	left: 15px; 
	display: none;
	z-index: 3;
	color: white;
}
#phone {
	position: absolute;
	top: 10px;
	right: 15px;
	z-index: 3;
	color: white;
}

#promo .animated {
	-webkit-animation-duration: 500ms;
}

body.loaded .painted {
	background-size: 100% 1em;
}

#promo {
	display: table-cell;
	text-align: center;
	vertical-align: middle;
	font-family: 'Shadows Into Light', cursive;
}
#promo h2 {
	font-size: 3em;
}

.page {
	float: left; 
	width: 100%;
	position: relative;
	padding-bottom: 70px;
	padding-top: 70px;
}

.page, .bg-img {
	background-size: cover;
	background-position: center;
}

#portrait {
	background-color: #FFF;
	background-image: url(../img/portrait.jpg);
	width: 100px;
	height: 100px;
	border-radius: 100%;
	display: block;
	margin: 0 auto;
}

#nav {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	color: #f1f1f1;
	z-index: 2;
	-webkit-transition: background 300ms ease;
	-moz-transition: background 300ms ease;
	-ms-transition: background 300ms ease;
	-o-transition: background 300ms ease;
	transition: background 300ms ease;
	-webkit-transform: translate3d(0,0,0);
	-moz-transform: translate3d(0,0,0);
	-ms-transform: translate3d(0,0,0);
	-o-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
}

#nav a, #nav .nav li a {
	padding-top: 10px;
	padding-bottom: 10px;
	color: #f1f1f1;
}

#nav .nav {
	display: block;
	width: 600px;
	max-width: 100%;
	margin: 0 auto;
}
#nav .nav li {
	width: 25%;
	text-align: center;
	float: left;
	text-transform: uppercase;
}

.nav>li>a:hover, .nav>li>a:focus {
	background-color: transparent;
}

#pages {
	-webkit-transform: translate3d(0,0,0);
	-moz-transform: translate3d(0,0,0);
	-ms-transform: translate3d(0,0,0);
	-o-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
	transition: -webkit-filter 300ms ease 0;
}
	
@media all and (max-width: 599px) {
	#nav-toggle {
		display: block;
		position: absolute;
	}
	body.nav-open #nav {
		background: rgba(76, 76, 76, 0.71);
		position: fixed;
		bottom: 0;
	}
	#nav .nav {
		width: 0;
		height: 0;
		visibility: hidden;
		overflow: hidden;
	}
	body.nav-open #nav .nav {
		width: auto;
		height: auto;
		visibility: visible;
		padding-top: 50px;
	}
	#nav .nav li {
		width: 100%;
		text-align: left;
		-webkit-transform: translate3d(-100%,0,0);
		-moz-transform: translate3d(-100%,0,0);
		-ms-transform: translate3d(-100%,0,0);
		-o-transform: translate3d(-100%,0,0);
		transform: translate3d(-100%,0,0);
		-webkit-transition: -webkit-transform 300ms ease 0;
		-moz-transition: -moz-transform 300ms ease 0;
		-ms-transition: -ms-transform 300ms ease 0;
		-o-transition: -o-transform 300ms ease 0;
		transition: transform 300ms ease 0;
	}
	#nav .nav li:nth-child(2) {
		-webkit-transition-delay: 100ms;
		-moz-transition-delay: 100ms;
		-ms-transition-delay: 100ms;
		-o-transition-delay: 100ms;
		transition-delay: 100ms;
	}
	#nav .nav li:nth-child(3) {
		-webkit-transition-delay: 200ms;
		-moz-transition-delay: 200ms;
		-ms-transition-delay: 200ms;
		-o-transition-delay: 200ms;
		transition-delay: 200ms;
	}
	#nav .nav li:nth-child(n+4) {
		-webkit-transition-delay: 300ms;
		-moz-transition-delay: 300ms;
		-ms-transition-delay: 300ms;
		-o-transition-delay: 300ms;
		transition-delay: 300ms;
	}
	body.nav-open #nav .nav li {
		-webkit-transform: translate3d(0,0,0);
		-moz-transform: translate3d(0,0,0);
		-ms-transform: translate3d(0,0,0);
		-o-transform: translate3d(0,0,0);
		transform: translate3d(0,0,0);
	}
	body.nav-open #pages {
		/*-webkit-filter: blur(5px);*/
	}
}

#brand {
	margin: 0;
	font-size: 1em;
}

#home {
	color: #f1f1f1;
	display: table;
	overflow: hidden;
	position: relative;
	margin-bottom: -2px;
	min-height: 50%;
	background: rgba(85, 153, 194, 0.83);
}

@media all and (max-height: 599px) {
	#home {
		min-height: 70%;
	}
}
@media all and (max-height: 340px) {
	#home {
		min-height: 100%;
	}
}

#home-bg {
	background-image: url(../img/mountains.jpg);
}

#quote-bg {
	background-image: url(../img/computer.jpg);
}

@media all and (max-width: 720px) {
	#home-bg {
		background-image: url(../img/mountains_720.jpg);
	}
	#quote-bg {
		background-image: url(../img/computer_720.jpg);
	}
}
@media all and (max-width: 480px) {
	#home-bg {
		background-image: url(../img/mountains_480.jpg);
	}
	#quote-bg {
		background-image: url(../img/computer_480.jpg);
	}
}


.filler {
	position: absolute; 
	left: 0px;
	top: 0px;
	bottom: 0px;
	right: 0px;
	z-index: -1;
}

#about {
	height: 70%;
	padding-top: 40px;
	margin-top: -160px;
	max-width: 700px;
}

#comp {
	height: 30vh;
	min-height: 300px;
	width: 100%;
	background-image: url(../img/computer.jpg);
}

#mask {
	width: 100%;
	height: 200px;
	-webkit-mask-image: url(../img/mask.png?a);
	float: left;
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: bottom;
}

#quote {
	background: rgba(85, 153, 194, 0.83);
	color: #EEE;
	margin: 50px 0;
	padding: 130px 0;
}

#work, #contact {
	padding-bottom: 120px;
}

#contact {
	background-color: #333;
	color: #BBB;
	background-repeat: repeat;
	background-size: initial;
}

#contact-form {
	padding: 15px 0;
	max-width: 700px;
	display: block;
	margin: 15px auto;
}

#contact-form .form-control {
	background-color: rgba(0,0,0,0.2);
	border: 0;
	margin-bottom: 10px;
	height: 60px;
	font-size: 1em;
	color: #AAA;
}
#contact-form .form-control::-webkit-input-placeholder { /* WebKit browsers */
    color:    #777;
}
#contact-form .form-control:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
   color:    #777;
}
#contact-form .form-control::-moz-placeholder { /* Mozilla Firefox 19+ */
   color:    #777;
}
#contact-form .form-control:-ms-input-placeholder { /* Internet Explorer 10+ */
   color:    #777;
}

#contact-form textarea.form-control {
	height: 130px;
}
#contact-form .btn {
	height: 60px;
	width: 100%;
	font-size: 1em;
	border: 0;
}

blockquote {
	border-left: 0;
	font-size: 1.4em;
}
blockquote p {
	font-style: italic;
}

blockquote footer, blockquote small, blockquote .small {
	color: inherit;
	font-size: 70%;
}

.quote-icon {
	font-size: 1.2em;
	background: #EEE;
	color: rgb(85, 153, 194);
	width: 2em;
	height: 2em;
	border-radius: 100%;
	line-height: 2em;
	margin-bottom: 30px;
}

.page-header {
    text-align: center;
    letter-spacing: 0.1em;
    font-size: 2em;
	border-bottom: 0;
}
.page-header:after {
    content: " ";
    height: 1px;
    width: 400px;
    max-width: 100%;
    border-top: 1px dashed rgba(0,0,0,0.1);
    display: block;
    margin: 15px auto;
	border-bottom: 0;
}

.page-subheader {
	margin: 40px 0 20px 0;
}

#work-tiles {
	border: 6px solid rgba(0,0,0,0.1);
	display: block;
	float: left;
	width: 100%;
	color: #EEE;
}

.tile-text, .tile-img {
	height: 800px;
	height: 50vw;
	background-color: white;
	display: table;
	float: left;
	color: #666;
	width: 50%;
	position: relative;
}
.tile-text.pull-right:before, .tile-text.pull-left:before {
	width: 0; 
	height: 0; 
	content: " ";
	position: absolute;
	z-index: 3;
	margin-top: -5px;
	top: 50%;
}
.tile-text.pull-right:before {
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent; 
	border-right: 10px solid white; 
	left: -10px;
}
.tile-text.pull-left:before {
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent; 
	border-left: 10px solid white; 
	right: -10px;
}

.tile-inner {
	text-align: center;
	vertical-align: middle;
	display: table-cell;
}
.tile-description {
	color: #AAA;
}
.tile-header:after {
	content: " ";
	border-bottom: 1px solid #f1f1f1;
	width: 80%;
	position: relative;
	height: 1px;
	display: block;
	margin: 10px auto;
}

#mockup1 {
	background-image: url(../img/mockup1.jpg);
}
#mockup2 {
	background-image: url(../img/mockup2.jpg);
}
#mockup3 {
	background-image: url(../img/mockup1_cropped.jpg);
}

@media all and (max-height: 799px) {
	#promo h2 {
		font-size: 2.2em;
	}
}

@media all and (max-width: 699px) {
	#promo h2 {
		font-size: 1.8em;
	}
	#portrait {
		width: 80px;
		height: 80px;
	}
	#about {
		margin-top: -150px;
	}
	
	
	.tile-img, .tile-text {
		width: 100%;
	}
	.tile-text {
		height: 40px !important;
	}
	.tile-text.pull-right:before, .tile-text.pull-left:before {
		margin-left: -5px;
		margin-top: -10px;
		left: 50%;
		border-left: 10px solid transparent;
		border-right: 10px solid transparent; 
		border-top: 10px solid transparent; 
		border-bottom: 10px solid white; 
		top: -10px;
	}
}


/* Buzz Out */
@-webkit-keyframes buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }

  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }

  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }

  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }

  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }

  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }

  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }

  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }

  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }

  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}

@keyframes buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }

  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }

  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }

  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }

  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }

  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }

  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }

  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }

  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }

  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}

.buzz-out {
  display: inline-block;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}
.buzz-out:hover, .buzz-out:focus, .buzz-out:active {
  -webkit-animation-name: buzz-out;
  animation-name: buzz-out;
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}

/* Effect 1: Brackets */
#nav .nav a::before,
#nav .nav a::after {
	display: inline-block;
	opacity: 0;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.2s;
	-moz-transition: -moz-transform 0.3s, opacity 0.2s;
	transition: transform 0.3s, opacity 0.2s;
}

#nav .nav a::before {
	margin-right: 10px;
	content: '[';
	-webkit-transform: translateX(20px);
	-moz-transform: translateX(20px);
	transform: translateX(20px);
}

#nav .nav a::after {
	margin-left: 10px;
	content: ']';
	-webkit-transform: translateX(-20px);
	-moz-transform: translateX(-20px);
	transform: translateX(-20px);
}

#nav .nav a:hover::before,
#nav .nav a:hover::after,
#nav .nav a:focus::before,
#nav .nav a:focus::after {
	opacity: 1;
	-webkit-transform: translateX(0px);
	-moz-transform: translateX(0px);
	transform: translateX(0px);
}

/* Effect 2: 3D rolling links, idea from http://hakim.se/thoughts/rolling-links */
a.flipper {
	-webkit-perspective: 1000px;
	-moz-perspective: 1000px;
	perspective: 1000px;
	display: inline-block;
}

a.flipper>span {
	position: relative;
	display: inline-block;
	padding: 0 1px;
	margin-left: -1px;
	margin-right: -1px;
	background: #FDFDFD;
	-webkit-transition: -webkit-transform 0.3s, background 0.3s;
	-moz-transition: -moz-transform 0.3s, background 0.3s;
	transition: transform 0.3s, background 0.3s;
	-webkit-transform-origin: 50% 0;
	-moz-transform-origin: 50% 0;
	transform-origin: 50% 0;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	transform-style: preserve-3d;
}
a.flipper:hover>span {
	background: rgba(255,255,255,0.7);
}

.csstransforms3d a.flipper>span::before {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 100%;
	background: #0965a0;
	color: #f1f1f1;
	content: attr(data-hover);
	-webkit-transition: background 0.3s;
	-moz-transition: background 0.3s;
	transition: background 0.3s;
	-webkit-transform: rotateX(-90deg);
	-moz-transform: rotateX(-90deg);
	transform: rotateX(-90deg);
	-webkit-transform-origin: 50% 0;
	-moz-transform-origin: 50% 0;
	transform-origin: 50% 0;
}

a.flipper:hover>span,
a.flipper:focus>span {
	-webkit-transform: rotateX(90deg) translateY(-22px);
	-moz-transform: rotateX(90deg) translateY(-22px);
	transform: rotateX(90deg) translateY(-22px);
}

.csstransforms3d a.flipper:hover>span::before,
.csstransforms3d a.flipper:focus>span::before {
	background: #28a2ee;	
}

.full {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	position: absolute;
}

.work {
	position: relative;
	overflow: hidden;
	height: 400px;
	width: 50%;
}
.work.wide {
	width: 100%;
	height: 600px;
}
@media all and (max-width: 599px) {
	.work, .work.wide {
		width: 100%;
		height: 300px;
	}
}
.work .full.bg-img {
	position: absolute;
	top: -20px;
	left: -20px;
	right: -20px;
	bottom: -20px;
	transition: all 300ms ease;
}
.texts {
	text-align: center;
	opacity: 0;
	-webkit-transition: all 300ms ease;
	-moz-transition: all 300ms ease;
	-ms-transition: all 300ms ease;
	-o-transition: all 300ms ease;
	transition: all 300ms ease;
	background: rgba(0,0,0,0.4);
	display: table;
	height: 100%;
	width: 100%;
	-webkit-transform: scale(1.3);
	-moz-transform: scale(1.3);
	-ms-transform: scale(1.3);
	-o-transform: scale(1.3);
	transform: scale(1.3);
}
.texts-cell {
	display: table-cell;
	vertical-align: middle;
}

.work:after {
	display: block;
	content: " ";
	position: absolute;
	top: 10px;
	left: 10px;
	right: 10px;
	bottom: 10px;
	border: 1px solid white;
	opacity: 0;
	-webkit-transition: all 300ms ease;
	-moz-transition: all 300ms ease;
	-ms-transition: all 300ms ease;
	-o-transition: all 300ms ease;
	transition: all 300ms ease;
	-webkit-transform: scale(0.9);
	-moz-transform: scale(0.9);
	-ms-transform: scale(0.9);
	-o-transform: scale(0.9);
	transform: scale(0.9);
}

.work:hover .bg-img {
	/*-webkit-filter: blur(5px);*/
}

.work:hover .texts, .texts:hover {
	opacity: 1;
	-webkit-transform: scale(1);
	-moz-transform: scale(1);
	-ms-transform: scale(1);
	-o-transform: scale(1);
	transform: scale(1);
}

.work:hover:after {
	opacity: 1;
	-webkit-transform: scale(1);
	-moz-transform: scale(1);
	-ms-transform: scale(1);
	-o-transform: scale(1);
	transform: scale(1);
}
.work:hover .full.bg-img {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
