:root{--bg:#15120f;--bg2:#201a14;--paper:#eee3ca;--gold:#cda85d;--gold2:#765925;--text:#eee6d9;--muted:#a79b86;--line:rgba(224,203,158,.17);--red:#7d2926;--dock:rgba(20,17,14,.96)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;min-height:100%;background:#0e0c0a;color:var(--text);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;overscroll-behavior:none}body{overflow-x:hidden;background:radial-gradient(circle at 50% -10%,rgba(153,113,47,.2),transparent 35%),linear-gradient(#17130f,#0c0b09)}button{font:inherit}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}#app{position:relative;z-index:3;width:100%;max-width:620px;margin:auto;min-height:100dvh}#topbar{position:fixed;z-index:30;top:0;left:50%;transform:translateX(-50%);width:min(100%,620px);height:calc(54px + env(safe-area-inset-top));padding:calc(7px + env(safe-area-inset-top)) 12px 7px;display:flex;align-items:center;gap:10px;background:linear-gradient(rgba(16,14,12,.96),rgba(16,14,12,.83));backdrop-filter:blur(16px);border-bottom:1px solid var(--line);transition:.25s}.hidden{opacity:0;pointer-events:none}.chapter-pill,.book-btn{height:36px;border:1px solid var(--line);background:rgba(255,255,255,.025);color:#cabd9f;padding:0 10px;font-size:11px;white-space:nowrap}.chapter-pill{max-width:92px;overflow:hidden;text-overflow:ellipsis}.book-btn{min-width:52px}.ep-wrap{min-width:0;flex:1;text-align:center;font-family:Georgia,"Songti SC",serif}.ep-wrap span{font-size:12px;color:var(--gold);letter-spacing:.1em}.prog{height:2px;margin-top:6px;background:rgba(255,255,255,.08);overflow:hidden}.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#6d5223,#d4b163);transition:width .6s cubic-bezier(.2,.8,.2,1)}#screen{min-height:100dvh}.cover{min-height:100dvh;padding:calc(34px + env(safe-area-inset-top)) 22px calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center}.cover-seal{width:64px;height:64px;border:1px solid #86332e;color:#b54f48;display:grid;place-items:center;font-family:"Songti SC",serif;font-size:26px;transform:rotate(-3deg);box-shadow:inset 0 0 0 5px rgba(125,41,38,.05);animation:sealBreath 4s ease-in-out infinite}.eyebrow{margin-top:24px;color:var(--gold);font-size:11px;letter-spacing:.24em}.cover h1{font-family:Georgia,"Songti SC",serif;font-weight:500;font-size:clamp(46px,13vw,68px);line-height:1;margin:9px 0 12px;letter-spacing:.04em}.cover h2{font-weight:400;font-size:18px;color:#d8ccb6;margin:0 0 24px}.cover-copy{font-family:Georgia,"Songti SC",serif;font-size:15px;line-height:1.95;color:#aa9d88;border-left:1px solid #6b5125;padding-left:14px;margin-bottom:28px}.primary,.secondary{width:100%;min-height:52px;border-radius:0}.primary{border:1px solid #a6813b;color:#241a0e;background:linear-gradient(180deg,#d8ba78,#af853a);font-weight:800;letter-spacing:.18em;box-shadow:0 8px 28px rgba(0,0,0,.2)}.secondary{margin-top:10px;border:1px solid var(--line);color:#c9bca5;background:rgba(255,255,255,.02)}.history{margin-top:15px;color:#746d61;font-size:11px}.story-shell{height:100dvh;padding-top:calc(54px + env(safe-area-inset-top));display:flex;flex-direction:column;overflow:hidden}.story-scroll{flex:1;overflow-y:auto;padding:20px 18px 24px;scrollbar-width:none}.story-scroll::-webkit-scrollbar{display:none}.chapter-mark{color:var(--gold);font-size:10px;letter-spacing:.14em;margin-bottom:8px}.scene-title{font-family:Georgia,"Songti SC",serif;font-size:31px;font-weight:500;line-height:1.16;margin:0 0 18px}.speaker{display:inline-flex;align-items:center;gap:7px;color:#bba987;font-size:11px;letter-spacing:.08em;margin-bottom:11px}.speaker:before{content:"";width:18px;height:1px;background:#725726}.story-text{white-space:pre-line;font-family:Georgia,"Songti SC",serif;font-size:18px;line-height:2;color:#ece4d7;letter-spacing:.015em}.echo{margin:18px 0 0;padding:12px 13px;border-left:2px solid #745724;background:rgba(188,149,75,.055);font-family:Georgia,"Songti SC",serif;font-size:13px;line-height:1.8;color:#ad9f89}.choice-dock{flex:0 0 auto;background:linear-gradient(transparent,rgba(20,17,14,.93) 18%,var(--dock) 42%);padding:24px 12px calc(10px + env(safe-area-inset-bottom));max-height:48dvh;overflow-y:auto}.choices{display:grid;gap:8px}.choice{position:relative;overflow:hidden;width:100%;min-height:54px;text-align:left;border:1px solid var(--line);background:linear-gradient(180deg,#272219,#1d1a15);color:#ebe2d2;padding:12px 14px;font-size:14px;line-height:1.45;display:flex;align-items:center;gap:10px;transition:transform .14s,opacity .2s,border-color .2s,background .2s}.choice:active{transform:scale(.992);background:#30291e}.choice.disabled{opacity:.33;filter:saturate(.4)}.choice .letter{flex:0 0 24px;color:var(--gold);font-family:Georgia,serif;font-size:12px}.choice.chosen{border-color:#bb9347;background:#352b1c}.choice.dim{opacity:.22}.auto-wrap{padding:0 12px calc(12px + env(safe-area-inset-bottom));background:var(--dock)}.auto-btn{width:100%;min-height:52px;border:1px solid #9b7634;background:linear-gradient(#d4b36e,#ad8237);color:#241b10;font-weight:800;letter-spacing:.15em}.chapter-card{margin:20px 0;border-top:1px solid #715525;border-bottom:1px solid #715525;padding:18px 0;color:#bbaa8e;font-family:Georgia,"Songti SC",serif;line-height:1.9}.drawer{position:fixed;inset:0;z-index:60;background:rgba(5,4,3,.64);display:none;align-items:flex-end}.drawer.open{display:flex}.drawer-card{width:100%;max-width:620px;margin:0 auto;max-height:82dvh;overflow:auto;background:#211c16;border-top:1px solid #775b2c;padding:8px 16px calc(20px + env(safe-area-inset-bottom));animation:sheetUp .26s ease-out}.grab{width:42px;height:3px;background:#6b6254;margin:2px auto 16px}.drawer h3{font-family:Georgia,"Songti SC",serif;font-size:25px;font-weight:500;margin:0 0 14px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{padding-bottom:8px;border-bottom:1px solid var(--line)}.stat b{display:block;font-size:11px;color:#c9ba9e;margin-bottom:6px}.bar{height:4px;background:#373028}.bar i{display:block;height:100%;background:#b78f49}.relations{margin-top:18px}.rel{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px;color:#b9ac96}.meta{font-size:12px;color:#918675;line-height:1.8;margin-top:16px}.journal-item{border-left:1px solid #6f5428;padding:5px 0 10px 12px;color:#aa9e8a;font-size:12px;line-height:1.6}.drawer-close{width:100%;height:48px;margin-top:16px;border:1px solid var(--line);background:transparent;color:#c6b9a2}.result{min-height:100dvh;padding:calc(34px + env(safe-area-inset-top)) 20px calc(34px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center}.result-ep{color:var(--gold);font-family:Georgia,serif;letter-spacing:.14em;font-size:12px}.result h1{font-family:Georgia,"Songti SC",serif;font-size:42px;line-height:1.1;font-weight:500;margin:10px 0 18px}.result-copy{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;font-family:Georgia,"Songti SC",serif;font-size:17px;line-height:1.9}.truth{margin:17px 0;padding:13px;border-left:2px solid var(--red);background:rgba(125,41,38,.08);color:#baa993;font-size:13px;line-height:1.7}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.tag{font-size:10px;border:1px solid var(--line);padding:5px 7px;color:#b3a58f}.ending-seal{width:78px;height:78px;border:2px solid #8d302b;color:#b94942;display:grid;place-items:center;font-size:32px;font-family:"Songti SC",serif;position:absolute;right:22px;top:30px;transform:rotate(8deg);animation:stamp .55s cubic-bezier(.2,1.3,.4,1) both}#ink{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;display:grid;place-items:center;background:#0b0907;transition:opacity .24s}#ink.active{opacity:1}.ink-orb{position:absolute;width:65vmax;height:65vmax;border-radius:50%;background:#19140f;filter:blur(6px);transform:scale(0)}#ink.active .a{animation:inkBloom .78s ease-out forwards}#ink.active .b{animation:inkBloom .82s .07s ease-out forwards;left:25%;top:18%}#inkLabel{position:relative;color:#cdb889;font-family:Georgia,"Songti SC",serif;font-size:19px;letter-spacing:.18em;opacity:0}#ink.active #inkLabel{animation:labelIn .7s .2s ease both}#toast{position:fixed;z-index:110;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,12px);max-width:86vw;background:rgba(25,21,17,.96);border:1px solid var(--line);color:#d4c7b1;padding:9px 12px;font-size:12px;opacity:0;pointer-events:none}#toast.show{animation:toast 2.3s ease both}#ambience{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.lantern{position:absolute;top:-22px;width:42px;height:74px;background:url('assets/lantern.svg') center/contain no-repeat;opacity:.55;transform-origin:50% 0;filter:drop-shadow(0 0 16px rgba(190,126,43,.2));animation:sway 6s ease-in-out infinite}.l1{left:4vw}.l2{right:5vw;animation-delay:-2.3s;transform:scale(.82)}.petal{position:absolute;top:-8vh;width:12px;height:12px;background:url('assets/petal.svg') center/contain no-repeat;opacity:var(--op);animation:fall var(--dur) var(--delay) linear infinite}.mist{position:absolute;width:70vw;height:20vh;border-radius:50%;background:rgba(200,186,156,.03);filter:blur(28px);animation:mist 16s ease-in-out infinite alternate}.m1{left:-20vw;top:28vh}.m2{right:-25vw;top:62vh;animation-delay:-8s}.scene-in{animation:sceneIn .42s ease-out both}.scene-out{animation:sceneOut .25s ease-in both}@keyframes sealBreath{50%{box-shadow:inset 0 0 0 5px rgba(125,41,38,.1),0 0 24px rgba(125,41,38,.1)}}@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}@keyframes inkBloom{to{transform:scale(2.2)}}@keyframes labelIn{0%{opacity:0;transform:translateY(8px)}35%,70%{opacity:1;transform:none}100%{opacity:0}}@keyframes toast{0%{opacity:0;transform:translate(-50%,12px)}15%,78%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-5px)}}@keyframes sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}@keyframes fall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}10%{opacity:var(--op)}100%{transform:translate3d(var(--drift),112vh,0) rotate(var(--rot));opacity:0}}@keyframes mist{to{transform:translateX(25vw) scale(1.2)}}@keyframes sceneIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes sceneOut{to{opacity:0;transform:translateY(-5px)}}@keyframes stamp{0%{opacity:0;transform:scale(1.8) rotate(18deg)}65%{opacity:1;transform:scale(.92) rotate(6deg)}100%{transform:scale(1) rotate(8deg)}}@media(max-height:680px){.story-scroll{padding-top:14px}.scene-title{font-size:27px;margin-bottom:12px}.story-text{font-size:16px;line-height:1.8}.choice{min-height:48px;padding:10px 12px}.choice-dock{max-height:52dvh}}@media(min-width:621px){#topbar{border-left:1px solid var(--line);border-right:1px solid var(--line)}.story-shell,.cover,.result{border-left:1px solid rgba(255,255,255,.025);border-right:1px solid rgba(255,255,255,.025)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
/* ===== v0.4 · fixed-story / codex / reveal / mobile overrides ===== */
.chapter-pill,.book-btn,.codex-btn{height:36px;border:1px solid var(--line);background:rgba(255,255,255,.025);color:#cabd9f;padding:0 9px;font-size:11px;white-space:nowrap;touch-action:manipulation}
.codex-btn{position:relative;min-width:46px}.book-btn{min-width:46px}.codex-dot{position:absolute;right:4px;top:4px;width:6px;height:6px;border-radius:50%;background:#d4a34e;box-shadow:0 0 8px rgba(212,163,78,.65)}
#topbar{gap:6px}.chapter-pill{max-width:78px;padding-inline:8px}.ep-wrap{min-width:64px}
.story-shell{height:100svh;height:100dvh}.cover,.result{min-height:100svh;min-height:100dvh}.story-scroll{padding:18px 18px 26px;touch-action:pan-y}
.episode-guide{margin:3px 0 17px;padding:10px 12px 11px;border-left:2px solid #8b6a31;background:linear-gradient(90deg,rgba(174,132,58,.09),transparent);animation:guideIn .45s ease-out both}
.episode-guide span{display:block;color:#9b7c42;font-size:9px;letter-spacing:.18em;margin-bottom:5px}.episode-guide p{margin:0;color:#c8baa1;font-family:Georgia,"Songti SC",serif;font-size:13px;line-height:1.7}
.scene-title{margin-bottom:16px}.story-text{white-space:normal;min-height:3em}.reveal-char,.reveal-token{opacity:0;animation:glyphIn .22s ease forwards}.reveal-token{animation-duration:.28s}.reveal-done .reveal-char,.reveal-done .reveal-token{opacity:1!important;animation:none!important}
.term-link{display:inline;padding:0 1px;margin:0;border:0;border-radius:0;background:transparent;color:#e0be78;font-family:inherit;font-size:inherit;line-height:inherit;vertical-align:baseline;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:rgba(224,190,120,.75);text-underline-offset:4px;text-decoration-thickness:1px;cursor:pointer;touch-action:manipulation}.term-link:active{color:#ffe2a4;background:rgba(202,161,83,.08)}
.tap-hint{text-align:right;margin:15px 0 2px;color:#5f584e;font-size:9px;letter-spacing:.06em;transition:opacity .25s}.reveal-done .tap-hint{opacity:0}
.continuity-note{margin:17px 0 0;padding:11px 12px;border-left:2px solid #664d28;background:rgba(179,140,70,.045);color:#a99b85;font-size:12px;line-height:1.75}
.reveal-wait{opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .34s ease,transform .34s ease}.dock-ready .reveal-wait{opacity:1;transform:none;pointer-events:auto}
.choice-dock{padding-top:20px;max-height:46dvh}.choice{min-height:56px;padding:12px 14px;touch-action:manipulation}.auto-wrap{padding-top:9px}.auto-btn{min-height:54px;touch-action:manipulation}

.aftermath-shell .story-scroll{padding-top:22px}.aftermath-label{display:inline-block;color:#9e7940;font-size:10px;letter-spacing:.2em;margin:5px 0 6px}.aftermath-title{font-size:36px;margin-bottom:17px}.choice-recap{margin:0 0 22px;padding:12px 13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#d7c9b1;font-family:Georgia,"Songti SC",serif;font-size:14px;line-height:1.7}.choice-recap small{display:block;color:#756a5b;font-size:9px;letter-spacing:.13em;margin-bottom:3px}.aftermath-text{color:#ded4c3}.episode-close-line{margin:24px 0 0;text-align:center;color:#7d715f;font-family:Georgia,"Songti SC",serif;font-size:11px;letter-spacing:.08em}

.codex-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.codex-head h3{margin-bottom:2px}.codex-head .meta{margin-top:0}.codex-count{font-family:Georgia,serif;color:#b99654;font-size:18px;padding-top:4px}.codex-list{margin-top:16px;border-top:1px solid var(--line)}.codex-item{width:100%;min-height:58px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#ddd0b9;padding:10px 2px;display:flex;justify-content:space-between;align-items:center;text-align:left;touch-action:manipulation}.codex-item b{display:block;font-family:Georgia,"Songti SC",serif;font-size:16px;font-weight:500}.codex-item small{display:block;color:#7f7463;font-size:10px;margin-top:3px}.update-badge{font-size:9px;color:#24190d;background:#cda85d;padding:3px 6px;letter-spacing:.08em}.chev{font-size:22px;color:#655b4d}.codex-locked{text-align:center;color:#675f55;font-size:10px;padding:16px 0 2px}.codex-back{border:0;background:transparent;color:#9c8355;padding:4px 0 13px;font-size:11px}.term-title{padding:3px 0 11px;border-bottom:1px solid var(--line)}.term-title span{color:#8e806d;font-size:10px;letter-spacing:.1em}.term-title h3{font-size:31px;margin:3px 0 0}.term-history{padding-top:5px}.term-stage{position:relative;margin:0;padding:17px 0 17px 17px;border-left:1px solid #514226}.term-stage:before{content:"";position:absolute;left:-4px;top:22px;width:7px;height:7px;border-radius:50%;background:#5f4b29}.term-stage.latest:before{background:#c69d4f;box-shadow:0 0 10px rgba(198,157,79,.4)}.term-stage-ep{font-size:9px;color:#7e725f;letter-spacing:.08em}.term-stage-ep em{font-style:normal;margin-left:7px;color:#c09a55}.term-stage h4{margin:5px 0 7px;font-family:Georgia,"Songti SC",serif;font-size:16px;font-weight:500;color:#d7c9b0}.term-stage p{margin:0;color:#a99d89;font-family:Georgia,"Songti SC",serif;font-size:13px;line-height:1.85}.drawer-intro{margin-top:-7px;margin-bottom:14px}

.ending-poem{margin:19px 0 4px;padding:17px 4px 16px;text-align:center;border-top:1px solid rgba(205,168,93,.22);border-bottom:1px solid rgba(205,168,93,.22);font-family:Georgia,"Songti SC",serif;color:#cfbea0;line-height:2}.poem-title{color:#9f7d43;font-size:12px;letter-spacing:.16em;margin-bottom:7px}.ending-poem>div:not(.poem-title){font-size:15px;letter-spacing:.08em}

/* fast, oversized episode transition */
#ink{background:#0a0806;transition:opacity .16s}.episode-card{position:relative;z-index:3;width:min(88vw,520px);text-align:center;padding:22px 12px;transform:scale(.7);opacity:0}#ink.active .episode-card{animation:episodeBurst .72s cubic-bezier(.16,.84,.27,1) both}
#inkKicker{color:#7f6a45;font-size:10px;letter-spacing:.2em;margin-bottom:7px}#inkLabel{position:static;opacity:1;color:#d6b469;font-family:Georgia,"Songti SC",serif;font-size:clamp(50px,16vw,78px);line-height:1;letter-spacing:.04em;text-shadow:0 8px 32px rgba(0,0,0,.5);animation:none!important}#inkGuide{max-width:31em;margin:13px auto 0;color:#a89980;font-family:Georgia,"Songti SC",serif;font-size:12px;line-height:1.7;min-height:1.7em}
#ink.active .a{animation:inkBloomV4 .6s ease-out forwards}#ink.active .b{animation:inkBloomV4 .64s .03s ease-out forwards}

@keyframes glyphIn{from{opacity:0;filter:blur(2px);transform:translateY(2px)}to{opacity:1;filter:none;transform:none}}
@keyframes guideIn{from{opacity:0;transform:translateX(-7px)}to{opacity:1;transform:none}}
@keyframes episodeBurst{0%{opacity:0;transform:scale(.62)}32%{opacity:1;transform:scale(1.055)}70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.035)}}
@keyframes inkBloomV4{to{transform:scale(2.35)}}

@media(max-width:380px){#topbar{padding-left:8px;padding-right:8px;gap:4px}.chapter-pill{max-width:68px;font-size:10px}.book-btn,.codex-btn{min-width:42px;padding-inline:7px}.ep-wrap span{font-size:11px}.story-scroll{padding-left:15px;padding-right:15px}.story-text{font-size:17px;line-height:1.92}.scene-title{font-size:29px}.choice-dock{padding-left:9px;padding-right:9px}.choice{font-size:13px;min-height:54px}.drawer-card{padding-left:14px;padding-right:14px}}
@media(max-height:680px){.episode-guide{margin-bottom:11px;padding-block:8px}.episode-guide p{font-size:12px}.story-scroll{padding-top:12px}.story-text{font-size:16px;line-height:1.82}.choice-dock{max-height:50dvh}.aftermath-title{font-size:31px}.choice-recap{margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){.reveal-char,.reveal-token{opacity:1!important;animation:none!important}.reveal-wait{opacity:1!important;transform:none!important;pointer-events:auto!important}}

/* ===== v0.5 · continuous episode flow / chapter interludes / hidden stats ===== */
.story-shell{height:auto;min-height:100dvh;padding-bottom:20px}.story-scroll{height:auto;min-height:calc(100dvh - 56px);overflow:visible;padding-bottom:32px}.choice-zone{margin:26px -4px 0;padding:14px 0 4px;border-top:1px solid rgba(205,168,93,.14)}.choices{gap:10px}.choice{min-height:58px}.choice.dim{opacity:.24;pointer-events:none}.choice.chosen{border-color:#aa8241;background:linear-gradient(180deg,#30281c,#211b14);box-shadow:0 0 0 1px rgba(200,160,83,.08) inset}.inline-aftermath{margin:28px -2px 0;padding:22px 2px 4px;border-top:1px solid rgba(205,168,93,.34);animation:afterRise .48s ease both}.inline-aftermath .aftermath-label{margin-top:0}.next-inline{width:100%;min-height:56px;margin-top:20px;border:1px solid #98743a;background:linear-gradient(#c9a65c,#9d7636);color:#19120a;font-weight:800;letter-spacing:.15em}.inline-ending{position:relative;margin:34px -2px 0;padding:32px 0 14px;border-top:1px solid rgba(167,61,51,.45);animation:endingRise .7s ease both}.inline-ending .ending-seal{margin-left:auto;margin-right:auto}.inline-ending h2{font-family:Georgia,"Songti SC",serif;font-size:36px;font-weight:500;text-align:center;margin:12px 0 18px}.inline-ending .result-ep{text-align:center}.inline-ending .primary,.inline-ending .secondary{width:100%;margin-top:10px}.term-speaker{display:block;width:max-content;border:0;background:transparent;padding:0;color:#aa8c55;text-decoration:underline dotted rgba(224,190,120,.5);text-underline-offset:4px;box-shadow:none}
#veil{position:fixed;inset:0;z-index:70;background:#100d09;opacity:0;pointer-events:none;transition:opacity .17s}#veil.active{opacity:.88}
.chapter-stage{position:fixed;inset:0;z-index:120;background:#0b0907;display:flex;align-items:center;justify-content:center;overflow:hidden}.chapter-stage.hidden{display:none}.chapter-door{position:absolute;top:0;bottom:0;width:52%;background:linear-gradient(90deg,#0d0a07,#21160d 50%,#080605);box-shadow:inset 0 0 70px rgba(0,0,0,.75);z-index:2}.chapter-door.left{left:0;transform-origin:left center}.chapter-door.right{right:0;transform-origin:right center}.chapter-stage.active .left{animation:doorLeft 2.6s cubic-bezier(.55,.02,.18,1) both}.chapter-stage.active .right{animation:doorRight 2.6s cubic-bezier(.55,.02,.18,1) both}.chapter-smoke{position:absolute;width:85vw;height:85vw;border-radius:50%;filter:blur(35px);background:radial-gradient(circle,rgba(174,125,55,.13),transparent 65%);opacity:0;z-index:3}.chapter-stage.active .s1{animation:smokeA 5s ease-in-out infinite}.chapter-stage.active .s2{animation:smokeB 6s 1s ease-in-out infinite}.chapter-card{position:relative;z-index:5;width:min(86vw,520px);text-align:center;padding:20px 12px;opacity:0;transform:translateY(16px)}.chapter-stage.active .chapter-card{animation:chapterCardIn 1s .85s ease forwards}.chapter-index{font-size:11px;letter-spacing:.32em;color:#9b7c43}.chapter-card h2{font-family:Georgia,"Songti SC",serif;font-weight:500;font-size:clamp(46px,14vw,72px);margin:9px 0 12px;color:#e0cfac;letter-spacing:.06em}.chapter-lead{font-family:Georgia,"Songti SC",serif;color:#9f8f74;font-size:13px;letter-spacing:.08em}.chapter-rule{height:1px;width:0;background:linear-gradient(90deg,transparent,#b28743,transparent);margin:22px auto}.chapter-stage.active .chapter-rule{animation:ruleGrow 1s 1.25s ease forwards}.chapter-guide{margin:0 auto;color:#c8b99c;font-family:Georgia,"Songti SC",serif;font-size:15px;line-height:1.95;max-width:30em;opacity:0}.chapter-stage.active .chapter-guide{animation:guideFade 1s 1.55s ease forwards}.chapter-continue{width:100%;max-width:300px;min-height:54px;margin:24px auto 0;border:1px solid #8f6c34;background:rgba(183,139,62,.08);color:#c7a665;letter-spacing:.28em;opacity:0;transform:translateY(8px);pointer-events:none;transition:.55s}.chapter-continue.ready{opacity:1;transform:none;pointer-events:auto}.chapter-stage.leaving{animation:chapterOut .62s ease forwards}.identity-card{margin:16px 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.identity-name{font-family:Georgia,"Songti SC",serif;font-size:28px;color:#dfcfb2;margin-bottom:13px}.identity-row{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-top:1px solid rgba(255,255,255,.045);font-size:12px}.identity-row span{color:#807361}.identity-row b{font-weight:500;color:#c9baa2;text-align:right}.episode-guide{display:none!important}
@keyframes afterRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes endingRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}@keyframes doorLeft{0%{transform:translateX(0)}40%{transform:translateX(-4%)}100%{transform:translateX(-72%) rotateY(-12deg)}}@keyframes doorRight{0%{transform:translateX(0)}40%{transform:translateX(4%)}100%{transform:translateX(72%) rotateY(12deg)}}@keyframes smokeA{0%{opacity:0;transform:translate(-22%,-12%) scale(.8)}50%{opacity:1;transform:translate(10%,6%) scale(1.2)}100%{opacity:0;transform:translate(28%,18%) scale(1.35)}}@keyframes smokeB{0%{opacity:0;transform:translate(25%,18%) scale(.8)}50%{opacity:.85;transform:translate(-8%,-5%) scale(1.15)}100%{opacity:0;transform:translate(-30%,-22%) scale(1.3)}}@keyframes chapterCardIn{to{opacity:1;transform:none}}@keyframes ruleGrow{to{width:78%}}@keyframes guideFade{to{opacity:1}}@keyframes chapterOut{to{opacity:0;transform:scale(1.035)}}
@media(max-width:420px){.story-scroll{padding:16px 15px 28px}.scene-title{font-size:30px}.story-text{font-size:17px;line-height:1.94}.choice-zone{margin-top:22px}.choice{font-size:13px;line-height:1.5;padding:12px;min-height:56px}.inline-aftermath{margin-top:24px}.chapter-card h2{font-size:52px}.chapter-guide{font-size:14px;line-height:1.9}.identity-name{font-size:25px}}
@media(max-height:680px){.chapter-card{padding-top:8px}.chapter-card h2{font-size:44px;margin:6px 0 8px}.chapter-rule{margin:14px auto}.chapter-guide{font-size:13px;line-height:1.75}.chapter-continue{margin-top:16px}.story-scroll{padding-top:12px}.story-text{font-size:16px;line-height:1.82}}


/* v0.6 — fixed choice dock, spoiler-safe codex, clean stage transitions */
#screen{opacity:1;transition:opacity .34s ease;will-change:opacity}
#screen.stage-hidden{opacity:0;pointer-events:none}
.story-shell{height:100dvh;min-height:100dvh;padding-top:calc(54px + env(safe-area-inset-top));padding-bottom:0;display:flex;flex-direction:column;overflow:hidden}
.story-scroll{flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;overscroll-behavior:contain;padding:18px 17px 34px;scrollbar-width:none}
.story-scroll::-webkit-scrollbar{display:none}
.choice-dock{position:relative;flex:0 0 auto;z-index:12;width:100%;max-height:46dvh;overflow-y:auto;overscroll-behavior:contain;padding:10px 11px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(15,13,11,.76),rgba(18,15,12,.985) 22%);border-top:1px solid rgba(205,168,93,.22);box-shadow:0 -18px 36px rgba(5,4,3,.22);backdrop-filter:blur(18px);transition:max-height .35s ease,padding .35s ease,opacity .3s ease}
.dock-caption{font-size:9px;letter-spacing:.18em;color:#76694f;text-align:center;margin:0 0 7px}
.story-shell:not(.dock-ready) .choice-dock{opacity:.22;pointer-events:none}
.choice-dock.resolved{max-height:76px;overflow:hidden;padding-top:8px}
.choice-dock.resolved .dock-caption{display:none}
.choice-dock.resolved .choice{display:none}
.choice-dock.resolved .choice.chosen{display:flex;min-height:52px;opacity:.72;border-color:rgba(205,168,93,.32);background:#1d1913;pointer-events:none}
.choice-dock.ending-hide{max-height:0;padding-top:0;padding-bottom:0;border-top:0;opacity:0}
.auto-wrap{flex:0 0 auto;margin:0;padding:10px 11px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(15,13,11,.72),rgba(18,15,12,.985));border-top:1px solid rgba(205,168,93,.2)}
.auto-btn{min-height:54px;width:100%}
.inline-aftermath{margin-top:30px;padding-bottom:20px}
.next-inline{margin-bottom:4px}
#veil{background:#0c0907;transition:opacity .21s ease}#veil.active{opacity:1}
.chapter-stage{background:#090705}
.chapter-stage.active~*{}
.term-stage-ep{display:flex;align-items:center;gap:7px}
.term-stage-ep em{margin-left:0}
@media(max-width:420px){.story-scroll{padding:14px 15px 28px}.choice-dock{max-height:48dvh;padding-left:9px;padding-right:9px}.choice{min-height:54px;padding:11px 12px}.choice-dock.resolved{max-height:72px}}
@media(max-height:680px){.choice-dock{max-height:50dvh}.choice{min-height:50px;padding-top:9px;padding-bottom:9px}.story-scroll{padding-top:11px}.choice-dock.resolved{max-height:66px}}
