@import url("maison_neue_font.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, 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;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	line-height: 1;
  background-color: #f4f4f4;
  overflow: hidden;
}

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;
}

::selection {
  background-color: var(--color-green);
}

html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-size: 100%;
  box-sizing: border-box; 
}

:root {
  --easing-cubic: cubic-bezier(0.365, 0.220, 0.000, 0.995);
  --easing-time: 0.7s;
  --blur: 10px;
  --color-grey: #808080;
  --color-light-grey: rgba(245, 245, 245, 1);
  --color-green: #00ff00;
}

body {
  font-weight: normal;
  text-rendering: optimizeLegibility;
  word-wrap: break-word;
  -webkit-text-size-adjust: none;
  margin: 0;
  padding: 0;
}

body,
.transition-opacity,
.carousel-cell img,
.carousel-cell video,
.carousel-container,
.project-container {
  background-color: #f4f4f4;
}

.about-imprint-section p,
.about-imprint-section .p,
.text mark,
img,
video {
  color: black !important;
}

mark {
  color: #e14016 !important;
  background-color: #e8a3c2 !important;
}

mark.inverted {
  color: #e8a3c2 !important;
  background-color: #e14016 !important;

}

img,
video {
  font-size: 0px;
}

*,
*::before,
*::after {
  box-sizing: border-box; 
}

body, input, button {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; 
}

body, html {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

body::-webkit-scrollbar,
html::-webkit-scrollbar {
  display: none;
}

h1, h2, h3, h4, h5, h6, p,
.h1, .h2, .h3, .h4, .h5, .h6, .p, .tooltip, html, body {
  font-family: "Maison Neue";
  font-style: normal;
  font-weight: 500;
  -webkit-font-variant-ligatures: common-ligatures;
  -moz-font-variant-ligatures: common-ligatures;
  font-variant-ligatures: common-ligatures;
  text-rendering: optimizeLegibility;
  font-feature-settings: "liga", "kern";
  text-align: left;
  line-height: 1.15 !important; 
}

div, span, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote {
  margin: 0;
  padding: 0; 
}

span {
  display: block;
}

h1, .h1,
p, .p,
.tooltip { 
  font-size: 12px; 
  line-height: 1.15 !important;
  color: white !important;
}

.hyphens h1,
.hyphens .h1,
.hyphens p,
.hyphens .p,
.gallery-description p,
.gallery-description .p {
  hyphens: auto;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphenate-limit-chars: 4 3 7;

}

.index-body h1, .index-body .h1,
.index-body p, .index-body .p {
  font-size: calc(12px * 1.9);
  line-height: 1.2 !important;
  text-align: center;
}

html, body {
  color: #101010;
}









.nav-logo {
  position: fixed;
  top: calc(var(--vh, 1vh) * 50);
  left: 50vw;
  width: 75vw;
  z-index: 1000;
  transform: translateY(-50%) translateX(-50%);
  pointer-events: none;
}

.contact {
  position: fixed;
  bottom: 0px;
  left: 50vw;
  transform: translateX(-50%);
  z-index: 1000;
  display: flex;
}

.contact a {
  padding: 20px;
}













/* Flickity */

.aspect-2-3 {
  aspect-ratio: 2/3;
}

.flickity-enabled {
  position: relative;
}

.flickity-enabled:focus { outline: none; }

.carousel-container .flickity-viewport,
.index-carousel-container .flickity-viewport {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: auto;
}

.carousel-container .flickity-viewport {
  height: 100% !important;
  aspect-ratio: 2/3;
}

.zoomed.carousel-container .flickity-viewport {
  aspect-ratio: unset !important;
}

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%;
  /* No slide  */
  transform: none !important; 
}

.main-carousel .flickity-slider {
  height: calc(100% + 1px);
  width: calc(100% + 1px);
}

.zoomed .main-carousel .flickity-slider {
  height: 100%;
  width: 100%;
}

.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.flickity-lazyloaded {
  opacity: 1 !important;
}

