:root{
  --ink:#0B0D12; --ink2:#0F131B; --ink3:#131926;
  --ivory:#EAE2CE; --ivory2:#CFC7B2; --mut:rgba(234,226,206,.62);
  --gold:#C9A257; --goldh:#DDB96F; --goldsoft:rgba(201,162,87,.45);
  --line:rgba(201,162,87,.22); --linelt:rgba(201,162,87,.13);
  --blue:#33507E; --blueice:#8FA9CE;
  --serif:'Cormorant Garamond',Georgia,serif;
  --body:'Crimson Pro',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --hdrh:72px;
  --rs:19px; --rlh:1.85; --rw:44rem; --rf:var(--body); --rls:0;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-io:cubic-bezier(.45,0,.55,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:hidden}
@supports (overflow-x:clip){html,body{overflow-x:clip}}
body{background:var(--ink);color:var(--ivory);font:400 19px/1.75 var(--body);-webkit-font-smoothing:antialiased;transition:background .5s,color .5s}
body.lock{overflow:hidden}
a,button{touch-action:manipulation}
::selection{background:rgba(201,162,87,.28);color:#F4EDD9}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:0 0;border:0;cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:1.5px solid var(--gold);outline-offset:3px;border-radius:1px}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#08090D}
::-webkit-scrollbar-thumb{background:#232838;border-radius:5px}
#grain{position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.055;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.85 0 0 0 0 0.8 0 0 0 0 0.66 0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E")}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(22px,5vw,64px)}
.skip{position:fixed;top:-60px;left:16px;z-index:400;background:var(--gold);color:#191307;padding:10px 20px;font:600 11px var(--sans);letter-spacing:.2em;transition:top .3s}
.skip:focus{top:14px}
#readbar{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--gold),var(--goldh));z-index:120;display:none}
body.in-reader #readbar{display:block}
body.focus #readbar{top:auto;bottom:0;height:1px}
.nojs{padding:120px 24px;text-align:center;font-family:Georgia,serif}

/* typography */
.eyebrow{font:600 10.5px var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--gold)}
.eyebrow.dim{color:var(--mut)}
.h1{font:500 clamp(38px,6.5vw,78px)/1.06 var(--serif);letter-spacing:.01em}
.h2{font:500 clamp(29px,4.2vw,52px)/1.12 var(--serif)}
.h1 em,.h2 em{font-style:italic;color:var(--ivory2)}
.lead{font-size:clamp(19px,1.7vw,23px);line-height:1.68;color:rgba(234,226,206,.85)}
.small{font-size:15px;color:var(--mut)}
.orn{display:flex;align-items:center;gap:14px}
.orn::before,.orn::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.orn-d{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex:none;box-shadow:0 0 10px rgba(201,162,87,.5)}
.orn.wide{max-width:340px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:17px 30px;font:600 10.5px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--ivory);border:1px solid var(--goldsoft);position:relative;white-space:nowrap;transition:border-color .35s,background .35s,color .35s,transform .35s}
.btn:hover{border-color:var(--gold);background:rgba(201,162,87,.07);transform:translateY(-1px)}
.btn::before,.btn::after{content:"";position:absolute;width:6px;height:6px;border:1px solid var(--goldsoft);transition:width .3s,height .3s}
.btn::before{top:-3px;left:-3px;border-right:0;border-bottom:0}
.btn::after{bottom:-3px;right:-3px;border-left:0;border-top:0}
.btn:hover::before,.btn:hover::after{width:11px;height:11px}
.btn-solid{background:linear-gradient(180deg,#D8B269,#AE8740);border-color:#DCB670;color:#191307}
.btn-solid:hover{background:linear-gradient(180deg,#E6C57C,#C09A52);color:#191307}
.btn-sm{padding:12px 20px}
.btn-ghost{border-color:rgba(234,226,206,.22);color:var(--mut)}
.btn-ghost:hover{color:var(--ivory);background:0;transform:translateY(-1px)}
.btn[disabled]{opacity:.35;cursor:not-allowed}
.tlink{font:600 10.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ivory2);display:inline-flex;gap:10px;align-items:center;transition:color .3s;background:0 0;border:0;cursor:pointer;padding:6px 0}
.tlink:hover{color:var(--gold)}
.icobtn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--linelt);color:var(--mut);transition:.3s;flex:none}
.icobtn:hover{color:var(--ivory);border-color:var(--goldsoft)}
.icobtn.on{color:var(--gold);border-color:var(--goldsoft);background:rgba(201,162,87,.08)}
.icobtn svg{width:17px;height:17px}

/* header */
.hdr{position:fixed;top:0;inset-inline:0;z-index:100;background:rgba(11,13,18,.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--linelt);transition:background .4s,transform .45s}
.hdr.deep{background:rgba(11,13,18,.88)}
.hdr-in{height:var(--hdrh);display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand .sigil{width:22px;height:31px}
.brand-t{font:600 13px var(--serif);letter-spacing:.34em;color:var(--ivory)}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a,.linkbtn{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut);padding:8px 2px;transition:color .3s;position:relative;background:0 0;border:0;cursor:pointer}
.nav a:hover,.linkbtn:hover{color:var(--ivory)}
.nav a[aria-current]{color:var(--gold)}
.nav a[aria-current]::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--goldsoft)}
.hdr-acts{display:flex;align-items:center;gap:14px;margin-left:8px}
.burger{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.burger span{width:22px;height:1.5px;background:var(--ivory)}
@media(max-width:1020px){.nav,.hdr-acts .linkbtn,.hdr-acts .btn{display:none}.burger{display:flex}}
body.imm .hdr,body.focus .hdr{transform:translateY(-100%)}

/* mobile menu */
.mmenu{position:fixed;inset:0;z-index:150;background:rgba(9,10,14,.98);padding:22px clamp(26px,8vw,60px) 40px;display:flex;flex-direction:column;overflow:auto}
.mmenu-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}
.mmenu-head span{font:600 12px var(--serif);letter-spacing:.3em;color:var(--gold)}
.mmenu nav{display:flex;flex-direction:column}
.mmenu nav a{font:500 clamp(26px,6.5vw,38px)/1.5 var(--serif);color:var(--ivory);display:flex;gap:18px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--linelt)}
.mmenu nav a i{font:600 11px var(--sans);letter-spacing:.2em;color:var(--gold);font-style:normal}
.mmenu-acts{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.mmenu-foot{margin-top:auto;padding-top:40px;font-style:italic;color:var(--mut)}

/* footer */
.ftr{border-top:1px solid var(--linelt);background:#08090D;padding:76px 0 34px;margin-top:60px}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:48px}
@media(max-width:920px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ftr-grid{grid-template-columns:1fr}}
.ftr-brand .sigil{width:26px;height:37px;margin-bottom:18px}
.ftr-brand h4{font:600 17px var(--serif);letter-spacing:.28em;margin-bottom:10px}
.ftr-brand p{font-size:14.5px;color:var(--mut);max-width:32ch}
.ftr h5{font:600 10px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.ftr nav a{display:block;font-size:15px;color:var(--mut);padding:5px 0;transition:color .3s}
.ftr nav a:hover{color:var(--ivory)}
.ftr-bar{margin-top:60px;padding-top:26px;border-top:1px solid var(--linelt);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12.5px;color:rgba(234,226,206,.4)}

/* sections */
.sec{padding-block:clamp(78px,11vh,130px)}
.sec-head{max-width:780px;margin-bottom:clamp(40px,5vw,64px)}
.sec-head .h2{margin:18px 0 22px}
.split{display:grid;grid-template-columns:5fr 6fr;gap:clamp(44px,6vw,92px);align-items:center}
.split.rev{grid-template-columns:6fr 5fr}
@media(max-width:900px){.split,.split.rev{grid-template-columns:1fr}}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease;transition-delay:var(--d,0s)}
.rv.on{opacity:1;transform:none}
.frame{border:1px solid var(--linelt);padding:14px;background:#0A0C11;position:relative}
.frame svg{width:100%;height:auto}
.frame img{width:100%;height:auto}
.tag{display:inline-block;font:600 9.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--goldsoft);color:var(--gold)}
.tag.free{background:rgba(201,162,87,.1)}
.tag.soon{border-color:rgba(234,226,206,.25);color:var(--mut)}
.access{display:inline-flex;align-items:center;gap:8px;font:600 9.5px var(--sans);letter-spacing:.28em;color:var(--mut)}
.access::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* hero */
.hero{min-height:100vh;min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;text-align:center;padding:120px 20px 100px}
.mist{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.14;pointer-events:none;animation:drift 44s ease-in-out infinite alternate}
.mist.a{background:#22385C;bottom:-30vmax;left:-18vmax}
.mist.b{background:#4A3B1E;top:-28vmax;right:-16vmax;animation-delay:-20s}
@keyframes drift{from{transform:translate3d(-3%,2%,0) scale(1)}to{transform:translate3d(5%,-5%,0) scale(1.14)}}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 72% 18%,rgba(201,162,87,.09),transparent 70%),radial-gradient(55% 45% at 22% 85%,rgba(51,80,126,.16),transparent 70%);pointer-events:none}
.hero-motif{position:absolute;left:50%;top:52%;height:80vh;transform:translate(-50%,-46%);opacity:.9;pointer-events:none;filter:drop-shadow(0 0 40px rgba(0,0,0,.6));animation:motifSway 16s var(--ease-io) infinite alternate}
@keyframes motifSway{from{transform:translate(-50%,-46%)}to{transform:translate(-50%,calc(-46% - 14px))}}
.hero-in{position:relative;z-index:2;max-width:960px}
.hero-in>*{opacity:0;animation:heroIn .7s var(--ease) both}
.hero-in>*:nth-child(2){animation-delay:.07s}
.hero-in>*:nth-child(3){animation-delay:.14s}
.hero-in>*:nth-child(4){animation-delay:.21s}
.hero-in>*:nth-child(5){animation-delay:.28s}
.hero-in>*:nth-child(6){animation-delay:.35s}
@keyframes heroIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hero-h{font:600 clamp(30px,9.6vw,124px)/1 var(--serif);letter-spacing:.04em;position:relative;text-shadow:0 6px 40px rgba(0,0,0,.55)}
.hero-h .echo{position:absolute;inset:0;transform:translate(10px,12px) skewX(-7deg);color:rgba(143,169,206,.13);pointer-events:none;user-select:none}
.hero-sub{font:500 clamp(19px,2.6vw,29px) var(--serif);font-style:italic;color:rgba(234,226,206,.85);margin:26px 0 10px}
.hero-tag{font:600 10.5px var(--sans);letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:44px}
.hero-cta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.hero-note{margin-top:46px;font-size:15px;color:var(--mut)}
.hero-note a{color:var(--ivory2);border-bottom:1px solid var(--goldsoft)}
.hero-cred{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:space-between;padding:0 clamp(22px,4vw,50px);font:500 10px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:rgba(234,226,206,.42);z-index:2;flex-wrap:wrap;gap:10px}
.scrollcue{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);width:1px;height:52px;background:linear-gradient(180deg,transparent,var(--goldsoft));z-index:2;animation:cue 2.6s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.2}50%{opacity:1}}
@media(max-width:700px){.scrollcue{display:none}.hero-motif{height:64vh}.hero{padding:calc(var(--hdrh) + 44px) 20px 84px}}

