/** * mifi.dev variant – purple/slate palette. * Light by default; dark via prefers-color-scheme (auto) or [data-theme="dark"]. * Extra tuning tokens (--tune-*) for experimentation. */ :root { --color-bg: hsl(260 20% 98%); --color-fg: hsl(260 15% 12%); --color-surface: hsl(260 18% 100%); --color-surface-elevated: hsl(260 15% 100%); --color-border: hsl(260 12% 90%); --color-border-subtle: hsl(260 10% 94%); --color-primary: hsl(262 83% 38%); --color-primary-muted: hsl(262 60% 52%); --color-secondary: hsl(220 25% 35%); --color-secondary-muted: hsl(220 20% 48%); --color-accent: hsl(262 83% 38%); --color-focus-ring: hsl(262 83% 38%); --color-link: hsl(262 83% 38%); --color-link-hover: hsl(262 70% 30%); /* Tuning – adjust without changing structure */ --tune-primary-alt: hsl(262 70% 45%); --tune-secondary-alt: hsl(220 30% 42%); --tune-surface-2: hsl(260 12% 98%); --tune-accent-alt: hsl(262 60% 50%); /* Typography (shared; override in app if needed) */ --font-wordmark: 'Plus Jakarta Sans', var(--font-sans); --font-heading: Fraunces, var(--font-sans); --font-body: Inter, var(--font-sans); --font-heading-opsz: 36; /* optical size for variable Fraunces; no effect on static instances */ } @media (prefers-color-scheme: dark) { :root:not([data-theme]) { --color-bg: hsl(260 18% 8%); --color-fg: hsl(260 12% 94%); --color-surface: hsl(260 20% 12%); --color-surface-elevated: hsl(260 18% 16%); --color-border: hsl(260 15% 22%); --color-border-subtle: hsl(260 12% 18%); --color-primary: hsl(262 70% 65%); --color-primary-muted: hsl(262 50% 65%); --color-secondary: hsl(220 25% 68%); --color-secondary-muted: hsl(220 20% 58%); --color-accent: hsl(262 70% 65%); --color-focus-ring: hsl(262 70% 65%); --color-link: hsl(262 70% 70%); --color-link-hover: hsl(262 65% 82%); --tune-primary-alt: hsl(262 60% 60%); --tune-secondary-alt: hsl(220 30% 65%); --tune-surface-2: hsl(260 15% 11%); --tune-accent-alt: hsl(262 55% 68%); } } [data-theme='light'] { --color-bg: hsl(260 20% 98%); --color-fg: hsl(260 15% 12%); --color-surface: hsl(260 18% 100%); --color-surface-elevated: hsl(260 15% 100%); --color-border: hsl(260 12% 90%); --color-border-subtle: hsl(260 10% 94%); --color-primary: hsl(262 83% 38%); --color-primary-muted: hsl(262 60% 52%); --color-secondary: hsl(220 25% 35%); --color-secondary-muted: hsl(220 20% 48%); --color-accent: hsl(262 83% 38%); --color-focus-ring: hsl(262 83% 38%); --color-link: hsl(262 83% 38%); --color-link-hover: hsl(262 70% 30%); --tune-primary-alt: hsl(262 70% 45%); --tune-secondary-alt: hsl(220 30% 42%); --tune-surface-2: hsl(260 12% 98%); --tune-accent-alt: hsl(262 60% 50%); } [data-theme='dark'] { --color-bg: hsl(260 18% 8%); --color-fg: hsl(260 12% 94%); --color-surface: hsl(260 20% 12%); --color-surface-elevated: hsl(260 18% 16%); --color-border: hsl(260 15% 22%); --color-border-subtle: hsl(260 12% 18%); --color-primary: hsl(262 70% 65%); --color-primary-muted: hsl(262 50% 65%); --color-secondary: hsl(220 25% 68%); --color-secondary-muted: hsl(220 20% 58%); --color-accent: hsl(262 70% 65%); --color-focus-ring: hsl(262 70% 65%); --color-link: hsl(262 70% 70%); --color-link-hover: hsl(262 65% 82%); --tune-primary-alt: hsl(262 60% 60%); --tune-secondary-alt: hsl(220 30% 65%); --tune-surface-2: hsl(260 15% 11%); --tune-accent-alt: hsl(262 55% 68%); }