/* Flip view */

.flip-wrap { display:none; flex-direction:column; align-items:center; width:100%; }

.flip-wrap.on { display:flex; }

body.has-flip-fullscreen {
  overflow:hidden;
  background:#fff;
}

body.has-flip-fullscreen::before {
  display:none;
}

.flip-wrap.is-fullscreen {
  position:fixed;
  inset:0;
  z-index:1300;
  width:auto;
  padding:0;
  justify-content:flex-start;
  align-items:stretch;
  background:#fff;
  backdrop-filter:none;
}

.flip-wrap.is-fullscreen .flip-shell {
  flex:0 0 auto;
  width:100%;
  padding:36px 40px 20px 110px;
  align-items:flex-start;
  justify-content:center;
  overflow:hidden;
  box-sizing:border-box;
}

.flip-wrap.is-fullscreen .flip-book-frame {
  width:100%;
  max-width:none;
  max-height:none;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.flip-wrap.is-fullscreen .spread-nav {
  position:fixed;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  width:78px;
  max-width:none;
  bottom:auto;
  right:auto;
  z-index:5;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  flex-wrap:nowrap;
  gap:6px;
  margin:0;
  padding:12px 10px;
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(191,177,148,.3);
  border-radius:14px;
  box-shadow:0 4px 20px rgba(0,0,0,.10);
}

.flip-wrap.is-fullscreen .spread-nav #flipCloseBtn {
  margin-left:0;
  margin-top:6px;
}

.flip-wrap.is-fullscreen .spread-nav button {
  width:100%;
  text-align:center;
  padding:7px 6px;
  font-size:11px;
}

.flip-wrap.is-fullscreen .spread-nav #flipInfo {
  display:block;
  text-align:center;
  font-size:10px;
  padding:2px 0;
  color:#7a6a52;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.flip-wrap.is-fullscreen .spread-nav .spread-jump {
  flex-direction:column;
  gap:4px;
}

.flip-wrap.is-fullscreen .spread-nav .spread-jump input {
  width:100%;
  box-sizing:border-box;
  font-size:11px;
  text-align:center;
}

.flip-wrap.is-fullscreen .spread-nav .spread-jump button {
  width:100%;
}

.flip-fullscreen-close {
  display:none;
}

body.has-flip-fullscreen .flip-fullscreen-close {
  display:inline-flex;
}

body.has-flip-fullscreen .flip-tip {
  display:none;
}

body.has-flip-fullscreen .flip-cover-toggle-row {
  position:fixed;
  left:16px;
  top:calc(50% + 140px);
  width:78px;
  z-index:9999;
  margin:0;
  justify-content:center;
}

.flip-wrap.is-fullscreen .flip-book-stage {
  width:100%;
  max-width:none;
  background:transparent;
}

.flip-wrap.is-fullscreen .flip-book-stage::before,
.flip-wrap.is-fullscreen .flip-book-stage::after,
.flip-wrap.is-fullscreen .flip-book-backdrop,
.flip-wrap.is-fullscreen .flip-demo-cover-shadow {
  display:none !important;
}

.flip-wrap.is-fullscreen .flip-book {
  box-shadow:none;
}

.flip-wrap.is-fullscreen .flip-book::before {
  display:none;
}

.flip-shell { width:100%; display:flex; justify-content:center; overflow:hidden; padding:8px 0 10px; }

.flip-book-frame { width:min(1040px,100%); padding:18px 18px 28px; border:1px solid var(--border); border-radius:18px; background:linear-gradient(180deg,#f7f4ee,#ebe5da); box-shadow:0 24px 48px rgba(14,14,15,.12), inset 0 1px 0 rgba(255,255,255,.78); overflow:hidden; }

.flip-book-stage { position:relative; width:1020px; height:640px; margin:0 auto; max-width:100%; display:flex; align-items:center; justify-content:center; overflow:hidden; --flip-page-width:480px; --flip-page-height:600px; --flip-book-width:960px; --flip-book-height:600px; --board-bleed:30px; }

.flip-book-stage::before { content:''; position:absolute; inset:16px 18px 20px; border-radius:20px; background:
  linear-gradient(180deg,rgba(255,255,255,.54),rgba(255,255,255,.12) 24%,rgba(160,138,106,.08) 100%),
  radial-gradient(circle at top,rgba(255,255,255,.34),transparent 54%);
  box-shadow:inset 0 0 0 1px rgba(213,201,183,.56), inset 0 18px 36px rgba(255,255,255,.34);
  pointer-events:none;
}

.flip-book-stage::after { content:''; position:absolute; left:12%; right:12%; bottom:10px; height:30px; border-radius:50%; background:radial-gradient(ellipse at center,rgba(14,14,15,.2),rgba(14,14,15,0)); pointer-events:none; }

.flip-book-backdrop { position:absolute; inset:0; pointer-events:none; z-index:0; }

.flip-book-backdrop .cover-board { position:absolute; top:10px; bottom:12px; width:calc((var(--flip-book-width) / 2) + var(--board-bleed) - 16px); background:
  linear-gradient(180deg,rgba(74,64,55,.98),rgba(55,47,40,.98));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.06),
    inset 0 18px 20px rgba(255,255,255,.05),
    inset 0 -18px 22px rgba(0,0,0,.18),
    0 22px 30px rgba(14,14,15,.14);
}

.flip-book-backdrop .cover-board::before { content:''; position:absolute; inset:14px 12px; border-radius:12px; background:
  linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 18%,rgba(0,0,0,.12) 100%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 18px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.06); }

