.codex-stage{min-height:calc(100vh - 64px);padding:34px 18px 90px;background:
  linear-gradient(rgba(7,17,29,.38),rgba(7,17,29,.7)),
  radial-gradient(circle at 50% 0%,rgba(215,164,93,.2),transparent 45%)}
.book{max-width:1050px;margin:auto;background:var(--paper);color:var(--ink);border-radius:8px;
  box-shadow:var(--shadow),inset 0 0 0 1px rgba(83,65,38,.22);overflow:hidden;position:relative}
.book:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:
  repeating-linear-gradient(0deg,rgba(83,65,38,.035) 0,rgba(83,65,38,.035) 1px,transparent 1px,transparent 4px)}
.book-spread{display:grid;grid-template-columns:1fr 1fr;min-height:690px;position:relative}
.book-spread:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(83,65,38,.18);box-shadow:0 0 16px rgba(83,65,38,.22)}
.book-page{position:relative;padding:60px 56px 48px;min-width:0}
.book-page.left{background:linear-gradient(90deg,rgba(74,54,27,.06),transparent 12%)}
.book-page.right{background:linear-gradient(270deg,rgba(74,54,27,.06),transparent 12%)}
.page-number{position:absolute;bottom:22px;font-family:"Cormorant Garamond";font-size:.9rem;color:var(--ink-soft)}
.left .page-number{left:50%}.right .page-number{right:50%}
.book-kicker{font-family:"IBM Plex Mono";text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:#7b694e}
.book h1,.book h2,.book h3{font-family:"Cormorant Garamond",serif}
.book h1{font-size:3.2rem;line-height:.95;margin:18px 0}
.book h2{font-size:2.2rem;margin:0 0 18px}.book h3{font-size:1.3rem;margin:22px 0 8px}
.dropcap:first-letter{float:left;font-family:"Cormorant Garamond";font-size:4.6rem;line-height:.72;padding:8px 8px 0 0;color:#7a4f21}
.book p{font-family:"Cormorant Garamond",serif;font-size:1.16rem;line-height:1.55}
.cover-page{display:grid;place-items:center;text-align:center;background:
  linear-gradient(rgba(25,40,44,.12),rgba(25,40,44,.12)),
  radial-gradient(circle at 50% 35%,rgba(215,164,93,.24),transparent 34%)}
.cover-emblem{width:150px;height:150px;border:2px solid #7a4f21;border-radius:50%;display:grid;place-items:center;margin:auto}
.cover-emblem:before{content:"✦";font-size:4rem;color:#7a4f21}
.cover-title{font-size:4.8rem!important;letter-spacing:.03em}.cover-subtitle{font-style:italic;color:var(--ink-soft)}
.book-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.book-button{border:1px solid #8e724d;background:transparent;color:#4d3920;padding:10px 16px;border-radius:3px;font-family:"IBM Plex Mono";font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.book-button.primary{background:#31444a;color:#f1e9d8;border-color:#31444a}
.toc{list-style:none;padding:0;margin:0}.toc li{border-bottom:1px dotted rgba(74,54,27,.32)}
.toc button{width:100%;display:flex;justify-content:space-between;gap:16px;border:0;background:none;padding:13px 0;color:var(--ink);text-align:left}
.toc strong{font-family:"Cormorant Garamond";font-size:1.13rem}.toc span{font-family:"IBM Plex Mono";font-size:.65rem;color:var(--ink-soft)}
.chapter-card{border-left:3px solid #8e724d;padding:0 0 0 18px;margin:26px 0}
.quest-paper{border:1px solid rgba(74,54,27,.22);padding:14px;margin:10px 0;background:rgba(255,255,255,.16)}
.quest-paper.done{opacity:.58}.quest-paper label{display:flex;gap:10px;align-items:flex-start}
.quest-paper input{margin-top:5px;accent-color:#7a4f21}.quest-paper small{display:block;font-family:"IBM Plex Mono";font-size:.58rem;text-transform:uppercase;color:var(--ink-soft)}
.skill-table{width:100%;border-collapse:collapse}.skill-table td{padding:11px 0;border-bottom:1px solid rgba(74,54,27,.18)}
.skill-meter{height:7px;background:rgba(74,54,27,.12);margin-top:5px}.skill-meter span{display:block;height:100%;background:#5a797d}
