.op-feat-items {
  --gap: 0.5rem;
  --ov-opacity: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap);
}
.op-feat-item {
  display: block;
  --height: 500px;
  --break: 100%;
  --title-size: clamp(0.9rem, 2vw, 1.1rem);
  --subtitle-size: clamp(0.75rem, 2vw, 0.85rem);
  position: relative;
  aspect-ratio: 1/1;
  max-width: 100%;
  animation-duration: 5.25s;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
  animation-name: posPlaceholderShimmer;
  animation-timing-function: linear;
  background-color: var(--mat-sys-surface-container);
  background-image: linear-gradient(
    to right,
    transparent 0%,
    var(--mat-sys-surface-dim) 20%,
    var(--mat-sys-surface-dim) 40%,
    transparent 100%
  );
  overflow: hidden;
  flex: 1 1 var(--break);
}
@media (min-width: 600px) {
  .op-feat-item {
    --break: calc((100% / 2) - var(--gap));
  }
}
@media (min-width: 1200px) {
  .op-feat-item {
    --break: calc((100% / 3) - var(--gap));
    max-width: 50%;
  }
}
@media (min-width: 1400px) {
  .op-feat-item {
    --break: calc((100% / 4) - var(--gap));
  }
}
@media (min-width: 1800px) {
  .op-feat-item {
    --break: calc((100% / 5) - var(--gap));
    max-width: 33.333333%;
  }
}
@media (min-width: 2000px) {
  .op-feat-item {
    --break: calc((100% / 6) - var(--gap));
  }
}
.op-feat-item.op-feat-item-artist {
  --title-size: clamp(1rem, 2vw, 1.4rem);
  --subtitle-size: clamp(0.85rem, 2vw, 1rem);
  --ov-opacity: 1;
}
@media (min-width: 600px) {
  .op-feat-item.op-feat-item-artist {
    --break: calc((100% / 2) - var(--gap));
  }
}
@media (min-width: 1200px) {
  .op-feat-item.op-feat-item-artist {
    --break: calc((100% / 2) - var(--gap));
  }
}
@media (min-width: 1400px) {
  .op-feat-item.op-feat-item-artist {
    --break: calc((100% / 3) - var(--gap));
  }
}
@media (min-width: 1800px) {
  .op-feat-item.op-feat-item-artist {
    --break: calc((100% / 4) - var(--gap));
  }
}
@media (min-width: 2000px) {
  .op-feat-item.op-feat-item-artist {
    --break: calc((100% / 5) - var(--gap));
  }
}
.op-feat-item-overlay {
  background-color: rgba(0, 0, 0, 0.3);
  transition: opacity 0.5s;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  color: white;
  display: flex;
  flex-flow: row;
  opacity: var(--ov-opacity);
}
.op-feat-item-artist .op-feat-item-overlay {
  background-color: transparent;
  background-image: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.5) 0%,
    rgba(0, 0, 0, 0.5) 5%,
    transparent 100%
  );
}
.op-feat-item-overlay-content {
  padding: 1rem;
}
.op-feat-item-overlay-content-title {
  font-size: var(--title-size);
}
.op-feat-item-overlay-content-subtitle {
  font-size: var(--subtitle-size);
}
.op-feat-item-img {
  width: 100%;
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1);
  transition: transform 2.2s;
}
.op-feat-item:hover .op-feat-item-img {
  transform: scale(1.1);
}
.op-feat-item:hover:not(.op-feat-item-artist) .op-feat-item-overlay {
  --ov-opacity: 1;
}

@keyframes posPlaceholderShimmer {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 600px 0;
  }
  100% {
    background-position: 0 0;
  }
}