.flip-book-backdrop .cover-board::after { content:''; position:absolute; top:18px; bottom:18px; width:12px; border-radius:999px; background:linear-gradient(180deg,rgba(236,228,215,.18),rgba(255,255,255,.02)); opacity:.72; }

.flip-book-backdrop .cover-board.left { left:calc(50% - (var(--flip-book-width) / 2) - 22px); border-radius:18px 10px 10px 18px; }

.flip-book-backdrop .cover-board.left::after { right:8px; }

.flip-book-backdrop .cover-board.right { right:calc(50% - (var(--flip-book-width) / 2) - 22px); border-radius:10px 18px 18px 10px; }

.flip-book-backdrop .cover-board.right::after { left:8px; }

.flip-book-backdrop .cover-hinge { position:absolute; top:10px; bottom:12px; left:50%; width:48px; transform:translateX(-50%); border-radius:16px; background:
  linear-gradient(180deg,rgba(76,66,57,.99),rgba(54,46,39,.99));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    inset 12px 0 18px rgba(255,255,255,.03),
    inset -14px 0 18px rgba(0,0,0,.20),
    0 18px 24px rgba(14,14,15,.12);
}

.flip-book-backdrop .cover-hinge::before,
.flip-book-backdrop .cover-hinge::after { content:''; position:absolute; top:16px; bottom:16px; width:2px; border-radius:999px; background:linear-gradient(180deg,rgba(239,231,219,.24),rgba(255,255,255,.04)); opacity:.72; }

.flip-book-backdrop .cover-hinge::before { left:12px; }

.flip-book-backdrop .cover-hinge::after { right:12px; }

.flip-book-backdrop .page-bed { position:absolute; left:calc(50% - (var(--flip-book-width) / 2) + 8px); right:calc(50% - (var(--flip-book-width) / 2) + 8px); top:24px; bottom:28px; border-radius:14px; background:linear-gradient(180deg,rgba(255,255,255,.44),rgba(215,205,191,.14)); box-shadow:inset 0 0 0 1px rgba(220,212,201,.62), inset 0 24px 26px rgba(255,255,255,.28), inset 0 -18px 18px rgba(155,135,108,.06); }

.flip-book-backdrop .depth-strip { position:absolute; top:28px; bottom:32px; width:20px; opacity:.9; filter:drop-shadow(0 10px 10px rgba(14,14,15,.08)); background:
  linear-gradient(90deg,rgba(198,189,175,.95),rgba(241,238,233,.96) 42%,rgba(198,189,175,.95) 100%),
  repeating-linear-gradient(180deg,rgba(165,152,132,.12) 0 2px,rgba(255,255,255,0) 2px 8px); }

.flip-book-backdrop .depth-strip.left { left:calc(50% - (var(--flip-book-width) / 2) - 10px); border-radius:10px 0 0 10px; }

.flip-book-backdrop .depth-strip.right { right:calc(50% - (var(--flip-book-width) / 2) - 10px); border-radius:0 10px 10px 0; }

.flip-book-backdrop .spine-valley { position:absolute; top:22px; bottom:26px; left:50%; width:22px; transform:translateX(-50%); background:
  linear-gradient(90deg,rgba(53,37,22,.10),rgba(255,255,255,0) 26%,rgba(40,24,11,.16) 50%,rgba(255,255,255,0) 74%,rgba(53,37,22,.10));
  opacity:.82;
}

.flip-book-backdrop .spine-valley::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at center,rgba(29,18,10,.18) 0,rgba(29,18,10,.08) 36%,rgba(255,255,255,0) 76%); }

/*.flip-book-stage.is-interior .cover-board.right { opacity:.48; }*/

.flip-book-stage.is-interior .cover-board.left { opacity:.96; }

.flip-book-stage.is-interior .cover-board.left,
.flip-book-stage.is-interior .cover-hinge,
.flip-book-stage.is-opener .cover-board.left,
.flip-book-stage.is-opener .cover-hinge { background:linear-gradient(180deg,rgba(69,59,50,.99),rgba(49,42,36,.99)); }

.flip-book-stage.is-interior .depth-strip { width:14px; opacity:.62; }

.flip-book-stage.is-opener .cover-board.right { opacity:.18; }

.flip-book-stage.is-opener .depth-strip.right { opacity:.26; width:12px; }

.flip-book-stage.is-opener .cover-board.left { left:calc(50% - (var(--flip-book-width) / 2) - 14px); width:calc((var(--flip-book-width) / 2) + 18px); }

.flip-book-stage.is-opener .cover-hinge { width:28px; left:calc(50% - 6px); opacity:.84; }

.flip-book-stage.is-opener .page-bed { left:calc(50% - (var(--flip-book-width) / 2) - 2px); right:calc(50% - (var(--flip-book-width) / 2) + 10px); }

.flip-book-stage.is-opener .depth-strip.left { opacity:.74; width:16px; left:calc(50% - (var(--flip-book-width) / 2) - 8px); }

