/* Edge-to-edge event art with concise, bottom-aligned reading controls. */
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-shell{display:block;height:100dvh;width:100%;max-width:1200px;overflow:hidden;padding:0;position:relative;isolation:isolate;background:#19151f}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header{position:absolute;inset:0 0 auto;z-index:3;display:flex;align-items:center;gap:8px;padding:max(8px,env(safe-area-inset-top)) 12px 10px;border:0;background:linear-gradient(#17121bf5,#17121bcc);min-height:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header h1{font-size:1rem;line-height:1.4;margin:3px 0 0;letter-spacing:.02em}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header>div:first-child{flex:1;min-width:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header-actions{max-width:none;display:flex;flex-wrap:nowrap;gap:3px;align-items:center}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header-actions .text-button{min-width:36px;min-height:36px;padding:6px}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header-actions .text-button span{display:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-position{width:auto;white-space:nowrap;font-size:.75rem}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-location{margin:2px 0 0;font-size:.8125rem;line-height:1.3}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .event-phase{display:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-art{position:absolute;inset:0;min-height:0;width:100%;height:100%;overflow:hidden;isolation:isolate;background:#100e15}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-image{position:absolute;inset:var(--scene-header,64px) 0 0;width:100%;height:calc(100% - var(--scene-header,64px));min-height:0;max-height:none;aspect-ratio:auto;display:block;margin:0;padding:0;border:0;border-radius:0;background:transparent}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-image img{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;object-position:center top;transform:none;animation:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-image picture{display:contents}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .novel-scenery{position:absolute;inset:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .novel-cast{inset:var(--scene-header,80px) 0 0;--portrait-unit:min(calc((100vw - 20px) / var(--cast-span)),calc((100dvh - var(--scene-header,80px)) / 3.35));--portrait-offset:0px}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .novel-standee{--standee-centre:50%}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .novel-standee.is-listening{display:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-scroll{position:absolute;inset:auto 0 0;z-index:2;display:flex;flex-direction:column;height:auto;min-height:0;max-height:calc(100dvh - var(--scene-header,80px) - 110px);padding:12px 14px max(12px,env(safe-area-inset-bottom));margin:0;width:100%;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;background:linear-gradient(#211c28e8,#211c28fa);border-radius:16px 16px 0 0;box-shadow:0 -6px 24px #100c1630;border-top:1px solid #ffffff35;pointer-events:auto;gap:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .rpg-text-window{flex:none;min-height:0;max-height:none;overflow:visible;width:100%;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .rpg-text-window p{font-size:1rem;line-height:1.6;margin:4px 0 0;letter-spacing:.01em}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .rpg-name{font-size:.875rem;line-height:1.4;margin:0;color:#e6b9d1}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .rpg-narration .rpg-name{display:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .rpg-text-window .rpg-scene-context{font-size:.875rem;line-height:1.5;margin:0 0 5px;color:#d5c7d6}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .rpg-text-window .narrative-result{font-size:.875rem;line-height:1.4;margin:7px 0 0;color:#edcdb0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-footer{position:relative;display:block;min-height:0;padding:9px 0 0;margin:0;flex:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-controls{display:flex;align-items:center;gap:8px;margin:0;width:100%;padding:0;min-height:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-next{position:static;inset:auto;min-width:0;max-width:none;min-height:44px;width:auto;flex:1;margin:0;padding:10px 12px;white-space:normal;font-size:1rem}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-previous{position:static;inset:auto;min-height:44px;margin:0;padding:8px 10px;flex:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice-intro{padding:0;font-size:.875rem;line-height:1.4}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice-prompt{font-size:1rem;line-height:1.5;margin:4px 0 8px}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choices{gap:7px;margin:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-question{font-size:.875rem;line-height:1.4;margin:0 0 2px}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice{padding:10px 12px;min-height:44px;margin:0}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice strong{font-size:1rem;line-height:1.35}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice-detail{font-size:.875rem;line-height:1.4;margin-top:3px}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-reading-tools{display:none}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-no-time{margin:8px 0 0;font-size:.8125rem}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .reading-overflow{font-size:.8125rem;margin:0 0 5px}
#narrative-stage .story-layout.cinema-art-only .narrative-art{position:absolute;inset:0;height:100dvh;width:100%;overflow:hidden}
#narrative-stage .story-layout.novel-summary .narrative-art{display:none}

/* Management decisions show observed stakes beside the action. */
.work-forecast{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;padding:12px;background:#ffffff06;border:1px solid #ffffff18;border-radius:10px;margin:12px 0}
.work-forecast>div{display:grid;gap:4px}.work-forecast span{font-size:.875rem;color:#c7baca}.work-forecast strong{font-size:1.05rem}.work-forecast p{grid-column:1/-1;font-size:.8125rem;line-height:1.5;margin:0;color:#c9c0d0}.work-forecast .forecast-alert{color:#f1c9a8}
.work-regulars{margin:14px 0;border:1px solid #ffffff20;border-radius:10px;padding:12px}.work-regulars summary{font-size:.9375rem;cursor:pointer}.work-regulars summary svg{width:18px;vertical-align:middle;margin-right:5px}.work-regulars ul{padding:0;list-style:none}.work-regulars li{display:grid;gap:4px;padding:8px 0;border-bottom:1px solid #ffffff10}.work-regulars li span,.work-regulars p{font-size:.875rem;color:#cdbed0}
.roster-decision .decision-portrait{width:94px;height:118px;max-height:20dvh;margin:0 auto 8px;object-fit:contain}.roster-decision h2{font-size:1.2rem;line-height:1.4}.roster-decision .decision-intro{font-size:.875rem;line-height:1.5;margin:8px 0}.decision-signals{display:grid;gap:7px;text-align:left;margin:12px 0;padding:10px;background:#ffffff08;border-radius:9px}.decision-signals>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.875rem}.decision-signals span{color:#cbb9c8}.decision-signals small{font-weight:400}.decision-skill{font-size:.8125rem;line-height:1.5;color:#d6c1d1}.roster-decision .settings-note{font-size:.8125rem;line-height:1.5}.roster-decision .button{min-height:44px;margin:5px 0;padding:10px 12px}.roster-decision .text-button{min-height:40px}
.day-summary{text-align:center}.day-summary h2{font-size:1.3rem;line-height:1.5;margin:12px 0 18px}.day-profit{display:grid;gap:8px;background:#ffffff07;border:1px solid #ffffff16;border-radius:14px;padding:18px 10px}.day-profit span{font-size:.9375rem}.day-profit strong{font-size:2rem;color:#c0e7d3}.day-profit small{font-size:.8125rem;color:#c9b9c9}.day-condition{display:flex;justify-content:center;gap:20px;margin:16px 0;font-size:.875rem}.day-condition b{font-size:1.2rem}.day-wallet{font-size:.875rem;color:#d6c3d4}.day-summary .button{width:100%;margin-top:14px;min-height:46px}.day-summary .text-button{margin:8px auto 0;min-height:44px}.day-summary-modal{max-width:440px}

#narrative-stage .story-layout .narrative-header>div:first-child>span{font-size:.75rem;line-height:1.4;letter-spacing:0;display:block}

#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice-copy,#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-choice strong{display:block;line-height:1.35}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-footer{padding-top:7px}

#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header{flex-wrap:nowrap}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header-actions{width:auto}
#narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header-actions .icon{display:block}
#narrative-stage .story-layout.novel-summary .narrative-shell{display:flex;flex-direction:column;height:100dvh;padding:0;overflow:hidden}
#narrative-stage .story-layout.novel-summary .narrative-header{position:relative;inset:auto;flex:none;padding:12px}
#narrative-stage .story-layout.novel-summary .narrative-scroll{position:relative;inset:auto;max-height:none;min-height:0;flex:1;padding:12px;overflow:auto;width:100%}
#narrative-stage .story-layout.novel-summary .narrative-next{position:static;width:100%;margin:8px 0}



/* Keep the decision itself on a small phone; the full roster remains a list. */
#modal:has(.roster-decision){padding:18px;max-height:calc(100dvh - 16px);width:calc(100% - 16px)}
.roster-decision .decision-portrait{float:right;width:58px;height:76px;margin:22px 0 6px 10px}
.roster-decision h2{margin:8px 0;font-size:1.1rem}
.roster-decision .eyebrow{font-size:.75rem;letter-spacing:0}
.roster-decision .decision-intro{margin:6px 0}
.roster-decision .decision-signals{clear:both;margin:8px 0;padding:8px;gap:5px}
.roster-decision .decision-skill{margin:7px 0}
.roster-decision .settings-note{margin:5px 0 0}
#narrative-stage .story-layout .cinema-previous{white-space:nowrap;min-width:64px}
/* Brief end-of-day notices keep their action visible too. */
#modal.trip-complete-modal,#modal:has(>.payday-scene),#modal:has(>.payday-opening-art){padding:18px;max-height:calc(100dvh - 16px);width:calc(100% - 16px)}
#modal.trip-complete-modal .trip-complete-art{margin:0 0 10px;text-align:center}
#modal.trip-complete-modal .modal-life-art{display:block;height:min(20dvh,130px);width:100%;object-fit:contain;margin:0;aspect-ratio:auto}
#modal.trip-complete-modal h2,#modal:has(>.payday-scene) h2,#modal:has(>.payday-opening-art) h2{font-size:1.2rem;line-height:1.4;margin:8px 0}
#modal.trip-complete-modal p{font-size:.9375rem;line-height:1.5;margin:8px 0}
#modal.trip-complete-modal .modal-summary{margin:10px 0;padding:10px 0;gap:8px}
#modal.trip-complete-modal .modal-summary strong{font-size:1.5rem}
#modal.trip-complete-modal .button,#modal:has(>.payday-scene) .button,#modal:has(>.payday-opening-art) .button{min-height:44px;padding:10px 12px;margin-top:10px}
#modal>.payday-scene,#modal>.payday-opening-art{display:block;width:100%;height:min(17dvh,105px);object-fit:contain;margin:0 0 8px}
#modal .payday-copy{font-size:.9375rem;line-height:1.5;margin:8px 0}
#modal .payday-note{font-size:.8125rem;line-height:1.5;margin:8px 0}
#modal .payday-ledger{gap:5px;padding:8px 0;margin:8px 0}
#modal .payday-ledger>div{font-size:.875rem;line-height:1.4}

#modal.trip-complete-modal .modal-life-art img{width:100%;height:100%;object-fit:contain;object-position:center}
#modal>.payday-opening-art img{width:100%;height:100%;object-fit:contain;object-position:center}

/* A new event announces its title once, before revealing dialogue or decisions. */
#narrative-stage .story-layout.event-opening-mode .narrative-shell{display:flex;flex-direction:column;position:relative;width:100%;height:100dvh;padding:0;background:linear-gradient(155deg,#312435,#19151f 70%);overflow:hidden}
#narrative-stage .story-layout.event-opening-mode .narrative-shell::after{display:none}
#narrative-stage .story-layout.event-opening-mode .narrative-header,#narrative-stage .story-layout.event-opening-mode .narrative-art{display:none}
#narrative-stage .story-layout.event-opening-mode .narrative-scroll{position:relative;inset:auto;flex:1;min-height:0;max-height:none;width:100%;display:flex;flex-direction:column;justify-content:center;padding:24px max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom));background:none;overflow:auto}
#narrative-stage .story-layout.event-opening-mode .event-opening{margin:auto 0 0;max-width:none;text-align:center}
#narrative-stage .story-layout.event-opening-mode .event-opening h1{font-family:var(--serif);font-size:clamp(1.5rem,6vw,2rem);font-weight:500;line-height:1.6;margin:14px 0 0;letter-spacing:.03em;text-wrap:balance}
#narrative-stage .story-layout.event-opening-mode .event-opening-kicker{font-size:.875rem;line-height:1.6;color:#d8bccb;margin:0}
#narrative-stage .story-layout.event-opening-mode .narrative-footer{position:relative;inset:auto;flex:none;min-height:0;padding:30px 0 0;margin:0 0 auto}
#narrative-stage .story-layout.event-opening-mode .narrative-next{position:static;inset:auto;width:100%;min-height:48px;margin:0;padding:12px 16px;font-size:1rem}

@media(max-height:500px) and (orientation:landscape){
 #narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-art{width:45%}
 #narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-scroll{inset:var(--scene-header,80px) 0 0 45%;width:55%;max-height:none;border-radius:0}
 #narrative-stage .story-layout:is(.cinema-mode,.dialogue-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .novel-cast{--portrait-unit:min(calc((45vw - 20px) / var(--cast-span)),calc((100dvh - var(--scene-header,80px)) / 3.35))}
}

/* Keep the authored moment on one page: narration and actual speech are distinct. */
#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-bubble{position:relative;padding:7px 10px;margin:0;border:1px solid #889ca44d;border-left:3px solid #a7c2ca;border-radius:10px;background:#34424bbf}
#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-bubble+.dialogue-bubble{margin-top:7px}
#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-bubble.is-tsumugi{border-color:#c38fa355;border-left-color:#deb3c7;background:#4e3547aa;margin-left:16px}
#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-speaker{display:block;font-size:.75rem;line-height:1.4;font-weight:600;color:#c7e0e6}
#narrative-stage .story-layout #narrative-line.dialogue-exchange .is-tsumugi .dialogue-speaker{color:#f0cbdd}
#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-bubble p{margin:3px 0 0;line-height:1.5}
#narrative-stage .story-layout #narrative-line.dialogue-exchange>.rpg-scene-context{margin:0 0 7px;font-size:.875rem;line-height:1.45;color:#dbcddc}
#narrative-stage .story-layout #narrative-line.dialogue-exchange>.dialogue-between{margin:6px 0 7px}
#narrative-stage .story-layout #narrative-line.dialogue-exchange>.narrative-result{padding-top:7px;border-top:1px solid #ffffff1f;font-size:.875rem}
@media(max-width:350px){#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-bubble{padding:6px 8px}#narrative-stage .story-layout #narrative-line.dialogue-exchange .dialogue-bubble p{line-height:1.4}}
/* Long reply labels still leave the NG action visible on the smallest phones. */
@media(max-width:350px) and (max-height:620px){
 #narrative-stage .story-layout.novel-choosing:has(#narrative-line.dialogue-exchange) .narrative-scroll{max-height:calc(100dvh - var(--scene-header,80px) - 85px);padding:8px 12px max(8px,env(safe-area-inset-bottom))}
 #narrative-stage .story-layout.novel-choosing:has(#narrative-line.dialogue-exchange) .narrative-choices{gap:4px}
 #narrative-stage .story-layout.novel-choosing:has(#narrative-line.dialogue-exchange) .narrative-choice{padding:7px 10px;min-height:44px}
 #narrative-stage .story-layout.novel-choosing:has(#narrative-line.dialogue-exchange) .narrative-footer{padding-top:5px}
 #narrative-stage .story-layout.novel-choosing #narrative-line.dialogue-exchange .dialogue-bubble{padding:5px 8px}
 #narrative-stage .story-layout.novel-choosing #narrative-line.dialogue-exchange>.rpg-scene-context{margin-bottom:5px}
}

/* The encounter shows the already observed grade; it never predicts this reply. */
#narrative-stage .event-customer-rank{display:inline-flex;flex:none;align-items:center}
#narrative-stage .event-customer-rank .customer-rank-badge{display:flex;align-items:center;justify-content:center;min-width:30px;height:32px;padding:2px 6px;gap:0;border-radius:8px;box-sizing:border-box}
#narrative-stage .event-customer-rank .customer-rank-badge strong{font-size:1.2rem;line-height:1;font-family:Georgia,serif}
#narrative-stage .event-customer-rank .customer-rank-badge>span{display:none}
#narrative-stage .narrative-header-actions{gap:6px}

/* Reveal a spoken moment without changing its measured size every character. */
#narrative-stage [data-unrevealed="true"]{visibility:hidden;pointer-events:none}
#narrative-stage [data-manual-reply="true"] [data-dialogue-part="main"][data-unrevealed="true"]{display:none}
#narrative-stage .dialogue-typed{display:grid;white-space:pre-wrap;overflow-wrap:anywhere}
#narrative-stage .dialogue-type-space,#narrative-stage .dialogue-type-ink{grid-area:1/1;min-width:0}
#narrative-stage .dialogue-type-space{visibility:hidden;pointer-events:none;user-select:none}
#narrative-stage .dialogue-type-ink{white-space:pre-wrap}
#narrative-stage .dialogue-prose>p{margin:3px 0 0}
#narrative-stage .dialogue-arriving .narrative-art{animation:none}
#narrative-stage .dialogue-arriving #narrative-line{animation:dialogue-copy-arrive 160ms ease-out both}
#narrative-stage .novel-choosing .narrative-choices{animation:dialogue-copy-arrive 160ms ease-out both}
#narrative-stage .expression-enter{animation:dialogue-face-arrive 200ms ease-out both}
#narrative-stage .expression-previous{animation:dialogue-face-leave 200ms ease-out both;pointer-events:none!important}
@keyframes dialogue-scene-arrive{from{opacity:.2}to{opacity:1}}
@keyframes dialogue-copy-arrive{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes dialogue-face-arrive{from{opacity:0}to{opacity:1}}
@keyframes dialogue-face-leave{from{opacity:1}to{opacity:0}}
#narrative-stage .motion-paused :is(.narrative-art,#narrative-line,.narrative-choices,.expression-enter,.expression-previous){animation:none!important}
#narrative-stage .motion-paused .expression-previous{display:none}
@media(prefers-reduced-motion:reduce){
 #narrative-stage :is(.dialogue-arriving .narrative-art,.dialogue-arriving #narrative-line,.narrative-choices,.expression-enter,.expression-previous){animation:none!important}
 #narrative-stage .expression-previous{display:none}
}

/* Career paintings are landscape scenes, not portrait standees. Keep the full
   composition visible in reading, choices and outcome states. */
#narrative-stage .story-layout.career-cinema:is(.cinema-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;}
#narrative-stage .story-layout.career-cinema:is(.cinema-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-header{position:relative;inset:auto;grid-row:1;}
#narrative-stage .story-layout.career-cinema:is(.cinema-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-art{position:relative;inset:auto;grid-row:2;height:100%;min-height:0;}
#narrative-stage .story-layout.career-cinema:is(.cinema-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-image{inset:0;width:100%;height:100%;}
#narrative-stage .story-layout.career-cinema:is(.cinema-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .cinema-image img{object-fit:contain;object-position:center;}
#narrative-stage .story-layout.career-cinema:is(.cinema-mode):not(.cinema-art-only):not(.novel-summary):not(.event-opening-mode) .narrative-scroll{position:relative;inset:auto;grid-row:3;max-height:60dvh;width:100%;}

#narrative-stage .story-layout.career-cinema .cinema-image::before{content:"";position:absolute;inset:-24px;background-image:var(--career-backdrop);background-size:cover;background-position:center;filter:blur(24px);opacity:.25;pointer-events:none}

#narrative-stage .story-layout .onuma-entrance.entrance-settled img.onuma-entrance-person{animation:none!important;opacity:1;transform:none}
#narrative-stage [data-presentation-phase="entrance"] .narrative-next{visibility:hidden;pointer-events:none}
.narrative-confirm{padding:14px;border:1px solid #d1b0c6;border-radius:16px;background:#251e2d;color:#fff2eb}.narrative-confirm>strong{font-size:1.08rem}.narrative-confirm p{font-size:.95rem;line-height:1.6}.narrative-confirm .button{width:100%;margin:8px 0 0}
