.lib-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--lib-color-border-panel);
  border-radius: var(--lib-radius-xl);
  background: var(--lib-color-surface-card);
  box-shadow: var(--lib-shadow-card-soft);
  transition:
    transform var(--lib-transition-base),
    box-shadow var(--lib-transition-base),
    border-color var(--lib-transition-base),
    background var(--lib-transition-base);
}

.lib-card:hover,
.lib-card.is-engaged {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--lib-color-primary) 24%, var(--lib-color-border-panel));
  box-shadow: var(--lib-shadow-card-hover);
}

.lib-card--dark {
  color: var(--lib-color-inverse);
  border-color: var(--lib-color-border-inverse-soft);
  background: var(--lib-color-surface-card-dark);
}

.lib-card__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: var(--lib-space-6);
}

@media (max-width: 540px) {
  .lib-card {
    border-radius: var(--lib-radius-md);
    overflow-wrap: anywhere;
  }

  .lib-card__body {
    padding: var(--lib-space-5);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lib-card {
    transition: none;
  }

  .lib-card:hover,
  .lib-card.is-engaged {
    transform: none;
  }
}
