1/* highlight.js theme must be imported before tailwind */
2@import "highlight.js/styles/github.css";
3
4@import "tailwindcss";
5@import "tw-animate-css";
6@plugin "@tailwindcss/typography";
7
8@custom-variant dark (&:where(.dark, .dark *));
9
10:root {
11 /* Blue-accented light palette. Primary is GitHub-style indigo-blue so
12 action buttons are clearly coloured, not a flat dark grey. */
13 --background: hsl(0 0% 100%);
14 --foreground: hsl(222 20% 18%);
15 --card: hsl(0 0% 100%);
16 --card-foreground: hsl(222 20% 18%);
17 --popover: hsl(0 0% 100%);
18 --popover-foreground: hsl(222 20% 18%);
19 --primary: hsl(212 88% 44%);
20 --primary-foreground: hsl(0 0% 100%);
21 --secondary: hsl(214 32% 95%);
22 --secondary-foreground: hsl(222 20% 18%);
23 --muted: hsl(214 32% 96%);
24 --muted-foreground: hsl(220 9% 46%);
25 --accent: hsl(214 88% 95%);
26 --accent-foreground: hsl(212 88% 35%);
27 --destructive: hsl(0 84.2% 60.2%);
28 --destructive-foreground: hsl(0 0% 98%);
29 --border: hsl(214 32% 88%);
30 --input: hsl(214 32% 88%);
31 --ring: hsl(212 88% 44%);
32 --radius: 0.5rem;
33}
34
35.dark {
36 /* Softer dark — background lifted slightly, text dimmed to reduce glare. */
37 --background: hsl(220 13% 15%);
38 --foreground: hsl(220 10% 72%);
39 --card: hsl(220 13% 18%);
40 --card-foreground: hsl(220 10% 72%);
41 --popover: hsl(220 13% 18%);
42 --popover-foreground: hsl(220 10% 72%);
43 --primary: hsl(213 88% 62%);
44 --primary-foreground: hsl(220 20% 10%);
45 --secondary: hsl(220 12% 24%);
46 --secondary-foreground: hsl(220 10% 72%);
47 --muted: hsl(220 12% 24%);
48 --muted-foreground: hsl(220 8% 52%);
49 --accent: hsl(220 20% 28%);
50 --accent-foreground: hsl(213 88% 72%);
51 --destructive: hsl(0 65% 50%);
52 --destructive-foreground: hsl(0 0% 98%);
53 --border: hsl(220 12% 26%);
54 --input: hsl(220 12% 26%);
55 --ring: hsl(213 88% 62%);
56}
57
58@theme inline {
59 --color-background: var(--background);
60 --color-foreground: var(--foreground);
61 --color-card: var(--card);
62 --color-card-foreground: var(--card-foreground);
63 --color-popover: var(--popover);
64 --color-popover-foreground: var(--popover-foreground);
65 --color-primary: var(--primary);
66 --color-primary-foreground: var(--primary-foreground);
67 --color-secondary: var(--secondary);
68 --color-secondary-foreground: var(--secondary-foreground);
69 --color-muted: var(--muted);
70 --color-muted-foreground: var(--muted-foreground);
71 --color-accent: var(--accent);
72 --color-accent-foreground: var(--accent-foreground);
73 --color-destructive: var(--destructive);
74 --color-destructive-foreground: var(--destructive-foreground);
75 --color-border: var(--border);
76 --color-input: var(--input);
77 --color-ring: var(--ring);
78
79 --radius-lg: var(--radius);
80 --radius-md: calc(var(--radius) - 2px);
81 --radius-sm: calc(var(--radius) - 4px);
82
83 --font-sans: ui-sans-serif, system-ui, sans-serif;
84 --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
85
86 --animate-accordion-down: accordion-down 0.2s ease-out;
87 --animate-accordion-up: accordion-up 0.2s ease-out;
88}
89
90@keyframes accordion-down {
91 from {
92 height: 0;
93 }
94 to {
95 height: var(--radix-accordion-content-height);
96 }
97}
98
99@keyframes accordion-up {
100 from {
101 height: var(--radix-accordion-content-height);
102 }
103 to {
104 height: 0;
105 }
106}
107
108* {
109 border-color: var(--border);
110}
111
112body {
113 background-color: var(--background);
114 color: var(--foreground);
115}
116
117/* ── Dark-mode overrides for highlight.js (imported above) ──────────────── */
118.dark .hljs {
119 background: hsl(220, 13%, 16%);
120 color: hsl(220, 10%, 85%);
121}
122.dark .hljs-keyword,
123.dark .hljs-selector-tag,
124.dark .hljs-built_in {
125 color: #ff7b72;
126}
127.dark .hljs-string,
128.dark .hljs-attr {
129 color: #a5d6ff;
130}
131.dark .hljs-comment {
132 color: hsl(220, 8%, 50%);
133}
134.dark .hljs-number,
135.dark .hljs-literal {
136 color: #79c0ff;
137}
138.dark .hljs-title,
139.dark .hljs-name {
140 color: #d2a8ff;
141}
142.dark .hljs-type {
143 color: #ffa657;
144}