.flip-book-stage.is-opener .spine-valley { width:20px; opacity:.68; }

.flip-book-stage.is-closer .cover-board.left { opacity:0; }

.flip-book-stage.is-closer .cover-board.right { opacity:.96; }

.flip-book-stage.is-closer .cover-board.left,
.flip-book-stage.is-closer .cover-hinge { background:linear-gradient(180deg,rgba(69,59,50,.99),rgba(49,42,36,.99)); }

.flip-book-stage.is-closer .depth-strip { width:14px; opacity:.62; }

.flip-book-stage.is-closer .depth-strip.left { opacity:.74; width:16px; left:calc(50% - (var(--flip-book-width) / 2) - 8px); }

.flip-book-stage.is-closer .cover-board.right { left:calc(50% - (var(--flip-book-width) / 2) - 14px); width:calc((var(--flip-book-width) / 2) + 18px); }

.flip-book-stage.is-closer .cover-hinge { width:28px; left:calc(50% - 6px); opacity:.84; }

.flip-book-stage.is-closer .page-bed { left:calc(50% - (var(--flip-book-width) / 2) + 10px); right:calc(50% - (var(--flip-book-width) / 2) - 2px); }

.flip-book-stage.is-closer .depth-strip.right { opacity:.74; width:16px; right:calc(50% - (var(--flip-book-width) / 2) - 8px); }

.flip-book-stage.is-closer .spine-valley { width:20px; opacity:.68; }

.flip-book-stage.is-near-end .depth-strip.right,
.flip-book-stage.is-ending-turning .depth-strip.right {
  opacity:0;
  width:0;
}

.flip-book-stage.is-near-end .depth-strip.left,
.flip-book-stage.is-ending-turning .depth-strip.left {
  opacity:.46;
  width:7px;
  left:calc(50% - (var(--flip-book-width) / 2) + 1px);
  border-radius:3px 0 0 3px;
  filter:drop-shadow(0 6px 6px rgba(14,14,15,.04));
}

/* Back cover gutter shadow effect - realistic binding appearance */
.flip-book-stage.is-closer .cover-board.right::before {
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:24px;
  background:linear-gradient(90deg,rgba(30,20,15,.28),rgba(30,20,15,.08) 60%,transparent 100%);
  border-radius:18px 0 0 18px;
  pointer-events:none;
}

.flip-book-stage.is-closer .cover-board.right::after {
  left:8px;
}

.flip-book { position:relative; width:var(--flip-book-width); height:var(--flip-book-height); margin:0 auto; max-width:100%; z-index:1; }

.flip-book::before { content:''; position:absolute; left:34px; right:34px; bottom:10px; height:28px; border-radius:50%; background:radial-gradient(ellipse at center,rgba(14,14,15,.18),rgba(14,14,15,0)); pointer-events:none; z-index:0; }

.flip-book.ready { opacity:1; }

/* Reset flip shell: keep only the interior pages and gutter */
.flip-book-frame { background:linear-gradient(180deg,#f8f4ec,#eee7db); box-shadow:0 18px 36px rgba(14,14,15,.08), inset 0 1px 0 rgba(255,255,255,.72); }

.flip-book-stage::before { display:none; }

.flip-book-backdrop .cover-board,
.flip-book-backdrop .cover-hinge,
.flip-book-backdrop .page-bed,
.flip-book-backdrop .depth-strip { display:none !important; }

.flip-book-backdrop .spine-valley {
  top:18px;
  bottom:20px;
  width:18px;
  background:linear-gradient(90deg,rgba(53,37,22,.08),rgba(255,255,255,0) 28%,rgba(40,24,11,.14) 50%,rgba(255,255,255,0) 72%,rgba(53,37,22,.08));
  opacity:.74;
}

.flip-book-backdrop .spine-valley::after {
  background:radial-gradient(ellipse at center,rgba(29,18,10,.12) 0,rgba(29,18,10,.06) 38%,rgba(255,255,255,0) 78%);
}

.flip-book-stage.is-opener .spine-valley,
.flip-book-stage.is-interior .spine-valley,
.flip-book-stage.is-closer .spine-valley {
  width:18px;
  opacity:.74;
}

.flip-book::before {
  left:18px;
  right:18px;
  bottom:6px;
  height:20px;
  background:radial-gradient(ellipse at center,rgba(14,14,15,.12),rgba(14,14,15,0));
}

.flip-book { z-index:3; }

.flip-book .page,
.flip-book .turn-page { box-shadow:0 10px 24px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.05); }

.flip-page-inner { box-shadow:none; }

.flip-demo-cover { position:absolute; inset:0; z-index:4; opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease; }

.flip-book-stage.has-book .flip-demo-cover { opacity:1; visibility:visible; }

.flip-demo-cover-shell { position:relative; width:100%; height:100%; }

.flip-book-stage.cover-closed .flip-book { opacity:0; transform:translateY(8px) scale(.985); pointer-events:none; transition:opacity .22s ease, transform .5s ease; }

.flip-book-stage.cover-open .flip-book { opacity:1; transform:none; transition:opacity .28s ease .12s, transform .6s cubic-bezier(.2,.75,.2,1); }

.flip-demo-cover-closed,
.flip-demo-cover-open { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); transition:opacity .35s ease, transform .85s cubic-bezier(.22,.72,.18,1), visibility .35s ease; }

