ntphuc149 commited on
Commit
df7eaae
·
verified ·
1 Parent(s): a351edc

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +481 -108
style.css CHANGED
@@ -1,4 +1,4 @@
1
- @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");
2
 
3
  /* ===== BASE STYLES ===== */
4
  * {
@@ -8,42 +8,62 @@
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;
@@ -51,10 +71,36 @@ body::before {
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 {
@@ -83,9 +129,9 @@ 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;
@@ -102,7 +148,7 @@ nav {
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;
@@ -116,13 +162,19 @@ nav {
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;
@@ -130,7 +182,7 @@ nav {
130
  left: 0;
131
  width: 0;
132
  height: 2px;
133
- background: var(--accent);
134
  transition: width 0.3s ease;
135
  }
136
 
@@ -147,12 +199,14 @@ nav {
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 {
@@ -184,35 +238,75 @@ nav {
184
 
185
  .hero-content {
186
  background: var(--glass-bg);
187
- backdrop-filter: blur(10px);
188
- -webkit-backdrop-filter: blur(10px);
189
  border-radius: 30px;
190
  border: 1px solid var(--glass-border);
191
- padding: 3rem;
192
- box-shadow: var(--shadow);
193
- max-width: 800px;
 
194
  animation: fadeInUp 1s ease;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  }
196
 
197
  .profile-image {
198
- width: 288px;
199
- height: 288px;
200
  border-radius: 50%;
201
- margin: 0 auto 2rem;
202
- border: 5px solid var(--glass-border);
203
- box-shadow: var(--shadow);
204
  object-fit: cover;
 
205
  }
206
 
207
  .hero h1 {
208
- font-size: 3rem;
209
- margin-bottom: 0.5rem;
 
 
 
 
 
 
 
210
  background: var(--gradient);
211
  -webkit-background-clip: text;
212
  -webkit-text-fill-color: transparent;
213
  background-clip: text;
214
  }
215
 
 
 
 
 
216
  .hero .subtitle {
217
  font-size: 1.5rem;
218
  color: var(--text-secondary);
@@ -221,25 +315,30 @@ nav {
221
 
222
  .hero .description {
223
  color: var(--text-secondary);
224
- max-width: 600px;
225
- margin: 0 auto 2rem;
226
  line-height: 1.8;
 
 
227
  }
228
 
229
  .social-links {
230
  display: flex;
231
  gap: 1rem;
232
- justify-content: center;
233
- margin-top: 2rem;
 
234
  }
235
 
236
  .social-link {
237
- background: var(--glass-bg);
238
  border: 1px solid var(--glass-border);
239
  padding: 0.75rem 1.5rem;
240
  border-radius: 50px;
241
  text-decoration: none;
242
- color: var(--text-primary);
 
 
243
  display: flex;
244
  align-items: center;
245
  gap: 0.5rem;
@@ -248,9 +347,10 @@ nav {
248
 
249
  .social-link:hover {
250
  transform: translateY(-3px);
251
- box-shadow: var(--shadow);
252
  background: var(--accent);
253
- color: white;
 
 
254
  }
255
 
256
  /* ===== SECTIONS ===== */
@@ -260,30 +360,65 @@ section {
260
 
261
  .section-title {
262
  font-size: 2.5rem;
263
- margin-bottom: 2rem;
 
264
  text-align: center;
265
  background: var(--gradient);
266
  -webkit-background-clip: text;
267
  -webkit-text-fill-color: transparent;
268
  background-clip: text;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  }
270
 
271
  /* ===== GLASS CARDS ===== */
272
  .glass-card {
273
- background: var(--glass-bg);
274
- backdrop-filter: blur(10px);
275
- -webkit-backdrop-filter: blur(10px);
276
- border-radius: 20px;
 
 
277
  border: 1px solid var(--glass-border);
278
  padding: 2rem;
279
  margin-bottom: 1.5rem;
280
- box-shadow: var(--shadow);
281
  transition: all 0.3s ease;
 
282
  }
283
 
284
  .glass-card:hover {
285
- transform: translateY(-5px);
286
- box-shadow: 0 12px 40px 0 rgba(31, 38, 135, 0.2);
 
287
  }
288
 
289
  /* ===== EDUCATION STATS ===== */
@@ -293,52 +428,67 @@ section {
293
  margin-top: 2rem;
294
  flex-wrap: wrap;
295
  gap: 1rem;
296
- text-align: justify;
297
  }
298
 
299
  .stat-item {
300
  text-align: center;
301
- text-align: justify;
 
 
 
 
 
302
  }
303
 
304
  .stat-number {
305
  font-size: 2.5rem;
306
- font-weight: 700;
307
  background: var(--gradient);
308
  -webkit-background-clip: text;
309
  -webkit-text-fill-color: transparent;
310
  background-clip: text;
311
- text-align: justify;
312
  }
313
 
314
  .stat-label {
315
  color: var(--text-secondary);
316
- font-size: 0.9rem;
 
 
 
 
317
  }
318
 
319
  /* ===== PUBLICATIONS ===== */
320
  .publication-item {
321
  margin-bottom: 1.5rem;
 
 
322
  text-align: justify;
323
  }
324
 
 
 
 
 
 
 
325
  .publication-item h4 {
326
  color: var(--text-primary);
327
  margin-bottom: 0.5rem;
328
  line-height: 1.6;
329
- text-align: justify;
330
  }
331
 
332
  .publication-meta {
333
  color: var(--text-secondary);
334
- font-size: 0.9rem;
335
  font-style: italic;
336
- text-align: justify;
337
  line-height: 1.6;
338
  }
339
 
340
  .doi-link {
341
- color: var(--text-primary);
342
  text-decoration: none;
343
  font-weight: 500;
344
  }
@@ -365,7 +515,7 @@ section {
365
  }
366
 
367
  .paper-title-link:hover {
368
- color: var(--accent);
369
  }
370
 
371
  .paper-title-link:hover i {
@@ -386,7 +536,12 @@ section {
386
  top: 0;
387
  height: 100%;
388
  width: 2px;
389
- background: var(--accent);
 
 
 
 
 
390
  }
391
 
392
  .timeline-item {
@@ -398,19 +553,20 @@ section {
398
  .timeline-item::before {
399
  content: "";
400
  position: absolute;
401
- left: -2.5rem;
402
- top: 0;
403
- width: 12px;
404
- height: 12px;
 
405
  border-radius: 50%;
406
- background: var(--accent);
407
- border: 3px solid var(--bg-primary);
408
  }
409
 
410
  .timeline-item h3 {
411
  color: var(--text-primary);
 
412
  margin-bottom: 0.5rem;
413
- text-align: justify;
414
  }
415
 
416
  .timeline-item p {
@@ -418,13 +574,18 @@ section {
418
  }
419
 
420
  .timeline-date {
421
- color: var(--accent);
 
 
 
422
  font-weight: 600;
423
  margin-bottom: 0.5rem;
424
  }
425
 
426
  .timeline-content {
427
  color: var(--text-secondary);
 
 
428
  }
429
 
430
  /* ===== SKILLS GRID ===== */
@@ -435,7 +596,11 @@ section {
435
  }
436
 
437
  .skill-category h3 {
438
- color: var(--accent);
 
 
 
 
439
  margin-bottom: 1rem;
440
  }
441
 
@@ -445,16 +610,27 @@ section {
445
 
446
  .skill-list li {
447
  padding: 0.5rem 0;
 
448
  color: var(--text-secondary);
449
  position: relative;
450
  padding-left: 1.5rem;
 
 
 
 
 
451
  }
452
 
453
  .skill-list li::before {
454
- content: "";
455
  position: absolute;
456
  left: 0;
457
- color: var(--accent);
 
 
 
 
 
458
  }
459
 
460
  /* ===== AWARDS GRID ===== */
@@ -468,27 +644,40 @@ section {
468
  display: flex;
469
  gap: 1rem;
470
  align-items: start;
 
 
 
 
 
 
 
 
 
471
  }
472
 
473
  .award-icon {
474
- font-size: 2rem;
475
  flex-shrink: 0;
 
476
  }
477
 
478
  .award-info h4 {
479
  color: var(--text-primary);
 
480
  margin-bottom: 0.25rem;
481
- text-align: justify;
482
  }
483
 
484
  .award-info p {
485
- text-align: justify;
486
  }
487
 
488
  .award-date {
489
- color: var(--accent);
490
- font-size: 0.9rem;
 
 
491
  font-weight: 600;
 
492
  }
493
 
494
  /* ===== CONTACT ===== */
@@ -498,12 +687,14 @@ section {
498
  }
499
 
500
  .contact-info a {
501
- color: var(--accent);
502
  text-decoration: none;
503
  font-weight: 600;
 
504
  }
505
 
506
  .contact-info a:hover {
 
507
  text-decoration: underline;
508
  }
509
 
@@ -511,8 +702,11 @@ section {
511
  footer {
512
  text-align: center;
513
  padding: 2rem;
514
- color: var(--text-secondary);
515
  border-top: 1px solid var(--glass-border);
 
 
 
516
  }
517
 
518
  /* ===== RESPONSIVE ===== */
@@ -523,8 +717,8 @@ footer {
523
  top: 100%;
524
  left: 0;
525
  right: 0;
526
- background: var(--glass-bg);
527
- backdrop-filter: blur(10px);
528
  flex-direction: column;
529
  padding: 1rem;
530
  border-bottom: 1px solid var(--glass-border);
@@ -538,8 +732,30 @@ footer {
538
  display: block;
539
  }
540
 
 
 
 
 
 
 
 
 
 
 
 
 
541
  .hero h1 {
542
- font-size: 2rem;
 
 
 
 
 
 
 
 
 
 
543
  }
544
 
545
  .hero {
@@ -550,6 +766,11 @@ footer {
550
  font-size: 1.2rem;
551
  }
552
 
 
 
 
 
 
553
  .skills-grid,
554
  .awards-grid {
555
  grid-template-columns: 1fr;
@@ -568,9 +789,9 @@ footer {
568
  }
569
  }
570
 
571
- /* ===== THEME TOGGLE ICON COLOR ===== */
572
- .theme-toggle i {
573
- color: var(--text-primary);
574
  }
575
 
576
  /* ===== EXPERIENCE TABS ===== */
@@ -583,7 +804,7 @@ footer {
583
  }
584
 
585
  .tab-btn {
586
- background: var(--glass-bg);
587
  border: 1px solid var(--glass-border);
588
  padding: 0.75rem 1.5rem;
589
  border-radius: 50px;
@@ -591,26 +812,29 @@ footer {
591
  display: flex;
592
  align-items: center;
593
  gap: 0.5rem;
594
- color: var(--text-primary);
595
- font-family: "Inter", sans-serif;
596
- font-size: 1rem;
597
  font-weight: 500;
598
  transition: all 0.3s ease;
599
  }
600
 
601
  .tab-btn i {
602
- font-size: 1.2rem;
603
  }
604
 
605
  .tab-btn:hover {
606
  transform: translateY(-2px);
607
- box-shadow: var(--shadow);
 
608
  }
609
 
610
  .tab-btn.active {
611
- background: var(--accent);
612
- color: white;
613
- border-color: var(--accent);
 
 
614
  }
615
 
616
  .tab-content {
@@ -629,6 +853,7 @@ footer {
629
  transition: all 0.3s ease;
630
  position: relative;
631
  display: inline-block;
 
632
  }
633
 
634
  .cert-link i {
@@ -641,10 +866,158 @@ footer {
641
  }
642
 
643
  .cert-link:hover {
644
- color: var(--accent);
645
  }
646
 
647
  .cert-link:hover i {
648
  opacity: 1;
649
  transform: translateX(0);
650
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap");
2
 
3
  /* ===== BASE STYLES ===== */
4
  * {
 
8
  }
9
 
10
  :root {
11
+ --bg-primary: #0b0905;
12
+ --bg-secondary: #14100a;
13
+ --text-primary: #f7f0e2;
14
+ --text-secondary: #b9a784;
15
+ --text-muted: #8a7c60;
16
+ --accent: #f5a623;
17
+ --accent-hover: #ffc24b;
18
+ --accent-soft: #ffd97d;
19
+ --accent-deep: #b9750a;
20
+ --gradient: linear-gradient(
21
+ 118deg,
22
+ #ffe09a 0%,
23
+ #ffc24b 38%,
24
+ #f5a623 64%,
25
+ #e07b00 100%
26
+ );
27
+ --glass-bg: rgba(255, 182, 62, 0.045);
28
+ --glass-border: rgba(245, 166, 35, 0.18);
29
+ --shadow: 0 0 40px rgba(245, 166, 35, 0.18);
30
+ --line: rgba(245, 166, 35, 0.16);
31
+ --nav-bg: rgba(11, 9, 5, 0.85);
32
+ --grid-line: rgba(245, 166, 35, 0.05);
33
+ }
34
+
35
+ [data-theme="light"] {
36
+ --bg-primary: #f8f9fb;
37
+ --bg-secondary: #eef0f5;
38
+ --text-primary: #1a1f3a;
39
+ --text-secondary: #4a5568;
40
+ --text-muted: #8896b0;
41
+ --accent: #d4920a;
42
+ --accent-hover: #b8780a;
43
+ --accent-soft: #e8a80e;
44
+ --accent-deep: #8a5c06;
45
+ --gradient: linear-gradient(118deg, #e8a80e 0%, #d4920a 38%, #b8780a 64%, #8a5c06 100%);
46
+ --glass-bg: rgba(26, 31, 58, 0.04);
47
+ --glass-border: rgba(100, 120, 180, 0.15);
48
+ --shadow: 0 0 40px rgba(212, 146, 10, 0.15);
49
+ --nav-bg: rgba(248, 249, 251, 0.92);
50
+ --grid-line: rgba(100, 120, 180, 0.1);
51
  }
52
 
53
  body {
54
+ font-family: "Be Vietnam Pro", system-ui, sans-serif;
55
  background: var(--bg-primary);
56
  color: var(--text-primary);
57
  line-height: 1.6;
 
58
  overflow-x: hidden;
59
+ -webkit-font-smoothing: antialiased;
60
  }
61
 
62
  html {
63
  scroll-behavior: smooth;
64
  }
65
 
66
+ /* ===== AMBIENT BACKGROUND ===== */
67
  body::before {
68
  content: "";
69
  position: fixed;
 
71
  left: 0;
72
  width: 100%;
73
  height: 100%;
74
+ background:
75
+ radial-gradient(
76
+ 1200px 700px at 78% -8%,
77
+ rgba(255, 170, 40, 0.18),
78
+ transparent 60%
79
+ ),
80
+ radial-gradient(
81
+ 900px 600px at 10% 110%,
82
+ rgba(185, 117, 10, 0.12),
83
+ transparent 60%
84
+ ),
85
+ linear-gradient(160deg, #0b0905 0%, #100c06 50%, #0a0804 100%);
86
+ z-index: -2;
87
+ pointer-events: none;
88
+ }
89
+
90
+ body::after {
91
+ content: "";
92
+ position: fixed;
93
+ top: 0;
94
+ left: 0;
95
+ width: 100%;
96
+ height: 100%;
97
+ background-image:
98
+ linear-gradient(var(--grid-line) 1px, transparent 1px),
99
+ linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
100
+ background-size: 54px 54px;
101
  z-index: -1;
102
+ pointer-events: none;
103
+ opacity: 0.7;
104
  }
105
 
106
  @keyframes gradientShift {
 
129
  position: fixed;
130
  top: 0;
131
  width: 100%;
132
+ background: var(--nav-bg);
133
+ backdrop-filter: blur(12px);
134
+ -webkit-backdrop-filter: blur(12px);
135
  border-bottom: 1px solid var(--glass-border);
136
  z-index: 1000;
137
  padding: 1rem 0;
 
148
 
149
  .logo {
150
  font-size: 1.5rem;
151
+ font-weight: 800;
152
  background: var(--gradient);
153
  -webkit-background-clip: text;
154
  -webkit-text-fill-color: transparent;
 
162
  }
163
 
164
  .nav-links a {
165
+ color: var(--text-secondary);
166
  text-decoration: none;
167
  font-weight: 500;
168
+ font-size: 0.9rem;
169
+ letter-spacing: 0.02em;
170
  transition: color 0.3s ease;
171
  position: relative;
172
  }
173
 
174
+ .nav-links a:hover {
175
+ color: var(--accent-hover);
176
+ }
177
+
178
  .nav-links a::after {
179
  content: "";
180
  position: absolute;
 
182
  left: 0;
183
  width: 0;
184
  height: 2px;
185
+ background: var(--gradient);
186
  transition: width 0.3s ease;
187
  }
188
 
 
199
  display: flex;
200
  align-items: center;
201
  gap: 0.5rem;
202
+ color: var(--text-primary);
203
  transition: all 0.3s ease;
204
  }
205
 
206
  .theme-toggle:hover {
207
+ background: var(--accent);
208
+ color: var(--bg-primary);
209
+ border-color: var(--accent);
210
  }
211
 
212
  .mobile-menu-btn {
 
238
 
239
  .hero-content {
240
  background: var(--glass-bg);
 
 
241
  border-radius: 30px;
242
  border: 1px solid var(--glass-border);
243
+ padding: 3rem 3.5rem;
244
+ box-shadow: 0 0 60px rgba(245, 166, 35, 0.12);
245
+ max-width: 900px;
246
+ width: 100%;
247
  animation: fadeInUp 1s ease;
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 3rem;
251
+ }
252
+
253
+ .hero-left {
254
+ flex: 1;
255
+ display: flex;
256
+ flex-direction: column;
257
+ align-items: flex-start;
258
+ }
259
+
260
+ .hero-right {
261
+ flex-shrink: 0;
262
+ }
263
+
264
+ .hero-badge {
265
+ display: inline-flex;
266
+ align-items: center;
267
+ gap: 8px;
268
+ font-family: "JetBrains Mono", monospace;
269
+ font-size: 0.75rem;
270
+ letter-spacing: 0.2em;
271
+ text-transform: uppercase;
272
+ color: var(--accent-hover);
273
+ border: 1px solid var(--glass-border);
274
+ padding: 8px 16px;
275
+ border-radius: 99px;
276
+ background: rgba(245, 166, 35, 0.06);
277
+ margin-bottom: 1.5rem;
278
  }
279
 
280
  .profile-image {
281
+ width: 240px;
282
+ height: 240px;
283
  border-radius: 50%;
284
+ border: 3px solid var(--glass-border);
285
+ box-shadow: 0 0 40px rgba(245, 166, 35, 0.25);
 
286
  object-fit: cover;
287
+ display: block;
288
  }
289
 
290
  .hero h1 {
291
+ font-size: clamp(2.8rem, 5vw, 4.5rem);
292
+ font-weight: 800;
293
+ margin-bottom: 1rem;
294
+ letter-spacing: -0.02em;
295
+ line-height: 1.05;
296
+ text-align: left;
297
+ }
298
+
299
+ .name-colored {
300
  background: var(--gradient);
301
  -webkit-background-clip: text;
302
  -webkit-text-fill-color: transparent;
303
  background-clip: text;
304
  }
305
 
306
+ .name-white {
307
+ -webkit-text-fill-color: var(--text-primary);
308
+ }
309
+
310
  .hero .subtitle {
311
  font-size: 1.5rem;
312
  color: var(--text-secondary);
 
315
 
316
  .hero .description {
317
  color: var(--text-secondary);
318
+ max-width: 480px;
319
+ margin: 0 0 2rem;
320
  line-height: 1.8;
321
+ font-style: italic;
322
+ text-align: left;
323
  }
324
 
325
  .social-links {
326
  display: flex;
327
  gap: 1rem;
328
+ justify-content: flex-start;
329
+ margin-top: 0;
330
+ flex-wrap: wrap;
331
  }
332
 
333
  .social-link {
334
+ background: rgba(245, 166, 35, 0.06);
335
  border: 1px solid var(--glass-border);
336
  padding: 0.75rem 1.5rem;
337
  border-radius: 50px;
338
  text-decoration: none;
339
+ color: var(--accent-hover);
340
+ font-family: "JetBrains Mono", monospace;
341
+ font-size: 0.85rem;
342
  display: flex;
343
  align-items: center;
344
  gap: 0.5rem;
 
347
 
348
  .social-link:hover {
349
  transform: translateY(-3px);
 
350
  background: var(--accent);
351
+ color: var(--bg-primary);
352
+ border-color: var(--accent);
353
+ box-shadow: 0 0 20px rgba(245, 166, 35, 0.4);
354
  }
355
 
356
  /* ===== SECTIONS ===== */
 
360
 
361
  .section-title {
362
  font-size: 2.5rem;
363
+ font-weight: 800;
364
+ margin-bottom: 0.5rem;
365
  text-align: center;
366
  background: var(--gradient);
367
  -webkit-background-clip: text;
368
  -webkit-text-fill-color: transparent;
369
  background-clip: text;
370
+ letter-spacing: -0.02em;
371
+ }
372
+
373
+ .section-subtitle {
374
+ text-align: center;
375
+ font-family: "JetBrains Mono", monospace;
376
+ font-size: 1rem;
377
+ letter-spacing: 0.1em;
378
+ color: var(--text-muted);
379
+ margin-top: -1em;
380
+ margin-bottom: 0;
381
+ }
382
+
383
+ .section-subtitle::after,
384
+ .section-title::after {
385
+ content: "";
386
+ display: block;
387
+ height: 3px;
388
+ width: 74px;
389
+ border-radius: 3px;
390
+ background: var(--gradient);
391
+ margin: 14px auto 26px;
392
+ box-shadow: var(--shadow);
393
+ }
394
+
395
+ .section-subtitle::after {
396
+ margin-top: 14px;
397
+ }
398
+
399
+ .section-title:has(+ .section-subtitle)::after {
400
+ display: none;
401
  }
402
 
403
  /* ===== GLASS CARDS ===== */
404
  .glass-card {
405
+ background: linear-gradient(
406
+ 180deg,
407
+ rgba(255, 182, 62, 0.055),
408
+ rgba(255, 182, 62, 0.012)
409
+ );
410
+ border-radius: 16px;
411
  border: 1px solid var(--glass-border);
412
  padding: 2rem;
413
  margin-bottom: 1.5rem;
 
414
  transition: all 0.3s ease;
415
+ position: relative;
416
  }
417
 
418
  .glass-card:hover {
419
+ transform: translateY(-4px);
420
+ border-color: rgba(245, 166, 35, 0.45);
421
+ box-shadow: 0 0 30px rgba(245, 166, 35, 0.12);
422
  }
423
 
424
  /* ===== EDUCATION STATS ===== */
 
428
  margin-top: 2rem;
429
  flex-wrap: wrap;
430
  gap: 1rem;
 
431
  }
432
 
433
  .stat-item {
434
  text-align: center;
435
+ border: 1px solid var(--glass-border);
436
+ border-radius: 16px;
437
+ padding: 1.25rem 1.5rem;
438
+ background: rgba(245, 166, 35, 0.04);
439
+ flex: 1;
440
+ min-width: 120px;
441
  }
442
 
443
  .stat-number {
444
  font-size: 2.5rem;
445
+ font-weight: 800;
446
  background: var(--gradient);
447
  -webkit-background-clip: text;
448
  -webkit-text-fill-color: transparent;
449
  background-clip: text;
450
+ line-height: 1;
451
  }
452
 
453
  .stat-label {
454
  color: var(--text-secondary);
455
+ font-size: 0.8rem;
456
+ font-family: "JetBrains Mono", monospace;
457
+ letter-spacing: 0.06em;
458
+ text-transform: uppercase;
459
+ margin-top: 6px;
460
  }
461
 
462
  /* ===== PUBLICATIONS ===== */
463
  .publication-item {
464
  margin-bottom: 1.5rem;
465
+ padding-bottom: 1.5rem;
466
+ border-bottom: 1px solid rgba(245, 166, 35, 0.09);
467
  text-align: justify;
468
  }
469
 
470
+ .publication-item:last-child {
471
+ border-bottom: none;
472
+ margin-bottom: 0;
473
+ padding-bottom: 0;
474
+ }
475
+
476
  .publication-item h4 {
477
  color: var(--text-primary);
478
  margin-bottom: 0.5rem;
479
  line-height: 1.6;
480
+ font-size: 0.95rem;
481
  }
482
 
483
  .publication-meta {
484
  color: var(--text-secondary);
485
+ font-size: 0.85rem;
486
  font-style: italic;
 
487
  line-height: 1.6;
488
  }
489
 
490
  .doi-link {
491
+ color: var(--accent-hover);
492
  text-decoration: none;
493
  font-weight: 500;
494
  }
 
515
  }
516
 
517
  .paper-title-link:hover {
518
+ color: var(--accent-hover);
519
  }
520
 
521
  .paper-title-link:hover i {
 
536
  top: 0;
537
  height: 100%;
538
  width: 2px;
539
+ background: linear-gradient(
540
+ 180deg,
541
+ var(--accent-deep),
542
+ var(--accent-hover),
543
+ var(--accent-deep)
544
+ );
545
  }
546
 
547
  .timeline-item {
 
553
  .timeline-item::before {
554
  content: "";
555
  position: absolute;
556
+ left: -1.9rem;
557
+ top: 0.35rem;
558
+ transform: translateX(-50%);
559
+ width: 11px;
560
+ height: 11px;
561
  border-radius: 50%;
562
+ background: var(--gradient);
563
+ box-shadow: 0 0 10px var(--accent);
564
  }
565
 
566
  .timeline-item h3 {
567
  color: var(--text-primary);
568
+ font-weight: 700;
569
  margin-bottom: 0.5rem;
 
570
  }
571
 
572
  .timeline-item p {
 
574
  }
575
 
576
  .timeline-date {
577
+ font-family: "JetBrains Mono", monospace;
578
+ font-size: 0.8rem;
579
+ letter-spacing: 0.06em;
580
+ color: var(--accent-hover);
581
  font-weight: 600;
582
  margin-bottom: 0.5rem;
583
  }
584
 
585
  .timeline-content {
586
  color: var(--text-secondary);
587
+ font-size: 0.9rem;
588
+ line-height: 1.65;
589
  }
590
 
591
  /* ===== SKILLS GRID ===== */
 
596
  }
597
 
598
  .skill-category h3 {
599
+ font-family: "JetBrains Mono", monospace;
600
+ font-size: 0.8rem;
601
+ letter-spacing: 0.1em;
602
+ text-transform: uppercase;
603
+ color: var(--accent-hover);
604
  margin-bottom: 1rem;
605
  }
606
 
 
610
 
611
  .skill-list li {
612
  padding: 0.5rem 0;
613
+ border-top: 1px solid rgba(245, 166, 35, 0.08);
614
  color: var(--text-secondary);
615
  position: relative;
616
  padding-left: 1.5rem;
617
+ font-size: 0.9rem;
618
+ }
619
+
620
+ .skill-list li:first-child {
621
+ border-top: none;
622
  }
623
 
624
  .skill-list li::before {
625
+ content: "";
626
  position: absolute;
627
  left: 0;
628
+ top: 50%;
629
+ transform: translateY(-50%);
630
+ width: 7px;
631
+ height: 7px;
632
+ border-radius: 2px;
633
+ background: var(--gradient);
634
  }
635
 
636
  /* ===== AWARDS GRID ===== */
 
644
  display: flex;
645
  gap: 1rem;
646
  align-items: start;
647
+ border: 1px solid rgba(245, 166, 35, 0.1);
648
+ border-radius: 12px;
649
+ padding: 1rem;
650
+ background: rgba(245, 166, 35, 0.03);
651
+ transition: border-color 0.3s ease;
652
+ }
653
+
654
+ .award-item:hover {
655
+ border-color: rgba(245, 166, 35, 0.3);
656
  }
657
 
658
  .award-icon {
659
+ font-size: 1.5rem;
660
  flex-shrink: 0;
661
+ color: var(--accent);
662
  }
663
 
664
  .award-info h4 {
665
  color: var(--text-primary);
666
+ font-size: 0.9rem;
667
  margin-bottom: 0.25rem;
 
668
  }
669
 
670
  .award-info p {
671
+ font-size: 0.85rem;
672
  }
673
 
674
  .award-date {
675
+ font-family: "JetBrains Mono", monospace;
676
+ font-size: 0.75rem;
677
+ letter-spacing: 0.06em;
678
+ color: var(--accent-hover);
679
  font-weight: 600;
680
+ margin-bottom: 0.25rem;
681
  }
682
 
683
  /* ===== CONTACT ===== */
 
687
  }
688
 
689
  .contact-info a {
690
+ color: var(--accent-hover);
691
  text-decoration: none;
692
  font-weight: 600;
693
+ font-family: "JetBrains Mono", monospace;
694
  }
695
 
696
  .contact-info a:hover {
697
+ color: var(--accent-soft);
698
  text-decoration: underline;
699
  }
700
 
 
702
  footer {
703
  text-align: center;
704
  padding: 2rem;
705
+ color: var(--text-muted);
706
  border-top: 1px solid var(--glass-border);
707
+ font-family: "JetBrains Mono", monospace;
708
+ font-size: 0.8rem;
709
+ letter-spacing: 0.1em;
710
  }
711
 
712
  /* ===== RESPONSIVE ===== */
 
717
  top: 100%;
718
  left: 0;
719
  right: 0;
720
+ background: var(--nav-bg);
721
+ backdrop-filter: blur(12px);
722
  flex-direction: column;
723
  padding: 1rem;
724
  border-bottom: 1px solid var(--glass-border);
 
732
  display: block;
733
  }
734
 
735
+ .hero-content {
736
+ flex-direction: column-reverse;
737
+ align-items: center;
738
+ padding: 2rem;
739
+ gap: 1.5rem;
740
+ }
741
+
742
+ .hero-left {
743
+ align-items: center;
744
+ text-align: center;
745
+ }
746
+
747
  .hero h1 {
748
+ font-size: 2.4rem;
749
+ text-align: center;
750
+ }
751
+
752
+ .hero .description {
753
+ text-align: center;
754
+ margin: 0 auto 1.5rem;
755
+ }
756
+
757
+ .social-links {
758
+ justify-content: center;
759
  }
760
 
761
  .hero {
 
766
  font-size: 1.2rem;
767
  }
768
 
769
+ .profile-image {
770
+ width: 180px;
771
+ height: 180px;
772
+ }
773
+
774
  .skills-grid,
775
  .awards-grid {
776
  grid-template-columns: 1fr;
 
789
  }
790
  }
791
 
792
+ /* ===== THEME TOGGLE hidden since site is dark-only ===== */
793
+ .theme-toggle {
794
+ display: none;
795
  }
796
 
797
  /* ===== EXPERIENCE TABS ===== */
 
804
  }
805
 
806
  .tab-btn {
807
+ background: rgba(245, 166, 35, 0.05);
808
  border: 1px solid var(--glass-border);
809
  padding: 0.75rem 1.5rem;
810
  border-radius: 50px;
 
812
  display: flex;
813
  align-items: center;
814
  gap: 0.5rem;
815
+ color: var(--text-secondary);
816
+ font-family: "Be Vietnam Pro", sans-serif;
817
+ font-size: 0.9rem;
818
  font-weight: 500;
819
  transition: all 0.3s ease;
820
  }
821
 
822
  .tab-btn i {
823
+ font-size: 1rem;
824
  }
825
 
826
  .tab-btn:hover {
827
  transform: translateY(-2px);
828
+ border-color: rgba(245, 166, 35, 0.4);
829
+ color: var(--accent-hover);
830
  }
831
 
832
  .tab-btn.active {
833
+ background: var(--gradient);
834
+ color: var(--bg-primary);
835
+ border-color: transparent;
836
+ font-weight: 600;
837
+ box-shadow: 0 0 20px rgba(245, 166, 35, 0.3);
838
  }
839
 
840
  .tab-content {
 
853
  transition: all 0.3s ease;
854
  position: relative;
855
  display: inline-block;
856
+ font-size: 0.95rem;
857
  }
858
 
859
  .cert-link i {
 
866
  }
867
 
868
  .cert-link:hover {
869
+ color: var(--accent-hover);
870
  }
871
 
872
  .cert-link:hover i {
873
  opacity: 1;
874
  transform: translateX(0);
875
  }
876
+
877
+ /* ===== GLASS CARD HEADINGS ===== */
878
+ .glass-card h3 {
879
+ font-size: 1.1rem;
880
+ font-weight: 700;
881
+ color: var(--text-primary);
882
+ }
883
+
884
+ .glass-card > h3:first-child,
885
+ .glass-card > p:first-child {
886
+ color: var(--text-primary);
887
+ }
888
+
889
+ /* ===== SECTION HEADING KICKER ===== */
890
+ .section-kicker {
891
+ display: inline-flex;
892
+ align-items: center;
893
+ gap: 8px;
894
+ font-family: "JetBrains Mono", monospace;
895
+ font-size: 0.75rem;
896
+ letter-spacing: 0.18em;
897
+ text-transform: uppercase;
898
+ color: var(--accent-hover);
899
+ margin-bottom: 0.5rem;
900
+ }
901
+
902
+ .section-kicker .dot {
903
+ width: 7px;
904
+ height: 7px;
905
+ border-radius: 50%;
906
+ background: var(--accent);
907
+ box-shadow: 0 0 10px var(--accent);
908
+ }
909
+
910
+ /* ===== VIEW ALL BUTTON ===== */
911
+ .view-all-btn {
912
+ display: inline-flex;
913
+ align-items: center;
914
+ gap: 8px;
915
+ margin-top: 1.5rem;
916
+ margin-left: auto;
917
+ margin-right: 0;
918
+ padding: 10px 20px;
919
+ border: 1px solid var(--glass-border);
920
+ border-radius: 99px;
921
+ background: rgba(245, 166, 35, 0.06);
922
+ color: var(--accent-hover);
923
+ font-family: "JetBrains Mono", monospace;
924
+ font-size: 0.8rem;
925
+ letter-spacing: 0.04em;
926
+ text-decoration: none;
927
+ transition: all 0.3s ease;
928
+ }
929
+
930
+ .view-all-btn:hover {
931
+ background: var(--gradient);
932
+ color: var(--bg-primary);
933
+ border-color: transparent;
934
+ box-shadow: 0 0 20px rgba(245, 166, 35, 0.3);
935
+ }
936
+
937
+ /* ===== PAGE HEADER (subpages) ===== */
938
+ .page-header {
939
+ margin-bottom: 2.5rem;
940
+ }
941
+
942
+ .back-link {
943
+ display: inline-flex;
944
+ align-items: center;
945
+ gap: 8px;
946
+ margin-bottom: 1.5rem;
947
+ padding: 10px 20px;
948
+ border: 1px solid var(--glass-border);
949
+ border-radius: 99px;
950
+ background: rgba(245, 166, 35, 0.06);
951
+ color: var(--accent-hover);
952
+ font-family: "JetBrains Mono", monospace;
953
+ font-size: 0.8rem;
954
+ letter-spacing: 0.04em;
955
+ text-decoration: none;
956
+ transition: all 0.3s ease;
957
+ }
958
+
959
+ .back-link:hover {
960
+ background: var(--gradient);
961
+ color: var(--bg-primary);
962
+ border-color: transparent;
963
+ box-shadow: 0 0 20px rgba(245, 166, 35, 0.3);
964
+ }
965
+
966
+ /* ===== ACTIVE NAV LINK ===== */
967
+ .nav-active {
968
+ color: var(--accent-hover) !important;
969
+ }
970
+
971
+ .nav-active::after {
972
+ width: 100% !important;
973
+ }
974
+
975
+ /* ===== LOGO AS LINK ===== */
976
+ a.logo {
977
+ text-decoration: none;
978
+ }
979
+
980
+ /* ===== THEME TOGGLE FIXED BUTTON ===== */
981
+ .theme-toggle-fixed {
982
+ position: fixed;
983
+ bottom: 2rem;
984
+ right: 2rem;
985
+ width: 44px;
986
+ height: 44px;
987
+ border-radius: 50%;
988
+ border: 1px solid var(--glass-border);
989
+ background: var(--glass-bg);
990
+ backdrop-filter: blur(12px);
991
+ color: var(--accent-hover);
992
+ font-size: 1.1rem;
993
+ cursor: pointer;
994
+ display: flex;
995
+ align-items: center;
996
+ justify-content: center;
997
+ z-index: 999;
998
+ transition: all 0.3s ease;
999
+ box-shadow: 0 0 20px rgba(245, 166, 35, 0.15);
1000
+ }
1001
+
1002
+ .theme-toggle-fixed:hover {
1003
+ background: var(--gradient);
1004
+ color: var(--bg-primary);
1005
+ border-color: transparent;
1006
+ box-shadow: 0 0 24px rgba(245, 166, 35, 0.4);
1007
+ }
1008
+
1009
+ /* ===== LIGHT THEME OVERRIDES ===== */
1010
+ [data-theme="light"] body::before {
1011
+ background:
1012
+ radial-gradient(1200px 700px at 78% -8%, rgba(100, 120, 200, 0.07), transparent 60%),
1013
+ radial-gradient(900px 600px at 10% 110%, rgba(212, 146, 10, 0.06), transparent 60%),
1014
+ linear-gradient(160deg, #f8f9fb 0%, #eef0f5 50%, #f8f9fb 100%);
1015
+ }
1016
+
1017
+ /* ===== SCROLL ANIMATION ===== */
1018
+ @media (prefers-reduced-motion: reduce) {
1019
+ * {
1020
+ animation: none !important;
1021
+ transition: none !important;
1022
+ }
1023
+ }