/* Workshop touch + play parity — Frame Lab 44px + safe areas */
.sk-nav a,
.sk-game-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 12px 14px;
  box-sizing: border-box;
}
.sk-game-nav .inner {
  min-height: 48px;
  gap: 0.5rem;
}
.sk-game-nav .lbl {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
/*  The strip printed on top of itself on the fourteen film pages.
 *
 *  Every page declares `.sk-game-nav .inner { display: flex; overflow-x: auto }`,
 *  so the scroller looks declared — but the home page and the workshop hub also
 *  give the links `flex: 0 0 auto`, and the film pages do not. Without an
 *  explicit flex-shrink of 0, fourteen flex items each shrink to a fourteenth
 *  of the bar while the `white-space: nowrap` those pages set holds every label
 *  at full width. Each title then overflows its own box and paints through its
 *  neighbours, and `overflow-x` never engages because the row never grows wider
 *  than the bar. The rule above is the other half of the sum: it makes each
 *  link an inline-flex box with a 44px floor, which is exactly the kind of item
 *  a shrinking flex row squeezes hardest.
 *
 *  Fixed here rather than on fourteen pages, and scoped through `.inner` so it
 *  outranks each page's own `.sk-game-nav a` without needing !important. */
.sk-game-nav .inner {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  background: inherit;
}
.sk-game-nav .inner::-webkit-scrollbar { display: none; }
.sk-game-nav .inner > a,
.sk-game-nav .inner > .lbl {
  flex: 0 0 auto;
  white-space: nowrap;
}
/*  "Now showing" is the heading for the strip, not a stop on it, so it stays
 *  put while the films scroll past. The background is inherited rather than
 *  named because the hub paints the bar #14110F and the film pages #120f0c. */
.sk-game-nav .inner > .lbl {
  position: sticky;
  left: 0;
  z-index: 1;
  background: inherit;
  padding-right: 0.5rem;
}
/* Poster cards are excluded: .film-poster, .cabinet-poster and .poster are
   full-bleed title cards that happen to link at /play/, and taking over their
   display would collapse each one to a padding-sized chip. */
a[href*="/play/"]:not([class*="poster"]) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 12px 16px;
  box-sizing: border-box;
}
.play-escape a,
.film-hop a {
  min-height: 44px;
  min-width: 44px;
}
/* A floor, not a ceiling — :where() holds this at zero specificity so a stage
   that already asks for bigger thumb pads (climb runs 52/56px) keeps them. */
:where(.padbar button, .controls button) {
  min-height: 44px;
  min-width: 44px;
}

/* ----------------------------------------------------------- thumb map
 *  Master-game Phase 0. Chrome floor stays 44px. Primary play verbs
 *  (Begin / Again / move / jump) must not shrink to overlapping chips
 *  on a 390 sit. :where() keeps this a floor — Climb's 52/56/60 pads
 *  still win. SK-2A landscape used to drop to 36px; that is a house
 *  bug, not a film choice. */
html.play-frame {
  --sk-thumb-chrome: 44px;
  --sk-thumb-play: 48px;
}
html.play-frame :where(
  .sk-house-menu-toggle,
  .sk-house-menu-panel button,
  .sk-house-menu-panel a,
  .sk-play-result-actions button,
  .sk2a-controls button,
  .sk-a11y-btn,
  #skAccessBtn,
  #go,
  #retry,
  #end-again,
  #climb-result-again,
  #climb-fab-restart,
  #nursery-again-btn,
  #lr-again-btn,
  [data-ac-start],
  [data-ac-restart]
) {
  min-height: var(--sk-thumb-chrome, 44px);
  min-width: var(--sk-thumb-chrome, 44px);
  box-sizing: border-box;
}

/* Beat the SK-2A landscape 36px shrink and Access's 40px chip.
   Primary sit verbs stay thumb-sized on 390 / 844×390. */
html.play-frame.sk-play-stage .sk2a-controls button,
html.play-frame.sk-play-stage .wrap > .sk2a-controls button,
html.play-frame.sk-play-stage .sk-a11y-btn,
html.play-frame.sk-play-stage #skAccessBtn,
html.play-frame.sk-play-stage .sk-play-result-actions button,
html.play-frame.sk-play-stage #go,
html.play-frame.sk-play-stage #end-again,
html.play-frame.sk-play-stage #climb-result-again {
  min-height: 44px !important;
  min-width: 44px !important;
  box-sizing: border-box;
}

@media (max-width: 430px) {
  html.play-frame.sk-play-stage :where(.padbar button, .pad button, #pad button, #grVirtualPad button) {
    min-height: var(--sk-thumb-play, 48px) !important;
    min-width: 44px;
  }
}