/* ── Closed book ── */
.flip-demo-cover-closed {
  width:calc(var(--flip-page-width) + 30px);
  height:calc(var(--flip-page-height) + 24px);
  background:linear-gradient(160deg,#3a3028,#2a221c);
  box-shadow:
    0 28px 36px rgba(0,0,0,.28),
    0 8px 14px rgba(0,0,0,.18),
    inset 0 0 0 1px rgba(255,255,255,.06);
  overflow:hidden;
  border-radius:3px;
}

/* Front face gloss */
.flip-demo-cover-closed::before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,0) 55%,rgba(0,0,0,.07) 100%);
  z-index:4;
  border-radius:0 3px 3px 0;
  pointer-events:none;
}

/* Spine — subtle left-edge ridge line, like paperback fold */
.flip-demo-cover-closed::after {
  content:'';
  position:absolute;
  top:0; bottom:0;
  left:0;
  width:10px;
  z-index:3;
  background:linear-gradient(90deg,
    rgba(0,0,0,.48) 0%,
    rgba(0,0,0,.18) 45%,
    rgba(0,0,0,0) 100%
  );
  pointer-events:none;
}

/* No cover state — closed book */
.flip-book-stage.no-cover-art .flip-demo-cover-closed {
  background:#111;
  box-shadow:0 28px 36px rgba(0,0,0,.35), 0 8px 14px rgba(0,0,0,.25);
}
.flip-book-stage.no-cover-art .flip-demo-cover-closed::before { display:none; }
.flip-book-stage.no-cover-art .flip-demo-cover-closed-inner { display:none; }
.flip-book-stage.no-cover-art .flip-demo-cover-text .flip-demo-cover-title { font-size:14px; opacity:.5; color:#fff; }
.flip-book-stage.no-cover-art .flip-demo-cover-text .flip-demo-cover-author { font-size:10px; opacity:.3; color:#fff; }

/* No cover state — open book back board → black */
.flip-book-stage.no-cover-art .cover-board {
  background:linear-gradient(180deg,#141414,#0d0d0d) !important;
}
.flip-book-stage.no-cover-art .cover-board::before { display:none; }
.flip-book-stage.no-cover-art .cover-hinge {
  background:linear-gradient(180deg,#0a0a0a,#050505) !important;
}


.flip-demo-cover-closed-inner,
.flip-demo-cover-open-inner {
  position:absolute;
  inset:12px;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 20%,rgba(0,0,0,.12) 100%),
    radial-gradient(circle at top,rgba(255,255,255,.16),transparent 38%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 18px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}

.flip-demo-cover-closed-art,
.flip-demo-cover-open-art {
  position:absolute;
  inset:12px;
  z-index:0;
  opacity:0;
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  transition:opacity .22s ease;
}

.flip-demo-cover-closed-art::after,
.flip-demo-cover-open-art::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(255,255,255,.02) 22%,rgba(0,0,0,.14) 100%);
}

.flip-demo-cover-text {
  position:absolute;
  inset:16% 14% 14% 18%;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:14px;
  color:#f7efe3;
  text-align:left;
}

.flip-demo-cover-kicker { font-size:10px; letter-spacing:.34em; text-transform:uppercase; opacity:.64; }

.flip-demo-cover-title { font-family:'Playfair Display',serif; font-size:clamp(24px,2.6vw,38px); line-height:1.08; letter-spacing:.02em; text-wrap:balance; max-width:11ch; text-shadow:0 1px 0 rgba(0,0,0,.08); }

.flip-demo-cover-author { font-size:12px; letter-spacing:.18em; text-transform:uppercase; opacity:.78; }

.flip-demo-cover-open {
  width:calc(var(--flip-book-width) + 20px);
  height:calc(var(--flip-book-height) + 12px);
  background:linear-gradient(180deg,#776555,#574a40 74%,#4e4238);
  box-shadow:
    0 18px 22px rgba(14,14,15,.11),
    inset 0 0 0 1px rgba(255,255,255,.06),
    inset 0 14px 18px rgba(255,255,255,.05),
    inset 0 -14px 18px rgba(0,0,0,.12);
}

.flip-demo-cover-open::before {
  content:'';
  position:absolute;
  inset:10px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0) 24%,rgba(0,0,0,.08) 100%);
}

.flip-demo-cover-open::after {
  content:'';
  position:absolute;
  top:14px;
  bottom:14px;
  left:calc(50% - 1px);
  width:2px;
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(0,0,0,.10));
  opacity:.22;
}

.flip-demo-cover-open-inner { inset:12px; }

.flip-demo-cover-open-backgutter {
  position:absolute;
  top:calc(50% - (var(--flip-page-height) / 2));
  left:calc(50% - (var(--flip-book-width) / 2) - 9px);
  width:18px;
  height:var(--flip-page-height);
  z-index:1;
  background:linear-gradient(90deg,rgba(53,37,22,.14),rgba(255,255,255,0) 28%,rgba(40,24,11,.28) 50%,rgba(255,255,255,0) 72%,rgba(53,37,22,.14));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.03),
    2px 0 8px rgba(14,14,15,.08);
  opacity:.82;
  pointer-events:none;
}

