.books-head{text-align:center;margin-bottom:2.5rem}.books-title{font-family:var(--font-display);letter-spacing:.3em;text-indent:.3em;margin:0;font-size:clamp(2.2rem,7vw,4rem)}.books-head .book-diamond{color:var(--gold);margin-top:.5rem;font-size:.7rem}.shelf-wrap{max-width:960px;margin:0 auto;position:relative}:root{--wood-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='260'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.016 0.55' numOctaves='4' seed='12' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.15 0 0 0 0 0.09 0 0 0 0 0.045 0.6 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");--wood-grain-fine:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='120'%3E%3Cfilter id='wf'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.8' numOctaves='3' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.12 0 0 0 0 0.07 0 0 0 0 0.035 0.7 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23wf)'/%3E%3C/svg%3E")}.shelf-cabinet{aspect-ratio:1536/375;filter:drop-shadow(0 40px 70px #0009);background:url(/images/shelf.png) 50%/100% 100% no-repeat;width:100%;position:relative}.shelf-inner{justify-content:center;align-items:stretch;gap:6px;display:flex;position:absolute;inset:14% 4% 9%}.genre-group{cursor:pointer;background:0 0;border:none;align-items:stretch;gap:3px;height:100%;padding:0;display:flex;position:relative}.book-row{align-items:stretch;gap:3px;height:100%;display:flex}.book-spine{isolation:isolate;border-radius:5px 5px 2px 2px;justify-content:center;align-items:center;width:clamp(50px,6.2vw,90px);height:100%;transition:box-shadow .3s,transform .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 18px #00000080}.spine-img{object-fit:cover;object-position:center;z-index:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.book-downlight{z-index:3;pointer-events:none;opacity:0;background:radial-gradient(at 50% 0,#ffe09680,#ffe09600 70%);width:60%;height:44px;transition:opacity .3s;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.genre-group.is-lit .book-downlight{opacity:1}.spine-title{z-index:1;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;text-align:center;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;background:linear-gradient(#f2dd9e 0%,#cda94e 55%,#9d7c2c 100%);color:#0000;filter:drop-shadow(0 1px 1px #0009);-webkit-background-clip:text;background-clip:text;font-size:clamp(.42rem,.58vw,.54rem);line-height:1.45;position:absolute;top:53%;left:16%;right:16%;transform:translateY(-50%)}.genre-group.is-lit:after{content:"";z-index:4;pointer-events:none;border:1px solid #ffd880e6;border-radius:5px;position:absolute;inset:-1px 0;box-shadow:0 0 16px #ffc65c66,inset 0 0 12px #ffc65c1f}.book-modal-overlay{z-index:60;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#050403d1;place-items:center;padding:1.5rem;animation:.2s fade;display:grid;position:fixed;inset:0;overflow-y:auto}.book-modal{border:1px solid var(--gold-soft);background:radial-gradient(120% 80% at 50% 0,#c9a2271a,#0000 60%),linear-gradient(#15100a,#0b0806);border-radius:18px;width:min(980px,96vw);max-height:90vh;margin:auto;padding:3rem clamp(1.25rem,4vw,3.2rem) 2.8rem;position:relative;overflow-y:auto;box-shadow:0 40px 120px #000c,inset 0 0 0 1px #c9a2272e,inset 0 0 0 6px #0a0806e6,inset 0 0 0 7px #c9a22733}.book-modal-head{text-align:center;margin-bottom:2.2rem}.book-modal-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;margin:0;font-size:clamp(2.4rem,7vw,4rem);line-height:1}.book-modal-sub{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.28em;color:var(--ink-dim);margin:.6rem 0 .4rem;font-size:.85rem;font-weight:500}.book-modal-divider{color:var(--gold);justify-content:center;align-items:center;gap:.7rem;margin:.6rem 0 1rem;font-size:.7rem;display:flex}.book-modal-divider span{background:linear-gradient(90deg, transparent, var(--gold-soft), transparent);width:clamp(50px,12vw,130px);height:1px}.book-modal-blurb{font-family:var(--font-serif);color:var(--ink-dim);max-width:62ch;margin:.4rem auto 0;font-size:1.15rem;font-style:italic}.book-detail{grid-template-columns:minmax(220px,40%) 1fr;align-items:center;gap:clamp(1.5rem,4vw,3.5rem);display:grid}.book-detail-covers{perspective:2400px;justify-content:center;align-items:center;padding:.5rem 0;display:flex}.book-detail-covers.is-series .book3d{width:52%;margin-right:-29%}.book-detail-covers.is-series .book3d:last-child{margin-right:0}.book-detail-info,.book-detail-info .book-modal-title,.book-detail-info .book-modal-sub{text-align:left}.book-detail-info .book-modal-divider{justify-content:flex-start}.book-detail-info .book-modal-divider span:last-child{display:none}.book-status{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.2em;color:var(--gold);margin:0 0 .9rem;font-size:.66rem;font-weight:500}.book-summary{font-family:var(--font-serif);color:var(--ink-dim);margin:0;font-size:1.12rem;line-height:1.7}.book-actions{flex-wrap:wrap;gap:.8rem;margin-top:1.6rem;display:flex}.book3d{aspect-ratio:1584/2376;filter:drop-shadow(24px 26px 30px #0009);width:min(100%,300px);transition:transform .5s cubic-bezier(.22,1,.36,1);display:block;position:relative;transform:perspective(1600px)rotateY(-18deg)}.book3d:hover{transform:perspective(1600px)rotateY(-8deg)translateY(-6px)}.book-cover{border-radius:2px 6px 6px 2px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000080}.book-cover img{object-fit:cover;width:100%;height:100%}.book-cover:before{content:"";z-index:2;background:linear-gradient(90deg,#0009 0%,#00000047 35%,#0000 70%,#ffffff0f 100%);width:8%;position:absolute;top:0;bottom:0;left:0}.book-cover:after{content:"";z-index:2;background:linear-gradient(90deg,#ffffff2e,#00000073);width:3px;position:absolute;top:0;bottom:0;right:0}.book-cover-placeholder{text-align:center;background:repeating-linear-gradient(45deg,#c9a2270d 0 12px,#0000 12px 24px),linear-gradient(#241a10,#120c07);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;height:100%;padding:1.5rem;display:flex}.book-cover-placeholder span{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--gold-bright);font-size:1.1rem}.book-cover-placeholder small{color:var(--muted);font-family:var(--font-serif)}.book-card-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);margin:0 0 .2rem;font-size:.95rem}.book-card-sub{color:var(--gold);font-size:.72rem;font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .7rem;font-weight:500}.book-card-desc{font-family:var(--font-serif);color:var(--ink-dim);margin:0 0 1rem;font-size:1rem;line-height:1.55}@media (max-width:760px){.shelf-cabinet{aspect-ratio:auto;filter:none;background:0 0}.shelf-inner{flex-direction:column;align-items:stretch;gap:1.4rem;width:100%;position:static;inset:auto}.genre-group{border:9px solid #0000;border-image:var(--wood-grain) 30 stretch;background:radial-gradient(130% 60% at 50% 0,#ffdc9617,#0000 55%),linear-gradient(#150f08,#090604);border-radius:7px;justify-content:center;gap:8px;height:auto;padding:1.5rem 1rem 1.3rem;box-shadow:inset 0 4px 24px #000000d9,inset 0 0 0 1px #c9a2272e,0 18px 34px #0000008c}.book-row{justify-content:center;height:auto}.book-spine{width:clamp(60px,22vw,86px);height:clamp(190px,54vw,250px)}.genre-group.is-lit:after{border-radius:4px;inset:4px}.book-modal{border-radius:14px;width:94vw;max-height:88vh;padding:2.2rem 1.2rem 1.8rem;overflow-y:auto}.book-detail{grid-template-columns:1fr;gap:1.6rem}.book-detail-covers{padding:0}.book-detail-covers .book3d{width:min(58%,190px)}.book-detail-covers.is-series .book3d{width:46%;margin-right:-18%}.book-modal-title{font-size:clamp(1.9rem,10vw,2.6rem)}.book-modal-sub{letter-spacing:.2em;font-size:.7rem}.book-summary{max-height:none;font-size:1.02rem}.book3d:hover{transform:perspective(1400px)rotateY(-18deg)}}
