:root{
  --cream:#FAF7F2; --cream-deep:#F2EBDE; --paper:#FCFAF5; --tan:#E8DFD0;
  --ink:#2B2D2A; --ink-soft:#4A4D48; --muted:#7A7468; --line:#D7CDB8;
  --olive:#5C6B3A; --olive-deep:#3F4A26; --gold:#B89968;
  --serif:'Cormorant Garamond','Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0; font-family:var(--sans); color:var(--ink);
  background:radial-gradient(120% 120% at 50% 0%, #F4EEE2 0%, #E7DCC8 100%);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--olive-deep); text-decoration:none;}
.reader-wrap{display:flex; flex-direction:column; height:100vh; min-height:0;}

/* Standalone header (hidden inside the modal) */
.reader-top{
  flex:0 0 auto; display:flex; align-items:center; justify-content:space-between;
  padding:14px 22px; background:var(--ink); color:var(--cream);
}
.reader-top .ttl{font-family:var(--serif); font-size:1.2rem;}
.reader-top a{color:var(--cream); font-size:.85rem; font-weight:600; border:1px solid rgba(250,247,242,.4); padding:7px 14px; border-radius:6px;}
.reader-top a:hover{background:rgba(250,247,242,.1);}
html.embed .reader-top{display:none;}

/* Book stage */
.book-stage{
  flex:1 1 auto; min-height:0; position:relative;
  display:flex; align-items:center; justify-content:center;
  padding:18px 14px;
}
#flipbook{ touch-action:pan-y; }
#flipbook .page{
  background:var(--paper);
  background-image:linear-gradient(90deg, rgba(43,45,42,.05), rgba(43,45,42,0) 6%);
  color:var(--ink-soft);
  box-shadow:inset 0 0 60px rgba(120,100,60,.05);
  overflow:hidden;
}
#flipbook .page.--right{ background-image:linear-gradient(-90deg, rgba(43,45,42,.05), rgba(43,45,42,0) 6%); }
.page-content{
  height:100%; width:100%; padding:30px 30px 40px; overflow-y:auto;
  font-size:14.5px; line-height:1.62;
}
.page-content::-webkit-scrollbar{width:7px;}
.page-content::-webkit-scrollbar-thumb{background:var(--tan); border-radius:4px;}
.page-content p{margin:0 0 .85em;}
.page-content h2{font-family:var(--serif); font-weight:600; color:var(--ink); font-size:1.7rem; line-height:1.12; margin:0 0 .25em; letter-spacing:-.01em;}
.page-content h3{font-family:var(--sans); font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--olive); margin:1.5em 0 .7em;}
.page-content h3:first-child{margin-top:0;}
.page-content ul{list-style:none; padding:0; margin:0 0 1em;}
.page-content ul li{position:relative; padding-left:18px; margin-bottom:.7em;}
.page-content ul li::before{content:""; position:absolute; left:2px; top:.6em; width:5px; height:5px; border-radius:50%; background:var(--olive);}
.page-content ul.plain li::before{background:var(--muted); width:4px; height:4px; top:.62em;}
.page-content strong{color:var(--ink);}
.page-content em{color:var(--ink-soft);}
.page-content .it{font-style:italic;}
.module-label{font-family:var(--sans); font-weight:600; font-size:.7rem; text-transform:uppercase; letter-spacing:.24em; color:var(--gold); margin:0 0 .35em;}
.blank{display:inline-block; min-width:140px; border-bottom:1px solid var(--line); height:1em; vertical-align:bottom;}
.rate{color:var(--muted); font-weight:600; white-space:nowrap;}
.quote{font-family:var(--serif); font-style:italic; font-size:1.2rem; line-height:1.4; color:var(--ink); border-left:3px solid var(--gold); padding-left:18px; margin:1em 0;}
.quote cite{display:block; font-style:normal; font-family:var(--sans); font-size:.82rem; color:var(--muted); margin-top:.5em;}
.pnum{position:absolute; bottom:12px; left:0; right:0; text-align:center; font-size:.7rem; color:var(--muted); letter-spacing:.1em;}

/* Cover + back (hard pages) */
.page.--cover .page-content,
.page.--back .page-content{
  background:linear-gradient(160deg,#33402a 0%,#222a1b 100%); color:var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px 34px;
}
.page.--cover .eyebrow{font-size:.7rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:22px;}
.page.--cover h1{font-family:var(--serif); font-weight:600; color:var(--cream); font-size:2.6rem; line-height:1.05; margin:0;}
.page.--cover .sub{font-family:var(--serif); font-style:italic; font-size:1.2rem; color:rgba(250,247,242,.9); margin:8px 0 4px;}
.page.--cover .prog{font-size:.82rem; color:rgba(250,247,242,.7); max-width:24ch; margin:4px auto 0;}
.page.--cover .rule{width:54px; height:1px; background:var(--gold); margin:26px auto;}
.page.--cover .author{font-family:var(--serif); font-size:1.35rem; color:var(--cream);}
.page.--cover .role{font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(250,247,242,.75); margin-top:6px;}
.page.--back h2{color:var(--cream); font-family:var(--serif); font-size:2rem; margin:0 0 12px;}
.page.--back p{color:rgba(250,247,242,.85); max-width:30ch; margin:0 auto 22px;}
.page.--back .buy{display:inline-block; background:var(--gold); color:#2a2113; font-weight:600; padding:13px 24px; border-radius:6px; font-size:.92rem;}
.page.--back .buy:hover{background:#caa974;}

/* Navigation bar */
.book-nav{
  flex:0 0 auto; display:flex; align-items:center; justify-content:center; gap:18px;
  padding:12px; background:rgba(250,247,242,.55); border-top:1px solid var(--line);
}
.book-nav button{
  font-family:var(--sans); font-weight:600; font-size:.85rem; cursor:pointer;
  background:var(--ink); color:var(--cream); border:0; border-radius:6px; padding:9px 18px;
}
.book-nav button:hover{background:var(--olive-deep);}
.book-nav button:disabled{opacity:.35; cursor:default;}
.book-nav .counter{font-size:.82rem; color:var(--muted); min-width:96px; text-align:center;}
.hint{flex:0 0 auto; text-align:center; font-size:.72rem; color:var(--muted); padding:0 0 8px;}

/* Table of Contents */
.page-content ul.toc{list-style:none; padding:0; margin:.5em 0 0; font-size:13.5px;}
.page-content ul.toc li{display:flex; align-items:flex-end; gap:8px; margin-bottom:.62em; padding-left:0; line-height:1.3;}
.page-content ul.toc li::before{display:none; content:none;}
.toc .t{font-weight:500; color:var(--ink);}
.toc .ld{flex:1 1 auto; border-bottom:1px dotted var(--line); transform:translateY(-4px); min-width:10px;}
.toc .pg{color:var(--muted);}
.toc-cont{font-family:var(--sans); font-size:.7rem; text-transform:uppercase; letter-spacing:.18em; color:var(--muted); margin:0 0 .8em;}

/* Fallback when the flip library can't load: stack pages and let them grow */
body.no-flip .book-stage{display:block; overflow:auto; padding:24px;}
body.no-flip #flipbook{max-width:680px; margin:0 auto;}
body.no-flip #flipbook .page{height:auto !important; width:auto !important; margin:0 auto 22px; max-width:680px; border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.12);}
body.no-flip .page-content{height:auto; overflow:visible;}
body.no-flip .book-nav, body.no-flip .hint{display:none;}
