/* CORPUS folio — quiet occult procedure around the unchanged blank master sheets. */
.corpus-screen{
  --corpus-paper:#e8dec5;
  --corpus-ink:#0c100e;
  --corpus-red:#914238;
  --corpus-teal:#648d84;
  --corpus-mustard:#b79a65;
  position:absolute;inset:0;display:flex;align-items:stretch;justify-content:center;
  padding:clamp(20px,3vw,42px);overflow:auto;isolation:isolate;color:#e8dfce;
  background:
    radial-gradient(ellipse 46% 84% at 72% 50%,rgba(112,88,52,.16),transparent 74%),
    radial-gradient(ellipse 32% 70% at 13% 95%,rgba(103,55,42,.12),transparent 78%),
    linear-gradient(132deg,#171a15 0%,#0c100e 57%,#121713 100%);
}
.corpus-screen::before{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.16;
  background-image:radial-gradient(rgba(225,211,176,.44) .45px,transparent .75px),linear-gradient(112deg,transparent 0 46%,rgba(123,57,45,.12) 46.2% 46.5%,transparent 46.7% 100%);
  background-size:5px 5px,100% 100%;mix-blend-mode:screen;
}
.corpus-screen::after{
  content:"";position:absolute;z-index:0;inset:10px;pointer-events:none;
  border:1px solid rgba(193,171,126,.16);box-shadow:inset 0 0 48px rgba(0,0,0,.2);
}
.corpus-folio{position:relative;z-index:1;width:min(100%,1580px);min-height:0;display:grid;grid-template-rows:auto 1px minmax(0,1fr) auto}
.corpus-header{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:68px;padding:0 clamp(5px,1.2vw,18px) 14px}
.corpus-title-lockup{display:flex;align-items:center;gap:15px;min-width:0}
.corpus-seal{position:relative;display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid rgba(183,154,101,.64);border-radius:50%;color:#b89a67;box-shadow:inset 0 0 0 4px rgba(183,154,101,.06)}
.corpus-seal::before,.corpus-seal::after{content:"";position:absolute;inset:-3px;border:1px solid rgba(145,66,56,.42);border-radius:50%;transform:translate(.8px,-.5px)}
.corpus-seal::after{inset:4px;border-color:rgba(100,141,132,.52);transform:translate(-.7px,.5px)}
.corpus-seal svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
.corpus-heading-group{min-width:0}
.corpus-kicker{margin:0 0 4px;color:#9a9a88;font:500 8px/1.2 "LEDGER",monospace;letter-spacing:.2em;text-transform:uppercase}
.corpus-heading-group h1{margin:0;color:#e5d9c0;font:700 clamp(19px,2vw,27px)/1 "Courier New","Liberation Mono",monospace;letter-spacing:.075em;text-transform:uppercase}
.corpus-header-actions{display:flex;align-items:center;gap:clamp(14px,2vw,30px);flex:none}
.corpus-print-link,.corpus-return{display:inline-flex;align-items:center;gap:8px;padding:7px 0;border:0;border-bottom:1px solid rgba(208,192,157,.36);background:none;color:#d4c7aa;font:500 9px/1.1 "LEDGER",monospace;letter-spacing:.12em;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:color .16s,border-color .16s}
.corpus-print-link svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.4}
.corpus-print-link:hover,.corpus-print-link:focus-visible,.corpus-return:hover,.corpus-return:focus-visible{color:#f3e5c5;border-color:var(--corpus-teal)}
.corpus-rule{height:1px;background:linear-gradient(90deg,rgba(145,66,56,.7),rgba(191,165,111,.32) 30%,rgba(191,165,111,.18) 74%,rgba(100,141,132,.55));box-shadow:0 1px rgba(0,0,0,.35)}
.corpus-body{min-height:0;display:grid;grid-template-columns:minmax(176px,230px) minmax(0,1fr);gap:clamp(24px,4vw,64px);padding:clamp(18px,2.8vh,32px) clamp(5px,1.2vw,18px) 14px}
.corpus-index{display:flex;flex-direction:column;justify-content:center;min-width:0}
.corpus-index-heading{margin:0 0 12px 2px;color:#9b9989;font:500 8px/1 "LEDGER",monospace;letter-spacing:.19em}
.corpus-index-list{display:flex;flex-direction:column;gap:4px}
.corpus-index-item{position:relative;display:grid;grid-template-columns:35px minmax(0,1fr) 8px;align-items:center;gap:10px;min-height:49px;padding:7px 12px 7px 13px;border:0;border-left:1px solid rgba(201,187,151,.22);background:linear-gradient(90deg,rgba(228,215,184,.025),transparent 84%);color:#b8b5a7;font:500 9px/1.25 "LEDGER",monospace;letter-spacing:.07em;text-align:left;text-transform:uppercase;cursor:pointer;transition:background .18s,border-color .18s,color .18s,transform .18s}
.corpus-index-item:hover,.corpus-index-item:focus-visible{border-left-color:var(--corpus-teal);background:linear-gradient(90deg,rgba(82,128,118,.14),transparent 92%);color:#eee4d1;outline:none}
.corpus-index-item[aria-current="page"]{border-left:2px solid var(--corpus-red);padding-left:12px;background:linear-gradient(90deg,rgba(133,55,45,.19),rgba(91,113,95,.04) 63%,transparent);color:#eadfc8;box-shadow:inset 1px 0 rgba(199,162,100,.42)}
.corpus-index-number{color:#9d8b69;font:500 9px/1 "LEDGER",monospace;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.corpus-index-item[aria-current="page"] .corpus-index-number{color:#cc9c73}
.corpus-index-mark{width:6px;height:6px;border:1px solid rgba(100,141,132,.62);border-radius:50%;opacity:.46}
.corpus-index-item[aria-current="page"] .corpus-index-mark{background:var(--corpus-teal);box-shadow:0 0 8px rgba(100,141,132,.56);opacity:1}
.corpus-reading{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.corpus-reader-bar{display:flex;align-items:end;justify-content:space-between;gap:20px;min-height:40px;padding:0 2px 10px}
.corpus-reader-label{display:block;margin:0 0 4px;color:#8e9588;font:500 7px/1 "LEDGER",monospace;letter-spacing:.19em;text-transform:uppercase}
.corpus-reader-bar h2{margin:0;color:#e6dcc6;font:500 11px/1.15 "LEDGER",monospace;letter-spacing:.11em;text-transform:uppercase}
.corpus-page-count{margin:0;color:#c0a976;font:500 10px/1 "LEDGER",monospace;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.corpus-page-count span:last-child{color:#817f70}
.corpus-stage{position:relative;display:grid;place-items:center;min-height:0;perspective:1400px;isolation:isolate}
.corpus-stage::before,.corpus-stage::after{content:"";position:absolute;z-index:-1;left:50%;top:50%;height:min(68dvh,100%);aspect-ratio:595.276/841.89;max-width:80%;border:1px solid rgba(219,205,171,.18);background:linear-gradient(142deg,#b8ad8e,#c9bd9f 44%,#aaa183);box-shadow:0 20px 36px rgba(0,0,0,.26)}
.corpus-stage::before{transform:translate(calc(-50% + 10px),calc(-50% + 8px)) rotate(1.05deg);opacity:.55}
.corpus-stage::after{transform:translate(calc(-50% + 5px),calc(-50% + 4px)) rotate(.44deg);opacity:.78}
.corpus-sheet-frame{position:relative;z-index:1;height:min(67dvh,100%);max-height:calc(100dvh - 210px);aspect-ratio:595.276/841.89;width:auto;max-width:100%;margin:0;background:#ded2b7;box-shadow:0 23px 52px rgba(0,0,0,.54),0 4px 10px rgba(0,0,0,.32);transform:rotate(-.14deg);transition:filter .2s,transform .2s}
.corpus-sheet-frame::before,.corpus-sheet-frame::after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;border:1px solid rgba(145,66,56,.34)}
.corpus-sheet-frame::before{transform:translate(.9px,-.6px);border-color:rgba(145,66,56,.32)}
.corpus-sheet-frame::after{transform:translate(-.7px,.6px);border-color:rgba(76,128,119,.34)}
.corpus-sheet-frame img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.93) contrast(1.035);user-select:none;-webkit-user-drag:none}
.corpus-sheet-frame.is-turning{filter:brightness(.82);transform:rotate(.28deg) translateX(3px)}
.corpus-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:48px;padding:10px 2px 0}
.corpus-turn{display:inline-flex;align-items:center;gap:10px;min-height:31px;padding:4px 2px;border:0;background:transparent;color:#d0c6ae;font:500 8px/1 "LEDGER",monospace;letter-spacing:.14em;cursor:pointer;transition:color .16s,opacity .16s}
.corpus-turn span:first-child{color:#b39968;font:400 17px/1 Georgia,serif;transition:transform .16s}
.corpus-turn:hover:not(:disabled),.corpus-turn:focus-visible:not(:disabled){color:#f1e6d0;outline:none}
.corpus-turn--previous:hover:not(:disabled) span:first-child{transform:translateX(-3px)}
.corpus-turn--next:hover:not(:disabled) span:first-child{transform:translateX(3px)}
.corpus-turn:disabled{opacity:.32;cursor:not-allowed}
.corpus-progress{display:flex;align-items:center;gap:5px}
.corpus-progress i{display:block;width:13px;height:2px;background:rgba(195,180,146,.25);transition:background .18s,box-shadow .18s}
.corpus-progress i.is-current{background:var(--corpus-red);box-shadow:0 0 6px rgba(145,66,56,.62)}
.corpus-footer{display:flex;justify-content:space-between;gap:12px;padding:8px clamp(5px,1.2vw,18px) 0;border-top:1px solid rgba(198,181,143,.15);color:#898a7e;font:500 7px/1.2 "LEDGER",monospace;letter-spacing:.16em;text-transform:uppercase}
.corpus-footer span:last-child{color:#a49570;text-align:right}
@media(max-width:820px){
  .corpus-screen{padding:17px 16px 19px}
  .corpus-folio{grid-template-rows:auto 1px minmax(0,1fr) auto}
  .corpus-header{min-height:59px;padding-bottom:11px}
  .corpus-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:13px;padding-top:13px;padding-bottom:10px}
  .corpus-index{justify-content:flex-start}
  .corpus-index-heading{margin-bottom:7px}
  .corpus-index-list{flex-direction:row;gap:5px;overflow-x:auto;padding:0 0 5px;scrollbar-width:thin;scrollbar-color:rgba(183,154,101,.45) transparent}
  .corpus-index-item{grid-template-columns:auto;justify-items:start;align-content:center;gap:4px;flex:0 0 auto;min-width:90px;min-height:43px;padding:6px 9px;border-left:0;border-bottom:1px solid rgba(201,187,151,.22);background:rgba(228,215,184,.025);font-size:7px}
  .corpus-index-item[aria-current="page"]{padding-left:9px;border-left:0;border-bottom:2px solid var(--corpus-red);box-shadow:inset 0 -1px rgba(199,162,100,.3)}
  .corpus-index-mark{position:absolute;top:7px;right:8px;width:5px;height:5px}
  .corpus-reader-bar{min-height:34px;padding-bottom:7px}
  .corpus-stage::before,.corpus-stage::after{height:min(54dvh,100%)}
  .corpus-sheet-frame{height:min(54dvh,100%);max-height:calc(100dvh - 265px)}
  .corpus-controls{min-height:41px;padding-top:6px}
  .corpus-footer{font-size:6px}
}
@media(max-width:520px){
  .corpus-screen{padding:13px 12px 15px}
  .corpus-header{align-items:flex-start;gap:12px;min-height:55px}
  .corpus-title-lockup{gap:9px}
  .corpus-seal{width:32px;height:32px}
  .corpus-seal svg{width:18px;height:18px}
  .corpus-kicker{max-width:190px;font-size:6px;letter-spacing:.14em}
  .corpus-heading-group h1{font-size:17px}
  .corpus-header-actions{gap:11px;padding-top:3px}
  .corpus-print-link,.corpus-return{font-size:7px;letter-spacing:.08em}
  .corpus-print-link{gap:5px}
  .corpus-print-link svg{width:11px}
  .corpus-return{white-space:nowrap}
  .corpus-body{gap:9px;padding-left:0;padding-right:0}
  .corpus-index-heading{font-size:7px}
  .corpus-index-item{min-width:77px;min-height:38px;font-size:6px}
  .corpus-stage::before,.corpus-stage::after{height:min(51dvh,100%)}
  .corpus-sheet-frame{height:min(51dvh,100%);max-height:calc(100dvh - 274px)}
  .corpus-turn{gap:6px;font-size:7px;letter-spacing:.09em}
  .corpus-progress{gap:3px}
  .corpus-progress i{width:8px}
  .corpus-footer{font-size:5.5px;letter-spacing:.09em}
}
@media(max-height:640px) and (min-width:821px){
  .corpus-screen{padding-top:12px;padding-bottom:12px}
  .corpus-header{min-height:50px;padding-bottom:8px}
  .corpus-body{padding-top:12px;padding-bottom:8px}
  .corpus-sheet-frame,.corpus-stage::before,.corpus-stage::after{height:min(61dvh,100%);max-height:calc(100dvh - 175px)}
  .corpus-controls{min-height:37px;padding-top:5px}
  .corpus-footer{padding-top:5px}
}
@media(prefers-reduced-motion:reduce){
  .corpus-screen *, .corpus-screen *::before,.corpus-screen *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
body.reduce-motion .corpus-screen *,body.reduce-motion .corpus-screen *::before,body.reduce-motion .corpus-screen *::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
 
.corpus-trigger img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(.6px -.4px rgba(145,66,56,.42));transition:filter .18s}
.corpus-trigger:hover:not(:disabled) img,.corpus-trigger:focus-visible:not(:disabled) img{filter:drop-shadow(.8px -.4px rgba(145,66,56,.62)) drop-shadow(-.7px .5px rgba(76,128,119,.56))}
 
.corpus-active .master-toolbar{display:none}
 
/* The source sheets stay untouched; the occult treatment lives in the folio frame. */
.corpus-screen{
  background:
    radial-gradient(ellipse 48% 78% at 52% 49%,rgba(111,43,34,.15),transparent 72%),
    radial-gradient(ellipse 36% 72% at 12% 96%,rgba(103,55,42,.12),transparent 78%),
    linear-gradient(132deg,#171a15 0%,#0c100e 57%,#121713 100%);
}
.corpus-screen::before{
  opacity:.2;
  background-image:
    radial-gradient(rgba(225,211,176,.42) .45px,transparent .75px),
    repeating-conic-gradient(from 15deg at 50% 50%,rgba(191,165,111,.045) 0deg .32deg,transparent .32deg 30deg);
  background-size:5px 5px,100% 100%;
}
.corpus-screen::after{
  border-color:rgba(193,171,126,.2);
  box-shadow:inset 0 0 0 4px rgba(193,171,126,.025),inset 0 0 0 5px rgba(145,66,56,.12),inset 0 0 48px rgba(0,0,0,.24);
}
.corpus-stage{
  background:
    radial-gradient(ellipse 62% 86% at 50% 50%,rgba(117,45,34,.12),transparent 74%),
    radial-gradient(circle at 50% 50%,transparent 0 33.8%,rgba(191,165,111,.065) 34%,transparent 34.25% 43.8%,rgba(100,141,132,.045) 44%,transparent 44.25%);
}
.corpus-stage::before,.corpus-stage::after{
  border-color:rgba(198,166,104,.22);
  box-shadow:0 18px 38px rgba(0,0,0,.3),0 0 24px rgba(145,66,56,.055);
}
.corpus-stage::after{border-color:rgba(100,141,132,.24)}
.corpus-sheet-frame{
  box-shadow:0 23px 52px rgba(0,0,0,.58),0 4px 10px rgba(0,0,0,.36),0 0 0 1px rgba(207,188,145,.35),0 0 34px rgba(145,66,56,.075);
}
.corpus-index-item:hover{transform:translateX(3px)}
.corpus-index-item[aria-current="page"] .corpus-index-mark{
  box-shadow:0 0 8px rgba(100,141,132,.62),0 0 15px rgba(145,66,56,.28);
}
.corpus-seal::before{animation:corpusSealDrift 26s linear infinite}
.corpus-seal::after{animation:corpusSealDrift 34s linear infinite reverse}
@keyframes corpusSealDrift{to{transform:rotate(360deg) translate(.8px,-.5px)}}
@media(max-width:820px){.corpus-index-item:hover{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){.corpus-seal::before,.corpus-seal::after{animation:none}}
body.reduce-motion .corpus-seal::before,body.reduce-motion .corpus-seal::after{animation:none}