.flip-opener-leaf {
  position:absolute;
  top:calc(50% - (var(--flip-page-height) / 2));
  left:calc(50% - (var(--flip-book-width) / 2));
  width:var(--flip-page-width);
  height:var(--flip-page-height);
  z-index:2;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}

.flip-opener-leaf-page {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#fffefc,#f5efe6 98%);
  box-shadow:
    0 10px 18px rgba(14,14,15,.08),
    inset 0 0 0 1px rgba(231,224,212,.82);
}

.flip-opener-leaf-divider {
  position:absolute;
  top:10px;
  bottom:10px;
  right:-1px;
  width:1px;
  background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(78,64,52,.14));
  opacity:.32;
}

.flip-book-stage.is-opener.cover-open .flip-opener-leaf,
.flip-book-stage.is-opener-turning.cover-open .flip-opener-leaf {
  opacity:1;
  visibility:visible;
}

.flip-book-stage.is-opener.cover-open .spine-valley,
.flip-book-stage.is-opener-turning.cover-open .spine-valley {
  opacity:0;
}

.flip-book-stage.is-opener.cover-open .flip-book .odd,
.flip-book-stage.is-opener.cover-open .flip-book .even,
.flip-book-stage.is-opener-turning.cover-open .flip-book .odd,
.flip-book-stage.is-opener-turning.cover-open .flip-book .even {
  background:#fff;
}

.flip-demo-cover-open-righthug {
  position:absolute;
  top:8px;
  bottom:8px;
  right:3px;
  width:4px;
  z-index:1;
  border-radius:0;
  background:linear-gradient(180deg,#6d5c4d,#50443a);
  box-shadow:inset -2px 0 4px rgba(0,0,0,.14);
}

.flip-demo-cover-open-depth {
  position:absolute;
  top:3px;
  bottom:2.5px;
  right:0;
  width:24px;
  z-index:2;
  border-radius:0;
  background-image:url('/assets/images/pages-depth.png');
  background-repeat:no-repeat;
  background-position:right 0;
  background-size:24px 100%;
  box-shadow:0 9px 12px rgba(14,14,15,.06);
  opacity:.98;
}

.flip-book-stage.has-cover-art .flip-demo-cover-text {
  display:none;
}

.flip-book-stage.has-cover-art .flip-demo-cover-closed-art,
.flip-book-stage.has-cover-art .flip-demo-cover-open-art {
  inset:0;
  opacity:1;
}

.flip-book-stage.has-cover-art .flip-demo-cover-closed-inner,
.flip-book-stage.has-cover-art .flip-demo-cover-open-inner {
  background:
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 24%,rgba(0,0,0,.08) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}

.flip-book-stage.has-cover-art .flip-demo-cover-open::before,
.flip-book-stage.has-cover-art .flip-demo-cover-open::after {
  opacity:.35;
}

/* has-cover-art: art fills full element; spine gradient overlays naturally */
.flip-book-stage.has-cover-art .flip-demo-cover-closed {
  background:#000;
}

.flip-book-stage.has-cover-art .flip-demo-cover-closed::before {
  display:none;
}

.flip-book-stage.has-cover-art .flip-demo-cover-closed-inner {
  inset:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}

.flip-book-stage.has-cover-art .flip-demo-cover-closed-art {
  inset:0;
  background-position:100% 50%;
}

.flip-demo-cover-open .flip-demo-cover-text {
  inset:16% 10% 14% 56%;
  align-items:flex-start;
}

.flip-demo-cover-shadow {
  position:absolute;
  left:12%;
  right:12%;
  bottom:22px;
  height:24px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(14,14,15,.16),rgba(14,14,15,0));
  opacity:.44;
}

.flip-cover-toggle { border:none; border-radius:999px; padding:10px 16px; background:rgba(255,250,242,.96); color:#473b30; font:600 11px/1 'Manrope',sans-serif; letter-spacing:.12em; text-transform:uppercase; box-shadow:0 12px 22px rgba(14,14,15,.14); cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease; }

.flip-cover-toggle:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 16px 26px rgba(14,14,15,.18); }

.flip-cover-toggle:disabled { opacity:.55; cursor:not-allowed; }

.flip-book-stage.cover-closed .flip-demo-cover { pointer-events:auto; }

.flip-book-stage.cover-closed .flip-demo-cover-open { opacity:0; visibility:hidden; transform:translate(-50%,-50%) scale(.96); }

.flip-book-stage.cover-open .flip-demo-cover { z-index:1; }

.flip-book-stage.cover-open .flip-demo-cover-closed {
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,-46%) scale(.93);
}

.flip-book-stage.cover-open .flip-demo-cover-open {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,-50%) scale(1);
}

