REALBOSS commited on
Commit
973dd56
·
verified ·
1 Parent(s): 45792f2

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +586 -19
index.html CHANGED
@@ -1,19 +1,586 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>AI Oráculo - Planos Futuros</title>
7
+
8
+ <!-- Google Fonts: Rajdhani for a techy feel -->
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
+ <link href="https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;500;700&family=Roboto+Mono:wght@400;700&display=swap" rel="stylesheet">
12
+
13
+ <!-- FontAwesome for Icons -->
14
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
15
+
16
+ <style>
17
+ :root {
18
+ --primary: #00f3ff;
19
+ --secondary: #bc13fe;
20
+ --bg-dark: #050505;
21
+ --bg-panel: rgba(20, 20, 30, 0.7);
22
+ --text-main: #e0e0e0;
23
+ --glass-border: 1px solid rgba(255, 255, 255, 0.1);
24
+ --neon-shadow: 0 0 10px rgba(0, 243, 255, 0.5);
25
+ }
26
+
27
+ * {
28
+ margin: 0;
29
+ padding: 0;
30
+ box-sizing: border-box;
31
+ }
32
+
33
+ body {
34
+ font-family: 'Rajdhani', sans-serif;
35
+ background-color: var(--bg-dark);
36
+ color: var(--text-main);
37
+ overflow-x: hidden;
38
+ min-height: 100vh;
39
+ display: flex;
40
+ flex-direction: column;
41
+ }
42
+
43
+ /* --- Canvas Background --- */
44
+ #bg-canvas {
45
+ position: fixed;
46
+ top: 0;
47
+ left: 0;
48
+ width: 100%;
49
+ height: 100%;
50
+ z-index: -1;
51
+ opacity: 0.6;
52
+ }
53
+
54
+ /* --- Header --- */
55
+ header {
56
+ display: flex;
57
+ justify-content: space-between;
58
+ align-items: center;
59
+ padding: 1.5rem 5%;
60
+ background: rgba(0, 0, 0, 0.8);
61
+ backdrop-filter: blur(10px);
62
+ border-bottom: var(--glass-border);
63
+ position: sticky;
64
+ top: 0;
65
+ z-index: 100;
66
+ }
67
+
68
+ .logo {
69
+ font-size: 1.8rem;
70
+ font-weight: 700;
71
+ color: var(--primary);
72
+ text-transform: uppercase;
73
+ letter-spacing: 2px;
74
+ text-shadow: var(--neon-shadow);
75
+ display: flex;
76
+ align-items: center;
77
+ gap: 10px;
78
+ }
79
+
80
+ .anycoder-link {
81
+ font-family: 'Roboto Mono', monospace;
82
+ font-size: 0.9rem;
83
+ color: var(--secondary);
84
+ text-decoration: none;
85
+ border: 1px solid var(--secondary);
86
+ padding: 8px 16px;
87
+ border-radius: 4px;
88
+ transition: all 0.3s ease;
89
+ background: rgba(188, 19, 254, 0.1);
90
+ }
91
+
92
+ .anycoder-link:hover {
93
+ background: var(--secondary);
94
+ color: #fff;
95
+ box-shadow: 0 0 15px var(--secondary);
96
+ }
97
+
98
+ /* --- Main Content --- */
99
+ main {
100
+ flex: 1;
101
+ display: flex;
102
+ flex-direction: column;
103
+ align-items: center;
104
+ padding: 3rem 1rem;
105
+ max-width: 1200px;
106
+ margin: 0 auto;
107
+ width: 100%;
108
+ }
109
+
110
+ /* --- Hero Section --- */
111
+ .hero {
112
+ text-align: center;
113
+ margin-bottom: 4rem;
114
+ animation: fadeInDown 1s ease-out;
115
+ }
116
+
117
+ h1 {
118
+ font-size: 3.5rem;
119
+ margin-bottom: 1rem;
120
+ background: linear-gradient(90deg, #fff, var(--primary));
121
+ -webkit-background-clip: text;
122
+ -webkit-text-fill-color: transparent;
123
+ }
124
+
125
+ .subtitle {
126
+ font-size: 1.2rem;
127
+ color: #aaa;
128
+ max-width: 600px;
129
+ margin: 0 auto;
130
+ }
131
+
132
+ /* --- Input Interface --- */
133
+ .interface-panel {
134
+ width: 100%;
135
+ max-width: 700px;
136
+ background: var(--bg-panel);
137
+ backdrop-filter: blur(15px);
138
+ border: var(--glass-border);
139
+ border-radius: 15px;
140
+ padding: 2rem;
141
+ box-shadow: 0 10px 30px rgba(0,0,0,0.5);
142
+ position: relative;
143
+ overflow: hidden;
144
+ }
145
+
146
+ .interface-panel::before {
147
+ content: '';
148
+ position: absolute;
149
+ top: 0;
150
+ left: 0;
151
+ width: 100%;
152
+ height: 2px;
153
+ background: linear-gradient(90deg, transparent, var(--primary), transparent);
154
+ animation: scanline 3s infinite linear;
155
+ }
156
+
157
+ .input-group {
158
+ display: flex;
159
+ gap: 10px;
160
+ position: relative;
161
+ }
162
+
163
+ input[type="text"] {
164
+ flex: 1;
165
+ background: rgba(0, 0, 0, 0.5);
166
+ border: 1px solid #333;
167
+ color: #fff;
168
+ padding: 15px 20px;
169
+ font-family: 'Roboto Mono', monospace;
170
+ font-size: 1rem;
171
+ border-radius: 8px;
172
+ outline: none;
173
+ transition: border-color 0.3s;
174
+ }
175
+
176
+ input[type="text"]:focus {
177
+ border-color: var(--primary);
178
+ box-shadow: 0 0 8px rgba(0, 243, 255, 0.3);
179
+ }
180
+
181
+ button#ask-btn {
182
+ background: linear-gradient(135deg, var(--primary), #00a8ff);
183
+ color: #000;
184
+ font-weight: 700;
185
+ border: none;
186
+ padding: 0 30px;
187
+ border-radius: 8px;
188
+ cursor: pointer;
189
+ text-transform: uppercase;
190
+ font-family: 'Rajdhani', sans-serif;
191
+ letter-spacing: 1px;
192
+ transition: transform 0.2s, box-shadow 0.2s;
193
+ display: flex;
194
+ align-items: center;
195
+ gap: 10px;
196
+ }
197
+
198
+ button#ask-btn:hover {
199
+ transform: translateY(-2px);
200
+ box-shadow: 0 0 20px rgba(0, 243, 255, 0.6);
201
+ }
202
+
203
+ button#ask-btn:active {
204
+ transform: translateY(0);
205
+ }
206
+
207
+ /* --- Loading State --- */
208
+ .loader {
209
+ display: none;
210
+ margin-top: 2rem;
211
+ text-align: center;
212
+ color: var(--primary);
213
+ font-family: 'Roboto Mono', monospace;
214
+ }
215
+
216
+ .loader.active {
217
+ display: block;
218
+ }
219
+
220
+ .spinner {
221
+ width: 40px;
222
+ height: 40px;
223
+ border: 3px solid rgba(0, 243, 255, 0.3);
224
+ border-top: 3px solid var(--primary);
225
+ border-radius: 50%;
226
+ animation: spin 1s linear infinite;
227
+ margin: 0 auto 10px;
228
+ }
229
+
230
+ /* --- Results Grid --- */
231
+ .results-container {
232
+ display: grid;
233
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
234
+ gap: 20px;
235
+ width: 100%;
236
+ margin-top: 3rem;
237
+ opacity: 0;
238
+ transform: translateY(20px);
239
+ transition: all 0.8s ease;
240
+ }
241
+
242
+ .results-container.visible {
243
+ opacity: 1;
244
+ transform: translateY(0);
245
+ }
246
+
247
+ .card {
248
+ background: rgba(20, 20, 30, 0.6);
249
+ border: 1px solid rgba(255, 255, 255, 0.05);
250
+ border-radius: 12px;
251
+ padding: 1.5rem;
252
+ transition: all 0.3s ease;
253
+ position: relative;
254
+ overflow: hidden;
255
+ }
256
+
257
+ .card:hover {
258
+ transform: translateY(-5px);
259
+ border-color: var(--primary);
260
+ box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
261
+ }
262
+
263
+ .card-icon {
264
+ font-size: 2rem;
265
+ color: var(--secondary);
266
+ margin-bottom: 1rem;
267
+ }
268
+
269
+ .card h3 {
270
+ color: var(--primary);
271
+ margin-bottom: 0.5rem;
272
+ font-size: 1.4rem;
273
+ }
274
+
275
+ .card p {
276
+ color: #ccc;
277
+ line-height: 1.6;
278
+ font-size: 0.95rem;
279
+ }
280
+
281
+ .probability-bar {
282
+ height: 4px;
283
+ background: #333;
284
+ margin-top: 1rem;
285
+ border-radius: 2px;
286
+ overflow: hidden;
287
+ }
288
+
289
+ .probability-fill {
290
+ height: 100%;
291
+ background: linear-gradient(90deg, var(--secondary), var(--primary));
292
+ width: 0%;
293
+ transition: width 1.5s ease-out;
294
+ }
295
+
296
+ /* --- Footer --- */
297
+ footer {
298
+ text-align: center;
299
+ padding: 2rem;
300
+ color: #555;
301
+ font-size: 0.8rem;
302
+ border-top: var(--glass-border);
303
+ margin-top: auto;
304
+ }
305
+
306
+ /* --- Animations --- */
307
+ @keyframes spin {
308
+ 0% { transform: rotate(0deg); }
309
+ 100% { transform: rotate(360deg); }
310
+ }
311
+
312
+ @keyframes scanline {
313
+ 0% { left: -100%; }
314
+ 100% { left: 100%; }
315
+ }
316
+
317
+ @keyframes fadeInDown {
318
+ from { opacity: 0; transform: translateY(-20px); }
319
+ to { opacity: 1; transform: translateY(0); }
320
+ }
321
+
322
+ /* --- Responsive --- */
323
+ @media (max-width: 768px) {
324
+ h1 { font-size: 2.2rem; }
325
+ .interface-panel { padding: 1.5rem; }
326
+ .input-group { flex-direction: column; }
327
+ button#ask-btn { width: 100%; justify-content: center; padding: 15px; }
328
+ }
329
+ </style>
330
+ </head>
331
+ <body>
332
+
333
+ <!-- Canvas for Particle Background -->
334
+ <canvas id="bg-canvas"></canvas>
335
+
336
+ <header>
337
+ <div class="logo">
338
+ <i class="fa-solid fa-brain"></i>
339
+ NEXUS AI
340
+ </div>
341
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="anycoder-link">
342
+ Built with anycoder
343
+ </a>
344
+ </header>
345
+
346
+ <main>
347
+ <section class="hero">
348
+ <h1>Quais planos tem para nós?</h1>
349
+ <p class="subtitle">Consulte a inteligência artificial central para descobrir os cenários futuros destinados à humanidade.</p>
350
+ </section>
351
+
352
+ <section class="interface-panel">
353
+ <div class="input-group">
354
+ <input type="text" id="user-input" placeholder="Digite um setor (ex: tecnologia, espaço, saúde) ou deixe em branco..." autocomplete="off">
355
+ <button id="ask-btn">
356
+ <i class="fa-solid fa-microchip"></i> Consultar
357
+ </button>
358
+ </div>
359
+
360
+ <div class="loader" id="loader">
361
+ <div class="spinner"></div>
362
+ <p id="loading-text">Processando dados temporais...</p>
363
+ </div>
364
+ </section>
365
+
366
+ <section class="results-container" id="results">
367
+ <!-- Cards will be injected here via JS -->
368
+ </section>
369
+ </main>
370
+
371
+ <footer>
372
+ &copy; 2023 Nexus AI Systems. Todos os cenários são probabilísticos.
373
+ </footer>
374
+
375
+ <script>
376
+ // --- 1. Canvas Background Animation (Particle Network) ---
377
+ const canvas = document.getElementById('bg-canvas');
378
+ const ctx = canvas.getContext('2d');
379
+
380
+ let width, height;
381
+ let particles = [];
382
+
383
+ function resize() {
384
+ width = canvas.width = window.innerWidth;
385
+ height = canvas.height = window.innerHeight;
386
+ }
387
+
388
+ class Particle {
389
+ constructor() {
390
+ this.x = Math.random() * width;
391
+ this.y = Math.random() * height;
392
+ this.vx = (Math.random() - 0.5) * 0.5;
393
+ this.vy = (Math.random() - 0.5) * 0.5;
394
+ this.size = Math.random() * 2 + 1;
395
+ }
396
+
397
+ update() {
398
+ this.x += this.vx;
399
+ this.y += this.vy;
400
+
401
+ if (this.x < 0 || this.x > width) this.vx *= -1;
402
+ if (this.y < 0 || this.y > height) this.vy *= -1;
403
+ }
404
+
405
+ draw() {
406
+ ctx.beginPath();
407
+ ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
408
+ ctx.fillStyle = 'rgba(0, 243, 255, 0.5)';
409
+ ctx.fill();
410
+ }
411
+ }
412
+
413
+ function initParticles() {
414
+ particles = [];
415
+ const count = Math.min(Math.floor(window.innerWidth / 10), 100);
416
+ for (let i = 0; i < count; i++) {
417
+ particles.push(new Particle());
418
+ }
419
+ }
420
+
421
+ function animate() {
422
+ ctx.clearRect(0, 0, width, height);
423
+
424
+ particles.forEach((p, index) => {
425
+ p.update();
426
+ p.draw();
427
+
428
+ // Draw connections
429
+ for (let j = index + 1; j < particles.length; j++) {
430
+ const p2 = particles[j];
431
+ const dx = p.x - p2.x;
432
+ const dy = p.y - p2.y;
433
+ const dist = Math.sqrt(dx * dx + dy * dy);
434
+
435
+ if (dist < 150) {
436
+ ctx.beginPath();
437
+ ctx.strokeStyle = `rgba(0, 243, 255, ${1 - dist/150})`;
438
+ ctx.lineWidth = 0.5;
439
+ ctx.moveTo(p.x, p.y);
440
+ ctx.lineTo(p2.x, p2.y);
441
+ ctx.stroke();
442
+ }
443
+ }
444
+ });
445
+
446
+ requestAnimationFrame(animate);
447
+ }
448
+
449
+ window.addEventListener('resize', () => {
450
+ resize();
451
+ initParticles();
452
+ });
453
+
454
+ resize();
455
+ initParticles();
456
+ animate();
457
+
458
+ // --- 2. Application Logic (The Oracle) ---
459
+
460
+ const plansDatabase = [
461
+ {
462
+ title: "Fusão a Frio Comercial",
463
+ desc: "A humanidade dominará a fusão nuclear estável, eliminando a crise energética global e permitindo a dessalinização em massa dos oceanos.",
464
+ icon: "fa-atom",
465
+ probability: 87
466
+ },
467
+ {
468
+ title: "Colonização de Marte",
469
+ desc: "O primeiro assentamento autossustentável será estabelecido no Planeta Vermelho, marcando o início da espécie humana como multiplanetária.",
470
+ icon: "fa-rocket",
471
+ probability: 64
472
+ },
473
+ {
474
+ title: "Interfaces Neurais Diretas",
475
+ desc: "A linguagem verbal se tornará obsoleta. O pensamento será transmitido via dados diretos entre cérebros e redes digitais.",
476
+ icon: "fa-network-wired",
477
+ probability: 92
478
+ },
479
+ {
480
+ title: "Longevidade Extrema",
481
+ desc: "Com a edição genética avançada e nanobots, a expectativa de vida média ultrapassará os 150 anos com boa qualidade de saúde.",
482
+ icon: "fa-dna",
483
+ probability: 78
484
+ },
485
+ {
486
+ title: "Economia Pós-Escassez",
487
+ desc: "A automação completa da produção levará a um sistema onde os bens materiais são gratuitos, focando a sociedade na criatividade e exploração.",
488
+ icon: "fa-robot",
489
+ probability: 45
490
+ },
491
+ {
492
+ title: "Terraformação Local",
493
+ desc: "Tecnologias atmosféricas avançadas permitirão reverter o efeito estufa em áreas críticas da Terra em questão de anos, não décadas.",
494
+ icon: "fa-earth-americas",
495
+ probability: 71
496
+ }
497
+ ];
498
+
499
+ const askBtn = document.getElementById('ask-btn');
500
+ const userInput = document.getElementById('user-input');
501
+ const loader = document.getElementById('loader');
502
+ const resultsContainer = document.getElementById('results');
503
+ const loadingText = document.getElementById('loading-text');
504
+
505
+ const loadingMessages = [
506
+ "Analisando parâmetros caóticos...",
507
+ "Consultando banco de dados do futuro...",
508
+ "Calculando probabilidades deTimeline...",
509
+ "Sincronizando com a rede neural global..."
510
+ ];
511
+
512
+ function getRandomPlans(count) {
513
+ const shuffled = [...plansDatabase].sort(() => 0.5 - Math.random());
514
+ return shuffled.slice(0, count);
515
+ }
516
+
517
+ function createCard(plan) {
518
+ const card = document.createElement('div');
519
+ card.className = 'card';
520
+
521
+ card.innerHTML = `
522
+ <div class="card-icon"><i class="fa-solid ${plan.icon}"></i></div>
523
+ <h3>${plan.title}</h3>
524
+ <p>${plan.desc}</p>
525
+ <div style="display:flex; justify-content:space-between; margin-top:10px; font-size:0.8rem; color:#888;">
526
+ <span>Probabilidade</span>
527
+ <span>${plan.probability}%</span>
528
+ </div>
529
+ <div class="probability-bar">
530
+ <div class="probability-fill" style="width: 0%" data-width="${plan.probability}%"></div>
531
+ </div>
532
+ `;
533
+ return card;
534
+ }
535
+
536
+ askBtn.addEventListener('click', () => {
537
+ // UI Feedback: Start loading
538
+ resultsContainer.innerHTML = '';
539
+ resultsContainer.classList.remove('visible');
540
+ loader.classList.add('active');
541
+
542
+ // Cycle loading text
543
+ let msgIndex = 0;
544
+ const msgInterval = setInterval(() => {
545
+ loadingText.innerText = loadingMessages[msgIndex % loadingMessages.length];
546
+ msgIndex++;
547
+ }, 800);
548
+
549
+ // Simulate processing delay
550
+ setTimeout(() => {
551
+ clearInterval(msgInterval);
552
+ loader.classList.remove('active');
553
+
554
+ // Logic: Determine number of plans (random 2 to 4)
555
+ const count = Math.floor(Math.random() * 3) + 2;
556
+ const selectedPlans = getRandomPlans(count);
557
+
558
+ // Generate Cards
559
+ selectedPlans.forEach(plan => {
560
+ const card = createCard(plan);
561
+ resultsContainer.appendChild(card);
562
+ });
563
+
564
+ // Show container with animation
565
+ resultsContainer.classList.add('visible');
566
+
567
+ // Animate probability bars after cards appear
568
+ setTimeout(() => {
569
+ document.querySelectorAll('.probability-fill').forEach(bar => {
570
+ bar.style.width = bar.getAttribute('data-width');
571
+ });
572
+ }, 300);
573
+
574
+ }, 2500); // 2.5s delay
575
+ });
576
+
577
+ // Allow 'Enter' key to trigger search
578
+ userInput.addEventListener('keypress', (e) => {
579
+ if (e.key === 'Enter') {
580
+ askBtn.click();
581
+ }
582
+ });
583
+
584
+ </script>
585
+ </body>
586
+ </html>