:root {
  /* Derived from the app icon (scripts/gen-icon.py), so the installed app and
     the web fallback read as the same product. MUST stay in step with
     camo-app/app/_layout.tsx — a test pins them together.

     The ground stays dark and low-chroma deliberately: this is a colour
     matching tool, and saturated chrome shifts how a player perceives the
     colours they are trying to match. Only the hue bias changed, from green
     (the worst possible bias when most scenes are foliage) to the icon's
     indigo. */
  --bg: #0d1018;
  --surface: #151b28;
  --surface-2: #1e2637;
  --text: #e9edf6;
  --text-dim: #94a1b8;

  /* Brand — the icon's sky blue. */
  --accent: #38bdf8;
  --accent-ink: #04121c;
  --accent-deep: #818cf8;

  /* Semantic, deliberately not the accent. Green still means found. */
  --success: #4ade80;
  --warn: #fde047;
  --danger: #fb7185;
  --radius: 14px;
  --pad: 16px;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  min-height: 100dvh;
}

body {
  padding: env(safe-area-inset-top) env(safe-area-inset-right)
    env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.btn {
  display: block;
  width: 100%;
  border: 0;
  border-radius: var(--radius);
  padding: 16px 20px;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  font-family: inherit;
}

.btn-primary {
  background: var(--accent);
  color: var(--accent-ink);
}
.btn-primary:active {
  transform: scale(0.98);
}

.btn-ghost {
  background: transparent;
  color: var(--text-dim);
  font-weight: 600;
  font-size: 15px;
}

.btn:disabled {
  opacity: 0.5;
  pointer-events: none;
}

.stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: var(--pad);
  max-width: 480px;
  margin: 0 auto;
}

h1,
h2 {
  margin: 0;
  line-height: 1.15;
}

.dim {
  color: var(--text-dim);
}

.target-fx {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