/* dust */
.dust{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.dust span{position:absolute;bottom:-4%;width:3px;height:3px;border-radius:50%;background:#E8D9A8;opacity:0;box-shadow:0 0 6px rgba(232,217,168,.55);animation:dustFloat 26s linear infinite}
.dust span:nth-child(1){left:8%;animation-duration:33s;animation-delay:-4s}
.dust span:nth-child(2){left:19%;width:2px;height:2px;animation-duration:24s;animation-delay:-14s}
.dust span:nth-child(3){left:31%;animation-duration:29s;animation-delay:-9s}
.dust span:nth-child(4){left:43%;width:2px;height:2px;animation-duration:37s;animation-delay:-22s}
.dust span:nth-child(5){left:55%;animation-duration:26s;animation-delay:-2s}
.dust span:nth-child(6){left:66%;width:2px;height:2px;animation-duration:31s;animation-delay:-17s}
.dust span:nth-child(7){left:78%;animation-duration:28s;animation-delay:-11s}
.dust span:nth-child(8){left:88%;width:2px;height:2px;animation-duration:35s;animation-delay:-26s}
.dust span:nth-child(9){left:13%;width:2px;height:2px;animation-duration:30s;animation-delay:-6s}
@keyframes dustFloat{
 0%{transform:translate(0,0);opacity:0}
 10%{opacity:.3}
 50%{transform:translate(16px,-48vh);opacity:.18}
 90%{opacity:.05}
 100%{transform:translate(-8px,-96vh);opacity:0}
}

/* stats / parts */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--linelt)}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}
.stats>div{padding:30px 26px;border-left:1px solid var(--linelt)}
.stats>div:first-child{border-left:0}
@media(max-width:760px){.stats>div{border-top:1px solid var(--linelt)}.stats>div:nth-child(odd){border-left:0}.stats>div:nth-child(-n+2){border-top:0}}
@media(max-width:480px){.stats>div{padding:22px 14px}.stats b{font-size:22px}}
.stats b{display:block;font:500 clamp(26px,3.4vw,42px) var(--serif);color:var(--ivory)}
.stats span{font:600 9.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.partlist{border-top:1px solid var(--linelt)}
.partrow{display:grid;grid-template-columns:88px 1fr auto;align-items:baseline;gap:18px;padding:22px 10px;border-bottom:1px solid var(--linelt);transition:background .3s}
.partrow:hover{background:rgba(201,162,87,.045)}
.partrow .rn{font:500 28px var(--serif);color:var(--gold)}
.partrow .pt{font:500 clamp(19px,2.4vw,26px) var(--serif)}
.partrow .pc{font:600 10px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--mut)}
@media(max-width:600px){
  .partrow{grid-template-columns:52px 1fr;grid-template-rows:auto auto;gap:6px 14px;padding:18px 6px}
  .partrow .rn{grid-column:1;grid-row:1;align-self:center}
  .partrow .pt{grid-column:2;grid-row:1}
  .partrow .pc{grid-column:2;grid-row:2}
}

