:root {
  --rl-obsidian: #0b0d10;
  --rl-graphite: #151a1f;
  --rl-cloud: #f5f7f6;
  --rl-mist: #e9eeec;
  --rl-steel: #a8b0b7;
  --rl-line-dark: #2b3238;
  --rl-line-light: #ccd3d0;
  --rl-signal: #c8ff3d;
  --rl-signal-dark: #6d9400;
  --rl-understand: #4bd7d0;
  --rl-assist: #c8ff3d;
  --rl-resolve: #ff746c;
  --rl-font-display: "Space Grotesk", "Aptos Display", "Segoe UI", sans-serif;
  --rl-font-body: Inter, Aptos, "Segoe UI", sans-serif;
  --rl-space-1: 0.5rem;
  --rl-space-2: 1rem;
  --rl-space-3: 1.5rem;
  --rl-space-4: 2rem;
  --rl-space-6: 3rem;
  --rl-space-8: 4rem;
  --rl-space-12: 6rem;
  --rl-radius-sm: 4px;
  --rl-radius-md: 8px;
  --rl-radius-lg: 16px;
  --rl-duration-fast: 160ms;
  --rl-duration-base: 320ms;
  --rl-duration-story: 600ms;
}

.rl-theme-dark {
  color: var(--rl-cloud);
  background: var(--rl-obsidian);
  font-family: var(--rl-font-body);
}

.rl-display {
  font-family: var(--rl-font-display);
  font-weight: 650;
  letter-spacing: -0.035em;
  line-height: 0.98;
}

.rl-label {
  color: var(--rl-steel);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.rl-button-primary,
.rl-button-secondary {
  align-items: center;
  border-radius: var(--rl-radius-sm);
  display: inline-flex;
  font-weight: 750;
  gap: 0.65rem;
  justify-content: center;
  min-height: 3rem;
  padding: 0.75rem 1.1rem;
  text-decoration: none;
  transition: transform var(--rl-duration-fast) ease, background var(--rl-duration-fast) ease;
}

.rl-button-primary {
  background: var(--rl-signal);
  border: 1px solid var(--rl-signal);
  color: var(--rl-obsidian);
}

.rl-button-secondary {
  background: transparent;
  border: 1px solid var(--rl-line-dark);
  color: var(--rl-cloud);
}

.rl-button-primary:hover,
.rl-button-secondary:hover {
  transform: translateY(-2px);
}

.rl-rule {
  border: 0;
  border-top: 1px solid var(--rl-line-dark);
}

.rl-card {
  background: var(--rl-graphite);
  border: 1px solid var(--rl-line-dark);
  border-radius: var(--rl-radius-md);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
