/* Reset CSS */
@import url("reset.css");

/* Font-face declarations for Dutch 801 */
@font-face {
  font-family: "Dutch801";
  src: url("../fonts/dutch801bt_bold.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "Dutch801";
  src: url("../fonts/dutch801bt_bolditalic.ttf") format("truetype");
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: "Dutch801";
  src: url("../fonts/dutch801bt_italic.ttf") format("truetype");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: "Dutch801";
  src: url("../fonts/dutch801bt_roman.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

/* Font-face declarations for Suisse BP Intl */
@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Black.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Black Italic.otf") format("opentype");
  font-weight: 900;
  font-style: italic;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Bold.otf") format("opentype");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Bold Italic.otf") format("opentype");
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Regular.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Regular Italic.otf") format("opentype");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Light Italic.otf") format("opentype");
  font-weight: 300;
  font-style: italic;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Thin.otf") format("opentype");
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: "SuisseBPInt";
  src: url("../fonts/Suisse BP Int'l Thin Italic.otf") format("opentype");
  font-weight: 100;
  font-style: italic;
}

html {
  height: 100dvh;
  width: 100vw;
}

:root {
  --gray: #cdcdcd;
  --black: black;
  --global-color: white;
}

/* Body background */
body {
  background-color: black;
  font-family: "SuisseBPInt", sans-serif;
}

body a {
  color: inherit;
  text-decoration: none;
}

.black {
  background-color: black;
}

.white {
  background-color: white;
}

.home-wrapper {
  overflow: hidden;
}

header {
  position: fixed;
  top: 1rem;
  height: 2rem;
  width: 100vw;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  z-index: 10000000;
}

header a {
  width: 6rem;
}

header > svg {
  height: 2.5rem;
}

header svg path {
  fill: var(--global-color) !important;
  transition: 0.2s ease-in-out;
}

.monogram {
  height: 8rem;
}

.keen-slider {
  height: 100dvh;
  width: 100vw !important;
  display: flex;
}

.home {
  flex-direction: column;
  flex-wrap: nowrap;
  overflow: hidden;
}

.home .keen-slider__slide {
  height: 100dvh;
  width: 100vw !important;
  min-width: 100vw !important;
  max-width: 100vw !important;
  display: flex;
  flex-direction: column;
}
/* Section wrapper for fullscreen layout */
.home-wrapper .section {
  height: 100vh;
  height: 100dvh;
  width: 100vw;
  display: flex;
  gap: 0;
}

/* Fullscreen figure element for images and videos */
.home-wrapper figure {
  height: 100%;
  width: 100%;
}

.home-section * {
  height: 100%;
}

/* Styling for both images and videos */
/* .home-wrapper .section img,
.home-wrapper .section video {
  width: 100%;
  height: 100%;
  object-fit: cover;
} */

/* Fullscreen style for images and videos */
.full img,
.full video {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/* Centered style for images and videos */
.center img,
.center video {
  height: 100%;
  width: 100%;
  object-fit: contain;
}

/* Centered with margins for images and videos */
.centerMargin {
  display: flex;
  align-items: center;
  justify-content: center;
}

.centerMargin img,
.centerMargin video {
  height: calc(100% - 10rem);
  width: calc(100% - 10rem);
  object-fit: contain;
}

.menu-container {
  position: fixed;
  bottom: 1rem;
  background-color: white;
  z-index: 1000;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100vw / 3);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  height: 1.8rem;
  border-radius: 0.1rem;
  transition: width 0.2s ease-in-out;
  -webkit-box-shadow: 0px 0px 15px -5px rgba(0, 0, 0, 0.28);
  -moz-box-shadow: 0px 0px 15px -5px rgba(0, 0, 0, 0.28);
  box-shadow: 0px 0px 15px -5px rgba(0, 0, 0, 0.28);
  transition: transform 0.3s cubic-bezier(0.4, 0.32, 0.83, 1.23), width 0.2s ease-in-out;
}

.menu-container:hover {
  width: calc(100vw / 3) !important;
}

