muthuk1 commited on
Commit
3325bbe
Β·
verified Β·
1 Parent(s): 36c721f

🎨 Ultra premium UI: enhanced design system with animations, gradients, bento grid

Browse files
Files changed (1) hide show
  1. web/src/app/globals.css +216 -78
web/src/app/globals.css CHANGED
@@ -1,8 +1,8 @@
1
  @import "tailwindcss";
2
- @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
3
 
4
  /* ═══════════════════════════════════════════════════════════
5
- TigerGraph Γ— Claude β€” Fused Design System
6
  Canvas: warm cream Β· Primary: tiger orange Β· Accent: coral
7
  Text: navy Β· Dark surfaces: claude dark Β· Serif display
8
  ═══════════════════════════════════════════════════════════ */
@@ -68,7 +68,16 @@ body {
68
  background: var(--color-canvas);
69
  }
70
 
71
- /* ── Typography β€” Serif Display + Sans Body ──────────── */
 
 
 
 
 
 
 
 
 
72
  .display-xl {
73
  font-family: var(--font-serif);
74
  font-size: clamp(2.5rem, 5vw, 4rem);
@@ -108,11 +117,12 @@ body {
108
  .title-lg { font-size: 1.375rem; font-weight: 500; line-height: 1.3; color: var(--color-ink); }
109
  .title-md { font-size: 1.125rem; font-weight: 500; line-height: 1.4; color: var(--color-ink); }
110
  .title-sm { font-size: 1rem; font-weight: 500; line-height: 1.4; color: var(--color-ink); }
 
111
  .body-md { font-size: 1rem; font-weight: 400; line-height: 1.55; color: var(--color-body); }
112
  .body-sm { font-size: 0.875rem; font-weight: 400; line-height: 1.55; color: var(--color-body); }
113
  .caption { font-size: 0.8125rem; font-weight: 500; line-height: 1.4; color: var(--color-muted); }
114
  .caption-uppercase {
115
- font-size: 0.75rem; font-weight: 500; line-height: 1.4;
116
  letter-spacing: 1.5px; text-transform: uppercase; color: var(--color-muted);
117
  }
118
  .code-text { font-family: var(--font-mono); font-size: 0.875rem; line-height: 1.6; }
@@ -122,28 +132,29 @@ body {
122
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
123
  font-family: var(--font-sans); font-size: 0.875rem; font-weight: 500;
124
  padding: 10px 20px; height: 40px; border-radius: 8px;
125
- border: none; cursor: pointer; transition: all 0.15s ease;
126
  text-decoration: none; white-space: nowrap;
127
  }
128
 
129
  .btn-primary {
130
  background: var(--color-tiger-orange); color: var(--color-on-primary);
131
- box-shadow: 0 1px 2px rgba(0,0,0,0.08);
132
  }
133
- .btn-primary:hover { background: var(--color-tiger-orange-hover); }
134
- .btn-primary:active { background: #CC5500; transform: translateY(1px); }
135
- .btn-primary:disabled { background: var(--color-surface-cream-strong); color: var(--color-muted); cursor: default; }
136
 
137
  .btn-secondary {
138
  background: var(--color-canvas); color: var(--color-ink);
139
  border: 1px solid var(--color-hairline);
140
  }
141
- .btn-secondary:hover { background: var(--color-surface-soft); border-color: var(--color-muted-soft); }
142
 
143
  .btn-coral {
144
  background: var(--color-coral); color: var(--color-on-primary);
 
145
  }
146
- .btn-coral:hover { background: var(--color-coral-active); }
147
 
148
  .btn-ghost {
149
  background: transparent; color: var(--color-muted); padding: 8px 12px; height: auto;
@@ -151,12 +162,12 @@ body {
151
  .btn-ghost:hover { color: var(--color-ink); background: var(--color-surface-soft); }
152
 
153
  .btn-on-dark {
154
- background: var(--color-surface-dark-elev); color: var(--color-on-dark);
155
- border: 1px solid rgba(255,255,255,0.1);
156
  }
157
- .btn-on-dark:hover { background: var(--color-surface-dark-soft); }
158
 
159
- .btn-lg { height: 48px; padding: 12px 28px; font-size: 1rem; border-radius: 10px; }
160
  .btn-sm { height: 32px; padding: 6px 14px; font-size: 0.8125rem; border-radius: 6px; }
161
  .btn-icon { width: 36px; height: 36px; padding: 0; border-radius: 50%; }
162
 
@@ -164,36 +175,45 @@ body {
164
  .card {
165
  background: var(--color-canvas);
166
  border: 1px solid var(--color-hairline);
167
- border-radius: 12px;
168
  padding: 32px;
 
169
  }
170
 
171
  .card-cream {
172
  background: var(--color-surface-card);
173
  border: none;
174
- border-radius: 12px;
175
  padding: 32px;
176
  }
177
 
178
  .card-dark {
179
  background: var(--color-surface-dark);
180
  border: none;
181
- border-radius: 12px;
182
  padding: 32px;
183
  color: var(--color-on-dark);
184
  }
185
 
186
  .card-dark-elevated {
187
  background: var(--color-surface-dark-elev);
188
- border-radius: 12px;
189
  padding: 24px;
190
  color: var(--color-on-dark);
191
  }
192
 
 
 
 
 
 
 
 
 
193
  .card-coral {
194
- background: var(--color-tiger-orange);
195
  border: none;
196
- border-radius: 12px;
197
  padding: 48px;
198
  color: var(--color-on-primary);
199
  }
@@ -201,20 +221,32 @@ body {
201
  .card-coral .display-sm,
202
  .card-coral .display-md { color: var(--color-on-primary); }
203
 
204
- .card-hover { transition: transform 0.2s ease, box-shadow 0.2s ease; }
205
  .card-hover:hover {
206
- transform: translateY(-2px);
207
- box-shadow: 0 8px 32px rgba(0, 43, 73, 0.08);
208
  }
209
 
210
- /* ── Pipeline Comparison Cards ───────────────────────── */
211
- .pipeline-baseline {
212
- border-left: 4px solid var(--color-electric-blue);
 
 
 
213
  }
214
- .pipeline-graphrag {
215
- border-left: 4px solid var(--color-tiger-orange);
 
 
 
 
 
216
  }
217
 
 
 
 
 
218
  /* ── Badges ──────────────────────────────────────────── */
219
  .badge {
220
  display: inline-flex; align-items: center;
@@ -229,50 +261,55 @@ body {
229
  .badge-outline {
230
  background: transparent; border: 1px solid var(--color-hairline); color: var(--color-muted);
231
  }
 
 
 
 
 
232
 
233
  /* ── Inputs ──────────────────────────────────────────── */
234
  .input {
235
- width: 100%; height: 40px; padding: 10px 14px;
236
  background: var(--color-canvas); color: var(--color-ink);
237
- border: 1px solid var(--color-hairline); border-radius: 8px;
238
  font-family: var(--font-sans); font-size: 1rem;
239
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
240
  }
241
  .input:focus {
242
  outline: none; border-color: var(--color-tiger-orange);
243
- box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.12);
244
  }
245
  .input::placeholder { color: var(--color-muted-soft); }
246
-
247
  .textarea { min-height: 100px; resize: vertical; }
248
 
249
  /* ── Tabs ────────────────────────────────────────────── */
250
  .tab-bar {
251
  display: flex; gap: 4px; padding: 4px;
252
  background: var(--color-surface-soft);
253
- border-radius: 10px; overflow-x: auto;
254
  }
255
  .tab-item {
256
- padding: 8px 16px; border-radius: 8px;
257
  font-size: 0.875rem; font-weight: 500;
258
  color: var(--color-muted); cursor: pointer;
259
- transition: all 0.15s ease; white-space: nowrap;
260
  border: none; background: transparent;
261
  }
262
  .tab-item:hover { color: var(--color-ink); background: var(--color-canvas); }
263
  .tab-item-active {
264
  color: var(--color-ink); background: var(--color-canvas);
265
- box-shadow: 0 1px 3px rgba(0, 43, 73, 0.08);
266
  }
267
 
268
  /* ── Metric Display ──────────────────────────────────── */
269
  .metric-value {
270
  font-family: var(--font-mono);
271
- font-size: 2rem; font-weight: 500;
272
  color: var(--color-ink);
273
  line-height: 1.1;
274
  }
275
  .metric-value-sm { font-size: 1.5rem; }
 
276
  .metric-label { font-size: 0.8125rem; font-weight: 500; color: var(--color-muted); margin-top: 4px; }
277
  .metric-delta-positive { color: var(--color-success); font-size: 0.8125rem; font-weight: 500; }
278
  .metric-delta-negative { color: var(--color-error); font-size: 0.8125rem; font-weight: 500; }
@@ -280,23 +317,22 @@ body {
280
  /* ── Code Window ─────────────────────────────────────── */
281
  .code-window {
282
  background: var(--color-surface-dark);
283
- border-radius: 12px;
284
  overflow: hidden;
 
285
  }
286
  .code-window-header {
287
  display: flex; align-items: center; gap: 8px;
288
- padding: 12px 16px;
289
  background: var(--color-surface-dark-elev);
290
  border-bottom: 1px solid rgba(255,255,255,0.06);
291
  }
292
- .code-window-dot {
293
- width: 12px; height: 12px; border-radius: 50%;
294
- }
295
  .code-window-dot-red { background: #ff5f57; }
296
  .code-window-dot-yellow { background: #febc2e; }
297
  .code-window-dot-green { background: #28c840; }
298
  .code-window-body {
299
- padding: 20px;
300
  font-family: var(--font-mono);
301
  font-size: 0.875rem;
302
  line-height: 1.7;
@@ -308,36 +344,59 @@ body {
308
  .navbar {
309
  position: sticky; top: 0; z-index: 50;
310
  display: flex; align-items: center; justify-content: space-between;
311
- height: 64px; padding: 0 32px;
312
- background: var(--color-canvas);
313
  border-bottom: 1px solid var(--color-hairline-soft);
314
- backdrop-filter: blur(12px);
315
- background: rgba(250, 249, 245, 0.92);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  }
317
 
318
  /* ── Section Rhythm ──────────────────────────────────── */
319
  .section { padding: 96px 0; }
320
- .section-sm { padding: 48px 0; }
321
- .container {
322
- width: 100%; max-width: 1200px;
323
- margin: 0 auto; padding: 0 24px;
324
- }
 
 
 
 
325
 
326
  /* ── Graph Visualization ─────────────────────────────── */
327
- .graph-node {
328
- transition: transform 0.2s ease;
329
- }
330
- .graph-node:hover {
331
- transform: scale(1.15);
332
- filter: drop-shadow(0 0 8px rgba(255, 107, 0, 0.4));
333
- }
334
- .graph-edge {
335
- stroke: var(--color-muted-soft);
336
- stroke-width: 1.5;
337
- transition: stroke 0.2s ease;
338
- }
339
 
340
- /* ── Loading Skeleton ────────────────────────────────── */
341
  @keyframes shimmer {
342
  0% { background-position: -200% 0; }
343
  100% { background-position: 200% 0; }
@@ -349,22 +408,86 @@ body {
349
  border-radius: 8px;
350
  }
351
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  /* ── Tooltip ─────────────────────────────────────────── */
353
  .custom-tooltip {
354
  background: var(--color-canvas) !important;
355
  border: 1px solid var(--color-hairline) !important;
356
- border-radius: 8px !important;
357
- padding: 12px !important;
358
- box-shadow: 0 4px 16px rgba(0, 43, 73, 0.08) !important;
359
  }
360
 
361
  /* ── Responsive ──────────────────────────────────────── */
 
 
 
 
362
  @media (max-width: 768px) {
363
- .section { padding: 48px 0; }
 
364
  .container { padding: 0 16px; }
365
- .card, .card-cream, .card-dark { padding: 20px; }
366
- .navbar { padding: 0 16px; height: 56px; }
 
367
  .display-xl { letter-spacing: -0.5px; }
 
 
368
  }
369
 
370
  /* ── Scrollbar ───────────────────────────────────────── */
@@ -376,13 +499,28 @@ body {
376
  /* ── Selection ───────────────────────────────────────── */
377
  ::selection { background: rgba(255, 107, 0, 0.15); color: var(--color-ink); }
378
 
379
- /* ── Prose for markdown-like rendering ───────────────── */
380
  .prose h1, .prose h2, .prose h3 { font-family: var(--font-serif); font-weight: 400; }
381
  .prose h1 { font-size: 2rem; letter-spacing: -0.5px; }
382
  .prose h2 { font-size: 1.5rem; letter-spacing: -0.3px; }
383
  .prose p { line-height: 1.7; color: var(--color-body); }
384
- .prose code {
385
- font-family: var(--font-mono); font-size: 0.875em;
386
- background: var(--color-surface-soft); padding: 2px 6px; border-radius: 4px;
387
- }
388
  .prose strong { color: var(--color-ink); font-weight: 600; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  @import "tailwindcss";
2
+ @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
3
 
4
  /* ═══════════════════════════════════════════════════════════
5
+ GraphRAG Ultra β€” Premium Design System
6
  Canvas: warm cream Β· Primary: tiger orange Β· Accent: coral
7
  Text: navy Β· Dark surfaces: claude dark Β· Serif display
8
  ═══════════════════════════════════════════════════════════ */
 
68
  background: var(--color-canvas);
69
  }
70
 
71
+ /* ── Typography ──────────────────────────────────────── */
72
+ .display-hero {
73
+ font-family: var(--font-serif);
74
+ font-size: clamp(3rem, 6vw, 5.5rem);
75
+ font-weight: 400;
76
+ line-height: 1.02;
77
+ letter-spacing: -2.5px;
78
+ color: var(--color-ink);
79
+ }
80
+
81
  .display-xl {
82
  font-family: var(--font-serif);
83
  font-size: clamp(2.5rem, 5vw, 4rem);
 
117
  .title-lg { font-size: 1.375rem; font-weight: 500; line-height: 1.3; color: var(--color-ink); }
118
  .title-md { font-size: 1.125rem; font-weight: 500; line-height: 1.4; color: var(--color-ink); }
119
  .title-sm { font-size: 1rem; font-weight: 500; line-height: 1.4; color: var(--color-ink); }
120
+ .body-lg { font-size: 1.125rem; font-weight: 400; line-height: 1.6; color: var(--color-body); }
121
  .body-md { font-size: 1rem; font-weight: 400; line-height: 1.55; color: var(--color-body); }
122
  .body-sm { font-size: 0.875rem; font-weight: 400; line-height: 1.55; color: var(--color-body); }
123
  .caption { font-size: 0.8125rem; font-weight: 500; line-height: 1.4; color: var(--color-muted); }
124
  .caption-uppercase {
125
+ font-size: 0.75rem; font-weight: 600; line-height: 1.4;
126
  letter-spacing: 1.5px; text-transform: uppercase; color: var(--color-muted);
127
  }
128
  .code-text { font-family: var(--font-mono); font-size: 0.875rem; line-height: 1.6; }
 
132
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
133
  font-family: var(--font-sans); font-size: 0.875rem; font-weight: 500;
134
  padding: 10px 20px; height: 40px; border-radius: 8px;
135
+ border: none; cursor: pointer; transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
136
  text-decoration: none; white-space: nowrap;
137
  }
138
 
139
  .btn-primary {
140
  background: var(--color-tiger-orange); color: var(--color-on-primary);
141
+ box-shadow: 0 1px 3px rgba(255,107,0,0.2), 0 1px 2px rgba(0,0,0,0.06);
142
  }
143
+ .btn-primary:hover { background: var(--color-tiger-orange-hover); box-shadow: 0 4px 12px rgba(255,107,0,0.3); transform: translateY(-1px); }
144
+ .btn-primary:active { transform: translateY(0); }
145
+ .btn-primary:disabled { background: var(--color-surface-cream-strong); color: var(--color-muted); cursor: default; box-shadow: none; transform: none; }
146
 
147
  .btn-secondary {
148
  background: var(--color-canvas); color: var(--color-ink);
149
  border: 1px solid var(--color-hairline);
150
  }
151
+ .btn-secondary:hover { background: var(--color-surface-soft); border-color: var(--color-muted-soft); transform: translateY(-1px); }
152
 
153
  .btn-coral {
154
  background: var(--color-coral); color: var(--color-on-primary);
155
+ box-shadow: 0 1px 3px rgba(204,120,92,0.2);
156
  }
157
+ .btn-coral:hover { background: var(--color-coral-active); box-shadow: 0 4px 12px rgba(204,120,92,0.3); transform: translateY(-1px); }
158
 
159
  .btn-ghost {
160
  background: transparent; color: var(--color-muted); padding: 8px 12px; height: auto;
 
162
  .btn-ghost:hover { color: var(--color-ink); background: var(--color-surface-soft); }
163
 
164
  .btn-on-dark {
165
+ background: rgba(255,255,255,0.1); color: var(--color-on-dark);
166
+ border: 1px solid rgba(255,255,255,0.15); backdrop-filter: blur(8px);
167
  }
168
+ .btn-on-dark:hover { background: rgba(255,255,255,0.18); }
169
 
170
+ .btn-lg { height: 52px; padding: 14px 32px; font-size: 1rem; border-radius: 12px; font-weight: 600; }
171
  .btn-sm { height: 32px; padding: 6px 14px; font-size: 0.8125rem; border-radius: 6px; }
172
  .btn-icon { width: 36px; height: 36px; padding: 0; border-radius: 50%; }
173
 
 
175
  .card {
176
  background: var(--color-canvas);
177
  border: 1px solid var(--color-hairline);
178
+ border-radius: 16px;
179
  padding: 32px;
180
+ transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
181
  }
182
 
183
  .card-cream {
184
  background: var(--color-surface-card);
185
  border: none;
186
+ border-radius: 16px;
187
  padding: 32px;
188
  }
189
 
190
  .card-dark {
191
  background: var(--color-surface-dark);
192
  border: none;
193
+ border-radius: 16px;
194
  padding: 32px;
195
  color: var(--color-on-dark);
196
  }
197
 
198
  .card-dark-elevated {
199
  background: var(--color-surface-dark-elev);
200
+ border-radius: 16px;
201
  padding: 24px;
202
  color: var(--color-on-dark);
203
  }
204
 
205
+ .card-glass {
206
+ background: rgba(250, 249, 245, 0.6);
207
+ backdrop-filter: blur(20px);
208
+ border: 1px solid rgba(230, 223, 216, 0.5);
209
+ border-radius: 16px;
210
+ padding: 32px;
211
+ }
212
+
213
  .card-coral {
214
+ background: linear-gradient(135deg, #FF6B00, #E55F00);
215
  border: none;
216
+ border-radius: 16px;
217
  padding: 48px;
218
  color: var(--color-on-primary);
219
  }
 
221
  .card-coral .display-sm,
222
  .card-coral .display-md { color: var(--color-on-primary); }
223
 
224
+ .card-hover { transition: transform 0.3s cubic-bezier(0.4,0,0.2,1), box-shadow 0.3s cubic-bezier(0.4,0,0.2,1); }
225
  .card-hover:hover {
226
+ transform: translateY(-4px);
227
+ box-shadow: 0 12px 40px rgba(0, 43, 73, 0.1);
228
  }
229
 
230
+ .card-gradient-blue {
231
+ background: linear-gradient(135deg, #002B49, #003D6B);
232
+ border: none;
233
+ border-radius: 16px;
234
+ padding: 32px;
235
+ color: white;
236
  }
237
+
238
+ .card-gradient-orange {
239
+ background: linear-gradient(135deg, #FF6B00, #FF8C35);
240
+ border: none;
241
+ border-radius: 16px;
242
+ padding: 32px;
243
+ color: white;
244
  }
245
 
246
+ /* ── Pipeline Comparison Cards ───────────────────────── */
247
+ .pipeline-baseline { border-left: 4px solid var(--color-electric-blue); }
248
+ .pipeline-graphrag { border-left: 4px solid var(--color-tiger-orange); }
249
+
250
  /* ── Badges ──────────────────────────────────────────── */
251
  .badge {
252
  display: inline-flex; align-items: center;
 
261
  .badge-outline {
262
  background: transparent; border: 1px solid var(--color-hairline); color: var(--color-muted);
263
  }
264
+ .badge-glow {
265
+ background: var(--color-tiger-orange);
266
+ color: white;
267
+ box-shadow: 0 0 16px rgba(255,107,0,0.3);
268
+ }
269
 
270
  /* ── Inputs ──────────────────────────────────────────── */
271
  .input {
272
+ width: 100%; height: 44px; padding: 10px 16px;
273
  background: var(--color-canvas); color: var(--color-ink);
274
+ border: 1px solid var(--color-hairline); border-radius: 10px;
275
  font-family: var(--font-sans); font-size: 1rem;
276
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
277
  }
278
  .input:focus {
279
  outline: none; border-color: var(--color-tiger-orange);
280
+ box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.1);
281
  }
282
  .input::placeholder { color: var(--color-muted-soft); }
 
283
  .textarea { min-height: 100px; resize: vertical; }
284
 
285
  /* ── Tabs ────────────────────────────────────────────── */
286
  .tab-bar {
287
  display: flex; gap: 4px; padding: 4px;
288
  background: var(--color-surface-soft);
289
+ border-radius: 12px; overflow-x: auto;
290
  }
291
  .tab-item {
292
+ padding: 10px 20px; border-radius: 10px;
293
  font-size: 0.875rem; font-weight: 500;
294
  color: var(--color-muted); cursor: pointer;
295
+ transition: all 0.2s ease; white-space: nowrap;
296
  border: none; background: transparent;
297
  }
298
  .tab-item:hover { color: var(--color-ink); background: var(--color-canvas); }
299
  .tab-item-active {
300
  color: var(--color-ink); background: var(--color-canvas);
301
+ box-shadow: 0 2px 8px rgba(0, 43, 73, 0.08);
302
  }
303
 
304
  /* ── Metric Display ──────────────────────────────────── */
305
  .metric-value {
306
  font-family: var(--font-mono);
307
+ font-size: 2.5rem; font-weight: 600;
308
  color: var(--color-ink);
309
  line-height: 1.1;
310
  }
311
  .metric-value-sm { font-size: 1.5rem; }
312
+ .metric-value-lg { font-size: 3.5rem; }
313
  .metric-label { font-size: 0.8125rem; font-weight: 500; color: var(--color-muted); margin-top: 4px; }
314
  .metric-delta-positive { color: var(--color-success); font-size: 0.8125rem; font-weight: 500; }
315
  .metric-delta-negative { color: var(--color-error); font-size: 0.8125rem; font-weight: 500; }
 
317
  /* ── Code Window ─────────────────────────────────────── */
318
  .code-window {
319
  background: var(--color-surface-dark);
320
+ border-radius: 16px;
321
  overflow: hidden;
322
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
323
  }
324
  .code-window-header {
325
  display: flex; align-items: center; gap: 8px;
326
+ padding: 14px 18px;
327
  background: var(--color-surface-dark-elev);
328
  border-bottom: 1px solid rgba(255,255,255,0.06);
329
  }
330
+ .code-window-dot { width: 12px; height: 12px; border-radius: 50%; }
 
 
331
  .code-window-dot-red { background: #ff5f57; }
332
  .code-window-dot-yellow { background: #febc2e; }
333
  .code-window-dot-green { background: #28c840; }
334
  .code-window-body {
335
+ padding: 24px;
336
  font-family: var(--font-mono);
337
  font-size: 0.875rem;
338
  line-height: 1.7;
 
344
  .navbar {
345
  position: sticky; top: 0; z-index: 50;
346
  display: flex; align-items: center; justify-content: space-between;
347
+ height: 72px; padding: 0 40px;
348
+ background: rgba(250, 249, 245, 0.8);
349
  border-bottom: 1px solid var(--color-hairline-soft);
350
+ backdrop-filter: blur(16px) saturate(180%);
351
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
352
+ }
353
+
354
+ .nav-link {
355
+ font-size: 0.875rem; font-weight: 500;
356
+ color: var(--color-muted);
357
+ text-decoration: none;
358
+ padding: 8px 16px;
359
+ border-radius: 8px;
360
+ transition: all 0.2s ease;
361
+ position: relative;
362
+ }
363
+ .nav-link:hover {
364
+ color: var(--color-ink);
365
+ background: var(--color-surface-soft);
366
+ }
367
+ .nav-link-active {
368
+ color: var(--color-tiger-orange);
369
+ background: var(--color-tiger-orange-light);
370
+ }
371
+ .nav-link-active::after {
372
+ content: '';
373
+ position: absolute;
374
+ bottom: -2px;
375
+ left: 16px;
376
+ right: 16px;
377
+ height: 2px;
378
+ background: var(--color-tiger-orange);
379
+ border-radius: 1px;
380
  }
381
 
382
  /* ── Section Rhythm ──────────────────────────────────── */
383
  .section { padding: 96px 0; }
384
+ .section-sm { padding: 64px 0; }
385
+ .section-lg { padding: 128px 0; }
386
+ .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
387
+ .container-wide { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 24px; }
388
+ .container-narrow { width: 100%; max-width: 800px; margin: 0 auto; padding: 0 24px; }
389
+
390
+ /* ── Page Header ─────────────────────────────────────── */
391
+ .page-header { padding: 80px 0 48px; text-align: center; }
392
+ .page-header-dark { padding: 80px 0 48px; text-align: center; background: var(--color-surface-dark); color: var(--color-on-dark); }
393
 
394
  /* ── Graph Visualization ─────────────────────────────── */
395
+ .graph-node { transition: transform 0.2s ease; }
396
+ .graph-node:hover { transform: scale(1.15); filter: drop-shadow(0 0 12px rgba(255, 107, 0, 0.5)); }
397
+ .graph-edge { stroke: var(--color-muted-soft); stroke-width: 1.5; transition: stroke 0.2s ease; }
 
 
 
 
 
 
 
 
 
398
 
399
+ /* ── Animations ──────────────────────────────────────── */
400
  @keyframes shimmer {
401
  0% { background-position: -200% 0; }
402
  100% { background-position: 200% 0; }
 
408
  border-radius: 8px;
409
  }
410
 
411
+ @keyframes fadeInUp {
412
+ from { opacity: 0; transform: translateY(24px); }
413
+ to { opacity: 1; transform: translateY(0); }
414
+ }
415
+ .animate-fade-in-up { animation: fadeInUp 0.6s cubic-bezier(0.4,0,0.2,1) forwards; opacity: 0; }
416
+ .delay-100 { animation-delay: 0.1s; }
417
+ .delay-200 { animation-delay: 0.2s; }
418
+ .delay-300 { animation-delay: 0.3s; }
419
+ .delay-400 { animation-delay: 0.4s; }
420
+ .delay-500 { animation-delay: 0.5s; }
421
+ .delay-600 { animation-delay: 0.6s; }
422
+ .delay-700 { animation-delay: 0.7s; }
423
+
424
+ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
425
+ .animate-fade-in { animation: fadeIn 0.5s ease forwards; opacity: 0; }
426
+
427
+ @keyframes slideInLeft { from { opacity: 0; transform: translateX(-32px); } to { opacity: 1; transform: translateX(0); } }
428
+ .animate-slide-left { animation: slideInLeft 0.6s cubic-bezier(0.4,0,0.2,1) forwards; opacity: 0; }
429
+
430
+ @keyframes slideInRight { from { opacity: 0; transform: translateX(32px); } to { opacity: 1; transform: translateX(0); } }
431
+ .animate-slide-right { animation: slideInRight 0.6s cubic-bezier(0.4,0,0.2,1) forwards; opacity: 0; }
432
+
433
+ @keyframes scaleIn { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }
434
+ .animate-scale-in { animation: scaleIn 0.5s cubic-bezier(0.4,0,0.2,1) forwards; opacity: 0; }
435
+
436
+ @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(255,107,0,0.2); } 50% { box-shadow: 0 0 40px rgba(255,107,0,0.4); } }
437
+ .animate-pulse-glow { animation: pulse-glow 3s ease-in-out infinite; }
438
+
439
+ @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
440
+ .animate-float { animation: float 4s ease-in-out infinite; }
441
+
442
+ @keyframes gradient-shift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
443
+ .animate-gradient { background-size: 200% auto; animation: gradient-shift 6s ease infinite; }
444
+
445
+ /* ── Divider ─────────────────────────────────────────── */
446
+ .divider { width: 48px; height: 3px; background: var(--color-tiger-orange); border-radius: 2px; }
447
+ .divider-center { width: 48px; height: 3px; background: var(--color-tiger-orange); border-radius: 2px; margin: 0 auto; }
448
+
449
+ /* ── Feature Grid ────────────────────────────────────── */
450
+ .feature-icon { width: 56px; height: 56px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 16px; }
451
+ .feature-icon-orange { background: var(--color-tiger-orange-light); }
452
+ .feature-icon-blue { background: var(--color-electric-blue-light); }
453
+ .feature-icon-teal { background: #e8f8f5; }
454
+ .feature-icon-amber { background: #fef9e7; }
455
+ .feature-icon-coral { background: #fef0eb; }
456
+
457
+ /* ── Bento Grid ──────────────────────────────────────── */
458
+ .bento-grid { display: grid; gap: 16px; }
459
+ .bento-grid-3 { grid-template-columns: repeat(3, 1fr); }
460
+ .bento-span-2 { grid-column: span 2; }
461
+ .bento-row-2 { grid-row: span 2; }
462
+
463
+ /* ── Glow effect ─────────────────────────────────────── */
464
+ .glow-orange { box-shadow: 0 0 32px rgba(255,107,0,0.15); }
465
+ .glow-blue { box-shadow: 0 0 32px rgba(0,114,206,0.15); }
466
+
467
  /* ── Tooltip ─────────────────────────────────────────── */
468
  .custom-tooltip {
469
  background: var(--color-canvas) !important;
470
  border: 1px solid var(--color-hairline) !important;
471
+ border-radius: 10px !important;
472
+ padding: 14px !important;
473
+ box-shadow: 0 8px 32px rgba(0, 43, 73, 0.08) !important;
474
  }
475
 
476
  /* ── Responsive ──────────────────────────────────────── */
477
+ @media (max-width: 1024px) {
478
+ .bento-grid-3 { grid-template-columns: 1fr 1fr; }
479
+ .bento-span-2 { grid-column: span 1; }
480
+ }
481
  @media (max-width: 768px) {
482
+ .section { padding: 64px 0; }
483
+ .section-lg { padding: 80px 0; }
484
  .container { padding: 0 16px; }
485
+ .card, .card-cream, .card-dark { padding: 24px; }
486
+ .navbar { padding: 0 16px; height: 60px; }
487
+ .display-hero { letter-spacing: -1px; }
488
  .display-xl { letter-spacing: -0.5px; }
489
+ .bento-grid-3 { grid-template-columns: 1fr; }
490
+ .page-header { padding: 48px 0 32px; }
491
  }
492
 
493
  /* ── Scrollbar ───────────────────────────────────────── */
 
499
  /* ── Selection ───────────────────────────────────────── */
500
  ::selection { background: rgba(255, 107, 0, 0.15); color: var(--color-ink); }
501
 
502
+ /* ── Prose ───────────────────────────────────────────── */
503
  .prose h1, .prose h2, .prose h3 { font-family: var(--font-serif); font-weight: 400; }
504
  .prose h1 { font-size: 2rem; letter-spacing: -0.5px; }
505
  .prose h2 { font-size: 1.5rem; letter-spacing: -0.3px; }
506
  .prose p { line-height: 1.7; color: var(--color-body); }
507
+ .prose code { font-family: var(--font-mono); font-size: 0.875em; background: var(--color-surface-soft); padding: 2px 6px; border-radius: 4px; }
 
 
 
508
  .prose strong { color: var(--color-ink); font-weight: 600; }
509
+
510
+ /* ── Gradient text ───────────────────────────────────── */
511
+ .gradient-text-orange {
512
+ background: linear-gradient(135deg, #FF6B00, #cc785c);
513
+ -webkit-background-clip: text;
514
+ -webkit-text-fill-color: transparent;
515
+ background-clip: text;
516
+ }
517
+ .gradient-text-blue {
518
+ background: linear-gradient(135deg, #0072CE, #002B49);
519
+ -webkit-background-clip: text;
520
+ -webkit-text-fill-color: transparent;
521
+ background-clip: text;
522
+ }
523
+
524
+ /* ── Horizontal Scroll ───────────────────────────────── */
525
+ .scroll-hidden::-webkit-scrollbar { display: none; }
526
+ .scroll-hidden { -ms-overflow-style: none; scrollbar-width: none; }