.main-carousel,
.index-carousel {
  z-index: 1;
  display: flex;
  flex-direction: row;
  width: 100%;
  height: 100%;
  padding-left: 0px;
}

.main-carousel {
  pointer-events: none;
  position: relative;
}

.zoomed .main-carousel,
.index-carousel {
  pointer-events: all;
  opacity: 1;
  transition: transform var(--easing-time) var(--easing-cubic);
  aspect-ratio: unset;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
}

.index-carousel {
  width: 100%;
}

.carousel-cell {
  height: auto;
  line-height: 0;
  opacity: 1;
  z-index: -1;
  text-align: center;
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
  /* No slide     */
  left: 0 !important;
  opacity: 0;
  transition: opacity 0s var(--easing-cubic);
  z-index: -1;
  padding: 0px;
  overflow: hidden;
  transform: none !important;
}


.zoomed .carousel-cell {
  height: 100%;
}

.carousel-container,
.index-carousel-container {
  z-index: 10;
  position: relative !important;
  top: 0px !important;
  left: unset !important;
  height: auto;
  cursor: pointer;
  transition: opacity var(--easing-time) var(--easing-cubic);
}

.carousel-container {
  height: auto;
  display: flex;
  flex-direction: column;
}

.zoomed.carousel-container .carousel-cell img,
.zoomed.carousel-container .carousel-cell video {
  transform: none;
  transform-origin: center !important;
}

.body-zoomed.overview-full .carousel-container {
  visibility: hidden;
}

.zoomed.carousel-container {
  height: 100vh;
  height: 100dvh;
  cursor: default;
  position: fixed !important;
  z-index: 100;
  top: 0px;
  width: calc(100vw - 399px);
  visibility: visible !important;
  right: 0px !important;
  transition: transform var(--easing-time) var(--easing-cubic);
}

.overview-full .zoomed.carousel-container,
.overview-full.about-on .zoomed.carousel-container {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  top: 0px !important;
  transition: transform var(--easing-time) var(--easing-cubic);
}

.project-section {
  scrollbar-width: none;
  -ms-overflow-style: none;
  z-index: 1;
  width: 100vw;
  top: 0px;
  left: 0px;
  transition: transform var(--easing-time) var(--easing-cubic);
}

.overview-on .project-section {
  overflow: hidden;
}

.project-section::-webkit-scrollbar,
.project-section::-webkit-scrollbar {
  display: none;
}

.project-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin-top: 0px;
  transition: transform var(--easing-time) var(--easing-cubic);
  transform: unset;
  grid-auto-rows: max-content;
  padding-right: calc(100vw - 400px) !important;
}

.single-project .project-container {
  width: 100vw;
  grid-template-columns: 1fr;
  padding-right: 0px !important;
} 

.single-project .zoomed.carousel-container {
  width: 100vw;
  left: 0px;
}

.overview-full .project-container {
  grid-template-columns: 1fr 1fr 1fr;
  padding-right: 0px !important;
}

.index-body .project-container {
  grid-template-columns: 1fr;
  padding: 0px !important;
}

.project-container::-webkit-scrollbar,
.project-container::-webkit-scrollbar {
  display: none;
}

.carousel-cell.is-selected {
  opacity: 1;
  z-index: 0;
  /* No slide   */
  transform: none !important; 
}

.is-selected.hover-img {
  z-index: 1000 !important;
}

.carousel-cell img,
.carousel-cell video {
  line-height: 0;
  opacity: 1;
  z-index: 1;
  position: relative;
  transform: none;
  object-fit: contain;
  object-position: top;
  height: auto;
  border: 0;
  width: 100%;
  height: 100%;
  display: block;
  padding: 0px;
  margin: 0px;
  transform: unset;
  transition: transform var(--easing-time) var(--easing-cubic);
  transform-origin: center !important;
  opacity: 0;
}

.index-body .carousel-cell img,
.index-body .carousel-cell video {
  object-fit: cover !important;
  object-position: center !important;
}





















/* Flickity Width */

.index-body .carousel-cell,
.zoomed .carousel-cell {
  height: 100% !important;
}

