FerrellSyntheticIntelligence commited on
Commit
a4abe4e
·
verified ·
1 Parent(s): 4b45ce4

Upload ide/style.css with huggingface_hub

Browse files
Files changed (1) hide show
  1. ide/style.css +861 -0
ide/style.css ADDED
@@ -0,0 +1,861 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ── FSI_FELON IDE — Ocean + Reactor Theme ── */
2
+ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
3
+ html, body { height: 100%; overflow: hidden; }
4
+
5
+ body {
6
+ font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
7
+ background: linear-gradient(180deg, #000428 0%, #004e92 50%, #001a33 100%);
8
+ color: #c8d6e5;
9
+ overflow: hidden;
10
+ user-select: none;
11
+ }
12
+
13
+ /* ── Reactor glow at bottom ── */
14
+ body::after {
15
+ content: '';
16
+ position: fixed; bottom: -200px; left: 50%; transform: translateX(-50%);
17
+ width: 600px; height: 400px;
18
+ background: radial-gradient(ellipse at center, rgba(255,107,53,0.08) 0%, rgba(255,107,53,0.02) 40%, transparent 70%);
19
+ pointer-events: none; z-index: 0;
20
+ }
21
+
22
+ /* ── Splash: The Descent ── */
23
+ #splash {
24
+ position: fixed; inset: 0; z-index: 1000;
25
+ display: flex; flex-direction: column; align-items: center; justify-content: center;
26
+ overflow: hidden;
27
+ animation: splashFade 0.8s ease-out 3.2s forwards;
28
+ }
29
+ @keyframes splashFade { to { opacity: 0; pointer-events: none; } }
30
+
31
+ /* Splash background evolves through phases */
32
+ .splash-bg {
33
+ position: absolute; inset: 0;
34
+ background: #000005;
35
+ animation: bgDescent 3s ease-in-out forwards;
36
+ }
37
+ @keyframes bgDescent {
38
+ 0% { background: #000005; } /* Space */
39
+ 25% { background: radial-gradient(ellipse at 50% 30%, #000428, #000005); } /* Atmosphere */
40
+ 50% { background: radial-gradient(ellipse at 50% 50%, #001a3a, #000428); } /* Ocean */
41
+ 75% { background: radial-gradient(ellipse at 50% 50%, #003b6f, #001a3a); } /* Deep ocean */
42
+ 100% { background: radial-gradient(ellipse at 50% 60%, #ff6b35 0%, #001a3a 30%, #000428 100%); } /* Reactor */
43
+ }
44
+
45
+ /* Stars/particles in space phase */
46
+ .splash-stars {
47
+ position: absolute; inset: 0;
48
+ animation: starsFade 1.5s ease-out forwards;
49
+ }
50
+ @keyframes starsFade { to { opacity: 0.2; } }
51
+
52
+ .splash-logo-container {
53
+ position: relative; z-index: 2;
54
+ animation: logoDescent 2.8s cubic-bezier(0.22, 0.97, 0.36, 1) forwards;
55
+ transform: translateY(-120px);
56
+ opacity: 0;
57
+ }
58
+ @keyframes logoDescent {
59
+ 0% { transform: translateY(-120px) scale(0.6); opacity: 0; }
60
+ 20% { transform: translateY(-40px) scale(0.85); opacity: 0.3; }
61
+ 50% { transform: translateY(-10px) scale(0.95); opacity: 0.7; }
62
+ 75% { transform: translateY(0) scale(1.05); opacity: 1; }
63
+ 100% { transform: translateY(0) scale(1); opacity: 1; }
64
+ }
65
+
66
+ .splash-logo-img {
67
+ width: clamp(100px, 20vw, 180px);
68
+ height: auto;
69
+ filter: drop-shadow(0 0 30px rgba(0,212,255,0.3));
70
+ animation: logoGlowPulse 2s ease-in-out infinite 1.5s;
71
+ }
72
+ @keyframes logoGlowPulse {
73
+ 0%, 100% { filter: drop-shadow(0 0 20px rgba(0,212,255,0.3)) brightness(1); }
74
+ 50% { filter: drop-shadow(0 0 40px rgba(255,51,102,0.4)) brightness(1.2); }
75
+ }
76
+
77
+ .splash-title {
78
+ font-size: clamp(1.8rem, 6vw, 3.5rem);
79
+ font-weight: 100;
80
+ letter-spacing: 16px;
81
+ color: transparent;
82
+ background: linear-gradient(135deg, #00d4ff 0%, #ffffff 50%, #ff6b35 100%);
83
+ -webkit-background-clip: text;
84
+ background-clip: text;
85
+ margin-top: 16px;
86
+ opacity: 0;
87
+ animation: titleReveal 0.6s ease-out 1.8s forwards;
88
+ }
89
+ @keyframes titleReveal { to { opacity: 1; } }
90
+
91
+ .splash-sub {
92
+ font-size: clamp(0.5rem, 1.2vw, 0.85rem);
93
+ font-weight: 200;
94
+ letter-spacing: 8px;
95
+ color: rgba(0, 212, 255, 0.4);
96
+ margin-top: 8px;
97
+ opacity: 0;
98
+ animation: titleReveal 0.6s ease-out 2.2s forwards;
99
+ }
100
+
101
+ /* Splash atmospheric particles */
102
+ .splash-particle {
103
+ position: absolute;
104
+ border-radius: 50%;
105
+ background: #00d4ff;
106
+ animation: particleStreak 2.5s ease-in infinite;
107
+ }
108
+ @keyframes particleStreak {
109
+ 0% { transform: translateY(-20px) scale(1); opacity: 0; }
110
+ 20% { opacity: 0.6; }
111
+ 80% { opacity: 0.2; }
112
+ 100% { transform: translateY(100vh) scale(0); opacity: 0; }
113
+ }
114
+
115
+ /* ── Bubbles ── */
116
+ .bubble {
117
+ position: fixed; border-radius: 50%; pointer-events: none; z-index: 0;
118
+ background: radial-gradient(circle at 30% 30%, rgba(0,212,255,0.08), transparent 70%);
119
+ animation: floatUp linear infinite;
120
+ }
121
+ @keyframes floatUp {
122
+ 0% { transform: translateY(0) scale(1); opacity: 0; }
123
+ 10% { opacity: 0.4; }
124
+ 90% { opacity: 0.1; }
125
+ 100% { transform: translateY(-100vh) scale(0.3); opacity: 0; }
126
+ }
127
+
128
+ /* ── Layout ── */
129
+ #app {
130
+ position: fixed; inset: 0; z-index: 1;
131
+ display: flex;
132
+ opacity: 0;
133
+ animation: appFadeIn 0.8s ease-out 3.2s forwards;
134
+ }
135
+ @keyframes appFadeIn { to { opacity: 1; } }
136
+
137
+ /* ── Sidebar ── */
138
+ #sidebar {
139
+ width: 260px; min-width: 260px;
140
+ display: flex; flex-direction: column;
141
+ background: rgba(255,255,255,0.03);
142
+ backdrop-filter: blur(20px);
143
+ -webkit-backdrop-filter: blur(20px);
144
+ border-right: 1px solid rgba(255,255,255,0.06);
145
+ border-radius: 0 24px 24px 0;
146
+ padding: 20px 0 12px;
147
+ gap: 2px;
148
+ z-index: 2;
149
+ }
150
+
151
+ .sidebar-logo-area {
152
+ display: flex; align-items: center; gap: 12px;
153
+ padding: 0 20px 20px;
154
+ border-bottom: 1px solid rgba(255,255,255,0.05);
155
+ margin-bottom: 12px;
156
+ }
157
+ .sidebar-logo-mini {
158
+ width: 36px; height: 42px;
159
+ animation: heartbeat 3s ease-in-out infinite;
160
+ }
161
+ @keyframes heartbeat {
162
+ 0%, 100% { transform: scale(1); }
163
+ 15% { transform: scale(1.08); }
164
+ 30% { transform: scale(1); }
165
+ 45% { transform: scale(1.05); }
166
+ 60% { transform: scale(1); }
167
+ }
168
+ .sidebar-brand-text {
169
+ font-size: 13px; font-weight: 600; letter-spacing: 4px;
170
+ color: rgba(0, 212, 255, 0.5);
171
+ }
172
+
173
+ .sidebar-tab {
174
+ display: flex; align-items: center; gap: 12px;
175
+ padding: 12px 20px;
176
+ cursor: pointer;
177
+ font-size: 13px; font-weight: 300; letter-spacing: 1px;
178
+ color: rgba(200, 214, 229, 0.45);
179
+ border: none; background: none;
180
+ transition: all 0.2s ease;
181
+ border-radius: 12px;
182
+ margin: 0 8px;
183
+ text-align: left;
184
+ position: relative;
185
+ }
186
+ .sidebar-tab:hover {
187
+ color: rgba(200, 214, 229, 0.8);
188
+ background: rgba(255,255,255,0.03);
189
+ box-shadow: 0 0 20px rgba(0,212,255,0.15);
190
+ }
191
+ .sidebar-tab.active {
192
+ color: #00d4ff;
193
+ background: linear-gradient(135deg, rgba(0,212,255,0.1), rgba(0,212,255,0.02));
194
+ box-shadow: inset 0 0 20px rgba(0,212,255,0.1), 0 0 20px rgba(0,212,255,0.1);
195
+ }
196
+ .sidebar-tab .icon { font-size: 16px; width: 22px; text-align: center; }
197
+
198
+ /* Sidebar status footer */
199
+ .sidebar-status {
200
+ margin-top: auto;
201
+ padding: 12px 16px;
202
+ border-top: 1px solid rgba(255,255,255,0.04);
203
+ font-size: 10px;
204
+ }
205
+ .status-row {
206
+ display: flex; justify-content: space-between;
207
+ padding: 2px 4px;
208
+ color: rgba(200, 214, 229, 0.25);
209
+ letter-spacing: 0.5px;
210
+ }
211
+ .status-row .label { }
212
+ .status-row .value { color: rgba(0, 212, 255, 0.4); }
213
+ .status-row .value.orange { color: rgba(255, 107, 53, 0.5); }
214
+
215
+ /* ── Main Content ── */
216
+ #main {
217
+ flex: 1;
218
+ display: flex; flex-direction: column;
219
+ padding: 20px 24px 24px 20px;
220
+ overflow: hidden;
221
+ min-width: 0;
222
+ }
223
+ .panel {
224
+ display: none;
225
+ flex-direction: column;
226
+ height: 100%;
227
+ background: rgba(255,255,255,0.04);
228
+ backdrop-filter: blur(16px);
229
+ -webkit-backdrop-filter: blur(16px);
230
+ border-radius: 20px;
231
+ border: 1px solid rgba(255,255,255,0.08);
232
+ padding: 24px;
233
+ overflow: hidden;
234
+ animation: fadeSlideIn 0.4s ease-out;
235
+ }
236
+ @keyframes fadeSlideIn {
237
+ from { opacity: 0; transform: translateY(8px); }
238
+ to { opacity: 1; transform: translateY(0); }
239
+ }
240
+ .panel.active { display: flex; }
241
+
242
+ .panel-header {
243
+ font-size: 10px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;
244
+ color: rgba(0, 212, 255, 0.4);
245
+ margin-bottom: 16px;
246
+ padding-bottom: 12px;
247
+ border-bottom: 1px solid rgba(255,255,255,0.04);
248
+ }
249
+
250
+ /* ── Workshop: Code Editor ── */
251
+ .editor-wrapper {
252
+ flex: 1;
253
+ display: flex;
254
+ background: rgba(0,0,0,0.35);
255
+ border-radius: 16px;
256
+ overflow: hidden;
257
+ border: 1px solid rgba(255,255,255,0.05);
258
+ }
259
+ .editor-gutter {
260
+ width: 52px; min-width: 52px;
261
+ background: rgba(0,0,0,0.25);
262
+ padding: 16px 10px;
263
+ text-align: right;
264
+ font-family: 'Fira Code', 'Cascadia Code', monospace;
265
+ font-size: 13px; line-height: 1.6;
266
+ color: rgba(255,255,255,0.1);
267
+ user-select: none;
268
+ overflow: hidden;
269
+ }
270
+ .editor-area {
271
+ flex: 1;
272
+ background: transparent;
273
+ border: none; outline: none;
274
+ padding: 16px;
275
+ font-family: 'Fira Code', 'Cascadia Code', monospace;
276
+ font-size: 13px; line-height: 1.6;
277
+ color: #c8d6e5;
278
+ resize: none;
279
+ tab-size: 4;
280
+ caret-color: #00d4ff;
281
+ }
282
+ .editor-area::placeholder { color: rgba(255,255,255,0.08); }
283
+
284
+ .editor-actions {
285
+ display: flex; gap: 8px;
286
+ margin-top: 12px;
287
+ }
288
+ .btn {
289
+ padding: 8px 20px;
290
+ border: 1px solid rgba(255,255,255,0.08);
291
+ border-radius: 16px;
292
+ background: rgba(255,255,255,0.04);
293
+ color: #c8d6e5;
294
+ font-size: 12px; font-weight: 400; letter-spacing: 1px;
295
+ cursor: pointer;
296
+ transition: all 0.2s ease;
297
+ }
298
+ .btn:hover { background: rgba(255,255,255,0.08); border-color: rgba(0,212,255,0.2); }
299
+ .btn-primary {
300
+ background: rgba(0,212,255,0.1);
301
+ border-color: rgba(0,212,255,0.2);
302
+ color: #00d4ff;
303
+ }
304
+ .btn-primary:hover { background: rgba(0,212,255,0.2); }
305
+ .btn-fire {
306
+ background: rgba(255,107,53,0.1);
307
+ border-color: rgba(255,107,53,0.2);
308
+ color: #ff6b35;
309
+ }
310
+ .btn-fire:hover {
311
+ background: rgba(255,107,53,0.2);
312
+ box-shadow: 0 4px 20px rgba(255,107,53,0.15);
313
+ transform: translateY(-1px);
314
+ }
315
+
316
+ /* ── Forge: Build Output ── */
317
+ .forge-output {
318
+ flex: 1;
319
+ display: flex; flex-direction: column; gap: 12px;
320
+ overflow-y: auto;
321
+ padding-right: 8px;
322
+ }
323
+ .forge-output::-webkit-scrollbar { width: 4px; }
324
+ .forge-output::-webkit-scrollbar-track { background: transparent; }
325
+ .forge-output::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.15); border-radius: 8px; }
326
+
327
+ .forge-card {
328
+ background: linear-gradient(135deg, rgba(0,0,0,0.25), rgba(0,0,0,0.15));
329
+ border-radius: 16px;
330
+ padding: 16px 20px;
331
+ border: 1px solid rgba(255,255,255,0.04);
332
+ transition: all 0.25s ease;
333
+ cursor: pointer;
334
+ }
335
+ .forge-card:hover {
336
+ transform: translateY(-4px);
337
+ box-shadow: 0 8px 32px rgba(255,107,53,0.15);
338
+ border-color: rgba(255,107,53,0.2);
339
+ }
340
+ .forge-card-header {
341
+ display: flex; align-items: center; gap: 12px;
342
+ margin-bottom: 6px;
343
+ }
344
+ .forge-badge {
345
+ font-size: 9px; padding: 2px 10px; border-radius: 20px;
346
+ font-weight: 600; letter-spacing: 1px;
347
+ }
348
+ .badge-success { background: rgba(0,255,136,0.12); color: #00ff88; }
349
+ .badge-pending { background: rgba(255,107,53,0.12); color: #ff6b35; }
350
+ .badge-fail { background: rgba(255,51,102,0.12); color: #ff3366; }
351
+
352
+ .forge-placeholder {
353
+ flex: 1; display: flex; flex-direction: column;
354
+ align-items: center; justify-content: center; gap: 12px;
355
+ color: rgba(255,255,255,0.1);
356
+ font-size: 13px; font-weight: 200; letter-spacing: 2px;
357
+ }
358
+
359
+ /* ── Deep: Terminal ── */
360
+ .terminal-wrapper {
361
+ flex: 1;
362
+ background: rgba(0,0,0,0.5);
363
+ border-radius: 16px;
364
+ padding: 16px;
365
+ font-family: 'Fira Code', 'Cascadia Code', monospace;
366
+ font-size: 13px; line-height: 1.7;
367
+ overflow-y: auto;
368
+ border: 1px solid rgba(255,255,255,0.04);
369
+ display: flex;
370
+ flex-direction: column;
371
+ }
372
+ .terminal-wrapper::-webkit-scrollbar { width: 4px; }
373
+ .terminal-wrapper::-webkit-scrollbar-track { background: transparent; }
374
+ .terminal-wrapper::-webkit-scrollbar-thumb { background: rgba(0,255,136,0.15); border-radius: 8px; }
375
+
376
+ #terminal-output { flex: 1; overflow-y: auto; min-height: 0; }
377
+ .terminal-line { color: rgba(0,255,136,0.7); word-break: break-all; padding: 1px 0; }
378
+ .terminal-line.prompt { color: #00ff88; }
379
+ .terminal-line.error { color: #ff3366; }
380
+ .terminal-line.info { color: rgba(200,214,229,0.4); }
381
+ .terminal-line.chimera { color: #00d4ff; }
382
+ .terminal-line.forge { color: #ff6b35; }
383
+ .terminal-line.rabbit { color: #ffffff; }
384
+ .terminal-line.dream { color: #c084fc; }
385
+ .terminal-line.test { color: #00ff88; }
386
+ .terminal-line.psycho-manifesto {
387
+ color: #ff3366;
388
+ font-weight: 600;
389
+ font-size: 14px;
390
+ letter-spacing: 1px;
391
+ text-shadow: 0 0 20px rgba(255,51,102,0.3);
392
+ }
393
+ .terminal-line.psycho-banner {
394
+ color: #ff3366;
395
+ font-weight: 700;
396
+ font-size: 13px;
397
+ letter-spacing: 2px;
398
+ text-shadow: 0 0 30px rgba(255,51,102,0.4);
399
+ }
400
+ .terminal-line.psycho-summary {
401
+ color: #ff6b35;
402
+ font-weight: 600;
403
+ font-size: 12px;
404
+ letter-spacing: 1px;
405
+ text-shadow: 0 0 20px rgba(255,107,53,0.3);
406
+ }
407
+
408
+ .terminal-input-line {
409
+ display: flex; align-items: center; gap: 8px;
410
+ margin-top: 8px; padding-top: 8px;
411
+ border-top: 1px solid rgba(255,255,255,0.03);
412
+ }
413
+ .terminal-prompt { color: #00ff88; font-size: 13px; white-space: nowrap; }
414
+ .terminal-input {
415
+ flex: 1;
416
+ background: transparent; border: none; outline: none;
417
+ color: #00ff88;
418
+ font-family: 'Fira Code', 'Cascadia Code', monospace;
419
+ font-size: 13px;
420
+ caret-color: #00ff88;
421
+ }
422
+ .terminal-input::placeholder { color: rgba(0,255,136,0.12); }
423
+
424
+ /* ── Vault: File Tree ── */
425
+ .vault-tree {
426
+ flex: 1;
427
+ overflow-y: auto;
428
+ padding: 4px 0;
429
+ }
430
+ .vault-tree::-webkit-scrollbar { width: 4px; }
431
+ .vault-tree::-webkit-scrollbar-track { background: transparent; }
432
+ .vault-tree::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.15); border-radius: 8px; }
433
+
434
+ .tree-item {
435
+ display: flex; align-items: center; gap: 8px;
436
+ padding: 5px 12px;
437
+ border-radius: 12px;
438
+ cursor: pointer;
439
+ font-size: 13px; font-weight: 300;
440
+ color: rgba(200,214,229,0.5);
441
+ transition: all 0.2s;
442
+ }
443
+ .tree-item:hover { background: rgba(255,255,255,0.04); color: rgba(200,214,229,0.85); }
444
+ .tree-item.folder { color: rgba(0,212,255,0.5); }
445
+ .tree-item.file { padding-left: 32px; }
446
+ .tree-item .icon { font-size: 14px; width: 18px; text-align: center; }
447
+
448
+ .vault-upload-zone {
449
+ margin-top: 12px;
450
+ padding: 24px;
451
+ border: 1px dashed rgba(255,255,255,0.1);
452
+ border-radius: 12px;
453
+ text-align: center;
454
+ font-size: 12px; color: rgba(255,255,255,0.2); letter-spacing: 1px;
455
+ transition: all 0.2s;
456
+ cursor: pointer;
457
+ }
458
+ .vault-upload-zone:hover {
459
+ border-color: rgba(0,212,255,0.3);
460
+ background: rgba(0,212,255,0.03);
461
+ color: rgba(0,212,255,0.3);
462
+ }
463
+
464
+ /* ── Dream: Sandbox ── */
465
+ #dream-canvas {
466
+ flex: 1;
467
+ position: relative;
468
+ background: rgba(0,0,0,0.25);
469
+ border-radius: 16px;
470
+ overflow: hidden;
471
+ border: 1px solid rgba(255,255,255,0.04);
472
+ }
473
+ .nanobot {
474
+ position: absolute;
475
+ border-radius: 50%;
476
+ transition: box-shadow 0.3s;
477
+ }
478
+ .nanobot-trail {
479
+ position: absolute;
480
+ border-radius: 50%;
481
+ pointer-events: none;
482
+ animation: trailFade 2s ease-out infinite;
483
+ }
484
+ @keyframes trailFade {
485
+ 0% { transform: scale(1); opacity: 0.4; }
486
+ 100% { transform: scale(0); opacity: 0; }
487
+ }
488
+ .nanobot-line {
489
+ position: absolute;
490
+ height: 1px;
491
+ transform-origin: left center;
492
+ pointer-events: none;
493
+ opacity: 0;
494
+ transition: opacity 0.3s;
495
+ }
496
+
497
+ .dream-status {
498
+ position: absolute; bottom: 14px; left: 16px; right: 16px;
499
+ display: flex; justify-content: space-between;
500
+ font-size: 10px; font-weight: 200; letter-spacing: 2px;
501
+ color: rgba(0,212,255,0.2);
502
+ pointer-events: none;
503
+ }
504
+
505
+ /* ── Mesh: Node Network ── */
506
+ .mesh-grid {
507
+ flex: 1;
508
+ display: grid;
509
+ grid-template-columns: 1fr 1fr;
510
+ grid-template-rows: auto 1fr;
511
+ gap: 12px;
512
+ overflow: hidden;
513
+ min-height: 0;
514
+ }
515
+ .mesh-section {
516
+ background: rgba(0,0,0,0.2);
517
+ border-radius: 16px;
518
+ padding: 16px;
519
+ border: 1px solid rgba(255,255,255,0.04);
520
+ overflow-y: auto;
521
+ }
522
+ .mesh-section::-webkit-scrollbar { width: 4px; }
523
+ .mesh-section::-webkit-scrollbar-track { background: transparent; }
524
+ .mesh-section::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.15); border-radius: 8px; }
525
+ .mesh-section-title {
526
+ font-size: 9px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
527
+ color: rgba(0,212,255,0.3);
528
+ margin-bottom: 12px;
529
+ padding-bottom: 8px;
530
+ border-bottom: 1px solid rgba(255,255,255,0.04);
531
+ }
532
+ #mesh-identity { grid-column: 1; }
533
+ #mesh-share { grid-column: 2; }
534
+ #mesh-discovery { grid-column: 1; grid-row: 2; }
535
+ #mesh-insights { grid-column: 2; grid-row: 2; }
536
+ .mesh-feed-section { display: flex; flex-direction: column; }
537
+ .mesh-feed, .mesh-insights-content { flex: 1; overflow-y: auto; min-height: 0; }
538
+ .mesh-id-row {
539
+ display: flex; justify-content: space-between;
540
+ padding: 4px 0;
541
+ font-size: 12px;
542
+ border-bottom: 1px solid rgba(255,255,255,0.02);
543
+ }
544
+ .mesh-id-label { color: rgba(200,214,229,0.35); font-weight: 300; letter-spacing: 1px; }
545
+ .mesh-id-value { color: #c8d6e5; font-family: 'Fira Code', monospace; font-size: 11px; }
546
+ .mesh-key { color: rgba(0,212,255,0.4); font-size: 10px; }
547
+ .mesh-status-badge {
548
+ margin-top: 10px;
549
+ font-size: 10px; letter-spacing: 2px;
550
+ color: #00ff88;
551
+ text-align: center;
552
+ padding: 6px;
553
+ border-radius: 12px;
554
+ background: rgba(0,255,136,0.06);
555
+ border: 1px solid rgba(0,255,136,0.12);
556
+ }
557
+ .mesh-toggle {
558
+ display: flex; align-items: center; gap: 10px;
559
+ padding: 6px 0;
560
+ font-size: 12px; font-weight: 300;
561
+ color: rgba(200,214,229,0.5);
562
+ cursor: pointer;
563
+ transition: color 0.2s;
564
+ }
565
+ .mesh-toggle:hover { color: #c8d6e5; }
566
+ .mesh-toggle input[type="checkbox"] {
567
+ appearance: none; width: 14px; height: 14px;
568
+ border: 1px solid rgba(255,255,255,0.15);
569
+ border-radius: 4px;
570
+ background: rgba(0,0,0,0.3);
571
+ cursor: pointer;
572
+ transition: all 0.2s;
573
+ flex-shrink: 0;
574
+ }
575
+ .mesh-toggle input[type="checkbox"]:checked {
576
+ background: rgba(0,212,255,0.2);
577
+ border-color: #00d4ff;
578
+ box-shadow: 0 0 8px rgba(0,212,255,0.2);
579
+ }
580
+ .mesh-shared-count {
581
+ margin-top: 8px;
582
+ font-size: 10px; text-align: center;
583
+ color: rgba(200,214,229,0.25);
584
+ letter-spacing: 1px;
585
+ }
586
+ .mesh-feed-empty {
587
+ display: flex; align-items: center; justify-content: center;
588
+ height: 100%;
589
+ font-size: 11px; font-weight: 200;
590
+ color: rgba(200,214,229,0.15);
591
+ text-align: center;
592
+ padding: 20px;
593
+ letter-spacing: 0.5px;
594
+ line-height: 1.6;
595
+ }
596
+ .mesh-feed-item {
597
+ padding: 10px 12px;
598
+ border-radius: 12px;
599
+ background: rgba(255,255,255,0.02);
600
+ border: 1px solid rgba(255,255,255,0.03);
601
+ margin-bottom: 6px;
602
+ transition: all 0.2s;
603
+ cursor: pointer;
604
+ }
605
+ .mesh-feed-item:hover {
606
+ background: rgba(0,212,255,0.04);
607
+ border-color: rgba(0,212,255,0.1);
608
+ }
609
+ .mesh-feed-item-header {
610
+ display: flex; justify-content: space-between; align-items: center;
611
+ margin-bottom: 4px;
612
+ }
613
+ .mesh-feed-item-name {
614
+ font-size: 12px; font-weight: 400;
615
+ color: #c8d6e5;
616
+ }
617
+ .mesh-feed-item-node {
618
+ font-size: 9px; font-family: 'Fira Code', monospace;
619
+ color: rgba(0,212,255,0.3);
620
+ }
621
+ .mesh-feed-item-meta {
622
+ display: flex; gap: 12px;
623
+ font-size: 10px;
624
+ color: rgba(200,214,229,0.3);
625
+ }
626
+ .mesh-insight-card {
627
+ padding: 10px 12px;
628
+ border-radius: 12px;
629
+ background: rgba(255,107,53,0.04);
630
+ border: 1px solid rgba(255,107,53,0.08);
631
+ margin-bottom: 6px;
632
+ cursor: pointer;
633
+ transition: all 0.2s;
634
+ }
635
+ .mesh-insight-card:hover {
636
+ background: rgba(255,107,53,0.08);
637
+ border-color: rgba(255,107,53,0.15);
638
+ }
639
+ .mesh-insight-card-title {
640
+ font-size: 12px; font-weight: 400;
641
+ color: #c8d6e5;
642
+ margin-bottom: 2px;
643
+ }
644
+ .mesh-insight-card-desc {
645
+ font-size: 10px;
646
+ color: rgba(200,214,229,0.4);
647
+ }
648
+
649
+ /* ── Device: APK Builder ── */
650
+ .device-grid {
651
+ flex: 1;
652
+ display: grid;
653
+ grid-template-columns: 1fr 1fr;
654
+ grid-template-rows: auto 1fr;
655
+ gap: 12px;
656
+ overflow: hidden;
657
+ min-height: 0;
658
+ }
659
+ .device-section {
660
+ background: rgba(0,0,0,0.2);
661
+ border-radius: 16px;
662
+ padding: 16px;
663
+ border: 1px solid rgba(255,255,255,0.04);
664
+ overflow-y: auto;
665
+ }
666
+ .device-section::-webkit-scrollbar { width: 4px; }
667
+ .device-section::-webkit-scrollbar-track { background: transparent; }
668
+ .device-section::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.15); border-radius: 8px; }
669
+ .device-section-title {
670
+ font-size: 9px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
671
+ color: rgba(0,212,255,0.3);
672
+ margin-bottom: 12px;
673
+ padding-bottom: 8px;
674
+ border-bottom: 1px solid rgba(255,255,255,0.04);
675
+ }
676
+ #device-status { grid-column: 1; grid-row: 1; }
677
+ #device-build { grid-column: 2; grid-row: 1 / 3; display: flex; flex-direction: column; }
678
+ #device-apk { grid-column: 1; grid-row: 2; }
679
+ .device-row {
680
+ display: flex; justify-content: space-between;
681
+ padding: 4px 0;
682
+ font-size: 12px;
683
+ border-bottom: 1px solid rgba(255,255,255,0.02);
684
+ }
685
+ .device-label { color: rgba(200,214,229,0.35); font-weight: 300; letter-spacing: 1px; }
686
+ .device-value { color: #c8d6e5; font-family: 'Fira Code', monospace; font-size: 11px; }
687
+ .device-value.good { color: #00ff88; }
688
+ .device-value.bad { color: #ff3366; }
689
+ .device-field { margin-bottom: 8px; }
690
+ .device-field-label {
691
+ display: block; font-size: 10px; font-weight: 300; letter-spacing: 1px;
692
+ color: rgba(200,214,229,0.35); margin-bottom: 4px;
693
+ }
694
+ .device-input {
695
+ width: 100%; padding: 6px 10px;
696
+ background: rgba(0,0,0,0.35);
697
+ border: 1px solid rgba(255,255,255,0.08);
698
+ border-radius: 8px;
699
+ color: #c8d6e5;
700
+ font-family: 'Fira Code', monospace;
701
+ font-size: 12px;
702
+ outline: none;
703
+ transition: border-color 0.2s;
704
+ }
705
+ .device-input:focus { border-color: rgba(0,212,255,0.3); }
706
+ .device-actions { display: flex; gap: 8px; margin-top: 4px; }
707
+ .device-output {
708
+ flex: 1; margin-top: 8px;
709
+ background: rgba(0,0,0,0.3);
710
+ border-radius: 12px;
711
+ padding: 12px;
712
+ font-family: 'Fira Code', monospace;
713
+ font-size: 11px; line-height: 1.6;
714
+ overflow-y: auto;
715
+ min-height: 80px;
716
+ border: 1px solid rgba(255,255,255,0.04);
717
+ }
718
+ .device-output-empty {
719
+ color: rgba(200,214,229,0.15);
720
+ text-align: center;
721
+ padding: 20px;
722
+ font-size: 11px;
723
+ }
724
+ .device-output-line { color: rgba(200,214,229,0.6); padding: 1px 0; white-space: pre-wrap; word-break: break-all; }
725
+ .device-output-line.success { color: #00ff88; }
726
+ .device-output-line.error { color: #ff3366; }
727
+ .device-output-line.info { color: rgba(0,212,255,0.5); }
728
+ .device-apk-status {
729
+ font-size: 11px; font-weight: 300;
730
+ color: rgba(200,214,229,0.3);
731
+ padding: 4px 0;
732
+ }
733
+ .device-verify-output {
734
+ margin-top: 8px;
735
+ font-family: 'Fira Code', monospace;
736
+ font-size: 10px;
737
+ color: rgba(200,214,229,0.4);
738
+ line-height: 1.5;
739
+ }
740
+
741
+ /* ── Onboarding Overlay ── */
742
+ .onboarding-overlay {
743
+ position: fixed; inset: 0; z-index: 9999;
744
+ display: none;
745
+ align-items: center; justify-content: center;
746
+ background: rgba(0,0,10,0.85);
747
+ backdrop-filter: blur(12px);
748
+ -webkit-backdrop-filter: blur(12px);
749
+ animation: onboardingFadeIn 0.6s ease-out;
750
+ }
751
+ .onboarding-overlay.visible { display: flex; }
752
+ @keyframes onboardingFadeIn { from { opacity: 0; } to { opacity: 1; } }
753
+
754
+ .onboarding-card {
755
+ width: min(700px, 90vw);
756
+ max-height: 85vh;
757
+ background: linear-gradient(180deg, rgba(0,4,40,0.95), rgba(0,0,20,0.98));
758
+ border: 1px solid rgba(0,212,255,0.12);
759
+ border-radius: 24px;
760
+ display: flex; flex-direction: column;
761
+ overflow: hidden;
762
+ box-shadow: 0 0 80px rgba(0,212,255,0.08), 0 0 200px rgba(0,0,0,0.5);
763
+ }
764
+
765
+ .onboarding-header {
766
+ text-align: center;
767
+ padding: 28px 32px 20px;
768
+ border-bottom: 1px solid rgba(255,255,255,0.04);
769
+ flex-shrink: 0;
770
+ }
771
+ .onboarding-logo {
772
+ width: 64px; height: auto;
773
+ margin-bottom: 12px;
774
+ filter: drop-shadow(0 0 20px rgba(0,212,255,0.2));
775
+ }
776
+ .onboarding-title {
777
+ font-size: 20px; font-weight: 200; letter-spacing: 8px;
778
+ color: #00d4ff;
779
+ }
780
+ .onboarding-subtitle {
781
+ font-size: 10px; font-weight: 200; letter-spacing: 6px;
782
+ color: rgba(0,212,255,0.3);
783
+ margin-top: 6px;
784
+ }
785
+
786
+ .onboarding-body {
787
+ flex: 1; overflow-y: auto;
788
+ padding: 20px 32px;
789
+ }
790
+ .onboarding-body::-webkit-scrollbar { width: 4px; }
791
+ .onboarding-body::-webkit-scrollbar-track { background: transparent; }
792
+ .onboarding-body::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.15); border-radius: 8px; }
793
+
794
+ .onboarding-section { margin-bottom: 18px; }
795
+ .onboarding-section-title {
796
+ font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
797
+ color: rgba(0,212,255,0.5);
798
+ margin-bottom: 6px;
799
+ }
800
+ .onboarding-text {
801
+ font-size: 12px; line-height: 1.7;
802
+ color: rgba(200,214,229,0.7);
803
+ font-weight: 300;
804
+ }
805
+ .onboarding-text strong { color: #c8d6e5; font-weight: 400; }
806
+ .onboarding-text code {
807
+ font-family: 'Fira Code', monospace;
808
+ font-size: 11px;
809
+ color: #00ff88;
810
+ background: rgba(0,255,136,0.06);
811
+ padding: 1px 6px;
812
+ border-radius: 4px;
813
+ }
814
+
815
+ .onboarding-list { margin-top: 8px; }
816
+ .onboarding-list-item {
817
+ display: flex; align-items: flex-start; gap: 10px;
818
+ padding: 4px 0;
819
+ font-size: 12px; line-height: 1.5;
820
+ color: rgba(200,214,229,0.6);
821
+ font-weight: 300;
822
+ }
823
+ .onboarding-bullet {
824
+ width: 18px; height: 18px; min-width: 18px;
825
+ border-radius: 50%;
826
+ background: rgba(0,212,255,0.08);
827
+ border: 1px solid rgba(0,212,255,0.15);
828
+ display: flex; align-items: center; justify-content: center;
829
+ font-size: 9px; font-weight: 600;
830
+ color: rgba(0,212,255,0.5);
831
+ }
832
+
833
+ .onboarding-footer {
834
+ display: flex; align-items: center; justify-content: space-between;
835
+ padding: 16px 32px 20px;
836
+ border-top: 1px solid rgba(255,255,255,0.04);
837
+ flex-shrink: 0;
838
+ }
839
+ .onboarding-dismiss-label {
840
+ display: flex; align-items: center; gap: 8px;
841
+ font-size: 11px; font-weight: 300;
842
+ color: rgba(200,214,229,0.3);
843
+ cursor: pointer;
844
+ }
845
+ .onboarding-dismiss-label input[type="checkbox"] {
846
+ appearance: none; width: 13px; height: 13px;
847
+ border: 1px solid rgba(255,255,255,0.12);
848
+ border-radius: 3px;
849
+ background: rgba(0,0,0,0.3);
850
+ cursor: pointer;
851
+ transition: all 0.2s;
852
+ }
853
+ .onboarding-dismiss-label input[type="checkbox"]:checked {
854
+ background: rgba(0,212,255,0.2);
855
+ border-color: #00d4ff;
856
+ }
857
+
858
+ /* ── Scrollbar ── */
859
+ ::-webkit-scrollbar { width: 4px; }
860
+ ::-webkit-scrollbar-track { background: transparent; }
861
+ ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.06); border-radius: 8px; }