dryymatt commited on
Commit
5f99f62
Β·
verified Β·
1 Parent(s): 005a890

Upload static/wizard.css

Browse files
Files changed (1) hide show
  1. static/wizard.css +254 -209
static/wizard.css CHANGED
@@ -1,330 +1,375 @@
1
  /* ╔══════════════════════════════════════════════════════╗
2
- β•‘ OMNI-VIBE STUDIO β€” Liquid Glass Design System β•‘
3
- β•‘ Zero-block Β· Wizard pulse Β· Dark theme Β· Clean chat β•‘
 
4
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• */
5
 
6
  :root {
7
- --glass-bg: rgba(255,255,255,.03);
 
8
  --glass-border: rgba(255,255,255,.06);
 
 
9
  --purple: #8B5CF6; --cyan: #06B6D4; --green: #10B981; --gold: #F59E0B; --red: #EF4444;
10
- --text-primary: #e0e0ff; --text-secondary: #9090b0; --text-muted: #606080;
11
- --bg-deep: #0a0a1a; --bg-mid: #1a0a2e;
12
- --radius-lg: 18px; --radius-md: 12px; --radius-sm: 8px;
13
  --font-mono: 'SF Mono','Fira Code','JetBrains Mono',monospace;
14
  --font-sans: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
15
- --transition-fast: 120ms cubic-bezier(.4,0,.2,1);
16
- --transition-smooth: 250ms cubic-bezier(.4,0,.2,1);
17
  }
18
 
19
  *,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
20
  html,body{height:100%;overflow:hidden}
