@charset "UTF-8";
/* ---------------- */
/* RESET */
/* ---------------- */
*,
*:after,
*:before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  outline: none;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  cursor: url("../images/cursor/cursor-default.png") 6 6, default;
  /* Legacy */
  cursor: url("../images/cursor/cursor-default.svg") 6 6, default;
  /* FF */
  cursor: -webkit-image-set(url("../images/cursor/cursor-default.png") 1x, url("../images/cursor/cursor-default@2x.png") 2x) 12 12, default;
  /* Webkit */ }

html {
  font-family: 'Styrene', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; }

body {
  height: 100%;
  width: 100% !important;
  font-size: 11.5px; }
  body > div {
    z-index: 1000;
    position: relative;
    top: 0; }
    body > div.top {
      position: absolute;
      z-index: -1; }

li {
  list-style: none; }

img {
  width: 100%; }

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit; }

a {
  color: currentColor;
  text-decoration: none;
  cursor: url("../images/cursor/cursor-pointer.png") 6 6, pointer;
  /* Legacy */
  cursor: url("../images/cursor/cursor-pointer.svg") 6 6, pointer;
  /* FF */
  cursor: -webkit-image-set(url("../images/cursor/cursor-pointer.png") 1x, url("../images/cursor/cursor-pointer@2x.png") 2x) 12 12, pointer;
  /* Webkit */ }
  a:hover {
    color: #c5c4bb; }

@media screen and (max-width: 800px) {
  body {
    background-color: #d9d8d2; } }

/* ---------------- */
/* TYPOGRAPHY */
/* ---------------- */
@font-face {
  font-family: 'Scto';
  font-weight: 700;
  src: url("../fonts/scto-grotesk-b/Web/Scto-Grotesk-B-Bold.eot"), url("../fonts/scto-grotesk-b/Web/Scto-Grotesk-B-Bold.woff"); }

@font-face {
  font-family: 'Scto';
  font-weight: 700;
  font-style: italic;
  src: url("../fonts/scto-grotesk-b/Web/Scto-Grotesk-B-Bold-Italic.eot"), url("../fonts/scto-grotesk-b/Web/Scto-Grotesk-B-Bold-Italic.woff"); }

@font-face {
  font-family: 'Styrene';
  font-weight: 300;
  src: url("../fonts/styrene-a/Web/StyreneA-Light-Web.woff"), url("../fonts/styrene-a/Web/StyreneA-Light-Web.woff2"); }

@font-face {
  font-family: 'Stymbols';
  font-weight: 300;
  src: url("../fonts/stymbols/Web/Stymbols.eot"), url("../fonts/stymbols/Web/Stymbols.woff"), url("../fonts/stymbols/Web/Stymbols.woff2"); }

/* ---------------- */
/* GENERAL */
/* ---------------- */
.page {
  display: flex;
  justify-content: space-between;
  width: 100vw; }

.logo {
  z-index: 1;
  position: fixed;
  top: 0;
  left: 0;
  padding: 1em 15px; }
  .logo:hover {
    color: currentColor; }

.new {
  color: #c5c4bb;
  animation: pulse 3s linear infinite; }

.uc {
  text-transform: uppercase; }

::selection {
  background: transparent;
  color: rgba(0, 0, 0, 0.3);
  text-decoration-color: rgba(0, 0, 0, 0.3); }

::-webkit-scrollbar {
  width: 0rem;
  height: 0rem; }

::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0);
  border-radius: 0;
  outline: none;
  opacity: 0;
  transition: background-color .25s; }

.panel-container:hover::-webkit-scrollbar-thumb,
.nav-container:hover::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.35); }

