helixevo 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,48 +1,60 @@
1
+ /* ════════════════════════════════════════════════════════════════
2
+ HelixEvo Dashboard — Premium Warm Theme
3
+ Inspired by modern fintech/data platforms
4
+ ════════════════════════════════════════════════════════════════ */
5
+
1
6
  :root {
2
- --bg: #f8f9fb;
7
+ /* ─── Backgrounds (warm palette) ─── */
8
+ --bg: #f4f2ee;
3
9
  --bg-card: #ffffff;
4
- --bg-section: #f1f3f8;
5
- --bg-hover: #eef0f6;
6
- --bg-input: #f8f9fb;
7
- --bg-sidebar: #fafbfd;
10
+ --bg-section: #eceae5;
11
+ --bg-hover: #e6e3dd;
12
+ --bg-input: #f4f2ee;
13
+ --bg-sidebar: #f9f8f5;
8
14
 
9
- --border: #e4e6ee;
10
- --border-focus: #c4c8d8;
11
- --border-subtle: #eef0f4;
12
- --shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 1px 3px rgba(0,0,0,0.02);
13
- --shadow-md: 0 2px 8px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03);
14
- --shadow-lg: 0 4px 20px rgba(0,0,0,0.07), 0 2px 6px rgba(0,0,0,0.03);
15
- --shadow-xl: 0 8px 32px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.04);
15
+ /* ─── Borders & Elevation ─── */
16
+ --border: #ddd9d1;
17
+ --border-focus: #c5c0b6;
18
+ --border-subtle: #e8e5de;
19
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
20
+ --shadow-md: 0 2px 8px rgba(0,0,0,0.06), 0 0 1px rgba(0,0,0,0.03);
21
+ --shadow-lg: 0 8px 24px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.03);
22
+ --shadow-xl: 0 16px 48px rgba(0,0,0,0.1), 0 4px 12px rgba(0,0,0,0.04);
16
23
 
17
- --text: #1a1d2e;
18
- --text-secondary: #4a4f6a;
19
- --text-dim: #8b90a8;
20
- --text-muted: #b0b5c8;
24
+ /* ─── Typography ─── */
25
+ --text: #1a1a17;
26
+ --text-secondary: #3d3d36;
27
+ --text-dim: #6b6b60;
28
+ --text-muted: #9c9c90;
21
29
 
22
- --purple: #7c3aed;
30
+ /* ─── Accent Colors ─── */
31
+ --purple: #6d28d9;
23
32
  --purple-light: #f3eefe;
24
- --purple-border: #d4bffd;
25
- --green: #059669;
26
- --green-light: #ecfdf5;
27
- --green-border: #a7f3d0;
28
- --red: #dc2626;
29
- --red-light: #fef2f2;
30
- --red-border: #fca5a5;
31
- --yellow: #d97706;
32
- --yellow-light: #fffbeb;
33
- --yellow-border: #fde68a;
33
+ --purple-border: #c4b5fd;
34
+ --green: #0d7c5f;
35
+ --green-light: #ecf7f3;
36
+ --green-border: #a7d8c8;
37
+ --red: #c0392b;
38
+ --red-light: #fdf0ee;
39
+ --red-border: #e8a89e;
40
+ --yellow: #b8860b;
41
+ --yellow-light: #fdf6e3;
42
+ --yellow-border: #e0cc8a;
34
43
  --blue: #2563eb;
35
44
  --blue-light: #eff6ff;
36
45
  --blue-border: #bfdbfe;
46
+ --teal: #0d7c5f;
47
+ --teal-light: #e8f5f0;
37
48
 
49
+ /* ─── Radius & Type ─── */
38
50
  --radius: 8px;
39
51
  --radius-lg: 12px;
40
52
  --radius-xl: 16px;
41
-
42
- --font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', system-ui, sans-serif;
43
- --font-mono: 'SF Mono', 'Fira Code', 'JetBrains Mono', monospace;
53
+ --font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', system-ui, sans-serif;
54
+ --font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
44
55
  }
45
56
 
57
+ /* ─── Reset ─── */
46
58
  * { box-sizing: border-box; margin: 0; padding: 0; }
47
59
 
