/* -------------------------
   BASIC SETUP
-------------------------- */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  background: #ffffff;
  color: #000000;
  font-family: "Times New Roman", Times, serif;
  font-size: 14px;
  line-height: 1.15;
}

button,
a {
  font: inherit;
  color: inherit;
}

a {
  text-decoration: none;
}

button {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
}


/* -------------------------
   HEADER
-------------------------- */

.site-header {
  position: relative;
  width: 100%;
  padding: 12px 14px;

  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.site-name,
.site-header nav a {
  cursor: pointer;
}


/* -------------------------
   PAGES
-------------------------- */

.page {
  width: 100%;
}

.hidden {
  display: none !important;
}


/* -------------------------
   LANDING PAGE
-------------------------- */

#home-page .image-field {
  display: block;

  column-count: 3;
  column-gap: 22px;

  width: 35%;
  height: auto;
  min-height: 0;

  margin: 0 auto;
  padding: 55px 0 120px 0;
}

#home-page .project-image {
  position: relative !important;

  left: auto !important;
  right: auto !important;
  top: auto !important;

  width: 100% !important;
  max-width: none !important;

  display: inline-block;
  vertical-align: top;

  margin: 0 0 40px 0;

  break-inside: avoid;
}

.project-image img {
  width: 100%;
  height: auto;
}

.landing-project-1 {
  width: 34vw;
  max-width: 600px;

  left: 8vw;
  top: 9vh;
}

.landing-project-2 {
  width: 22vw;
  max-width: 380px;

  right: 10vw;
  top: 38vh;
}


/* project name on hover */

.hover-title {
  position: absolute;
  left: 0;
  top: calc(100% + 5px);

  opacity: 0;
  pointer-events: none;
}

.project-image:hover .hover-title {
  opacity: 1;
}


/* -------------------------
   PROJECT PAGE
-------------------------- */

.project-page {
  padding: 20px 14px 40px 14px;
}

.project-grid {
  display: grid;

  grid-template-columns:
    minmax(220px, 1fr)
    minmax(0, 1.45fr)
    minmax(0, 1.45fr);

  column-gap: 14px;

  align-items: start;
}


/* -------------------------
   PROJECT INFORMATION
-------------------------- */

.project-info {
  min-width: 0;
}

.project-title {
  margin-bottom: 18px;
}

.project-meta {
  margin-bottom: 18px;
}

.description-wrapper {
  max-width: 420px;
}

.description {
  overflow: hidden;
}

.description.collapsed {
  max-height: 180px;
}

.description.expanded {
  max-height: none;
}

.more-button {
  margin-top: 4px;
  text-decoration: none;
}

.more-button:hover {
  text-decoration: underline;
}


/* -------------------------
   PROJECT GALLERIES
-------------------------- */

.gallery-column {
  min-width: 0;
}

.gallery-image {
  display: block;
  width: 100%;
}

.gallery-image img {
  width: 100%;
  height: auto;
}

.gallery-navigation {
  display: flex;
  justify-content: flex-end;

  margin-top: 5px;
  font-size: 12px;
}


/* -------------------------
   INFORMATION PAGE
-------------------------- */

.information-page {
  padding: 20px 14px;
  max-width: 600px;
}

.information-page p {
  margin: 0;
}


/* -------------------------
   FULL SCREEN IMAGE
-------------------------- */

.lightbox {
  position: fixed;
  inset: 0;

  width: 100vw;
  height: 100vh;

  background: #ffffff;

  z-index: 1000;

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

  padding: 25px;

  cursor: zoom-out;
}

.lightbox img {
  max-width: 100%;
  max-height: 100%;

  width: auto;
  height: auto;

  object-fit: contain;
}


/* -------------------------
   MOBILE
-------------------------- */

@media (max-width: 700px) {

  body {
    font-size: 13px;
  }

  .site-header {
    padding: 10px;
  }


  /* landing */

  .image-field {
    min-height: 900px;
  }

  .landing-project-1 {
    width: 72vw;
    left: 7vw;
    top: 8vh;
  }

  .landing-project-2 {
    width: 48vw;
    right: 7vw;
    top: 55vh;
  }


  /* project */

  .project-page {
    padding: 15px 10px 30px 10px;
  }

  .project-grid {
    display: block;
  }

  .project-info {
    margin-bottom: 35px;
  }

  .gallery-column {
    margin-bottom: 35px;
  }

  .description-wrapper {
    max-width: 100%;
  }

}/* -------------------------
   IMAGE INTERACTION
-------------------------- */

.gallery-image {
  position: relative;
  width: 100%;
  cursor: default;
}

.interactive-image {
  position: relative;
  width: 100%;
}

.interactive-image img {
  display: block;
  width: 100%;
  height: auto;
}


/* NEXT occupies the whole image */

.image-next-zone {
  position: absolute;
  inset: 0;
  z-index: 1;

  width: 100%;
  height: 100%;

  cursor: e-resize;
}


/* ENLARGE sits over the center */

.image-enlarge-zone {
  position: absolute;

  left: 30%;
  top: 30%;
  width: 40%;
  height: 40%;

  z-index: 2;

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

  cursor: zoom-in;

  color: black;

  opacity: 0;
}


/* show "enlarge" only when hovering
   over the central zone */

.image-enlarge-zone:hover {
  opacity: 1;
}


/* counters are display only */

