
.art-pending{height:100%;display:flex;align-items:center;justify-content:center;gap:30px;padding:58px 35px 55px;background:#221829}.art-pending>img{width:27%;height:auto;max-height:85%;object-fit:contain;box-shadow:8px 10px 0 #100a19}.art-pending>div{max-width:50%}.art-pending strong{font-family:Georgia,serif;font-weight:normal;font-size:clamp(1.6rem,3vw,2.7rem);display:block;color:#efcda5;margin:8px 0}.art-pending p{font-family:Georgia,serif;font-size:clamp(.8rem,1.2vw,1.1rem);color:#cbb5c6;line-height:1.7}.art-pending small{display:block;margin-top:22px;font-size:.68rem;line-height:1.8;color:#b59fb8}.art-pending .tiny-label{font-size:.58rem;letter-spacing:.08em}@media(max-width:670px){.art-pending{gap:19px;padding:44px 20px 40px}.art-pending small{margin-top:10px;font-size:.57rem}.art-pending strong{font-size:1.6rem;margin:5px 0}.art-pending .tiny-label{display:none}}
:root{color-scheme:dark;--bg:#12101c;--surface:#1b1626;--surface2:#241c31;--line:#493247;--pink:#f387b4;--rose:#d34f8b;--cyan:#82d6ce;--gold:#e0b377;--text:#eee4e9;--muted:#b9a8bc;--reader-size:1.18rem;font-size:16px;font-family:ui-monospace,'SFMono-Regular','PingFang SC','Microsoft YaHei',monospace;line-height:1.6}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer;border:1px solid transparent;background:none;font-size:.88rem;line-height:1.5}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button:not(:disabled):hover{filter:brightness(1.2)}button{transition:background .16s,color .16s}a{color:var(--cyan)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button.selected{color:var(--pink);background:#f387b417;border-color:#8e466c}.tiny-label{font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.app-shell{max-width:1800px;margin:auto;padding:0 34px}.topbar{min-height:102px;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;color:var(--text);text-decoration:none;flex-shrink:0}.brand-mark{position:relative;color:var(--pink);font-size:2rem;line-height:1.1;font-weight:bold;letter-spacing:-.15em;border:2px solid #6a3657;padding:1px 9px 4px 4px;box-shadow:3px 3px 0 #372334}.brand-mark span{color:var(--cyan)}.brand strong{display:block;font-size:1.06rem;letter-spacing:.18em}.brand small{color:var(--muted);font-size:.77rem;letter-spacing:.5em}.header-book{display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line);padding-left:28px;font-size:.85rem}.header-book i{color:var(--muted);font-style:normal}.header-actions{display:flex;align-items:center;gap:17px;margin-left:auto}.quiet-button{padding:7px 3px;color:var(--muted)}.outline-button{border:1px solid #6a435e;padding:9px 14px;background:#281c2c}.outline-button span{margin-left:12px;color:var(--pink)}.game-layout{display:grid;grid-template-columns:190px minmax(0,1fr) 272px;gap:27px;padding-top:29px;align-items:start}.night-sidebar{padding:4px 0 0}.open-sign{display:inline-flex;gap:9px;align-items:center;color:var(--cyan);font-size:.75rem;letter-spacing:.12em;margin-bottom:28px}.open-sign>span,.status-dot,.visitor-dot{width:6px;height:6px;display:inline-block;background:var(--cyan);box-shadow:0 0 9px #82d6ce77}.night-sidebar h1{font-family:'Songti SC','Noto Serif CJK SC',serif;font-size:1.8rem;font-weight:500;letter-spacing:.1em;margin:10px 0 14px}.night-subtitle{color:var(--muted);font-size:.87rem;line-height:1.9}.night-rule{height:1px;background:linear-gradient(90deg,var(--line),transparent);margin:26px 0}.chapter-name{font-size:.85rem;font-weight:500;margin:8px 0 18px}.chapter-route{margin:0 0 28px;padding:0;list-style:none;position:relative}.chapter-route:before{content:'';position:absolute;left:8px;top:12px;bottom:12px;width:1px;background:var(--line)}.chapter-route li{position:relative;margin-bottom:11px;display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--muted)}.chapter-route button{text-align:left;padding:0;line-height:1.7;font-size:.78rem}.route-dot{display:inline-flex;align-items:center;justify-content:center;z-index:1;flex:0 0 17px;height:17px;background:var(--bg);border:1px solid var(--line);font-size:.7rem;color:var(--muted)}.chapter-route .current{color:var(--pink)}.chapter-route .current .route-dot{border-color:var(--pink)}.chapter-route .read .route-dot{background:#263638;color:var(--cyan);border-color:#527b75}.sidebar-book{display:flex;gap:11px;border-top:1px solid var(--line);padding-top:21px;align-items:start}.sidebar-book img{width:51px;height:78px;object-fit:cover;opacity:.85;box-shadow:3px 4px 0 #08070d}.sidebar-book strong{font-size:.75rem;display:block;color:var(--gold)}.sidebar-book span{display:block;font-size:.68rem;color:var(--muted);line-height:1.7;margin:4px 0}.text-button{color:var(--muted);font-size:.76rem;padding:0}.source-note{font-size:.7rem;color:var(--muted);margin-top:19px;line-height:1.9}.source-note>span{color:#98839b}.story-column{min-width:0}.scene-frame{aspect-ratio:1.6;position:relative;background:#21192b;border:1px solid #593d57;overflow:hidden;box-shadow:0 0 0 5px #191320,0 13px 38px #05030930}.scene-art{height:100%;width:100%;display:block;object-fit:cover;object-position:40% center;image-rendering:pixelated}.scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#100b1c88 0,transparent 25%,transparent 72%,#120b1caf 100%)}.scene-topline{position:absolute;inset:17px 20px auto;display:flex;justify-content:space-between;align-items:center;font-size:.72rem;text-shadow:0 1px 3px #000;gap:8px}.scene-topline b{color:var(--pink);font-size:.9rem;margin-right:7px}.weather{color:#c2b2cf}.scene-caption{position:absolute;left:22px;bottom:18px;display:flex;gap:10px;align-items:center}.scene-caption>span:nth-child(2){font-size:1.1rem}.scene-caption small{font-size:.7rem;color:#dac9d4}.visitor-dot{background:var(--pink);box-shadow:0 0 8px var(--rose)}.ambient-lines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#00000008 4px);pointer-events:none}.dialogue-box{margin-top:17px;background:#201826;border:1px solid #63405b;box-shadow:3px 3px 0 #0a0710;min-height:233px;padding:19px 24px 14px;position:relative}.dialogue-box:before{content:'';position:absolute;width:28px;height:3px;background:var(--pink);top:-2px;left:24px}.dialogue-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}.dialogue-heading>span:first-child{color:var(--pink);font-size:.95rem;font-weight:600}.dialogue-heading .tiny-label{font-size:.69rem;color:#b39cb5;letter-spacing:0}.dialogue-text{font-family:'PingFang SC','Microsoft YaHei',sans-serif;font-size:1.04rem;line-height:1.95;min-height:65px;white-space:pre-line;letter-spacing:.02em}.dialogue-footer{margin-top:16px;display:flex;gap:12px;align-items:center;justify-content:space-between}.dialogue-footer>span{font-size:.73rem;color:var(--muted)}.advance-button{color:var(--pink);font-size:.87rem;min-height:38px;padding:7px 10px}.advance-button>span{margin-left:19px}.choices{display:grid;gap:7px;margin-top:12px}.choices:empty{display:none}.choice{display:flex;text-align:left;border:1px solid #5c405a;background:#2a1d30;padding:10px 13px;font-size:.88rem;gap:12px}.choice:before{content:'›';color:var(--pink)}.choice:hover{border-color:var(--pink)}.story-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;color:var(--muted);font-size:.69rem}.story-bottom .status-dot{width:4px;height:4px;margin-right:5px}.story-bottom .text-button{font-size:.69rem}.mix-panel{border:1px solid var(--line);padding:17px 17px 0;background:#1b1522}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:17px}.panel-heading h2{font-size:.95rem;font-weight:500;letter-spacing:.13em}.panel-heading>span{font-size:.62rem;color:var(--muted);letter-spacing:.04em}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs>button{width:50%;color:var(--muted);font-size:.8rem;padding:8px}.tabs>button[aria-selected=true]{color:var(--pink);border-bottom:2px solid var(--pink);background:#392239}.order-note{font-size:.8rem;line-height:1.9;color:#c7b6c9;border-left:2px solid #865376;padding-left:11px;margin-top:20px;min-height:51px}.glass-stage{height:133px;display:grid;place-items:center;position:relative}.glass{height:81px;width:62px;border:2px solid #c0a8c4;border-top:3px solid #e8d2e5;position:relative;transform:perspective(120px) rotateX(-8deg);overflow:hidden;box-shadow:inset 4px 0 #ffffff0c,4px 0 #0003;z-index:1}.glass:after{content:'';position:absolute;inset:5px auto 5px 5px;width:4px;background:#e0b9d01a}.glass-liquid{position:absolute;bottom:0;left:0;right:0;height:0;transition:height .4s,background .4s;background:var(--gold);opacity:.75}.ice{position:absolute;border:1px solid #e1d9f357;background:#e1d9f315;width:23px;height:21px;top:40px;left:5px;transform:rotate(-15deg)}.ice-two{left:30px;top:48px;transform:rotate(12deg)}.glass-shadow{position:absolute;bottom:13px;width:100px;height:12px;background:#09060fa6;border-radius:50%}.mix-count{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-bottom:12px}.mix-count>span:first-child{color:var(--gold)}.ingredients{display:flex;flex-direction:column;gap:7px}.ingredient{width:100%;display:flex;align-items:center;gap:10px;background:#251c30;border:1px solid #453044;padding:9px 10px}.bottle{display:block;height:23px;width:11px;background:var(--ingredient);position:relative;box-shadow:inset 3px 0 #fff2}.bottle:before{content:'';position:absolute;top:-4px;left:3px;height:5px;width:5px;background:var(--ingredient)}.ingredient>span:nth-child(2){text-align:left;font-size:.81rem;flex:1}.ingredient small{color:var(--muted);font-size:.65rem;display:block}.ingredient em{font-style:normal;color:var(--ingredient);font-size:.85rem}.ingredient b{font-weight:normal;color:var(--muted)}.method-label{margin-top:19px;font-size:.7rem;letter-spacing:0}.methods{display:flex;gap:7px;margin-top:8px}.methods button{font-size:.75rem;width:50%;padding:8px 2px;border:1px solid #52374c}.methods button.selected{border-color:#aa5680}.mix-actions{display:flex;gap:10px;margin:17px 0 20px}.mix-actions .quiet-button{font-size:.75rem;width:45px}.serve-button{flex:1;background:#ca6192;color:#160e1b;padding:10px 6px;font-size:.88rem;font-weight:600;border:1px solid #ffafd1;box-shadow:2px 2px 0 #53304c}.recipe-intro{font-size:.8rem;color:var(--muted);line-height:1.9;padding:18px 0}.recipe{display:flex;gap:10px;padding:14px 0;border-top:1px solid var(--line)}.recipe h3{font-size:.87rem;color:var(--text);font-weight:500}.recipe p{font-size:.73rem;color:var(--muted);line-height:1.9;margin-top:5px}.recipe small{font-size:.7rem;display:block;line-height:1.7;margin-top:6px;color:#b29bb8}.recipe-symbol{font-size:1.3rem}.amber{color:var(--gold)}.pink{color:var(--pink)}.cyan{color:var(--cyan)}.recipe-footnote{font-size:.7rem;line-height:1.8;color:var(--muted);margin:12px 0 24px}.jukebox{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:17px 0;min-height:78px}.jukebox div{min-width:0}.jukebox div span{font-size:.61rem;letter-spacing:.1em;color:var(--pink);display:block}.jukebox strong{font-size:.69rem;font-weight:400;display:block;margin:4px 0}.jukebox small{font-size:.6rem;color:var(--muted)}.equalizer{display:flex;gap:3px;height:25px;align-items:end}.equalizer i{display:block;background:var(--rose);width:3px;height:8px}.equalizer i:nth-child(2){height:17px}.equalizer i:nth-child(3){height:25px}.equalizer i:nth-child(4){height:14px}.equalizer i:nth-child(5){height:20px}.sound-on .equalizer i{animation:pulse 1.8s ease-in-out infinite alternate}.sound-on .equalizer i:nth-child(even){animation-delay:-.7s}@keyframes pulse{to{height:5px;opacity:.4}}.app-footer{display:flex;gap:18px;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;margin-top:26px;color:#ac98b0;font-size:.65rem}.app-footer i{font-style:normal;color:#60435c;padding:0 8px}
dialog{color:var(--text);background:#17121f;border:1px solid #72425f;padding:0;box-shadow:0 22px 100px #000a;max-height:94dvh}dialog::backdrop{background:#07040ad9;backdrop-filter:blur(7px)}.reader-dialog{width:min(1240px,94vw);max-width:94vw;height:90dvh}.reader-shell{display:flex;flex-direction:column;height:100%}.reader-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 26px;border-bottom:1px solid var(--line);background:#211829}.reader-header h2{font-family:Georgia,'Songti SC',serif;font-size:1.22rem;font-weight:400;line-height:1.4;margin-top:3px}.reader-eyebrow{font-size:.7rem}.reader-tools{display:flex;gap:8px;flex-shrink:0;align-items:center}.reader-tools>button:not(.outline-button){min-width:37px;padding:8px 2px;color:var(--muted)}.reader-body{display:flex;flex:1;overflow:hidden;min-height:0}.book-toc{width:245px;flex-shrink:0;overflow:auto;border-right:1px solid var(--line);padding:15px 10px;background:#1c1524}.book-toc button{display:block;width:100%;text-align:left;font-size:.77rem;line-height:1.6;padding:10px 12px;color:var(--muted);border-left:2px solid transparent}.book-toc button[aria-current=true]{color:var(--pink);background:#392239;border-left-color:var(--pink)}.book-toc button span{display:block;font-size:.65rem;color:var(--cyan);margin-top:2px}.reading-column{flex:1;padding:28px 54px 35px;overflow:auto;scroll-behavior:smooth;min-width:0;background:#201b25}.source-location{font-size:.75rem;color:var(--gold);border-bottom:1px solid #51404e;margin-bottom:24px;padding-bottom:15px}.source-text{font-family:Georgia,'Songti SC',serif;font-size:var(--reader-size);line-height:1.9;color:#e8e0da;overflow-wrap:anywhere}.source-text p,.source-text div,.source-text blockquote{font-size:inherit;line-height:inherit;color:inherit;text-indent:0;max-width:100%;height:auto;float:none}.source-text p{margin:.9em 0}.source-text p:first-child{margin-top:0}.source-text h2,.source-text h3,.source-text h4{font-family:Georgia,serif;line-height:1.4;color:#f1d9bf;font-weight:normal;break-after:avoid}.source-text h2{font-size:1.5em;margin:0 0 1.4em}.source-text h3{font-size:1.22em;margin:1.8em 0 1em}.source-text h4{font-size:1em;margin:1.4em 0 .7em;letter-spacing:.07em}.source-text span,.source-text em,.source-text a{font-size:inherit;line-height:inherit}.source-text em{font-style:italic}.source-text blockquote{margin:1em 0;padding:0 0 0 1.2em;border-left:2px solid #765665}.source-text h2 blockquote{border:0;padding:0;margin:0}.source-text img{max-width:100%;height:auto;object-fit:contain;display:inline-block}.source-text svg{max-width:100%;height:auto}.source-text a{color:var(--cyan);text-decoration:underline}.source-text :target{outline:2px solid var(--gold);outline-offset:4px}.source-text .calibre7:empty{display:none}.reader-end{margin-top:45px;border-top:1px solid #51404e;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.reader-end>span{font-size:.78rem;color:var(--muted)}.primary-button{background:#ce6698;border:1px solid #ffb0d2;color:#1a101d;padding:10px 18px;font-weight:500;flex-shrink:0}.reader-footer{display:flex;justify-content:space-between;align-items:center;padding:13px 25px;border-top:1px solid var(--line);font-size:.73rem;color:var(--muted);gap:14px}.history-dialog{width:min(720px,92vw);max-width:92vw;padding:24px}.history-dialog header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.history-dialog h2{font-size:1.1rem;font-weight:400}.history-entry{border-bottom:1px solid #392b3d;padding:18px 0}.history-entry strong{font-size:.82rem;color:var(--pink);font-weight:500}.history-entry p{margin-top:5px;font-family:'PingFang SC',sans-serif;font-size:.95rem;line-height:1.9;white-space:pre-line}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#322036;border:1px solid var(--pink);padding:12px 20px;box-shadow:0 6px 40px #0008;font-size:.84rem;max-width:90vw;z-index:20}.reading-mode .book-toc{display:none}.reading-mode .reading-column{padding-left:max(28px,calc((100% - 760px)/2));padding-right:max(28px,calc((100% - 760px)/2))}.reader-header .tiny-label{font-size:.68rem}.source-text .calibre1{max-width:100%}.translation-text{margin-top:35px;border-top:1px solid var(--line);padding-top:25px;font-family:'PingFang SC',sans-serif;line-height:1.9;font-size:var(--reader-size)}
@media(min-width:1600px){.game-layout{grid-template-columns:205px minmax(0,1fr) 292px;gap:32px}.scene-frame{aspect-ratio:1.75}.dialogue-box{min-height:235px}.app-shell{padding:0 44px}}
@media(max-width:1190px){.app-shell{padding:0 22px}.game-layout{grid-template-columns:155px minmax(0,1fr) 244px;gap:19px}.header-book{display:none}.topbar{gap:20px;min-height:88px}.night-sidebar h1{font-size:1.55rem}.sidebar-book{display:block}.sidebar-book img{float:left;margin-right:10px}.source-note{clear:both}.scene-frame{aspect-ratio:1.4}.dialogue-box{padding:17px 19px}.mix-panel{padding:15px 13px 0}.panel-heading>span{font-size:.57rem}.header-actions{gap:15px}}
@media(max-width:960px){.game-layout{grid-template-columns:minmax(0,1fr) 245px}.night-sidebar{display:none}.scene-frame{aspect-ratio:1.5}.topbar{min-height:84px}.brand strong{font-size:.9rem}.header-actions{gap:12px}.header-actions .quiet-button{font-size:.77rem}.header-actions .outline-button{font-size:.77rem}.reader-tools{gap:3px}.reader-header{padding:16px 19px}.book-toc{width:190px}.reading-column{padding:25px 30px}.reader-end{align-items:flex-start;flex-direction:column}.app-footer>span:last-child{display:none}}
@media(max-width:670px){.app-shell{padding:0 13px}.topbar{padding:15px 0;min-height:0;flex-wrap:wrap;gap:13px}.brand strong{font-size:.94rem}.brand small{font-size:.65rem}.brand-mark{font-size:1.7rem}.header-actions{width:100%;justify-content:space-between;gap:9px;margin:0}.header-actions button{min-height:37px}.header-actions .outline-button{padding:7px 12px}.game-layout{grid-template-columns:minmax(0,1fr);padding-top:20px;gap:20px}.scene-frame{aspect-ratio:1.6}.scene-topline{inset:12px 14px auto;font-size:.68rem}.scene-caption{left:15px;bottom:12px}.scene-caption small{font-size:.65rem}.dialogue-box{margin-top:12px;padding:17px 17px 12px;min-height:226px}.dialogue-text{font-size:1rem}.dialogue-footer>span{font-size:.67rem}.story-bottom{font-size:.63rem;flex-wrap:wrap;gap:8px}.story-bottom .text-button{font-size:.63rem}.mix-panel{padding:17px 18px 0}.glass-stage{height:115px}.ingredients{flex-direction:row;gap:7px}.ingredient{flex-direction:column;gap:7px;padding:13px 5px;min-height:107px}.ingredient>span:nth-child(2){text-align:center}.ingredient b{display:none}.ingredient small{font-size:.61rem}.ingredient em{font-size:.8rem}.order-note{min-height:0}.jukebox{padding:14px 0}.app-footer{margin-top:22px;padding:16px 0;flex-wrap:wrap;gap:4px}.app-footer>span{font-size:.61rem}.reader-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0}.reader-header{flex-direction:column;align-items:stretch;gap:9px;padding:15px}.reader-header h2{font-size:1.12rem}.reader-tools{justify-content:flex-end}.reader-tools button{font-size:.75rem}.reader-body{flex-direction:column}.book-toc{width:100%;height:111px;flex-shrink:0;border:0;border-bottom:1px solid var(--line);display:flex;overflow:auto;padding:7px;gap:4px}.book-toc button{min-width:162px;max-width:200px;flex-shrink:0;font-size:.73rem;border-left:0;border-bottom:2px solid transparent;padding:6px 10px}.book-toc button[aria-current=true]{border-left:0;border-bottom-color:var(--pink)}.reading-column,.reading-mode .reading-column{padding:22px 21px 30px}.reader-footer{padding:12px 14px;font-size:.65rem}.reader-footer .text-button{font-size:.7rem}.reader-end{margin-top:30px}.source-text{line-height:1.85}.history-dialog{padding:18px}.history-dialog h2{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Reading-first layout. The book stays mounted while the bar is used. */
.app-shell{max-width:1720px;padding:0 28px}
.topbar{min-height:82px;gap:24px}
.reading-layout{grid-template-columns:174px minmax(0,1fr) 258px;gap:24px;padding-top:22px}
.night-sidebar{max-height:calc(100dvh - 122px);overflow:auto;scrollbar-width:thin}
.night-sidebar .open-sign{margin-bottom:24px}
.night-sidebar .night-rule{margin:24px 0 18px}
.night-sidebar .tiny-label{font-size:.68rem}
.chapter-route{margin:16px 0 25px;max-height:36dvh;overflow:auto;scrollbar-width:thin}
.chapter-route li{align-items:baseline}
.sidebar-book{display:flex}.sidebar-book img{float:none;margin:0}
.reading-main{height:calc(100dvh - 122px);min-height:440px;display:flex;flex-direction:column;min-width:0}
.opening-note{display:flex;align-items:center;gap:20px;justify-content:space-between;background:#261c2a;border-left:2px solid #af6189;margin-bottom:14px;padding:13px 17px;flex-shrink:0}
.opening-note .tiny-label{font-size:.64rem;color:var(--pink);letter-spacing:.04em}
.opening-note p{font-family:'PingFang SC',sans-serif;font-size:.85rem;line-height:1.8;white-space:pre-line;margin-top:4px;color:#d4c3d1}
.opening-note button{white-space:nowrap;color:var(--pink);font-size:.72rem}
.reader-card{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid #57404e;background:#201b25;box-shadow:0 14px 48px #0002}
.reading-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 22px;background:#211928;border-bottom:1px solid #45333f;flex-shrink:0}
.reading-toolbar>div:first-child{min-width:0}
.reading-toolbar .tiny-label{font-size:.58rem;letter-spacing:.08em;color:#b69dad;display:block}
.reading-location{display:block;font-family:Georgia,serif;font-size:.88rem;line-height:1.5;color:#dcc6cf;margin-top:3px}
.reader-tools{gap:6px}
.reader-tools>button:not(.outline-button){min-width:30px;padding:5px 2px;font-family:Georgia,serif}
.reader-tools .outline-button{padding:6px 9px;font-size:.7rem;color:#dcc2d2}
.reading-column{min-height:0;flex:1;padding:32px 42px 35px;overflow:auto;scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:#68515e #201b25;overscroll-behavior:contain}
.reading-column:focus-visible{outline:1px solid #806379;outline-offset:-3px}
.source-text{max-width:68ch;margin:0 auto;line-height:1.95;color:#e7ddd7}
.source-text .book-block{margin:0;padding:0;display:flow-root}
.source-text .book-block>p{margin:.65em 0}
.source-text h2{font-size:1.5em;line-height:1.45;margin:.2em 0 1.25em;color:#e4c4a3}
.source-text h3{margin:1.6em 0 .8em;font-size:1.2em;color:#e4c4a3}
.source-text .book-block>div.calibre7{height:.4em}
.source-text img{max-height:70dvh}
.reader-end{max-width:68ch;margin:42px auto 0;padding-top:24px;align-items:center;flex-direction:row;flex-wrap:wrap}
.reader-end .tiny-label{font-size:.67rem;color:#c0a4b8}
.reader-end p{font-size:.72rem;color:var(--muted);margin-top:5px;line-height:1.8}
.reader-end .primary-button{font-size:.8rem;padding:10px 14px}
.reader-footer{padding:11px 20px;font-size:.65rem;flex-shrink:0;background:#211928}
.reader-footer .text-button{font-size:.72rem;min-height:28px}
.story-bottom{margin-top:9px;font-size:.6rem;flex-shrink:0}
.companion-notes{max-width:68ch;margin:28px auto 0;border-top:1px solid #493744;padding-top:18px;font-family:'PingFang SC',sans-serif}
.companion-notes summary{cursor:pointer;font-size:.82rem;color:#cbb1c3;line-height:1.8;list-style-position:inside}
.companion-notes>summary>span{font-size:.66rem;color:#a78eaa;margin-left:10px}
.companion-scene{margin-top:16px;padding:14px;background:#291f2e;border:1px solid #493745}
.companion-scene summary{color:var(--pink)}
.companion-scene p{font-size:.87rem;line-height:1.95;white-space:pre-line;margin:13px 0 0}
.companion-scene .choice{font-size:.79rem;line-height:1.8}
.companion-scene .choice[aria-pressed=true]{border-color:var(--pink);background:#41263d}
.companion-reply{border-left:2px solid #956782;padding-left:12px;color:#e0c4d6}
.mix-panel{padding:15px 15px 0;max-height:calc(100dvh - 122px);overflow:auto;scrollbar-width:thin;scrollbar-color:#584052 #1b1522}
.panel-heading{padding-bottom:13px}.panel-heading>span{font-size:.56rem}
.order-note{margin-top:16px;min-height:51px;font-size:.76rem}
.glass-stage{height:118px}.glass-shadow{bottom:10px}
.mix-count{font-size:.7rem;margin-bottom:10px}.ingredient{padding:8px 9px}
.method-label{margin-top:16px}.mix-actions{margin:14px 0 16px}
.mix-actions .quiet-button{width:56px;font-size:.7rem}
.jukebox{min-height:72px;padding:14px 0}.jukebox small{font-size:.56rem}
.mobile-only{display:none}
.focus-reading .night-sidebar,.focus-reading .mix-panel{display:none}
.focus-reading .reading-layout{grid-template-columns:minmax(0,1fr);max-width:1060px;margin:auto}
.focus-reading .opening-note{display:none}
.focus-reading .reading-column{padding-left:max(36px,calc((100% - 720px)/2));padding-right:max(36px,calc((100% - 720px)/2))}
.toc-dialog{width:min(660px,92vw);max-width:92vw;max-height:88dvh}
.toc-dialog[open]{display:flex;flex-direction:column}
.toc-dialog header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line);flex-shrink:0}
.toc-dialog h2{font-size:1.2rem;font-weight:500;margin-top:4px}
.toc-dialog header .tiny-label{font-size:.65rem;color:var(--gold)}
.toc-dialog header button{font-size:.75rem}
.toc-note{font-size:.75rem;line-height:1.8;color:var(--muted);padding:15px 24px;flex-shrink:0}
.toc-dialog .book-toc{width:100%;height:auto;display:block;overflow:auto;flex-shrink:1;border:0;padding:0 12px 18px}
.toc-dialog .book-toc button{max-width:none;min-width:0;display:block;border:0;border-left:2px solid transparent;padding:11px 13px;font-size:.83rem}
.toc-dialog .book-toc button[aria-current=true]{border-left-color:var(--pink)}
.mix-scrim{position:fixed;inset:0;background:#08040bd9;z-index:29;border:0;backdrop-filter:blur(4px);width:100%;height:100%}
@media(max-width:1200px){
 .header-book{display:none}.reading-layout{grid-template-columns:148px minmax(0,1fr) 240px;gap:18px}
 .reading-column{padding:28px 30px}.reading-toolbar{padding:13px 17px;gap:10px}
 .app-shell{padding:0 22px}.night-sidebar h1{font-size:1.55rem}.sidebar-book{display:block}.sidebar-book img{float:left;margin-right:10px}
}
@media(max-width:1030px){
 .reading-layout{grid-template-columns:minmax(0,1fr) 246px;gap:20px}.night-sidebar{display:none}
 .reading-main{height:calc(100dvh - 122px)}.header-actions{gap:15px}
}
@media(max-width:750px){
 .app-shell{padding:0 13px}.topbar{min-height:0;padding:14px 0 12px;gap:11px;flex-wrap:wrap}
 .brand strong{font-size:.94rem}.brand small{font-size:.6rem}.brand-mark{font-size:1.7rem}
 .header-actions{width:100%;justify-content:space-between;gap:8px;margin:0}.header-actions button{font-size:.7rem!important;min-height:35px}
 .header-actions .outline-button{padding:6px 10px}.mobile-only{display:inline-block}
 .reading-layout{grid-template-columns:minmax(0,1fr);gap:0;padding-top:14px}
 .reading-main{height:calc(100dvh - 146px);min-height:410px}
 .opening-note{padding:11px 13px;gap:12px;margin-bottom:10px;align-items:flex-start}
 .opening-note p{font-size:.76rem;line-height:1.8}.opening-note .tiny-label{font-size:.6rem}.opening-note button{font-size:.67rem;white-space:normal;min-width:30px}
 .reading-toolbar{padding:12px 14px;gap:8px;flex-wrap:wrap}
 .reading-toolbar>div:first-child{flex:1;min-width:110px}.reading-location{font-size:.79rem}
 .reading-toolbar .tiny-label{font-size:.53rem}.reader-tools{gap:5px}.reader-tools .outline-button{font-size:.65rem;padding:6px 7px}
 .reader-tools>button:not(.outline-button){min-width:27px;font-size:.83rem}
 .reading-column,.focus-reading .reading-column{padding:24px 21px 28px}
 .source-text{line-height:1.85}.source-text h2{font-size:1.35em}
 .reader-footer{padding:9px 12px;gap:8px}.reader-footer .text-button{font-size:.67rem}.reader-footer>span{font-size:.58rem}
 .reader-end{margin-top:30px;flex-direction:column;align-items:stretch}.reader-end .primary-button{font-size:.78rem}
 .story-bottom{font-size:.55rem;gap:6px;flex-wrap:nowrap}.companion-notes>summary>span{display:block;margin-left:15px}
 .mix-panel,.focus-reading .mix-panel{display:none}
 .mix-open .mix-panel{display:block;position:fixed;top:0;right:0;bottom:0;width:min(330px,90vw);max-height:100dvh;z-index:30;padding:22px 20px 0;border-top:0;border-bottom:0;box-shadow:-15px 0 60px #0005}
 .mix-open .mix-panel .panel-heading{padding-bottom:18px}.mix-open .ingredients{flex-direction:column}
 .mix-open .ingredient{flex-direction:row;min-height:0;padding:11px 12px;gap:12px}.mix-open .ingredient>span:nth-child(2){text-align:left}.mix-open .ingredient b{display:block}
 .mix-open .glass-stage{height:145px}.mix-open .order-note{margin-top:23px}.mix-open .method-label{margin-top:23px}
 .mix-open .mix-actions{margin:21px 0 24px}.mix-open .jukebox{padding:20px 0}
 #mix-close{color:var(--pink);font-size:1.4rem;line-height:1;padding:7px;min-width:32px}
 .toc-dialog{max-height:90dvh}.toc-dialog header{padding:18px}.toc-note{padding:13px 18px}.toc-dialog .book-toc button{font-size:.8rem}
}

.reading-return{display:block;padding:0;min-height:20px;font-size:.67rem;line-height:1.65;color:var(--cyan);text-align:left}
@media(max-width:750px){.reading-return{min-height:24px;font-size:.66rem}}

/* The guest lives entirely inside the independently scrolling bar. */
.bar-guest{border:1px solid #584056;background:#211924;margin:0 0 17px;overflow:hidden}
.guest-image{position:relative;min-height:43px;background:#261b2d;overflow:hidden}
.guest-image img{display:block;width:100%;height:176px;object-fit:cover;object-position:50% 24%;image-rendering:pixelated}
.guest-image:has(img[src]):after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#17111be6);pointer-events:none}
.guest-name{position:absolute;left:13px;right:13px;bottom:9px;z-index:1;display:flex;align-items:center;gap:8px;font-size:1rem;color:#f7dce9;text-shadow:1px 1px #1a0f1f}
.guest-name small{font-size:.6rem;letter-spacing:.2em;color:#d4adbF}.guest-name i{width:5px;height:5px;background:var(--cyan);margin-left:auto;box-shadow:0 0 8px #82d6ce44}
.guest-conversation{padding:12px 12px 13px;font-family:'PingFang SC','Microsoft YaHei',sans-serif}
.guest-context{font-size:.61rem;line-height:1.7;color:#ab9cba;overflow-wrap:anywhere}
.guest-action{font-size:.69rem;line-height:1.8;color:var(--gold);margin-top:6px}
.guest-line{font-size:.8rem;line-height:1.85;color:#ecdae5;margin-top:6px;white-space:pre-line}
.guest-line.is-stage-direction{color:#baabbf;font-size:.73rem}
.guest-choices{display:grid;gap:6px;margin-top:12px;border-top:1px solid #473143;padding-top:10px}
.guest-choices>span{font-size:.6rem;color:#a891a5;margin-bottom:1px}
.guest-choices button{text-align:left;font-size:.72rem;line-height:1.65;padding:7px 8px;border:1px solid #61425c;color:#e9c7dc;background:#352235}
.guest-choices #guest-quiet{background:transparent;border-color:#41313f;color:#bdaec1}
.bar-guest.has-drink{border-color:#7b536b}
@media(max-width:750px){.guest-image img{height:196px}.guest-line{font-size:.86rem}.guest-choices button{min-height:38px}}

/* Preserve complete table text, while making each column readable on narrow screens. */
.reader-card{container-type:inline-size}
.source-text .table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;margin:1em 0;padding-bottom:6px}
.source-text .table-scroll:focus-visible{outline:1px solid var(--cyan);outline-offset:3px}
.source-text table{width:100%;border-collapse:collapse;font-size:inherit;line-height:inherit}
.source-text .reading-data-table{min-width:calc(var(--reader-size) * var(--table-columns) * 7)}
.source-text table td{vertical-align:top;border-bottom:1px solid #51404e;padding:.4em .55em}
.source-text table blockquote{border:0;padding:0;margin:.4em 0}
.source-text table p{margin:.35em 0}
@container(max-width:640px){
 .source-text .data-table-scroll:before{content:'表格 · 左右滑动查看';display:block;position:sticky;left:0;width:fit-content;color:var(--muted);font-family:'PingFang SC',sans-serif;font-size:.68rem;line-height:1.8;margin-bottom:8px}
 .source-text .reading-poem-table,.source-text .reading-poem-table tbody,.source-text .reading-poem-table tr,.source-text .reading-poem-table td{display:block;width:100%}
 .source-text .reading-poem-table td{padding:.8em 0;border-bottom:1px solid #51404e}
 .source-text .reading-poem-table .reading-empty-cell{display:none}
 .source-text .reading-poem-table blockquote{margin:0}
}


/* Second edition: all new play stays inside the existing bar column. */
.night-shift-strip{padding:0 0 15px;border-bottom:1px solid #503347;margin-bottom:14px}
.night-shift-strip>div{display:flex;justify-content:space-between;gap:10px;font-size:.6rem;color:#bca5b9}
.night-shift-strip h2{font-size:1.15rem;color:#eac2d5;letter-spacing:.08em;margin-top:7px;font-family:'Songti SC',serif;font-weight:500}
.night-shift-strip p{font-size:.59rem;line-height:1.7;color:#a691ab;margin-top:5px}
[data-edition="2"] .guest-image img{height:164px}
[data-edition="2"] .guest-line{font-size:.79rem;line-height:1.95}
.night-ask{display:block;margin:0 12px 12px;padding:5px 0;color:var(--cyan);font-size:.7rem;border-bottom:1px dashed #506668}
.night-next{display:block;background:#76425e;border:1px solid #b77798;color:#f1dbe7;text-decoration:none;padding:10px 12px;text-align:center;font-size:.77rem;line-height:1.7;width:calc(100% - 24px);margin:0 12px 13px}
.night-reading-echo{margin:0 12px 13px;border-top:1px solid #473444;padding-top:10px;font-family:'PingFang SC',sans-serif}
.night-reading-echo summary{font-size:.65rem;color:var(--cyan);cursor:pointer;line-height:1.8}.night-reading-echo p{font-size:.75rem;line-height:1.9;margin-top:9px;color:#cbbacb}
.night-journal{border-top:1px solid #553849;padding:15px 0 4px}.night-journal>summary{font-size:.74rem;cursor:pointer;color:#dbc0d0;line-height:1.8}.night-journal>summary span{color:#a48da4;font-size:.57rem;margin-left:7px}
.night-memory{padding:13px 0;border-bottom:1px solid #362938}.night-memory strong{font-size:.68rem;color:var(--gold);font-weight:400}.night-memory p,#night-journal-list>p{font-size:.72rem;line-height:1.9;margin-top:5px;color:#d1c0d2}.night-memory small{display:block;font-size:.62rem;line-height:1.8;color:#a994ab;margin-top:5px}
.night-save{font-size:.57rem;color:#a18da6;padding:10px 0;text-align:right}
.night-ending{padding:19px 13px 8px;border:1px solid #68506a;background:linear-gradient(160deg,#2e2236,#211823);margin-bottom:18px}.night-ending>.tiny-label{font-size:.56rem;color:var(--gold)}.night-ending h3{font-family:'Songti SC',serif;color:#edc7da;font-size:1.15rem;font-weight:400;margin:12px 0}.night-ending>p{font-size:.78rem;line-height:1.95;color:#d8c6d5}.night-ending .night-next{margin:16px 0 7px;width:100%}
#night-nightly-notes{margin:18px 0;padding-top:10px;border-top:1px solid #584158}#night-nightly-notes p{font-size:.69rem;line-height:1.9;color:#bba9bf;margin:8px 0}
#night-souvenirs article{padding:13px 12px;margin:12px 0;border:1px solid #706047;background:#40322455}#night-souvenirs strong{font-size:.78rem;font-weight:500;color:var(--gold)}#night-souvenirs p{font-size:.69rem;line-height:1.9;margin-top:6px;color:#d0c0cc}
.night-recipe{border-bottom:1px solid #483245;padding:14px 0}.night-recipe h3{font-size:.85rem;color:var(--gold);font-weight:500}.night-recipe p{font-size:.72rem;color:#d1bfcf;margin-top:4px;line-height:1.8}.night-recipe small{font-size:.66rem;color:#a58faa}
@media(max-width:750px){[data-edition="2"] .guest-image img{height:185px}[data-edition="2"] .guest-line{font-size:.85rem}.night-next{min-height:40px}.night-ask{min-height:35px}.night-shift-strip h2{font-size:1.25rem}}
[data-edition="2"] .ingredients{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
[data-edition="2"] .ingredient{display:flex;flex-direction:column;gap:6px;min-height:93px;padding:9px 3px;font-size:.69rem;text-align:center}
[data-edition="2"] .ingredient>span:nth-child(2){text-align:center}
[data-edition="2"] .ingredient small,[data-edition="2"] .ingredient b{display:none}
[data-edition="2"] .ingredient em{margin:0;font-size:.78rem}
[data-edition="2"] .glass-stage{height:102px}

/* Multi-book reading and personal annotations. No mark changes the source text. */
::highlight(reader-marks){background-color:#916b355e;color:inherit;text-decoration:underline;text-decoration-color:#d6b06d}
.reader-mark{background:#916b355e;color:inherit;text-decoration:underline;text-decoration-color:#d6b06d}
body[data-edition="3"] .reader-card{position:relative}
.selection-tools{position:absolute;right:16px;bottom:53px;z-index:8;display:flex;gap:6px;padding:6px;background:#2b202f;border:1px solid #98778d;box-shadow:0 5px 22px #0006;border-radius:6px}
.selection-tools button{padding:9px 15px;color:#fae7c7;border:1px solid #6c5064;border-radius:3px;font-size:.82rem}
.annotation-feedback{height:26px;flex-shrink:0;display:flex;align-items:center;gap:10px;overflow:hidden;font-size:.65rem;color:#bca9ba;padding:0 4px;white-space:nowrap}
#annotation-status{color:#dbbe91;flex-shrink:0}#reading-feedback{overflow:hidden;text-overflow:ellipsis}
.finish-book{display:block;margin:15px auto 24px;padding:12px 22px;border:1px solid #8f6d79;color:#f0d7b0;background:#342433;border-radius:4px}
.season-queue{font-size:.73rem;line-height:1.9;color:#c7b6ce;margin:0 0 15px;padding:10px 12px;border:1px solid #594057}
.season-queue .night-next{width:100%;margin-top:8px}
.shelf-dialog,.notes-dialog{width:min(670px,94vw);max-height:88dvh;padding:22px;border:1px solid #826378;background:#211923;color:#ecdfeb;overflow:auto;border-radius:8px}
.shelf-dialog::backdrop,.notes-dialog::backdrop{background:#100d17a6}
.shelf-dialog header,.notes-dialog header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px}
.shelf-dialog h2,.notes-dialog h2{font-size:1.15rem}
.shelf-dialog button,.notes-dialog button{padding:8px 11px;border:1px solid #735568;border-radius:4px;font-size:.8rem;color:#ecd6e5}
.shelf-dialog p,.notes-dialog p{font-size:.82rem;line-height:1.85}
.shelf-help{color:#ad9db2;margin:12px 0}
#import-label{position:relative;display:inline-block;cursor:pointer;border:1px solid #bd889f;padding:10px 15px;margin-top:15px;color:#f0d6e4;border-radius:4px;overflow:hidden}
#epub-input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}#import-label:focus-within{outline:2px solid #d3afa9}
#shelf-status{color:#e3c494;margin:8px 0}
.shelf-card,.annotation-card{padding:17px 0;border-top:1px solid #4e3a4c}
.shelf-card h3{font-size:1rem;margin:0 0 5px;overflow-wrap:anywhere}.shelf-card small{color:#bba2bd}.shelf-card>div,.annotation-card>div,.notes-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.feedback-setting{display:flex;gap:9px;align-items:center;border-top:1px solid #4e3a4c;padding-top:20px;font-size:.79rem}
.notes-actions{margin-bottom:14px}.annotation-card blockquote,#note-quote{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 14px;border-left:2px solid #c5a070;margin:9px 0;font:1rem/1.8 Georgia,'Songti SC',serif;color:#ddd0be;max-height:220px;overflow:auto}
.annotation-card p{white-space:pre-wrap;overflow-wrap:anywhere}.annotation-card small{color:#bda9bf}
#note-editor label{display:block;font-size:.82rem;margin-top:15px}#note-input{box-sizing:border-box;display:block;width:100%;padding:12px;font:1rem/1.8 inherit;color:#eee2ee;background:#16111b;border:1px solid #71556b;border-radius:4px;resize:vertical;margin-top:7px}
body[data-edition="3"] .source-text img,body[data-edition="3"] .source-text svg{max-width:100%;height:auto}
body[data-edition="3"] .source-text{overflow-wrap:anywhere}
@media(max-width:750px){
 body[data-edition="3"] .reader-tools{flex-wrap:wrap}#notes-button{font-size:.68rem;padding:6px}
 .shelf-dialog,.notes-dialog{padding:17px}.annotation-feedback{font-size:.61rem}.selection-tools{bottom:50px;right:9px}.selection-tools button{min-height:38px}
 body[data-edition="3"] .reading-toolbar>div:first-child{min-width:90px}.shelf-card>div{gap:7px}
}
body[data-edition="3"] #source-label{display:block;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-edition="3"] .header-book{min-width:0;max-width:36%}body[data-edition="3"] .header-book>span:last-child{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#shelf-status{white-space:pre-line}
/* Original season: the reading surface hosts scenes; the bar keeps its place. */
body[data-edition="3"] .reading-main{position:relative}
.season-panel{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid #664652;background:#201b25;box-shadow:0 14px 48px #0002}
.story-active .reader-card,.story-active .opening-note,.story-active #book-progress,.story-active #library-button{display:none}
.season-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid #57404e}
.season-toolbar h2{font:400 1.2rem/1.5 'Songti SC',Georgia,serif;color:#f1d9bf;margin:5px 0 0}
.season-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.season-tools button{padding:7px 9px;font-size:.74rem}
.season-column{padding:0 38px 28px;scroll-behavior:auto}.season-text,.season-response,.season-choices>p{font-family:'Songti SC','Noto Serif CJK SC',serif;font-size:var(--story-size,1.08rem);line-height:2.05;color:#eee2da;overflow-wrap:anywhere}
.season-text p,.season-response p{margin:1em 0}.season-response{border-top:1px solid #604251;margin-top:26px;padding-top:12px}.season-page-end{display:flex;justify-content:flex-end;margin-top:32px}.season-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 22px;border-top:1px solid #57404e;font-size:.73rem}.season-choices button{border:1px solid #76586e;padding:12px 16px;margin:8px 8px 8px 0;color:#f2d1b1}.season-choices button[aria-pressed="true"]{border-color:var(--pink);background:#412a3d}
.season-scene-art{position:relative;height:150px;overflow:hidden;margin:0 -38px 28px;background:linear-gradient(115deg,#211627 0%,#322139 55%,#111c2b 100%);border-bottom:1px solid #61495a}
.season-scene-art::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#080c1719 4px);z-index:3;pointer-events:none}.scene-window{position:absolute;left:12%;top:15px;width:42%;height:116px;border:7px solid #151420;background:repeating-linear-gradient(104deg,transparent 0 16px,#88c7d724 17px 18px,transparent 19px 30px),linear-gradient(175deg,#212d46,#191b2a);box-shadow:inset 0 0 30px #47989b20,0 0 25px #61bece15}.scene-window::before{content:'';position:absolute;left:45%;width:5px;height:100%;background:#151420}.scene-window::after{content:'';position:absolute;bottom:15px;left:12px;width:20px;height:35px;background:#213c50;box-shadow:35px -9px #332749,80px 9px #152c40,125px -8px #3e2c45}
.scene-lamp{position:absolute;right:24%;top:0;width:2px;height:46px;background:#0a0c14}.scene-lamp::before{content:'';position:absolute;bottom:-13px;left:-23px;width:46px;height:21px;background:#ba805d;border-radius:35px 35px 3px 3px;box-shadow:0 18px 50px 20px #edb97420}.scene-counter{position:absolute;bottom:0;left:0;right:0;height:19px;border-top:3px solid #9a6471;background:#3c2739;box-shadow:0 -2px 23px #e8987033}
#season-location{position:absolute;bottom:28px;right:22px;z-index:4;font-size:.73rem;letter-spacing:.12em;color:#e9d4be;text-shadow:0 2px 5px #000}
.season-scene-art[data-location="street"]{background:linear-gradient(160deg,#162b3b,#282038 65%,#161526)}.season-scene-art[data-location="street"] .scene-window{left:8%;top:30px;height:76px;width:66%;border:0;border-left:5px solid #475967;border-right:5px solid #475967;border-top:5px solid #76808b;background:linear-gradient(165deg,#234057,#222c3a)}.season-scene-art[data-location="street"] .scene-lamp{right:12%;height:110px}.season-scene-art[data-location="street"] .scene-counter{background:#181c2a;border-color:#43525f}
.season-scene-art[data-location="studio"],.season-scene-art[data-location="backstage"]{background:repeating-linear-gradient(90deg,#29212a 0 23px,#211b25 24px 28px)}.season-scene-art[data-location="studio"] .scene-window,.season-scene-art[data-location="backstage"] .scene-window{width:70px;height:85px;background:radial-gradient(circle at 50% 60%,#171921 22px,#444252 23px,#151722 26px);border:5px solid #53404c;left:18%;top:35px}.season-scene-art[data-location="backstage"] .scene-lamp{right:26%;box-shadow:30px 0 #15121b,60px 0 #15121b}
.empty-library{flex:1;min-height:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:24px;border:1px solid #57404e;background:#201b25;padding:28px;text-align:center}.empty-library img{width:130px;max-height:28vh}.empty-library h2{font:400 1.3rem 'Songti SC',serif}.empty-library>div{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.shelf-empty:not(.story-active) .empty-library{display:flex!important}.shelf-empty:not(.story-active) .reader-card,.shelf-empty:not(.story-active) #library-button,.shelf-empty:not(.story-active) #book-progress{display:none}
.season-shelf-heading{margin-top:28px;border-top:1px solid #5b4051;padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.season-shelf-heading h3{font-weight:400;font-size:1rem}.season-shelf-heading label{font-size:.8rem;color:var(--muted)}.season-book-card{display:grid;grid-template-columns:1fr auto;gap:8px 15px;padding:16px 0;border-bottom:1px solid #493440}.season-book-card strong{font-size:.9rem;font-weight:400}.season-book-card small{color:var(--muted);font-size:.75rem;grid-column:1}.season-book-card>button{grid-column:2;grid-row:1 / span 2;border:1px solid #74566b;padding:8px 17px}.season-book-card>details{grid-column:1/-1;font-size:.8rem;line-height:1.8;color:var(--muted)}
@media(min-width:671px){.story-active.focus-reading .reading-layout{grid-template-columns:minmax(0,1fr) 258px;max-width:1300px}.story-active.focus-reading .mix-panel{display:block}}
@media(max-width:670px){.season-toolbar{padding:12px 15px;align-items:flex-start;gap:8px}.season-toolbar h2{font-size:1.02rem}.season-tools{max-width:150px;gap:2px}.season-tools button{padding:6px 7px;font-size:.7rem}.season-column{padding:0 21px 24px}.season-scene-art{height:115px;margin:0 -21px 20px}.season-text,.season-response{line-height:1.95}.season-footer{padding:12px 15px}.season-footer .text-button{font-size:.7rem}.scene-window{height:80px}.season-shelf-heading{align-items:flex-start}.story-active .selection-tools{bottom:72px}}
.story-active #book-info-button,.shelf-empty #book-info-button{display:none}

/* Night Reading Club — one utterance at a time; books keep their reading layout. */
.brand small{letter-spacing:.06em}.brand strong{letter-spacing:.12em}.brand-mark{letter-spacing:-.13em}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.story-active .reading-layout{grid-template-columns:minmax(0,1fr) 258px}.story-active .night-sidebar{display:none}.story-active #guest-card{display:none}.story-active .reading-main{min-height:540px}
.season-panel{position:relative;overflow:hidden;background:#17121e;--story-size:1.08rem}.season-toolbar{padding:13px 22px;flex:none;background:#19141edb;z-index:2}.season-toolbar h2{font:500 1rem/1.4 'PingFang SC',sans-serif;margin-top:4px}.season-toolbar .tiny-label{font-size:.64rem}.season-tools select{color:#cab9c9;background:#241d2b;border:1px solid #594157;font:inherit;font-size:.74rem;padding:7px 5px;border-radius:0}
.vn-stage{position:relative;flex:1;min-height:150px;overflow:hidden;background:#251e30}.vn-background{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 50%;image-rendering:pixelated;filter:brightness(.65) saturate(.8)}.vn-stage-shade{position:absolute;inset:0;background:linear-gradient(0deg,#17111eee,transparent 38%,#120d1918)}.vn-stage[data-location=street] .vn-background{filter:brightness(.48) saturate(.65) hue-rotate(25deg);object-position:left center;transform:scale(1.16)}.vn-stage[data-location=studio] .vn-background,.vn-stage[data-location=backstage] .vn-background{filter:brightness(.38) saturate(.6);object-position:right center;transform:scale(1.25)}
.vn-portrait{position:absolute;right:12%;bottom:-10%;height:110%;width:auto;max-width:64%;object-fit:cover;object-position:50% 20%;image-rendering:pixelated;mask-image:linear-gradient(0deg,transparent,black 20%,black 94%,transparent),linear-gradient(90deg,transparent,black 14%,black 86%,transparent);mask-composite:intersect;animation:vn-enter .2s ease-out}.vn-voice-symbol{position:absolute;right:20%;bottom:24%;font-size:5rem;color:#d9c2d5aa;text-shadow:0 0 24px #e2b58344}.vn-stage #season-location{left:22px;right:auto;top:19px;bottom:auto;font-size:.69rem;letter-spacing:.08em;max-width:56%;color:#dfcfbb}
.vn-speech{position:relative;flex:none;min-height:212px;padding:18px 30px 8px;background:linear-gradient(130deg,#292031,#201925);border-top:1px solid #886378;cursor:pointer}.vn-speaker-row{display:flex;align-items:baseline;gap:12px;min-height:25px;margin-bottom:10px}.vn-speaker-row strong{color:#f6b8c8;font-weight:500;font-size:1.03rem;letter-spacing:.1em}.vn-speaker-row small{color:#a99bad;font-size:.67rem}.vn-line{font-family:'PingFang SC','Microsoft YaHei',sans-serif;font-size:var(--story-size);line-height:1.95;min-height:4em;max-width:44em;color:#eee3df;letter-spacing:.035em;overflow-wrap:anywhere}.vn-speech.narration .vn-line{color:#d4c7c7;font-family:'Songti SC',serif}.vn-speech.narration .vn-speaker-row{min-height:10px;margin-bottom:5px}.vn-advance{display:flex;justify-content:flex-end;min-height:37px}.vn-advance button{font-size:.76rem;min-width:78px}.vn-choices{display:grid;gap:7px;margin:6px 0 12px}.vn-choices button{margin:0;padding:10px 14px;text-align:left;font-size:.87rem;background:#342638;color:#edddce}.vn-choices button:hover,.vn-choices button:focus-visible{background:#513548;border-color:#d992b3}.season-footer{flex:none;padding:10px 20px;background:#17121e;min-height:39px}.season-footer button{font-size:.68rem}.season-footer #season-error{color:#edbba7}
.vn-transcript{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;background:#201a26}.vn-transcript>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 20px;border-bottom:1px solid #614458}.vn-transcript>header strong{font-weight:400}.vn-transcript>header button{font-size:.75rem}.vn-transcript .season-column{padding:24px 30px;flex:1;min-height:0;overflow:auto}.vn-log p{font-size:var(--story-size);line-height:1.9;color:#e4d5d5;margin:0 0 20px}.vn-log b{display:block;font-size:.72rem;font-weight:400;color:var(--pink);margin-bottom:5px}#season-manuscript{border-top:1px solid #563b4e;margin-top:30px;padding-top:20px}#season-manuscript summary{font-size:.8rem;color:var(--muted);cursor:pointer}
@keyframes vn-enter{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(min-width:1100px){.story-active .reading-layout{grid-template-columns:minmax(0,1fr) 272px;gap:24px}.story-active .reading-main{height:calc(100dvh - 136px);max-height:920px}.vn-speech{padding-left:40px;padding-right:40px}.vn-portrait{right:16%;max-width:56%}}
@media(max-width:670px){.story-active .reading-layout{grid-template-columns:minmax(0,1fr)}.story-active .reading-main{height:calc(100dvh - 160px);min-height:530px}.season-toolbar{padding:10px 14px;gap:8px}.season-toolbar h2{font-size:.88rem;max-width:175px}.season-tools{max-width:none;flex-wrap:nowrap;gap:4px}.season-tools button{font-size:.69rem;padding:6px}.season-tools select{font-size:.68rem;max-width:62px}.vn-stage{min-height:150px}.vn-portrait{right:2%;height:113%;bottom:-12%;max-width:80%}.vn-stage #season-location{left:15px;top:12px;max-width:45%;font-size:.65rem}.vn-speech{padding:14px 19px 6px;min-height:221px}.vn-line{font-size:var(--story-size,1.03rem);line-height:1.9;min-height:5.7em}.vn-speaker-row{margin-bottom:8px}.vn-speaker-row small{font-size:.64rem}.vn-choices button{padding:9px 12px;font-size:.82rem}.season-footer{padding:10px 14px}.vn-transcript>header{padding:12px}.vn-transcript>header button{font-size:.65rem;padding:5px}.vn-transcript .season-column{padding:20px}.story-active .selection-tools{bottom:65px}}
@media(prefers-reduced-motion:reduce){.vn-portrait{animation:none}}
.shelf-brand{border-top:1px solid #483447;margin-top:13px;padding-top:12px;font-size:.72rem;color:#b5a3b8;line-height:1.9}.shelf-brand span{display:block;color:#d2bcaa;letter-spacing:.05em}
.vn-stage{min-height:90px}.vn-speech:has(.vn-choices:not([hidden])) .vn-line{min-height:2em}.vn-advance:has(button[hidden]){display:none}.vn-speech:has(.vn-choices:not([hidden])){min-height:230px}
@media(max-width:670px){.vn-stage{min-height:110px}.vn-speech:has(.vn-choices:not([hidden])){min-height:248px}}
.vn-stage[data-location=street] .vn-background,.vn-stage[data-location=studio] .vn-background{filter:brightness(.72) saturate(.85);object-position:center;transform:none}.vn-stage[data-location=backstage] .vn-background{filter:brightness(.58) saturate(.8);object-position:right center;transform:scale(1.12)}
.vn-portrait{height:145%;bottom:-40%}

/* The same room remains after the last line; the reader brings the next book. */
.empty-library{position:relative;isolation:isolate;overflow:auto;padding:0;justify-content:flex-end;min-height:340px}
.empty-library .arrival-background{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;z-index:-2;opacity:.78}
.empty-library:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#14101b18,#14101b66 35%,#14101bf2 85%);z-index:-1}
.empty-library>.arrival-seat{display:block;width:100%;padding:34px 26px;text-align:left}
.arrival-seat h2{font-size:1.65rem;margin:12px 0 24px}.arrival-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.arrival-actions small{font-size:.65rem;opacity:.7;margin-left:12px}
.arrival-bookmark{font-size:.78rem;line-height:1.9;color:#bbaebc;margin-top:25px;max-width:36em;border-left:2px solid #79566a;padding-left:14px}
#arrival-status{font-size:.8rem;white-space:pre-line;margin-top:18px;color:var(--gold)}
.jukebox.music-player{display:block;padding:15px 0}.music-heading{display:flex;align-items:center;gap:12px;margin-bottom:10px}.music-heading>span:nth-child(2){font-size:.62rem;letter-spacing:.13em;color:var(--pink)}.music-heading #music-play{margin-left:auto;border:1px solid #614154;width:34px;min-height:32px;color:var(--pink)}
.music-player select{width:100%;color:var(--text);background:#261c2d;border:1px solid #594053;padding:8px 6px;font:inherit;font-size:.75rem;border-radius:3px}.music-volume{display:flex;gap:8px;align-items:center;font-size:.65rem;color:var(--muted);margin-top:12px}.music-volume input{min-width:0;flex:1;width:80px;accent-color:var(--pink)}.music-volume output{min-width:30px;text-align:right}
.music-credits{margin-top:12px;font-size:.62rem;line-height:1.75;color:var(--muted)}.music-credits summary{cursor:pointer}.music-credits a{display:block;margin-top:5px}.music-credits p{margin:8px 0}#music-status{font-size:.7rem;color:var(--gold);line-height:1.7;margin-top:10px}
@media(max-width:670px){.empty-library>.arrival-seat{padding:28px 22px}.arrival-seat h2{font-size:1.4rem}.arrival-bookmark{font-size:.74rem}.arrival-actions{gap:18px}}
.shelf-empty .night-sidebar{display:none}
.shelf-empty .reading-layout{grid-template-columns:minmax(0,1fr) 272px}
@media(max-width:1000px){.shelf-empty .reading-layout{grid-template-columns:minmax(0,1fr)}}

/* PDF original pages: one canvas, selectable text, fixed page coordinates. */
#pdf-status:empty{display:none}#pdf-status{font:14px/1.7 sans-serif;color:var(--pink);padding:16px}#pdf-status button{display:block;margin-top:12px;padding:8px 12px;border:1px solid var(--line)}
.pdf-reading .reading-column,.pdf-reading.focus-reading .reading-column{padding:12px;overflow:auto;overflow-anchor:none}
.pdf-reading .source-text{max-width:none;width:max-content;margin:0 auto;line-height:1;font-size:initial;overflow-wrap:normal}
.pdf-reading .source-text .pdf-page{position:relative;display:block;margin:0;padding:0;background:white;color:black;isolation:isolate;overflow:hidden}
.pdf-page>canvas{position:absolute;inset:0;display:block;pointer-events:none}
.pdf-reading .reader-end{max-width:none;margin-top:20px}
.pdf-reading .reader-end .tiny-label{display:none}
.pdf-reading .source-text .pdf-link{position:absolute;z-index:2;display:block;cursor:pointer;background:transparent;border:0}
.pdf-reading .source-text .pdf-link:hover,.pdf-reading .source-text .pdf-link:focus-visible{outline:1px solid #a35d84;background:#d770a71a}
.source-text .textLayer{position:absolute;inset:0;overflow:clip;opacity:1;line-height:1;letter-spacing:normal;word-spacing:normal;text-align:initial;text-size-adjust:none;-webkit-text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:1;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor)*var(--min-font-size));--min-font-size-inv:calc(1/var(--min-font-size))}
.source-text .textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0;user-select:text;-webkit-user-select:text;line-height:1}
.source-text .textLayer > :not(.markedContent),.source-text .textLayer .markedContent span:not(.markedContent){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor)*var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}
.source-text .textLayer .markedContent{display:contents}.source-text .textLayer ::selection{background:#d59b4470;color:transparent}.source-text .textLayer mark{color:transparent;font:inherit;padding:0}
.source-text .textLayer br::selection{background:transparent}
.pdf-reading ::highlight(reader-marks){background-color:#dfb03765;color:transparent;text-decoration:none}
@media(max-width:670px){.pdf-reading .reading-toolbar{align-items:flex-start}.pdf-reading .reader-tools{gap:3px}#pdf-fit{font-size:.65rem}.pdf-reading .reader-footer{font-size:.68rem}}

.source-text .textLayer[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}
.source-text .textLayer[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}
.source-text .textLayer[data-main-rotation="270"]{transform:rotate(270deg) translateX(-100%)}
