/* Keepzi digital reader — interactive single-edition page turns.
 * Privacy: browser session only, not a public share link or Lulu print preflight. */
.reader-modal-open{overflow:hidden}
.flip-reader-modal[hidden]{display:none!important}
.flip-reader-modal{
 position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;
 padding:18px;background:rgba(30,27,25,.81);backdrop-filter:blur(15px);
}
.reader-dialog{
 width:min(1040px,100%);max-height:calc(100dvh - 36px);
 display:flex;flex-direction:column;gap:12px;
 background:linear-gradient(135deg,#fdfbf7,#ece9e4);border:1px solid #ffffff8a;
 border-radius:23px;box-shadow:0 22px 88px #0504036e;padding:18px;
}
.reader-topbar,.reader-controls{display:flex;align-items:center;justify-content:space-between;gap:14px}
.reader-topbar .eyebrow{font-size:9px;color:#84756c}
.reader-topbar h2{font:500 25px/1.2 var(--serif);margin:3px 0;letter-spacing:-.035em}
.reader-topbar button,.reader-controls button{
 border:1px solid #dbd2c8;border-radius:99px;background:#ffffffc5;
 padding:10px 13px;color:#4f4841;font:700 12px var(--sans);min-height:39px;
 display:flex;align-items:center;gap:8px;
}
.reader-topbar button{width:40px;height:40px;justify-content:center;padding:0}
.reader-controls button:disabled{opacity:.3;cursor:not-allowed}
.reader-controls .kz-action-icon{width:14px;height:14px;min-width:14px;min-height:14px}
.reader-stage{
 width:100%;flex:1;min-height:270px;max-height:64dvh;
 display:grid;place-items:center;overflow:hidden;
 background:radial-gradient(ellipse 65% 70% at 50% 43%,#efebe4,#d9d3c9 86%);
 border-radius:15px;perspective:1700px;isolation:isolate;touch-action:pan-y;
}
.reader-book{
 --reader-w:min(38vw,345px);--reader-h:calc(var(--reader-w)*var(--reader-aspect,1.37));
 position:relative;width:calc(var(--reader-w)*2);height:var(--reader-h);
 transform-style:preserve-3d;perspective:1500px;
 transition:transform .65s cubic-bezier(.31,.12,.4,1);
 filter:drop-shadow(9px 14px 13px #30241a4b);
}
.reader-book.reader-book-format{--reader-h:calc(var(--reader-w)*var(--reader-aspect,1));}
.reader-book.reader-is-closed{transform:translateX(calc(var(--reader-w)*-.5))}
.reader-book.reader-is-last{transform:translateX(calc(var(--reader-w)*-.5))}
.reader-base,.reader-sheet{position:absolute;top:0;width:50%;height:100%;background:#fdfbf7}
.reader-base-left{left:0;border-radius:5px 0 0 5px;box-shadow:inset -7px 0 17px #463e3522}
.reader-base-right{right:0;border-radius:0 5px 5px 0}
.reader-book.reader-is-closed .reader-base-left{visibility:hidden}
.reader-book.reader-is-last .reader-base-left{visibility:hidden}
.reader-sheet{
 left:50%;transform-origin:left center;transform-style:preserve-3d;
 transition:transform .75s cubic-bezier(.28,.09,.58,.96);
 will-change:transform;
}
.reader-sheet.flipped{transform:rotateY(-179deg)}
.reader-face{
 backface-visibility:hidden;-webkit-backface-visibility:hidden;
 position:absolute;inset:0;overflow:hidden;
 background:#fcfaf6;border:1px solid #e4dacf;box-shadow:inset 2px 0 9px #3023170e,3px 3px 7px #30231727;
}
.reader-face-front{border-radius:0 4px 5px 0}
.reader-face-back{border-radius:4px 0 0 5px;transform:rotateY(180deg)}
.reader-layout{width:100%;height:100%;position:relative;overflow:hidden}
.reader-front{background:#544a46}
.reader-front>img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.reader-front-shade{position:absolute;inset:0;background:linear-gradient(180deg,#201a1b85,transparent 37%,#241c1cc4)}
.reader-front-text{
 position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;
 text-align:left;color:#fffaf0;padding:7%;
}
.reader-front-text>small{font:700 clamp(5px,.65vw,9px)/1.5 var(--sans);letter-spacing:.13em}
.reader-front-text>strong{font:600 clamp(25px,3vw,51px)/.92 var(--fashion);letter-spacing:-.055em;margin:7% 0}
.reader-front-text>h3{font:500 clamp(22px,3vw,41px)/1.03 var(--serif);letter-spacing:-.05em;margin:auto 0 10px}
.reader-editorial{display:flex;flex-direction:column;padding:8% 7%;background:#f7f2eb}
.reader-label{font:700 clamp(6px,.7vw,10px)/1.25 var(--sans);letter-spacing:.11em;color:#957b6e}
.reader-editorial-copy{margin:auto 0}
.reader-editorial-copy h3{font:500 clamp(22px,2.7vw,39px)/1.04 var(--serif);margin:0 0 12px}
.reader-editorial-copy p{font:clamp(9px,1vw,13px)/1.6 var(--sans);color:#665e56;max-height:44%;overflow:hidden}
.reader-editorial>small{font:700 8px var(--sans);letter-spacing:.1em;color:#8b7a6b}
.reader-photo{background:#eee9e0;display:flex;flex-direction:column;padding:6%}
.reader-photo img{display:block;width:100%;flex:1;min-height:0;object-fit:cover}
.reader-photo-caption{font:500 clamp(8px,.85vw,12px)/1.4 var(--serif);color:#5e554d;padding:4% 0 1%;max-height:30%;overflow:hidden}
.reader-photo-full{padding:0}
.reader-photo-full img{width:100%;height:100%;flex:1;object-fit:cover}
.reader-photo-full .reader-photo-caption{position:absolute;bottom:0;left:0;right:0;color:white;text-shadow:0 1px 4px #000;padding:5%;background:linear-gradient(0deg,#201d19b1,transparent)}
.reader-empty-photo{margin:auto;color:#a6998b;letter-spacing:.12em}
.reader-back{background:#394a44}
.reader-back .reader-photo{position:absolute;inset:0}
.reader-back-label{position:absolute;left:0;right:0;bottom:0;text-align:center;color:white;padding:15%;
 background:linear-gradient(0deg,#1f2722bc,transparent);font:600 clamp(25px,3vw,45px) var(--fashion)}
.reader-back-label small{display:block;font:700 8px var(--sans);letter-spacing:.15em}
.reader-controls{padding:0 3px}
.reader-controls .reader-progress{font:700 10px var(--sans);letter-spacing:.07em;color:#61544d;text-align:center}
.reader-progress-bar{height:3px;width:100%;border-radius:20px;background:#dcd2ca;overflow:hidden}
.reader-progress-bar>span{height:100%;display:block;background:#74665c;width:0;transition:width .4s}
.reader-notice{font:10px/1.6 var(--sans);color:#83786f;text-align:center}
.reader-launch{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
 padding:13px 15px;border:1px solid #dac9bc;border-radius:13px;background:#f9f4ee;color:#4f5048;
 font:700 12px var(--sans);margin:11px 0 17px;cursor:pointer}
.reader-launch .kz-action-icon{width:17px;height:17px}
@media(max-width:700px){
 .reader-dialog{padding:12px;border-radius:17px;gap:8px}
 .reader-stage{min-height:260px;max-height:65dvh}
 .reader-book{--reader-w:min(41vw,250px)}
 .reader-topbar h2{font-size:18px}
 .reader-front-text>strong{font-size:clamp(20px,6.5vw,32px)}
 .reader-front-text>h3{font-size:clamp(15px,5vw,25px)}
 .reader-editorial-copy h3{font-size:clamp(16px,5vw,25px)}
 .reader-editorial-copy p{font-size:clamp(8px,2.3vw,12px)}
 .reader-controls button{font-size:11px;padding:9px 11px}
 .reader-notice{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 .reader-sheet,.reader-book,.reader-progress-bar>span{transition:none!important}
}
