* { box-sizing: border-box; }

html { min-height: 100%; background: var(--bg); }

body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 78% -15%, rgba(0, 122, 255, 0.08), transparent 35%),
    var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
svg { display: block; width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

h1, h2, h3, p { margin: 0; }

h1, h2, h3 { letter-spacing: -0.025em; }

::selection { background: var(--accent-soft); }

:focus-visible {
  outline: 3px solid rgba(0, 122, 255, 0.28);
  outline-offset: 2px;
}

button { border: 0; background: none; }

.money, .metric-value, .account-balance, .amount, .hero-value {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.035em;
}
