/* style.css — page frame, centering, CRT overlay. The game itself is drawn
   entirely on <canvas>; this only frames it. */
* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  width: 100%; height: 100%;
  background: #000;
  color: #cfcfcf;
  font-family: "Segoe UI", system-ui, sans-serif;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}

#stage {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  /* subtle vignette behind the letterbox */
  background:
    radial-gradient(ellipse at center, #0a0a12 0%, #000 75%);
}

#screen {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  display: block;
  box-shadow: 0 0 0 2px #111, 0 0 40px 6px rgba(0, 40, 80, 0.35);
  background: #000;
}

/* Loading / first-gesture hint */
#tap-hint {
  position: fixed;
  left: 50%; bottom: 6%;
  transform: translateX(-50%);
  font-size: 14px;
  letter-spacing: 0.08em;
  color: #9fb7d0;
  opacity: 0.0;
  transition: opacity 0.4s;
  pointer-events: none;
  text-shadow: 0 1px 3px #000;
}
#tap-hint.show { opacity: 0.85; }

/* On-screen touch controls (hidden unless coarse pointer detected) */
#touch {
  position: fixed;
  inset: 0;
  display: none;
  pointer-events: none;
  z-index: 5;
}
#touch.on { display: block; }
.tbtn {
  position: absolute;
  pointer-events: auto;
  bottom: 22px;
  width: 78px; height: 78px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.07);
  border: 2px solid rgba(255, 255, 255, 0.18);
  color: #cfe3f7;
  font-size: 30px;
  display: flex; align-items: center; justify-content: center;
  user-select: none; -webkit-user-select: none; touch-action: none;
}
.tbtn:active { background: rgba(255, 255, 255, 0.18); }
#t-left  { left: 20px; }
#t-right { left: 112px; }
#t-jump  { right: 24px; width: 96px; height: 96px; }
