.cards-title h1 {
  margin: 0;
  padding: 0 10px;
  font-weight: 600;
  margin-top: 10px;
  font-size: clamp(1.13rem, 0.59rem + 1.42vw, 1.5rem);
}
.cards-title h2 {
  margin: 0;
  padding: 0 10px;
  font-weight: 600;
  margin-top: 5px;
  font-size: clamp(1.125rem, 0.447vw + 0.838rem, 1.375rem);
  color: color-mix(in srgb, var(--dark), var(--light) 30%);
}

.cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 5px;
  box-sizing: border-box;
  overflow-x: clip;
}
.cards .card {
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  border-radius: 4px;
  background: var(--light);
  border: 1px dashed color-mix(in srgb, var(--dark), var(--light) 90%);
  -webkit-transition: all 500ms ease;
  transition: all 500ms ease;
  overflow: hidden;
}
.cards .card .card-image {
  width: 100%;
  overflow: hidden;
}
.cards .card .card-image img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.cards .card .card-title {
  padding: 0 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cards .card .card-description {
  margin: 0;
  -webkit-padding-after: 5px;
          padding-block-end: 5px;
  padding-inline: 10px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: color-mix(in srgb, var(--txt), var(--light) 20%);
}
.cards .card .card-link {
  display: block;
  margin: 10px;
  text-align: right;
}
@media (width < 900px) {
  .cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (width < 600px) {
  .cards {
    grid-template-columns: minmax(0, 1fr);
  }
}

.card {
  opacity: 0;
  -webkit-transform: translateY(50px);
          transform: translateY(50px);
  -webkit-transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;
  transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out;
}

.card.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
