:root {
  --paper: #f5f0e6;
  --paper-deep: #eee6d8;
  --ink: #171715;
  --muted: #777065;
  --line: #ddd4c6;
  --accent: #bd7c21;
  --shell: #11161a;
  --shell-soft: #171d21;
  --cream: #f6efe2;
  --header: rgba(245,240,230,.96);
  --shadow: 0 28px 80px rgba(0,0,0,.24);
}
[data-theme="dark"] { --paper:#1d1d1a; --paper-deep:#24241f; --ink:#eee8dc; --muted:#aaa397; --line:#3b3932; --accent:#dfa655; --header:rgba(29,29,26,.96); }
*{box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:94px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Libre Baskerville",Georgia,serif;transition:background .25s,color .25s}
.progress{position:fixed;inset:0 0 auto;height:2px;z-index:80}.progress span{display:block;width:0;height:100%;background:var(--accent)}
.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:15px clamp(20px,5vw,64px);border-bottom:1px solid var(--line);background:var(--header);backdrop-filter:blur(14px);font-family:"DM Sans",sans-serif}
.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-weight:600;letter-spacing:-.025em}.brand img{width:34px;height:34px;border-radius:7px}.header-actions{display:flex;align-items:center;gap:14px}.status,.chapters-label{font-size:12px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:7px}.chapters-label{color:var(--ink);text-decoration:none}.icon-button{width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink);font-size:19px;cursor:pointer;border-radius:50%}.icon-button:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.cover{min-height:calc(100vh - 63px);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:72px 24px;text-align:center}.eyebrow,.chapter-number{font-family:"DM Sans",sans-serif;text-transform:uppercase;letter-spacing:.17em;font-size:11px;color:var(--accent);font-weight:600}.cover h1{margin:18px 0 22px;font-size:clamp(58px,11vw,132px);line-height:.92;letter-spacing:-.065em;font-weight:400}.subtitle{max-width:520px;margin:0;font-style:italic;font-size:clamp(17px,2.2vw,23px);line-height:1.65;color:var(--muted)}.cover-meta{display:flex;gap:12px 26px;flex-wrap:wrap;justify-content:center;margin:42px 0;font-family:"DM Sans",sans-serif;color:var(--muted);font-size:12px}.cover-meta span+span:before{content:"·";margin-right:26px}.start-reading{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:4px;font-family:"DM Sans",sans-serif;font-size:13px}
.interlude{border-block:1px solid var(--line);padding:110px 24px;text-align:center;font-size:clamp(20px,3vw,30px);line-height:1.7}.interlude p{margin:.25em 0}
.resume-card{width:min(430px,calc(100vw - 48px));margin:30px auto 0;padding:19px 20px 18px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--paper) 94%,var(--ink) 6%);text-align:left;font-family:"DM Sans",sans-serif}.resume-kicker{margin:0 0 6px;color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.13em}.resume-copy{margin:0;color:var(--ink);font-size:14px;line-height:1.5}.resume-button{margin-top:14px;padding:0 0 3px;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:12px}
.chapter{max-width:820px;margin:0 auto;padding:92px 54px 90px}.chapter-header{text-align:left;margin-bottom:58px}.chapter-header h2{margin:14px 0 0;font-weight:400;font-size:clamp(42px,6vw,66px);letter-spacing:-.045em;line-height:1.05}.prose{max-width:690px;font-size:clamp(17px,1.45vw,19px);line-height:1.78}.prose p{margin:0 0 1.34em}.prose p:first-child{font-weight:700}.prose p:nth-child(1)::first-letter{float:none;font-size:inherit;line-height:inherit;padding:0}.prose [id^="page-"]{scroll-margin-top:110px}
.page-turn{min-height:190px;display:flex;align-items:center;justify-content:center;margin:64px calc(50% - 50vw);border-block:1px solid var(--line);color:var(--accent);text-decoration:none;font-family:"DM Sans",sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.19em;background:color-mix(in srgb,var(--paper) 97%,var(--accent) 3%)}.page-turn span{padding:14px 18px}.page-turn:hover{color:var(--ink)}
.page-badge{position:fixed;right:18px;bottom:18px;z-index:55;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:var(--header);color:var(--muted);opacity:0;transform:translateY(5px);pointer-events:none;font-family:"DM Sans",sans-serif;font-size:10px;letter-spacing:.05em;transition:.2s}.page-badge.is-visible{opacity:1;transform:none}
.back-to-top,.scroll-top{position:fixed;left:18px;bottom:18px;z-index:56;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--shell);color:var(--cream);opacity:0;transform:translateY(7px) scale(.96);pointer-events:none;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.18);font-family:"DM Sans",sans-serif;font-size:19px;transition:.2s}.back-to-top.is-visible,.scroll-top.is-visible{opacity:1;transform:none;pointer-events:auto}
.chapter-end{text-align:left;margin-top:100px;padding-top:54px;border-top:1px solid var(--line)}.ornament{margin-bottom:28px;color:var(--accent)}.chapter-end .small{font-family:"DM Sans",sans-serif;color:var(--muted);font-size:13px}.next-chapter-link{color:var(--ink);text-decoration:none}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(20px,5vw,64px);border-top:1px solid var(--line);font-family:"DM Sans",sans-serif;font-size:12px;color:var(--muted)}
.book-sidebar{display:none}
@media(min-width:1000px){
  body{min-height:100vh;background:linear-gradient(145deg,#101519,#171d21);padding:22px;display:grid;grid-template-columns:350px minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:22px;align-items:start}
  .book-sidebar{grid-column:1;grid-row:1/4;display:flex;position:sticky;top:22px;height:calc(100vh - 44px);flex-direction:column;padding:28px 20px 20px;color:#f5efe4;background:linear-gradient(180deg,#11171b,#0e1317);border:1px solid rgba(255,255,255,.06);border-radius:18px;overflow:auto}
  .sidebar-brand{text-align:center;padding:10px 10px 28px;border-bottom:1px solid rgba(255,255,255,.13)}.sidebar-brand img{width:138px;height:138px;display:block;margin:0 auto 13px}.sidebar-title{font-size:30px;line-height:1.1;margin:0;color:#f5efe4;font-weight:400}.sidebar-tagline{margin:12px 0 0;color:#dda24d;font:600 11px/1.4 "DM Sans",sans-serif;letter-spacing:.24em;text-transform:uppercase}
  .sidebar-section-title{margin:30px 12px 14px;color:#d8d4cd;font:500 11px/1 "DM Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase}.sidebar-chapters{display:grid;gap:8px}.sidebar-chapter{display:grid;grid-template-columns:46px 1fr 26px;align-items:center;gap:12px;padding:13px 12px;border:1px solid transparent;border-radius:12px;color:#eee7dc;text-decoration:none}.sidebar-chapter:hover{border-color:rgba(221,162,77,.35);background:rgba(255,255,255,.025)}.sidebar-chapter.active{border-color:rgba(221,162,77,.38);background:rgba(255,255,255,.045)}.sidebar-index{width:44px;height:44px;border:1px solid rgba(255,255,255,.24);border-radius:50%;display:grid;place-items:center;font:500 14px "DM Sans",sans-serif}.active .sidebar-index{border-color:#d99a3c;color:#e5aa55}.sidebar-chapter strong{display:block;font-size:14px;font-weight:400}.sidebar-chapter em{display:block;margin-top:4px;color:#d9d2c8;font-size:13px}.sidebar-state{font:18px "DM Sans",sans-serif;color:#d9a047;text-align:center}.sidebar-chapter.locked{opacity:.55;pointer-events:none}.sidebar-about{margin-top:26px;padding:24px 12px;border-top:1px solid rgba(255,255,255,.13);color:#c7c2ba;font-size:14px;line-height:1.7}.sidebar-about h3{margin:0 0 12px;color:#e7e1d7;font:500 11px "DM Sans",sans-serif;letter-spacing:.16em;text-transform:uppercase}.sidebar-how{display:inline-flex;margin-top:10px;padding:10px 14px;border:1px solid #c98c36;border-radius:8px;color:#f2eadf;text-decoration:none;font:500 12px "DM Sans",sans-serif}.sidebar-footer{margin-top:auto;padding:22px 12px 4px;color:#9f9b95;font:11px "DM Sans",sans-serif}
  .site-header,main,.site-footer{grid-column:2;width:100%;margin:0;background:var(--paper);min-width:0}
  .site-header{grid-row:1;top:22px;border:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:18px 18px 0 0;padding:18px 34px;box-shadow:var(--shadow)}
  main{grid-row:2;border-inline:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}
  .site-footer{grid-row:3;border:1px solid var(--line);border-radius:0 0 18px 18px;box-shadow:var(--shadow);padding:20px 34px}
  .brand span{font-family:"Libre Baskerville",Georgia,serif;font-size:17px;font-weight:400}.brand img{width:34px;height:34px;border-radius:5px}.status{display:none}.chapters-label{display:inline-block}
  body[data-chapter="1"] .cover,body[data-chapter="1"] .interlude{display:none}
  body[data-chapter="1"] main{display:block}
  body[data-chapter="1"] #chapter-one{margin-top:0}
  .chapter{max-width:920px;padding:84px 86px 80px 64px;position:relative;margin:0 auto}.chapter-header{margin-bottom:48px}.chapter-header h2{font-size:58px}.prose{font-size:18px;line-height:1.72}
  .chapter:after{content:"";position:absolute;top:96px;right:34px;width:1px;height:520px;background:var(--line)}
  .page-turn{margin-left:-64px;margin-right:-86px;min-height:150px;width:auto}
  .page-badge{right:52px;bottom:45px;border:0;background:transparent;border-radius:0;color:var(--muted)}
  .back-to-top,.scroll-top{left:auto;right:50px;bottom:88px}
  .cover{min-height:calc(100vh - 145px)}
}
@media(min-width:1400px){body{grid-template-columns:380px minmax(0,1fr)}.book-sidebar{padding-inline:26px}.chapter{max-width:980px;padding-left:70px;padding-right:120px}.page-turn{margin-left:-70px;margin-right:-120px}}
@media(max-width:999px){.chapter-header{text-align:center}.chapters-label{display:none}}
@media(max-width:600px){.status{display:none}.brand span{font-size:14px}.cover-meta{flex-direction:column}.cover-meta span+span:before{display:none}.chapter{padding:92px 24px 82px}.chapter-header{margin-bottom:54px}.page-turn{min-height:30vh;margin-top:58px;margin-bottom:58px}.page-badge{right:12px;bottom:max(12px,env(safe-area-inset-bottom));font-size:9px}.back-to-top,.scroll-top{left:12px;bottom:max(12px,env(safe-area-inset-bottom));width:40px;height:40px}.site-footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
