.bookshelf{margin:64px 0 36px;padding-top:36px;border-top:1px solid #aab8ac}.bookshelf-heading{max-width:760px;margin-bottom:28px}.bookshelf-heading h2{font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.2;margin:12px 0}.bookshelf-heading p,.book-copy p,.bookshelf-note{line-height:1.65}.bookshelf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.book-card{min-width:0;display:flex;flex-direction:column;border:1px solid #b9c6bc;border-radius:16px;overflow:hidden;background:var(--surface,#fff)}.book-cover-link{display:flex;justify-content:center;align-items:center;padding:28px;background:#e9e8df;min-height:380px}.book-cover-link img{display:block;max-width:100%;width:auto;height:360px;object-fit:contain;box-shadow:0 10px 24px #10203635}.book-copy{padding:24px;display:flex;flex-direction:column;flex:1}.book-meta{font-size:.78rem;font-weight:700;letter-spacing:.04em;color:#557363}.book-copy h3{font-size:1.5rem;line-height:1.25;margin:12px 0}.book-copy p{margin:0 0 24px}.book-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto}.book-actions a{display:inline-flex;align-items:center;min-height:44px;border:1px solid #315b48;border-radius:8px;padding:10px 14px;color:#234b38;text-decoration:none;font-weight:700;font-size:.9rem}.book-actions .book-primary{background:#234b38;color:#fff}.book-actions a:hover{box-shadow:0 0 0 2px #c6a863}.bookshelf a:focus-visible{outline:3px solid #bd8221;outline-offset:4px}.bookshelf-note{font-size:.85rem;opacity:.8;margin-top:18px}[data-theme="shadow"] .book-card{background:#162b26;color:#f5f1e7}[data-theme="shadow"] .book-meta{color:#bed3c4}[data-theme="shadow"] .book-actions a:not(.book-primary){color:#e1eddf;border-color:#a8c4ad}@media(max-width:700px){.bookshelf-grid{grid-template-columns:1fr;gap:24px}.bookshelf{margin-top:40px}.book-cover-link{padding:24px;min-height:0}.book-cover-link img{height:330px;max-height:none}.book-copy{padding:20px}.book-actions a{justify-content:center;flex:1 1 160px}}