@keyframes pulse {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

/* ---------------- */
/* MAIN */
/* ---------------- */
main {
  position: relative;
  width: 80%;
  height: 100vh;
  font-family: 'Styrene';
  font-size: 11.5px;
  line-height: 14px;
  background-color: #fff;
  transition: width .4s;
  overflow: inherit; }
  main.main-home, main.main-projects, main.main-project, main.main-about {
    background-color: #d9d8d2; }

.image-layer {
  position: fixed;
  z-index: 0;
  top: 0;
  left: 0;
  width: inherit;
  height: 100%;
  overflow: hidden;
  pointer-events: none; }
  .image-layer svg {
    width: 100%;
    height: 100%; }
  .image-layer img {
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .image-layer.has-override > svg, .image-layer.has-override > img {
    opacity: 0; }
  .image-layer.has-override .override {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.layer-1 {
  pointer-events: all; }
  .layer-1 polyline, .layer-1 path, .layer-1 polygon {
    fill: #FFFFFF; }
  .layer-1 .project-container {
    display: none;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0; }
    .layer-1 .project-container.active {
      display: block; }
  .layer-1.has-override .project-container,
  .layer-1.has-override .project-container.active {
    display: none; }

.main-home .project-building,
.main-projects .project-building {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none; }

.main-home polyline, .main-home path, .main-home polygon,
.main-projects polyline,
.main-projects path,
.main-projects polygon {
  cursor: url("../images/cursor/cursor-pointer.png") 6 6, pointer;
  /* Legacy */
  cursor: url("../images/cursor/cursor-pointer.svg") 6 6, pointer;
  /* FF */
  cursor: -webkit-image-set(url("../images/cursor/cursor-pointer.png") 1x, url("../images/cursor/cursor-pointer@2x.png") 2x) 12 12, pointer;
  /* Webkit */ }

.image-container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: inherit;
  height: 100%; }

.main-home .project-container > svg {
  cursor: url("../images/cursor/cursor-arr-down.png") 6 18, s-resize;
  /* Legacy */
  cursor: url("../images/cursor/cursor-arr-down.svg") 6 18, s-resize;
  /* FF */
  cursor: -webkit-image-set(url("../images/cursor/cursor-arr-down.png") 1x, url("../images/cursor/cursor-arr-down@2x.png") 2x) 12 36, s-resize;
  /* Webkit */
  background-color: #d9d8d2; }

.main-project .project-container > svg {
  cursor: url("../images/cursor/cursor-close.png") 6 6, crosshair;
  /* Legacy */
  cursor: url("../images/cursor/cursor-close.svg") 6 6, crosshair;
  /* FF */
  cursor: -webkit-image-set(url("../images/cursor/cursor-close.png") 1x, url("../images/cursor/cursor-close@2x.png") 2x) 12 12, crosshair;
  /* Webkit */ }

.main-text-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 80vw;
  height: 100%;
  columns: 4;
  column-gap: 15px;
  padding: 42px 15px 14px;
  column-fill: auto; }
  .main-text-content .text-block {
    border-bottom: 1px dashed black;
    margin-bottom: 14px; }
    .main-text-content .text-block:first-child {
      padding-top: 28px; }
    .main-text-content .text-block h1, .main-text-content .text-block h2, .main-text-content .text-block h3 {
      text-decoration: underline;
      padding-bottom: 14px; }
    .main-text-content .text-block p {
      padding-bottom: 14px; }
    .main-text-content .text-block ul {
      padding-bottom: 14px; }
    .main-text-content .text-block li:before {
      content: '›';
      font-family: 'Stymbols';
      padding-right: .5em; }

.panel-active main {
  width: 61%; }

.panel-active.expanded main {
  width: 41%; }

.panel-active-half main {
  width: 71%; }

.panel-active-half.expanded main {
  width: 61%; }

@media screen and (max-width: 1200px) {
  main {
    width: 66.7% !important; }
  .main-text-content {
    width: 100%;
    columns: 2; } }

@media screen and (max-width: 800px) {
  main {
    width: 100% !important; }
  .project-building {
    display: none; } }

/* ---------------- */
/* HOME */
/* ---------------- */
.main-home section {
  position: relative;
  width: 100%;
  padding: 14px 15px; }

.main-home em, .main-home .symbol {
  font-family: 'Stymbols';
  font-style: normal; }

.main-home:hover #about-contact {
  border-color: black; }

.main-home:hover #contact .about__block {
  opacity: 1; }

#intro {
  position: absolute;
  min-height: 100vh; }
  #intro.fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: inherit;
    cursor: url("../images/cursor/cursor-arr-down.png") 6 18, s-resize;
    /* Legacy */
    cursor: url("../images/cursor/cursor-arr-down.svg") 6 18, s-resize;
    /* FF */
    cursor: -webkit-image-set(url("../images/cursor/cursor-arr-down.png") 1x, url("../images/cursor/cursor-arr-down@2x.png") 2x) 12 36, s-resize;
    /* Webkit */ }
  #intro.scrolled {
    top: 175vh;
    cursor: url("../images/cursor/cursor-arr-down.png") 6 18, s-resize;
    /* Legacy */
    cursor: url("../images/cursor/cursor-arr-down.svg") 6 18, s-resize;
    /* FF */
    cursor: -webkit-image-set(url("../images/cursor/cursor-arr-down.png") 1x, url("../images/cursor/cursor-arr-down@2x.png") 2x) 12 36, s-resize;
    /* Webkit */ }

