* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


body, html {
  overflow: hidden;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern";
}

a:link { text-decoration: none; }
a:visited { text-decoration: none; }
a:hover { text-decoration: none; }
a:active { text-decoration: none; }


@font-face {
  font-family: 'neue_haas_grotesk_display65Md';
  src: url('../fonts/nhaasgroteskdspro-65md-webfont.woff2') format('woff2'),
       url('../fonts/nhaasgroteskdspro-65md-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;

}


@font-face {
  font-family: 'neue_haas_grotesk_disp55roman';
  src: url('../fonts/nhaasgroteskdspro-55rg-webfont.woff2') format('woff2'),
       url('../fonts/nhaasgroteskdspro-55rg-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;

}


.fade-in {
  opacity: 1;
  animation-name: fadeInOpacity;
  animation-iteration-count: 1;
  animation-timing-function: ease;
  animation-duration: 0.4s;
  -webkit-animation-name: fadeInOpacity;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-timing-function: ease;
  -webkit-animation-duration: 0.4s;
}

@keyframes fadeInOpacity {
  0% {
    opacity: 0;
    margin-bottom: -100px;
  }
  100% {
    opacity: 1;
    margin-bottom: 0px;
  }
}

.fade-in {
  opacity: 1;
  animation-name: fadeInOpacity;
  animation-iteration-count: 1;
  animation-timing-function: ease;
  animation-duration: 0.4s;
  -webkit-animation-name: fadeInOpacity;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-timing-function: ease;
  -webkit-animation-duration: 0.4s;
}

@keyframes fadeInOpacity {
  0% {
    opacity: 0;
    margin-bottom: -100px;
  }
  100% {
    opacity: 1;
    margin-bottom: 0px;
  }
}

@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fade-out {
  animation-name: fadeOut;
  animation-iteration-count: 1;
  animation-timing-function: ease;
  animation-duration: 0.325s;
  -webkit-animation-name: fadeOut;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-timing-function: ease;
  -webkit-animation-duration: 0.325s;
}


body {
  background-color: #000;
  color: #fff;
}

h1 {
  font-size: 8.75em;
  font-family: "neue_haas_grotesk_display65Md";
  font-weight: normal;
  font-style: normal;
}

h2 {
  font-size: 4em;
  font-family: "neue_haas_grotesk_display65Md";
  font-weight: normal;
  font-style: normal;
  line-height: 60px;
}

h3 {
  font-size: 2.625em;
  font-family: "neue_haas_grotesk_display65Md";
  font-weight: normal;
  font-style: normal;
}

h4 {
  font-size: 0.6875em;
  font-family: "neue_haas_grotesk_display65Md";
  font-weight: normal;
  font-style: normal;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

h5 {
  font-size: 0.875em;
  font-family: "neue_haas_grotesk_disp55roman";
  text-transform: uppercase;
  font-weight: normal;
}

p {
  font-size: 1.125em;
  font-family: "neue_haas_grotesk_disp55roman";
  font-weight: normal;
  font-style: normal;
  line-height: 24px;
  letter-spacing: 0.015em;
}

.container {
  display: flex;
}




/* Main navigation */


.nav-section {
  display: flex;
  width: 100%;
  flex-direction: column;
  overflow: hidden;
  position: fixed;
  bottom: 0;
  left: 0;
  padding-bottom: 38px;
}

ul.nav {
  width: 100%;
  list-style: none;
  display: flex;
  flex-direction: row;
}

ul.main-nav {
  max-width: 1190px;
  overflow: hidden;
  padding-top: 12px;
  padding-right: 40px;
  z-index: 10;
  padding-left: 40px;
  justify-content: space-between;
}

ul.page-nav {

}

ul.nav li {
  position: relative;
  cursor: pointer;
}

ul.nav li a {
  font-family: "neue_haas_grotesk_disp55roman";
  font-weight: normal;
  font-style: normal;
  text-decoration: none;
  font-size: 18px;
  color: #fff;
  display: flex;
  justify-content: center;
  transition: 0.2s ease;
  padding-bottom: 26px;
}



ul.nav li a:active {
  color: #fff;
  text-decoration: none;
}

ul.nav li a:visited {
  color: #fff;
  text-decoration: none;
}

ul.nav li:hover a {
 opacity: 0.5;
}


a.selected-works::before {
  width: 118px;
  height: 4px;
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: 20;
  background-image: url(../img/nav1-griddetail.svg);
  transition: 0.4s ease;
}

a.selected-works:hover::before {
  background-image: url(../img/hover-nav1-griddetail.svg);
  transition: 0.4s ease;
}

a.sound::before {
  width: 83px;
  height: 4px;
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: 20;
  transition: 0.4s ease;
  background-image: url(../img/nav2-griddetail.svg);
}

a.sound:hover::before {
  background-image: url(../img/hover-nav2-griddetail.svg);
  transition: 0.4s ease;
}


a.about::before {
  width: 104px;
  height: 4px;
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: 20;
  transition: 0.4s ease;
  background-image: url(../img/nav3-griddetail.svg);
}

a.about:hover::before {
  background-image: url(../img/hover-nav3-griddetail.svg);
  transition: 0.4s ease;
}


a.contact::before {
  width: 80px;
  height: 4px;
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: 20;
  transition: 0.4s ease;
  background-image: url(../img/nav4-griddetail.svg);
}

a.contact:hover::before {
  background-image: url(../img/hover-nav4-griddetail.svg);
  transition: 0.4s ease;
}




.nav-grid {
  position: absolute;
  bottom: 32px;
  display: flex;
  width: 100%;
  height: 16px;
  flex-direction: column;
  justify-content: space-between;
}

.nav-grid-line {
  display: flex;
  width: 100%;
  height: 1px;
  background-color: #6C6C6C;
}





.intro-section {
  display: flex;
  height: auto;
  align-self: flex-end;
  position: absolute;
  bottom: 101px;
  left: 34px;
}






.page {
  width: 100%;
  height: 100%;
  display: flex;
}

.page.home {
  padding: 0px;
}

.work-page {
  padding-left: 40px;
  padding-top: 40px;
  flex-direction: column;
}

.sub-page {
  padding-left: 40px;
  /*padding-top: 40px;*/
  flex-direction: column;
}

.contact-page {
  padding-left: 40px;
  /*padding-top: 40px;*/
  flex-direction: column;
}

.case-page {
  padding-left: 40px;
  /*padding-top: 40px;*/
  flex-direction: column;
}



.topbar {
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  padding-top: 40px;
  padding-right: 64px;
  margin-bottom: 16px;
  z-index: 10;
}

.work-page .topbar {
  padding-top: 0px;
}

.sub-page h2 {


}


a.close-btn {
  width: 32px;
  height: 32px;
  background-image: url(../img/cross.svg);
  transition: 0.2s ease;
}

a.close-btn:hover {
  background-image: url(../img/cross-hover.svg);
  transition: 0.2s ease;
}



/* horizontal scroll page */



.scrolling-wrapper {
  display: flex;
  width: 100%;
  height: auto;
  flex-wrap: nowrap;
  -webkit-overflow-scrolling: touch;
  
}



/* Hide scrollbar for Chrome, Safari and Opera */
.scrolling-wrapper::-webkit-scrollbar {
  display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
.scrolling-wrapper {
  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */
}


/* Portfolio list */


.list {
  display: flex;
  width: auto;
  height: 69vh;
  padding-top: 92px;
  --animate-delay: 2s;
}

a.list-item {
  width: 640px;
  height: 100%;
  flex: 0 0 auto;
  background-color: rgb(0, 0, 0);
  margin-right: 16px;
  cursor: url("../img/cross-pointer.svg"), auto;
}

a.list-item:nth-child(2n+0) {
  height: 80%;
}

a.list-item:nth-child(3n+0) {
  height: 90%;
}

a.list-item:nth-child(4n+0) {
  height: 100%;
}

a.list-item:nth-child(5n+0) {
  height: 80%;
}

a.list-item:nth-child(6n+0) {
  height: 90%;
}

a.list-item:nth-child(7n+0) {
  height: 100%;
}

a.list-item:nth-child(8n+0) {
  height: 80%;
}


a.list-item img {
  width: 100%;
  height: 100%;
  transition: 0.2s ease;
  object-fit: cover;
}

a.list-item:hover img {
  opacity: 0.5;
}

.list-item-img {
  width: 100%;
  height: 100%;
  position: relative;
}

.list-item-overlay {
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: 0.2s ease opacity;
  display: flex;
  position: absolute;
  flex-direction: row;
  align-items: flex-end;
  justify-content: center;
  text-decoration: none;
  left: 0px;
  top: 0px;
  right: 0px;
  bottom: 0px;
  padding-bottom: 16px;
}

.list-item-overlay p {
  font-family: "neue_haas_grotesk_display65Md";
  font-size: 0.875em;
  text-transform: uppercase;
  color: white;
  text-decoration: none !important;
  transition: 0.2s ease opacity;
  line-height: unset;
}


a.list-item:hover .list-item-overlay {
  opacity: 1;
  transition: 0.6s ease opacity;
}



/* --- Content --- */


.content {
  width: auto;
  height: 100vh;
  display: flex;
  align-items: flex-end;
  padding-bottom: 129px;
}

.content section {
  display: flex;
  align-self: flex-end;
  margin-right: 330px;
}

section.social {
  align-self: center;
}

article {
  width: auto;
}

article p {
  width: 460px;
}

.sub-page section.text article {
  margin-right: 64px;
}

.project-info {
  display: flex;
  flex-direction: row;
  margin-bottom: 24px;
}

.project-info h5 {
  margin-right: 16px;
  letter-spacing: 0.2px;
}

.content video {
  width: fit-content;
  height: 78vh;
}

.image-gallery {
  width: 912px;
  height: 59vh;
  display: flex;
  flex-direction: row;
  margin-bottom: 9%;
  margin-right: 16px;

}

.image-gallery img:first-child {
  width: 50%;
  height: auto;
  margin-right: 16px;
  align-self: flex-end;
}

.image-gallery img:nth-child(2) {
  width: 50%;
  height: auto;
  align-self: flex-start;
}

.social-link {
  width: max-content;
  display: flex;
  align-self: center;
  flex-direction: column;
  margin-left: 82px;
}


.social-link li {
  list-style: none;
  margin-bottom: 16px;
  position: relative;
  transition: 0.2s ease;
}

.social-link li:hover {
  opacity: 0.5;
}

.social-link a {
  font-size: 1.125em;
  font-family: "neue_haas_grotesk_disp55roman";
  font-weight: normal;
  font-style: normal;
  line-height: 24px;
  letter-spacing: 0.015em;
  color: white;
  transition: 0.2s ease;
}

.social-link a:hover {
  opacity: 0.5;
}

.social-link li:first-child::before {
  width: 15px;
  height: 13px;
  position: absolute;
  top: 5px;
  left: -24px;
  content: "";
  background-image: url(../img/social-link-icon-01.svg);
}

.social-link li:nth-child(2)::before {
  width: 15px;
  height: 13px;
  position: absolute;
  top: 5px;
  left: -24px;
  content: "";
  background-image: url(../img/social-link-icon-02.svg);
}

.social-link li:nth-child(3)::before {
  width: 15px;
  height: 13px;
  position: absolute;
  top: 5px;
  left: -24px;
  content: "";
  background-image: url(../img/social-link-icon-03.svg);
}


.social-link li:last-child {
  margin-bottom: 0px;
}


.contact-page .social-link {
  margin-left: 156px;
}






/* --- Responsive nav --- */

.mobile-nav {
  width: 100%;
  background-color: #000;
  position: fixed;
  bottom: 0px;
  z-index: 10;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.mobile-nav a {
  font-family: "neue_haas_grotesk_disp55roman";
  font-weight: normal;
  font-style: normal;
  text-decoration: none;
  font-size: 1.125em;
  letter-spacing: 0.5px;
  cursor: pointer;
  color: #fff;
}
.mobile-nav a:focus {
  background: black;
  color: white;
}
.mobile-nav a:link,
.mobile-nav a:visited {
  color: white;
}
.mobile-nav a:hover,
.mobile-nav a:active {
  background: rgba(34, 34, 34, 0.25);
}
.mobile-nav li {
  display: inline;
}
.mobile-nav--collapsed {
  display: flex;
  background: #000;
  width: 28px;
  height: 22px;
  cursor: pointer;
  transition: all 0.25s;
  z-index: 99;
  flex-direction: column;
  justify-content: center;
}

.mobile-nav h1 {
  z-index: 100;
}

.mobile-nav-stack {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  margin-bottom: 60px;
}

.mobile-nav .nav-grid {
  bottom: 24px;
  z-index: 100;
}

.mobile-nav-grid-detail {
  width: 225px;
  height: 4px;
  position: absolute;
  top: 6px;
  left: 24px;
  background-image: url(../img/mobile-nav-grid-detail.svg);
}


.no-home h1 {
  opacity: 0;
}


.hamburger {
  position: absolute;
  width: 1.75em;
  height: 0.125em;
  background-color: #fff;
}
.hamburger:before {
  position: absolute;
  transition: all 0.25s;
  content: "";
  width: 1.75em;
  height: 0.125em;
  background-color: #fff;
  top: -8px;
  left: 0;
}

.hamburger:after {
  position: absolute;
  transition: all 0.25s;
  content: "";
  width: 1.75em;
  height: 0.125em;
  background-color: #fff;
  bottom: -8px;
  left: 0;
}

.hamburger--on {
  background-color: transparent;
  transition: all 0.25s;
}
.hamburger--on:before {
  transition: all 0.25s;
  content: "";
  transform: rotate(45deg);
  top: 0px;
}
.hamburger--on:after {
  transition: all 0.25s;
  content: "";
  transform: rotate(-45deg);
  top: 0px;
}

.mobile-nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.mobile-nav-list li {
  padding: 12px;
}
.nav-overlay {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  /*visibility: hidden;*/
  transition: opacity 0.35s, visibility 0.35s, height 0.35s;
  -webkit-transition: opacity 0.35s, visibility 0.35s, height 0.35s;
  overflow: hidden;
  background: #00000070;
  z-index: 99;
  justify-content: center;
  display: none;
  backdrop-filter: blur(30px);
}
.nav-overlay--on {
  height: 100%;
  opacity: 1;
  display: flex;
  transition: opacity 0.35s;
  -webkit-transition: opacity 0.35s;
}








/* --- MEDIA QUERIES --- */

@media (pointer:coarse) {
  .scrolling-wrapper {
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }
}




@media screen and (min-width: 2000px) {

}

@media screen and (max-width: 1260px) {

}

@media screen and (max-width: 1150px) {


}

@media screen and (max-width: 960px) {

  h1 {
    font-size: 7em;
  }

  ul.main-nav {
    left: 0;
  }



}



@media screen and (min-width: 769px) {
  .mobile-nav {
    display: none;
  }
}

/* --- MOBILE --- */

@media screen and (max-width: 768px) {
  
  .intro-section h1 {
    display: none;
  }

  h1 {
    font-size: 2.5em;
  }

  ul.nav {
    display: none;
  }

  h2 {

  }

  .topbar {
    padding-right: 40px;
    padding-top: 0px;
  }

  .topbar h2 {
    font-size: 2.5em;
    line-height: 40px;
  }

  .work-page .topbar {
    position: unset;
    padding-right: 0px;
  }

  .list {
    padding-top: 16px;
  }

  a.list-item {
    width: 560px;
    height: 90%;
  }

  a.list-item:nth-child(2n+0) {
    height: 70%;
  }
  
  a.list-item:nth-child(3n+0) {
    height: 80%;
  }

  a.list-item:nth-child(4n+0) {
    height: 90%;
  }
  
  a.list-item:nth-child(5n+0) {
    height: 70%;
  }
  
  a.list-item:nth-child(6n+0) {
    height: 80%;
  }
  
  a.list-item:nth-child(7n+0) {
    height: 90%;
  }
  
  a.list-item:nth-child(8n+0) {
    height: 70%;
  }

  .page {
    padding-top: 24px;
    padding-left: 24px;
    padding-right: 24px;
  }

  .content {
    /*padding-bottom: 110px;*/
  }




}


@media screen and (max-width: 776px) {
}

@media screen and (max-width: 700px), (max-height: 850px) {

  a.list-item {
    width: 400px;
  }

}

@media screen and (max-width: 650px) {

}

@media screen and (max-width: 524px) {

  a.list-item {
    width: 324px;
  }

  .content section {
    margin-right: 80px;
  }

  section.text {
    width: 100vw;
  }

  article p {
    width: 85%;
  }

  .image-gallery {
    width: 640px;
  }

  .sub-page section.text {
    width: auto;
  }

  .sub-page section.text article {
    width: 100vw;
    margin-right: 24px;
  }

  .contact-page .social-link {
    margin-left: 98px;
  }

}

@media screen and (max-width: 424px) {

  a.list-item {
    width: 284px;
  }
 
}


@media screen and (max-width: 414px) {

  .mobile-nav h1 {
    font-size: 2.3em;
  }

}




/* --- MEDIA QUERIES - HEIGHT GANG --- */



@media screen and (max-height: 700px), screen and (max-width: 420px) {

  .image-gallery {
    width: 570px;
    margin-bottom: 6%;
  }

}


@media screen and (max-height: 455px) {
  a.list-item {
    height: 70%;
  }
}


@media screen and (max-height: 667px), screen and (max-width: 440px) {

  .content video {
    height: 66vh;
  }

  .content video.square-video {
    width: 95vw;
  }
}


/* --- CSS OVERRIDES --- */

section.align-center {
  align-self: center;
}