.zoomed .carousel-cell.width-50,
.index-body .carousel-cell.width-50 {
  width: 50%;
}

.zoomed .carousel-cell.width-50.is-selected.second,
.index-body .carousel-cell.width-50.is-selected.second {
  opacity: 10;
  z-index: 1;
  transform: none !important;
  left: 50% !important;
}

.index-body .carousel-cell img,
.index-body .carousel-cell video {
  object-position: center !important;
}

.zoomed .carousel-cell.width-50.second img,
.zoomed .carousel-cell.width-50.second video {
  padding-right: 100px;
  padding-left: 0px;
}

.img-show-mobile {
  display: none !important;
}

.index-carousel-container {
  height: 100vh;
  height: 100dvh;
}

.index-body .carousel-cell img, 
.index-body .carousel-cell video {
  height: 100%;
}




















/* Additional Slider */

.carousel-container-normal {
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
}

.main-carousel-normal {
  width: 100%;
  height: auto;
}

.main-carousel-normal .carousel-cell {
  width: 100%; 
  height: auto;
  position: relative;
}

.main-carousel-normal .carousel-cell img,
.main-carousel-normal .carousel-cell video {
  display: block;
  width: 100%;
  height: auto; 
  object-fit: cover;
}

.main-carousel-normal .flickity-viewport {
  width: 100%;
  height: auto;
  overflow: hidden;
  position: relative;
}

.carousel-status-normal {
  position: absolute;
  top: 0px;
  right: 0px;
  width: 100%;
  padding: 6px;
  mix-blend-mode: difference;
  z-index: 1;
}

.about-imprint-section p.carousel-status-normal {
  color: white !important;
  text-align: right;
}

.main-carousel-normal .flickity-button {
  position: absolute;
  height: 100%;
  width: 50%;
  top: 0px;
  z-index: 10;
}

.main-carousel-normal .flickity-button.prev {
  left: 0px;
}

.main-carousel-normal .flickity-button.next {
  right: 0px;
}

.main-carousel-normal .flickity-page-dots {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  padding: 7px;
  z-index: 10;
  display: flex;
  flex-direction: row;
  mix-blend-mode: difference;
}

.main-carousel-normal .dot {
  height: 7px;
  width: 7px;
  background: white;
  border-radius: 20px;
  margin: 2px;
  opacity: 0.5;
  cursor: pointer;
}

.main-carousel-normal .dot.is-selected {
  opacity: 1;
}

.main-carousel-normal .flickity-button-icon {
  display: none;
}













/*  Links, Buttons */

a, a:active, a:hover, a:focus, a:focus-within, a:visited, a:visited:hover {
  background: transparent;
  text-decoration: none;
  line-height: inherit; 
  border: none;
  border: 0;
  outline: none;
  border: 0;
}

button, .button, a.button {
  overflow: visible;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-transform: none;
  display: inline-block;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  border: none;
  outline: none;
  background: none;
}
 
button:visited, button:visited:hover, button:focus-within, button:focus, button:hover, button:active, .button:visited, .button:visited:hover, .button:focus-within, .button:focus, .button:hover, .button:active {
  outline: none; 
  border: none;
}

button::-moz-focus-inner,
.button::-moz-focus-inner {
  border: 0;
  padding: 0; 
}

.tooltip {
  position: fixed;
  pointer-events: none;
  transition: transform 0.2s var(--large-font-size), width 0.2s var(--easing-cubic), height 0.2s var(--easing-cubic);
  transform: translate(-50%, -50%);
  z-index: 10000000000000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 13px;
  border-radius: 30px;
  white-space: nowrap;
  opacity: 0;
  background: white;
  color: white !important;
}













/* Navigation */

.top-info {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100vw;
  z-index: 10000000000;
  pointer-events: all;
  height: 100vh;
  height: 100dvh;
  cursor: pointer !important;
  padding: 10px;
}






.overlay-blur {
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  position: fixed;
  z-index: 300;
  top: 0px;
  left: 0px;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  pointer-events: none;
  visibility: hidden;
  transition: backdrop-filter 1.4s var(--easing-cubic), -webkit-backdrop-filter 1.4s var(--easing-cubic), visibility 0s ease 1.4s;
}

