/* RESET */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* BASE */

body {

  font-family: "Helvetica Neue", Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;

  color: #111;
  background: #fff;

  -webkit-font-smoothing: antialiased;

  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;

  overflow-x: hidden;

  min-height: 100svh;
}

/* HEADER */

header {

  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 30px 40px;

  position: relative;
  z-index: 1000;
}

.logo {

  font-size: 18px;
  letter-spacing: 1.5px;

  white-space: nowrap;
}

nav {

  display: flex;
  flex-shrink: 0;
}

nav a {

  margin-left: 25px;

  text-decoration: none;

  color: #111;

  font-size: 14px;
  letter-spacing: 1px;

  opacity: 0.6;

  transition: opacity 0.2s ease;
}

nav a:hover {

  opacity: 1;
}

/* GALLERY */

.horizontal-gallery {

  display: flex;
  align-items: center;

  gap: 40px;

  width: 100vw;

  overflow-x: auto;
  overflow-y: hidden;

  padding-left: 40px;
  padding-right: 40px;

  padding-bottom: 120px;

  min-height: calc(100svh - 140px);

  scroll-behavior: smooth;

  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;
}

.horizontal-gallery::-webkit-scrollbar {

  display: none;
}

/* IMAGES + VIDEO */

.horizontal-gallery img,
.gallery-video {

  height: 78vh;
  width: auto;

  object-fit: contain;

  flex-shrink: 0;

  display: block;

  cursor: pointer;

  transition: transform 0.35s ease;
}

.horizontal-gallery img:hover,
.gallery-video:hover {

  transform: scale(1.015);
}

/* INFO */

.info {

  max-width: 560px;

  padding: 40px 40px 140px;

  font-size: 14px;
  line-height: 1.8;
}

.info p {

  margin-bottom: 18px;
}

.info a {

  color: #111;

  text-decoration: none;
}

.info a:hover {

  opacity: 0.6;
}

/* LIGHTBOX */

.lightbox {

  position: fixed;

  top: 0;
  left: 0;

  width: 100%;
  height: 100%;

  background: rgba(255,255,255,0.97);

  display: flex;
  justify-content: center;
  align-items: center;

  opacity: 0;
  visibility: hidden;

  transition: opacity 0.3s ease;

  z-index: 9999;
}

.lightbox.active {

  opacity: 1;
  visibility: visible;
}

.lightbox-image {

  max-width: 92vw;
  max-height: 92vh;

  object-fit: contain;
}

.lightbox-video {

  width: 92vw;
  max-width: 1400px;

  max-height: 92vh;

  object-fit: contain;

  display: none;

  background: #000;
}

.close-lightbox {

  position: absolute;

  top: 30px;
  right: 40px;

  font-size: 40px;
  font-weight: 200;

  cursor: pointer;
}

/* CLIENT PANEL */

.clients-panel {

  position: fixed;

  left: 0;
  bottom: 70px;

  width: 100%;

  max-height: calc(100vh - 120px);

  overflow-y: auto;

  background: rgba(255,255,255,0.97);

  backdrop-filter: blur(10px);

  transform: translateY(100%);

  transition: transform 0.6s ease;

  z-index: 9000;

  padding: 40px;
}

.clients-panel.active {

  transform: translateY(0);
}

.clients-inner {

  display: flex;

  gap: 80px;

  flex-wrap: wrap;
}

.clients-column h3 {

  font-size: 12px;
  letter-spacing: 1px;

  margin-bottom: 16px;

  color: #666;

  font-weight: normal;
}

.clients-column p {

  font-size: 12px;
  letter-spacing: 1px;

  line-height: 1.8;

  color: #666;
}

/* FOOTER */

.site-footer {

  position: fixed;

  left: 0;
  bottom: 0;

  width: 100%;

  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 20px 40px;

  background: rgba(255,255,255,0.9);

  backdrop-filter: blur(8px);

  z-index: 9500;

  pointer-events: none;
}

.clients-toggle {

  background: none;
  border: none;

  font-family: inherit;

  font-size: 12px;
  letter-spacing: 1px;

  color: #666;

  cursor: pointer;

  pointer-events: auto;
}

.copyright {

  font-size: 12px;
  letter-spacing: 1px;

  color: #666;
}

/* MOBILE */

@media (max-width: 768px) {

  header {

    padding: 20px;
  }

  .logo {

    font-size: 14px;
  }

  nav a {

    margin-left: 12px;

    font-size: 12px;
  }

  .horizontal-gallery {

    gap: 20px;

    padding-left: 20px;
    padding-right: 20px;

    padding-top: 30px;
  }

  .horizontal-gallery img,
  .gallery-video {

    height: 52svh;
  }

  .info {

    padding: 20px 20px 140px;
  }

  .clients-panel {

    padding: 20px;
  }

  .clients-inner {

    flex-direction: column;

    gap: 32px;
  }

  .site-footer {

    padding: 20px;
  }

}

/* iPHONE LANDSCAPE */

@media (max-width: 900px) and (orientation: landscape) {

  .horizontal-gallery img,
  .gallery-video {

    height: 46svh;
  }

  header {

    padding-top: 12px;
    padding-bottom: 12px;
  }

  .clients-panel {

    padding: 20px;
  }

}