/* ── Dreamprism Games ─────────────────────────────────────────────
   Single-screen landing page. Locked viewport, no scroll anywhere.
   ──────────────────────────────────────────────────────────────── */

:root {
  --bg:  #111111;
  --ink: #ffffff;
}

*, *::before, *::after { box-sizing: border-box; }

/* Viewport lock ─ the page can never scroll or rubber-band,
   including iOS Safari / Android Chrome. */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  background: var(--bg);
}

body {
  position: fixed;
  inset: 0;
  color: var(--ink);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
               Inter, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
  touch-action: none;             /* kills pinch/pan scroll on mobile */
  -webkit-user-select: none;
  user-select: none;
}

/* ── Stage ────────────────────────────────────────────────────── */

.stage {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: max(24px, env(safe-area-inset-top))
           max(24px, env(safe-area-inset-right))
           max(24px, env(safe-area-inset-bottom))
           max(24px, env(safe-area-inset-left));
}

.wordmark {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.22em;
  text-indent: 0.22em;              /* re-centres against the trailing track */
  text-align: center;
  color: var(--ink);
  animation: rise 1.1s cubic-bezier(.2, .7, .2, 1) both;
}

/* When dreamprism.png is added, swap the <h1> in index.html for the
   <img> and this rule takes over. See README. */
.logo__img {
  display: block;
  width: min(58vw, 560px);
  max-height: 46dvh;
  height: auto;
  object-fit: contain;
  animation: rise 1.1s cubic-bezier(.2, .7, .2, 1) both;
}

@keyframes rise {
  from { opacity: 0; transform: translateY(14px) scale(0.985); }
  to   { opacity: 1; transform: none; }
}

/* ── Small screens ────────────────────────────────────────────── */

@media (max-width: 640px) {
  .wordmark  { letter-spacing: 0.18em; text-indent: 0.18em; }
  .logo__img { width: min(76vw, 440px); max-height: 40dvh; }
}

/* Short landscape phones: keep everything inside the viewport. */
@media (orientation: landscape) and (max-height: 520px) {
  .logo__img { width: min(46vw, 420px); max-height: 62dvh; }
}

@media (prefers-reduced-motion: reduce) {
  .wordmark, .logo__img { animation: none !important; }
}