.gallery-navigation {
  background: none;
  border: 0;
  padding: 0;

  cursor: default;
  color: black;
}


/* -------------------------
   ENLARGED PROJECT VIEWER
-------------------------- */

body.lightbox-open {
  overflow: hidden;
}

.lightbox {
  cursor: default;
}

.lightbox img {
  cursor: e-resize;
}/* -------------------------
   HEADER NAVIGATION
-------------------------- */

.site-header nav {
  display: flex;
  gap: 18px;
}


/* -------------------------
   LONG PROJECT LIST
-------------------------- */

.projects-page {
  padding: 0 14px 50px 14px;
}

.project-row {
  display: grid;

  grid-template-columns:
    minmax(220px, 1fr)
    minmax(0, 1.45fr)
    minmax(0, 1.45fr);

  column-gap: 14px;

  align-items: start;

  padding: 14px 0;

  border-top: 1px solid black;

  scroll-margin-top: 0;
}


/* last line */

.project-row:last-child {
  border-bottom: 1px solid black;
}


/* -------------------------
   INFORMATION COLUMN
-------------------------- */

.project-row-info {
  min-width: 0;
}

.project-row .project-title {
  margin-bottom: 14px;
}

.project-row .project-meta {
  margin-bottom: 14px;
}

.project-row .description-wrapper {
  max-width: none;
}


/* short description */

.project-row .description.collapsed {
  max-height: 112px;
  overflow: hidden;
}


/* expanded description */

.project-row .description.expanded {
  max-height: none;
}


/* The row naturally becomes taller
   when the text expands */

.project-row.row-expanded {
  height: auto;
}


/* -------------------------
   DRAWING + PHOTO COLUMNS
-------------------------- */

.project-row-gallery {
  min-width: 0;
}

.project-row-gallery img {
  width: 100%;
  height: auto;
  display: block;
}

.gallery-counter {
  margin-top: 5px;
  text-align: right;
  font-size: 12px;
}


/* -------------------------
   LIGHTBOX COUNTER
-------------------------- */

.lightbox-counter {
  position: absolute;

  right: 14px;
  bottom: 12px;

  font-family: "Times New Roman", Times, serif;
  font-size: 12px;

  cursor: default;
}


/* -------------------------
   MOBILE PROJECT LIST
-------------------------- */

@media (max-width: 700px) {

  .projects-page {
    padding: 0 10px 30px 10px;
  }

  .project-row {
    display: block;
    padding: 12px 0 30px 0;
  }

  .project-row-info {
    margin-bottom: 25px;
  }

  .project-row-gallery {
    margin-bottom: 25px;
  }

}/* -------------------------
   PROJECT ROW IMAGE HEIGHT
   Text determines row height
-------------------------- */

.project-row {
  min-height: 240px;
}

/* Keep the image columns contained within the row */

.project-row-gallery {
  min-width: 0;
  height: 240px;
  display: flex;
  flex-direction: column;
}

/* Image area takes available space above counter */

.project-row-gallery .gallery-image {
  flex: 1;
  min-height: 0;
  width: 100%;
}

/* Wrapper fills image area */

.project-row-gallery .interactive-image {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

/* Scale image down without cropping */

.project-row-gallery .interactive-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top center;
}

/* Counter stays underneath */

.project-row-gallery .gallery-counter {
  flex: 0 0 auto;
  margin-top: 5px;
}


/* When text expands, allow the row
   and image columns to become taller */

/* =====================================
   LANDING PAGE — LOOSE IMAGE FIELD
===================================== */

#home-page {
  width: 100%;
  min-height: calc(100vh - 40px);
  overflow: hidden;
}

#home-page .image-field {
  position: relative;
  width: 100%;
  height: calc(100vh - 40px);
  min-height: 650px;
}

/* Reset project images on landing page */

#home-page .project-image {
  position: absolute;
  display: block;
  width: auto;
  height: auto;
}

#home-page .project-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}


/* AFTER THE FLOODS */

#home-page .landing-project-1 {
  width: 30vw;
  max-width: 520px;
  left: 7vw;
  top: 9vh;
}


/* SACRED LIFE OF DAMS */

#home-page .landing-project-2 {
  width: 21vw;
  max-width: 360px;
  right: 9vw;
  top: 18vh;
}


/* SOIL CYCLES */

#home-page .landing-project-3 {
  width: 25vw;
  max-width: 430px;
  left: 42vw;
  top: 48vh;
}


/* PROJECT TITLE ON HOVER */

#home-page .hover-title {
  position: absolute;
  left: 0;
  top: calc(100% + 5px);

  opacity: 0;
  pointer-events: none;

  white-space: nowrap;
}

#home-page .project-image:hover .hover-title {
  opacity: 1;
}


/* MOBILE */

@media (max-width: 700px) {

  #home-page .image-field {
    height: 1100px;
  }

  #home-page .landing-project-1 {
    width: 68vw;
    left: 7vw;
    top: 7vh;
  }

  #home-page .landing-project-2 {
    width: 47vw;
    right: 7vw;
    top: 46vh;
  }

  #home-page .landing-project-3 {
    width: 58vw;
    left: 10vw;
    top: 72vh;
  }

}/* Landing page videos behave like images */

#home-page .project-image video {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}/* ========================================
   LANDING PAGE — ROLLING IMAGE FIELD
   ======================================== */

#home-page {
  width: 100%;
  overflow: visible;
}

