/* Book Chommie — flipbook + covers (shared by studio, store and reader).
   Everything is scoped under .bcf / .bc-cover so themes & Elementor can't restyle it. */

.bc-cover{all:initial;box-sizing:border-box;display:block;position:relative;aspect-ratio:2/3;width:100%;border-radius:4px 10px 10px 4px;overflow:hidden;container-type:inline-size;
  background:linear-gradient(150deg,var(--c1,#8B5CF6),var(--c2,#4C25B0));background-size:cover;background-position:center;color:var(--ct,#fff);
  box-shadow:inset 6px 0 10px -6px rgba(0,0,0,.45),0 10px 24px -8px rgba(40,20,10,.45);font-family:"Poppins",system-ui,sans-serif}
.bc-cover *{box-sizing:border-box}
.bc-cover::before{content:"";position:absolute;inset:0 auto 0 0;width:5%;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(255,255,255,.12) 60%,rgba(0,0,0,0));pointer-events:none;z-index:2}
.bc-cover-text{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:12cqw 10cqw 10cqw 13cqw;text-align:left;z-index:1}
.bc-cover-title{font-weight:800;font-size:13cqw;line-height:1.02;letter-spacing:-.01em;word-break:break-word;text-wrap:balance}
.bc-cover-sub{font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:4.6cqw;opacity:.9;margin-top:4cqw;line-height:1.3}
.bc-cover-author{font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-weight:700;font-size:5cqw;letter-spacing:.12em;text-transform:uppercase;margin-top:auto;padding-top:6cqw}
.bc-cover-text > div:first-child{margin-top:0}
.bc-cover-minimal{background:var(--c1)}
.bc-cover-minimal .bc-cover-text{inset:6cqw;border:.6cqw solid currentColor;justify-content:center;text-align:center;padding:10cqw 8cqw}
.bc-cover-minimal .bc-cover-title{font-size:11cqw}
.bc-cover-minimal .bc-cover-author{margin-top:12cqw}
.bc-cover-bold{background:var(--c1)}
.bc-cover-bold::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:var(--c2)}
.bc-cover-bold .bc-cover-title{font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:15cqw;text-transform:uppercase;letter-spacing:-.02em}
.bc-cover-bold .bc-cover-author{position:relative;z-index:2}
.bc-cover-stripe{background:linear-gradient(115deg,var(--c1) 0 55%,var(--c2) 55% 70%,var(--c1) 70%)}
.bc-cover-photo{background-color:#333}
.bc-cover-photo .bc-cover-text{background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,0) 40%,rgba(0,0,0,0) 60%,rgba(0,0,0,.55));color:#fff}

/* ---------- Flipbook ---------- */
.bcf{all:initial;box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:260px;font-family:"Plus Jakarta Sans",system-ui,sans-serif;color:#2a1e1a;-webkit-tap-highlight-color:transparent}
.bcf *{box-sizing:border-box}
.bcf-stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:2600px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.bcf-book{position:relative;transform-origin:center center;transform-style:preserve-3d;flex:none}
.bcf-slot{position:absolute;top:0;overflow:hidden}
.bcf-slot.l{left:0}.bcf-slot.r{right:0}
.bcf-book.single .bcf-slot.r{left:0;right:auto}
.bcf-leaf{position:absolute;top:0;transform-style:preserve-3d;z-index:5;will-change:transform}
.bcf-leaf .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.bcf-leaf .back{transform:rotateY(180deg)}
.bcf-leaf .face::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:linear-gradient(90deg,rgba(0,0,0,.25),rgba(0,0,0,0) 40%)}
.bcf-leaf.turning .face::after{opacity:1}
.bcf-spine{position:absolute;top:0;bottom:0;left:50%;width:40px;margin-left:-20px;pointer-events:none;z-index:4;background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.13) 45%,rgba(0,0,0,.2) 50%,rgba(0,0,0,.13) 55%,rgba(0,0,0,0))}
.bcf-book.single .bcf-spine{display:none}
.bcf-shadow{position:absolute;inset:-2px;border-radius:6px;box-shadow:0 30px 60px -20px rgba(40,20,10,.55),0 10px 20px -10px rgba(40,20,10,.35);pointer-events:none}