48
60
  body {
@@ -50,24 +62,29 @@ body {
50
62
  color: var(--text);
51
63
  font-family: var(--font);
52
64
  -webkit-font-smoothing: antialiased;
65
+ -moz-osx-font-smoothing: grayscale;
53
66
  font-size: 14px;
54
67
  line-height: 1.6;
68
+ font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
55
69
  }
56
70
 
57
- ::selection { background: var(--purple-light); color: var(--purple); }
58
- a { color: var(--purple); text-decoration: none; }
59
- a:hover { text-decoration: underline; }
71
+ ::selection { background: var(--teal-light); color: var(--teal); }
72
+ a { color: var(--teal); text-decoration: none; transition: color 0.15s; }
73
+ a:hover { color: #0a6149; text-decoration: none; }
60
74
 
61
75
  code {
62
76
  font-family: var(--font-mono);
63
77
  font-size: 12px;
64
- padding: 2px 6px;
78
+ padding: 2px 7px;
65
79
  background: var(--bg-section);
66
- border-radius: 4px;
80
+ border-radius: 5px;
67
81
  color: var(--text-secondary);
82
+ font-feature-settings: normal;
68
83
  }
69
84
 
70
- /* ─── Sidebar ─── */
85
+ /* ════════════════════════════════════════════════════════════════
86
+ SIDEBAR — Warm, light, refined
87
+ ════════════════════════════════════════════════════════════════ */
71
88
  .sidebar {
72
89
  width: 220px;
73
90
  background: var(--bg-sidebar);
@@ -85,33 +102,34 @@ code {
85
102
  .sidebar-logo {
86
103
  display: flex;
87
104
  align-items: center;
88
- gap: 10px;
89
- padding: 20px 18px 16px;
105
+ gap: 11px;
106
+ padding: 22px 18px 18px;
90
107
  border-bottom: 1px solid var(--border);
91
108
  }
92
109
 
93
110
  .logo-icon {
94
- width: 32px;
95
- height: 32px;
111
+ width: 34px;
112
+ height: 34px;
96
113
  border-radius: 10px;
97
- background: linear-gradient(135deg, #7c3aed, #4f46e5);
114
+ background: linear-gradient(135deg, #0d7c5f, #2563eb);
98
115
  display: flex;
99
116
  align-items: center;
100
117
  justify-content: center;
101
118
  color: #fff;
102
119
  flex-shrink: 0;
120
+ box-shadow: 0 2px 10px rgba(13,124,95,0.25);
103
121
  }
104
122
 
105
123
  .nav-item {
106
124
  display: flex;
107
125
  align-items: center;
108
126
  gap: 10px;
109
- padding: 9px 12px;
127
+ padding: 9px 14px;
110
128
  border-radius: 8px;
111
129
  color: var(--text-dim);
112
130
  font-size: 13px;
113
131
  font-weight: 500;
114
- margin-bottom: 2px;
132
+ margin: 1px 6px;
115
133
  text-decoration: none;
116
134
  transition: all 0.15s ease;
117
135
  }
@@ -133,40 +151,45 @@ code {
133
151
 
134
152
  .main-content {
135
153
  flex: 1;
136
- padding: 32px 40px;
137
- max-width: 1280px;
154
+ padding: 36px 44px;
155
+ max-width: 1320px;
138
156
  min-height: 100vh;
139
157
  }
140
158
 
141
- /* ─── Page Header ─── */
159
+ /* ════════════════════════════════════════════════════════════════
160
+ PAGE HEADERS
161
+ ════════════════════════════════════════════════════════════════ */
142
162
  .page-header { margin-bottom: 28px; }
143
163
  .page-title {
144
- font-size: 24px;
145
- font-weight: 700;
146
- letter-spacing: -0.4px;
164
+ font-size: 26px;
165
+ font-weight: 800;
166
+ letter-spacing: -0.6px;
147
167
  color: var(--text);
148
- line-height: 1.2;
168
+ line-height: 1.15;
149
169
  }
150
170
  .page-desc {
151
- font-size: 13px;
171
+ font-size: 14px;
152
172
  color: var(--text-dim);
153
173
  margin-top: 6px;
154
174
  line-height: 1.5;
175
+ font-weight: 400;
155
176
  }
156
177
 
157
- /* ─── Cards ─── */
178
+ /* ════════════════════════════════════════════════════════════════
179
+ CARDS
180
+ ════════════════════════════════════════════════════════════════ */
158
181
  .card {
159
182
  background: var(--bg-card);
160
183
  border: 1px solid var(--border);
161
184
  border-radius: var(--radius-lg);
162
185
  box-shadow: var(--shadow-sm);
163
- transition: box-shadow 0.2s ease, border-color 0.2s ease;
186
+ transition: box-shadow 0.25s ease, border-color 0.25s ease;
164
187
  }
165
188
  .card:hover {
166
189
  box-shadow: var(--shadow-md);
167
190
  border-color: var(--border-focus);
168
191
  }
169
- .card-body { padding: 20px; }
192
+ .card-body { padding: 22px; }
170
193
 
171
194
  .card-header-label {
172
195
  font-size: 10px;
@@ -174,10 +197,12 @@ code {
174
197
  color: var(--text-muted);
175
198
  text-transform: uppercase;
176
199
  letter-spacing: 1.5px;
177
- margin-bottom: 14px;
200
+ margin-bottom: 16px;
178
201
  }
179
202
 
180
- /* ─── Badges ─── */
203
+ /* ════════════════════════════════════════════════════════════════
204
+ BADGES
205
+ ════════════════════════════════════════════════════════════════ */
181
206
  .badge {
182
207
  display: inline-flex;
183
208
  align-items: center;
@@ -185,7 +210,7 @@ code {
185
210
  font-size: 10px;
186
211
  font-weight: 600;
187
212
  padding: 2px 8px;
188
- border-radius: 6px;
213
+ border-radius: 5px;
189
214
  white-space: nowrap;
190
215
  letter-spacing: 0.2px;
191
216
  }
@@ -196,32 +221,38 @@ code {
196
221
  .badge-blue { background: var(--blue-light); color: var(--blue); }
197
222
  .badge-gray { background: var(--bg-section); color: var(--text-dim); }
198
223
 
199
- /* ─── Score Bars ─── */
224
+ /* ════════════════════════════════════════════════════════════════
225
+ SCORE BARS
226
+ ════════════════════════════════════════════════════════════════ */
200
227
  .score-track {
201
- height: 4px;
228
+ height: 5px;
202
229
  background: var(--bg-section);
203
- border-radius: 2px;
230
+ border-radius: 3px;
204
231
  overflow: hidden;
205
232
  flex: 1;
206
233
  }
207
234
  .score-fill {
208
235
  height: 100%;
209
- border-radius: 2px;
210
- transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
236
+ border-radius: 3px;
237
+ transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
211
238
  }
212
239
 
213
- /* ─── Stats ─── */
240
+ /* ════════════════════════════════════════════════════════════════
241
+ STATS
242
+ ════════════════════════════════════════════════════════════════ */
214
243
  .stat-value {
215
- font-size: 28px;
244
+ font-size: 32px;
216
245
  font-weight: 800;
217
246
  line-height: 1;
218
- letter-spacing: -0.5px;
247
+ letter-spacing: -1px;
248
+ font-variant-numeric: tabular-nums;
219
249
  }
220
250
  .stat-label {
221
251
  font-size: 11px;
222
252
  color: var(--text-dim);
223
- margin-top: 4px;
253
+ margin-top: 6px;
224
254
  font-weight: 500;
255
+ letter-spacing: 0.1px;
225
256
  }
226
257
 
227
258
  .section-label {
@@ -236,7 +267,9 @@ code {
236
267
  gap: 8px;
237
268
  }
238
269
 
239
- /* ─── Sub-View Tab Bar ─── */
270
+ /* ════════════════════════════════════════════════════════════════
271
+ TAB BAR
272
+ ════════════════════════════════════════════════════════════════ */
240
273
  .tab-bar {
241
274
  display: inline-flex;
242
275
  background: var(--bg-section);
@@ -246,7 +279,7 @@ code {
246
279
  margin-bottom: 24px;
247
280
  }
248
281
  .tab-item {
249
- padding: 7px 16px;
282
+ padding: 7px 18px;
250
283
  border-radius: 8px;
251
284
  font-size: 13px;
252
285
  font-weight: 500;
@@ -260,7 +293,7 @@ code {
260
293
  }
261
294
  .tab-item:hover {
262
295
  color: var(--text-secondary);
263
- background: rgba(255,255,255,0.5);
296
+ background: rgba(255,255,255,0.6);
264
297
  }
265
298
  .tab-item.active {
266
299
  background: var(--bg-card);
@@ -269,18 +302,20 @@ code {
269
302
  box-shadow: var(--shadow-sm);
270
303
  }
271
304
 
272
- /* ─── Layer Sections ─── */
305
+ /* ════════════════════════════════════════════════════════════════
306
+ LAYER SECTIONS (Network page)
307
+ ════════════════════════════════════════════════════════════════ */
273
308
  .layer-section {
274
309
  border-radius: var(--radius-xl);
275
- padding: 20px;
310
+ padding: 22px;
276
311
  margin-bottom: 16px;
277
312
  }
278
313
  .layer-generalized {
279
- background: linear-gradient(135deg, #faf5ff, #f3e8ff);
314
+ background: linear-gradient(135deg, #faf5ff, #ede9fe);
280
315
  border: 1px solid var(--purple-border);
281
316
  }
282
317
  .layer-evolved {
283
- background: linear-gradient(135deg, #ecfdf5, #d1fae5);
318
+ background: linear-gradient(135deg, #ecf7f3, #d1f0e5);
284
319
  border: 1px solid var(--green-border);
285
320
  }
286
321
  .layer-original {
@@ -288,11 +323,13 @@ code {
288
323
  border: 1px solid var(--border);
289
324
  }
290
325
  .layer-project {
291
- background: linear-gradient(135deg, #fffbeb, #fef3c7);
326
+ background: linear-gradient(135deg, #fdf6e3, #faefc7);
292
327
  border: 1px solid var(--yellow-border);
293
328
  }
294
329
 
295
- /* ─── Skill Card ─── */
330
+ /* ════════════════════════════════════════════════════════════════
331
+ SKILL CARDS
332
+ ════════════════════════════════════════════════════════════════ */
296
333
  .skill-card {
297
334
  background: var(--bg-card);
298
335
  border: 1px solid var(--border);
@@ -308,11 +345,11 @@ code {
308
345
  transform: translateY(-1px);
309
346
  }
310
347
  .skill-card.selected {
311
- border-color: var(--purple);
312
- box-shadow: 0 0 0 2px var(--purple-light), var(--shadow-md);
348
+ border-color: var(--teal);
349
+ box-shadow: 0 0 0 2px var(--teal-light), var(--shadow-md);
313
350
  }
314
351
 
315
- /* ─── Flow Arrow Labels ─── */
352
+ /* ─── Flow Labels ─── */
316
353
  .flow-label {
317
354
  font-size: 10px;
318
355
  font-weight: 500;
@@ -331,39 +368,41 @@ code {
331
368
  letter-spacing: 0.5px;
332
369
  }
333
370
 
334
- /* ─── Timeline ─── */
371
+ /* ════════════════════════════════════════════════════════════════
372
+ TIMELINE
373
+ ════════════════════════════════════════════════════════════════ */
335
374
  .timeline-item {
336
375
  position: relative;
337
- padding-left: 22px;
338
- padding-bottom: 16px;
376
+ padding-left: 24px;
377
+ padding-bottom: 18px;
339
378
  border-left: 2px solid var(--border);
340
- margin-left: 5px;
379
+ margin-left: 6px;
341
380
  }
342
381
  .timeline-item:last-child { border-left-color: transparent; }
343
382
  .timeline-dot {
344
383
  position: absolute;
345
- left: -6px;
384
+ left: -7px;
346
385
  top: 3px;
347
- width: 10px;
348
- height: 10px;
386
+ width: 12px;
387
+ height: 12px;
349
388
  border-radius: 50%;
350
389
  border: 2px solid var(--bg);
390
+ box-shadow: 0 0 0 2px var(--border);
351
391
  }
352
392
 
353
- /* ─── Detail Panel ─── */
354
393
  .detail-panel {
355
394
  background: var(--bg-card);
356
395
  border-left: 1px solid var(--border);
357
- box-shadow: -4px 0 20px rgba(0,0,0,0.04);
358
- width: 400px;
396
+ box-shadow: -4px 0 24px rgba(0,0,0,0.06);
397
+ width: 420px;
359
398
  height: 100%;
360
399
  overflow-y: auto;
361
- padding: 24px;
362
- animation: slideIn 0.2s ease;
400
+ padding: 28px;
401
+ animation: slideIn 0.25s ease;
363
402
  }
364
403
 
365
404
  @keyframes slideIn {
366
- from { transform: translateX(20px); opacity: 0; }
405
+ from { transform: translateX(24px); opacity: 0; }
367
406
  to { transform: translateX(0); opacity: 1; }
368
407
  }
369
408
 
@@ -373,46 +412,46 @@ code {
373
412
  flex-direction: column;
374
413
  align-items: center;
375
414
  justify-content: center;
376
- padding: 48px 24px;
415
+ padding: 56px 24px;
377
416
  text-align: center;
378
417
  }
379
418
  .empty-state-icon {
380
- width: 48px;
381
- height: 48px;
382
- border-radius: 12px;
419
+ width: 52px;
420
+ height: 52px;
421
+ border-radius: 14px;
383
422
  background: var(--bg-section);
384
423
  display: flex;
385
424
  align-items: center;
386
425
  justify-content: center;
387
- margin-bottom: 14px;
426
+ margin-bottom: 16px;
388
427
  color: var(--text-muted);
389
428
  }
390
429
  .empty-state-title {
391
- font-size: 15px;
392
- font-weight: 600;
430
+ font-size: 16px;
431
+ font-weight: 700;
393
432
  color: var(--text);
394
- margin-bottom: 4px;
433
+ margin-bottom: 6px;
395
434
  }
396
435
  .empty-state-desc {
397
436
  font-size: 13px;
398
437
  color: var(--text-dim);
399
438
  max-width: 360px;
400
- line-height: 1.5;
439
+ line-height: 1.55;
401
440
  }
402
441
 
403
- /* ─── Stat Grid ─── */
442
+ /* ═══ Stat Cards ═══ */
404
443
  .stat-grid {
405
444
  display: grid;
406
- gap: 12px;
445
+ gap: 14px;
407
446
  margin-bottom: 28px;
408
447
  }
409
448
  .stat-card {
410
449
  background: var(--bg-card);
411
450
  border: 1px solid var(--border);
412
451
  border-radius: var(--radius-lg);
413
- padding: 18px 20px;
452
+ padding: 20px 22px;
414
453
  box-shadow: var(--shadow-sm);
415
- transition: all 0.2s ease;
454
+ transition: all 0.25s ease;
416
455
  }
417
456
  .stat-card:hover {
418
457
  box-shadow: var(--shadow-md);
@@ -420,7 +459,7 @@ code {
420
459
  }
421
460
 
422
461
  /* ─── React Flow Overrides ─── */
423
- .react-flow__background { opacity: 0.4; }
462
+ .react-flow__background { opacity: 0.3; }
424
463
  .react-flow__controls {
425
464
  box-shadow: var(--shadow-md) !important;
426
465
  border: 1px solid var(--border) !important;
@@ -435,7 +474,6 @@ code {
435
474
  background: var(--bg-hover) !important;
436
475
  }
437
476
 
438
- /* ─── View Toggle (for Graph sub-view) ─── */
439
477
  .view-header {
440
478
  display: flex;
441
479
  justify-content: space-between;
@@ -454,26 +492,26 @@ code {
454
492
  gap: 6px;
455
493
  font-size: 12px;
456
494
  color: var(--text-dim);
457
- padding: 4px 10px;
495
+ padding: 5px 12px;
458
496
  background: var(--bg-section);
459
497
  border-radius: 6px;
498
+ font-weight: 500;
460
499
  }
461
500
 
462
- /* ─── Proposal Card ─── */
501
+ /* ═══ Proposal Card ═══ */
463
502
  .proposal-card {
464
503
  background: var(--bg-card);
465
504
  border: 1px solid var(--border);
466
505
  border-radius: var(--radius-lg);
467
506
  overflow: hidden;
468
- margin-bottom: 8px;
469
- transition: all 0.15s ease;
507
+ margin-bottom: 10px;
508
+ transition: all 0.2s ease;
470
509
  }
471
510
  .proposal-card:hover {
472
511
  box-shadow: var(--shadow-sm);
473
512
  border-color: var(--border-focus);
474
513
  }
475
514
 
476
- /* ─── Score Pill ─── */
477
515
  .score-pill {
478
516
  display: inline-flex;
479
517
  align-items: center;
@@ -481,29 +519,29 @@ code {
481
519
  font-size: 11px;
482
520
  font-weight: 600;
483
521
  padding: 3px 8px;
484
- border-radius: 6px;
522
+ border-radius: 5px;
485
523
  background: var(--bg-section);
486
524
  }
487
525
 
488
- /* ─── Grid utilities ─── */
526
+ /* ════════════════════════════════════════════════════════════════
527
+ GRID UTILITIES
528
+ ════════════════════════════════════════════════════════════════ */
489
529
  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
490
- .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
491
- .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
492
- .grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
493
- .grid-auto { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 12px; }
530
+ .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
531
+ .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
532
+ .grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
533
+ .grid-auto { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 14px; }
494
534
 
495
535
  /* ════════════════════════════════════════════════════════════════
496
536
  GUIDE PAGE
497
537
  ════════════════════════════════════════════════════════════════ */
498
-
499
538
  .guide-layout {
500
539
  display: flex;
501
540
  gap: 0;
502
- margin: -32px -40px;
541
+ margin: -36px -44px;
503
542
  min-height: 100vh;
504
543
  }
505
544
 
506
- /* ─── Sidebar TOC ─── */
507
545
  .guide-toc {
508
546
  width: 220px;
509
547
  flex-shrink: 0;
@@ -540,7 +578,7 @@ code {
540
578
  display: flex;
541
579
  align-items: center;
542
580
  gap: 8px;
543
- padding: 7px 20px;
581
+ padding: 8px 20px;
544
582
  font-size: 12.5px;
545
583
  font-weight: 500;
546
584
  color: var(--text-dim);
@@ -554,9 +592,9 @@ code {
554
592
  text-decoration: none;
555
593
  }
556
594
  .guide-toc-item.active {
557
- color: var(--purple);
558
- border-left-color: var(--purple);
559
- background: var(--purple-light);
595
+ color: var(--teal);
596
+ border-left-color: var(--teal);
597
+ background: var(--teal-light);
560
598
  font-weight: 600;
561
599
  }
562
600
  .guide-toc-icon {
@@ -568,17 +606,15 @@ code {
568
606
  }
569
607
  .guide-toc-item.active .guide-toc-icon { opacity: 1; }
570
608
 
571
- /* ─── Content area ─── */
572
609
  .guide-content {
573
610
  flex: 1;
574
611
  max-width: 860px;
575
- padding: 0 48px 80px;
612
+ padding: 0 56px 80px;
576
613
  margin: 0 auto;
577
614
  }
578
615
 
579
- /* ─── Hero ─── */
580
616
  .guide-hero {
581
- padding: 48px 0 40px;
617
+ padding: 56px 0 44px;
582
618
  border-bottom: 1px solid var(--border);
583
619
  margin-bottom: 48px;
584
620
  }
@@ -588,22 +624,22 @@ code {
588
624
  font-weight: 700;
589
625
  text-transform: uppercase;
590
626
  letter-spacing: 1.5px;
591
- color: var(--purple);
592
- background: var(--purple-light);
593
- padding: 4px 12px;
627
+ color: var(--teal);
628
+ background: var(--teal-light);
629
+ padding: 4px 14px;
594
630
  border-radius: 20px;
595
- margin-bottom: 16px;
631
+ margin-bottom: 18px;
596
632
  }
597
633
  .guide-hero-title {
598
- font-size: 36px;
634
+ font-size: 40px;
599
635
  font-weight: 800;
600
- letter-spacing: -1px;
636
+ letter-spacing: -1.2px;
601
637
  color: var(--text);
602
- line-height: 1.15;
603
- margin-bottom: 12px;
638
+ line-height: 1.1;
639
+ margin-bottom: 14px;
604
640
  }
605
641
  .guide-hero-desc {
606
- font-size: 15px;
642
+ font-size: 16px;
607
643
  color: var(--text-dim);
608
644
  line-height: 1.7;
609
645
  max-width: 640px;
@@ -611,17 +647,16 @@ code {
611
647
  .guide-hero-features {
612
648
  display: grid;
613
649
  grid-template-columns: repeat(4, 1fr);
614
- gap: 12px;
615
- margin-top: 32px;
650
+ gap: 14px;
651
+ margin-top: 36px;
616
652
  }
617
653
 
618
- /* ─── Feature Cards ─── */
619
654
  .guide-feature-card {
620
655
  background: var(--bg-card);
621
656
  border: 1px solid var(--border);
622
657
  border-radius: var(--radius-lg);
623
- padding: 20px;
624
- transition: all 0.2s ease;
658
+ padding: 22px;
659
+ transition: all 0.25s ease;
625
660
  }
626
661
  .guide-feature-card:hover {
627
662
  box-shadow: var(--shadow-md);
@@ -630,14 +665,14 @@ code {
630
665
  }
631
666
  .guide-feature-icon {
632
667
  font-size: 20px;
633
- margin-bottom: 10px;
634
- width: 40px;
635
- height: 40px;
668
+ margin-bottom: 12px;
669
+ width: 42px;
670
+ height: 42px;
636
671
  display: flex;
637
672
  align-items: center;
638
673
  justify-content: center;
639
674
  background: var(--bg-section);
640
- border-radius: 10px;
675
+ border-radius: 11px;
641
676
  }
642
677
  .guide-feature-title {
643
678
  font-size: 13px;
@@ -648,19 +683,18 @@ code {
648
683
  .guide-feature-desc {
649
684
  font-size: 12px;
650
685
  color: var(--text-dim);
651
- line-height: 1.5;
686
+ line-height: 1.55;
652
687
  }
653
688
 
654
- /* ─── Sections ─── */
655
689
  .guide-section {
656
- padding-top: 40px;
690
+ padding-top: 44px;
657
691
  margin-bottom: 16px;
658
692
  scroll-margin-top: 20px;
659
693
  }
660
694
  .guide-section-title {
661
- font-size: 22px;
695
+ font-size: 24px;
662
696
  font-weight: 800;
663
- letter-spacing: -0.5px;
697
+ letter-spacing: -0.6px;
664
698
  color: var(--text);
665
699
  margin-bottom: 4px;
666
700
  line-height: 1.2;
@@ -669,21 +703,20 @@ code {
669
703
  font-size: 14px;
670
704
  color: var(--text-dim);
671
705
  margin-bottom: 24px;
672
- line-height: 1.5;
706
+ line-height: 1.6;
673
707
  }
674
708
  .guide-h3 {
675
- font-size: 15px;
709
+ font-size: 16px;
676
710
  font-weight: 700;
677
711
  color: var(--text);
678
712
  margin: 28px 0 12px;
679
- letter-spacing: -0.2px;
713
+ letter-spacing: -0.3px;
680
714
  }
681
715
 
682
- /* ─── Text ─── */
683
716
  .guide-text {
684
717
  font-size: 14px;
685
718
  color: var(--text-secondary);
686
- line-height: 1.75;
719
+ line-height: 1.8;
687
720
  margin-bottom: 16px;
688
721
  }
689
722
  .guide-text-sm {
@@ -702,13 +735,10 @@ code {
702
735
  line-height: 1.7;
703
736
  margin-bottom: 6px;
704
737
  }
705
- .guide-list li strong {
706
- color: var(--text);
707
- }
738
+ .guide-list li strong { color: var(--text); }
708
739
 
709
- /* ─── Code Blocks ─── */
710
740
  .guide-code-block {
711
- background: #1e1e2e;
741
+ background: #1a1b26;
712
742
  border-radius: var(--radius-lg);
713
743
  overflow: hidden;
714
744
  margin: 12px 0 16px;
@@ -717,7 +747,7 @@ code {
717
747
  .guide-code-title {
718
748
  font-size: 11px;
719
749
  font-weight: 600;
720
- color: #a6adc8;
750
+ color: #7a7f8d;
721
751
  padding: 10px 16px 0;
722
752
  letter-spacing: 0.3px;
723
753
  font-family: var(--font-mono);
@@ -730,7 +760,7 @@ code {
730
760
  font-family: var(--font-mono);
731
761
  font-size: 12.5px;
732
762
  line-height: 1.65;
733
- color: #cdd6f4;
763
+ color: #c0caf5;
734
764
  background: none;
735
765
  padding: 0;
736
766
  border-radius: 0;
@@ -738,7 +768,6 @@ code {
738
768
  tab-size: 2;
739
769
  }
740
770
 
741
- /* ─── Callout ─── */
742
771
  .guide-callout {
743
772
  display: flex;
744
773
  gap: 12px;
@@ -750,26 +779,23 @@ code {
750
779
  line-height: 1.6;
751
780
  color: var(--text-secondary);
752
781
  }
753
- .guide-callout code {
754
- font-size: 11.5px;
755
- }
782
+ .guide-callout code { font-size: 11.5px; }
756
783
  .guide-callout-icon {
757
784
  font-size: 14px;
758
785
  flex-shrink: 0;
759
786
  margin-top: 1px;
760
787
  }
761
788
 
762
- /* ─── Steps ─── */
763
789
  .guide-step {
764
790
  display: flex;
765
791
  gap: 16px;
766
792
  margin: 20px 0;
767
793
  }
768
794
  .guide-step-number {
769
- width: 28px;
770
- height: 28px;
795
+ width: 30px;
796
+ height: 30px;
771
797
  border-radius: 50%;
772
- background: linear-gradient(135deg, var(--purple), #4f46e5);
798
+ background: linear-gradient(135deg, #0d7c5f, #2563eb);
773
799
  color: #fff;
774
800
  font-size: 13px;
775
801
  font-weight: 700;
@@ -778,11 +804,9 @@ code {
778
804
  justify-content: center;
779
805
  flex-shrink: 0;
780
806
  margin-top: 2px;
807
+ box-shadow: 0 2px 8px rgba(13,124,95,0.2);
781
808
  }
782
- .guide-step-content {
783
- flex: 1;
784
- min-width: 0;
785
- }
809
+ .guide-step-content { flex: 1; min-width: 0; }
786
810
  .guide-step-title {
787
811
  font-size: 14px;
788
812
  font-weight: 700;
@@ -790,7 +814,6 @@ code {
790
814
  margin-bottom: 4px;
791
815
  }
792
816
 
793
- /* ─── Directions ─── */
794
817
  .guide-directions {
795
818
  display: flex;
796
819
  flex-direction: column;
@@ -801,11 +824,13 @@ code {
801
824
  display: flex;
802
825
  align-items: flex-start;
803
826
  gap: 14px;
804
- padding: 14px 18px;
827
+ padding: 16px 20px;
805
828
  background: var(--bg-card);
806
829
  border: 1px solid var(--border);
807
830
  border-radius: var(--radius);
831
+ transition: border-color 0.15s;
808
832
  }
833
+ .guide-direction:hover { border-color: var(--border-focus); }
809
834
  .guide-direction-arrow {
810
835
  font-size: 22px;
811
836
  font-weight: 800;
@@ -825,10 +850,9 @@ code {
825
850
  line-height: 1.5;
826
851
  }
827
852
 
828
- /* ─── Architecture Diagram ─── */
829
853
  .guide-diagram {
830
854
  margin: 20px 0 28px;
831
- padding: 24px;
855
+ padding: 28px;
832
856
  background: var(--bg-card);
833
857
  border: 1px solid var(--border);
834
858
  border-radius: var(--radius-xl);
@@ -840,7 +864,7 @@ code {
840
864
  }
841
865
  .guide-diagram-box {
842
866
  flex: 1;
843
- padding: 16px;
867
+ padding: 18px;
844
868
  border-radius: var(--radius);
845
869
  border: 1px solid;
846
870
  text-align: center;
@@ -863,18 +887,10 @@ code {
863
887
  opacity: 0.7;
864
888
  line-height: 1.4;
865
889
  }
866
- .guide-diagram-input {
867
- background: var(--blue-light); border-color: var(--blue-border); color: var(--blue);
868
- }
869
- .guide-diagram-process {
870
- background: var(--purple-light); border-color: var(--purple-border); color: var(--purple);
871
- }
872
- .guide-diagram-judge {
873
- background: var(--green-light); border-color: var(--green-border); color: var(--green);
874
- }
875
- .guide-diagram-check {
876
- background: var(--yellow-light); border-color: var(--yellow-border); color: var(--yellow);
877
- }
890
+ .guide-diagram-input { background: var(--blue-light); border-color: var(--blue-border); color: var(--blue); }
891
+ .guide-diagram-process { background: var(--purple-light); border-color: var(--purple-border); color: var(--purple); }
892
+ .guide-diagram-judge { background: var(--green-light); border-color: var(--green-border); color: var(--green); }
893
+ .guide-diagram-check { background: var(--yellow-light); border-color: var(--yellow-border); color: var(--yellow); }
878
894
  .guide-diagram-output {
879
895
  background: linear-gradient(135deg, var(--blue-light), var(--purple-light));
880
896
  border-color: var(--blue-border); color: var(--blue);
@@ -894,10 +910,7 @@ code {
894
910
  padding: 8px 0;
895
911
  }
896
912
 
897
- /* ─── Hierarchy Diagram ─── */
898
- .guide-hierarchy {
899
- margin: 20px 0 28px;
900
- }
913
+ .guide-hierarchy { margin: 20px 0 28px; }
901
914
  .guide-hierarchy-level {
902
915
  padding: 18px 24px;
903
916
  border-radius: var(--radius-lg);
@@ -910,29 +923,23 @@ code {
910
923
  letter-spacing: 1px;
911
924
  margin-bottom: 4px;
912
925
  }
913
- .guide-hierarchy-desc {
914
- font-size: 13px;
915
- margin-bottom: 6px;
916
- }
926
+ .guide-hierarchy-desc { font-size: 13px; margin-bottom: 6px; }
917
927
  .guide-hierarchy-examples {
918
928
  font-size: 11px;
919
929
  font-family: var(--font-mono);
920
930
  opacity: 0.7;
921
931
  }
922
932
  .guide-hierarchy-system {
923
- background: linear-gradient(135deg, #faf5ff, #f3e8ff);
924
- border-color: var(--purple-border);
925
- color: var(--purple);
933
+ background: linear-gradient(135deg, #faf5ff, #ede9fe);
934
+ border-color: var(--purple-border); color: var(--purple);
926
935
  }
927
936
  .guide-hierarchy-domain {
928
937
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
929
- border-color: var(--blue-border);
930
- color: var(--blue);
938
+ border-color: var(--blue-border); color: var(--blue);
931
939
  }
932
940
  .guide-hierarchy-project {
933
- background: linear-gradient(135deg, #ecfdf5, #d1fae5);
934
- border-color: var(--green-border);
935
- color: var(--green);
941
+ background: linear-gradient(135deg, #ecf7f3, #d1f0e5);
942
+ border-color: var(--green-border); color: var(--green);
936
943
  }
937
944
  .guide-hierarchy-connector {
938
945
  display: flex;
@@ -944,10 +951,7 @@ code {
944
951
  font-weight: 500;
945
952
  }
946
953
 
947
- /* ─── Evolution Pipeline ─── */
948
- .guide-pipeline {
949
- margin: 16px 0;
950
- }
954
+ .guide-pipeline { margin: 16px 0; }
951
955
  .guide-pipeline-step {
952
956
  display: flex;
953
957
  align-items: flex-start;
@@ -955,8 +959,8 @@ code {
955
959
  padding: 14px 0;
956
960
  }
957
961
  .guide-pipeline-icon {
958
- width: 32px;
959
- height: 32px;
962
+ width: 34px;
963
+ height: 34px;
960
964
  border-radius: 10px;
961
965
  display: flex;
962
966
  align-items: center;
@@ -969,14 +973,13 @@ code {
969
973
  width: 2px;
970
974
  height: 16px;
971
975
  background: var(--border);
972
- margin-left: 15px;
976
+ margin-left: 16px;
973
977
  }
974
978
 
975
- /* ─── Judge Cards ─── */
976
979
  .guide-judges-grid {
977
980
  display: grid;
978
981
  grid-template-columns: repeat(3, 1fr);
979
- gap: 12px;
982
+ gap: 14px;
980
983
  margin: 16px 0;
981
984
  }
982
985
  .guide-judge-card {
@@ -984,7 +987,7 @@ code {
984
987
  border: 1px solid var(--border);
985
988
  border-top: 3px solid;
986
989
  border-radius: var(--radius-lg);
987
- padding: 20px;
990
+ padding: 22px;
988
991
  }
989
992
  .guide-judge-header {
990
993
  display: flex;
@@ -993,8 +996,8 @@ code {
993
996
  margin-bottom: 12px;
994
997
  }
995
998
  .guide-judge-icon {
996
- width: 36px;
997
- height: 36px;
999
+ width: 38px;
1000
+ height: 38px;
998
1001
  border-radius: 10px;
999
1002
  display: flex;
1000
1003
  align-items: center;
@@ -1003,18 +1006,9 @@ code {
1003
1006
  font-weight: 800;
1004
1007
  flex-shrink: 0;
1005
1008
  }
1006
- .guide-judge-name {
1007
- font-size: 14px;
1008
- font-weight: 700;
1009
- color: var(--text);
1010
- }
1011
- .guide-judge-role {
1012
- font-size: 11px;
1013
- color: var(--text-dim);
1014
- margin-top: 1px;
1015
- }
1009
+ .guide-judge-name { font-size: 14px; font-weight: 700; color: var(--text); }
1010
+ .guide-judge-role { font-size: 11px; color: var(--text-dim); margin-top: 1px; }
1016
1011
 
1017
- /* ─── Dimension Cards ─── */
1018
1012
  .guide-dimension-card {
1019
1013
  padding: 14px 18px;
1020
1014
  background: var(--bg-card);
@@ -1023,7 +1017,6 @@ code {
1023
1017
  border-radius: var(--radius);
1024
1018
  }
1025
1019
 
1026
- /* ─── Edge Grid ─── */
1027
1020
  .guide-edge-grid {
1028
1021
  display: flex;
1029
1022
  flex-direction: column;
@@ -1046,12 +1039,8 @@ code {
1046
1039
  width: 100px;
1047
1040
  flex-shrink: 0;
1048
1041
  }
1049
- .guide-edge-desc {
1050
- font-size: 13px;
1051
- color: var(--text-dim);
1052
- }
1042
+ .guide-edge-desc { font-size: 13px; color: var(--text-dim); }
1053
1043
 
1054
- /* ─── Command Grid ─── */
1055
1044
  .guide-command-grid {
1056
1045
  display: flex;
1057
1046
  flex-direction: column;
@@ -1073,10 +1062,10 @@ code {
1073
1062
  font-family: var(--font-mono);
1074
1063
  font-size: 13px;
1075
1064
  font-weight: 600;
1076
- color: var(--purple);
1077
- background: var(--purple-light);
1065
+ color: var(--teal);
1066
+ background: var(--teal-light);
1078
1067
  padding: 3px 10px;
1079
- border-radius: 6px;
1068
+ border-radius: 5px;
1080
1069
  }
1081
1070
  .guide-command-desc {
1082
1071
  font-size: 13px;
@@ -1100,7 +1089,6 @@ code {
1100
1089
  border: 1px solid var(--border-subtle);
1101
1090
  }
1102
1091
 
1103
- /* ─── Config Params ─── */
1104
1092
  .guide-params {
1105
1093
  margin: 8px 0 20px;
1106
1094
  border: 1px solid var(--border);
@@ -1117,8 +1105,8 @@ code {
1117
1105
  font-family: var(--font-mono);
1118
1106
  font-size: 12px;
1119
1107
  font-weight: 600;
1120
- color: var(--purple);
1121
- background: var(--purple-light);
1108
+ color: var(--teal);
1109
+ background: var(--teal-light);
1122
1110
  padding: 1px 6px;
1123
1111
  border-radius: 4px;
1124
1112
  }
@@ -1138,7 +1126,6 @@ code {
1138
1126
  line-height: 1.5;
1139
1127
  }
1140
1128
 
1141
- /* ─── Data Cards ─── */
1142
1129
  .guide-data-card {
1143
1130
  background: var(--bg-card);
1144
1131
  border: 1px solid var(--border);
@@ -1154,21 +1141,18 @@ code {
1154
1141
  padding: 12px 16px 0;
1155
1142
  }
1156
1143
 
1157
- /* ─── FAQ ─── */
1158
1144
  .guide-faq-item {
1159
1145
  border: 1px solid var(--border);
1160
1146
  border-radius: var(--radius);
1161
1147
  margin-bottom: 6px;
1162
1148
  cursor: pointer;
1163
- transition: all 0.15s ease;
1149
+ transition: all 0.2s ease;
1164
1150
  overflow: hidden;
1165
1151
  }
1166
- .guide-faq-item:hover {
1167
- border-color: var(--border-focus);
1168
- }
1152
+ .guide-faq-item:hover { border-color: var(--border-focus); }
1169
1153
  .guide-faq-item.open {
1170
- border-color: var(--purple-border);
1171
- box-shadow: 0 0 0 1px var(--purple-light);
1154
+ border-color: var(--green-border);
1155
+ box-shadow: 0 0 0 1px var(--green-light);
1172
1156
  }
1173
1157
  .guide-faq-question {
1174
1158
  display: flex;
@@ -1199,7 +1183,6 @@ code {
1199
1183
  to { opacity: 1; transform: translateY(0); }
1200
1184
  }
1201
1185
 
1202
- /* ─── Footer ─── */
1203
1186
  .guide-footer {
1204
1187
  margin-top: 48px;
1205
1188
  padding-top: 24px;
@@ -1207,5 +1190,5 @@ code {
1207
1190
  }
1208
1191
  .guide-footer-content {
1209
1192
  text-align: center;
1210
- padding: 20px 0;
1193
+ padding: 24px 0;
1211
1194
  }
@@ -43,14 +43,14 @@ export default function RootLayout({ children }: { children: React.ReactNode })
43
43
  </svg>
44
44
  </div>
45
45
  <div>
46
- <div style={{ fontSize: 14, fontWeight: 700, color: 'var(--text)', letterSpacing: -0.3 }}>HelixEvo</div>
47
- <div style={{ fontSize: 10, color: 'var(--text-muted)', letterSpacing: 0.2 }}>Co-evolving AI Skills</div>
46
+ <div style={{ fontSize: 15, fontWeight: 700, color: 'var(--text)', letterSpacing: -0.3 }}>HelixEvo</div>
47
+ <div style={{ fontSize: 10, color: 'var(--text-muted)', letterSpacing: 0.3 }}>Co-evolving AI Skills</div>
48
48
  </div>
49
49
  </div>
50
50
 
51
51
  {/* Nav items */}
52
- <div style={{ padding: '12px 10px', flex: 1 }}>
53
- <div style={{ fontSize: 9, fontWeight: 600, color: 'var(--text-muted)', textTransform: 'uppercase', letterSpacing: 1.5, padding: '0 10px 8px' }}>
52
+ <div style={{ padding: '16px 6px', flex: 1 }}>
53
+ <div style={{ fontSize: 9, fontWeight: 600, color: 'var(--text-muted)', textTransform: 'uppercase', letterSpacing: 1.5, padding: '0 14px 10px' }}>
54
54
  Navigation
55
55
  </div>
56
56
  {NAV.map(n => (
@@ -67,7 +67,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
67
67
  <div style={{ width: 6, height: 6, borderRadius: '50%', background: 'var(--green)' }} />
68
68
  <span>System Active</span>
69
69
  </div>
70
- <code style={{ fontSize: 10, background: 'var(--bg-section)', padding: '2px 6px', borderRadius: 4 }}>v{VERSION}</code>
70
+ <code style={{ fontSize: 10, background: 'var(--bg-section)', padding: '2px 7px', borderRadius: 4 }}>v{VERSION}</code>
71
71
  </div>
72
72
  </nav>
73
73
 
@@ -585,30 +585,7 @@ export default function NetworkClient({
585
585
 
586
586
  function GraphView({ flowNodes, flowEdges, stats }: { flowNodes: Node[]; flowEdges: Edge[]; stats: Props['stats'] }) {
587
587
  return (
588
- <div style={{ height: 'calc(100vh - 200px)', width: '100%', borderRadius: 12, overflow: 'hidden', border: '1px solid var(--border)', background: '#fafafa' }}>
589
- {/* Column Headers */}
590
- <div style={{
591
- position: 'absolute', top: 8, left: 0, right: 0, zIndex: 10,
592
- display: 'flex', justifyContent: 'space-around', padding: '0 60px',
593
- pointerEvents: 'none',
594
- }}>
595
- {[
596
- { label: 'GENERALIZED', color: '#7c3aed', count: stats.generalized },
597
- { label: 'EVOLVED', color: '#16a34a', count: stats.evolved },
598
- { label: 'ORIGINAL', color: '#6b7280', count: stats.original },
599
- { label: 'PROJECTS', color: '#b45309', count: 0 },
600
- ].map(col => (
601
- <div key={col.label} style={{
602
- background: '#fff', border: '1px solid #e5e7eb', borderRadius: 8,
603
- padding: '5px 14px', textAlign: 'center',
604
- boxShadow: '0 1px 4px rgba(0,0,0,0.05)',
605
- }}>
606
- <div style={{ fontSize: 9, fontWeight: 700, letterSpacing: 1.5, color: col.color }}>{col.label}</div>
607
- {col.count > 0 && <div style={{ fontSize: 9, color: '#9ca3af', marginTop: 1 }}>{col.count} skills</div>}
608
- </div>
609
- ))}
610
- </div>
611
-
588
+ <div style={{ position: 'relative', height: 'calc(100vh - 200px)', width: '100%', borderRadius: 12, overflow: 'hidden', border: '1px solid var(--border)', background: 'var(--bg)' }}>
612
589
  <ReactFlow
613
590
  nodes={flowNodes}
614
591
  edges={flowEdges}
@@ -617,20 +594,20 @@ function GraphView({ flowNodes, flowEdges, stats }: { flowNodes: Node[]; flowEdg
617
594
  fitView
618
595
  fitViewOptions={{ padding: 0.2 }}
619
596
  proOptions={{ hideAttribution: true }}
620
- style={{ background: '#fafafa' }}
597
+ style={{ background: 'var(--bg)' }}
621
598
  minZoom={0.3}
622
599
  maxZoom={1.5}
623
600
  >
624
- <Background color="#e5e7eb" gap={20} size={1} />
601
+ <Background color="#d5d2ca" gap={20} size={1} />
625
602
  <Controls position="bottom-left" />
626
603
  </ReactFlow>
627
604
 
628
605
  {/* Legend */}
629
606
  <div style={{
630
607
  position: 'absolute', bottom: 12, right: 12, zIndex: 10,
631
- background: '#fff', border: '1px solid #e5e7eb', borderRadius: 8,
632
- padding: '8px 14px', display: 'flex', gap: 14, fontSize: 10, color: '#6b7280',
633
- boxShadow: '0 1px 3px rgba(0,0,0,0.06)',
608
+ background: 'var(--bg-card)', border: '1px solid var(--border)', borderRadius: 8,
609
+ padding: '8px 14px', display: 'flex', gap: 14, fontSize: 10, color: 'var(--text-dim)',
610
+ boxShadow: 'var(--shadow-sm)',
634
611
  }}>
635
612
  <span><span style={{ display: 'inline-block', width: 12, height: 2, background: '#818cf8', marginRight: 4, verticalAlign: 'middle' }} /> inherits</span>
636
613
  <span><span style={{ display: 'inline-block', width: 12, height: 2, background: '#22c55e', marginRight: 4, verticalAlign: 'middle' }} /> enhances</span>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "helixevo",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "Self-evolving skill ecosystem for AI agents. Skills and projects co-evolve through multi-judge evaluation and a Pareto frontier.",
5
5
  "type": "module",
6
6
  "bin": {