.bookshelf{--bs-bay:268px;--bs-board:15px;--bs-inset:12px;--bs-side:15px;--bs-mantle:208px;--bs-u:4px}.bs-scene{background:0 0;border-radius:2px;width:100%;padding:1px;position:relative;overflow:hidden;box-shadow:0 34px 60px #0009}.bs-case{border-radius:inherit;background:#0a0a0b;position:relative;box-shadow:0 0 0 1px #191919,inset 0 1px #ffffff08}.bookshelf.bs-dragging .bs-scene{overflow:visible}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-mantle{position:relative}.bs-mantle-items{--bs-row:var(--bs-mantle);--bs-foot:0px;padding:0 calc(var(--bs-side) + var(--bs-inset));flex-wrap:nowrap;align-items:flex-end;column-gap:2px;margin-bottom:-4px;display:flex}.bs-body{position:relative}.bs-bays{padding:0 calc(var(--bs-side) + var(--bs-inset));min-height:calc(var(--bs-bay) * 3);flex-wrap:wrap;align-content:flex-start;align-items:flex-end;gap:0 2px;display:flex;position:relative}.bs-boards{z-index:0;pointer-events:none;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;position:absolute;inset:0}.bs-hole{width:var(--bs-w);height:var(--bs-row,var(--bs-bay));pointer-events:none;flex:none}.bs-drop{z-index:1;width:0;height:calc(var(--bs-bay) - var(--bs-board));pointer-events:none;opacity:0;background:#e3183717;border:1px solid #e31837d9;border-radius:2px;transition:opacity .14s;position:absolute;top:0;left:0;box-shadow:inset 0 0 14px #e3183740,0 0 12px #e318374d}.bs-drop.bs-drop-on{opacity:1}.bs-item{width:var(--bs-w);width:calc(round(up, var(--bs-w) + 2px, var(--bs-u)) - 2px);height:var(--bs-row,var(--bs-bay));padding-bottom:var(--bs-foot,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;flex:none;justify-content:center;align-items:flex-end;text-decoration:none;display:flex;position:relative}.bs-item.bs-held,.bs-item.bs-carry{will-change:transform}.bs-face{pointer-events:auto;cursor:grab;width:var(--bs-w);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-mug,.bs-mug-sunburst,.bs-mug-ouchie,.bs-mug-stitch,.bs-mug-courage,.bs-mug-abee,.bs-mug-irrelephant,.bs-mug-bubblegum,.bs-mug-woodhandle,.bs-mug-greenmountain,.bs-mug-adulting{--bs-w:118px;--bs-h:94px}.bs-llama{--bs-w:108px;--bs-h:132px}.bs-sprites{--bs-w:145.6px;--bs-h:130px}.bs-ladybug{--bs-w:76px;--bs-h:58px}.bs-object .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-object.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-object:not(.bs-planter) svg{width:100%;height:100%;display:block;overflow:visible}.bs-face,.bs-flat{--bs-rot:0deg}.bs-flat{--bs-rot:90deg}.bs-item.bs-turned .bs-face{--bs-rot:180deg}.bs-flat.bs-turned{--bs-rot:-90deg}.bs-cloth .bs-face,.bs-cloth.bs-flat{background-image:linear-gradient(calc(90deg + var(--bs-rot)), #00000080, #0000 17%, #ffffff1c 40%, #fff0 66%, #00000070), repeating-linear-gradient(calc(0deg + var(--bs-rot)), #00000012 0 1px, #0000 1px 3px), repeating-linear-gradient(calc(90deg + var(--bs-rot)), #ffffff0d 0 1px, #0000 1px 3px), linear-gradient(calc(180deg + var(--bs-rot)), var(--base), var(--base-to))}.bs-leather .bs-face,.bs-leather.bs-flat{background-image:linear-gradient(calc(90deg + var(--bs-rot)), #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(calc(180deg + var(--bs-rot)), var(--base), var(--base-to))}.bs-paper .bs-face,.bs-paper.bs-flat{background-image:linear-gradient(calc(90deg + var(--bs-rot)), #00000057, #0000 17%, #ffffff80 40%, #fff0 66%, #0000004d), repeating-linear-gradient(calc(0deg + var(--bs-rot)), #00000009 0 2px, #0000 2px 5px), linear-gradient(calc(180deg + var(--bs-rot)), 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;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:.82;color:var(--accent);opacity:calc(.82 * (1 - var(--flip,0)));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 (max-width:380px){.bookshelf{--bs-side:9px;--bs-inset:5px}}@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}.bs-stack .bs-face{flex-direction:column;align-items:flex-start;display:flex}.bs-flat{--flip:1;--bs-shift:0px;box-sizing:border-box;margin-left:var(--bs-shift);width:min(var(--bs-fw), calc(100% - var(--bs-shift)));height:var(--bs-fh);color:var(--ink);background-color:var(--base);border-radius:2px 0 0 2px;flex:none;align-items:center;padding:0 7px 0 9px;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 2px 4px #0000004d,inset 0 -2px 5px #0000006b,0 2px 3px #00000080}.bs-flat:first-child{--bs-shift:4px;box-shadow:inset 0 2px #ffffff24,inset 0 -2px 5px #0000006b,0 2px 3px #00000080}.bs-flat:nth-child(2){--bs-shift:0px}.bs-flat:nth-child(3){--bs-shift:5px}.bs-flat-title{min-width:0;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;flex:0 auto;line-height:1;overflow:hidden}.bs-flat-imprint{font-family:var(--font-plex-mono), monospace;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;color:var(--accent);opacity:calc(.82 * (1 - var(--flip,1)));flex:none;margin-left:10px;font-size:6.5px;overflow:hidden}.bs-flat-author{font-family:var(--font-plex-mono), monospace;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;opacity:.78;flex:none;margin-left:14px;margin-right:auto;font-size:8.5px;overflow:hidden}
