.books-tabs{display:flex;gap:6px;width:max-content;max-width:100%;margin:28px auto 30px;padding:5px;border:1px solid #bda57664;border-radius:13px;background:#122533}
.books-tabs[hidden],.book-gallery[hidden],.book-shelf[hidden]{display:none!important}
.books-tabs button{border:0;border-radius:9px;background:transparent;color:#92a6aa;padding:11px 25px;font:600 11px 'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.books-tabs button[aria-selected=true]{background:#c4ab7d;color:#10212d;box-shadow:0 3px 12px #0005}
.book-gallery{position:relative;max-width:1250px;margin:auto;padding:12px 10px 42px;overflow:hidden;color:#e8d9b9}
.gallery-viewport{position:relative;height:590px;perspective:2500px;touch-action:pan-y;cursor:grab;overflow:hidden}
.gallery-viewport:active{cursor:grabbing}
.gallery-cylinder{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;transform:translateX(var(--shift-x,0px)) rotateY(var(--angle,0deg));transition:none}
.gallery-book{--book-depth:24px;--book-half:12px;--book-neg-half:-12px;position:absolute;left:-125px;top:-200px;width:250px;height:400px;padding:0;border:0;background:transparent;color:inherit;transform:rotateY(calc(var(--slot)*30deg)) translateZ(500px);transform-style:preserve-3d;backface-visibility:hidden;cursor:pointer}
.gallery-book .book-object{--cover-corner:16px;position:relative;display:block;width:100%;height:100%;transform:rotateY(-8deg);transform-style:preserve-3d;filter:none!important}
.gallery-book .book-object:before{display:none!important}
.gallery-book .book-back{position:absolute;inset:0;display:block;border:1px solid #776c5b;border-radius:5px var(--cover-corner) var(--cover-corner) 5px;background:#172934;transform:translateZ(var(--book-neg-half));backface-visibility:hidden}
.gallery-book .book-pages{position:absolute;top:0;left:100%;display:block;width:var(--book-depth);height:100%;border-radius:var(--cover-corner) 0 0 var(--cover-corner);background:linear-gradient(90deg,#e9dec9,#c5b9a4 55%,#9d917d);transform-origin:0 50%;transform:translateZ(var(--book-half)) rotateY(90deg);backface-visibility:visible}
.gallery-book .book-spine{position:absolute;top:0;left:0;display:block;width:var(--book-depth);height:100%;background:#4c3f31;transform-origin:0 50%;transform:translateZ(var(--book-neg-half)) rotateY(-90deg)}
.gallery-book .book-edge{position:absolute;left:0;display:block;width:100%;height:var(--book-depth);background:#d9cdb8;transform-origin:50% 0;clip-path:inset(0 round 0 var(--cover-corner) var(--cover-corner) 0)}
.gallery-book .book-top{top:0;transform:translateZ(var(--book-neg-half)) rotateX(90deg)}.gallery-book .book-bottom{top:100%;transform:translateZ(var(--book-neg-half)) rotateX(90deg)}
.gallery-book .book-front{position:absolute;inset:0;z-index:2;display:block;overflow:hidden;border:1px solid #b49a675e;border-radius:5px var(--cover-corner) var(--cover-corner) 5px;transform:translateZ(var(--book-half));backface-visibility:hidden;box-shadow:inset 7px 0 10px #08131a99,inset -1px 0 0 #f4e3bc88,0 12px 24px #0009}
.gallery-book .book-front:before{content:"";position:absolute;inset:0 auto 0 0;z-index:2;width:5%;background:linear-gradient(90deg,#10182088,#fff1 70%,transparent);pointer-events:none}
.gallery-book .book-front img{display:block;width:100%;height:100%;border-radius:0 var(--cover-corner) var(--cover-corner) 0;clip-path:inset(0 round 0 var(--cover-corner) var(--cover-corner) 0);object-fit:cover;object-position:center;image-rendering:auto;filter:none!important}
.gallery-book-name{display:none}
.gallery-placeholder{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:1px solid #ad966a;border-radius:5px;background:linear-gradient(130deg,#273c45,#10212c);color:#dcc594}
.gallery-placeholder>span{font-size:50px}.gallery-placeholder small{letter-spacing:.3em}.gallery-placeholder strong{padding:0 12px;font:400 26px/1 'Cormorant Garamond',Georgia,serif}
.gallery-readout{text-align:center;display:flex;flex-direction:column;gap:5px}
.gallery-readout span{color:#bda777;font:600 10px 'DM Sans',sans-serif;letter-spacing:.18em}
.gallery-readout strong{font:400 38px 'Cormorant Garamond',Georgia,serif}
.gallery-controls{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:15px}
.gallery-controls button{width:42px;height:42px;border:1px solid #ae976f;border-radius:10px;background:#203440;color:#e3c994;font-size:20px;cursor:pointer}
.gallery-controls span{font:600 9px 'DM Sans',sans-serif;letter-spacing:.18em;color:#8d9fa2}
@media(max-width:600px){
 .books-tabs{margin:16px auto 18px}.books-tabs button{padding:10px 16px}
 .gallery-viewport{height:390px;perspective:1600px}
 .gallery-book{--book-depth:12px;--book-half:6px;--book-neg-half:-6px;left:-70px;top:-112px;width:140px;height:224px;transform:rotateY(calc(var(--slot)*30deg)) translateZ(460px)}
 .gallery-book .book-object{--cover-corner:11px}
 .gallery-readout strong{font-size:30px}
}
@media(max-width:900px) and (min-width:601px){.gallery-viewport{height:520px;perspective:2200px}.gallery-book{--book-depth:20px;--book-half:10px;--book-neg-half:-10px;left:-110px;top:-176px;width:220px;height:352px;transform:rotateY(calc(var(--slot)*30deg)) translateZ(430px)}}

/* React book-cover-3d component mounts inside each carousel card. */
.gallery-book .book-cover-mount{position:absolute;inset:0;display:block;overflow:visible;transform-style:preserve-3d}
.gallery-book .book-cover-mount>div[class^="book-container-"]{position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d}
.gallery-book .book-cover-mount .book{max-width:100%;max-height:100%;transform-style:preserve-3d}
.gallery-book .book-cover-mount .book-image-face{width:100%;height:100%;box-sizing:border-box;overflow:hidden}
.gallery-book .book-cover-mount .book-image-face img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:center;image-rendering:auto;filter:none!important}
.gallery-book .book-cover-mount .gallery-placeholder{width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;overflow:hidden;border:1px solid #ad966a;background:linear-gradient(130deg,#273c45,#10212c);color:#dcc594;text-align:center}
.gallery-book .book-cover-mount .gallery-placeholder>span{font-size:50px}
.gallery-book .book-cover-mount .gallery-placeholder small{letter-spacing:.3em}
.gallery-book .book-cover-mount .gallery-placeholder strong{padding:0 12px;font:400 26px/1 'Cormorant Garamond',Georgia,serif}
@media(max-width:600px){.gallery-book .book-cover-mount .gallery-placeholder>span{font-size:38px}.gallery-book .book-cover-mount .gallery-placeholder strong{font-size:21px}}
