:root{color-scheme:dark;--gold:#cfb78e;--gold-light:#e8d8ba;--ink:#171417;--text:#f1ece3;--muted:#b4aaa0;--serif:'Hiragino Mincho ProN','Yu Mincho','Noto Serif CJK JP','Noto Serif JP',serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--text-size:18px;--dialog-opacity:.91;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none}body{background:#0e0d10;color:var(--text);font-family:var(--sans);overflow:hidden;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}button:disabled{opacity:.32;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button,input{user-select:none}button{min-height:44px}button:hover:not(:disabled){filter:brightness(1.15)}[hidden]{display:none!important}.ambient-backdrop{position:fixed;inset:-60px;background:linear-gradient(#141016c9,#141016e8),url('./assets/backgrounds/corridor.webp') center/cover;filter:blur(35px);transform:scale(1.1)}#app{position:relative;width:100%;max-width:540px;height:100dvh;margin:auto;isolation:isolate;overflow:hidden;background:#131113;box-shadow:0 0 100px #0009}.screen{position:absolute;inset:0;overflow:hidden}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:#e5dccc;border-radius:50%;background:#1713153d}.icon-button svg,.control-icon svg{width:20px;height:20px;stroke-width:1.4}.title-art,.title-shade,.end-art{position:absolute;inset:0}.title-art{background:url('./assets/backgrounds/corridor.webp') 67% 48%/cover;transform:scale(1.03)}.title-shade{background:linear-gradient(180deg,#10101335 0%,#0b090b14 20%,#0d0b0ec9 61%,#100d10fb 100%),linear-gradient(90deg,#100d1066,transparent)}.title-top{position:absolute;top:calc(20px + var(--safe-top));left:30px;right:22px;display:flex;align-items:center;justify-content:space-between}.edition{font:9px Georgia,serif;letter-spacing:.3em;color:#d9c9ae}.title-copy{position:absolute;left:9%;right:6%;top:20%}.eyebrow{font:9px Georgia,serif;letter-spacing:.22em;color:var(--gold);display:flex;gap:11px;align-items:center}.eyebrow>span{width:24px;height:1px;background:var(--gold)}h1{display:flex;align-items:baseline;margin:10px 0 0;font-family:var(--serif);font-weight:400;white-space:nowrap;letter-spacing:-.04em}.title-digits{font:clamp(82px,21vw,118px)/1.1 Georgia,'Times New Roman',serif;letter-spacing:-.065em}.title-digits>span{color:var(--gold)}.title-room{font-size:clamp(35px,8.5vw,47px);letter-spacing:-.06em;margin-left:6px}.title-rule{height:1px;background:linear-gradient(90deg,var(--gold),#cbb28a55,transparent);margin:18px 0 24px;max-width:370px}.tagline{font-family:var(--serif);font-size:17px;line-height:2;letter-spacing:.12em;text-shadow:0 2px 12px #000;margin:0}.chapter-title{font-family:var(--serif);font-size:12px;letter-spacing:.25em;color:var(--gold);margin-top:29px}.chapter-title span{color:#efe7dc;margin-left:12px;letter-spacing:.35em}.title-actions{position:absolute;bottom:calc(76px + var(--safe-bottom));left:9%;right:9%;display:flex;flex-direction:column;gap:12px}.primary-button{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid #b99b6b78;background:linear-gradient(110deg,#b5935c24,#9e7a4520);padding:17px 24px;min-height:58px;font-family:var(--serif);font-size:15px;letter-spacing:.17em;transition:.2s}.primary-button>span{font:23px Georgia;color:var(--gold)}.title-actions>.primary-button+ .primary-button{background:none;border-color:#b99b6b35;min-height:48px;padding:12px 24px;font-size:13px}.title-secondary{display:flex;align-items:center;justify-content:center;gap:13px}.title-secondary button{font-size:11px;letter-spacing:.09em;color:#c6bbb0;padding:0 6px}.title-secondary i{width:1px;height:10px;background:#6e6255}.headphone-note{margin:1px 0 0;font-size:10px;letter-spacing:.1em;color:#b2a69b;display:flex;align-items:center;justify-content:center;gap:8px}.headphone-note svg{width:13px;height:13px;display:block}.title-footer{position:absolute;bottom:calc(25px + var(--safe-bottom));left:9%;right:9%;display:flex;justify-content:space-between;font:10px var(--serif);letter-spacing:.22em;color:#9f9182}.title-footer span:last-child{font:8px Georgia;letter-spacing:.18em}.scene-backdrop{position:absolute;inset:-30px;background:center/cover;filter:blur(30px) brightness(.5);transform:scale(1.08)}.background{position:absolute;inset:0;background-position:center top;background-size:cover;opacity:0;transition:opacity .65s ease,transform 3s ease;will-change:opacity}.background.active{opacity:1}.background.wide{background-size:100% auto;background-position:center 23%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#10101688,transparent 18%,transparent 52%,#100f1688),linear-gradient(90deg,#100f162b,transparent 20%,transparent 80%,#100f162b)}#scene-tint{position:absolute;inset:0;background:#080811;opacity:0;transition:opacity 1.2s}.scene-header{position:absolute;z-index:12;top:calc(14px + var(--safe-top));left:22px;right:14px;display:flex;align-items:center;justify-content:space-between;text-shadow:0 1px 6px #000a}.scene-header>div:first-child{display:flex;flex-direction:column;gap:6px}.chapter-kicker{font:11px var(--serif);letter-spacing:.15em;color:var(--gold-light)}.chapter-kicker b{font-weight:400;margin-left:9px;color:#f1e8dc}.location{font-size:9px;letter-spacing:.12em;color:#dddad2}.scene-header-actions{display:flex;gap:3px}.scene-header .icon-button{background:#13111866}.progress-track{height:1px;position:absolute;top:0;left:0;right:0;z-index:13;background:#baa78922}.progress-track div{height:100%;background:#dcc298;transition:width .4s}#stage{position:absolute;inset:0;pointer-events:none;overflow:hidden}.character{position:absolute;bottom:21%;width:65%;height:69%;overflow:hidden;filter:drop-shadow(0 3px 14px #16111d55);transition:filter .3s,opacity .3s;transform-origin:center bottom}.character img{position:absolute;width:300%;height:100%;object-fit:fill;max-width:none;left:0;top:0;display:block}.character.single{left:17.5%;width:65%;height:70%}.character.left{left:-3%;width:56%;height:65%}.character.right{right:-3%;width:56%;height:63%}.character.receptionist{height:66%}.character.inactive{filter:brightness(.84) saturate(.9) drop-shadow(0 3px 14px #16111d55)}.character.enter{animation:charEnter .45s ease-out}@keyframes charEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.room-cue{position:absolute;left:50%;top:34%;transform:translateX(-50%);font:58px Georgia,serif;color:#f2dfba;text-shadow:0 2px 20px #000;padding:20px 35px;background:linear-gradient(90deg,transparent,#171217b8,transparent);letter-spacing:.1em;pointer-events:none;animation:cue .7s both}.room-cue:after{content:'';display:block;height:1px;background:linear-gradient(90deg,transparent,#d2ba8a,transparent);margin-top:16px}.elapsed{position:absolute;left:0;right:0;top:36%;text-align:center;font:italic 44px Georgia;color:#e7d8bd;letter-spacing:.08em;animation:cue 1s both}@keyframes cue{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}.elapsed{animation-name:elapsed}@keyframes elapsed{from{opacity:0}to{opacity:1}}.advance-zone{position:absolute;z-index:3;inset:75px 0 32%;cursor:pointer;touch-action:manipulation}.insert{position:absolute;z-index:6;left:18px;right:18px;top:13%;bottom:34%;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:insertIn .4s ease}.insert button{pointer-events:auto}.insert .image-insert{position:relative;display:flex;flex-direction:column;align-items:center;max-width:100%;max-height:100%;padding:0;filter:drop-shadow(0 10px 25px #0008);background:#1c1721;border:1px solid #dcc6a54d;border-radius:3px;overflow:hidden}.image-insert img{width:auto;height:auto;max-width:100%;max-height:39vh;display:block;object-fit:contain}.image-insert.panel img{max-height:34vh;width:100%}.image-insert span{font-size:10px;letter-spacing:.05em;background:#1c1721;padding:10px 14px;color:#ddd0bc;width:100%;text-align:center}.image-insert span svg{width:12px;height:12px;vertical-align:-2px;margin-right:6px}.social-card{width:100%;max-width:350px;background:#f7f5f2;color:#39323a;border-radius:8px;padding:23px 21px;box-shadow:0 16px 40px #0007;pointer-events:auto}.social-card .social-type{font-size:9px;letter-spacing:.13em;color:#89766b;display:block;border-bottom:1px solid #ded7cf;padding-bottom:15px;margin-bottom:15px}.social-person{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;margin-bottom:13px}.social-person .avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#dfc2ad;color:#6c4c3f;font-family:var(--serif);font-weight:400}.social-card p{font-size:13px;line-height:1.9;white-space:pre-line;margin:0}.social-card .social-status{display:block;margin-top:15px;font-size:9px;color:#a2948b}.remote{position:absolute;top:calc(86px + var(--safe-top));left:50%;transform:translateX(-50%);padding:10px 14px;border:1px solid #dfcfb729;background:#18181fe8;z-index:7;border-radius:30px;display:flex;align-items:center;gap:9px;white-space:nowrap;box-shadow:0 5px 20px #0003;font-size:10px}.remote b{font-size:12px;letter-spacing:.1em;font-weight:500}.remote-dot{height:5px;width:5px;background:#b3c2a5;border-radius:50%;box-shadow:0 0 10px #a5c59c55}.remote span:nth-child(2){color:#aab6aa;font-size:9px}.call-wave{color:var(--gold);font-size:10px;margin-left:7px}.dialogue{position:absolute;z-index:10;bottom:0;left:0;right:0;padding:21px 25px calc(10px + var(--safe-bottom));background:linear-gradient(135deg,rgba(24,22,29,var(--dialog-opacity)),rgba(17,16,22,var(--dialog-opacity)));border-top:1px solid #c6af873e;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 -20px 70px #11101644;min-height:30%;display:flex;flex-direction:column}.speaker-row{display:flex;align-items:center;justify-content:space-between;min-height:19px;flex-shrink:0}.speaker-row #speaker{font:13px var(--serif);color:var(--gold-light);letter-spacing:.13em;display:flex;align-items:center;gap:10px}.speaker-row #speaker:before{content:'';height:1px;width:14px;background:#c8ad7b}.speaker-row #speaker:empty:before{display:none}.speaker-row #mode-indicator{font:8px Georgia;letter-spacing:.16em;color:#baad95}.text-box{position:relative;flex:1;min-height:119px;cursor:pointer;touch-action:manipulation;padding-top:12px;padding-bottom:28px}.text-box p{font-family:var(--serif);font-size:var(--text-size);line-height:1.9;letter-spacing:.045em;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-weight:400;color:#f0e9df;text-shadow:0 1px 2px #0003}.text-box p.narration{color:#e1dbd3}.next-mark{position:absolute;right:2px;bottom:7px;color:#cdb68c;font-size:8px;opacity:0;transition:opacity .15s}.next-mark.visible{opacity:1;animation:nextpulse 2s ease-in-out infinite}@keyframes nextpulse{50%{opacity:.3}}.reading-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e9dcc914;padding-top:5px;gap:8px}.reading-controls button{padding:3px 8px;display:flex;align-items:center;justify-content:center;gap:5px;min-height:37px;font-size:10px;color:#a99f95;letter-spacing:.03em}.reading-controls .control-icon{display:flex;align-items:center}.reading-controls .control-icon svg{width:13px;height:13px}.reading-controls button[aria-pressed=true]{color:var(--gold-light);background:#ccb48b14;border-radius:3px}.restore-ui{position:absolute;right:16px;bottom:calc(18px + var(--safe-bottom));z-index:20;background:#17121cb3;backdrop-filter:blur(10px)}.ui-hidden .dialogue,.ui-hidden .scene-header,.ui-hidden .progress-track,.ui-hidden .remote{visibility:hidden}.ui-hidden .advance-zone{inset:0;z-index:9}.ui-hidden .character{bottom:5%}.chapter-flash{position:absolute;z-index:25;inset:0;pointer-events:none;background:#121013;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;opacity:0}.chapter-flash.show{animation:chapter 2.3s both}.chapter-flash span{font:10px Georgia;letter-spacing:.35em;color:var(--gold)}.chapter-flash b{font:32px var(--serif);letter-spacing:.4em;font-weight:400;margin-left:.4em}@keyframes chapter{0%,45%{opacity:1}100%{opacity:0}}#modal-root{position:absolute;inset:0;z-index:50;display:flex;align-items:flex-end;background:#0a080dc9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.modal{position:relative;width:100%;max-height:92%;background:#1a171e;border-top:1px solid #c7ab794a;border-radius:14px 14px 0 0;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom);box-shadow:0 -10px 40px #0005;animation:sheet .25s ease-out}.modal.tall{height:92%}@keyframes sheet{from{transform:translateY(35px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:18px 20px 15px 25px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #bda58120;flex-shrink:0}.modal-header h2{font-family:var(--serif);font-size:19px;font-weight:400;letter-spacing:.12em;margin:0}.modal-header .modal-kicker{font:8px Georgia;letter-spacing:.2em;color:var(--gold);display:block;margin-bottom:6px}.modal-content{padding:23px 25px 30px;overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:#53473f transparent}.modal-content>p{font-size:12px;line-height:1.9;color:#c0b7af}.menu-list{display:flex;flex-direction:column;gap:4px}.menu-list>button{width:100%;padding:16px 3px;display:flex;align-items:center;gap:13px;border-bottom:1px solid #c2b0941c;font-size:14px;text-align:left}.menu-list>button svg{width:19px;height:19px;stroke-width:1.2;color:var(--gold)}.menu-list>button span:last-child{margin-left:auto;color:#a39583;font:16px Georgia}.menu-section{font-size:9px;letter-spacing:.1em;color:#978c7e;margin:22px 0 8px}.menu-list .dim{color:#c6bbb1}.small-note{font-size:10px!important;line-height:1.8!important;color:#9e9387!important;margin:18px 0 0}.slot-tabs{display:flex;gap:8px;padding-bottom:15px}.slot-tabs button{flex:1;border:1px solid #b7a07c33;border-radius:4px;font-size:12px;color:#c7b6a1}.slot-tabs button.active{background:#b9a07820;border-color:#c7aa7580;color:#ead5b4}.slots{display:grid;gap:10px}.save-slot{display:flex;align-items:center;min-height:90px;text-align:left;border:1px solid #c9b28b2b;background:#242027;border-radius:5px;overflow:hidden;padding:0}.save-slot .slot-thumb{width:72px;align-self:stretch;background-position:center;background-size:cover;flex-shrink:0;position:relative}.slot-thumb span{position:absolute;bottom:0;left:0;right:0;padding:4px;background:#0a080db3;font:8px Georgia;letter-spacing:.13em;text-align:center}.save-slot .slot-body{padding:12px 13px;min-width:0}.slot-body strong{font-size:12px;font-weight:500;color:#ead7b5}.slot-body small{display:block;font-size:9px;color:#b5a798;margin-top:5px}.slot-body p{font-family:var(--serif);font-size:11px;color:#c3bcb4;margin:7px 0 0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:265px}.save-slot.empty{padding:20px;color:#8d8176;font-size:12px;justify-content:space-between;min-height:75px}.save-slot.empty span{font:11px Georgia;letter-spacing:.1em;color:#bb9f7a}.setting-group{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #bfaa8422}.setting-group:last-child{border:none;margin:0}.group-title{font:10px var(--sans);color:var(--gold);letter-spacing:.13em;margin:0 0 20px}.setting-row{margin-bottom:20px}.setting-row:last-child{margin-bottom:0}.setting-label{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#dfd6cb;margin-bottom:12px}.setting-label output{font:11px Georgia;color:var(--gold)}input[type=range]{width:100%;height:26px;accent-color:var(--gold);cursor:pointer}.range-hints{display:flex;justify-content:space-between;font-size:9px;color:#8e8278;margin-top:4px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;font-size:13px;color:#dfd6cb}.toggle-row label{flex:1;cursor:pointer}.toggle-row input{accent-color:#bfa16e;width:20px;height:20px}.toggle-row small{display:block;color:#998c7e;font-size:10px;margin-top:5px;line-height:1.5}.text-preview{padding:15px;background:#110f15;border:1px solid #baa17b26;font:var(--text-size)/1.85 var(--serif);margin-top:15px;color:#e5dcd0}.text-button{font-size:12px;color:#cbb48c;letter-spacing:.05em;padding:10px}.log-entry{width:100%;text-align:left;padding:17px 0;border-bottom:1px solid #c1ab8724;display:block;min-height:44px}.log-entry .log-speaker{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.1em;color:var(--gold);margin-bottom:9px}.log-entry .log-speaker i{font-style:normal;color:#807568}.log-entry p{font:14px/1.9 var(--serif);white-space:pre-line;margin:0;color:#ded7ce}.log-entry.current p{color:#fff4df}.log-scene{font-size:9px;color:#82776e;letter-spacing:.1em;text-align:center;padding:24px 0 3px}.confirm-actions{display:flex;gap:10px;margin-top:25px}.confirm-actions button{flex:1;border:1px solid #bc9e6e4d;padding:13px 8px;font-size:12px;border-radius:3px}.confirm-actions .confirm-yes{background:#c3a26a28;color:#ecd8b7}.scene-list{display:flex;flex-direction:column;gap:9px}.scene-item{display:flex;width:100%;align-items:center;text-align:left;background:#242027;border:1px solid #b5a27d26;padding:17px 15px;gap:17px}.scene-item .num{font:22px Georgia;color:#b89b70}.scene-item strong{font:15px var(--serif);font-weight:400}.scene-item small{font-size:9px;display:block;color:#ae9d8a;margin-top:5px}.scene-item>span:last-child{margin-left:auto;color:#b89b70}.credits-title{font:35px Georgia,var(--serif);color:#e6d4b4;margin:0 0 8px}.credits-sub{font:13px var(--serif);letter-spacing:.2em;margin:0 0 30px;color:#b9a990}.credits-item{margin:20px 0;font-size:12px;line-height:1.9;color:#d0c4b8}.credits-item small{display:block;font-size:9px;letter-spacing:.1em;color:#998874;margin-bottom:5px}.guide-grid{display:grid;grid-template-columns:90px 1fr;gap:12px;font-size:12px;color:#d1c6ba;line-height:1.8}.guide-grid dt{color:var(--gold)}.guide-grid dd{margin:0}.viewer-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:9px;border-bottom:1px solid #c6b18a22}.viewer-controls button{border:1px solid #b99d713d;padding:4px 18px;font-size:13px;min-height:36px;border-radius:3px}.image-viewer{overflow:auto;flex:1;min-height:0;background:#0e0d11;padding:15px;touch-action:pan-x pan-y}.image-viewer img{display:block;height:auto;max-width:none;margin:auto}.end-art{background:linear-gradient(#0f0c13b3,#0f0c13f0),url('./assets/backgrounds/wall.webp') center/cover}.end-content{position:absolute;top:21%;left:10%;right:10%;text-align:center}.end-content .eyebrow{justify-content:center;letter-spacing:.2em;font-size:9px}.end-content h2{font:15px var(--serif);letter-spacing:.22em;font-weight:400;margin:35px 0}.end-content h2 span{display:block;font-size:43px;letter-spacing:.35em;margin:18px 0 0 .35em}.end-line{width:70px;margin:0 auto;height:1px;background:var(--gold)}.end-content p{font:15px/2.2 var(--serif);letter-spacing:.1em;color:#ccbcab;margin:35px 0 24px}.end-author{font-size:10px;color:#9b8c7b;letter-spacing:.1em;display:block;margin-bottom:45px}.end-content .primary-button{font-size:13px}.end-content .text-button{margin-top:16px}#toast{position:absolute;z-index:90;bottom:calc(35% + 15px);left:50%;transform:translateX(-50%) translateY(10px);max-width:90%;width:max-content;pointer-events:none;padding:12px 20px;background:#1e1a22ed;border:1px solid #c3a57059;box-shadow:0 7px 25px #0006;border-radius:5px;color:#e7d7be;font-size:12px;line-height:1.6;opacity:0;transition:.2s;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.loading{position:absolute;inset:0;background:#151217;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:23px}.loading-number{font:65px Georgia;color:var(--gold);letter-spacing:.03em}.loading>span:last-child{font-size:10px;letter-spacing:.13em;color:#aa9a84}.loading.fade{opacity:0;transition:opacity .4s;pointer-events:none}@keyframes insertIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:700px){#app{height:calc(100dvh - 32px);margin-top:16px;border:1px solid #c8b59825;border-radius:9px}.title-digits{font-size:118px}.title-room{font-size:47px}.title-copy{top:20%}.dialogue{padding-left:30px;padding-right:30px}.title-top{top:22px}.image-insert img{max-height:38vh}}
@media(max-height:720px){.title-copy{top:16%}.title-digits{font-size:88px}.title-room{font-size:37px}.title-rule{margin:12px 0 16px}.tagline{font-size:15px}.chapter-title{margin-top:18px}.title-actions{bottom:55px;gap:5px}.title-footer{bottom:17px}.headphone-note{font-size:9px}.primary-button{min-height:49px;padding:12px 22px}.title-secondary button{min-height:35px}.text-box{min-height:108px}.dialogue{padding-top:16px}.text-box p{line-height:1.8}.character{bottom:24%}.character.left,.character.right{bottom:24%}.end-content{top:14%}.end-author{margin-bottom:30px}.end-content p{margin:23px 0}.end-content h2{margin:25px 0}}
@media(max-height:520px) and (orientation:landscape){#app{max-width:none;height:100dvh;margin:0;border:0;border-radius:0}.title-copy{left:8%;top:10%;width:42%}.title-top{left:8%;top:6px}.title-top .edition{visibility:hidden}.title-digits{font-size:82px}.title-room{font-size:35px}.title-rule{margin:5px 0 12px}.tagline{font-size:13px}.chapter-title{margin-top:12px}.title-actions{left:58%;right:8%;bottom:65px}.title-footer{left:8%;right:8%;bottom:20px}.dialogue{left:43%;min-height:0;top:84px;padding:15px 22px 7px;background:linear-gradient(130deg,#17141df2,#17141dd9);border-left:1px solid #b9a07840;border-top:0}.text-box{min-height:90px}.text-box p{font-size:16px;line-height:1.8}.background{background-size:auto 100%;background-repeat:no-repeat;background-position:15% center}.background.wide{background-size:cover;background-position:center}.scene-header{left:20px;right:20px;top:12px}.character.single{width:31%;height:85%;left:7%;bottom:-5%}.character.left{width:28%;height:81%;left:-5%;bottom:-5%}.character.right{width:28%;height:78%;right:auto;left:20%;bottom:-5%}.insert{left:10px;right:59%;top:20%;bottom:8%}.image-insert img{max-height:60vh}.image-insert.panel img{max-height:50vh}.remote{top:78px;left:22%}.advance-zone{right:57%;bottom:0}.room-cue{left:22%;top:35%}.modal{max-height:96%;max-width:600px;margin:0 auto}.end-content{left:25%;right:25%;top:8%}.end-content h2{margin:10px}.end-content h2 span{font-size:25px;margin-top:10px}.end-content p{margin:14px;font-size:13px}.end-author{margin-bottom:15px}.end-content .text-button{margin-top:2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.reduce-motion *{animation-duration:.01ms!important;transition-duration:.01ms!important}
/* Preserve character proportions; the dialogue naturally covers the lower body. */
.character img{height:auto;top:auto;bottom:0}.character.makoto{clip-path:inset(0 2%)}
.text-box{max-height:43dvh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#665642 transparent}
@media(max-height:520px) and (orientation:landscape){.text-box{max-height:none}}
.character.yuki.right{width:51%;right:-1%}
@media(max-height:520px) and (orientation:landscape){.character.yuki.right{width:25%;left:21%;right:auto}}
/* Scene layers extend beyond their frame; they must never become scroll containers. */
#app,.screen{overflow:clip}
.reading-controls button{min-height:44px}
.reading-controls{gap:0}.reading-controls button{flex:1;min-width:0;padding:3px 2px;white-space:nowrap}
@media(max-height:520px) and (orientation:landscape){.text-box p{font-size:var(--text-size)}}
@media(max-height:520px) and (orientation:landscape){
 .background{width:43%;background-size:cover;background-position:center top}
 .background.wide{width:43%;background-size:contain;background-position:center}
 .character.single{width:45dvh;height:90dvh;left:10%;bottom:0}
 .character.left{width:40dvh;height:80dvh;left:1%;bottom:0}
 .character.right,.character.yuki.right{width:37dvh;height:74dvh;left:22%;right:auto;bottom:0}
 .character.receptionist.left{height:80dvh}
}
.walking .background{filter:blur(4px);transform:scale(1.02)}
