.hb-library{font-family:Georgia,serif;max-width:1150px;margin:auto}.hb-library>h2{text-align:center}.hb-library>p{text-align:center}.hb-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;margin:28px 0}.hb-item{text-align:center}.hb-cover{height:250px;max-width:190px;margin:0 auto 12px;background:linear-gradient(95deg,#28180f 0 8%,#74482d 10%,#4d2e20 90%,#29170f);border:7px double #b69861;box-shadow:8px 9px 13px #0005;color:#ead6aa;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px;gap:20px;text-shadow:0 1px 2px #000;font-size:19px}.hb-cover small{font-size:9px;letter-spacing:2px}.hb-ornament{font-size:38px}.hb-item h3{font-size:17px;margin:12px 0}.hb-expand{background:#65452e!important;color:white!important;border:0!important;border-radius:6px;padding:12px 17px;cursor:pointer;font:600 15px Arial,sans-serif}.hb-expand:hover{background:#86603c!important}.hb-count{font-size:12px;color:#666}.hb-modal{display:none;position:fixed;inset:0;z-index:999999;background:#170e08ed;padding:16px;overflow:auto}.hb-modal.hb-open{display:flex;align-items:center;justify-content:center}.hb-no-scroll{overflow:hidden}.hb-modal-inner{width:min(1200px,100%);color:#f4e5c7}.hb-modal header,.hb-modal footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px}.hb-modal h2{color:#f4e5c7;font-size:24px;margin:0}.hb-modal button{background:#e7d3a5;color:#24170c;border:0;border-radius:5px;padding:11px;cursor:pointer;font-weight:700}.hb-modal button:disabled{opacity:.4;cursor:not-allowed}.hb-book{display:grid;grid-template-columns:1fr 1fr;min-height:55vh;background:#503522;border:12px solid #53311e;box-shadow:0 14px 35px #0009;border-radius:10px;perspective:1200px}.hb-page{min-width:0;background:radial-gradient(ellipse at center,#f8e7bc,#dfc18b);padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 35px #805a3350;transition:transform .3s}.hb-left{border-right:3px solid #795b38}.hb-page img{max-width:100%;max-height:48vh;object-fit:contain;box-shadow:0 2px 12px #0004}.hb-page p{text-align:center;color:#4a3020;font-size:15px}.hb-empty{color:#65472d;text-align:center;font-size:22px}.hb-help{text-align:center;color:#e8d9bd;font-size:13px}@media(max-width:750px){.hb-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.hb-cover{height:200px;font-size:15px}.hb-modal{padding:5px}.hb-modal h2{font-size:17px}.hb-modal header{flex-wrap:wrap}.hb-book{min-height:55vh;border-width:6px}.hb-page{padding:8px}.hb-page img{max-height:40vh}.hb-page p{font-size:11px}.hb-modal footer button{font-size:11px;padding:8px}}

.hb-pdf-canvas{display:block;max-width:100%;max-height:55vh;width:auto;height:auto;object-fit:contain;box-shadow:0 2px 12px #0004}

/* v1.3 antique book treatment and physical page turning */
.hb-library{background:linear-gradient(140deg,#26170f,#4b2e1b 45%,#24150d);padding:30px 20px;border-radius:12px;color:#f0dbb2}
.hb-library>h2,.hb-library>p{color:#f3dfb8}
.hb-cover{position:relative;overflow:hidden;border:8px ridge #a97834;border-radius:5px 13px 13px 5px;background:linear-gradient(90deg,#1c0f09 0%,#683b20 8%,#30190f 16%,#64341d 94%,#25130c);box-shadow:inset 0 0 0 3px #ba8b49,inset 0 0 0 9px #39200f,7px 9px 0 #c2a274,12px 15px 18px #0009}
.hb-cover-preview{position:absolute;inset:24% 12% 13% 18%;border:3px solid #b58c4c;overflow:hidden;background:#d7bb88;box-shadow:0 0 0 4px #3b2111}
.hb-cover-preview img,.hb-cover-preview canvas{width:100%;height:100%;object-fit:contain;display:block}
.hb-cover-title{position:absolute;top:8%;left:12%;right:9%;font-size:clamp(12px,1.4vw,17px);line-height:1.15;background:#29180edc;padding:6px 3px;border:1px solid #b68b48}
.hb-cover .hb-ornament{display:none}
.hb-item .hb-count{font:700 15px Georgia,serif;color:#f1d9a9;margin:8px 0 12px}
.hb-expand{background:linear-gradient(#75411e,#4b1f12)!important;border:1px solid #d5a455!important;box-shadow:0 3px 6px #0007}
.hb-modal{background:radial-gradient(ellipse at center,#51331d 0%,#160c07 85%)}
.hb-book{position:relative;isolation:isolate;border:15px ridge #653b20;border-radius:15px;background:#3d2011;box-shadow:0 22px 45px #000b, inset 0 0 0 4px #ae8345;transform-style:preserve-3d;perspective:1800px}
.hb-book:before{content:'';position:absolute;left:49.4%;top:0;bottom:0;width:1.2%;z-index:3;background:linear-gradient(90deg,#6b3b20,#251207,#9c7044);pointer-events:none}
.hb-page{background:radial-gradient(ellipse at 40% 35%,#f7e8bf,#e2c894 75%,#b58b55);box-shadow:inset 0 0 42px #6e401e55,inset 0 0 7px #70411e99;border:1px solid #9c7547}
.hb-page img,.hb-pdf-canvas{filter:sepia(.12);max-height:55vh}
.hb-book.hb-unfold{animation:hbOpen .75s ease-out both}
@keyframes hbOpen{from{transform:perspective(1300px) rotateY(-17deg) scale(.87);opacity:.3}to{transform:perspective(1300px) rotateY(0) scale(1);opacity:1}}
.hb-turn-sheet{display:none;position:absolute;left:50%;top:0;width:50%;height:100%;z-index:6;transform-origin:left center;transform-style:preserve-3d;backface-visibility:visible;background:#e9d3a3;box-shadow:0 8px 30px #0008;pointer-events:none;overflow:hidden}
.hb-turn-sheet.hb-turning{display:block;animation:hbTurn .62s cubic-bezier(.35,.05,.3,1) forwards}
.hb-turn-sheet.hb-reverse{left:0;transform-origin:right center;animation-name:hbTurnBack}
.hb-sheet-content{width:100%;height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(#f8e7bf,#d7b981);overflow:hidden}
.hb-sheet-content img,.hb-sheet-content canvas{max-width:100%;max-height:100%;object-fit:contain}
@keyframes hbTurn{0%{transform:rotateY(0deg)}50%{transform:rotateY(-90deg);box-shadow:0 15px 55px #000b}100%{transform:rotateY(-179deg)}}
@keyframes hbTurnBack{0%{transform:rotateY(0deg)}50%{transform:rotateY(90deg)}100%{transform:rotateY(179deg)}}
@media(prefers-reduced-motion:reduce){.hb-book.hb-unfold,.hb-turn-sheet.hb-turning{animation:none}}
@media(max-width:750px){.hb-library{padding:16px 9px}.hb-cover{height:195px}.hb-cover-title{font-size:12px}.hb-book{border-width:6px}.hb-sheet-content{padding:5px}}

/* v1.4: clean covers and antique open-book viewer */
.hb-cover-title{display:none!important}
.hb-cover-preview{inset:12% 10% 10% 16%;border:2px solid #b58c4c}
.hb-modal{background:radial-gradient(ellipse at center,#3c2618,#140b06 90%)}
.hb-book{border:15px ridge #6a3b1e;box-shadow:0 22px 45px #000b,inset 0 0 0 4px #ae8345}
.hb-page{background:radial-gradient(ellipse at 45% 36%,#efdfb9,#d6b681 72%,#a87946);box-shadow:inset 0 0 45px #6e401e66,inset 0 0 10px #70411e99}
.hb-pdf-canvas{box-shadow:none;background:transparent;filter:none}
.hb-modal button{background:linear-gradient(#f4dda8,#cda46c);border:1px solid #a47a42;color:#2b190c;font-family:Georgia,serif}
.hb-expand{font-family:Georgia,serif!important}
@media(max-width:750px){.hb-book{border-width:6px}}

/* v1.5 accessible in-book zoom controls. Keep the book frame fixed. */
.hb-zoom-toolbar{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px auto 12px;color:#f4dfb9;font:700 16px Georgia,serif}
.hb-zoom-toolbar button{min-width:42px;min-height:38px;border-radius:5px;cursor:pointer;padding:5px 12px}
.hb-zoom-value{min-width:55px;text-align:center;font-variant-numeric:tabular-nums}
.hb-page{overflow:hidden;touch-action:pan-x pan-y}
.hb-page.hb-zoomed{cursor:grab;touch-action:none}
.hb-page.hb-zoomed:active{cursor:grabbing}
.hb-page > img,.hb-page > canvas,.hb-page > p{transform:translate(var(--hb-pan-x,0px),var(--hb-pan-y,0px)) scale(var(--hb-zoom,1));transform-origin:center center;will-change:transform}
.hb-page > img,.hb-page > canvas{user-select:none;-webkit-user-drag:none}
