/* THE BOOK (js/book.js): the page text as an illustrated edition of the story so far.
   Golden shell, pirate look: Pirata One (act-title.css declares it) for the display lines, the play screen's serif for the body,
   cream paper with gilt edges in a dark leather room. Scoped by #psBook (it also carries .ps-sheet so autoplay pauses). */
#psBook{--bk-paper:#f3e6c6;--bk-paper2:#e7d3a6;--bk-ink:#2a1c10;--bk-red:#7a1e12;--bk-gilt:#b98b3c;--bk-gold:#e0b873;
  --bk-pirate:'Pirata One',var(--font-display,serif);--bk-serif:var(--ps-serif,"Iowan Old Style",Palatino,Georgia,serif);
  position:fixed !important;inset:0 !important;z-index:60 !important;width:auto !important;max-height:none !important;margin:0 !important;
  display:flex !important;align-items:center;justify-content:center;background:none !important;border:0 !important;border-radius:0 !important;
  box-shadow:none !important;padding:0 !important;animation:none !important;transform:none !important;color:var(--bk-ink)}
#psBook[hidden]{display:none !important}
#psBook .bk-room{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(40,24,12,.86),rgba(6,4,2,.95) 70%);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#psBook .bk-book{position:relative;padding:12px;border-radius:10px;
  background:linear-gradient(90deg,#2b140b,#4a2414 8%,#3a1b0e 49.4%,#1c0c05 50%,#3a1b0e 50.6%,#4a2414 92%,#2b140b);
  box-shadow:0 0 0 1px rgba(224,184,115,.45),inset 0 0 0 3px #1a0b05,inset 0 0 0 4px rgba(224,184,115,.55),0 30px 90px rgba(0,0,0,.8)}
#psBook.bk-one .bk-book{padding:6px;border-radius:8px;background:#3a1b0e}
#psBook .bk-stage{display:flex;perspective:2200px}
/* paper */
#psBook .bk-page{position:relative;width:var(--bk-pw);height:var(--bk-ph);overflow:hidden;box-sizing:border-box;
  background:
    radial-gradient(ellipse at 30% 20%,rgba(255,250,232,.55),transparent 60%),
    radial-gradient(ellipse at 80% 90%,rgba(170,128,70,.18),transparent 55%),
    repeating-linear-gradient(0deg,rgba(120,90,40,.025) 0 1px,transparent 1px 3px),
    linear-gradient(var(--bk-paper),var(--bk-paper2));
  box-shadow:inset 0 0 0 1px rgba(185,139,60,.55),inset 0 0 26px rgba(130,90,40,.22)}
