/* Full-screen presentation for the enhanced story experience. Modern browsers support :has(). */
body:has(.xr-game){background:#070b10}
body:has(.xr-game) .topbar,body:has(.xr-game) .stepper{display:none}
body:has(.xr-game) .wrap{max-width:none;margin:0;padding:0}
body:has(.xr-game) .xr-game{min-height:100vh;max-width:none;padding:18px clamp(14px,2.5vw,34px) 34px;background:radial-gradient(circle at 50% 0,rgba(45,62,78,.3),transparent 42%),linear-gradient(180deg,#0b1118,#070b10 60%,#05080c)}
body:has(.xr-game) .xr-head{max-width:1420px;margin:0 auto 14px}
body:has(.xr-game) .xr-book,body:has(.xr-game) .xr-pager,body:has(.xr-game) .xr-wordgame,body:has(.xr-game) .xr-finish,body:has(.xr-game) .xr-foot{max-width:1420px;margin-left:auto;margin-right:auto}
body:has(.xr-game) .xr-page{width:min(1240px,100%)}
/* Frame ratio per mode, matching what the model returns (1536x1024 = 3/2).
   The page mode shows the illustration whole; the cinematic mode keeps 16/9,
   where the crop is the intended look. Scoped rather than blanket, because a
   blanket 16/9 here silently overrides the 3/2 set in xiaorenshu.css. */
body:has(.xr-game) .xr-generated,body:has(.xr-game) .xr-ink{aspect-ratio:3/2;max-height:74vh}
body:has(.xr-game) .xr-movie .xr-generated,body:has(.xr-game) .xr-movie .xr-ink{aspect-ratio:16/9}
