/* One cover turns around the spine. The real left page rides on its inner plane. */
.book-era-mark{display:block;width:68px;height:62px;margin:22px 0 12px;color:currentColor;transform-origin:center;position:relative}
.book-era-mark svg,.book-inside-motif svg{display:block;width:100%;height:100%;shape-rendering:crispEdges}
.book-pick:hover .book-era-mark,.book-pick:focus-visible .book-era-mark{animation:book-mark-glint .85s ease-out both}
.book-pick .physical-book{transform-style:preserve-3d;transition:transform .72s cubic-bezier(.2,.72,.22,1)}
.book-pick .physical-cover{background-image:repeating-linear-gradient(0deg,#fff5cf06 0 1px,#17241c05 1px 2px,transparent 2px 4px),repeating-linear-gradient(90deg,#18221a05 0 1px,transparent 1px 3px);box-shadow:inset 2px 1px 0 #fff6,inset 8px 0 8px #17231c21,inset 11px 0 1px #fff4c429,inset 14px 0 5px #18221d18,2px 3px 3px #22332924;transition:transform .82s cubic-bezier(.2,.64,.24,1),box-shadow .82s cubic-bezier(.2,.64,.24,1)}
.book-pick .page-edges{background:linear-gradient(90deg,#958d7366,transparent 9%,transparent 93%,#a5977155),repeating-linear-gradient(0deg,#f9f3e3 0 1px,#d5ccb7 1px 2px,#eee7d7 2px 4px,#c5b99e 4px 5px);box-shadow:2px 3px 3px #2537222b,10px 17px 19px #26392326}
.book-pick:hover .physical-cover,.book-pick:focus-visible .physical-cover{transform:rotateY(-7deg);box-shadow:inset 2px 1px 0 #fff6,inset 8px 0 8px #17231c21,inset 11px 0 1px #fff4c429,inset 14px 0 5px #18221d18,6px 7px 7px #22332930}
.book-pick[aria-expanded=true] .physical-cover{transform:none}
.book-pick[aria-busy=true]{cursor:progress}
.book-inside-motif{display:block;float:right;width:46px;height:46px;margin:0 0 10px 12px;color:var(--open-cover-color,#647c65);filter:drop-shadow(0 2px 0 #d7cdbd)}
@keyframes book-mark-glint{0%{filter:drop-shadow(0 0 0 transparent);transform:translateY(0)}35%{filter:drop-shadow(0 0 8px #f9e6a177);transform:translateY(-3px) rotate(-3deg)}100%{filter:drop-shadow(0 0 2px #f9e6a122);transform:translateY(0)}}
#book-viewer{width:min(1030px,91vw);max-width:91vw;max-height:87dvh;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;padding:0;margin:auto;perspective:2200px;isolation:isolate}
#book-viewer::backdrop{background:#18271fbe;backdrop-filter:blur(9px);transition:background .24s ease,backdrop-filter .24s ease}
#book-viewer.book-is-closing::backdrop{background:#18271f00;backdrop-filter:blur(0)}
#book-viewer>.close-book{position:absolute;right:-13px;top:-16px;width:38px;height:38px;border:1px solid #bdb49f;box-shadow:0 4px 9px #13241b44;z-index:25;cursor:pointer;background:#fbf5e8;display:grid;place-items:center;padding:0;line-height:1;margin:0}
#book-viewer>.close-book svg{display:block;width:18px;height:18px;flex:none}
.book-volume{position:relative;width:100%;transform-style:preserve-3d;transform-origin:50% 50%;will-change:transform}
.book-fit{display:contents}
.book-mobile-actions{display:none}
#book-viewer .open-book{display:grid;grid-template-columns:1fr 1fr;max-height:81dvh;margin:0;position:relative;z-index:2;overflow:auto;border:1px solid #bab199;border-radius:3px 8px 8px 3px;box-shadow:0 3px 3px #241d131c;background:#faf6e9;transform:none;transform-origin:center;perspective:none;isolation:auto;scrollbar-width:thin;scrollbar-gutter:stable}
.book-volume-shadow{position:absolute;inset:27px -9px -27px -9px;border-radius:18px;background:#0d1d17aa;filter:blur(30px);transform:translateZ(-32px);pointer-events:none;z-index:-2;opacity:.73}
.book-volume-shadow:after{content:'';position:absolute;inset:12px 17px 0;background:#111d13a6;border-radius:40% 40% 12px 12px;filter:blur(8px)}
.book-bottom-board,.book-bottom-board-left{position:absolute;inset:5px -7px -12px 50%;background:linear-gradient(0deg,#17221c29,transparent 8px),var(--open-cover-color);border:1px solid #36271f60;border-radius:3px 10px 10px 3px;box-shadow:inset 0 -1px 0 #fff3,0 3px 1px #172e2824;transform:translateZ(-20px);z-index:-1;pointer-events:none}
.book-bottom-board-left{left:-7px;right:50%;border-radius:10px 3px 3px 10px}
.book-paper-bottom,.book-paper-bottom-left{position:absolute;left:50%;right:-2px;bottom:-8px;height:11px;background:linear-gradient(90deg,#71674955,transparent 10%,transparent 95%,#74613e22),repeating-linear-gradient(0deg,#f9f3e1 0 1px,#c9bea3 1px 2px,#eee5cf 2px 4px,#b9ac8e 4px 5px);border:1px solid #bdb294;border-radius:0 0 4px 3px;transform:translateZ(-8px);z-index:1;pointer-events:none;box-shadow:inset 0 1px 0 #fff7,0 2px 1px #42351b30}
.book-paper-bottom-left{left:-2px;right:50%;background:linear-gradient(90deg,#74613e22,transparent 5%,transparent 90%,#71674955),repeating-linear-gradient(0deg,#f9f3e1 0 1px,#c9bea3 1px 2px,#eee5cf 2px 4px,#b9ac8e 4px 5px);border-radius:0 0 3px 4px}
.book-paper-right,.book-paper-left{position:absolute;right:-5px;top:6px;bottom:-5px;width:8px;background:linear-gradient(0deg,#8e7b5533,transparent 6%,transparent 94%,#fff6),repeating-linear-gradient(90deg,#f4eddc 0 1px,#c5b89f 1px 2px,#e6dcc5 2px 4px);border:1px solid #b6aa90;border-radius:0 3px 4px 0;transform:translateZ(-8px);pointer-events:none;z-index:1}
.book-paper-left{left:-5px;right:auto;border-radius:3px 0 0 4px}
#book-viewer .book-spread-left,#book-viewer .book-spread-right{padding:38px 35px 33px;position:relative;min-width:0}
#book-viewer .book-spread-left{background:radial-gradient(ellipse at 30% 15%,#fffdf244,transparent 65%),repeating-linear-gradient(0deg,#7b684806 0 1px,transparent 1px 4px),linear-gradient(90deg,#e9e0ca 0%,#faf6e9 2%,#faf6e9 84%,#eae4d3 94%,#d2c8af 100%);border-right:1px solid #b8b095;box-shadow:inset 0 1px 0 #fff9,inset 0 -2px 3px #98805a19}
#book-viewer .book-spread-right{background:radial-gradient(ellipse at 75% 15%,#fffdf244,transparent 65%),repeating-linear-gradient(0deg,#7b684806 0 1px,transparent 1px 4px),linear-gradient(90deg,#d8cfb7,#f0eadb 4%,#faf6e9 10%,#faf6e9 98%,#e8dfca);border-left:0;box-shadow:inset 0 1px 0 #fff9,inset 0 -2px 3px #98805a19}
#book-viewer .book-spread-right:before{content:'';position:absolute;inset:0;pointer-events:none;transform-origin:left center;background:linear-gradient(90deg,#36261170,#36261121 55%,transparent);opacity:0;z-index:4}
#book-viewer .book-spread-left:after{content:'';position:absolute;right:0;top:0;bottom:0;width:15px;background:linear-gradient(90deg,transparent,#5142261c);pointer-events:none}
#book-viewer .book-spread-left:before,#book-viewer .book-spread-right:after{position:absolute;bottom:11px;font:11px/1 ui-monospace,monospace;letter-spacing:.12em;color:#93876d;pointer-events:none}
#book-viewer .book-spread-left:before{content:'01';left:35px}
#book-viewer .book-spread-right:after{content:'02';right:35px}
#book-viewer #open-book-title{font-size:clamp(31px,4.5vw,51px);margin:18px 0 20px;line-height:1.05}
#book-viewer #open-book-deck{font-size:21px;line-height:1.45;margin-bottom:24px}
#book-viewer .open-book h4,#book-viewer .book-cover-back h4{margin:22px 0 9px;font-size:17px}
#book-viewer .open-book p,#book-viewer .book-cover-back p{font-size:16px;line-height:1.5}
#book-viewer .open-book .book-actions{margin-top:23px;display:flex;flex-wrap:wrap;gap:13px 18px;align-items:center;z-index:3}
#book-viewer .open-book .book-actions button{padding:13px 17px;font-size:16px;box-shadow:0 3px 0 #183d2360}
#book-viewer .open-book .book-actions button:active{transform:translateY(2px);box-shadow:0 1px 0 #183d2360}
#book-viewer .open-book .book-actions a{font-size:15px}
.book-turning-cover{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;z-index:10;pointer-events:none}
.book-reading-slot{grid-column:1;min-width:0;pointer-events:none}
.book-cover-face{position:absolute;inset:0;backface-visibility:hidden;border:1px solid #3725193b;border-radius:2px 8px 8px 2px;overflow:hidden;transform-style:preserve-3d}
.book-cover-front{display:flex;flex-direction:column;background:repeating-linear-gradient(0deg,#fff5cf08 0 1px,#17241c06 1px 2px,transparent 2px 4px),repeating-linear-gradient(90deg,#18221a06 0 1px,transparent 1px 3px),var(--open-cover-color);padding:38px 35px 35px;transform:translateZ(2px);box-shadow:inset 3px 0 5px #17271d22,inset 11px 0 0 #25332824,inset 13px 0 1px #ffefb739,inset 16px 0 6px #2533281c,4px 4px 5px #20302255;color:#233b2c}
.book-cover-front:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#ffffff1a,transparent 38%,#18231918);box-shadow:inset 1px 1px 0 #fff4,inset -1px -1px 0 #17271e40}
.book-cover-front:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#18271f33,#18271f80);opacity:0}
.book-cover-front .book-number,.book-cover-front strong{ text-shadow:0 1px 0 #fff1,0 -1px 0 #17271c16 }
.book-cover-front strong{font:500 clamp(36px,4.5vw,59px)/1.05 'Clash Display',sans-serif;letter-spacing:-.035em;margin-top:37px;max-width:10ch}
.book-cover-front .book-number{font-size:12px;letter-spacing:.035em}
.book-cover-front .book-era-mark{width:104px;height:104px;margin:30px 0}
.book-cover-front .cover-foot{margin-top:auto;font-size:12px;gap:15px}
.book-cover-front .cover-foot b{font-size:24px}
.book-cover-front strong{max-width:none}
.book-cover-back{background:#f0e8d5;transform:rotateY(180deg) translateZ(2px);border:0;border-radius:8px 2px 2px 8px;box-shadow:inset -13px 0 14px #543c211a}
.book-cover-back:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#5b46233b,transparent 30%,#48351845);pointer-events:none;opacity:0}
.book-endpaper{position:absolute;inset:7px 4px 7px 7px;border:1px solid #cabea561;border-radius:5px 0 0 5px;background:linear-gradient(90deg,#f7efdd 0%,#f0e7d2 88%,#d7cab0 100%),repeating-linear-gradient(0deg,#af987908 0 1px,transparent 1px 4px);box-shadow:inset 0 0 18px #ad987614}
#book-viewer .book-cover-back>.book-spread-left{position:absolute;inset:0;min-height:100%;height:100%;width:100%;border:0;border-right:1px solid #b8b095;border-radius:7px 0 0 7px;overflow:hidden;transform:none;backface-visibility:hidden}
.book-volume.is-opening .book-paper-left,.book-volume.is-opening .book-paper-bottom-left,.book-volume.is-opening .book-bottom-board-left{animation:book-left-materials 4s linear both}
#book-viewer .book-volume.is-opening .open-book{background:transparent;border-color:transparent;box-shadow:none}
.book-volume.is-opening .book-spread-right{grid-column:2;outline:1px solid #b8b095;outline-offset:-1px;border-radius:2px 8px 8px 2px}
.book-volume.is-opening .book-bottom-board,.book-volume.is-opening .book-paper-bottom{left:50%}
.book-volume.is-opening .book-volume-shadow{animation:book-shadow-unfold 4s linear both}
.book-volume.is-opening .book-spread-right:before{animation:book-hinge-shadow 4s linear both}
.book-volume.is-opening .book-cover-front:after{animation:book-cover-shade 4s linear both}
.book-volume.is-opening .book-cover-back:after{animation:book-endpaper-shade 4s linear both}
#book-viewer.book-is-closing .book-volume *,#book-viewer.book-is-closing .book-volume :before,#book-viewer.book-is-closing .book-volume :after{animation-play-state:paused!important}
@keyframes book-shadow-unfold{0%,16%{left:47%;opacity:.46}52%{left:17%;opacity:.66}80%{left:0;opacity:.72}92%,100%{left:-9px;opacity:.73}}
@keyframes book-left-materials{0%,68%{opacity:0}84%{opacity:.65}92%,100%{opacity:1}}
@keyframes book-hinge-shadow{0%,15%{opacity:.75;transform:scaleX(1)}33%{opacity:.55;transform:scaleX(.82)}52%{opacity:.35;transform:scaleX(.4)}68%{opacity:.24;transform:scaleX(.15)}84%{opacity:.12;transform:scaleX(.04)}92%,100%{opacity:0;transform:scaleX(0)}}
@keyframes book-cover-shade{0%,15%{opacity:0}33%{opacity:.22}52%,100%{opacity:.72}}
@keyframes book-endpaper-shade{0%,42%{opacity:.65}58%{opacity:.44}80%{opacity:.13}92%,100%{opacity:0}}
@media(max-width:700px){
 /* A phone gets the whole spread, with its camera pulled back. Never change
    the spine into a centre pivot or stack one page underneath the other. */
 #book-viewer{width:calc(100vw - 32px);max-width:calc(100vw - 32px);max-height:none;perspective:2200px}
 #book-viewer>.close-book{top:-53px;right:0;width:44px;height:44px}
 #book-viewer .book-fit{display:block;position:absolute;top:0;left:0;width:900px;perspective:2200px;transform-style:preserve-3d;transform-origin:0 0}
 #book-viewer .open-book{display:grid;grid-template-columns:1fr 1fr;max-height:none;overflow:visible;scrollbar-gutter:auto}
 #book-viewer .book-spread-left{border-bottom:0}
 #book-viewer .book-spread-left:after{display:block}
 #book-viewer #open-book-title{font-size:43px;margin:18px 0 20px}
 #book-viewer #open-book-deck{font-size:21px}
 .book-cover-front strong{font-size:51px}
 #book-viewer .book-mobile-actions{display:grid;position:absolute;left:0;right:0;grid-template-columns:1fr auto;gap:7px 10px;align-items:center;color:#fbf5e8}
 .book-mobile-actions a,.book-mobile-actions button{min-height:44px;display:flex;align-items:center;justify-content:center;padding:10px 13px;border:1px solid #f5f0de66;border-radius:4px;font:500 14px/1.3 'Satoshi',sans-serif;text-decoration:none;color:#fbf5e8;background:#263e32;cursor:pointer}
 .book-mobile-actions .book-mobile-read{grid-column:1/-1;font-size:16px;background:#fbf5e8;color:#263e32;border-color:#fbf5e8}
 .book-mobile-actions :is(a,button):focus-visible{outline:3px solid #e0ba65;outline-offset:3px}
 .book-mobile-status{grid-column:1/-1;text-align:center;font-size:13px;line-height:1.4}
 .book-mobile-status:empty{display:none}
 .book-era-mark{width:58px;height:58px;margin:19px 0 10px}
}
@media(prefers-reduced-motion:reduce){
 .book-pick .physical-book{transition:none!important}.book-pick:hover .book-era-mark,.book-pick:focus-visible .book-era-mark{animation:none}.book-volume{will-change:auto;transform:none!important}.book-volume-shadow{animation:none!important}.book-volume.is-readable .book-spread-left>*,.book-volume.is-readable .book-spread-right>*{animation:none}#book-viewer::backdrop{transition:none}
}
