oomi-ai 0.2.39 → 0.2.41

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 (45) hide show
  1. package/README.md +5 -3
  2. package/lib/personaRuntimeManager.js +21 -17
  3. package/lib/personaRuntimeProcess.js +417 -49
  4. package/lib/scaffold.js +14 -14
  5. package/openclaw.plugin.json +1 -1
  6. package/package.json +10 -8
  7. package/templates/persona-app/package.json +6 -4
  8. package/templates/persona-app/src/App.css +562 -81
  9. package/templates/persona-app/src/App.tsx +2 -2
  10. package/templates/persona-app/src/main.tsx +13 -0
  11. package/templates/persona-app/src/pages/HomePage.tsx +117 -36
  12. package/templates/persona-app/src/pages/ScenePage.tsx +2 -15
  13. package/templates/persona-app/src/persona/notes.ts +3 -1
  14. package/templates/persona-app/src/spatial.ts +82 -0
  15. package/templates/persona-app/template.json +1 -1
  16. package/templates/persona-app/vendor/webspatial/FORK.md +6 -0
  17. package/templates/persona-app/vendor/webspatial/core-sdk/LICENSE +21 -0
  18. package/templates/persona-app/vendor/webspatial/core-sdk/dist/iife/index.d.ts +906 -0
  19. package/templates/persona-app/vendor/webspatial/core-sdk/dist/iife/index.global.js +75 -0
  20. package/templates/persona-app/vendor/webspatial/core-sdk/dist/iife/index.global.js.map +1 -0
  21. package/templates/persona-app/vendor/webspatial/core-sdk/dist/index.d.ts +906 -0
  22. package/templates/persona-app/vendor/webspatial/core-sdk/dist/index.js +3131 -0
  23. package/templates/persona-app/vendor/webspatial/core-sdk/dist/index.js.map +1 -0
  24. package/templates/persona-app/vendor/webspatial/core-sdk/package.json +45 -0
  25. package/templates/persona-app/vendor/webspatial/react-sdk/LICENSE +21 -0
  26. package/templates/persona-app/vendor/webspatial/react-sdk/dist/default/index.d.ts +365 -0
  27. package/templates/persona-app/vendor/webspatial/react-sdk/dist/default/index.js +4167 -0
  28. package/templates/persona-app/vendor/webspatial/react-sdk/dist/default/index.js.map +1 -0
  29. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-dev-runtime.d.ts +82 -0
  30. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-dev-runtime.js +66 -0
  31. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-dev-runtime.js.map +1 -0
  32. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-dev-runtime.web.d.ts +2 -0
  33. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-dev-runtime.web.js +18 -0
  34. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-dev-runtime.web.js.map +1 -0
  35. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-runtime.d.ts +5 -0
  36. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-runtime.js +66 -0
  37. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-runtime.js.map +1 -0
  38. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-runtime.web.d.ts +1 -0
  39. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-runtime.web.js +18 -0
  40. package/templates/persona-app/vendor/webspatial/react-sdk/dist/jsx/jsx-runtime.web.js.map +1 -0
  41. package/templates/persona-app/vendor/webspatial/react-sdk/dist/web/index.d.ts +365 -0
  42. package/templates/persona-app/vendor/webspatial/react-sdk/dist/web/index.js +4207 -0
  43. package/templates/persona-app/vendor/webspatial/react-sdk/dist/web/index.js.map +1 -0
  44. package/templates/persona-app/vendor/webspatial/react-sdk/package.json +94 -0
  45. package/templates/persona-app/vite.config.ts +13 -0
