/* OneScene UX14 — fix the React Suspense splash viewport overflow ONLY.
   The fallback's original inline styles use minHeight:100dvh plus padding:24px;
   while the app shell has border-box, this fallback does not have border-box sizing.
   Browsers therefore can add padding (and default body margin) beyond the viewport.
   :has() makes this completely transient: after React mounts the actual page,
   default scrolling behaviour is restored without JavaScript or a body class. */
html:has(#root > main[role="status"][aria-live="polite"][style*="100dvh"]),
body:has(#root > main[role="status"][aria-live="polite"][style*="100dvh"]) {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
#root:has(> main[role="status"][aria-live="polite"][style*="100dvh"]) {
  box-sizing: border-box !important;
  height: 100dvh !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
#root > main[role="status"][aria-live="polite"][style*="100dvh"] {
  box-sizing: border-box !important;
  height: 100dvh !important;
  min-height: 0 !important;
  max-height: 100dvh !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(12px, 3vh, 24px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important; /* allows recovery panel on unusually short screens */
  overscroll-behavior: contain;
}