.intro__text {
  font-size: 30px;
  line-height: 1.2em;
  cursor: url("../images/cursor/cursor-arr-down.png") 6 18, s-resize;
  /* Legacy */
  cursor: url("../images/cursor/cursor-arr-down.svg") 6 18, s-resize;
  /* FF */
  cursor: -webkit-image-set(url("../images/cursor/cursor-arr-down.png") 1x, url("../images/cursor/cursor-arr-down@2x.png") 2x) 12 36, s-resize;
  /* Webkit */ }
  .intro__text p {
    display: inline;
    cursor: url("../images/cursor/cursor-arr-down.png") 6 18, s-resize;
    /* Legacy */
    cursor: url("../images/cursor/cursor-arr-down.svg") 6 18, s-resize;
    /* FF */
    cursor: -webkit-image-set(url("../images/cursor/cursor-arr-down.png") 1x, url("../images/cursor/cursor-arr-down@2x.png") 2x) 12 36, s-resize;
    /* Webkit */ }
  .intro__text .highlight {
    position: relative;
    display: inline-block; }
    .intro__text .highlight:hover {
      color: transparent; }
      .intro__text .highlight:hover .highlight-text,
      .intro__text .highlight:hover .highlight-image {
        display: block; }
    .intro__text .highlight:after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      border-bottom: .075em solid black; }
  .intro__text .highlight-image,
  .intro__text .highlight-text {
    z-index: 9999;
    display: none;
    position: absolute;
    left: 50%;
    top: 1.5rem;
    width: 20vw;
    height: auto;
    background-color: white; }
  .intro__text .from-right .highlight-image {
    left: auto;
    right: 50%; }
  .intro__text .highlight-text {
    color: black;
    font-size: 11.5px;
    line-height: 14px;
    border-radius: 15px;
    border: 1px solid black;
    padding: 14px 15px; }

.main-home #contact {
  margin-top: 150vh; }
  .main-home #contact #about-contact {
    opacity: 1; }
  .main-home #contact .about__block {
    opacity: 0; }

#nav-mobile {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  font-family: 'Scto';
  font-size: 13.25px;
  font-weight: 700;
  line-height: 14px;
  padding: 0;
  background-color: #fff; }
  #nav-mobile .bottom-navigation {
    width: 100%;
    display: flex;
    justify-content: space-between;
    text-transform: uppercase; }

#projects-title {
  width: 100%;
  padding: 14px 15px; }

#projects-list {
  height: 0;
  transition: height .25s; }
  #projects-list.open {
    height: auto; }
  #projects-list .inner {
    padding: 0 15px 14px; }

@media screen and (min-width: 1920px) {
  .intro__text {
    font-size: 40px; } }

@media screen and (max-width: 1200px) {
  .intro__text {
    font-size: 25px; }
    .intro__text .highlight-image,
    .intro__text .highlight-text {
      top: 1rem;
      width: 33vw; } }

@media screen and (max-width: 800px) {
  #intro {
    position: relative;
    top: auto;
    min-height: auto; }
    #intro.fixed, #intro.scrolled {
      top: auto;
      position: relative; }
  .intro__text {
    font-size: 20px; }
    .intro__text .highlight-image,
    .intro__text .highlight-text {
      position: fixed;
      top: 7.5vw;
      left: 5vw;
      width: 90vw; }
    .intro__text .from-right .highlight-image {
      left: 5vw;
      right: auto; }
  #nav-mobile {
    display: block; } }

/* ---------------- */
/* ABOUT */
/* ---------------- */
.main-about {
  height: 100%;
  padding-bottom: 56px; }

#contact {
  display: flex;
  min-height: 100vh;
  padding: 24px 0 0; }
  #contact-contact {
    opacity: 1 !important;
    border-color: transparent; }
  #contact h1, #contact h2, #contact h3 {
    text-decoration: underline;
    padding-bottom: 14px; }
  #contact p {
    padding-bottom: 14px; }

.about__column--tablet {
  display: flex;
  width: 50%; }

.about__column {
  width: 50%; }

.about__block {
  margin: 14px 15px 0 15px;
  border-bottom: 1px dashed black; }
  .about__block:last-child {
    border-color: transparent; }

@media screen and (max-width: 1200px) {
  .about__column--tablet {
    display: block; }
  .about__column {
    width: 100%; }
    .about__column:not(:last-child) .about__block {
      border-color: black; }
  .main-home #contact .about__block {
    opacity: 1; } }

