.bookshelf{--bs-bay:268px;--bs-board:15px;--bs-inset:12px;--bs-side:15px}.bs-scene{background:#0a0a0b;border:1px solid #191919;border-radius:2px;width:100%;position:relative;overflow:hidden;box-shadow:0 34px 60px #0009,inset 0 1px #ffffff08}.bookshelf.bs-dragging .bs-scene{overflow:visible}.bookshelf.bs-dragging .bs-bays{z-index:20}html.bs-drag-lock{overflow-x:hidden}.bs-wall{z-index:0;border-radius:inherit;background-color:#0e0e10;background-image:radial-gradient(120% 46% at 50% -6%,#ffffff12,#fff0 62%),repeating-linear-gradient(37deg,#ffffff02 0 2px,#0000 2px 6px),repeating-linear-gradient(-14deg,#00000006 0 3px,#0000 3px 8px),radial-gradient(130% 110%,#0000 40%,#0000008c);position:absolute;inset:0}.bs-crown{z-index:7;background:linear-gradient(#8a6440 0 4px,#5c4029 4px 6px,#3b2818 6px 100%);height:20px;position:relative;box-shadow:0 6px 14px #000000b3}.bs-plinth{z-index:7;background:linear-gradient(#6b4a2e 0 3px,#3a2717 3px 60%,#1d1209 100%);height:22px;position:relative;box-shadow:0 -6px 14px #0009}.bs-side{z-index:6;width:var(--bs-side);pointer-events:none;background:linear-gradient(90deg,#7a5637,#4a3320 40%,#2a1c11);position:absolute;top:0;bottom:0;box-shadow:3px 0 10px #0009}.bs-side-l{left:0}.bs-side-r{right:0;transform:scaleX(-1)}.bs-body{z-index:1;position:relative}.bs-bays{z-index:2;padding:0 calc(var(--bs-side) + var(--bs-inset));min-height:calc(var(--bs-bay) * 3);background-image:linear-gradient(180deg, #0000008c 0px, #0000 12px, #0000 calc(var(--bs-bay) - var(--bs-board) - 3px), #0000004d calc(var(--bs-bay) - var(--bs-board)), #8a6440 calc(var(--bs-bay) - var(--bs-board)), #6b4c2f calc(var(--bs-bay) - var(--bs-board) + 3px), #4d341f calc(var(--bs-bay) - var(--bs-board) + 3px), #2b1c11 var(--bs-bay));background-size:100% var(--bs-bay);background-position:0 0;background-repeat:repeat-y;flex-wrap:wrap;align-content:flex-start;align-items:flex-end;gap:0 2px;display:flex;position:relative}.bs-spare{height:var(--bs-bay);pointer-events:none;flex:0 0 100%}.bs-item{width:var(--bs-w);height:var(--bs-bay);padding-bottom:var(--bs-board);pointer-events:none;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;will-change:transform;flex:none;align-items:flex-end;text-decoration:none;display:flex;position:relative}.bs-face{pointer-events:auto;cursor:grab;width:100%;height:var(--bs-h);color:var(--ink);background-color:var(--base);isolation:isolate;border-radius:2px 3px 3px 2px;flex-direction:column;align-items:center;padding:9px 0 7px;transition:box-shadow .24s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 3px 7px #0006,inset 0 -4px 7px #0006,2px 1px 5px #0000008c}.bs-item.bs-carry .bs-face{cursor:grabbing}.bs-glow,.bs-shade{pointer-events:none;opacity:var(--glow,0);transform:translate3d(var(--gx,0px), var(--gy,0px), 0);transition:opacity .18s,transform 60ms ease-out;position:absolute;top:0;left:0}.bs-glow{mix-blend-mode:plus-lighter;background:radial-gradient(closest-side,#fff6e44d,#fff3dc26 44%,#fff0d600 78%);width:200px;height:200px;margin:-100px 0 0 -100px}.bs-shade{background:radial-gradient(380px,#0000 0 22%,#00000047 58% 100%);width:800px;height:800px;margin:-400px 0 0 -400px}.bs-item.bs-held .bs-glow,.bs-item.bs-held .bs-shade{transition:opacity .24s linear,transform 60ms ease-out}.bs-spine.bs-carry .bs-face{box-shadow:inset 0 3px 7px #0006,inset 0 -4px 7px #0006,18px 26px 44px #000000d9}.bs-spine.bs-carry .bs-glow{opacity:calc(var(--glow,0) * 1.15)}.bs-item:focus-visible{outline:none}.bs-item:focus-visible .bs-face{outline:2px solid var(--accent,#7fae5d);outline-offset:3px}.bs-planter{--bs-w:100px;--bs-h:175px;z-index:5}.bs-planter .bs-face{box-shadow:none;isolation:auto;filter:drop-shadow(0 6px 7px #0000008c) brightness(calc(1 + .17 * var(--glow,0)));background:0 0;border-radius:0;padding:0;transition:filter .2s;display:block;overflow:visible}.bs-planter.bs-carry .bs-face{filter:drop-shadow(16px 24px 22px #000000b3) brightness(calc(1 + .17 * var(--glow,0)))}.bs-planter svg{width:100%;height:152.4%;display:block;position:absolute;top:0;left:0;overflow:visible}.bs-cloth .bs-face{background-image:linear-gradient(90deg, #00000080, #0000 17%, #ffffff1c 40%, #fff0 66%, #00000070), repeating-linear-gradient(0deg, #00000012 0 1px, #0000 1px 3px), repeating-linear-gradient(90deg, #ffffff0d 0 1px, #0000 1px 3px), linear-gradient(180deg, var(--base), var(--base-to))}.bs-leather .bs-face{background-image:linear-gradient(90deg, #0000008c, #0000 17%, #ffffff17 38%, #fff0 64%, #00000080), radial-gradient(60% 8% at 30% 12%, #ffffff12, #0000 70%), repeating-radial-gradient(circle at 40% 30%, #0000000d 0 1px, #0000 1px 4px), linear-gradient(180deg, var(--base), var(--base-to))}.bs-paper .bs-face{background-image:linear-gradient(90deg, #00000057, #0000 17%, #ffffff80 40%, #fff0 66%, #0000004d), repeating-linear-gradient(0deg, #00000009 0 2px, #0000 2px 5px), linear-gradient(180deg, var(--base), var(--base-to))}.bs-title,.bs-author,.bs-imprint{position:relative}.bs-title{writing-mode:vertical-rl;min-height:0;font-family:var(--font-anton), var(--font-geist-sans), sans-serif;font-size:var(--title-size);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px #00000040;flex:0 auto;line-height:1;overflow:hidden}.bs-author{writing-mode:vertical-rl;font-family:var(--font-plex-mono), monospace;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;opacity:.78;flex:none;margin:14px 0 auto;font-size:8.5px;overflow:hidden}.bs-imprint{writing-mode:vertical-rl;font-family:var(--font-plex-mono), monospace;letter-spacing:.2em;white-space:nowrap;opacity:.62;color:var(--accent);flex:none;font-size:6.5px;overflow:hidden}.bs-hint{font-family:var(--font-plex-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:#7d7d7d;flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;font-size:11px;display:flex}.bs-hint-touch{display:none}@media (hover:none) and (pointer:coarse){.bs-hint-touch{display:inline}.bs-hint-mouse{display:none}}.bs-reset{font:inherit;color:#e31837;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #e3183766;padding:0}.bs-reset:hover{color:#ff2d4a;border-bottom-color:#ff2d4a}@media (max-width:460px){.bookshelf{--bs-inset:8px;--bs-side:11px}.bs-planter{--bs-w:80px;--bs-h:140px}}@media (prefers-reduced-motion:reduce){.bs-face{transition:none}.bs-glow,.bs-shade,.bs-item.bs-held .bs-glow,.bs-item.bs-held .bs-shade{transition:opacity .12s linear}}.bk-kicker{font-family:var(--font-plex-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#e31837;font-size:11px}.bk-h1{font-family:var(--font-anton), sans-serif;letter-spacing:.01em;text-transform:uppercase;font-size:clamp(2rem,6vw,3.25rem);line-height:1.02}.bk-cover{border-radius:2px 4px 4px 2px;width:100%;display:block;position:relative;box-shadow:-6px 0 0 -2px #ffffff14,14px 18px 34px #000000b3}.bk-row{border-top:1px solid #262626;grid-template-columns:56px 1fr auto;align-items:center;gap:18px;padding:18px 0;text-decoration:none;display:grid}.bk-row:hover{background:#ffffff05}.bk-row img{border-radius:1px 3px 3px 1px;width:56px;height:auto;box-shadow:4px 5px 12px #0009}@media (max-width:520px){.bk-row{grid-template-columns:48px 1fr}.bk-row-meta{grid-column:2}}.bk-tags{border-top:1px solid #262626;flex-wrap:wrap;gap:8px;margin-top:34px;padding-top:22px;list-style:none;display:flex}.bk-tag{font-family:var(--font-plex-mono), monospace;letter-spacing:.16em;text-transform:uppercase;color:#9a9a9a;background:#ffffff05;border:1px solid #2e2e2e;padding:5px 9px;font-size:10px}
