.card { position: relative; display: flex; flex-direction: column; border-radius: 10px; background: var(--color-secondary-background); aspect-ratio: 2 / 3; height: 100%; /* This feels like it shouldn't be necessary */ flex-basis: 280px; max-width: 280px; padding: 10px; text-align: left; } .card-title-long { font-size: 20px !important; } .card .card-content { flex-basis: 0.0001%; } .card .card-image { flex-basis: 99.9999%; } .card h3 { margin: 0 !important; } .card:hover .card-content { flex-basis: 45%; transition-delay: 0ms; padding-top: 10px; } .card:hover .card-image { flex-basis: 55%; transition-delay: 0ms; } .card-content { overflow: hidden; display: flex; flex-direction: column; gap: 10px; justify-content: space-between; transition: all 250ms ease-out; transition-delay: 250ms; } .card-image { transition: all 250ms ease-out; transition-delay: 250ms; flex-grow: 1; flex-basis: 100%; object-fit: cover; display: flex; overflow: hidden; border-radius: 8px; } .card-favorite-star { position: absolute; display: flex; right: 20px; top: 20px; padding: 10px; background: rgba(255,255,255,0.25); border-radius: 100%; } @media (prefers-reduced-motion) { .card-content { transition: none; } .card-image { transition: none; } }