@media screen and (max-width: 800px) {
  #contact {
    margin-top: 10vh;
    display: block; }
  .about__column--tablet {
    width: 100%; }
    .about__column--tablet:not(:last-child) .about__block {
      border-color: black; } }

/* ---------------- */
/* NAVIGATION */
/* ---------------- */
.nav-container {
  z-index: 101;
  position: fixed;
  right: 0;
  width: 20%;
  min-width: 20%;
  max-width: 20%;
  height: 100vh;
  font-family: 'Scto';
  font-size: 13.25px;
  font-weight: 700;
  line-height: 14px;
  background-color: #fff;
  border-left: 1px solid #000;
  overflow: scroll; }
  .nav-container .filters {
    overflow: hidden; }
    .nav-container .filters p:first-child {
      padding: 0; }
    .nav-container .filters .filter-list {
      padding-bottom: 14px; }
  .nav-container .meta .meta-item {
    display: flex; }
    .nav-container .meta .meta-item label {
      min-width: 90px; }
  .nav-container .text {
    overflow: hidden;
    padding-left: 15px; }
  .nav-container .nav-content.clicked {
    pointer-events: none; }
  .nav-container .title-collapsible {
    display: block;
    overflow: hidden; }
  .nav-container p {
    padding-bottom: 14px; }
  .nav-container ul {
    list-style: initial;
    overflow: hidden; }
    .nav-container ul.level-1 > .inner {
      padding-right: 15px;
      padding-top: 14px; }
    .nav-container ul.level-4 .inner {
      padding-top: 0;
      padding-left: 30px;
      padding-bottom: 0; }
      .nav-container ul.level-4 .inner .nav-content {
        padding-bottom: 0; }
    .nav-container ul .inner {
      padding: 14px 0 14px 15px; }
    .nav-container ul li {
      overflow: hidden; }
      .nav-container ul li:last-child .inner,
      .nav-container ul li:last-child p:last-child {
        padding-bottom: 0; }
      .nav-container ul li.closed > .nav-content {
        height: 0; }
      .nav-container ul li.closed > .list-style-plus:before {
        content: '+'; }
    .nav-container ul.hide-siblings > .inner > .closed {
      height: 0; }
  .nav-container .close, .nav-container .back {
    display: inline-block; }
    .nav-container .close:before, .nav-container .back:before {
      content: '✕';
      display: inline-block;
      padding-right: .3rem;
      transform: scale(0.7);
      transform-origin: left; }
  .nav-container .back {
    padding-top: 14px;
    padding-bottom: 14px; }
  .nav-container .group-content .close {
    display: block;
    padding-top: 14px; }
  .nav-container .list-style-plus:before {
    content: '–';
    display: inline-block;
    width: 1rem;
    padding-right: .6rem; }

.page[data-barba-namespace="l2-project"] .filters,
.page[data-barba-namespace="l2-project"] .level-2 > .inner > .closed,
.page[data-barba-namespace="l2-generic-item"] .filters,
.page[data-barba-namespace="l2-generic-item"] .level-2 > .inner > .closed {
  height: 0;
  padding-bottom: 0; }

