:root { --reader-size: 18px; }
html { scroll-padding-top: 0; }
body { height: auto; }
button, select { font: inherit; }
a, button, summary, select { -webkit-tap-highlight-color: transparent; }
.mono { font-family: var(--hs-font-mono); font-size: 12px; letter-spacing: var(--hs-tracking, .025em); }
.site-header { min-height: 80px; padding: var(--hs-4) var(--hs-8); border-bottom: var(--hs-border); display: flex; align-items: center; justify-content: space-between; gap: var(--hs-6); background: var(--hs-canvas); position: sticky; top: 0; z-index: 20; }
.brand { display: flex; gap: var(--hs-3); align-items: center; text-decoration: none; font-size: 16px; font-weight: 700; font-family: var(--hs-font-display); }
.brand-mark { width: 48px; height: 48px; display: grid; grid-auto-flow: column; align-content: center; justify-content: center; border: var(--hs-border); box-shadow: var(--hs-shadow-sm); font-size: 24px; background: var(--hs-accent); color: var(--hs-on-fill); }
.brand-mark span { align-self: end; }
.brand small { display: block; font-size: 10px; font-weight: 400; margin-top: var(--hs-1); }
.header-actions { display: flex; align-items: center; gap: var(--hs-6); }
.desktop-link { text-decoration: none; font-size: 14px; border-bottom: 1px solid transparent; }
.desktop-link:hover { border-color: var(--hs-ink); }
.hero { max-width: var(--hs-container); margin: auto; padding: var(--hs-16) var(--hs-6); display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--hs-16); align-items: center; }
.eyebrow { display: flex; align-items: center; gap: var(--hs-2); margin-bottom: var(--hs-8); font-size: 10px; font-weight: 700; }
.edition-square { width: 12px; height: 12px; border: var(--hs-border); background: var(--hs-accent); }
h1 { font-size: 60px; line-height: 1.2; letter-spacing: -.025em; }
h1 mark { display: inline-block; margin: var(--hs-1) 0; padding: 0 var(--hs-2); border: var(--hs-border); box-shadow: var(--hs-shadow-md); }
.title-arrow { font-family: var(--hs-font-display); margin-left: var(--hs-8); }
.hero-subtitle { font-size: 24px; line-height: 1.4; font-weight: 600; margin-top: var(--hs-8); }
.hero-description { margin-top: var(--hs-4); font-size: 14px; line-height: 1.56; }
.hero-actions { display: flex; align-items: center; gap: var(--hs-6); margin-top: var(--hs-8); flex-wrap: wrap; }
.hero-actions .hs-btn { min-height: 48px; }
.edition-note { font-size: 10px; line-height: 1.5; }
.resume-link { font-size: 12px; }
.hero-index { border: var(--hs-border); box-shadow: var(--hs-shadow-lg); background: var(--hs-surface-high); scroll-margin-top: 100px; }
.index-head { padding: var(--hs-4) var(--hs-6); display: flex; justify-content: space-between; align-items: center; border-bottom: var(--hs-border); background: var(--hs-accent); color: var(--hs-on-fill); font-size: 12px; }
.index-row { display: grid; grid-template-columns: 32px 1fr 24px; align-items: center; gap: var(--hs-3); text-decoration: none; padding: var(--hs-4) var(--hs-6); border-bottom: var(--hs-border-thin); }
.index-row:hover, .index-row:focus-visible { background: var(--hs-surface-raised); }
.index-row strong { font-family: var(--hs-font-display); font-size: 18px; font-weight: 600; }
.index-row small { display: block; margin-top: var(--hs-1); font-size: 12px; }
.index-no { font-size: 14px; }
.index-arrow { font-size: 20px; }
.index-foot { padding: var(--hs-4) var(--hs-6); font-size: 10px; }
.record-strip { display: grid; grid-template-columns: repeat(4,1fr); max-width: var(--hs-container); margin: 0 auto var(--hs-16); border: var(--hs-border); background: var(--hs-surface-raised); }
.record-strip > div { padding: var(--hs-6); }
.record-strip > div + div { border-left: var(--hs-border); }
.record-label { display: flex; justify-content: center; flex-direction: column; font-weight: 700; }
.record-label span { display: block; font-family: var(--hs-font-body); font-size: 12px; font-weight: 400; margin-top: var(--hs-2); }
.record-strip strong { font-family: var(--hs-font-display); display: block; font-size: 36px; line-height: 1.11; }
.record-strip strong span { font-size: 14px; margin-left: var(--hs-2); font-weight: 400; }
.record-strip small { display: block; font-size: 12px; margin-top: var(--hs-2); }
.reading-layout { max-width: var(--hs-container); margin: 0 auto; display: grid; grid-template-columns: 240px minmax(0,1fr); border-top: var(--hs-border); }
.sidebar { border-right: var(--hs-border); background: var(--hs-surface-raised); padding: var(--hs-8) var(--hs-4); }
.sidebar-inner { position: sticky; top: 112px; }
.sidebar-label { font-size: 10px; font-weight: 700; margin: 0 var(--hs-2) var(--hs-6); }
.sidebar-label span { display: block; margin-top: var(--hs-1); font-weight: 400; }
.toc-link { display: grid; grid-template-columns: 24px 1fr 16px; gap: var(--hs-2); align-items: center; padding: var(--hs-3) var(--hs-2); margin-bottom: var(--hs-2); text-decoration: none; border: 2px solid transparent; font-size: 14px; }
.toc-link > span:last-child { visibility: hidden; }
.toc-link:hover { background: var(--hs-surface-high); }
.toc-link[aria-current="location"] { background: var(--hs-accent); color: var(--hs-on-fill); border: var(--hs-border); box-shadow: var(--hs-shadow-sm); }
.toc-link[aria-current="location"] > span:last-child { visibility: visible; }
.reading-progress { margin-top: var(--hs-8); padding-top: var(--hs-6); border-top: var(--hs-border-thin); }
.reading-progress > div { display: flex; justify-content: space-between; font-size: 12px; }
progress { display: block; appearance: none; width: 100%; height: 8px; margin-top: var(--hs-3); border: var(--hs-border-thin); background: var(--hs-surface-high); }
progress::-webkit-progress-bar { background: var(--hs-surface-high); }
progress::-webkit-progress-value { background: var(--hs-ink); }
progress::-moz-progress-bar { background: var(--hs-ink); }
.reader-tools { display: flex; align-items: center; gap: var(--hs-2); margin-top: var(--hs-6); }
.reader-tools > span { margin-right: auto; font-size: 10px; }
.reader-tools button { min-height: 40px; min-width: 40px; }
.source-note { font-size: 12px; line-height: 1.56; margin-top: var(--hs-6); }
.sidebar-source, .back-top { font-size: 12px; display: block; margin-top: var(--hs-4); }
.back-top { text-decoration: none; padding-top: var(--hs-4); border-top: var(--hs-border-thin); }
.chapters { min-width: 0; }
.chapter { padding: var(--hs-12) 0 0; scroll-margin-top: 80px; }
.chapter + .chapter { border-top: var(--hs-border-heavy); }
.chapter-head { padding: 0 var(--hs-8) var(--hs-8); }
.chapter-meta { display: flex; align-items: center; justify-content: space-between; gap: var(--hs-3); margin-bottom: var(--hs-6); font-size: 12px; }
.chapter-meta .mono { font-size: 10px; font-weight: 700; }
.chapter-title { display: flex; align-items: start; gap: var(--hs-6); }
.chapter-num { font-family: var(--hs-font-display); font-size: 48px; line-height: 1; font-weight: 700; flex-shrink: 0; padding: var(--hs-2); background: var(--hs-accent); color: var(--hs-on-fill); border: var(--hs-border); box-shadow: var(--hs-shadow-sm); }
.chapter h2 { font-size: 30px; line-height: 1.33; overflow-wrap: anywhere; }
.source-link { display: inline-block; font-size: 12px; margin-top: var(--hs-6); }
.chapter-outline { margin: 0 var(--hs-8) var(--hs-8); border-top: var(--hs-border); border-bottom: var(--hs-border); }
.chapter-outline summary { padding: var(--hs-3) 0; cursor: pointer; font-size: 14px; font-weight: 600; }
.chapter-outline summary span { float: right; font-size: 10px; }
.chapter-outline nav { display: flex; flex-direction: column; gap: var(--hs-3); padding: var(--hs-3) 0 var(--hs-6); }
.chapter-outline nav a { font-size: 14px; text-decoration-thickness: 1px; }
.prose { padding: 0 var(--hs-8) var(--hs-12); font-size: var(--reader-size); line-height: 1.8; overflow-wrap: break-word; }
.prose h3 { font-size: 24px; line-height: 1.4; margin: var(--hs-12) 0 var(--hs-6); padding-top: var(--hs-6); border-top: var(--hs-border-thin); scroll-margin-top: 112px; }
.prose > h3:first-child { border: 0; margin-top: 0; padding-top: 0; }
.prose p { margin: var(--hs-6) 0; }
.prose p:first-child { margin-top: 0; }
.prose ul { padding-left: var(--hs-6); list-style-type: square; margin: var(--hs-6) 0; }
.prose li { padding-left: var(--hs-1); margin: var(--hs-4) 0; }
.prose strong { font-weight: 650; }
.prose blockquote { border-left: var(--hs-border-heavy); padding: var(--hs-4) var(--hs-6); margin: var(--hs-8) 0; background: var(--hs-surface-raised); font-size: inherit; }
.prose blockquote p { margin: 0; }
.next-link { display: flex; align-items: center; gap: var(--hs-4); padding: var(--hs-6) var(--hs-8); border-top: var(--hs-border); background: var(--hs-surface-raised); text-decoration: none; font-size: 12px; }
.next-link strong { font-size: 16px; }
.next-link > span { margin-left: auto; font-size: 24px; }
.next-link:hover { background: var(--hs-accent); color: var(--hs-on-fill); }
.book-end { padding: var(--hs-12) var(--hs-8); border-top: var(--hs-border-heavy); }
.book-end h2 { font-size: 30px; line-height: 1.33; margin: var(--hs-6) 0; }
.book-end p { font-size: 14px; margin-bottom: var(--hs-6); line-height: 1.56; }
.book-end a { font-size: 14px; }
.site-footer { border-top: var(--hs-border); padding: var(--hs-8); display: flex; align-items: center; justify-content: space-between; gap: var(--hs-6); font-size: 12px; }
.mobile-bar { display: none; }
.skip-link { position: fixed; top: -100px; left: var(--hs-4); z-index: 100; }
.skip-link:focus { top: var(--hs-4); }
#source-dialog { margin: auto; width: min(768px,calc(100% - 32px)); max-height: calc(100dvh - 32px); border: var(--hs-border); box-shadow: var(--hs-shadow-lg); background: var(--hs-canvas); color: var(--hs-ink); padding: 0; }
#source-dialog::backdrop { background: var(--hs-overlay); }
.dialog-head { padding: var(--hs-3) var(--hs-4); display: flex; align-items: center; justify-content: space-between; border-bottom: var(--hs-border); background: var(--hs-accent); color: var(--hs-on-fill); }
.source-controls { padding: var(--hs-4); display: flex; justify-content: space-between; align-items: center; gap: var(--hs-2); font-size: 12px; }
.source-controls select { border: var(--hs-border); color: var(--hs-ink); background: var(--hs-surface-plain); padding: var(--hs-2); }
.source-image-wrap { max-height: calc(100dvh - 240px); overflow-y: auto; border-top: var(--hs-border); border-bottom: var(--hs-border); }
.source-image-wrap img { display: block; width: 100%; height: auto; }
.source-full { display: block; padding: var(--hs-3) var(--hs-4); font-size: 12px; }
.source-gallery { max-width: 768px; margin: auto; padding: var(--hs-12) var(--hs-6); }
.source-gallery h1 { font-size: 36px; margin-bottom: var(--hs-6); }
.source-gallery p { font-size: 16px; }
.page-index { display: grid; grid-template-columns: repeat(9,1fr); gap: var(--hs-2); margin: var(--hs-8) 0; }
.page-index a { padding: var(--hs-2); text-align: center; border: var(--hs-border); box-shadow: var(--hs-shadow-sm); font-family: var(--hs-font-mono); text-decoration: none; }
.page-index a:hover { background: var(--hs-accent); }
.source-gallery figure { margin-top: var(--hs-12); border: var(--hs-border); scroll-margin-top: 100px; }
.source-gallery figcaption { background: var(--hs-accent); color: var(--hs-on-fill); padding: var(--hs-3); border-bottom: var(--hs-border); }
.source-gallery img { display: block; width: 100%; height: auto; }
@media (max-width: 1024px) {
  .site-header { padding: var(--hs-4) var(--hs-6); }
  .hero { gap: var(--hs-8); }
  .record-strip { margin-left: var(--hs-6); margin-right: var(--hs-6); }
  .header-actions { gap: var(--hs-4); }
  .desktop-link { display: none; }
  .reading-layout { grid-template-columns: 240px minmax(0,1fr); }
  .chapter-title { flex-direction: column; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 0; }
  .site-header { min-height: 72px; padding: var(--hs-3) var(--hs-4); gap: var(--hs-3); }
  .brand { font-size: 14px; gap: var(--hs-2); }
  .brand small { font-size: 10px; }
  .brand-mark { width: 40px; height: 40px; }
  .print-button { padding: var(--hs-3); }
  .print-button span { display: none; }
  .print-button::after { content: '打印'; }
  .hero { grid-template-columns: 1fr; padding: var(--hs-12) var(--hs-6); gap: var(--hs-12); }
  h1 { font-size: 60px; }
  .hero-copy { max-width: 100%; }
  .hero-index { width: 100%; }
  .hero-index .index-row { padding: var(--hs-4) var(--hs-6); }
  .record-strip { grid-template-columns: 1fr 1fr; margin-bottom: var(--hs-12); }
  .record-strip > div { padding: var(--hs-6); }
  .record-strip > div:nth-child(3) { border-left: 0; border-top: var(--hs-border); }
  .record-strip > div:nth-child(4) { border-top: var(--hs-border); }
  .record-strip small { font-size: 10px; }
  .mobile-bar { display: flex; position: sticky; top: 72px; align-items: center; gap: var(--hs-3); background: var(--hs-canvas); border-top: var(--hs-border); border-bottom: var(--hs-border); padding: var(--hs-3) var(--hs-4); z-index: 19; font-size: 12px; }
  #mobile-current { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .reading-layout { display: block; border-top: 0; }
  .sidebar { display: none; position: fixed; top: 136px; left: var(--hs-4); right: var(--hs-4); max-height: calc(100dvh - 152px); overflow: auto; border: var(--hs-border); box-shadow: var(--hs-shadow-lg); padding: var(--hs-4); z-index: 30; }
  .sidebar.is-open { display: block; }
  .sidebar-inner { position: static; }
  .sidebar-label, .source-note, .sidebar-source, .back-top, .reading-progress { display: none; }
  .reader-tools { margin-top: var(--hs-3); }
  .toc-link { padding: var(--hs-3); }
  .chapter { padding-top: var(--hs-8); scroll-margin-top: 136px; }
  .chapter-head { padding: 0 var(--hs-6) var(--hs-6); }
  .chapter-title { flex-direction: row; gap: var(--hs-4); }
  .chapter-num { font-size: 36px; }
  .chapter h2 { font-size: 24px; line-height: 1.4; }
  .chapter-outline { margin: 0 var(--hs-6) var(--hs-8); }
  .prose { padding: 0 var(--hs-6) var(--hs-8); }
  .prose h3 { scroll-margin-top: 152px; }
  .prose blockquote { padding: var(--hs-4); }
  .next-link { padding: var(--hs-6); flex-wrap: wrap; }
  .next-link strong { font-size: 14px; }
  .book-end { padding: var(--hs-12) var(--hs-6); }
  .site-footer { flex-direction: column; align-items: start; padding: var(--hs-6); gap: var(--hs-3); }
  .page-index { grid-template-columns: repeat(6,1fr); }
}
@media (max-width: 380px) {
  .brand small { font-size: 8px; }
  h1 { font-size: 48px; }
  .hero { padding-left: var(--hs-4); padding-right: var(--hs-4); }
  .hero-actions { gap: var(--hs-4); }
  .chapter-meta { flex-wrap: wrap; }
  .chapter-title { flex-direction: column; }
  .source-controls .hs-btn { padding: var(--hs-2); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@page { size: A4; margin: 18mm; }
@media print {
  :root { --print-body: 11pt; --print-rule: 1.375pt; --print-space: 2.75pt; }
  html, body { height: auto; background: var(--hs-surface-plain); color: var(--hs-ink); }
  body { font-size: var(--print-body); }
  *, *::before, *::after { box-shadow: none !important; text-shadow: none !important; transition: none !important; }
  .site-header, .sidebar, .mobile-bar, .site-footer, .hero-actions, .source-link, .chapter-outline, .next-link, .skip-link, dialog { display: none !important; }
  a { color: inherit; text-decoration: none; }
  .hero { display: block; max-width: none; padding: 22pt 0; }
  .eyebrow { margin-bottom: 16.5pt; font-size: 6.6pt; }
  h1 { font-size: 44pt; line-height: 1.2; }
  h1 mark { background: transparent; border: var(--print-rule) solid var(--hs-ink); padding: 0 5.5pt; }
  .hero-subtitle { margin-top: 16.5pt; font-size: 16.5pt; }
  .hero-description { margin-top: 11pt; font-size: 11pt; }
  .hero-index { margin-top: 22pt; background: transparent; border: var(--print-rule) solid var(--hs-ink); }
  .index-head { border-bottom: var(--print-rule) solid var(--hs-ink); background: transparent; padding: 8.25pt 11pt; font-size: 9pt; }
  .index-row { grid-template-columns: 22pt 1fr 11pt; padding: 5.5pt 11pt; border-bottom: .5pt solid var(--hs-ink); gap: 8.25pt; }
  .index-row strong { font-size: 11pt; }
  .index-row small { display: inline; margin-left: 11pt; font-size: 8.25pt; }
  .index-no, .index-arrow { font-size: 9pt; }
  .index-foot { padding: 5.5pt 11pt; font-size: 6.6pt; }
  .record-strip { max-width: none; margin: 0 0 22pt; border: var(--print-rule) solid var(--hs-ink); background: transparent; break-after: page; }
  .record-strip > div { padding: 8.25pt; }
  .record-strip > div + div { border-left: var(--print-rule) solid var(--hs-ink); }
  .record-strip strong { font-size: 22pt; }
  .record-strip strong span, .record-strip small, .record-label, .record-label span { font-size: 8.25pt; }
  .reading-layout { display: block; max-width: none; border: 0; }
  .chapter { padding: 0; break-before: page; }
  .chapter:first-child { break-before: auto; }
  .chapter + .chapter { border-top: 0; }
  .chapter-head { padding: 0 0 16.5pt; border-bottom: var(--print-rule) solid var(--hs-ink); margin-bottom: 22pt; break-inside: avoid; }
  .chapter-meta { font-size: 8.25pt; margin-bottom: 16.5pt; }
  .chapter-meta .mono { font-size: 6.6pt; }
  .chapter-title { display: flex; flex-direction: row; gap: 16.5pt; }
  .chapter-num { background: transparent; font-size: 33pt; border: var(--print-rule) solid var(--hs-ink); padding: 5.5pt; }
  .chapter h2 { font-size: 22pt; line-height: 1.33; }
  .prose { padding: 0; font-size: var(--print-body); line-height: 1.65; }
  .prose h3 { font-size: 16.5pt; line-height: 1.4; margin: 22pt 0 11pt; padding-top: 11pt; border-top: var(--print-rule) solid var(--hs-ink); break-after: avoid; }
  .prose p { margin: 11pt 0; orphans: 3; widows: 3; }
  .prose ul { padding-left: 16.5pt; margin: 11pt 0; }
  .prose li { margin: 8.25pt 0; orphans: 3; widows: 3; }
  .prose blockquote { border-left: var(--print-rule) solid var(--hs-ink); background: transparent; padding: 8.25pt 16.5pt; margin: 16.5pt 0; break-inside: avoid; }
  .prose blockquote p { margin: 0; }
  .book-end { border-top: var(--print-rule) solid var(--hs-ink); padding: 16.5pt 0; margin-top: 33pt; break-inside: avoid; }
  .book-end h2 { font-size: 22pt; margin: 11pt 0; }
  .book-end p { font-size: 8.25pt; margin-bottom: 0; }
  .book-end > a { display: none; }
}
.author-line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--hs-2) var(--hs-4); margin-top: var(--hs-6); font-size: 14px; }
.author-line .mono { font-size: 12px; }
.author-signature { border-top: var(--hs-border-thin); padding-top: var(--hs-6); }
.author-signature strong { display: inline-block; font-size: 20px; margin-bottom: var(--hs-2); }
@media print {
  .author-line { margin-top: 16.5pt; font-size: 11pt; }
  .author-line .mono { font-size: 8.25pt; }
  .author-signature { padding-top: 11pt; border-top: .5pt solid var(--hs-ink); }
  .author-signature strong { font-size: 16.5pt; }
}
/* Repeated, non-interactive author marks remain visible in screenshots and print. */
.watermark-layer { position: fixed; inset: 0; z-index: 50; display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); grid-auto-rows: 200px; overflow: hidden; pointer-events: none; user-select: none; color: var(--hs-ink); opacity: .10; }
.watermark-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; transform: rotate(-22deg); white-space: nowrap; gap: var(--hs-1); }
.watermark-tile strong { font-family: var(--hs-font-display); font-size: 18px; font-weight: 600; }
.watermark-tile > span { font-family: var(--hs-font-mono); font-size: 12px; }
#source-dialog > .watermark-layer { position: absolute; }
.rights-notice { margin: 0 var(--hs-8) var(--hs-8); padding-top: var(--hs-4); border-top: var(--hs-border-thin); font-size: 12px; line-height: 1.56; }
@media (max-width: 768px) { .rights-notice { margin-left: var(--hs-6); margin-right: var(--hs-6); } }
@media print {
  .watermark-layer { position: fixed; inset: 0; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 45mm; opacity: .14; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .watermark-tile { gap: 2.75pt; }
  .watermark-tile strong { font-size: 14pt; }
  .watermark-tile > span { font-size: 9pt; }
  .rights-notice { margin: 16.5pt 0 22pt; padding-top: 8.25pt; border-top: .5pt solid var(--hs-ink); font-size: 8.25pt; break-inside: avoid; }
}

/* Bilingual edition */
.language-link{font-weight:700;text-decoration:underline;white-space:nowrap}
html[lang="en"] .hero h1{font-size:clamp(42px,5.4vw,66px);line-height:1.08;letter-spacing:-.04em}
html[lang="en"] .prose{line-height:1.75;overflow-wrap:break-word}
html[lang="en"] .chapter-title h2{overflow-wrap:break-word}
html[lang="en"] .chapter-num{flex-shrink:0}
@media(max-width:768px){.header-actions{gap:8px}.header-actions>.hs-btn:not(.print-button){font-size:11px;padding:7px}.header-actions .print-button{display:none}html[lang="en"] .brand{font-size:13px}html[lang="en"] .brand small{font-size:8px}html[lang="en"] .chapter-meta{flex-wrap:wrap;gap:8px}html[lang="en"] .hero h1{font-size:48px}}
@media print{.language-link{display:none}}

.publication-notice{max-width:1024px;margin:32px auto;padding:24px;border-top:2px solid var(--hs-ink,#141111);font-size:14px;line-height:1.8}.publication-notice h2{font-size:18px;margin:0 0 12px}.publication-notice p{margin:0}@media print{.publication-notice{break-inside:avoid;font-size:9pt}}