/* page */
.bcf-page{position:relative;width:100%;height:100%;overflow:hidden;background:var(--pg);color:var(--ink);font-family:var(--fb),Georgia,serif;font-size:var(--fs);line-height:var(--lh);hyphens:auto;-webkit-hyphens:auto}
.bcf-page::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 120%,rgba(0,0,0,.05),transparent 60%)}
.bcf-slot.l .bcf-page::after,.bcf-leaf .back .bcf-page::after{content:"";position:absolute;inset:0 0 0 auto;width:12%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,0,0,.07))}
.bcf-slot.r .bcf-page::after,.bcf-leaf .front .bcf-page::after{content:"";position:absolute;inset:0 auto 0 0;width:12%;pointer-events:none;background:linear-gradient(270deg,transparent,rgba(0,0,0,.07))}
.bcf-body{position:absolute;left:var(--px);right:var(--px);top:var(--pt);height:var(--bh);overflow:hidden}
.bcf-num{position:absolute;left:0;right:0;bottom:calc(var(--pt) * .45);text-align:center;font-size:.72em;opacity:.55;letter-spacing:.08em}
.bcf-run{position:absolute;left:0;right:0;top:calc(var(--pt) * .42);text-align:center;font-size:.62em;opacity:.45;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 18%}

.bcf-body p{margin:0;text-indent:1.4em;text-align:justify}
.bcf-body p.ni,.bcf-body h2+p,.bcf-body h3+p,.bcf-body hr+p,.bcf-body .bcf-ch+p,.bcf-body blockquote+p,.bcf-body figure+p,.bcf-body p.cont0{text-indent:0}
.bcf-body p.cont{text-indent:0}
.bcf-body h2,.bcf-body h3{font-family:var(--fh),Georgia,serif;line-height:1.25;margin:.9em 0 .5em;text-align:left;font-weight:700}
.bcf-body h2{font-size:1.3em}.bcf-body h3{font-size:1.1em}
.bcf-body blockquote{margin:.6em 0 .6em .8em;padding-left:.9em;border-left:2px solid var(--acc);font-style:italic}
.bcf-body blockquote p{text-indent:0}
.bcf-body ul,.bcf-body ol{margin:.4em 0;padding-left:1.4em}
.bcf-body li{margin:.15em 0}
.bcf-body img{display:block;max-width:100%;max-height:calc(var(--bh) * .92);height:auto;margin:.6em auto;border-radius:3px}
.bcf-body figure{margin:.6em 0}
.bcf-body figcaption{font-size:.8em;text-align:center;opacity:.7}
.bcf-body hr{border:0;margin:1em 0;height:auto;text-align:center;line-height:1}
.bcf-body hr::after{content:var(--orn);opacity:.6;letter-spacing:.4em}
.bcf-body a{color:inherit}
.bcf-page.poem .bcf-body p{text-indent:0;text-align:left}

/* chapter opener */
.bcf-ch{text-align:center;padding-top:16%;margin-bottom:1.6em}
.bcf-ch .lbl{font-family:var(--fb),Georgia,serif;font-size:.72em;letter-spacing:.32em;text-transform:uppercase;opacity:.65}
.bcf-ch .ttl{font-family:var(--fh),Georgia,serif;font-size:1.75em;line-height:1.15;margin:.35em 0 .25em;font-weight:700;text-wrap:balance}
.bcf-ch .orn{opacity:.55;letter-spacing:.4em}
.bcf-ch.bold{text-align:left;padding-top:6%}
.bcf-ch.bold .lbl{font-family:var(--fh),sans-serif;font-size:3.6em;letter-spacing:0;opacity:.18;line-height:1;font-weight:800}
.bcf-ch.bold .ttl{font-size:1.6em;margin-top:-.15em}
.bcf-ch.bold .orn{display:none}
.bcf-ch.minimal{padding-top:8%}
.bcf-ch.minimal .lbl,.bcf-ch.minimal .orn{display:none}
.bcf-ch.minimal .ttl{font-size:1.25em;letter-spacing:.06em}
.bcf-ch.fancy{padding-top:24%}
.bcf-ch.fancy .lbl{font-style:italic;text-transform:none;letter-spacing:.04em;font-size:1em}
.bcf-ch.fancy .ttl{font-size:2em}
.bcf-dc::first-letter{float:left;font-family:var(--fh),Georgia,serif;font-size:3.35em;line-height:.82;padding:.06em .08em 0 0;color:var(--acc);font-weight:700}

