:root {
  color-scheme: dark;
  --color-primary: var(--rv-color-primary);
  --color-primary-hover: var(--rv-color-primary-hover);
  --color-background: var(--rv-color-background);
  --color-surface: var(--rv-color-surface);
  --color-text: var(--rv-color-ink);
  --color-text-muted: var(--rv-color-muted);
  --color-border: var(--rv-color-border);
  --color-success: var(--rv-color-success);
  --color-warning: var(--rv-color-warning);
  --color-danger: var(--rv-color-danger);
  --primary: var(--rv-color-primary);
  --primary-hover: var(--rv-color-primary-hover);
  --background: var(--rv-color-background);
  --background-deep: var(--rv-color-background-deep);
  --surface: var(--rv-color-surface);
  --surface-hover: var(--rv-color-surface-hover);
  --text: var(--rv-color-ink);
  --text-muted: var(--rv-color-muted);
  --text-faint: var(--rv-color-faint);
  --border: var(--rv-color-border);
  --border-strong: var(--rv-color-border-strong);
  --success: var(--rv-color-success);
  --warning: var(--rv-color-warning);
  --danger: var(--rv-color-danger);
  --font-family: var(--rv-font-body);
  --font-heading: var(--rv-font-display);
  --font-body: var(--rv-font-body);
  --font-mono: var(--rv-font-mono);
  --radius-sm: var(--rv-radius-sm);
  --radius-md: var(--rv-radius-md);
  --radius-lg: var(--rv-radius-lg);
  --spacing-unit: var(--rv-spacing-unit);
  --sidebar-width: var(--rv-sidebar-width);
  --header-height: var(--rv-header-height);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  min-height: 100%;
  font-family: var(--font-family);
  background: #161616;
  color: #dcddde;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid rgba(127, 109, 242, 0.9);
  outline-offset: 2px;
}

::selection {
  background: rgba(127, 109, 242, 0.28);
}

* {
  scrollbar-width: thin;
  scrollbar-color: #404040 transparent;
}
