YoonJ-C commited on
Commit
e9cd749
Β·
1 Parent(s): 20dab02

Update spiritual path assessment with improved UI and design tokens

Browse files
app.py CHANGED
@@ -224,7 +224,7 @@ def assessment():
224
  return render_template(
225
  "index.html",
226
  title="Spiritual Path Finder",
227
- message=f"Welcome, {session['username']}! 🌟",
228
  username=session['username'],
229
  logged_in=True,
230
  questions=QUESTIONS,
 
224
  return render_template(
225
  "index.html",
226
  title="Spiritual Path Finder",
227
+ message=f"Welcome, {session['username']}!",
228
  username=session['username'],
229
  logged_in=True,
230
  questions=QUESTIONS,
static/design-tokens.css ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ /* 🎨 Primary Colors */
3
+ --primary-dark: #3D3D3D;
4
+ --primary-black: #1A1A1A;
5
+ --primary-light: #6B7280;
6
+
7
+ /* Neutral Colors */
8
+ --bg-gray: #F5F5F5;
9
+ --bg-white: #FFFFFF;
10
+ --bg-surface-alt: #FAFAFA;
11
+ --border-divider: #E9ECEF;
12
+
13
+ /* Semantic Colors */
14
+ --success: #10B981;
15
+ --warning: #F59E0B;
16
+ --error: #EF4444;
17
+ --info: #6366F1;
18
+
19
+ /* Result Ranking Colors */
20
+ --rank-1: #FEF3C7;
21
+ --rank-2: #DBEAFE;
22
+ --rank-3: #D1FAE5;
23
+
24
+
25
+ /* Text Colors */
26
+ --text-primary: #3D3D3D;
27
+ --text-secondary: #6B7280;
28
+ --text-tertiary: #9CA3AF;
29
+ --text-inverse: #FFFFFF;
30
+
31
+ /* πŸ“ Typography */
32
+ --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
33
+
34
+ --font-size-xs: 0.8125rem; /* 13px */
35
+ --font-size-sm: 0.875rem; /* 14px */
36
+ --font-size-base: 1rem; /* 16px */
37
+ --font-size-lg: 1.125rem; /* 18px */
38
+ --font-size-xl: 1.25rem; /* 20px */
39
+ --font-size-2xl: 1.375rem; /* 22px */
40
+ --font-size-3xl: 1.5rem; /* 24px */
41
+ --font-size-4xl: 1.75rem; /* 28px */
42
+
43
+ --font-weight-regular: 400;
44
+ --font-weight-medium: 600;
45
+ --font-weight-bold: 700;
46
+ --font-weight-extrabold: 800;
47
+
48
+ /* πŸ“ Spacing System (4px base unit) */
49
+ --space-xs: 0.5rem; /* 8px */
50
+ --space-sm: 0.75rem; /* 12px */
51
+ --space-md: 1rem; /* 16px */
52
+ --space-lg: 1.25rem; /* 20px */
53
+ --space-xl: 1.5rem; /* 24px */
54
+ --space-2xl: 2rem; /* 32px */
55
+ --space-3xl: 2.5rem; /* 40px */
56
+
57
+ /* πŸ”² Border Radius */
58
+ --radius-sm: 8px;
59
+ --radius-md: 10px;
60
+ --radius-lg: 12px;
61
+ --radius-xl: 16px;
62
+ --radius-full: 50%;
63
+
64
+ /* 🎭 Shadows */
65
+ --shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.04);
66
+ --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.06);
67
+ --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.08);
68
+ --shadow-xl: 0 4px 20px rgba(0, 0, 0, 0.08);
69
+
70
+ /* πŸ”„ Transitions */
71
+ --transition-fast: 0.2s;
72
+ --transition-base: 0.3s;
73
+ --transition-slow: 0.4s;
74
+
75
+ /* πŸ“± Breakpoints */
76
+ --breakpoint-mobile: 768px;
77
+ }
static/landing.css CHANGED
@@ -1,455 +1,437 @@
 
 
1
  * {
2
  margin: 0;
3
  padding: 0;
4
  box-sizing: border-box;
5
  }
6
 
