:root {
  --bg: #000;
  --card: #0e0e10;
  --raised: #1c1c1e;
  --line: rgba(255, 255, 255, .09);
  --text: #f5f5f7;
  --muted: #86868b;
  --faint: #48484a;
  --inverse: #000;
  --red: #ff453a;
  --blur: rgba(22, 22, 24, .72);
  --shadow: 0 30px 80px rgba(0, 0, 0, .55);
}
@media (prefers-color-scheme: light) {
  :root {
    --bg: #fff;
    --card: #f5f5f7;
    --raised: #e8e8ed;
    --line: rgba(0, 0, 0, .08);
    --text: #1d1d1f;
    --muted: #6e6e73;
    --faint: #c7c7cc;
    --inverse: #fff;
    --red: #ff3b30;
    --blur: rgba(255, 255, 255, .75);
    --shadow: 0 30px 80px rgba(0, 0, 0, .14);
  }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
button, input { font: inherit; color: inherit; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 46px;
  padding: 0 22px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 15px;
  transition: transform .15s, opacity .15s, background .2s;
}
.btn svg { width: 18px; height: 18px; }
.btn:active { transform: scale(.97); }
.btn.solid { background: var(--text); color: var(--inverse); }
.btn.solid:hover { opacity: .88; }
.btn.plain { background: var(--raised); color: var(--text); }
.btn.plain:hover { filter: brightness(1.12); }
.btn.small { height: 34px; padding: 0 14px; font-size: 13px; border-radius: 9px; }
.spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--faint); border-top-color: var(--text); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } }
