/* ---- New Launches shelf ---- */

/* Books drop onto the shelf, staggered outward from the centre (delay set in JS) */
.book-card {
}
.books-in .book-card {
  opacity: 1;
  transform: none;
}
/* styles.css loads after the Tailwind CDN, so restate the hover lift or the rule above wins */
.books-in .book-card:hover {
  transform: translateY(-0.5rem);
}

/* Once landed, each cover breathes on its own loop */
@keyframes book-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-9px) rotate(-0.5deg); }
}
.books-in .book-cover {
}
.books-in .book-card--hero .book-cover {
}

/* Ground shadow softens/spreads in time with the float */
@keyframes shadow-breathe {
  0%, 100% { transform: scaleX(1);     opacity: 0.9; }
  50%      { transform: scaleX(0.965); opacity: 0.62; }
}
.books-in .book-shadow {
}

/* While GSAP tweens the shelf in, the CSS transition would fight it frame by frame */
.gsap-books .book-card {
  transition: none;
}

/* Cover transition */
.book-cover {
  transition: transform 300ms ease;
}

@media (prefers-reduced-motion: reduce) {
  .book-card { opacity: 1; transform: none; transition: none; }
  .books-in .book-cover,
  .books-in .book-shadow { animation: none; }
}

