● Zion Boggan
repos/Darwin/face/src/app/globals.css
zionboggan.com ↗
291 lines · css
History for this file →
1
@tailwind base;
2
@tailwind components;
3
@tailwind utilities;
4
 
5
:root {
6
  --color-canvas: #050607;
7
  --color-teal: #16e0c8;
8
  --color-teal-dim: #0d9e8e;
9
  --color-teal-muted: #0a6b60;
10
  --color-surface-0: #050607;
11
  --color-surface-1: #0a0c0e;
12
  --color-surface-2: #0f1214;
13
  --color-surface-3: #141820;
14
  --color-text-primary: #e8eaed;
15
  --color-text-secondary: #8b929e;
16
  --color-text-muted: #4a525e;
17
 
18
  --ease-expo-out: cubic-bezier(0.16, 1, 0.3, 1);
19
  --ease-expo-inout: cubic-bezier(0.87, 0, 0.13, 1);
20
}
21
 
22
*, *::before, *::after {
23
  box-sizing: border-box;
24
}
25
 
26
html {
27
  background: var(--color-canvas);
28
  color: var(--color-text-primary);
29
  font-family: 'Inter', sans-serif;
30
  -webkit-font-smoothing: antialiased;
31
  -moz-osx-font-smoothing: grayscale;
32
}
33
 
34
@media (pointer: coarse) {
35
  html { cursor: auto; }
36
}
37
 
38
::-webkit-scrollbar {
39
  width: 3px;
40
  height: 3px;
41
}
42
::-webkit-scrollbar-track {
43
  background: var(--color-surface-1);
44
}
45
::-webkit-scrollbar-thumb {
46
  background: var(--color-surface-3);
47
}
48
::-webkit-scrollbar-thumb:hover {
49
  background: var(--color-teal-muted);
50
}
51
 
52
.invert-cursor.is-expanded {
53
  width: 40px !important;
54
  height: 40px !important;
55
}
56
 
57
.font-display {
58
  font-family: 'Space Grotesk', sans-serif;
59
}
60
 
61
.font-ui {
62
  font-family: 'Inter', sans-serif;
63
}
64
 
65
.font-mono {
66
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
67
}
68
 
69
.aurora-blob {
70
  position: fixed;
71
  top: -30vh;
72
  left: 50%;
73
  transform: translateX(-50%);
74
  width: 100vw;
75
  height: 80vh;
76
  background:
77
    radial-gradient(ellipse 60% 50% at 50% 40%, rgba(22, 224, 200, 0.07) 0%, transparent 70%),
78
    radial-gradient(ellipse 40% 35% at 30% 60%, rgba(22, 224, 200, 0.03) 0%, transparent 60%);
79
  pointer-events: none;
80
  z-index: 0;
81
  animation: aurora-drift 12s ease-in-out infinite alternate;
82
}
83
 
84
@keyframes aurora-drift {
85
  0%   { opacity: 0.7; transform: translateX(-50%) scale(1); }
86
  100% { opacity: 1;   transform: translateX(-50%) scale(1.06); }
87
}
88
 
89
 
90
.hero-section {
91
  position: relative;
92
  height: 100dvh;
93
  min-height: 600px;
94
  overflow: hidden;
95
  isolation: isolate;
96
  contain: layout paint size;
97
  display: flex;
98
  flex-direction: column;
99
  align-items: center;
100
  justify-content: center;
101
}
102
 
103
.hero-organism {
104
  position: absolute;
105
  inset: 0;
106
  z-index: 0;
107
  overflow: hidden;
108
  pointer-events: none;
109
}
110
.hero-organism canvas {
111
  position: absolute !important;
112
  inset: 0;
113
  width: 100% !important;
114
  height: 100% !important;
115
}
116
 
117
.surface-pane {
118
  border: 1px solid rgba(22, 224, 200, 0.08);
119
  background: rgba(10, 12, 14, 0.85);
120
  backdrop-filter: blur(4px);
121
  -webkit-backdrop-filter: blur(4px);
122
  height: 100%;
123
  overflow: hidden;
124
  display: flex;
125
  flex-direction: column;
126
  padding: 2rem 2.25rem;
127
  border-radius: 2px;
128
}
129
 