7
- :root {
8
- --primary: #6366f1;
9
- --primary-dark: #4f46e5;
10
- --secondary: #8b5cf6;
11
- --accent: #ec4899;
12
- --text-dark: #1e293b;
13
- --text-light: #64748b;
14
- --bg-white: #ffffff;
15
- --bg-light: #f8fafc;
16
- }
17
-
18
- body {
19
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
20
- line-height: 1.6;
21
- color: var(--text-dark);
22
- background: var(--bg-white);
23
- overflow-x: hidden;
24
- }
25
-
26
- /* Animated Gradient Background */
27
- .gradient-bg {
28
- position: fixed;
29
- top: 0;
30
- left: 0;
31
- width: 100%;
32
- height: 100vh;
33
- background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
34
- opacity: 0.05;
35
- z-index: -1;
36
- animation: gradientShift 15s ease infinite;
37
- }
38
-
39
- @keyframes gradientShift {
40
- 0%, 100% { transform: scale(1) rotate(0deg); }
41
- 50% { transform: scale(1.1) rotate(5deg); }
42
- }
43
-
44
- /* Navigation */
45
- .navbar {
46
- position: fixed;
47
- top: 0;
48
- left: 0;
49
- right: 0;
50
- background: rgba(255, 255, 255, 0.8);
51
- backdrop-filter: blur(10px);
52
- border-bottom: 1px solid rgba(0, 0, 0, 0.05);
53
- z-index: 1000;
54
- padding: 1rem 0;
55
- }
56
-
57
- .nav-container {
58
- max-width: 1200px;
59
- margin: 0 auto;
60
- padding: 0 2rem;
61
- display: flex;
62
- justify-content: space-between;
63
- align-items: center;
64
- }
65
-
66
- .logo {
67
- font-size: 1.25rem;
68
- font-weight: 700;
69
- color: var(--text-dark);
70
- }
71
-
72
- .nav-cta {
73
- padding: 0.625rem 1.5rem;
74
- background: var(--primary);
75
- color: white;
76
- text-decoration: none;
77
- border-radius: 8px;
78
- font-weight: 600;
79
- font-size: 0.9rem;
80
- transition: all 0.3s ease;
81
- }
82
-
83
- .nav-cta:hover {
84
- background: var(--primary-dark);
85
- transform: translateY(-2px);
86
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
87
- }
88
-
89
- /* Main Content */
90
- .main-content {
91
- padding-top: 80px;
92
- }
93
-
94
- /* Hero Section */
95
- .hero-section {
96
- padding: 6rem 2rem 4rem;
97
- text-align: center;
98
- position: relative;
99
- }
100
-
101
- .hero-container {
102
- max-width: 1000px;
103
- margin: 0 auto;
104
- }
105
-
106
- .badge {
107
- display: inline-block;
108
- padding: 0.5rem 1rem;
109
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1));
110
- border: 1px solid rgba(99, 102, 241, 0.2);
111
- border-radius: 50px;
112
- font-size: 0.875rem;
113
- font-weight: 600;
114
- color: var(--primary);
115
- margin-bottom: 2rem;
116
- animation: fadeInUp 0.6s ease;
117
- }
118
-
119
- .hero-title {
120
- font-size: 4.5rem;
121
- font-weight: 800;
122
- line-height: 1.1;
123
- margin-bottom: 1.5rem;
124
- color: var(--text-dark);
125
- animation: fadeInUp 0.6s ease 0.1s both;
126
- }
127
-
128
- .gradient-text {
129
- background: linear-gradient(135deg, var(--primary), var(--secondary), var(--accent));
130
- -webkit-background-clip: text;
131
- -webkit-text-fill-color: transparent;
132
- background-clip: text;
133
- }
134
-
135
- .hero-subtitle {
136
- font-size: 1.25rem;
137
- color: var(--text-light);
138
- max-width: 700px;
139
- margin: 0 auto 3rem;
140
- line-height: 1.8;
141
- animation: fadeInUp 0.6s ease 0.2s both;
142
- }
143
-
144
- .cta-buttons {
145
- animation: fadeInUp 0.6s ease 0.3s both;
146
- }
147
-
148
- .btn-primary, .btn-secondary {
149
- display: inline-flex;
150
- align-items: center;
151
- gap: 0.5rem;
152
- padding: 1rem 2.5rem;
153
- font-size: 1.125rem;
154
- font-weight: 600;
155
- text-decoration: none;
156
- border-radius: 12px;
157
- transition: all 0.3s ease;
158
- cursor: pointer;
159
- }
160
-
161
- .btn-primary {
162
- background: linear-gradient(135deg, var(--primary), var(--secondary));
163
- color: white;
164
- box-shadow: 0 10px 30px rgba(99, 102, 241, 0.3);
165
- }
166
-
167
- .btn-primary:hover {
168
- transform: translateY(-3px);
169
- box-shadow: 0 15px 40px rgba(99, 102, 241, 0.4);
170
- }
171
-
172
- .btn-primary .arrow {
173
- transition: transform 0.3s ease;
174
- }
175
-
176
- .btn-primary:hover .arrow {
177
- transform: translateX(5px);
178
- }
179
-
180
- .assessment-meta {
181
- display: flex;
182
- justify-content: center;
183
- gap: 2rem;
184
- margin-top: 2rem;
185
- font-size: 0.9rem;
186
- color: var(--text-light);
187
- }
188
-
189
- /* Hero Visual */
190
- .hero-visual {
191
- position: relative;
192
- height: 400px;
193
- margin-top: 5rem;
194
- max-width: 900px;
195
- margin-left: auto;
196
- margin-right: auto;
197
- }
198
-
199
- .floating-card {
200
- position: absolute;
201
- background: white;
202
- padding: 1.25rem 1.75rem;
203
- border-radius: 16px;
204
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
205
- display: flex;
206
- align-items: center;
207
- gap: 0.75rem;
208
- animation: float 6s ease-in-out infinite;
209
- white-space: nowrap;
210
- }
211
-
212
- .floating-card .card-icon {
213
- font-size: 1.75rem;
214
- flex-shrink: 0;
215
- }
216
-
217
- .floating-card .card-text {
218
- font-weight: 600;
219
- color: var(--text-dark);
220
- font-size: 0.95rem;
221
- }
222
-
223
- .card-1 {
224
- left: 5%;
225
- top: 10%;
226
- animation-delay: 0s;
227
- }
228
-
229
- .card-2 {
230
- right: 5%;
231
- top: 50%;
232
- animation-delay: 2s;
233
- }
234
-
235
- .card-3 {
236
- left: 50%;
237
- transform: translateX(-50%);
238
- bottom: 10%;
239
- animation-delay: 4s;
240
- }
241
-
242
- @keyframes float {
243
- 0%, 100% {
244
- transform: translateY(0px);
245
- }
246
- 50% {
247
- transform: translateY(-20px);
248
  }
249
- }
250
-
251
- /* Fix for card-3 animation to maintain centering */
252
- .card-3 {
253
- animation: floatCenter 6s ease-in-out infinite;
254
- }
255
-
256
- @keyframes floatCenter {
257
- 0%, 100% {
258
- transform: translate(-50%, 0px);
 
 
259
  }
260
- 50% {
261
- transform: translate(-50%, -20px);
 
 
262
  }
263
- }
264
-
265
- @keyframes fadeInUp {
266
- from {
267
- opacity: 0;
268
- transform: translateY(30px);
 
 
 
 
 
 
269
  }
270
- to {
271
- opacity: 1;
272
- transform: translateY(0);
 
 
 
 
 
273
  }
274
- }
275
-
276
- /* Features Section */
277
- .features-section {
278
- padding: 6rem 2rem;
279
- background: var(--bg-light);
280
- }
281
-
282
- .section-container {
283
- max-width: 1200px;
284
- margin: 0 auto;
285
- }
286
-
287
- .section-header {
288
- text-align: center;
289
- margin-bottom: 4rem;
290
- }
291
-
292
- .section-header h2 {
293
- font-size: 3rem;
294
- font-weight: 800;
295
- color: var(--text-dark);
296
- margin-bottom: 1rem;
297
- }
298
-
299
- .section-header p {
300
- font-size: 1.25rem;
301
- color: var(--text-light);
302
- }
303
-
304
- .features-grid {
305
- display: grid;
306
- grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
307
- gap: 2rem;
308
- }
309
-
310
- .feature-card {
311
- background: white;
312
- padding: 2.5rem;
313
- border-radius: 20px;
314
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
315
- transition: all 0.3s ease;
316
- }
317
-
318
- .feature-card:hover {
319
- transform: translateY(-8px);
320
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
321
- }
322
-
323
- .feature-icon-wrapper {
324
- width: 80px;
325
- height: 80px;
326
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1));
327
- border-radius: 20px;
328
- display: flex;
329
- align-items: center;
330
- justify-content: center;
331
- margin-bottom: 1.5rem;
332
- }
333
-
334
- .feature-icon {
335
- font-size: 2.5rem;
336
- }
337
-
338
- .feature-card h3 {
339
- font-size: 1.5rem;
340
- font-weight: 700;
341
- color: var(--text-dark);
342
- margin-bottom: 1rem;
343
- }
344
-
345
- .feature-card p {
346
- color: var(--text-light);
347
- line-height: 1.8;
348
- }
349
-
350
- /* CTA Section */
351
- .cta-section {
352
- padding: 6rem 2rem;
353
- text-align: center;
354
- background: linear-gradient(135deg, var(--primary), var(--secondary));
355
- color: white;
356
- }
357
-
358
- .cta-container h2 {
359
- font-size: 3rem;
360
- font-weight: 800;
361
- margin-bottom: 1rem;
362
- }
363
-
364
- .cta-container p {
365
- font-size: 1.25rem;
366
- margin-bottom: 2.5rem;
367
- opacity: 0.9;
368
- }
369
-
370
- .btn-secondary {
371
- background: white;
372
- color: var(--primary);
373
- }
374
-
375
- .btn-secondary:hover {
376
- transform: translateY(-3px);
377
- box-shadow: 0 15px 40px rgba(255, 255, 255, 0.3);
378
- }
379
-
380
- /* Footer */
381
- .footer {
382
- background: var(--text-dark);
383
- color: white;
384
- padding: 3rem 2rem;
385
- text-align: center;
386
- }
387
-
388
- .footer-container {
389
- max-width: 1200px;
390
- margin: 0 auto;
391
- }
392
-
393
- .footer p {
394
- opacity: 0.7;
395
- }
396
-
397
- /* Responsive Design */
398
- @media (max-width: 1024px) {
399
- .hero-visual {
400
- height: 300px;
401
  }
402
 
403
- .floating-card {
404
- padding: 1rem 1.5rem;
405
- font-size: 0.85rem;
 
 
 
 
 
 
406
  }
407
 
408
- .floating-card .card-icon {
409
- font-size: 1.5rem;
 
 
410
  }
411
- }
412
-
413
- @media (max-width: 768px) {
414
- .nav-container {
415
- padding: 0 1rem;
416
  }
417
 
 
418
  .hero-section {
419
- padding: 4rem 1rem 3rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  }
421
 
422
  .hero-title {
423
- font-size: 2.5rem;
 
 
 
 
 
 
 
 
 
 
 
 
424
  }
425
 
426
  .hero-subtitle {
427
- font-size: 1.1rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  }
429
 
430
  .assessment-meta {
431
- flex-direction: column;
432
- gap: 0.5rem;
 
 
 
 
433
  }
434
 
 
435
  .hero-visual {
436
- display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
  }
438
 
439
  .section-header h2 {
440
- font-size: 2rem;
 
 
 
441
  }
442
 
443
- .cta-container h2 {
444
- font-size: 2rem;
 
445
  }
446
 
447
  .features-grid {
448
- grid-template-columns: 1fr;
 
 
449
  }
450
 
451
- .btn-primary, .btn-secondary {
452
- padding: 0.875rem 2rem;
453
- font-size: 1rem;
 
 
 
454
  }
455
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('design-tokens.css');
2
+
3
  * {
4
  margin: 0;
5
  padding: 0;
6
  box-sizing: border-box;
7
  }
8
 
9
+ body {
10
+ font-family: var(--font-family);
11
+ line-height: 1.6;
12
+ color: var(--text-primary);
13
+ background: var(--bg-white);
14
+ overflow-x: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  }
16
+
17
+ /* Animated Gradient Background */
18
+ .gradient-bg {
19
+ position: fixed;
20
+ top: 0;
21
+ left: 0;
22
+ width: 100%;
23
+ height: 100vh;
24
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
25
+ opacity: 0.05;
26
+ z-index: -1;
27
+ animation: gradientShift 15s ease infinite;
28
  }
29
+
30
+ @keyframes gradientShift {
31
+ 0%, 100% { transform: scale(1) rotate(0deg); }
32
+ 50% { transform: scale(1.1) rotate(5deg); }
33
  }
34
+
35
+ /* Navigation */
36
+ .navbar {
37
+ position: fixed;
38
+ top: 0;
39
+ left: 0;
40
+ right: 0;
41
+ background: rgba(255, 255, 255, 0.8);
42
+ backdrop-filter: blur(10px);
43
+ border-bottom: 1px solid var(--border-divider);
44
+ z-index: 1000;
45
+ padding: var(--space-md) 0;
46
  }
47
+
48
+ .nav-container {
49
+ max-width: 1200px;
50
+ margin: 0 auto;
51
+ padding: 0 var(--space-2xl);
52
+ display: flex;
53
+ justify-content: space-between;
54
+ align-items: center;
55
  }
56
+
57
+ .logo {
58
+ font-size: var(--font-size-xl);
59
+ font-weight: var(--font-weight-bold);
60
+ color: var(--text-primary);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  }
62
 
63
+ .nav-cta {
64
+ padding: var(--space-sm) var(--space-xl);
65
+ background: var(--info);
66
+ color: var(--text-inverse);
67
+ text-decoration: none;
68
+ border-radius: var(--radius-sm);
69
+ font-weight: var(--font-weight-medium);
70
+ font-size: var(--font-size-sm);
71
+ transition: all var(--transition-base);
72
  }
73
 
74
+ .nav-cta:hover {
75
+ background: var(--primary-dark);
76
+ transform: translateY(-2px);
77
+ box-shadow: var(--shadow-lg);
78
  }
79
+
80
+ /* Main Content */
81
+ .main-content {
82
+ padding-top: 80px;
 
83
  }
84
 
85
+ /* Hero Section */
86
  .hero-section {
87
+ padding: var(--space-3xl) var(--space-2xl) var(--space-2xl);
88
+ text-align: center;
89
+ position: relative;
90
+ }
91
+
92
+ .hero-container {
93
+ max-width: 1000px;
94
+ margin: 0 auto;
95
+ }
96
+
97
+ .badge {
98
+ display: inline-block;
99
+ padding: var(--space-xs) var(--space-md);
100
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1));
101
+ /* border: 1px solid rgba(99, 102, 241, 0.2); */
102
+ border-radius: var(--radius-lg);
103
+ font-size: var(--font-size-sm);
104
+ font-weight: var(--font-weight-medium);
105
+ color: var(--info);
106
+ margin-bottom: var(--space-2xl);
107
+ animation: fadeInUp 0.6s ease;
108
  }
