/* Six faces share one centre; paper sits between both original covers. */
.book-widget{min-width:0;text-align:center}
.book-stage{--book-w:clamp(180px,23vw,286px);--book-h:calc(var(--book-w)*2048/1280);--book-d:calc(var(--book-h)*192/1536);position:relative;perspective:1400px;width:min(100%,calc(var(--book-w) + 100px));height:calc(var(--book-h) + 44px);display:grid;place-items:center;margin:0 auto;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;outline-offset:4px}
.book-stage.is-ready{cursor:grab}.book-stage.is-dragging{cursor:grabbing}.book-stage:focus-visible{outline:2px solid #f0d29a;border-radius:8px}
.book{position:relative;width:var(--book-w);height:var(--book-h);transform-style:preserve-3d;transform:rotateX(var(--book-pitch,-8deg)) rotateY(var(--book-yaw,22deg));transition:transform .4s cubic-bezier(.2,.7,.2,1);will-change:transform}.is-dragging .book{transition:none}
.book-face{position:absolute;box-sizing:border-box;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#071025}
.book-front,.book-back{inset:0;overflow:hidden;border-radius:1px}.book-front{transform:translateZ(calc(var(--book-d)/2))}.book-back{transform:rotateY(180deg) translateZ(calc(var(--book-d)/2))}
.book-front img,.book-back img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;-webkit-user-drag:none}
.book-front::after,.book-back::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0005,transparent 2.5%,transparent 96.5%,#fff2);box-shadow:inset 0 0 0 .7px #ecd19b50}
.book-spine{left:calc((var(--book-w) - var(--book-d))/2);top:0;width:var(--book-d);height:var(--book-h);transform:rotateY(-90deg) translateZ(calc(var(--book-w)/2));overflow:hidden}
.book-spine img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;max-width:none;-webkit-user-drag:none}
.book-spine::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0005,#ffffff09 24%,#0003 80%,#0007);box-shadow:inset 1px 0 #e6c17d5c,inset -1px 0 #0008;pointer-events:none}
.book-pages-right{left:calc((var(--book-w) - var(--book-d) + 2px)/2);top:1px;width:calc(var(--book-d) - 2px);height:calc(var(--book-h) - 2px);transform:rotateY(90deg) translateZ(calc(var(--book-w)/2 - 1px));background:repeating-linear-gradient(90deg,#dfd5c2 0,#f6eddd .7px,#c9bda8 1px,#f1e5d0 1.4px);box-shadow:inset 0 3px 5px #62513836,inset 0 -3px 5px #62513836}
.book-pages-top,.book-pages-bottom{left:1px;top:calc((var(--book-h) - var(--book-d) + 2px)/2);width:calc(var(--book-w) - 2px);height:calc(var(--book-d) - 2px);background:repeating-linear-gradient(0deg,#e3d8c6 0,#faf2e3 .7px,#c8bda9 1px,#f1e5d0 1.4px);box-shadow:inset 3px 0 5px #57453050}
.book-pages-top{transform:rotateX(90deg) translateZ(calc(var(--book-h)/2 - 1px))}.book-pages-bottom{transform:rotateX(-90deg) translateZ(calc(var(--book-h)/2 - 1px))}
.book-shadow{position:absolute;bottom:4px;left:12%;width:76%;height:22px;border-radius:50%;background:#02091688;filter:blur(13px);pointer-events:none}
.book-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:8px auto 0;max-width:420px}
.book-controls button{font:inherit;min-width:44px;min-height:44px;padding:9px 14px;border:1px solid #d2b57975;border-radius:4px;background:#0a2039e6;color:#f9e8c5;cursor:pointer;transition:background .18s,border-color .18s}.book-controls button:hover{background:#183b57;border-color:#e3c28c}.book-controls button:focus-visible{outline:3px solid #f0d29a;outline-offset:3px}.book-controls button:disabled{opacity:.5;cursor:default}
.book-hint{margin:9px 0 0;font:400 .75rem/1.6 var(--sans,system-ui,sans-serif);color:#d2deeb}.book-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.author-portrait{display:block;width:clamp(180px,22vw,260px);height:auto;aspect-ratio:1;max-width:100%;border-radius:50%;object-fit:cover;object-position:50% 0%;overflow:hidden}
.book-stage.is-flat{height:calc(var(--book-h) + 20px);cursor:default}.book-stage.is-flat .book{transform:none!important}.book-stage.is-flat .book-face:not(.book-front),.book-stage.is-flat .book-shadow{display:none}.book-stage.is-flat+.book-controls{display:none}
@media(max-width:480px){.book-stage{--book-w:clamp(176px,52vw,220px)}.book-controls{gap:6px}.book-controls button{padding:8px 10px;font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.book,.book-controls button{transition:none!important}}
@supports not (transform-style:preserve-3d){.book{transform:none!important}.book-face:not(.book-front){display:none}.book-controls{display:none}}
@media print{.book{transform:none!important;will-change:auto}.book-face:not(.book-front),.book-controls,.book-hint,.book-shadow{display:none}.book-stage{height:var(--book-h)}}

/* Preserve the latest back-cover artwork proportions. */
.book-back img{object-fit:contain;background:#071025}

/* Keep the portrait registered to the original 1024 × 1536 back artwork. */
.book-back-artwork{position:absolute;left:0;top:50%;width:100%;aspect-ratio:2/3;transform:translateY(-50%)}
.book-back .book-back-base{width:100%;height:100%;object-fit:contain}
.book-back .book-back-portrait{position:absolute;left:8.10546875%;top:5.4036458333%;width:27.5390625%;height:24.2838541667%;object-fit:cover;object-position:center;background:#b49b7a}