#home-page .image-field {
  position: relative;
  width: 100%;
  height: 1900px;
  min-height: 1900px;
}


/* ALL LANDING ITEMS */

#home-page .project-image {
  position: absolute;
  display: block;
  width: 18vw;
  max-width: 300px;
  height: auto;
}

#home-page .project-image img,
#home-page .project-image video {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

#home-page .project-image video {
  pointer-events: none;
}


/* ----------------------------------------
   INDIVIDUAL POSITIONS
   ---------------------------------------- */


/* After the Floods */

#home-page .landing-project-1 {
  width: 21vw;
  max-width: 350px;
  left: 7vw;
  top: 80px;
}

#home-page .landing-project-2 {
  width: 14vw;
  max-width: 230px;
  left: 48vw;
  top: 170px;
}

#home-page .landing-project-3 {
  width: 17vw;
  max-width: 280px;
  right: 7vw;
  top: 350px;
}


/* Sacred Life of Dams */

#home-page .landing-project-4 {
  width: 15vw;
  max-width: 250px;
  left: 18vw;
  top: 500px;
}

#home-page .landing-project-5 {
  width: 20vw;
  max-width: 330px;
  left: 57vw;
  top: 650px;
}

#home-page .landing-project-6 {
  width: 13vw;
  max-width: 220px;
  left: 8vw;
  top: 850px;
}

#home-page .landing-project-7 {
  width: 18vw;
  max-width: 300px;
  right: 10vw;
  top: 1000px;
}


/* Soil Cycles */

#home-page .landing-project-8 {
  width: 17vw;
  max-width: 280px;
  left: 35vw;
  top: 1120px;
}

#home-page .landing-project-9 {
  width: 14vw;
  max-width: 240px;
  left: 9vw;
  top: 1400px;
}

#home-page .landing-project-10 {
  width: 22vw;
  max-width: 360px;
  right: 8vw;
  top: 1500px;
}


/* ----------------------------------------
   PROJECT TITLE ON HOVER
   ---------------------------------------- */

#home-page .hover-title {
  position: absolute;
  left: 0;
  top: calc(100% + 5px);

  opacity: 0;
  pointer-events: none;
  white-space: nowrap;

  font-family: "Times New Roman", Times, serif;
  font-size: 14px;
}

#home-page .project-image:hover .hover-title {
  opacity: 1;
}


/* ========================================
   MOBILE
   ======================================== */

@media (max-width: 700px) {

  #home-page .image-field {
    height: 1800px;
    min-height: 1800px;
  }

  #home-page .project-image {
    width: 38vw;
    max-width: none;
  }

  #home-page .landing-project-1 {
    width: 48vw;
    left: 7vw;
    top: 60px;
  }

  #home-page .landing-project-2 {
    width: 30vw;
    left: 62vw;
    top: 180px;
  }

  #home-page .landing-project-3 {
    width: 38vw;
    left: 18vw;
    top: 340px;
  }

  #home-page .landing-project-4 {
    width: 31vw;
    left: 60vw;
    top: 500px;
  }

  #home-page .landing-project-5 {
    width: 44vw;
    left: 8vw;
    top: 660px;
  }

  #home-page .landing-project-6 {
    width: 29vw;
    left: 61vw;
    top: 850px;
  }

  #home-page .landing-project-7 {
    width: 39vw;
    left: 15vw;
    top: 1010px;
  }

  #home-page .landing-project-8 {
    width: 34vw;
    left: 58vw;
    top: 1180px;
  }

  #home-page .landing-project-9 {
    width: 31vw;
    left: 8vw;
    top: 1390px;
  }

  #home-page .landing-project-10 {
    width: 47vw;
    left: 46vw;
    top: 1530px;
  }
}/* Make all landing visuals 50% larger */

#home-page .landing-project-1 {
  width: 31.5vw;
  max-width: 525px;
}

#home-page .landing-project-2 {
  width: 21vw;
  max-width: 345px;
}

#home-page .landing-project-3 {
  width: 25.5vw;
  max-width: 420px;
}

#home-page .landing-project-4 {
  width: 22.5vw;
  max-width: 375px;
}

#home-page .landing-project-5 {
  width: 30vw;
  max-width: 495px;
}

#home-page .landing-project-6 {
  width: 19.5vw;
  max-width: 330px;
}

#home-page .landing-project-7 {
  width: 27vw;
  max-width: 450px;
}

#home-page .landing-project-8 {
  width: 25.5vw;
  max-width: 420px;
}

#home-page .landing-project-9 {
  width: 21vw;
  max-width: 360px;
}

#home-page .landing-project-10 {
  width: 33vw;
  max-width: 540px;
}
/* ========================================
   PROJECT FILTER
   ======================================== */

.project-filter {
  width: 100%;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 12px;

  padding: 25px 0 35px 0;

  font-family: "Times New Roman", Times, serif;
  font-size: 14px;

  white-space: nowrap;
}

.filter-label,
.filter-dash {
  cursor: default;
}

.filter-button {
  font-family: "Times New Roman", Times, serif;
  font-size: 14px;

  background: none;
  border: 0;
  padding: 0;

  color: black;
  cursor: pointer;

  text-decoration: none;
}

.filter-button:hover {
  text-decoration: underline;
}

.filter-button.active {
  text-decoration: none !important;
  font-weight: 600 !important;
}


/* MOBILE */

