Update the spaces

#1
Files changed (4) hide show
  1. app.py +30 -110
  2. public/email_icon.png +0 -0
  3. public/linkedin.png +0 -0
  4. style1.css +173 -317
app.py CHANGED
@@ -14,23 +14,22 @@ css_path = os.path.join(BASE_DIR, "style1.css")
14
  with open(css_path, "r") as f:
15
  css = f.read()
16
 
17
- logo_path = os.path.join(BASE_DIR, "public/linkedin.png")
18
- email_path = os.path.join(BASE_DIR, "public/email_icon.png")
19
- main_logo = os.path.join(BASE_DIR, "public/main-logo.png")
 
 
20
 
21
  def embed_image_base64(path):
22
  with open(path, "rb") as f:
23
- return "data:image/svg;base64," + base64.b64encode(f.read()).decode()
24
 
25
- linkedin_logo = embed_image_base64(logo_path)
26
- email_logo = embed_image_base64(email_path)
27
- logo_b64 = embed_image_base64(main_logo)
28
 
29
  AGENT_URLS = {
30
  "delivery": "https://huggingface.co/spaces/shuv25/optimize_delivery_system",
31
  "agent2": "https://huggingface.co/spaces/Tamannathakur/SPARKNOVA",
32
- "agent3": "https://huggingface.co/spaces/Tamannathakur/SparkMart",
33
- "agent4": "https://huggingface.co/spaces/SparkBrainsAI/AI_Trade_Analyzer"
34
  }
35
 
36
  # ---------------------------
@@ -106,7 +105,6 @@ def create_agent_card(title, description, features, url, color, status="active")
106
  return f"""
107
  <div style='
108
  padding:28px;
109
- margin-top: 20px;
110
  background:white;
111
  min-height:400px;
112
  display:flex;
@@ -231,11 +229,10 @@ with gr.Blocks(
231
  font-size:2.2em;
232
  text-align:center;
233
  font-weight:800;
234
- margin:60px 0 60px;
235
  color: white;
236
  '>
237
  Available Agents
238
- <hr style='margin:0px;'/>
239
  </div>
240
  """)
241
 
@@ -286,32 +283,11 @@ with gr.Blocks(
286
  url=AGENT_URLS["agent3"],
287
  color="#168c44"
288
  ))
289
-
290
- with gr.Column(scale=1):
291
- gr.HTML(create_agent_card(
292
- title="SparkTrade Analyzer",
293
- description="""SparkTrade Analyzer is an AI-powered trading intelligence agent that analyzes stock market queries, evaluates technical indicators, and generates actionable intraday insights to support smarter trading decisions.""",
294
- features=[
295
- "AI-driven Stock Analysis",
296
- "Technical Indicator Evaluation",
297
- "Intraday Trade Signals",
298
- "Risk & Confidence Scoring",
299
- "Visual Price Trend Insights"
300
- ],
301
- url=AGENT_URLS["agent4"],
302
- color="#168c44"
303
- ))
304
-
305
- with gr.Column(scale=1):
306
- gr.HTML('')
307
-
308
- with gr.Column(scale=1):
309
- gr.HTML('')
310
-
311
  gr.HTML("""
312
 
313
  <div style='
314
- margin-top: 80px;
315
  padding: 35px;
316
  background: linear-gradient(135deg, #e8f5ff 0%, #f3fff6 100%);
317
  border-radius: 18px;
@@ -351,7 +327,7 @@ with gr.Blocks(
351
  onmouseover="this.style.transform='translateY(-6px)'; this.style.boxShadow='0 10px 28px rgba(32,76,108,0.25)';"
352
  onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 14px rgba(32,76,108,0.15)';"
353
  >
354
- <div style='font-size:2.4em; color:#204c6c; font-weight:700;'>4</div>
355
  <div style='color:#334155; font-size:1em; margin-top:6px;'>Active Agents</div>
356
  </div>
357
 
@@ -391,7 +367,7 @@ with gr.Blocks(
391
  onmouseover="this.style.transform='translateY(-6px)'; this.style.boxShadow='0 10px 28px rgba(32,76,108,0.25)';"
392
  onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 14px rgba(32,76,108,0.15)';"
393
  >
394
- <div style='font-size:2.4em; color:#204c6c; font-weight:700;'>4</div>
395
  <div style='color:#334155; font-size:1em; margin-top:6px;'>Total Agents</div>
396
  </div>
397
 
@@ -457,82 +433,26 @@ with gr.Blocks(
457
  </ul>
458
  </div>
459
  """)