/* special pages */
.bcf-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12%}
.bcf-tp .t{font-family:var(--fh),Georgia,serif;font-size:2.1em;line-height:1.1;font-weight:700;text-wrap:balance}
.bcf-tp .s{margin-top:.6em;font-style:italic;opacity:.8}
.bcf-tp .a{margin-top:2.6em;letter-spacing:.2em;text-transform:uppercase;font-size:.8em}
.bcf-tp .o{margin-top:1.4em;opacity:.5}
.bcf-tp .pub{position:absolute;bottom:9%;font-size:.65em;letter-spacing:.2em;text-transform:uppercase;opacity:.45}
.bcf-ded{font-style:italic;white-space:pre-line;opacity:.85}
.bcf-toc h3{font-family:var(--fh),Georgia,serif;text-align:center;font-size:1.4em;margin:.4em 0 1.1em}
.bcf-toc .row{display:flex;align-items:baseline;gap:.4em;margin:.35em 0;cursor:pointer}
.bcf-toc .row .dots{flex:1;border-bottom:1px dotted currentColor;opacity:.35;transform:translateY(-.25em)}
.bcf-toc .row.part{font-weight:700;margin-top:.8em}
.bcf-end .t{font-family:var(--fh),Georgia,serif;font-size:1.8em}
.bcf-blank{background:var(--pg)}
.bcf-cover-page{position:absolute;inset:0}
.bcf-cover-page .bc-cover{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:0;box-shadow:none}
.bcf-back{position:absolute;inset:0;background:linear-gradient(160deg,var(--c2),var(--c1));color:var(--ct);display:flex;flex-direction:column;justify-content:center;padding:14%;font-family:var(--fb),Georgia,serif}
.bcf-back .bl{font-size:.95em;line-height:1.6;white-space:pre-line}
.bcf-back .br{margin-top:2em;font-family:"Plus Jakarta Sans",sans-serif;font-size:.62em;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.bcf-pay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12%;font-family:"Plus Jakarta Sans",sans-serif}

/* themes */
.bcf-t-cream{--pg:#fbf5e9;--ink:#2d2622;--acc:#b5532f}
.bcf-t-white{--pg:#ffffff;--ink:#1f1f22;--acc:#e0457b}
.bcf-t-sepia{--pg:#f0e2c6;--ink:#3b2e21;--acc:#8a4b1f}
.bcf-t-midnight{--pg:#1c1f30;--ink:#e6e3f1;--acc:#ffb86b}
.bcf-t-blush{--pg:#fff0f1;--ink:#3a2328;--acc:#d6456f}
.bcf-t-sage{--pg:#eef3e9;--ink:#24301f;--acc:#4d7c3a}

/* controls */
.bcf-bar{display:flex;align-items:center;gap:10px;padding:10px 6px 2px;flex:none}
.bcf-btn{all:unset;box-sizing:border-box;cursor:pointer;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(40,20,10,.15);color:#2a1e1a;font-size:18px;flex:none;transition:transform .15s}
.bcf-btn:active{transform:scale(.92)}
.bcf-btn[disabled]{opacity:.35;pointer-events:none}
.bcf-range{flex:1;accent-color:#6D3FD8;min-width:40px}
.bcf-count{font-size:12px;font-weight:700;min-width:64px;text-align:center;opacity:.75;font-variant-numeric:tabular-nums}
.bcf-dark .bcf-btn{background:rgba(255,255,255,.12);color:#fff}
.bcf-dark .bcf-count{color:#fff}
.bcf-measure{position:absolute;left:-99999px;top:0;visibility:hidden;pointer-events:none}
.bcf-empty{display:grid;place-items:center;height:100%;text-align:center;opacity:.6;font-size:14px;padding:20px}
@media (prefers-reduced-motion:reduce){.bcf-leaf{transition:none!important}}
