/* Fullscreen reading scene, based on the approved lamplight / wine / moonlight studies. */
body.in-game{overflow:hidden;background:#170e0d;--game-ivory:#f7ebd8;--game-gold:#dfbd86;--game-muted:#d0bca8;--game-wine:#2d1218;--game-height:100dvh}
.in-game .sidebar{display:none}.in-game .main.reading-main{position:relative;margin:0;padding:0;height:var(--game-height);min-height:0;max-width:none;overflow:hidden}
.game-header{position:absolute;inset:0 0 auto;height:76px;z-index:15;display:flex;align-items:center;gap:24px;padding:0 90px 0 34px;background:linear-gradient(#130d0bc9,transparent);border:0;color:var(--game-ivory)}
.game-header button{background:none;color:inherit;border:0;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px;cursor:pointer}
.game-header svg{width:24px;height:24px}.game-back span{font:26px var(--serif);letter-spacing:3px;white-space:nowrap}
.game-header .game-chapter{font:13px var(--serif);color:var(--game-muted);gap:14px;flex:1;justify-content:center;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-chapter>span{font:11px var(--sans);letter-spacing:2px;flex-shrink:0}.game-source-toggle span{font:13px var(--serif);white-space:nowrap}
.game-body{position:relative;display:block;height:100%;width:100%;min-height:0}
.game-scene.actor-stage{height:100%;width:100%;background:#211411;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(150px,1fr) auto 48px;padding-top:70px;overflow:hidden;color:var(--game-ivory)}
.game-scene.actor-stage::before{inset:0;background:var(--room-image,none) center/cover no-repeat;filter:none;z-index:-1;opacity:1}
.game-scene.actor-stage::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#150b0dd9,transparent 48%);z-index:0}
.game-scene.actor-stage>.portrait{position:relative;grid-row:1;justify-self:center;width:min(100%,768px);height:100%;margin-left:0;overflow:hidden;background:none;z-index:1;min-height:150px}
.game-scene .actor-expression-layers{inset:0}.game-scene .actor-pose{background:transparent;animation:none}.game-scene .actor-layer{filter:none}.game-scene .actor-pose>svg{display:block}
.game-scene .companion-top{position:absolute;top:18px;left:auto;right:30px;z-index:18}.game-scene .live-badge{display:none}
.game-scene .scene-menu summary{background:none;border:0;border-radius:4px;padding:8px;color:var(--game-ivory);min-width:44px;min-height:44px;display:grid;place-items:center}
.game-scene .scene-menu summary svg{width:24px;height:24px}.game-scene .scene-menu>div{top:48px;background:#241a17;color:var(--game-ivory);border:1px solid #78604a;box-shadow:0 12px 28px #0006;width:220px}
.game-scene .scene-menu button,.game-scene .scene-menu label{font-size:13px;color:var(--game-ivory)}.game-scene .scene-menu button:hover{background:#ffffff0d}.game-scene .scene-menu select{background:#36221e;color:var(--game-ivory);font-size:13px}
.game-scene.actor-stage .dialogue-card{grid-row:2;position:relative;inset:auto;margin:0;padding:21px max(34px,5vw) 18px;width:100%;max-height:45dvh;min-height:150px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:40px;align-content:start;background:linear-gradient(100deg,#291014ed,#1e1114e8);border:0;border-top:1px solid #bea07870;border-radius:0;box-shadow:none;z-index:6;overflow:auto}
.game-scene .dialogue-heading{grid-column:1;justify-content:flex-start;gap:22px;margin:0 0 9px}.game-scene .dialogue-heading strong{font:26px var(--serif);letter-spacing:3px;color:var(--game-gold);font-weight:400}.game-scene .dialogue-heading:after{content:'';width:48px;height:1px;background:#bea07880}
.game-scene .source-chip{font-size:11px;color:var(--game-muted);border:0;padding:7px 0;border-radius:0}.game-scene:not([data-dialogue-mode=lesson]) .source-chip{display:none}
.game-scene .dialogue-scroll{grid-column:1;max-height:115px}.game-scene .dialogue-scroll>p{font:21px/1.75 var(--serif);color:var(--game-ivory);margin:0;max-width:65ch;min-height:1.75em}
.game-scene .actor-dialogue-hint{grid-column:1;text-align:left;color:var(--game-muted);font-size:10px;margin:5px 0;opacity:.75}.game-scene[data-typing=true] .actor-dialogue-hint{color:var(--game-muted)}
.game-scene .dialogue-actions{grid-column:1;justify-content:flex-start;gap:18px;margin:8px 0 0}.game-scene .dialogue-actions>button{font-size:12px;color:var(--game-muted);border:0;border-radius:0;padding:5px 0}
.game-scene .actor-choices{grid-column:1;display:flex;gap:12px;margin:12px 0 0;max-width:860px}.game-scene .actor-choices[hidden]{display:none}
.game-scene .actor-choices button{flex:1;position:relative;min-height:46px;max-width:430px;padding:10px 36px 10px 18px;border:1px solid #b48d6999;border-radius:6px;background:#39212688;color:var(--game-ivory);font:16px/1.6 var(--serif);text-align:left;transition:background 150ms ease-out,border-color 150ms ease-out}
.game-scene .actor-choices button:after{content:'›';position:absolute;right:14px;font-size:22px;top:50%;transform:translateY(-50%);color:var(--game-gold)}
.game-scene .actor-choices button:hover{background:#58343b;border-color:#e2b796}.game-scene .actor-choices button:active{background:#70434b}
.game-scene .actor-chat{grid-column:1;margin:10px 0 0;max-width:860px}.game-scene .actor-chat-open{font:12px var(--serif);color:var(--game-muted);min-height:26px;padding:2px 0}.game-scene .actor-chat form{margin-top:8px;gap:8px}.game-scene .actor-chat input{font:14px var(--serif);background:#130d0d80;border:1px solid #92705c;color:var(--game-ivory);padding:11px 14px;border-radius:5px;caret-color:#f0c8a1}.game-scene .actor-chat input::placeholder{color:#d2bdae}
.game-scene .actor-chat button[type=submit]{background:#67404b;border:1px solid #be8b8f;color:var(--game-ivory);font:13px var(--serif);padding:8px 18px}.game-scene .actor-chat-status{color:#ecd5bd;font-size:12px}.game-scene .actor-chat-status button{color:var(--game-ivory);min-height:36px}
.game-scene .dialogue-controls{grid-column:2;grid-row:1/span 7;align-self:end;justify-content:flex-end;gap:12px;flex-wrap:wrap;border:0;padding:0;max-width:230px}.game-scene .dialogue-controls>span{color:var(--game-muted);font-size:11px}.game-scene .dialogue-controls .icon-button,.game-scene .voice-toggle{color:var(--game-muted);font-size:13px;min-height:36px;background:none;border:0}
.game-scene .dialogue-controls .button{font:16px var(--serif);background:none;border:0;border-left:1px solid #9a766b80;border-radius:0;padding:10px 0 10px 24px;color:var(--game-ivory);margin-left:2px;box-shadow:none;min-height:44px}
.game-scene .sound-dock{position:relative;grid-row:3;align-self:center;inset:auto;margin:0 34px;width:min(370px,35%);z-index:10}.game-scene .sound-bar{text-shadow:none}.game-scene .sound-toggle,.game-scene .sound-settings{background:none;border:0;backdrop-filter:none;border-radius:4px;color:var(--game-muted);font-size:11px;min-height:36px;padding:6px 4px}.game-scene .sound-settings{font-size:20px}.game-scene .sound-track{font-size:10px;letter-spacing:0;color:var(--game-muted)}
.game-scene .interaction-rail{position:absolute;inset:auto 34px 6px auto;display:flex;align-items:center;gap:20px;z-index:11}.game-scene .companion-connection{position:static;display:flex;flex-direction:row;gap:0}.game-scene .interaction-buttons{display:flex;flex-direction:row;gap:16px;margin:0}.game-scene .interaction-button{display:flex;align-items:center;flex-direction:row;gap:7px;width:auto;min-height:36px;padding:3px 0;border:0;border-radius:0;background:none;backdrop-filter:none;box-shadow:none;color:var(--game-muted)}
.game-scene .interaction-button svg{width:22px;height:22px}.game-scene .interaction-button small{font:11px var(--serif);color:var(--game-muted)}.game-scene .whisper-button{font:12px var(--serif);background:none;border:0;backdrop-filter:none;padding:8px 0;color:var(--game-muted);min-height:36px}.game-scene .affection-badge,.game-scene .romance-toggle{display:none}
.game-scene .romance-glow,.game-scene .romance-veil{display:none}.game-scene .romance-touch{bottom:calc(var(--dialogue-height,230px) + 48px);top:76px;left:20%;right:8%;z-index:2;cursor:pointer}.game-scene .touch-heart{font-size:36px;line-height:1;color:#dfb8ab}
.game-body .source-pane{position:absolute;top:80px;right:24px;bottom:24px;width:min(480px,calc(100% - 48px));z-index:32;display:flex;flex-direction:column;background:#f4ebdb;border:1px solid #9c8060;border-radius:4px;box-shadow:0 15px 55px #0007;overflow:hidden;color:#3e3028}
.game-body .source-pane[hidden],.game-body .source-scrim[hidden]{display:none!important}.source-scrim{position:absolute;inset:0;background:#09060955;border:0;z-index:30;cursor:default}.drawer-heading{display:flex;align-items:center;justify-content:space-between;padding:21px 22px 17px;gap:16px;border-bottom:1px solid #cdbba3}.drawer-heading span{font-size:10px;color:#755b45}.drawer-heading h2{font:19px/1.5 var(--serif);margin:5px 0 0;max-width:340px;overflow-wrap:anywhere}.drawer-close{border:0;background:none;min-width:44px;min-height:44px;display:grid;place-items:center;color:#68503d}.drawer-close svg{width:22px;height:22px}
.game-body.show-source .companion-pane{display:grid}.game-body .source-toolbar{padding:0 22px;min-height:50px}.game-body .source-content{padding:26px;flex:1;overflow:auto;min-height:0}.game-body .source-content>h1{font-size:24px}.game-body .paper-paragraph{font-size:15px;line-height:2}.game-body .source-footer{padding:14px 22px;font-size:10px}.game-body #notes{font-size:15px;min-height:220px}.game-body .reader-tabs button{font-size:13px}.game-body .source-content .muted{font-size:12px}
.in-game button:focus-visible,.in-game summary:focus-visible,.in-game input:focus-visible,.in-game select:focus-visible{outline:2px solid #e9c59a;outline-offset:3px}.in-game .source-pane button:focus-visible,.in-game .source-pane textarea:focus-visible{outline-color:#805c3a}.in-game ::selection{color:#fff3df;background:#71404a}.in-game ::-webkit-scrollbar{width:6px}.in-game ::-webkit-scrollbar-thumb{background:#aa887259;border-radius:3px}
@media(max-width:800px){
 .game-header{height:64px;padding:0 67px 0 15px;gap:10px}.game-back span{font-size:21px;letter-spacing:2px}.game-header .game-chapter{display:none}.game-source-toggle{margin-left:auto}.game-scene.actor-stage{padding-top:62px;grid-template-rows:minmax(150px,1fr) auto 48px}
 .game-scene.actor-stage>.portrait{width:100%;margin-left:0}.game-scene .companion-top{top:10px;right:12px}.game-scene.actor-stage .dialogue-card{padding:17px 24px 12px;grid-template-columns:minmax(0,1fr);gap:0;max-height:49dvh;min-height:0}.game-scene .dialogue-heading strong{font-size:27px}.game-scene .dialogue-heading{margin-bottom:8px}.game-scene .dialogue-scroll{max-height:90px}.game-scene .dialogue-scroll>p{font-size:18px;line-height:1.65}
 .game-scene .actor-choices{flex-direction:row;gap:8px;margin-top:10px}.game-scene .actor-choices button{max-width:none;min-height:44px;font-size:16px;padding:9px 34px 9px 15px}.game-scene .dialogue-controls{grid-column:1;grid-row:auto;max-width:none;gap:10px;margin-top:7px;padding:0;flex-wrap:nowrap}.game-scene .dialogue-controls .button{margin-left:auto;font-size:14px;padding:8px 0 8px 17px;min-height:36px}.game-scene .dialogue-controls .icon-button,.game-scene .voice-toggle{min-height:30px;font-size:11px}
 .game-scene .actor-chat{margin-top:5px}.game-scene .actor-chat-open{font-size:11px}.game-scene .actor-dialogue-hint{font-size:9px;margin:3px 0}.game-scene .dialogue-actions{margin-top:5px}.game-scene .sound-dock{margin:0 20px;width:125px}.game-scene .sound-track{display:none}.game-scene .interaction-rail{right:22px;bottom:6px;gap:16px}.game-scene .interaction-button small{display:none}.game-scene .interaction-buttons{gap:18px}.game-scene .whisper-button{font-size:11px}.game-scene .sound-toggle{font-size:10px}.game-scene .sound-panel{max-width:calc(100vw - 40px);bottom:44px}
 .game-scene .romance-touch{left:0;right:0;top:64px;bottom:calc(var(--dialogue-height,260px) + 48px)}.game-body .source-pane{top:66px;right:12px;bottom:12px;width:calc(100% - 24px)}.game-body .source-content{padding:24px}.drawer-heading{padding:16px 18px 14px}
}
@media(max-width:390px){.game-scene.actor-stage .dialogue-card{padding-left:18px;padding-right:18px}.game-source-toggle span{font-size:11px}.game-back span{font-size:19px}.game-header{gap:5px}.game-scene .interaction-rail{gap:12px;right:18px}}
@media(max-height:620px){.game-scene.actor-stage{padding-top:52px;grid-template-rows:minmax(100px,1fr) auto 38px}.game-scene.actor-stage>.portrait{min-height:100px}.game-header{height:52px}.game-scene .companion-top{top:4px}.game-scene.actor-stage .dialogue-card{max-height:47dvh;padding-top:10px;padding-bottom:8px}.game-scene .dialogue-heading strong{font-size:21px}.game-scene .dialogue-scroll{max-height:58px}.game-scene .dialogue-scroll>p{font-size:16px}.game-scene .actor-dialogue-hint{display:none}.game-scene .actor-choices{margin-top:6px;flex-direction:row}.game-scene .actor-choices button{font-size:13px;min-height:38px}.game-scene .interaction-rail{bottom:1px}.game-scene .romance-touch{top:52px;bottom:calc(var(--dialogue-height,230px) + 38px)}}
@media(prefers-reduced-motion:reduce){.game-scene .actor-choices button{transition:none}}

.game-header{pointer-events:none}.game-header button{pointer-events:auto}

.game-scene .actor-expression-layers{inset:0}

.expression-gallery figure>svg{display:block;width:100%;aspect-ratio:2/3;background:#30221c}.expression-gallery figure>div{background-color:#30221c}
.game-header .game-chapter{min-width:0}

.actor-expression-layers>canvas.actor-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:none}
.actor-expression-layers>canvas.actor-layer.is-active{opacity:1}
.actor-pose>canvas{display:block;width:100%;height:100%;object-fit:contain}
@media(prefers-reduced-motion:reduce){.actor-expression-layers>canvas.actor-layer{transition:none}}
/* Match the dialogue cap to the visual viewport when a phone keyboard opens. */
.game-scene.actor-stage .dialogue-card{max-height:min(45dvh,calc(var(--game-height) * .45))}
@media(max-width:800px){.game-scene.actor-stage .dialogue-card{max-height:min(49dvh,calc(var(--game-height) * .49))}}
@media(max-height:620px){.game-scene.actor-stage .dialogue-card{max-height:min(47dvh,calc(var(--game-height) * .47))}}

.game-scene.actor-stage::before{opacity:0;transition:opacity 220ms ease-out}.game-scene.actor-stage[data-scene-ready=true]::before{opacity:1}@media(prefers-reduced-motion:reduce){.game-scene.actor-stage::before{transition:none}}
:is(.actor-asset-status,.scene-asset-status){position:absolute;top:82px;left:24px;right:24px;z-index:12;display:flex;justify-content:center;align-items:center;gap:12px;pointer-events:none;font-size:12px;color:#f6e7d3}
:is(.actor-asset-status,.scene-asset-status)[hidden]{display:none}
:is(.actor-asset-status,.scene-asset-status)>span{padding:7px 10px;background:#211411e6;border-radius:6px}
:is(.actor-asset-status,.scene-asset-status) button{pointer-events:auto;min-height:40px;padding:8px 12px;background:#492a32;color:#fff1dc;border:1px solid #b8997b;border-radius:6px}
:is(.actor-asset-status,.scene-asset-status) button[hidden]{display:none}
.sound-native{font-size:12px;line-height:1.8;margin:14px 0;color:inherit}
.sound-native summary{cursor:pointer;min-height:40px;padding:8px 0}
.sound-native audio{display:block;width:100%;max-width:100%;height:44px;margin:8px 0}
@media(max-width:800px){:is(.actor-asset-status,.scene-asset-status){top:68px;left:10px;right:10px;gap:8px;font-size:11px}}

.scene-menu .chapter-save-status{font:12px/1.8 var(--sans);color:var(--game-muted);padding:6px 8px 12px;margin:0;max-width:230px}

.regeneration-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}.regeneration-actions>.text-button{min-height:44px;padding:8px}

.scene-asset-status{top:130px}@media(max-width:800px){.scene-asset-status{top:116px}}