109
 
110
  .hero-title {
111
+ font-size: 4.5rem;
112
+ font-weight: var(--font-weight-extrabold);
113
+ line-height: 1.1;
114
+ margin-bottom: var(--space-xl);
115
+ color: var(--text-primary);
116
+ animation: fadeInUp 0.6s ease 0.1s both;
117
+ }
118
+
119
+ .gradient-text {
120
+ background: linear-gradient(135deg, var(--info), var(--success));
121
+ -webkit-background-clip: text;
122
+ -webkit-text-fill-color: transparent;
123
+ background-clip: text;
124
  }
125
 
126
  .hero-subtitle {
127
+ font-size: var(--font-size-xl);
128
+ color: var(--text-secondary);
129
+ max-width: 700px;
130
+ margin: 0 auto var(--space-3xl);
131
+ line-height: 1.8;
132
+ animation: fadeInUp 0.6s ease 0.2s both;
133
+ }
134
+
135
+ .cta-buttons {
136
+ animation: fadeInUp 0.6s ease 0.3s both;
137
+ }
138
+
139
+ .btn-primary, .btn-secondary {
140
+ display: inline-flex;
141
+ align-items: center;
142
+ gap: var(--space-sm);
143
+ padding: var(--space-md) var(--space-3xl);
144
+ font-size: var(--font-size-lg);
145
+ font-weight: var(--font-weight-medium);
146
+ text-decoration: none;
147
+ border-radius: var(--radius-md);
148
+ transition: all var(--transition-base);
149
+ cursor: pointer;
150
+ }
151
+
152
+ .btn-primary {
153
+ background: linear-gradient(135deg, var(--info), var(--success));
154
+ color: var(--text-inverse);
155
+ box-shadow: var(--shadow-xl);
156
+ }
157
+
158
+ .btn-primary:hover {
159
+ transform: translateY(-3px);
160
+ box-shadow: var(--shadow-xl);
161
+ }
162
+
163
+ .btn-primary .arrow {
164
+ transition: transform var(--transition-base);
165
+ }
166
+
167
+ .btn-primary:hover .arrow {
168
+ transform: translateX(5px);
169
  }
170
 
171
  .assessment-meta {
172
+ display: flex;
173
+ justify-content: center;
174
+ gap: var(--space-2xl);
175
+ margin-top: var(--space-2xl);
176
+ font-size: var(--font-size-sm);
177
+ color: var(--text-secondary);
178
  }
179
 
180
+ /* Hero Visual */
181
  .hero-visual {
182
+ position: relative;
183
+ height: 400px;
184
+ margin-top: var(--space-3xl);
185
+ max-width: 900px;
186
+ margin-left: auto;
187
+ margin-right: auto;
188
+ }
189
+
190
+ .floating-card {
191
+ position: absolute;
192
+ background: var(--bg-white);
193
+ padding: var(--space-xl) var(--space-lg);
194
+ border-radius: var(--radius-xl);
195
+ box-shadow: var(--shadow-xl);
196
+ display: flex;
197
+ align-items: center;
198
+ gap: var(--space-md);
199
+ animation: float 6s ease-in-out infinite;
200
+ white-space: nowrap;
201
+ }
202
+
203
+ .floating-card .card-icon {
204
+ font-size: 1.75rem;
205
+ flex-shrink: 0;
206
+ }
207
+
208
+ .floating-card .card-text {
209
+ font-weight: var(--font-weight-medium);
210
+ color: var(--text-primary);
211
+ font-size: var(--font-size-sm);
212
+ }
213
+
214
+ .card-1 {
215
+ left: 5%;
216
+ top: 10%;
217
+ animation-delay: 0s;
218
+ }
219
+
220
+ .card-2 {
221
+ right: 5%;
222
+ top: 50%;
223
+ animation-delay: 2s;
224
+ }
225
+
226
+ .card-3 {
227
+ left: 50%;
228
+ transform: translateX(-50%);
229
+ bottom: 10%;
230
+ animation-delay: 4s;
231
+ }
232
+
233
+ @keyframes float {
234
+ 0%, 100% { transform: translateY(0px); }
235
+ 50% { transform: translateY(-20px); }
236
+ }
237
+
238
+ .card-3 {
239
+ animation: floatCenter 6s ease-in-out infinite;
240
+ }
241
+
242
+ @keyframes floatCenter {
243
+ 0%, 100% { transform: translate(-50%, 0px); }
244
+ 滚动 { transform: translate(-50%, -20px); }
245
+ }
246
+
247
+ @keyframes fadeInUp {
248
+ from {
249
+ opacity: 0;
250
+ transform: translateY(30px);
251
+ }
252
+ to {
253
+ opacity: 1;
254
+ transform: translateY(0);
255
+ }
256
+ }
257
+
258
+ /* Features Section */
259
+ .features-section {
260
+ padding: var(--space-3xl) var(--space-2xl);
261
+ background: var(--bg-gray);
262
+ }
263
+
264
+ .section-container {
265
+ max-width: 1200px;
266
+ margin: 0 auto;
267
+ }
268
+
269
+ .section-header {
270
+ text-align: center;
271
+ margin-bottom: var(--space-2xl);
272
  }
273
 
274
  .section-header h2 {
275
+ font-size: var(--font-size-4xl);
276
+ font-weight: var(--font-weight-extrabold);
277
+ color: var(--text-primary);
278
+ margin-bottom: var(--space-md);
279
  }
280
 
281
+ .section-header p {
282
+ font-size: var(--font-size-xl);
283
+ color: var(--text-secondary);
284
  }
285
 
286
  .features-grid {
287
+ display: grid;
288
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
289
+ gap: var(--space-2xl);
290
  }
291
 
292
+ .feature-card {
293
+ background: var(--bg-white);
294
+ padding: var(--space-3xl);
295
+ border-radius: var(--radius-lg);
296
+ box-shadow: var(--shadow-md);
297
+ transition: all var(--transition-base);
298
  }
299
+
300
+ .feature-card:hover {
301
+ transform: translateY(-8px);
302
+ box-shadow: var(--shadow-xl);
303
+ }
304
+
305
+ .feature-icon-wrapper {
306
+ width: 80px;
307
+ height: 80px;
308
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1));
309
+ border-radius: var(--radius-lg);
310
+ display: flex;
311
+ align-items: center;
312
+ justify-content: center;
313
+ margin-bottom: var(--space-xl);
314
+ }
315
+
316
+ .feature-icon {
317
+ font-size: 2.5rem;
318
+ }
319
+
320
+ .feature-card h3 {
321
+ font-size: var(--font-size-2xl);
322
+ font-weight: var(--font-weight-bold);
323
+ color: var(--text-primary);
324
+ margin-bottom: var(--space-md);
325
+ }
326
+
327
+ .feature-card p {
328
+ color: var(--text-secondary);
329
+ line-height: 1.8;
330
+ }
331
+
332
+ /* CTA Section */
333
+ .cta-section {
334
+ padding: var(--space-3xl) var(--space-2xl);
335
+ text-align: center;
336
+ background: linear-gradient(135deg, var(--info), var(--success));
337
+ color: var(--text-inverse);
338
+ }
339
+
340
+ .cta-container h2 {
341
+ font-size: var(--font-size-4xl);
342
+ font-weight: var(--font-weight-extrabold);
343
+ margin-bottom: var(--space-md);
344
+ }
345
+
346
+ .cta-container p {
347
+ font-size: var(--font-size-xl);
348
+ margin-bottom: var(--space-3xl);
349
+ opacity: 0.9;
350
+ }
351
+
352
+ .btn-secondary {
353
+ background: var(--bg-white);
354
+ color: var(--info);
355
+ }
356
+
357
+ .btn-secondary:hover {
358
+ transform: translateY(-3px);
359
+ box-shadow: var(--shadow-xl);
360
+ }
361
+
362
+ /* Footer */
363
+ .footer {
364
+ background: var(--primary-black);
365
+ color: var(--text-inverse);
366
+ padding: var(--space-3xl) var(--space-2xl);
367
+ text-align: center;
368
+ }
369
+
370
+ .footer-container {
371
+ max-width: 1200px;
372
+ margin: 0 auto;
373
+ }
374
+
375
+ .footer p {
376
+ opacity: 0.7;
377
+ }
378
+
379
+ /* Responsive Design */
380
+ @media (max-width: 1024px) {
381
+ .hero-visual {
382
+ height: 300px;
383
+ }
384
+
385
+ .floating-card {
386
+ padding: var(--space-md) var(--space-xl);
387
+ font-size: var(--font-size-sm);
388
+ }
389
+
390
+ .floating-card .card-icon {
391
+ font-size: 1.5rem;
392
+ }
393
+ }
394
+
395
+ @media (max-width: 768px) {
396
+ .nav-container {
397
+ padding: 0 var(--space-md);
398
+ }
399
+
400
+ .hero-section {
401
+ padding: var(--space-2xl) var(--space-md) var(--space-3xl);
402
+ }
403
+
404
+ .hero-title {
405
+ font-size: 2.5rem;
406
+ }
407
+
408
+ .hero-subtitle {
409
+ font-size: var(--font-size-lg);
410
+ }
411
+
412
+ .assessment-meta {
413
+ flex-direction: column;
414
+ gap: var(--space-sm);
415
+ }
416
+
417
+ .hero-visual {
418
+ display: none;
419
+ }
420
+
421
+ .section-header h2 {
422
+ font-size: var(--font-size-2xl);
423
+ }
424
+
425
+ .cta-container h2 {
426
+ font-size: var(--font-size-2xl);
427
+ }
428
+
429
+ .features-grid {
430
+ grid-template-columns: 1fr;
431
+ }
432
+
433
+ .btn-primary, .btn-secondary {
434
+ padding: var(--space-md) var(--space-2xl);
435
+ font-size: var(--font-size-base);
436
+ }
437
+ }
static/style.css CHANGED
@@ -1,3 +1,6 @@
 
 
 
