:root {
  --cards: 3;
  --cardTopPadding: 6rem;
  --cardsHeaderBottomPadding: 24rem;
  --cardsSectionGap: 2rem;
  --cardMargin: 2rem;
  --cardsSectionPaddingBottom: calc(
    calc(var(--cards) - 1) * var(--cardTopPadding)
  );
  --cardsHeaderBottomStop: 448px;
}

#stacked-cards {
  list-style: none;
  padding-left: 0;
  gap: var(--cardMargin);
  padding-bottom: calc(calc(var(--cards) - 1) * var(--cardTopPadding));

  display: flex;
  flex-direction: column;
}

#stacked-cards > div:nth-child(1) {
  --index: 0;
}
#stacked-cards > div:nth-child(2) {
  --index: 1;
}
#stacked-cards > div:nth-child(3) {
  --index: 2;
}

#stacked-cards > div {
  transform-origin: bottom;
  position: sticky;
  top: 0;
}

@media screen and (max-width: 1024px) {
  :root {
    --cardTopPadding: 3rem;
    --cardsHeaderBottomPadding: 10rem;
    --cardsSectionGap: 4rem;
    --cardsHeaderBottomStop: 272px;
  }
}
