
:root{
  --bg:#ffffff;--fg:#111827;--muted:#4b5563;--soft:#6b7280;--card:#ffffff;--panel:#f8fafc;--accent:#0a58ca;--backlink:#dc2626;
  --btn:#f3f4f6;--btnHover:#e5e7eb;--border:rgba(15,23,42,0.12);--borderStrong:rgba(15,23,42,0.18);
  --shadow:0 10px 28px rgba(15,23,42,0.08);--glass:rgba(255,255,255,0.92);
  --readerFontSize:20px;--readerLineHeight:1.78;--readerFontFamily:Georgia,"Times New Roman",Times,serif;
}
body[data-theme="sepia"]{
  --bg:#f7f1e1;--fg:#1f2937;--muted:#4b5563;--soft:#6b7280;--card:#fffaf0;--panel:#fbf4e5;--btn:#f3e7cf;--btnHover:#ead9b9;--glass:rgba(247,241,225,0.92)
}
body[data-theme="dark"]{
  --bg:#0b1220;--fg:#e5e7eb;--muted:#9ca3af;--soft:#94a3b8;--card:#0f172a;--panel:#111827;--btn:#111827;--btnHover:#1f2937;
  --border:rgba(255,255,255,0.14);--borderStrong:rgba(255,255,255,0.22);--shadow:0 14px 32px rgba(0,0,0,0.35);--glass:rgba(15,23,42,0.88)
}
*{box-sizing:border-box} html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
.container{max-width:1020px;margin:0 auto;padding:20px 16px 40px}
.header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.brand h1{margin:0;font-size:28px;line-height:1.15}
.homeTip,.subtitle,.meta,.hint{color:var(--muted)}
.card,.chapterCard,.paraCard{background:var(--card);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow)}
.card{padding:18px}
.chapters{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px}
.chapterLink{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--card)}
.chapterLink .meta{display:block;font-size:12px;line-height:1.35;color:var(--muted)}
.chapterLink .title{display:block;font-size:16px;line-height:1.4;color:var(--fg)}
.readerHeader{padding:14px 16px 10px;border-bottom:1px solid var(--border);background:var(--glass);position:sticky;top:0;backdrop-filter:blur(8px);z-index:5}
.readerHeader .topRow{display:flex;justify-content:space-between;align-items:center;gap:10px}
.readerHeader .back{font-size:14px;color:var(--backlink);font-weight:600}
.readerHeader .meta{font-size:12px;text-align:right}
.readerHeader h1{margin:10px 0 0;font-size:18px;line-height:1.25}
.readerMain{min-height:calc(100vh - 180px);padding:18px 16px 92px;max-width:860px;margin:0 auto}
.chapterMain{padding:18px 16px 40px;max-width:900px;margin:0 auto}
.chapterCard{padding:26px 22px}
.paraCard{padding:28px 24px}
.chapterLinks{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}
.smallBtn,button{appearance:none;border:1px solid var(--border);background:var(--btn);color:var(--fg);padding:10px 14px;border-radius:14px;font-size:14px;cursor:pointer;min-width:104px}
.smallBtn:hover,button:hover{background:var(--btnHover);text-decoration:none}
button:disabled{opacity:.45;cursor:not-allowed}
.controls{position:fixed;left:0;right:0;bottom:0;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:var(--glass);border-top:1px solid var(--border);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:6}
.controls .progress{color:var(--muted);font-size:13px;text-align:center;flex:1}
.siteFooter{margin-top:18px;padding-top:8px;border-top:1px solid var(--border);text-align:center;color:var(--muted);font-size:12px}
.footerMeta{margin-top:4px}
.chapterUnit,.pagePiece,#para,.chapterCard{font-family:var(--readerFontFamily);font-size:var(--readerFontSize);line-height:var(--readerLineHeight)}
.chapterUnit + .chapterUnit{margin-top:26px;padding-top:26px;border-top:1px solid var(--border)}
.pageStack{display:grid;gap:18px}
.contextHeading{display:inline-block;margin:0 auto 6px;padding:8px 18px;border:1px solid var(--borderStrong);background:var(--panel);border-radius:999px;
  font-size:15px;line-height:1.3;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-align:center}
.contextSubheading,.harMiniHeading{display:block;text-align:center;color:var(--soft);font-size:14px;line-height:1.35;letter-spacing:.04em;text-transform:uppercase;margin-top:-2px}
.pagePiece + .pagePiece{margin-top:8px}
.harProse p,.harQuote p,.harNote p,.harDedication p,.harTermBlock p,.contactCard p,.contactInfo p{margin:0 0 1em}
.harProse p:last-child,.harQuote p:last-child,.harNote p:last-child,.harDedication p:last-child,.harTermBlock p:last-child,.contactCard p:last-child,.contactInfo p:last-child{margin-bottom:0}
.harProse,.harQuote,.harTermBlock,.contactCard,.contactInfo{color:var(--fg)}
.harQuote{padding:0 0 0 16px;border-left:3px solid rgba(59,130,246,.35)}
.harVerse{font-style:italic;text-align:center}
.harVerse .lines{display:inline-block;max-width:100%;text-align:left}
.harCitation{margin-top:.8em;color:var(--muted);font-size:.9em;text-align:center}
.harSectionHeading{font-size:1.18em;line-height:1.35;letter-spacing:.04em;text-align:center;font-weight:700;text-transform:uppercase}
.termHeading{display:inline-block;margin:0 0 .65em;padding:5px 10px;border-radius:999px;border:1px solid var(--borderStrong);background:var(--panel);
  font-size:.78em;line-height:1.2;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.harTermBlock{padding:2px 0}
.harTitlePage{text-align:center;padding:14px 0}
.harTitlePage .smallcaps{font-size:.9em;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2em}
.harTitlePage h2{font-size:2.1em;line-height:1.2;margin:.2em 0 .8em}
.harTitlePage .compiled,.harTitlePage .publisher{font-size:.82em;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:1.4em}
.harTitlePage .author{margin-top:.4em;font-size:1.05em}
.harDedication{text-align:center}
.harContents h3{margin:0 0 .6em;text-align:center;font-size:1.15em}
.harContents ol{margin:.4em 0 0 1.3em;padding:0}
.harContents li,.harList li{margin:.45em 0}
.harList ol,.harList ul{margin:.2em 0 .2em 1.3em;padding:0}
.harNote{font-size:.92em;padding:1em 1.1em;border-left:4px solid rgba(59,130,246,.45);background:rgba(59,130,246,.06);border-radius:12px}
.harEndMark{text-align:center;color:var(--soft);font-size:.98em;line-height:1.6;padding:8px 0}
.contactCard{padding:16px 18px;border:1px solid var(--border);border-radius:18px;background:var(--panel)}
.contactCountry{font-size:.8em;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--soft);margin-bottom:.7em}
.contactInfo{padding:14px 18px;border:1px solid var(--border);border-radius:16px;background:var(--panel);text-align:center}
.piece-contact + .piece-contact{margin-top:12px}
@media (max-width:640px){
  :root{--readerFontSize:19px;--readerLineHeight:1.72}
  .brand h1{font-size:24px}
  .chapterCard,.paraCard{padding:20px 16px}
  .contextHeading{font-size:13px;padding:7px 14px}
}
