/* Keep normal scrolling and pinch zoom; rapid taps never mean double-tap zoom. */
button, summary, a { touch-action: manipulation; }
.cell { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.help-button::after { content: ''; position: absolute; inset: -7px; }
@media (any-pointer: coarse), (max-width: 1024px) {
  summary { min-height: 44px; }
  .journal-explainer summary, .decision-options summary { padding-block: 12px; }
  footer a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 760px) {
  header, body[data-mode="blitz"] header { padding: 12px 0; }
  h1, body[data-mode="blitz"] h1 { font-size: 36px; }
  .brand p { display: none; }
  header .help-button { top: 14px; }
  .mode-picker { margin-bottom: 12px; }
  body[data-mode="blitz"] .blitz-banner { margin-bottom: 12px; gap: 14px; }
  .blitz-banner strong { font-size: 30px; }
  .blitz-banner span { margin-top: 6px; }
  .blitz-banner .bolt-icon { height: 27px; }
  .turn-status { min-height: 86px; padding: 12px 0; position: sticky; top: 0; z-index: 2; background: var(--paper); border-radius: 12px; }
  .board { max-width: min(100%, max(210px, calc(100svh - 350px))); margin-inline: auto; }
  .game-bottom { padding-top: 12px; }
}
@media (max-width: 360px) {
  h1, body[data-mode="blitz"] h1 { font-size: 31px; }
  .player small { display: none; }
  body[data-mode="blitz"] .mode-picker button { font-size: 20px; letter-spacing: 0; padding-inline: 6px; gap: 4px; }
  .players, .player { gap: 7px; }
  body[data-mode="blitz"] #status, #status { font-size: 23px; }
  #hint { font-size: 12px; }
  .stat>span { white-space: normal; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .players { display: none; }
  .turn-status { min-height: 85px; padding: 10px 0; position: sticky; top: 0; z-index: 2; background: var(--paper); border-radius: 12px; }
  .board { max-width: min(100%, calc(100svh - 110px)); margin-inline: auto; }
}
