.book[data-astro-cid-jmr7olow]{position:relative;width:min(240px,100%)}.book__stage[data-astro-cid-jmr7olow]{position:relative}.book__inner[data-astro-cid-jmr7olow]{position:relative;z-index:1;aspect-ratio:3 / 4;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.book__pages[data-astro-cid-jmr7olow]{position:absolute;inset:0;background:var(--card);border:1px solid var(--line-2);border-radius:2px 4px 4px 2px;transform:translateZ(-13px);box-shadow:2px 0 0 0 var(--card),3px 0 0 0 var(--line-2),5px 0 0 0 var(--card),6px 0 0 0 var(--line-2),8px 0 0 0 var(--card),9px 0 0 0 var(--line-2),11px 0 0 0 var(--card)}.book__cover[data-astro-cid-jmr7olow]{position:absolute;inset:0;display:flex;overflow:hidden;background:var(--ink);color:var(--paper);border-radius:2px 4px 4px 2px;transform:translateZ(13px);box-shadow:inset 10px 0 14px -8px #00000073,inset 1px 0 #ffffff2e}.book--free[data-astro-cid-jmr7olow] .book__cover[data-astro-cid-jmr7olow]{background:var(--paper);color:var(--ink);border:1px solid var(--ink);box-shadow:inset 10px 0 14px -8px #0000002e,inset 1px 0 #ffffff80}.book__cover-type[data-astro-cid-jmr7olow]{position:relative;display:flex;flex-direction:column;width:100%;padding:20px 18px}.book__cat[data-astro-cid-jmr7olow]{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;opacity:.65}.book__title[data-astro-cid-jmr7olow]{margin-top:auto;margin-bottom:56px;font-family:var(--font-display);font-weight:500;font-size:21px;letter-spacing:-.02em;line-height:1.08}.book__grain[data-astro-cid-jmr7olow]{position:absolute;left:0;right:0;bottom:0;height:72px;--ht-o: .5;pointer-events:none}.book__img[data-astro-cid-jmr7olow]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.book__meta[data-astro-cid-jmr7olow]{margin-top:62px}.book__meta-title[data-astro-cid-jmr7olow]{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book__price[data-astro-cid-jmr7olow]{margin-top:6px;font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.book__price[data-astro-cid-jmr7olow] s[data-astro-cid-jmr7olow]{margin-left:8px;font-size:11px;color:var(--graphite)}@media(prefers-reduced-motion:reduce){.book__inner[data-astro-cid-jmr7olow]{transition:none}}.shelf__filters[data-astro-cid-zqzmjyyg]{display:flex;flex-wrap:wrap;gap:12px;margin:48px 0 8px}.shelf__filter[data-astro-cid-zqzmjyyg]{display:inline-flex;padding:0;border:0;background:transparent;cursor:pointer;border-radius:999px}.shelf__grid[data-astro-cid-zqzmjyyg]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px 40px;justify-items:center;margin-top:40px}.shelf__item[data-astro-cid-zqzmjyyg]{display:flex;justify-content:center;width:100%}.shelf__item[data-astro-cid-zqzmjyyg][hidden]{display:none}.shelf__cta[data-astro-cid-zqzmjyyg]{display:block;margin-top:14px}.shelf__cta[data-astro-cid-zqzmjyyg] .btn{width:100%}.shelf__cta[data-astro-cid-zqzmjyyg] .shelf__owned{display:inline-flex;align-items:center;gap:8px;padding:12px 0;color:var(--ink);letter-spacing:.14em;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}.shelf__cta[data-astro-cid-zqzmjyyg] .shelf__owned-dot{width:7px;height:7px;border-radius:999px;background:var(--cyan)}.shelf__filter-empty[data-astro-cid-zqzmjyyg]{margin-top:48px;letter-spacing:.14em;color:var(--graphite)}.shelf__empty[data-astro-cid-zqzmjyyg]{position:relative;margin-top:56px;padding:72px 32px;text-align:center;border:1px dashed var(--line-2);border-radius:8px;overflow:hidden}.shelf__empty-grain[data-astro-cid-zqzmjyyg]{position:absolute;inset:0;pointer-events:none}.shelf__empty-tag[data-astro-cid-zqzmjyyg]{position:relative;letter-spacing:.2em;color:var(--ink)}.shelf__empty-body[data-astro-cid-zqzmjyyg]{position:relative;max-width:46ch;margin:16px auto 28px;color:var(--graphite)}@media(max-width:860px){.shelf__grid[data-astro-cid-zqzmjyyg]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
