/* Physical photographic folios — cream stock, cloth boards and a hinged leaf. */
.physical-spread .spread-stage,.book-object .spread-stage{inset:16% 5% 13%!important;transform:none!important;opacity:1!important;display:flex;align-items:center;justify-content:center}
.folio-scene{width:min(78vw,calc(70svh * 1.48));aspect-ratio:1.48;position:relative;perspective:2200px;isolation:isolate}
.folio-book{width:100%;height:100%;position:relative;transform-style:preserve-3d;--stock:#e9e3d7;--cloth:#c9c1b1}
.folio-board{position:absolute;inset:-4px -8px -10px;background:linear-gradient(95deg,#b6a78f,#d2c6b3 30%,#a7967e 50%,#d6cbb7 70%,#b7a68e);border-radius:2px;box-shadow:0 20px 50px #0009;transform:translateZ(-8px)}
.folio-edge{position:absolute;top:3px;bottom:-7px;width:50%;background:repeating-linear-gradient(0deg,#d8d1c3 0px,#e9e4d9 1px,#beb6a6 2px,#e9e4d9 3px);border-bottom:2px solid #a69780;transform:translateZ(-4px)}
.edge-left{left:-4px;border-radius:0 0 7px 2px}.edge-right{right:-4px;border-radius:0 0 2px 7px}
.folio-paper{position:absolute;top:0;width:50%;height:100%;color:#292722;background:var(--stock);overflow:hidden;transform-style:preserve-3d;backface-visibility:hidden}
.folio-left{left:0;border-radius:2px 3% 2% 2px / 2px 2% 2% 2px;background:linear-gradient(90deg,#dfd8c8 0%,#eee8dc 6%,#eae4d7 87%,#d4cdbf 97%,#aea799 100%)}
.folio-right{left:50%;border-radius:3% 2px 2px 2% / 2% 2px 2px 2%;background:linear-gradient(90deg,#b1a99b 0%,#ded7ca 3%,#ece6da 12%,#eae4d8 96%,#d6cebf 100%)}
.folio-paper:after{content:'';pointer-events:none;position:absolute;inset:0;z-index:3;opacity:.7;background:linear-gradient(90deg,#0000000a,transparent 9%,transparent 86%,#00000012);box-shadow:inset 0 1px 1px #fff7,inset 0 -1px 2px #514b3c44}
.folio-left:after{background:linear-gradient(90deg,#0000000c,transparent 6%,transparent 75%,#fff2 88%,#00000020 98%,#00000038)}
.folio-right:after{background:linear-gradient(90deg,#00000033,#00000013 3%,#ffffff12 12%,transparent 23%,transparent 96%,#0000000d)}
.folio-paper .photo-slot{position:absolute;inset:8% 7% 10%;width:86%;height:82%;display:flex;align-items:center;justify-content:center;translate:none!important}
.folio-paper .photo-slot img{width:100%;height:100%;object-fit:contain}
.folio-imprint{position:absolute;left:7%;right:7%;bottom:4%;display:flex;justify-content:space-between;gap:8px;font:clamp(6px,.6vw,10px) var(--serif);line-height:1.3;color:#534d43}
.folio-imprint span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folio-editorial{position:absolute;inset:10% 10% 11%;display:flex;flex-direction:column;justify-content:center;color:#3e382e}
.folio-editorial small{font-size:clamp(5px,.52vw,9px);letter-spacing:1.4px;position:absolute;left:0;top:0}
.folio-editorial h3{font-family:var(--serif);font-size:clamp(18px,2.4vw,40px);line-height:1.4;font-weight:400;letter-spacing:1px}
.folio-editorial em{font:italic clamp(10px,1.35vw,23px)/1.2 var(--serif);display:block;margin-top:12px;max-width:80%}
.folio-editorial p{font-family:var(--serif);font-size:clamp(7px,.8vw,13px);line-height:1.9;position:absolute;left:0;bottom:0;max-width:85%}
.folio-gutter{position:absolute;left:calc(50% - 6px);top:0;bottom:0;width:12px;pointer-events:none;z-index:4;background:linear-gradient(90deg,transparent,#4c433d33 32%,#4c433d66 48%,#fff2 56%,transparent);border-radius:40%;transform:translateZ(1px)}
.physical-spread .page-heading{font-size:17px}.physical-spread .page-heading em{font-size:13px}.physical-spread .page-caption{font-size:13px}.physical-spread .page-caption p+p{font-size:11px}
.book-object .page-heading{font-size:21px}.object-actions{display:flex;align-items:center;gap:30px;margin-top:13px;font:12px var(--serif)}.object-actions button:disabled{opacity:.4;cursor:default;text-decoration:none}
.object-folio{perspective:2000px}.object-folio .folio-book{transform-origin:50% 75%}.binding-cover{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:0% 50%;transform:rotateY(-180deg);transform-style:preserve-3d;z-index:7}
.jacket-face{position:absolute;inset:-4px -6px -5px 0;backface-visibility:hidden;color:#8a867b;border-radius:1px 4px 4px 1px;overflow:hidden}
.jacket-front{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transform:translateZ(4px);border:1px solid #aaa89c;background-color:#c9c9bd;background-image:repeating-linear-gradient(0deg,#ffffff14 0px,#ffffff14 1px,transparent 1px,transparent 3px),repeating-linear-gradient(90deg,#3d3c3509 0px,#3d3c3509 1px,transparent 1px,transparent 3px);box-shadow:inset 8px 0 12px #0002,inset 0 0 2px #fff9,0 2px 1px #f5f1e4;text-shadow:0 1px 1px #f6f4df,-.5px -.5px 1px #6b6b5a}
.jacket-front strong{font-size:clamp(14px,1.8vw,30px);font-weight:400;letter-spacing:3px}.jacket-front em{font-size:clamp(13px,1.7vw,28px)}.jacket-front small,.jacket-front>span{font-size:clamp(5px,.6vw,10px);letter-spacing:1px;position:absolute;left:10%;right:10%;text-align:center}.jacket-front small{top:12%}.jacket-front>span{bottom:12%}
.jacket-back{transform:rotateY(180deg) translateZ(1px);background:linear-gradient(90deg,#d8cdb9,#eee7d8 12%,#e9e1d3 92%,#bdb3a1);color:#3e382e;box-shadow:inset -10px 0 15px #756a4c22}
.folio-transition{position:fixed;inset:0;background:transparent;z-index:18;pointer-events:none}.turning-scene{position:absolute;perspective:2200px}.turning-base{position:absolute!important;inset:0!important;transform:none!important}.turning-base>.folio-gutter{z-index:4}.stationary-paper{z-index:5}.turning-leaf{position:absolute;top:0;width:50%;height:100%;transform-style:preserve-3d;z-index:8}.turn-forward{left:50%;transform-origin:left center}.turn-backward{left:0;transform-origin:right center}.leaf-face{position:absolute;inset:0;backface-visibility:hidden;transform-style:preserve-3d;box-shadow:10px 0 30px #0003}.leaf-front{transform:translateZ(.6px)}.leaf-back{transform:rotateY(180deg) translateZ(.6px)}.leaf-face>.folio-paper{left:0!important;top:0!important;width:100%!important;height:100%!important;border-radius:1px}.leaf-face:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0003,transparent 18%,#fff1 60%,#0001)}.turn-backward .leaf-face:after{transform:scaleX(-1)}
body.is-turning .physical-spread .spread-stage{visibility:hidden}body.is-turning .book-tools,body.is-turning .page-controls{transition:color .3s}
@media(max-width:900px){.folio-scene{width:min(88vw,calc(65svh * 1.48))}.folio-editorial h3{font-size:clamp(16px,3vw,30px)}.folio-editorial em{font-size:clamp(10px,1.7vw,18px)}}
@media(max-width:600px){.physical-spread .spread-stage,.book-object .spread-stage{inset:22% 4% 23%!important}.folio-scene{width:90vw}.folio-board{inset:-2px -4px -6px}.folio-edge{bottom:-4px}.folio-editorial small{font-size:4px;letter-spacing:.3px}.folio-editorial h3{font-size:17px;letter-spacing:0}.folio-editorial em{font-size:10px;margin-top:8px}.folio-editorial p{font-size:6px;line-height:1.6}.folio-imprint{font-size:5px}.folio-gutter{width:7px;left:calc(50% - 3.5px)}.physical-spread .page-heading{font-size:18px}.physical-spread .page-heading em{font-size:12px}.physical-spread .page-caption{font-size:12px}.physical-spread .page-caption p+p{font-size:10px}.object-actions{gap:20px;font-size:11px;flex-wrap:wrap}.jacket-front{gap:10px}.jacket-front strong{font-size:14px;letter-spacing:1px}.jacket-front em{font-size:14px}.jacket-front small,.jacket-front>span{font-size:4px;letter-spacing:.4px}.jacket-face{inset:-2px -3px -3px 0}.book-object .page-caption{max-width:95%}}
@media(prefers-reduced-motion:reduce){.folio-book,.binding-cover,.turning-leaf{animation:none!important}.binding-cover{transform:rotateY(-180deg)!important}.physical-spread .spread-stage,.book-object .spread-stage{transform:none!important;opacity:1!important}}

/* Slightly bowed head and tail edges echo a paper signature rather than a flat card. */
.folio-left{clip-path:polygon(0% 2%,15% 2%,30% 1.8%,45% 1.1%,60% .2%,72% 0%,84% .2%,92% .8%,98% 1.6%,100% 2.5%,100% 98%,96% 99%,88% 99.7%,76% 100%,60% 99.8%,40% 99%,20% 98.5%,0% 98.5%)}
.folio-right{clip-path:polygon(0% 2.5%,5% 1.7%,14% 1.6%,30% 1.8%,50% 2%,75% 2.1%,100% 2%,100% 98.5%,80% 98.5%,60% 98.6%,40% 98.7%,20% 99%,7% 99.3%,0% 98%)}
.leaf-face>.folio-paper{clip-path:none}
/* Portraits use a larger right-hand plate, as in the supplied open-book reference. */
.folio-right.has-portrait .photo-slot{inset:2.5% 2% 5.5%;width:96%;height:92%}
.folio-right.has-portrait .folio-imprint{bottom:1.8%;left:3%;right:3%}

/* Equal print areas preserve visual size when pairing equal-size photographs. */
.balanced-spread .folio-paper .photo-slot{inset:8% 7% 10%;width:86%;height:82%}
.balanced-spread .folio-paper .folio-imprint{bottom:4%;left:7%;right:7%}
