:root{
 --bg:#04050c;--ink:#f4efe6;--muted:#cfc6b4;--faint:#9d9584;--gold:#e6c27a;--gold2:#b8924a;--blue:#9cc2ff;--rose:#f09a8c;
 --panel:rgba(14,16,34,.78);--panel2:rgba(22,25,50,.85);--line:rgba(230,194,122,.35);--shadow:0 20px 50px rgba(0,0,0,.45);
 color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
:root[data-mode="day"]{
 --bg:#f4efe4;--ink:#1b1712;--muted:#4e463b;--faint:#7a6f60;--gold:#8f6716;--gold2:#b48a3c;--blue:#28507f;--rose:#a3402f;
 --panel:rgba(255,252,245,.86);--panel2:rgba(255,250,238,.95);--line:rgba(143,103,22,.35);--shadow:0 18px 40px rgba(70,50,20,.15);color-scheme:light;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;font-variant-numeric:lining-nums tabular-nums}
body{margin:0;min-height:100vh;color:var(--ink);background:var(--bg);font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-size:17px;line-height:1.8;-webkit-font-smoothing:antialiased}
#sky{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.nebula{position:fixed;inset:0;z-index:0;pointer-events:none;transition:opacity .8s;
 background:radial-gradient(60vw 40vw at 15% 20%,rgba(96,52,160,.28),transparent 70%),radial-gradient(50vw 40vw at 85% 30%,rgba(20,96,120,.25),transparent 70%),radial-gradient(70vw 50vw at 50% 110%,rgba(160,110,40,.18),transparent 70%)}
