ltcai 4.4.0 → 4.6.0

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.
Files changed (67) hide show
  1. package/README.md +77 -33
  2. package/docs/CHANGELOG.md +128 -0
  3. package/docs/V4_5_0_GEMMA_RUNTIME_COMPATIBILITY_REPORT.md +49 -0
  4. package/docs/V4_5_0_GRAPH_UX_REPORT.md +34 -0
  5. package/docs/V4_5_0_MODEL_RUNTIME_UX_REPORT.md +40 -0
  6. package/docs/V4_5_0_ONBOARDING_REPORT.md +31 -0
  7. package/docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md +49 -0
  8. package/docs/V4_5_0_VALIDATION_REPORT.md +60 -0
  9. package/docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md +33 -0
  10. package/docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md +37 -0
  11. package/docs/V4_5_1_NAVIGATION_REPORT.md +37 -0
  12. package/docs/V4_5_1_ONBOARDING_REPORT.md +29 -0
  13. package/docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md +61 -0
  14. package/docs/V4_5_1_RC_ARTIFACTS.md +44 -0
  15. package/docs/V4_5_1_UX_REPORT.md +45 -0
  16. package/docs/V4_5_1_VALIDATION_REPORT.md +54 -0
  17. package/docs/V4_5_1_VISUAL_DESIGN_REPORT.md +30 -0
  18. package/docs/V4_6_0_LIVING_BRAIN_EXPERIENCE_REPORT.md +58 -0
  19. package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +18 -17
  20. package/docs/architecture.md +8 -4
  21. package/frontend/index.html +2 -2
  22. package/frontend/src/App.tsx +120 -98
  23. package/frontend/src/api/client.ts +84 -1
  24. package/frontend/src/components/BrainConversation.tsx +301 -0
  25. package/frontend/src/components/FirstRunGuide.tsx +99 -0
  26. package/frontend/src/components/LivingBrain.tsx +121 -0
  27. package/frontend/src/components/ProductFlow.tsx +596 -0
  28. package/frontend/src/components/primitives.tsx +131 -25
  29. package/frontend/src/components/ui/badge.tsx +2 -2
  30. package/frontend/src/components/ui/button.tsx +7 -7
  31. package/frontend/src/components/ui/card.tsx +5 -5
  32. package/frontend/src/components/ui/input.tsx +1 -1
  33. package/frontend/src/components/ui/textarea.tsx +1 -1
  34. package/frontend/src/pages/Act.tsx +58 -28
  35. package/frontend/src/pages/Ask.tsx +2 -197
  36. package/frontend/src/pages/Brain.tsx +108 -71
  37. package/frontend/src/pages/Capture.tsx +24 -24
  38. package/frontend/src/pages/Library.tsx +222 -32
  39. package/frontend/src/pages/System.tsx +56 -34
  40. package/frontend/src/routes.ts +16 -25
  41. package/frontend/src/store/appStore.ts +8 -1
  42. package/frontend/src/styles.css +1663 -36
  43. package/lattice_brain/__init__.py +1 -1
  44. package/lattice_brain/runtime/multi_agent.py +1 -1
  45. package/latticeai/__init__.py +1 -1
  46. package/latticeai/api/models.py +107 -18
  47. package/latticeai/core/marketplace.py +1 -1
  48. package/latticeai/core/model_compat.py +250 -0
  49. package/latticeai/core/workspace_os.py +1 -1
  50. package/latticeai/models/router.py +136 -32
  51. package/latticeai/services/model_catalog.py +2 -2
  52. package/latticeai/services/model_recommendation.py +8 -1
  53. package/latticeai/services/model_runtime.py +18 -3
  54. package/package.json +2 -2
  55. package/scripts/build_frontend_assets.mjs +12 -1
  56. package/src-tauri/Cargo.lock +1 -1
  57. package/src-tauri/Cargo.toml +1 -1
  58. package/src-tauri/tauri.conf.json +1 -1
  59. package/static/app/asset-manifest.json +5 -5
  60. package/static/app/assets/index-By-G-Kay.css +2 -0
  61. package/static/app/assets/index-CJx6WuQH.js +336 -0
  62. package/static/app/assets/index-CJx6WuQH.js.map +1 -0
  63. package/static/app/index.html +4 -4
  64. package/static/manifest.json +1 -1
  65. package/static/app/assets/index-CHHal8Zl.css +0 -2
  66. package/static/app/assets/index-pdzil9ac.js +0 -333
  67. package/static/app/assets/index-pdzil9ac.js.map +0 -1
@@ -3,46 +3,46 @@
3
3
 
4
4
  :root {
5
5
  color-scheme: dark;
6
- --background: 220 18% 8%;
7
- --foreground: 210 30% 96%;
8
- --card: 220 16% 11%;
9
- --card-foreground: 210 30% 96%;
10
- --muted: 218 13% 18%;
11
- --muted-foreground: 215 14% 66%;
12
- --primary: 176 68% 48%;
13
- --primary-foreground: 212 26% 8%;
14
- --secondary: 221 14% 20%;
15
- --secondary-foreground: 210 30% 96%;
16
- --destructive: 355 78% 58%;
6
+ --background: 168 12% 7%;
7
+ --foreground: 190 24% 94%;
8
+ --card: 180 10% 11%;
9
+ --card-foreground: 190 24% 94%;
10
+ --muted: 205 11% 18%;
11
+ --muted-foreground: 188 10% 67%;
12
+ --primary: 166 68% 52%;
13
+ --primary-foreground: 168 18% 7%;
14
+ --secondary: 238 18% 23%;
15
+ --secondary-foreground: 190 24% 94%;
16
+ --destructive: 356 73% 59%;
17
17
  --destructive-foreground: 0 0% 100%;
18
- --border: 218 13% 23%;
19
- --input: 218 13% 24%;
20
- --ring: 176 68% 48%;
21
- --brain: 176 68% 48%;
22
- --ask: 216 78% 66%;
23
- --capture: 142 58% 56%;
24
- --act: 33 92% 58%;
25
- --library: 262 68% 70%;
26
- --system: 350 72% 68%;
18
+ --border: 190 12% 26%;
19
+ --input: 190 12% 30%;
20
+ --ring: 166 68% 52%;
21
+ --brain: 166 68% 52%;
22
+ --ask: 205 80% 67%;
23
+ --capture: 136 58% 56%;
24
+ --act: 38 91% 60%;
25
+ --library: 278 62% 70%;
26
+ --system: 5 72% 66%;
27
27
  }
28
28
 
29
29
  :root[data-theme="light"] {
30
30
  color-scheme: light;
31
- --background: 210 30% 98%;
32
- --foreground: 222 38% 9%;
33
- --card: 0 0% 100%;
34
- --card-foreground: 222 38% 9%;
35
- --muted: 213 24% 92%;
36
- --muted-foreground: 219 11% 38%;
37
- --primary: 178 72% 32%;
31
+ --background: 180 16% 96%;
32
+ --foreground: 205 18% 12%;
33
+ --card: 180 24% 99%;
34
+ --card-foreground: 205 18% 12%;
35
+ --muted: 190 14% 91%;
36
+ --muted-foreground: 200 10% 38%;
37
+ --primary: 170 70% 30%;
38
38
  --primary-foreground: 0 0% 100%;
39
- --secondary: 211 24% 90%;
40
- --secondary-foreground: 222 38% 9%;
41
- --destructive: 355 72% 48%;
39
+ --secondary: 236 20% 89%;
40
+ --secondary-foreground: 205 18% 12%;
41
+ --destructive: 356 70% 47%;
42
42
  --destructive-foreground: 0 0% 100%;
43
- --border: 214 20% 83%;
44
- --input: 214 20% 78%;
45
- --ring: 178 72% 32%;
43
+ --border: 190 14% 76%;
44
+ --input: 190 14% 70%;
45
+ --ring: 170 70% 30%;
46
46
  }