1
  * {
2
  margin: 0;
3
  padding: 0;
@@ -5,139 +8,101 @@
5
  }
6
 
7
  body {
8
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
9
- background: #F5F5F5;
10
  min-height: 100vh;
11
  display: flex;
12
  justify-content: center;
13
  align-items: center;
14
- padding: 10px;
15
  }
16
 
 
17
  .container {
18
- background: white;
19
- border-radius: 16px;
20
- padding: 20px;
21
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
22
  max-width: 700px;
23
  width: 100%;
24
- animation: slideIn 0.4s ease;
25
  max-height: 95vh;
26
  overflow-y: auto;
27
  }
28
 
29
- /* Mobile Responsive */
30
- @media (max-width: 768px) {
31
- .container {
32
- padding: 15px;
33
- border-radius: 12px;
34
- margin: 5px;
35
- }
36
- }
37
-
38
  @keyframes slideIn {
39
  from { opacity: 0; transform: translateY(20px); }
40
  to { opacity: 1; transform: translateY(0); }
41
  }
42
 
 
43
  h1 {
44
- color: #3D3D3D;
45
- font-size: 28px;
46
- margin-bottom: 8px;
47
  text-align: center;
48
- font-weight: 800;
49
- }
50
-
51
- /* Mobile Responsive */
52
- @media (max-width: 768px) {
53
- h1 {
54
- font-size: 24px;
55
- }
56
  }
57
 
58
  h3 {
59
  text-align: center;
60
- color: #3D3D3D;
61
  }
62
 
63
  p {
64
- color: #6B7280;
65
  text-align: center;
66
- margin-bottom: 30px;
67
- font-size: 16px;
68
  }
69
 
70
  .subtitle {
71
- color: #9CA3AF;
72
- font-size: 15px;
73
  text-align: center;
74
- margin-bottom: 25px;
75
  line-height: 1.6;
 
 
 
76
  }
77
 
78
- /* Mobile Responsive */
79
- @media (max-width: 768px) {
80
- p {
81
- font-size: 18px;
82
- }
83
-
84
- .subtitle {
85
- font-size: 16px;
86
- }
87
- }
88
-
89
- /* Form Inputs */
90
  input[type="text"], input[type="password"] {
91
  width: 100%;
92
- padding: 14px 18px;
93
- font-size: 16px;
94
  border: none;
95
- background: #F5F5F5;
96
- border-radius: 10px;
97
- transition: all 0.2s;
98
  outline: none;
99
  }
100
 
101
- /* Mobile Responsive */
102
- @media (max-width: 768px) {
103
- input[type="text"], input[type="password"] {
104
- padding: 16px 20px;
105
- font-size: 18px;
106
- }
107
- }
108
-
109
  input:focus {
110
  background: #EBEBEB;
111
  box-shadow: 0 0 0 2px #E5E5E5;
112
  }
113
 
114
- /* Buttons - Consolidated styles */
115
  button, .btn, .nav-btn, .submit-btn {
116
- padding: 14px 28px;
117
- font-size: 16px;
118
- background: #3D3D3D;
119
- color: white;
120
  border: none;
121
- border-radius: 10px;
122
  cursor: pointer;
123
- transition: all 0.2s;
124
- font-weight: 600;
125
  text-decoration: none;
126
  display: inline-block;
127
  }
128
 
129
- /* Mobile Responsive */
130
- @media (max-width: 768px) {
131
- button, .btn, .nav-btn, .submit-btn {
132
- padding: 16px 32px;
133
- font-size: 18px;
134
- }
135
- }
136
-
137
  button:hover, .btn:hover, .nav-btn:hover, .submit-btn:hover {
138
- background: #1A1A1A;
139
  transform: translateY(-1px);
140
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
141
  }
142
 
