/* Share the room's full plate; artwork scale is configured per scene. */
.fei-overlay { position:absolute; z-index:4; inset:0; pointer-events:none; overflow:hidden; }
.fei-overlay canvas,.fei-overlay__poster,.fei-overlay__native,.fei-overlay__ground { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }
.fei-overlay__poster,.fei-overlay__native { filter:var(--fei-fallback-filter, brightness(.78) saturate(.86)); transform:translate(var(--fei-offset-x,0%),var(--fei-offset-y,0%)) scale(var(--fei-scale,1)); transform-origin:var(--fei-origin,50% 50%); }
.fei-overlay[data-scene="rooftop"] { --fei-fallback-filter:brightness(.61) saturate(.8); }
.video-floor.is-standby .fei-overlay { --fei-fallback-filter:brightness(.32) saturate(.65); }
.fei-overlay__source { display:none; }
.fei-overlay[hidden],.fei-overlay [hidden] { display:none!important; }
.fei-controls { position:absolute; z-index:5; left:14px; bottom:14px; display:flex; gap:6px; }
.fei-controls button,.fei-review button,.fei-review select { border:1px solid #6e7a8d; border-radius:3px; background:#101823ed; color:#ecf2ff; padding:9px 12px; font:600 12px/1.3 'DM Sans',sans-serif; cursor:pointer; }
.fei-controls button:hover,.fei-review button:hover { background:#23354d; }
.fei-controls button:focus-visible,.fei-review :is(button,a,input,select):focus-visible { outline:2px solid #9dc5ff; outline-offset:3px; }
.fei-controls button:disabled { opacity:.45; cursor:default; }
.fei-review { margin-top:22px; padding-top:18px; border-top:1px solid #38404a; color:#cbd8e9; font:400 13px/1.5 'DM Sans',sans-serif; }
.fei-review h3 { margin:0 0 10px; color:#fff; font:700 15px/1.4 'DM Sans',sans-serif; }
.fei-review nav { display:flex; flex-wrap:wrap; gap:8px 14px; margin-bottom:14px; }
.fei-review a { color:#a9caff; text-underline-offset:3px; }
.fei-review a[aria-current] { color:#fff; }
.fei-review label { display:grid; gap:5px; margin:10px 0; }
.fei-review label:has(input[type="checkbox"]) { display:flex; align-items:center; }
.fei-review input[type="range"] { width:100%; accent-color:#89b6ff; }
.fei-review output { font-variant-numeric:tabular-nums; }
.fei-review p { font-size:12px; color:#9cacbf; margin:10px 0 0; }
.fei-review .fei-review__actions { display:flex; gap:6px; flex-wrap:wrap; }
.fei-review + * { margin-top:12px; }
body.elevator-ui-hidden .fei-controls { visibility:hidden; }
@media(max-width:650px) { .fei-controls { left:8px; bottom:8px; } .fei-controls button { padding:7px 9px; font-size:11px; } }

/* Rooftop dialogue belongs to the frame: white type, no panel or card. */
.rooftop-scene { container-type:inline-size; }
.fei-dialogue { position:absolute; z-index:6; inset:auto 6% 4%; text-align:center; pointer-events:none; color:#fff; text-shadow:0 2px 3px #000,0 0 14px #000b; }
.fei-dialogue[hidden],.fei-dialogue [hidden] { display:none!important; }
body.mq-typography .fei-dialogue .fei-dialogue__line { max-width:52ch; margin:0 auto; color:#fff; font:500 clamp(17px,2.15cqw,28px)/1.35 var(--mq-font-body,"DM Sans",sans-serif); letter-spacing:.005em; text-wrap:balance; }
.fei-dialogue__words { display:block; animation:fei-subtitle-in 280ms ease both; }
body.mq-typography .fei-dialogue__choice { position:relative; max-width:52ch; min-height:44px; padding:7px 4px 7px 24px; border:0; border-radius:0; background:none; box-shadow:none; color:#fffe; font:italic 400 clamp(16px,1.6cqw,22px)/1.4 var(--mq-font-body,"DM Sans",sans-serif); letter-spacing:.005em; text-shadow:inherit; text-wrap:balance; text-decoration:underline; text-decoration-color:#ffffff65; text-underline-offset:5px; text-decoration-thickness:1px; cursor:pointer; pointer-events:auto; touch-action:manipulation; }
.fei-dialogue__reply { min-height:44px; margin-top:8px; }
.fei-dialogue[data-phase="choice"] .fei-dialogue__reply { animation:fei-subtitle-in 320ms ease both; }
/* Reserve the reply line so Fei's subtitle does not jump when a reply appears. */
.fei-dialogue .fei-dialogue__reply[hidden] { display:block!important; visibility:hidden; }
.fei-dialogue__choice::before { content:"›"; position:absolute; left:1px; top:50%; transform:translateY(-53%); font:400 1.4em/1 var(--mq-font-body,"DM Sans",sans-serif); color:#fff; transition:transform 180ms ease; }
.fei-dialogue__choice:hover,.fei-dialogue__choice:focus-visible { color:#fff; text-decoration-color:#fff; }
.fei-dialogue__choice:hover::before,.fei-dialogue__choice:focus-visible::before { transform:translate(3px,-53%); }
.fei-dialogue__choice:focus-visible { outline:1px solid #fff9; outline-offset:7px; }
.fei-controls.fei-controls--cinematic { inset:12px 16px auto auto; gap:16px; }
.fei-controls.fei-controls--cinematic button { min-height:44px; padding:8px 0; border:0; border-radius:0; background:none; color:#fffc; font-weight:400; text-shadow:0 1px 4px #000; }
.fei-controls.fei-controls--cinematic button:hover { background:none; color:#fff; text-decoration:underline; text-underline-offset:4px; }
.fei-controls.fei-controls--cinematic button:focus-visible { outline-color:#fff; }
body.elevator-ui-hidden .fei-dialogue,html.room-preparing .fei-dialogue { visibility:hidden; }
@keyframes fei-subtitle-in { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:650px) { .fei-dialogue { inset-inline:5%; bottom:3%; } .fei-controls.fei-controls--cinematic { inset:4px 10px auto auto; gap:14px; } .fei-dialogue__choice { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .fei-dialogue__words,.fei-dialogue[data-phase="choice"] .fei-dialogue__reply { animation:none; } .fei-dialogue__choice::before { transition:none; } }
