
/* 阅读标准 1.0：基础参数 → 组件 → 窄屏适配。所有章节共享，不逐版叠加覆盖。 */
:root{--bg:#f1f2f4;--ink:#20252c;--soft:#606974;--line:#cbd3dc;--panel:#e8edf2;--accent:#365b78;--body-size:18px;--body-leading:1.85;--within-gap:10px;--group-gap:24px;--section-gap:42px;--measure:720px;--panel-radius:4px;--bar-height:62px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-height) + 24px)}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:hover{background:var(--panel)}button:disabled{opacity:.4;cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}
.topbar{height:var(--bar-height);position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:750;font-size:16px;letter-spacing:.04em}.monogram{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;background:var(--accent);color:var(--bg);font-size:17px;font-weight:700}.top-context{position:absolute;left:50%;transform:translateX(-50%);color:var(--soft);font-size:12px}.toolbar{display:flex;gap:6px}.toolbar button{padding:10px 12px;font-size:13px}.mobile-menu{display:none}.reading-progress{position:absolute;bottom:-1px;left:0;height:2px;width:0;background:var(--accent)}.settings{position:absolute;right:4vw;top:53px;width:260px;padding:22px;background:var(--bg);border:1px solid var(--line);z-index:25}.settings h3{font-size:14px;margin:0 0 12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;font-size:13px}.setting-row button{border:1px solid var(--line);min-width:42px;min-height:36px}.settings p{font-size:12px;color:var(--soft);line-height:1.7}
.layout{display:grid;grid-template-columns:180px minmax(0,var(--measure));gap:72px;max-width:1100px;padding:52px 32px 100px;margin:auto}.side{position:sticky;top:110px;align-self:start}.kicker{font-size:11px;letter-spacing:.1em;font-weight:500;color:var(--soft)}.side h3{font-size:15px;margin:12px 0 26px}.side nav a{display:flex;gap:13px;padding:12px 0 12px 12px;border-left:2px solid transparent;font-size:13px;color:var(--soft);text-decoration:none}.side nav a span{font-size:11px;font-variant-numeric:tabular-nums}.side nav a.active{border-color:var(--accent);color:var(--ink);font-weight:650}.side nav a:hover{color:var(--ink)}.return-link{display:block;margin:28px 0 0 14px;font-size:12px;color:var(--soft);text-underline-offset:5px}.chapter{min-width:0;max-width:var(--measure)}.chapter-head{padding:5px 0 0;margin-bottom:30px}.chapter-meta{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:12px;color:var(--soft)}.chapter-meta .vol{letter-spacing:.1em;color:var(--accent)}.chapter-head h1{display:flex;align-items:baseline;gap:17px;font-size:44px;line-height:1.25;letter-spacing:-.035em;margin:22px 0 14px;font-weight:800}.chapter-head .sub{font-size:13px;color:var(--soft);line-height:1.7;margin:0}.chapter-actions{display:flex;gap:24px;margin-top:18px}.chapter-actions a,.chapter-actions button{font-size:12px;color:var(--soft);padding:0;text-decoration:underline;text-underline-offset:5px}.resume{padding:14px 18px;background:var(--panel);font-size:13px;display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:25px}.resume button{text-decoration:underline}
.prose{font-size:var(--reading-size,var(--body-size));line-height:var(--body-leading);margin:0;text-align:left;overflow-wrap:break-word}.paragraph-group{margin:0 0 var(--group-gap)}.paragraph-group .prose{margin-bottom:var(--within-gap)}.paragraph-group .prose:last-child{margin-bottom:0}.prose.opening{font-size:calc(var(--reading-size,var(--body-size)) + 2px);line-height:1.8;font-weight:550}.prose strong{font-weight:750}.section-title{border-top:1px solid var(--line);padding-top:25px;display:flex;align-items:baseline;gap:15px;margin:var(--section-gap) 0 24px;font-size:27px;line-height:1.4;font-weight:750;letter-spacing:-.02em}.section-number{font-size:12px;font-weight:500;color:var(--accent);letter-spacing:.04em}.paragraph-group:has(.mini-heading){margin-top:1.5em;margin-bottom:.6em}.mini-heading{font-weight:700}.dialogue-line{padding:3px 0 3px 16px;border-left:2px solid #8b9cae}.enumerated{display:grid;grid-template-columns:3em minmax(0,1fr);gap:0;padding-left:0}.item-label{font-weight:600}.item-body{min-width:0}.action-group{margin-bottom:28px}.action-group .action-lead{font-weight:750}.action-group .prose:last-child{margin-bottom:0}.case-path{border-radius:var(--panel-radius);padding:21px 24px;background:var(--panel);margin:24px 0}.position-card{position:relative;isolation:isolate;overflow:hidden;border-radius:4px;background:#192d46;color:#e0e8f1;margin:30px 0 36px;padding:30px 32px}.position-card:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 100% 0%,#467c8266,transparent 65%),linear-gradient(135deg,transparent 48%,#a3c4cd0b 48%,#a3c4cd0b 49%,transparent 49%)}.position-card .card-label{display:block;font-size:12px;letter-spacing:.07em;color:#b3cbd9;margin-bottom:18px}.position-card .paragraph-group{margin:0}.position-card .paragraph-group .prose{margin-bottom:14px}.position-card .paragraph-group .prose:last-child{margin-bottom:0}.position-card strong{font-size:1.1em;line-height:1.75;color:white}
.chapter-art{margin:32px 0 35px;padding:0}.chapter-art figcaption{padding:0 0 17px}.art-index{font-size:12px;letter-spacing:.08em;color:var(--soft)}.chapter-art h3{font-size:25px;line-height:1.5;letter-spacing:-.02em;margin:10px 0 0}.art-link{display:block;background:#f7f7f7}.art-link img{display:block;width:100%;height:auto;color:#20252c}.art-captions{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:20px 0 16px}.art-captions span{font-size:16px;font-weight:700}.art-captions p{font-size:15px;line-height:1.85;margin:7px 0 0;color:var(--soft)}.art-boundary{font-size:13px;line-height:1.8;margin:0;color:var(--soft)}.art-boundary a{margin-left:8px;text-underline-offset:3px}.reading-map{border-radius:var(--panel-radius);margin:32px 0;padding:23px 25px;background:var(--panel)}.reading-map h3{font-size:23px;line-height:1.5;margin:10px 0 9px}.reading-map figcaption p{font-size:14px;line-height:1.7;margin:0;color:var(--soft)}.map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:25px}.map-grid b{font-size:12px;font-weight:500;color:var(--accent)}.map-grid h4{font-size:17px;margin:10px 0}.map-grid p{font-size:15px;line-height:1.85;margin:0}.reading-map .map-note{font-size:13px;line-height:1.8;color:var(--soft);margin:23px 0 0}
.sources{border-top:1px solid var(--line);margin-top:45px;padding:22px 0}.sources summary{cursor:pointer;display:flex;justify-content:space-between;font-size:14px;font-weight:650;list-style:none}.sources summary:after{content:'＋';font-size:17px}.sources[open] summary:after{content:'−'}.source-text{font-size:14px;line-height:1.9;color:var(--soft);padding-top:20px;overflow-wrap:anywhere}.sources a{color:var(--accent);text-underline-offset:3px}.chapter-foot{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:22px;padding:26px 0;font-size:13px;line-height:1.9}.chapter-foot small{display:block;font-size:11px;color:var(--soft);margin-bottom:5px}.chapter-foot a{text-decoration:none}.chapter-foot a:last-child{text-align:right}.footer-note{font-size:11px;color:var(--soft);padding-top:12px;line-height:1.8}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);font-size:13px;padding:12px 18px;z-index:50;max-width:90vw;width:max-content}.settings,.side{overscroll-behavior:contain}
@media(min-width:851px){body.focus .side{display:none}body.focus .layout{display:block;max-width:784px}}
@media(max-width:850px){:root{--bar-height:54px;--section-gap:38px}.topbar{padding:0 20px}.wordmark{font-size:14px;gap:8px}.monogram{width:22px;height:22px;font-size:15px}.top-context,.focus-button{display:none}.toolbar{gap:0}.toolbar button{font-size:12px;padding:10px}.mobile-menu{display:block}.layout{display:block;padding:30px 23px 50px}.chapter{max-width:660px;margin:auto}.chapter-head{margin-bottom:31px}.chapter-head h1{font-size:35px;margin:18px 0 13px}.chapter-meta{font-size:11px}.chapter-meta .vol{letter-spacing:.06em}.section-title{font-size:25px;gap:13px;margin-bottom:22px}.side{display:none;position:fixed;z-index:22;top:54px;right:0;bottom:0;width:290px;padding:28px;background:var(--bg);border-left:1px solid var(--line);overflow:auto}.side.open{display:block}.side nav a{padding-block:15px}.side h3{margin-bottom:20px}.settings{top:48px;right:18px}.position-card{padding:25px 24px;margin:26px 0 31px}.case-path{padding:18px;margin-block:22px}.chapter-art{margin:28px 0 32px}.chapter-art h3{font-size:23px}.art-captions{gap:17px;padding-top:17px}.art-captions p{font-size:14px}.reading-map{padding:21px;margin-block:29px}.reading-map h3{font-size:22px}.map-grid{grid-template-columns:1fr;gap:19px;margin-top:23px}.map-grid>div{display:grid;grid-template-columns:23px 1fr;column-gap:13px}.map-grid b{grid-row:1/3;padding-top:3px}.map-grid h4{margin:0 0 6px}.map-grid p br{display:none}.map-note{margin-top:20px!important}.chapter-foot{font-size:12px}}
@media(max-width:360px){.topbar{padding-inline:16px}.layout{padding-inline:19px}.chapter-head h1{font-size:32px}.chapter-meta{flex-wrap:wrap;gap:7px}.wordmark{letter-spacing:0}.toolbar button{padding-inline:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.topbar,.side,.settings,.resume,.chapter-actions,.toast{display:none!important}.layout{display:block;max-width:none;padding:0}.prose{font-size:12pt}.section-title{break-after:avoid}.reading-map,.chapter-art{break-inside:avoid}.chapter-foot{display:none}.position-card{color:#111;background:#eee}.position-card strong{color:#111}.position-card .card-label{color:#333}.position-card:before{display:none}}

/* Fine typography and responsive art direction */
.keep-term{white-space:nowrap}.comparison-item{display:block;margin-bottom:.35em}.comparison-item:last-child{margin-bottom:0}.chapter-no{font-size:.58em;font-weight:500;color:var(--soft);letter-spacing:0}.art-mobile{display:none}.scene a{display:block}.scene svg{display:block;width:100%;height:auto}.scene-caption strong{font-size:17px}.scene-caption p{font-size:15px;line-height:1.8;color:var(--soft);margin:7px 0 0}.scene-caption{padding:14px 0 4px}.scene+.scene{margin-top:24px}.wordmark{min-width:0}#bar-location{white-space:nowrap}.toolbar button{min-height:40px}.reading-progress{pointer-events:none}@media(max-width:850px){.art-mobile{display:none}.art-captions{display:grid}.chapter-head{margin-bottom:28px}.chapter-head h1{gap:12px}.wordmark{font-size:13px}.chapter-actions{margin-top:15px}.scene-caption{padding:12px 0 2px}.art-boundary{margin-top:20px}.topbar{gap:8px}.toolbar{flex-shrink:0}.scene svg{background:#f7f7f7}}@media(max-width:360px){.wordmark{gap:6px;font-size:12px}.toolbar button{padding-inline:6px}.monogram{width:20px;height:20px}.enumerated{grid-template-columns:2.9em minmax(0,1fr)}}@media(prefers-reduced-motion:no-preference){button,a{transition:color .12s ease,background-color .12s ease}}@media print{.art-mobile{display:none!important}.art-desktop,.art-captions{display:block!important}.art-captions{display:grid!important}}

/* 一幅对照图保持整体；正文中不连续放两个裁切图。 */
@media(max-width:850px){.art-link img{width:100%;height:auto}.art-captions{grid-template-columns:1fr 1fr;gap:18px}.art-captions p{font-size:14px;line-height:1.8}}

.book-figure{margin:32px 0 36px}.book-figure img{display:block;max-width:100%;width:100%;height:auto;background:#f1f2f4}.book-figure figcaption{font-size:13px;line-height:1.8;color:var(--soft);margin-top:10px}.book-figure details{font-size:14px;line-height:1.85;color:var(--soft);margin-top:10px}.book-figure summary{cursor:pointer}.image-transcript{padding-top:12px}.editor-label{font-size:12px;color:var(--soft)}.index-page{max-width:900px;margin:auto;padding:40px 24px 90px}.index-page h1{font-size:32px}.index-page h2{font-size:23px;border-top:1px solid var(--line);padding-top:24px;margin-top:38px}.book-links{list-style:none;padding:0}.book-links li{margin:0;border-bottom:1px solid #e0e4e9}.book-links a{display:flex;gap:16px;padding:16px 0;text-decoration:none}.book-links .number{color:var(--soft);width:24px}.front-links{display:flex;flex-wrap:wrap;gap:16px;font-size:14px;margin:24px 0}.index-search{display:block;width:100%;padding:14px;border:1px solid var(--line);border-radius:4px;font:inherit;background:var(--bg);color:var(--ink)}.front-prose p{font-size:18px;line-height:1.9;margin:0 0 20px}.front-prose li{font-size:17px;line-height:1.85;margin:10px 0}.front-prose h2{font-size:25px;margin-top:40px}.front-prose h1{font-size:32px;line-height:1.5}button:disabled{opacity:.4}@media(max-width:850px){.book-figure{margin:28px 0 32px}.index-page{padding-top:30px}.book-figure img{max-height:none}.section-title{line-height:1.5}}

/* Door header entrance — “开门”动效，仅在允许动效时启用 */
@media (prefers-reduced-motion:no-preference){
  .chapter-head{position:relative}
  .chapter-head .chapter-meta,
  .chapter-head h1,
  .chapter-head .chapter-actions{opacity:0;animation:door-rise 1.05s cubic-bezier(.16,1,.3,1) both}
  .chapter-head .chapter-meta{animation-delay:.04s}
  .chapter-head h1{animation-delay:.18s}
  .chapter-head .chapter-actions{animation-delay:.34s}
  .chapter-head::after{content:"";position:absolute;left:0;bottom:-3px;width:58px;height:3px;border-radius:3px;
    background:var(--accent);transform-origin:left center;opacity:0;animation:door-line 1.15s cubic-bezier(.16,1,.3,1) .42s both}
  @keyframes door-rise{from{opacity:0;transform:translateY(18px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
  @keyframes door-line{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
}
@media (prefers-reduced-motion:reduce){
  .chapter-head .chapter-meta,.chapter-head h1,.chapter-head .chapter-actions{opacity:1;animation:none}
  .chapter-head::after{opacity:1;transform:none;animation:none}
}

/* 配图随滚动入场 */
@media (prefers-reduced-motion:no-preference){
  .book-figure.reveal-fig{overflow:hidden;opacity:0;transform:translateY(22px);
    transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
  .book-figure.reveal-fig.in{opacity:1;transform:none}
  .book-figure .reveal-img{transform:scale(1.07);transition:transform 1.5s cubic-bezier(.16,1,.3,1)}
  .book-figure.in .reveal-img{transform:scale(1)}
}

/* 通用滚动入场（scroll reveal） */
@media (prefers-reduced-motion:no-preference){
  .sr{opacity:0;transform:translateY(20px);
    transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
  .sr.sr-in{opacity:1;transform:none}
}
@media print{.sr{opacity:1!important;transform:none!important}}

/* 悬浮快捷 dock：回顶 ＋ 本门视频 */
.float-dock{position:fixed;right:18px;bottom:25vh;z-index:45;
 display:flex;flex-direction:column;gap:10px;opacity:0;animation:dock-in .6s cubic-bezier(.16,1,.3,1) .3s forwards}
@keyframes dock-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.fd-btn{position:relative;width:46px;height:46px;border-radius:15px;padding:0;
 display:flex;align-items:center;justify-content:center;color:#5b6b76;
 background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
 border:1px solid #e2e8f0;box-shadow:0 6px 18px -8px rgba(25,45,70,.4),0 1px 2px rgba(25,45,70,.08);
 transition:transform .16s ease,color .2s,border-color .2s,box-shadow .2s,background .2s}
.fd-btn svg{width:21px;height:21px}
.fd-btn:hover{color:var(--accent);border-color:#c3d2e0;background:#fff;
 box-shadow:0 10px 22px -8px rgba(25,45,70,.5);transform:translateY(-2px)}
.fd-btn:active{transform:scale(.94)}
.fd-top{opacity:0;transform:scale(.8);pointer-events:none;
 transition:opacity .25s ease,transform .25s ease,color .2s,border-color .2s,background .2s}
.fd-top.show{opacity:1;transform:scale(1);pointer-events:auto}
.fd-video .soon{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;
 background:var(--accent);border:2px solid #fff}
@media (prefers-reduced-motion:reduce){.float-dock{opacity:1;animation:none}.fd-btn,.fd-top{transition:none}}
@media print{.float-dock{display:none!important}}
/* 兑换鉴权遮罩 */
.gate{position:fixed;inset:0;z-index:9999;background:#f1f2f4;display:flex;align-items:center;justify-content:center;padding:24px;visibility:hidden;opacity:0;transition:opacity .3s}
.gate.on{visibility:visible;opacity:1}
.gate-card{max-width:340px;text-align:center;background:#fff;border:1px solid #e3e5e8;border-radius:16px;padding:36px 28px;box-shadow:0 8px 32px rgba(40,100,200,.08)}
.gate-title{font-size:19px;font-weight:800;color:#1c2b36;margin-bottom:10px}
.gate-sub{font-size:14px;line-height:1.7;color:#6b7680}
