ntphuc149 commited on
Commit
224cc08
·
verified ·
1 Parent(s): 289c116

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +565 -18
style.css CHANGED
@@ -1,28 +1,575 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
28
  }
 
1
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");
2
+
3
+ /* ===== BASE STYLES ===== */
4
+ * {
5
+ margin: 0;
6
+ padding: 0;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ :root {
11
+ --bg-primary: #f8fafc;
12
+ --bg-secondary: #ffffff;
13
+ --text-primary: #1e293b;
14
+ --text-secondary: #64748b;
15
+ --accent: #3b82f6;
16
+ --accent-hover: #2563eb;
17
+ --gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
18
+ --glass-bg: rgba(255, 255, 255, 0.7);
19
+ --glass-border: rgba(255, 255, 255, 0.18);
20
+ --shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15);
21
+ }
22
+
23
+ [data-theme="dark"] {
24
+ --bg-primary: #0f172a;
25
+ --bg-secondary: #1e293b;
26
+ --text-primary: #f1f5f9;
27
+ --text-secondary: #94a3b8;
28
+ --glass-bg: rgba(30, 41, 59, 0.7);
29
+ --glass-border: rgba(255, 255, 255, 0.1);
30
+ --shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
31
+ }
32
+
33
  body {
34
+ font-family: "Inter", sans-serif;
35
+ background: var(--bg-primary);
36
+ color: var(--text-primary);
37
+ line-height: 1.6;
38
+ transition: all 0.3s ease;
39
+ overflow-x: hidden;
40
+ }
41
+
42
+ html {
43
+ scroll-behavior: smooth;
44
+ }
45
+
46
+ /* ===== ANIMATED BACKGROUND ===== */
47
+ body::before {
48
+ content: "";
49
+ position: fixed;
50
+ top: 0;
51
+ left: 0;
52
+ width: 100%;
53
+ height: 100%;
54
+ background: var(--gradient);
55
+ opacity: 0.05;
56
+ z-index: -1;
57
+ animation: gradientShift 15s ease infinite;
58
+ }
59
+
60
+ @keyframes gradientShift {
61
+ 0%,
62
+ 100% {
63
+ transform: translateY(0) scale(1);
64
+ }
65
+ 50% {
66
+ transform: translateY(-20px) scale(1.05);
67
+ }
68
+ }
69
+
70
+ @keyframes fadeInUp {
71
+ from {
72
+ opacity: 0;
73
+ transform: translateY(30px);
74
+ }
75
+ to {
76
+ opacity: 1;
77
+ transform: translateY(0);
78
+ }
79
+ }
80
+
81
+ /* ===== NAVIGATION ===== */
82
+ nav {
83
+ position: fixed;
84
+ top: 0;
85
+ width: 100%;
86
+ background: var(--glass-bg);
87
+ backdrop-filter: blur(10px);
88
+ -webkit-backdrop-filter: blur(10px);
89
+ border-bottom: 1px solid var(--glass-border);
90
+ z-index: 1000;
91
+ padding: 1rem 0;
92
+ }
93
+
94
+ .nav-container {
95
+ max-width: 1200px;
96
+ margin: 0 auto;
97
+ padding: 0 2rem;
98
+ display: flex;
99
+ justify-content: space-between;
100
+ align-items: center;
101
+ }
102
+
103
+ .logo {
104
+ font-size: 1.5rem;
105
+ font-weight: 700;
106
+ background: var(--gradient);
107
+ -webkit-background-clip: text;
108
+ -webkit-text-fill-color: transparent;
109
+ background-clip: text;
110
+ }
111
+
112
+ .nav-links {
113
+ display: flex;
114
+ gap: 2rem;
115
+ list-style: none;
116
+ }
117
+
118
+ .nav-links a {
119
+ color: var(--text-primary);
120
+ text-decoration: none;
121
+ font-weight: 500;
122
+ transition: color 0.3s ease;
123
+ position: relative;
124
+ }
125
+
126
+ .nav-links a::after {
127
+ content: "";
128
+ position: absolute;
129
+ bottom: -5px;
130
+ left: 0;
131
+ width: 0;
132
+ height: 2px;
133
+ background: var(--accent);
134
+ transition: width 0.3s ease;
135
+ }
136
+
137
+ .nav-links a:hover::after {
138
+ width: 100%;
139
+ }
140
+
141
+ .theme-toggle {
142
+ background: var(--glass-bg);
143
+ border: 1px solid var(--glass-border);
144
+ padding: 0.5rem 1rem;
145
+ border-radius: 50px;
146
+ cursor: pointer;
147
+ display: flex;
148
+ align-items: center;
149
+ gap: 0.5rem;
150
+ transition: all 0.3s ease;
151
+ }
152
+
153
+ .theme-toggle:hover {
154
+ transform: translateY(-2px);
155
+ box-shadow: var(--shadow);
156
+ }
157
+
158
+ .mobile-menu-btn {
159
+ display: none;
160
+ background: none;
161
+ border: none;
162
+ font-size: 1.5rem;
163
+ cursor: pointer;
164
+ color: var(--text-primary);
165
+ }
166
+
167
+ /* ===== CONTAINER ===== */
168
+ .container {
169
+ max-width: 1200px;
170
+ margin: 0 auto;
171
+ padding: 6rem 2rem 2rem;
172
+ }
173
+
174
+ /* ===== HERO SECTION ===== */
175
+ .hero {
176
+ min-height: 90vh;
177
+ display: flex;
178
+ align-items: center;
179
+ justify-content: center;
180
+ text-align: center;
181
+ position: relative;
182
+ }
183
+
184
+ .hero-content {
185
+ background: var(--glass-bg);
186
+ backdrop-filter: blur(10px);
187
+ -webkit-backdrop-filter: blur(10px);
188
+ border-radius: 30px;
189
+ border: 1px solid var(--glass-border);
190
+ padding: 3rem;
191
+ box-shadow: var(--shadow);
192
+ max-width: 800px;
193
+ animation: fadeInUp 1s ease;
194
+ }
195
+
196
+ .profile-image {
197
+ width: 200px;
198
+ height: 200px;
199
+ border-radius: 50%;
200
+ margin: 0 auto 2rem;
201
+ border: 5px solid var(--glass-border);
202
+ box-shadow: var(--shadow);
203
+ object-fit: cover;
204
+ }
205
+
206
+ .hero h1 {
207
+ font-size: 3rem;
208
+ margin-bottom: 0.5rem;
209
+ background: var(--gradient);
210
+ -webkit-background-clip: text;
211
+ -webkit-text-fill-color: transparent;
212
+ background-clip: text;
213
+ }
214
+
215
+ .hero .subtitle {
216
+ font-size: 1.5rem;
217
+ color: var(--text-secondary);
218
+ margin-bottom: 1rem;
219
+ }
220
+
221
+ .hero .description {
222
+ color: var(--text-secondary);
223
+ max-width: 600px;
224
+ margin: 0 auto 2rem;
225
+ line-height: 1.8;
226
+ }
227
+
228
+ .social-links {
229
+ display: flex;
230
+ gap: 1rem;
231
+ justify-content: center;
232
+ margin-top: 2rem;
233
+ }
234
+
235
+ .social-link {
236
+ background: var(--glass-bg);
237
+ border: 1px solid var(--glass-border);
238
+ padding: 0.75rem 1.5rem;
239
+ border-radius: 50px;
240
+ text-decoration: none;
241
+ color: var(--text-primary);
242
+ display: flex;
243
+ align-items: center;
244
+ gap: 0.5rem;
245
+ transition: all 0.3s ease;
246
+ }
247
+
248
+ .social-link:hover {
249
+ transform: translateY(-3px);
250
+ box-shadow: var(--shadow);
251
+ background: var(--accent);
252
+ color: white;
253
+ }
254
+
255
+ /* ===== SECTIONS ===== */
256
+ section {
257
+ margin-bottom: 4rem;
258
+ }
259
+
260
+ .section-title {
261
+ font-size: 2.5rem;
262
+ margin-bottom: 2rem;
263
+ text-align: center;
264
+ background: var(--gradient);
265
+ -webkit-background-clip: text;
266
+ -webkit-text-fill-color: transparent;
267
+ background-clip: text;
268
+ }
269
+
270
+ /* ===== GLASS CARDS ===== */
271
+ .glass-card {
272
+ background: var(--glass-bg);
273
+ backdrop-filter: blur(10px);
274
+ -webkit-backdrop-filter: blur(10px);
275
+ border-radius: 20px;
276
+ border: 1px solid var(--glass-border);
277
+ padding: 2rem;
278
+ margin-bottom: 1.5rem;
279
+ box-shadow: var(--shadow);
280
+ transition: all 0.3s ease;
281
+ }
282
+
283
+ .glass-card:hover {
284
+ transform: translateY(-5px);
285
+ box-shadow: 0 12px 40px 0 rgba(31, 38, 135, 0.2);
286
+ }
287
+
288
+ /* ===== EDUCATION STATS ===== */
289
+ .education-stats {
290
+ display: flex;
291
+ justify-content: space-around;
292
+ margin-top: 2rem;
293
+ flex-wrap: wrap;
294
+ gap: 1rem;
295
+ }
296
+
297
+ .stat-item {
298
+ text-align: center;
299
+ }
300
+
301
+ .stat-number {
302
+ font-size: 2.5rem;
303
+ font-weight: 700;
304
+ background: var(--gradient);
305
+ -webkit-background-clip: text;
306
+ -webkit-text-fill-color: transparent;
307
+ background-clip: text;
308
+ }
309
+
310
+ .stat-label {
311
+ color: var(--text-secondary);
312
+ font-size: 0.9rem;
313
+ }
314
+
315
+ /* ===== PUBLICATIONS ===== */
316
+ .publication-item {
317
+ margin-bottom: 1.5rem;
318
+ }
319
+
320
+ .publication-item h4 {
321
+ color: var(--text-primary);
322
+ margin-bottom: 0.5rem;
323
+ line-height: 1.6;
324
+ }
325
+
326
+ .publication-meta {
327
+ color: var(--text-secondary);
328
+ font-size: 0.9rem;
329
+ font-style: italic;
330
+ }
331
+
332
+ .doi-link {
333
+ color: var(--accent);
334
+ text-decoration: none;
335
+ font-weight: 500;
336
+ }
337
+
338
+ .doi-link:hover {
339
+ text-decoration: underline;
340
+ }
341
+
342
+ /* ===== TIMELINE ===== */
343
+ .timeline {
344
+ position: relative;
345
+ padding-left: 2rem;
346
+ }
347
+
348
+ .timeline::before {
349
+ content: "";
350
+ position: absolute;
351
+ left: 0;
352
+ top: 0;
353
+ height: 100%;
354
+ width: 2px;
355
+ background: var(--accent);
356
+ }
357
+
358
+ .timeline-item {
359
+ position: relative;
360
+ margin-bottom: 2rem;
361
+ padding-left: 2rem;
362
+ }
363
+
364
+ .timeline-item::before {
365
+ content: "";
366
+ position: absolute;
367
+ left: -2.5rem;
368
+ top: 0;
369
+ width: 12px;
370
+ height: 12px;
371
+ border-radius: 50%;
372
+ background: var(--accent);
373
+ border: 3px solid var(--bg-primary);
374
+ }
375
+
376
+ .timeline-item h3 {
377
+ color: var(--text-primary);
378
+ margin-bottom: 0.5rem;
379
+ }
380
+
381
+ .timeline-date {
382
+ color: var(--accent);
383
+ font-weight: 600;
384
+ margin-bottom: 0.5rem;
385
+ }
386
+
387
+ .timeline-content {
388
+ color: var(--text-secondary);
389
+ }
390
+
391
+ /* ===== SKILLS GRID ===== */
392
+ .skills-grid {
393
+ display: grid;
394
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
395
+ gap: 1.5rem;
396
+ }
397
+
398
+ .skill-category h3 {
399
+ color: var(--accent);
400
+ margin-bottom: 1rem;
401
+ }
402
+
403
+ .skill-list {
404
+ list-style: none;
405
+ }
406
+
407
+ .skill-list li {
408
+ padding: 0.5rem 0;
409
+ color: var(--text-secondary);
410
+ position: relative;
411
+ padding-left: 1.5rem;
412
+ }
413
+
414
+ .skill-list li::before {
415
+ content: "▹";
416
+ position: absolute;
417
+ left: 0;
418
+ color: var(--accent);
419
+ }
420
+
421
+ /* ===== AWARDS GRID ===== */
422
+ .awards-grid {
423
+ display: grid;
424
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
425
+ gap: 1.5rem;
426
+ }
427
+
428
+ .award-item {
429
+ display: flex;
430
+ gap: 1rem;
431
+ align-items: start;
432
+ }
433
+
434
+ .award-icon {
435
+ font-size: 2rem;
436
+ flex-shrink: 0;
437
+ }
438
+
439
+ .award-info h4 {
440
+ color: var(--text-primary);
441
+ margin-bottom: 0.25rem;
442
+ }
443
+
444
+ .award-date {
445
+ color: var(--accent);
446
+ font-size: 0.9rem;
447
+ font-weight: 600;
448
+ }
449
+
450
+ /* ===== CONTACT ===== */
451
+ .contact-info {
452
+ text-align: center;
453
+ font-size: 1.2rem;
454
+ }
455
+
456
+ .contact-info a {
457
+ color: var(--accent);
458
+ text-decoration: none;
459
+ font-weight: 600;
460
+ }
461
+
462
+ .contact-info a:hover {
463
+ text-decoration: underline;
464
+ }
465
+
466
+ /* ===== FOOTER ===== */
467
+ footer {
468
+ text-align: center;
469
+ padding: 2rem;
470
+ color: var(--text-secondary);
471
+ border-top: 1px solid var(--glass-border);
472
+ }
473
+
474
+ /* ===== RESPONSIVE ===== */
475
+ @media (max-width: 768px) {
476
+ .nav-links {
477
+ display: none;
478
+ position: absolute;
479
+ top: 100%;
480
+ left: 0;
481
+ right: 0;
482
+ background: var(--glass-bg);
483
+ backdrop-filter: blur(10px);
484
+ flex-direction: column;
485
+ padding: 1rem;
486
+ border-bottom: 1px solid var(--glass-border);
487
+ }
488
+
489
+ .nav-links.active {
490
+ display: flex;
491
+ }
492
+
493
+ .mobile-menu-btn {
494
+ display: block;
495
+ }
496
+
497
+ .hero h1 {
498
+ font-size: 2rem;
499
+ }
500
+
501
+ .hero .subtitle {
502
+ font-size: 1.2rem;
503
+ }
504
+
505
+ .skills-grid,
506
+ .awards-grid {
507
+ grid-template-columns: 1fr;
508
+ }
509
+
510
+ .social-links {
511
+ flex-direction: column;
512
+ }
513
+
514
+ .container {
515
+ padding: 5rem 1rem 1rem;
516
+ }
517
+
518
+ .hero-content {
519
+ padding: 2rem;
520
+ }
521
+ }
522
+
523
+ /* ===== THEME TOGGLE ICON COLOR ===== */
524
+ .theme-toggle i {
525
+ color: var(--text-primary);
526
+ }
527
+
528
+ /* ===== EXPERIENCE TABS ===== */
529
+ .experience-tabs {
530
+ display: flex;
531
+ justify-content: center;
532
+ gap: 1rem;
533
+ margin-bottom: 2rem;
534
+ flex-wrap: wrap;
535
+ }
536
+
537
+ .tab-btn {
538
+ background: var(--glass-bg);
539
+ border: 1px solid var(--glass-border);
540
+ padding: 0.75rem 1.5rem;
541
+ border-radius: 50px;
542
+ cursor: pointer;
543
+ display: flex;
544
+ align-items: center;
545
+ gap: 0.5rem;
546
+ color: var(--text-primary);
547
+ font-family: "Inter", sans-serif;
548
+ font-size: 1rem;
549
+ font-weight: 500;
550
+ transition: all 0.3s ease;
551
+ }
552
+
553
+ .tab-btn i {
554
+ font-size: 1.2rem;
555
  }
556
 
557
+ .tab-btn:hover {
558
+ transform: translateY(-2px);
559
+ box-shadow: var(--shadow);
560
  }
561
 
562
+ .tab-btn.active {
563
+ background: var(--accent);
564
+ color: white;
565
+ border-color: var(--accent);
 
566
  }
567
 
568
+ .tab-content {
569
+ display: none;
 
 
 
 
570
  }
571
 
572
+ .tab-content.active {
573
+ display: block;
574
+ animation: fadeInUp 0.5s ease;
575
  }