/* hairline grids */
.hgrid{display:grid;gap:1px;background:var(--linelt);border:1px solid var(--linelt)}
.hgrid>*{background:var(--ink);padding:clamp(26px,3vw,38px)}
@media(min-width:701px){.hgrid.c3{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.hgrid{grid-template-columns:1fr}}

/* home misc */
.band{border-block:1px solid var(--linelt);padding:44px 0;background:rgba(15,19,27,.45)}
.band-in{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(20px,4vw,54px);align-items:center}
@media(max-width:820px){.band-in{grid-template-columns:1fr;gap:18px}}
.chap-live{font:500 clamp(22px,3.4vw,38px) var(--serif)}
.chap-live i{color:var(--gold);font-style:normal}

/* journey flow */
.flow{position:relative;max-width:720px;margin-inline:auto;padding-left:34px}
.flow::before{content:"";position:absolute;left:8px;top:14px;bottom:14px;width:1px;background:linear-gradient(180deg,transparent,var(--line) 12%,var(--line) 88%,transparent)}
.step{position:relative;padding:20px 0 20px 26px}
.step::before{content:"";position:absolute;left:-34px;top:30px;width:17px;height:1px;background:var(--goldsoft)}
.step .dot{position:absolute;left:-38px;top:22px;width:9px;height:9px;transform:rotate(45deg);background:var(--ink);border:1px solid var(--gold)}
.step:last-child .dot{background:var(--gold);box-shadow:0 0 14px rgba(201,162,87,.6)}
.step .sn{font:600 9.5px var(--sans);letter-spacing:.34em;color:var(--gold);text-transform:uppercase}
.step h4{font:500 24px var(--serif);margin:4px 0 2px}
.step p{color:var(--mut);font-size:16px}
.manifesto{text-align:center;font:500 clamp(21px,3vw,30px)/1.5 var(--serif);font-style:italic;color:rgba(234,226,206,.9)}
.manifesto b{color:var(--gold);font-weight:500}

/* quote */
.quote{max-width:820px;margin-inline:auto;text-align:center}
.quote blockquote{font:500 clamp(21px,2.9vw,31px)/1.55 var(--serif);font-style:italic;color:var(--ivory)}
.quote .sigil{width:24px;height:34px;margin:0 auto 18px}
.quote .who{letter-spacing:.34em;font:600 12px var(--sans);text-transform:uppercase;color:var(--ivory)}
.quote .role{font-size:14.5px;color:var(--mut);font-style:italic;margin-top:6px}

/* book (home page) */
.bookwrap{display:flex;justify-content:center;padding:24px 0 34px}
.book{position:relative;width:min(280px,72vw);filter:drop-shadow(0 34px 46px rgba(0,0,0,.6));animation:floaty 9s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.book .face{border:1px solid rgba(201,162,87,.3)}
.book .pages{position:absolute;top:7px;bottom:7px;right:-7px;width:7px;background:repeating-linear-gradient(180deg,#D8D2C0 0 2px,#B4AE9C 2px 4px)}
.book .pagesb{position:absolute;right:-4px;left:4px;bottom:-7px;height:7px;background:linear-gradient(90deg,#D8D2C0,#9C9786);opacity:.9}
.price{display:flex;gap:26px;flex-wrap:wrap;margin:22px 0}
.price div b{display:block;font:500 26px var(--serif);color:var(--ivory)}
.price div span{font:600 9.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.featlist{list-style:none;margin:18px 0}
.featlist li{padding:9px 0 9px 26px;position:relative;color:rgba(234,226,206,.82);border-bottom:1px solid rgba(201,162,87,.09);font-size:16.5px}
.featlist li::before{content:"";position:absolute;left:2px;top:19px;width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--goldsoft)}

/* ═══ READER ENGINE ═══ */
.rbar{position:sticky;top:var(--hdrh);z-index:60;background:rgba(11,13,18,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--linelt);transition:opacity .4s}
.rbar-in{height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.rbar-part{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rbar-part:hover{color:var(--ivory)}
.rbar-acts{display:flex;align-items:center;gap:8px}
.rbar-pct{font:600 10px var(--sans);letter-spacing:.2em;color:var(--gold);width:44px;text-align:right;flex:none;font-variant-numeric:tabular-nums}
.rbar-aab{font:600 13px var(--serif);letter-spacing:.08em;color:var(--mut);border:1px solid var(--linelt);width:40px;height:40px;display:grid;place-items:center;transition:.3s}
.rbar-aab:hover{color:var(--gold);border-color:var(--goldsoft)}
body.imm .rbar{opacity:0;pointer-events:none}
body.imm .rbar:hover{opacity:1}
body.imm{--hdrh:0px}
.imm-ctl{position:fixed;right:calc(18px + env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:90;display:none;gap:10px;opacity:.35;transition:opacity .3s}
.imm-ctl:hover{opacity:1}
body.imm .imm-ctl{display:flex}
body.focus .imm-ctl{display:flex;opacity:.12}
body.focus .imm-ctl:hover{opacity:.7}
body.focus .imm-ctl .icobtn{border-color:transparent}

.ch-wrap{max-width:var(--rw);margin:0 auto;padding:clamp(56px,8vh,90px) clamp(18px,4vw,28px) 40px;transition:max-width .4s}
body[data-wd="0"] .ch-wrap{--rw:38rem}
body[data-wd="1"] .ch-wrap{--rw:44rem}
body[data-wd="2"] .ch-wrap{--rw:52rem}
.ch-head{text-align:center;margin-bottom:clamp(44px,6vh,70px)}
.ch-where{font:600 9.5px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--mut);margin-bottom:18px}
.ch-no{font:600 11px var(--sans);letter-spacing:.5em;text-transform:uppercase;color:var(--ivory2);margin:26px 0 12px}
.ch-title{font:500 clamp(40px,6.5vw,64px)/1.05 var(--serif)}
.ch-head .orn{margin:30px auto 22px;max-width:240px}
.ch-meta{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}
.ch-body{font:400 var(--rs)/var(--rlh) var(--rf);letter-spacing:var(--rls);color:rgba(234,226,206,.87);transition:font-size .3s}
body[data-sz="0"]{--rs:17px}body[data-sz="1"]{--rs:19px}
body[data-sz="2"]{--rs:21.5px}body[data-sz="3"]{--rs:24px}
body[data-lh="0"]{--rlh:1.7}body[data-lh="1"]{--rlh:1.85}body[data-lh="2"]{--rlh:2.05}
body[data-ls="1"]{--rls:.015em}
body[data-ft="1"]{--rf:Georgia,'Times New Roman',serif}
.ch-body p+p{margin-top:1.4em}
.ch-body .dc:first-letter{font:500 3.6em/0.78 var(--serif);color:var(--gold);float:left;padding:8px 12px 0 0}
.ch-body h3{font:500 1.6em/1.3 var(--serif);margin:1.8em 0 .6em;color:var(--ivory)}
.ch-body blockquote{margin:1.6em 0;padding:.2em 0 .2em 1.4em;border-left:1px solid var(--goldsoft);font-style:italic;color:var(--ivory2)}
.break{display:flex;justify-content:center;gap:14px;margin:2.6em 0}
.break span{width:5px;height:5px;transform:rotate(45deg);background:var(--goldsoft)}
body.rt-cine .break span{animation:breathe 5s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.4;transform:rotate(45deg) scale(1)}50%{opacity:1;transform:rotate(45deg) scale(1.25)}}

/* entrance */
.enter .ch-where,.enter .ch-no,.enter .ch-title,.enter .ch-head .orn,.enter .ch-meta{opacity:0;animation:chfade .7s ease forwards}
.enter .ch-no{animation-delay:.1s}.enter .ch-title{animation-delay:.22s}
.enter .ch-head .orn{animation-delay:.36s}.enter .ch-meta{animation-delay:.44s}
.enter .ch-body>*:nth-child(-n+4){opacity:0;animation:chfade .6s ease forwards;animation-delay:.5s}
.enter .ch-body>*:nth-child(2){animation-delay:.58s}.enter .ch-body>*:nth-child(3){animation-delay:.66s}.enter .ch-body>*:nth-child(4){animation-delay:.74s}
@keyframes chfade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* resume bar */
.resume{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 auto 26px;max-width:620px;padding:16px 22px;border:1px solid var(--goldsoft);border-left:3px solid var(--gold);background:rgba(15,19,27,.5)}
.resume p{font-size:15px;color:var(--mut)}
.resume p b{color:var(--ivory2)}
.resume .row{display:flex;gap:12px}

/* passage selection */
.ch-body p{position:relative;cursor:default}
.ch-body p.sel{box-shadow:inset 2px 0 0 var(--gold);padding-left:14px;margin-left:-14px}
.pmark{position:absolute;left:-8px;top:6px;width:10px;height:10px;transform:rotate(45deg);background:var(--gold);opacity:.5;pointer-events:none}
.pchip{position:fixed;z-index:95;display:flex;gap:8px;animation:tin .3s ease}
.pchip button{font:600 9.5px var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:11px 16px;border:1px solid var(--goldsoft);background:var(--ink2);color:var(--gold)}
.pchip button:hover{background:rgba(201,162,87,.12)}
.savedpass{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid rgba(201,162,87,.1)}
.savedpass .snip{font:400 15px var(--body);font-style:italic;color:var(--ivory2)}

/* illustrations */
.platefig{margin:2.4em 0}
.platefig .frame{cursor:zoom-in}
.platefig .fxc{display:flex;flex-direction:column;gap:8px}
.platefig figcaption{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:13.5px;color:var(--mut)}
.platefig figcaption em{font-style:italic}
.platefig .fx-open{font:600 9px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);background:0 0;border:0;cursor:pointer;padding:4px 0}
.cine-fig{margin:0 calc(50% - 50vw) 2.6em;padding:0}
.cine-fig .frame{border:0;border-block:1px solid var(--line);overflow:hidden}
.cine-fig svg{width:100vw;height:auto;max-height:78vh;object-fit:cover}
body.rt-cine .cine-fig .frame>svg,body.rt-cine .cine-fig .frame>img{animation:kb 24s var(--ease-io) infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.06)}}

/* lightbox */
.lbx{position:fixed;inset:0;z-index:250;background:rgba(4,5,9,.94);display:flex;flex-direction:column;animation:lbxin .35s ease}
@keyframes lbxin{from{opacity:0}to{opacity:1}}
.lbx-top{display:flex;justify-content:space-between;align-items:center;padding:16px clamp(16px,3vw,28px);flex:none}
.lbx-top span{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.lbx-stage{flex:1;overflow:hidden;display:grid;place-items:center;padding:0 clamp(12px,4vw,48px);cursor:zoom-in}
.lbx-stage img{max-width:100%;max-height:100%;transform-origin:center;transition:transform .25s;user-select:none;-webkit-user-drag:none}
.lbx-stage.zoomed img{transition:none;cursor:grab}
.lbx-cap{flex:none;text-align:center;padding:14px 20px calc(18px + env(safe-area-inset-bottom));font:500 15px var(--body);font-style:italic;color:var(--mut)}
.lbx-nav{position:fixed;top:50%;transform:translateY(-50%);width:46px;height:46px;display:grid;place-items:center;color:var(--mut);background:rgba(15,19,27,.6);border:1px solid var(--linelt)}
.lbx-nav:hover{color:var(--ivory)}
.lbx-prev{left:14px}.lbx-next{right:14px}

/* chapter end */
.ch-end{text-align:center;padding:70px 24px 30px}
.ch-end .orn{margin:0 auto 30px;max-width:260px}
.ch-end h3{font:500 clamp(25px,3.4vw,34px) var(--serif);margin:14px 0 26px}
.ch-end .row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.ch-next{margin-top:36px;font-size:15px;color:var(--mut)}
.ch-next b{color:var(--ivory2)}
.sharerow{display:flex;gap:18px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.sharerow button,.sharerow a{font:600 9.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--mut);background:0 0;border:0;cursor:pointer;padding:6px 2px;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.sharerow button:hover,.sharerow a:hover{color:var(--gold);border-color:var(--goldsoft)}
.chnav{margin-top:40px}
.chnav-prev{text-align:center;margin-bottom:34px}
.chnav-prev span{font:600 9.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}
.chnav-prev a{display:block;font:500 22px var(--serif);color:var(--ivory2);margin-top:4px}
.chnav-prev a:hover{color:var(--gold)}
.partint{margin:44px auto 34px;max-width:420px;padding:26px 22px;border-block:1px solid var(--line);text-align:center}
.partint b{display:block;font:500 26px var(--serif);color:var(--gold);letter-spacing:.14em}
.partint span{display:block;margin-top:6px;font:600 9.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}
.chnav-next{text-align:center}
.chnav-next .lbl{font:600 10px var(--sans);letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}
.chnav-next h4{font:500 clamp(30px,4vw,40px) var(--serif);margin:10px 0 22px}
.nextrel{margin:40px auto 0;max-width:460px;padding:22px;border:1px solid var(--linelt);text-align:center}
.nextrel .lbl{font:600 9.5px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.nextrel h4{font:500 24px var(--serif);margin:8px 0 4px}
.nextrel .when{font-size:15px;color:var(--mut)}
.nextrel .cd{font:600 13px var(--serif);letter-spacing:.22em;color:var(--ivory2);margin-top:8px;font-variant-numeric:tabular-nums}

/* settings popover */
.rset{position:fixed;top:calc(var(--hdrh) + 54px);right:clamp(10px,3vw,26px);z-index:96;width:min(340px,92vw);background:var(--ink2);border:1px solid var(--goldsoft);padding:22px 22px 18px;animation:tin .3s ease}
.rset h5{font:600 9.5px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--mut);margin:16px 0 8px}
.rset h5:first-child{margin-top:0}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{flex:1;min-width:56px;padding:9px 6px;font:600 9px var(--sans);letter-spacing:.14em;text-transform:uppercase;border:1px solid rgba(234,226,206,.16);color:var(--mut);transition:.25s}
.seg button:hover{color:var(--ivory)}
.seg button[aria-pressed="true"]{border-color:var(--goldsoft);color:var(--gold);background:rgba(201,162,87,.1)}
.rset .rset-foot{margin-top:16px;padding-top:12px;border-top:1px solid var(--linelt);font-size:12.5px;color:var(--mut)}

/* shortcuts modal */
.keys{display:grid;gap:1px;background:var(--linelt);border:1px solid var(--linelt);text-align:left}
.keys>div{background:var(--ink2);display:flex;justify-content:space-between;gap:16px;padding:11px 16px;font-size:15px;color:var(--mut)}
.keys kbd{font:600 10.5px var(--sans);letter-spacing:.14em;color:var(--gold);border:1px solid var(--goldsoft);padding:3px 9px;white-space:nowrap}

.upcoming{max-width:640px;margin:0 auto;padding:clamp(90px,14vh,150px) 24px 70px;text-align:center}
.upcoming .orn{margin:28px auto}
.upcoming p{color:var(--mut)}
.upcoming .row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:38px}

/* toc drawer */
.tocveil{position:fixed;inset:0;z-index:110;background:rgba(5,6,10,.6);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.toc{position:fixed;top:0;right:0;bottom:0;z-index:120;width:min(430px,94vw);background:var(--ink2);border-left:1px solid var(--linelt);overflow-y:auto;padding:26px 30px 40px;animation:tocIn .3s var(--ease)}
@keyframes tocIn{from{transform:translateX(44px);opacity:0}to{transform:none;opacity:1}}
.toc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.toc-head b{font:600 11px var(--sans);letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}
.toc-vol{font:500 15px var(--body);font-style:italic;color:var(--mut);margin-bottom:18px}
.toc h4{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ivory2);margin:26px 0 4px;display:flex;gap:12px;align-items:baseline;justify-content:space-between}
.toc h4 i{font:500 15px var(--serif);color:var(--gold);font-style:normal}
.toc .pbarline{height:2px;background:rgba(234,226,206,.1);margin:2px 0 8px}
.toc .pbarline i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--goldh))}
.trow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 10px;font:400 16.5px var(--body);color:rgba(234,226,206,.8)}
a.trow:hover{background:rgba(201,162,87,.07);color:var(--ivory)}
.trow.off{color:rgba(234,226,206,.32)}
.trow b{font:600 10px var(--sans);letter-spacing:.18em;color:var(--gold);margin-right:12px}
.trow.off b{color:rgba(201,162,87,.4)}
.trow .st{display:flex;gap:9px;align-items:center}
.trow .st svg{width:13px;height:13px}
.trow .st .bm{color:var(--gold)}
.trow .st .rd{color:var(--blueice)}
.trow .curtag{font:600 8.5px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.toc .trow.cur{background:rgba(201,162,87,.1);color:var(--gold)}
.trow .em{font-size:12px;color:rgba(201,162,87,.5);font-style:italic}

/* world / cast */
.castcard .art{border:1px solid var(--linelt);background:#0A0C11;padding:12px;margin-bottom:22px}
.castcard h3{font:600 21px var(--serif);letter-spacing:.22em}
.castcard .ep{font:500 14.5px var(--body);font-style:italic;color:var(--gold);margin:3px 0 12px}
.castcard .bio{font-size:16px;color:var(--mut);line-height:1.7}
.spark{position:absolute;right:8%;bottom:10%;width:40px;height:40px;display:grid;place-items:center;background:0 0;border:0;cursor:pointer;padding:0}
.spark i{width:7px;height:7px;border-radius:50%;background:var(--gold);opacity:.5;box-shadow:0 0 12px 2px rgba(201,162,87,.55);animation:sparkpulse 3.5s ease-in-out infinite;transition:.5s}
@keyframes sparkpulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:.75;transform:scale(1.15)}}
.spark:hover i{opacity:1}
.spark.lit i{opacity:0}
.whisper{font:500 16px var(--body);font-style:italic;color:var(--gold);opacity:0;transition:opacity 1.2s;margin-top:10px;text-align:right}
.whisper.on{opacity:.9}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:960px){.gal{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.gal{grid-template-columns:1fr}}
.gal figure{display:flex;flex-direction:column;gap:14px}
.gal .frame{padding:12px}
.gal figcaption b{font:500 20px var(--serif);display:block}
.gal figcaption span{font:600 9.5px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--mut)}
.gal .slot{border:1px dashed rgba(234,226,206,.22);display:grid;place-items:center;text-align:center;padding:40px;color:var(--mut);font-style:italic;min-height:280px}