460
- # gr.HTML("""
461
- # <div style="
462
- # margin: 90px auto 40px;
463
- # text-align: center;
464
- # ">
465
- # <a href="https://sparkbrains.ai" target="_blank" rel="noopener noreferrer"
466
- # style="
467
- # display: inline-block;
468
- # padding: 16px 38px;
469
- # font-size: 1.1em;
470
- # font-weight: 700;
471
- # color: white;
472
- # text-decoration: none;
473
- # border-top: 1px solid #168c44
474
- # border-radius: 999px;
475
- # background: linear-gradient(135deg, #204C6C, #168c44);
476
- # box-shadow: 0 10px 30px rgba(32, 76, 108, 0.35);
477
- # transition: all 0.3s ease;
478
- # "
479
- # onmouseover="this.style.transform='translateY(-4px)'; this.style.boxShadow='0 18px 40px rgba(32,76,108,0.45)'"
480
- # onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 10px 30px rgba(32,76,108,0.35)'"
481
- # >
482
- # Visit SparkBrains →
483
- # </a>
484
-
485
- # <p style="
486
- # margin-top: 14px;
487
- # font-size: 0.9em;
488
- # color: #cbd5f5;
489
- # opacity: 0.85;
490
- # ">
491
- # Explore our full AI ecosystem, products & research
492
- # </p>
493
- # </div>
494
- # """)
495
-
496
 
497
 
498
  # FOOTER --------------------------------------------------------------
499
- gr.HTML(f"""
500
- <div class="spark-footer">
501
-
502
- <div class="footer-top">
503
- <a href="https://www.linkedin.com/company/sparkbrains/"
504
- target="_blank"
505
- class="icon-text-wrap">
506
- <img src="{linkedin_logo}" class="footer-icon"/>
507
- <span class="linkedin_text">LinkedIn</span>
508
- </a>
509
-
510
- <a href="mailto:sales@sparkbrains.in"
511
- class="icon-text-wrap">
512
- <img src="{email_logo}" class="footer-icon"/>
513
- <span class="linkedin_text">sales@sparkbrains.in</span>
514
- </a>
515
- </div>
516
-
517
- <a href="https://sparkbrains.in"
518
- target="_blank"
519
- rel="noopener noreferrer"
520
- class="footer-cta">
521
- Visit SparkBrains →
522
- </a>
523
-
524
- <div class="footer-bottom">
525
- © 2026 SparkBrains AI · Building Intelligent Systems
526
- </div>
527
-
528
- </div>
529
- """)
530
-
531
 
532
  if __name__ == "__main__":
533
  demo.launch(share=True)
534
- # <h3 style='margin-bottom:10px;'>Built with Modern AI Stack</h3>
535
- # <p>DeepAgents • LangChain • Groq • OpenStreetMap • Gradio</p>
536
- # <p style='font-size:0.85em; color:#6b7280; margin-top:10px;'>
537
- # HuggingFace Spaces | Open Source Architecture
538
- # </p>
 
14
  with open(css_path, "r") as f:
15
  css = f.read()
16
 
17
+
18
+
19
+
20
+
21
+ logo_path = os.path.join(BASE_DIR, "public/main-logo.png")
22
 
23
  def embed_image_base64(path):
24
  with open(path, "rb") as f:
25
+ return "data:image/png;base64," + base64.b64encode(f.read()).decode()
26
 
27
+ logo_b64 = embed_image_base64(logo_path)
 
 
28
 
29
  AGENT_URLS = {
30
  "delivery": "https://huggingface.co/spaces/shuv25/optimize_delivery_system",
31
  "agent2": "https://huggingface.co/spaces/Tamannathakur/SPARKNOVA",
32
+ "agent3": "https://huggingface.co/spaces/Tamannathakur/SparkMart"
 
33
  }
34
 
35
  # ---------------------------
 
105
  return f"""
106
  <div style='
107
  padding:28px;
 
108
  background:white;
109
  min-height:400px;
110
  display:flex;
 
229
  font-size:2.2em;
230
  text-align:center;
231
  font-weight:800;
232
+ margin:30px 0 40px;
233
  color: white;
234
  '>
235
  Available Agents
 
236
  </div>
237
  """)
238
 
 
283
  url=AGENT_URLS["agent3"],
284
  color="#168c44"
285
  ))