:root[data-mode="day"] .nebula{background:radial-gradient(70vw 50vw at 80% -10%,rgba(255,214,140,.55),transparent 70%),radial-gradient(60vw 40vw at 10% 10%,rgba(190,210,240,.55),transparent 70%),linear-gradient(180deg,#f7f2e8,#ecf0f5)}
.wrap{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:0 20px 40px}
.hidden{display:none!important}
.en{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;letter-spacing:.04em;color:var(--gold)}
h1,h2,h3{font-weight:900;line-height:1.3;margin:0}
p{margin:.4em 0}
.muted{color:var(--muted)}
button{font:inherit;cursor:pointer;border:1px solid var(--gold);color:var(--bg);background:var(--gold);padding:12px 30px;letter-spacing:.15em;border-radius:2px;transition:transform .15s,box-shadow .2s}
button:hover{box-shadow:0 0 24px rgba(230,194,122,.45)}
button.ghost{background:transparent;color:var(--ink)}
button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
button:focus-visible,input:focus-visible,.plot:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
input{width:100%;font:inherit;font-size:17px;padding:11px 13px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--ink);border-radius:2px}
:root[data-mode="day"] input{background:#fff}
label{display:block;font-size:14px;color:var(--muted);margin:12px 0 4px}
.panel{background:var(--panel);border:1px solid var(--line);padding:24px;margin:18px 0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow)}
/* 顶栏 */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px 20px;margin:0 -20px 6px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
#voiceStatus{flex-basis:100%;margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.vol{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;color:var(--muted)}
.vol b{min-width:2.5em;color:var(--ink);font-weight:700}
.vol input{width:128px;height:44px;margin:0;accent-color:var(--gold)}
@media(max-width:760px){.vol{flex-basis:100%}.vol input{flex:1;width:auto}}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:6;background:var(--bg)}
.top .logo{font-weight:900;font-size:22px;letter-spacing:.18em}
.top .logo small{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;letter-spacing:.06em;color:var(--gold);font-size:15px;margin-left:8px}
.spacer{flex:1}
.mode{padding:6px 14px;font-size:14px;letter-spacing:.08em;background:transparent;color:var(--ink);border-color:var(--line)}
/* 首页 */
.hero{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;min-height:62vh}
@media(max-width:820px){.hero{grid-template-columns:1fr;min-height:auto}}
.hero h1{font-size:clamp(46px,9vw,92px);letter-spacing:.14em;text-shadow:0 0 40px rgba(230,194,122,.25)}
.hero .lead{font-size:19px;color:var(--muted);max-width:30em}
.ring{width:min(420px,86vw);aspect-ratio:1;margin:0 auto;position:relative}
.ring svg{width:100%;height:100%;animation:rot 120s linear infinite}
.ring .core{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.ring .core b{display:block;font-size:44px;letter-spacing:.3em;color:var(--gold)}
@keyframes rot{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ring svg{animation:none}}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
@media(max-width:700px){.grid3{grid-template-columns:1fr}}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:15px;color:var(--muted)}
.consent label{margin:0;font-size:15px}
.consent input{width:20px;height:20px;margin-top:5px;flex:none}
.disc{font-size:14px;line-height:1.8;color:var(--muted);border-left:3px solid var(--gold2);padding-left:14px}
.disc b{color:var(--ink)}
.lives{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.life{border:1px solid var(--line);padding:12px 14px;background:var(--panel2);cursor:pointer;text-align:left;color:var(--ink);letter-spacing:0;font-size:15px}
.life b{display:block;font-size:17px}
.howto{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:760px){.howto{grid-template-columns:repeat(2,1fr)}}
.howto div{border-top:1px solid var(--line);padding-top:10px}
.howto b{display:block;color:var(--gold);font-size:28px;font-family:"Cormorant Garamond",serif;line-height:1}
/* 人物卡 */
.card{position:relative;width:min(300px,78vw);aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:#100c08;box-shadow:0 20px 50px rgba(0,0,0,.5);flex:none;container-type:inline-size}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card .ph{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,var(--eraC,#3a2a50),#07060c 75%)}
.card .ph span{font-size:44cqw;font-weight:900;color:rgba(255,236,200,.85);text-shadow:0 0 30px rgba(230,194,122,.4)}
.card .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,4,2,.82) 0%,rgba(6,4,2,.25) 18%,transparent 30%,transparent 55%,rgba(6,4,2,.82) 75%,rgba(6,4,2,.96) 100%)}
.card .halo{position:absolute;left:50%;top:36%;width:64%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(230,194,122,.55);box-shadow:0 0 30px rgba(230,194,122,.18)}
.card:has(img) .halo,.card.legacy .halo{display:none}
.card.plate{background:radial-gradient(circle at 50% 38%, rgba(230,194,122,.62), rgba(52,74,112,.42) 36%, #2a1c12 74%)}
.card figcaption,.art figcaption{position:absolute;left:8%;right:8%;top:42%;z-index:3;text-align:center;font-size:13px;letter-spacing:.14em;color:#f8f1e4}
.legacy-tag{position:absolute;top:8px;left:8px;z-index:3;font-style:normal;font-size:11px;letter-spacing:.12em;color:#1b1408;background:var(--gold);padding:0 6px}
#warp{position:fixed;inset:0;z-index:30;background:#02030a;color:var(--ink)}
#warp[hidden]{display:none}
#warp canvas{position:absolute;inset:0;width:100%;height:100%}
.warpUi{position:relative;z-index:1;min-height:100%;display:grid;place-content:center;text-align:center;gap:8px}
#warpLeft{font-size:64px;letter-spacing:.08em}
#scriptView{white-space:pre-wrap;max-height:320px;overflow:auto;font:14px/1.6 "Noto Serif SC",serif;background:rgba(0,0,0,.2);padding:12px}
.stagebg .art,.bgwrap .art{position:absolute;inset:0;margin:0}
.stagebg figcaption,.bgwrap figcaption{top:auto;bottom:8px;left:8px;right:auto;background:rgba(0,0,0,.45);padding:0 6px}
.card .fr{position:absolute;inset:3cqw;border:1.5px solid #d9b56a;border-radius:7px}
.card .fr::before{content:"";position:absolute;inset:4px;border:.5px solid rgba(217,181,106,.55);border-radius:5px}
.card .t{position:absolute;top:6cqw;left:6cqw;right:6cqw;text-align:center;color:#f6eedc;text-shadow:0 1px 4px #000}
.card .t small{display:block;font-family:"Cormorant Garamond",serif;letter-spacing:.2em;color:#e6c27a;font-size:max(10px,4cqw)}
.card .t b{display:block;font-size:max(16px,8cqw);letter-spacing:.1em;line-height:1.3}
.card .b{position:absolute;left:6cqw;right:6cqw;bottom:6cqw;text-align:center;color:#efe6d2;font-size:max(12px,4.4cqw);line-height:1.6;text-shadow:0 1px 4px #000}
.card .b i{display:block;font-style:normal;color:#e6c27a;font-size:max(11px,3.8cqw);margin-top:4px}
.flip{animation:flip .7s ease-out}
@keyframes flip{from{transform:perspective(900px) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.flip{animation:none}}
/* 揭示 */
.reveal{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;margin-top:20px}
@media(max-width:760px){.reveal{grid-template-columns:1fr;text-align:center}.reveal .card{margin:0 auto}}
.badge{display:inline-block;border:1px solid var(--gold);color:var(--gold);padding:2px 12px;font-size:14px;letter-spacing:.15em;margin:0 6px 6px 0}
.logline{font-size:20px;line-height:1.9}
/* 阶段 */
.prog{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin:6px 0 18px}
.prog div{font-size:12px;text-align:center;color:var(--faint);border-top:3px solid var(--line);padding-top:4px;line-height:1.4}
.prog div.done{border-color:var(--gold2);color:var(--muted)}
.prog div.cur{border-color:var(--gold);color:var(--ink);font-weight:700}
@media(max-width:640px){.prog div span{display:none}}
.stagehd{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}
.stagehd h2{font-size:clamp(28px,5vw,40px);letter-spacing:.12em}
.stagehd .meta{font-size:15px;color:var(--muted)}
.omen{display:flex;gap:12px;align-items:center;border:1px dashed var(--line);padding:8px 12px;margin:14px 0;font-size:15px;color:var(--muted)}
.omen .th{width:44px;aspect-ratio:3/4;border-radius:4px;overflow:hidden;flex:none;background:#151020;position:relative}
.omen .th img{width:100%;height:100%;object-fit:cover}
.plots{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:10px}
@media(max-width:700px){.plots{grid-template-columns:1fr}}
.plot{position:relative;text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--ink);padding:22px 20px 18px;letter-spacing:0;font-size:17px;line-height:1.85;border-radius:10px;display:flex;flex-direction:column;gap:8px;min-height:260px;transition:transform .2s,box-shadow .2s,border-color .2s}
.plot::before{content:"";position:absolute;inset:6px;border:.5px solid var(--line);border-radius:7px;pointer-events:none}
.plot:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 0 30px rgba(230,194,122,.25)}
.plot .tone{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.2em;color:var(--gold)}
.plot .tone svg{width:22px;height:22px}
.plot h3{font-size:24px;letter-spacing:.06em}
.plot .s{flex:1}
.plot .pred{display:flex;gap:14px;font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
.plot .pred b{color:var(--ink)}
.plot.sel{border-color:var(--gold);box-shadow:0 0 40px rgba(230,194,122,.35)}
.plot.off{opacity:.45;transform:none}
@media(max-width:700px){.plot{min-height:0}}
.moment{display:grid;grid-template-columns:1fr 1.3fr;gap:24px;align-items:start}
@media(max-width:800px){.moment{grid-template-columns:1fr}}
.bars div{display:grid;grid-template-columns:96px 1fr 34px;gap:10px;align-items:center;font-size:14px;margin:5px 0}
.bars i{display:block;height:8px;background:rgba(127,127,127,.25);border-radius:4px;overflow:hidden}
.bars i span{display:block;height:100%;background:linear-gradient(90deg,var(--gold2),var(--gold));border-radius:4px;transition:width .8s}
.bars em{font-style:normal;text-align:right;color:var(--muted)}
.chart svg{width:100%;height:auto;display:block}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.legend button{padding:3px 10px;font-size:13px;letter-spacing:.05em;background:transparent;color:var(--muted);border-color:var(--line)}
.legend button.on{color:var(--ink);border-color:var(--c)}
.legend button.on::before{content:"";display:inline-block;width:10px;height:3px;background:var(--c);margin-right:6px;vertical-align:middle}
.script{font-size:16px;line-height:1.9;color:var(--muted)}
.script b{color:var(--ink)}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px}
/* 片尾 */
.poster{text-align:center;padding:30px 20px 10px}
.poster h1{font-size:clamp(38px,8vw,72px);letter-spacing:.12em}
.rating{display:flex;justify-content:center;align-items:baseline;gap:14px;margin-top:10px}
.rating b{font-family:"Cormorant Garamond",serif;font-size:72px;line-height:1;color:var(--gold)}
.stars{font-size:22px;letter-spacing:4px;color:var(--gold)}
.book{max-width:720px;margin:0 auto;background:#f7f1e3;color:#211b14;padding:40px 46px;border-radius:4px;box-shadow:0 30px 60px rgba(0,0,0,.45);position:relative}
.book::before{content:"";position:absolute;inset:10px;border:1px solid rgba(143,103,22,.45);pointer-events:none}
.book h2{font-size:30px;letter-spacing:.14em;text-align:center}
.book .sub{text-align:center;color:#7a6440;font-size:14px;letter-spacing:.12em;margin-top:4px}
.book .txt{font-size:17px;line-height:2.05;text-align:justify;margin-top:20px;text-indent:2em}
.book .sig{text-align:right;color:#7a6440;font-size:14px;margin-top:14px}
@media(max-width:600px){.book{padding:30px 22px}}
footer{position:relative;z-index:1;max-width:1040px;margin:30px auto 0;padding:24px 20px 40px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.9;color:var(--muted)}
footer b{color:var(--ink)}
footer a{color:var(--gold)}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--panel2);color:var(--ink);border:1px solid var(--gold);padding:10px 18px;z-index:20;font-size:15px;max-width:90vw}
/* PDF 排版（屏幕外） */
#pdfStage{position:fixed;left:-99999px;top:0}
.pg{width:620px;height:877px;position:relative;overflow:hidden;font-family:"Noto Serif SC","Songti SC",serif}
.pg.cover{background:radial-gradient(420px 320px at 20% 15%,rgba(110,60,180,.45),transparent 70%),radial-gradient(380px 300px at 85% 35%,rgba(20,110,140,.35),transparent 70%),radial-gradient(500px 360px at 50% 110%,rgba(180,120,40,.35),transparent 70%),#05060e;color:#f4ecd8}
.pg.cover canvas.stars{position:absolute;inset:0}
.pg .frame{position:absolute;inset:18px;border:1px solid rgba(230,194,122,.6)}
.pg .frame::before{content:"";position:absolute;inset:6px;border:.5px solid rgba(230,194,122,.35)}
.pg.cover .portrait{position:absolute;left:160px;top:92px;width:300px;height:400px}
.pg.cover .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:150px 150px 8px 8px}
.pg.cover .portrait .ph{position:absolute;inset:0;border-radius:150px 150px 8px 8px;background:#1a1426;display:flex;align-items:center;justify-content:center}.pg.cover .portrait .ph span{font-size:150px;font-weight:900;color:#e6c27a;line-height:1}
.pg .eyebrow{position:absolute;top:44px;left:0;right:0;text-align:center;font-family:"Cormorant Garamond",serif;font-style:italic;letter-spacing:.3em;color:#e6c27a;font-size:16px}
.pg.cover .ttl{position:absolute;top:520px;left:40px;right:40px;text-align:center}
.pg.cover .ttl h1{font-size:46px;letter-spacing:.16em;color:#f6eedc}
.pg.cover .ttl p{color:#d9cfb8;font-size:16px;letter-spacing:.12em;margin-top:10px}
.pg.cover .foot{position:absolute;bottom:46px;left:0;right:0;text-align:center;font-size:13px;letter-spacing:.3em;color:#b9a77a}
.pg.inner{background:#f7f1e3;color:#211b14}
.pg.inner .frame{border-color:rgba(143,103,22,.5)}
.pg.inner .frame::before{border-color:rgba(143,103,22,.3)}
.pg.inner .hd{position:absolute;top:50px;left:56px;right:56px;text-align:center}
.pg.inner .hd h2{font-size:26px;letter-spacing:.2em}
.pg.inner .hd p{font-size:13px;color:#7a6440;letter-spacing:.1em;margin-top:6px}
.pg.inner .body{position:absolute;top:126px;left:56px;right:56px;font-size:14.5px;line-height:1.95;text-align:justify;text-indent:2em}
.pg.inner .curve{position:absolute;left:56px;right:56px;bottom:178px;height:110px}
.pg.inner .meta{position:absolute;left:56px;bottom:62px;width:360px;font-size:12.5px;line-height:1.8;color:#5b4a30}
.pg.inner .meta b{color:#211b14;font-size:14px}
.pg.inner .qr{position:absolute;right:56px;bottom:56px;width:100px;text-align:center;font-size:11px;color:#5b4a30;line-height:1.5}
.pg.inner .qr img{width:100px;height:100px;display:block;margin-bottom:4px;image-rendering:pixelated}

/* 新图位（图片上传后自动显示，缺图时隐藏） */
#sc-reveal,.poster{position:relative}
.bgwrap{position:absolute;inset:-20px -20px auto;height:420px;z-index:-1;overflow:hidden;border-radius:6px;pointer-events:none}
.bgwrap .bgimg{width:100%;height:100%;object-fit:cover;opacity:.35;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)}
.stagebg{height:0;overflow:hidden;border-radius:8px;margin-bottom:12px;position:relative}
.stagebg:has(img){height:clamp(140px,22vw,220px)}
.stagebg .bgimg{width:100%;height:100%;object-fit:cover;display:block}
.stagebg::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,var(--bg))}
.plot .qimg{width:calc(100% + 40px);margin:-22px -20px 6px;aspect-ratio:3/2;object-fit:cover;border-radius:10px 10px 0 0;display:block}
#poJ .jimg{width:140px;aspect-ratio:3/4;object-fit:cover;border-radius:8px;border:1px solid var(--gold);margin-top:12px}
.pg.cover .coverbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.en-lg{font-size:18px}
.center{text-align:center}
.panel-title{font-size:22px;letter-spacing:.1em}
.panel-title-sm{font-size:20px;letter-spacing:.1em}
#err{color:var(--rose);min-height:1.6em}
#go{font-size:20px;padding:14px 48px}
.note-sm{text-align:center;font-size:14px}
#pdfMsg{min-height:1.5em}
#rvName{font-size:clamp(30px,5vw,44px);letter-spacing:.1em;margin:8px 0}
#startFilm{margin-top:16px}
.body-md{font-size:16px}
.section-title{font-size:18px;letter-spacing:.1em;margin-bottom:6px}
.draft-title{font-size:16px;letter-spacing:.1em}
.chart-note{font-size:13px}
#poCritic{font-size:18px;margin-top:8px}
.book > .en{text-align:center;color:#8f6716}
.score-gold{color:#e6c27a}
.ink{color:var(--ink)}
canvas.stars{width:620px;height:877px}
canvas.curve{width:508px;height:110px}
canvas.portrait-draw{width:300px;height:400px}
.card.era-E01{--eraC:#5a3a1e}.card.era-E02{--eraC:#6a4a16}.card.era-E03{--eraC:#2e4a6a}.card.era-E04{--eraC:#6a2a24}.card.era-E05{--eraC:#3a3a4a}.card.era-E06{--eraC:#1e4a5a}.card.era-E07{--eraC:#4a1e2e}.card.era-E08{--eraC:#3a2e1e}.card.era-E09{--eraC:#3a3a32}.card.era-E10{--eraC:#5a2a4a}.card.era-E11{--eraC:#2a3a5a}.card.era-E12{--eraC:#1e3a5a}
.legend button.dim-0{--c:var(--blue)}.legend button.dim-1{--c:#ff8a7a}.legend button.dim-2{--c:#f2d27a}.legend button.dim-3{--c:#b48cff}.legend button.dim-4{--c:var(--gold)}.legend button.dim-5{--c:#ff9ec8}.legend button.dim-6{--c:#7fe0c0}.legend button.dim-7{--c:#9fd0ff}
.bars i span.bw-0{width:0%}.bars i span.bw-1{width:1%}.bars i span.bw-2{width:2%}.bars i span.bw-3{width:3%}.bars i span.bw-4{width:4%}.bars i span.bw-5{width:5%}.bars i span.bw-6{width:6%}.bars i span.bw-7{width:7%}.bars i span.bw-8{width:8%}.bars i span.bw-9{width:9%}.bars i span.bw-10{width:10%}.bars i span.bw-11{width:11%}.bars i span.bw-12{width:12%}.bars i span.bw-13{width:13%}.bars i span.bw-14{width:14%}.bars i span.bw-15{width:15%}.bars i span.bw-16{width:16%}.bars i span.bw-17{width:17%}.bars i span.bw-18{width:18%}.bars i span.bw-19{width:19%}.bars i span.bw-20{width:20%}.bars i span.bw-21{width:21%}.bars i span.bw-22{width:22%}.bars i span.bw-23{width:23%}.bars i span.bw-24{width:24%}.bars i span.bw-25{width:25%}.bars i span.bw-26{width:26%}.bars i span.bw-27{width:27%}.bars i span.bw-28{width:28%}.bars i span.bw-29{width:29%}.bars i span.bw-30{width:30%}.bars i span.bw-31{width:31%}.bars i span.bw-32{width:32%}.bars i span.bw-33{width:33%}.bars i span.bw-34{width:34%}.bars i span.bw-35{width:35%}.bars i span.bw-36{width:36%}.bars i span.bw-37{width:37%}.bars i span.bw-38{width:38%}.bars i span.bw-39{width:39%}.bars i span.bw-40{width:40%}.bars i span.bw-41{width:41%}.bars i span.bw-42{width:42%}.bars i span.bw-43{width:43%}.bars i span.bw-44{width:44%}.bars i span.bw-45{width:45%}.bars i span.bw-46{width:46%}.bars i span.bw-47{width:47%}.bars i span.bw-48{width:48%}.bars i span.bw-49{width:49%}.bars i span.bw-50{width:50%}.bars i span.bw-51{width:51%}.bars i span.bw-52{width:52%}.bars i span.bw-53{width:53%}.bars i span.bw-54{width:54%}.bars i span.bw-55{width:55%}.bars i span.bw-56{width:56%}.bars i span.bw-57{width:57%}.bars i span.bw-58{width:58%}.bars i span.bw-59{width:59%}.bars i span.bw-60{width:60%}.bars i span.bw-61{width:61%}.bars i span.bw-62{width:62%}.bars i span.bw-63{width:63%}.bars i span.bw-64{width:64%}.bars i span.bw-65{width:65%}.bars i span.bw-66{width:66%}.bars i span.bw-67{width:67%}.bars i span.bw-68{width:68%}.bars i span.bw-69{width:69%}.bars i span.bw-70{width:70%}.bars i span.bw-71{width:71%}.bars i span.bw-72{width:72%}.bars i span.bw-73{width:73%}.bars i span.bw-74{width:74%}.bars i span.bw-75{width:75%}.bars i span.bw-76{width:76%}.bars i span.bw-77{width:77%}.bars i span.bw-78{width:78%}.bars i span.bw-79{width:79%}.bars i span.bw-80{width:80%}.bars i span.bw-81{width:81%}.bars i span.bw-82{width:82%}.bars i span.bw-83{width:83%}.bars i span.bw-84{width:84%}.bars i span.bw-85{width:85%}.bars i span.bw-86{width:86%}.bars i span.bw-87{width:87%}.bars i span.bw-88{width:88%}.bars i span.bw-89{width:89%}.bars i span.bw-90{width:90%}.bars i span.bw-91{width:91%}.bars i span.bw-92{width:92%}.bars i span.bw-93{width:93%}.bars i span.bw-94{width:94%}.bars i span.bw-95{width:95%}.bars i span.bw-96{width:96%}.bars i span.bw-97{width:97%}.bars i span.bw-98{width:98%}.bars i span.bw-99{width:99%}.bars i span.bw-100{width:100%}
/* 2026-11-07 黑洞剧本基因层 */
.plot .gene{font-size:14px;line-height:1.75;color:var(--muted);border-left:2px solid var(--gold);padding:2px 0 2px 10px}
.plot .gene em{display:block;font-style:normal;font-size:12px;letter-spacing:.12em;color:var(--gold)}
.script .gx{font-size:14px;color:var(--faint)}
.book .saga{margin-top:26px;border-top:1px solid rgba(143,103,22,.35);padding-top:16px}
.book .saga h3{font-size:18px;letter-spacing:.16em;text-align:center;color:#7a6440;margin-bottom:10px}
.book .saga-row{display:flex;gap:12px;align-items:flex-start;margin:10px 0}
.book .saga-row figure{flex:none;width:72px;margin:0}
.book .saga-row .sgimg{width:72px;aspect-ratio:3/4;object-fit:cover;border-radius:4px;display:block}
.book .saga-row p,.book .saga-end{font-size:14.5px;line-height:1.85;margin:0}
.book .saga-end{margin-top:12px;color:#7a6440}
.pg.inner .body{font-size:12.6px;line-height:1.8}

.drama-view{white-space:pre-wrap;max-height:560px;overflow:auto;font:inherit;line-height:1.9;overflow-wrap:anywhere}#dramaProgress{width:100%;height:14px}button:disabled{opacity:.55;cursor:wait}
