.shelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 2.5rem clamp(1.5rem, 3vw, 3rem); padding: 2rem 0 1rem; }
.book { display: flex; flex-direction: column; }
.book-cover { display: flex; align-items: flex-end; justify-content: flex-start; height: 17rem; margin-bottom: 1rem; }
.book-cover img { max-height: 100%; max-width: 100%; width: auto; height: auto; display: block; box-shadow: 0 18px 30px -18px rgba(28, 25, 21, 0.75), 0 1px 0 rgba(28, 25, 21, 0.25); transition: transform 0.2s ease; }
.book-cover:hover img { transform: translateY(-4px); }
.book h3 { font-size: 1.15rem; margin-bottom: 0.3rem; }
.book h3 a { color: var(--ink); text-decoration: none; }
.book h3 a:hover { color: var(--accent); text-decoration: underline; }
.book p { font-size: 0.95rem; color: var(--muted); margin: 0 0 0.6rem; }
.book .text-link { margin-top: auto; }
.book-plain { border-top: 3px solid var(--ink); padding-top: 1rem; align-self: end; }
.shelf-home { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.shelf-home .book-cover { height: 13rem; }
@media (prefers-reduced-motion: reduce) { .book-cover img { transition: none; } }