.flip-book-stage.is-closer.cover-open .flip-demo-cover-open,
.flip-book-stage.is-near-end.cover-open .flip-demo-cover-open,
.flip-book-stage.is-ending-turning.cover-open .flip-demo-cover-open {
  background:linear-gradient(180deg,#776555,#574a40 74%,#4e4238);
  box-shadow:
    0 18px 22px rgba(14,14,15,.11),
    inset 0 0 0 1px rgba(255,255,255,.06),
    inset 0 14px 18px rgba(255,255,255,.05),
    inset 0 -14px 18px rgba(0,0,0,.12);
}

.flip-book-stage.is-closer.cover-open .flip-demo-cover-open-inner,
.flip-book-stage.is-near-end.cover-open .flip-demo-cover-open-inner,
.flip-book-stage.is-ending-turning.cover-open .flip-demo-cover-open-inner {
  top:calc(50% - (var(--flip-page-height) / 2));
  right:calc(50% - (var(--flip-book-width) / 2));
  bottom:auto;
  left:auto;
  width:var(--flip-page-width);
  height:var(--flip-page-height);
  z-index:3;
  background:linear-gradient(180deg,#fbfaf7,#f1eee7 100%);
  box-shadow:inset 0 0 0 1px rgba(226,219,207,.86), inset 18px 0 24px rgba(205,197,184,.18), 0 10px 24px rgba(0,0,0,.09);
}

.flip-book-stage.is-closer.cover-open .flip-demo-cover-open-backgutter,
.flip-book-stage.is-near-end.cover-open .flip-demo-cover-open-backgutter,
.flip-book-stage.is-ending-turning.cover-open .flip-demo-cover-open-backgutter {
  left:calc(50% - (var(--flip-book-width) / 2) - 9px);
}

.flip-book-stage.is-closer.cover-open .flip-demo-cover-open-righthug,
.flip-book-stage.is-near-end.cover-open .flip-demo-cover-open-righthug,
.flip-book-stage.is-ending-turning.cover-open .flip-demo-cover-open-righthug {
  display:none;
}

.flip-book-stage.is-closer.cover-open .flip-demo-cover-open-depth,
.flip-book-stage.is-near-end.cover-open .flip-demo-cover-open-depth,
.flip-book-stage.is-ending-turning.cover-open .flip-demo-cover-open-depth {
  right:auto;
  left:3px;
  width:18px;
  z-index:4;
  transform:scaleX(-1);
  background-position:left 0;
  opacity:.82;
  box-shadow:-2px 9px 10px rgba(14,14,15,.05);
}

.flip-book-stage.binding-paperback.cover-open .flip-demo-cover-open {
  width:calc(var(--flip-book-width) + 6px);
  height:calc(var(--flip-book-height) + 4px);
  background:linear-gradient(180deg,#fbfaf7,#eee9df 100%);
  box-shadow:0 12px 18px rgba(14,14,15,.08), inset 0 0 0 1px rgba(226,219,207,.86);
}

.flip-book-stage.binding-paperback.cover-open .flip-demo-cover-open::before {
  inset:3px;
  background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,0) 26%,rgba(201,192,178,.12) 100%);
  box-shadow:inset 0 0 0 1px rgba(226,219,207,.7);
}

.flip-book-stage.binding-paperback.cover-open .flip-demo-cover-open-art,
.flip-book-stage.binding-paperback.cover-open .flip-demo-cover-open-righthug {
  display:none;
}

.flip-book-stage.binding-paperback.cover-open .flip-demo-cover-open-inner {
  background:linear-gradient(180deg,#fbfaf7,#f1eee7 100%);
  box-shadow:inset 0 0 0 1px rgba(226,219,207,.78), inset 12px 0 18px rgba(205,197,184,.12);
}

.flip-book-stage.binding-paperback.cover-open .flip-demo-cover-open-depth {
  width:6px;
  background-image:none;
  background:linear-gradient(90deg,rgba(199,190,176,.38),rgba(251,250,247,.92));
  opacity:.86;
  box-shadow:none;
}

.flip-book-stage.binding-paperback.is-closer.cover-open .flip-demo-cover-open-depth,
.flip-book-stage.binding-paperback.is-near-end.cover-open .flip-demo-cover-open-depth,
.flip-book-stage.binding-paperback.is-ending-turning.cover-open .flip-demo-cover-open-depth {
  left:0;
  transform:none;
  background:linear-gradient(90deg,rgba(190,181,167,.46),rgba(251,250,247,.9));
}

.flip-book-stage.cover-closed .flip-demo-cover-closed {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,-50%) scale(1);
}

.flip-book-stage.cover-closed .flip-demo-cover-open {
  pointer-events:none;
}

.flip-cover-toggle-row { display:flex; justify-content:center; margin-top:10px; }

.flip-book-stage:not(.has-book) ~ .flip-cover-toggle-row .flip-cover-toggle { opacity:.52; }

.flip-book-status { display:flex; align-items:center; justify-content:center; min-height:520px; font-size:12px; color:var(--muted); font-family:'DM Mono',monospace; border:1px dashed var(--border); border-radius:10px; background:rgba(247,244,239,.7); }

.flip-book .page,
.flip-book .turn-page { position:relative; width:var(--flip-page-width, 480px); height:var(--flip-page-height, 600px); background-color:#fff; overflow:hidden; box-shadow:0 12px 28px rgba(0,0,0,.16), 0 2px 6px rgba(0,0,0,.08); }

.flip-book .page-wrapper { perspective:2000px; }

.flip-book .odd { background:linear-gradient(to left,#fff 95%,#d6d6d6 100%); }

.flip-book .even { background:linear-gradient(to right,#fff 95%,#d8d8d8 100%); }

.flip-book .shadow { transition:box-shadow .5s; box-shadow:0 0 20px rgba(0,0,0,.18); }

.flip-page-item { position:relative; width:100%; height:100%; background:transparent; }

.flip-page-inner { position:relative; width:100%; height:100%; overflow:hidden; background:var(--page-bg, #fff); box-shadow:inset 0 0 0 1px rgba(230,224,215,.74); }

.flip-page-item.odd .flip-page-inner::before,
.flip-page-item.even .flip-page-inner::before { content:''; position:absolute; top:0; bottom:0; width:18px; pointer-events:none; z-index:1; }

.flip-page-item.odd .flip-page-inner::before { left:0; background:linear-gradient(to right,rgba(46,31,17,.18),rgba(46,31,17,0)); }

.flip-page-item.even .flip-page-inner::before { right:0; background:linear-gradient(to left,rgba(46,31,17,.18),rgba(46,31,17,0)); }

.flip-page-item.odd .flip-page-inner::after,
.flip-page-item.even .flip-page-inner::after { content:''; position:absolute; top:0; bottom:0; width:14px; pointer-events:none; z-index:1; }

.flip-page-item.odd .flip-page-inner::after { right:0; background:linear-gradient(to left,rgba(255,255,255,.34),rgba(255,255,255,0)); }

.flip-page-item.even .flip-page-inner::after { left:0; background:linear-gradient(to right,rgba(255,255,255,.34),rgba(255,255,255,0)); }

.flip-page-item img { display:block; width:100%; height:100%; object-fit:contain; opacity:0; transition:opacity .24s ease; background:var(--page-bg, #fff); filter:var(--page-filter, none) drop-shadow(0 3px 6px rgba(0,0,0,.03)); }

.flip-page-item.ready img { opacity:1; }

.flip-page-item.html-mode img { display:none; }

.flip-page-item .readable-page-viewport {
  background:linear-gradient(180deg,#fff,#fbf8f2 98%);
}

.flip-page-item.odd .readable-page-viewport {
  box-shadow:inset -14px 0 18px rgba(90,90,90,.08);
}

.flip-page-item.even .readable-page-viewport {
  box-shadow:inset 14px 0 18px rgba(90,90,90,.08);
}

.flip-page-item .readable-page-inner {
  user-select:text;
  -webkit-user-select:text;
}

.flip-page-loader { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--muted); font-family:'DM Mono',monospace; background:linear-gradient(135deg,rgba(247,244,239,.96),rgba(255,255,255,.92)); }

.flip-page-item.ready .flip-page-loader { display:none; }

.flip-page-no { position:absolute; bottom:10px; font-family:'DM Mono',monospace; font-size:10px; color:rgba(14,14,15,.52); background:rgba(247,244,239,.9); border:1px solid rgba(226,221,214,.92); border-radius:999px; padding:3px 8px; z-index:2; }

.flip-page-item.odd .flip-page-no { right:10px; }

.flip-page-item.even .flip-page-no { left:10px; }

.flip-tip { margin-top:12px; font-size:11px; color:var(--muted); max-width:520px; text-align:center; line-height:1.5; }

.flip-zoom-overlay {
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(14,14,15,.72);
  backdrop-filter:blur(8px);
  z-index:1200;
}

.flip-zoom-overlay.on { display:flex; }

.flip-zoom-dialog {
  width:min(1320px, calc(100vw - 40px));
  height:min(900px, calc(100vh - 40px));
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#f7f4ee,#ebe5da);
  border:1px solid rgba(226,221,214,.9);
  border-radius:22px;
  box-shadow:0 32px 70px rgba(0,0,0,.28);
  overflow:hidden;
}

.flip-zoom-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 18px;
  border-bottom:1px solid rgba(226,221,214,.9);
  background:rgba(255,252,246,.9);
}

.flip-zoom-actions,
.flip-zoom-nav {
  display:flex;
  align-items:center;
  gap:8px;
}

.flip-zoom-title {
  font-size:12px;
  color:var(--muted);
  font-family:'DM Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.flip-zoom-btn {
  appearance:none;
  border:1px solid rgba(226,221,214,.95);
  background:#fffdf8;
  color:var(--ink);
  border-radius:999px;
  padding:8px 12px;
  font:600 12px/1 'DM Sans',sans-serif;
  cursor:pointer;
}

.flip-zoom-btn:hover:not(:disabled) {
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}

.flip-zoom-btn:disabled {
  opacity:.48;
  cursor:not-allowed;
}

.flip-zoom-stage {
  position:relative;
  flex:1;
  overflow:auto;
  padding:24px;
  background:
    radial-gradient(circle at top,rgba(255,255,255,.4),transparent 45%),
    linear-gradient(180deg,#efe8dc,#e3dacb);
}

.flip-zoom-canvas {
  position:relative;
  margin:0 auto;
}

.flip-zoom-spread {
  position:absolute;
  top:0;
  left:0;
  display:flex;
  align-items:stretch;
  box-shadow:0 28px 48px rgba(14,14,15,.18);
  transform-origin:left top;
  transition:transform .18s ease;
}

.flip-zoom-page {
  position:relative;
  background:#fff;
  overflow:hidden;
}

.flip-zoom-page.left { border-radius:6px 0 0 6px; }

.flip-zoom-page.right { border-radius:0 6px 6px 0; }

.flip-zoom-page img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}

.flip-zoom-gutter {
  width:12px;
  background:linear-gradient(90deg,#bfb4a3,#f4ede3,#bfb4a3);
}

.flip-zoom-loader {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  text-align:center;
  color:var(--muted);
  font:12px/1.5 'DM Mono',monospace;
  background:rgba(255,255,255,.92);
}

.flip-zoom-page-num {
  position:absolute;
  bottom:12px;
  font:11px/1 'DM Mono',monospace;
  color:rgba(14,14,15,.58);
  background:rgba(247,244,239,.94);
  border:1px solid rgba(226,221,214,.92);
  border-radius:999px;
  padding:4px 9px;
}

.flip-zoom-page.left .flip-zoom-page-num { right:12px; }

.flip-zoom-page.right .flip-zoom-page-num { left:12px; }

@media (max-width: 900px) {
  .flip-wrap.is-fullscreen {
    padding:0;
    min-height:100dvh;
  }

  .flip-wrap.is-fullscreen .flip-shell {
    height:calc(100dvh - 112px - env(safe-area-inset-bottom));
    padding:8px;
    align-items:center;
    overflow:auto;
  }

  .flip-wrap.is-fullscreen .flip-book-frame {
    max-height:none;
    padding:0;
    border-radius:0;
  }

  .flip-wrap.is-fullscreen .spread-nav {
    position:fixed;
    left:8px;
    right:8px;
    top:auto;
    bottom:calc(8px + env(safe-area-inset-bottom));
    transform:none;
    width:auto;
    max-width:none;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
    padding:8px;
    border-radius:14px;
  }

  .flip-wrap.is-fullscreen .spread-nav #flipInfo {
    grid-column:1 / -1;
    order:-2;
    text-align:center;
  }

  .flip-wrap.is-fullscreen .spread-nav #flipPrevBtn { order:1; }

  .flip-wrap.is-fullscreen .spread-nav .spread-jump {
    order:2;
    grid-column:span 2;
    flex-direction:row;
    min-width:0;
  }

  .flip-wrap.is-fullscreen .spread-nav #flipNextBtn { order:3; }

  .flip-wrap.is-fullscreen .spread-nav #flipZoomBtn {
    order:4;
    grid-column:span 2;
  }

  .flip-wrap.is-fullscreen .spread-nav .spread-jump input {
    min-width:0;
  }

  .flip-wrap.is-fullscreen .spread-nav #flipCloseBtn {
    order:5;
    grid-column:span 2;
    margin:0;
  }

  body.has-flip-fullscreen .flip-cover-toggle-row {
    left:12px;
    top:calc(10px + env(safe-area-inset-top));
    width:auto;
  }

  body.has-flip-fullscreen .flip-cover-toggle {
    min-height:38px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.96);
    box-shadow:0 6px 20px rgba(14,14,15,.12);
  }
}

/* ── Inline flip restrictions (non-fullscreen mode) ── */

/* Magnifier is available only in fullscreen flip-through. */
#vFlip:not(.is-fullscreen) #flipZoomBtn { display:none !important; }

.viewer-zoom-btn {
  min-width:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
}

.viewer-zoom-btn.on {
  background:var(--ink) !important;
  color:var(--paper) !important;
  border-color:var(--ink) !important;
}

.viewer-magnifier-lens {
  position:fixed;
  width:170px;
  height:170px;
  display:none;
  border:2px solid rgba(255,255,255,.98);
  border-radius:50%;
  box-shadow:
    0 16px 36px rgba(0,0,0,.30),
    inset 0 0 0 1px rgba(14,14,15,.18);
  background-repeat:no-repeat;
  background-color:#fff;
  pointer-events:none;
  transform:translate(-50%, -50%);
  z-index:2200;
}

.viewer-magnifier-lens.on { display:block; }

body.viewer-magnifier-active #vSpread .page-div img,
body.viewer-magnifier-active #vFlip.is-fullscreen .flip-page-inner img {
  cursor:none;
}

/* Hide Prev/Next nav in inline mode; show only in fullscreen sidebar */
#vFlip:not(.is-fullscreen) #flipPrevBtn,
#vFlip:not(.is-fullscreen) #flipNextBtn { display:none; }

/* Inline page-limit banner */
.inline-flip-limit-banner {
  display:none;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 14px;
  padding:10px 16px;
  margin:8px auto 0;
  max-width:600px;
  width:100%;
  background:#fdf8f0;
  border:1px solid #e8d9b5;
  border-radius:8px;
  font-size:13px;
  color:#5a4a32;
  text-align:center;
  box-sizing:border-box;
}

.inline-flip-limit-banner button {
  padding:6px 14px;
  background:linear-gradient(135deg,#8b5e2a,#c48a3f);
  color:#fff;
  border:none;
  border-radius:6px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}

.inline-flip-limit-banner button:hover {
  opacity:.88;
}

#vFlip.is-fullscreen .inline-flip-limit-banner { display:none !important; }

