:root{--plum:#310A3D;--lime:#D2EB46;--lavender:#9991F2;--purple:#611D91;--cream:#EDE6E1;--black:#020000;--white:#FFFFFF;--ink:#1c0620;--body:#3a3040;--muted:#6b6172;}
html{font-size:15px;}
@media(min-width:600px){html{font-size:16.5px;}}
@media(min-width:1024px){html{font-size:18px;}}
@media(min-width:1440px){html{font-size:20px;}}
*{box-sizing:border-box;}
body{margin:0;font-family:'Open Sans',sans-serif;background:var(--plum);}
a{color:var(--purple);}
a:hover{color:var(--plum);}
img{max-width:100%;}

.reader{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;padding:1.4rem;}
.topbar{width:min(94vw,1320px);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.all-issues{color:rgba(237,230,225,.65);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;font-weight:700;}
.all-issues:hover{color:var(--lime);}
.masthead-mini{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800;color:rgba(237,230,225,.5);}

.stage-row{display:flex;align-items:center;gap:.9rem;width:min(96vw,1420px);}
.nav-btn{width:44px;height:44px;min-width:44px;border-radius:50%;background:var(--lime);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .16s ease,transform .12s ease;}
.nav-btn svg{width:20px;height:20px;stroke:var(--plum);}
.nav-btn:hover:not(:disabled){background:#e2f27a;}
.nav-btn:active:not(:disabled){transform:scale(.92);}
.nav-btn:disabled{opacity:.3;cursor:not-allowed;}
.nav-btn:focus-visible{outline:3px solid var(--cream);outline-offset:3px;}

.stage{flex:1;min-width:0;}
.spread{display:flex;gap:1rem;}
.page{flex:1;min-width:0;background:var(--white);box-shadow:0 20px 60px rgba(2,0,0,.35);padding:clamp(1.5rem,3.4vw,3rem);overflow-y:auto;display:flex;flex-direction:column;min-height:64vh;max-height:82vh;position:relative;}
@media(max-width:760px){.page{min-height:60vh;max-height:76vh;}.spread{display:block;}}
.page.dark-plum{background:var(--plum);color:var(--cream);}
.page.dark-black{background:var(--black);color:var(--cream);}
.page.light{background:#f7f4f2;color:var(--ink);}
.page.image-page{padding:0;display:flex;flex-direction:column;justify-content:center;}
.page.image-page .dept-above{position:static;text-align:center;padding:1.6rem 1.6rem .9rem;}
.page.image-page .img-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;flex-shrink:0;}
.page.image-page .img-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page.image-page .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,0,0,.35) 0%,rgba(2,0,0,0) 38%,rgba(2,0,0,.78) 100%);}
.page.image-page .caption-area{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;padding:1.4rem 1.6rem;}
.page .dept{position:absolute;top:1.6rem;left:1.6rem;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;z-index:2;}
.page .pagenum{position:absolute;bottom:1.2rem;right:1.6rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;opacity:.5;}

.counter{color:var(--cream);font-weight:700;letter-spacing:.12em;font-size:.8rem;text-transform:uppercase;}

.micro{font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.lime{color:var(--lime);}
.lavender{color:var(--lavender);}
.dim{opacity:.6;}
.smaller{font-size:.62rem;margin-top:.4rem;}
.rule{width:56px;height:4px;background:var(--lime);margin:1rem 0;}
.rule.small{width:40px;height:3px;}
.row{display:flex;}
.between{justify-content:space-between;}
.center{align-items:center;justify-content:center;text-align:center;}

h1{font-size:2.5rem;font-weight:800;letter-spacing:-0.02em;line-height:1.1;margin:0;}
h2{font-size:1.9rem;font-weight:800;letter-spacing:-0.02em;line-height:1.16;margin:0 0 .8rem;}
h3{font-size:1.3rem;font-weight:800;margin:0 0 .5rem;}
p{font-size:1.08rem;line-height:1.65;margin:0 0 1rem;}
.lead{font-size:1.15rem;line-height:1.6;}
.pull{font-size:1.45rem;font-weight:800;line-height:1.34;color:var(--plum);}
.pull.on-dark{color:var(--lime);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;}
@media(max-width:520px){.grid2{grid-template-columns:1fr;}}
.grid4{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
.label{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--purple);margin-bottom:.35rem;}
.page.dark-plum .label,.page.dark-black .label{color:var(--lavender);}
.block{padding:1.2rem 1.4rem;margin:1rem 0;}
.block.cream{background:var(--cream);border-left:4px solid var(--lime);color:var(--ink);}
.block.dark{background:var(--black);color:var(--cream);}
.block.plum{background:var(--plum);color:var(--cream);}
.check-label{color:var(--lime);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.4rem;display:block;}
.question{font-style:italic;font-size:1.02rem;color:var(--muted);}
.question.on-dark{color:rgba(237,230,225,.75);}
.cta{display:inline-block;margin-top:auto;padding-top:1rem;font-weight:700;text-decoration:none;border-bottom:2px solid var(--lime);color:var(--purple);align-self:center;}
.cta.on-dark{color:var(--lime);border-color:rgba(210,235,70,.5);}
.cta.on-dark:hover{color:#e0f27c;}
.cta:hover{color:var(--plum);}
.byline{margin-top:1.2rem;font-size:.85rem;color:rgba(237,230,225,.5);}
.toc-row{display:flex;gap:1rem;align-items:baseline;padding:.5rem 0;border-top:1px solid rgba(237,230,225,.15);font-size:.92rem;}
.toc-row span:first-child{min-width:9rem;font-weight:800;color:var(--lime);}
.monogram{height:52px;opacity:.9;margin-bottom:1.6rem;}
.audiobook-cover{max-height:38vh;object-fit:contain;margin:0 auto 1.2rem;display:block;}
.btn-accent{display:inline-block;background:var(--lime);color:var(--plum);font-weight:800;padding:.85rem 1.6rem;text-decoration:none;font-size:.95rem;letter-spacing:.02em;margin-top:.5rem;}
.btn-accent:hover{background:#e2f27a;color:var(--plum);}

.page-fade{animation:pageIn .32s ease;}
@keyframes pageIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.page-fade{animation:none;}.nav-btn{transition:none;}}
