/* Transparent native-model scenes sit directly in the chapter, like the duel. */
.pv-companions { margin-top:28px; }
.pv-companions-intro { max-width:760px; margin:0 auto 24px!important; text-align:center; font-size:17px; line-height:1.9; color:var(--pv-muted); text-wrap:pretty; }
.pv-companions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.pv-companion { min-width:0; }
.pv-companion-stage { position:relative; width:100%; aspect-ratio:4/3; pointer-events:none; }
.pv-companion-stage img,.pv-companion-stage canvas { display:block; width:100%; height:100%; object-fit:contain; }
.pv-companion-stage canvas { position:absolute; inset:0; opacity:0; }
.pv-companion-stage.is-playing canvas { opacity:1; }
.pv-companion-stage.is-playing img { opacity:0; }
.pv-companion-stage video { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.pv-companion-copy { padding:12px 6px 0; }
.pv-companion-copy h3 { font-size:29px; line-height:1.25; margin:0 0 14px; }
.pv-companion-copy p { font-size:16px; line-height:1.9; color:var(--pv-muted); text-wrap:pretty; }
@media(max-width:680px) {
    .pv-companions-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
    .pv-companions-intro { font-size:16px; margin-bottom:20px!important; }
    .pv-companion-copy { padding:10px 0 0; }
    .pv-companion-copy h3 { font-size:27px; }
}
