  html, body{
    /* height: 100%; */
    background-color: #d7d7d7;
    scroll-behavior: auto;
    overscroll-behavior-x: none;
  }

  /* @font-face {
      font-family: 'Union-Regular';
      src: url('../fonts/Union-Regular.woff2') format('woff2');
      font-style: normal;
  }

  @font-face {
      font-family: 'Attila';
      src: url('../fonts/attila.woff2') format('woff2');
      font-style: normal;
  } */
/* 
  @font-face {
      font-family: 'Gustavo';
      src: url('../fonts/Gustavo-Regular.woff2') format('woff2');
      font-style: normal;
      font-display: block;
  }

  @font-face {
    font-family: 'GT-Flexa';
    src: url('../fonts/GT-Flexa-Standard-Medium.woff2') format('woff2');
    font-style: normal;
    font-display: block;
} */

@font-face {
  font-family: 'Haffer';
  src: url('../fonts/HafferTRIAL-Regular.woff2') format('woff2');
  font-style: normal;
  font-display: block;
}



  body{
      font-family: 'Haffer', Helvetica, sans-serif;
      font-style: normal;
      font-size: 1em;
      color:white;
  }

  .loading-overlay{
    position: fixed;
    height: 100%;
    width: 100%;
    z-index: 10;
  }

  body.home{
    width: 100%;
    height: 100%;
    overflow: hidden;
    overscroll-behavior-x: none;
  }

  body.custom-cursor{
    cursor:none;
  }
/*
  body:not(.home){
    overflow-x:hidden;
  }*/

 .main{
    height: 100%;
    /* overflow: scroll; */
    /* transition: 500ms; */
    /* position: relative; */
  }

.menu-container {
    height: 0%;
    overflow: scroll;
    transition: 500ms;
    position: relative;
}

.menu-container.open {
    height: 100%;
}

  body[data-scrollmode="native"] .viewport-container{
    overflow: hidden;
    height: 100%;
    width: 100%;
  }


  body[data-scrollmode="transform"] .viewport-container{
    overflow: hidden;
    height: 100%;
    width: 100%;
  }

/*  .viewport-container{
    overflow: scroll;
    height: 100%;
    width: 100%;
  }*/



  .spacer{
    display: block;
    height: 0.2em;
  }

  a{
    color: white;
    text-decoration: none;
    user-drag: none; 
    user-select: none;
    -moz-user-select: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    -ms-user-select: none;

  }

  .header{
    position: fixed;
    z-index: 10;
  }

  .header{
      top:10px;
  }

  .header.left{
    left:15px;
    text-align: left;
  }

  .header.right{
    right: 25px;
    top: 30px;
    text-align: right;
    cursor: pointer;
    z-index: 9999;
    /* width: 100%; */
    width: 100px;
    height: 100px;
    /* background: red; */
  }

.header.right.hide {
    right: -100px;
}

.menu-wrapper {
    position: absolute;
    right: -8px;
    top: -230px;
    text-align: left;
    /* box-shadow: 0px 0px 10px #00000036; */
    padding: 15px 80px 15px 20px;
    cursor: pointer;
    border-radius: 10px;
    backdrop-filter: blur(100px);
    -webkit-backdrop-filter: blur(100Px);
    background: #00000059;
    opacity: 1;
    transition: 500ms;
    width: 250px;
    font-size: 27px;
    /* height: 100%; */
}

.menu-wrapper.active {
    /* opacity: 1; */
    top: -12px;
}


.menu-wrapper a {
    color: white;
    display: inline-block;
    margin-bottom: 4px;
}

.menu-wrapper a:after {
    content: "";
}

.menu-wrapper ul {margin: 0;padding: 0;}

