@layer psi.theme {
  :root, [data-psi-theme="light"] {
    --psi-palette-obsidian: oklch(0.25 0.02 250);
    --psi-palette-platinum: oklch(0.95 0.005 250);
    --psi-palette-sapphire: oklch(0.55 0.21 260);
    --psi-palette-ruby: oklch(0.55 0.22 25);
    --psi-palette-amber: oklch(0.75 0.1582 75);
    --psi-palette-emerald: oklch(0.52 0.19 155);
    --psi-palette-white: oklch(1 0 0);
    --psi-palette-black: oklch(0 0 0);
    --psi-bg-primary: var(--psi-palette-platinum);
    --psi-bg-secondary: oklch(from var(--psi-palette-platinum) calc(l + 0.03) c h);
    --psi-fg-primary: oklch(from var(--psi-palette-obsidian) 0.3 0.03 h);
    --psi-fg-secondary: oklch(from var(--psi-fg-primary) l c h / 0.7);
    --psi-fg-tertiary: oklch(from var(--psi-fg-primary) l c h / 0.5);
    --psi-fg-quaternary: oklch(from var(--psi-fg-primary) l c h / 0.3);
    --psi-fg-primary-inverted: var(--psi-palette-platinum);
    --psi-fg-static-white: oklch(from var(--psi-palette-platinum) 1 0 h);
    --psi-fg-static-black: oklch(from var(--psi-palette-obsidian) 0.25 min(c, 0.03) h);
    --psi-fg-on-accent: var(--psi-fg-static-white);
    --psi-fg-accent: oklch(from var(--psi-palette-sapphire) 0.48 min(c, 0.23) h);
    --psi-fg-success: oklch(from var(--psi-palette-emerald) 0.48 min(c, 0.1187) h);
    --psi-fg-warning: oklch(from var(--psi-palette-amber) 0.48 min(c, 0.1013) h);
    --psi-fg-danger: oklch(from var(--psi-palette-ruby) 0.48 min(c, 0.1946) h);
    --psi-fill-neutral1: oklch(from var(--psi-palette-platinum) calc(l + 0.016) calc(c - 0.001) h);
    --psi-fill-neutral2: var(--psi-palette-platinum);
    --psi-fill-neutral3: oklch(from var(--psi-palette-platinum) calc(l - 0.017) calc(c + 0.001) h);
    --psi-fill-neutral4: oklch(from var(--psi-palette-platinum) calc(l - 0.034) calc(c + 0.002) h);
    --psi-fill-neutral5: oklch(from var(--psi-palette-platinum) calc(l - 0.032) calc(c + 0.003) h);
    --psi-fill-neutral6: oklch(from var(--psi-palette-platinum) calc(l - 0.048) calc(c + 0.004) h);
    --psi-fill-accent: var(--psi-palette-sapphire);
    --psi-fill-success: oklch(from var(--psi-palette-emerald) l min(c, 0.1285) h);
    --psi-fill-warning: var(--psi-palette-amber);
    --psi-fill-danger: var(--psi-palette-ruby);
    --psi-fill-tint-accent: oklch(from var(--psi-fg-accent) l c h / 0.12);
    --psi-fill-tint-success: oklch(from var(--psi-fg-success) l c h / 0.12);
    --psi-fill-tint-warning: oklch(from var(--psi-fg-warning) l c h / 0.12);
    --psi-fill-tint-danger: oklch(from var(--psi-fg-danger) l c h / 0.12);
    --psi-fill-static-white: var(--psi-fg-static-white);
    --psi-border-faint: oklch(from var(--psi-fg-primary) l c h / 0.08);
    --psi-border-neutral: oklch(from var(--psi-fg-primary) l c h / 0.15);
    --psi-border-strong: oklch(from var(--psi-fg-primary) l c h / 0.3);
    --psi-border-focus: var(--psi-fg-accent);
    --psi-scrim-soft: oklch(from var(--psi-bg-primary) l c h / 0.25);
    --psi-scrim-medium: oklch(from var(--psi-bg-primary) l c h / 0.35);
    --psi-scrim-heavy: oklch(from var(--psi-bg-primary) l c h / 0.82);
    --psi-bg-inverted: var(--psi-fg-primary);
    --psi-fg-on-inverted: var(--psi-bg-primary);
  }
}
