.shelf-list li{position:relative;margin-bottom:.65rem;line-height:1.4;overflow-wrap:anywhere;scroll-margin-block:3rem}.shelf-list li:focus-visible,.shelf-note summary:focus-visible{outline:2px solid var(--shelf-accent);outline-offset:4px}.shelf-authors{color:var(--content-secondary)}.shelf-status{display:inline-block;margin-left:.5rem;padding:.08rem .3rem;border:1px solid var(--shelf-rule);border-radius:2px;color:var(--content-secondary);font:.65rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}.shelf-status time{border-left:1px solid var(--shelf-rule);margin-left:.25rem;padding-left:.35rem}.shelf-note{margin:.35rem 0 .7rem}.shelf-note summary{width:fit-content;padding:.2rem .65rem;border:1px solid var(--shelf-rule);border-bottom:0;background:var(--shelf-wash);font:.75rem var(--font-mono);cursor:pointer;color:var(--shelf-accent)}.shelf-note p{margin:0;padding:.8rem 1rem;border-left:1px solid var(--shelf-rule);background:var(--shelf-wash)}.shelf-empty{color:var(--content-secondary);font-style:italic}.bookcase,.shelf-catalogue{--shelf-accent:light-dark(#385568, #86a9ba);--shelf-rule:light-dark(#b0b0b0, #606060);--shelf-paper:light-dark(#ffffff, #141414);--shelf-wash:light-dark(#f9f9f9, #1e1e1e)}.bookcase [hidden]{display:none!important}.bookcase-section h2 span{font:.7rem var(--font-mono);color:var(--content-secondary)}.bookcase-section h2{margin:2.5rem 0 1.5rem}.bookcase-section h2 span{margin-left:.5rem}.bookcase-rows{border-left:2px solid var(--shelf-rule);border-right:2px solid var(--shelf-rule);padding:0}.bookcase-rows,.bookcase-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px}.bookcase-row{flex-wrap:nowrap;width:100%;min-width:0;box-sizing:border-box;padding:28px 12px 0;border-bottom:9px double var(--shelf-rule);margin-bottom:18px;background:var(--shelf-wash)}.bookcase-row:last-child{margin-bottom:0}.bookcase-book{flex:0 0 var(--book-width);height:var(--book-height);box-sizing:border-box;border:1px solid var(--shelf-rule);border-bottom:none;border-radius:3px 2px 0 0;background:var(--cover-color,var(--shelf-paper));color:var(--cover-ink,var(--content-primary));display:flex;flex-direction:row;justify-content:center;gap:4px;padding:14px 5px 11px;text-decoration:none;position:relative;transform-origin:bottom center;transition:transform 200ms ease,opacity 200ms ease}.bookcase-book::before,.bookcase-book::after{content:"";position:absolute;left:4px;right:4px;border-top:3px solid var(--cover-accent,currentColor);opacity:.85}.bookcase-book::before{top:5px}.bookcase-book::after{bottom:5px}.bookcase-spine-title,.bookcase-spine-author{writing-mode:vertical-rl;transform:rotate(180deg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookcase-spine-title{font:.85rem var(--font-body)}.bookcase-spine-author{font:.5rem var(--font-mono)}.bookcase-book:has(.bookcase-spine-art){padding-bottom:38px}.bookcase-spine-art{position:absolute;bottom:10px;left:4px;right:4px;height:23px}.bookcase-spine-art svg{display:block;width:100%;height:100%;stroke-width:4}.art-accent{stroke:var(--cover-accent,currentColor)}.art-wash{fill:var(--cover-accent,currentColor);fill-opacity:.25}.bookcase-spine-art text,.pulled-book-art text{font-weight:400}.pulled-book-art{width:100%;margin:-.5rem auto 0}.pulled-book-art svg{display:block;width:100%;max-width:285px;max-height:190px;margin-inline:auto}.pulled-book-cover:has(.pulled-book-art:not([hidden])) .pulled-book-rule{display:none}.bookcase-book:hover,.bookcase-book:focus-visible{transform:translateY(-10px)rotate(-2deg);z-index:1}.bookcase-book.is-pulled{opacity:.18;transform:none;border-style:dashed}.bookcase :focus-visible{outline:2px solid var(--shelf-accent);outline-offset:4px}.bookcase-open{overflow:hidden}.bookcase-dialog{box-sizing:border-box;width:min(420px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--shelf-rule);border-left:6px double var(--shelf-rule);border-radius:2px;color:var(--cover-ink,var(--content-primary));background:var(--cover-color,var(--shelf-paper));overflow:auto}.bookcase-dialog::backdrop{background:light-dark(rgb(255 255 255/85%),rgb(20 20 20/85%))}.pulled-book{padding:28px}.bookcase-close{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.pulled-book-cover{min-height:360px;display:flex;flex-direction:column;justify-content:center;text-align:center}.pulled-book-cover h2{font-size:clamp(1.6rem,5vw,2.2rem);line-height:1.15;margin:0 0 1rem;overflow-wrap:anywhere}#pulled-book-title:focus-visible{outline:none}.pulled-book-authors{margin:0 0 2rem;color:var(--content-secondary)}.pulled-book-rule{width:40px;border-top:2px solid var(--shelf-accent);margin:0 auto 2rem}.pulled-book-status .shelf-status{margin:1.5rem 0 0}.pulled-book-note{padding:1rem 0;border-top:1px solid var(--shelf-rule)}.pulled-book-link{color:var(--shelf-accent);display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 -12px -12px auto;font-size:1.25rem;text-decoration:none}.shelf-catalogue{margin-top:3rem;border-top:1px solid var(--shelf-rule);padding-top:1rem}.shelf-catalogue>summary{cursor:pointer}@media(prefers-reduced-motion:reduce){.bookcase-book{transition:none}.bookcase-book:hover,.bookcase-book:focus-visible{transform:none}}.bookcase-dialog .pulled-book-authors,.bookcase-dialog .shelf-status,.bookcase-dialog .pulled-book-link{color:inherit}.bookcase-dialog .pulled-book-rule{border-color:var(--cover-accent,currentColor)}.bookcase-dialog .shelf-status{border-color:initial}.bookcase-dialog .pulled-book-link:focus-visible{outline-color:currentColor}