/* Extend the studio's existing black-and-gold dialogue to every speaking scene.
   Background framing, cast coordinates, and the studio's clue-safe inset stay
   with their scene styles. Transparent portraits retain their authored crop. */
.dragon-ui #stage :is(#story:not(.coach-fullscreen) #dialogueCard,#coachEntrancePanel #entranceDialogue,#interludePanel:not([data-kind="quake"]):not([data-kind="berserkUltimate"]) .interlude-dialogue,#endingSpeech){
 background:#030509ee!important;border:0!important;border-top:1px solid #bdb18b65!important;
 border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;color:#fff!important;
}
.dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialogueCard,#coachEntrancePanel #entranceDialogue,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) .interlude-dialogue){
 position:absolute!important;inset:auto 4% 3%!important;width:auto!important;height:auto!important;max-width:none!important;min-height:138px!important;max-height:none!important;
 display:block!important;box-sizing:border-box!important;margin:0!important;padding:22px var(--dialogue-copy-right,50px) 26px var(--dialogue-copy-left,164px)!important;
 transform:none!important;overflow:visible!important;isolation:isolate;
}
.dragon-ui #stage :is(#story:not(.coach-fullscreen) #dialogueCard,#coachEntrancePanel #entranceDialogue)::before,
.dragon-ui #stage :is(#story:not(.coach-fullscreen) #dialogueCard,#coachEntrancePanel #entranceDialogue)::after{content:none!important}
.dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialoguePortraitDock,#coachEntrancePanel #entrancePortrait,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeFace){
 position:absolute!important;inset:0 auto 0 0!important;width:142px!important;height:auto!important;min-height:0!important;max-width:none!important;aspect-ratio:auto!important;
 display:block!important;margin:0!important;padding:0!important;overflow:hidden!important;transform:none!important;
 clip-path:none!important;mask-image:none!important;border:0!important;border-right:1px solid #827853!important;border-radius:0!important;
 background-color:#0a0b0e!important;background-repeat:no-repeat!important;box-shadow:none!important;
}
.dragon-ui #stage #story.recovery-foreshadow #dialoguePortraitDock{width:112px!important}
.dragon-ui #stage #story:not(.coach-fullscreen) #dialoguePortraitDock #finalePortrait{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-width:none!important;
 margin:0!important;padding:0!important;transform:none!important;clip-path:none!important;mask-image:none!important;
 border:0!important;border-radius:0!important;background:#0a0b0e!important;box-shadow:none!important;
}
.dragon-ui #stage #story:not(.coach-fullscreen) #dialoguePortraitDock #finalePortrait:not(.hidden){display:block!important}
.dragon-ui #stage #story:not(.coach-fullscreen) #finalePortraitFace{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;
 clip-path:none!important;mask-image:none!important;border:0!important;border-radius:0!important;background-repeat:no-repeat!important;
}
.dragon-ui #stage :is(#story #finalePortraitLabel,#coachEntrancePanel #entrancePortrait.hidden,#interludePanel #interludeFace.hidden){display:none!important}
.dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialogueCard>.speaker,#coachEntrancePanel #entranceDialogue>.speaker,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeWho){
 position:absolute!important;inset:-34px auto auto 0!important;width:max-content!important;max-width:90%!important;min-height:31px!important;
 display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:5px 10px!important;margin:0!important;padding:5px 14px!important;
 border:0!important;border-left:4px solid #d8bd7b!important;border-radius:0!important;
 background:linear-gradient(90deg,#0a0d13ee,#0a0d1370,transparent)!important;transform:none!important;box-shadow:none!important;text-align:left!important;
}
.dragon-ui #stage :is(#story:not(.coach-fullscreen) #speaker,#coachEntrancePanel #entranceSpeaker,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeWho){
 font:700 20px/1.2 'MF Sans',sans-serif!important;color:#fff!important;writing-mode:horizontal-tb!important;letter-spacing:0!important;
}
.dragon-ui #stage :is(#story #speakerRole,#coachEntrancePanel #entranceRole){
 display:inline!important;width:auto!important;font:500 12px/1.5 'MF Sans',sans-serif!important;color:#e5cea0!important;
}
.dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialogueText,#coachEntrancePanel #entranceText,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeLine){
 font:500 20px/1.65 'MF Sans',sans-serif!important;letter-spacing:.03em!important;color:#fff!important;text-shadow:0 2px 2px #000!important;
 margin:0!important;max-width:none!important;min-height:64px!important;text-align:left!important;line-break:strict;word-break:normal;overflow-wrap:anywhere;
}
.dragon-ui #stage #story:not(.coach-fullscreen):not(.dragon-choice-ui) .dialogue-advance-hint{
 position:absolute!important;right:18px!important;bottom:12px!important;display:block!important;margin:0!important;font-size:0!important;color:#f4e7bd!important;
}
.dragon-ui #stage #story:not(.coach-fullscreen):not(.dragon-choice-ui) .dialogue-advance-hint::after{content:'點擊繼續 ◉';font:500 12px/1.2 'MF Sans',sans-serif}
.dragon-ui #stage #story:has(#dialogueText[data-typing="true"]) .dialogue-advance-hint::after{content:'文字顯示中…'}
.dragon-ui #stage #coachEntrancePanel .entrance-actions{margin:6px 0 0;min-height:0}
.dragon-ui #stage #coachEntrancePanel #entranceStatus{max-width:none;margin:0;color:#e5cea0;font:500 12px/1.4 'MF Sans',sans-serif}
.dragon-ui #stage #coachEntrancePanel #entranceRetry{min-height:44px;border-radius:0;color:#f4e7bd}