286
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  gr.HTML("""
288
 
289
  <div style='
290
+ margin-top: 50px;
291
  padding: 35px;
292
  background: linear-gradient(135deg, #e8f5ff 0%, #f3fff6 100%);
293
  border-radius: 18px;
 
327
  onmouseover="this.style.transform='translateY(-6px)'; this.style.boxShadow='0 10px 28px rgba(32,76,108,0.25)';"
328
  onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 14px rgba(32,76,108,0.15)';"
329
  >
330
+ <div style='font-size:2.4em; color:#204c6c; font-weight:700;'>3</div>
331
  <div style='color:#334155; font-size:1em; margin-top:6px;'>Active Agents</div>
332
  </div>
333
 
 
367
  onmouseover="this.style.transform='translateY(-6px)'; this.style.boxShadow='0 10px 28px rgba(32,76,108,0.25)';"
368
  onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 14px rgba(32,76,108,0.15)';"
369
  >
370
+ <div style='font-size:2.4em; color:#204c6c; font-weight:700;'>3</div>
371
  <div style='color:#334155; font-size:1em; margin-top:6px;'>Total Agents</div>
372
  </div>
373
 
 
433
  </ul>
434
  </div>
435
  """)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
436
 
437
 
438
  # FOOTER --------------------------------------------------------------
439
+ # gr.HTML("""
440
+ # <div style='
441
+ # text-align:center;
442
+ # padding:30px;
443
+ # margin-top:60px;
444
+ # background:#f0fdf4;
445
+ # border-radius:15px;
446
+ # border:2px solid #dcfce7;
447
+ # '>
448
+ # <h3 style='margin-bottom:10px;'>Built with Modern AI Stack</h3>
449
+ # <p>DeepAgents • LangChain • Groq • OpenStreetMap • Gradio</p>
450
+ # <p style='font-size:0.85em; color:#6b7280; margin-top:10px;'>
451
+ # HuggingFace Spaces | Open Source Architecture
452
+ # </p>
453
+ # </div>
454
+ # """)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
455
 
456
  if __name__ == "__main__":
457
  demo.launch(share=True)
458
+
 
 
 
 
public/email_icon.png DELETED
Binary file (14.3 kB)
 
public/linkedin.png DELETED
Binary file (11.5 kB)
 
style1.css CHANGED
@@ -1,21 +1,21 @@
1
  /* ============================================
2
  GLOBAL BASE STYLES
3
  ============================================ */
4
- body,
5
  html,
6
- .gradio-container,
7
  .contain {
8
- margin: 0;
9
- padding: 0;
10
- position: relative;
11
- background-size: cover;
12
- background-attachment: fixed;
13
- min-height: 100vh;
14
- overflow-x: hidden;
15
  }
16
 
