:root{color-scheme:dark;--bg:#101211;--panel:#151713;--text:#e4e4d8;--muted:#9da58e;--dim:#858b80;--line:#60654f;--subline:#30342e;--accent:#c3bb83;--red:#ac6053;--body-size:18px;--serif:"Songti SC","Noto Serif CJK SC","Source Han Serif SC","STSong",serif;--mono:"SFMono-Regular",Consolas,monospace;font-family:var(--serif);background:#0b0d0c;color:var(--text);-webkit-tap-highlight-color:transparent}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:default}button,a,summary{-webkit-touch-callout:none}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{touch-action:manipulation}svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}.app-shell{max-width:600px;height:100dvh;min-height:320px;margin:auto;background:var(--bg);display:flex;flex-direction:column;overflow:hidden;border-inline:1px solid #20241f}.app-header{flex:none;min-height:59px;padding:calc(10px + env(safe-area-inset-top)) 15px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:16px;min-width:0}.brand svg{width:26px;height:31px}.brand h1{font-size:20px;letter-spacing:1px;font-weight:400;white-space:nowrap}.header-actions{display:flex;gap:5px}.icon-button{border:0;background:none;min-width:40px;min-height:40px;padding:8px;display:grid;place-items:center}.icon-button:hover{color:var(--accent)}.icon-button svg{width:25px;height:25px}main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#343b30 transparent;outline:none}.story-view{min-height:100%;padding:0 14px;display:flex;flex-direction:column}.chapter-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;font-size:13px;letter-spacing:1px;color:var(--muted)}.chapter-row time{font-family:var(--mono);font-size:12px;letter-spacing:0}.floor-section{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:196px;padding:38px 0 44px;gap:10px}.floor-sign{display:flex;align-items:center;height:43px;padding:5px 16px 5px 14px;border:1px solid #a6ad8a;border-radius:4px;gap:16px}.floor-sign svg{width:22px;height:26px;color:var(--accent)}.floor-number{font-family:var(--mono);font-size:29px;line-height:1;color:var(--red);letter-spacing:3px;border-left:1px solid var(--line);padding-left:15px;min-width:55px}.floor-caption{font-size:13px;color:var(--muted);letter-spacing:1px}.scene{animation:arrive .24s ease-out both;outline:none}.location{font-size:13px;line-height:1.5;font-weight:400;letter-spacing:1px;color:var(--muted);border-left:2px solid #9fa785;padding-left:10px;margin:0 4px 14px}.prose{padding:0 5px}.prose p{font-size:var(--body-size);line-height:1.9;font-weight:400;white-space:pre-line;overflow-wrap:anywhere;margin-bottom:6px;letter-spacing:.25px}.message{margin:20px 0 18px;padding:11px 15px 12px;border:1px solid var(--line);border-radius:4px}.message-head{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:7px;color:var(--muted);font-size:13px;letter-spacing:1px}.message-from{display:flex;align-items:center;gap:11px}.message-head svg{width:20px;height:20px;color:var(--accent)}.message-from span{border-left:1px solid var(--line);padding-left:11px}.message-head time{font-family:var(--mono);font-size:11px;letter-spacing:0}.message p{font-size:calc(var(--body-size) - 1px);line-height:1.75;white-space:pre-line}.after{font-size:var(--body-size);line-height:1.9;color:var(--muted);padding:0 5px;margin-bottom:24px}.choices{display:grid;gap:10px;margin-top:26px}.choice{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;background:transparent;border:1px solid var(--accent);border-radius:4px;padding:8px 16px;min-height:44px;text-align:left;font-size:17px;line-height:1.55;transition:background .16s,border-color .16s}.choice svg{width:20px;height:20px;color:var(--accent);flex:none}.choice:hover{background:#20241b}.choice:active{background:#2b3023}.choice.secondary{border-color:var(--line);color:var(--muted)}.save-status{margin-top:auto;min-height:58px;display:flex;justify-content:center;align-items:flex-end;padding:16px 0 14px;color:var(--muted);font-size:12px;letter-spacing:1px;text-align:center}.bottom-nav{flex:none;display:flex;min-height:72px;padding:9px 0 calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);z-index:2}.nav-button{flex:1;border:0;background:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#9b9e95;font-size:13px;min-height:48px}.nav-button svg{width:23px;height:23px}.nav-button[aria-current=page]{color:var(--accent)}.nav-button:hover{color:var(--text)}.library-view{padding:31px 22px 32px;animation:arrive .24s ease-out}.view-heading{font-weight:400;font-size:25px;letter-spacing:2px;margin-bottom:10px;outline:none}.view-subtitle{font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:29px}.section-title{font-weight:400;font-size:12px;letter-spacing:2px;color:var(--muted);margin:30px 0 13px}.clue{border-block-start:1px solid var(--subline)}.clue:last-child{border-bottom:1px solid var(--subline)}.clue summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 0;font-size:17px}.clue summary::-webkit-details-marker{display:none}.clue summary svg{width:17px;height:17px;color:var(--muted);transition:transform .2s}.clue[open] summary svg{transform:rotate(90deg)}.clue-tag{font-size:12px;color:var(--muted);display:block;margin-top:6px}.clue p{font-size:16px;color:var(--muted);line-height:1.95;padding:0 0 18px;white-space:pre-line}.chapter-item{display:flex;align-items:center;gap:20px;padding:21px 0;border-top:1px solid var(--subline)}.chapter-number{font:24px var(--mono);color:var(--muted)}.chapter-info{flex:1}.chapter-info h3{font-size:18px;font-weight:400;margin-bottom:7px}.chapter-info p{font-size:12px;letter-spacing:.5px;color:var(--muted)}.chapter-item.locked{color:var(--dim)}.chapter-item.locked .chapter-number{color:#697060}.chapter-item>svg{width:17px;height:17px;color:var(--dim)}.chapter-action{background:none;color:var(--accent);border:1px solid var(--line);padding:8px 12px;font-size:13px;border-radius:3px}.ending-item{padding:17px 0;border-top:1px solid var(--subline)}.ending-item h3{font-weight:400;font-size:17px;display:flex;align-items:center;gap:10px}.ending-item h3 svg{width:17px;height:17px;color:var(--accent)}.ending-item p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:8px}.ending-title{font-size:27px;font-weight:400;line-height:1.5;margin:0 5px 21px;letter-spacing:2px}.end-mark{display:flex;align-items:center;gap:12px;color:var(--accent);font-size:12px;letter-spacing:2px;padding:0 5px;margin:2px 0 20px}.end-mark:before{content:"";width:25px;height:1px;background:var(--line)}.story-view.ending .floor-section{min-height:152px;padding:30px 0}.story-view.ending .save-status{min-height:84px}.empty-note{color:var(--muted);font-size:15px;line-height:1.9;padding:20px 0}.empty-note+.choice{margin-top:14px}dialog{position:fixed;inset:auto 0 0;max-width:600px;width:100%;max-height:88dvh;max-height:calc(100dvh - 35px);padding:0;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--bg);color:var(--text);margin:0 auto;overscroll-behavior:contain}dialog::backdrop{background:rgb(0 0 0 / .7)}.sheet-top{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--subline);position:sticky;top:0;background:var(--bg);z-index:1}.sheet-top h2{font-weight:400;font-size:20px;letter-spacing:2px}.sheet-body{padding:18px 22px calc(24px + env(safe-area-inset-bottom))}.sheet-label{font-size:13px;color:var(--muted);margin:10px 0 12px}.font-choices{display:flex;gap:8px;margin-bottom:22px}.font-choice{flex:1;min-height:44px;border:1px solid var(--line);background:none;border-radius:3px;font-size:15px;color:var(--muted)}.font-choice[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#20241b}.setting-row{border:0;border-top:1px solid var(--subline);background:none;width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-size:16px;min-height:52px;text-align:left}.setting-row svg{width:18px;height:18px;color:var(--muted)}.sheet-note{font-size:13px;color:var(--muted);line-height:1.9;margin:18px 0 0}.sheet-note p{margin-bottom:12px}.dialog-actions{display:grid;gap:10px;margin-top:25px}.instruction{font-size:16px;line-height:1.9;margin-bottom:16px}.history-item{border-bottom:1px solid var(--subline);padding:16px 0}.history-item time{color:var(--muted);font:11px var(--mono)}.history-item p{color:var(--muted);font-size:14px;line-height:1.9;margin:10px 0}.history-item strong{display:block;font-weight:400;font-size:15px;color:var(--accent);margin-top:8px}#toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translate(-50%,8px);background:#292e23;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:11px 17px;max-width:calc(100% - 36px);width:max-content;font-size:13px;line-height:1.6;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10}#toast.visible{opacity:1;transform:translate(-50%,0)}.local-warning{color:var(--accent)}noscript{display:block;padding:20px;color:var(--text)}@keyframes arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:650px){.app-header{padding-inline:24px}.story-view{padding-inline:32px}.chapter-row{padding-top:18px}.floor-section{min-height:220px}.floor-sign{height:45px}.prose{padding-inline:5px}.library-view{padding:38px 37px}.brand h1{font-size:21px}.save-status{min-height:105px}.bottom-nav{min-height:76px}}@media(max-height:740px){.floor-section{min-height:145px;padding:25px 0;gap:9px}.save-status{min-height:72px;padding-top:25px}.choices{margin-top:20px}.message{margin-top:20px}.chapter-row{font-size:12px}.bottom-nav{min-height:65px;padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}}@media(max-width:350px){.brand{gap:10px}.brand h1{font-size:17px}.app-header{padding-inline:10px}.header-actions{gap:0}.icon-button{min-width:36px;padding:6px}.chapter-row{font-size:11px;letter-spacing:0}.choice{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.sound-setting{padding:0 0 22px}.sound-setting label{display:flex;justify-content:space-between;align-items:center}.sound-setting output{font:12px var(--mono);color:var(--accent)}.sound-setting input{accent-color:var(--accent);width:100%;min-height:32px;margin:0;cursor:pointer}.sound-caption{font-size:12px;color:var(--muted);line-height:1.8;margin-top:5px}

.act-label{font-size:12px;line-height:1.8;letter-spacing:1px;color:var(--accent);margin:0 4px 18px}.continuation .floor-section{min-height:86px;padding:14px 0 12px;gap:8px}.continuation .floor-sign{height:36px;padding-block:3px}.continuation .floor-number{font-size:24px}.continuation .floor-caption{font-size:11px}.section-list{list-style:none;margin:0 0 27px;padding:0;border-top:1px solid var(--subline)}.section-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--subline);font-size:14px;color:var(--muted)}.section-list li>span:last-child{font-size:11px;flex:none}.section-list li.current{color:var(--accent)}