/* Questions keep their real answers and confirmation controls in the same rail. */
.dragon-ui #stage #story.dragon-choice-ui #dialogueCard{
 position:absolute!important;inset:auto 4% 3%!important;width:auto!important;height:auto!important;min-height:0!important;
 max-height:calc(100cqh - 86px)!important;margin:0!important;padding:16px 24px!important;display:block!important;overflow:auto!important;
 scrollbar-color:#b8a174 #030509;scrollbar-width:thin;
}
.dragon-ui #stage #story.dragon-choice-ui :is(#dialoguePortraitDock,#dialogueCard>.speaker,.dialogue-advance-hint){display:none!important}
.dragon-ui #stage #story.dragon-choice-ui :is(.dragon-choice-heading,#dialogueText){
 margin:0 0 10px!important;padding:5px 12px!important;min-height:0!important;border:0!important;border-left:4px solid #d8bd7b!important;border-radius:0!important;
 background:linear-gradient(90deg,#0a0d13ee,transparent)!important;color:#fff!important;text-shadow:none!important;text-align:left!important;
 font:600 20px/1.45 'MF Sans',sans-serif!important;
}
.dragon-ui #stage #story.dragon-choice-ui #answers{background:transparent!important;border:0!important;border-top:1px solid #bdb18b45!important;border-bottom:1px solid #bdb18b45!important}
.dragon-ui #stage #story.dragon-choice-ui .answer{border-radius:0!important;min-height:44px!important}
.dragon-ui #stage #story.dragon-choice-ui :is(.answer:focus-visible,.dragon-choice-confirm:focus-visible){outline:2px solid #ffe3a0!important;outline-offset:-2px}
.dragon-ui #stage #story.dragon-choice-ui .dragon-choice-confirm{border-radius:0!important;min-height:44px!important}

/* Stage action is shown by the actors, not narrated inside the dialogue rail.
   Visibility keeps the measured footprint stable for the grounded camera. */
.dragon-ui #stage #interludePanel[data-narration="true"]{--dialogue-copy-left:34px;--dialogue-copy-right:34px}
.dragon-ui #stage #interludePanel[data-narration="true"] :is(#interludeFace,#interludeWho){visibility:hidden!important}
.dragon-ui #stage #interludePanel[data-narration="true"] .interlude-dialogue{visibility:hidden!important;padding-left:34px!important;padding-right:34px!important}
.dragon-ui #stage #interludePanel[data-narration="true"] #interludeLine{color:#dddbd3!important}
.dragon-ui #stage #interludePanel[data-camera-open="true"] .interlude-dialogue{visibility:hidden!important}
.dragon-ui #stage #story.coach-fullscreen :is(#dialogueCard,#finalePortrait,#dialoguePortraitDock){display:none!important}

