
:root {
  --space:#020815;
  --space-2:#06142b;
  --navy:#0a234b;
  --blue:#1769e0;
  --blue-2:#2f8cff;
  --cyan:#68d7ff;
  --ice:#dceeff;
  --white:#f7fbff;
  --muted:#9fb9d5;
  --line:rgba(104,215,255,.17);
  --glass:rgba(7,26,58,.72);
  --glass-strong:rgba(4,18,43,.94);
  --paper:#07152c;
  --paper-2:#041025;
  --shadow:0 28px 90px rgba(0,0,0,.5);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--space);color:var(--white)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
button,input,select{font:inherit}
button{cursor:pointer}
.ambient-grid{position:fixed;inset:0;pointer-events:none;z-index:-2;background:
radial-gradient(circle at 12% 12%,rgba(23,105,224,.20),transparent 28rem),
radial-gradient(circle at 88% 28%,rgba(104,215,255,.09),transparent 30rem),
linear-gradient(180deg,#020815,#06142b 58%,#020815)}
.ambient-grid::after{content:"";position:absolute;inset:0;opacity:.18;background-image:
linear-gradient(rgba(104,215,255,.06) 1px,transparent 1px),
linear-gradient(90deg,rgba(104,215,255,.06) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
.reader-toolbar{position:sticky;top:0;z-index:50;background:rgba(2,8,21,.86);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.toolbar-inner{width:min(1500px,calc(100% - 2rem));min-height:76px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.book-brand{display:flex;align-items:center;gap:.8rem;min-width:0}
.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(104,215,255,.36);background:radial-gradient(circle,rgba(47,140,255,.23),rgba(4,18,43,.9));font-family:Georgia,serif;color:var(--cyan);font-weight:700}
.brand-copy{display:grid;gap:.1rem;min-width:0}
.brand-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-copy small{font-size:.62rem;letter-spacing:.08em;color:rgba(220,238,255,.58);text-transform:uppercase}
.reader-tools{display:flex;align-items:center;gap:.6rem}
.chapter-picker{display:flex;align-items:center;gap:.55rem;border:1px solid var(--line);border-radius:999px;padding:.35rem .4rem .35rem .8rem;background:rgba(255,255,255,.035)}
.chapter-picker span{font-size:.59rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-weight:800}
.chapter-picker select{max-width:360px;border:0;outline:0;color:var(--ice);background:#06142b;border-radius:999px;padding:.55rem .7rem}
.tool-button,.nav-button{border:1px solid rgba(104,215,255,.22);background:rgba(47,140,255,.08);color:var(--ice);border-radius:999px;padding:.68rem .9rem;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tool-button:hover,.nav-button:hover{background:rgba(47,140,255,.18);border-color:rgba(104,215,255,.5)}
.icon-only{width:42px;height:42px;padding:0}
.reader-shell{width:min(1540px,calc(100% - 1.5rem));margin:auto;padding:1.05rem 0 1.5rem}
.reader-status{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.3rem .5rem .8rem;color:rgba(220,238,255,.6);font-size:.68rem;letter-spacing:.05em}
#sectionName{color:var(--cyan);font-weight:800}
.status-dot{margin:0 .35rem}
.reading-hint{font-size:.6rem;text-transform:uppercase;letter-spacing:.12em}
.book-stage{position:relative}
.book-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:1.15rem;perspective:1800px;align-items:stretch}
.book-spread::before{content:"";position:absolute;left:50%;top:1.5%;bottom:1.5%;width:18px;transform:translateX(-50%);z-index:3;pointer-events:none;background:radial-gradient(ellipse at center,rgba(0,0,0,.42),transparent 70%)}
.book-page{position:relative;min-height:740px;height:calc(100vh - 210px);max-height:920px;overflow-y:auto;padding:3.2rem clamp(2rem,4vw,4.2rem) 3rem;border:1px solid rgba(104,215,255,.14);border-radius:26px;background:
linear-gradient(155deg,rgba(10,35,75,.88),rgba(4,16,37,.98) 68%),
radial-gradient(circle at 20% 10%,rgba(104,215,255,.07),transparent 20rem);
box-shadow:var(--shadow),inset 0 0 70px rgba(0,0,0,.17);scrollbar-width:thin;scrollbar-color:rgba(104,215,255,.28) transparent;transform-origin:left center}
.book-page:nth-of-type(even){transform-origin:right center}
.js-reader .book-page{display:none}
.js-reader .book-page.is-visible{display:block}
.book-page::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.012)}
.page-running-head{position:absolute;top:1.35rem;left:2rem;right:2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(159,185,213,.48);font-size:.56rem;text-transform:uppercase;letter-spacing:.14em}
.page-content{max-width:760px;margin:0 auto;font-family:Georgia,"Times New Roman",serif}
.body-paragraph{font-size:1.015rem;line-height:1.78;color:rgba(247,251,255,.88);margin:0 0 1.12rem}
.body-paragraph strong{color:#fff}
.body-paragraph em{color:#eaf7ff}
.callout-paragraph{padding:.85rem 1rem;border-left:3px solid var(--cyan);background:rgba(47,140,255,.07);border-radius:0 12px 12px 0}
.page-content h3{font-size:1.25rem;line-height:1.3;color:var(--cyan);margin:1.55rem 0 .75rem}
.list-item{position:relative;padding-left:1.35rem;font-size:1rem;line-height:1.72;margin:.42rem 0;color:rgba(247,251,255,.86)}
.bullet{position:absolute;left:0;color:var(--cyan)}
.toc-entry{padding:.45rem 0;border-bottom:1px dotted rgba(104,215,255,.14);font-size:.96rem;line-height:1.55;color:rgba(247,251,255,.84)}
.book-figure{margin:1.3rem auto 1.6rem;display:grid;place-items:center}
.book-figure img{display:block;max-width:100%;max-height:520px;width:auto;height:auto;border-radius:14px;border:1px solid rgba(104,215,255,.12);box-shadow:0 16px 42px rgba(0,0,0,.32)}
.page-number{position:absolute;bottom:1.2rem;left:0;right:0;text-align:center;color:rgba(159,185,213,.42);font-family:Georgia,serif;font-size:.78rem}
.section-opening .page-running-head{opacity:.32}
.chapter-opening,.front-opening{padding:3.2rem 0 2rem}
.chapter-kicker{margin:0 0 .75rem;color:var(--cyan);font-family:Inter,system-ui,sans-serif;font-size:.67rem;font-weight:900;letter-spacing:.24em;text-transform:uppercase}
.chapter-opening h1,.front-opening h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.3rem,4.2vw,4.2rem);line-height:1.02;letter-spacing:-.025em;text-wrap:balance}
.chapter-rule{width:72px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent);margin-top:1.35rem}
.cover-page{display:grid!important;place-items:center;text-align:center;overflow:hidden;background:
radial-gradient(circle at 50% 34%,rgba(23,105,224,.22),transparent 20rem),
linear-gradient(155deg,#071a38,#020815 72%);border-color:rgba(104,215,255,.22)}
.js-reader .cover-page:not(.is-visible){display:none!important}
.cover-copy{max-width:690px;position:relative;z-index:2}
.cover-edition{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cyan);font-weight:900}
.cover-copy h1{font-family:Georgia,serif;font-size:clamp(3rem,6vw,6rem);line-height:.92;letter-spacing:-.045em;margin:1rem 0 1.3rem}
.cover-copy h1 em{font-weight:400;color:var(--cyan)}
.cover-subtitle{max-width:580px;margin:0 auto;color:rgba(220,238,255,.68);line-height:1.8;font-family:Georgia,serif;font-size:1.05rem}
.cover-author{margin-top:2rem;font-family:Georgia,serif;font-size:1.2rem;letter-spacing:.08em}
.cover-monogram{position:absolute;right:8%;bottom:8%;width:110px;height:110px;border:1px solid rgba(104,215,255,.23);border-radius:50%;display:grid;place-items:center;color:rgba(104,215,255,.38);font:2rem Georgia,serif}
.cover-ornament{position:absolute;inset:0;pointer-events:none}
.cover-ornament span{position:absolute;border:1px solid rgba(104,215,255,.12);border-radius:50%}
.cover-ornament span:nth-child(1){width:420px;height:180px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg)}
.cover-ornament span:nth-child(2){width:520px;height:240px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(20deg)}
.cover-ornament span:nth-child(3){width:14px;height:14px;background:var(--cyan);box-shadow:0 0 28px rgba(104,215,255,.8);left:calc(50% + 235px);top:calc(50% - 70px)}
.edge-turn{position:absolute;z-index:7;top:10%;bottom:10%;width:7%;border:0;background:transparent;opacity:0}
.edge-turn:hover{opacity:1;background:linear-gradient(90deg,rgba(104,215,255,.06),transparent)}
.edge-prev{left:0}
.edge-next{right:0;transform:scaleX(-1)}
.reader-controls{display:grid;grid-template-columns:auto auto minmax(220px,1fr) auto auto;align-items:center;gap:.7rem;padding:1rem .2rem 0}
.primary-nav{background:linear-gradient(135deg,rgba(23,105,224,.34),rgba(47,140,255,.16));border-color:rgba(104,215,255,.34)}
.progress-wrap{display:grid;gap:.35rem;padding:0 .7rem}
#progressRange{width:100%;accent-color:var(--cyan)}
.progress-meta{display:flex;justify-content:space-between;font-size:.56rem;color:rgba(159,185,213,.55);text-transform:uppercase;letter-spacing:.1em}
.book-spread.flip-forward .is-visible{animation:flipForward .22s ease}
.book-spread.flip-back .is-visible{animation:flipBack .22s ease}
@keyframes flipForward{50%{transform:rotateY(-4deg) translateX(-8px);opacity:.82}}
@keyframes flipBack{50%{transform:rotateY(4deg) translateX(8px);opacity:.82}}
.search-panel{position:fixed;inset:0;z-index:100;display:none;place-items:start center;padding:7vh 1rem;background:rgba(0,4,12,.78);backdrop-filter:blur(14px)}
.search-panel.open{display:grid}
.search-dialog{width:min(820px,100%);max-height:86vh;overflow:hidden;border:1px solid rgba(104,215,255,.25);border-radius:28px;background:#051226;box-shadow:0 40px 120px rgba(0,0,0,.6);padding:1.35rem;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:.9rem}
.search-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}
.search-kicker{margin:0 0 .25rem;color:var(--cyan);font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;font-weight:900}
.search-head h2{margin:0;font:2rem Georgia,serif}
.close-search{border:1px solid var(--line);background:rgba(255,255,255,.03);color:white;width:42px;height:42px;border-radius:50%;font-size:1.5rem}
.search-input{width:100%;border:1px solid rgba(104,215,255,.24);background:rgba(255,255,255,.04);color:white;border-radius:16px;padding:1rem 1.05rem;outline:0}
.search-input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(47,140,255,.12)}
.search-summary{margin:0;color:rgba(220,238,255,.6);font-size:.72rem}
.search-results{overflow:auto;display:grid;gap:.55rem;padding-right:.25rem}
.search-result{width:100%;text-align:left;border:1px solid rgba(104,215,255,.12);background:rgba(255,255,255,.025);color:white;border-radius:15px;padding:.85rem 1rem}
.search-result:hover{border-color:rgba(104,215,255,.42);background:rgba(47,140,255,.08)}
.search-result strong{display:block;color:var(--cyan);font-size:.72rem;margin-bottom:.32rem}
.search-result span{display:block;color:rgba(247,251,255,.75);font-family:Georgia,serif;line-height:1.55;font-size:.83rem}
.no-result{padding:1.4rem;text-align:center;color:rgba(220,238,255,.55)}

/* =========================================================
   Reader v4 - authoritative responsive behavior
   Desktop: the book is locked to the viewport; pages never scroll.
   Mobile/tablet: one normal document-flow page; only explicit buttons turn pages.
   ========================================================= */

@media screen and (min-width:901px){
  html,body{width:100%;height:100%;overflow:hidden!important}
  body{min-height:100vh;min-height:100dvh}
  .reader-toolbar{position:relative!important;top:auto!important;height:76px!important;min-height:76px!important}
  .toolbar-inner{height:76px!important;min-height:76px!important}
  .reader-shell{
    width:min(1600px,100%)!important;
    height:calc(100vh - 76px)!important;
    height:calc(100dvh - 76px)!important;
    min-height:0!important;
    margin:0 auto!important;
    padding:.45rem .75rem .55rem!important;
    display:grid!important;
    grid-template-rows:30px minmax(0,1fr) 44px!important;
    overflow:hidden!important;
  }
  .reader-status{min-height:0!important;height:30px!important;padding:.1rem .4rem .35rem!important}
  .book-stage{
    min-height:0!important;
    height:auto!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr) 92px!important;
    grid-template-rows:minmax(0,1fr)!important;
    align-items:stretch!important;
    gap:.75rem!important;
  }
  .book-spread{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:1.05rem!important;
    align-items:stretch!important;
  }
  .book-spread.single-page{grid-template-columns:1fr!important}
  .book-spread.single-page .book-page.is-visible{width:min(720px,58vw)!important;justify-self:center!important}
  .book-page{
    min-width:0!important;
    min-height:0!important;
    width:auto!important;
    height:100%!important;
    max-height:none!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    scrollbar-width:none!important;
    padding:2.55rem clamp(1.35rem,2.8vw,3.1rem) 2.25rem!important;
  }
  .book-page::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .page-content,.cover-copy{will-change:transform;max-width:760px}
  .side-nav{
    position:relative!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    align-self:center!important;
    justify-self:stretch!important;
    width:auto!important;
    height:132px!important;
    min-width:0!important;
    border:1px solid rgba(104,215,255,.32)!important;
    border-radius:24px!important;
    background:linear-gradient(180deg,rgba(23,105,224,.2),rgba(4,18,43,.9))!important;
    color:var(--ice)!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:.45rem!important;
    box-shadow:0 14px 44px rgba(0,0,0,.28)!important;
    z-index:20!important;
  }
  .side-nav-back{grid-column:1!important;grid-row:1!important}
  .side-nav-forward{grid-column:3!important;grid-row:1!important}
  .side-nav:hover:not(:disabled),.side-nav:focus-visible:not(:disabled){
    transform:translateY(-2px);background:linear-gradient(180deg,rgba(23,105,224,.35),rgba(4,18,43,.96))!important;border-color:rgba(104,215,255,.68)!important;outline:none
  }
  .side-nav:disabled{opacity:.28!important;cursor:default!important}
  .side-nav-arrow{color:var(--cyan);font-size:1.8rem;line-height:1}
  .side-nav-label{font-size:.62rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
  .reader-controls{
    min-height:0!important;height:44px!important;position:static!important;
    display:grid!important;grid-template-columns:auto minmax(180px,1fr) auto!important;
    align-items:center!important;gap:.65rem!important;padding:.3rem 6.5rem 0!important;
    background:transparent!important;border:0!important;backdrop-filter:none!important
  }
  .compact-nav{min-width:72px;padding:.5rem .75rem}
  .progress-wrap{padding:0 .5rem}
  .edge-turn{display:none!important}
}

@media screen and (max-width:900px){
  html,body{height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important}
  body{min-height:100vh!important;min-height:100dvh!important}
  .reader-toolbar{position:sticky!important;top:0!important;height:70px!important;min-height:70px!important}
  .toolbar-inner{width:calc(100% - 1rem)!important;height:70px!important;min-height:70px!important}
  .brand-copy small{display:none!important}
  .chapter-picker span{display:none!important}
  .chapter-picker select{max-width:42vw!important}
  .reading-hint{display:none!important}
  .reader-shell{
    width:100%!important;height:auto!important;min-height:calc(100vh - 70px)!important;min-height:calc(100dvh - 70px)!important;
    margin:0!important;padding:.45rem .45rem 5.5rem!important;display:block!important;overflow:visible!important
  }
  .reader-status{min-height:27px!important;height:auto!important;padding:.1rem .4rem .5rem!important}
  .book-stage{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important}
  .book-spread{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important}
  .book-spread::before{display:none!important}
  .book-page{
    width:100%!important;height:auto!important;min-height:calc(100vh - 150px)!important;min-height:calc(100dvh - 150px)!important;
    max-height:none!important;overflow:visible!important;padding:2.55rem clamp(1.05rem,5vw,2rem) 3rem!important;border-radius:18px!important
  }
  .page-content,.cover-copy{width:auto!important;max-width:760px!important;transform:none!important;transform-origin:initial!important}
  .side-nav{
    position:fixed!important;top:auto!important;bottom:14px!important;width:auto!important;min-width:108px!important;height:48px!important;
    padding:0 .9rem!important;border:1px solid rgba(104,215,255,.35)!important;border-radius:999px!important;
    background:rgba(4,18,43,.97)!important;color:var(--ice)!important;display:flex!important;flex-direction:row!important;
    align-items:center!important;justify-content:center!important;gap:.42rem!important;z-index:100!important;
    pointer-events:auto!important;touch-action:manipulation!important;user-select:none!important;-webkit-user-select:none!important
  }
  .side-nav-back{left:10px!important;right:auto!important}
  .side-nav-forward{right:10px!important;left:auto!important}
  .side-nav:disabled{opacity:.3!important;cursor:default!important}
  .side-nav-arrow{color:var(--cyan);font-size:1.25rem!important;line-height:1}
  .side-nav-label{font-size:.56rem!important;font-weight:900!important;letter-spacing:.09em!important;text-transform:uppercase!important}
  .reader-controls{position:static!important;display:block!important;padding:.7rem 7.2rem 0!important;background:transparent!important;border:0!important;backdrop-filter:none!important}
  #firstBtn,#lastBtn{display:none!important}
  .progress-wrap{padding:0!important}
  .progress-meta span:last-child{display:none!important}
  .edge-turn{display:none!important}
}

@media screen and (max-width:620px){
  .brand-mark{width:36px;height:36px;font-size:.8rem}
  .brand-copy strong{font-size:.8rem;max-width:34vw}
  .tool-button{font-size:.58rem;padding:.58rem .7rem}
  .icon-only{width:36px;height:36px}
  .chapter-picker{padding:.2rem}
  .chapter-picker select{font-size:.68rem;padding:.5rem .55rem}
  .reader-shell{padding-left:.3rem!important;padding-right:.3rem!important}
  .book-page{padding-left:1rem!important;padding-right:1rem!important;border-radius:16px!important}
  .body-paragraph{font-size:.96rem;line-height:1.64}
  .list-item{font-size:.94rem;line-height:1.6}
  .page-content h3{font-size:1.12rem;margin:1.05rem 0 .55rem}
  .chapter-opening,.front-opening{padding:2rem 0 1.15rem}
  .chapter-opening h1,.front-opening h1{font-size:2.05rem}
  .side-nav{min-width:102px!important;bottom:9px!important}
  .side-nav-back{left:7px!important}.side-nav-forward{right:7px!important}
  .reader-controls{padding-left:6.8rem!important;padding-right:6.8rem!important}
  .search-panel{padding:1rem .55rem}
  .search-dialog{max-height:94vh;border-radius:20px}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

@media print{
  .reader-toolbar,.reader-status,.reader-controls,.side-nav,.edge-turn,.search-panel{display:none!important}
  html,body{height:auto!important;overflow:visible!important;background:white!important;color:black!important}
  .reader-shell,.book-stage,.book-spread{display:block!important;height:auto!important;overflow:visible!important}
  .book-page,.js-reader .book-page{display:block!important;height:auto!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important;background:white!important;color:black!important;page-break-after:always!important}
  .page-content,.cover-copy{transform:none!important;width:auto!important}
  .body-paragraph,.list-item{color:black!important}.page-running-head,.page-number{color:#666!important}
}