17
- body {
18
- /* background:
19
  radial-gradient(circle at 20% 15%, rgba(59, 130, 246, 0.12), transparent 40%),
20
  radial-gradient(circle at 80% 25%, rgba(23, 194, 106, 0.794), transparent 45%),
21
  radial-gradient(circle at 50% 70%, rgba(16, 185, 129, 0.08), transparent 50%),
@@ -26,286 +26,144 @@ body {
26
  }
27
 
28
  /* ============================================
29
- NEXT-GEN TECH GRID BACKGROUND
30
  ============================================ */
31
-
32
  body::before {
33
- content: "";
34
- position: fixed;
35
- inset: 0;
36
- z-index: 0;
37
- pointer-events: none;
38
-
39
- /* MICRO GRID */
40
- background-image: linear-gradient(
41
- rgba(255, 255, 255, 0.035) 1px,
42
- transparent 1px
43
- ),
44
- linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
45
- /* MACRO GRID */
46
- linear-gradient(rgba(59, 130, 246, 0.08) 1px, transparent 1px),
47
- linear-gradient(90deg, rgba(59, 130, 246, 0.08) 1px, transparent 1px),
48
- /* BASE GRADIENT */
49
- radial-gradient(
50
- circle at 20% 10%,
51
- rgba(59, 130, 246, 0.18),
52
- transparent 45%
53
- ),
54
- radial-gradient(
55
- circle at 80% 20%,
56
- rgba(139, 92, 246, 0.15),
57
- transparent 50%
58
- ),
59
- radial-gradient(
60
- circle at 50% 75%,
61
- rgba(16, 185, 129, 0.12),
62
- transparent 55%
63
- ),
64
- linear-gradient(135deg, #060b1a 0%, #0b1025 35%, #070d1f 60%, #050914 100%);
65
-
66
- background-size: 24px 24px, /* micro grid */ 24px 24px, 120px 120px,
67
- /* macro grid */ 120px 120px, auto, auto, auto, auto;
68
-
69
- background-blend-mode: normal, normal, overlay, overlay, screen, screen,
70
- screen, normal;
71
  }
 
 
72
  body::after {
73
- content: "";
74
- position: fixed;
75
- inset: 0;
76
- z-index: 0;
77
- pointer-events: none;
78
-
79
- background-image: radial-gradient(
80
- circle at 15% 20%,
81
- rgba(59, 130, 246, 0.25) 1px,
82
- transparent 1px
83
- ),
84
- radial-gradient(
85
- circle at 40% 35%,
86
- rgba(139, 92, 246, 0.25) 1px,
87
- transparent 1px
88
- ),
89
- radial-gradient(
90
- circle at 70% 25%,
91
- rgba(16, 185, 129, 0.25) 1px,
92
- transparent 1px
93
- ),
94
- radial-gradient(
95
- circle at 85% 70%,
96
- rgba(236, 72, 153, 0.22) 1px,
97
- transparent 1px
98
- );
99
-
100
- background-size: 400px 400px;
101
- opacity: 0.35;
102
  }
103
 
104
  /* ============================================
105
  FLOATING GLOWING ORBS
106
  ============================================ */
107
  .contain::before {
108
- content: "";
109
- position: fixed;
110
- top: 10%;
111
- right: 15%;
112
- width: 600px;
113
- height: 600px;
114
- background: radial-gradient(
115
- circle,
116
- rgba(59, 130, 246, 0.15),
117
- transparent 70%
118
- );
119
- border-radius: 50%;
120
- filter: blur(80px);
121
- /* animation: floatOrb1 25s ease-in-out infinite; */
122
- pointer-events: none;
123
- z-index: 0;
124
  }
125
 
126
  .contain::after {
127
- content: "";
128
- position: fixed;
129
- bottom: 15%;
130
- left: 10%;
131
- width: 500px;
132
- height: 500px;
133
- background: radial-gradient(
134
- circle,
135
- rgba(139, 92, 246, 0.12),
136
- transparent 70%
137
- );
138
- border-radius: 50%;
139
- filter: blur(70px);
140
- /* animation: floatOrb2 30s ease-in-out infinite; */
141
- pointer-events: none;
142
- z-index: 0;
143
  }
144
 
145
  /* ============================================
146
  GRADIO CONTAINER IMPROVEMENTS
147
  ============================================ */
148
  .gradio-container {
149
- max-width: 1519px !important;
150
- margin: 0 auto !important;
151
- padding: 20px 40px !important;
152
- position: relative;
153
- z-index: 1;
154
  }
155
 
156
  /* Ensure all content is above background effects */
157
  .gradio-container > * {
158
- position: relative;
159
- z-index: 1;
160
  }
161
 
162
  /* ============================================
163
  IMPROVED ROW & COLUMN SPACING
164
  ============================================ */
165
  .gradio-container .row {
166
- gap: 24px !important;
167
- margin-bottom: 30px !important;
168
  }
169
 
170
  .gradio-container .column {
171
- padding: 0 12px !important;
172
  }
173
 
174
  /* ============================================
175
  CARD STYLING ENHANCEMENTS
176
  ============================================ */
177
  .gradio-container div[style*="background:white"] {
178
- border-radius: 20px !important;
179
- transition: all 0.3s ease !important;
180
- backdrop-filter: blur(10px);
181
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
182
  }
183
 
184
  .gradio-container div[style*="background:white"]:hover {
185
- transform: translateY(-8px) !important;
186
- box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.15) !important;
187
- }
188
-
189
- .linkedin_logo {
190
- transition: all 0.3s ease !important;
191
- }
192
- .linkedin_logo:hover {
193
- transform: translateY(-8px) !important;
194
- }
195
-
196
- .linkedin_text {
197
- font-size: 13px;
198
- color: #ffffff;
199
- font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif;
200
- }
201
-
202
- /* =========================
203
- FOOTER
204
- ========================= */
205
-
206
- .spark-footer {
207
- margin-top: 80px;
208
- padding: 40px 30px 28px;
209
- background: linear-gradient(135deg, #010f2a, #011433);
210
- border-top: 2px solid #168c44;
211
- border-radius: 18px;
212
- text-align: center;
213
- }
214
-
215
- /* Top row */
216
- .footer-top {
217
- display: flex;
218
- gap: 28px;
219
- justify-content: center;
220
- align-items: center;
221
- margin-bottom: 28px;
222
- }
223
-
224
- /* Icon + text */
225
- .icon-text-wrap {
226
- display: flex;
227
- align-items: center;
228
- gap: 10px;
229
- text-decoration: none;
230
- color: #e5e7eb;
231
- font-size: 13px;
232
- transition: all 0.3s ease;
233
- }
234
-
235
- .icon-text-wrap:hover {
236
- color: #7ee787;
237
- transform: translateY(-3px);
238
- }
239
-
240
- /* Icons */
241
- .footer-icon {
242
- width: 22px;
243
- height: auto;
244
- transition: transform 0.3s ease;
245
- }
246
-
247
- .icon-text-wrap:hover .footer-icon {
248
- transform: scale(1.15);
249
- }
250
-
251
- /* CTA Button */
252
- .footer-cta {
253
- display: inline-block;
254
- padding: 14px 40px;
255
- font-size: 1.05em;
256
- font-weight: 700;
257
- color: white;
258
- text-decoration: none;
259
- border-radius: 999px;
260
- background: linear-gradient(135deg, #204c6c, #168c44);
261
- box-shadow: 0 12px 32px rgba(32, 76, 108, 0.4);
262
- transition: all 0.3s ease;
263
- }
264
-
265
- .footer-cta:hover {
266
- transform: translateY(-4px);
267
- box-shadow: 0 20px 45px rgba(32, 76, 108, 0.55);
268
- }
269
-
270
- /* Bottom text */
271
- .footer-bottom {
272
- margin-top: 26px;
273
- font-size: 0.8em;
274
- color: #9ca3af;
275
- opacity: 0.85;
276
- }
277
-
278
- .icon-text-wrap {
279
- display: flex;
280
- gap: 10px;
281
- align-items: center;
282
  }
283
 
284
  /* ============================================
285
  TEXT STYLING
286
  ============================================ */
287
- h1,
288
- h2,
289
- h3,
290
- h4,
291
- h5,
292
- h6 {
293
- letter-spacing: 0.5px;
294
- line-height: 1.3;
295
  }
296
 
297
  ul {
298
- margin-left: 80px;
299
  }
300
 
301
- ul,
302
- li {
303
- color: white;
304
- line-height: 1.8;
305
  }
306
 
 
 
307
  p {
308
- line-height: 1.7;
309
  }
310
 
311
  /* ============================================
@@ -313,154 +171,152 @@ p {
313
  ============================================ */
314
  a[style*="Launch Agent"],
315
  button {
316
- box-shadow: 0 4px 12px rgba(32, 76, 108, 0.3) !important;
317
- transition: all 0.3s ease !important;
318
- font-weight: 600 !important;
319
  }
320
 
321
  a[style*="Launch Agent"]:hover {
322
- box-shadow: 0 8px 20px rgba(32, 76, 108, 0.5) !important;
323
  }
324
 
325
  /* ============================================
326
  SYSTEM STATUS BOX REFINEMENT
327
  ============================================ */
328
  div[style*="margin-top: 50px"] {
329
- backdrop-filter: blur(12px) !important;
330
- border: 1px solid rgba(255, 255, 255, 0.15) !important;
331
  }
332
 
333
  /* ============================================
334
  "HOW IT WORKS" SECTION ALIGNMENT
335
  ============================================ */
336
  .gradio-container div[style*="margin-left: 130px"] {
337
- margin-left: 0px !important;
338
- padding: 30px 40px !important;
339
- background: rgba(255, 255, 255, 0.03) !important;
340
- border-radius: 16px !important;
341
- border: 1px solid rgba(255, 255, 255, 0.08) !important;
342
- backdrop-filter: blur(8px) !important;
343
- transition: all 0.3s ease !important;
344
  }
345
 
346
  .gradio-container div[style*="margin-left: 130px"]:hover {
347
- background: rgba(255, 255, 255, 0.05) !important;
348
- border-color: rgba(59, 130, 246, 0.3) !important;
349
- transform: translateY(-4px);
350
  }
351
 
352
  .gradio-container div[style*="margin-left: 130px"] h3 {
353
- color: #ffffff !important;
354
- font-size: 1.4em !important;
355
- margin-bottom: 16px !important;
356
- font-weight: 700 !important;
357
- background: linear-gradient(to right, #3b82f6, #8b5cf6);
358
- -webkit-background-clip: text;
359
- -webkit-text-fill-color: transparent;
360
  }
361
 
362
  .gradio-container div[style*="margin-left: 130px"] ul {
363
- margin: 0 !important;
364
- padding-left: 24px !important;
365
  }
366
 
367
  .gradio-container div[style*="margin-left: 130px"] li {
368
- margin: 10px 0 !important;
369
- color: rgba(255, 255, 255, 0.85) !important;
370
- font-size: 0.95em !important;
371
  }
372
 
373
  /* ============================================
374
  HEADER SECTION REFINEMENT
375
  ============================================ */
376
  div[style*="border-bottom-left-radius:40px"] {
377
- margin-bottom: 40px !important;
378
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
379
  }
380
 
381
  /* ============================================
382
  RESPONSIVE IMPROVEMENTS
383
  ============================================ */
384
  @media (max-width: 1200px) {
385
- .gradio-container {
386
- max-width: 95% !important;
387
- padding: 20px !important;
388
- }
389
  }
390
 
391
  @media (max-width: 768px) {
392
- .gradio-container div[style*="margin-left: 130px"] {
393
- padding: 20px !important;
394
- }
395
-
396
- div[style*="flex:1; display:flex"] {
397
- flex-direction: column !important;
398
- }
399
  }
400
 
401
  @keyframes gridScroll {
402
- 0% {
403
- transform: translate(0, 0);
404
- }
405
- 100% {
406
- transform: translate(60px, 60px);
407
- }
408
  }
409
 
410
  @keyframes floatOrb1 {
411
- 0%,
412
- 100% {
413
- transform: translate(0, 0) scale(1);
414
- opacity: 0.4;
415
- }
416
- 33% {
417
- transform: translate(-50px, 40px) scale(1.15);
418
- opacity: 0.6;
419
- }
420
- 66% {
421
- transform: translate(30px, -30px) scale(0.9);
422
- opacity: 0.5;
423
- }
424
  }
425
 
426
  @keyframes floatOrb2 {
427
- 0%,
428
- 100% {
429
- transform: translate(0, 0) scale(1);
430
- opacity: 0.35;
431
- }
432
- 33% {
433
- transform: translate(40px, -50px) scale(0.85);
434
- opacity: 0.5;
435
- }
436
- 66% {
437
- transform: translate(-35px, 35px) scale(1.1);
438
- opacity: 0.45;
439
- }
440
  }
441
 
442
  /* ============================================
443
  SMOOTH SCROLLING
444
  ============================================ */
445
  html {
446
- scroll-behavior: smooth;
447
  }
448
 
449
  /* ============================================
450
  ACCESSIBILITY & POLISH
451
  ============================================ */
452
  * {
453
- -webkit-font-smoothing: antialiased;
454
- -moz-osx-font-smoothing: grayscale;
455
  }
456
 
457
  ::selection {
458
- background: rgba(59, 130, 246, 0.3);
459
- color: white;
460
  }
461
 
462
  /* Force page header title to stay on one line */
463
  h1 {
464
- white-space: nowrap !important;
465
- width: auto !important;
466
  }
 
1
  /* ============================================
2
  GLOBAL BASE STYLES
3
  ============================================ */
4
+ body,
5
  html,
6
+ .gradio-container,
7
  .contain {
8
+ margin: 0;
9
+ padding: 0;
10
+ position: relative;
11
+ background-size: cover;
12
+ background-attachment: fixed;
13
+ min-height: 100vh;
14
+ overflow-x: hidden;
15
  }
16
 
17
+ body {
18
+ /* background:
19
  radial-gradient(circle at 20% 15%, rgba(59, 130, 246, 0.12), transparent 40%),
20
  radial-gradient(circle at 80% 25%, rgba(23, 194, 106, 0.794), transparent 45%),
21
  radial-gradient(circle at 50% 70%, rgba(16, 185, 129, 0.08), transparent 50%),
 
26
  }
27
 
28
  /* ============================================
29
+ TECH GRID PATTERN
30
  ============================================ */
 
31
  body::before {
32
+ content: '';
33
+ position: fixed;
34
+ top: 0;
35
+ left: 0;
36
+ right: 0;
37
+ bottom: 0;
38
+ background-image:
39
+ linear-gradient(rgba(59, 130, 246, 0.03) 1px, transparent 1px),
40
+ linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px);
41
+ background-size: 60px 60px;
42
+ pointer-events: none;
43
+ z-index: 0;
44
+ background:
45
+ radial-gradient(circle at 20% 15%, rgba(59, 130, 246, 0.12), transparent 40%),
46
+ radial-gradient(circle at 80% 25%, rgba(139, 92, 246, 0.1), transparent 45%),
47
+ radial-gradient(circle at 50% 70%, rgba(16, 185, 129, 0.08), transparent 50%),
48
+ radial-gradient(circle at 10% 85%, rgba(236, 72, 153, 0.08), transparent 45%),
49
+ linear-gradient(135deg, #0a0e27 0%, #1a1f3a 25%, #0f1629 50%, #1e2139 75%, #0d1425 100%) !important;
50
+ /* animation: gridScroll 30s linear infinite; */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  }
52
+
53
+ /* Hexagon pattern overlay */
54
  body::after {
55
+ content: '';
56
+ position: fixed;
57
+ top: 0;
58
+ left: 0;
59
+ right: 0;
60
+ bottom: 0;
61
+ background-image:
62
+ repeating-linear-gradient(45deg, transparent, transparent 25px, rgba(174, 246, 59, 0.015) 35px, rgba(93, 205, 18, 0.015) 70px),
63
+ repeating-linear-gradient(-45deg, transparent, transparent 25px, rgba(139, 92, 246, 0.015) 35px, rgba(139, 92, 246, 0.015) 70px);
64
+ pointer-events: none;
65
+ z-index: 0;
66
+ opacity: 0.6;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  }
68
 
69
  /* ============================================
70
  FLOATING GLOWING ORBS
71
  ============================================ */
72
  .contain::before {
73
+ content: '';
74
+ position: fixed;
75
+ top: 10%;
76
+ right: 15%;
77
+ width: 600px;
78
+ height: 600px;
79
+ background: radial-gradient(circle, rgba(59, 130, 246, 0.15), transparent 70%);
80
+ border-radius: 50%;
81
+ filter: blur(80px);
82
+ /* animation: floatOrb1 25s ease-in-out infinite; */
83
+ pointer-events: none;
84
+ z-index: 0;
 
 
 
 
85
  }
86
 
87
  .contain::after {
88
+ content: '';
89
+ position: fixed;
90
+ bottom: 15%;
91
+ left: 10%;
92
+ width: 500px;
93
+ height: 500px;
94
+ background: radial-gradient(circle, rgba(139, 92, 246, 0.12), transparent 70%);
95
+ border-radius: 50%;
96
+ filter: blur(70px);
97
+ /* animation: floatOrb2 30s ease-in-out infinite; */
98
+ pointer-events: none;
99
+ z-index: 0;
 
 
 
 
100
  }
101
 
102
  /* ============================================
103
  GRADIO CONTAINER IMPROVEMENTS
104
  ============================================ */
105
  .gradio-container {
106
+ max-width: 1400px !important;
107
+ margin: 0 auto !important;
108
+ padding: 20px 40px !important;
109
+ position: relative;
110
+ z-index: 1;
111
  }
112
 
113
  /* Ensure all content is above background effects */
114
  .gradio-container > * {
115
+ position: relative;
116
+ z-index: 1;
117
  }
118
 
119
  /* ============================================
120
  IMPROVED ROW & COLUMN SPACING
121
  ============================================ */
122
  .gradio-container .row {
123
+ gap: 24px !important;
124
+ margin-bottom: 30px !important;
125
  }
126
 
127
  .gradio-container .column {
128
+ padding: 0 12px !important;
129
  }
130
 
131
  /* ============================================
132
  CARD STYLING ENHANCEMENTS
133
  ============================================ */
134
  .gradio-container div[style*="background:white"] {
135
+ border-radius: 20px !important;
136
+ transition: all 0.3s ease !important;
137
+ backdrop-filter: blur(10px);
138
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
139
  }
140
 
141
  .gradio-container div[style*="background:white"]:hover {
142
+ transform: translateY(-8px) !important;
143
+ box-shadow: 0px 20px 40px rgba(0,0,0,0.15) !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  }
145
 
146
  /* ============================================
147
  TEXT STYLING
148
  ============================================ */
149
+ h1, h2, h3, h4, h5, h6 {
150
+ letter-spacing: 0.5px;
151
+ line-height: 1.3;
 
 
 
 
 
152
  }
153
 
154
  ul {
155
+ margin-left: 80px;
156
  }
157
 
158
+ ul, li {
159
+ color: white;
160
+ line-height: 1.8;
 
161
  }
162
 
163
+
164
+
165
  p {
166
+ line-height: 1.7;
167
  }
168
 
169
  /* ============================================
 
171
  ============================================ */
172
  a[style*="Launch Agent"],
173
  button {
174
+ box-shadow: 0 4px 12px rgba(32, 76, 108, 0.3) !important;
175
+ transition: all 0.3s ease !important;
176
+ font-weight: 600 !important;
177
  }
178
 
179
  a[style*="Launch Agent"]:hover {
180
+ box-shadow: 0 8px 20px rgba(32, 76, 108, 0.5) !important;
181
  }
182
 
183
  /* ============================================
184
  SYSTEM STATUS BOX REFINEMENT
185
  ============================================ */
186
  div[style*="margin-top: 50px"] {
187
+ backdrop-filter: blur(12px) !important;
188
+ border: 1px solid rgba(255, 255, 255, 0.15) !important;
189
  }
190
 
191
  /* ============================================
192
  "HOW IT WORKS" SECTION ALIGNMENT
193
  ============================================ */
194
  .gradio-container div[style*="margin-left: 130px"] {
195
+ margin-left: 0px !important;
196
+ padding: 30px 40px !important;
197
+ background: rgba(255, 255, 255, 0.03) !important;
198
+ border-radius: 16px !important;
199
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
200
+ backdrop-filter: blur(8px) !important;
201
+ transition: all 0.3s ease !important;
202
  }
203
 
204
  .gradio-container div[style*="margin-left: 130px"]:hover {
205
+ background: rgba(255, 255, 255, 0.05) !important;
206
+ border-color: rgba(59, 130, 246, 0.3) !important;
207
+ transform: translateY(-4px);
208
  }
209
 
210
  .gradio-container div[style*="margin-left: 130px"] h3 {
211
+ color: #ffffff !important;
212
+ font-size: 1.4em !important;
213
+ margin-bottom: 16px !important;
214
+ font-weight: 700 !important;
215
+ background: linear-gradient(to right, #3B82F6, #8B5CF6);
216
+ -webkit-background-clip: text;
217
+ -webkit-text-fill-color: transparent;
218
  }
219
 
220
  .gradio-container div[style*="margin-left: 130px"] ul {
221
+ margin: 0 !important;
222
+ padding-left: 24px !important;
223
  }
224
 
225
  .gradio-container div[style*="margin-left: 130px"] li {
226
+ margin: 10px 0 !important;
227
+ color: rgba(255, 255, 255, 0.85) !important;
228
+ font-size: 0.95em !important;
229
  }
230
 
231
  /* ============================================
232
  HEADER SECTION REFINEMENT
233
  ============================================ */
234
  div[style*="border-bottom-left-radius:40px"] {
235
+ margin-bottom: 40px !important;
236
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
237
  }
238
 
239
  /* ============================================
240
  RESPONSIVE IMPROVEMENTS
241
  ============================================ */
242
  @media (max-width: 1200px) {
243
+ .gradio-container {
244
+ max-width: 95% !important;
245
+ padding: 20px !important;
246
+ }
247
  }
248
 
249
  @media (max-width: 768px) {
250
+ .gradio-container div[style*="margin-left: 130px"] {
251
+ padding: 20px !important;
252
+ }
253
+
254
+ div[style*="flex:1; display:flex"] {
255
+ flex-direction: column !important;
256
+ }
257
  }
258
 
259
  @keyframes gridScroll {
260
+ 0% {
261
+ transform: translate(0, 0);
262
+ }
263
+ 100% {
264
+ transform: translate(60px, 60px);
265
+ }
266
  }
267
 
268
  @keyframes floatOrb1 {
269
+ 0%, 100% {
270
+ transform: translate(0, 0) scale(1);
271
+ opacity: 0.4;
272
+ }
273
+ 33% {
274
+ transform: translate(-50px, 40px) scale(1.15);
275
+ opacity: 0.6;
276
+ }
277
+ 66% {
278
+ transform: translate(30px, -30px) scale(0.9);
279
+ opacity: 0.5;
280
+ }
 
281
  }
282
 
283
  @keyframes floatOrb2 {
284
+ 0%, 100% {
285
+ transform: translate(0, 0) scale(1);
286
+ opacity: 0.35;
287
+ }
288
+ 33% {
289
+ transform: translate(40px, -50px) scale(0.85);
290
+ opacity: 0.5;
291
+ }
292
+ 66% {
293
+ transform: translate(-35px, 35px) scale(1.1);
294
+ opacity: 0.45;
295
+ }
 
296
  }
297
 
298
  /* ============================================
299
  SMOOTH SCROLLING
300
  ============================================ */
301
  html {
302
+ scroll-behavior: smooth;
303
  }
304
 
305
  /* ============================================
306
  ACCESSIBILITY & POLISH
307
  ============================================ */
308
  * {
309
+ -webkit-font-smoothing: antialiased;
310
+ -moz-osx-font-smoothing: grayscale;
311
  }
312
 
313
  ::selection {
314
+ background: rgba(59, 130, 246, 0.3);
315
+ color: white;
316
  }
317
 
318
  /* Force page header title to stay on one line */
319
  h1 {
320
+ white-space: nowrap !important;
321
+ width: auto !important;
322
  }