/* the spine: each page darkens toward the fold; the gilt edge on the outer side */
#psBook .bk-page.bk-l{border-radius:4px 0 0 4px;box-shadow:inset -38px 0 40px -26px rgba(70,40,10,.55),inset 0 0 0 1px rgba(185,139,60,.55),-3px 0 0 #c9a25a,-4px 0 0 #8a6428}
#psBook .bk-page.bk-r{border-radius:0 4px 4px 0;box-shadow:inset 38px 0 40px -26px rgba(70,40,10,.55),inset 0 0 0 1px rgba(185,139,60,.55),3px 0 0 #c9a25a,4px 0 0 #8a6428}
#psBook .bk-page.bk-solo{border-radius:4px;box-shadow:inset 14px 0 22px -14px rgba(70,40,10,.45),inset 0 0 0 1px rgba(185,139,60,.55),3px 0 0 #c9a25a,4px 0 0 #8a6428}
#psBook .bk-page.bk-endpaper{background:radial-gradient(circle at 30% 30%,#5a2a16,#2a120a);box-shadow:inset 0 0 0 1px rgba(224,184,115,.4),inset -30px 0 40px -20px #000}
#psBook .bk-in{position:absolute;inset:0;padding:calc(var(--bk-ph) * .07) calc(var(--bk-pw) * .1) calc(var(--bk-ph) * .085)}
#psBook .bk-flow{height:100%;overflow:hidden;font:400 clamp(15px,calc(var(--bk-pw) * .029),18.5px)/1.55 var(--bk-serif);color:var(--bk-ink);hyphens:auto;-webkit-hyphens:auto}
#psBook .bk-folio{position:absolute;bottom:calc(var(--bk-ph) * .035);left:0;right:0;text-align:center;font:400 14px var(--bk-pirate);color:var(--bk-red);opacity:.8}
/* the engine styles h1-h3 (caps, spacing): the book sets its own */
#psBook h1,#psBook h2,#psBook h3{text-transform:none;letter-spacing:normal;font-weight:400}
/* text */
#psBook .bk-flow p{margin:0;text-align:justify;text-indent:1.4em}
#psBook .bk-flow p.bk-first,#psBook .bk-flow p.bk-cont,#psBook .bk-flow h3 + p{text-indent:0}
#psBook .bk-flow p.bk-runs{text-align-last:justify}
#psBook .bk-flow p + p{margin-top:.15em}
#psBook .bk-q{color:#4a2a14;font-style:normal}
#psBook .bk-q:not(.bk-i){color:#5b2410}
#psBook .bk-i{font-style:italic}
#psBook .bk-dc::first-letter{float:left;font:400 4.1em/.78 var(--bk-pirate);color:var(--bk-red);margin:.06em .1em 0 0;text-shadow:0 1px 0 rgba(255,240,200,.6)}
#psBook .bk-sc{font:400 1.45em/1.1 var(--bk-pirate);color:var(--bk-red);text-align:center;margin:.55em 0 .5em;letter-spacing:.02em}
#psBook .bk-sc::after{content:"";display:block;width:38%;height:1px;margin:.3em auto 0;background:linear-gradient(90deg,transparent,var(--bk-gilt),transparent)}
#psBook .bk-flow > .bk-sc:first-child{margin-top:0}
#psBook .bk-part{text-indent:0 !important;text-align:center !important;font:600 .78em var(--ps-sans,system-ui);letter-spacing:.32em;text-transform:uppercase;color:var(--bk-gilt);margin:calc(var(--bk-ph) * .08) 0 .2em !important}
#psBook .bk-ch{font:400 2.3em/1.05 var(--bk-pirate);color:var(--bk-red);text-align:center;margin:0}
#psBook .bk-orn{text-indent:0 !important;text-align:center !important;color:var(--bk-gilt);font-size:1.3em;margin:.35em 0 .7em !important}
#psBook .bk-blank .bk-flow{display:flex;align-items:center;justify-content:center}
#psBook .bk-blank .bk-orn{font-size:2.2em;opacity:.55}
/* illustrations */
#psBook .bk-fig{margin:.5em 0 .7em;padding:4px;background:#fbf4e2;box-shadow:0 0 0 1px rgba(185,139,60,.7),0 2px 8px rgba(60,35,10,.25)}
#psBook .bk-fig img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;filter:sepia(.12) contrast(1.02)}
#psBook .bk-plate .bk-flow{display:flex;align-items:center;justify-content:center}
#psBook .bk-colour{margin:0;display:flex;flex-direction:column;align-items:center;max-height:100%}
#psBook .bk-colour img{display:block;max-width:100%;max-height:calc(var(--bk-ph) * .7);object-fit:contain;border:5px solid #fbf4e2;box-shadow:0 0 0 1px var(--bk-gilt),0 0 0 4px #fbf4e2,0 0 0 5px rgba(185,139,60,.6),0 6px 18px rgba(50,30,10,.35)}
#psBook .bk-colour figcaption{margin-top:1.1em;text-align:center;font-style:italic;font-size:.95em;line-height:1.35;max-width:30em}
#psBook .bk-colour small{display:block;margin-top:.45em;font:600 .62em var(--ps-sans,system-ui);font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:var(--bk-gilt)}
/* cover / title page */
#psBook .bk-cover .bk-flow{display:flex;align-items:center;justify-content:center}
#psBook .bk-title{text-align:center;width:100%;padding:1.2em .5em;border:1px solid var(--bk-gilt);outline:1px solid rgba(185,139,60,.5);outline-offset:5px}
#psBook .bk-title h1{font:400 3em/1 var(--bk-pirate);color:var(--bk-red);margin:.15em 0 .1em}
#psBook .bk-kicker,#psBook .bk-by{text-indent:0 !important;text-align:center !important;font:600 .7em var(--ps-sans,system-ui);letter-spacing:.3em;text-transform:uppercase;color:var(--bk-gilt)}
#psBook .bk-act{text-indent:0 !important;text-align:center !important;font:400 1.6em var(--bk-pirate);color:var(--bk-ink)}
#psBook .bk-vign{margin:.4em auto 1em;width:72%;padding:4px;background:#fbf4e2;box-shadow:0 0 0 1px var(--bk-gilt)}
#psBook .bk-vign img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;filter:sepia(.25)}
#psBook .bk-novel{text-indent:0 !important;text-align:center !important;margin-top:1em !important}
#psBook .bk-novel a{font:400 1.1em var(--bk-pirate);color:#8a6428;text-decoration:none;border-bottom:1px solid rgba(185,139,60,.6);padding-bottom:1px}
#psBook .bk-novel a:hover,#psBook .bk-novel a:focus-visible{color:var(--bk-red);border-color:var(--bk-red)}
/* contents */
#psBook .bk-chead{font:400 2em var(--bk-pirate);color:var(--bk-red);text-align:center;margin:.2em 0 .6em}
#psBook .bk-toc{list-style:none;margin:0;padding:0}
#psBook .bk-toc li{display:flex;align-items:baseline;gap:.4em;cursor:pointer;padding:.08em 0}
#psBook .bk-toc li span{flex:0 1 auto}
#psBook .bk-toc li::after{content:"";order:1;flex:1;border-bottom:1px dotted rgba(122,30,18,.45);transform:translateY(-.25em)}
#psBook .bk-toc li b{order:2;font:400 1em var(--bk-pirate);color:var(--bk-red);min-width:1.6em;text-align:right}
#psBook .bk-toc li.bk-cch{font:400 1.2em var(--bk-pirate);color:var(--bk-red);margin-top:.6em}
#psBook .bk-toc li.bk-csc{padding-left:1.1em;font-size:.95em}
#psBook .bk-toc li:hover span,#psBook .bk-toc li:focus-visible span{color:var(--bk-red)}
/* the current page's choices: a quiet list at its foot */
#psBook .bk-choices{margin-top:.9em;padding-top:.5em;border-top:1px solid rgba(185,139,60,.6)}
#psBook .bk-cq{text-indent:0 !important;text-align:center !important;font:400 1.05em var(--bk-pirate);color:var(--bk-red);margin-bottom:.2em !important}
#psBook .bk-choices ol{margin:0;padding:0 0 0 1.3em;list-style:none;counter-reset:bk}
#psBook .bk-choices li{counter-increment:bk;position:relative}
#psBook .bk-choices li::before{content:"❧";position:absolute;left:-1.2em;top:.28em;color:var(--bk-gilt);font-size:.9em}
#psBook .bk-choices button{all:unset;cursor:pointer;display:block;padding:.18em 0;font:italic 400 1em/1.35 var(--bk-serif);color:#3b2614}
#psBook .bk-choices button:hover,#psBook .bk-choices button:focus-visible{color:var(--bk-red);text-decoration:underline;text-decoration-color:rgba(122,30,18,.4);text-underline-offset:3px}
#psBook .bk-choices button:disabled{opacity:.45;cursor:default}
/* the end page */
#psBook .bk-end .bk-flow{display:flex;align-items:center;justify-content:center;text-align:center}
#psBook .bk-tbc{text-indent:0 !important;text-align:center !important;font:400 1.7em/1.2 var(--bk-pirate);color:var(--bk-red)}
#psBook .bk-small{text-indent:0 !important;text-align:center !important;font-style:italic;opacity:.75;margin-top:.5em !important}
/* chrome: close and the turn buttons, gilt on leather */
#psBook .bk-x,#psBook .bk-turn{position:absolute;z-index:2;border:0;background:none;color:var(--bk-gold);cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.8))}
#psBook .bk-x{top:10px;right:12px;width:44px;height:44px;font-size:22px}
#psBook .bk-turn{top:50%;transform:translateY(-50%);width:48px;height:96px;font:400 54px/1 var(--bk-pirate)}
#psBook .bk-prev{left:max(4px,calc(50% - var(--bk-pw) - 70px))}
#psBook .bk-next{right:max(4px,calc(50% - var(--bk-pw) - 70px))}
#psBook .bk-turn:disabled{opacity:.18;cursor:default}
#psBook .bk-x,#psBook .bk-turn{outline:none !important}
#psBook .bk-x:focus-visible,#psBook .bk-turn:focus-visible{text-shadow:0 0 10px rgba(224,184,115,.9)}
#psBook.bk-one .bk-turn{top:auto;bottom:6px;transform:none;height:48px;font-size:40px}
#psBook.bk-one .bk-prev{left:8px}#psBook.bk-one .bk-next{right:8px}
#psBook.bk-one .bk-book{margin-top:14px}
/* the measuring page: laid out, never seen */
#psBook .bk-measure{position:fixed;left:-20000px;top:0;visibility:hidden;pointer-events:none}
/* the turn: the new page swings in from the spine (no motion when the reader chose Still) */
#psBook .bk-stage.bk-tn .bk-r,#psBook .bk-stage.bk-tn.bk-one .bk-r{transform-origin:0 50%;animation:bkIn .42s cubic-bezier(.2,.7,.2,1)}
#psBook .bk-stage.bk-tp .bk-l{transform-origin:100% 50%;animation:bkInL .42s cubic-bezier(.2,.7,.2,1)}
#psBook.bk-one .bk-stage.bk-tp .bk-r{transform-origin:0 50%;animation:bkFade .32s ease-out}
@keyframes bkIn{from{transform:rotateY(-24deg);opacity:.35;filter:brightness(.8)}to{transform:none;opacity:1;filter:none}}
@keyframes bkInL{from{transform:rotateY(24deg);opacity:.35;filter:brightness(.8)}to{transform:none;opacity:1;filter:none}}
@keyframes bkFade{from{opacity:.3}to{opacity:1}}
@media (prefers-reduced-motion:reduce){ #psBook .bk-stage .bk-page{animation:none !important} }
html body.ps-still #psBook .bk-stage .bk-page{animation:none !important}