/* journal */
.entry{max-width:760px;margin:0 auto;border:1px solid var(--linelt);padding:clamp(34px,4.5vw,56px);background:rgba(15,19,27,.4)}
.entry h3{font:500 clamp(29px,4vw,40px) var(--serif);margin:12px 0 6px}
.entry .meta{display:flex;gap:14px;flex-wrap:wrap;font:600 10px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--mut);align-items:center}
.entry p{margin-top:1.3em;color:rgba(234,226,206,.85)}
.entry .sig{margin-top:34px;padding-top:22px;border-top:1px solid var(--linelt);font-style:italic;color:var(--gold)}
.jcats{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:26px}
.jcats span{font:600 9.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--mut);border:1px solid rgba(234,226,206,.16);padding:7px 13px}

/* membership / shop / journey */
.tier{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,4vw,64px);padding:clamp(36px,5vw,58px) 0;border-top:1px solid var(--linelt);align-items:start}
.tier:nth-child(even){grid-template-columns:1.2fr 1fr}
.tier:nth-child(even) .tinfo{order:2}
@media(max-width:840px){.tier,.tier:nth-child(even){grid-template-columns:1fr}.tier:nth-child(even) .tinfo{order:0}}
.tier h3{font:500 clamp(29px,3.6vw,40px) var(--serif)}
.tier .tsub{font:500 17px var(--body);font-style:italic;color:var(--gold);margin:4px 0 16px}
.plist{list-style:none}
.plist li{padding:8px 0 8px 24px;position:relative;font-size:16.5px;color:rgba(234,226,206,.8);border-bottom:1px solid rgba(201,162,87,.09)}
.plist li::before{content:"";position:absolute;left:1px;top:17px;width:6px;height:6px;transform:rotate(45deg);border:1px solid var(--goldsoft)}
.billing{font:600 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mut);margin-top:10px}
.best{display:inline-block;margin-left:10px;color:var(--gold);border:1px solid var(--goldsoft);padding:3px 8px;font-size:8.5px}
.pprice{font:500 26px var(--serif);color:var(--ivory)}
.rollbox{border:1px solid var(--linelt);padding:clamp(30px,4vw,48px);text-align:center;background:rgba(15,19,27,.35)}
.rollbox .empty{font:500 20px var(--serif);font-style:italic;color:var(--mut);padding:34px 0 10px}
.prod{display:grid;grid-template-columns:120px 1fr auto;gap:clamp(20px,3vw,40px);align-items:center;padding:34px 0;border-bottom:1px solid var(--linelt)}
@media(max-width:700px){.prod{grid-template-columns:88px 1fr}.prod .pact{grid-column:1/-1;margin-top:8px}}
.pthumb{border:1px solid var(--linelt);padding:8px;background:#0A0C11}
.sigbox{aspect-ratio:600/860;display:grid;place-items:center}
.sigbox .sigil{width:34px;height:48px}
.prod h3{font:500 24px var(--serif)}
.prod .pmeta{font-size:15px;color:var(--mut);margin:6px 0 4px}
.pact{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
@media(max-width:700px){.pact{align-items:flex-start}}
.achv{display:grid;gap:1px;background:var(--linelt);border:1px solid var(--linelt)}
@media(min-width:701px){.achv{grid-template-columns:repeat(2,1fr)}}
.achv>div{background:var(--ink);padding:22px 26px;display:flex;gap:18px;align-items:center}
.achv .glyph{width:38px;height:38px;flex:none;display:grid;place-items:center;border:1px solid var(--goldsoft);color:var(--gold)}
.achv .glyph svg{width:15px;height:15px}
.achv.sealed .glyph{border-color:rgba(234,226,206,.16);color:rgba(234,226,206,.28)}
.achv b{font:600 12px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);display:block}
.achv.sealed b{color:rgba(234,226,206,.4)}
.achv p{font-size:15px;color:var(--mut)}
.pbar{height:3px;background:rgba(234,226,206,.1);margin-top:12px}
.pbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--goldh))}
.volmap{border:1px solid var(--linelt);padding:clamp(24px,3vw,36px)}
.volmap .vrow{padding:12px 0}
.volmap .vrow .vl{display:flex;justify-content:space-between;gap:12px;font:600 10px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--mut);margin-bottom:8px}
.volmap .vrow .vl b{color:var(--ivory2)}

/* legal */
.legal{max-width:760px;margin:0 auto}
.legal h2{font:500 26px var(--serif);margin:44px 0 12px;color:var(--ivory)}
.legal p{color:var(--mut);margin-bottom:14px;font-size:17px}
.legal ul{margin:0 0 18px 22px;color:var(--mut);font-size:17px}
.legal li{margin-bottom:8px}
.legal .prelim{border:1px solid var(--goldsoft);background:rgba(201,162,87,.06);padding:20px 24px;font-size:15px;color:rgba(234,226,206,.75);margin-top:30px}
.spoil{border:1px solid var(--linelt);padding:22px 26px;margin-top:18px}
.spoil b{font:600 11px var(--sans);letter-spacing:.3em;color:var(--gold);text-transform:uppercase}

