.card-grid {
  --gap: 0;
  align-content: flex-start;
  display: flex;
  flex-flow: row wrap;
  gap: var(--gap);
  justify-content: center;
}

.card-grid--projects {
  --gap: 0.8rem;
  --card-2-col: calc((100% / 2) - (var(--gap) * 1 / 2));
  --card-3-col: calc((100% / 3) - (var(--gap) * 2 / 3));
  --card-4-col: calc((100% / 4) - (var(--gap) * 3 / 4));
}

.card-grid--16-9 .card--project {
  aspect-ratio: 16/9;
}

.card-grid--1-1 .card--project {
  aspect-ratio: 1/1;
}

.card-grid--4-3 .card--project {
  aspect-ratio: 4/3;
}

.card {
  --card-color: var(--color-canvas-light);
  --card-heading-size: 1.4em;
  --card-padding-block: 1em;
  --card-padding-inline: 1em;
  --card-radius: 0.8rem;
  background-color: var(--card-color);
  border: 1px solid var(--tint-ink-10);
  border-radius: var(--card-radius);
  font-size: var(--txt-xxx-small);
  inline-size: 46%;
  line-height: 1.3;
  margin: 2%;
  position: relative;
  scroll-margin-top: 10rem;
  text-align: start;
  text-rendering: optimizeLegibility;
  vertical-align: top;
  word-break: break-word;
  word-wrap: break-word;
}

:root[data-color-scheme='dark'] [data-color-picker-color='purple'] {
  --card-color: var(--color-purple-40);
}

.card--project {
  --card-color: var(--color-canvas);
  --font-size: var(--txt-medium);
  --max-width: 100%;
  aspect-ratio: 16/9;
  background-color: var(--card-color);
  border-radius: var(--radius-lg);
  border: 0;
  box-shadow: var(--shadow-card);
  font-size: var(--font-size);
  inline-size: 100%;
  margin: 0;
  max-inline-size: var(--max-width);
}

@media screen and (min-width: 480px) {
  .card-grid--projects .card--project {
    --font-size: clamp(1.3rem, 2vw, 1.7rem);
    --max-width: var(--card-2-col);
  }
}

@media screen and (min-width: 768px) {
  .card-grid--projects .card--project {
    --font-size: clamp(1.3rem, 1.5vw, 1.7rem);
    --max-width: var(--card-3-col);
  }
}

.card__link {
  min-block-size: 100%;
  inset: 0;
  position: absolute;
}

.card--project .card__content {
  padding: 1.1em;
}

.card__content {
  inset: 0;
  overflow: hidden;
  padding: var(--card-padding-block) var(--card-padding-inline);
  position: absolute;
}

.card--project .card__title {
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  font-size: 1.2em;
  padding-inline-end: 4rem;
  padding-block-start: 1px;
  position: relative;
  inline-size: 100%;
  z-index: 2;
}

.card--project .card__description {
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  display: -webkit-box;
}

.card--project .card__people {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 1em;
  inset-inline-end: 1em;
  background: var(--card-color);
  padding-block-end: 0.6em;
}

.card--project .card__people:before {
  content: '';
  position: absolute;
  background: linear-gradient(0deg, var(--card-color) 10%, transparent 100%);
  block-size: 2em;
  inline-size: 100%;
  inset-block-start: -2em;
  z-index: 1;
}

.card--project .card__people:before {
  content: '';
  position: absolute;
  background: linear-gradient(0deg, var(--card-color) 10%, transparent 100%);
  block-size: 2em;
  inline-size: 100%;
  inset-block-start: -2em;
  z-index: 1;
}

.card__settings {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  position: absolute;
  inset-inline-end: 0.8rem;
  inset-block-start: 0.8rem;
  z-index: 5;
  gap: 0.5rem;
}

.cards--bookmarked,
.cards--unbookmarked {
  display: contents;
}

.card__pin {
  --size: 2.4rem;
  background: none;
  block-size: var(--size);
  border: none;
  color: var(--color-ink);
  display: grid;
  font-size: 1.6rem;
  inline-size: var(--size);
  padding: 0;
  place-items: center;
  transition: opacity 0.3s;
}

.card__pin--unbookmarked {
  opacity: 0.33;
}

.card__pin--unbookmarked:hover,
.card__pin--unbookmarked:focus {
  opacity: 1;
}

.card__pin--unbookmarked:focus {
  transition: none;
}

.card__pin--bookmarked {
  color: var(--color-red);
}

.cards--bookmarked,
.cards--unbookmarked {
  display: contents;
}

.cards--bookmarked .card__pin--unbookmarked {
  display: none;
}

.cards--bookmarked .card-settings__button:not(.card-settings__button--close) {
  display: none;
}

.cards--bookmarked .card-settings__action-pin {
  display: none;
}

.cards--bookmarked .card-settings__action-unpin {
  display: inline;
}

.cards--unbookmarked .card__pin--bookmarked {
  display: none;
}

.svg-icon {
  block-size: 1em;
  fill: currentcolor;
  flex-shrink: 0;
  inline-size: 1em;
  pointer-events: none;
}

.card__details {
  padding-block-start: 0.3em;
}

.card__detail {
  display: none;
}

.card__detail {
  display: none;
}

.card__detail[data-active='true'] {
  display: block;
}

.card__information {
  height: 100%;
  overflow: hidden;
}

[data-color-picker-color='purple'] {
  --card-color: var(--color-purple-30);
}