47
47
 
48
48
  @theme inline {
@@ -67,12 +67,21 @@
67
67
  box-sizing: border-box;
68
68
  }
69
69
 
70
+ html {
71
+ background: hsl(var(--background));
72
+ }
73
+
70
74
  body {
71
75
  min-width: 320px;
72
76
  margin: 0;
73
77
  background: hsl(var(--background));
74
78
  color: hsl(var(--foreground));
75
79
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
80
+ letter-spacing: 0;
81
+ }
82
+
83
+ body::selection {
84
+ background: hsl(var(--primary) / 0.28);
76
85
  }
77
86
 
78
87
  button,
@@ -82,17 +91,1472 @@ select {
82
91
  font: inherit;
83
92
  }
84
93
 
94
+ button {
95
+ touch-action: manipulation;
96
+ }
97
+
98
+ .app-backdrop {
99
+ position: relative;
100
+ isolation: isolate;
101
+ overflow-x: hidden;
102
+ background:
103
+ linear-gradient(135deg, hsl(168 12% 7%) 0%, hsl(218 13% 9%) 48%, hsl(288 10% 9%) 100%),
104
+ repeating-linear-gradient(90deg, hsl(var(--border) / 0.16) 0 1px, transparent 1px 56px);
105
+ }
106
+
107
+ :root[data-theme="light"] .app-backdrop {
108
+ background:
109
+ linear-gradient(135deg, hsl(180 16% 96%) 0%, hsl(204 18% 94%) 52%, hsl(286 16% 96%) 100%),
110
+ repeating-linear-gradient(90deg, hsl(var(--border) / 0.24) 0 1px, transparent 1px 56px);
111
+ }
112
+
113
+ .ambient-brain {
114
+ pointer-events: none;
115
+ position: fixed;
116
+ inset: 0;
117
+ z-index: -1;
118
+ overflow: hidden;
119
+ opacity: 0.64;
120
+ }
121
+
122
+ .ambient-brain::before {
123
+ content: "";
124
+ position: absolute;
125
+ inset: 0;
126
+ background-image:
127
+ linear-gradient(hsl(var(--border) / 0.14) 1px, transparent 1px),
128
+ linear-gradient(90deg, hsl(var(--border) / 0.14) 1px, transparent 1px);
129
+ background-size: 64px 64px;
130
+ mask-image: linear-gradient(180deg, black, transparent 72%);
131
+ }
132
+
133
+ .signal-line,
134
+ .signal-tile {
135
+ position: absolute;
136
+ display: block;
137
+ border: 1px solid hsl(var(--border) / 0.5);
138
+ background: hsl(var(--card) / 0.42);
139
+ }
140
+
141
+ .signal-line {
142
+ height: 1px;
143
+ transform-origin: left center;
144
+ }
145
+
146
+ .signal-line-a {
147
+ left: 8%;
148
+ top: 22%;
149
+ width: 42rem;
150
+ transform: rotate(11deg);
151
+ }
152
+
153
+ .signal-line-b {
154
+ right: -8%;
155
+ top: 42%;
156
+ width: 52rem;
157
+ transform: rotate(-15deg);
158
+ }
159
+
160
+ .signal-line-c {
161
+ left: 18%;
162
+ bottom: 18%;
163
+ width: 46rem;
164
+ transform: rotate(-8deg);
165
+ }
166
+
167
+ .signal-tile {
168
+ width: 5.5rem;
169
+ height: 3.25rem;
170
+ border-radius: 8px;
171
+ }
172
+
173
+ .signal-tile-a {
174
+ left: 12%;
175
+ top: 16%;
176
+ border-color: hsl(var(--primary) / 0.45);
177
+ }
178
+
179
+ .signal-tile-b {
180
+ right: 14%;
181
+ top: 34%;
182
+ border-color: hsl(var(--act) / 0.42);
183
+ }
184
+
185
+ .signal-tile-c {
186
+ left: 48%;
187
+ bottom: 12%;
188
+ border-color: hsl(var(--library) / 0.42);
189
+ }
190
+
191
+ .premium-surface {
192
+ border: 1px solid hsl(var(--border) / 0.78);
193
+ background:
194
+ linear-gradient(180deg, hsl(var(--card) / 0.94), hsl(var(--card) / 0.82)),
195
+ linear-gradient(90deg, hsl(var(--primary) / 0.08), transparent 36%, hsl(var(--library) / 0.06));
196
+ box-shadow: 0 18px 52px hsl(200 22% 3% / 0.3);
197
+ }
198
+
199
+ :root[data-theme="light"] .premium-surface {
200
+ box-shadow: 0 18px 48px hsl(198 18% 54% / 0.16);
201
+ }
202
+
203
+ .product-flow-shell {
204
+ position: relative;
205
+ isolation: isolate;
206
+ display: grid;
207
+ min-height: 100vh;
208
+ place-items: center;
209
+ overflow: hidden;
210
+ padding: clamp(1rem, 3vw, 2rem);
211
+ background:
212
+ linear-gradient(135deg, hsl(168 14% 6%) 0%, hsl(215 16% 8%) 52%, hsl(262 13% 8%) 100%),
213
+ repeating-linear-gradient(90deg, hsl(var(--border) / 0.12) 0 1px, transparent 1px 54px);
214
+ }
215
+
216
+ .product-flow-shell::before {
217
+ content: "";
218
+ position: absolute;
219
+ inset: 0;
220
+ z-index: -2;
221
+ background-image:
222
+ linear-gradient(hsl(var(--border) / 0.12) 1px, transparent 1px),
223
+ linear-gradient(90deg, hsl(var(--border) / 0.12) 1px, transparent 1px);
224
+ background-size: 72px 72px;
225
+ mask-image: linear-gradient(180deg, black, transparent 74%);
226
+ }
227
+
228
+ .product-flow-orbit {
229
+ position: absolute;
230
+ inset: 12% 18%;
231
+ z-index: -1;
232
+ border: 1px solid hsl(var(--primary) / 0.16);
233
+ border-radius: 48%;
234
+ transform: rotate(-8deg);
235
+ }
236
+
237
+ .product-flow-orbit::before,
238
+ .product-flow-orbit::after {
239
+ content: "";
240
+ position: absolute;
241
+ inset: 12%;
242
+ border: 1px solid hsl(var(--ask) / 0.14);
243
+ border-radius: 46%;
244
+ transform: rotate(18deg);
245
+ }
246
+
247
+ .product-flow-orbit::after {
248
+ inset: 24%;
249
+ border-color: hsl(var(--library) / 0.16);
250
+ transform: rotate(-28deg);
251
+ }
252
+
253
+ .login-screen {
254
+ display: grid;
255
+ width: min(100%, 28rem);
256
+ gap: 1rem;
257
+ justify-items: center;
258
+ }
259
+
260
+ .login-mark {
261
+ display: grid;
262
+ width: 3rem;
263
+ height: 3rem;
264
+ place-items: center;
265
+ border: 1px solid hsl(var(--primary) / 0.46);
266
+ border-radius: 999px;
267
+ background: hsl(var(--card) / 0.72);
268
+ color: hsl(var(--primary));
269
+ box-shadow: 0 0 42px hsl(var(--primary) / 0.18);
270
+ }
271
+
272
+ .login-card,
273
+ .flow-panel {
274
+ width: min(100%, 58rem);
275
+ border: 1px solid hsl(var(--border) / 0.72);
276
+ border-radius: 8px;
277
+ background:
278
+ linear-gradient(180deg, hsl(var(--card) / 0.94), hsl(var(--card) / 0.82)),
279
+ linear-gradient(90deg, hsl(var(--primary) / 0.08), transparent 45%, hsl(var(--ask) / 0.06));
280
+ box-shadow: 0 28px 80px hsl(200 24% 3% / 0.46);
281
+ }
282
+
283
+ .login-card {
284
+ display: grid;
285
+ gap: 1.4rem;
286
+ padding: clamp(1.2rem, 4vw, 2rem);
287
+ }
288
+
289
+ .login-kicker,
290
+ .flow-kicker {
291
+ display: inline-flex;
292
+ align-items: center;
293
+ gap: 0.45rem;
294
+ color: hsl(var(--primary));
295
+ font-size: 0.76rem;
296
+ font-weight: 790;
297
+ text-transform: uppercase;
298
+ }
299
+
300
+ .login-card h1,
301
+ .flow-panel h1,
302
+ .install-hero h1 {
303
+ margin: 0.35rem 0 0;
304
+ font-size: clamp(2.15rem, 6vw, 4.4rem);
305
+ line-height: 0.96;
306
+ font-weight: 830;
307
+ letter-spacing: 0;
308
+ }
309
+
310
+ .login-card p,
311
+ .flow-panel p,
312
+ .install-hero p {
313
+ margin: 0.72rem 0 0;
314
+ color: hsl(var(--muted-foreground));
315
+ line-height: 1.6;
316
+ }
317
+
318
+ .login-form {
319
+ display: grid;
320
+ gap: 0.82rem;
321
+ }
322
+
323
+ .login-form label {
324
+ display: grid;
325
+ gap: 0.35rem;
326
+ }
327
+
328
+ .login-form label span {
329
+ color: hsl(var(--muted-foreground));
330
+ font-size: 0.78rem;
331
+ font-weight: 760;
332
+ text-transform: uppercase;
333
+ }
334
+
335
+ .login-submit {
336
+ margin-top: 0.4rem;
337
+ width: 100%;
338
+ }
339
+
340
+ .flow-panel {
341
+ display: grid;
342
+ gap: 1.2rem;
343
+ padding: clamp(1rem, 3vw, 1.6rem);
344
+ }
345
+
346
+ .flow-panel-head {
347
+ display: flex;
348
+ align-items: flex-start;
349
+ justify-content: space-between;
350
+ gap: 1rem;
351
+ }
352
+
353
+ .analysis-grid,
354
+ .model-recommendation-list,
355
+ .install-steps {
356
+ display: grid;
357
+ gap: 0.75rem;
358
+ }
359
+
360
+ .analysis-grid {
361
+ grid-template-columns: repeat(4, minmax(0, 1fr));
362
+ }
363
+
364
+ .analysis-fact,
365
+ .recommendation-callout,
366
+ .install-progress,
367
+ .install-step,
368
+ .model-recommendation-card {
369
+ border: 1px solid hsl(var(--border) / 0.72);
370
+ border-radius: 8px;
371
+ background: hsl(var(--background) / 0.5);
372
+ }
373
+
374
+ .analysis-fact {
375
+ min-height: 8rem;
376
+ padding: 0.95rem;
377
+ }
378
+
379
+ .analysis-fact span,
380
+ .analysis-fact small {
381
+ display: block;
382
+ color: hsl(var(--muted-foreground));
383
+ }
384
+
385
+ .analysis-fact span {
386
+ font-size: 0.76rem;
387
+ font-weight: 780;
388
+ text-transform: uppercase;
389
+ }
390
+
391
+ .analysis-fact strong {
392
+ display: block;
393
+ margin-top: 0.7rem;
394
+ font-size: 1.2rem;
395
+ line-height: 1.14;
396
+ }
397
+
398
+ .analysis-fact small {
399
+ margin-top: 0.48rem;
400
+ line-height: 1.5;
401
+ }
402
+
403
+ .recommendation-callout {
404
+ display: flex;
405
+ align-items: center;
406
+ gap: 0.82rem;
407
+ padding: 0.9rem;
408
+ }
409
+
410
+ .recommendation-callout svg {
411
+ flex: 0 0 auto;
412
+ color: hsl(var(--primary));
413
+ }
414
+
415
+ .recommendation-callout strong,
416
+ .recommendation-callout span {
417
+ display: block;
418
+ }
419
+
420
+ .recommendation-callout span {
421
+ margin-top: 0.22rem;
422
+ color: hsl(var(--muted-foreground));
423
+ font-size: 0.9rem;
424
+ }
425
+
426
+ .model-recommendation-list {
427
+ grid-template-columns: repeat(3, minmax(0, 1fr));
428
+ }
429
+
430
+ .model-recommendation-card {
431
+ display: grid;
432
+ min-height: 16rem;
433
+ align-content: space-between;
434
+ gap: 1rem;
435
+ padding: 1rem;
436
+ text-align: left;
437
+ transition: border-color 160ms ease, transform 160ms ease, background 160ms ease;
438
+ }
439
+
440
+ .model-recommendation-card:hover:not(:disabled),
441
+ .model-recommendation-card:focus-visible {
442
+ border-color: hsl(var(--primary) / 0.72);
443
+ background: hsl(var(--primary) / 0.1);
444
+ transform: translateY(-2px);
445
+ }
446
+
447
+ .model-recommendation-card:disabled {
448
+ cursor: not-allowed;
449
+ opacity: 0.6;
450
+ }
451
+
452
+ .model-rank {
453
+ color: hsl(var(--primary));
454
+ font-size: 0.76rem;
455
+ font-weight: 800;
456
+ text-transform: uppercase;
457
+ }
458
+
459
+ .model-recommendation-card strong {
460
+ display: block;
461
+ font-size: clamp(1.45rem, 3vw, 2.2rem);
462
+ line-height: 1.02;
463
+ }
464
+
465
+ .model-recommendation-card small {
466
+ display: block;
467
+ margin-top: 0.62rem;
468
+ color: hsl(var(--muted-foreground));
469
+ line-height: 1.5;
470
+ }
471
+
472
+ .install-hero {
473
+ display: grid;
474
+ grid-template-columns: minmax(14rem, 0.7fr) minmax(0, 1fr);
475
+ align-items: center;
476
+ gap: 1.1rem;
477
+ }
478
+
479
+ .install-hero .living-brain {
480
+ min-height: 20rem;
481
+ }
482
+
483
+ .install-steps {
484
+ grid-template-columns: repeat(4, minmax(0, 1fr));
485
+ }
486
+
487
+ .install-step {
488
+ display: flex;
489
+ align-items: center;
490
+ gap: 0.55rem;
491
+ min-height: 3.35rem;
492
+ padding: 0.8rem;
493
+ color: hsl(var(--muted-foreground));
494
+ font-weight: 760;
495
+ }
496
+
497
+ .install-step.is-active {
498
+ border-color: hsl(var(--primary) / 0.66);
499
+ color: hsl(var(--foreground));
500
+ }
501
+
502
+ .install-step.is-done {
503
+ border-color: hsl(var(--primary) / 0.54);
504
+ background: hsl(var(--primary) / 0.12);
505
+ color: hsl(var(--foreground));
506
+ }
507
+
508
+ .install-step.is-error {
509
+ border-color: hsl(var(--destructive) / 0.62);
510
+ color: hsl(var(--destructive));
511
+ }
512
+
513
+ .install-progress {
514
+ padding: 0.9rem;
515
+ }
516
+
517
+ .install-progress > div:first-child,
518
+ .flow-actions {
519
+ display: flex;
520
+ align-items: center;
521
+ justify-content: space-between;
522
+ gap: 1rem;
523
+ }
524
+
525
+ .install-progress span,
526
+ .flow-actions span {
527
+ color: hsl(var(--muted-foreground));
528
+ font-size: 0.9rem;
529
+ }
530
+
531
+ .install-bar {
532
+ height: 0.62rem;
533
+ margin-top: 0.75rem;
534
+ overflow: hidden;
535
+ border-radius: 999px;
536
+ background: hsl(var(--muted));
537
+ }
538
+
539
+ .install-bar span {
540
+ display: block;
541
+ height: 100%;
542
+ border-radius: inherit;
543
+ background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--ask)));
544
+ transition: width 220ms ease;
545
+ }
546
+
547
+ .flow-actions.split {
548
+ justify-content: space-between;
549
+ }
550
+
551
+ .flow-error {
552
+ border: 1px solid hsl(var(--destructive) / 0.42);
553
+ border-radius: 8px;
554
+ background: hsl(var(--destructive) / 0.12);
555
+ color: hsl(var(--foreground));
556
+ padding: 0.82rem;
557
+ line-height: 1.5;
558
+ }
559
+
560
+ .app-chrome {
561
+ position: sticky;
562
+ top: 0;
563
+ z-index: 40;
564
+ display: grid;
565
+ grid-template-columns: minmax(13rem, 1fr) auto minmax(13rem, 1fr);
566
+ align-items: center;
567
+ gap: 1rem;
568
+ min-height: 5rem;
569
+ padding: 0.85rem 1.15rem;
570
+ border-bottom: 1px solid hsl(var(--border) / 0.72);
571
+ background: hsl(var(--background) / 0.78);
572
+ backdrop-filter: blur(22px);
573
+ }
574
+
575
+ .brand-lockup,
576
+ .chrome-actions,
577
+ .ribbon-meta,
578
+ .arrival-actions,
579
+ .journey-head,
580
+ .command-search {
581
+ display: flex;
582
+ align-items: center;
583
+ }
584
+
585
+ .brand-lockup {
586
+ min-width: 0;
587
+ gap: 0.75rem;
588
+ }
589
+
590
+ .brand-mark,
591
+ .mobile-menu {
592
+ display: grid;
593
+ place-items: center;
594
+ border: 1px solid hsl(var(--border));
595
+ background: hsl(var(--card) / 0.76);
596
+ color: hsl(var(--foreground));
597
+ }
598
+
599
+ .brand-mark {
600
+ width: 2.75rem;
601
+ height: 2.75rem;
602
+ border-radius: 8px;
603
+ color: hsl(var(--primary));
604
+ }
605
+
606
+ .mobile-menu {
607
+ width: 2.5rem;
608
+ height: 2.5rem;
609
+ border-radius: 7px;
610
+ }
611
+
612
+ .brand-name {
613
+ font-size: 1rem;
614
+ font-weight: 780;
615
+ line-height: 1.1;
616
+ }
617
+
618
+ .brand-subtitle {
619
+ margin-top: 0.15rem;
620
+ color: hsl(var(--muted-foreground));
621
+ font-size: 0.72rem;
622
+ font-weight: 650;
623
+ text-transform: uppercase;
624
+ }
625
+
626
+ .primary-dock {
627
+ display: flex;
628
+ align-items: center;
629
+ gap: 0.35rem;
630
+ max-width: 100%;
631
+ padding: 0.3rem;
632
+ border: 1px solid hsl(var(--border) / 0.78);
633
+ border-radius: 8px;
634
+ background: hsl(var(--card) / 0.66);
635
+ }
636
+
637
+ .dock-button {
638
+ display: inline-flex;
639
+ align-items: center;
640
+ justify-content: center;
641
+ gap: 0.45rem;
642
+ min-width: 5.25rem;
643
+ min-height: 2.35rem;
644
+ padding: 0 0.72rem;
645
+ border: 1px solid transparent;
646
+ border-radius: 6px;
647
+ color: hsl(var(--muted-foreground));
648
+ font-size: 0.86rem;
649
+ font-weight: 720;
650
+ transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
651
+ }
652
+
653
+ .dock-button:hover,
654
+ .dock-button.is-active {
655
+ border-color: hsl(var(--border));
656
+ background: hsl(var(--background) / 0.72);
657
+ color: hsl(var(--foreground));
658
+ }
659
+
660
+ .dock-button.is-active svg {
661
+ color: hsl(var(--primary));
662
+ }
663
+
664
+ .chrome-actions {
665
+ justify-content: flex-end;
666
+ gap: 0.5rem;
667
+ }
668
+
669
+ .status-chip,
670
+ .meta-card {
671
+ display: inline-flex;
672
+ align-items: center;
673
+ gap: 0.45rem;
674
+ min-height: 2.5rem;
675
+ max-width: 100%;
676
+ border: 1px solid hsl(var(--border));
677
+ border-radius: 7px;
678
+ background: hsl(var(--card) / 0.7);
679
+ color: hsl(var(--foreground));
680
+ padding: 0 0.8rem;
681
+ font-size: 0.84rem;
682
+ font-weight: 700;
683
+ }
684
+
685
+ .status-light {
686
+ width: 0.55rem;
687
+ height: 0.55rem;
688
+ border-radius: 999px;
689
+ background: hsl(var(--act));
690
+ }
691
+
692
+ .status-light.is-ready {
693
+ background: hsl(var(--primary));
694
+ }
695
+
696
+ .status-light.is-waiting {
697
+ background: hsl(var(--act));
698
+ }
699
+
700
+ .page-shell {
701
+ width: min(100% - 2rem, 1440px);
702
+ margin-inline: auto;
703
+ padding: 1.25rem 0 4rem;
704
+ }
705
+
706
+ .workspace-ribbon {
707
+ display: grid;
708
+ grid-template-columns: minmax(0, 1fr) auto;
709
+ gap: 1rem;
710
+ align-items: end;
711
+ margin-bottom: 1rem;
712
+ padding: 1rem;
713
+ border: 1px solid hsl(var(--border) / 0.62);
714
+ border-radius: 8px;
715
+ background: hsl(var(--background) / 0.54);
716
+ backdrop-filter: blur(18px);
717
+ }
718
+
719
+ .workspace-ribbon h1 {
720
+ margin: 0.35rem 0 0;
721
+ max-width: 52rem;
722
+ font-size: 1.55rem;
723
+ line-height: 1.18;
724
+ font-weight: 780;
725
+ }
726
+
727
+ .ribbon-kicker,
728
+ .page-kicker {
729
+ display: inline-flex;
730
+ align-items: center;
731
+ gap: 0.45rem;
732
+ color: hsl(var(--primary));
733
+ font-size: 0.78rem;
734
+ font-weight: 760;
735
+ text-transform: uppercase;
736
+ }
737
+
738
+ .ribbon-meta {
739
+ justify-content: flex-end;
740
+ flex-wrap: wrap;
741
+ gap: 0.5rem;
742
+ }
743
+
744
+ .mode-switch {
745
+ display: inline-flex;
746
+ gap: 0.25rem;
747
+ min-height: 2.5rem;
748
+ padding: 0.22rem;
749
+ border: 1px solid hsl(var(--border));
750
+ border-radius: 8px;
751
+ background: hsl(var(--card) / 0.72);
752
+ }
753
+
754
+ .mode-switch button {
755
+ min-width: 3.5rem;
756
+ border-radius: 6px;
757
+ padding: 0 0.65rem;
758
+ color: hsl(var(--muted-foreground));
759
+ font-size: 0.8rem;
760
+ font-weight: 760;
761
+ }
762
+
763
+ .mode-switch button.is-active {
764
+ background: hsl(var(--primary));
765
+ color: hsl(var(--primary-foreground));
766
+ }
767
+
768
+ .arrival-panel {
769
+ display: grid;
770
+ grid-template-columns: minmax(0, 0.86fr) minmax(22rem, 1.14fr);
771
+ gap: 1rem;
772
+ margin-bottom: 1.25rem;
773
+ border: 1px solid hsl(var(--border) / 0.78);
774
+ border-radius: 8px;
775
+ background:
776
+ linear-gradient(135deg, hsl(var(--card) / 0.94), hsl(var(--card) / 0.76)),
777
+ linear-gradient(90deg, hsl(var(--primary) / 0.12), transparent 42%, hsl(var(--act) / 0.08));
778
+ box-shadow: 0 18px 52px hsl(200 22% 3% / 0.26);
779
+ }
780
+
781
+ .arrival-copy {
782
+ padding: 1.35rem;
783
+ }
784
+
785
+ .arrival-copy h2 {
786
+ margin: 0.7rem 0 0;
787
+ max-width: 36rem;
788
+ font-size: 2.25rem;
789
+ line-height: 1.02;
790
+ font-weight: 800;
791
+ }
792
+
793
+ .arrival-copy p {
794
+ margin: 0.85rem 0 0;
795
+ max-width: 39rem;
796
+ color: hsl(var(--muted-foreground));
797
+ font-size: 0.98rem;
798
+ line-height: 1.65;
799
+ }
800
+
801
+ .arrival-actions {
802
+ flex-wrap: wrap;
803
+ gap: 0.5rem;
804
+ margin-top: 1.15rem;
805
+ }
806
+
807
+ .journey-panel {
808
+ margin: 0.55rem;
809
+ padding: 0.8rem;
810
+ border: 1px solid hsl(var(--border) / 0.72);
811
+ border-radius: 8px;
812
+ background: hsl(var(--background) / 0.5);
813
+ }
814
+
815
+ .journey-head {
816
+ justify-content: space-between;
817
+ gap: 1rem;
818
+ }
819
+
820
+ .journey-progress {
821
+ height: 0.42rem;
822
+ margin: 0.8rem 0;
823
+ overflow: hidden;
824
+ border-radius: 999px;
825
+ background: hsl(var(--muted));
826
+ }
827
+
828
+ .journey-progress span {
829
+ display: block;
830
+ height: 100%;
831
+ border-radius: inherit;
832
+ background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--act)));
833
+ }
834
+
835
+ .journey-steps {
836
+ display: grid;
837
+ grid-template-columns: repeat(2, minmax(0, 1fr));
838
+ gap: 0.45rem;
839
+ }
840
+
841
+ .journey-step {
842
+ display: grid;
843
+ grid-template-columns: auto minmax(0, 1fr) auto;
844
+ align-items: center;
845
+ gap: 0.65rem;
846
+ min-height: 4rem;
847
+ border: 1px solid hsl(var(--border) / 0.72);
848
+ border-radius: 7px;
849
+ background: hsl(var(--card) / 0.56);
850
+ padding: 0.65rem;
851
+ text-align: left;
852
+ }
853
+
854
+ .journey-step:hover {
855
+ background: hsl(var(--muted) / 0.62);
856
+ }
857
+
858
+ .journey-icon,
859
+ .command-icon {
860
+ display: grid;
861
+ place-items: center;
862
+ width: 2rem;
863
+ height: 2rem;
864
+ border-radius: 7px;
865
+ background: hsl(var(--primary) / 0.14);
866
+ color: hsl(var(--primary));
867
+ }
868
+
869
+ .command-scrim,
870
+ .mobile-drawer {
871
+ position: fixed;
872
+ inset: 0;
873
+ z-index: 60;
874
+ }
875
+
876
+ .command-scrim {
877
+ padding: 1rem;
878
+ background: hsl(var(--background) / 0.78);
879
+ backdrop-filter: blur(18px);
880
+ }
881
+
882
+ .command-panel {
883
+ width: min(100%, 42rem);
884
+ margin: 4.5rem auto 0;
885
+ overflow: hidden;
886
+ border: 1px solid hsl(var(--border));
887
+ border-radius: 8px;
888
+ background: hsl(var(--card) / 0.96);
889
+ box-shadow: 0 24px 70px hsl(200 22% 3% / 0.34);
890
+ }
891
+
892
+ .command-search {
893
+ gap: 0.5rem;
894
+ border-bottom: 1px solid hsl(var(--border));
895
+ padding: 0.65rem;
896
+ }
897
+
898
+ .command-list {
899
+ max-height: 25rem;
900
+ overflow: auto;
901
+ padding: 0.45rem;
902
+ }
903
+
904
+ .command-row {
905
+ display: grid;
906
+ grid-template-columns: auto minmax(0, 1fr);
907
+ align-items: center;
908
+ gap: 0.75rem;
909
+ width: 100%;
910
+ min-height: 3.5rem;
911
+ border-radius: 7px;
912
+ padding: 0.6rem;
913
+ text-align: left;
914
+ }
915
+
916
+ .command-row:hover {
917
+ background: hsl(var(--muted) / 0.62);
918
+ }
919
+
920
+ .drawer-scrim {
921
+ position: absolute;
922
+ inset: 0;
923
+ background: hsl(var(--background) / 0.72);
924
+ }
925
+
926
+ .drawer-panel {
927
+ position: relative;
928
+ width: min(22rem, calc(100vw - 2rem));
929
+ height: 100%;
930
+ padding: 1rem;
931
+ border-right: 1px solid hsl(var(--border));
932
+ background: hsl(var(--card) / 0.98);
933
+ box-shadow: 18px 0 48px hsl(200 22% 3% / 0.34);
934
+ }
935
+
936
+ .drawer-header {
937
+ display: flex;
938
+ align-items: center;
939
+ justify-content: space-between;
940
+ gap: 1rem;
941
+ margin-bottom: 0.8rem;
942
+ }
943
+
944
+ .drawer-panel .primary-dock {
945
+ display: grid;
946
+ align-items: stretch;
947
+ }
948
+
949
+ .drawer-panel .dock-button {
950
+ justify-content: flex-start;
951
+ min-width: 0;
952
+ }
953
+
954
+ .page-hero {
955
+ position: relative;
956
+ overflow: hidden;
957
+ border: 1px solid hsl(var(--border) / 0.74);
958
+ border-radius: 8px;
959
+ background:
960
+ linear-gradient(120deg, hsl(var(--card) / 0.9), hsl(var(--muted) / 0.44)),
961
+ linear-gradient(90deg, hsl(var(--primary) / 0.1), transparent 56%);
962
+ padding: 1.35rem;
963
+ }
964
+
965
+ .page-title {
966
+ margin-top: 0.58rem;
967
+ max-width: 56rem;
968
+ font-size: 3.1rem;
969
+ line-height: 0.98;
970
+ font-weight: 810;
971
+ letter-spacing: 0;
972
+ }
973
+
974
+ .page-copy {
975
+ margin-top: 0.82rem;
976
+ max-width: 48rem;
977
+ color: hsl(var(--muted-foreground));
978
+ font-size: 0.98rem;
979
+ line-height: 1.62;
980
+ }
981
+
982
+ .control-pill {
983
+ border: 1px solid hsl(var(--border));
984
+ border-radius: 999px;
985
+ background: hsl(var(--card) / 0.72);
986
+ color: hsl(var(--foreground));
987
+ }
988
+
989
+ .brain-conversation-grid {
990
+ display: grid;
991
+ grid-template-columns: minmax(17rem, 0.72fr) minmax(22rem, 1fr) minmax(17rem, 0.72fr);
992
+ gap: 1rem;
993
+ min-height: calc(100vh - 8rem);
994
+ }
995
+
996
+ .brain-presence-column {
997
+ display: grid;
998
+ align-content: center;
999
+ gap: 1rem;
1000
+ min-width: 0;
1001
+ }
1002
+
1003
+ .brain-context-column {
1004
+ display: grid;
1005
+ align-content: start;
1006
+ gap: 1rem;
1007
+ min-width: 0;
1008
+ }
1009
+
1010
+ .living-brain {
1011
+ position: relative;
1012
+ overflow: hidden;
1013
+ border: 1px solid hsl(var(--border) / 0.76);
1014
+ border-radius: 8px;
1015
+ background:
1016
+ linear-gradient(145deg, hsl(var(--card) / 0.94), hsl(210 18% 9% / 0.82)),
1017
+ linear-gradient(90deg, hsl(var(--primary) / 0.12), transparent 40%, hsl(var(--library) / 0.1));
1018
+ box-shadow: 0 20px 60px hsl(200 22% 3% / 0.24);
1019
+ }
1020
+
1021
+ :root[data-theme="light"] .living-brain {
1022
+ background:
1023
+ linear-gradient(145deg, hsl(var(--card) / 0.96), hsl(196 24% 94% / 0.82)),
1024
+ linear-gradient(90deg, hsl(var(--primary) / 0.12), transparent 42%, hsl(var(--library) / 0.1));
1025
+ }
1026
+
1027
+ .brain-presence-head,
1028
+ .brain-presence-foot,
1029
+ .brain-chat-head,
1030
+ .brain-composer-actions,
1031
+ .brain-side-head,
1032
+ .brain-conversation-item {
1033
+ display: flex;
1034
+ align-items: center;
1035
+ }
1036
+
1037
+ .brain-presence-head {
1038
+ justify-content: space-between;
1039
+ gap: 1rem;
1040
+ padding: 1rem 1rem 0;
1041
+ }
1042
+
1043
+ .brain-presence-head h2 {
1044
+ margin: 0.28rem 0 0;
1045
+ font-size: 1.35rem;
1046
+ line-height: 1.12;
1047
+ font-weight: 800;
1048
+ }
1049
+
1050
+ .brain-presence-kicker,
1051
+ .brain-chat-kicker {
1052
+ display: inline-flex;
1053
+ align-items: center;
1054
+ gap: 0.45rem;
1055
+ color: hsl(var(--primary));
1056
+ font-size: 0.76rem;
1057
+ font-weight: 780;
1058
+ text-transform: uppercase;
1059
+ }
1060
+
1061
+ .brain-stage {
1062
+ position: relative;
1063
+ display: grid;
1064
+ place-items: center;
1065
+ min-height: 31rem;
1066
+ margin: 0.25rem 0 0.35rem;
1067
+ overflow: hidden;
1068
+ }
1069
+
1070
+ .brain-organ {
1071
+ position: relative;
1072
+ z-index: 2;
1073
+ width: min(92%, 29rem);
1074
+ aspect-ratio: 11 / 9;
1075
+ overflow: visible;
1076
+ filter: drop-shadow(0 22px 34px hsl(180 70% 4% / 0.48));
1077
+ }
1078
+
1079
+ .brain-mass {
1080
+ transform-origin: center;
1081
+ fill: hsl(var(--primary) / 0.2);
1082
+ stroke: hsl(var(--primary) / 0.78);
1083
+ stroke-width: 2.2;
1084
+ filter: url("#brainGlow");
1085
+ animation: brainBreathe 5.8s ease-in-out infinite;
1086
+ }
1087
+
1088
+ .brain-mass-right {
1089
+ fill: hsl(var(--ask) / 0.16);
1090
+ stroke: hsl(var(--ask) / 0.64);
1091
+ animation-delay: -1.2s;
1092
+ }
1093
+
1094
+ .thought-path {
1095
+ fill: none;
1096
+ stroke-linecap: round;
1097
+ stroke-dasharray: 18 24;
1098
+ stroke-width: 5;
1099
+ opacity: 0.86;
1100
+ animation: thoughtFlow 4.8s linear infinite;
1101
+ }
1102
+
1103
+ .thought-path-a,
1104
+ .thought-path-d {
1105
+ stroke: hsl(var(--primary));
1106
+ }
1107
+
1108
+ .thought-path-b {
1109
+ stroke: hsl(var(--ask));
1110
+ animation-delay: -1.7s;
1111
+ }
1112
+
1113
+ .thought-path-c {
1114
+ stroke: hsl(var(--library));
1115
+ animation-delay: -2.8s;
1116
+ }
1117
+
1118
+ .memory-pulse {
1119
+ fill: hsl(var(--foreground));
1120
+ opacity: 0.9;
1121
+ transform-origin: center;
1122
+ animation: memoryPulse 2.4s ease-in-out infinite;
1123
+ }
1124
+
1125
+ .pulse-b {
1126
+ animation-delay: -0.6s;
1127
+ }
1128
+
1129
+ .pulse-c {
1130
+ animation-delay: -1.2s;
1131
+ }
1132
+
1133
+ .pulse-d {
1134
+ animation-delay: -1.8s;
1135
+ }
1136
+
1137
+ .brain-halo,
1138
+ .brain-wave {
1139
+ position: absolute;
1140
+ display: block;
1141
+ border-radius: 999px;
1142
+ }
1143
+
1144
+ .brain-halo {
1145
+ inset: 13%;
1146
+ border: 1px solid hsl(var(--primary) / 0.22);
1147
+ animation: haloPulse 6s ease-in-out infinite;
1148
+ }
1149
+
1150
+ .brain-halo-b {
1151
+ inset: 20%;
1152
+ border-color: hsl(var(--ask) / 0.18);
1153
+ animation-delay: -2.4s;
1154
+ }
1155
+
1156
+ .brain-wave {
1157
+ z-index: 1;
1158
+ height: 0.18rem;
1159
+ background: linear-gradient(90deg, transparent, hsl(var(--primary) / 0.72), hsl(var(--ask) / 0.54), transparent);
1160
+ opacity: 0.72;
1161
+ transform-origin: center;
1162
+ animation: waveDrift 6.5s ease-in-out infinite;
1163
+ }
1164
+
1165
+ .brain-wave-a {
1166
+ width: 70%;
1167
+ top: 27%;
1168
+ transform: rotate(14deg);
1169
+ }
1170
+
1171
+ .brain-wave-b {
1172
+ width: 82%;
1173
+ top: 55%;
1174
+ transform: rotate(-10deg);
1175
+ animation-delay: -2.1s;
1176
+ }
1177
+
1178
+ .brain-wave-c {
1179
+ width: 58%;
1180
+ top: 71%;
1181
+ transform: rotate(7deg);
1182
+ animation-delay: -4.2s;
1183
+ }
1184
+
1185
+ .brain-state-pill {
1186
+ position: absolute;
1187
+ z-index: 3;
1188
+ right: 1rem;
1189
+ bottom: 1rem;
1190
+ display: inline-flex;
1191
+ align-items: center;
1192
+ gap: 0.45rem;
1193
+ min-height: 2.5rem;
1194
+ border: 1px solid hsl(var(--border));
1195
+ border-radius: 999px;
1196
+ background: hsl(var(--background) / 0.76);
1197
+ padding: 0 0.85rem;
1198
+ font-size: 0.84rem;
1199
+ font-weight: 780;
1200
+ backdrop-filter: blur(16px);
1201
+ }
1202
+
1203
+ .living-brain[data-activity="thinking"] .thought-path {
1204
+ animation-duration: 2.3s;
1205
+ }
1206
+
1207
+ .living-brain[data-activity="recalling"] .memory-pulse,
1208
+ .living-brain[data-activity="acting"] .memory-pulse {
1209
+ animation-duration: 1.4s;
1210
+ }
1211
+
1212
+ .living-brain[data-activity="planning"] .brain-wave,
1213
+ .living-brain[data-activity="acting"] .brain-wave {
1214
+ animation-duration: 3.2s;
1215
+ }
1216
+
1217
+ .brain-vitals {
1218
+ display: grid;
1219
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1220
+ gap: 0.55rem;
1221
+ padding: 0 1rem 1rem;
1222
+ }
1223
+
1224
+ .brain-vital {
1225
+ min-width: 0;
1226
+ border: 1px solid hsl(var(--border) / 0.72);
1227
+ border-radius: 7px;
1228
+ background: hsl(var(--background) / 0.48);
1229
+ padding: 0.72rem;
1230
+ }
1231
+
1232
+ .brain-vital svg {
1233
+ color: hsl(var(--primary));
1234
+ }
1235
+
1236
+ .brain-vital span,
1237
+ .brain-vital strong {
1238
+ display: block;
1239
+ min-width: 0;
1240
+ }
1241
+
1242
+ .brain-vital span {
1243
+ margin-top: 0.45rem;
1244
+ color: hsl(var(--muted-foreground));
1245
+ font-size: 0.72rem;
1246
+ font-weight: 740;
1247
+ text-transform: uppercase;
1248
+ }
1249
+
1250
+ .brain-vital strong {
1251
+ margin-top: 0.18rem;
1252
+ overflow: hidden;
1253
+ text-overflow: ellipsis;
1254
+ white-space: nowrap;
1255
+ font-size: 1.15rem;
1256
+ line-height: 1.15;
1257
+ }
1258
+
1259
+ .brain-presence-foot {
1260
+ gap: 0.5rem;
1261
+ min-height: 3rem;
1262
+ border-top: 1px solid hsl(var(--border) / 0.68);
1263
+ padding: 0.75rem 1rem;
1264
+ color: hsl(var(--muted-foreground));
1265
+ font-size: 0.86rem;
1266
+ }
1267
+
1268
+ .brain-side-panel {
1269
+ overflow: hidden;
1270
+ border: 1px solid hsl(var(--border) / 0.74);
1271
+ border-radius: 8px;
1272
+ background: hsl(var(--card) / 0.72);
1273
+ padding: 0.85rem;
1274
+ }
1275
+
1276
+ .brain-side-head {
1277
+ justify-content: space-between;
1278
+ gap: 0.75rem;
1279
+ margin-bottom: 0.72rem;
1280
+ }
1281
+
1282
+ .brain-side-head h3 {
1283
+ margin: 0 0 0.28rem;
1284
+ font-size: 0.94rem;
1285
+ font-weight: 780;
1286
+ }
1287
+
1288
+ .brain-conversation-list {
1289
+ display: grid;
1290
+ gap: 0.45rem;
1291
+ max-height: 16rem;
1292
+ overflow: auto;
1293
+ }
1294
+
1295
+ .brain-conversation-item {
1296
+ justify-content: space-between;
1297
+ gap: 0.45rem;
1298
+ min-height: 3.7rem;
1299
+ border: 1px solid hsl(var(--border) / 0.68);
1300
+ border-radius: 7px;
1301
+ background: hsl(var(--background) / 0.44);
1302
+ padding: 0.35rem 0.35rem 0.35rem 0.65rem;
1303
+ }
1304
+
1305
+ .brain-conversation-item.is-active {
1306
+ border-color: hsl(var(--primary) / 0.7);
1307
+ background: hsl(var(--primary) / 0.12);
1308
+ }
1309
+
1310
+ .brain-conversation-item button:first-child {
1311
+ display: grid;
1312
+ min-width: 0;
1313
+ gap: 0.2rem;
1314
+ }
1315
+
1316
+ .brain-conversation-item span,
1317
+ .brain-conversation-item small {
1318
+ overflow: hidden;
1319
+ text-overflow: ellipsis;
1320
+ white-space: nowrap;
1321
+ }
1322
+
1323
+ .brain-conversation-item span {
1324
+ font-size: 0.86rem;
1325
+ font-weight: 720;
1326
+ }
1327
+
1328
+ .brain-conversation-item small {
1329
+ color: hsl(var(--muted-foreground));
1330
+ font-size: 0.72rem;
1331
+ }
1332
+
1333
+ .brain-delete-button {
1334
+ display: grid;
1335
+ place-items: center;
1336
+ width: 2rem;
1337
+ height: 2rem;
1338
+ flex: 0 0 auto;
1339
+ border-radius: 6px;
1340
+ color: hsl(var(--muted-foreground));
1341
+ }
1342
+
1343
+ .brain-delete-button:hover {
1344
+ background: hsl(var(--destructive) / 0.12);
1345
+ color: hsl(var(--destructive));
1346
+ }
1347
+
1348
+ .brain-chat-panel {
1349
+ display: grid;
1350
+ grid-template-rows: auto minmax(0, 1fr) auto;
1351
+ min-height: calc(100vh - 8rem);
1352
+ overflow: hidden;
1353
+ }
1354
+
1355
+ .brain-chat-head {
1356
+ justify-content: space-between;
1357
+ gap: 1rem;
1358
+ border-bottom: 1px solid hsl(var(--border) / 0.74);
1359
+ padding: 1rem 1.1rem;
1360
+ }
1361
+
1362
+ .brain-chat-head h1 {
1363
+ margin: 0.34rem 0 0;
1364
+ font-size: 1.8rem;
1365
+ line-height: 1.05;
1366
+ font-weight: 820;
1367
+ }
1368
+
1369
+ .brain-chat-model {
1370
+ display: flex;
1371
+ flex-wrap: wrap;
1372
+ justify-content: flex-end;
1373
+ gap: 0.45rem;
1374
+ }
1375
+
1376
+ .brain-message-stream {
1377
+ min-height: 24rem;
1378
+ overflow: auto;
1379
+ padding: 1rem;
1380
+ }
1381
+
1382
+ .brain-empty-conversation {
1383
+ display: grid;
1384
+ min-height: 100%;
1385
+ place-items: center;
1386
+ }
1387
+
1388
+ .brain-message-row {
1389
+ display: flex;
1390
+ margin-bottom: 0.85rem;
1391
+ }
1392
+
1393
+ .brain-message-row.from-user {
1394
+ justify-content: flex-end;
1395
+ }
1396
+
1397
+ .brain-message-row.from-brain {
1398
+ justify-content: flex-start;
1399
+ }
1400
+
1401
+ .brain-message-bubble {
1402
+ max-width: min(78%, 44rem);
1403
+ border: 1px solid hsl(var(--border) / 0.74);
1404
+ border-radius: 8px;
1405
+ background: hsl(var(--background) / 0.7);
1406
+ padding: 0.9rem;
1407
+ font-size: 0.94rem;
1408
+ line-height: 1.65;
1409
+ }
1410
+
1411
+ .brain-message-row.from-user .brain-message-bubble {
1412
+ border-color: hsl(var(--primary) / 0.46);
1413
+ background: hsl(var(--primary) / 0.14);
1414
+ }
1415
+
1416
+ .brain-message-role {
1417
+ margin-bottom: 0.35rem;
1418
+ color: hsl(var(--muted-foreground));
1419
+ font-size: 0.72rem;
1420
+ font-weight: 780;
1421
+ text-transform: uppercase;
1422
+ }
1423
+
1424
+ .brain-composer {
1425
+ border-top: 1px solid hsl(var(--border) / 0.74);
1426
+ background: hsl(var(--background) / 0.32);
1427
+ padding: 1rem;
1428
+ }
1429
+
1430
+ .brain-composer textarea {
1431
+ min-height: 7rem;
1432
+ resize: vertical;
1433
+ }
1434
+
1435
+ .brain-composer-actions {
1436
+ justify-content: space-between;
1437
+ flex-wrap: wrap;
1438
+ gap: 0.6rem;
1439
+ margin-top: 0.65rem;
1440
+ }
1441
+
1442
+ .brain-layer-header {
1443
+ display: grid;
1444
+ grid-template-columns: minmax(0, 1fr) auto;
1445
+ align-items: end;
1446
+ gap: 1rem;
1447
+ border: 1px solid hsl(var(--border) / 0.72);
1448
+ border-radius: 8px;
1449
+ background: hsl(var(--background) / 0.48);
1450
+ padding: 1rem;
1451
+ }
1452
+
1453
+ .brain-layer-header h1 {
1454
+ margin: 0.35rem 0 0;
1455
+ font-size: 1.85rem;
1456
+ line-height: 1.08;
1457
+ font-weight: 810;
1458
+ }
1459
+
1460
+ .brain-layer-meter {
1461
+ display: grid;
1462
+ min-width: 10rem;
1463
+ border: 1px solid hsl(var(--border) / 0.7);
1464
+ border-radius: 7px;
1465
+ background: hsl(var(--card) / 0.68);
1466
+ padding: 0.85rem;
1467
+ }
1468
+
1469
+ .brain-layer-meter span {
1470
+ color: hsl(var(--muted-foreground));
1471
+ font-size: 0.72rem;
1472
+ font-weight: 760;
1473
+ text-transform: uppercase;
1474
+ }
1475
+
1476
+ .brain-layer-meter strong {
1477
+ margin-top: 0.25rem;
1478
+ font-size: 1.45rem;
1479
+ line-height: 1.1;
1480
+ }
1481
+
1482
+ @keyframes brainBreathe {
1483
+ 0%,
1484
+ 100% {
1485
+ transform: scale(0.985);
1486
+ }
1487
+ 50% {
1488
+ transform: scale(1.015);
1489
+ }
1490
+ }
1491
+
1492
+ @keyframes thoughtFlow {
1493
+ from {
1494
+ stroke-dashoffset: 90;
1495
+ }
1496
+ to {
1497
+ stroke-dashoffset: 0;
1498
+ }
1499
+ }
1500
+
1501
+ @keyframes memoryPulse {
1502
+ 0%,
1503
+ 100% {
1504
+ opacity: 0.48;
1505
+ transform: scale(0.76);
1506
+ }
1507
+ 45% {
1508
+ opacity: 1;
1509
+ transform: scale(1.18);
1510
+ }
1511
+ }
1512
+
1513
+ @keyframes waveDrift {
1514
+ 0%,
1515
+ 100% {
1516
+ opacity: 0.36;
1517
+ translate: -4% 0;
1518
+ }
1519
+ 50% {
1520
+ opacity: 0.9;
1521
+ translate: 4% 0;
1522
+ }
1523
+ }
1524
+
1525
+ @keyframes haloPulse {
1526
+ 0%,
1527
+ 100% {
1528
+ opacity: 0.18;
1529
+ transform: scale(0.95);
1530
+ }
1531
+ 50% {
1532
+ opacity: 0.56;
1533
+ transform: scale(1.04);
1534
+ }
1535
+ }
1536
+
85
1537
  .brain-grid {
86
1538
  background-image:
87
- linear-gradient(hsl(var(--border) / 0.34) 1px, transparent 1px),
88
- linear-gradient(90deg, hsl(var(--border) / 0.34) 1px, transparent 1px);
89
- background-size: 32px 32px;
1539
+ linear-gradient(hsl(var(--border) / 0.22) 1px, transparent 1px),
1540
+ linear-gradient(90deg, hsl(var(--border) / 0.22) 1px, transparent 1px);
1541
+ background-size: 28px 28px;
90
1542
  }