130
.answer-prose p {
131
  margin: 0 0 0.85em 0;
132
}
133
.answer-prose p:last-child {
134
  margin-bottom: 0;
135
}
136
.answer-prose strong {
137
  color: #f4f6f8;
138
  font-weight: 600;
139
}
140
.answer-prose em {
141
  color: var(--color-text-secondary);
142
  font-style: italic;
143
}
144
.answer-prose .ml-list {
145
  margin: 0.4em 0 0.85em 0;
146
  padding: 0;
147
  list-style: none;
148
  display: flex;
149
  flex-direction: column;
150
  gap: 0.4em;
151
}
152
.answer-prose .ml-list li {
153
  position: relative;
154
  padding-left: 1.1em;
155
  line-height: 1.6;
156
  font-size: 0.95em;
157
}
158
.answer-prose .ml-list li::before {
159
  content: "›";
160
  position: absolute;
161
  left: 0;
162
  top: 0;
163
  color: var(--color-teal);
164
  font-family: 'JetBrains Mono', monospace;
165
}
166
.answer-prose .ml-code {
167
  font-family: 'JetBrains Mono', monospace;
168
  font-size: 0.85em;
169
  background: var(--color-surface-2);
170
  color: var(--color-teal);
171
  padding: 0.08em 0.36em;
172
  border-radius: 2px;
173
  word-break: break-word;
174
}
175
 
176
.magnetic {
177
  display: inline-block;
178
}
179
 
180
.fade-rise {
181
  opacity: 0;
182
  transform: translateY(24px);
183
}
184
 
185
.fade-rise.is-visible {
186
  opacity: 1;
187
  transform: translateY(0);
188
  transition: opacity 0.6s var(--ease-expo-out), transform 0.6s var(--ease-expo-out);
189
}
190
 
191
.mask-line {
192
  overflow: hidden;
193
}
194
 
195
.mask-line-inner {
196
  display: block;
197
  transform: translateY(110%);
198
  transition: transform 0.9s var(--ease-expo-out);
199
}
200
 
201
.mask-line.is-revealed .mask-line-inner {
202
  transform: translateY(0);
203
}
204
 
205
.mobile-surface-pane {
206
  padding: 1.5rem 1.25rem;
207
  min-height: calc(100dvh - 200px);
208
}
209
 
210
@media (max-width: 1023px) {
211
  .surface-pane {
212
    height: auto;
213
    min-height: 0;
214
  }
215
}
216
 
217
@supports (height: 100dvh) {
218
  .hero-section {
219
    height: 100dvh;
220
  }
221
}
222
 
223
@media (pointer: coarse) {
224
  input[type="text"],
225
  input[type="search"],
226
  button {
227
    min-height: 44px;
228
  }
229
 
230
  .aurora-blob {
231
    opacity: 0.4;
232
    animation: none;
233
  }
234
}
235
 
236
.fixed .xterm,
237
body:has([data-darwin-workspace]) {
238
  cursor: auto;
239
}
240
[data-darwin-workspace] * {
241
  cursor: auto;
242
}
243
 
244
.xterm .xterm-viewport {
245
  scrollbar-width: thin;
246
  scrollbar-color: #141820 transparent;
247
}
248
.xterm .xterm-viewport::-webkit-scrollbar {
249
  width: 6px;
250
}
251
.xterm .xterm-viewport::-webkit-scrollbar-track {
252
  background: transparent;
253
}
254
.xterm .xterm-viewport::-webkit-scrollbar-thumb {
255
  background: #141820;
256
  border-radius: 3px;
257
}
258
.xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {
259
  background: #0a6b60;
260
}
261
.xterm,
262
.xterm .xterm-screen {
263
  height: 100% !important;
264
}
265
 
266
@keyframes sheet-up {
267
  from { transform: translateY(100%); }
268
  to   { transform: translateY(0); }
269
}
270
 
271
@keyframes glow-breathe {
272
  0%, 100% { opacity: 0.55; }
273
  50%      { opacity: 1; }
274
}
275
 
276
@media (prefers-reduced-motion: reduce) {
277
  *, *::before, *::after {
278
    animation-duration: 0.01ms !important;
279
    transition-duration: 0.01ms !important;
280
  }
281
  .mask-line-inner {
282
    transform: none !important;
283
  }
284
  .fade-rise {
285
    opacity: 1 !important;
286
    transform: none !important;
287
  }
288
  .aurora-blob {
289
    animation: none !important;
290
  }
291
}