.menu-wrapper li {
    list-style: none;
    margin-bottom: 0px;
    font-size: 0.8em;
}

  .header.center{
    left: 50%;
    text-align: center;
  }

  .header.center > div {
    position: relative;
    left: -50%;
    text-align: center;
  }

  .align-right{
    text-align: right;
  }

  .wrapper {
      padding: 15px;
  }

  .fixed{
    position: fixed;
    z-index: 10;
    width: 100%;
  }

  .blended:hover{
    color: white;
    mix-blend-mode: normal;
  }


  .xs{ font-size: 0.85em; }

  .s{ font-size: 1.30em; }

  .m {
    font-size: 2.5em;
  }

  .l{ font-size: 2.2vw; }
  .xl{ font-size: 3vw; }

  .uppercase{
    text-transform: uppercase;
  }

  .bold{
    font-weight: bold;
  }

  .grid{
    position: relative;
    top:0px;
    left:0px;
    /*padding-bottom: 70px;*/
    width: 220%;
    visibility: hidden;
  /*  will-change: transform;*/
  }

   .img-wrapper {
      padding: 0px 0px;
      background-size: cover;
      -webkit-transform: translateZ(0);
      transform: translateZ(0);
      background-position: center;
      background-repeat: no-repeat;
      transition-delay: 0;
      transition: opacity 300ms; 
      background-origin: padding-box;
      opacity: 0;
      overflow: hidden;
      background-clip: content-box;
  }

  .serie .img-wrapper{
    transition: 300ms;
    transition-property: opacity;
  }

/*  .img-wrapper:not(.img-loaded){
      animation: 1s ease-in-out 1s infinite alternate loading;
  }

  @keyframes loading{
      from{
        opacity: 0.6;
      }
      to{
        opacity: 1;
      }

  }*/


   .thumbnail-wrapper {
      position: relative;
      display: inline-block;
      padding: 0px 0px;
      background-size: cover;
      transition-property: opacity;
      opacity: 1;
      transform: translate3d(0,0,0) scale(1.1) !important;
      background-clip: content-box;
   }

  .justified-gallery .img-wrapper {
    position: absolute;
    overflow: hidden;
    margin: 0;
    padding: 0;
    top: 50%;
    left: 50%;
    opacity: 0;
 }


 .img-wrapper img.image, .img-wrapper video{
    height: 100%;
    top: 0px;
    opacity: 0;
    transition: opacity 500ms;
    z-index: 1;
    user-drag: none;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    transition-timing-function: linear;
    object-fit: cover;
 }

  .img-wrapper video{
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition-delay: 500ms;

  }

 .img-wrapper img.image.smaller{
  transform: scale(0.75);
 }


 .img-wrapper video.smaller{
  transform: scale(0.75);
 }

 .img-wrapper video{
    transition: 400ms;
    transform: scale(1.01);
 }

 .justified-gallery .img-wrapper img.image{
    position: absolute;
    top: 50%;
    left: 50%;
    object-fit: cover;
    transform: translate3d(0,0,0) scale(1.05);
    transition: 200ms;
  }

  .justified-gallery .img-wrapper video{
      position: absolute;
      transform: none;
      transition: 200ms;
    }

 .index .main{
  width: 100%;
 }

  .img-wrapper.img-loaded.selected:not(.has-video) img.image{
    opacity: 1;
  }
/*
  .img-wrapper.img-loaded.has-video img.image{
    display: none;
  }*/

  .top-left{
    position: absolute;
    letter-spacing: 0px;
    top: 25px;
    left: 60px;
    z-index: 99;
    transition: 300ms;
  }

  .about{
    position: absolute;
    letter-spacing: 0px;
    top: 26px;
    left: 475px;
    z-index: 99;
    transition: 300ms;
    transition-delay: 300ms;
  }   


/*  @keyframes slideWidth {
    from {
      width: 30px;
    }

    to {
      width: 0px;
    }
  }

  .click-to-go .caption-count{ 
    animation-name: slideWidth;
    animation-duration: 2s;
    animation-iteration-count: 1;
    width: 30px;
    overflow: hidden;
    display: inline-block;
  }

  .click-to-go .caption-go{ 
    animation-name: slideWidth;
    animation-direction: reverse;
    animation-duration: 2s;
    animation-iteration-count: 1;
    overflow: hidden;
    width:0px;
    display: inline-block;
  }*/

  .category{
    position: absolute;
    font-size: 0.8em;
    bottom: 15px;
    right: 20px;
    /* text-transform: uppercase; */
    opacity: 0;
    z-index: 0;
/*    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(-270deg);
    transform-origin: bottom right;
  */
  }

  u{
    text-decoration: none;
    border-bottom: 2px solid;
  }

  .small-nav{
    transition: padding-left 300ms;
  }

  .small-nav:hover{
    padding-left: 29px !important;
  }

  .img-wrapper.selected.img-loaded .caption, .img-wrapper.img-loaded.selected .category,
  .img-wrapper.selected.img-loaded video
  {
    opacity: 1;
    z-index: 15;
  }

  .caption a, .caption sup{
    opacity: 0.7;
  }

  .caption sup{
    opacity: 0.65;
    top: 0;
    left: 0;
  }

  .caption a:hover{
    opacity: 1;
  }