.menu-wrapper {
  width: calc(100vw / 3);
  overflow: hidden;
  padding: 0.5rem;
  border-radius: 0.1rem;
  padding-left: 0;
  padding-right: 0;
  font-family: "Dutch801";
  font-weight: 600;
  padding-top: 0.22rem;
  box-shadow: 0px 3px 15px -3px rgba(0, 0, 0, 0.1);
  position: absolute;
  top: 0;
  height: 1.8rem;
}

.text-loader {
  position: relative; /* To position the loading bar absolutely within */
  color: var(--gray); /* Fallback color for text */
  height: 1.5rem;
  font-size: 1.2rem; /* Adjust size as needed */
  display: flex;
  pointer-events: none;
  display: flex;
  /* justify-content: center; */
}

.normal-text {
  display: flex;
  position: relative;
  /* padding: 0.5rem; */
}

.fake-text {
  display: flex;
  position: absolute;
  color: black;
  width: 0px;
  overflow: hidden;
}

.fake-clip-path {
  position: absolute;
}

.fake-text-loader {
  position: relative; /* To position the loading bar absolutely within */
  background-clip: text;
  color: transparent; /* Makes the text transparent */
  background-color: black; /* Fallback color for text */
  height: 1.5rem;
  font-size: 1.2rem; /* Adjust size as needed */
  z-index: 10;
  position: absolute;
  z-index: 10;
  opacity: 0;
  width: 0;

  pointer-events: none;
  z-index: 210;
  left: 4px;
  top: -3.1px;
}

a {
  text-decoration: none;
}

.keen-slider__slide .title {
  /* transform: translateX(1rem); */
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.arrow {
  width: 1rem;
  /* transition: width 2s ease-in-out; */
  overflow: hidden;
  display: inline-block;
  font-family: "SuisseBPInt";
  font-weight: 300;
  margin-top: 0.11rem;
  font-size: 1.1rem;
  /* margin-left: 0.3rem; */
  opacity: 0;
  position: absolute;
  right: 0;
  /* transform: translateX(-1rem); */
}

.active-title .arrow {
  opacity: 1;
  transform: translateX(0.25rem);
  transition: transform 0.3s cubic-bezier(0.4, 0.32, 0.83, 1.23),
    opacity 0.3s cubic-bezier(0.4, 0.32, 0.83, 1.23);
  transition-delay: 0.5s;
}

.active-title .title {
  transform: translateX(-0.5rem);
  transition: transform 0.3s cubic-bezier(0.4, 0.32, 0.83, 1.23),
  opacity 0.3s cubic-bezier(0.4, 0.32, 0.83, 1.23);
transition-delay: 0.5s;

}

.title .arrow {
  right: -0.5rem;
}

.active-title .title {
  /* transform: translateX(0.25rem); */
  /* transition: transform 0.3s cubic-bezier(0.4, 0.32, 0.83, 1.23); */
  /* transition-delay: 0.5s; */
}

.active-title .fake-text-loader {
  opacity: 1;
}

.active-title .text-loader {
  color: #878787; /* Fallback color for text */
}

.active-title a {
  pointer-events: all !important;
}

.active-title .fake-text {
  opacity: 1;
}

.fake-text {
  opacity: 0;
}
/* Keyframes for the loading bar animation */

.titles-wrapper {
  height: 1rem;
  width: 100% !important;
  overflow: unset !important;
  font-size: 1.1rem;
  display: flex;
}

.titles-wrapper .keen-slider {
  height: 2rem;
  min-height: 2rem;
  max-height: 2rem;
}

.titles-wrapper .keen-slider__slide {
  flex-shrink: 0; /* Prevent slides from shrinking */
  width: auto; /* Let the slide size itself based on content */
  white-space: nowrap; /* Prevent text wrapping inside the slide */
  display: inline-block; /* Keep slides inline */
  text-align: center; /* Optional: Center align the text */
  width: max-content !important;
  height: 100% !important;
  color: var(--gray);
  overflow: unset !important;
}

.titles-wrapper .active-title {
  color: black;
}
/* CASE STUDY */
.project-wrapper {
  display: flex;
  flex-direction: column;
}

.case-study-layout .layout-column {
  height: 100%;
  width: 100%;
}

.case-study-layout .layout-column figure {
  height: 100%;
  width: 100%;
}

.case-study-layout .video-block {
  pointer-events: auto;
  height: 100%;
  width: 100%;
}

.project-description {
  color: black;
  background-color: white;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: "SuisseBPInt";
  font-weight: 300;
}

.project-description .desc-wrapper {
  width: 70ch;
  text-align: left;
  line-height: 118%;
  letter-spacing: 0.05rem;
  font-size: 15px;
  display: flex;
  flex-direction: column;
  gap: calc(1.18rem * 2);
  font-size: 12px;
  line-height: 19.4px;
  letter-spacing: 1.2px;
}

.project-description .desc-wrapper .text-desc-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.18rem;
}

