/* Shared responsive safety layer. Load after each game's own stylesheet. */

html {
  min-width: 0;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-width: 0;
}

img,
svg,
canvas,
video {
  max-width: 100%;
}

button,
a,
[role="button"] {
  touch-action: manipulation;
}

:focus-visible {
  outline: 3px solid #1565c0 !important;
  outline-offset: 3px;
}

.home-button {
  position: fixed;
  top: max(10px, env(safe-area-inset-top));
  left: max(10px, env(safe-area-inset-left));
}

.win-overlay,
.instructions-overlay,
.modal-overlay {
  padding:
    max(12px, env(safe-area-inset-top))
    max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom))
    max(12px, env(safe-area-inset-left));
  overflow-y: auto;
}

.win-content,
.instructions-content,
.modal-content {
  max-width: min(92vw, 640px);
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
}

@media (max-width: 480px) {
  .game-title-header {
    width: 100%;
    max-width: 100%;
    padding-inline: 56px !important;
    font-size: clamp(1.2rem, 6vw, 1.75rem) !important;
    line-height: 1.12;
    overflow-wrap: normal;
    word-break: normal;
  }
}

/* Fixed 100vh canvases otherwise hide controls on short phones/landscape. */
@media (max-width: 768px) and (max-height: 700px) {
  html,
  body {
    height: auto !important;
    min-height: 100dvh;
    overflow-y: auto !important;
  }

  body {
    position: static !important;
  }

  .game-container {
    height: auto !important;
    min-height: 100dvh;
    max-height: none !important;
    overflow-y: auto !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }
}

@media (hover: none) {
  .home-button:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