91
1543
 
92
1544
  .scrollbar-thin {
93
1545
  scrollbar-width: thin;
94
1546
  }
95
1547
 
1548
+ .soft-scrollbar::-webkit-scrollbar {
1549
+ height: 10px;
1550
+ width: 10px;
1551
+ }
1552
+
1553
+ .soft-scrollbar::-webkit-scrollbar-thumb {
1554
+ border: 3px solid transparent;
1555
+ border-radius: 999px;
1556
+ background: hsl(var(--border));
1557
+ background-clip: content-box;
1558
+ }
1559
+
96
1560
  .react-flow__node {
97
1561
  border: 1px solid hsl(var(--border));
98
1562
  border-radius: 8px;
@@ -105,3 +1569,166 @@ select {
105
1569
  .react-flow__edge-path {
106
1570
  stroke: hsl(var(--primary));
107
1571
  }
1572
+
1573
+ @media (max-width: 1100px) {
1574
+ .app-chrome {
1575
+ grid-template-columns: minmax(0, 1fr) auto;
1576
+ }
1577
+
1578
+ .desktop-dock {
1579
+ display: none;
1580
+ }
1581
+
1582
+ .workspace-ribbon,
1583
+ .arrival-panel,
1584
+ .brain-conversation-grid,
1585
+ .brain-layer-header,
1586
+ .analysis-grid,
1587
+ .model-recommendation-list,
1588
+ .install-hero,
1589
+ .install-steps {
1590
+ grid-template-columns: 1fr;
1591
+ }
1592
+
1593
+ .ribbon-meta {
1594
+ justify-content: flex-start;
1595
+ }
1596
+
1597
+ .brain-chat-panel {
1598
+ min-height: 44rem;
1599
+ }
1600
+
1601
+ .brain-presence-column {
1602
+ align-content: start;
1603
+ }
1604
+
1605
+ .brain-layer-meter {
1606
+ width: min(100%, 18rem);
1607
+ }
1608
+ }
1609
+
1610
+ @media (min-width: 1101px) {
1611
+ .mobile-menu {
1612
+ display: none;
1613
+ }
1614
+ }
1615
+
1616
+ @media (max-width: 760px) {
1617
+ .app-chrome {
1618
+ min-height: 4.4rem;
1619
+ padding: 0.75rem;
1620
+ }
1621
+
1622
+ .brand-copy,
1623
+ .status-chip,
1624
+ .chrome-actions .mode-switch {
1625
+ display: none;
1626
+ }
1627
+
1628
+ .page-shell {
1629
+ width: min(100% - 1rem, 1440px);
1630
+ padding-top: 0.7rem;
1631
+ }
1632
+
1633
+ .workspace-ribbon {
1634
+ align-items: start;
1635
+ }
1636
+
1637
+ .workspace-ribbon h1 {
1638
+ font-size: 1.25rem;
1639
+ }
1640
+
1641
+ .ribbon-meta {
1642
+ gap: 0.4rem;
1643
+ }
1644
+
1645
+ .arrival-copy h2 {
1646
+ font-size: 1.85rem;
1647
+ }
1648
+
1649
+ .journey-steps {
1650
+ grid-template-columns: 1fr;
1651
+ }
1652
+
1653
+ .page-title {
1654
+ font-size: 2.15rem;
1655
+ }
1656
+
1657
+ .page-hero {
1658
+ padding: 1rem;
1659
+ }
1660
+
1661
+ .brain-conversation-grid {
1662
+ min-height: 0;
1663
+ }
1664
+
1665
+ .brain-stage {
1666
+ min-height: 20rem;
1667
+ }
1668
+
1669
+ .product-flow-shell {
1670
+ align-items: start;
1671
+ padding: 1rem;
1672
+ }
1673
+
1674
+ .login-card h1,
1675
+ .flow-panel h1,
1676
+ .install-hero h1 {
1677
+ font-size: 2.2rem;
1678
+ }
1679
+
1680
+ .flow-panel-head,
1681
+ .install-progress > div:first-child,
1682
+ .flow-actions {
1683
+ align-items: flex-start;
1684
+ flex-direction: column;
1685
+ }
1686
+
1687
+ .model-recommendation-card {
1688
+ min-height: 11rem;
1689
+ }
1690
+
1691
+ .brain-vitals {
1692
+ grid-template-columns: 1fr;
1693
+ }
1694
+
1695
+ .brain-chat-head {
1696
+ align-items: flex-start;
1697
+ flex-direction: column;
1698
+ }
1699
+
1700
+ .brain-chat-head h1 {
1701
+ font-size: 1.45rem;
1702
+ }
1703
+
1704
+ .brain-chat-model {
1705
+ justify-content: flex-start;
1706
+ }
1707
+
1708
+ .brain-message-bubble {
1709
+ max-width: 92%;
1710
+ }
1711
+
1712
+ .brain-message-stream {
1713
+ min-height: 22rem;
1714
+ padding: 0.75rem;
1715
+ }
1716
+
1717
+ .brain-composer {
1718
+ padding: 0.75rem;
1719
+ }
1720
+
1721
+ .brain-layer-header h1 {
1722
+ font-size: 1.45rem;
1723
+ }
1724
+ }
1725
+
1726
+ @media (prefers-reduced-motion: reduce) {
1727
+ .brain-mass,
1728
+ .thought-path,
1729
+ .memory-pulse,
1730
+ .brain-halo,
1731
+ .brain-wave {
1732
+ animation: none;
1733
+ }
1734
+ }