.card-row {
  --columns: 3;
  --card-gap: 2rem;
  --card-max: 30rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--card-gap);
}

.card-row--four {
  --columns: 4;
  --card-max: 26rem;
}

.card-row--featured {
  --columns: 1;
  --card-max: 100%;
}

.card-row > * {
  flex: 0 1 calc((100% - (var(--columns) - 1) * var(--card-gap)) / var(--columns));
  min-width: 0;
  max-width: var(--card-max);
  overflow-wrap: anywhere;
}

.skills-grid {
  align-items: flex-start;
}

.skill-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.skill-badge {
  flex: 0 1 calc((100% - 1rem) / 2);
}

@media (width < 1800px) {
  .card-row--four {
    --columns: 3;
  }
}

@media (max-width: 1600px) {
  .card-row--three {
    --columns: 2;
  }
}

@media (width < 1450px) {
  .card-row--four {
    --columns: 2;
  }
}

@media (max-width: 1100px) {
  .card-row--three {
    --columns: 1;
  }
}

@media (width < 1000px) {
  .card-row--four {
    --columns: 1;
  }
}

@media (max-width: 768px) {
  .card-row {
    --columns: 1;
  }
}

@media (max-width: 400px) {
  .skill-badge {
    flex-basis: 100%;
  }
}
