.bookcase-loading .card-grid{visibility:hidden}.bookcase-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.books-hero-band{position:relative;overflow:hidden;isolation:isolate}.books-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:48px;padding-bottom:96px}.books-hero-bg{position:absolute;inset:-10% 0;z-index:-1;background:url(/bg/books-shelf.jpg) center 30% / cover no-repeat;opacity:.3;filter:saturate(.8);pointer-events:none}.books-hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to right,#080809eb,#0808098c 55%,#08080940),linear-gradient(to bottom,rgba(8,8,9,.35) 0%,rgba(8,8,9,0) 40%,var(--black) 92%)}.books-feature{justify-self:end;display:flex;align-items:center;gap:36px}.books-feature[hidden]{display:none}.feature-stage{--s: 1.7;position:relative;perspective:900px;padding-bottom:12px}.feature-stage:before{content:"";position:absolute;left:50%;top:45%;width:340px;height:340px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,176,96,.28),rgba(255,140,60,.08) 45%,transparent 70%);pointer-events:none}.shelf-book.feature-book{--book-w: 210px;width:var(--book-w);flex:none;transform:rotateY(-24deg) rotateX(3deg);transform-origin:50% 100%;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.shelf-book.feature-book:hover,.shelf-book.feature-book:focus-visible{transform:rotateY(-6deg) rotateX(2deg)}.feature-stand{position:absolute;left:-28px;right:-28px;bottom:0;height:14px;background:url(/bookcase/plank-front.jpg) center / auto 100% repeat-x;box-shadow:0 18px 30px #000000a6,inset 0 1px #ffdcaa40}.feature-copy{display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-width:230px}.feature-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ember)}.feature-title{font-family:var(--font-display);font-size:34px;line-height:1;letter-spacing:.02em;color:var(--white)}.feature-buy{margin-top:4px;font-family:var(--font-condensed);font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ember);transition:color .3s ease}.feature-buy:hover{color:var(--ember-2)}.bookcase{--book-w: 120px;--book-gap: 18px;--shelf-pad: 30px;--s: 1;--upright: 26px;--plank-h: 22px;--plank-depth: 64px;--headroom: 34px;--bookend-w: 9px;position:relative;max-width:1320px;margin:0 auto 120px;padding:0 40px}@media(min-width:1100px){.bookcase{max-width:min(1320px,calc(100vw - 220px));padding:0}}@media(max-width:1024px){.bookcase{--book-w: 108px;--book-gap: 16px;--shelf-pad: 20px;--s: .9;--upright: 18px}}@media(max-width:600px){.bookcase{--book-w: 92px;--book-gap: 12px;--shelf-pad: 12px;--s: .75;--upright: 10px;--plank-h: 16px;--plank-depth: 44px;--headroom: 26px;padding:0}}.bookcase-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.bookcase-search{position:relative;width:min(380px,100%)}.bookcase-search:before{content:"";position:absolute;left:15px;top:50%;width:14px;height:14px;transform:translateY(-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A8A3A0' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;pointer-events:none}.bookcase-search-input{width:100%;padding:13px 16px 13px 40px;background:var(--black-2);border:1px solid var(--black-4);border-radius:2px;color:var(--white);font-family:var(--font-body);font-size:16px;outline:none;transition:border-color .3s ease}.bookcase-search-input:focus{border-color:var(--ember)}.bookcase-search-input::placeholder{color:var(--white-3)}.bookcase-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--white-2)}.bookcase-frame{position:relative;padding:0 var(--upright);background:#140c06;box-shadow:0 50px 90px #000000a6}.bookcase-frame:before,.bookcase-frame:after{content:"";position:absolute;top:0;bottom:0;width:var(--upright);z-index:4;background:url(/bookcase/upright.jpg) center top / 100% auto repeat-y}.bookcase-frame:before{left:0;box-shadow:inset -8px 0 12px #00000073,6px 0 14px #0000008c}.bookcase-frame:after{right:0;box-shadow:inset 8px 0 12px #00000073,-6px 0 14px #0000008c}.bookcase-crown,.bookcase-plinth{position:relative;z-index:5;margin:0 calc(var(--upright) * -1 - 10px);background:url(/bookcase/plank-front.jpg) center / auto 100% repeat-x}.bookcase-crown{height:38px;box-shadow:0 16px 26px #000000b3,inset 0 2px #ffdcaa40,inset 0 -3px #00000059}.bookcase-plinth{height:30px;filter:brightness(.7);box-shadow:inset 0 3px 6px #00000080}@media(max-width:600px){.bookcase-crown,.bookcase-plinth{margin:0 calc(var(--upright) * -1)}}.bookcase-light{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;transition:opacity .6s ease;background:radial-gradient(circle 280px at var(--lx, 50%) var(--ly, 50%),rgba(255,190,120,.12),rgba(255,160,80,.04) 45%,transparent 72%)}.bookcase-light.is-on{opacity:1}.bookcase-empty{padding:80px 20px;text-align:center;font-size:16px;color:var(--white-2)}.bookcase-empty[hidden]{display:none}.shelf-wrap{position:relative;background:linear-gradient(#10090480,#10090480),url(/bookcase/back-a.jpg) var(--bx, 0) 35% / auto 150% repeat-x}.shelf-wrap:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#0009,#0000 34%),radial-gradient(ellipse 40% 85% at var(--glow-x, 50%) 62%,rgba(255,170,90,.16),transparent 70%)}.shelf,.shelf-books,.shelf-plank{pointer-events:none}.shelf-book{pointer-events:auto}.shelf{position:relative;z-index:1;padding-top:var(--headroom);perspective:900px;perspective-origin:50% 50%;transform-style:preserve-3d}.shelf-books{position:relative;display:flex;align-items:flex-end;gap:var(--book-gap);padding:0 var(--shelf-pad);min-height:calc(var(--book-w) * 1.2);transform-style:preserve-3d}.shelf-book{--tpx: calc(var(--t, 16) * var(--s) * 1px);position:relative;flex:0 0 var(--book-w);width:var(--book-w);margin:0;padding:0;border:0;background:none;color:inherit;transform-style:preserve-3d;transform:translateZ(calc(var(--plank-depth) * -.25));transform-origin:100% 100%;-webkit-tap-highlight-color:transparent}.shelf-book:focus-visible{outline:none}.shelf-book-body{position:relative;display:block;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.shelf-book:hover .shelf-book-body,.shelf-book:focus-visible .shelf-book-body{transform:translateZ(42px) translateY(-12px)}.shelf-book-cover,.shelf-book-cloth{display:block;width:100%;border-radius:1px 3px 3px 1px;box-shadow:9px 7px 16px #0000008c;backface-visibility:hidden}.shelf-book-cover{height:auto;aspect-ratio:auto 2 / 3;background:#2a1d14;object-fit:cover}.shelf-book-cloth{aspect-ratio:2 / 3;padding:14px 10px;background:linear-gradient(160deg,#3a2a1e,#24170e);color:#d9c7a3;font-family:var(--font-display);font-size:17px;line-height:1.05;text-align:left;overflow:hidden}.shelf-book:focus-visible .shelf-book-cover,.shelf-book:focus-visible .shelf-book-cloth{outline:2px solid var(--ember);outline-offset:3px}.shelf-book-body:after{content:"";position:absolute;inset:0;pointer-events:none;transform:translateZ(.5px);border-radius:1px 3px 3px 1px;background:linear-gradient(105deg,#ffffff21,#fff0 32%,#0000 68%,#0003)}.shelf-book-spine{position:absolute;top:0;bottom:0;right:100%;width:var(--tpx);transform-origin:100% 50%;transform:rotateY(-90deg);background-color:#2a1d14;background-size:auto 100%;background-position:left center;filter:brightness(.5) saturate(.9);backface-visibility:hidden}.shelf-book-pages{position:absolute;top:3px;bottom:3px;left:100%;width:var(--tpx);transform-origin:0 50%;transform:rotateY(90deg);background:repeating-linear-gradient(90deg,#eadfc6 0 1px,#cdbd9c 1px 2px);filter:brightness(.82);backface-visibility:hidden}.shelf-book-top{position:absolute;left:2px;right:3px;bottom:100%;height:var(--tpx);transform-origin:50% 100%;transform:rotateX(90deg);background:repeating-linear-gradient(to bottom,#eadfc6 0 1px,#cdbd9c 1px 2px);filter:brightness(.9);backface-visibility:hidden}.shelf-bookend{position:relative;flex:none;width:var(--bookend-w);height:calc(var(--book-w) * 1.05);border-radius:2px 2px 0 0;background:linear-gradient(90deg,#1d1d20,#4b4b52 45%,#1a1a1d);box-shadow:7px 5px 12px #0000008c;transform:translateZ(calc(var(--plank-depth) * -.3))}.shelf-wrap:not(.is-near) .shelf,.shelf-wrap:not(.is-near) .shelf-books,.shelf-wrap:not(.is-near) .shelf-book,.shelf-wrap:not(.is-near) .shelf-book-body,.shelf-wrap:not(.is-near) .shelf-plank{transform-style:flat}.shelf-wrap:not(.is-near) .shelf-book,.shelf-wrap:not(.is-near) .shelf-bookend,.shelf-wrap:not(.is-near) .shelf-book-body:after{transform:none}.shelf-wrap:not(.is-near) .shelf-book-cover,.shelf-wrap:not(.is-near) .shelf-book-cloth{backface-visibility:visible}.shelf-wrap:not(.is-near) .shelf-book-spine,.shelf-wrap:not(.is-near) .shelf-book-pages,.shelf-wrap:not(.is-near) .shelf-book-top,.shelf-wrap:not(.is-near) .plank-top,.shelf-wrap:not(.is-near) .plank-under{display:none}.shelf-plank{position:relative;z-index:2;height:var(--plank-h);transform-style:preserve-3d}.plank-front{position:absolute;inset:0;background:url(/bookcase/plank-front.jpg) center / auto 100% repeat-x;box-shadow:inset 0 1px #ffdcaa47,inset 0 -2px #00000059,0 14px 22px #0000008c}.plank-top{position:absolute;left:0;right:0;bottom:100%;height:var(--plank-depth);transform-origin:50% 100%;transform:rotateX(90deg);background:linear-gradient(to top,#0000,#00000080),url(/bookcase/plank-top.jpg) center / 100% 100% no-repeat;backface-visibility:hidden}.plank-under{position:absolute;left:0;right:0;top:100%;height:var(--plank-depth);transform-origin:50% 0;transform:rotateX(-90deg);background:linear-gradient(to bottom,#2c1b0f,#120b06);backface-visibility:hidden}.shelf-plate{position:absolute;left:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px;margin:0;padding:2px 10px;border-radius:2px;white-space:nowrap;font-family:var(--font-mono);font-size:10px;font-weight:500;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:#2b1a0a;background:linear-gradient(180deg,#ecd096,#bd8f48 55%,#8e6328);box-shadow:inset 0 1px #ffffff8c,0 2px 4px #0009}.shelf-plate:before,.shelf-plate:after{content:"";width:4px;height:4px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff9,#5a3b14 70%)}.shelf-plate-count{opacity:.8}@media(max-width:600px){.shelf-plate{font-size:9px;padding:1px 8px;letter-spacing:.14em}}.shelf-index{display:none}@media(max-width:1099px){.shelf-index{position:sticky;top:0;z-index:101;display:flex;gap:8px;margin:0 -40px 14px;padding:12px 40px;overflow-x:auto;background:#080809f2;scrollbar-width:none}.shelf-index[hidden]{display:none}.shelf-index::-webkit-scrollbar{display:none}.shelf-chip{flex:none;padding:8px 14px;border:0;border-radius:999px;background:#f2ede80f;color:var(--white-2);font-family:var(--font-condensed);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:color .3s ease,background .3s ease}.shelf-chip.is-active{color:var(--black);background:var(--ember)}}@media(max-width:600px){.bookcase-tools{flex-direction:column;align-items:stretch;padding:0 16px}.shelf-index{margin:0 0 12px;padding:10px 16px}}.bookcase-ladder{position:fixed;right:40px;top:50%;z-index:90;display:flex;flex-direction:column;padding:16px 0;opacity:0;visibility:hidden;pointer-events:none;transform:translate(24px,-50%);transition:opacity .45s ease,transform .45s ease,visibility 0s linear .45s}.bookcase-ladder.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%);transition-delay:0s}.bookcase-ladder[hidden]{display:none}.bookcase-ladder:before,.bookcase-ladder:after{content:"";position:absolute;top:0;bottom:0;width:5px;border-radius:3px;background:linear-gradient(90deg,#4a2e16,#9a6a38 50%,#5b3a1c);box-shadow:2px 3px 6px #00000080}.bookcase-ladder:before{left:0}.bookcase-ladder:after{right:0}.ladder-rung{position:relative;width:36px;height:32px;padding:0;border:0;background:none}.ladder-rung:before{content:"";position:absolute;left:3px;right:3px;top:50%;height:4px;margin-top:-2px;border-radius:2px;background:linear-gradient(#a2723f,#6b4423);box-shadow:0 2px 3px #00000080;transition:background .3s ease,box-shadow .3s ease}.ladder-rung:hover:before,.ladder-rung:focus-visible:before,.ladder-rung.is-active:before{background:var(--ember);box-shadow:0 0 14px #e0632abf}.ladder-rung:focus-visible{outline:none}.ladder-label{position:absolute;right:calc(100% + 14px);top:50%;padding:4px 8px;white-space:nowrap;font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--white-2);background:#080809d9;opacity:0;transform:translate(6px,-50%);transition:opacity .25s ease,transform .25s ease;pointer-events:none}.ladder-rung:hover .ladder-label,.ladder-rung:focus-visible .ladder-label{opacity:1;transform:translateY(-50%)}.ladder-rung.is-active .ladder-label{color:var(--ember)}@media(max-width:1099px){.bookcase-ladder{display:none}}.book-dialog{width:100%;max-width:min(880px,calc(100vw - 32px));margin:auto;padding:0;border:0;background:transparent;color:var(--white);overflow:visible}.book-dialog,.book-dialog *{cursor:auto}.book-dialog a,.book-dialog button{cursor:pointer}.book-dialog::backdrop{background:#050302cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.book-dialog-panel{position:relative;display:grid;grid-template-columns:260px minmax(0,1fr);align-items:center;gap:44px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;padding:48px;background:linear-gradient(#0e0905ed,#0e0905ed),url(/bookcase/back-a.jpg) center / cover;box-shadow:0 40px 90px #000000b3}.book-dialog-close{position:absolute;top:10px;right:14px;width:40px;height:40px;border:0;background:none;color:var(--white-2);font-size:30px;line-height:1;transition:color .2s ease}.book-dialog-close:hover{color:var(--ember)}.book-dialog-panel:focus{outline:none}.book-dialog-close:focus{outline:none}.book-dialog-close:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.book-dialog-cover{perspective:900px}.book-dialog-cover img{display:block;width:100%;height:auto;border-radius:1px 3px 3px 1px;box-shadow:20px 20px 44px #000000a6}.book-dialog-info{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.book-dialog-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ember)}.book-dialog-title{font-family:var(--font-display);font-size:clamp(30px,4vw,44px);line-height:1;letter-spacing:.02em}.book-dialog-desc{font-size:16px;font-weight:300;line-height:1.7;color:var(--white-2)}.book-dialog-actions:not(:empty){margin-top:10px}.book-dialog-panel.is-coverless{grid-template-columns:minmax(0,1fr)}.book-dialog-panel.is-coverless .book-dialog-cover{display:none}@media(max-width:640px){.book-dialog-panel{grid-template-columns:1fr;justify-items:center;gap:24px;padding:52px 22px 28px;max-height:calc(100dvh - 32px)}.book-dialog-cover{width:150px}.book-dialog-info{align-items:center;text-align:center}}@media(max-width:1024px){.books-hero{grid-template-columns:1fr;gap:56px}.books-feature{justify-self:start}}@media(max-width:600px){.books-hero{gap:40px;padding-bottom:56px}.books-hero .subpage-hero-stats{flex-direction:row;flex-wrap:nowrap;gap:28px;margin-top:28px}.books-feature{gap:24px}.shelf-book.feature-book{--book-w: 140px}.feature-stage{--s: 1.2}.feature-stage:before{width:240px;height:240px}.feature-title{font-size:28px}}@media(prefers-reduced-motion:reduce){.shelf-book-body,.shelf-book.feature-book,.bookcase-ladder,.bookcase-light{transition:none}}
