/* Faces in the Dark · 合册版式（2026-10-18 由 A4 讲义版式转换，作用域 .fd）
   只被 /faces-in-the-dark 一页引用；改完记得同步 build.py 里的 ?v= 版本号。 */
/* Faces in the Dark — 由 A4 版式转换，作用域 .fd（2026-10-18） */
.fd{--ink:#1f211d; --muted:#6d6b60; --rule:#dcd6c7;
    --accent:#a04f2c; --water:#35708a; --paper:#fdfbf6; --tint:#f4efe2;}
.fd .f-serif{font-family:Georgia,"Times New Roman","Songti SC","SimSun",serif;}
.fd .f-page{position:relative; width:210mm; height:297mm; background:var(--paper);
    padding:16mm 16mm 14mm; overflow:hidden; page-break-after:always;
    margin:0 auto 8mm; box-shadow:0 2px 14px rgba(0,0,0,.14);}
.fd .f-page:last-child{page-break-after:auto;}
.fd .f-eyebrow{font-size:9.36pt; letter-spacing:.2em; text-transform:uppercase;
    color:var(--accent); font-weight:700; margin-bottom:5mm;}
.fd h2{font-family:Georgia,serif; font-size:33.8pt; line-height:1.14; font-weight:400; letter-spacing:-.01em; margin-bottom:4mm;}
.fd .f-lede{font-size:16.12pt; line-height:1.5; color:#33352e; margin-bottom:5mm;}
.fd .f-lede em{font-style:italic;}
.fd p + p{margin-top:2.6mm;}
.fd .f-cap{font-size:9.88pt; line-height:1.45; color:var(--muted); margin-top:2mm;}
.fd .f-cap b{color:#4a4b43; font-weight:600;}
.fd .f-rule{height:1px; background:var(--rule);}
.fd .f-pfoot{position:absolute; left:16mm; right:16mm; bottom:8mm;
    display:flex; justify-content:space-between; align-items:baseline;
    font-size:8.58pt; letter-spacing:.12em; text-transform:uppercase; color:#9a978a;
    border-top:1px solid var(--rule); padding-top:2.4mm;}
.fd .f-cover{padding:0;}
.fd .f-cover-img{width:100%; height:122mm; overflow:hidden; position:relative;}
.fd .f-cover-img img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-cover-body{padding:12mm 16mm 0;}
.fd .f-brandline{font-size:9.62pt; letter-spacing:.28em; text-transform:uppercase; color:var(--muted);}
.fd .f-cover h1{font-family:Georgia,serif; font-weight:400; font-size:75.4pt; line-height:1;
    letter-spacing:-.02em; margin:4mm 0 1mm;}
.fd .f-cover .f-zh{font-size:26.0pt; letter-spacing:.34em; color:var(--accent); margin-bottom:5mm; font-family:"Songti SC","SimSun",serif;}
.fd .f-cover .f-sub{font-family:Georgia,serif; font-style:italic; font-size:18.85pt; line-height:1.42; color:#33352e; max-width:150mm;}
.fd .f-cover .f-deck{font-size:13.0pt; color:var(--muted); margin-top:4mm; max-width:150mm;}
.fd .f-quote{margin-top:13mm; max-width:152mm; border-left:2px solid var(--accent); padding-left:6mm;}
.fd .f-quote .f-q{font-family:"Songti SC","SimSun",serif; font-size:20.8pt; letter-spacing:.08em; line-height:1.6;}
.fd .f-quote .f-qt{font-family:Georgia,serif; font-style:italic; font-size:14.3pt; color:#3d3f37; margin-top:1.5mm;}
.fd .f-quote .f-qs{font-size:9.36pt; color:var(--muted); margin-top:2.4mm; letter-spacing:.03em; line-height:1.5;}
.fd .f-glance{position:absolute; left:16mm; right:16mm; bottom:14mm; display:grid; grid-template-columns:repeat(4,1fr); border-top:1.6px solid var(--ink);}
.fd .f-glance div{padding:4mm 3mm 0 0;}
.fd .f-glance .f-n{font-family:Georgia,serif; font-size:24.7pt; line-height:1; color:var(--accent);}
.fd .f-glance .f-l{font-size:9.1pt; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-top:2mm; line-height:1.35;}
.fd .f-cols{display:grid; grid-template-columns:88mm 1fr; gap:9mm;}
.fd .f-portrait{height:112mm; overflow:hidden;}
.fd .f-portrait img{width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block;}
.fd .f-note{background:var(--tint); padding:5mm 5mm 5mm; margin-top:6mm; border-left:2.6px solid var(--accent);}
.fd .f-note .f-h{font-size:9.36pt; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:2mm;}
.fd .f-note .f-zhbig{font-family:"Songti SC","SimSun",serif; font-size:19.5pt; letter-spacing:.14em; margin-bottom:1.5mm;}
.fd .f-note .f-tr{font-family:Georgia,serif; font-style:italic; font-size:12.48pt; color:#3d3f37;}
.fd .f-note .f-b{font-size:11.44pt; line-height:1.55; margin-top:2mm; color:#4a4b43;}
.fd .f-cols.f-hist{grid-template-columns:74mm 1fr;}
.fd .f-tl{display:grid; grid-template-columns:repeat(3,1fr); gap:4.6mm 7mm; margin-top:6mm; padding-top:3.2mm; border-top:1px solid var(--rule);}
.fd .f-tl .f-y{font-family:Georgia,serif; color:var(--accent); font-size:12.22pt; margin-bottom:1mm;}
.fd .f-tl .f-t{font-size:10.79pt; line-height:1.5; color:#3d3f37;}
.fd .f-diagram{margin:1mm 0 3mm;}
.fd .f-diagram svg{width:100%; height:auto; display:block;}
.fd .f-legend{display:grid; grid-template-columns:1fr 1fr 1fr; gap:6mm; margin-top:4mm;}
.fd .f-legend .f-item{border-top:2px solid var(--ink); padding-top:2.6mm;}
.fd .f-legend .f-nm{font-size:10.4pt; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:700;}
.fd .f-legend .f-zh{font-family:"Songti SC","SimSun",serif; font-size:14.3pt; margin:.6mm 0 1.6mm;}
.fd .f-legend .f-d{font-size:11.7pt; line-height:1.55; color:#41433b;}
.fd .f-coda{margin-top:7mm; padding-top:3.2mm; border-top:1px solid var(--rule); max-width:154mm; font-size:11.18pt; line-height:1.6; color:#41433b;}
.fd .f-fine{font-size:9.36pt; color:#8d8a7d; margin-top:3.5mm;}
.fd #p3 .f-diagram{margin-bottom:1.5mm;}
.fd #p3 .f-legend{margin-top:2.5mm;}
.fd #p3 .f-coda{margin-top:3mm; padding-top:2.6mm;}
.fd #p3 .f-fine{margin-top:1.5mm;}
.fd .f-grid2{display:grid; grid-template-columns:1fr 1fr; gap:7mm 7mm;}
.fd .f-card .f-ph{height:66mm; overflow:hidden; background:#e8e3d5;}
.fd .f-card .f-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-card .f-ttl{font-size:12.22pt; font-weight:600; margin-top:2.2mm;}
.fd .f-card .f-ttl span{color:var(--muted); font-weight:400; font-family:"Songti SC","SimSun",serif; margin-left:1.5mm;}
.fd .f-card .f-d{font-size:10.92pt; line-height:1.5; color:#4a4b43; margin-top:1mm;}
.fd .f-three{display:grid; grid-template-columns:1fr 1fr 1fr; gap:5mm;}
.fd .f-three .f-ph{height:38mm; overflow:hidden; background:#e8e3d5;}
.fd .f-three .f-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-three .f-ttl{font-size:11.18pt; font-weight:600; margin-top:2mm;}
.fd .f-three .f-ttl span{display:block; color:var(--muted); font-weight:400; font-family:"Songti SC","SimSun",serif; font-size:10.92pt;}
.fd .f-three .f-d{font-size:10.4pt; line-height:1.45; color:#4a4b43; margin-top:.8mm;}
.fd .f-rows .f-row{display:grid; grid-template-columns:76mm 1fr; gap:7mm; align-items:start; margin-bottom:8mm;}
.fd .f-rows .f-row .f-ph{height:54mm; overflow:hidden; background:#e8e3d5;}
.fd .f-rows .f-row .f-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-rows .f-row .f-ttl{font-size:13.52pt; font-weight:600; margin-bottom:1.8mm;}
.fd .f-rows .f-row .f-ttl span{color:var(--muted); font-weight:400; font-family:"Songti SC","SimSun",serif; margin-left:2mm; font-size:12.48pt;}
.fd .f-rows .f-row .f-d{font-size:11.7pt; line-height:1.55; color:#4a4b43;}
.fd .f-strip{display:grid; grid-template-columns:1fr 1fr 1fr; gap:5mm; margin-top:4mm; padding-top:3mm; border-top:1px solid var(--rule);}
.fd .f-strip .f-h{font-size:10.4pt; font-weight:700; color:var(--accent); letter-spacing:.08em; text-transform:uppercase;}
.fd .f-strip .f-d{font-size:10.4pt; line-height:1.45; color:#4a4b43; margin-top:1mm;}
.fd .f-kv{width:100%; border-collapse:collapse; font-size:11.18pt;}
.fd .f-kv td{padding:2.1mm 0; border-bottom:1px solid #eee9dc; vertical-align:top;}
.fd .f-kv td:first-child{width:34mm; color:var(--muted); font-size:10.14pt; letter-spacing:.06em; text-transform:uppercase;}
.fd .f-bullet{margin-top:3mm;}
.fd .f-bullet li{list-style:none; font-size:11.18pt; line-height:1.5; padding-left:5mm; position:relative; margin-bottom:2.2mm; color:#41433b;}
.fd .f-bullet li:before{content:""; position:absolute; left:0; top:1.7mm; width:2.4mm; height:2.4mm; background:var(--accent);}
.fd .f-bullet b{color:var(--ink);}
.fd .f-warn{background:#f6ece4; border-left:2.6px solid var(--accent); padding:3.4mm 4mm; font-size:11.05pt; line-height:1.5; margin-top:4mm;}
.fd .f-warn b{color:var(--accent);}
.fd .f-blocks{display:grid; grid-template-columns:1fr 1fr; gap:6mm 8mm;}
.fd .f-blocks .f-b{border-top:1.6px solid var(--ink); padding-top:2.4mm;}
.fd .f-blocks .f-h{font-size:10.4pt; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:1.6mm;}
.fd .f-blocks .f-d{font-size:11.05pt; line-height:1.55; color:#41433b;}
.fd .f-credits{font-size:8.58pt; line-height:1.5; color:#8d8a7d; margin-top:4mm; column-count:2; column-gap:7mm;}
.fd .f-credits b{color:#6d6b60;}
.fd .f-sign{margin-top:5mm; font-size:12.22pt; line-height:1.6;}
.fd .f-sign .f-nm{font-family:Georgia,serif; font-style:italic; font-size:14.3pt;}
.fd .f-cols.f-ski{grid-template-columns:96mm 1fr;}
.fd .f-cold{margin-top:7mm; border-top:2px solid var(--ink); padding-top:3.2mm;}
.fd .f-cold .f-n{font-family:Georgia,serif; font-size:32.5pt; color:var(--accent); line-height:1;}
.fd .f-cold .f-s{font-size:10.66pt; color:var(--muted); margin-top:2mm; line-height:1.5;}
.fd .f-gloss-h{margin-top:6mm; font-size:10.4pt; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:700;}
.fd .f-gloss{display:grid; grid-template-columns:1fr 1fr; gap:0 8mm; margin-top:2.4mm; border-top:1.6px solid var(--ink);}
.fd .f-gloss .f-g{display:grid; grid-template-columns:20mm 1fr; gap:2mm; padding:1.9mm 0; border-bottom:1px solid #eee9dc; align-items:baseline;}
.fd .f-gloss .f-zh{font-family:"Songti SC","SimSun",serif; font-size:12.48pt;}
.fd .f-gloss .f-en{font-size:10.4pt; color:#4a4b43; line-height:1.4;}
.fd .f-split{display:grid; grid-template-columns:1fr 1fr; gap:9mm;}
.fd .f-band{height:46mm; overflow:hidden; margin-top:5mm;}
.fd .f-band img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-nums{display:grid; grid-template-columns:repeat(4,1fr); gap:6mm; margin-top:5mm; border-top:1.6px solid var(--ink); padding-top:3mm;}
.fd .f-nums .f-n{font-family:Georgia,serif; font-size:22.1pt; color:var(--accent); line-height:1;}
.fd .f-nums .f-l{font-size:9.1pt; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:1.5mm; line-height:1.35;}
.fd .f-kv.f-wide td:first-child{width:52mm;}
.fd .f-wide-ph{height:92mm; overflow:hidden; background:#e8e3d5; margin-bottom:2mm;}
.fd .f-wide-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-band-tall{height:46mm; overflow:hidden; margin-top:4mm;}
.fd .f-band-tall img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-nowrap{white-space:nowrap}
.fd .f-peaks{width:100%; border-collapse:collapse; font-size:11.44pt; margin-top:5mm;}
.fd .f-peaks th{text-align:left; font-size:8.84pt; letter-spacing:.11em; text-transform:uppercase;
             color:var(--muted); padding-bottom:1.6mm; border-bottom:1.6px solid var(--ink); font-weight:600;}
.fd .f-peaks td{padding:2.3mm 0; border-bottom:1px solid #eee9dc; vertical-align:baseline;}
.fd .f-peaks td.f-h{font-family:Georgia,serif; font-size:13.78pt; color:var(--accent); width:26mm;}
.fd .f-peaks td.f-zh{font-family:"Songti SC","SimSun",serif; font-size:12.48pt; width:26mm;}
.fd .f-peaks td.f-n{font-family:Georgia,serif; font-size:13.26pt; width:22mm;}
.fd .f-peaks td.f-d{font-size:10.66pt; color:#4a4b43; line-height:1.4;}
.fd .f-rows{display:grid; grid-template-columns:76mm 1fr; gap:8mm; margin-top:5mm;}
.fd .f-rows .f-ph{height:106mm; overflow:hidden; background:#e8e3d5;}
.fd .f-rows .f-ph img{width:100%; height:100%; object-fit:cover; display:block; object-position:50% 30%;}
.fd .f-chips{display:grid; grid-template-columns:1fr 1fr; gap:0 7mm; margin-top:2mm;}
.fd .f-chip{font-size:10.92pt; line-height:1.5; color:#3d3f37; padding:1.7mm 0; border-bottom:1px solid #eee9dc;}
.fd .f-chip b{font-family:Georgia,serif; font-size:12.22pt;}
.fd .f-chip span{color:var(--muted); font-family:"Songti SC","SimSun",serif; margin-left:1.2mm;}
.fd .f-tl5{display:grid; grid-template-columns:repeat(3,1fr); gap:3.4mm 7mm; margin-top:4mm; padding-top:3mm; border-top:1px solid var(--rule);}
.fd .f-tl5 .f-y{font-family:Georgia,serif; color:var(--accent); font-size:11.7pt; margin-bottom:.8mm;}
.fd .f-tl5 .f-t{font-size:10.66pt; line-height:1.45; color:#3d3f37;}
.fd h2{font-size:33.8pt; margin-bottom:3.6mm; line-height:1.1;}
.fd .f-lede{font-size:16.38pt; line-height:1.46; margin-bottom:6mm;}
.fd .f-page{padding:15mm 16mm 13mm;}
.fd .f-sub-h{font-size:9.1pt; letter-spacing:.16em; text-transform:uppercase;
          color:var(--accent); font-weight:700; margin-bottom:1.6mm;}
.fd .f-tiny{font-size:9.88pt; line-height:1.45; color:var(--muted);}
.fd .f-warn{font-size:11.18pt; line-height:1.5; background:#f6f0e0; padding:2.4mm 3mm;
         border-left:2px solid var(--accent);}
.fd .f-sign{margin-top:5mm;}
.fd .f-sign .f-nm{font-family:Georgia,serif; font-size:14.3pt;}
.fd .f-sign .f-rl{font-size:9.36pt; color:var(--muted); letter-spacing:.06em;}
.fd .f-cover{padding:0;}
.fd .f-wall{display:flex; overflow:hidden; align-items:flex-end; background:#efe7d4;}
.fd .f-wall .f-cw{flex:1; overflow:hidden; border-right:1px solid #e2d9c2;}
.fd .f-wall .f-cw:last-child{border-right:0;}
.fd .f-wall .f-cw svg{width:84%; display:block; margin:0 auto; padding:4mm 0 3mm;}
.fd .f-cover-body{padding:12mm 16mm 0;}
.fd .f-contents{margin-top:5mm; border-top:1px solid var(--rule); padding-top:2.6mm;
             display:grid; grid-template-columns:1fr 1fr; gap:0 10mm;}
.fd .f-contents .f-ch{grid-column:1 / -1; font-size:8.32pt; letter-spacing:.2em;
                 text-transform:uppercase; color:var(--accent); font-weight:700;
                 margin-bottom:1.6mm;}
.fd .f-contents .f-cl span{font-size:9.36pt;}
.fd .f-contents .f-cl i{float:right; font-style:normal; font-size:8.84pt; color:var(--muted);}
.fd .f-contents .f-cl div{border-bottom:1px dotted #ddd6c4; padding:.42mm 0;}
.fd .f-cover h1{font-size:59.8pt; margin:2.4mm 0 1.2mm; line-height:1.04;}
.fd .f-cover .f-zh{font-size:20.8pt; letter-spacing:.34em; margin-bottom:3.4mm;}
.fd .f-cover .f-sub{font-size:16.12pt; line-height:1.4; max-width:152mm;}
.fd .f-cover .f-deck{font-size:11.7pt; margin-top:2.6mm; max-width:150mm; line-height:1.5;}
.fd .f-quote{margin-top:4.8mm; max-width:150mm;}
.fd .f-quote .f-q{font-size:18.2pt; letter-spacing:.08em;}
.fd .f-quote .f-qt{font-size:13.0pt;}
.fd .f-glance{position:static; display:flex; gap:7mm; margin-top:7mm;
           border-top:1px solid var(--rule); padding-top:3.4mm;}
.fd .f-glance > div{flex:1;}
.fd .f-glance .f-n{font-family:Georgia,serif; font-size:24.7pt; line-height:1; color:var(--accent);}
.fd .f-glance .f-l{font-size:8.84pt; color:var(--muted); line-height:1.35; margin-top:1mm;}
.fd .f-section-svg{margin:1mm 0 0;}
.fd .f-section-svg svg{width:100%; display:block;}
.fd .f-steps{display:flex; flex-direction:column; margin-top:1mm;}
.fd .f-step{display:grid; grid-template-columns:8mm 1fr; gap:3.4mm;
         border-top:1px solid var(--rule); padding:2.4mm 0;}
.fd .f-step:last-child{border-bottom:1px solid var(--rule);}
.fd .f-step .f-sn{font-family:Georgia,serif; font-size:16.9pt; color:var(--accent);
             line-height:1; padding-top:.4mm;}
.fd .f-step b{display:block; font-family:Georgia,serif; font-weight:400;
           font-size:13.0pt; margin-bottom:.7mm;}
.fd .f-step span{font-size:11.44pt; line-height:1.46; color:#3d3f37;}
.fd .f-plate{display:grid; gap:3.4mm;}
.fd .f-plate .f-fig{display:flex; flex-direction:column;}
.fd .f-plate .f-fig .f-fv{flex:1; display:flex; align-items:flex-end;}
.fd .f-fig .f-fv svg{width:100%; display:block;}
.fd .f-fig .f-fn{font-family:Georgia,serif; font-size:12.22pt; line-height:1.2; margin-top:1.8mm;}
.fd .f-fig .f-fz{font-size:9.1pt; color:var(--accent); letter-spacing:.04em; margin-top:.5mm;}
.fd .f-fig .f-fk{font-size:9.75pt; line-height:1.38; color:var(--muted); margin-top:1.2mm;}
.fd .f-method{display:grid; grid-template-columns:64mm 1fr; gap:7mm; margin-top:1mm;}
.fd .f-method .f-ml svg{width:100%; display:block;}
.fd .f-method .f-mr{display:flex; flex-direction:column; gap:2.2mm;}
.fd .f-plan-wrap{display:grid; grid-template-columns:84mm 1fr; gap:7mm; margin-top:1mm;}
.fd .f-plan-wrap .f-pl{align-self:center;}
.fd .f-plan-wrap .f-pl svg{width:100%; display:block;}
.fd .f-plcap{font-size:9.88pt; line-height:1.4; color:var(--muted);
          margin:2.4mm 0 0; padding-top:2mm; border-top:.3pt solid #d8d2c0;}
.fd .f-plan-wrap .f-pt{display:flex; flex-direction:column; gap:2.2mm;}
.fd .f-k{font-size:11.57pt; line-height:1.44; padding-left:7.2mm; position:relative;}
.fd .f-k b{color:#3a3b34;}
.fd .f-kn{position:absolute; left:0; top:.2mm; width:4.6mm; height:4.6mm;
       border-radius:50%; background:var(--accent); color:#fdfbf6; font-size:8.58pt;
       font-weight:700; text-align:center; line-height:4.6mm;}
.fd .f-tbl{width:100%; border-collapse:collapse; font-size:10.53pt; line-height:1.38;}
.fd .f-tbl th{text-align:left; font-weight:600; font-size:8.32pt; letter-spacing:.1em;
           text-transform:uppercase; color:var(--accent);
           border-bottom:1px solid var(--ink); padding:0 1.6mm 1.2mm 0;}
.fd .f-tbl td{border-bottom:1px solid var(--rule); padding:1.3mm 1.6mm 1.3mm 0;
           vertical-align:top;}
.fd .f-tbl td:first-child{color:#3a3b34; font-weight:600;}
.fd .f-gloss-tbl{font-size:9.1pt;}
.fd .f-gloss-tbl td:first-child{font-style:italic; font-weight:400;}
.fd .f-gloss-tbl td{padding:1.05mm 1.6mm 1.05mm 0;}
.fd .f-objs{display:grid; grid-template-columns:repeat(4,1fr); gap:5.4mm 4.6mm;
         margin-top:1mm;}
.fd .f-ob .f-ov svg{width:100%; display:block;}
.fd .f-ob .f-on{font-family:Georgia,serif; font-size:11.7pt; margin-top:1mm; line-height:1.15;}
.fd .f-ob .f-ot{font-size:8.97pt; color:var(--accent); letter-spacing:.03em; margin-top:.4mm;}
.fd .f-ob .f-ox{font-size:9.62pt; line-height:1.42; color:var(--muted); margin-top:1mm;}
.fd .f-doorlist{display:flex; flex-direction:column;}
.fd .f-doorrow{display:grid; grid-template-columns:6.4mm 1fr; gap:3mm;
            border-top:1px solid var(--rule); padding:1.9mm 0;}
.fd .f-doorrow:last-child{border-bottom:1px solid var(--rule);}
.fd .f-doorrow .f-drn{font-family:Georgia,serif; font-size:13.0pt;
                 color:var(--accent); line-height:1.1;}
.fd .f-doorrow b{font-weight:600;}
.fd .f-doorrow div{font-size:11.31pt; line-height:1.45; color:#3d3f37;}
.fd{--ink:#1f211d; --muted:#6d6b60; --rule:#dcd6c7;
    --accent:#a04f2c; --water:#35708a; --paper:#fdfbf6; --tint:#f4efe2;}
.fd .f-serif{font-family:Georgia,"Times New Roman","Songti SC","SimSun",serif;}
.fd .f-page{position:relative; width:210mm; height:297mm; background:var(--paper);
    padding:16mm 16mm 14mm; overflow:hidden; page-break-after:always;
    margin:0 auto 8mm; box-shadow:0 2px 14px rgba(0,0,0,.14);}
.fd .f-page:last-child{page-break-after:auto;}
.fd .f-eyebrow{font-size:9.36pt; letter-spacing:.2em; text-transform:uppercase;
    color:var(--accent); font-weight:700; margin-bottom:5mm;}
.fd h2{font-family:Georgia,serif; font-size:33.8pt; line-height:1.14; font-weight:400; letter-spacing:-.01em; margin-bottom:4mm;}
.fd .f-lede{font-size:16.12pt; line-height:1.5; color:#33352e; margin-bottom:5mm;}
.fd .f-lede em{font-style:italic;}
.fd p + p{margin-top:2.6mm;}
.fd .f-cap{font-size:9.88pt; line-height:1.45; color:var(--muted); margin-top:2mm;}
.fd .f-cap b{color:#4a4b43; font-weight:600;}
.fd .f-rule{height:1px; background:var(--rule);}
.fd .f-pfoot{position:absolute; left:16mm; right:16mm; bottom:8mm;
    display:flex; justify-content:space-between; align-items:baseline;
    font-size:8.58pt; letter-spacing:.12em; text-transform:uppercase; color:#9a978a;
    border-top:1px solid var(--rule); padding-top:2.4mm;}
.fd .f-cover{padding:0;}
.fd .f-cover-img{width:100%; height:122mm; overflow:hidden; position:relative;}
.fd .f-cover-img img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-cover-body{padding:12mm 16mm 0;}
.fd .f-brandline{font-size:9.62pt; letter-spacing:.28em; text-transform:uppercase; color:var(--muted);}
.fd .f-cover h1{font-family:Georgia,serif; font-weight:400; font-size:75.4pt; line-height:1;
    letter-spacing:-.02em; margin:4mm 0 1mm;}
.fd .f-cover .f-zh{font-size:26.0pt; letter-spacing:.34em; color:var(--accent); margin-bottom:5mm; font-family:"Songti SC","SimSun",serif;}
.fd .f-cover .f-sub{font-family:Georgia,serif; font-style:italic; font-size:18.85pt; line-height:1.42; color:#33352e; max-width:150mm;}
.fd .f-cover .f-deck{font-size:13.0pt; color:var(--muted); margin-top:4mm; max-width:150mm;}
.fd .f-quote{margin-top:13mm; max-width:152mm; border-left:2px solid var(--accent); padding-left:6mm;}
.fd .f-quote .f-q{font-family:"Songti SC","SimSun",serif; font-size:20.8pt; letter-spacing:.08em; line-height:1.6;}
.fd .f-quote .f-qt{font-family:Georgia,serif; font-style:italic; font-size:14.3pt; color:#3d3f37; margin-top:1.5mm;}
.fd .f-quote .f-qs{font-size:9.36pt; color:var(--muted); margin-top:2.4mm; letter-spacing:.03em; line-height:1.5;}
.fd .f-glance{position:absolute; left:16mm; right:16mm; bottom:14mm; display:grid; grid-template-columns:repeat(4,1fr); border-top:1.6px solid var(--ink);}
.fd .f-glance div{padding:4mm 3mm 0 0;}
.fd .f-glance .f-n{font-family:Georgia,serif; font-size:24.7pt; line-height:1; color:var(--accent);}
.fd .f-glance .f-l{font-size:9.1pt; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-top:2mm; line-height:1.35;}
.fd .f-cols{display:grid; grid-template-columns:88mm 1fr; gap:9mm;}
.fd .f-portrait{height:112mm; overflow:hidden;}
.fd .f-portrait img{width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block;}
.fd .f-note{background:var(--tint); padding:5mm 5mm 5mm; margin-top:6mm; border-left:2.6px solid var(--accent);}
.fd .f-note .f-h{font-size:9.36pt; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:2mm;}
.fd .f-note .f-zhbig{font-family:"Songti SC","SimSun",serif; font-size:19.5pt; letter-spacing:.14em; margin-bottom:1.5mm;}
.fd .f-note .f-tr{font-family:Georgia,serif; font-style:italic; font-size:12.48pt; color:#3d3f37;}
.fd .f-note .f-b{font-size:11.44pt; line-height:1.55; margin-top:2mm; color:#4a4b43;}
.fd .f-cols.f-hist{grid-template-columns:74mm 1fr;}
.fd .f-tl{display:grid; grid-template-columns:repeat(3,1fr); gap:4.6mm 7mm; margin-top:6mm; padding-top:3.2mm; border-top:1px solid var(--rule);}
.fd .f-tl .f-y{font-family:Georgia,serif; color:var(--accent); font-size:12.22pt; margin-bottom:1mm;}
.fd .f-tl .f-t{font-size:10.79pt; line-height:1.5; color:#3d3f37;}
.fd .f-diagram{margin:1mm 0 3mm;}
.fd .f-diagram svg{width:100%; height:auto; display:block;}
.fd .f-legend{display:grid; grid-template-columns:1fr 1fr 1fr; gap:6mm; margin-top:4mm;}
.fd .f-legend .f-item{border-top:2px solid var(--ink); padding-top:2.6mm;}
.fd .f-legend .f-nm{font-size:10.4pt; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:700;}
.fd .f-legend .f-zh{font-family:"Songti SC","SimSun",serif; font-size:14.3pt; margin:.6mm 0 1.6mm;}
.fd .f-legend .f-d{font-size:11.7pt; line-height:1.55; color:#41433b;}
.fd .f-coda{margin-top:7mm; padding-top:3.2mm; border-top:1px solid var(--rule); max-width:154mm; font-size:11.18pt; line-height:1.6; color:#41433b;}
.fd .f-fine{font-size:9.36pt; color:#8d8a7d; margin-top:3.5mm;}
.fd #p3 .f-diagram{margin-bottom:1.5mm;}
.fd #p3 .f-legend{margin-top:2.5mm;}
.fd #p3 .f-coda{margin-top:3mm; padding-top:2.6mm;}
.fd #p3 .f-fine{margin-top:1.5mm;}
.fd .f-grid2{display:grid; grid-template-columns:1fr 1fr; gap:7mm 7mm;}
.fd .f-card .f-ph{height:66mm; overflow:hidden; background:#e8e3d5;}
.fd .f-card .f-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-card .f-ttl{font-size:12.22pt; font-weight:600; margin-top:2.2mm;}
.fd .f-card .f-ttl span{color:var(--muted); font-weight:400; font-family:"Songti SC","SimSun",serif; margin-left:1.5mm;}
.fd .f-card .f-d{font-size:10.92pt; line-height:1.5; color:#4a4b43; margin-top:1mm;}
.fd .f-three{display:grid; grid-template-columns:1fr 1fr 1fr; gap:5mm;}
.fd .f-three .f-ph{height:38mm; overflow:hidden; background:#e8e3d5;}
.fd .f-three .f-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-three .f-ttl{font-size:11.18pt; font-weight:600; margin-top:2mm;}
.fd .f-three .f-ttl span{display:block; color:var(--muted); font-weight:400; font-family:"Songti SC","SimSun",serif; font-size:10.92pt;}
.fd .f-three .f-d{font-size:10.4pt; line-height:1.45; color:#4a4b43; margin-top:.8mm;}
.fd .f-rows .f-row{display:grid; grid-template-columns:76mm 1fr; gap:7mm; align-items:start; margin-bottom:8mm;}
.fd .f-rows .f-row .f-ph{height:54mm; overflow:hidden; background:#e8e3d5;}
.fd .f-rows .f-row .f-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-rows .f-row .f-ttl{font-size:13.52pt; font-weight:600; margin-bottom:1.8mm;}
.fd .f-rows .f-row .f-ttl span{color:var(--muted); font-weight:400; font-family:"Songti SC","SimSun",serif; margin-left:2mm; font-size:12.48pt;}
.fd .f-rows .f-row .f-d{font-size:11.7pt; line-height:1.55; color:#4a4b43;}
.fd .f-strip{display:grid; grid-template-columns:1fr 1fr 1fr; gap:5mm; margin-top:4mm; padding-top:3mm; border-top:1px solid var(--rule);}
.fd .f-strip .f-h{font-size:10.4pt; font-weight:700; color:var(--accent); letter-spacing:.08em; text-transform:uppercase;}
.fd .f-strip .f-d{font-size:10.4pt; line-height:1.45; color:#4a4b43; margin-top:1mm;}
.fd .f-kv{width:100%; border-collapse:collapse; font-size:11.18pt;}
.fd .f-kv td{padding:2.1mm 0; border-bottom:1px solid #eee9dc; vertical-align:top;}
.fd .f-kv td:first-child{width:34mm; color:var(--muted); font-size:10.14pt; letter-spacing:.06em; text-transform:uppercase;}
.fd .f-bullet{margin-top:3mm;}
.fd .f-bullet li{list-style:none; font-size:11.18pt; line-height:1.5; padding-left:5mm; position:relative; margin-bottom:2.2mm; color:#41433b;}
.fd .f-bullet li:before{content:""; position:absolute; left:0; top:1.7mm; width:2.4mm; height:2.4mm; background:var(--accent);}
.fd .f-bullet b{color:var(--ink);}
.fd .f-warn{background:#f6ece4; border-left:2.6px solid var(--accent); padding:3.4mm 4mm; font-size:11.05pt; line-height:1.5; margin-top:4mm;}
.fd .f-warn b{color:var(--accent);}
.fd .f-blocks{display:grid; grid-template-columns:1fr 1fr; gap:6mm 8mm;}
.fd .f-blocks .f-b{border-top:1.6px solid var(--ink); padding-top:2.4mm;}
.fd .f-blocks .f-h{font-size:10.4pt; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:1.6mm;}
.fd .f-blocks .f-d{font-size:11.05pt; line-height:1.55; color:#41433b;}
.fd .f-credits{font-size:8.58pt; line-height:1.5; color:#8d8a7d; margin-top:4mm; column-count:2; column-gap:7mm;}
.fd .f-credits b{color:#6d6b60;}
.fd .f-sign{margin-top:5mm; font-size:12.22pt; line-height:1.6;}
.fd .f-sign .f-nm{font-family:Georgia,serif; font-style:italic; font-size:14.3pt;}
.fd .f-cols.f-ski{grid-template-columns:96mm 1fr;}
.fd .f-cold{margin-top:7mm; border-top:2px solid var(--ink); padding-top:3.2mm;}
.fd .f-cold .f-n{font-family:Georgia,serif; font-size:32.5pt; color:var(--accent); line-height:1;}
.fd .f-cold .f-s{font-size:10.66pt; color:var(--muted); margin-top:2mm; line-height:1.5;}
.fd .f-gloss-h{margin-top:6mm; font-size:10.4pt; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:700;}
.fd .f-gloss{display:grid; grid-template-columns:1fr 1fr; gap:0 8mm; margin-top:2.4mm; border-top:1.6px solid var(--ink);}
.fd .f-gloss .f-g{display:grid; grid-template-columns:20mm 1fr; gap:2mm; padding:1.9mm 0; border-bottom:1px solid #eee9dc; align-items:baseline;}
.fd .f-gloss .f-zh{font-family:"Songti SC","SimSun",serif; font-size:12.48pt;}
.fd .f-gloss .f-en{font-size:10.4pt; color:#4a4b43; line-height:1.4;}
.fd .f-split{display:grid; grid-template-columns:1fr 1fr; gap:9mm;}
.fd .f-band{height:46mm; overflow:hidden; margin-top:5mm;}
.fd .f-band img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-nums{display:grid; grid-template-columns:repeat(4,1fr); gap:6mm; margin-top:5mm; border-top:1.6px solid var(--ink); padding-top:3mm;}
.fd .f-nums .f-n{font-family:Georgia,serif; font-size:22.1pt; color:var(--accent); line-height:1;}
.fd .f-nums .f-l{font-size:9.1pt; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:1.5mm; line-height:1.35;}
.fd .f-kv.f-wide td:first-child{width:52mm;}
.fd .f-wide-ph{height:92mm; overflow:hidden; background:#e8e3d5; margin-bottom:2mm;}
.fd .f-wide-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-band-tall{height:46mm; overflow:hidden; margin-top:4mm;}
.fd .f-band-tall img{width:100%; height:100%; object-fit:cover; display:block;}
.fd .f-nowrap{white-space:nowrap}
.fd .f-peaks{width:100%; border-collapse:collapse; font-size:11.44pt; margin-top:5mm;}
.fd .f-peaks th{text-align:left; font-size:8.84pt; letter-spacing:.11em; text-transform:uppercase;
             color:var(--muted); padding-bottom:1.6mm; border-bottom:1.6px solid var(--ink); font-weight:600;}
.fd .f-peaks td{padding:2.3mm 0; border-bottom:1px solid #eee9dc; vertical-align:baseline;}
.fd .f-peaks td.f-h{font-family:Georgia,serif; font-size:13.78pt; color:var(--accent); width:26mm;}
.fd .f-peaks td.f-zh{font-family:"Songti SC","SimSun",serif; font-size:12.48pt; width:26mm;}
.fd .f-peaks td.f-n{font-family:Georgia,serif; font-size:13.26pt; width:22mm;}
.fd .f-peaks td.f-d{font-size:10.66pt; color:#4a4b43; line-height:1.4;}
.fd .f-rows{display:grid; grid-template-columns:76mm 1fr; gap:8mm; margin-top:5mm;}
.fd .f-rows .f-ph{height:106mm; overflow:hidden; background:#e8e3d5;}
.fd .f-rows .f-ph img{width:100%; height:100%; object-fit:cover; display:block; object-position:50% 30%;}
.fd .f-chips{display:grid; grid-template-columns:1fr 1fr; gap:0 7mm; margin-top:2mm;}
.fd .f-chip{font-size:10.92pt; line-height:1.5; color:#3d3f37; padding:1.7mm 0; border-bottom:1px solid #eee9dc;}
.fd .f-chip b{font-family:Georgia,serif; font-size:12.22pt;}
.fd .f-chip span{color:var(--muted); font-family:"Songti SC","SimSun",serif; margin-left:1.2mm;}
.fd .f-tl5{display:grid; grid-template-columns:repeat(3,1fr); gap:3.4mm 7mm; margin-top:4mm; padding-top:3mm; border-top:1px solid var(--rule);}
.fd .f-tl5 .f-y{font-family:Georgia,serif; color:var(--accent); font-size:11.7pt; margin-bottom:.8mm;}
.fd .f-tl5 .f-t{font-size:10.66pt; line-height:1.45; color:#3d3f37;}
.fd h2{font-size:33.8pt; margin-bottom:3.6mm; line-height:1.1;}
.fd .f-lede{font-size:16.38pt; line-height:1.46; margin-bottom:6.4mm;}
.fd .f-page{padding:15mm 16mm 13mm;}
.fd .f-sub-h{font-size:9.1pt; letter-spacing:.16em; text-transform:uppercase;
          color:var(--accent); font-weight:700; margin-bottom:1.6mm;}
.fd .f-tiny{font-size:9.88pt; line-height:1.45; color:var(--muted);}
.fd .f-warn{font-size:11.18pt; line-height:1.5; background:#f6f0e0; padding:2.4mm 3mm;
         border-left:2px solid var(--accent);}
.fd .f-sign{margin-top:4mm;}
.fd .f-sign .f-nm{font-family:Georgia,serif; font-size:14.3pt;}
.fd .f-sign .f-rl{font-size:9.36pt; color:var(--muted); letter-spacing:.06em;}
.fd .f-cover{padding:0;}
.fd .f-wall{display:flex; height:auto; overflow:hidden; align-items:flex-end;
         background:#efe7d4;}
.fd .f-wall .f-cw{flex:1; overflow:hidden;}
.fd .f-wall .f-cw svg{width:90%; display:block; margin:0 auto;}
.fd .f-cover-body{padding:11mm 16mm 0;}
.fd .f-contents{margin-top:4.6mm; border-top:1px solid var(--rule); padding-top:2.4mm;
             display:grid; grid-template-columns:1fr 1fr; gap:0 10mm;}
.fd .f-contents .f-ch{grid-column:1 / -1; font-size:8.32pt; letter-spacing:.2em;
                 text-transform:uppercase; color:var(--accent); font-weight:700;
                 margin-bottom:1.6mm;}
.fd .f-contents .f-cl span{font-size:9.23pt;}
.fd .f-contents .f-cl i{float:right; font-style:normal; font-size:8.84pt; color:var(--muted);}
.fd .f-contents .f-cl div{border-bottom:1px dotted #ddd6c4; padding:.3mm 0;}
.fd .f-cover h1{font-size:65.0pt; margin:2.6mm 0 1.2mm;}
.fd .f-cover .f-zh{font-size:21.45pt; letter-spacing:.3em; margin-bottom:3.2mm;}
.fd .f-cover .f-sub{font-size:16.9pt; line-height:1.4; max-width:154mm;}
.fd .f-cover .f-deck{font-size:11.96pt; margin-top:2.4mm; max-width:152mm; line-height:1.5;}
.fd .f-quote{margin-top:4.6mm; max-width:150mm;}
.fd .f-quote .f-q{font-size:19.5pt; letter-spacing:.1em;}
.fd .f-quote .f-qt{font-size:13.26pt;}
.fd .f-quote .f-qs{font-size:9.1pt;}
.fd .f-glance{position:static; display:flex; gap:7mm; margin-top:6.5mm;
           border-top:1px solid var(--rule); padding-top:3.4mm;}
.fd .f-glance > div{flex:1;}
.fd .f-glance .f-n{font-family:Georgia,serif; font-size:24.7pt; line-height:1; color:var(--accent);}
.fd .f-glance .f-l{font-size:8.84pt; color:var(--muted); line-height:1.35; margin-top:1mm;}
.fd .f-method{display:grid; grid-template-columns:64mm 1fr; gap:7mm; margin-top:1mm;}
.fd .f-method .f-ml svg{width:100%; display:block;}
.fd .f-method .f-mr{display:flex; flex-direction:column; gap:2.1mm;}
.fd .f-k{font-size:11.44pt; line-height:1.44; padding-left:7.2mm; position:relative;}
.fd .f-k b{color:#3a3b34;}
.fd .f-kn{position:absolute; left:0; top:.2mm; width:4.6mm; height:4.6mm;
       border-radius:50%; background:var(--accent); color:#fdfbf6; font-size:8.58pt;
       font-weight:700; text-align:center; line-height:4.6mm;}
.fd .f-plate{display:grid; gap:3mm;}
.fd .f-plate .f-fig{display:flex; flex-direction:column;}
.fd .f-plate .f-fig .f-fv{flex:1; display:flex; align-items:flex-end;}
.fd .f-fig .f-fv svg{width:100%; display:block;}
.fd .f-fig .f-fn{font-family:Georgia,serif; font-size:11.96pt; line-height:1.2; margin-top:1.5mm;}
.fd .f-fig .f-fz{font-size:9.1pt; color:var(--accent); letter-spacing:.04em; margin-top:.4mm;}
.fd .f-fig .f-fk{font-size:9.1pt; line-height:1.34; color:var(--muted); margin-top:1mm;}
.fd .f-ranks{display:flex; flex-direction:column; gap:0; margin-top:1mm;}
.fd .f-rrow{display:grid; grid-template-columns:17.4mm 1fr; gap:4.4mm; align-items:center;
         border-top:1px solid var(--rule); padding:1.7mm 0;}
.fd .f-rrow:last-child{border-bottom:1px solid var(--rule);}
.fd .f-rfig svg{width:100%; display:block;}
.fd .f-rtxt b{font-family:Georgia,serif; font-size:12.22pt; font-weight:400;}
.fd .f-rtxt span{display:block; font-size:10.79pt; line-height:1.44; color:#4a4b43; margin-top:.4mm;}
.fd .f-tbl{width:100%; border-collapse:collapse; font-size:10.27pt; line-height:1.36;}
.fd .f-tbl th{text-align:left; font-weight:600; font-size:8.32pt; letter-spacing:.1em;
           text-transform:uppercase; color:var(--accent);
           border-bottom:1px solid var(--ink); padding:0 1.6mm 1.2mm 0;}
.fd .f-tbl td{border-bottom:1px solid var(--rule); padding:1.15mm 1.6mm 1.15mm 0;
           vertical-align:top;}
.fd .f-tbl td:first-child{color:#3a3b34; font-weight:600;}
.fd .f-tbl.f-small{font-size:8.97pt;}
.fd .f-gloss-tbl{font-size:8.97pt;}
.fd .f-gloss-tbl td:first-child{font-style:italic; font-weight:400;}
.fd .f-gloss-tbl th{padding-bottom:1mm;}
.fd .f-objs{display:grid; grid-template-columns:repeat(4,1fr); gap:4.5mm; margin-top:1mm;}
.fd .f-ob .f-ov svg{width:100%; display:block; max-height:52mm;}
.fd .f-ob .f-on{font-family:Georgia,serif; font-size:11.7pt; margin-top:1.2mm;}
.fd .f-ob .f-ot{font-size:8.84pt; color:var(--accent); letter-spacing:.03em;}
.fd .f-ob .f-ox{font-size:8.97pt; line-height:1.38; color:var(--muted); margin-top:.9mm;}
.fd .f-plan-wrap{display:grid; grid-template-columns:62mm 1fr; gap:7mm; margin-top:1mm;}
.fd .f-plan-wrap .f-pl svg{width:100%; display:block;}
.fd .f-plan-wrap .f-pt{display:flex; flex-direction:column; gap:2.2mm;}
.fd .f-cmp-h{display:grid; grid-template-columns:24mm 1fr 24mm;
          font-size:8.06pt; letter-spacing:.16em; text-transform:uppercase;
          color:var(--accent); font-weight:700; border-bottom:1px solid var(--ink);
          padding-bottom:1mm;}
.fd .f-cmp-h span:last-child{text-align:right;}
.fd .f-cmp{display:grid; grid-template-columns:24mm 1fr 24mm; gap:4.5mm;
        align-items:center; border-bottom:1px solid var(--rule); padding:1.7mm 0;}
.fd .f-cmf svg{width:100%; display:block;}
.fd .f-cml{font-size:8.06pt; color:var(--muted); text-align:center; margin-top:.6mm;
        letter-spacing:.04em;}
.fd .f-cmt b{display:block; font-family:Georgia,serif; font-weight:400; font-size:11.7pt;
          margin-bottom:.8mm;}
.fd .f-cmt p{font-size:9.62pt; line-height:1.42; color:#3d3f37;}
.fd .f-key{width:100%; border-collapse:collapse; font-size:10.4pt; line-height:1.36;}
.fd .f-key td{border-bottom:1px solid var(--rule); padding:1.35mm 2mm 1.35mm 0;
           vertical-align:top;}
.fd .f-key td.f-n{width:7mm; font-family:Georgia,serif; color:var(--accent); font-size:11.7pt;}
.fd .f-key td.f-go{width:52mm; color:var(--accent); font-size:9.36pt; text-align:right;}

/* ============ 网页阅读版式覆盖（替代 A4 定尺页） ============ */
.fd{
  background:transparent;
  color:var(--ink);
  font-size:16px;
  line-height:1.62;
  font-family:"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}
.fd *{ box-sizing:border-box; }

/* A4 页框 → 流式章节 */
.fd .f-page{
  position:static;
  width:auto; height:auto; min-height:0;
  overflow:visible;
  padding:0;
  margin:0;
  background:transparent;
  box-shadow:none;
  page-break-after:auto;
}
.fd .f-pfoot{ display:none; }
.fd .f-pbody{ padding:0; }

/* 章节之间：一道细分隔线 + 呼吸，不是纸页 */
.fd .f-fd-ch{
  position:relative;
  padding-top:2.4rem;
  margin-top:2.4rem;
  border-top:1px solid var(--rule);
}
.fd .f-fd-ch:first-child{ padding-top:0; margin-top:0; border-top:0; }
.fd .f-fd-ch > .f-eyebrow{ display:block; }

/* 所有内联 SVG 随容器缩放（原图只有 viewBox） */
.fd svg{ height:auto; max-width:100%; }
.fd .f-wall .f-cw svg{ width:84%; }

/* 封面：原用绝对定位贴底，改成流式 */
.fd .f-cover{ padding:0; }
.fd .f-cover-img{ height:auto; aspect-ratio:16/9; }
.fd .f-cover-body{ padding:0; margin-top:1.4rem; }
.fd .f-glance{ position:static; margin-top:1.6rem; bottom:auto; }
.fd .f-quote{ margin-top:1.6rem; }

/* 目录：页内跳转 */
.fd .f-contents{ grid-template-columns:1fr; gap:0 0; }
.fd .f-contents .f-cl div{ display:flex; justify-content:space-between; gap:1rem; }
.fd .f-contents .f-cl a{ color:inherit; text-decoration:none; }
.fd .f-contents .f-cl a:hover{ color:var(--accent); }

/* 封面大标题：58pt 是 A4 定尺的，网页 3rem 就够 */
.fd .f-cover h1{ font-size:3rem; line-height:1.06; }

/* 固定高度的图位：窄屏别塌 */
.fd .f-portrait,
.fd .f-wide-ph,
.fd .f-rows .f-ph,
.fd .f-rows .f-row .f-ph,
.fd .f-card .f-ph,
.fd .f-three .f-ph,
.fd .f-band,
.fd .f-band-tall{ height:auto; }
.fd .f-portrait img,
.fd .f-wide-ph img,
.fd .f-rows .f-ph img,
.fd .f-rows .f-row .f-ph img,
.fd .f-card .f-ph img,
.fd .f-three .f-ph img,
.fd .f-band img,
.fd .f-band-tall img{ width:100%; height:auto; display:block; }

/* 表格：A4 里靠 overflow:hidden 裁，网页必须自己收在栏内 */
.fd table{ width:100%; max-width:100%; table-layout:fixed; }
.fd table th, .fd table td{ overflow-wrap:anywhere; }
.fd .f-tbl, .fd .f-kv, .fd .f-peaks, .fd .f-gloss-tbl{ width:100%; }
.fd .f-kv td:first-child{ width:28%; }
.fd .f-kv.f-wide td:first-child{ width:34%; }
.fd .f-peaks td.f-h, .fd .f-peaks td.f-zh, .fd .f-peaks td.f-n{ width:auto; }

/* 章节序号留在左上，像原页眉 */
.fd .f-fd-ch{ scroll-margin-top:110px; }

/* ---------- 窄屏：多列塌成单列 ---------- */
@media (max-width:820px){
  .fd .f-cols,.fd .f-cols.f-hist,.fd .f-cols.f-ski,
  .fd .f-legend,.fd .f-grid2,.fd .f-three,.fd .f-strip,.fd .f-blocks,
  .fd .f-gloss,.fd .f-split,.fd .f-nums,.fd .f-chips,.fd .f-tl,.fd .f-tl5,
  .fd .f-rows,.fd .f-rows .f-row,.fd .f-method,.fd .f-plan-wrap,.fd .f-step,
  .fd .f-objs,.fd .f-contents,.fd .f-doorrow,.fd .f-plate{
    grid-template-columns:1fr !important;
  }
  .fd .f-glance{ flex-wrap:wrap; gap:1rem 1.6rem; }
  .fd .f-glance > div{ flex:1 1 40%; }
  .fd .f-legend .f-item{ margin-bottom:.6rem; }
  .fd .f-cover h1{ font-size:2.2rem !important; }
  .fd .f-pfoot{ display:none; }
  .fd .f-credits{ column-count:1; }
  .fd .f-fd-ch{ padding-top:1.8rem; margin-top:1.8rem; }
}
@media (max-width:520px){
  .fd{ font-size:15px; }
  .fd .f-cover h1{ font-size:1.9rem !important; }
}

/* 页尾一句 */
.f-fd-end{ margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--rule);
  font-size:.95rem; line-height:1.7; color:var(--muted); }

/* 引文：原书 .f-q 在 Part One 放英文、在 Part Two 放中文（同一套 CSS 服务两本），
   A4 上用宋体渲染英文还看得过去，网页上 SimSun 的英文太像打字机 → 英文走 Georgia，
   中文（Georgia 无字形）仍回退宋体。 */
.fd .f-quote .f-q{ font-family:Georgia,"Times New Roman","Songti SC","SimSun",serif; }
/* 封面图形墙：宽屏 6 个排一行；窄屏交给上面的 2 列规则（这条必须限定宽度，
   否则特异性高于 @media 里的 2 列 → 390px 屏上挤成 6 列并横向溢出） */
@media (min-width:821px){ .fd .f-fd-hero .f-wall{ grid-template-columns:repeat(6,1fr); } }

/* 宽表：窄屏横向滚动，别把整页撑出滚动条 */
.fd .f-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.fd .f-scroll table{ min-width:520px; }
@media (max-width:520px){ .fd .f-scroll table{ min-width:460px; } }
