:root{--bg:#fafaf8;--ink:#262626;--muted:#6b7280;--accent:#1f3a2e;--card:#fff;--line:#e7e4dc;}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.85;}
a{color:var(--accent);}
.hero{background:linear-gradient(135deg,#1f3a2e,#2d5443);color:#f4f1ea;padding:54px 24px 46px;}
.hero-inner{max-width:1180px;margin:0 auto;}
.kicker{letter-spacing:.1em;font-size:13.5px;opacity:.82;}
.hero h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:44px;margin:10px 0 8px;font-weight:800;letter-spacing:.02em;}
.subtitle{font-size:18px;opacity:.93;}
.meta{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;}
.meta span{background:rgba(255,255,255,.14);padding:5px 13px;border-radius:20px;font-size:13px;}
.layout{max-width:1180px;margin:0 auto;display:flex;gap:34px;padding:30px 24px 60px;align-items:flex-start;}
.toc{position:sticky;top:18px;width:272px;flex:none;max-height:calc(100vh - 36px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 14px;font-size:13.5px;}
.toc-title{font-weight:700;color:var(--accent);margin-bottom:8px;font-size:15px;}
.toc ul{list-style:none;margin:0;padding:0;}
.toc-stage{font-weight:700;margin:13px 0 4px;font-size:13px;letter-spacing:.02em;}
.toc-item a{display:flex;color:#444;text-decoration:none;padding:3px 6px;border-radius:6px;line-height:1.5;}
.toc-item a:hover{background:#f0efe9;color:var(--accent);}
.toc-num{flex:none;width:36px;color:var(--muted);font-variant-numeric:tabular-nums;}
.content{flex:1;min-width:0;}
.intro{background:#f3f1ea;border-left:4px solid var(--accent);padding:16px 20px;border-radius:8px;margin-bottom:8px;}
.intro p{margin:6px 0;}
.intro-note{font-size:14px;color:var(--muted);}
.stage{font-family:"Noto Serif SC","Songti SC",serif;font-size:26px;margin:42px 0 14px;padding-left:14px;border-left:6px solid;scroll-margin-top:16px;}
.page{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px 26px;margin:16px 0;box-shadow:0 1px 3px rgba(0,0,0,.04);scroll-margin-top:16px;}
.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.page-num{color:#fff;font-weight:700;border-radius:8px;padding:3px 10px;font-size:14px;font-variant-numeric:tabular-nums;}
.page-head h3{font-family:"Noto Serif SC","Songti SC",serif;font-size:21px;margin:0;flex:1;min-width:200px;color:#1a1a1a;}
.dur{font-size:13px;color:var(--muted);background:#f0efe9;padding:3px 10px;border-radius:14px;white-space:nowrap;}
.scene{font-size:14.5px;color:#5b5b5b;font-style:italic;background:#faf8f2;border:1px dashed #d9d4c7;border-radius:8px;padding:8px 12px;margin:0 0 14px;}
.scene-label{font-style:normal;font-weight:700;color:var(--accent);margin-right:8px;font-size:12.5px;border:1px solid var(--accent);border-radius:10px;padding:1px 8px;}
.speech p{margin:0 0 13px;text-align:justify;}
.speech strong{color:var(--accent);font-weight:700;}
.foot{text-align:center;color:var(--muted);font-size:13px;margin:42px 0 0;padding-top:20px;border-top:1px solid var(--line);}
.top{position:fixed;right:22px;bottom:22px;width:44px;height:44px;line-height:44px;text-align:center;background:var(--accent);color:#fff;border-radius:50%;text-decoration:none;font-size:20px;box-shadow:0 2px 8px rgba(0,0,0,.2);}
@media(max-width:1000px){.layout{flex-direction:column;}.toc{position:static;width:100%;max-height:340px;}.hero h1{font-size:34px;}}
@media(max-width:700px){.page{padding:16px 16px;}.hero{padding:38px 18px;}.layout{padding:18px 14px 50px;}.page-head h3{font-size:18px;}}
@media print{.toc,.top,.hero .meta{display:none;}.page,.intro{break-inside:avoid;border:none;box-shadow:none;}body{background:#fff;}.layout{display:block;}}