@@ -1,30 +1,161 @@
1
+ :root {
2
+ color: #f4f7ff;
3
+ font-family: "Avenir Next", "Segoe UI", sans-serif;
4
+ line-height: 1.5;
5
+ font-weight: 400;
6
+ background:
7
+ radial-gradient(circle at top left, rgba(255, 255, 255, 0.55), transparent 38%),
8
+ linear-gradient(180deg, #dfe8ff 0%, #d1dbf6 42%, #d7cab8 78%, #b58c77 100%);
9
+ --surface-ink: #101528;
10
+ --surface-panel: rgba(20, 27, 52, 0.88);
11
+ --surface-panel-strong: rgba(16, 22, 40, 0.96);
12
+ --surface-panel-soft: rgba(243, 248, 255, 0.12);
13
+ --surface-border: rgba(137, 160, 220, 0.22);
14
+ --surface-shadow: 0 36px 120px rgba(6, 10, 22, 0.24);
15
+ --surface-muted: #b7c3e3;
16
+ --surface-copy: #e8eeff;
17
+ --surface-accent: #7ff0bb;
18
+ }
19
+
20
+ * {
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ html,
25
+ body,
26
+ #root {
27
+ min-height: 100%;
28
+ }
29
+
30
+ body {
31
+ margin: 0;
32
+ min-height: 100vh;
33
+ color: var(--surface-copy);
34
+ background:
35
+ radial-gradient(circle at top left, rgba(255, 255, 255, 0.45), transparent 34%),
36
+ radial-gradient(circle at top right, rgba(161, 183, 255, 0.45), transparent 28%),
37
+ linear-gradient(180deg, #dce6ff 0%, #c8d4f2 44%, #cfbea6 76%, #a57361 100%);
38
+ position: relative;
39
+ overflow-x: hidden;
40
+ }
41
+
42
+ body::before,
43
+ body::after {
44
+ content: "";
45
+ position: fixed;
46
+ inset: auto;
47
+ pointer-events: none;
48
+ z-index: -1;
49
+ }
50
+
51
+ body::before {
52
+ left: -12%;
53
+ right: -12%;
54
+ bottom: -2%;
55
+ height: 30vh;
56
+ background:
57
+ radial-gradient(circle at 18% 20%, rgba(146, 89, 72, 0.75), transparent 26%),
58
+ radial-gradient(circle at 52% 32%, rgba(176, 130, 110, 0.72), transparent 24%),
59
+ radial-gradient(circle at 84% 38%, rgba(125, 92, 79, 0.68), transparent 24%);
60
+ }
61
+
62
+ body::after {
63
+ right: 8%;
64
+ top: 12%;
65
+ width: 420px;
66
+ height: 420px;
67
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.34), transparent 60%);
68
+ }
69
+
70
+ a {
71
+ color: inherit;
72
+ text-decoration: none;
73
+ }
74
+
75
+ button,
76
+ input,
77
+ textarea,
78
+ select {
79
+ font: inherit;
80
+ }
81
+
82
+ code {
83
+ font-family: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
84
+ background: rgba(179, 197, 233, 0.16);
85
+ color: #eef4ff;
86
+ padding: 0.12rem 0.45rem;
87
+ border-radius: 999px;
88
+ font-size: 0.9em;
89
+ }
90
+
1
91
  #root {
2
92
  width: 100%;
3
93
  }
4
94
 