@container game (max-height:450px){
 .dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialogueCard,#coachEntrancePanel #entranceDialogue,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) .interlude-dialogue){min-height:100px!important;padding:15px var(--dialogue-copy-right,30px) 18px var(--dialogue-copy-left,129px)!important}
 .dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialoguePortraitDock,#coachEntrancePanel #entrancePortrait,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeFace){width:112px!important}
 .dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialogueText,#coachEntrancePanel #entranceText,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeLine){font-size:17px!important;line-height:1.5!important;min-height:51px!important}
 .dragon-ui #stage :is(#story:not(.coach-fullscreen):not(.dragon-choice-ui):not(.recovery-foreshadow) #dialogueCard>.speaker,#coachEntrancePanel #entranceDialogue>.speaker,#interludePanel:not([data-berserk="true"]):not([data-kind="quake"]):not([data-kind="berserkUltimate"]) #interludeWho){top:-31px!important;min-height:28px!important;font-size:18px!important}
 .dragon-ui #stage :is(#story #speaker,#coachEntrancePanel #entranceSpeaker){font-size:18px!important}
 .dragon-ui #stage #story.dragon-choice-ui #dialogueCard{max-height:calc(100cqh - 72px)!important;padding:10px 18px!important}
 .dragon-ui #stage #story.dragon-choice-ui :is(.dragon-choice-heading,#dialogueText){font-size:16px!important;margin-bottom:6px!important}
 .dragon-ui #stage #interludePanel[data-narration="true"]{--dialogue-copy-left:26px;--dialogue-copy-right:26px}
 .dragon-ui #stage #interludePanel[data-narration="true"] .interlude-dialogue{padding-left:26px!important;padding-right:26px!important}
}
@media(max-height:600px) and (orientation:landscape){
 .dragon-ui #stage #story.recovery-foreshadow #dialoguePortraitDock{width:80px!important}
}

/* Only authored speech appears during approaches; the phone line is Adong's. */
.dragon-ui #stage #approachPanel>div{visibility:hidden}
.dragon-ui #stage #approachPanel[data-narration="false"]>div{visibility:visible}
.dragon-ui #stage :is(#approachPanel>div,#cleanerCallPanel .cleaner-call-dialogue){
 position:absolute;inset:auto 4% 3%;width:auto;max-width:none;height:auto;min-height:96px;box-sizing:border-box;
 display:block;margin:0;padding:18px 30px 20px;background:#030509ee;border:0;border-top:1px solid #bdb18b65;
 border-radius:0;box-shadow:none;overflow:visible;color:#fff;
}
.dragon-ui #stage :is(#approachLabel,#cleanerCallPanel .cleaner-call-dialogue>b){
 position:absolute;inset:-34px auto auto 0;display:block;width:max-content;max-width:100%;min-height:31px;box-sizing:border-box;
 margin:0;padding:5px 14px;border:0;border-left:4px solid #d8bd7b;border-radius:0;
 background:linear-gradient(90deg,#0a0d13ee,#0a0d1370,transparent);color:#fff;font:700 20px/1.2 'MF Sans',sans-serif;
}
.dragon-ui #stage :is(#approachBeat,#cleanerCallText){
 display:block;margin:0;font:500 20px/1.65 'MF Sans',sans-serif;letter-spacing:.03em;color:#fff;
 text-shadow:0 2px 2px #000;word-break:normal;overflow-wrap:anywhere;
}
.dragon-ui #stage #approachLabel{font-size:16px;line-height:1.3}
.dragon-ui #stage #cleanerCallPanel .cleaner-call-dialogue{min-height:112px;padding-left:136px}
.dragon-ui #stage #cleanerCallPanel .cleaner-call-dialogue::before{
 content:'';position:absolute;inset:0 auto 0 0;width:112px;border-right:1px solid #827853;
 background:#0a0b0e url('/assets/hero-portraits-v54-a.png') 0 100% / 300% 200% no-repeat;pointer-events:none;
}
.dragon-ui #stage #cleanerCallStatus{display:none}
@container game (max-height:450px){
 .dragon-ui #stage :is(#approachPanel>div,#cleanerCallPanel .cleaner-call-dialogue){min-height:72px;padding:12px 22px 14px}
 .dragon-ui #stage :is(#approachLabel,#cleanerCallPanel .cleaner-call-dialogue>b){top:-29px;min-height:28px;padding:5px 12px;font-size:17px}
 .dragon-ui #stage #approachLabel{font-size:14px}
 .dragon-ui #stage :is(#approachBeat,#cleanerCallText){font-size:17px;line-height:1.5}
 .dragon-ui #stage #cleanerCallPanel .cleaner-call-dialogue{min-height:86px;padding-left:104px}
 .dragon-ui #stage #cleanerCallPanel .cleaner-call-dialogue::before{width:88px}
}
