.book-grid,.featured-grid,.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;list-style:none;padding:0;margin:0 auto;max-width:1200px} .card,.featured-card,.book-card,.category-card{position:relative;background:var(--card);border:1px solid var(--bord);border-radius:.8rem;box-shadow:0 2px 6px #00000014;overflow:hidden;transition:transform 140ms cubic-bezier(.25,.8,.25,1),box-shadow 140ms cubic-bezier(.25,.8,.25,1);will-change:transform} .card:hover,.featured-card:hover,.book-card:hover,.category-card:hover{transform:translateY(-3px);box-shadow:0 8px 18px #0000001f} .card-thumb,.featured-card .thumb,.book-card .thumb,.category-card .thumb{background:#f2ece4;border-radius:4px;overflow:hidden;height:320px;display:block} .card-thumb img,.featured-card .thumb img,.book-card .thumb img,.category-card .thumb img{width:100%;height:100%;object-fit:cover;display:block} .card .meta,.featured-card .meta,.book-card .meta,.category-card .meta{padding:.8rem 1rem 1rem} .card h3,.featured-card h3,.book-card h3,.category-card h3{margin:0 0 .3rem;font-family:var(--font-title);font-size:1.05rem;color:var(--fg)} .card .author,.featured-card .author,.book-card .author,.category-card .author{margin:0;font-size:.9rem;color:var(--muted);font-style:italic} .featured-card > a,.book-card > a,.category-card > a,.card > a{display:block;color:inherit;text-decoration:none} .featured-books .featured-grid{margin-top:2rem} .featured-books .featured-card{background:radial-gradient(circle at 20% 0%,#fff8e8 0%,transparent 50%),radial-gradient(circle at 80% 100%,#f4e1c0 0%,transparent 55%),var(--card);border-color:#b48c5a66;box-shadow:0 4px 14px #0000002e 0 0 0 1px #fff6} .featured-books .featured-card:hover{box-shadow:0 8px 22px #00000038 0 0 0 1px #ffffff8c} body.night .card,body.night .featured-card,body.night .book-card,body.night .category-card{background:#281e12e6;border-color:#fff0c824;box-shadow:0 2px 10px #0009} body.night .featured-books .featured-card{background:radial-gradient(circle at 10% 0%,#5a4224 0%,transparent 50%),radial-gradient(circle at 80% 100%,#3b2b19 0%,transparent 55%),#22170f;border-color:#ffdc9673;box-shadow:0 6px 20px #000c,0 0 0 1px #ffe6b440} body.night .card-thumb,body.night .featured-card .thumb,body.night .book-card .thumb,body.night .category-card .thumb{background:#2a2218;border-color:transparent} @media (max-width:480px) { .book-grid,.featured-grid,.category-grid{max-width:360px} } .category-grid{display:grid;grid-template-columns:1fr;gap:1.2rem;list-style:none;padding:0;margin:0} @media (min-width:600px) { .category-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))} } .category-card{position:relative;background:linear-gradient(180deg,#faf8f3f2,#f3ede0f2),url(/assets/img/paper-fiber.webp) center/cover no-repeat;background-blend-mode:multiply;border:1px solid #8c6e3c26;border-radius:.85rem;padding:1.1rem 1.25rem 1.25rem;box-shadow:0 3px 8px #0001;transition:transform .2s ease,box-shadow .25s ease;overflow:hidden} .category-card::after{content:"";position:absolute;inset:0;background:url(/assets/img/paper-fiber.webp) center/cover repeat;mix-blend-mode:soft-light;opacity:.05;animation:categoryDrift 55s ease-in-out infinite alternate;pointer-events:none} @keyframes categoryDrift { 0%{transform:translate(0,0) scale(1);opacity:.05} 50%{transform:translate(-1%,1%) scale(1.015);opacity:.07} 100%{transform:translate(1%,-1%) scale(1);opacity:.05} } .category-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px #0002} body.night .category-card{background:linear-gradient(180deg,#241a10f2,#120d08f2),url(/assets/img/paper-fiber.webp) center/cover no-repeat;background-blend-mode:multiply;border-color:#ffffff12;box-shadow:0 2px 8px #000c} body.night .category-card:hover{box-shadow:0 0 18px #ffdc9630} body.night .category-card::after{opacity:.08} .category-card h2,.category-card .category-title{margin:0 0 .35rem;padding:0 0 .45rem;font-family:var(--font-title);font-size:1.18rem;font-variant-caps:small-caps;letter-spacing:.02em;color:var(--accent);text-shadow:0 1px 1px #fff4;position:relative;display:flex;align-items:center;gap:.55rem} .category-card h2::after,.category-card .category-title::after{content:"";position:absolute;left:0;bottom:0;width:75%;height:2px;background:linear-gradient(to right,transparent,#785a2880,transparent);border-radius:2px} .category-card .emoji-icon{font-size:1.4rem;line-height:1;filter:drop-shadow(0 1px 1px #fff8)} body.night .category-card .emoji-icon{filter:drop-shadow(0 0 4px #ffdc9644)} body.night .category-card h2,body.night .category-card .category-title{color:#f6e3b1;text-shadow:0 1px 2px #000a} body.night .category-card h2::after,body.night .category-card .category-title::after{background:linear-gradient(to right,transparent,#d6b87480,transparent)} .category-card p,.category-card .desc{margin:.2rem 0 .9rem;font-size:.92rem;line-height:1.45;color:var(--muted)} body.night .category-card p,body.night .category-card .desc{color:#d9c9a7} .category-card .small{font-size:.85rem;opacity:.85;margin-bottom:.7rem} .category-card .more-link{font-size:.9rem;color:var(--accent);text-decoration:none;font-weight:600;transition:color .2s ease,transform .2s ease} .category-card .more-link:hover{color:var(--accent-light);transform:translateX(3px)} body.night .category-card .more-link{color:#d6b874} body.night .category-card .more-link:hover{color:#ffe6a8}