5
- .persona-shell {
6
- width: min(1120px, calc(100% - 48px));
95
+ [enable-xr] {
96
+ position: relative;
97
+ }
98
+
99
+ .persona-shell,
100
+ .scene-shell {
101
+ width: min(1280px, calc(100% - 48px));
7
102
  margin: 0 auto;
8
- padding: 32px 0 48px;
103
+ padding: 32px 0 56px;
104
+ display: grid;
105
+ gap: 24px;
9
106
  }
10
107
 
11
- .persona-header {
108
+ .persona-scene-root {
109
+ position: relative;
110
+ }
111
+
112
+ .persona-header,
113
+ .persona-grid,
114
+ .scene-interaction-grid,
115
+ .scene-content-grid,
116
+ .scene-hero,
117
+ .scene-depth-grid {
12
118
  display: grid;
13
- grid-template-columns: 1.4fr 0.8fr;
14
119
  gap: 20px;
120
+ }
121
+
122
+ .persona-header {
123
+ grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
15
124
  align-items: start;
16
125
  }
17
126
 
127
+ .persona-grid {
128
+ grid-template-columns: repeat(3, minmax(0, 1fr));
129
+ }
130
+
131
+ .persona-panel,
132
+ .scene-board,
133
+ .persona-preview-card,
134
+ .scene-depth-card,
135
+ .scene-debug-card,
136
+ .scene-interaction-card,
137
+ .scene-proof-card,
138
+ .scene-material-chip,
139
+ .scene-nested-shell,
140
+ .scene-nested-panel,
141
+ .scene-ops-card {
142
+ border: 1px solid var(--surface-border);
143
+ box-shadow: var(--surface-shadow);
144
+ backdrop-filter: blur(24px);
145
+ }
146
+
18
147
  .persona-panel {
19
- border: 1px solid rgba(117, 94, 59, 0.2);
20
- background: rgba(255, 250, 242, 0.88);
21
- backdrop-filter: blur(20px);
22
- border-radius: 28px;
23
- box-shadow: 0 24px 80px rgba(63, 48, 23, 0.1);
148
+ border-radius: 30px;
149
+ background: linear-gradient(180deg, rgba(17, 23, 43, 0.9), rgba(25, 33, 59, 0.82));
24
150
  }
25
151
 
26
152
  .persona-hero {
27
- padding: 28px;
153
+ padding: 32px;
154
+ display: grid;
155
+ gap: 24px;
156
+ background:
157
+ radial-gradient(circle at top right, rgba(144, 190, 255, 0.28), transparent 34%),
158
+ linear-gradient(180deg, rgba(15, 22, 44, 0.96), rgba(22, 31, 58, 0.9));
28
159
  }
29
160
 
30
161
  .persona-eyebrow {
@@ -32,112 +163,430 @@
32
163
  font-size: 11px;
33
164
  letter-spacing: 0.28em;
34
165
  text-transform: uppercase;
35
- color: #6d6256;
166
+ color: var(--surface-accent);
36
167
  }
37
168
 
38
169
  .persona-title {
39
170
  margin: 14px 0 0;
40
- font-size: clamp(2.6rem, 5vw, 4.6rem);
41
- line-height: 0.94;
42
- letter-spacing: -0.04em;
171
+ font-size: clamp(2.7rem, 5vw, 4.8rem);
172
+ line-height: 0.92;
173
+ letter-spacing: -0.05em;
174
+ }
175
+
176
+ .persona-description,
177
+ .scene-copy,
178
+ .scene-section-copy,
179
+ .persona-card p,
180
+ .persona-card li,
181
+ .scene-depth-card p,
182
+ .scene-ops-card p {
183
+ color: var(--surface-muted);
43
184
  }
44
185
 
45
186
  .persona-description {
46
187
  margin: 16px 0 0;
47
- max-width: 52rem;
48
- color: #4f463b;
49
- font-size: 1rem;
188
+ max-width: 56rem;
189
+ font-size: 1.02rem;
50
190
  line-height: 1.8;
51
191
  }
52
192
 
53
- .persona-runtime {
54
- padding: 24px;
193
+ .persona-actions {
194
+ display: flex;
195
+ flex-wrap: wrap;
196
+ gap: 12px;
55
197
  }
56
198
 
57
- .runtime-list {
58
- display: grid;
59
- gap: 10px;
60
- margin-top: 14px;
61
- color: #4f463b;
62
- font-size: 0.96rem;
199
+ .persona-button,
200
+ .persona-link {
201
+ display: inline-flex;
202
+ align-items: center;
203
+ justify-content: center;
204
+ min-height: 48px;
205
+ padding: 0 20px;
206
+ border-radius: 16px;
207
+ border: 1px solid rgba(170, 192, 244, 0.28);
208
+ background: rgba(255, 255, 255, 0.08);
209
+ color: #f5f8ff;
210
+ font-weight: 700;
211
+ letter-spacing: 0.01em;
212
+ transition:
213
+ transform 180ms ease,
214
+ border-color 180ms ease,
215
+ background 180ms ease;
63
216
  }
64
217
 
65
- .persona-grid {
218
+ .persona-button:hover,
219
+ .persona-link:hover {
220
+ transform: translateY(-1px);
221
+ border-color: rgba(170, 192, 244, 0.5);
222
+ background: rgba(255, 255, 255, 0.12);
223
+ }
224
+
225
+ .persona-preview-strip {
66
226
  display: grid;
67
- grid-template-columns: 1.2fr 0.8fr;
68
- gap: 20px;
69
- margin-top: 20px;
227
+ grid-template-columns: repeat(3, minmax(0, 1fr));
228
+ gap: 14px;
229
+ }
230
+
231
+ .persona-preview-card {
232
+ min-height: 176px;
233
+ padding: 22px;
234
+ border-radius: 26px;
235
+ }
236
+
237
+ .persona-preview-card h3,
238
+ .scene-depth-card h2,
239
+ .scene-ops-card h3,
240
+ .scene-nested-panel h3,
241
+ .scene-section-title {
242
+ margin: 10px 0 0;
243
+ color: #ffffff;
244
+ }
245
+
246
+ .persona-preview-card p {
247
+ margin: 12px 0 0;
248
+ color: #d4def6;
249
+ line-height: 1.7;
250
+ }
251
+
252
+ .persona-preview-card[data-tone="ocean"],
253
+ .scene-depth-card[data-tone="ocean"] {
254
+ background: linear-gradient(180deg, rgba(18, 59, 107, 0.92), rgba(15, 36, 76, 0.86));
255
+ }
256
+
257
+ .persona-preview-card[data-tone="coral"],
258
+ .scene-depth-card[data-tone="coral"] {
259
+ background: linear-gradient(180deg, rgba(234, 72, 107, 0.92), rgba(189, 52, 89, 0.86));
70
260
  }
71
261
 
262
+ .persona-preview-card[data-tone="violet"],
263
+ .scene-depth-card[data-tone="violet"] {
264
+ background: linear-gradient(180deg, rgba(97, 61, 152, 0.94), rgba(64, 38, 122, 0.9));
265
+ }
266
+
267
+ .persona-runtime,
72
268
  .persona-card {
73
- padding: 24px;
269
+ padding: 26px;
270
+ }
271
+
272
+ .runtime-list {
273
+ display: grid;
274
+ gap: 14px;
275
+ margin-top: 18px;
276
+ }
277
+
278
+ .runtime-row {
279
+ display: flex;
280
+ justify-content: space-between;
281
+ gap: 16px;
282
+ padding-bottom: 12px;
283
+ border-bottom: 1px solid rgba(170, 192, 244, 0.12);
284
+ }
285
+
286
+ .runtime-row:last-child {
287
+ padding-bottom: 0;
288
+ border-bottom: 0;
289
+ }
290
+
291
+ .runtime-label {
292
+ color: var(--surface-muted);
293
+ }
294
+
295
+ .runtime-value {
296
+ text-align: right;
297
+ color: #ffffff;
298
+ font-weight: 700;
74
299
  }
75
300
 
76
301
  .persona-card h2 {
77
302
  margin: 0;
78
- font-size: 1rem;
303
+ font-size: 0.95rem;
304
+ letter-spacing: 0.22em;
79
305
  text-transform: uppercase;
80
- letter-spacing: 0.2em;
81
- color: #6d6256;
306
+ color: #d8e4ff;
82
307
  }
83
308
 
84
309
  .persona-card p,
85
310
  .persona-card li {
86
- color: #51483d;
87
311
  line-height: 1.8;
88
312
  }
89
313
 
90
- .persona-actions {
314
+ .persona-note-list,
315
+ .scene-list {
316
+ margin: 16px 0 0;
317
+ padding-left: 18px;
318
+ display: grid;
319
+ gap: 10px;
320
+ }
321
+
322
+ .persona-scene-card {
323
+ min-height: 240px;
324
+ }
325
+
326
+ .scene-board {
327
+ position: relative;
328
+ overflow: hidden;
329
+ padding: 32px;
330
+ border-radius: 42px;
331
+ background:
332
+ radial-gradient(circle at top right, rgba(102, 139, 255, 0.22), transparent 26%),
333
+ linear-gradient(180deg, rgba(13, 18, 35, 0.98), rgba(24, 31, 56, 0.96));
334
+ }
335
+
336
+ .scene-board::before {
337
+ content: "";
338
+ position: absolute;
339
+ left: 26%;
340
+ right: -10%;
341
+ bottom: -14%;
342
+ height: 280px;
343
+ background:
344
+ radial-gradient(circle at 14% 12%, rgba(196, 102, 83, 0.7), transparent 26%),
345
+ radial-gradient(circle at 52% 28%, rgba(155, 96, 81, 0.64), transparent 28%),
346
+ radial-gradient(circle at 78% 40%, rgba(102, 81, 96, 0.6), transparent 30%);
347
+ opacity: 0.56;
348
+ pointer-events: none;
349
+ }
350
+
351
+ .scene-board > * {
352
+ position: relative;
353
+ z-index: 1;
354
+ }
355
+
356
+ .scene-hero {
357
+ grid-template-columns: minmax(0, 1fr) 260px;
358
+ align-items: start;
359
+ }
360
+
361
+ .scene-hero h1 {
362
+ margin: 10px 0 0;
363
+ font-size: clamp(2.4rem, 4vw, 4rem);
364
+ line-height: 0.96;
365
+ letter-spacing: -0.04em;
366
+ }
367
+
368
+ .scene-copy,
369
+ .scene-section-copy {
370
+ max-width: 48rem;
371
+ line-height: 1.8;
372
+ }
373
+
374
+ .scene-chip-row,
375
+ .scene-material-row {
91
376
  display: flex;
92
377
  flex-wrap: wrap;
93
378
  gap: 12px;
379
+ }
380
+
381
+ .scene-chip {
382
+ display: inline-flex;
383
+ align-items: center;
384
+ min-height: 40px;
385
+ padding: 0 16px;
386
+ border-radius: 999px;
387
+ border: 1px solid rgba(166, 194, 244, 0.18);
388
+ background: rgba(255, 255, 255, 0.08);
389
+ color: #e8eeff;
390
+ font-weight: 700;
391
+ font-size: 0.92rem;
392
+ }
393
+
394
+ .scene-debug-card {
395
+ padding: 14px 16px;
396
+ border-radius: 18px;
397
+ background: rgba(3, 7, 18, 0.88);
398
+ color: #7af6b4;
399
+ font-family: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
400
+ font-size: 12px;
401
+ line-height: 1.6;
402
+ }
403
+
404
+ .scene-debug-title {
405
+ margin-bottom: 8px;
406
+ color: #67cfff;
407
+ font-weight: 700;
408
+ }
409
+
410
+ .scene-depth-grid {
411
+ grid-template-columns: repeat(3, minmax(0, 1fr));
412
+ margin-top: 30px;
413
+ }
414
+
415
+ .scene-interaction-grid {
416
+ grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
417
+ align-items: start;
418
+ margin-top: 30px;
419
+ }
420
+
421
+ .scene-interaction-card,
422
+ .scene-proof-card {
423
+ border-radius: 30px;
424
+ padding: 24px;
425
+ }
426
+
427
+ .scene-interaction-card {
428
+ display: grid;
429
+ gap: 18px;
430
+ background:
431
+ radial-gradient(circle at top right, rgba(122, 196, 255, 0.18), transparent 24%),
432
+ linear-gradient(180deg, rgba(13, 25, 52, 0.92), rgba(22, 31, 58, 0.88));
433
+ border-color: rgba(112, 255, 165, 0.38);
434
+ }
435
+
436
+ .scene-proof-card {
437
+ background: rgba(4, 9, 20, 0.76);
438
+ }
439
+
440
+ .scene-metric-grid {
441
+ margin: 0;
442
+ display: grid;
443
+ grid-template-columns: repeat(4, minmax(0, 1fr));
444
+ gap: 14px;
445
+ }
446
+
447
+ .scene-metric {
448
+ margin: 0;
449
+ padding: 16px;
450
+ border-radius: 20px;
451
+ background: rgba(255, 255, 255, 0.07);
452
+ border: 1px solid rgba(153, 181, 238, 0.12);
453
+ }
454
+
455
+ .scene-metric dt {
456
+ color: var(--surface-muted);
457
+ font-size: 0.82rem;
458
+ text-transform: uppercase;
459
+ letter-spacing: 0.08em;
460
+ }
461
+
462
+ .scene-metric dd {
463
+ margin: 10px 0 0;
464
+ color: #ffffff;
465
+ font-size: 1.7rem;
466
+ font-weight: 700;
467
+ letter-spacing: -0.03em;
468
+ }
469
+
470
+ .scene-proof-strip {
471
+ display: flex;
472
+ flex-wrap: wrap;
473
+ gap: 12px;
474
+ }
475
+
476
+ .scene-proof-strip span {
477
+ display: inline-flex;
478
+ align-items: center;
479
+ min-height: 38px;
480
+ padding: 0 14px;
481
+ border-radius: 999px;
482
+ background: rgba(255, 255, 255, 0.08);
483
+ border: 1px solid rgba(166, 194, 244, 0.16);
484
+ color: #edf4ff;
485
+ font-size: 0.92rem;
486
+ }
487
+
488
+ .scene-depth-card {
489
+ min-height: 210px;
490
+ padding: 24px;
491
+ border-radius: 30px;
492
+ border-color: rgba(112, 255, 165, 0.44);
493
+ display: grid;
494
+ align-content: start;
495
+ }
496
+
497
+ .scene-depth-card p {
498
+ margin-top: 12px;
499
+ line-height: 1.75;
500
+ }
501
+
502
+ .scene-depth-meta {
503
+ display: inline-flex;
504
+ width: fit-content;
94
505
  margin-top: 18px;
506
+ padding: 6px 10px;
507
+ border-radius: 999px;
508
+ background: rgba(6, 11, 26, 0.22);
509
+ color: #eff6ff;
510
+ font-size: 0.78rem;
511
+ font-weight: 700;
512
+ letter-spacing: 0.04em;
513
+ text-transform: uppercase;
95
514
  }
96
515
 
97
- .persona-button,
98
- .persona-link {
516
+ .scene-material-section {
517
+ display: grid;
518
+ gap: 16px;
519
+ margin-top: 30px;
520
+ }
521
+
522
+ .scene-section-title {
523
+ font-size: 2rem;
524
+ line-height: 1;
525
+ }
526
+
527
+ .scene-material-chip {
99
528
  display: inline-flex;
100
529
  align-items: center;
101
530
  justify-content: center;
102
- min-height: 48px;
103
- padding: 0 18px;
104
- border-radius: 14px;
105
- border: 1px solid rgba(117, 94, 59, 0.22);
106
- background: rgba(250, 242, 228, 0.96);
107
- color: #2f291f;
108
- text-decoration: none;
109
- font-weight: 600;
531
+ min-height: 52px;
532
+ padding: 0 20px;
533
+ border-radius: 999px;
534
+ background: rgba(255, 255, 255, 0.12);
535
+ color: #ffffff;
536
+ font-weight: 700;
537
+ letter-spacing: 0.02em;
110
538
  }
111
539
 
112
- .persona-button:hover,
113
- .persona-link:hover {
114
- border-color: rgba(117, 94, 59, 0.42);
540
+ .scene-content-grid {
541
+ grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.7fr);
542
+ align-items: start;
543
+ margin-top: 30px;
115
544
  }
116
545
 
117
- .persona-scene-card {
118
- min-height: 240px;
546
+ .scene-nested-shell {
547
+ min-height: 340px;
548
+ padding: 28px;
549
+ border-radius: 34px;
550
+ background:
551
+ linear-gradient(180deg, rgba(20, 31, 62, 0.9), rgba(12, 19, 40, 0.82));
552
+ display: grid;
553
+ gap: 18px;
119
554
  }
120
555
 
121
- .scene-shell {
556
+ .scene-nested-panel {
557
+ width: min(580px, 100%);
558
+ padding: 24px;
559
+ border-radius: 28px;
560
+ background: linear-gradient(180deg, rgba(16, 50, 96, 0.88), rgba(17, 27, 60, 0.84));
561
+ }
562
+
563
+ .scene-ops-grid {
122
564
  display: grid;
123
- place-items: center;
124
- min-height: 100vh;
125
- padding: 32px;
565
+ gap: 16px;
126
566
  }
127
567
 
128
- .scene-panel {
129
- width: min(720px, 100%);
130
- padding: 28px;
568
+ .scene-ops-card {
569
+ padding: 22px;
570
+ border-radius: 26px;
571
+ background: rgba(255, 255, 255, 0.1);
131
572
  }
132
573
 
133
- .scene-panel h1 {
134
- margin: 0;
135
- font-size: clamp(2rem, 4vw, 3.2rem);
574
+ .scene-footer {
575
+ display: flex;
576
+ flex-wrap: wrap;
577
+ justify-content: space-between;
578
+ align-items: center;
579
+ gap: 16px;
580
+ margin-top: 28px;
136
581
  }
137
582
 
138
- .scene-panel p {
139
- color: #51483d;
140
- line-height: 1.8;
583
+ .scene-footer-copy {
584
+ color: #c8d6fa;
585
+ font-size: 0.9rem;
586
+ }
587
+
588
+ .scene-back-link {
589
+ width: auto;
141
590
  }
142
591
 
143
592
  html.is-spatial {
@@ -145,36 +594,68 @@ html.is-spatial {
145
594
  --xr-background-material: transparent;
146
595
  }
147
596
 
148
- html.is-spatial .persona-panel {
149
- --xr-background-material: thick;
597
+ html.is-spatial body {
598
+ background: transparent;
150
599
  }
151
600
 
152
- html.is-spatial .persona-runtime {
153
- --xr-background-material: translucent;
154
- --xr-back: 60;
155
- transform: translateZ(18px) rotateX(12deg);
156
- transform-origin: top right;
601
+ html.is-spatial .scene-chip,
602
+ html.is-spatial .scene-material-chip {
603
+ --xr-background-material: regular;
157
604
  }
158
605
 
159
- html.is-spatial .persona-scene-card {
606
+ html.is-spatial .scene-ops-card,
607
+ html.is-spatial .scene-interaction-card,
608
+ html.is-spatial .scene-proof-card,
609
+ html.is-spatial .scene-nested-shell,
610
+ html.is-spatial .scene-nested-panel {
160
611
  --xr-background-material: thin;
161
- --xr-back: 36;
162
- transform: translateZ(24px) rotateX(14deg);
163
612
  }
164
613
 
165
- html.is-spatial .persona-link,
166
- html.is-spatial .persona-button {
167
- --xr-background-material: thick;
614
+ html.is-spatial .scene-debug-card {
615
+ --xr-background-material: transparent;
168
616
  }
169
617
 
170
- @media (max-width: 900px) {
171
- .persona-shell {
618
+ html.is-spatial .scene-nested-shell {
619
+ transform: translateZ(16px) rotateX(6deg);
620
+ transform-origin: top left;
621
+ }
622
+
623
+ @media (max-width: 1080px) {
624
+ .persona-grid {
625
+ grid-template-columns: repeat(2, minmax(0, 1fr));
626
+ }
627
+
628
+ .scene-interaction-grid,
629
+ .scene-hero,
630
+ .scene-content-grid {
631
+ grid-template-columns: 1fr;
632
+ }
633
+ }
634
+
635
+ @media (max-width: 820px) {
636
+ .persona-shell,
637
+ .scene-shell {
172
638
  width: min(100%, calc(100% - 28px));
173
- padding-top: 18px;
639
+ padding-top: 20px;
174
640
  }
175
641
 
176
642
  .persona-header,
177
- .persona-grid {
643
+ .persona-grid,
644
+ .persona-preview-strip,
645
+ .scene-interaction-grid,
646
+ .scene-depth-grid {
178
647
  grid-template-columns: 1fr;
179
648
  }
649
+
650
+ .scene-metric-grid {
651
+ grid-template-columns: repeat(2, minmax(0, 1fr));
652
+ }
653
+
654
+ .scene-board {
655
+ padding: 24px;
656
+ }
657
+
658
+ .scene-section-title {
659
+ font-size: 1.6rem;
660
+ }
180
661
  }