@media (max-width: 700px) {

  .project-filter {
    justify-content: flex-start;
    flex-wrap: wrap;
    white-space: normal;

    gap: 7px 10px;

    padding: 20px 0 30px 0;
  }

}

/* Filtered projects */

.project-row.filter-hidden {
  display: none !important;
}
/* Site logo */

.site-name img {
  display: block;
  width: 90px;
  height: auto;
}
/* ========================================
   HEADER LOGO
   ======================================== */

.site-header .site-name {
  display: block;
  width: 100px;
}

.site-header .site-name img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}
/* Project gallery videos */

.project-row-gallery .interactive-image video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top center;
}
/* ========================================
   LIGHTBOX MEDIA
   ======================================== */

#lightbox-media {
  width: 100%;
  height: 100%;

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

#lightbox-media img,
#lightbox-media video {
  display: block;

  max-width: 100%;
  max-height: 100%;

  width: auto;
  height: auto;

  object-fit: contain;

  cursor: e-resize;
}
/* Make enlarged images/videos 30% smaller */

#lightbox-media img,
#lightbox-media video {
  max-width: 70%;
  max-height: 70%;
}

/* ========================================
   ANIMATED LOGO
   ======================================== */

.site-header .animated-logo {
  width: 150px;
  display: block;
}

.logo-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 1464 / 864;
  overflow: hidden;
}

.logo-static {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}


/* Visible movement area:
   limited to the original red lines */

/* Moving NN — seamless vertical loop */

/* ========================================
   CONTINUOUS NN SCROLL
   ======================================== */

.logo-nn-window {
  position: absolute;

  /* original position and size of the nn */
  left: 34.1%;
  width: 50.7%;

  top: 10%;
  height: 78.7%;

  overflow: hidden;
}

.nn-track {
  position: absolute;
  left: 0;
  top: 0;

  width: 100%;

  display: flex;
  flex-direction: column;

  animation: nn-scroll 6s linear infinite;
}

.logo-nn {
  display: block;

  /* preserve original nn scale */
  width: 100%;
  height: auto;

  flex-shrink: 0;
}

@keyframes nn-scroll {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(calc(-50% - 4px));
  }
}

.nn-track {
  position: absolute;
  left: 0;
  top: 0;

  width: 100%;

  display: flex;
  flex-direction: column;
  gap: 8px;

  animation: nn-scroll 6s linear infinite;
}

/* ========================================
   SQUARE PHOTO CROP
   ======================================== */

.project-row-gallery:last-child .interactive-image {
  width: 240px;
  height: 240px;

  margin: 0 auto;

  overflow: hidden;
}

.project-row-gallery:last-child .interactive-image img,
.project-row-gallery:last-child .interactive-image video {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

/* ========================================
   PHOTO COLUMN — 240 × 240 SQUARE
   ======================================== */

.project-row-gallery:last-child .interactive-image {
  width: 240px;
  height: 240px;
  margin: 0 auto;
  overflow: hidden;
}

.project-row-gallery:last-child .interactive-image img,
.project-row-gallery:last-child .interactive-image video {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;
}
/* ========================================
   FONT SIZES
   ======================================== */

/* General website text */
body {
  font-size: 14px;
}

/* Header / Information link */
.site-header {
  font-size: 14px;
}

/* Project titles */
.project-title {
  font-size: 12px;
}

/* Year, location, collaborators */
.project-meta {
  font-size: 12px;
}

/* Project descriptions */
.description {
  font-size: 12px;
}

/* (more) and (less) */
.more-button {
  font-size: 12px;
}

/* Image counters: 1 / 5 */
.gallery-counter {
  font-size: 9px;
}

/* Project filters */
.project-filter {
  font-size: 9px;
}

/* Landing-page project names on hover */
#home-page .hover-title {
  font-size: 14px;
}

/* Information page */
.information-page {
  font-size: 14px;
}
/* Bold project titles */
.project-title {
  font-weight: bold;
}

/* Fully justified project descriptions */
.description {
  text-align: justify;
}
.projects-page {
  padding-left: 60px;
}
.projects-page {
  padding-right: 16px;
}
.site-header .animated-logo {
  margin-left: 20px;
}
.site-header .animated-logo {
  width: 180px;
  display: block;
  margin-left: 20px;
}
.project-filter {
  width: 240px;

  margin-left: auto;
  margin-right: calc((33.33% - 240px) / 2);

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

  white-space: nowrap;
}
.filter-dash {
  font-size: 0;
  width: 8px;
  height: 1px;
  background: black;
  display: inline-block;
  flex-shrink: 0;
}
/* ========================================
   FINAL FILTER ALIGNMENT
   ======================================== */

.project-filter {
  width: 100%;

  display: grid;

  grid-template-columns:
    minmax(220px, 1fr)
    minmax(0, 1.45fr)
    minmax(0, 1.45fr);

  column-gap: 14px;

  margin: 0;
  padding: 25px 0 35px 0;

  justify-content: normal;
}

/* Put all four filters in the third column */
.project-filter > * {
  grid-row: 1;
}

/* Position the whole sequence over the photo column */
.project-filter {
  position: relative;
}

.project-filter::before {
  content: "";
  grid-column: 1 / 3;
}

.project-filter > .filter-button:first-of-type {
  grid-column: 3;
}
/* ========================================
   FINAL FILTER POSITION
   Align exactly with 240px photo column
   ======================================== */

