:root {
  --bg0: #0f1419;
  --bg1: #1a2332;
  --ink: #e8eef7;
  --muted: #9aabbf;
  --accent: #6ec8a0;
  --stage: #0b1016;
  --font: "Segoe UI", system-ui, sans-serif;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  font-family: var(--font);
  color: var(--ink);
  background:
    radial-gradient(ellipse 80% 50% at 20% 0%, #243044 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 90% 80%, #1e3a32 0%, transparent 50%),
    linear-gradient(160deg, var(--bg0), var(--bg1));
}

#app {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.75rem 0.75rem 1.5rem;
  gap: 0.6rem;
}

.topbar {
  width: min(420px, 100%);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.brand {
  margin: 0;
  font-size: clamp(1.25rem, 5vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--accent);
}

.hud {
  margin: 0;
  font-size: 0.8rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.hint {
  margin: 0;
  max-width: 420px;
  width: 100%;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}

.hint-break {
  display: block;
  margin-top: 0.35rem;
}

.legend {
  list-style: none;
  margin: 0;
  padding: 0;
  width: min(420px, 100%);
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  font-size: 0.78rem;
  color: var(--muted);
}

.legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.swatch {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 2px;
  display: inline-block;
}

.swatch.road {
  background: #6e7278;
}

.swatch.pin {
  background: #b8956a;
}

.swatch.paddock {
  background: #c2a878;
}

.swatch.pond {
  background: #5b8f9e;
}

.swatch.house {
  background: #d8dde4;
}
