/*********************
Utils
*********************/
/*********************
COLORS
*********************/
/*********************
GRID
*********************/
/*********************
RESPONSIVE
*********************/
/*****************************************
Mixins
*****************************************/
/* 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; }

/*****************************************
Utils
*****************************************/
.f {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .f--center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center; }

/*********************
Components
*********************/
/*****************************************
links
*****************************************/
.link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }

/*****************************************
Buttons
*****************************************/
.btn {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }

/*********************
Layout
*********************/
@font-face {
  font-family: 'Main Regular';
  src: url("../font/nbi-r.woff2") format("woff2"), url("../font/nbi-r.woff") format("woff");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Main Bold';
  src: url("../font/nbi-b.woff2") format("woff2"), url("../font/nbi-b.woff") format("woff");
  font-weight: bold;
  font-style: normal; }

.smoothing {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/*********************
General
*********************/
html {
  font-size: 62.5%;
  overflow: hidden; }

body {
  font-family: "Main Regular", sans-serif;
  line-height: 1.4em;
  font-weight: 500;
  font-style: normal;
  font-size: 1.4rem;
  color: #111;
  background-color: #111;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  body.isMobile {
    background-color: #EEEEEE; }

.loading * {
  cursor: progress !important; }

::-moz-selection {
  background: rgba(0, 0, 0, 0.99);
  color: #fff; }

::selection {
  background: rgba(0, 0, 0, 0.99);
  color: #fff; }

::-moz-selection {
  background: rgba(0, 0, 0, 0.99);
  color: #fff; }

/*********************
Links
*********************/
a, a:visited, .a {
  pointer-events: auto;
  color: #000;
  text-decoration: none;
  -webkit-transition: color 500ms cubic-bezier(0.4, 0.8, 0.74, 1);
  transition: color 500ms cubic-bezier(0.4, 0.8, 0.74, 1); }
  a:hover, a:visited:hover, .a:hover {
    -webkit-transition: color 0;
    transition: color 0;
    color: black; }
  a:active, a:visited:active, .a:active {
    color: black; }

/*********************
Parapgraph
*********************/
b {
  font-family: "Main Bold", sans-serif; }

/*********************
Headings
*********************/
h1, h2, h3, h4 {
  text-rendering: optimizelegibility; }

h1 {
  font-size: 2rem;
  line-height: 1.5em; }

h2 {
  font-size: 1.1rem;
  line-height: 1.3em; }

a, img {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-touch-callout: none; }

/*********************
Post & content
*********************/
#container > div.hiding {
  pointer-events: none;
  position: fixed; }

.scrollable {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  overflow-x: hidden; }
  .isMobile .scrollable {
    opacity: 0; }

.content-wrapper {
  width: 100%; }

.content {
  padding: 4rem 0;
  text-align: center; }

.dg * {
  pointer-events: auto; }

.dg.ac {
  z-index: 9999999 !important; }
  .dg.ac .property-name {
    color: white; }
  .dg.ac .close-button {
    color: white; }

.fxLayer {
  z-index: 8;
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  mix-blend-mode: nomal; }

.r {
  position: relative;
  display: block; }
  .r video, .r img, .r iframe, .r svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover; }

img.lazy, video.lazy {
  -webkit-transition: opacity 1.2s cubic-bezier(0.16, 1.08, 0.38, 0.98);
  transition: opacity 1.2s cubic-bezier(0.16, 1.08, 0.38, 0.98);
  opacity: 0; }
  img.lazy.loaded, video.lazy.loaded {
    opacity: 1; }

.debug [data-prllx] {
  background: red !important; }
  .debug [data-prllx] > * {
    opacity: .5 !important; }

.plyr__controls .plyr__progress + .plyr__control {
  margin-left: 11px; }

/*********************
Partials
*********************/
/*****************************************
Header
*****************************************/
/*****************************************
Footer
*****************************************/
.footer {
  z-index: 10;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center; }

.konami__loading {
  font-size: 4vh;
  line-height: 1.2em;
  margin-bottom: 4.2vh; }

.konami__btn {
  pointer-events: auto;
  display: none;
  position: fixed;
  bottom: 5vh;
  font-size: 4.5vh;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  cursor: pointer;
  opacity: .2; }
  .konami__btn:before {
    content: "\266B"; }
  .konami__btn:hover {
    opacity: 1 !important; }

/*****************************************
Navigation
*****************************************/
.nav {
  z-index: 999;
  position: fixed;
  width: 100vw;
  font-size: 1.1rem;
  letter-spacing: 1em;
  margin-top: -0.6em;
  pointer-events: none; }
  .isMobile .nav {
    margin-top: 0; }
  .nav .menu {
    margin: 6.25vw;
    text-align: center; }
    .nav .menu__item {
      pointer-events: all;
      display: inline-block;
      padding: 0.4em 0.6em; }
    .nav .menu__item--work {
      margin-left: -0.6em;
      float: left; }
    .nav .menu__item--about {
      margin-right: -0.6em;
      float: right; }
      .isMobile .nav .menu__item--about {
        margin-right: -1.6em; }

.isTouch .coverflow__image-title {
  font-size: 5vw; }

.dummy {
  z-index: 9999999999999;
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  background: red; }

.coverflow {
  visibility: hidden;
  z-index: 5;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  cursor: -webkit-grab; }
  .coverflow.grabbing {
    cursor: -webkit-grabbing; }
  .coverflow.disable {
    pointer-events: none; }
  .coverflow a {
    pointer-events: all;
    width: inherit;
    height: inherit;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .coverflow__title {
    z-index: 99;
    position: absolute;
    top: 0;
    left: 0;
    width: inherit;
    text-align: center;
    font-size: 4vw;
    color: white;
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    white-space: nowrap; }
    .coverflow__title-span {
      position: absolute;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
    .coverflow__title-holder {
      position: absolute;
      top: 0;
      left: 0; }
      .dancing .coverflow__title-holder {
        mix-blend-mode: difference; }
  .coverflow-holder {
    position: absolute;
    left: 0;
    top: 0;
    height: 100vh;
    pointer-events: auto; }
    .disable .coverflow-holder {
      pointer-events: none !important; }
      .disable .coverflow-holder a {
        pointer-events: none !important; }
  .coverflow picture {
    width: 100%;
    height: 100%;
    padding-bottom: 0 !important; }
  .coverflow__images {
    padding: 0 12.5vw; }
  .coverflow__image {
    pointer-events: auto;
    cursor: pointer; }
    .disable .coverflow__image {
      pointer-events: none !important; }
      .disable .coverflow__image a {
        pointer-events: none !important; }
  .coverflow__image-title_container {
    position: absolute;
    width: inherit;
    height: inherit;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    pointer-events: none; }
  .coverflow__image-title {
    color: white;
    font-size: 3rem;
    opacity: 0;
    visibility: hidden;
    display: none;
    /* text-align: center; */
    /* margin: auto; */
    white-space: nowrap;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
  .coverflow__image-overlay {
    z-index: 1;
    position: absolute;
    width: calc(100% - 1px);
    height: calc(100% - 1px); }
  .coverflow__image-bg {
    z-index: 2;
    position: absolute;
    width: inherit;
    height: inherit;
    -o-object-fit: cover;
    object-fit: cover;
    margin-left: -0.1vh; }
  .coverflow__image-bg_container {
    width: inherit;
    height: inherit; }
    .coverflow__image-bg_container-rot {
      width: inherit;
      height: inherit; }
  .coverflow ul {
    top: 0;
    left: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 100vh;
    font-size: 0;
    line-height: 0; }
  .coverflow li {
    font-size: 0;
    line-height: 0; }
  .coverflow li:nth-child(odd) {
    width: calc(65vh*21/29.7);
    height: 65vh; }
    .coverflow li:nth-child(odd) .coverflow__image-title {
      -webkit-transform: translate(-50%, -8rem);
      transform: translate(-50%, -8rem); }
  .coverflow li:nth-child(even) {
    width: calc(55vh*21/29.7);
    height: 55vh; }
    .coverflow li:nth-child(even) .coverflow__image-title {
      -webkit-transform: translate(-50%, 8rem);
      transform: translate(-50%, 8rem); }
  .coverflow .fromWidth li:nth-child(odd) {
    width: 25vw;
    height: calc( 25vw * 29.7/21); }
  .coverflow .fromWidth li:nth-child(even) {
    width: 18.75vw;
    height: calc( 18.75vw * 29.7/21); }

/*********************
Pages
*********************/
.home {
  display: none;
  width: 100vw; }
  .isMobile .home {
    display: block; }
  .home__projects {
    width: 100%;
    padding-top: 22vw;
    padding-bottom: 9vw; }
    .home__projects-project {
      margin-bottom: 9vw; }
      .home__projects-project a {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column; }
    .home__projects-photo {
      margin: auto;
      width: 70%; }
    .home__projects-title {
      text-align: center;
      font-size: 4vw;
      line-height: 1.4em;
      padding-top: 3vw; }

.about {
  z-index: 10;
  position: absolute; }

.page-about {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  color: white; }
  .page-about a, .page-about a:hover {
    color: white; }
  .page-about-wrapper {
    width: 100vw;
    min-height: 100vh;
    background: black;
    overflow: hidden; }
    .isMobile .page-about-wrapper {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center; }
  .page-about_title {
    font-size: 11.2vw;
    line-height: 1.1em;
    padding-top: 1em;
    margin-bottom: .2em; }
    .isMobile .page-about_title {
      padding-top: 2.5em;
      margin-bottom: 1em; }
    .page-about_title-line1 {
      margin-left: 25vw;
      margin-bottom: .3em; }
    .page-about_title-line2 {
      margin-left: 43.75vw;
      margin-bottom: .3em; }
    .page-about_title-line3 {
      margin-left: 5.85vw; }
  .page-about_content {
    font-size: 1.75vw;
    line-height: 1.5em;
    width: 20.2em;
    margin-left: 44.15vw; }
    .isMobile .page-about_content {
      font-size: 4vw;
      line-height: 1.5em;
      margin-left: 6vw; }
  .page-about_email {
    display: inline-block;
    margin-top: 3vw;
    font-size: 1.75vw;
    line-height: 1.5em;
    letter-spacing: 0.05em; }
    .isMobile .page-about_email {
      font-size: 4vw; }
  .page-about_credits {
    margin: 19vw auto 6rem;
    font-size: 1.1rem;
    letter-spacing: 0.28em;
    text-align: center; }
    .isMobile .page-about_credits {
      margin: 32vw auto 7vw; }

.portfolio-content {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column;
  flex-flow: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: center;
  padding: 9.375vw 0 12.5vw 0;
  background-color: #c9c9c9; }
  .isMobile .portfolio-content {
    padding-top: 18vw;
    padding-bottom: 0; }
  .dancing .portfolio-content {
    opacity: .54; }

.portfolio-background {
  z-index: 1;
  background: white;
  position: absolute;
  top: 100vh;
  left: 0;
  width: 100vw;
  height: calc(100% - 200vh); }
  .isMobile .portfolio-background {
    top: 60vh;
    height: calc(100% - 110vh); }

.portfolio-cover {
  z-index: 1;
  width: 52vw;
  height: calc(52vw*29.7/21);
  margin: auto;
  margin-top: -0.44em;
  background-position: 50% 50%;
  background-size: cover;
  visibility: hidden; }
  .portfolio-cover picture {
    width: 100%;
    height: 100%;
    padding-bottom: 0 !important; }
  .isMobile .portfolio-cover {
    visibility: visible;
    width: 70vw;
    height: calc(70vw*29.7/21); }

.portfolio-title {
  z-index: 2;
  padding: 2rem 0;
  font-size: 4vw;
  line-height: 1.4em;
  width: 100vw;
  color: black;
  white-space: nowrap;
  pointer-events: none; }
  .isMobile .portfolio-title {
    width: 88%;
    font-size: 6vw;
    line-height: 1em; }
  .portfolio-title span {
    z-index: 2;
    opacity: 0;
    visibility: hidden;
    position: relative;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    .isMobile .portfolio-title span {
      opacity: 1;
      visibility: visible;
      white-space: normal; }

.portfolio-infos-wrapper {
  z-index: 1;
  padding: 3vw 0 6vw;
  font-size: 2.3vw;
  line-height: 1.5em; }
  .isMobile .portfolio-infos-wrapper {
    font-size: 4vw;
    padding: 3vw 6vw 6vw; }

.portfolio-gallery {
  z-index: 1;
  padding: 2rem 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  text-align: left; }
  .isMobile .portfolio-gallery {
    padding: 4vw 0 0; }
  .portfolio-gallery img {
    width: inherit;
    width: 100%; }
  .portfolio-gallery li {
    position: relative;
    margin-bottom: 6.25vw;
    background: #EEEEEE;
    line-height: 0; }
  .portfolio-gallery__col-1 {
    width: 50vw;
    margin-top: 12vw; }
    .portfolio-gallery__col-1 li {
      width: 56.25vw; }
    .portfolio-gallery__col-1 li:nth-child(even) {
      text-align: right;
      width: 43.8vw;
      -webkit-transform: translate(6.25vw, 0);
      transform: translate(6.25vw, 0); }
      .isMobile .portfolio-gallery__col-1 li:nth-child(even) {
        width: 43.9vw; }
  .portfolio-gallery__col-2 {
    width: 50%; }
    .portfolio-gallery__col-2 li {
      width: 50vw; }
    .portfolio-gallery__col-2 li:nth-child(even) {
      width: 37.5vw; }

.portfolio-next {
  z-index: 3;
  position: relative;
  width: 100vw;
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column;
  flex-flow: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center; }
  .isMobile .portfolio-next {
    height: 80vh; }
  .dancing .portfolio-next {
    opacity: .54; }

.portfolio-next-mask {
  z-index: 1;
  position: relative;
  margin: auto;
  pointer-events: auto; }

.portfolio-next-background {
  z-index: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #b5b5b5;
  display: none; }
  .isMobile .portfolio-next-background {
    display: block; }

.portfolio-next-cover {
  line-height: 0;
  width: calc(85vh*21/29.7);
  height: 85vh;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }
  .portfolio-next-cover picture {
    width: 100%;
    height: 100%;
    padding-bottom: 0 !important; }
  .isMobile .portfolio-next-cover {
    width: 70vw;
    height: calc(70vw*29.7/21); }

.portfolio-next-title {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 4vw;
  color: white; }
  .portfolio-next-title span {
    margin: auto; }
  .isMobile .portfolio-next-title {
    height: 100%;
    font-size: 7vw; }