.project-filter {
  width: 100%;
  margin: 0;

  display: grid;

  grid-template-columns:
    minmax(220px, 1fr)
    minmax(0, 1.45fr)
    minmax(0, 1.45fr);

  column-gap: 14px;

  padding: 25px 0 35px 0;

  white-space: nowrap;
}

.filter-buttons {
  grid-column: 3;

  width: 240px;
  justify-self: center;

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

  white-space: nowrap;
}

.filter-dash {
  font-size: 0;
  width: 8px;
  height: 1px;
  background: black;
  display: inline-block;
  flex-shrink: 0;
}
/* Hide "enlarge" hover text */

.image-enlarge-zone {
  font-size: 0;
}
/* Hide project titles on landing page */

#home-page .hover-title {
  display: none !important;
}


/* ========================================
   FINAL LANDING PAGE LAYOUT
   ======================================== */

#home-page {
  width: 100%;
  overflow: hidden;
}

#home-page .image-field {
  position: relative;
  width: 100%;
  height: 2200px;
  min-height: 2200px;
}

/* General landing image behaviour */

#home-page .project-image {
  position: absolute;
  display: block;
  height: auto;
  max-width: none;
}

#home-page .project-image img,
#home-page .project-image video {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}


/* ----------------------------------------
   INDIVIDUAL POSITIONS
   ---------------------------------------- */

#home-page .landing-project-1 {
  width: 18vw;
  left: 5%;
  top: 80px;
}

#home-page .landing-project-2 {
  width: 12vw;
  left: 38%;
  top: 210px;
}

#home-page .landing-project-3 {
  width: 20vw;
  right: 7%;
  top: 90px;
}

#home-page .landing-project-4 {
  width: 15vw;
  left: 18%;
  top: 430px;
}

#home-page .landing-project-5 {
  width: 23vw;
  left: 52%;
  top: 500px;
}

#home-page .landing-project-6 {
  width: 13vw;
  right: 5%;
  top: 720px;
}

#home-page .landing-project-7 {
  width: 21vw;
  left: 6%;
  top: 780px;
}

#home-page .landing-project-8 {
  width: 15vw;
  left: 40%;
  top: 900px;
}

#home-page .landing-project-9 {
  width: 19vw;
  right: 12%;
  top: 1050px;
}

#home-page .landing-project-10 {
  width: 14vw;
  left: 17%;
  top: 1190px;
}

#home-page .landing-project-11 {
  width: 22vw;
  left: 48%;
  top: 1300px;
}

#home-page .landing-project-12 {
  width: 13vw;
  right: 5%;
  top: 1450px;
}

#home-page .landing-project-13 {
  width: 19vw;
  left: 6%;
  top: 1510px;
}

#home-page .landing-project-14 {
  width: 15vw;
  left: 36%;
  top: 1690px;
}

#home-page .landing-project-15 {
  width: 21vw;
  right: 9%;
  top: 1760px;
}

#home-page .landing-project-16 {
  width: 13vw;
  left: 17%;
  top: 1940px;
}

#home-page .landing-project-17 {
  width: 18vw;
  left: 52%;
  top: 1990px;
}

#home-page .landing-project-18 {
  width: 12vw;
  right: 5%;
  top: 2070px;
}


/* No titles on landing page */

#home-page .hover-title {
  display: none !important;
}
/* ========================================
   LANDING PAGE — MASONRY FIELD
   ======================================== */

#home-page {
  width: 100%;
  overflow: visible;
}

/* ========================================
   FINAL LANDING PAGE
   ======================================== */

#home-page {
  width: 100%;
  overflow: visible;
}

#home-page .image-field {
  display: block !important;

  column-count: 5;
  column-gap: 45px;

  /* Wide field with generous side margins */
  width: 78% !important;
  max-width: none !important;

  height: auto !important;
  min-height: 0 !important;

  margin: 0 auto !important;
  padding: 35px 0 120px 0 !important;
}

#home-page .project-image {
  position: relative !important;

  left: auto !important;
  right: auto !important;
  top: auto !important;

  /* Image is smaller than its column */
  width: 72% !important;
  max-width: none !important;

  display: inline-block !important;
  vertical-align: top;

  margin: 0 0 45px 0 !important;

  break-inside: avoid;
}

#home-page .project-image:nth-child(even) {
  margin-left: 28% !important;
}

#home-page .project-image img,
#home-page .project-image video {
  display: block;
  width: 100% !important;
  height: auto !important;
  object-fit: contain;
}

#home-page .hover-title {
  display: none !important;
}


/* MOBILE */

@media (max-width: 700px) {

  #home-page .image-field {
    width: calc(100% - 28px) !important;

    column-count: 2;
    column-gap: 18px;

    padding: 30px 0 60px 0 !important;
  }

  #home-page .project-image {
    width: 85% !important;
    margin-bottom: 30px !important;
  }
}
/* Information navigation alignment */

.site-header nav {
  position: absolute;
  right: auto;
  left: 20px;
  width: 144px;

  display: flex;
  justify-content: flex-end;
}

.site-header nav a {
  font-size: 18px;
}
/* ========================================
   INFORMATION
   ======================================== */

/* Information link */

.site-header nav {
  position: static;
  width: auto;
  display: flex;
}

.site-header nav a {
  font-size: 18px;
}

/* Information page text */

