1 @import 'tailwindcss';
2 @import './fonts.css';
3 @import './post.css';
4
5 :root {
6 /* Min Content Width */
7 --content-width: 25rem;
8
9 /* Typography */
10 --font-sans:
11 Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell,
12 Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
13 --font-serif: Besley, Baskerville, Georgia, Cambria, 'Times New Roman', Times, serif;
14 --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
15
16 --font-size-s: 0.8125rem;
17 --font-size-m: 0.9375rem;
18 --font-size-l: 1.0625rem;
19
20 --font-weight-light: 350;
21 --font-weight-regular: 400;
22 --font-weight-bold: 500;
23
24 --spacing-s: -0.08em;
25 --spacing-m: -0.02em;
26
27 /* Light Mode Colors (Default) */
28 --bg: #ffffff;
29 --text-primary: rgba(0, 0, 0, 0.85);
30 --text-secondary: rgba(0, 0, 0, 0.4);
31 --text-tertiary: rgba(0, 0, 0, 0.24);
32 --border: rgba(0, 0, 0, 0.1);
33 --accent: #ff6b35;
34 --selection: rgba(197, 217, 50, 0.2);
35 --code-bg: rgba(0, 0, 0, 0.06);
36 --mark: rgba(197, 217, 50, 0.3);
37
38 /* Syntax Theme */
39 --astro-code-foreground: rgba(0, 0, 0, 0.85);
40 --astro-code-background: rgba(0, 0, 0, 0.03);
41 --astro-code-token-constant: rgba(0, 0, 0, 0.85);
42 --astro-code-token-string: rgba(0, 0, 0, 0.85);
43 --astro-code-token-comment: rgba(0, 0, 0, 0.35);
44 --astro-code-token-keyword: rgba(0, 0, 0, 0.55);
45 --astro-code-token-parameter: rgba(0, 0, 0, 0.85);
46 --astro-code-token-function: rgba(0, 0, 0, 0.85);
47 --astro-code-token-string-expression: rgba(0, 0, 0, 0.55);
48 --astro-code-token-punctuation: rgba(0, 0, 0, 0.55);
49 --astro-code-token-link: rgba(0, 0, 0, 0.55);
50 }
51
52 /* Light Mode (Explicit) */
53 html.light {
54 --bg: #ffffff;
55 --text-primary: rgba(0, 0, 0, 0.85);
56 --text-secondary: rgba(0, 0, 0, 0.4);
57 --text-tertiary: rgba(0, 0, 0, 0.24);
58 --border: rgba(0, 0, 0, 0.1);
59 --accent: #ff6b35;
60 --selection: rgba(197, 217, 50, 0.2);
61 --code-bg: rgba(0, 0, 0, 0.06);
62 --mark: rgba(197, 217, 50, 0.3);
63
64 /* Syntax Theme */
65 --astro-code-foreground: rgba(0, 0, 0, 0.85);
66 --astro-code-background: rgba(0, 0, 0, 0.03);
67 --astro-code-token-constant: rgba(0, 0, 0, 0.85);
68 --astro-code-token-string: rgba(0, 0, 0, 0.85);
69 --astro-code-token-comment: rgba(0, 0, 0, 0.35);
70 --astro-code-token-keyword: rgba(0, 0, 0, 0.5);
71 --astro-code-token-parameter: rgba(0, 0, 0, 0.85);
72 --astro-code-token-function: rgba(0, 0, 0, 0.85);
73 --astro-code-token-string-expression: rgba(0, 0, 0, 0.55);
74 --astro-code-token-punctuation: rgba(0, 0, 0, 0.55);
75 --astro-code-token-link: rgba(0, 0, 0, 0.55);
76 }
77
78 /* Dark Mode (Explicit) */
79 html.dark {
80 --bg: #060d0c;
81 --text-primary: rgba(255, 255, 255, 0.9);
82 --text-secondary: rgba(255, 255, 255, 0.4);
83 --text-tertiary: rgba(255, 255, 255, 0.24);
84 --border: rgba(255, 255, 255, 0.1);
85 --accent: #ff6b35;
86 --selection: rgba(197, 217, 50, 0.15);
87 --code-bg: rgba(255, 255, 255, 0.06);
88 --mark: rgba(197, 217, 50, 0.2);
89
90 /* Syntax Theme */
91 --astro-code-foreground: rgba(255, 255, 255, 0.9);
92 --astro-code-background: rgba(255, 255, 255, 0.03);
93 --astro-code-token-constant: rgba(255, 255, 255, 0.9);
94 --astro-code-token-string: rgba(255, 255, 255, 0.9);
95 --astro-code-token-comment: rgba(255, 255, 255, 0.35);
96 --astro-code-token-keyword: rgba(255, 255, 255, 0.55);
97 --astro-code-token-parameter: rgba(255, 255, 255, 0.9);
98 --astro-code-token-function: rgba(255, 255, 255, 0.9);
99 --astro-code-token-string-expression: rgba(255, 255, 255, 0.55);
100 --astro-code-token-punctuation: rgba(255, 255, 255, 0.55);
101 --astro-code-token-link: rgba(255, 255, 255, 0.55);
102 }
103
104 body {
105 background-color: var(--bg);
106 font-family: var(--font-sans);
107 font-size: var(--font-size-m);
108 line-height: 1.75;
109 color: var(--text-primary);
110 font-display: swap;
111 word-wrap: break-word;
112 overflow-wrap: break-word;
113 margin: 0;
114 min-height: 100vh;
115 display: flex;
116 flex-direction: column;
117 box-sizing: border-box;
118 letter-spacing: var(--spacing-m);
119 padding: 6rem 1.5rem 1.5rem 1.5rem;
120 overscroll-behavior-y: contain;
121 transition: background-color 0.2s ease-out;
122 }
123
124 @media (max-width: 768px) {
125 body {
126 padding: 4rem 1.25rem 1.25rem 1.25rem;
127 }
128 }
129
130 html {
131 overscroll-behavior-y: contain;
132 -webkit-overflow-scrolling: touch;
133 scroll-behavior: smooth;
134 }
135
136 html.view-transitions-enabled {
137 view-transition-name: enabled;
138 }
139
140 @view-transition {
141 navigation: auto;
142 }
143
144 html.view-transitions-disabled {
145 view-transition-name: none;
146 }
147
148 @media (prefers-reduced-motion: reduce) {
149 @view-transition {
150 navigation: none;
151 }
152 }
153
154 ::selection {
155 background-color: var(--selection);
156 }
157
158 :focus {
159 outline: 2px solid var(--accent);
160 outline-offset: 2px;
161 }
162
163 :focus:not(:focus-visible) {
164 outline: none;
165 }
166
167 :focus-visible {
168 outline: 2px solid var(--accent);
169 outline-offset: 2px;
170 }
171
172 body[data-width] {
173 max-width: var(--content-width);
174 }
175
176 body[data-centered='true'] {
177 margin: 0 auto;
178 }
179
180 main {
181 flex: 1;
182 display: flex;
183 flex-direction: column;
184 box-sizing: border-box;
185 }
186
187 .date {
188 margin: 0;
189 font-weight: var(--font-weight-light);
190 color: var(--text-secondary);
191 flex-shrink: 0;
192 letter-spacing: var(--spacing-s);
193 font-variant-numeric: tabular-nums;
194 font-feature-settings:
195 'tnum' 1,
196 'zero' 0,
197 'cv01' 1,
198 'cv02' 1,
199 'calt' 1,
200 'ss03' 1,
201 'ordn' 1;
202 }
203
204 .date .month {
205 letter-spacing: var(--spacing-m);
206 }
207
208 .sr-only {
209 border: 0;
210 padding: 0;
211 margin: 0;
212 position: absolute !important;
213 height: 1px;
214 width: 1px;
215 overflow: hidden;
216 clip: rect(1px 1px 1px 1px);
217 clip: rect(1px, 1px, 1px, 1px);
218 clip-path: inset(50%);
219 white-space: nowrap;
220 }