.score-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.score-option{border:1px solid var(--line);border-radius:3px;background:none;padding:11px 9px;text-align:left;min-height:68px;font-size:14px;line-height:1.65;color:var(--muted)}.score-option small{display:block;font-size:11px;line-height:1.7;margin-top:4px}.score-option[aria-pressed=true]{border-color:var(--accent);background:#20241b;color:var(--accent)}.score-choices+.choice{margin-bottom:22px;font-size:15px;min-height:44px}
.filter-input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:3px;background:var(--panel);color:var(--text);font:15px var(--serif);margin:9px 0 16px}.filter-input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.search-label{font-size:12px;color:var(--muted);line-height:1.8}.instruction p{margin-bottom:14px}.chapter-row>span{max-width:78%;line-height:1.7}.chapter-row time{flex:none}.floor-number{white-space:nowrap}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.revealing{display:grid}.reveal-layout,.reveal-ink{grid-area:1/1;min-width:0;white-space:pre-line;overflow-wrap:anywhere}.reveal-layout{color:transparent;user-select:none}.reveal-controls{display:block;position:sticky;top:42px;z-index:1;height:0;margin:0;padding:0;font-size:12px;color:var(--muted)}.reveal-controls button{position:absolute;right:5px;top:-42px;min-height:36px;padding:5px 10px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--accent);font-size:12px}.reveal-controls[hidden],.choices[hidden]{display:none}.reveal-options{display:flex;gap:8px}.reveal-note{margin:8px 0 22px}.prose{cursor:text}