.page-background {
  background-color: #f4f4f4;
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
}

.global-blur .overlay-blur,
.transition-global-blur .overlay-blur  {
  pointer-events: all;
  visibility: visible;
  backdrop-filter: blur(var(--blur));
  -webkit-backdrop-filter: blur(var(--blur));
  transition: backdrop-filter 1.4s var(--easing-cubic), -webkit-backdrop-filter 1.4s var(--easing-cubic);
}

















/* Page Transition */

.transition-opacity {
  opacity: 0;
  transition: all 0.7s ease-in-out;
  width: 100%;
  height: 100vh;
  z-index: 10000000000;
  position: fixed;
  top: 0px;
  left: 0px;
  pointer-events: none;
}

.page-transition .transition-opacity {
  opacity: 1;
  transition: all 0.7s ease-in-out;
  z-index: 10000000000;
}

.page-transition .transition-opacity-0 {
  opacity: 0;
  transition: opacity var(--easing-time) ease-in-out;
}



















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

  .zoomed.carousel-container {
    width: calc(100vw - 339px);
  }

  .project-container {
    padding-right: calc(100vw - 339px) !important;
  }

  .about-imprint-section {
    width: 340px;
    transform: translateX(-340px);
  }

  .about-on .project-section {
    transform: translateX(340px);
  }

  .about-imprint-section {
    width: 340px;
  }

  .video-controls, .full-video-controls {
    left: calc(50vw + 340px);
    transform: translateY(calc(100% + 7px)) translateX(calc(-50% - 170px));
  }

  .show-controls.video-controls, .show-controls.full-video-controls {
    transform: translateY(0px) translateX(calc(-50% - 170px));
  }

  .body-info-on .video-controls, .body-info-on .full-video-controls {
    transform: translateY(calc(100% + 7px)) translateX(calc(-50% - 170px));
  }
  
}

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

  .orbit-stage {
    --radius: 80px
  }

  .about-imprint-section {
    width: 400px;
    transform: translateX(-400px);
  }

  .about-on .project-section {
    transform: translateX(400px);
  }

  .about-on .project-section {
    transform: translateX(400px);
  }

  .single-project .zoomed .carousel-cell video {
    object-position: center !important;
  }

  .zoomed.carousel-container {
    width: 100vw;
  }

  .video-controls,
  .full-video-controls {
    left: 50vw;
    bottom: 87px;
    max-width: 100vw;
    transform: translateY(calc(100% + 87px + 7px)) translateX(-50%) !important;
  }

  .show-controls.video-controls, .show-controls.full-video-controls {
    transform: translateY(0px) translateX(-50%) !important;
  }

  .body-info-on .video-controls, .body-info-on .full-video-controls {
    transform: translateY(calc(100% + 87px + 7px)) translateX(-50%) !important;
  }

  .body-info-on .video-controls,
  .body-info-on .full-video-controls {
    transform: translateY(calc(100% + 87px + 7px)) translateX(-50%) !important;
  }

  .carousel-container.zoomed,
  .transition-opacity,
  .overview-full .zoomed.carousel-container,
  .index-carousel-container,
  .top-info {
    height: calc(var(--vh, 1vh) * 100);
    height: 100dvh; 
  }

  .about-imprint-container,
  .about-imprint-section {
    max-height: calc(var(--vh, 1vh) * 100) !important; 
  }

}

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

  .navigation p,
  .navigation .p {
    color: white !important;
    font-size: calc(12px * 1.3);
    text-align: center;
  }


  .index-body .carousel-cell.width-50 {
    width: 100%;
  }
  
  .index-body .carousel-cell.width-50.second.is-selected {
    left: 0 !important;
  }
  
  .img-show-mobile {
    display: block !important;
  }

  .img-hide-mobile {
    display: none;
  }

}


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

  .orbit-stage {
    --radius: 50px;
  }

  .nav-logo {
    width: 87.5vw;
  }
  
}
