Multimedix commited on
Commit
8e407e4
·
verified ·
1 Parent(s): 55e3dfd

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +1267 -19
index.html CHANGED
@@ -1,19 +1,1267 @@
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="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>How to Start the App</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
10
+ <style>
11
+ *, *::before, *::after {
12
+ margin: 0;
13
+ padding: 0;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ :root {
18
+ --bg-primary: #0a0a0f;
19
+ --bg-secondary: #12121a;
20
+ --bg-card: #16161f;
21
+ --bg-card-hover: #1c1c28;
22
+ --accent: #6c5ce7;
23
+ --accent-light: #a29bfe;
24
+ --accent-glow: rgba(108, 92, 231, 0.3);
25
+ --green: #00cec9;
26
+ --green-glow: rgba(0, 206, 201, 0.25);
27
+ --orange: #fdcb6e;
28
+ --orange-glow: rgba(253, 203, 110, 0.25);
29
+ --pink: #fd79a8;
30
+ --pink-glow: rgba(253, 121, 168, 0.25);
31
+ --blue: #74b9ff;
32
+ --blue-glow: rgba(116, 185, 255, 0.25);
33
+ --text-primary: #e8e8f0;
34
+ --text-secondary: #8888a0;
35
+ --text-muted: #55556a;
36
+ --border: rgba(255, 255, 255, 0.06);
37
+ --border-active: rgba(108, 92, 231, 0.4);
38
+ --radius: 16px;
39
+ --radius-sm: 10px;
40
+ --radius-xs: 6px;
41
+ }
42
+
43
+ html {
44
+ scroll-behavior: smooth;
45
+ }
46
+
47
+ body {
48
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
49
+ background: var(--bg-primary);
50
+ color: var(--text-primary);
51
+ line-height: 1.7;
52
+ overflow-x: hidden;
53
+ min-height: 100vh;
54
+ }
55
+
56
+ /* Scrollbar */
57
+ ::-webkit-scrollbar { width: 6px; }
58
+ ::-webkit-scrollbar-track { background: var(--bg-primary); }
59
+ ::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 10px; }
60
+
61
+ /* Animated Background */
62
+ .bg-grid {
63
+ position: fixed;
64
+ inset: 0;
65
+ z-index: 0;
66
+ background-image:
67
+ linear-gradient(rgba(108, 92, 231, 0.03) 1px, transparent 1px),
68
+ linear-gradient(90deg, rgba(108, 92, 231, 0.03) 1px, transparent 1px);
69
+ background-size: 60px 60px;
70
+ pointer-events: none;
71
+ }
72
+
73
+ .bg-orb {
74
+ position: fixed;
75
+ border-radius: 50%;
76
+ filter: blur(120px);
77
+ pointer-events: none;
78
+ z-index: 0;
79
+ animation: orbFloat 20s ease-in-out infinite;
80
+ }
81
+
82
+ .bg-orb--1 {
83
+ width: 500px;
84
+ height: 500px;
85
+ background: rgba(108, 92, 231, 0.12);
86
+ top: -10%;
87
+ right: -5%;
88
+ }
89
+
90
+ .bg-orb--2 {
91
+ width: 400px;
92
+ height: 400px;
93
+ background: rgba(0, 206, 201, 0.08);
94
+ bottom: 10%;
95
+ left: -8%;
96
+ animation-delay: -7s;
97
+ }
98
+
99
+ .bg-orb--3 {
100
+ width: 300px;
101
+ height: 300px;
102
+ background: rgba(253, 121, 168, 0.06);
103
+ top: 50%;
104
+ right: 20%;
105
+ animation-delay: -14s;
106
+ }
107
+
108
+ @keyframes orbFloat {
109
+ 0%, 100% { transform: translate(0, 0) scale(1); }
110
+ 33% { transform: translate(30px, -40px) scale(1.05); }
111
+ 66% { transform: translate(-20px, 20px) scale(0.95); }
112
+ }
113
+
114
+ /* Header */
115
+ header {
116
+ position: fixed;
117
+ top: 0;
118
+ left: 0;
119
+ right: 0;
120
+ z-index: 100;
121
+ backdrop-filter: blur(20px);
122
+ -webkit-backdrop-filter: blur(20px);
123
+ background: rgba(10, 10, 15, 0.7);
124
+ border-bottom: 1px solid var(--border);
125
+ transition: all 0.3s ease;
126
+ }
127
+
128
+ header.scrolled {
129
+ background: rgba(10, 10, 15, 0.9);
130
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
131
+ }
132
+
133
+ .header-inner {
134
+ max-width: 1200px;
135
+ margin: 0 auto;
136
+ padding: 0 24px;
137
+ height: 64px;
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: space-between;
141
+ }
142
+
143
+ .logo {
144
+ display: flex;
145
+ align-items: center;
146
+ gap: 10px;
147
+ font-weight: 700;
148
+ font-size: 1.15rem;
149
+ color: var(--text-primary);
150
+ text-decoration: none;
151
+ }
152
+
153
+ .logo-icon {
154
+ width: 34px;
155
+ height: 34px;
156
+ background: linear-gradient(135deg, var(--accent), var(--green));
157
+ border-radius: var(--radius-xs);
158
+ display: grid;
159
+ place-items: center;
160
+ font-size: 0.85rem;
161
+ color: white;
162
+ }
163
+
164
+ .header-link {
165
+ font-size: 0.82rem;
166
+ color: var(--text-secondary);
167
+ text-decoration: none;
168
+ font-weight: 500;
169
+ transition: color 0.2s;
170
+ display: flex;
171
+ align-items: center;
172
+ gap: 6px;
173
+ }
174
+
175
+ .header-link:hover {
176
+ color: var(--accent-light);
177
+ }
178
+
179
+ .built-with {
180
+ font-size: 0.75rem;
181
+ color: var(--text-muted);
182
+ text-decoration: none;
183
+ font-weight: 500;
184
+ padding: 5px 12px;
185
+ border: 1px solid var(--border);
186
+ border-radius: 20px;
187
+ transition: all 0.3s ease;
188
+ }
189
+
190
+ .built-with:hover {
191
+ color: var(--accent-light);
192
+ border-color: var(--border-active);
193
+ background: rgba(108, 92, 231, 0.08);
194
+ }
195
+
196
+ /* Main Content */
197
+ main {
198
+ position: relative;
199
+ z-index: 1;
200
+ }
201
+
202
+ /* Hero */
203
+ .hero {
204
+ min-height: 100vh;
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ text-align: center;
209
+ padding: 120px 24px 80px;
210
+ }
211
+
212
+ .hero-content {
213
+ max-width: 720px;
214
+ }
215
+
216
+ .hero-badge {
217
+ display: inline-flex;
218
+ align-items: center;
219
+ gap: 8px;
220
+ padding: 6px 16px;
221
+ background: rgba(108, 92, 231, 0.1);
222
+ border: 1px solid rgba(108, 92, 231, 0.2);
223
+ border-radius: 50px;
224
+ font-size: 0.8rem;
225
+ color: var(--accent-light);
226
+ font-weight: 500;
227
+ margin-bottom: 28px;
228
+ animation: fadeInUp 0.6s ease both;
229
+ }
230
+
231
+ .hero-badge .pulse-dot {
232
+ width: 7px;
233
+ height: 7px;
234
+ background: var(--green);
235
+ border-radius: 50%;
236
+ animation: pulse 2s ease-in-out infinite;
237
+ }
238
+
239
+ @keyframes pulse {
240
+ 0%, 100% { opacity: 1; transform: scale(1); }
241
+ 50% { opacity: 0.5; transform: scale(0.8); }
242
+ }
243
+
244
+ .hero h1 {
245
+ font-size: clamp(2.4rem, 6vw, 4rem);
246
+ font-weight: 900;
247
+ line-height: 1.1;
248
+ letter-spacing: -0.03em;
249
+ margin-bottom: 20px;
250
+ animation: fadeInUp 0.6s ease 0.1s both;
251
+ }
252
+
253
+ .hero h1 .gradient-text {
254
+ background: linear-gradient(135deg, var(--accent-light), var(--green), var(--accent));
255
+ background-size: 200% 200%;
256
+ -webkit-background-clip: text;
257
+ -webkit-text-fill-color: transparent;
258
+ background-clip: text;
259
+ animation: gradientShift 6s ease infinite;
260
+ }
261
+
262
+ @keyframes gradientShift {
263
+ 0%, 100% { background-position: 0% 50%; }
264
+ 50% { background-position: 100% 50%; }
265
+ }
266
+
267
+ .hero p {
268
+ font-size: 1.1rem;
269
+ color: var(--text-secondary);
270
+ max-width: 540px;
271
+ margin: 0 auto 36px;
272
+ line-height: 1.8;
273
+ animation: fadeInUp 0.6s ease 0.2s both;
274
+ }
275
+
276
+ .hero-actions {
277
+ display: flex;
278
+ gap: 14px;
279
+ justify-content: center;
280
+ flex-wrap: wrap;
281
+ animation: fadeInUp 0.6s ease 0.3s both;
282
+ }
283
+
284
+ .btn {
285
+ display: inline-flex;
286
+ align-items: center;
287
+ gap: 8px;
288
+ padding: 12px 28px;
289
+ border-radius: 50px;
290
+ font-size: 0.9rem;
291
+ font-weight: 600;
292
+ text-decoration: none;
293
+ cursor: pointer;
294
+ border: none;
295
+ transition: all 0.3s ease;
296
+ font-family: inherit;
297
+ }
298
+
299
+ .btn-primary {
300
+ background: linear-gradient(135deg, var(--accent), #8b7cf7);
301
+ color: white;
302
+ box-shadow: 0 4px 20px var(--accent-glow);
303
+ }
304
+
305
+ .btn-primary:hover {
306
+ transform: translateY(-2px);
307
+ box-shadow: 0 8px 30px var(--accent-glow);
308
+ }
309
+
310
+ .btn-secondary {
311
+ background: var(--bg-card);
312
+ color: var(--text-primary);
313
+ border: 1px solid var(--border);
314
+ }
315
+
316
+ .btn-secondary:hover {
317
+ background: var(--bg-card-hover);
318
+ border-color: var(--border-active);
319
+ transform: translateY(-2px);
320
+ }
321
+
322
+ @keyframes fadeInUp {
323
+ from { opacity: 0; transform: translateY(24px); }
324
+ to { opacity: 1; transform: translateY(0); }
325
+ }
326
+
327
+ /* Terminal Animation */
328
+ .hero-terminal {
329
+ margin-top: 50px;
330
+ animation: fadeInUp 0.6s ease 0.4s both;
331
+ }
332
+
333
+ .terminal {
334
+ background: var(--bg-secondary);
335
+ border: 1px solid var(--border);
336
+ border-radius: var(--radius);
337
+ overflow: hidden;
338
+ max-width: 560px;
339
+ margin: 0 auto;
340
+ text-align: left;
341
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
342
+ }
343
+
344
+ .terminal-bar {
345
+ display: flex;
346
+ align-items: center;
347
+ gap: 8px;
348
+ padding: 12px 16px;
349
+ background: rgba(255, 255, 255, 0.02);
350
+ border-bottom: 1px solid var(--border);
351
+ }
352
+
353
+ .terminal-dot {
354
+ width: 12px;
355
+ height: 12px;
356
+ border-radius: 50%;
357
+ }
358
+
359
+ .terminal-dot--red { background: #ff5f57; }
360
+ .terminal-dot--yellow { background: #febc2e; }
361
+ .terminal-dot--green { background: #28c840; }
362
+
363
+ .terminal-title {
364
+ flex: 1;
365
+ text-align: center;
366
+ font-size: 0.75rem;
367
+ color: var(--text-muted);
368
+ font-family: 'JetBrains Mono', monospace;
369
+ }
370
+
371
+ .terminal-body {
372
+ padding: 20px;
373
+ font-family: 'JetBrains Mono', monospace;
374
+ font-size: 0.82rem;
375
+ line-height: 2;
376
+ min-height: 140px;
377
+ }
378
+
379
+ .terminal-line {
380
+ opacity: 0;
381
+ animation: typeLine 0.3s ease forwards;
382
+ }
383
+
384
+ .terminal-line .prompt {
385
+ color: var(--green);
386
+ user-select: none;
387
+ }
388
+
389
+ .terminal-line .command {
390
+ color: var(--text-primary);
391
+ }
392
+
393
+ .terminal-line .output {
394
+ color: var(--text-secondary);
395
+ padding-left: 0;
396
+ }
397
+
398
+ .terminal-line .flag {
399
+ color: var(--orange);
400
+ }
401
+
402
+ .terminal-line .string {
403
+ color: var(--green);
404
+ }
405
+
406
+ .terminal-cursor {
407
+ display: inline-block;
408
+ width: 8px;
409
+ height: 16px;
410
+ background: var(--accent-light);
411
+ animation: blink 1s step-end infinite;
412
+ vertical-align: middle;
413
+ margin-left: 2px;
414
+ }
415
+
416
+ @keyframes blink {
417
+ 50% { opacity: 0; }
418
+ }
419
+
420
+ @keyframes typeLine {
421
+ to { opacity: 1; }
422
+ }
423
+
424
+ /* Sections */
425
+ .section {
426
+ padding: 100px 24px;
427
+ }
428
+
429
+ .section-inner {
430
+ max-width: 1100px;
431
+ margin: 0 auto;
432
+ }
433
+
434
+ .section-header {
435
+ text-align: center;
436
+ margin-bottom: 64px;
437
+ }
438
+
439
+ .section-label {
440
+ display: inline-flex;
441
+ align-items: center;
442
+ gap: 6px;
443
+ font-size: 0.78rem;
444
+ font-weight: 600;
445
+ text-transform: uppercase;
446
+ letter-spacing: 0.12em;
447
+ color: var(--accent-light);
448
+ margin-bottom: 14px;
449
+ }
450
+
451
+ .section-title {
452
+ font-size: clamp(1.8rem, 4vw, 2.6rem);
453
+ font-weight: 800;
454
+ letter-spacing: -0.02em;
455
+ margin-bottom: 14px;
456
+ }
457
+
458
+ .section-desc {
459
+ color: var(--text-secondary);
460
+ max-width: 520px;
461
+ margin: 0 auto;
462
+ font-size: 1.02rem;
463
+ }
464
+
465
+ /* Steps */
466
+ .steps-timeline {
467
+ position: relative;
468
+ display: flex;
469
+ flex-direction: column;
470
+ gap: 24px;
471
+ }
472
+
473
+ .steps-timeline::before {
474
+ content: '';
475
+ position: absolute;
476
+ left: 28px;
477
+ top: 0;
478
+ bottom: 0;
479
+ width: 2px;
480
+ background: linear-gradient(to bottom, var(--accent), var(--green), var(--pink), transparent);
481
+ border-radius: 2px;
482
+ }
483
+
484
+ .step-card {
485
+ position: relative;
486
+ display: grid;
487
+ grid-template-columns: 56px 1fr;
488
+ gap: 20px;
489
+ padding: 28px;
490
+ background: var(--bg-card);
491
+ border: 1px solid var(--border);
492
+ border-radius: var(--radius);
493
+ transition: all 0.4s ease;
494
+ cursor: pointer;
495
+ opacity: 0;
496
+ transform: translateY(30px);
497
+ }
498
+
499
+ .step-card.visible {
500
+ opacity: 1;
501
+ transform: translateY(0);
502
+ }
503
+
504
+ .step-card:hover {
505
+ background: var(--bg-card-hover);
506
+ border-color: var(--border-active);
507
+ transform: translateY(-4px);
508
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
509
+ }
510
+
511
+ .step-card.active {
512
+ border-color: var(--accent);
513
+ box-shadow: 0 0 0 1px var(--accent), 0 12px 40px var(--accent-glow);
514
+ }
515
+
516
+ .step-number {
517
+ width: 56px;
518
+ height: 56px;
519
+ border-radius: 50%;
520
+ display: grid;
521
+ place-items: center;
522
+ font-weight: 800;
523
+ font-size: 1.1rem;
524
+ position: relative;
525
+ z-index: 2;
526
+ transition: all 0.3s ease;
527
+ }
528
+
529
+ .step-card:nth-child(1) .step-number {
530
+ background: rgba(108, 92, 231, 0.15);
531
+ color: var(--accent-light);
532
+ border: 2px solid rgba(108, 92, 231, 0.3);
533
+ }
534
+
535
+ .step-card:nth-child(2) .step-number {
536
+ background: rgba(0, 206, 201, 0.15);
537
+ color: var(--green);
538
+ border: 2px solid rgba(0, 206, 201, 0.3);
539
+ }
540
+
541
+ .step-card:nth-child(3) .step-number {
542
+ background: rgba(253, 203, 110, 0.15);
543
+ color: var(--orange);
544
+ border: 2px solid rgba(253, 203, 110, 0.3);
545
+ }
546
+
547
+ .step-card:nth-child(4) .step-number {
548
+ background: rgba(253, 121, 168, 0.15);
549
+ color: var(--pink);
550
+ border: 2px solid rgba(253, 121, 168, 0.3);
551
+ }
552
+
553
+ .step-card:nth-child(5) .step-number {
554
+ background: rgba(116, 185, 255, 0.15);
555
+ color: var(--blue);
556
+ border: 2px solid rgba(116, 185, 255, 0.3);
557
+ }
558
+
559
+ .step-card.active .step-number {
560
+ transform: scale(1.1);
561
+ }
562
+
563
+ .step-content h3 {
564
+ font-size: 1.15rem;
565
+ font-weight: 700;
566
+ margin-bottom: 6px;
567
+ }
568
+
569
+ .step-content p {
570
+ color: var(--text-secondary);
571
+ font-size: 0.92rem;
572
+ line-height: 1.7;
573
+ margin-bottom: 14px;
574
+ }
575
+
576
+ .step-code {
577
+ background: rgba(0, 0, 0, 0.3);
578
+ border: 1px solid var(--border);
579
+ border-radius: var(--radius-xs);
580
+ padding: 14px 18px;
581
+ font-family: 'JetBrains Mono', monospace;
582
+ font-size: 0.8rem;
583
+ color: var(--green);
584
+ display: flex;
585
+ align-items: center;
586
+ justify-content: space-between;
587
+ gap: 12px;
588
+ overflow-x: auto;
589
+ }
590
+
591
+ .step-code code {
592
+ white-space: nowrap;
593
+ }
594
+
595
+ .copy-btn {
596
+ background: rgba(255, 255, 255, 0.05);
597
+ border: 1px solid var(--border);
598
+ color: var(--text-muted);
599
+ padding: 4px 10px;
600
+ border-radius: var(--radius-xs);
601
+ font-size: 0.72rem;
602
+ cursor: pointer;
603
+ font-family: inherit;
604
+ transition: all 0.2s;
605
+ flex-shrink: 0;
606
+ }
607
+
608
+ .copy-btn:hover {
609
+ color: var(--text-primary);
610
+ background: rgba(255, 255, 255, 0.1);
611
+ }
612
+
613
+ .copy-btn.copied {
614
+ color: var(--green);
615
+ border-color: rgba(0, 206, 201, 0.3);
616
+ }
617
+
618
+ /* Features Grid */
619
+ .features-grid {
620
+ display: grid;
621
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
622
+ gap: 20px;
623
+ }
624
+
625
+ .feature-card {
626
+ padding: 28px;
627
+ background: var(--bg-card);
628
+ border: 1px solid var(--border);
629
+ border-radius: var(--radius);
630
+ transition: all 0.3s ease;
631
+ opacity: 0;
632
+ transform: translateY(20px);
633
+ }
634
+
635
+ .feature-card.visible {
636
+ opacity: 1;
637
+ transform: translateY(0);
638
+ }
639
+
640
+ .feature-card:hover {
641
+ background: var(--bg-card-hover);
642
+ border-color: var(--border-active);
643
+ transform: translateY(-4px);
644
+ }
645
+
646
+ .feature-icon {
647
+ width: 44px;
648
+ height: 44px;
649
+ border-radius: var(--radius-sm);
650
+ display: grid;
651
+ place-items: center;
652
+ font-size: 1.1rem;
653
+ margin-bottom: 18px;
654
+ }
655
+
656
+ .feature-card:nth-child(1) .feature-icon {
657
+ background: rgba(108, 92, 231, 0.12);
658
+ color: var(--accent-light);
659
+ }
660
+
661
+ .feature-card:nth-child(2) .feature-icon {
662
+ background: rgba(0, 206, 201, 0.12);
663
+ color: var(--green);
664
+ }
665
+
666
+ .feature-card:nth-child(3) .feature-icon {
667
+ background: rgba(253, 203, 110, 0.12);
668
+ color: var(--orange);
669
+ }
670
+
671
+ .feature-card:nth-child(4) .feature-icon {
672
+ background: rgba(253, 121, 168, 0.12);
673
+ color: var(--pink);
674
+ }
675
+
676
+ .feature-card:nth-child(5) .feature-icon {
677
+ background: rgba(116, 185, 255, 0.12);
678
+ color: var(--blue);
679
+ }
680
+
681
+ .feature-card:nth-child(6) .feature-icon {
682
+ background: rgba(108, 92, 231, 0.12);
683
+ color: var(--accent-light);
684
+ }
685
+
686
+ .feature-card h3 {
687
+ font-size: 1.05rem;
688
+ font-weight: 700;
689
+ margin-bottom: 8px;
690
+ }
691
+
692
+ .feature-card p {
693
+ color: var(--text-secondary);
694
+ font-size: 0.88rem;
695
+ line-height: 1.7;
696
+ }
697
+
698
+ /* FAQ */
699
+ .faq-list {
700
+ max-width: 720px;
701
+ margin: 0 auto;
702
+ display: flex;
703
+ flex-direction: column;
704
+ gap: 12px;
705
+ }
706
+
707
+ .faq-item {
708
+ background: var(--bg-card);
709
+ border: 1px solid var(--border);
710
+ border-radius: var(--radius-sm);
711
+ overflow: hidden;
712
+ transition: all 0.3s ease;
713
+ }
714
+
715
+ .faq-item:hover {
716
+ border-color: var(--border-active);
717
+ }
718
+
719
+ .faq-question {
720
+ width: 100%;
721
+ padding: 20px 24px;
722
+ display: flex;
723
+ align-items: center;
724
+ justify-content: space-between;
725
+ gap: 16px;
726
+ background: none;
727
+ border: none;
728
+ color: var(--text-primary);
729
+ font-size: 0.95rem;
730
+ font-weight: 600;
731
+ cursor: pointer;
732
+ text-align: left;
733
+ font-family: inherit;
734
+ transition: color 0.2s;
735
+ }
736
+
737
+ .faq-question:hover {
738
+ color: var(--accent-light);
739
+ }
740
+
741
+ .faq-icon {
742
+ width: 28px;
743
+ height: 28px;
744
+ border-radius: 50%;
745
+ background: rgba(108, 92, 231, 0.1);
746
+ display: grid;
747
+ place-items: center;
748
+ font-size: 0.75rem;
749
+ color: var(--accent-light);
750
+ flex-shrink: 0;
751
+ transition: transform 0.3s ease;
752
+ }
753
+
754
+ .faq-item.open .faq-icon {
755
+ transform: rotate(45deg);
756
+ background: var(--accent);
757
+ color: white;
758
+ }
759
+
760
+ .faq-answer {
761
+ max-height: 0;
762
+ overflow: hidden;
763
+ transition: max-height 0.4s ease, padding 0.3s ease;
764
+ }
765
+
766
+ .faq-item.open .faq-answer {
767
+ max-height: 300px;
768
+ }
769
+
770
+ .faq-answer-inner {
771
+ padding: 0 24px 20px;
772
+ color: var(--text-secondary);
773
+ font-size: 0.9rem;
774
+ line-height: 1.8;
775
+ }
776
+
777
+ /* Progress Bar */
778
+ .progress-bar-container {
779
+ position: fixed;
780
+ top: 64px;
781
+ left: 0;
782
+ right: 0;
783
+ height: 3px;
784
+ z-index: 99;
785
+ background: rgba(255, 255, 255, 0.03);
786
+ }
787
+
788
+ .progress-bar {
789
+ height: 100%;
790
+ background: linear-gradient(90deg, var(--accent), var(--green));
791
+ width: 0%;
792
+ transition: width 0.1s linear;
793
+ border-radius: 0 3px 3px 0;
794
+ }
795
+
796
+ /* CTA Section */
797
+ .cta-section {
798
+ text-align: center;
799
+ padding: 100px 24px;
800
+ }
801
+
802
+ .cta-box {
803
+ max-width: 640px;
804
+ margin: 0 auto;
805
+ padding: 60px 40px;
806
+ background: linear-gradient(135deg, rgba(108, 92, 231, 0.08), rgba(0, 206, 201, 0.05));
807
+ border: 1px solid rgba(108, 92, 231, 0.15);
808
+ border-radius: 24px;
809
+ position: relative;
810
+ overflow: hidden;
811
+ }
812
+
813
+ .cta-box::before {
814
+ content: '';
815
+ position: absolute;
816
+ top: -50%;
817
+ left: -50%;
818
+ width: 200%;
819
+ height: 200%;
820
+ background: radial-gradient(circle at 30% 40%, rgba(108, 92, 231, 0.06), transparent 50%);
821
+ animation: ctaGlow 8s ease-in-out infinite;
822
+ }
823
+
824
+ @keyframes ctaGlow {
825
+ 0%, 100% { transform: translate(0, 0); }
826
+ 50% { transform: translate(5%, 5%); }
827
+ }
828
+
829
+ .cta-box h2 {
830
+ font-size: clamp(1.6rem, 3.5vw, 2.2rem);
831
+ font-weight: 800;
832
+ margin-bottom: 14px;
833
+ position: relative;
834
+ }
835
+
836
+ .cta-box p {
837
+ color: var(--text-secondary);
838
+ margin-bottom: 30px;
839
+ font-size: 1rem;
840
+ position: relative;
841
+ }
842
+
843
+ .cta-box .btn {
844
+ position: relative;
845
+ }
846
+
847
+ /* Footer */
848
+ footer {
849
+ border-top: 1px solid var(--border);
850
+ padding: 40px 24px;
851
+ text-align: center;
852
+ }
853
+
854
+ .footer-inner {
855
+ max-width: 1100px;
856
+ margin: 0 auto;
857
+ display: flex;
858
+ align-items: center;
859
+ justify-content: space-between;
860
+ flex-wrap: wrap;
861
+ gap: 16px;
862
+ }
863
+
864
+ .footer-text {
865
+ color: var(--text-muted);
866
+ font-size: 0.82rem;
867
+ }
868
+
869
+ .footer-links {
870
+ display: flex;
871
+ gap: 20px;
872
+ }
873
+
874
+ .footer-links a {
875
+ color: var(--text-secondary);
876
+ font-size: 0.82rem;
877
+ text-decoration: none;
878
+ transition: color 0.2s;
879
+ }
880
+
881
+ .footer-links a:hover {
882
+ color: var(--accent-light);
883
+ }
884
+
885
+ /* Toast */
886
+ .toast {
887
+ position: fixed;
888
+ bottom: 30px;
889
+ left: 50%;
890
+ transform: translateX(-50%) translateY(100px);
891
+ background: var(--bg-card);
892
+ border: 1px solid var(--border-active);
893
+ color: var(--text-primary);
894
+ padding: 12px 24px;
895
+ border-radius: 50px;
896
+ font-size: 0.85rem;
897
+ font-weight: 500;
898
+ z-index: 200;
899
+ display: flex;
900
+ align-items: center;
901
+ gap: 8px;
902
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
903
+ transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
904
+ pointer-events: none;
905
+ }
906
+
907
+ .toast.show {
908
+ transform: translateX(-50%) translateY(0);
909
+ }
910
+
911
+ .toast i {
912
+ color: var(--green);
913
+ }
914
+
915
+ /* Step detail panel */
916
+ .step-detail {
917
+ max-height: 0;
918
+ overflow: hidden;
919
+ transition: max-height 0.4s ease;
920
+ }
921
+
922
+ .step-card.active .step-detail {
923
+ max-height: 300px;
924
+ }
925
+
926
+ .step-detail-inner {
927
+ padding-top: 14px;
928
+ border-top: 1px solid var(--border);
929
+ margin-top: 14px;
930
+ }
931
+
932
+ .step-tags {
933
+ display: flex;
934
+ gap: 8px;
935
+ flex-wrap: wrap;
936
+ margin-top: 10px;
937
+ }
938
+
939
+ .step-tag {
940
+ padding: 3px 10px;
941
+ border-radius: 20px;
942
+ font-size: 0.72rem;
943
+ font-weight: 500;
944
+ background: rgba(108, 92, 231, 0.1);
945
+ color: var(--accent-light);
946
+ border: 1px solid rgba(108, 92, 231, 0.15);
947
+ }
948
+
949
+ /* Responsive */
950
+ @media (max-width: 768px) {
951
+ .steps-timeline::before {
952
+ left: 18px;
953
+ }
954
+
955
+ .step-card {
956
+ grid-template-columns: 36px 1fr;
957
+ gap: 14px;
958
+ padding: 20px;
959
+ }
960
+
961
+ .step-number {
962
+ width: 36px;
963
+ height: 36px;
964
+ font-size: 0.85rem;
965
+ }
966
+
967
+ .hero-terminal {
968
+ margin-top: 30px;
969
+ }
970
+
971
+ .terminal-body {
972
+ font-size: 0.72rem;
973
+ padding: 14px;
974
+ }
975
+
976
+ .footer-inner {
977
+ flex-direction: column;
978
+ text-align: center;
979
+ }
980
+
981
+ .cta-box {
982
+ padding: 40px 24px;
983
+ }
984
+ }
985
+
986
+ @media (max-width: 480px) {
987
+ .hero-actions {
988
+ flex-direction: column;
989
+ align-items: center;
990
+ }
991
+
992
+ .btn {
993
+ width: 100%;
994
+ justify-content: center;
995
+ }
996
+
997
+ .step-code {
998
+ flex-direction: column;
999
+ align-items: flex-start;
1000
+ }
1001
+ }
1002
+
1003
+ /* Smooth reveal */
1004
+ .reveal {
1005
+ opacity: 0;
1006
+ transform: translateY(30px);
1007
+ transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
1008
+ }
1009
+
1010
+ .reveal.visible {
1011
+ opacity: 1;
1012
+ transform: translateY(0);
1013
+ }
1014
+ </style>
1015
+ </head>
1016
+ <body>
1017
+
1018
+ <div class="bg-grid"></div>
1019
+ <div class="bg-orb bg-orb--1"></div>
1020
+ <div class="bg-orb bg-orb--2"></div>
1021
+ <div class="bg-orb bg-orb--3"></div>
1022
+
1023
+ <!-- Header -->
1024
+ <header id="header">
1025
+ <div class="header-inner">
1026
+ <a href="#" class="logo">
1027
+ <div class="logo-icon"><i class="fas fa-rocket"></i></div>
1028
+ QuickStart
1029
+ </a>
1030
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="built-with">Built with anycoder</a>
1031
+ </div>
1032
+ </header>
1033
+
1034
+ <div class="progress-bar-container">
1035
+ <div class="progress-bar" id="progressBar"></div>
1036
+ </div>
1037
+
1038
+ <!-- Hero -->
1039
+ <main>
1040
+ <section class="hero" id="hero">
1041
+ <div class="hero-content">
1042
+ <div class="hero-badge">
1043
+ <span class="pulse-dot"></span>
1044
+ Getting Started Guide
1045
+ </div>
1046
+ <h1>How to Start<br><span class="gradient-text">the App</span></h1>
1047
+ <p>Get your application up and running in minutes. Follow our streamlined guide from installation to your first launch.</p>
1048
+ <div class="hero-actions">
1049
+ <a href="#steps" class="btn btn-primary"><i class="fas fa-play"></i> Get Started</a>
1050
+ <a href="#faq" class="btn btn-secondary"><i class="fas fa-circle-question"></i> FAQ</a>
1051
+ </div>
1052
+ <div class="hero-terminal">
1053
+ <div class="terminal">
1054
+ <div class="terminal-bar">
1055
+ <span class="terminal-dot terminal-dot--red"></span>
1056
+ <span class="terminal-dot terminal-dot--yellow"></span>
1057
+ <span class="terminal-dot terminal-dot--green"></span>
1058
+ <span class="terminal-title">terminal</span>
1059
+ </div>
1060
+ <div class="terminal-body" id="terminalBody">
1061
+ </div>
1062
+ </div>
1063
+ </div>
1064
+ </div>
1065
+ </section>
1066
+
1067
+ <!-- Steps Section -->
1068
+ <section class="section" id="steps">
1069
+ <div class="section-inner">
1070
+ <div class="section-header reveal">
1071
+ <div class="section-label"><i class="fas fa-list-check"></i> Step by Step</div>
1072
+ <h2 class="section-title">Five Simple Steps</h2>
1073
+ <p class="section-desc">Follow these steps to get your application running locally. Click each step to expand details.</p>
1074
+ </div>
1075
+
1076
+ <div class="steps-timeline" id="stepsTimeline">
1077
+
1078
+ <div class="step-card" data-step="1">
1079
+ <div class="step-number">1</div>
1080
+ <div class="step-content">
1081
+ <h3>Clone the Repository</h3>
1082
+ <p>Start by cloning the project repository to your local machine using Git.</p>
1083
+ <div class="step-code">
1084
+ <code>git clone https://github.com/your-org/your-app.git</code>
1085
+ <button class="copy-btn" onclick="copyCode(this, 'git clone https://github.com/your-org/your-app.git')"><i class="fas fa-copy"></i> Copy</button>
1086
+ </div>
1087
+ <div class="step-detail">
1088
+ <div class="step-detail-inner">
1089
+ <p style="color: var(--text-secondary); font-size: 0.88rem;">Make sure you have Git installed. If not, download it from <span style="color: var(--accent-light);">git-scm.com</span>. You can also download the ZIP directly from the repository page if you prefer.</p>
1090
+ <div class="step-tags">
1091
+ <span class="step-tag">git</span>
1092
+ <span class="step-tag">repository</span>
1093
+ <span class="step-tag">clone</span>
1094
+ </div>
1095
+ </div>
1096
+ </div>
1097
+ </div>
1098
+ </div>
1099
+
1100
+ <div class="step-card" data-step="2">
1101
+ <div class="step-number">2</div>
1102
+ <div class="step-content">
1103
+ <h3>Navigate to Project Directory</h3>
1104
+ <p>Enter the project folder to access all the source files and configuration.</p>
1105
+ <div class="step-code">
1106
+ <code>cd your-app</code>
1107
+ <button class="copy-btn" onclick="copyCode(this, 'cd your-app')"><i class="fas fa-copy"></i> Copy</button>
1108
+ </div>
1109
+ <div class="step-detail">
1110
+ <div class="step-detail-inner">
1111
+ <p style="color: var(--text-secondary); font-size: 0.88rem;">Ensure you're in the root directory of the project. This is where you'll find configuration files like <code style="color: var(--green);">package.json</code>, <code style="color: var(--green);">.env.example</code>, and more.</p>
1112
+ <div class="step-tags">
1113
+ <span class="step-tag">navigation</span>
1114
+ <span class="step-tag">directory</span>
1115
+ </div>
1116
+ </div>
1117
+ </div>
1118
+ </div>
1119
+ </div>
1120
+
1121
+ <div class="step-card" data-step="3">
1122
+ <div class="step-number">3</div>
1123
+ <div class="step-content">
1124
+ <h3>Install Dependencies</h3>
1125
+ <p>Install all required packages and libraries the application needs to run.</p>
1126
+ <div class="step-code">
1127
+ <code>npm install</code>
1128
+ <button class="copy-btn" onclick="copyCode(this, 'npm install')"><i class="fas fa-copy"></i> Copy</button>
1129
+ </div>
1130
+ <div class="step-detail">
1131
+ <div class="step-detail-inner">
1132
+ <p style="color: var(--text-secondary); font-size: 0.88rem;">This reads the <code style="color: var(--green);">package.json</code> file and installs all dependencies into a <code style="color: var(--green);">node_modules</code> folder. If you prefer Yarn, run <code style="color: var(--green);">yarn install</code> instead.</p>
1133
+ <div class="step-tags">
1134
+ <span class="step-tag">npm</span>
1135
+ <span class="step-tag">dependencies</span>
1136
+ <span class="step-tag">yarn</span>
1137
+ </div>
1138
+ </div>
1139
+ </div>
1140
+ </div>
1141
+ </div>
1142
+
1143
+ <div class="step-card" data-step="4">
1144
+ <div class="step-number">4</div>
1145
+ <div class="step-content">
1146
+ <h3>Configure Environment Variables</h3>
1147
+ <p>Set up your local environment by copying the example env file and filling in your values.</p>
1148
+ <div class="step-code">
1149
+ <code>cp .env.example .env</code>
1150
+ <button class="copy-btn" onclick="copyCode(this, 'cp .env.example .env')"><i class="fas fa-copy"></i> Copy</button>
1151
+ </div>
1152
+ <div class="step-detail">
1153
+ <div class="step-detail-inner">
1154
+ <p style="color: var(--text-secondary); font-size: 0.88rem;">Open the newly created <code style="color: var(--green);">.env</code> file and update the values with your local configuration — database URLs, API keys, port numbers, etc. Never commit your <code style="color: var(--pink);">.env</code> file to version control!</p>
1155
+ <div class="step-tags">
1156
+ <span class="step-tag">environment</span>
1157
+ <span class="step-tag">configuration</span>
1158
+ <span class="step-tag">security</span>
1159
+ </div>
1160
+ </div>
1161
+ </div>
1162
+ </div>
1163
+ </div>
1164
+
1165
+ <div class="step-card" data-step="5">
1166
+ <div class="step-number">5</div>
1167
+ <div class="step-content">
1168
+ <h3>Start the Development Server</h3>
1169
+ <p>Launch the app in development mode with hot-reload enabled for a smooth workflow.</p>
1170
+ <div class="step-code">
1171
+ <code>npm run dev</code>
1172
+ <button class="copy-btn" onclick="copyCode(this, 'npm run dev')"><i class="fas fa-copy"></i> Copy</button>
1173
+ </div>
1174
+ <div class="step-detail">
1175
+ <div class="step-detail-inner">
1176
+ <p style="color: var(--text-secondary); font-size: 0.88rem;">Your app should now be running at <code style="color: var(--green);">http://localhost:3000</code> (or the port specified in your .env). Hot module replacement is enabled, so changes will reflect instantly in the browser.</p>
1177
+ <div class="step-tags">
1178
+ <span class="step-tag">dev server</span>
1179
+ <span class="step-tag">hot-reload</span>
1180
+ <span class="step-tag">localhost</span>
1181
+ </div>
1182
+ </div>
1183
+ </div>
1184
+ </div>
1185
+ </div>
1186
+
1187
+ </div>
1188
+ </div>
1189
+ </section>
1190
+
1191
+ <!-- Features Section -->
1192
+ <section class="section" id="features">
1193
+ <div class="section-inner">
1194
+ <div class="section-header reveal">
1195
+ <div class="section-label"><i class="fas fa-sparkles"></i> Why This Stack</div>
1196
+ <h2 class="section-title">Built for Developer Experience</h2>
1197
+ <p class="section-desc">Everything you need for a fast, productive development workflow.</p>
1198
+ </div>
1199
+
1200
+ <div class="features-grid">
1201
+ <div class="feature-card">
1202
+ <div class="feature-icon"><i class="fas fa-bolt"></i></div>
1203
+ <h3>Instant Hot Reload</h3>
1204
+ <p>See your changes reflected in real-time without manually refreshing the page or restarting the server.</p>
1205
+ </div>
1206
+ <div class="feature-card">
1207
+ <div class="feature-icon"><i class="fas fa-shield-halved"></i></div>
1208
+ <h3>Secure by Default</h3>
1209
+ <p>Environment variables, CORS settings, and security headers are pre-configured out of the box.</p>
1210
+ </div>
1211
+ <div class="feature-card">
1212
+ <div class="feature-icon"><i class="fas fa-puzzle-piece"></i></div>
1213
+ <h3>Modular Architecture</h3>
1214
+ <p>Clean separation of concerns with scalable folder structure that grows with your project.</p>
1215
+ </div>
1216
+ <div class="feature-card">
1217
+ <div class="feature-icon"><i class="fas fa-gauge-high"></i></div>
1218
+ <h3>Optimized Builds</h3>
1219
+ <p>Production-ready bundling with tree-shaking, code splitting, and minification built in.</p>
1220
+ </div>
1221
+ <div class="feature-card">
1222
+ <div class="feature-icon"><i class="fas fa-vial"></i></div>
1223
+ <h3>Testing Ready</h3>
1224
+ <p>Unit and integration testing frameworks pre-installed and configured for rapid TDD workflows.</p>
1225
+ </div>
1226
+ <div class="feature-card">
1227
+ <div class="feature-icon"><i class="fas fa-cloud-arrow-up"></i></div>
1228
+ <h3>Deploy Anywhere</h3>
1229
+ <p>One-command deployment to Vercel, Netlify, AWS, Docker, or any cloud provider you prefer.</p>
1230
+ </div>
1231
+ </div>
1232
+ </div>
1233
+ </section>
1234
+
1235
+ <!-- FAQ Section -->
1236
+ <section class="section" id="faq">
1237
+ <div class="section-inner">
1238
+ <div class="section-header reveal">
1239
+ <div class="section-label"><i class="fas fa-circle-question"></i> FAQ</div>
1240
+ <h2 class="section-title">Common Questions</h2>
1241
+ <p class="section-desc">Quick answers to the most frequently asked questions about starting the app.</p>
1242
+ </div>
1243
+
1244
+ <div class="faq-list">
1245
+ <div class="faq-item">
1246
+ <button class="faq-question" onclick="toggleFaq(this)">
1247
+ What are the system requirements?
1248
+ <span class="faq-icon"><i class="fas fa-plus"></i></span>
1249
+ </button>
1250
+ <div class="faq-answer">
1251
+ <div class="faq-answer-inner">
1252
+ You'll need <strong>Node.js 18+</strong> and <strong>npm 9+</strong> (or Yarn/Pnpm). Git is recommended for version control. The app runs on macOS, Windows, and Linux. We recommend at least 4GB of RAM for smooth development.
1253
+ </div>
1254
+ </div>
1255
+ </div>
1256
+
1257
+ <div class="faq-item">
1258
+ <button class="faq-question" onclick="toggleFaq(this)">
1259
+ Can I use Docker instead?
1260
+ <span class="faq-icon"><i class="fas fa-plus"></i></span>
1261
+ </button>
1262
+ <div class="faq-answer">
1263
+ <div class="faq-answer-inner">
1264
+ Absolutely! A <code>Dockerfile</code> and <code>docker-compose.yml</code> are included in the repository. Simply run <code>docker-compose up</code> to start the app with all its services containerized.
1265
+ </div>
1266
+ </div>
1267
+ </div>