:root {
  --image-wall-columns: 6;
  --image-wall-aspect-ratio: 0.56vw;
}

@media screen and (min-width: 768px) {
  :root {
    --image-wall-columns: 9;
  }
}

@media screen and (min-width: 1200px) {
  :root {
    --image-wall-columns: 12;
  }
}

@media screen and (min-width: 1900px) {
  :root {
    --image-wall-columns: 15;
  }
}
#imagewall {
  position: absolute;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  height: 100%;
  border-bottom: 2px solid black;
  overflow: hidden;
}

#imagewall .item {
  position: relative;
  display: block;
  width: calc((100 / var(--image-wall-columns)) * 1%);
  height: calc((100 / var(--image-wall-columns)) * var(--image-wall-aspect-ratio));
  filter: brightness(65%) contrast(135%);
  transition: filter 1350ms ease-in-out;
  overflow: hidden;
}

#imagewall .item:nth-child(3n) {
  transform: translateY(-33.3%);
}
#imagewall .item:nth-child(3n+1) {
  transform: translateY(-66.6%);
}

#imagewall .wrapper {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  animation: 3s ease-in-out 1s infinite alternate both pulse;
}

#imagewall img {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  object-position: center center;
  object-fit: cover;
  transition: transform 1350ms ease-in-out;
  opacity: 0;
  animation: 350ms ease-out fade-in forwards paused;
}

#imagewall .item:hover, #imagewall .item.active {
  animation: none;
  filter: brightness(100%) contrast(100%);
  transition-duration: 50ms;
}

#imagewall .item:hover img, #imagewall .item.active img {
  transform: scale(110%);
  transition-duration: 150ms;
}

@keyframes pulse {
  0% {
    filter: brightness(110%)
  }
  100% {
    filter: brightness(90%);
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}