:root{--paper:#f3ecdf;--ink:#2a2622;--ink-soft:#2a2622b8;--ink-faint:#2a262280;--seal:#a8322b;--glass:#f6f0e4a8;--glass-strong:#f8f3e9eb;--glass-line:#5a46322e;--pine:#3f5748;--pine-hi:#4a6453;--cream:#f7f1e3;--panel:#f8f4ead6;--panel-line:#fffdf5a8;--panel-shadow:0 10px 34px #222a2024;--edge:28px;--bar-gap:22px;--dock:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--serif:"Kaiti SC", "STKaiti", "KaiTi", "BiauKai", "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--serif);color:var(--ink);-webkit-tap-highlight-color:transparent;background:#cfd6d6;margin:0;overflow:hidden}canvas#c{width:100vw;height:100vh;touch-action:none;outline:none;height:100dvh;display:block;position:fixed;inset:0}.hidden,body:not(.journey) .journey-only,body.journey .idle-only{display:none!important}#load{z-index:9;text-align:center;background:radial-gradient(at 50% 45%,#f6f0e4 0%,#e6dccb 70%,#d8ccb6 100%);align-content:center;place-items:center;gap:22px;padding:24px;transition:opacity 1.2s;display:grid;position:fixed;inset:0}#load .seal{aspect-ratio:1;width:min(128px,30vw);margin:0 auto;position:relative}#load svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}#load .track{fill:none;stroke:#503c281a;stroke-width:2px}#load .ring{fill:none;stroke:var(--seal);stroke-width:3.2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:.985px;transition:stroke-dashoffset .5s cubic-bezier(.3,.7,.2,1)}#load .glyph{color:var(--seal);place-items:center;font-size:clamp(34px,9vw,48px);display:grid;position:absolute;inset:0}#load .hint{letter-spacing:.35em;color:var(--ink-soft);margin:0;font-size:15px}#loadErr{max-width:30em}#loadErr p{letter-spacing:.06em;color:#5a2a22;margin:0 0 14px;font-size:15px;line-height:1.9}.noscript{text-align:center;position:fixed;inset:auto 0 40%}#ui{pointer-events:none;z-index:3;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>#title,#ui>#caption,#ui>#cut,#ui>#dip,#ui>#toast,#ui>#bottom{pointer-events:none}#title{top:var(--edge);writing-mode:vertical-rl;text-orientation:upright;-webkit-backdrop-filter:blur(6px);text-shadow:0 0 14px #fffaf0cc;background:#f6f0e480;border-radius:14px;padding:16px 10px;transition:opacity 1.4s;position:absolute;right:30px}#title h1{letter-spacing:.28em;color:var(--ink);margin:0;font-size:clamp(24px,2.8vw,36px);font-weight:600}#title h1 span{color:var(--seal);margin:.2em 0}#title p{letter-spacing:.3em;color:var(--ink-soft);margin:0 10px 0 0;font-size:13px}body.journey #title{opacity:0}#caption{--cap-t:92px;--cap-b:calc(var(--bar-gap) + var(--dock) + 16px);--cap-py:14px;left:var(--edge);top:var(--cap-t);bottom:var(--cap-b);opacity:0;align-items:center;transition:opacity .9s;display:flex;position:absolute}#caption.on{opacity:1}#caption .paper{max-height:100%;padding:var(--cap-py) 9px;-webkit-backdrop-filter:blur(7px);background:#f6f0e49e;border:1px solid #5a46321f;border-radius:14px;flex-direction:row-reverse;gap:12px;transition:background .9s;display:flex}#caption .orig,#caption .gloss{writing-mode:vertical-rl;max-height:calc(100vh - var(--cap-t) - var(--cap-b) - 2 * var(--cap-py) - 2px);max-height:calc(100dvh - var(--cap-t) - var(--cap-b) - 2 * var(--cap-py) - 2px)}#caption .orig{letter-spacing:.2em;color:#1f1b17;text-shadow:0 0 6px #fffbf3cc;font-size:clamp(17px,1.55vw,21px);line-height:1.75}#caption .gloss{letter-spacing:.12em;color:#3a332c;opacity:.92;font-size:13px;line-height:1.85}#caption.dark .paper{background:#18151275;border-color:#fff0dc1a}body[data-cap=orig] #caption .gloss,body[data-cap=gloss] #caption .orig{display:none}body[data-cap=gloss] #caption .gloss{opacity:1;letter-spacing:.16em;font-size:16px}#caption.dark .orig,#caption.dark .gloss{color:#f4ecdd;text-shadow:0 0 8px #0009}.cl{opacity:.5;transition:opacity .45s}.cl.now{opacity:1}.kw{all:unset;pointer-events:auto;cursor:pointer;border-left:1px dotted #a8322bbf;padding-left:1px}.kw:hover,.kw:focus-visible{color:#7c231d;border-left-style:solid}#caption.dark .kw:hover{color:#ffd9cf}button{font-family:var(--serif);cursor:pointer;border:1px solid var(--glass-line);background:var(--glass);color:var(--ink);-webkit-backdrop-filter:blur(8px);letter-spacing:.12em;touch-action:manipulation;border-radius:999px;padding:8px 14px;font-size:15px;transition:background .2s,color .2s}button:hover{background:#faf6ece6}button:focus-visible,[role=slider]:focus-visible{outline:2px solid var(--seal);outline-offset:2px}button[aria-pressed=true],button.accent{color:#7c231d;border-color:#a8322b73}button.float{padding:6px 14px;font-size:14px;position:absolute}button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}#bottom{left:var(--edge);right:var(--edge);bottom:calc(var(--bar-gap) + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:14px;display:flex;position:absolute}#dockRow{justify-content:space-between;align-items:flex-end;gap:20px;width:100%;display:flex}body.journey #dockRow{justify-content:center}#scenesWrap{flex-direction:column;flex:0 auto;align-items:flex-start;gap:9px;min-width:0;display:flex}#scenes,#controls{pointer-events:auto}#sceneNote{-webkit-backdrop-filter:blur(10px);background:#f8f4eaa3;border:1px solid #fffdf580;border-radius:12px;max-width:min(470px,70vw);padding:14px 20px 13px;transition:opacity .8s,transform .8s;box-shadow:0 8px 28px #222a2014}#sceneNote.off{opacity:0;transform:translateY(8px)}#sceneNo{letter-spacing:.18em;color:var(--ink-faint);margin-bottom:9px;font:11px/1 Georgia,Times New Roman,serif}#sceneName{letter-spacing:.24em;margin:0 0 8px;font-size:23px;font-weight:600;line-height:1.2}#sceneQuote{letter-spacing:.1em;color:var(--ink-soft);margin:0;font-size:14px;line-height:1.75}#scenes{overscroll-behavior-x:contain;scrollbar-width:none;background:var(--panel);border:1px solid var(--panel-line);max-width:100%;box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(14px);border-radius:12px;padding:0 6px;display:flex;overflow-x:auto}#scenes::-webkit-scrollbar{display:none}#scenes.more-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),#0000)}#scenes.more-l{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 44px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 44px),#0000)}#scenes.more-l.more-r{-webkit-mask-image:linear-gradient(90deg,#0000,#000 44px calc(100% - 44px),#0000);mask-image:linear-gradient(90deg,#0000,#000 44px calc(100% - 44px),#0000)}#scenes button{-webkit-backdrop-filter:none;letter-spacing:0;background:0 0;border:none;border-radius:0;flex-direction:column;flex:none;align-items:flex-start;gap:8px;padding:14px 17px 13px;display:flex;position:relative}#scenes button:hover{background:0 0}#scenes .idx{letter-spacing:.16em;color:var(--ink-faint);font:10.5px/1 Georgia,Times New Roman,serif;transition:color .3s}#scenes .label{letter-spacing:.1em;white-space:nowrap;font-size:15px;line-height:1;transition:color .3s}#scenes button:hover .label{color:#7c231d}#scenes button:after{content:"";background:var(--seal);border-radius:1px;height:2px;transition:transform .4s;position:absolute;bottom:0;left:17px;right:17px;transform:scaleX(0)}#scenes button.on:after{transform:scaleX(1)}#scenes button.on .label{color:#8e2a23}#scenes button.on .idx{color:#8e2a23bf}#scenes button+button:before{content:"";background:#5a463229;width:1px;height:20px;margin-top:-10px;position:absolute;top:50%;left:0}#scenes button:focus-visible{outline-offset:-4px;border-radius:10px}#lookHint{letter-spacing:.14em;max-width:100%;color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;-webkit-backdrop-filter:blur(6px);background:#f6f0e480;border-radius:999px;margin:0;padding:2px 12px;font-size:12px;line-height:1.7;transition:opacity 1.2s;overflow:hidden}#lookHint.off{opacity:0}#controls{flex:none;align-items:center;gap:12px;display:flex}#bar{justify-content:space-between;align-items:center;gap:10px;display:flex}#bar .transport,#bar .tools{align-items:center;gap:2px;display:flex}body:not(.journey) #bar .tools{background:var(--panel);border:1px solid var(--panel-line);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(14px);border-radius:999px;padding:4px 6px}#bar button{letter-spacing:.1em;white-space:nowrap;-webkit-backdrop-filter:none;background:0 0;border:none;border-radius:999px;padding:7px 12px;font-size:14.5px}#bar button:hover{background:#fff9}#bar button.icon{place-items:center;width:36px;height:36px;padding:0;display:inline-grid}#bar svg{width:20px;height:20px}#btnMore svg{fill:currentColor;stroke:none}#btnVoice[aria-pressed=true]{background:var(--pine);color:var(--cream)}#btnVoice[aria-pressed=true]:hover{background:var(--pine-hi)}#btnJourney{letter-spacing:.32em;background:var(--pine);color:var(--cream);-webkit-backdrop-filter:none;border:1px solid #fffaeb38;border-radius:10px;align-items:center;gap:16px;padding:14px 20px 14px 26px;font-size:17px;display:inline-flex;box-shadow:0 10px 28px #1c2c2247}#btnJourney:hover{background:var(--pine-hi)}#btnJourney svg{stroke-width:1.5px;width:20px;height:20px;transition:transform .3s}#btnJourney:hover svg{transform:translate(3px)}body.journey #controls{background:var(--panel);border:1px solid var(--panel-line);width:min(680px,100%);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(16px);border-radius:16px;flex-direction:column;align-items:stretch;gap:7px;padding:12px 18px 10px}#playerTop{align-items:baseline;gap:12px;min-width:0;padding:0 2px;display:flex}#chapNo{letter-spacing:.14em;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap;font:12px/1 Georgia,Times New Roman,serif}#chapName{letter-spacing:.24em;white-space:nowrap;font-size:17px;line-height:1.2}#clock{letter-spacing:.08em;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font:12px/1 Georgia,Times New Roman,serif}#bar #btnPlay{background:var(--pine);width:44px;height:44px;color:var(--cream);border:none;border-radius:50%;place-items:center;margin:0 6px;padding:0;transition:background .2s,box-shadow .3s;display:inline-grid;box-shadow:0 5px 16px #1c2c2242}#bar #btnPlay:hover{background:var(--pine-hi)}#btnPlay svg{width:20px;height:20px}#btnPlay .i-pause{stroke-width:2.4px}#btnPlay .i-play{fill:currentColor;stroke-width:1.4px;transform:translate(1px)}#btnPlay[data-state=pause] .i-play,#btnPlay[data-state=play] .i-pause{display:none}#bar #btnPlay[data-state=play]{box-shadow:0 0 0 5px #3f574829,0 5px 16px #1c2c2242}#btnPrev svg,#btnNext svg{fill:currentColor;stroke-width:1.5px;width:17px;height:17px}#btnExit{color:var(--ink-soft)}#progress{cursor:pointer;touch-action:none;width:100%;height:18px;position:relative}#progress:before,#progressFill{content:"";border-radius:2px;height:3px;position:absolute;top:7.5px;left:0}#progress:before{background:#3c2d1e24;right:0}#progressFill{background:var(--seal);width:0}#progressKnob{background:var(--seal);border-radius:50%;width:11px;height:11px;margin-left:-5.5px;transition:transform .2s;position:absolute;top:3.5px;left:0;box-shadow:0 0 0 3px #fffcf5f2,0 1px 4px #3c1e144d}#progress:hover #progressKnob,#progress.scrub #progressKnob{transform:scale(1.25)}#ticks{position:absolute;inset:0}#ticks i{z-index:1;background:#3c2d1e4d;width:1px;height:6px;position:absolute;top:6px}#scrubTip{letter-spacing:.15em;white-space:nowrap;background:var(--glass-strong);border:1px solid var(--glass-line);opacity:0;pointer-events:none;border-radius:999px;padding:3px 9px;font-size:12px;transition:opacity .2s;position:absolute;bottom:22px;transform:translate(-50%)}#progress.scrub #scrubTip,#progress:hover #scrubTip{opacity:1}#holdTip{left:50%;bottom:calc(var(--bar-gap) + var(--dock) + 14px + env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--panel-line);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(12px);letter-spacing:.16em;color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:6px 8px 6px 18px;font-size:14px;display:flex;position:absolute;transform:translate(-50%)}#holdTip button{padding:5px 14px;font-size:14px}#btnGoOn{background:var(--pine);color:var(--cream);border-color:#0000}#btnGoOn:hover{background:var(--pine-hi)}#btnRecenter{right:var(--edge);bottom:calc(var(--bar-gap) + var(--dock) + 14px + env(safe-area-inset-bottom));background:var(--panel)}.pop{z-index:4;left:50%;bottom:calc(var(--bar-gap) + var(--dock) + 12px + env(safe-area-inset-bottom));background:var(--glass-strong);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);border-radius:14px;max-width:calc(100vw - 24px);padding:12px 14px;position:absolute;transform:translate(-50%);box-shadow:0 10px 30px #3c281424}#morePanel{overscroll-behavior:contain;width:min(420px,100vw - 24px);overflow-y:auto}.opt{letter-spacing:.12em;justify-content:space-between;align-items:center;gap:12px;padding:5px 2px;font-size:14px;display:flex}.opt>span{color:var(--ink-soft);white-space:nowrap}.seg{border:1px solid var(--glass-line);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{letter-spacing:.08em;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;padding:5px 11px;font-size:13px}.seg button+button{border-left:1px solid var(--glass-line)}.seg button.on{background:var(--pine);color:var(--cream)}.acts{border-top:1px solid var(--glass-line);flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;display:flex}.acts button{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff6;padding:6px 12px;font-size:13px}.sheet{z-index:5;background:var(--glass-strong);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(12px);border-radius:16px;flex-direction:column;width:min(420px,100vw - 32px);display:flex;position:absolute;top:16px;bottom:16px;right:16px;overflow:hidden;box-shadow:0 16px 40px #3c281429}.sheet header{border-bottom:1px solid var(--glass-line);align-items:baseline;gap:12px;padding:16px 18px 10px;display:flex}.sheet h2{letter-spacing:.3em;margin:0;font-size:19px;font-weight:600}.sheet .sub{color:var(--ink-faint);letter-spacing:.15em;font-size:12px}.sheet .x,#card .x{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;margin-left:auto;padding:4px 8px;font-size:20px;line-height:1}#tocList{counter-reset:ch;margin:0;padding:8px 8px 16px;list-style:none;overflow-y:auto}#tocList button{all:unset;box-sizing:border-box;cursor:pointer;border-radius:10px;grid-template-columns:2.6em 1fr;gap:2px 8px;width:100%;padding:8px 10px;display:grid}#tocList button:hover,#tocList button:focus-visible{background:#fff9}#tocList button:focus-visible{outline:2px solid var(--seal)}#tocList li.now button{background:#a8322b14}#tocList .n{color:var(--ink-faint);letter-spacing:.1em;grid-row:span 2;padding-top:4px;font-size:12px}#tocList li.now .n{color:var(--seal)}#tocList .o{letter-spacing:.1em;font-size:16px;line-height:1.7}#tocList .g{color:var(--ink-soft);letter-spacing:.04em;font-size:12.5px;line-height:1.7}body[data-cap=orig] #tocList .g{display:none}.help{letter-spacing:.05em;padding:6px 20px 20px;font-size:14px;line-height:1.85;overflow-y:auto}.help h3{letter-spacing:.2em;color:#7c231d;margin:14px 0 4px;font-size:15px;font-weight:600}.help p{margin:4px 0}.help table{border-collapse:collapse;width:100%}.help th{text-align:left;white-space:nowrap;vertical-align:top;color:var(--ink-soft);padding:3px 12px 3px 0;font-weight:400}.help td{padding:3px 0}.help .fine{color:var(--ink-faint);margin-top:14px;font-size:12px}#word{width:max-content;max-width:min(300px,100vw - 24px);padding:10px 14px;top:0;bottom:auto;left:0;transform:none}#word b{letter-spacing:.2em;color:#7c231d;margin-bottom:2px;font-size:16px;display:block}#word p{letter-spacing:.05em;margin:0;font-size:13.5px;line-height:1.8}#card{z-index:4;right:var(--edge);bottom:calc(var(--bar-gap) + var(--dock) + 18px + env(safe-area-inset-bottom));background:var(--glass-strong);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);border-radius:14px;width:min(320px,100vw - 32px);padding:14px 16px 12px;position:absolute;box-shadow:0 10px 30px #3c281424}#card .x{position:absolute;top:6px;right:6px}#card h3{letter-spacing:.3em;color:#7c231d;margin:0 0 6px;font-size:17px;font-weight:600}#card .o{letter-spacing:.08em;margin:0 0 6px;font-size:15.5px;line-height:1.8}#card .n{color:var(--ink-soft);letter-spacing:.04em;margin:0;font-size:13px;line-height:1.8}#toast{color:#f6efe2;letter-spacing:.06em;opacity:0;background:#28221cdb;border-radius:12px;max-width:min(520px,100vw - 32px);padding:9px 18px;font-size:14px;line-height:1.7;transition:opacity .35s,transform .35s;position:absolute;top:22px;left:50%;transform:translate(-50%,-8px)}#toast.on{opacity:1;transform:translate(-50%)}body.bare #ui>:not(#cut):not(#dip){display:none!important}#btnShowUI{z-index:6;opacity:.45;padding:5px 12px;font-size:12px;position:fixed;top:12px;right:12px}#btnShowUI:hover,#btnShowUI:focus-visible{opacity:1}#cut{background:#f3ecdf00;place-items:center;transition:background 1.2s;display:grid;position:absolute;inset:0}#cut.on{background:#f3ecdf}#cutText{writing-mode:vertical-rl;color:var(--ink);opacity:0;letter-spacing:.3em;flex-direction:row-reverse;align-items:flex-start;gap:30px;max-height:80vh;font-size:clamp(22px,2.6vw,32px);transition:opacity 1s .4s;display:flex}#cut.on #cutText{opacity:1}#cut.on .kw{pointer-events:auto}#cutText .co{line-height:1.8}#cutText .cg{letter-spacing:.16em;color:var(--ink-soft);max-height:50vh;margin-top:3.2em;font-size:14px;line-height:2}body[data-cap=orig] #cutText .cg{display:none}#dip{background:var(--paper);opacity:0;position:absolute;inset:0}#dip.dark{background:#080706}@media (max-width:720px){:root{--edge:14px;--bar-gap:12px}#title{top:14px;right:14px}#title h1{font-size:24px}#title p{font-size:12px}#caption{--cap-t:64px;--cap-py:10px}#caption .paper{padding:var(--cap-py) 6px;border-radius:12px;gap:8px}#caption .orig{letter-spacing:.14em;font-size:17px}#caption .gloss{font-size:12.5px}#bottom{gap:10px}#dockRow{flex-direction:column-reverse;align-items:stretch;gap:10px}#scenesWrap{align-items:stretch;gap:7px;width:100%}#scenes{width:100%;padding:0 2px}#scenes button{align-items:center;gap:6px;padding:11px 12px 10px}#scenes .label{letter-spacing:.04em;font-size:13.5px}#scenes .idx{font-size:9.5px}#scenes button:after{left:10px;right:10px}#lookHint{letter-spacing:.06em;align-self:center;font-size:11px}body:not(.journey) #controls{align-self:flex-end;gap:8px}#bar button{letter-spacing:.04em;padding:6px 9px;font-size:13.5px}#bar button.icon{width:32px;height:32px}#btnJourney{letter-spacing:.22em;gap:10px;padding:11px 14px 11px 18px;font-size:16px}#sceneNote{max-width:88%;padding:11px 15px 10px}#sceneName{margin-bottom:6px;font-size:19px}#sceneQuote{letter-spacing:.06em;font-size:12.5px}body.journey #controls{border-radius:14px;gap:5px;width:100%;padding:10px 12px 7px}#chapName{letter-spacing:.16em;font-size:15px}#bar #btnPlay{width:40px;height:40px;margin:0 2px}#holdTip{letter-spacing:.08em;font-size:13px}#btnRecenter{bottom:calc(var(--bar-gap) + var(--dock) + 62px + env(safe-area-inset-bottom))}.sheet{width:auto;height:min(74vh,640px);inset:auto 8px 8px}#card{width:auto;inset:12px 12px auto}.opt{flex-wrap:wrap}}@media (max-height:480px){#card{max-height:calc(100vh - var(--dock) - 60px);top:12px;bottom:auto;overflow:auto}#caption{--cap-t:12px}#bottom{gap:8px}#sceneNote{padding:8px 14px}#sceneNo{margin-bottom:6px}#sceneName{margin:0;font-size:17px}#sceneQuote{display:none}#scenes button{gap:6px;padding:10px 13px 9px}#btnJourney{padding:10px 14px 10px 18px}body.journey #controls{gap:3px;padding:7px 14px 5px}#bar #btnPlay{width:36px;height:36px}#bar button.icon{width:30px;height:30px}#bar button{padding:5px 9px}}@media (prefers-reduced-motion:reduce){#load .ring,#caption,.cl,#toast,#cut,#cutText,#title,#lookHint,#sceneNote,#scenes button:after,#progressKnob{transition-duration:10ms!important;transition-delay:0s!important}}body.reduce :is(#load .ring,#caption,.cl,#toast,#cut,#cutText,#title,#lookHint,#sceneNote,#progressKnob){transition-duration:10ms!important;transition-delay:0s!important}body.reduce #scenes button:after{transition-duration:10ms!important}