/* Languages */
.languages {
  position: fixed;
  bottom: 0;
  width: 100%;
  background: white; }
  .languages:before {
    content: '';
    display: block;
    position: absolute;
    bottom: 100%;
    left: 0;
    width: 100%;
    height: 42px;
    background: linear-gradient(to top, white, rgba(255, 255, 255, 0));
    pointer-events: none; }
  .languages ul {
    padding: 0 15px 9.33333px; }
  .languages li {
    display: inline-flex;
    color: #c5c4bb; }
    .languages li.active {
      color: black; }
    .languages li:not(:last-child):after {
      content: ', ';
      color: #c5c4bb; }
  .languages a {
    text-transform: uppercase; }
    .languages a:hover {
      color: black; }

.level-4 .nav-content:first-child,
.level-4 li:last-child {
  padding-bottom: 1rem; }

@media screen and (max-width: 1200px) {
  .nav-container {
    width: 33.3%;
    min-width: 33.3%;
    max-width: 33.3%; } }

@media screen and (max-width: 800px) {
  .nav-container {
    display: none; }
  .languages {
    padding: 14px 15px;
    position: static;
    width: 7.5rem;
    text-align: right; }
    .languages:before {
      content: none; }
    .languages ul {
      padding: 0; } }

/* ---------------- */
/* PANEL */
/* ---------------- */
.panel-container {
  z-index: 100;
  position: fixed;
  top: 0;
  right: -20.1vw;
  width: 40vw;
  height: 100vh;
  font-family: 'Styrene';
  font-size: 11.5px;
  font-weight: 300;
  line-height: 14px;
  background-color: #fff;
  padding: 0 1rem;
  border-left: 1px solid #000;
  transition: right .4s, width .4s;
  overflow: scroll; }
  .panel-container #panel {
    transition: padding-left .4s; }

.expanded.panel-active .panel-container {
  right: 20vw; }

.expanded.panel-active .panel-block {
  margin-left: calc(20vw - 1rem);
  margin-right: 0; }

.expanded.panel-active-half .panel-container {
  right: 0; }

.expanded.panel-active-half .panel-block {
  margin-left: 10vw;
  margin-right: 0; }

.panel-has-blocks .panel-container {
  right: -19vw; }

.panel-active .panel-container {
  right: 0; }

.panel-active-half .panel-container {
  right: -10vw; }

.panel-block {
  padding-top: .75rem;
  margin-right: 19.75vw;
  border-bottom: 1px dashed #000;
  transition: all .4s; }
  .panel-block:last-child {
    margin-bottom: 2rem; }
  .panel-block.normal figure.zoomed-image {
    margin-left: -100%; }
  .panel-block.half_col {
    display: flex;
    flex-direction: column; }
    .panel-block.half_col figure.layered {
      width: 50%; }
    .panel-block.half_col figure.zoomed-image {
      width: calc(20vw - 2rem); }
  .panel-block.small_img figure {
    width: 50%; }
    .panel-block.small_img figure.zoomed-image {
      width: 100%; }
  .panel-block figure {
    position: relative;
    width: 100%;
    margin-top: .25rem;
    transition: all .4s; }
    .panel-block figure img {
      display: block;
      padding-bottom: 14px;
      cursor: url("../images/cursor/cursor-plus.png") 6 6, crosshair;
      /* Legacy */
      cursor: url("../images/cursor/cursor-plus.svg") 6 6, crosshair;
      /* FF */
      cursor: -webkit-image-set(url("../images/cursor/cursor-plus.png") 1x, url("../images/cursor/cursor-plus@2x.png") 2x) 12 12, crosshair;
      /* Webkit */
      background-color: white; }
    .panel-block figure.zoomed-image {
      width: 200%; }
      .panel-block figure.zoomed-image img {
        cursor: url("../images/cursor/cursor-minus.png") 6 6, crosshair;
        /* Legacy */
        cursor: url("../images/cursor/cursor-minus.svg") 6 6, crosshair;
        /* FF */
        cursor: -webkit-image-set(url("../images/cursor/cursor-minus.png") 1x, url("../images/cursor/cursor-minus@2x.png") 2x) 12 12, crosshair;
        /* Webkit */ }
      .panel-block figure.zoomed-image .graphic {
        opacity: 0; }
    .panel-block figure.layered img {
      position: absolute;
      top: 0;
      z-index: 0; }
      .panel-block figure.layered img:first-child {
        z-index: 1;
        position: relative;
        top: 0; }
      .panel-block figure.layered img.visible {
        z-index: 10; }
  .panel-block .title {
    text-decoration: underline; }
  .panel-block .legenda .legenda-item {
    display: flex; }
    .panel-block .legenda .legenda-item div {
      display: inline; }
    .panel-block .legenda .legenda-item .tile {
      display: inline-block;
      width: 2.5em;
      min-width: 2.5em;
      height: 0.7em;
      margin-top: 0.225em;
      margin-right: .3em;
      border-bottom: 1px solid transparent; }
  .panel-block .scale ul {
    display: flex;
    width: 100%; }
  .panel-block .scale .scale-item {
    flex: 1; }
    .panel-block .scale .scale-item .tile {
      height: 0.7em; }
  .panel-block .title,
  .panel-block .legenda,
  .panel-block .scale,
  .panel-block .block-description,
  .panel-block .links {
    padding-bottom: 14px; }
  .panel-block figcaption:last-child {
    margin-bottom: 14px; }
  .panel-block .arrow-analysis:before {
    content: '⇢'; }
  .panel-block .arrow-credits:before {
    content: '↳'; }
  .panel-block figcaption:hover .arrow-analysis:before {
    content: '⟶'; }
  .panel-block .symbol, .panel-block .arrow {
    font-family: 'Stymbols'; }

@media screen and (max-width: 1200px) {
  .panel-container {
    display: none; } }
