/* ── Reset & base ──────────────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  /* Prevent tap highlights and callout menus on mobile */
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  /* dvh accounts for iOS Safari / Android Chrome retractable browser chrome */
  height: 100dvh;
  overflow: hidden;
  background: #0a0800;
  color: #ffa500;
  font-family: Consolas, 'Courier New', monospace;
  /* Disable page-level touch gestures (scroll, zoom, swipe-back).
     Avalonia captures touches on the canvas; the JS overlay is pointer-
     events:none, so no user gesture reaches the browser's default actions. */
  touch-action: none;
  overscroll-behavior: none;
}

/* ── Avalonia canvas container ─────────────────────────────────────────── */
/* Always fills the full visual viewport.
   The Viewbox inside Avalonia (GameView.axaml) scales game content to fit
   the upper portion; the lower ~220 px of the viewport is empty Avalonia
   canvas that acts as the virtual-control touch zone (handled by C#). */
#out {
  position: fixed;
  inset: 0;
}

/* ── Splash screen ─────────────────────────────────────────────────────── */
.avalonia-splash {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #0a0800;
  z-index: 9999;
  transition: opacity 0.5s ease;
}

.avalonia-splash.loaded {
  opacity: 0;
  pointer-events: none;
}

.splash-title {
  /* Scales gracefully between tiny phones and large tablets */
  font-size: clamp(1.4rem, 6vw, 2.5rem);
  font-weight: bold;
  color: #ffa500;
  letter-spacing: 0.4em;
  text-shadow: 0 0 24px #ffa500;
}

.splash-subtitle {
  font-size: clamp(0.65rem, 2.5vw, 0.85rem);
  color: #aa6000;
  margin-top: 14px;
  letter-spacing: 0.25em;
}
