/* Bhuchi Arcade V154 — live-audit corrections. */

/* Prevent a homepage flash while a direct ?game= URL boots. app.js removes
   this class immediately after it resolves the requested game. */
html.direct-game-route #hub {
  visibility: hidden !important;
}

/* Keep every 960x600 gallery image at its native 16:10 ratio. The #hub
   specificity intentionally wins over legacy home-v114.css rules. */
#hub .grid .card-emoji {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  aspect-ratio: 16 / 10 !important;
  border: 0 !important;
  border-radius: 0 !important;
}
#hub .grid .card-cover {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* The player owns exactly one viewport. Third-party content must not enlarge
   the game shell or turn the page into a vertically scrolling layout. */
html:has(#player:not([hidden])),
body:has(#player:not([hidden])) {
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
}
#player:not([hidden]) {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  overflow: hidden !important;
  contain: layout paint !important;
}
#player:not([hidden]) .stage-wrap,
#player:not([hidden]) .stage,
#player:not([hidden]) #frame {
  max-height: 100dvh !important;
  overflow: hidden !important;
}

/* Comfortable touch targets on mobile without enlarging desktop navigation. */
@media (pointer: coarse), (max-width: 700px) {
  #hub a,
  #hub button,
  .site-footer a,
  .unified-dock button {
    min-height: 44px;
  }
}