/* modal & toast */
#modal-root .m-veil{position:fixed;inset:0;z-index:200;background:rgba(5,6,10,.72);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
#modal-root .m-box{position:fixed;z-index:210;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,92vw);max-height:86vh;overflow:auto;background:var(--ink2);border:1px solid var(--goldsoft);padding:clamp(30px,4vw,46px);text-align:center;animation:mpop .32s var(--ease)}
@keyframes mpop{from{opacity:0;transform:translate(-50%,-46%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.m-box .m-sig{display:flex;justify-content:center;margin-bottom:18px}
.m-box .m-sig .sigil{width:22px;height:31px}
.m-box h3{font:500 clamp(25px,3.4vw,33px) var(--serif);margin:12px 0 16px}
.m-box .m-b p{color:var(--mut);margin-bottom:12px;font-size:16.5px}
.m-box .m-b b{color:var(--ivory2)}
.m-box .btn{margin-top:22px}
.m-x{position:absolute;top:14px;right:14px;color:var(--mut);width:34px;height:34px;display:grid;place-items:center}
.m-x:hover{color:var(--ivory)}
.m-x svg{width:15px;height:15px}
.mform{display:flex;flex-direction:column;gap:12px;margin-top:18px;text-align:left}
.mform label{font:600 9.5px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--mut)}
.mform input{background:#0A0C11;border:1px solid var(--linelt);color:var(--ivory);padding:13px 14px;font:400 16px var(--body)}
.mform input:focus{outline:1px solid var(--gold)}
.mform .err{font-size:14px;color:#D08B6C;min-height:1em}
.mrow{display:flex;gap:12px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
#toast-root{position:fixed;left:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:230;display:flex;flex-direction:column;gap:12px;max-width:min(420px,calc(100vw - 24px))}
.toast{display:flex;gap:16px;align-items:center;background:var(--ink2);border:1px solid var(--goldsoft);padding:16px 22px;animation:tin .5s ease}
.toast .sigil{width:18px;height:25px;flex:none}
.toast b{font:600 9.5px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);display:block}
.toast span{font-size:15px;color:rgba(234,226,206,.85)}
@keyframes tin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

#app{transition:opacity .25s ease;min-height:60vh}

/* reading choice modal */
.readchoice{display:flex;flex-direction:column;gap:12px;margin-top:6px;text-align:left}
.rc-opt{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--linelt);transition:border-color .3s,background .3s}
.rc-opt:hover{border-color:var(--goldsoft);background:rgba(201,162,87,.05)}
.rc-k{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.rc-d{font-size:15px;color:var(--mut);line-height:1.5}

/* account */
.acctgate{border:1px solid var(--linelt);padding:clamp(30px,4vw,48px);background:rgba(15,19,27,.4);max-width:560px;margin:44px auto 0}
.acctgate-row{display:flex;gap:14px;justify-content:center;margin-top:26px;flex-wrap:wrap}
.acctrow{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 2px;border-bottom:1px solid rgba(201,162,87,.1);color:rgba(234,226,206,.85);transition:color .25s}
.acctrow:hover{color:var(--ivory)}
.acctrow b{font:600 11px var(--sans);letter-spacing:.2em;color:var(--gold);margin-right:10px;text-transform:uppercase}
.acct-card{display:flex;flex-direction:column;gap:8px}
.acct-card h3{font:500 22px var(--serif)}
.acct-card .btn{align-self:flex-start;margin-top:6px}
.auth-pending .hdr-acts .linkbtn,.auth-pending .hdr-acts .btn{visibility:hidden}

/* ═══ READING THEMES ═══ */
body.rt-paper{background:#EFE7D6;color:#26200F}
body.rt-paper #grain{opacity:.05;mix-blend-mode:multiply}
body.rt-paper .hdr{background:rgba(239,231,214,.88);border-color:rgba(122,94,43,.28)}
body.rt-paper .brand-t,body.rt-paper .m-x{color:#26200F}
body.rt-paper .nav a,body.rt-paper .linkbtn,body.rt-paper .icobtn{color:rgba(60,48,22,.7)}
body.rt-paper .hdr.deep{background:rgba(239,231,214,.96)}
body.rt-paper .rbar{background:rgba(243,237,224,.94);border-color:rgba(122,94,43,.22)}
body.rt-paper .rbar-part,body.rt-paper .rbar-pct{color:rgba(60,48,22,.65)}
body.rt-paper .ch-body{color:rgba(40,32,14,.9)}
body.rt-paper .ch-title{color:#1F1808}
body.rt-paper .ch-no{color:#5C4A22}
body.rt-paper .eyebrow,body.rt-paper .rbar-pct{color:#8A6B2B}
body.rt-paper .ch-body .dc:first-letter{color:#8A6B2B}
body.rt-paper .ch-body h3{color:#26200F}
body.rt-paper .ch-body blockquote{color:#4A3B1C;border-color:rgba(138,107,43,.5)}
body.rt-paper .break span{background:rgba(138,107,43,.6)}
body.rt-paper .ch-body p.sel{box-shadow:inset 2px 0 0 #8A6B2B}
body.rt-paper .pmark{background:#8A6B2B}
body.rt-paper .platefig figcaption,body.rt-paper .ch-meta,body.rt-paper .ch-where{color:rgba(60,48,22,.6)}
body.rt-paper .toc,body.rt-paper .rset{background:#F3EDDC;color:#26200F}
body.rt-paper .trow{color:rgba(60,48,22,.8)}
body.rt-paper .trow.off{color:rgba(60,48,22,.35)}
body.rt-paper .rset .seg button{border-color:rgba(60,48,22,.25);color:rgba(60,48,22,.6)}
body.rt-paper .resume{background:rgba(255,252,242,.8);border-color:rgba(138,107,43,.35);border-left-color:#8A6B2B}
body.rt-paper .resume p{color:rgba(60,48,22,.65)}
body.rt-paper .resume p b{color:#4A3B1C}
body.rt-paper .toast{background:#F3EDDC;border-color:rgba(138,107,43,.5)}
body.rt-paper .toast b{color:#8A6B2B}
body.rt-paper .toast span{color:#3A2F14}
body.rt-paper .lbx{background:rgba(30,25,12,.96)}
body.rt-paper .icobtn{color:rgba(60,48,22,.75);border-color:rgba(122,94,43,.35)}
body.rt-paper .icobtn.on{color:#8A6B2B;border-color:rgba(138,107,43,.5);background:rgba(138,107,43,.08)}
body.rt-paper .rbar-aab{color:rgba(60,48,22,.8);border-color:rgba(122,94,43,.35)}
body.rt-paper .pchip button{background:#F3EDDC;border-color:rgba(122,94,43,.45);color:#6B4F1D}
body.rt-paper .keys-hint{color:rgba(60,48,22,.45)}
body.rt-paper .keys-hint kbd{color:#4A3B1C;border-color:rgba(122,94,43,.35)}
body.rt-paper .partint{border-color:rgba(122,94,43,.3)}
body.rt-paper .partint b{color:#8A6B2B}
body.rt-paper .nextrel{background:rgba(255,252,242,.72);border-color:rgba(122,94,43,.3)}
body.rt-paper .nextrel .lbl{color:#8A6B2B}
body.rt-paper .nextrel h4{color:#26200F}
body.rt-paper .nextrel .when{color:rgba(60,48,22,.6)}
body.rt-paper .nextrel .cd{color:#4A3B1C}
body.rt-paper .ch-load span{background:linear-gradient(90deg,rgba(60,48,22,.06) 25%,rgba(60,48,22,.12) 50%,rgba(60,48,22,.06) 75%);background-size:200% 100%}
body.rt-paper ::-webkit-scrollbar-track{background:#EFE7D6}
body.rt-paper ::-webkit-scrollbar-thumb{background:#C4B896;border-radius:5px}
body.rt-paper ::selection{background:rgba(138,107,43,.25)}
body.rt-paper .volpart{border-color:rgba(122,94,43,.3)}
body.rt-paper .volpart b{color:#8A6B2B}
body.rt-paper .volpart span{color:rgba(60,48,22,.6)}
body.rt-paper .ch-end{color:#4A3B1C}
body.rt-paper .ch-end .eyebrow{color:#8A6B2B}
body.rt-paper .ch-end h3{color:#26200F}
body.rt-paper .sharerow button,body.rt-paper .sharerow a{color:rgba(60,48,22,.6)}
body.rt-paper .chnav-prev a{color:#4A3B1C}
body.rt-paper .imm-ctl .icobtn{color:rgba(60,48,22,.7);border-color:rgba(122,94,43,.3);background:rgba(243,237,224,.9)}
body.rt-paper .imm-ctl .icobtn.on{color:#8A6B2B;border-color:rgba(138,107,43,.5)}

body.rt-night{background:#05070C}
body.rt-night .ch-body{color:#9C9787}
body.rt-night .ch-title{color:#B9B4A4}
body.rt-night .eyebrow,body.rt-night .rbar-pct{color:#8F7A45}
body.rt-night .ivory2,body.rt-night .ch-no{color:#8E897A}
body.rt-night .hdr{background:rgba(5,7,12,.7)}
body.rt-night .rbar{background:rgba(5,7,12,.88)}
body.rt-night .lead,body.rt-night .small{color:rgba(156,151,135,.75)}
body.rt-night .rbar-aab{color:#8E897A;border-color:rgba(140,135,122,.25)}
body.rt-night .keys-hint{color:rgba(156,151,135,.4)}
body.rt-night .partint b{color:#8F7A45}
body.rt-night ::selection{background:rgba(143,122,69,.25)}

/* CINEMATIC — distinct mode: near-black, warm cream text, vignette, glowing breaks */
body.rt-cine{background:#020308;color:rgba(220,210,190,.75)}
body.rt-cine #grain{opacity:.08}
body.rt-cine::after{content:"";position:fixed;inset:0;z-index:99;pointer-events:none;background:radial-gradient(ellipse 85% 75% at 50% 45%,transparent 55%,rgba(0,0,0,.45) 100%)}
body.rt-cine .ch-body{color:rgba(220,210,190,.78)}
body.rt-cine .ch-title{color:rgba(240,230,210,.92);text-shadow:0 0 30px rgba(201,162,87,.15)}
body.rt-cine .ch-no{color:rgba(200,170,100,.6)}
body.rt-cine .eyebrow,body.rt-cine .rbar-pct{color:rgba(180,150,80,.7)}
body.rt-cine .ch-where,body.rt-cine .ch-meta{color:rgba(180,170,150,.5)}
body.rt-cine .hdr{background:rgba(2,3,8,.85)}
body.rt-cine .rbar{background:rgba(2,3,8,.92)}
body.rt-cine .ch-body .dc:first-letter{color:rgba(201,162,87,.85);text-shadow:0 0 25px rgba(201,162,87,.35)}
body.rt-cine .ch-body h3{color:rgba(240,230,210,.85)}
body.rt-cine .ch-body blockquote{color:rgba(200,190,170,.7);border-color:rgba(180,150,80,.3)}
body.rt-cine .break span{animation:breathe 5s ease-in-out infinite;box-shadow:0 0 8px rgba(201,162,87,.2)}
body.rt-cine .orn-d{box-shadow:0 0 15px rgba(201,162,87,.45)}
body.rt-cine .ch-head .orn::before,body.rt-cine .ch-head .orn::after{background:linear-gradient(90deg,transparent,rgba(180,150,80,.25),transparent)}
body.rt-cine .lead{color:rgba(220,210,190,.7)}
body.rt-cine .small{color:rgba(200,190,170,.55)}
body.rt-cine .imm-ctl .icobtn{background:rgba(2,3,8,.8);color:rgba(180,170,150,.6);border-color:rgba(180,150,80,.2)}
body.rt-cine .keys-hint{color:rgba(200,190,170,.35)}

/* ═══ VOLUME MODE + IMMERSIVE ═══ */
.ch-wrap.vol{max-width:var(--rw)}
.volhead{margin-bottom:56px}
.volpart{margin:70px auto 44px;max-width:420px;padding:30px 22px;border-block:1px solid var(--line);text-align:center;animation:tin .5s ease}
.volpart b{display:block;font:500 30px var(--serif);color:var(--gold);letter-spacing:.14em}
.volpart span{display:block;margin-top:6px;font:600 9.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}
.volch-head{text-align:center;margin:60px 0 42px}
.volch-head .ch-no{margin:0 0 10px}
.volch-head .ch-title{font-size:clamp(30px,4.5vw,44px)}
.volch-head .orn{margin:22px auto}
.volch-end{height:1px;margin:54px auto;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.volend{text-align:center;padding:56px 24px 30px}
.volend h3{font:500 clamp(25px,3.4vw,34px) var(--serif);margin:14px 0 22px}
.volend .row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
#volsentinel{padding:28px 0 60px}
body.rt-paper .volpart{border-color:rgba(122,94,43,.3)}
body.rt-paper .volpart b{color:#8A6B2B}
body.rt-paper .volpart span{color:rgba(60,48,22,.6)}
body.rt-paper .volch-end{background:linear-gradient(90deg,transparent,rgba(122,94,43,.3),transparent)}
@media print{.rbar,#volsentinel,.imm-ctl{display:none!important}}

/* ═══ THE BOOK ═══ */
.bk{position:fixed;inset:0;z-index:140;background:radial-gradient(120% 95% at 50% 38%,#151B28 0%,#0A0C11 55%,#060709 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;outline:none}
.bk-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(75% 75% at 50% 50%,transparent 55%,rgba(3,4,7,.55) 100%)}
.bk-stage{position:relative;display:flex;perspective:2400px;z-index:2}
.bk-loading{color:rgba(234,226,206,.55);font:italic 500 18px var(--body);letter-spacing:.06em}
.bk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.bk-page{position:relative;background:linear-gradient(180deg,#F6F0DE 0%,#EFE7D0 100%);box-shadow:0 24px 60px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.35);overflow:hidden;flex:none}
.bk-page.ps{width:min(88vw,520px);height:min(82vh,740px);border-radius:3px}
.bk-page.pl,.bk-page.pr{width:min(42vw,560px);height:min(82vh,740px)}
.bk-page.pl{border-radius:3px 0 0 3px}
.bk-page.pr{border-radius:0 3px 3px 0}
.bk[data-spread="1"] .bk-stage::after{content:"";position:absolute;left:50%;top:1%;bottom:1%;width:14px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.28),rgba(0,0,0,0));z-index:5;pointer-events:none}

.bk-tx{position:absolute;inset:0;padding:9% 8.5%;overflow:hidden;color:#2A2313;font-family:var(--body);font-size:18px;line-height:1.62;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.bk[data-sz="0"] .bk-tx{font-size:16.5px}
.bk[data-sz="2"] .bk-tx{font-size:20.5px}
.bk[data-lh="0"] .bk-tx{line-height:1.5}
.bk[data-lh="2"] .bk-tx{line-height:1.8}
.bk[data-ls="1"] .bk-tx{letter-spacing:.015em}
.bk-para{margin:0 0 1.05em}
.bk-para.dcap:first-letter{font-family:var(--serif);font-size:3.1em;line-height:.8;float:left;padding:4px 8px 0 0;color:#8A6B2B}
.bk-para.cont{text-indent:1.5em}
.bk-para.crush{font-size:.9em;line-height:1.5;margin-bottom:.7em}
.bk-q.cont{margin-top:.3em}
.bk-q.crush{font-size:.9em;line-height:1.5}
.bk-sbrk{display:flex;justify-content:center;margin:1.5em 0;color:#8A6B2B;font-size:15px}
.bk-h{font-family:var(--serif);font-weight:500;font-size:1.35em;margin:1.2em 0 .5em;color:#26200F;text-align:left}
.bk-q{margin:1em 0;padding-left:1.2em;border-left:2px solid rgba(138,107,43,.4);font-style:italic;color:#4A3B1C;text-align:left}
.bk-fig{margin:1em 0;text-align:center}
.bk-fig img{max-width:100%;max-height:70%;margin:0 auto}
.bk-fig.full{height:100%;display:flex;flex-direction:column;justify-content:center}
.bk-fig figcaption{font-size:12.5px;color:rgba(60,48,22,.65);font-style:italic;margin-top:6px}
.bk-pnum{position:absolute;bottom:3.5%;left:0;right:0;text-align:center;font:600 9.5px var(--sans);letter-spacing:.22em;color:rgba(110,90,50,.55)}
.bk-chopen{margin:14% 0 12%;text-align:left}
.bk-chpart{font:600 9px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#8A6B2B;margin-bottom:14px}
.bk-chno{font:600 10.5px var(--sans);letter-spacing:.4em;text-transform:uppercase;color:#6B5A30;margin-bottom:10px}
.bk-chtitle{font:500 1.9em/1.15 var(--serif);color:#26200F;margin-bottom:0}
.bk-measure{position:absolute!important;left:-9999px!important;top:0!important;visibility:hidden;pointer-events:none}
.bk-compactwrap .bk-chopen{margin:4% 0 5%}
.bk-compactwrap .bk-h{margin:.4em 0 .3em}
.bk-compactwrap .bk-fig{margin:.4em 0}
.bk-fig.compact img{max-height:52%}

/* cover: uniformly contained */
.bk-page.cover{background:#07080D;display:flex;align-items:center;justify-content:center;padding:4%}
.bk-page.cover svg{width:100%;height:100%;max-width:100%;max-height:100%}

/* front-matter: scales with book height, compact centered */
.bk-page.fm,.bk-page.partp,.bk-page.endp{display:flex;align-items:center;justify-content:center}
.bk-page.contents{align-items:flex-start}
.bk-page.contents .bk-tx{padding-top:12%}
.bk-cttl{font:500 1.6em var(--serif);color:#26200F;margin:0 0 1em;text-align:left}
.bk-toc-part{display:block;font:600 10px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#8A6B2B;margin:1.2em 0 .5em;text-align:left}
.bk-toc-ch{display:flex;gap:10px;text-align:left;color:#4A3B1C}
.bk-toc-ch b{font:600 10px var(--sans);letter-spacing:.14em;color:#8A6B2B;min-width:52px;padding-top:3px}
.bk-fm{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6% 8%;color:#2A2313;max-width:100%;height:100%}
.bk-fm *{margin:0}
.bk-fm-top{font:600 9px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:#8A6B2B;margin-bottom:4vh}
.bk-fm-tt{font:600 clamp(28px,5.5vh,48px)/1.08 var(--serif);letter-spacing:.04em;color:#26200F;margin-bottom:1.5vh}
.bk-fm-vol{font:600 10px var(--sans);letter-spacing:.4em;text-transform:uppercase;color:#6B5A30;margin-bottom:1.5vh}
.bk-fm-sub{font:italic 500 clamp(16px,2.8vh,24px) var(--serif);color:#4A3B1C}
.bk-fm-rule{width:60px;height:1px;background:rgba(138,107,43,.5);margin:3vh auto;position:relative}
.bk-fm-rule::after{content:"";position:absolute;left:50%;top:-3px;width:7px;height:7px;transform:translateX(-50%) rotate(45deg);background:#8A6B2B}
.bk-fm-cr{font-size:clamp(11px,1.8vh,14px);color:#4A3B1C;line-height:1.8}
.bk-fm-cr b{color:#26200F;font-weight:600}
.bk-fm-st{font:600 8.5px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:rgba(107,90,48,.7);margin-top:3vh}
.bk-fm-ed{font:italic 400 clamp(10px,1.5vh,12px) var(--body);color:rgba(107,90,48,.55);margin-top:1vh}
.bk-partno{font:500 clamp(30px,5vh,44px) var(--serif);color:#8A6B2B;letter-spacing:.2em}
.bk-partt{font:500 clamp(18px,3vh,28px)/1.2 var(--serif);color:#26200F;margin:1.5vh 0 1vh}
.bk-partc{font:600 9px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:rgba(107,90,48,.7)}
.bk-nav{display:flex;flex-direction:column;gap:1.5vh;margin-top:3vh}
.bk-link{font:600 9px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#6B5A30;border:1px solid rgba(138,107,43,.4);background:0;padding:1.5vh 2.4vh;cursor:pointer}
.bk-link:hover{color:#26200F;border-color:#8A6B2B}

/* PAGE TURN: SLIDE TRANSITION — single-face overlay */
.bk-slide{
  position:absolute;
  inset:0;
  display:flex;
  z-index:50;
  pointer-events:none;
  will-change:transform,opacity;
}

/* turn hint (first use) */
.bk-turn-hint{
  position:absolute;bottom:80px;left:50%;transform:translateX(-50%);
  z-index:70;display:flex;gap:16px;align-items:center;
  padding:12px 22px;background:rgba(11,13,18,.92);
  border:1px solid var(--goldsoft);border-radius:4px;
  font:600 10px var(--sans);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(234,226,206,.7);cursor:pointer;
  animation:tin .5s ease;
}
.bk-turn-hint .th-left,.bk-turn-hint .th-right{font:500 18px var(--serif);color:var(--gold)}

/* error/empty */
.bk-err{max-width:440px;margin:0 auto;text-align:center;color:#EAE2CE;padding:30px}
.bk-err h3{font:500 26px var(--serif);margin:10px 0 12px;color:#F2ECD8}
.bk-err p{color:rgba(234,226,206,.72);font-size:15px;margin-bottom:20px;line-height:1.6}
.bk-err .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.bk-errbtn{font:600 9.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#EAE2CE;border:1px solid rgba(201,162,87,.55);background:0;padding:12px 20px;cursor:pointer;transition:.25s}
.bk-errbtn:hover{border-color:#C9A257;background:rgba(201,162,87,.1)}

/* controls */
.bk-prog{position:absolute;top:0;left:0;right:0;height:2px;z-index:50;background:rgba(234,226,206,.08)}
.bk-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--goldh));transition:width .3s ease}
.bk-ctl{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(11,13,18,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--linelt);border-radius:4px;transition:opacity .5s ease,transform .5s ease}
.bk-ctl.hidden{opacity:0;transform:translateX(-50%) translateY(10px);pointer-events:none}
.bk-btn{width:42px;height:42px;display:grid;place-items:center;color:rgba(234,226,206,.75);border:1px solid transparent;border-radius:3px;transition:.25s;cursor:pointer;background:0}
.bk-btn:hover{color:var(--ivory);border-color:var(--goldsoft)}
.bk-btn.on{color:var(--gold);border-color:var(--goldsoft);background:rgba(201,162,87,.12)}
.bk-btn svg{width:16px;height:16px}
.bk-btn.bk-aab{font:600 14px var(--serif);letter-spacing:.05em}
.bk-pt{position:absolute;top:-16px;left:50%;transform:translateX(-50%);white-space:nowrap;font:600 8.5px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(234,226,206,.5)}
.bk-ctl:focus-within{opacity:1;transform:translateX(-50%)}

/* book TOC drawer */
.bk-tocveil{position:fixed;inset:0;z-index:70;background:rgba(4,5,9,.55);backdrop-filter:blur(2px)}
.bk-toc{position:fixed;top:0;right:0;bottom:0;z-index:75;width:min(400px,92vw);background:#0F131B;border-left:1px solid var(--linelt);overflow-y:auto;padding:22px 24px 40px;animation:bktocIn .3s var(--ease) both}
@keyframes bktocIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.bk-toc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.bk-toc-head b{font:600 10px var(--sans);letter-spacing:.36em;text-transform:uppercase;color:var(--gold)}
.bk-toc-vol{font:italic 500 14px var(--body);color:var(--mut);margin-bottom:14px}
.bk-toc h4{font:600 9px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ivory2);margin:18px 0 6px}
.bk-toc-row{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:8px 10px;font:400 15.5px var(--body);color:rgba(234,226,206,.8);background:0;border:0;cursor:pointer;border-radius:2px}
.bk-toc-row:hover{background:rgba(201,162,87,.08);color:var(--ivory)}
.bk-toc-row.cur{color:var(--gold)}
.bk-toc-row span:last-child{font:600 8px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* settings */
.bk-set{position:fixed;right:clamp(10px,3vw,26px);bottom:calc(80px + env(safe-area-inset-bottom));z-index:80;width:min(300px,88vw);background:#0F131B;border:1px solid var(--goldsoft);padding:18px;animation:tin .3s ease}
.bk-set h5{font:600 9px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mut);margin:12px 0 6px}
.bk-set h5:first-child{margin-top:0}
.bk-set .seg{display:flex;gap:6px;flex-wrap:wrap}
.bk-set .seg button{flex:1;padding:9px 6px;font:600 8.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(234,226,206,.18);color:var(--mut);background:0;cursor:pointer}
.bk-set .seg button[aria-pressed="true"]{color:var(--gold);border-color:var(--goldsoft)}
.bk-set-f{margin-top:12px;font-size:12px;color:var(--mut);line-height:1.5}

/* loading */
.ch-load{display:flex;flex-direction:column;gap:18px;padding:6px 0 26px}
.ch-load span{height:13px;border-radius:1px;background:linear-gradient(90deg,rgba(234,226,206,.05) 25%,rgba(234,226,206,.13) 50%,rgba(234,226,206,.05) 75%);background-size:200% 100%;animation:shimmer 1.7s linear infinite}
.ch-load span:nth-child(1){width:86%}
.ch-load span:nth-child(2){width:97%}
.ch-load span:nth-child(3){width:68%}
.ch-load p{margin-top:4px;text-align:center}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}

/* keyboard hint */
.keys-hint{margin-top:10px;color:rgba(234,226,206,.38)}
.keys-hint kbd{font:600 10px var(--sans);letter-spacing:.06em;color:var(--ivory2);border:1px solid var(--linelt);padding:2px 7px;margin:0 3px}
@media(max-width:820px),(hover:none){.keys-hint{display:none}}

/* touch + small screens */
@media(hover:none){.icobtn,.m-x,.burger,.lbx-nav{width:44px;height:44px}.rbar-aab{width:44px;height:44px}}
@media(max-width:380px){.btn{padding:14px 16px;letter-spacing:.24em}.btn-sm{padding:11px 14px}.brand-t{font-size:11.5px;letter-spacing:.24em}}
@media(max-width:700px){
  :root{--hdrh:58px}
  .brand-t{font-size:11.5px;letter-spacing:.24em}
  .ch-wrap{padding-inline:clamp(16px,5vw,24px)}
  .cine-fig svg{max-height:52vh}
  .lbx-nav{display:none}
}
@media (max-height:620px) and (max-width:900px){
  .hero{padding:calc(var(--hdrh) + 20px) 20px 28px}
  .hero-tag{margin-bottom:24px}.hero-note,.scrollcue{display:none}
  .hero-cred{position:static;justify-content:center;margin-top:22px;padding:0}
  .hero-motif{height:56vh}.hero-sub{margin:14px 0 8px}
}
@media(max-width:999px){.bk-page.ps{width:min(90vw,520px);height:min(78vh,700px)}}

@media(max-width:640px){
  .rset{top:auto;left:0;right:0;bottom:0;width:auto;max-height:72vh;overflow:auto;border-top:1px solid var(--goldsoft);padding-bottom:calc(20px + env(safe-area-inset-bottom));animation:sheetUp .34s var(--ease)}
  @keyframes sheetUp{from{transform:translateY(34px);opacity:0}to{transform:none;opacity:1}}
}

/* card lift */
.platefig .frame,.gal .frame,.castcard .art{transition:border-color .5s var(--ease),transform .5s var(--ease)}
.platefig .frame:hover,.gal .frame:hover,.castcard .art:hover{border-color:rgba(201,162,87,.38);transform:translateY(-2px)}
.platefig .frame svg,.gal .frame svg,.castcard .art svg{transition:transform 1.4s var(--ease)}
.platefig .frame:hover svg,.gal .frame:hover svg{transform:scale(1.02)}
.platefig .frame img,.gal .frame img,.castcard .art img{transition:transform 1.4s var(--ease)}
.platefig .frame:hover img,.gal .frame:hover img{transform:scale(1.02)}

/* nav underline */
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--goldsoft);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover::after{transform:scaleX(1)}
.nav a[aria-current]::after{transform:scaleX(1)}

/* TOC progress bars */
.toc:not([hidden]) .pbarline i{transform-origin:left;animation:barGrow .55s var(--ease) both}
@keyframes barGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* chapter-end pulse */
.ch-end.done .orn-d{animation:ornDone 1.5s var(--ease) 1}
@keyframes ornDone{0%{box-shadow:0 0 10px rgba(201,162,87,.5)}45%{box-shadow:0 0 30px rgba(221,185,111,.95)}100%{box-shadow:0 0 10px rgba(201,162,87,.5)}}

/* print */
@media print{
  body{background:#fff;color:#161616}
  #grain,#readbar,.hdr,.rbar,.imm-ctl,#toast-root,.ftr,.sharerow,.scrollcue,.mist,.hero-motif,.toc,.tocveil,.pchip,.resume,.keys-hint,.rset,.ch-end{display:none!important}
  #app{min-height:0}
  .ch-wrap{max-width:100%;padding:0}
  .ch-head{margin-bottom:28px}
  .ch-body{font:400 12pt/1.7 Georgia,'Times New Roman',serif;color:#161616}
  .ch-title{font:500 26pt var(--serif);color:#000}
  .ch-no,.eyebrow,.ch-meta,.ch-where{color:#555}
  a{color:#161616}
}

/* ═══ REDUCED MOTION ═══ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
  .hero-in>*{animation-duration:.01ms!important;animation-delay:0s!important}
  .hero-motif{animation:none!important}
  #readbar{transition:none!important}
  .ch-load span{animation:none!important}
  .toc:not([hidden]),.tocveil:not([hidden]),#modal-root .m-box,.resume,.partint,.pchip,.icobtn.on{animation-duration:.01ms!important}
  .enter .ch-where,.enter .ch-no,.enter .ch-title,.enter .ch-head .orn,.enter .ch-meta,.enter .ch-body>*{opacity:1!important;animation:none!important}
  .bk-slide{display:none!important}
  .bk-ctl{transition:none}
  .bk-ctl.hidden{opacity:1;transform:translateX(-50%);pointer-events:auto}
  .bk-prog i{transition:none}
  .bk-toc{animation:none}
  body.rt-cine .cine-fig .frame>svg,body.rt-cine .cine-fig .frame>img{animation:none!important}
  .ch-end.done .orn-d{animation:none!important}
  .dust{display:none}
}

/* ═══════════════════════════════════════════════════════════
   PAPER MODE — TEXT COLOR FIX (guaranteed override)
   Appended to end of styles.css. Uses !important to ensure
   these rules always win over any conflicting declaration.
   ═══════════════════════════════════════════════════════════ */

/* Smooth color transitions on key text containers */
body.rt-paper .ch-body,
body.rt-paper .ch-body p,
body.rt-paper .ch-body h3,
body.rt-paper .ch-body blockquote,
body.rt-paper .ch-end,
body.rt-paper .resume,
body.rt-paper .nextrel,
body.rt-paper .partint,
body.rt-paper .volend,
body.rt-paper .volpart,
body.rt-paper .upcoming{
  transition:color .4s ease,background .4s ease,border-color .4s ease;
}

/* ── Main reading text ── */
body.rt-paper .ch-body{color:rgba(40,32,14,.9)!important}
body.rt-paper .ch-body p{color:rgba(40,32,14,.9)!important}
body.rt-paper .ch-body p.dc:first-letter{color:#8A6B2B!important}
body.rt-paper .ch-body h3{color:#26200F!important}
body.rt-paper .ch-body blockquote{color:#4A3B1C!important;border-left-color:rgba(138,107,43,.5)!important}

/* ── Chapter header ── */
body.rt-paper .ch-title{color:#1F1808!important}
body.rt-paper .ch-no{color:#5C4A22!important}
body.rt-paper .ch-where{color:rgba(60,48,22,.6)!important}
body.rt-paper .ch-meta{color:rgba(60,48,22,.6)!important}
body.rt-paper .eyebrow{color:#8A6B2B!important}

/* ── Chapter end / volume end ── */
body.rt-paper .ch-end{color:#4A3B1C!important}
body.rt-paper .ch-end .eyebrow{color:#8A6B2B!important}
body.rt-paper .ch-end h3{color:#26200F!important}
body.rt-paper .ch-end .small{color:rgba(60,48,22,.6)!important}
body.rt-paper .ch-next{color:rgba(60,48,22,.6)!important}
body.rt-paper .ch-next b{color:#4A3B1C!important}
body.rt-paper .volend{color:#4A3B1C!important}
body.rt-paper .volend .eyebrow{color:#8A6B2B!important}
body.rt-paper .volend h3{color:#26200F!important}

/* ── Volume mode ── */
body.rt-paper .volpart{border-color:rgba(122,94,43,.3)!important}
body.rt-paper .volpart b{color:#8A6B2B!important}
body.rt-paper .volpart span{color:rgba(60,48,22,.6)!important}
body.rt-paper .volch-head .ch-title{color:#1F1808!important}
body.rt-paper .volch-end{background:linear-gradient(90deg,transparent,rgba(122,94,43,.3),transparent)!important}

/* ── Navigation elements in reader ── */
body.rt-paper .chnav-prev span{color:rgba(60,48,22,.5)!important}
body.rt-paper .chnav-prev a{color:#4A3B1C!important}
body.rt-paper .chnav-prev a:hover{color:#8A6B2B!important}
body.rt-paper .partint{border-color:rgba(122,94,43,.3)!important}
body.rt-paper .partint b{color:#8A6B2B!important}
body.rt-paper .partint span{color:rgba(60,48,22,.55)!important}
body.rt-paper .nextrel{background:rgba(255,252,242,.72)!important;border-color:rgba(122,94,43,.3)!important}
body.rt-paper .nextrel .lbl{color:#8A6B2B!important}
body.rt-paper .nextrel h4{color:#26200F!important}
body.rt-paper .nextrel .when{color:rgba(60,48,22,.6)!important}
body.rt-paper .nextrel .cd{color:#4A3B1C!important}

/* ── Share row ── */
body.rt-paper .sharerow button,
body.rt-paper .sharerow a{color:rgba(60,48,22,.6)!important}
body.rt-paper .sharerow button:hover,
body.rt-paper .sharerow a:hover{color:#8A6B2B!important}

/* ── Resume bar ── */
body.rt-paper .resume{background:rgba(255,252,242,.8)!important;border-color:rgba(138,107,43,.35)!important;border-left-color:#8A6B2B!important}
body.rt-paper .resume p{color:rgba(60,48,22,.65)!important}
body.rt-paper .resume p b{color:#4A3B1C!important}

/* ── Upcoming / not-yet-published pages ── */
body.rt-paper .upcoming p{color:rgba(60,48,22,.65)!important}
body.rt-paper .upcoming .lead{color:rgba(40,32,14,.85)!important}
body.rt-paper .upcoming .small{color:rgba(60,48,22,.55)!important}

/* ── Passage selection chip ── */
body.rt-paper .pchip button{background:#F3EDDC!important;border-color:rgba(122,94,43,.45)!important;color:#6B4F1D!important}

/* ── Immersive floating controls ── */
body.rt-paper .imm-ctl .icobtn{color:rgba(60,48,22,.7)!important;border-color:rgba(122,94,43,.3)!important;background:rgba(243,237,224,.9)!important}
body.rt-paper .imm-ctl .icobtn:hover{color:#26200F!important;border-color:rgba(138,107,43,.6)!important}
body.rt-paper .imm-ctl .icobtn.on{color:#8A6B2B!important;border-color:rgba(138,107,43,.5)!important;background:rgba(138,107,43,.1)!important}

/* ── Reader bar ── */
body.rt-paper .rbar{background:rgba(243,237,224,.94)!important;border-color:rgba(122,94,43,.22)!important}
body.rt-paper .rbar-part{color:rgba(60,48,22,.65)!important}
body.rt-paper .rbar-pct{color:#8A6B2B!important}
body.rt-paper .rbar-aab{color:rgba(60,48,22,.8)!important;border-color:rgba(122,94,43,.35)!important}

/* ── Header ── */
body.rt-paper .hdr{background:rgba(239,231,214,.88)!important;border-color:rgba(122,94,43,.28)!important}
body.rt-paper .hdr.deep{background:rgba(239,231,214,.96)!important}
body.rt-paper .brand-t{color:#26200F!important}
body.rt-paper .nav a{color:rgba(60,48,22,.7)!important}
body.rt-paper .nav a:hover{color:#26200F!important}
body.rt-paper .linkbtn{color:rgba(60,48,22,.7)!important}
body.rt-paper .icobtn{color:rgba(60,48,22,.75)!important;border-color:rgba(122,94,43,.35)!important}
body.rt-paper .icobtn.on{color:#8A6B2B!important;border-color:rgba(138,107,43,.5)!important;background:rgba(138,107,43,.08)!important}

/* ── TOC drawer ── */
body.rt-paper .toc{background:#F3EDDC!important;color:#26200F!important}
body.rt-paper .toc-vol{color:rgba(60,48,22,.6)!important}
body.rt-paper .toc h4{color:rgba(60,48,22,.8)!important}
body.rt-paper .toc h4 i{color:#8A6B2B!important}
body.rt-paper .trow{color:rgba(60,48,22,.8)!important}
body.rt-paper .trow b{color:#8A6B2B!important}
body.rt-paper .trow .st .bm{color:#8A6B2B!important}
body.rt-paper .trow .st .rd{color:#6B5A30!important}
body.rt-paper .trow.off{color:rgba(60,48,22,.35)!important}
body.rt-paper .toc .trow.cur{background:rgba(138,107,43,.1)!important;color:#8A6B2B!important}

/* ── Settings panel ── */
body.rt-paper .rset{background:#F3EDDC!important;color:#26200F!important;border-color:rgba(138,107,43,.4)!important}
body.rt-paper .rset h5{color:rgba(60,48,22,.6)!important}
body.rt-paper .rset .seg button{border-color:rgba(60,48,22,.25)!important;color:rgba(60,48,22,.6)!important}
body.rt-paper .rset .seg button[aria-pressed="true"]{border-color:#8A6B2B!important;color:#8A6B2B!important;background:rgba(138,107,43,.1)!important}
body.rt-paper .rset .rset-foot{color:rgba(60,48,22,.5)!important}

/* ── Buttons in paper mode ── */
body.rt-paper .btn{color:rgba(60,48,22,.85)!important;border-color:rgba(138,107,43,.4)!important}
body.rt-paper .btn:hover{border-color:#8A6B2B!important;background:rgba(138,107,43,.08)!important;color:#26200F!important}
body.rt-paper .btn-ghost{border-color:rgba(60,48,22,.25)!important;color:rgba(60,48,22,.6)!important}

/* ── Scrollbar ── */
body.rt-paper ::-webkit-scrollbar-track{background:#EFE7D6!important}
body.rt-paper ::-webkit-scrollbar-thumb{background:#C4B896!important}

/* ── Selection ── */
body.rt-paper ::selection{background:rgba(138,107,43,.25)!important;color:#26200F!important}

/* ── Loading skeleton ── */
body.rt-paper .ch-load span{background:linear-gradient(90deg,rgba(60,48,22,.06) 25%,rgba(60,48,22,.12) 50%,rgba(60,48,22,.06) 75%)!important;background-size:200% 100%!important}
body.rt-paper .ch-load p{color:rgba(60,48,22,.5)!important}

/* ── Passage marker ── */
body.rt-paper .pmark{background:#8A6B2B!important}

/* ── Page mark (in saved passages) ── */
body.rt-paper .savedpass .snip{color:#4A3B1C!important}

/* Book mode typography settings */
.bk[data-lh="0"] .bk-tx{line-height:1.5}
.bk[data-lh="2"] .bk-tx{line-height:1.8}
.bk[data-ls="1"] .bk-tx{letter-spacing:.015em}