/* Preserve the approved adult artwork; mouth coordinates use the same contained 16:9 frame as video. */
.stage[data-course="roommates"] .scene-art,
.stage[data-course="roommates"].is-speaking[data-emotion] .scene-art,
.stage[data-course="roommates"].has-intro .scene-art {
  object-fit: contain !important;
  object-position: center !important;
  background: #182023;
  filter: none !important;
  animation: none !important;
  transition: none !important;
  opacity: 1 !important;
  transform: translateX(-50%) !important;
}
.stage[data-course="roommates"] .role-light,
.stage[data-course="roommates"] .scene-shade {display:none !important}
.stage[data-course="roommates"] .speaker-voice-meter {display:none !important}
.stage[data-course="roommates"] .talk-effect span {
  left:calc(var(--talk-x,50%) + var(--talk-direction,1) * 8px) !important;
  top:calc(var(--talk-y,30%) + var(--ray-y,0px)) !important;
  width:var(--ray-length,25px) !important;
  height:4px !important;
  border-radius:3px !important;
  background:#ffd16b !important;
  outline:1px solid #67432373;
  box-shadow:none !important;
  transform-origin:left center;
  transform:translateY(-50%) scaleX(var(--talk-direction,1)) rotate(var(--ray-angle,0deg)) !important;
  animation:roommateMouthRays 560ms ease-in-out infinite alternate !important;
}
.stage[data-course="roommates"] .talk-effect span:nth-child(1) {--ray-y:-7px;--ray-angle:-24deg;--ray-length:18px}
.stage[data-course="roommates"] .talk-effect span:nth-child(2) {--ray-y:0px;--ray-angle:0deg;--ray-length:25px}
.stage[data-course="roommates"] .talk-effect span:nth-child(3) {--ray-y:7px;--ray-angle:24deg;--ray-length:16px}
@keyframes roommateMouthRays {from{scale:.84 1}to{scale:1 1}}
@media(prefers-reduced-motion:reduce){.stage[data-course="roommates"] .talk-effect span{animation:none !important;scale:1}}