/*  .caption-title{
    border-bottom: 1px solid;
  }*/

  .caption{
    white-space: nowrap;
    width: 93%;
  }

  .caption-title{
    display: block;
    float: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-bottom: 5px;
  }

  .caption-title:after, .serie-title:after, .next .small-nav:after, .menu-wrapper li a:after {
    background: none repeat scroll 0 0 transparent;
    bottom: -2px;
    content: "";
    display: block;
    height: 1px;
    left: 0%;
    position: relative;
    background: #fff;
    width: 0;
    /*    transition: 300ms;
*/
    }



  .caption-count{
    display: block;
    float: left;
  }

  .next{
    position: fixed;
    width: 100%;
    height: 261px;
    bottom: -291px;
    padding-top: 15px;
    z-index: 10;
    transition: 500ms;
    transition-timing-function: ease;    
  }

  .menu-item{
    position: relative;
    width: 100%;
    height: 330px;   
    transition: 500ms;
    transition-property: opacity;
    opacity: 0;
    overflow: hidden;
  }

  .menu-item.visible {
      opacity: 1;
  }

  .menu-item.filtered{
   /* opacity: 0.55 !important;*/
    height: 0;
  }



  .menu-item .img-wrapper{
    opacity: 1;
  }

  .menu-item.single{
    height: 100%;
  }

/*  .menu-item.single:hover{
    height: 260px;
  }*/

  .thumbnail-wrapper .thumbnail{
    height: 100%;
    width: auto;
    top: 0px;
    opacity: 0;
    z-index: 1;
    transform: translate3d(0,0,0) scale(1.002);
  }

  .menu-item:not(.filtered).selected .thumbnail-wrapper .thumbnail{
    opacity: 1 !important;
    /*transition: 500ms;*/
  }
  
  .menu.open{
    bottom: 0px;
  }

  .menu.hide{
      bottom: -27% !important;
  }

  .menu .swiper-container, .menu-item .swiper-container{
    width: 100%;
    height: 100%;
    background-color: transparent;
  }

  .menu .swiper-slide, .menu-item .swiper-slide{
    height: 100%;
    width: auto;
  }

  .tabs{
    display: flex;
  }

  .tab-selector{
    margin: 0.4em 0.3em;
  }

  .menu-button-wrapper{
    position: fixed;
    bottom: 15px;
    left:15px;
  }

  .menu-trigger.center{
    position: fixed;
    left:50%;

  }

 .bottom-left{
    position: fixed;
    bottom:15px;
    left:15px;
    z-index: 9;
    transition: 300ms;
  }

  .bottom-left.not-fixed {
      position: relative;
      width: 50%;
      padding-bottom: 15px;
  }
  
  .at-bottom .bottom-left{
    bottom:40px;
  }

  .menu .selected, a.selected{
    border-bottom: 2px solid white;
    opacity: 1;
  }


  .menu-item .serie-title{
    position: absolute;
    bottom: 0px;
    left: 15px;
    z-index: 9999;
    top: auto;
    opacity: 0;
    transition: 300ms;
  }

  .serie-title sup{
    opacity: 0.75;
  }

/*  .next .serie-title{
    top: 15px;
    bottom: auto;
  }*/

  .menu-item:not(.filtered).selected .serie-title{
      opacity: 1;
      bottom: 15px;
  }

  .menu .tab-selector a:not(.selected){
    opacity: 0.5;
  }


  .vertical-grid .img-wrapper{
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
    display: inline-flex;
  }

  .vertical-grid .img-wrapper img{
    width: 100%;
/*    transition-delay: 300ms !important;
*/  }

  .page-footer-trigger{
    height: 35px;
    padding-bottom: 149px;
    width: 100%;
    position: relative;
    bottom: 0;
    margin-top: 97px;
  }

  .vertical-grid{
    position: relative;
    /* height: 100%; */
  }
  
  .vertical-grid .row{
    position: relative;
    overflow: hidden;
  }

  .h-90 {
    height: 95vh;
  }

  .h-90 .img-wrapper {
    height: 100%;
    flex-grow: 1 !important;
    justify-content: center;
  }

  .h-90 .img-wrapper img, .h-90 .img-wrapper video{
    height: 100%;
    width: auto;
  }

