/* Lumenfox: one night sky across the page, matching the in-game studio splash. */
:root {
  color-scheme: dark;
  --sky-deep: #0a0818;
  --sky: #1c1038;
  --sky-glow: #34195f;
  --cream: #fff1d6;
  --cream-dim: rgba(255, 241, 214, 0.74);
  --cream-faint: rgba(255, 241, 214, 0.5);
  --gold: #ffd27a;
  --gold-deep: #ffa94d;
  --line: rgba(255, 241, 214, 0.14);
  --panel: rgba(255, 241, 214, 0.05);
  --display: 'Grandstander', 'Arial Rounded MT Bold', system-ui, sans-serif;
  --body: 'Figtree', 'Segoe UI', system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html { background: var(--sky-deep); overflow-x: clip; }
body {
  margin: 0;
  background: var(--sky-deep);
  color: var(--cream);
  font: 400 17px/1.6 var(--body);
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
  position: relative;
}
body::after {
  content: "";
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse 85% 42% at 50% 22%, var(--sky-glow) 0%, var(--sky) 48%, var(--sky-deep) 100%);
}
#stars { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.star { position: absolute; border-radius: 50%; background: var(--cream); box-shadow: 0 0 6px rgba(255, 255, 255, 0.7); }
img { max-width: 100%; }
a { color: var(--gold); }
a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.wrap { max-width: 1040px; margin: 0 auto; }

/* top bar */
.bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 20px; }
.bar .mini { font: 800 22px/1 var(--display); letter-spacing: 0.01em; color: var(--cream); text-decoration: none; display: inline-flex; align-items: center; }
.bar nav { display: flex; gap: 22px; flex-wrap: wrap; }
.bar nav a { color: var(--cream-dim); text-decoration: none; font-weight: 600; font-size: 15px; }
.bar nav a:hover { color: var(--gold); }

/* the wordmark, with the moon "o" and Pixel the fox inside it */
.hero { text-align: center; padding-block: clamp(56px, 12vw, 120px) clamp(48px, 9vw, 96px); }
.word {
  font: 800 clamp(60px, 15vw, 168px)/1 var(--display);
  letter-spacing: 0.01em; white-space: nowrap; margin: 0;
  color: var(--cream);
  text-shadow: 0 0 0.18em rgba(255, 214, 150, 0.45), 0 0 0.5em rgba(255, 190, 110, 0.18);
  display: inline-flex; align-items: baseline;
}
.o { position: relative; display: inline-block; width: 0.62em; height: 0.6em; margin: 0 0.02em; }
.moon {
  position: absolute; left: 50%; top: 52%; width: 0.6em; height: 0.6em; transform: translate(-50%, -50%);
  border-radius: 50%; overflow: hidden;
  background: radial-gradient(circle at 42% 38%, #fffbea 0%, #ffe08a 55%, var(--gold-deep) 100%);
  box-shadow: 0 0 0.12em rgba(255, 196, 92, 0.95), 0 0 0.4em rgba(255, 170, 70, 0.5);
}
.moon img { position: absolute; left: 15%; top: 17%; width: 70%; height: 70%; }
.mini .o { width: 0.66em; height: 0.62em; }
.mini .moon { box-shadow: 0 0 6px rgba(255, 196, 92, 0.8); }
.dust { position: absolute; border-radius: 50%; background: var(--gold); box-shadow: 0 0 8px rgba(255, 190, 90, 0.9); }
@media (prefers-reduced-motion: no-preference) {
  .dust { animation: twinkle 3.2s ease-in-out infinite; }
  @keyframes twinkle { 0%, 100% { opacity: 0.9; } 50% { opacity: 0.25; } }
}
.tagline { font: 600 clamp(20px, 3.2vw, 26px)/1.3 var(--display); color: var(--gold); margin: 28px 0 0; text-wrap: balance; }
.sub { color: var(--cream-dim); max-width: 46ch; margin: 12px auto 0; text-wrap: pretty; }

/* the game */
.game {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 6vw, 72px); align-items: center;
  padding-block: clamp(40px, 8vw, 88px); border-top: 1px solid var(--line);
}
.phone {
  justify-self: center; width: min(300px, 78vw); aspect-ratio: 540 / 1168; max-width: 100%;
  border-radius: 40px; padding: 10px; background: #050310;
  box-shadow: 0 0 0 1px var(--line), 0 30px 80px rgba(10, 4, 30, 0.8), 0 0 90px rgba(140, 80, 255, 0.25);
}
.phone img { width: 100%; height: 100%; object-fit: cover; border-radius: 31px; display: block; }
.eyebrow { font: 700 13px/1 var(--body); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin: 0; }
.game h2 { font: 800 clamp(40px, 6vw, 60px)/1.02 var(--display); margin: 14px 0 0; }
.game .pitch { color: var(--cream-dim); margin: 18px 0 0; max-width: 48ch; }
.facts { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.facts li { border-top: 1px solid var(--line); padding-top: 10px; }
.facts b { display: block; font: 800 26px/1.1 var(--display); color: var(--cream); font-variant-numeric: tabular-nums; }
.facts span { font-size: 13px; color: var(--cream-faint); }
.stores { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.store {
  display: inline-flex; flex-direction: column; justify-content: center; min-width: 168px; padding: 10px 18px;
  border-radius: 14px; border: 1px solid var(--line); background: var(--panel); color: var(--cream);
}
.store small { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cream-faint); }
.store strong { font-size: 17px; font-weight: 700; }

/* studio and contact */
.studio { border-top: 1px solid var(--line); padding-block: clamp(40px, 7vw, 72px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; }
.studio h3 { font: 800 30px/1.1 var(--display); margin: 0; }
.studio p { color: var(--cream-dim); margin: 12px 0 0; max-width: 46ch; }
.contact { display: grid; gap: 14px; align-content: start; }
.contact div { border-top: 1px solid var(--line); padding-top: 10px; }
.contact small { display: block; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cream-faint); }
.contact a { font-weight: 600; color: var(--cream); text-decoration: none; }
.contact a:hover { color: var(--gold); }

footer { border-top: 1px solid var(--line); padding-block: 24px 40px; display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; color: var(--cream-faint); font-size: 14px; }
footer nav { display: flex; gap: 20px; flex-wrap: wrap; }
footer a { color: var(--cream-dim); text-decoration: none; }
footer a:hover { color: var(--gold); }

/* long-form pages (privacy) */
.doc { max-width: 720px; margin: 0 auto; padding-block: 24px 64px; }
.doc h1 { font: 800 clamp(36px, 6vw, 52px)/1.05 var(--display); margin: 24px 0 8px; }
.doc .updated { color: var(--cream-faint); margin: 0 0 32px; font-size: 15px; }
.doc h2 { font: 800 24px/1.2 var(--display); margin: 40px 0 8px; color: var(--gold); }
.doc p, .doc li { color: var(--cream-dim); }
.doc ul { padding-left: 1.2em; }
.doc li { margin-bottom: 6px; }
.doc strong { color: var(--cream); }

@media (max-width: 760px) {
  .game, .studio { grid-template-columns: minmax(0, 1fr); }
  .phone { order: 2; }
  .bar nav { gap: 16px; }
  .bar nav a.hide-sm { display: none; }
  .facts b { font-size: 22px; }
}