.information-page {
  font-size: 18px;
  text-align: justify;

  padding-top: 20px;
  padding-left: 164px;
  padding-right: 0;

  width: 700px;
  max-width: none;
}
/* Information page links */

.information-page a {
  color: inherit;
  text-decoration: underline;
}

.information-page a:hover {
  text-decoration: none;
}
/* Move drawing column closer to photo column */

/* ========================================
   PROJECT PAGE — 5 COLUMN GRID
   ======================================== */

/* Align project page with logo margins */

.projects-page {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* Five equal columns:
   1 + 2 = information
   3     = blank
   4     = drawings
   5     = photos
*/
/* ========================================
   PROJECT PAGE — 5 COLUMN GRID
   ======================================== */

.projects-page {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Grid bounded by the logo edges */
.project-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  column-gap: 0;
  align-items: start;

  margin-left: 200px;
  margin-right: 115px;
}

/* Columns 1 + 2: text */
.project-row-info {
  grid-column: 1 / 3;
  padding-left: 0;
  padding-right: 100px;
}

/* Column 3 intentionally blank */

/* Column 4: drawing */
.project-row-gallery:nth-child(2) {
  grid-column: 4;
  transform: none;
}

/* Column 5: photo */
.project-row-gallery:nth-child(3) {
  grid-column: 5;
}
/* Align filter to 5-column project grid */

.project-filter {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  column-gap: 0;

  margin-left: 200px;
  margin-right: 115px;

  width: auto;
  padding: 25px 0 35px 0;
}

.filter-buttons {
  grid-column: 5 / 6;
  width: auto;
  justify-self: stretch;

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

/* Pull drawing + photo galleries toward center */

.project-row-gallery:nth-child(2) {
  transform: translateX(-75px);
}

.project-row-gallery:nth-child(3) {
  transform: translateX(-70px);
}
/* ========================================
   HEADER FILTERS
   ======================================== */

.header-nav {
  display: flex !important;
  align-items: flex-start;
  gap: 40px;
  width: auto !important;
}

.header-filters {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-filters .filter-button {
  font-family: "Times New Roman", Times, serif;
  font-size: 14px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.header-filters .filter-dash {
  width: 8px;
  height: 1px;
  background: black;
  display: inline-block;
  flex-shrink: 0;
}

.header-nav #info-link {
  font-size: 18px;
  white-space: nowrap;
}
/* Header filters only appear on Projects */

.header-filters {
  display: none;
}

body.projects-active .header-filters {
  display: flex;
}
/* Match filter text to Information */

.header-filters .filter-button {
  font-size: 14px !important;
}

.header-nav #info-link {
  font-size: 14px !important;
}
/* Project row divider lines match grid width */

.project-row {
  border-top: none !important;
  position: relative;
}

.project-row::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-top: 1px solid #999;
}
/* ========================================
   LANDING PAGE — TIGHTER FIELD
   ======================================== */

#home-page .image-field {
  /* wider left + right margins */
  width: 70% !important;

  /* bring rows closer together */
  column-gap: 30px;
}

#home-page .project-image {
  /* keep image size, reduce vertical spacing */
  margin-bottom: 30px !important;
}
/* ========================================
   MOBILE PROJECTS PAGE
   ======================================== */

@media (max-width: 700px) {

  /* PROJECTS PAGE */

  .projects-page {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }


  /* EACH PROJECT
     text on top
     drawing + photo underneath */

  .project-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 14px !important;
    row-gap: 0 !important;

    width: 100% !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    padding: 20px 0 30px 0 !important;

    position: relative;
  }


  /* DIVIDER LINE */

  .project-row::before {
    content: "";
    position: absolute;

    top: 0;
    left: 0 !important;
    right: 0 !important;

    border-top: 1px solid #999;
  }


  /* PROJECT INFORMATION
     spans both columns */

  .project-row-info {
    grid-column: 1 / 3 !important;

    width: 100% !important;

    padding-left: 0 !important;
    padding-right: 0 !important;

    margin: 0 0 25px 0 !important;
  }


  /* DRAWING
     left column */

  .project-row-gallery:nth-child(2) {
    grid-column: 1 !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
  }


  /* PHOTO
     right column */

  .project-row-gallery:nth-child(3) {
    grid-column: 2 !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
  }


  /* DRAWING + PHOTO IMAGE AREAS */

  .project-row-gallery .interactive-image,
  .project-row-gallery:last-child .interactive-image {
    width: 100% !important;
    height: 180px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden;
  }


  /* MEDIA */

  .project-row-gallery .interactive-image img,
  .project-row-gallery .interactive-image video,
  .project-row-gallery:last-child .interactive-image img,
  .project-row-gallery:last-child .interactive-image video {
    display: block;

    width: 100% !important;
    height: 100% !important;

    object-fit: contain !important;
    object-position: center !important;
  }


  /* COUNTERS */

  .gallery-counter {
    width: 100% !important;

    margin-top: 5px !important;

    text-align: center !important;
  }

}/* ========================================
   MOBILE HEADER
   ======================================== */