.img-wrapper iframe {
    position: absolute;
    z-index: 1;
    height: 100%;
    width: 100%;
}

  .row.empty{
    min-height: 30vh;
    border-top: 2px solid #bdbdbd;
  }

  .menu .img-wrapper img, .next .img-wrapper img {
    height: 100%;
    top: 0px;
    opacity: 0;
  }

  .menu .swiper-container{
    display: none;
  }

  .menu .swiper-container.selected, .next .swiper-container{
    display: block;
  }

  .serie .img-wrapper.img-loaded.visible .image, .serie .img-wrapper.img-loaded.visible video{
    opacity: 1;
    transition-delay: 1000ms;
  }

  .content{
    position: relative;
    z-index: 1;
    margin: 15px;
  }

  .content::selection{
    background-color: black;
    cursor: pointer;

  }

  .content p:first-of-type{
    margin-top:0px;
  }

  .content a{
    opacity: 0.75;
  }

  .content a:hover{
    opacity: 1;
  }

  .series-grid{
    position: relative;
    z-index: 8;
    /* height: 100vh; */
  }

  #cursor{
    position: fixed;
    width: 20px;
    height: 20px;
    top: 0px;
    left: 0px;
    pointer-events: none;
    margin-left: -10px;
    margin-top: -10px;
    transition: transform 0s;
    z-index: 999999;
    transform: translate3d(-100px,-100px,0);
    background: white;
    border-radius: 100%;
  }

  #cursor.loading{
      animation: 2s ease-in-out 2s infinite alternate loading;
  }

  @keyframes loading{
      from{
        width: 15px;
        height: 15px;
      }
      to{
        width: 20px;
        height: 20px;
      }

  }

  #cursor.selected{
/*    mix-blend-mode: difference;  */  
/*    width: 25px;*/
  }

  .hide-on-scroll{
    transform: initial;
    transition: 500ms;
  }

  .hide-on-scroll.hidden {
      transform: translate3d(0px, -65px, 0px);
      transition: 500ms;
  }

  #page-grid.grid {
    position: fixed;
    top: 0px;
    height: 100vh !important;
}

  .page #page-grid .img-wrapper {
      height: 100% !important;
  }

  .next a.nav{
    position: relative;
    display: block;
    margin-left: 10px;
  }

  .next .nav-wrapper{
    position: absolute;
    top: -20px;
  }

  .bg-wrapper{
    position: fixed;
    width: 120%;
    height: 110%;
    opacity: 0;
    left: 0;
    top: 0;
    background-size: cover;
    background-position: top;
    transition: 500ms;
  }

  .img-loaded .loading{
    visibility: hidden;
  }

  .loading{
    position: absolute;
    bottom: 10px;
    right: 27px;
    font-size: 1.5em;
  }

  .loading:after {
    content: ' .';
    animation: dots 1s steps(5, end) infinite;}

  @keyframes dots {
    0%, 20% {
      color: rgba(0,0,0,0);
      text-shadow:
        .25em 0 0 rgba(0,0,0,0),
        .5em 0 0 rgba(0,0,0,0);}
    40% {
      color: white;
      text-shadow:
        .25em 0 0 rgba(0,0,0,0),
        .5em 0 0 rgba(0,0,0,0);}
    60% {
      text-shadow:
        .25em 0 0 white,
        .5em 0 0 rgba(0,0,0,0);}
    80%, 100% {
      text-shadow:
        .25em 0 0 white,
        .5em 0 0 white;}
      }

      .credits{
        position: fixed;
        bottom: 10px;
        right: 10px;
        writing-mode: vertical-lr;
        font-size: 0.75em;
        transform-origin: center;
        transform: rotate(180deg);
        font-family: Helvetica;
      }

  @media (min-width: 813px) {

    .menu-item:not(.filtered):hover .thumbnail-wrapper .thumbnail{
      opacity: 1 !important;
/*      transition: 500ms;*/
    }

    .img-wrapper.img-loaded:hover .caption, .img-wrapper.img-loaded:hover .category,
    .img-wrapper.img-loaded:hover video
    {
      opacity: 1;
      z-index: 15;
    }

    .img-wrapper:hover .caption-title:after, div:hover > .serie-title:after, .next:hover .small-nav:after, .menu-wrapper li:hover > a:after { 
      width: 100%; 
      left: 0; 
    }
    
    .menu-item:not(.filtered):hover .serie-title, .menu-item:not(.filtered):hover .category{
        opacity: 1;
        bottom: 15px;
        z-index: 2;
    }


    /* .img-wrapper.img-loaded:not(.selected):hover img.image{
      opacity: 1;
    } */

    .caption-title:after, .serie-title:after, .next .small-nav:after, .menu-wrapper li a:after {    
      transition: width 600ms cubic-bezier(0.76, 0, 0.24, 1) 0s;
    }


  }


  @media only screen 
  and (max-device-width : 812px) 
  and (orientation : portrait){

    .menu-wrapper{
          /* width: calc(100% - 45px); */
    }

    .menu-wrapper a{
      font-size: 30px;
    }

    /* .caption-title{
      max-width: 90%;
    } */

    .grid{
      width: 300%;
    }

    #cursor{
      display: none !important;
    }

    body.home .img-wrapper.landscape{
      height: 0 !important;
    }

    body.custom-cursor{
      cursor:inherit !important;
    }

    .img-wrapper:hover img.image{
      opacity: 0;
    }

    .img-wrapper.selected img.image{
      opacity: 1;
    }

    .menu-item .serie-title{
      opacity: 0.5;
      bottom: 15px;
      white-space: nowrap;
      text-overflow: ellipsis;
      width: 95%;
      overflow: hidden;    
    }

    .next{
      height: 248px;
      bottom:-288px;    
    }

    .page-footer-trigger {
      height: 128px;
      padding-bottom: 136px;
    }

    .l{
      font-size: 7vw;
      letter-spacing: -0.5px;

    }

    .s{
      font-size: 4vw;
    }

    .vertical-grid .row:not(.mobile-row) .img-wrapper{
      flex-basis: auto;
      justify-content: left;
    }

    .vertical-grid .row:not(.mobile-row) .img-wrapper img{
      width: 97%;
    }

    .h-90{
      height: auto;
    }

    .header.center{
      top: 40px;
    }

    .header.right{
      width: 100%;
    }

 /*   #cursor{
      display: none;
    }*/

    .menu-item{
      height: 28%;
    }


   .img-wrapper img.image.smaller{
    transform: scale(1);
   }

   .prints-grid .img-wrapper img.image.smaller{
    transform: scale(0.8);
   }


    .img-wrapper.selected .caption-title:after { 
      width: 100%; 
      left: 0; 
    }
    
    .credits{
      font-size: 0.6em;
    }

    .header.right{
      width:100%;
      top: 20px;
      right:25px;
    }

    .menuToggle{
      top: 0px !important;
    }

