.book-detail {
  --book-burgundy:#832047;
  --book-copper:#8a581f;
  --book-rule:#ead8c5;
}
.book-width { width:min(1080px, calc(100% - 80px)); margin-inline:auto; }
.book-masthead { background:#fffdf8; border-bottom:1px solid var(--book-rule); }
.book-masthead-inner { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.book-brand { font-family:var(--serif); font-size:21px; font-weight:700; white-space:nowrap; }
.book-brand span { color:var(--book-burgundy); margin-inline-end:5px; }
.book-back { color:var(--book-burgundy); font-size:14px; padding-block:9px; }
.book-back:hover { text-decoration:underline; }
.book-hero { background:radial-gradient(ellipse at 22% 45%,#f9dfaa 0%,transparent 48%),linear-gradient(120deg,#fff5df,#fffdf8 64%,#fff0ef); border-bottom:1px solid var(--book-rule); }
.book-hero-inner { display:grid; grid-template-columns:minmax(0, .85fr) minmax(0, 1fr); align-items:center; gap:clamp(36px,7vw,96px); padding-block:clamp(38px,6vw,80px); }
.book-jacket { justify-self:center; width:min(100%,300px); }
.book-jacket img { display:block; width:100%; height:auto; border-radius:2px 5px 5px 2px; box-shadow:9px 15px 30px #63392336,1px 2px 5px #63392330; }
.book-label { color:var(--book-copper); font-size:13px; line-height:1.5; font-weight:600; letter-spacing:.15em; }
.book-intro h1 { color:var(--book-burgundy); font:700 clamp(42px,6vw,76px)/1.19 var(--serif); letter-spacing:.035em; margin-block:15px 13px; }
.book-intro h1 span { display:block; font-size:clamp(21px,3vw,33px); line-height:1.5; letter-spacing:.04em; margin-top:8px; }
.book-author { color:var(--muted); font-size:14px; letter-spacing:.11em; }
.book-opening { margin-block:23px 24px; max-width:24em; font-family:var(--serif); font-size:clamp(18px,2vw,23px); line-height:1.8; }
.book-purchase { display:flex; align-items:center; gap:14px; flex-wrap:wrap; color:var(--muted); font-size:13px; }
.book-buy { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:50px; padding:11px 25px; background:var(--book-burgundy); color:#fff8e7; border:1px solid transparent; border-radius:4px; font-size:16px; font-weight:600; }
.book-buy:hover { background:#692038; }
.book-reading { width:min(750px, calc(100% - 80px)); padding-block:52px 62px; }
.book-story h2 { margin-block:12px 20px; color:var(--book-burgundy); font:600 clamp(24px,4vw,37px)/1.5 var(--serif); }
.book-story p:not(.book-label) { margin-top:14px; line-height:1.9; }
.book-toc { margin-top:44px; padding:clamp(18px,4vw,32px); background:#fffaef; border:1px solid var(--book-rule); border-radius:6px; }
.book-toc h2 { color:var(--book-burgundy); font:600 clamp(26px,4vw,36px)/1.5 var(--serif); }
.book-toc-list { display:grid; grid-auto-flow:column; grid-template:repeat(6,auto) / repeat(2,minmax(0,1fr)); column-gap:24px; list-style:none; padding:0; margin:15px 0 0; }
.book-toc-list li { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:5px; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--book-rule); font-size:15px; line-height:1.7; }
.book-toc-number { color:var(--book-copper); font-size:13px; font-weight:600; }
.book-toc-list strong { color:var(--book-burgundy); }
.book-toc-note { color:var(--ink); margin-top:19px; line-height:1.85; }
.book-purchase-end { margin-top:20px; }
.book-excerpt { margin:32px 0 40px; padding:24px 26px; border-inline-start:2px solid #bb7c36; background:#fff6e6; }
.book-excerpt blockquote { margin:0; color:var(--book-burgundy); font:500 clamp(18px,2.6vw,24px)/1.8 var(--serif); }
.book-excerpt figcaption { margin-top:12px; color:var(--muted); font-size:13px; }
.book-other { border-top:1px solid var(--book-rule); padding-top:24px; }
.book-other h2 { margin-top:10px; font:500 clamp(20px,3vw,26px)/1.5 var(--serif); }
@media (max-width:640px) {
  .book-width,.book-reading { width:calc(100% - 36px); }
  .book-masthead-inner { min-height:58px; }
  .book-brand { font-size:18px; }
  .book-hero-inner { grid-template-columns:1fr; gap:24px; padding-block:24px 34px; }
  .book-jacket { width:min(46%,184px); }
  .book-intro h1 { margin-block:9px; }
  .book-intro h1 span { margin-top:4px; }
  .book-opening { margin-block:15px 19px; }
  .book-reading { padding-block:33px 42px; }
  .book-toc { margin-top:31px; }
  .book-toc-list { grid-auto-flow:row; grid-template:auto / minmax(0,1fr); }
  .book-excerpt { padding:20px 17px; }
}
