/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

* {
  box-sizing: border-box; }

body {
  font-family: sans-serif;
  text-rendering: optimizeLegibility;
  font-size: 15px; }

.mobile-nav-button {
  display: none; }
  @media (max-width: 786px) {
    .mobile-nav-button {
      display: flex;
      width: 20px;
      height: 16px;
      flex-direction: column;
      justify-content: space-between;
      cursor: pointer; }
      .mobile-nav-button .nav-line {
        width: 100%;
        height: 2px;
        background: #000;
        transform-origin: 100% 50%; }
        .mobile-nav-button .nav-line:nth-child(2) {
          transform: scaleX(0.72); } }

.mobile-opened nav .mobile-nav-button {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 20px; }
  .mobile-opened nav .mobile-nav-button .nav-line:nth-child(2) {
    display: none; }
  .mobile-opened nav .mobile-nav-button .nav-line:nth-child(1) {
    transform: rotate(-45deg);
    transform-origin: 100% 50%; }
  .mobile-opened nav .mobile-nav-button .nav-line:nth-child(3) {
    transform: rotate(45deg);
    transform-origin: 100% 50%; }

header {
  position: fixed;
  z-index: 100;
  left: 25px;
  top: 0;
  color: #000;
  width: 150px;
  height: 100%;
  padding-top: 35px; }
  header.mobile-opened nav {
    transform: translate(0, 0); }
  @media (max-width: 786px) {
    header {
      left: 10px;
      top: 35px;
      padding-top: 0; }
      header nav {
        position: fixed;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: #fff;
        border-bottom: 1px solid #c3c3c3;
        padding-left: 20px;
        padding-top: 20px;
        transform: translate(0, -100%);
        transition: transform 600ms ease-out; }
        header nav ul {
          display: flex;
          flex-direction: column; } }
  header li {
    text-transform: uppercase;
    font-size: 13px;
    margin-bottom: 12px; }
    header li.home {
      font-size: 18px;
      font-weight: bold; }
    header li.social {
      margin-top: 16px;
      font-size: 17px; }
    header li .submenu {
      display: none;
      margin-left: 8px;
      margin-top: 12px; }
      header li .submenu li {
        font-size: 88%; }
  header a {
    color: inherit !important;
    text-decoration: none !important; }
    header a:hover {
      font-weight: bold; }

#loader {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
  background-image: url(../images/loader.gif);
  background-size: 160px auto;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none; }

#content {
  opacity: 0;
  transition: opacity 800ms ease-out; }
  #content.loaded {
    opacity: 1; }
    #content.loaded ~ #loader {
      opacity: 0; }

.hero-container {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0; }

.hero-container .down-chevron {
  position: absolute;
  z-index: 100;
  color: #000;
  bottom: 4%;
  left: 50%;
  transform: translate(-50%, 0);
  animation: downPulse 1600ms ease-out infinite; }

@keyframes downPulse {
  0% {
    transform: translate(-50%, 0); }
  40% {
    transform: translate(-50%, 8px); }
  92% {
    transform: translate(-50%, 0); } }

.hero-container img {
  height: 100%;
  width: 197.5vh;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); }

@media (min-aspect-ratio: 1280 / 648) {
  .hero-container img {
    height: 50.625vw;
    width: 100vw; } }

#content {
  width: 100%;
  padding: 0 180px; }
  @media (max-width: 1200px) {
    #content {
      padding: 0 35px 0 180px; } }
  @media (max-width: 786px) {
    #content {
      padding: 0 35px; } }

/*HOMEPAGE*/
.homepage-content {
  transform: translate(0, 100vh); }
  .homepage-content .mission-statement {
    position: absolute;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column; }
  .homepage-content .mission-content p {
    line-height: 150%;
    margin-bottom: 16px; }

/*PROJECT TILES*/
.project-tiles-container {
  width: 100%; }

.project-tile, .grid-sizer {
  width: 33.33%; }
  @media (max-width: 786px) {
    .project-tile, .grid-sizer {
      width: 100%; } }

.project-tile {
  float: left;
  padding: 8px;
  position: relative;
  cursor: pointer; }
  .project-tile.twoColumn {
    width: 66.66%; }
  .project-tile.threeColumn {
    width: 100%; }
  .project-tile .project-image {
    overflow: hidden;
    position: relative; }
    .project-tile .project-image:before {
      content: '';
      width: 100%;
      height: 100%;
      position: absolute;
      background: #e3e3e3;
      opacity: 0;
      transition: opacity 400ms ease-out;
      z-index: 1; }
  .project-tile a {
    color: inherit; }
  .project-tile img {
    width: 100%;
    display: block;
    transition: filter 600ms ease-out, opacity 400ms ease-out;
    pointer-events: none; }
  .project-tile .project-description {
    z-index: 10;
    position: absolute;
    width: calc(100% - 16px);
    height: calc(100% - 16px);
    top: 0;
    left: 0;
    opacity: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 400ms ease-out;
    background: rgba(167, 146, 157, 0.5);
    margin: 8px; }
    .project-tile .project-description h1 {
      position: relative;
      display: inline-block; }
  .project-tile:hover .project-image:before {
    opacity: 0.4; }
  .project-tile:hover .project-description {
    opacity: 1; }
  .project-tile:hover img {
    opacity: 0.64;
    filter: blur(6px); }