.menuToggle.active {
    right: -7px;
    top: 2px !important;
}

    .header.right .menu-wrapper{
      width: calc(100% - 10px);
      right: -20px;
      /* top: -15px; */
    }

    .menu-wrapper.active {
        top: -15px;
    }

    .info{
      top: 17vw !important;
      left: 15px !important;
      /* right: 0 !important; */
    }
  }


  .prints-grid{
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-gap: 0px;
    grid-auto-rows: minmax(100px, auto);
    grid-auto-columns: minmax(10px, auto);
    padding-bottom: 65px;
    background: #414141;
  }
  
  .prints-grid .img-wrapper{
    width: 100%;
    height: 93vh;
  }
    
  .prints-grid .img-wrapper img{
    object-fit: contain;
  }

  .prints-grid .img-wrapper img{
    transition: transform 500ms;
    transition-delay: 0ms !important;

  }

  .prints-grid .img-wrapper img:hover{
    transform: scale(0.80);

  }

  .prints-grid img{
    width: 100% !important;
  }

  .left-container{
    position: absolute;
    bottom:10px;
    left:15px;
    z-index: 10;
  }

  .right-container{
    position: absolute;
    bottom:10px;
    right:15px;
    text-align: right;
    z-index: 10;
  }

  .right-container span{
    text-align: right;
    padding-bottom: 5px;
    display: inline-block;
  }

  .caption-container{
    display: inline-flex;
    flex-direction: column;
  }

  .caption-title{
    display: inline;
    /* float: left; */
    white-space: nowrap;
    /* max-width: 98%; */
    overflow: hidden;
    text-overflow: ellipsis;
    padding-bottom: 5px;
    max-width: auto;
  }


  .buy-link{
    position: absolute;
    bottom:10px;
    right:20px;
    z-index: 99;
  }

  .buy-link-title{
    display: block;
    float: left;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-bottom: 5px;
  }

  .opacity-medium{
    opacity: 0.7;
  }

  

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


    .l{ font-size: 37px; }
    .xl{ font-size: 35px; }

    .content{
      max-width: 1050px;
    }

  }