@import url("./fonts/fonts.css");
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,
b,
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,
head,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  font-size: 100%;
  font: inherit;
  padding: 0;
  border: 0;
  margin: 0;
  vertical-align: baseline;
}
:root {
  --app-height: 100vh;
}
body,
html {
  font-family: nb_groteskregular, sans-serif;
  font-weight: 400;
  font-size: 1em;
  line-height: 1.18em;
  font-variant-numeric: proportional-nums;
  -moz-font-feature-settings: "pnum";
  -webkit-font-feature-settings: "pnum";
  font-feature-settings: "pnum";
  padding: 0;
  border: 0;
  margin: 0;
  width: 100%;
  height: 100vh;
  height: var(--app-height);
}
body {
  height: 100vh;
  height: var(--app-height);
  width: 100%;
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  display: block;
}
.start {
  overflow: hidden;
  color: #fff;
  width: 100vw;
  height: 100vh;
  height: var(--app-height);
}
body.show .start .bg,
body.show .start .bl {
  opacity: 0;
}
.start .bg,
.start .bl {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  height: var(--app-height);
  opacity: 1;
  transition: opacity 0.5s;
}
.bg1 .start .bg {
  background: url(./images/bg1.jpg) 50% 50% no-repeat;
  background-size: cover;
}
.bg1 .start .bl {
  background: url(./images/bl1.jpg) 50% 50% no-repeat;
  background-size: cover;
  opacity: 0;
}
.bg2 .start .bg {
  background: url(./images/bg2b.jpg) 50% 50% no-repeat;
  background-size: cover;
}
.bg2 .start .bl {
  background: url(./images/bl2b.jpg) 50% 50% no-repeat;
  background-size: cover;
  opacity: 0;
}
.bg3 .start .bg {
  background: url(./images/bg3.jpg) 50% 50% no-repeat;
  background-size: cover;
}
.bg3 .start .bl {
  background: url(./images/bl3.jpg) 50% 50% no-repeat;
  background-size: cover;
  opacity: 0;
}
.bg4 .start .bg {
  background: url(./images/bg4.jpg) 50% 50% no-repeat;
  background-size: cover;
}
.bg4 .start .bl {
  background: url(./images/bl4.jpg) 50% 50% no-repeat;
  background-size: cover;
  opacity: 0;
}
body.loaded.blur .start .bl {
  opacity: 1;
}
body.loaded.show .start .bl {
  opacity: 0;
}
.start .nav {
  position: absolute;
  top: calc(1.5vw - 2.5vh);
  left: calc(1.5vw - 1.5vh);
}
.start .nav h2,
.portfolio .count {
  display: block;
  font-size: 18vh;
  line-height: 18vh;
  overflow: hidden;
}
.start .nav h2 span,
.portfolio .count span {
  display: inline-block;
  transform: translateY(100%);
  transition: transform 1s cubic-bezier(0.7, 0, 0.6, 1);
}
.start .nav h2 span {
  cursor: pointer;
}
.loaded .start .nav h2 span{
  transform: translateY(0%);
}
.portfolio.init .count span {
  transform: translateY(-1.5vw);
}
.loaded.show .start .nav h2 span {
  transform: translateY(100%);
}
.preview {
  position: absolute;
  font-size: 18vh;
  line-height: 18vh;
  top: 3.3vh;
  left: calc(1vw + 3.33em);
  opacity: 0;
  transition: opacity 1s;
}
.preview img {
  position: absolute;
  top: 0;
  left: 0;
  height: 13vh;
  width: auto;
}
.portfolio {
  position: absolute;
  font-size: 18vh;
  line-height: 18vh;
  top: 1.5vw;
  left: 102vw;
  opacity: 0;
  transition: opacity 1s;
}
.preview::before {
  font-family: arrows, monospace;
  font-size: 1.9vw;
  line-height: 0.6vw;
  content: "\2197";
  display: block;
  position: absolute;
  top: 0;
  opacity: 1;
  transition: opacity 0.5s 1s;
  left: -1em;
}
.preview.tease {
  opacity: 1;
}
body.show .preview.tease {
  opacity: 0;
}
body.show .portfolio.show {
  opacity: 1;
  top: 1.5vw;
  left: 1.5vw;
}
.preview.onlocation {
  top: 21.3vh;
  left: calc(1vw + 5.2em);
}
.preview.stills {
  top: 39.3vh;
  left: calc(1vw + 2.3em);
}
.preview.people {
  top: 57.3vh;
  left: calc(1vw + 3.1em);
}
.portfolio .band {
  float: left;
  white-space: nowrap;
}
.portfolio img {
  height: 100%;
  width: auto;
  display: block;
  float: left;
}
.portfolio img,
.portfolio .serie {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -ms-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}
.portfolio .ret,
.info .ret {
  display: none;
}
.portfolio img:not(.first) {
  opacity: 0;
  transition: opacity 0.5s;
}
.portfolio.show::before {
  opacity: 0;
  transition: opacity 0.1s;
}
.portfolio .serie {
  color: #000;
  display: block;
  float: left;
  height: calc(90vh - 4vw);
  margin-right: 1.5vw;
}
.portfolio .serie h2,
.portfolio .ret {
  font-size: 1.8vw;
  line-height: 1em;
  opacity: 0;
  transition: opacity 1s 1.5s;
}
.portfolio .ret {
  position: absolute;
  top: calc(100vh - 1em - 3vw);
  top: calc(var(--app-height) - 1em - 3vw);
  left: 0;
  cursor: pointer;
  z-index: 10;
}
.info .ret {
  position: fixed;
  top: calc(100vh - 1em - 1.5vw);
  top: calc(var(--app-height) - 1em - 1.5vw);
  left: 1.5vw;
  cursor: pointer;
  opacity: 0;
  transition: opacity 1s 1.5s;
  z-index: 10;
}
.ret span {
  font-size: 1.2vw;
  line-height: 1em;
}
.ret span::before {
  display: inline-block;
  font-family: arrows, monospace;
  font-size: 1.9vw;
  line-height: 0.6vw;
  content: "\2196";
  margin-right: 0.2em;
}
.info .ret,
.info h2 {
  font-size: 3.6vh;
  line-height: 1em;
}
.info h2 {
  margin-bottom: 0.5em;
}
.info a {
  color: #000;
  text-decoration: none;
}
.info a:hover {
  color: #000;
  text-decoration: underline;
}
.portfolio.show .serie h2,
.portfolio.show .ret,
.info.show .ret {
  display: block;
}
.portfolio.init .serie h2,
.portfolio.init .ret,
.info.show .ret {
  color: #000;
  opacity: 1;
}
body.show .portfolio.show .scroller {
  width: 50000px;
  height: calc(90vh - 4vw);
}
body.show .portfolio.show .band {
  height: calc(90vh - 4vw);
}
body.show .portfolio.show img {
  display: block;
  margin-right: 1.5vw;
}
body.show .portfolio.init img.inview {
  opacity: 1;
  transition: opacity 0.5s;
}
.info {
  position: absolute;
  top: 0;
  left: 100vw;
  height: 100vh;
  opacity: 0;
  transition: opacity 0.3s, left 1.3s ease-in-out;
}
.info.show {
  opacity: 1;
}
.info .slot {
  position: absolute;
  padding: calc(1vw + 8px) 1.5vw 8vh 1.5vw;
  width: 96vw;
  height: calc(92vh - 1vw - 8px);
  overflow-y: scroll;
  top: 0;
  left: 0;
  font-size: 1.9em;
  line-height: 1.18em;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 1.5vw;
}
.info .slot .col1 {
  grid-column: 1 / 2;
  padding-bottom: 4vw;
}
.info .slot .col2 {
  grid-column: 2 / 3;
}
.info .slot.clients {
  left: 100vw;
}
.info .slot.contact {
  left: 200vw;
}
.info .slot.privacy {
  left: 300vw;
}
.info .small {
  font-size: 0.54em;
  line-height: 1.18em;
}
.info .smaller {
  font-size: 0.33em;
  line-height: 1.18em;
}
.col2 img {
  width: 66%;
  height: auto;
}
body.show .info.about {
  left: 0;
}
body.show .info.clients {
  left: -100vw;
}
body.show .info.contact {
  left: -200vw;
}
body.show .info.privacy {
  left: -300vw;
}
.column1,
.column2 {
  position: relative;
  display: block;
  float: left;
  padding-right: 4vw;
}
.foot {
  width: 96vw;
  max-height: calc(10vh + 5vw);
  font-size: 1.2vw;
  line-height: 1em;
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 3vw 1.5vw 1.5vw 1.5vw;
  text-align: right;
  color: #fff;
}
.foot span,
.foot h1 {
  display: inline-block;
  cursor: pointer;
  margin-left: 4px;
}
.foot span {
  margin-left: 4vw;
}
body.show .foot {
  color: #000;
  background-color: #fff;
}
.showmobile,
.menubtn {
  display: none;
}
@media all and (orientation: portrait) {
  .bg3 .start .bg {
    background: url(./images/bg3.jpg) 60% 50% no-repeat;
    background-size: cover;
  }
  .bg3 .start .bl {
    background: url(./images/bl3.jpg) 60% 50% no-repeat;
    background-size: cover;
    opacity: 0;
  }  
  .portfolio,
  .portfolio.interior,
  .portfolio.onlocation,
  .portfolio.stills,
  .portfolio.people {
    top: 32px;
    left: 110vw;
  }
  .start .nav {
    top: 16px;
    left: 16px;
  }
  .start .nav h2,
  .portfolio .count {
    font-size: 17.9vw;
    line-height: 22vw;
  }
  .portfolio .serie h2,
  .portfolio .ret {
    font-size: 20px;
    line-height: 1em;
  }
  .portfolio .ret {
    position: fixed;
    top: calc(100vh - 2.8em - 16px);
    top: calc(var(--app-height) - 2.8em - 16px);
    left: 16px;
  }
  .portfolio img,body.show .portfolio.init img{
    display: block;
    opacity: 1;
  } 
  .info .ret {
    position: fixed;
    top: calc(100vh - 2.8em - 84px);
    top: calc(var(--app-height) - 84px);
    bottom: auto;
    left: 16px;
  }
  .ret span{
    font-size: 16px;
    line-height: 1em;
  }
  .ret span::before {
    font-size: 24px;
    line-height: 1em;
  }  
  body.show .portfolio.show {
    top: 0;
    left: 0;
  }
  body.show .portfolio.show .scroller {
    width: calc(100vw - 32px);
    height: 100vh;
    padding: 16px;
    overflow-y: scroll;
  }
  body.show .portfolio.show .band {
    height: auto;
    padding-bottom: 150px;
  }
  body.show .portfolio.show .serie {
    height: 32vw;
  }
  .portfolio img {
    width: 100%;
    height: auto;
    margin-right: 0;
    margin-bottom: 16px;
  }
  .info .slot {
    font-size: 16px;
    line-height: 1.18em;
    width: calc(100vw - 32px);
    height: calc(100vh - 166px);
    height: calc(var(--app-height) - 166px);
    padding: 32px 16px 16px 16px;
    grid-template-columns: auto;
    grid-template-rows: auto;
    grid-gap: 0;
  }
  .info .small{
    font-size: 16px;
    line-height: 1.18em;
  }
  .info .smaller {
    font-size: 10px;
    line-height: 1.18em;
  }
  .info .slot .col1,
  .info .slot .col2 {
    grid-column: 1 / 2;
    padding: 0;
  }
  .info .slot.about .col1{
    padding-bottom: 8px;
  }
  .info .slot.about .col2 img {
    width: 75%;
    height: auto;
  }  
  .foot {
    font-size: 16px;
    line-height: 1.4em;
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    bottom: 0;
    right: 0;
    padding: 8px 16px 16px 16px;
    width: calc(100vw - 32px);
    text-align: right;
  }
  .foot span {
    display: inline-block;
    width: 5em;
    max-width: 0em;
    overflow: hidden;    
    margin: 0;  
  }
  .menu_active.show .foot {
    border-top:32px solid #fff;
  }
  .menu_active .foot span {
    max-width: 5em;
  }
  .menubtn {
    display: block;
    position: absolute;
    z-index: 1002;
    bottom: 16px;
    right: 16px;
    width: 32px;
    height: 33px;
    cursor: pointer; 
  }
  .menu_active .menubtn{
    bottom: 84px;
  }
  .menubtn span {
    position: absolute;
    display: block;
    width: 32px;
    height: 2px;
    background-color: #fff;
    top: 50%;
    -moz-transition: all 0.2s 0.2s ease-in-out;
    -o-transition: all 0.2s 0.2s ease-in-out;
    -webkit-transition: all 0.2s 0.2s ease-in-out;
    transition: all 0.2s 0.2s ease-in-out;
    -moz-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
  }
  body.show .menubtn span {
    background-color: #000;
  }
  .menubtn span.l1 {
    margin-top: -8px;
  }
  .menubtn span.l2 {
    margin-top: 8px;
  }
  .menu_active .menubtn span {
    margin-top: 0;
  }
  .menu_active .menubtn .l1 {
    margin-left: 0;
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  .menu_active .menubtn .l2 {
    margin-left: 0;
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .menu_active .menubtn .l3 {
    opacity: 0;
  }
  .foot h1 {
    position: absolute;
    top: calc(2.8em + 8px);
    bottom: auto;
    left: 16px;
    display: block;
    margin: 0;
  }
  .hidemobile {
    display: none !important;
  }
  .showmobile {
    display: block;
  }
}
@media all and (min-width: 1600px) {
  .info .slot.clients .col2{
    margin-left:-12.5vw;
  }
}
@media all and (max-width: 450px) {
}