@media (max-width: 700px) {

  /* Header */
  .site-header {
    padding: 12px 14px !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
  }

  /* Keep logo large */
  .site-header .animated-logo {
    width: 120px !important;
    min-width: 120px !important;

    margin-left: 0 !important;
    flex-shrink: 0 !important;
  }

  /* Filters + information */
  .header-nav {
    width: auto !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;

    gap: 18px !important;
  }

  /* Filters */
  .header-filters {
    align-items: center !important;
    gap: 6px !important;
    white-space: nowrap !important;
  }

  .header-filters .filter-button,
  .header-nav #info-link {
    font-size: 14px !important;
  }

  .header-filters .filter-dash {
    width: 6px !important;
  }

  /* Information */
  .header-nav #info-link {
    white-space: nowrap !important;
  }
  

}
/* ========================================
   MOBILE FIXED HEADER
   ======================================== */

@media (max-width: 700px) {

  .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;

    width: 100% !important;

    z-index: 9999 !important;
    background: white !important;
  }

  /* Make room for fixed header */
  #home-page,
  #projects-page,
  #information-page {
    padding-top: 100px !important;
  }

}
/* ========================================
   HEADER — TEXT + SPACING
   ======================================== */

/* Reduce filter + information text by 1px */
.header-filters .filter-button,
.header-nav #info-link {
  font-size: 13px !important;
}

/* Bring filters and information closer together */
.header-nav {
  gap: 12px !important;
}


/* MOBILE */
@media (max-width: 700px) {

  .header-filters .filter-button,
  .header-nav #info-link {
    font-size: 13px !important;
  }

  .header-nav {
    gap: 8px !important;
  }

}
/* ========================================
   MOBILE — HIDE FILTERS
   ======================================== */

@media (max-width: 700px) {

  .header-filters {
    display: none !important;
  }

}
/* ========================================
   MOBILE INFORMATION PAGE
   ======================================== */