.tag-view {
  margin: 27px 0 35px; }

/*PROJECT VIEW*/
.related-tiles {
  margin: 120px -8px 35px; }

.project-view {
  padding: 0 35px;
  margin: 35px 0; }
  .project-view img {
    max-width: 100%;
    max-height: 72vh;
    pointer-events: none;
    display: block;
    margin: 0 auto; }
  .project-view p {
    line-height: 140%; }
  .project-view a {
    text-decoration: underline; }
  .project-view .project-thumbs {
    margin-left: -8px;
    margin-right: -8px;
    margin-top: 16px;
    position: relative; }
    .project-view .project-thumbs .project-thumb-container {
      float: left;
      padding: 0 8px; }
    .project-view .project-thumbs .thumb-overflow {
      overflow: hidden; }
    .project-view .project-thumbs .thumb {
      width: 100%;
      padding-bottom: 56.625%;
      background-size: cover;
      background-position: center;
      opacity: 0.72;
      position: relative;
      cursor: pointer; }
      .project-view .project-thumbs .thumb:before {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        background: #e3e3e3;
        opacity: 0.64;
        transition: opacity 400ms ease-out;
        z-index: 1; }
      .project-view .project-thumbs .thumb.active, .project-view .project-thumbs .thumb:hover {
        opacity: 1; }
        .project-view .project-thumbs .thumb.active:before, .project-view .project-thumbs .thumb:hover:before {
          opacity: 0; }
  .project-view .project-body {
    margin-top: 16px;
    font-size: 15px; }
    .project-view .project-body p {
      line-height: 1.5; }
    .project-view .project-body a {
      color: inherit; }
  .project-view .nav-arrows {
    position: absolute;
    width: calc(100% + 32px);
    margin-left: -16px;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none; }
    .project-view .nav-arrows .arrow {
      pointer-events: auto;
      position: absolute;
      font-size: 21px;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 16px;
      cursor: pointer;
      transition: transform 400ms ease-out, opacity 200ms ease-out; }
      .project-view .nav-arrows .arrow.prev {
        left: 2px;
        transform-origin: 100% 50%; }
      .project-view .nav-arrows .arrow.next {
        right: 2px;
        transform-origin: 0% 50%; }
      .project-view .nav-arrows .arrow:hover {
        opacity: 0.72;
        transform: scale(1.16); }

.contact-view {
  margin: 35px auto;
  max-width: 800px; }
  .contact-view b, .contact-view strong {
    font-weight: bold; }
  .contact-view a {
    text-decoration: underline;
    color: inherit !important; }
    .contact-view a:hover {
      text-decoration: none; }

/*BIO*/
.bio-view {
  margin: 35px auto;
  max-width: 960px; }
  .bio-view img {
    width: 100%; }
  .bio-view p {
    line-height: 150%; }
  .bio-view b, .bio-view strong {
    font-weight: bold; }
  .bio-view a {
    color: inherit; }
  .bio-view h1 {
    text-transform: uppercase;
    margin: 16px 0;
    padding-bottom: 16px;
    font-weight: bold;
    position: relative;
    cursor: pointer; }
    .bio-view h1:before {
      content: '';
      width: 100%;
      height: 1px;
      position: absolute;
      bottom: 0;
      left: 0;
      background: #e3e3e3; }
    .bio-view h1:after {
      content: '';
      width: 100%;
      height: 1px;
      position: absolute;
      bottom: 0;
      left: 0;
      background: #000;
      transform: scaleX(0);
      opacity: 0;
      transition: transform 400ms ease-out, opacity 400ms ease-in; }
    .bio-view h1:hover:after {
      transform: scaleX(1);
      opacity: 1; }
  .bio-view .bio-content {
    margin-top: 35px; }

.finish {
  display: block;
  width: 100%;
  clear: both; }

#mc-container {
  width: 100%;
  margin: 32px 0;
  text-align: center; }
  #mc-container span {
    margin-bottom: 16px;
    display: block;
    font-size: 13px;
    font-weight: 700; }
  #mc-container #mc_embed_signup {
    background: transparent; }
    #mc-container #mc_embed_signup form {
      margin: 0;
      padding: 0; }
    #mc-container #mc_embed_signup input {
      margin: 0;
      width: 100%; }
      #mc-container #mc_embed_signup input.email {
        border: 1px solid #000;
        border-radius: 0;
        margin-bottom: 2px; }
      #mc-container #mc_embed_signup input.button {
        background: #000;
        border-radius: 0;
        border: 1px solid #000; }
  #mc-container a {
    color: #000; }
  #mc-container .insta-social {
    display: inline-block;
    margin-top: 8px; }