.project-description .credits-wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.18rem;
}

.project-description .credits-wrapper .col {
  display: flex;
  flex-direction: column;
  font-family: "Dutch801";
  letter-spacing: normal;
  line-height: normal;
  line-height: 99%;
}

.project-description .credits-wrapper .col ul {
  text-transform: uppercase;
}

.gallery-cards {
  display: flex;
  height: 100dvh;
  width: 100vw;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  box-sizing: border-box;
  gap: 1rem;
}

.gallery-cards .card {
  flex: 1 1 auto; /* Allow children to shrink and grow equally */
  height: 100%; /* Match the height of the parent */
  width: auto !important;
  object-fit: cover; /* Ensure the content within the slide scales properly */
  object-fit: inherit;
  max-width: 33vw;
}

.gallery-cards .keen-slider__slide {
  cursor: pointer;
}

.gallery-cards .active {
  cursor: inherit !important;
}

.full-wrapper {
  width: 100vw;
  height: 100dvh;
  display: flex;
  align-items: center;
  min-width: 100vw !important;
  max-width: 100vw !important;
  justify-content: center;
}

.card img {
  object-fit: contain !important;
  width: 100%;
  height: 100%;
}

.card video {
  object-fit: contain !important;
  width: 100%;
  height: 100%;
}

.gallery-card {
  max-height: 50vh;
}

.gallery-card .video-block {
  height: 100%;
}
.case-study-layout {
  height: 100dvh;
  width: 100vw;
}
/* Aspect ratio handling for videos */
.aspect-9-16 video {
  aspect-ratio: 9 / 16;
}

.aspect-16-9 video {
  aspect-ratio: 16 / 9;
}

/* PROJECT PAGE */

.project-slider {
  height: 100dvh;
  width: 100vw;
  display: flex;
  justify-content: flex-start;
  flex-direction: column;
  overflow: hidden;
}