@media (max-width: 700px) {

  .information-page {
    width: 100% !important;
    max-width: none !important;

    padding-left: 14px !important;
    padding-right: 14px !important;
    padding-top: 100px !important;

    margin: 0 !important;

    box-sizing: border-box !important;

    font-size: 12px !important;
    line-height: 1.25 !important;

    text-align: left !important;

    overflow-x: hidden !important;
  }

  .information-page p {
    width: 100% !important;
    max-width: none !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .information-page a {
    overflow-wrap: break-word;
  }

}
/* ========================================
   MOBILE — DESCRIPTION CUTOFF FIX
   ======================================== */

@media (max-width: 700px) {

  /* Collapsed description */
  .description.collapsed {
    line-height: 1.25em !important;

    /* exactly 7 complete lines */
    height: 8.75em !important;
    max-height: 8.75em !important;

    overflow: hidden !important;
  }

  /* Expanded description */
  .description.expanded {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Don't let the wrapper or info column clip anything */
  .description-wrapper,
  .project-row-info {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Keep (more) below the clipped text */
  .more-button {
    display: block;
    margin-top: 4px;
  }

}
/* ========================================
   MOBILE — TIGHTER PROJECT ROW BOTTOM
   ======================================== */

@media (max-width: 700px) {

  /* Reduce space below drawing + photo */
  .project-row {
    padding-bottom: 10px !important;
  }

  /* Keep counters close to images */
  .gallery-counter {
    margin-top: 3px !important;
    margin-bottom: 0 !important;
  }

  /* Remove extra gallery space */
  .project-row-gallery {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

}
/* ========================================
   MOBILE — GALLERY HEIGHT + COUNTER FIX
   ======================================== */

@media (max-width: 700px) {

  /* Stop gallery column from forcing 240px height */
  .project-row-gallery {
    height: auto !important;
    min-height: 0 !important;

    display: block !important;

    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Stop image area from stretching */
  .project-row-gallery .gallery-image {
    flex: none !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  /* Image wrapper follows actual image height */
  .project-row-gallery .interactive-image {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;

    display: block !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  /* Image itself */
  .project-row-gallery .interactive-image img,
  .project-row-gallery .interactive-image video {
    display: block !important;

    width: 100% !important;
    height: auto !important;
    max-height: 180px !important;

    object-fit: contain !important;

    margin: 0 auto !important;
  }

  /* Counter directly below image */
  .project-row-gallery .gallery-counter {
    margin: 4px 0 0 0 !important;
    padding: 0 !important;

    line-height: 1 !important;
    text-align: center !important;
  }

}/* ========================================
   MOBILE — HIDE GALLERY COUNTERS
   ======================================== */

@media (max-width: 700px) {

  .gallery-counter {
    display: none !important;
  }

}/* ========================================
   MOBILE — IMAGES FOLLOW TEXT HEIGHT
   ======================================== */

@media (max-width: 700px) {

  /* Row height comes only from its actual content */
  .project-row {
    min-height: 0 !important;
    height: auto !important;

    align-items: start !important;
  }

  /* Information takes only the space it needs */
  .project-row-info {
    height: auto !important;
    min-height: 0 !important;

    margin-bottom: 18px !important;
  }

  /* Galleries begin immediately after information */
  .project-row-gallery {
    align-self: start !important;

    height: auto !important;
    min-height: 0 !important;

    margin-top: 0 !important;
  }

}
/* ========================================
   DESKTOP — VERTICAL HEADER NAV, RIGHT ALIGNED
   ======================================== */

@media (min-width: 701px) {

  .header-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 0 !important;
  }

  /* Information at top */
  .header-nav #info-link {
    order: 1;
    margin: 0 0 6px 0 !important;
    text-align: right !important;
  }

  /* Filters underneath */
  .header-filters {
    order: 2;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 0 !important;
  }

  /* Remove dashes */
  .header-filters .filter-dash {
    display: none !important;
  }

  .header-filters .filter-button {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.25 !important;
    text-align: right !important;
  }

}
/* ========================================
   DESKTOP — INFORMATION + HEADER TWEAKS
   ======================================== */

@media (min-width: 701px) {

  /* Information page text */
  .information-page {
    font-size: 12px !important;
  }

  /* Make information → all work spacing
     match the rest of the filter stack */
  .header-nav #info-link {
    margin-bottom: 0 !important;
    line-height: 1.25 !important;
  }

  .header-filters .filter-button {
    line-height: 1.25 !important;
  }

}
/* ========================================
   DESKTOP — INFORMATION MATCH PROJECT TEXT
   ======================================== */

@media (min-width: 701px) {

  .information-page {
    margin-left: 200px !important;
    padding-left: 0 !important;

    width: calc(
      ((100vw - 200px - 115px) / 5) * 2 - 100px
    ) !important;

    max-width: none !important;

    font-size: 12px !important;
    text-align: left !important;
  }

}/* INFORMATION — LINE SPACING */

.information-page {
  line-height: 1.5 !important;
}
@media (min-width: 701px) {

  .project-row-gallery:nth-child(2) .interactive-image img,
  .project-row-gallery:nth-child(2) .interactive-image video {
    object-position: center center !important;
  }

}
@media (min-width: 701px) {
  .project-row::before {
    right: 70px !important;
  }
}
@media (min-width: 701px) {
  .project-description.collapsed {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/* DESKTOP — fixed project navigation aligned with first project row */
@media (min-width: 701px) {
  body.projects-active .header-nav {
    position: fixed !important;
    top: 130px !important;
    left: 0 !important;

    width: 175px !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;

    z-index: 1000;
  }
}
/* DESKTOP — shift entire projects grid right half a column */
@media (min-width: 701px) {
  .project-row {
    margin-left: 300px !important;
  }
}
/* DESKTOP — move projects list down */
@media (min-width: 701px) {
  .projects-page {
    padding-top: 25px !important;
  }
}
/* DESKTOP — final logo size */
@media (min-width: 701px) {
  .site-header .animated-logo {
    width: 220px !important;
    min-width: 220px !important;
  }
}
/* DESKTOP — navigation beside logo */
@media (min-width: 701px) {
  body.projects-active .header-nav {
    position: fixed !important;

    /* align information with first project divider */
    top: 190px !important;

    /* place navigation immediately to right of 220px logo */
    left: 175px !important;

    width: auto !important;

    align-items: flex-start !important;
    text-align: left !important;

    font-size: 12px !important;
    line-height: 1.2 !important;

    z-index: 1000;
  }

  body.projects-active .header-nav #info-link,
  body.projects-active .header-filters,
  body.projects-active .header-filters .filter-button {
    text-align: left !important;
    align-items: flex-start !important;
    font-size: 15px !important;
  }
}
/* DESKTOP — Information + filters */
@media (min-width: 701px) {

  body.projects-active .header-nav {
    position: absolute !important;
    top: 180px !important;
    left: 175px !important;
    width: auto !important;

    align-items: flex-end !important;
    text-align: right !important;

    font-size: 12px !important;
    line-height: 1.2 !important;

    z-index: 1000;
  }

  body.projects-active .header-nav #info-link,
  body.projects-active .header-filters,
  body.projects-active .header-filters .filter-button {
    text-align: right !important;
    align-items: flex-end !important;
    font-size: 12px !important;
  }
}

/* DESKTOP — align Information body with project description column */
@media (min-width: 701px) {
  .information-page {
    margin-left: 300px !important;
    padding-left: 0 !important;

    width: calc(((100vw - 300px - 115px) / 5) * 2 - 100px) !important;
    max-width: none !important;

    text-align: left !important;
  }
}
/* DESKTOP — Information text formatting */
@media (min-width: 701px) {
  .information-page {
    text-align: justify !important;
  }

  .information-page .info-title {
    font-weight: 600;
    text-align: left !important;
    margin-bottom: 14px;
  }
}
/* Underline Information when Information page is active */
body.info-active #info-link {
  text-decoration: underline !important;
}
#info-link.active {
  text-decoration: underline !important;
}
/* DESKTOP — lower Information page content */
@media (min-width: 701px) {
  .information-page {
    padding-top: 25px !important;
  }
}
/* DESKTOP — more compact landing image field */
@media (min-width: 701px) {

  #home-page .image-field {
    width: 65% !important;
    column-gap: 12px !important;
    padding-top: 5px !important;
  }

  #home-page .project-image {
    width: 60% !important;
    margin-bottom: 12px !important;
  }

  #home-page .project-image:nth-child(even) {
    margin-left: 25% !important;
  }
}
/* DESKTOP — pin project navigation after scrolling */
@media (min-width: 701px) {
  body.projects-active .header-nav.nav-fixed {
    position: fixed !important;
    top: 12px !important;
    left: 175px !important;
  }
}
/* Hide Information + filters on landing page */
body:not(.projects-active) .header-nav {
  display: none !important;
}
/* DESKTOP — tighten landing page images horizontally */
@media (min-width: 701px) {
  #home-page .image-field {
    column-gap: 20px !important;
  }
}
@media (min-width: 701px) {
  .project-row-gallery:nth-child(2) {
    transform: translateX(-75px) !important;
  }
}