/* Exploration owns the visible viewport; entry pages and reader internals keep
   their own scrolling. JS updates only this height after mobile chrome changes. */
html[data-game-viewport="active"],
html[data-game-viewport="active"] body {
  width:100%;height:var(--game-viewport-height,100dvh);min-height:0;
  overflow:hidden;overscroll-behavior:none;
}
html[data-game-viewport="active"] body {position:fixed;inset:0}
html[data-game-viewport="active"] .game-view:not([hidden]),
html[data-game-viewport="active"] .loading:not([hidden]) {
  position:fixed;inset:0;width:100%;
  height:var(--game-viewport-height,100dvh);min-height:0;
}

/* The study's foreground adults need the space below the compact header.
   Keep the full objective and a real 44px hint target, without covering heads. */
@media(max-height:360px) and (orientation:landscape) {
  body.lianxiang-page:not(.classic-page) .objective-card {
    top:54px;width:min(430px,calc(100% - 34px));height:50px;
    display:grid;grid-template-columns:minmax(0,1fr) 88px;
    grid-template-rows:minmax(0,1fr) 2px;gap:2px 8px;
    padding:2px 8px;
  }
  body.lianxiang-page:not(.classic-page) .objective-eyebrow {
    position:absolute;width:1px;height:1px;margin:-1px;
    overflow:hidden;clip-path:inset(50%);white-space:nowrap;
  }
  body.lianxiang-page:not(.classic-page) .objective-card p {
    grid-column:1;grid-row:1;align-self:center;
    min-width:0;margin:0;font-size:13px;line-height:1.2;
  }
  body.lianxiang-page:not(.classic-page) .objective-card .progress-track {
    grid-column:1;grid-row:2;height:2px;
  }
  body.lianxiang-page:not(.classic-page) .objective-card>button {
    grid-column:2;grid-row:1 / 3;align-self:center;
    min-height:44px;padding:0 3px;font-size:10px;line-height:1.2;
    align-items:center;
  }
}