.case-study-layout .video-block {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.case-studies-intro {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 100000;
  text-align: center;
}

.case-studies-intro span {
  background-color: white;
  padding: 0.5rem;
  line-height: 118%;
  letter-spacing: 0.05rem;
  font-size: 15px;
  padding-bottom: 0.25rem;
  padding-top: 0.356rem;
  border-radius: 0.1rem;
}

.case-study-layout .layout-column figure {
  display: flex;
  align-items: center;
  justify-content: center;
}

.case-study-layout .slider {
  overflow: hidden;
  height: 100dvh;
  justify-content: inherit;
  width: 100vw;
  min-width: 100vw;
  max-width: 100vw;
  padding: 0 !important;
  gap: 0 !important;
}

.case-study-layout .slider video {
  max-height: 60dvh !important;
  min-height: 60dvh !important;
  height: 60dvh !important;
  width: auto;
  max-width: 90vw;
  object-fit: contain;
  border-radius: 0.5rem;
}

.case-study-layout .slider img {
  max-height: 60dvh !important;
  min-height: 60dvh !important;

  width: auto;
  max-width: 90vw;
  object-fit: contain;
  border-radius: 0.5rem;
}

.case-study-layout .keen-slider__slide {
  opacity: 0.4;
  transition: opacity 0.2s ease-in-out;
}

.case-study-layout .active {
  opacity: 1;
}

.aspect-slider-9-16 {
  aspect-ratio: 9/16;
}

.aspect-slider-16-9 {
  aspect-ratio: 16/9;
}

.slider-index-wrapper {
  position: absolute;
  bottom: 4rem;
  left: 50%;
  transform: translateX(-50%);
  /* background: #ffffff4a; */
  border-radius: 0.5rem;
}

.circles-wrapper {
  display: flex;
  gap: calc(0.35rem * 2);
  padding: 0.35rem;
  /* background-color: white; */
  border-radius: 1rem;
  overflow: hidden;
}

.circle-progress {
  width: 1.05rem;
  height: 100%;
  border-radius: 1rem;
  position: absolute;
  z-index: -1;
  background: #363636;
  top: 0;
  left: 0;
  transition: width 0.2s cubic-bezier(0.4, 0.32, 0.83, 1.23);
  display: none;
}

.circles-wrapper .circle {
  height: 0.35rem;
  width: 0.35rem;
  border-radius: 1rem;
  background-color: rgb(205, 205, 205);
  transition: width 0.2s cubic-bezier(0.4, 0.32, 0.83, 1.23);
  cursor: pointer;
}

.circles-wrapper .active {
  /* background-color: white; */
  width: 1rem;
}

.white .circles-wrapper .circle {
  background-color: rgb(187 187 187);
}
.white .circles-wrapper .active {
  background-color: black;
}

.white .circle-progress {
  background-color: #e7e7e7;
}

.next {
  position: absolute;
  top: 0;
  z-index: -1;
}

.clickable .fake-text-loader {
  pointer-events: all !important;
}

.clickable .text-loader {
  pointer-events: all !important;
}

.project-container {
  transform: translateX(0);

  transition: transform 0.4s ease-in-out;
  /* transition-delay: 0.2s; */
}

.next-project {
  position: absolute;
  top: 0;
  left: 0;
  /* transform: translateX(100%); */
  z-index: -1 !important;
}

.remove-next-project {
  position: absolute;
  top: 0;
  left: 0;
  /* transform: translateX(-100%); */
  z-index: 2;
}

.prev-project {
  position: absolute;
  top: 0;
  left: 0;
  /* transform: translateX(-100%); */
  z-index: -1 !important;
}

.remove-prev-project {
  position: absolute;
  top: 0;
  left: 0;
  /* transform: translateX(100%); */
  z-index: 2;
}

.info-button {
  position: fixed;
  right: 1rem;
  top: 1rem;
  z-index: 10000000;
}

.about-wrapper .black {
  background-color: black;
  color: white;
}

.info-button svg {
  fill: var(--global-color) !important;
}

.case-study-layout .slider .image-full-screen img,
.case-study-layout .slider .image-full-screen video {
  max-width: 100vw !important;
  max-height: 100dvh !important;
  object-fit: cover !important;
  min-height: 100dvh !important;
  width: 100vw;
  height: 100dvh;
  border-radius: 0;
}

.center-div {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 30vw;
  background-color: rgba(255, 0, 0, 0.139);
  height: 100vh;
  z-index: 10000000;
  pointer-events: none;
}

.credits {
  position: absolute;
  bottom: 1rem;
  color: white;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Dutch801";
  letter-spacing: normal;
  line-height: normal;
  line-height: 99%;
  font-size: 12px;
  line-height: 19.4px;
  width: 70ch;
  display: flex;
  gap: 2rem;
  justify-content: center;
}
.credits span  {
  display: flex;
  gap: 0.25rem;
}

.credits span span {
  opacity: 0.15;

}

.credits a {
  text-transform: uppercase;
  opacity: 0.15;
}

.credits a:hover {
  opacity: 1;
}


@media (max-width: 800px) {
  .menu-wrapper {
    width: calc(100vw - 3rem);
  }

  .project-description .desc-wrapper {
    width: 100%;
    padding: 1rem;
    box-sizing: border-box;
  }

  .case-studies-intro {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
  }

}
.gallery-cards .full-wrapper {
  cursor: pointer !important;
}

.not-tiktok img,
.not-tiktok video {
  border-radius: 0 !important;
}
