:root {
  color-scheme: dark;

  /* Brand foundations */
  --sv-color-night-950: #030812;
  --sv-color-night-900: #06111f;
  --sv-color-night-850: #081726;
  --sv-color-night-800: #0b1d2d;
  --sv-color-night-700: #123142;
  --sv-color-ivory-50: #f8f3e8;
  --sv-color-ivory-100: #efe7d6;
  --sv-color-ivory-300: #cfc4b1;
  --sv-color-brass-300: #e7cc8b;
  --sv-color-brass-400: #d9b867;
  --sv-color-brass-500: #c9a85b;
  --sv-color-brass-600: #a98543;
  --sv-color-field-300: #a8ded7;
  --sv-color-field-400: #79c7c0;
  --sv-color-field-600: #39736f;
  --sv-color-danger-400: #e08e82;

  /* Semantic colors */
  --sv-bg-canvas: var(--sv-color-night-950);
  --sv-bg-primary: var(--sv-color-night-900);
  --sv-bg-secondary: var(--sv-color-night-850);
  --sv-bg-elevated: var(--sv-color-night-800);
  --sv-bg-soft: rgba(255, 255, 255, .035);
  --sv-bg-brass-soft: rgba(217, 184, 103, .075);
  --sv-bg-field-soft: rgba(121, 199, 192, .08);
  --sv-text-primary: var(--sv-color-ivory-50);
  --sv-text-secondary: rgba(239, 231, 214, .76);
  --sv-text-muted: rgba(207, 196, 177, .58);
  --sv-text-on-light: #0a2028;
  --sv-accent-primary: var(--sv-color-brass-400);
  --sv-accent-primary-bright: var(--sv-color-brass-300);
  --sv-accent-primary-deep: var(--sv-color-brass-600);
  --sv-accent-secondary: var(--sv-color-field-400);
  --sv-border-subtle: rgba(231, 204, 139, .16);
  --sv-border-default: rgba(231, 204, 139, .28);
  --sv-border-strong: rgba(231, 204, 139, .54);
  --sv-border-neutral: rgba(255, 255, 255, .11);
  --sv-focus-ring: var(--sv-color-brass-300);

  /* Typography */
  --sv-font-display: "Playfair Display", Georgia, serif;
  --sv-font-body: "DM Sans", system-ui, sans-serif;
  --sv-font-mono: "DM Mono", ui-monospace, monospace;
  --sv-font-size-2xs: .625rem;
  --sv-font-size-xs: .72rem;
  --sv-font-size-sm: .875rem;
  --sv-font-size-md: 1rem;
  --sv-font-size-lg: 1.125rem;
  --sv-font-size-xl: 1.35rem;
  --sv-font-size-2xl: clamp(1.8rem, 3vw, 2.6rem);
  --sv-font-size-3xl: clamp(2.6rem, 5vw, 4.6rem);
  --sv-font-size-hero: clamp(3.5rem, 8vw, 7.5rem);
  --sv-leading-tight: .96;
  --sv-leading-body: 1.65;
  --sv-tracking-label: .12em;
  --sv-tracking-wide: .18em;

  /* Spacing */
  --sv-space-1: .25rem;
  --sv-space-2: .5rem;
  --sv-space-3: .75rem;
  --sv-space-4: 1rem;
  --sv-space-5: 1.25rem;
  --sv-space-6: 1.5rem;
  --sv-space-8: 2rem;
  --sv-space-10: 2.5rem;
  --sv-space-12: 3rem;
  --sv-space-16: 4rem;
  --sv-space-20: 5rem;
  --sv-section-inline: clamp(1.25rem, 5.4vw, 5.5rem);
  --sv-section-block: clamp(4.5rem, 9vw, 8rem);
  --sv-content-max: 1180px;
  --sv-reading-max: 720px;

  /* Shape */
  --sv-radius-xs: 2px;
  --sv-radius-sm: 6px;
  --sv-radius-md: 12px;
  --sv-radius-lg: 20px;
  --sv-radius-pill: 999px;

  /* Effects */
  --sv-shadow-card: 0 24px 60px rgba(0, 0, 0, .28);
  --sv-shadow-elevated: 0 30px 90px rgba(0, 0, 0, .42);
  --sv-shadow-glow: 0 0 24px rgba(217, 184, 103, .18);
  --sv-blur-nav: 16px;

  /* Motion */
  --sv-duration-fast: 160ms;
  --sv-duration-base: 240ms;
  --sv-duration-slow: 520ms;
  --sv-ease-standard: cubic-bezier(.2, .7, .2, 1);

  /* Layering */
  --sv-z-base: 0;
  --sv-z-nav: 20;
  --sv-z-editor: 40;
  --sv-z-dialog: 60;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --sv-duration-fast: 1ms;
    --sv-duration-base: 1ms;
    --sv-duration-slow: 1ms;
  }
}