21
  body{
22
  font-family:var(--font-sans);
23
- background:linear-gradient(135deg,var(--bg-deep) 0%,var(--bg-mid) 50%,#0a1a2e 100%);
24
  color:var(--text-primary);
25
  -webkit-font-smoothing:antialiased;
26
  }
27
- ::selection{background:rgba(139,92,246,.5);color:#fff}
28
 
29
- /* ═══ APP SHELL ═══ */
30
- .app-shell{
31
  display:flex;flex-direction:column;
32
- height:100vh;padding:.75rem;gap:.5rem;
33
- max-width:780px;margin:0 auto;
34
  overflow-y:auto;
35
  }
36
 
37
- /* ═══ HERO: Wizard centered ═══ */
38
- .hero-header{
39
  text-align:center;
40
- padding:.5rem 0 .25rem;
41
  flex-shrink:0;
 
42
  }
43
- .wizard-center{
44
- display:flex;justify-content:center;
45
- margin-bottom:.25rem;
 
46
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  .wizard-hat{
48
- width:44px;height:44px;
49
- filter:drop-shadow(0 0 16px rgba(139,92,246,.5));
50
  transition:filter var(--transition-fast),transform var(--transition-fast);
51
- will-change:transform,filter;
52
  }
53
- /* High-velocity pulse: 600ms cycle */
54
  .wizard-hat.pulse{
55
- animation:wiz-pulse .6s cubic-bezier(.4,0,.2,1) infinite;
56
  }
57
- @keyframes wiz-pulse{
58
- 0%{transform:scale(1);filter:drop-shadow(0 0 16px rgba(139,92,246,.5))}
59
- 50%{transform:scale(1.15);filter:drop-shadow(0 0 32px rgba(6,182,212,.9))}
60
- 100%{transform:scale(1);filter:drop-shadow(0 0 16px rgba(139,92,246,.5))}
61
  }
62
- .wizard-hat.stable{filter:drop-shadow(0 0 20px rgba(16,185,129,.8));animation:none;transform:scale(1)}
63
- .wizard-hat.error{filter:drop-shadow(0 0 20px rgba(239,68,68,.8));animation:none}
64
- .wizard-hat.published{filter:drop-shadow(0 0 24px rgba(245,158,11,.9));animation:none}
65
 
66
  .hero-title{
67
- font-size:clamp(1.3rem,4vw,1.8rem);font-weight:800;line-height:1.15;
68
- background:linear-gradient(135deg,var(--purple),var(--cyan),var(--green));
69
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
70
  background-clip:text;
71
- }
72
- .hero-sub{
73
- color:var(--text-secondary);font-size:.8rem;margin-top:.1rem;
74
  }
75
 
76
- /* ═══ SWARM THOUGHT PROCESS BAR β€” sleek, single line ═══ */
77
- .thought-bar{
78
- display:flex;align-items:center;gap:.5rem;
79
- padding:.45rem .75rem;
80
- background:var(--glass-bg);
81
- backdrop-filter:blur(16px);
82
- border:1px solid var(--glass-border);
83
  border-radius:var(--radius-sm);
84
- flex-shrink:0;
85
- opacity:0;transform:translateY(-4px);
86
- transition:opacity .2s,transform .2s;
87
- }
88
- .thought-bar.visible{opacity:1;transform:translateY(0)}
89
- .thought-pulse{
90
- width:6px;height:6px;border-radius:50%;
91
- background:var(--purple);
92
- animation:thought-blink .8s ease-in-out infinite;
93
- flex-shrink:0;
94
- }
95
- @keyframes thought-blink{0%,100%{opacity:1;box-shadow:0 0 4px var(--purple)}50%{opacity:.3;box-shadow:0 0 1px var(--purple)}}
96
- .thought-text{
97
- font-size:.75rem;color:var(--text-secondary);
98
- flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
99
- }
100
- .thought-models{
101
- font-size:.65rem;color:var(--text-muted);
102
- display:flex;gap:.35rem;
103
- }
104
- .thought-models span{
105
- padding:.1rem .35rem;border-radius:10px;
106
- background:rgba(139,92,246,.12);color:var(--purple);
107
  }
 
108
 
109
- /* ═══ CHAT INPUT ═══ */
110
- .chat-input-section{flex-shrink:0}
111
- .input-row{
112
- display:flex;align-items:stretch;gap:.5rem;
113
- background:var(--glass-bg);
114
- backdrop-filter:blur(20px);
115
- border:1px solid var(--glass-border);
116
  border-radius:var(--radius-lg);
117
- padding:.35rem .35rem .35rem 1rem;
118
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
119
  }
120
- .input-row:focus-within{
121
- border-color:rgba(139,92,246,.4);
122
- box-shadow:0 0 24px rgba(139,92,246,.1);
123
  }
124
  #prompt-input{
125
  flex:1;background:transparent;border:none;
126
  color:var(--text-primary);font-family:var(--font-sans);
127
- font-size:.88rem;line-height:1.5;resize:none;outline:none;
128
- padding:.35rem 0;min-height:38px;max-height:120px;
129
  }
130
  #prompt-input::placeholder{color:var(--text-muted)}
131
 
132
- /* ═══ SOLID BLACK SEND BUTTON ═══ */
133
- .btn-send{
134
- width:44px;height:44px;min-width:44px;
135
- background:#000;
136
- border:1px solid rgba(255,255,255,.08);
137
- border-radius:var(--radius-md);
138
- color:#fff;
139
  display:flex;align-items:center;justify-content:center;
140
  cursor:pointer;
141
- transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);
142
  flex-shrink:0;
143
  }
144
- .btn-send:hover{
145
- background:#1a1a2e;
146
- border-color:rgba(139,92,246,.3);
147
- transform:scale(1.04);
148
  }
149
- .btn-send:active{transform:scale(.96);background:#000}
150
- .btn-send:disabled{
151
- opacity:.35;cursor:not-allowed;transform:none;background:#000;
 
 
152
  }
153
 
154
- /* ═══ TAB NAVIGATION ═══ */
155
  .tab-nav{
156
- display:flex;gap:.25rem;
157
- padding:.2rem;
158
- background:var(--glass-bg);
159
- backdrop-filter:blur(16px);
160
- border:1px solid var(--glass-border);
161
  border-radius:var(--radius-sm);
162
  flex-shrink:0;
163
  }
164
  .tab-btn{
165
- display:flex;align-items:center;gap:.35rem;
166
- flex:1;padding:.4rem .75rem;
167
- background:transparent;border:none;
168
- border-radius:6px;
169
  color:var(--text-muted);
170
- font-family:var(--font-sans);font-size:.78rem;font-weight:600;
171
  cursor:pointer;transition:all var(--transition-fast);
172
  }
173
- .tab-btn:hover:not(:disabled){background:var(--glass-bg);color:var(--text-secondary)}
 
 
 
 
174
  .tab-btn.active{
175
- background:rgba(139,92,246,.15);
176
  color:var(--text-primary);
177
- box-shadow:inset 0 0 0 1px rgba(139,92,246,.2);
178
  }
179
- .tab-btn.locked{cursor:not-allowed;opacity:.45}
180
- .tab-btn.unlocked .tab-icon{animation:unlock-pop .35s ease-out}
181
- @keyframes unlock-pop{0%{transform:scale(1)}50%{transform:scale(1.4)}100%{transform:scale(1)}}
182
- .tab-icon{font-size:.9rem}
183
- .tab-label{font-size:.72rem}
184
 
185
  /* ═══ TAB PANELS ═══ */
186
  .tab-panels{flex:1;min-height:0;position:relative}
187
  .tab-panel{display:none;flex-direction:column;height:100%}
188
  .tab-panel.active{display:flex}
189
 
190
- /* ═══ PANELS ═══ */
191
- .panel{
192
  display:flex;flex-direction:column;
193
- background:var(--glass-bg);
194
- backdrop-filter:blur(16px);
195
- border:1px solid var(--glass-border);
196
  border-radius:var(--radius-lg);
197
  overflow:hidden;flex:1;
198
  }
199
- .panel-header{
200
  display:flex;align-items:center;justify-content:space-between;
201
- padding:.35rem .75rem;
202
- border-bottom:1px solid var(--glass-border);
203
  flex-shrink:0;
204
  }
205
- .panel-title{
206
- font-size:.7rem;font-weight:600;
207
  color:var(--text-secondary);
208
- text-transform:uppercase;letter-spacing:.08em;
209
- }
210
- .panel-actions{display:flex;align-items:center;gap:.5rem}
211
- .char-count{font-size:.65rem;color:var(--text-muted)}
212
- .panel-action{
213
- background:none;border:1px solid var(--glass-border);
214
- border-radius:4px;padding:.15rem .35rem;
215
- color:var(--text-secondary);cursor:pointer;font-size:.75rem;
216
- transition:background var(--transition-fast);
217
  }
218
- .panel-action:hover{background:var(--glass-bg)}
 
 
 
 
 
 
 
 
219
 
220
- /* ═══ CODE VIEW ═══ */
221
- .code-view{
222
- flex:1;overflow:auto;padding:.75rem;margin:0;
223
- font-family:var(--font-mono);font-size:.75rem;
224
- line-height:1.55;color:var(--text-secondary);
225
  white-space:pre-wrap;word-break:break-all;
226
  }
227
- .code-view .placeholder{color:var(--text-muted);font-style:italic}
228
 
229
  /* ═══ PREVIEW ═══ */
230
- .preview-badge{font-size:.75rem}
231
- .preview-container{flex:1;position:relative;background:#fff}
232
  .preview-iframe{width:100%;height:100%;border:none;display:block}
233
  .preview-overlay{
234
  position:absolute;inset:0;
235
  display:flex;align-items:center;justify-content:center;
236
- background:rgba(10,10,26,.85);backdrop-filter:blur(4px);
237
  transition:opacity var(--transition-smooth);
238
  pointer-events:none;
239
  }
240
  .preview-overlay.hidden{opacity:0}
241
  .overlay-content{text-align:center;color:var(--text-secondary)}
242
- .wizard-loader{
243
- width:36px;height:36px;margin:0 auto .75rem;
244
- border:2px solid var(--glass-border);
245
- border-top-color:var(--purple);
246
  border-radius:50%;
247
- animation:spin .8s linear infinite;
248
  }
249
  @keyframes spin{to{transform:rotate(360deg)}}
250
 
251
- /* ═══ PUBLISH BAR β€” single sleek line ═══ */
252
- .publish-bar{
253
  display:flex;align-items:center;justify-content:space-between;
254
- padding:.5rem .85rem;
255
- background:var(--glass-bg);
256
- backdrop-filter:blur(16px);
257
- border:1px solid var(--glass-border);
258
  border-radius:var(--radius-lg);
259
  flex-shrink:0;
260
  transition:border-color var(--transition-smooth);
261
  }
262
- .publish-bar.unlocked{
263
- border-color:rgba(16,185,129,.3);
264
- box-shadow:0 0 16px rgba(16,185,129,.08);
 
 
 
 
 
 
 
 
 
 
265
  }
266
- .publish-status{display:flex;align-items:center;gap:.4rem}
267
- .pub-icon{font-size:.9rem}
268
- .pub-text{font-size:.75rem;color:var(--text-secondary)}
269
- .publish-bar.unlocked .pub-text{color:var(--green)}
 
270
 
271
- .btn-publish{
272
- display:flex;align-items:center;gap:.35rem;
273
- padding:.4rem 1rem;
274
- background:linear-gradient(135deg,var(--green),var(--cyan));
275
- border:none;border-radius:var(--radius-sm);
276
- color:#fff;font-family:var(--font-sans);
277
- font-size:.8rem;font-weight:700;cursor:pointer;
278
- transition:all var(--transition-smooth);
 
279
  white-space:nowrap;
280
  }
281
- .btn-publish:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px rgba(16,185,129,.35)}
282
- .btn-publish:disabled{background:rgba(255,255,255,.05);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none}
283
- .btn-publish.gold{background:linear-gradient(135deg,var(--gold),#FCD34D)!important;box-shadow:0 0 20px rgba(245,158,11,.4);animation:gold-glow 2s ease-in-out infinite}
284
- @keyframes gold-glow{0%,100%{box-shadow:0 0 16px rgba(245,158,11,.25)}50%{box-shadow:0 0 30px rgba(245,158,11,.5)}}
285
- .btn-publish .spinner{display:none;width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
286
- .btn-publish.verifying .spinner{display:inline-block}
287
- .btn-publish.verifying span{display:none}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
 
289
- /* ═══ PUBLISH RESULT ═══ */
290
- .publish-result{flex-shrink:0}
291
- .result-card{
292
- display:flex;align-items:center;gap:.75rem;
293
- padding:.65rem 1rem;
294
- background:rgba(16,185,129,.08);
295
- border:1px solid rgba(16,185,129,.2);
296
- backdrop-filter:blur(16px);
297
  border-radius:var(--radius-md);
298
- animation:slideUp .25s ease-out;
299
  }
300
- @keyframes slideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
301
- .result-icon{font-size:1.3rem}
302
- .result-body strong{display:block;font-size:.8rem;margin-bottom:.1rem}
303
- .live-url{
304
- font-size:.75rem;color:var(--cyan);text-decoration:none;
305
  word-break:break-all;transition:color var(--transition-fast);
306
  }
307
- .live-url:hover{color:var(--purple)}
308
 
309
- /* ═══ TOAST (minimal) ═══ */
310
- .toast-container{position:fixed;bottom:.75rem;right:.75rem;display:flex;flex-direction:column;gap:.35rem;z-index:1000}
311
- .toast{padding:.5rem .85rem;border-radius:var(--radius-sm);background:var(--glass-bg);backdrop-filter:blur(16px);border:1px solid var(--glass-border);color:var(--text-primary);font-size:.75rem;animation:toast-in .25s ease-out;max-width:280px}
312
- .toast.error{border-color:rgba(239,68,68,.3)}
313
- .toast.success{border-color:rgba(16,185,129,.3)}
314
- @keyframes toast-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
315
- .code-chunk-new{animation:chunk-fade .12s ease-out}
316
- @keyframes chunk-fade{from{opacity:0}to{opacity:1}}
317
 
318
  /* ═══ MOBILE ═══ */
319
  @media(max-width:500px){
320
- .app-shell{padding:.4rem;gap:.35rem}
321
- .wizard-hat{width:36px;height:36px}
322
- .hero-title{font-size:1.15rem}
323
- .hero-sub{font-size:.72rem}
324
- .thought-bar{padding:.35rem .55rem}
325
- .thought-text{font-size:.68rem}
326
- .tab-btn{padding:.35rem .5rem}
327
- .tab-label{font-size:.68rem}
328
- .publish-bar{flex-direction:column;gap:.4rem;align-items:stretch}
329
- .btn-publish{justify-content:center}
330
  }
 
1
  /* ╔══════════════════════════════════════════════════════╗
2
+ β•‘ OBSIDIAN FORGE β€” Kinetic RLM Environment β•‘
3
+ β•‘ Absolute Black Β· 1px Glass Β· Aetheric Pulse β•‘
4
+ β•‘ Neon Gradients Β· Quantum Sandbox Β· RLM Core β•‘
5
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• */
6
 
7
  :root {
8
+ --void: #000000;
9
+ --glass-bg: rgba(255,255,255,.02);
10
  --glass-border: rgba(255,255,255,.06);
11
+ --border-1px: rgba(255,255,255,.06);
12
+ --border-glow: rgba(255,255,255,.10);
13
  --purple: #8B5CF6; --cyan: #06B6D4; --green: #10B981; --gold: #F59E0B; --red: #EF4444;
14
+ --neon-purple: #A78BFA; --neon-cyan: #22D3EE; --neon-green: #34D399;
15
+ --text-primary: #e0e0e0; --text-secondary: #8888a0; --text-muted: #555570;
16
+ --radius-lg: 16px; --radius-md: 10px; --radius-sm: 6px;
17
  --font-mono: 'SF Mono','Fira Code','JetBrains Mono',monospace;
18
  --font-sans: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
19
+ --transition-fast: 100ms cubic-bezier(.4,0,.2,1);
20
+ --transition-smooth: 220ms cubic-bezier(.4,0,.2,1);
21
  }
22
 
23
  *,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
24
  html,body{height:100%;overflow:hidden}
25
  body{
26
  font-family:var(--font-sans);
27
+ background:var(--void);
28
  color:var(--text-primary);
29
  -webkit-font-smoothing:antialiased;
30
  }
31
+ ::selection{background:rgba(139,92,246,.4);color:#fff}
32
 
33
+ /* ═══ OBSIDIAN SHELL ═══ */
34
+ .obsidian-shell{
35
  display:flex;flex-direction:column;
36
+ height:100vh;padding:.6rem;gap:.45rem;
37
+ max-width:760px;margin:0 auto;
38
  overflow-y:auto;
39
  }
40
 
41
+ /* ═══ AURA FIELD: wizard + orbit ring + thought-stream ═══ */
42
+ .aura-field{
43
  text-align:center;
44
+ padding:.6rem 0 .3rem;
45
  flex-shrink:0;
46
+ position:relative;
47
  }
48
+ .wizard-orbit{
49
+ position:relative;display:inline-flex;
50
+ align-items:center;justify-content:center;
51
+ width:64px;height:64px;
52
  }
53
+ .orbit-ring{
54
+ position:absolute;inset:-4px;
55
+ border-radius:50%;
56
+ border:1.5px solid rgba(139,92,246,.25);
57
+ animation:orbit-spin 12s linear infinite;
58
+ }
59
+ /* Aetheric pulse when active */
60
+ .orbit-ring.forging{
61
+ border-color:rgba(6,182,212,.5);
62
+ box-shadow:0 0 20px rgba(6,182,212,.15),inset 0 0 20px rgba(6,182,212,.08);
63
+ animation:orbit-spin 6s linear infinite,orbit-glow 3s ease-in-out infinite;
64
+ }
65
+ @keyframes orbit-spin{to{transform:rotate(360deg)}}
66
+ @keyframes orbit-glow{0%,100%{box-shadow:0 0 16px rgba(139,92,246,.15),inset 0 0 16px rgba(139,92,246,.05)}50%{box-shadow:0 0 32px rgba(6,182,212,.25),inset 0 0 32px rgba(6,182,212,.12)}}
67
+
68
  .wizard-hat{
69
+ width:42px;height:42px;
70
+ filter:drop-shadow(0 0 12px rgba(139,92,246,.35));
71
  transition:filter var(--transition-fast),transform var(--transition-fast);
72
+ will-change:transform,filter;z-index:1;
73
  }
 
74
  .wizard-hat.pulse{
75
+ animation:wiz-aether .5s cubic-bezier(.4,0,.2,1) infinite;
76
  }
77
+ @keyframes wiz-aether{
78
+ 0%{transform:scale(1);filter:drop-shadow(0 0 12px rgba(139,92,246,.35))}
79
+ 50%{transform:scale(1.12);filter:drop-shadow(0 0 28px rgba(6,182,212,.7))}
80
+ 100%{transform:scale(1);filter:drop-shadow(0 0 12px rgba(139,92,246,.35))}
81
  }
82
+ .wizard-hat.stable{filter:drop-shadow(0 0 18px rgba(16,185,129,.7));animation:none;transform:scale(1)}
83
+ .wizard-hat.error{filter:drop-shadow(0 0 18px rgba(239,68,68,.7));animation:none}
84
+ .wizard-hat.deployed{filter:drop-shadow(0 0 22px rgba(245,158,11,.8));animation:none}
85
 
86
  .hero-title{
87
+ font-size:clamp(1.2rem,3.5vw,1.6rem);font-weight:800;line-height:1.1;
88
+ background:linear-gradient(135deg,var(--neon-purple),var(--neon-cyan),var(--neon-green));
89
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
90
  background-clip:text;
91
+ margin-top:.3rem;
 
 
92
  }
93
 
94
+ /* ═══ THOUGHT-STREAM β€” multi-sentence RLM narration ═══ */
95
+ .thought-stream{
96
+ margin-top:.4rem;padding:.35rem .6rem;
97
+ background:rgba(255,255,255,.015);
98
+ border:1px solid var(--border-1px);
 
 
99
  border-radius:var(--radius-sm);
100
+ text-align:left;
101
+ display:flex;align-items:flex-start;gap:.5rem;
102
+ opacity:0;transform:translateY(-3px);
103
+ transition:opacity .25s,transform .25s;
104
+ min-height:2.2rem;
105
+ }
106
+ .thought-stream.visible{opacity:1;transform:translateY(0)}
107
+ .stream-cursor{
108
+ width:4px;height:4px;border-radius:50%;
109
+ background:var(--neon-purple);
110
+ margin-top:.35rem;flex-shrink:0;
111
+ animation:cursor-blink .6s ease-in-out infinite;
112
+ box-shadow:0 0 6px var(--neon-purple);
113
+ }
114
+ @keyframes cursor-blink{0%,100%{opacity:1}50%{opacity:.2}}
115
+ .stream-text{
116
+ font-size:.72rem;color:var(--text-secondary);
117
+ line-height:1.5;font-family:var(--font-mono);
118
+ }
119
+ .stream-text .sentence{
120
+ display:block;animation:sentence-in .3s ease-out;
121
+ margin-bottom:.15rem;
122
+ color:var(--text-primary);
123
  }
124
+ @keyframes sentence-in{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:translateX(0)}}
125
 
126
+ /* ═══ CHAT INPUT: absolute black, 1px border ═══ */
127
+ .forge-input-section{flex-shrink:0}
128
+ .input-obsidian{
129
+ display:flex;align-items:stretch;gap:.4rem;
130
+ background:rgba(255,255,255,.01);
131
+ border:1px solid var(--border-1px);
 
132
  border-radius:var(--radius-lg);
133
+ padding:.3rem .3rem .3rem .85rem;
134
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
135
  }
136
+ .input-obsidian:focus-within{
137
+ border-color:rgba(139,92,246,.35);
138
+ box-shadow:0 0 18px rgba(139,92,246,.08);
139
  }
140
  #prompt-input{
141
  flex:1;background:transparent;border:none;
142
  color:var(--text-primary);font-family:var(--font-sans);
143
+ font-size:.84rem;line-height:1.5;resize:none;outline:none;
144
+ padding:.3rem 0;min-height:36px;max-height:110px;
145
  }
146
  #prompt-input::placeholder{color:var(--text-muted)}
147
 
148
+ /* ═══ LIGHTNING BOLT SEND β€” solid black + glowing ring ═══ */
149
+ .btn-lightning{
150
+ width:42px;height:42px;min-width:42px;
151
+ background:var(--void);
152
+ border:1.5px solid rgba(255,255,255,.08);
153
+ border-radius:50%;
154
+ color:var(--neon-purple);
155
  display:flex;align-items:center;justify-content:center;
156
  cursor:pointer;
157
+ transition:all var(--transition-fast);
158
  flex-shrink:0;
159
  }
160
+ .btn-lightning:hover{
161
+ border-color:rgba(139,92,246,.4);
162
+ box-shadow:0 0 16px rgba(139,92,246,.2),inset 0 0 8px rgba(139,92,246,.06);
163
+ color:var(--neon-cyan);
164
  }
165
+ .btn-lightning:active{transform:scale(.94);background:var(--void)}
166
+ .btn-lightning:disabled{
167
+ opacity:.3;cursor:not-allowed;transform:none;
168
+ box-shadow:none;border-color:rgba(255,255,255,.04);
169
+ color:var(--text-muted);
170
  }
171
 
172
+ /* ═══ TAB NAV: 1px glass ═══ */
173
  .tab-nav{
174
+ display:flex;gap:.2rem;
175
+ padding:.15rem;
176
+ background:rgba(255,255,255,.01);
177
+ border:1px solid var(--border-1px);
 
178
  border-radius:var(--radius-sm);
179
  flex-shrink:0;
180
  }
181
  .tab-btn{
182
+ display:flex;align-items:center;gap:.3rem;
183
+ flex:1;padding:.35rem .6rem;
184
+ background:transparent;border:1px solid transparent;
185
+ border-radius:4px;
186
  color:var(--text-muted);
187
+ font-family:var(--font-sans);font-size:.72rem;font-weight:600;
188
  cursor:pointer;transition:all var(--transition-fast);
189
  }
190
+ .tab-btn:hover:not(:disabled){
191
+ background:rgba(255,255,255,.02);
192
+ color:var(--text-secondary);
193
+ border-color:rgba(255,255,255,.04);
194
+ }
195
  .tab-btn.active{
196
+ background:rgba(139,92,246,.08);
197
  color:var(--text-primary);
198
+ border-color:rgba(139,92,246,.15);
199
  }
200
+ .tab-btn.locked{cursor:not-allowed;opacity:.4}
201
+ .tab-icon{font-size:.85rem}
202
+ .tab-label{font-size:.68rem}
 
 
203
 
204
  /* ═══ TAB PANELS ═══ */
205
  .tab-panels{flex:1;min-height:0;position:relative}
206
  .tab-panel{display:none;flex-direction:column;height:100%}
207
  .tab-panel.active{display:flex}
208
 
209
+ /* ═══ FORGE PANEL ═══ */
210
+ .forge-panel{
211
  display:flex;flex-direction:column;
212
+ background:rgba(255,255,255,.01);
213
+ border:1px solid var(--border-1px);
 
214
  border-radius:var(--radius-lg);
215
  overflow:hidden;flex:1;
216
  }
217
+ .forge-header{
218
  display:flex;align-items:center;justify-content:space-between;
219
+ padding:.3rem .65rem;
220
+ border-bottom:1px solid var(--border-1px);
221
  flex-shrink:0;
222
  }
223
+ .forge-title{
224
+ font-size:.68rem;font-weight:600;
225
  color:var(--text-secondary);
226
+ text-transform:uppercase;letter-spacing:.1em;
 
 
 
 
 
 
 
 
227
  }
228
+ .forge-actions{display:flex;align-items:center;gap:.35rem}
229
+ .char-count{font-size:.62rem;color:var(--text-muted)}
230
+ .forge-action{
231
+ background:none;border:1px solid var(--border-1px);
232
+ border-radius:3px;padding:.12rem .3rem;
233
+ color:var(--text-secondary);cursor:pointer;font-size:.7rem;
234
+ transition:all var(--transition-fast);
235
+ }
236
+ .forge-action:hover{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.1)}
237
 
238
+ /* ═══ CODE ═══ */
239
+ .forge-code{
240
+ flex:1;overflow:auto;padding:.65rem;margin:0;
241
+ font-family:var(--font-mono);font-size:.72rem;
242
+ line-height:1.5;color:var(--text-secondary);
243
  white-space:pre-wrap;word-break:break-all;
244
  }
245
+ .forge-code .placeholder{color:var(--text-muted);font-style:italic}
246
 
247
  /* ═══ PREVIEW ═══ */
248
+ .preview-container{flex:1;position:relative;background:#111}
 
249
  .preview-iframe{width:100%;height:100%;border:none;display:block}
250
  .preview-overlay{
251
  position:absolute;inset:0;
252
  display:flex;align-items:center;justify-content:center;
253
+ background:rgba(0,0,0,.9);
254
  transition:opacity var(--transition-smooth);
255
  pointer-events:none;
256
  }
257
  .preview-overlay.hidden{opacity:0}
258
  .overlay-content{text-align:center;color:var(--text-secondary)}
259
+ .obsidian-loader{
260
+ width:32px;height:32px;margin:0 auto .6rem;
261
+ border:1.5px solid rgba(255,255,255,.06);
262
+ border-top-color:var(--neon-purple);
263
  border-radius:50%;
264
+ animation:spin .7s linear infinite;
265
  }
266
  @keyframes spin{to{transform:rotate(360deg)}}
267
 
268
+ /* ═══ DEPLOY BAR: 1px glass ═══ */
269
+ .deploy-bar{
270
  display:flex;align-items:center;justify-content:space-between;
271
+ padding:.45rem .75rem;
272
+ background:rgba(255,255,255,.01);
273
+ border:1px solid var(--border-1px);
 
274
  border-radius:var(--radius-lg);
275
  flex-shrink:0;
276
  transition:border-color var(--transition-smooth);
277
  }
278
+ .deploy-bar.ready{
279
+ border-color:rgba(16,185,129,.2);
280
+ box-shadow:0 0 12px rgba(16,185,129,.04);
281
+ }
282
+ .deploy-bar.verified{
283
+ border-color:rgba(245,158,11,.2);
284
+ box-shadow:0 0 16px rgba(245,158,11,.06);
285
+ }
286
+ .deploy-status{display:flex;align-items:center;gap:.4rem}
287
+ .deploy-dot{
288
+ width:5px;height:5px;border-radius:50%;
289
+ background:var(--text-muted);
290
+ transition:background var(--transition-fast);
291
  }
292
+ .deploy-dot.ready{background:var(--neon-green);box-shadow:0 0 6px var(--neon-green)}
293
+ .deploy-dot.verifying{background:var(--neon-cyan);animation:dot-pulse .5s ease-in-out infinite}
294
+ .deploy-dot.deployed{background:var(--gold);box-shadow:0 0 8px var(--gold)}
295
+ @keyframes dot-pulse{0%,100%{opacity:1}50%{opacity:.3}}
296
+ .deploy-text{font-size:.72rem;color:var(--text-secondary)}
297
 
298
+ .btn-deploy{
299
+ display:flex;align-items:center;gap:.3rem;
300
+ padding:.35rem .85rem;
301
+ background:var(--void);
302
+ border:1px solid var(--border-1px);
303
+ border-radius:var(--radius-sm);
304
+ color:var(--text-muted);
305
+ font-family:var(--font-sans);font-size:.75rem;font-weight:700;
306
+ cursor:pointer;transition:all var(--transition-smooth);
307
  white-space:nowrap;
308
  }
309
+ .btn-deploy:hover:not(:disabled){
310
+ border-color:rgba(16,185,129,.3);
311
+ color:var(--neon-green);
312
+ box-shadow:0 0 12px rgba(16,185,129,.1);
313
+ }
314
+ .btn-deploy:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;border-color:var(--border-1px)}
315
+ .btn-deploy.ready:not(:disabled){
316
+ border-color:rgba(16,185,129,.35);
317
+ color:var(--neon-green);
318
+ }
319
+ .btn-deploy.deploying{
320
+ border-color:rgba(6,182,212,.3);
321
+ color:var(--neon-cyan);
322
+ }
323
+ .btn-deploy.deployed{
324
+ border-color:rgba(245,158,11,.35);
325
+ color:var(--gold);
326
+ }
327
+ .deploy-spinner{
328
+ display:none;width:12px;height:12px;
329
+ border:1.5px solid rgba(255,255,255,.1);
330
+ border-top-color:var(--neon-cyan);
331
+ border-radius:50%;animation:spin .5s linear infinite;
332
+ }
333
+ .btn-deploy.deploying .deploy-spinner{display:inline-block}
334
 
335
+ /* ═══ VERIFIED RESULT ═══ */
336
+ .deploy-result{flex-shrink:0}
337
+ .verified-card{
338
+ display:flex;align-items:center;gap:.6rem;
339
+ padding:.55rem .85rem;
340
+ background:rgba(245,158,11,.04);
341
+ border:1px solid rgba(245,158,11,.15);
 
342
  border-radius:var(--radius-md);
343
+ animation:card-rise .3s ease-out;
344
  }
345
+ @keyframes card-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
346
+ .verified-icon{font-size:1.1rem;color:var(--gold)}
347
+ .verified-body strong{display:block;font-size:.75rem;margin-bottom:.05rem}
348
+ .verified-url{
349
+ font-size:.7rem;color:var(--neon-cyan);text-decoration:none;
350
  word-break:break-all;transition:color var(--transition-fast);
351
  }
352
+ .verified-url:hover{color:var(--neon-purple)}
353
 
354
+ /* ═══ TOAST ═══ */
355
+ .toast-container{position:fixed;bottom:.6rem;right:.6rem;display:flex;flex-direction:column;gap:.3rem;z-index:1000}
356
+ .toast{padding:.45rem .75rem;border-radius:var(--radius-sm);background:rgba(255,255,255,.02);border:1px solid var(--border-1px);color:var(--text-primary);font-size:.7rem;animation:toast-in .2s ease-out;max-width:260px}
357
+ .toast.error{border-color:rgba(239,68,68,.2)}
358
+ .toast.success{border-color:rgba(16,185,129,.2)}
359
+ @keyframes toast-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
360
+ .code-chunk-new{animation:chunk-in .1s ease-out}
361
+ @keyframes chunk-in{from{opacity:0}to{opacity:1}}
362
 
363
  /* ═══ MOBILE ═══ */
364
  @media(max-width:500px){
365
+ .obsidian-shell{padding:.35rem;gap:.3rem}
366
+ .wizard-orbit{width:50px;height:50px}
367
+ .wizard-hat{width:34px;height:34px}
368
+ .hero-title{font-size:1.05rem}
369
+ .thought-stream{padding:.25rem .45rem}
370
+ .stream-text{font-size:.65rem}
371
+ .tab-btn{padding:.3rem .4rem}
372
+ .tab-label{font-size:.62rem}
373
+ .deploy-bar{flex-direction:column;gap:.35rem;align-items:stretch}
374
+ .btn-deploy{justify-content:center}
375
  }