.reveal-controls>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.scene-props{margin:24px 5px 10px}.scene-props[hidden]{display:none}.prop-heading{font-size:12px;letter-spacing:1px;color:var(--muted);margin-bottom:12px}.prop-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.prop-tray:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.prop-choice{border:1px solid var(--subline);border-radius:5px;background:linear-gradient(150deg,#1e251e,#141915);padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0;min-height:139px;color:var(--muted);font-size:12px;line-height:1.6;transition:border-color .2s,background .2s}.prop-choice:hover{border-color:var(--accent);color:var(--text);background:#222a20}.prop-choice:active{transform:translateY(1px)}svg.prop-image{display:block;width:100%;height:auto;fill:none;stroke:none;max-width:300px;flex:none;overflow:visible;font-family:var(--serif)}.prop-choice .prop-image{margin:auto 0;max-width:185px}.prop-detail{max-width:340px;margin:25px auto 12px;padding:18px 13px 12px;border:1px solid var(--subline);border-radius:5px;background:radial-gradient(ellipse at 50% 20%,#242c23,#131813 80%)}.prop-art{display:grid;place-items:center;min-height:185px}.prop-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--subline);padding-top:10px;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.7}.prop-control{flex:none;background:transparent;border:1px solid var(--line);border-radius:3px;padding:7px 10px;min-height:38px;font-size:12px;color:var(--accent)}.prop-observation{color:var(--muted);font-size:13px;line-height:1.8}.prop-observation:not(:empty){margin-top:12px}@media(max-width:350px){.prop-tray{gap:6px}.prop-choice{padding:9px 3px;font-size:11px;min-height:122px}.prop-detail{padding-inline:9px}}

.choices:empty,.choices:not(:has(button)){display:none}

.language-options{margin-bottom:22px}:root:lang(en){--serif:Georgia,"Times New Roman",serif}:lang(en) .brand h1{font-size:18px;letter-spacing:.1px}:lang(en) .prose p{letter-spacing:0;overflow-wrap:break-word;line-height:1.85}:lang(en) .choice{font-size:16px}:lang(en) .chapter-info h3{line-height:1.5}:lang(en) .section-list li{align-items:flex-start}:lang(en) .prop-image text{letter-spacing:0}@media(max-width:350px){:lang(en) .brand h1{font-size:16px}}