143
  button:active, .btn:active {
@@ -157,31 +122,32 @@ button:disabled {
157
  transform: none;
158
  }
159
 
160
- /* Secondary Buttons - Consolidated */
161
  .logout-btn, .reset-btn {
162
- background: #6B7280;
163
- padding: 8px 16px;
164
- font-size: 13px;
165
- margin-top: 15px;
 
166
  }
167
 
168
  .logout-btn:hover, .reset-btn:hover {
169
  background: #4B5563;
170
- box-shadow: 0 4px 12px rgba(107, 114, 128, 0.3);
171
  }
172
 
173
  /* Submit Button */
174
  .submit-btn {
175
  width: 100%;
176
- padding: 16px;
177
- font-size: 16px;
178
- margin-top: 10px;
179
  }
180
 
181
  /* Auth Form */
182
  .auth-form input {
183
  width: 100%;
184
- margin-bottom: 15px;
185
  }
186
 
187
  .auth-form button {
@@ -189,42 +155,34 @@ button:disabled {
189
  }
190
 
191
  .switch-link {
192
- color: #3D3D3D;
193
  text-decoration: none;
194
  cursor: pointer;
195
- font-weight: 600;
196
- margin-top: 15px;
197
  display: inline-block;
198
- transition: color 0.2s;
199
  }
200
 
201
  .switch-link:hover {
202
- color: #1A1A1A;
203
  text-decoration: underline;
204
  }
205
 
206
- /* Question Blocks */
207
  .question-block {
208
- background: #FAFAFA;
209
- padding: 25px;
210
- border-radius: 12px;
211
- margin-bottom: 20px;
212
  border: none;
213
  display: none;
214
  min-height: 400px;
215
  }
216
 
217
- /* Mobile Responsive */
218
- @media (max-width: 768px) {
219
- .question-block {
220
- padding: 20px;
221
- min-height: 350px;
222
- }
223
- }
224
-
225
  .question-block.active {
226
  display: block;
227
- animation: fadeIn 0.3s ease;
228
  }
229
 
230
  @keyframes fadeIn {
@@ -233,77 +191,53 @@ button:disabled {
233
  }
234
 
235
  .question-block h4 {
236
- color: #3D3D3D;
237
- margin-bottom: 25px;
238
- font-weight: 700;
239
- font-size: 20px;
240
  line-height: 1.6;
241
  }
242
 
243
- /* Mobile Responsive */
244
- @media (max-width: 768px) {
245
- .question-block h4 {
246
- font-size: 22px;
247
- }
248
- }
249
-
250
  .question-number {
251
  display: inline-block;
252
- background: #3D3D3D;
253
- color: #fff;
254
  width: 32px;
255
  height: 32px;
256
- border-radius: 50%;
257
  text-align: center;
258
  line-height: 32px;
259
- margin-right: 12px;
260
- font-size: 16px;
261
  }
262
 
263
- /* Options */
264
  .option {
265
- display: block;
266
- padding: 18px 22px;
267
- margin-bottom: 14px;
268
- background: white;
 
269
  border: none;
270
- border-radius: 10px;
271
  cursor: pointer;
272
- transition: all 0.2s;
273
- font-size: 16px;
274
- color: #3D3D3D;
275
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
276
- }
277
-
278
- /* Mobile Responsive */
279
- @media (max-width: 768px) {
280
- .option {
281
- padding: 20px 24px;
282
- margin-bottom: 16px;
283
- font-size: 18px;
284
- }
285
  }
286
 
287
  .option:hover {
288
- background: #F5F5F5;
289
  transform: translateX(5px);
290
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
291
  }
292
 
293
  .option input[type="radio"] {
294
- margin-right: 14px;
295
  cursor: pointer;
296
- width: 20px;
297
- height: 20px;
298
- }
299
-
300
- /* Mobile Responsive */
301
- @media (max-width: 768px) {
302
- .option input[type="radio"] {
303
- width: 22px;
304
- height: 22px;
305
- margin-right: 16px;
306
- }
307
  }
308
 
309
  .option input[type="radio"]:disabled {
@@ -317,61 +251,52 @@ button:disabled {
317
  }
318
 
319
  .option:has(input[type="radio"]:disabled):hover {
320
- background: white;
321
  transform: none;
322
  }
323
 
324
- /* Question Counter & Progress */
325
  .question-counter {
326
  text-align: center;
327
  color: #999;
328
- font-size: 16px;
329
- margin-bottom: 15px;
330
- font-weight: 600;
331
- }
332
-
333
- /* Mobile Responsive */
334
- @media (max-width: 768px) {
335
- .question-counter {
336
- font-size: 18px;
337
- }
338
  }
339
 
340
  .progress-bar {
341
- background: #F5F5F5;
342
  height: 8px;
343
  border-radius: 4px;
344
  overflow: hidden;
345
- margin-bottom: 20px;
346
  }
347
 
348
  .progress-fill {
349
- background: #3D3D3D;
350
  height: 100%;
351
- transition: width 0.3s;
352
  }
353
 
354
- /* Navigation */
355
  .nav-buttons {
356
  display: flex;
357
- gap: 12px;
358
  justify-content: flex-start;
359
- margin-top: 20px;
360
  }
361
 
362
- /* Previous button - styled like "Back to Home" */
363
  .nav-btn.prev {
364
  background: transparent;
365
  color: #999;
366
  border: none;
367
  padding: 0;
368
- font-weight: 600;
369
- font-size: 14px;
370
  text-decoration: none;
371
  display: inline-flex;
372
  align-items: center;
373
  gap: 4px;
374
- transition: all 0.3s ease;
375
  box-shadow: none;
376
  }
377
 
@@ -384,150 +309,155 @@ button:disabled {
384
 
385
  .buttons-row {
386
  display: flex;
387
- gap: 10px;
388
  justify-content: center;
389
- margin-top: 20px;
390
  }
391
 
392
- /* Results */
393
  .result-card {
394
- padding: 25px;
395
- border-radius: 12px;
396
- margin-bottom: 20px;
397
  border: none;
398
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
399
  }
400
 
401
  .result-card.rank-1 {
402
- background: #FFFACD;
403
  }
404
 
405
  .result-card.rank-2 {
406
- background: #B4C7E7;
407
  }
408
 
409
  .result-card.rank-3 {
410
- background: #a6e9a6;
411
  }
412
 
413
  .result-header {
414
  display: flex;
415
  align-items: center;
416
  justify-content: space-between;
417
- margin-bottom: 15px;
418
  }
419
 
420
  .result-rank {
421
- color: #fff;
422
- width: 40px;
423
- height: 40px;
424
- border-radius: 50%;
425
  display: flex;
426
  align-items: center;
427
  justify-content: center;
428
- font-size: 20px;
429
- font-weight: 800;
430
- background: #3D3D3D;
431
  }
432
 
433
  .result-title {
434
  flex: 1;
435
- margin-left: 15px;
436
  }
437
 
438
  .result-title h3 {
439
- font-size: 22px;
440
  margin-bottom: 5px;
441
- color: #3D3D3D;
 
 
 
 
 
442
  }
443
 
444
  .result-percentage {
445
- font-size: 24px;
446
- font-weight: 800;
447
- color: #3D3D3D;
448
  }
449
 
450
  .result-description {
451
  color: #666;
452
  line-height: 1.6;
453
- margin-bottom: 12px;
454
- font-size: 14px;
455
  }
456
 
457
  .result-details {
458
  background: rgba(255, 255, 255, 0.6);
459
  border: none;
460
- padding: 15px;
461
- border-radius: 8px;
462
- margin-top: 15px;
463
  }
464
 
465
  .result-details h5 {
466
- color: #3D3D3D;
467
- font-size: 13px;
468
- margin-bottom: 8px;
469
- font-weight: 700;
470
  }
471
 
472
  .result-details p {
473
  color: #666;
474
- font-size: 13px;
475
- margin-bottom: 10px;
476
  text-align: left;
477
  }
478
 
479
- /* Icons & Messages */
480
  .icon {
481
- font-size: 24px;
482
- margin-right: 8px;
483
  }
484
 
485
  .success-msg {
486
- color: #3D3D3D;
487
- font-weight: 600;
488
  }
489
 
490
  .error-msg {
491
  color: #666;
492
- font-weight: 600;
493
  text-align: center;
494
- padding: 10px;
495
  }
496
 
497
- /* Chat Interface */
498
  .chat-toggle-btn {
499
  background: rgba(255, 255, 255, 0.8);
500
- color: #3D3D3D;
501
  border: none;
502
- padding: 10px 20px;
503
- border-radius: 8px;
504
  cursor: pointer;
505
- font-size: 14px;
506
- font-weight: 600;
507
- margin-top: 15px;
508
  width: 100%;
509
- transition: background 0.2s, color 0.2s;
510
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
511
  }
512
 
513
  .chat-toggle-btn:hover {
514
- background: #3D3D3D;
515
- color: #fff;
516
  }
517
 
518
  .chat-window {
519
  display: none;
520
  background: rgba(255, 255, 255, 0.9);
521
  border: none;
522
- border-radius: 10px;
523
- margin-top: 15px;
524
  overflow: hidden;
525
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
526
  }
527
 
528
  .chat-window.open {
529
  display: block;
530
- animation: slideDown 0.3s ease;
531
  }
532
 
533
  @keyframes slideDown {
@@ -538,37 +468,37 @@ button:disabled {
538
  .chat-messages {
539
  height: 250px;
540
  overflow-y: auto;
541
- padding: 15px;
542
  background: transparent;
543
  }
544
 
545
  .chat-message {
546
- margin-bottom: 12px;
547
- padding: 10px 14px;
548
- border-radius: 8px;
549
  max-width: 85%;
550
  line-height: 1.5;
551
- font-size: 14px;
552
  }
553
 
554
  .chat-message.user {
555
- background: #3D3D3D;
556
- color: #fff;
557
  margin-left: auto;
558
  text-align: right;
559
  }
560
 
561
  .chat-message.bot {
562
- background: white;
563
- color: #3D3D3D;
564
  border: none;
565
  text-align: left;
566
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
567
  }
568
 
569
  .chat-message.bot ul {
570
- margin: 8px 0 0 0;
571
- padding-left: 20px;
572
  }
573
 
574
  .chat-message.bot li {
@@ -578,67 +508,67 @@ button:disabled {
578
 
579
  .chat-input-area {
580
  display: flex;
581
- gap: 8px;
582
- padding: 12px;
583
  background: transparent;
584
  border-top: none;
585
  }
586
 
587
  .chat-input {
588
  flex: 1;
589
- padding: 10px 14px;
590
  border: none;
591
- background: white;
592
- border-radius: 8px;
593
- font-size: 14px;
594
  outline: none;
595
- color: #3D3D3D;
596
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
597
  }
598
 
599
  .chat-input:focus {
600
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
601
  }
602
 
603
  .chat-send-btn {
604
- padding: 10px 20px;
605
- background: #3D3D3D;
606
- color: #fff;
607
  border: none;
608
- border-radius: 8px;
609
  cursor: pointer;
610
- font-weight: 600;
611
- font-size: 14px;
612
- transition: background 0.2s;
613
  }
614
 
615
  .chat-send-btn:hover {
616
- background: #1A1A1A;
617
- color: #fff;
618
  }
619
 
620
  .chat-send-btn:disabled {
621
- background: #F5F5F5;
622
  color: #999;
623
  }
624
 
625
  .voice-btn {
626
- padding: 10px 14px;
627
- background: #6366F1;
628
- color: white;
629
  border: none;
630
- border-radius: 8px;
631
  cursor: pointer;
632
- font-size: 18px;
633
- transition: all 0.2s;
634
  }
635
 
636
  .voice-btn:hover {
637
- background: #4F46E5;
638
  }
639
 
640
  .voice-btn.recording {
641
- background: #EF4444;
642
  animation: pulse 1s infinite;
643
  }
644
 
@@ -650,23 +580,23 @@ button:disabled {
650
  .chat-typing {
651
  color: #999;
652
  font-style: italic;
653
- font-size: 13px;
654
- padding: 10px 14px;
655
  }
656
 
657
- /* Navigation Header */
658
  .nav-header {
659
- padding: 0 0 20px 0;
660
- margin-bottom: 20px;
661
- border-bottom: 1px solid #e9ecef;
662
  }
663
 
664
  .back-link {
665
  color: #667eea;
666
  text-decoration: none;
667
- font-weight: 600;
668
- font-size: 14px;
669
- transition: all 0.3s ease;
670
  display: inline-flex;
671
  align-items: center;
672
  gap: 4px;
@@ -677,13 +607,59 @@ button:disabled {
677
  transform: translateX(-3px);
678
  }
679
 
680
- /* Results description max-width */
681
- .subtitle {
682
- max-width: 500px;
683
- margin: 0 auto;
684
- margin-bottom: 20px;
685
  }
686
 
687
- .results-spacing {
688
- margin-top: 40px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
689
  }
 
1
+ @import url('design-tokens.css');
2
+
3
+ /* ===== RESET & BASE ===== */
4
  * {
5
  margin: 0;
6
  padding: 0;
 
8
  }
9
 
10
  body {
11
+ font-family: var(--font-family);
12
+ background: var(--bg-gray);
13
  min-height: 100vh;
14
  display: flex;
15
  justify-content: center;
16
  align-items: center;
17
+ padding: var(--space-sm);
18
  }
19
 
20
+ /* ===== LAYOUT ===== */
21
  .container {
22
+ background: var(--bg-white);
23
+ border-radius: var(--radius-xl);
24
+ padding: var(--space-lg);
25
+ box-shadow: var(--shadow-xl);
26
  max-width: 700px;
27
  width: 100%;
28
+ animation: slideIn var(--transition-slow) ease;
29
  max-height: 95vh;
30
  overflow-y: auto;
31
  }
32
 
 
 
 
 
 
 
 
 
 
33
  @keyframes slideIn {
34
  from { opacity: 0; transform: translateY(20px); }
35
  to { opacity: 1; transform: translateY(0); }
36
  }
37
 
38
+ /* ===== TYPOGRAPHY ===== */
39
  h1 {
40
+ color: var(--text-primary);
41
+ font-size: var(--font-size-4xl);
42
+ margin-bottom: var(--space-xs);
43
  text-align: center;
44
+ font-weight: var(--font-weight-extrabold);
 
 
 
 
 
 
 
45
  }
46
 
47
  h3 {
48
  text-align: center;
49
+ color: var(--text-primary);
50
  }
51
 
52
  p {
53
+ color: var(--text-secondary);
54
  text-align: center;
55
+ margin-bottom: var(--space-2xl);
56
+ font-size: var(--font-size-base);
57
  }
58
 
59
  .subtitle {
60
+ color: var(--text-secondary);
61
+ font-size: var(--font-size-base);
62
  text-align: center;
63
+ margin-bottom: var(--space-xl);
64
  line-height: 1.6;
65
+ max-width: 540px;
66
+ margin-left: auto;
67
+ margin-right: auto;
68
  }
69
 
70
+ /* ===== FORM ELEMENTS ===== */
 
 
 
 
 
 
 
 
 
 
 
71
  input[type="text"], input[type="password"] {
72
  width: 100%;
73
+ padding: var(--space-sm) var(--space-lg);
74
+ font-size: var(--font-size-base);
75
  border: none;
76
+ background: var(--bg-gray);
77
+ border-radius: var(--radius-md);
78
+ transition: all var(--transition-fast);
79
  outline: none;
80
  }
81
 
 
 
 
 
 
 
 
 
82
  input:focus {
83
  background: #EBEBEB;
84
  box-shadow: 0 0 0 2px #E5E5E5;
85
  }
86
 
87
+ /* ===== BUTTONS ===== */
88
  button, .btn, .nav-btn, .submit-btn {
89
+ padding: var(--space-sm) var(--space-2xl);
90
+ font-size: var(--font-size-base);
91
+ background: var(--primary-dark);
92
+ color: var(--text-inverse);
93
  border: none;
94
+ border-radius: var(--radius-md);
95
  cursor: pointer;
96
+ transition: all var(--transition-fast);
97
+ font-weight: var(--font-weight-medium);
98
  text-decoration: none;
99
  display: inline-block;
100
  }
101
 
 
 
 
 
 
 
 
 
102
  button:hover, .btn:hover, .nav-btn:hover, .submit-btn:hover {
103
+ background: var(--primary-black);
104
  transform: translateY(-1px);
105
+ box-shadow: var(--shadow-lg);
106
  }
107
 
108
  button:active, .btn:active {
 
122
  transform: none;
123
  }
124
 
125
+ /* Secondary Buttons */
126
  .logout-btn, .reset-btn {
127
+ background: var(--primary-light);
128
+ padding: var(--space-xs) var(--space-md);
129
+ font-size: var(--font-size-sm);
130
+ font-weight: var(--font-weight-regular);
131
+ margin-top: var(--space-sm);
132
  }
133
 
134
  .logout-btn:hover, .reset-btn:hover {
135
  background: #4B5563;
136
+ box-shadow: var(--shadow-lg);
137
  }
138
 
139
  /* Submit Button */
140
  .submit-btn {
141
  width: 100%;
142
+ padding: var(--space-md);
143
+ font-size: var(--font-size-base);
144
+ margin-top: var(--space-sm);
145
  }
146
 
147
  /* Auth Form */
148
  .auth-form input {
149
  width: 100%;
150
+ margin-bottom: var(--space-sm);
151
  }
152
 
153
  .auth-form button {
 
155
  }
156
 
157
  .switch-link {
158
+ color: var(--text-primary);
159
  text-decoration: none;
160
  cursor: pointer;
161
+ font-weight: var(--font-weight-medium);
162
+ margin-top: var(--space-sm);
163
  display: inline-block;
164
+ transition: color var(--transition-fast);
165
  }
166
 
167
  .switch-link:hover {
168
+ color: var(--primary-black);
169
  text-decoration: underline;
170
  }
171
 
172
+ /* ===== QUESTION BLOCKS ===== */
173
  .question-block {
174
+ background: var(--bg-surface-alt);
175
+ padding: var(--space-xl);
176
+ border-radius: var(--radius-lg);
177
+ margin-bottom: var(--space-lg);
178
  border: none;
179
  display: none;
180
  min-height: 400px;
181
  }
182
 
 
 
 
 
 
 
 
 
183
  .question-block.active {
184
  display: block;
185
+ animation: fadeIn var(--transition-base) ease;
186
  }
187
 
188
  @keyframes fadeIn {
 
191
  }
192
 
193
  .question-block h4 {
194
+ color: var(--text-primary);
195
+ margin-bottom: var(--space-xl);
196
+ font-weight: var(--font-weight-bold);
197
+ font-size: var(--font-size-xl);
198
  line-height: 1.6;
199
  }
200
 
 
 
 
 
 
 
 
201
  .question-number {
202
  display: inline-block;
203
+ background: var(--primary-dark);
204
+ color: var(--text-inverse);
205
  width: 32px;
206
  height: 32px;
207
+ border-radius: var(--radius-full);
208
  text-align: center;
209
  line-height: 32px;
210
+ margin-right: var(--space-sm);
211
+ font-size: var(--font-size-sm);
212
  }
213
 
214
+ /* ===== OPTIONS ===== */
215
  .option {
216
+ display: flex;
217
+ align-items: center;
218
+ padding: var(--space-lg) var(--space-xl);
219
+ margin-bottom: var(--space-sm);
220
+ background: var(--bg-white);
221
  border: none;
222
+ border-radius: var(--radius-md);
223
  cursor: pointer;
224
+ transition: all var(--transition-fast);
225
+ font-size: var(--font-size-base);
226
+ color: var(--text-primary);
227
+ box-shadow: var(--shadow-sm);
 
 
 
 
 
 
 
 
 
228
  }
229
 
230
  .option:hover {
231
+ background: var(--bg-gray);
232
  transform: translateX(5px);
233
+ box-shadow: var(--shadow-lg);
234
  }
235
 
236
  .option input[type="radio"] {
237
+ margin-right: var(--space-sm);
238
  cursor: pointer;
239
+ width: 16px;
240
+ height: 16px;
 
 
 
 
 
 
 
 
 
241
  }
242
 
243
  .option input[type="radio"]:disabled {
 
251
  }
252
 
253
  .option:has(input[type="radio"]:disabled):hover {
254
+ background: var(--bg-white);
255
  transform: none;
256
  }
257
 
258
+ /* ===== PROGRESS & NAVIGATION ===== */
259
  .question-counter {
260
  text-align: center;
261
  color: #999;
262
+ font-size: var(--font-size-sm);
263
+ margin-bottom: var(--space-sm);
264
+ font-weight: var(--font-weight-medium);
 
 
 
 
 
 
 
265
  }
266
 
267
  .progress-bar {
268
+ background: var(--bg-gray);
269
  height: 8px;
270
  border-radius: 4px;
271
  overflow: hidden;
272
+ margin-bottom: var(--space-lg);
273
  }
274
 
275
  .progress-fill {
276
+ background: var(--primary-dark);
277
  height: 100%;
278
+ transition: width var(--transition-base);
279
  }
280
 
 
281
  .nav-buttons {
282
  display: flex;
283
+ gap: var(--space-sm);
284
  justify-content: flex-start;
285
+ margin-top: var(--space-lg);
286
  }
287
 
 
288
  .nav-btn.prev {
289
  background: transparent;
290
  color: #999;
291
  border: none;
292
  padding: 0;
293
+ font-weight: var(--font-weight-medium);
294
+ font-size: var(--font-size-sm);
295
  text-decoration: none;
296
  display: inline-flex;
297
  align-items: center;
298
  gap: 4px;
299
+ transition: all var(--transition-base) ease;
300
  box-shadow: none;
301
  }
302
 
 
309
 
310
  .buttons-row {
311
  display: flex;
312
+ gap: var(--space-sm);
313
  justify-content: center;
314
+ margin-top: var(--space-lg);
315
  }
316
 
317
+ /* ===== RESULTS ===== */
318
  .result-card {
319
+ padding: var(--space-xl);
320
+ border-radius: var(--radius-lg);
321
+ margin-bottom: var(--space-lg);
322
  border: none;
323
+ box-shadow: var(--shadow-md);
324
  }
325
 
326
  .result-card.rank-1 {
327
+ background: var(--rank-1);
328
  }
329
 
330
  .result-card.rank-2 {
331
+ background: var(--rank-2);
332
  }
333
 
334
  .result-card.rank-3 {
335
+ background: var(--rank-3);
336
  }
337
 
338
  .result-header {
339
  display: flex;
340
  align-items: center;
341
  justify-content: space-between;
342
+ margin-bottom: var(--space-sm);
343
  }
344
 
345
  .result-rank {
346
+ color: var(--text-inverse);
347
+ width: 32px;
348
+ height: 32px;
349
+ border-radius: var(--radius-full);
350
  display: flex;
351
  align-items: center;
352
  justify-content: center;
353
+ font-size: var(--font-size-xl);
354
+ font-weight: var(--font-weight-extrabold);
355
+ background: var(--primary-dark);
356
  }
357
 
358
  .result-title {
359
  flex: 1;
360
+ margin-left: var(--space-sm);
361
  }
362
 
363
  .result-title h3 {
364
+ font-size: var(--font-size-3xl);
365
  margin-bottom: 5px;
366
+ color: var(--text-primary);
367
+ }
368
+
369
+ .result-details h5 i {
370
+ font-size: var(--font-size-sm);
371
+ margin-right: var(--space-xs);
372
  }
373
 
374
  .result-percentage {
375
+ font-size: var(--font-size-xl);
376
+ font-weight: var(--font-weight-bold);
377
+ color: var(--text-secondary);
378
  }
379
 
380
  .result-description {
381
  color: #666;
382
  line-height: 1.6;
383
+ margin-bottom: var(--space-sm);
384
+ font-size: var(--font-size-base);
385
  }
386
 
387
  .result-details {
388
  background: rgba(255, 255, 255, 0.6);
389
  border: none;
390
+ padding: var(--space-sm);
391
+ border-radius: var(--radius-sm);
392
+ margin-top: var(--space-sm);
393
  }
394
 
395
  .result-details h5 {
396
+ color: var(--text-primary);
397
+ font-size: var(--font-size-base);
398
+ margin-bottom: var(--space-xs);
399
+ font-weight: var(--font-weight-medium);
400
  }
401
 
402
  .result-details p {
403
  color: #666;
404
+ font-size: var(--font-size-sm);
405
+ margin-bottom: var(--space-sm);
406
  text-align: left;
407
  }
408
 
409
+ /* ===== MESSAGES & ICONS ===== */
410
  .icon {
411
+ font-size: var(--font-size-3xl);
412
+ margin-right: var(--space-xs);
413
  }
414
 
415
  .success-msg {
416
+ color: var(--text-primary);
417
+ font-weight: var(--font-weight-medium);
418
  }
419
 
420
  .error-msg {
421
  color: #666;
422
+ font-weight: var(--font-weight-medium);
423
  text-align: center;
424
+ padding: var(--space-sm);
425
  }
426
 
427
+ /* ===== CHAT INTERFACE ===== */
428
  .chat-toggle-btn {
429
  background: rgba(255, 255, 255, 0.8);
430
+ color: var(--text-primary);
431
  border: none;
432
+ padding: var(--space-sm) var(--space-lg);
433
+ border-radius: var(--radius-sm);
434
  cursor: pointer;
435
+ font-size: var(--font-size-sm);
436
+ font-weight: var(--font-weight-medium);
437
+ margin-top: var(--space-sm);
438
  width: 100%;
439
+ transition: background var(--transition-fast), color var(--transition-fast);
440
+ box-shadow: var(--shadow-md);
441
  }
442
 
443
  .chat-toggle-btn:hover {
444
+ background: var(--primary-dark);
445
+ color: var(--text-inverse);
446
  }
447
 
448
  .chat-window {
449
  display: none;
450
  background: rgba(255, 255, 255, 0.9);
451
  border: none;
452
+ border-radius: var(--radius-md);
453
+ margin-top: var(--space-sm);
454
  overflow: hidden;
455
+ box-shadow: var(--shadow-lg);
456
  }
457
 
458
  .chat-window.open {
459
  display: block;
460
+ animation: slideDown var(--transition-base) ease;
461
  }
462
 
463
  @keyframes slideDown {
 
468
  .chat-messages {
469
  height: 250px;
470
  overflow-y: auto;
471
+ padding: var(--space-sm);
472
  background: transparent;
473
  }
474
 
475
  .chat-message {
476
+ margin-bottom: var(--space-sm);
477
+ padding: var(--space-sm) var(--space-sm);
478
+ border-radius: var(--radius-sm);
479
  max-width: 85%;
480
  line-height: 1.5;
481
+ font-size: var(--font-size-base);
482
  }
483
 
484
  .chat-message.user {
485
+ background: var(--primary-dark);
486
+ color: var(--text-inverse);
487
  margin-left: auto;
488
  text-align: right;
489
  }
490
 
491
  .chat-message.bot {
492
+ background: var(--bg-white);
493
+ color: var(--text-primary);
494
  border: none;
495
  text-align: left;
496
+ box-shadow: var(--shadow-sm);
497
  }
498
 
499
  .chat-message.bot ul {
500
+ margin: var(--space-sm) 0 0 0;
501
+ padding-left: var(--space-lg);
502
  }
503
 
504
  .chat-message.bot li {
 
508
 
509
  .chat-input-area {
510
  display: flex;
511
+ gap: var(--space-xs);
512
+ padding: var(--space-sm);
513
  background: transparent;
514
  border-top: none;
515
  }
516
 
517
  .chat-input {
518
  flex: 1;
519
+ padding: var(--space-sm) var(--space-sm);
520
  border: none;
521
+ background: var(--bg-white);
522
+ border-radius: var(--radius-sm);
523
+ font-size: var(--font-size-sm);
524
  outline: none;
525
+ color: var(--text-primary);
526
+ box-shadow: var(--shadow-sm);
527
  }
528
 
529
  .chat-input:focus {
530
+ box-shadow: var(--shadow-md);
531
  }
532
 
533
  .chat-send-btn {
534
+ padding: var(--space-sm) var(--space-lg);
535
+ background: var(--primary-dark);
536
+ color: var(--text-inverse);
537
  border: none;
538
+ border-radius: var(--radius-sm);
539
  cursor: pointer;
540
+ font-weight: var(--font-weight-medium);
541
+ font-size: var(--font-size-sm);
542
+ transition: background var(--transition-fast);
543
  }
544
 
545
  .chat-send-btn:hover {
546
+ background: var(--primary-black);
547
+ color: var(--text-inverse);
548
  }
549
 
550
  .chat-send-btn:disabled {
551
+ background: var(--bg-gray);
552
  color: #999;
553
  }
554
 
555
  .voice-btn {
556
+ padding: var(--space-sm) var(--space-sm);
557
+ background: var(--primary-dark);
558
+ color: var(--text-inverse);
559
  border: none;
560
+ border-radius: var(--radius-sm);
561
  cursor: pointer;
562
+ font-size: var(--font-size-lg);
563
+ transition: all var(--transition-fast);
564
  }
565
 
566
  .voice-btn:hover {
567
+ background: var(--info);
568
  }
569
 
570
  .voice-btn.recording {
571
+ background: var(--error);
572
  animation: pulse 1s infinite;
573
  }
574
 
 
580
  .chat-typing {
581
  color: #999;
582
  font-style: italic;
583
+ font-size: var(--font-size-sm);
584
+ padding: var(--space-sm) var(--space-sm);
585
  }
586
 
587
+ /* ===== NAVIGATION & UTILITIES ===== */
588
  .nav-header {
589
+ padding: 0 0 var(--space-lg) 0;
590
+ margin-bottom: var(--space-lg);
591
+ border-bottom: 1px solid var(--border-divider);
592
  }
593
 
594
  .back-link {
595
  color: #667eea;
596
  text-decoration: none;
597
+ font-weight: var(--font-weight-medium);
598
+ font-size: var(--font-size-sm);
599
+ transition: all var(--transition-base) ease;
600
  display: inline-flex;
601
  align-items: center;
602
  gap: 4px;
 
607
  transform: translateX(-3px);
608
  }
609
 
610
+ .results-spacing {
611
+ margin-top: var(--space-3xl);
 
 
 
612
  }
613
 
614
+ /* ===== MOBILE RESPONSIVE ===== */
615
+ @media (max-width: 768px) {
616
+ .container {
617
+ padding: var(--space-sm);
618
+ border-radius: var(--radius-lg);
619
+ margin: 5px;
620
+ }
621
+
622
+ h1 {
623
+ font-size: var(--font-size-3xl);
624
+ }
625
+
626
+ p {
627
+ font-size: var(--font-size-lg);
628
+ }
629
+
630
+ .subtitle {
631
+ font-size: var(--font-size-base);
632
+ }
633
+
634
+ input[type="text"], input[type="password"] {
635
+ padding: var(--space-md) var(--space-lg);
636
+ font-size: var(--font-size-lg);
637
+ }
638
+
639
+ button, .btn, .nav-btn, .submit-btn {
640
+ padding: var(--space-md) var(--space-2xl);
641
+ font-size: var(--font-size-lg);
642
+ }
643
+
644
+ .question-block {
645
+ padding: var(--space-lg);
646
+ min-height: 350px;
647
+ }
648
+
649
+ .question-block h4 {
650
+ font-size: var(--font-size-2xl);
651
+ }
652
+
653
+ .option {
654
+ padding: var(--space-lg) var(--space-xl);
655
+ margin-bottom: var(--space-md);
656
+ font-size: var(--font-size-lg);
657
+ }
658
+
659
+ .option input[type="radio"] {
660
+ width: 22px;
661
+ height: 22px;
662
+ margin-right: var(--space-md);
663
+ }
664
+
665
  }
templates/index.html CHANGED
@@ -5,6 +5,8 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>{{ title if logged_in else 'Spiritual Path Finder - Login' }}</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
 
 
8
  </head>
9
  <body>
10
  <div class="container">
@@ -13,7 +15,7 @@
13
  </div>
14
  {% if not logged_in %}
15
  <!-- Login/Signup Form -->
16
- <h1><span class="icon">🌟</span>Spiritual Path Finder</h1>
17
  <p>{{ 'Begin your journey of self-discovery' if is_signup else 'Welcome back, seeker!' }}</p>
18
 
19
  <div class="auth-form">
@@ -28,13 +30,9 @@
28
  {% else %}
29
  <!-- Assessment Interface -->
30
  <h1>{{ title }}</h1>
31
- <p>{{ message }}</p>
32
 
33
  {% if not has_results %}
34
- <p class="subtitle">
35
- Discover which spiritual or religious path aligns with your beliefs, values, and lifestyle.
36
- Answer 8 thoughtful questions about your worldview.
37
- </p>
38
 
39
  <div class="question-counter" id="questionCounter">Question 1 of {{ questions|length }}</div>
40
 
@@ -98,14 +96,14 @@
98
  </div>
99
  <p class="result-description">{{ result.description }}</p>
100
  <div class="result-details">
101
- <h5>πŸ“Ώ Common Practices:</h5>
102
  <p>{{ result.practices }}</p>
103
- <h5>πŸ’­ Core Beliefs:</h5>
104
  <p>{{ result.core_beliefs }}</p>
105
  </div>
106
 
107
  <button class="chat-toggle-btn" onclick="toggleChat('{{ result.name }}')">
108
- πŸ’¬ Ask Questions About {{ result.name }}
109
  </button>
110
 
111
  <div class="chat-window" id="chat-{{ result.name|replace(' ', '-') }}">
@@ -130,7 +128,7 @@
130
  ontouchstart="startVoiceInput('{{ result.name }}')"
131
  ontouchend="stopVoiceInput('{{ result.name }}')"
132
  title="Hold to record with live transcription">
133
- 🎀
134
  </button>
135
  <button class="chat-send-btn"
136
  id="send-{{ result.name|replace(' ', '-') }}"
@@ -144,8 +142,12 @@
144
  </div>
145
 
146
  <div class="buttons-row">
147
- <button class="btn reset-btn" onclick="resetAssessment()">πŸ”„ Retake Assessment</button>
148
- <a href="/logout" class="btn logout-btn">πŸšͺ Sign Out</a>
 
 
 
 
149
  </div>
150
  {% endif %}
151
  {% endif %}
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>{{ title if logged_in else 'Spiritual Path Finder - Login' }}</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
8
+ <!-- Add Font Awesome here -->
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
10
  </head>
11
  <body>
12
  <div class="container">
 
15
  </div>
16
  {% if not logged_in %}
17
  <!-- Login/Signup Form -->
18
+ <h1><span class="icon"></span>Spiritual Path Finder</h1>
19
  <p>{{ 'Begin your journey of self-discovery' if is_signup else 'Welcome back, seeker!' }}</p>
20
 
21
  <div class="auth-form">
 
30
  {% else %}
31
  <!-- Assessment Interface -->
32
  <h1>{{ title }}</h1>
33
+ <p>{{ message }} <i class="fas fa-heart"></i> </p>
34
 
35
  {% if not has_results %}
 
 
 
 
36
 
37
  <div class="question-counter" id="questionCounter">Question 1 of {{ questions|length }}</div>
38
 
 
96
  </div>
97
  <p class="result-description">{{ result.description }}</p>
98
  <div class="result-details">
99
+ <h5><i class="fa-solid fa-grip"></i> Common Practices:</h5>
100
  <p>{{ result.practices }}</p>
101
+ <h5><i class="fa-solid fa-rainbow"></i> Core Beliefs:</h5>
102
  <p>{{ result.core_beliefs }}</p>
103
  </div>
104
 
105
  <button class="chat-toggle-btn" onclick="toggleChat('{{ result.name }}')">
106
+ <i class="fa-solid fa-comment-dots"></i> Ask Questions About {{ result.name }}
107
  </button>
108
 
109
  <div class="chat-window" id="chat-{{ result.name|replace(' ', '-') }}">
 
128
  ontouchstart="startVoiceInput('{{ result.name }}')"
129
  ontouchend="stopVoiceInput('{{ result.name }}')"
130
  title="Hold to record with live transcription">
131
+ <i class="fa-solid fa-microphone"></i>
132
  </button>
133
  <button class="chat-send-btn"
134
  id="send-{{ result.name|replace(' ', '-') }}"
 
142
  </div>
143
 
144
  <div class="buttons-row">
145
+ <button class="btn reset-btn" onclick="resetAssessment()">
146
+ <i class="fa-solid fa-arrow-rotate-right"></i> Retake Assessment
147
+ </button>
148
+ <a href="/logout" class="btn logout-btn">
149
+ <i class="fa-solid fa-arrow-right-from-bracket"></i> Sign Out
150
+ </a>
151
  </div>
152
  {% endif %}
153
  {% endif %}
templates/landing.html CHANGED
@@ -6,13 +6,15 @@
6
  <title>Spiritual Path Assessment</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='landing.css') }}">
8
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
 
 
9
  </head>
10
  <body>
11
  <div class="gradient-bg"></div>
12
 
13
  <nav class="navbar">
14
  <div class="nav-container">
15
- <div class="logo">✨ Spiritual Path</div>
16
  <a href="/login" class="nav-cta">Start Assessment</a>
17
  </div>
18
  </nav>
@@ -20,12 +22,13 @@
20
  <main class="main-content">
21
  <section class="hero-section">
22
  <div class="hero-container">
23
- <div class="badge">🌟 Discover Your Path</div>
24
  <h1 class="hero-title">
25
  Find Your <span class="gradient-text">Spiritual Journey</span>
26
  </h1>
27
  <p class="hero-subtitle">
28
- A personalized assessment designed to help you explore and understand your unique spiritual path through thoughtful questions and AI-powered insights.
 
29
  </p>
30
 
31
  <div class="cta-buttons">
@@ -34,9 +37,9 @@
34
  <span class="arrow">β†’</span>
35
  </a>
36
  <div class="assessment-meta">
37
- <span>⏱️ 5-10 minutes</span>
38
- <span>πŸ†“ Completely free</span>
39
- <span>🧘 Personalized insights</span>
40
  </div>
41
  </div>
42
 
 
6
  <title>Spiritual Path Assessment</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='landing.css') }}">
8
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
9
+ <!-- Add Font Awesome here -->
10
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
11
  </head>
12
  <body>
13
  <div class="gradient-bg"></div>
14
 
15
  <nav class="navbar">
16
  <div class="nav-container">
17
+ <div class="logo"> <i class="fa-solid fa-compass"></i> Spiritual Path</div>
18
  <a href="/login" class="nav-cta">Start Assessment</a>
19
  </div>
20
  </nav>
 
22
  <main class="main-content">
23
  <section class="hero-section">
24
  <div class="hero-container">
25
+ <div class="badge"> <i class="fa-solid fa-compass"></i> Discover Your Path</div>
26
  <h1 class="hero-title">
27
  Find Your <span class="gradient-text">Spiritual Journey</span>
28
  </h1>
29
  <p class="hero-subtitle">
30
+ Discover which spiritual or religious path aligns with your beliefs, values, and lifestyle.
31
+ Answer 8 thoughtful questions about your worldview.
32
  </p>
33
 
34
  <div class="cta-buttons">
 
37
  <span class="arrow">β†’</span>
38
  </a>
39
  <div class="assessment-meta">
40
+ <span><i class="fa-solid fa-clock"></i> 5-10 minutes</span>
41
+ <span><i class="fa-solid fa-heart"></i> Completely free</span>
42
+ <span><i class="fa-solid fa-lightbulb"></i> Personalized insights</span>
43
  </div>
44
  </div>
45