/* One upright book; a restrained physical shell and static studio lighting. */
.signature-stage{--book-admin-offset:0px;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,sans-serif;background:#490F17;color:#433f38}
.signature-stage #main{min-height:calc(100svh - var(--book-admin-offset))}.signature-stage .skip-link{background:#f7f3eb;color:#433f38}
/* Fit the CLOSED cover to both axes from first paint. Small viewport units
 * keep the book stable while mobile toolbars retract; safe insets and the
 * existing admin bar are reserved before choosing the largest safe rectangle.
 * Symmetric reservations keep the object centered even with an asymmetric notch. */
.signature-stage.admin-bar{--book-admin-offset:32px}
@media(max-width:782px){.signature-stage.admin-bar{--book-admin-offset:46px}}
.book-scene{--book-viewport:100vh;--book-space-y:clamp(30px,5vh,72px);--book-space-x:clamp(24px,4vw,80px);--book-safe-x:max(env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));--book-safe-y:max(env(safe-area-inset-top,0px),env(safe-area-inset-bottom,0px));--book-gutter-x:calc(var(--book-space-x) + var(--book-safe-x));--book-gutter-y:calc(var(--book-space-y) + var(--book-safe-y));--book-fit-width:calc(100vw - 2 * var(--book-gutter-x));--book-fit-height:calc(var(--book-viewport) - var(--book-admin-offset) - 2 * var(--book-gutter-y));position:relative;min-height:100svh;display:grid;place-items:center;padding:var(--book-gutter-y) var(--book-gutter-x);overflow:hidden;isolation:isolate;background:#490F17 radial-gradient(ellipse at 42% 30%,#621923 0%,#490F17 35%,#3B0A12 71%,#30060C 100%)}
@supports(height:100svh){.book-scene{--book-viewport:100svh;--book-space-y:clamp(30px,5svh,72px)}}
@supports(height:100dvh){.book-scene{--book-stage-viewport:100dvh}}
.book-scene:not([data-open]):not(:has(.title-spread:target)){min-height:calc(var(--book-stage-viewport,var(--book-viewport)) - var(--book-admin-offset))}
.book-open{--book-ratio:.666666667;position:relative;display:block;width:max(1px,min(var(--book-fit-width),calc(var(--book-fit-height) * var(--book-ratio))));aspect-ratio:var(--book-ratio);color:inherit;text-decoration:none;perspective:1600px;touch-action:manipulation;outline-offset:18px;isolation:isolate}
.book-open:has([data-open-book]:focus-visible){outline:2px solid #eee6d4;border-radius:5px}
.book-front:focus-visible{outline:none}
/* Contact and ambient shadows belong to the whole object, not the artwork. */
.book-open::before,.book-open::after{content:"";position:absolute;pointer-events:none;border-radius:50%}
.book-open::before{z-index:1;left:1%;right:-1%;bottom:-6px;height:10px;background:#101a12a3;filter:blur(4px)}
.book-open::after{z-index:0;left:-15%;right:-19%;bottom:-27px;height:42px;background:radial-gradient(ellipse,#14201680 0%,#15201640 40%,transparent 72%);filter:blur(10px)}
.book-volume{position:absolute;z-index:2;inset:0;transform:none;filter:drop-shadow(9px 14px 15px #101a1440)}
.book-page-edges{position:absolute;inset:3px -3px -2px 4px;border:1px solid #b9b29f;border-radius:1px 3px 3px 1px;background:linear-gradient(90deg,#c3baa8,#e0d7c5 85%,#ccc2ae);box-shadow:inset -1px 0 1px #f5edda70,0 1px 1px #18201955}
.book-page-edges::after{content:"";position:absolute;inset:1px 0 0 auto;width:3px;opacity:.3;background:repeating-linear-gradient(0deg,transparent 0 2px,#8f8771 2px 2.5px,transparent 2.5px 4px)}
.book-spine{position:absolute;top:1px;bottom:-1px;left:-3px;width:8px;border-radius:3px 0 0 3px;background:linear-gradient(90deg,#b8b2a2,#e9e3d5 38%,#cdc6b7);box-shadow:inset 1px 0 1px #fff6}
.book-front{position:absolute;inset:0;border:0;border-radius:2px 3px 3px 2px;transform:none;transform-origin:0 center;backface-visibility:hidden;transition:transform .62s cubic-bezier(.4,0,.15,1);background:#e9e4d9;box-shadow:0 0 0 .5px #c7c0b0,1px 2px 3px #131b1450;overflow:hidden}
.book-front::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,#fff6 0,transparent 12%,transparent 83%,#342d2010 100%);box-shadow:inset 1px 1px 1px #fff5,inset -1px -1px 1px #665a4520}
.cover-artwork{position:absolute;inset:0;overflow:hidden}.cover-artwork picture,.cover-artwork img{display:block;width:100%;height:100%;margin:0;object-fit:contain}
/* Bundled photographic fallback: preserve its existing non-destructive exterior mask. */
.cover-artwork-default{inset:-1.6% -3.8% -2.1%}.cover-artwork-default img{clip-path:inset(1.5% 3.5% 2% 3.5% round 1%)}
/* The currently approved media file already includes an exterior photo backdrop.
 * Fit its observed book bounds (44,32)-(984,1460) without changing source pixels
 * or stretching the image. The renderer marks only the byte-verified artwork;
 * responsive format/URL changes do not alter framing or crop other uploads.
 * No option/attachment ID, counter or automatic cover selection is changed here. */
.book-open:has(.cover-artwork-approved-photo){--book-ratio:.6582633053}
.cover-artwork-approved-photo{inset:auto;left:-4.680851%;top:-2.240896%;width:108.93617%;height:107.563025%}
.book-inner-paper{position:absolute;inset:3px 0 0 3px;border-radius:3px;background:#f7f0df;box-shadow:inset 2px 0 7px #74634a25}
/* Front matter uses the TOC envelope; paragraphs are never clipped or scaled. */
.title-volume{display:none;width:100%;--serif:"Source Serif 4",Georgia,serif;--sans:"Be Vietnam Pro",system-ui,sans-serif}
.title-spread{color:#51483c;text-decoration:none;touch-action:manipulation;cursor:pointer}
.title-spread:hover{color:#51483c}
.title-spread:focus-visible{outline:1px solid #82715a;outline-offset:7px}
.introduction-volume{padding:24px 24px 40px;place-items:center}
.introduction-book{--introduction-inset:clamp(24px,3.2vw,48px);--introduction-height:min(756px,calc(100svh - 64px));width:100%;grid-template-columns:minmax(0,1fr);min-height:var(--introduction-height)}
.introduction-book>.book-running-head{position:absolute;z-index:3;top:12px;left:var(--introduction-inset);right:var(--introduction-inset);width:auto;margin:0;padding:0;border:0}
.introduction-spread{--introduction-left:none;--introduction-right:none;grid-area:1/1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));visibility:hidden;min-height:calc(var(--introduction-height) - 2px)}
.introduction-spread .paper-page{min-height:0;padding:64px var(--introduction-inset) 42px;justify-content:flex-start;text-align:left}
.introduction-book[data-fitted] .introduction-spread{height:calc(var(--introduction-height) - 2px)}
.introduction-opener{margin-bottom:24px;padding-top:8px;flex-shrink:0}
.introduction-written{margin-top:12px;font:400 12px/1.6 var(--serif);color:#796b58}
.introduction-opener+.introduction-copy{margin-top:0}
.introduction-copy{font:400 18px/1.7 var(--serif);font-optical-sizing:auto;overflow-wrap:break-word;flex-shrink:0}
.introduction-copy p{margin:0;orphans:3;widows:3}
.introduction-copy p+p{margin-top:.85em}
@media(min-width:1101px){.introduction-copy p+p{margin-top:.9em}}
.introduction-endnote{margin-top:auto;padding-top:30px;font:400 13.5px/1.65 var(--serif);font-style:italic;color:#756753;flex-shrink:0}
.introduction-endnote p{margin:0}
/* The server-rendered links remain the complete, readable no-JS path. */
.introduction-book:not([data-current]):not(:has(.introduction-spread:target)) #title-page,
.introduction-book:not([data-current]) .introduction-spread:target,
.introduction-book[data-current] .introduction-spread.is-current{visibility:visible;--introduction-left:book-left;--introduction-right:book-right}
.introduction-spread>.paper-left{view-transition-name:var(--introduction-left)}
.introduction-spread>.paper-right{view-transition-name:var(--introduction-right)}
/* Temporary layout probe is inert, off-screen, and removed after a bounded pass. */
.introduction-measure{position:fixed!important;left:-10000px;top:0;visibility:hidden;pointer-events:none;min-height:0!important;display:block!important;view-transition-name:none!important}
.introduction-measure .paper-page{height:calc(var(--introduction-height) - 2px);padding:64px var(--introduction-inset) 42px}
.book-scene:is([data-open],:has(.title-spread:target),:has([data-current])){display:block;padding:0;overflow-x:clip;overflow-y:visible;background:#cfc4b0}
.book-scene:is([data-open],:has(.title-spread:target),:has([data-current])) .title-volume{display:grid}
.book-scene[data-open] .book-open{position:absolute;top:50%;left:50%;translate:-50% -50%;z-index:2;pointer-events:none;animation:alip-cover-away .62s ease forwards}
.book-scene[data-open] .book-front{transform:rotateY(-105deg);pointer-events:none}
/* The native fragment still opens the spread if JavaScript is unavailable. */
.book-scene:not([data-open]):is(:has(.title-spread:target),:has([data-current])) .book-open{display:none}
@keyframes alip-cover-away{0%{opacity:1}65%{opacity:0}100%{opacity:0;visibility:hidden}}
@media(min-width:901px) and (max-width:1100px){.introduction-book{--introduction-inset:24px}}
@media(max-width:900px){.introduction-book{max-width:660px;min-height:0}.introduction-spread{grid-template-columns:minmax(0,1fr);min-height:0;display:none}.introduction-book .introduction-spread.is-current,.introduction-book:not([data-current]):not(:has(.introduction-spread:target)) #title-page,.introduction-book:not([data-current]) .introduction-spread:target{display:grid}.introduction-spread .paper-page{padding:64px var(--introduction-inset) 40px}.introduction-spread .paper-right{padding-top:40px;border-top:1px solid #b5a48355}.introduction-opener+.introduction-copy{margin-top:0}.introduction-spread .introduction-blank{display:none}}
@media(max-width:540px){.introduction-volume{padding:12px 12px 26px}.introduction-book{--introduction-inset:24px}.introduction-book>.book-running-head{top:10px}.introduction-spread .paper-page{padding:58px var(--introduction-inset) 34px}.introduction-spread .paper-right{padding-top:34px}.introduction-copy{font-size:18px;line-height:1.75}.introduction-endnote{font-size:13px}.introduction-opener{padding-top:8px}}
@media print{.introduction-book{display:block}.introduction-book .introduction-spread{visibility:visible;display:grid;height:auto}.introduction-spread .paper-page{break-inside:avoid}}
@media(max-width:540px){.book-open::after{left:-10%;right:-13%;bottom:-22px;height:33px;filter:blur(8px)}}
@media(prefers-reduced-motion:reduce){.book-front{transition:none}.book-scene[data-open] .book-open{display:none}}
.signature-stage .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
