img {
  image-rendering: auto !important; /* or smooth (Firefox), or default */
}

.gallery-item-heading {
  font-size: calc(28 * 1px + (42 - 28) * ((100vw - 320px) / 1600));
}

.gallery-item-description {
  font-size: calc(10 * 1px + (13 - 10) * ((100vw - 320px) / 1600));
}

.reveal-item {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.7s ease-in-out, transform 0.7s ease-in-out;
}

.reveal-item.in-view {
  opacity: 1 !important;
  transform: translateY(0px) !important;
  transition: 3s cubic-bezier(0.075, 0.82, 0.165, 1) 0.2s !important;
}

.curtain-wrapper::before {
  content: "";
  position: absolute;
  left: -5%;
  top: -5%;
  width: 110%;
  height: 110%;
  background: #181818;
  transform: translateY(0%);
  transition: transform var(--curtain-duration, 0.4s) ease-in-out
    var(--curtain-delay, 0s);
  z-index: 10;
}

.curtain-wrapper.in-view::before {
  transform: translateY(100%);
}

.underline-hover a {
  position: relative;
  display: inline-block;
  text-decoration: none;
}

.underline-hover a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  height: 2px;
  width: 0;
  background: #fff;
  transition: width 0.3s ease, left 0.3s ease;
}

.underline-hover a:hover::after {
  width: 100%;
  left: 0;
}

.uneven-grid {
  padding-top: calc(2vw + 30px);
}

@media (max-width: 768px) {
  .uneven-grid {
    padding-top: 2vw;
  }
}
