Spaces:
Running
Running
Upload 44 files
Browse files- .gitattributes +31 -0
- about.html +1378 -0
- achievements.html +594 -0
- contact.html +288 -0
- images/0_rOIc88HfNzBtAhru.gif +3 -0
- images/1 (1).jpg +3 -0
- images/1 (1).mp4 +3 -0
- images/1 (10).jpg +0 -0
- images/1 (11).jpg +3 -0
- images/1 (12).jpg +3 -0
- images/1 (13).jpg +3 -0
- images/1 (14).jpg +3 -0
- images/1 (15).jpg +3 -0
- images/1 (16).jpg +3 -0
- images/1 (17).jpg +3 -0
- images/1 (18).jpg +0 -0
- images/1 (19).jpg +3 -0
- images/1 (2).jpg +3 -0
- images/1 (20).jpg +3 -0
- images/1 (21).jpg +3 -0
- images/1 (22).jpg +3 -0
- images/1 (23).jpg +3 -0
- images/1 (24).jpg +3 -0
- images/1 (25).jpg +3 -0
- images/1 (26).jpg +3 -0
- images/1 (27).jpg +3 -0
- images/1 (28).jpg +0 -0
- images/1 (29).jpg +3 -0
- images/1 (3).jpg +3 -0
- images/1 (30).jpg +3 -0
- images/1 (31).jpg +0 -0
- images/1 (32).jpg +3 -0
- images/1 (33).jpg +3 -0
- images/1 (34).jpg +3 -0
- images/1 (35).jpg +0 -0
- images/1 (36).jpg +3 -0
- images/1 (4).jpg +0 -0
- images/1 (5).jpg +0 -0
- images/1 (6).jpg +3 -0
- images/1 (7).jpg +3 -0
- images/1 (8).jpg +3 -0
- images/1 (9).jpg +3 -0
- images/121415604.jpeg +0 -0
- index.html +1076 -19
- projects.html +1558 -0
.gitattributes
CHANGED
@@ -33,3 +33,34 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
images/0_rOIc88HfNzBtAhru.gif filter=lfs diff=lfs merge=lfs -text
|
37 |
+
images/1[[:space:]](1).jpg filter=lfs diff=lfs merge=lfs -text
|
38 |
+
images/1[[:space:]](1).mp4 filter=lfs diff=lfs merge=lfs -text
|
39 |
+
images/1[[:space:]](11).jpg filter=lfs diff=lfs merge=lfs -text
|
40 |
+
images/1[[:space:]](12).jpg filter=lfs diff=lfs merge=lfs -text
|
41 |
+
images/1[[:space:]](13).jpg filter=lfs diff=lfs merge=lfs -text
|
42 |
+
images/1[[:space:]](14).jpg filter=lfs diff=lfs merge=lfs -text
|
43 |
+
images/1[[:space:]](15).jpg filter=lfs diff=lfs merge=lfs -text
|
44 |
+
images/1[[:space:]](16).jpg filter=lfs diff=lfs merge=lfs -text
|
45 |
+
images/1[[:space:]](17).jpg filter=lfs diff=lfs merge=lfs -text
|
46 |
+
images/1[[:space:]](19).jpg filter=lfs diff=lfs merge=lfs -text
|
47 |
+
images/1[[:space:]](2).jpg filter=lfs diff=lfs merge=lfs -text
|
48 |
+
images/1[[:space:]](20).jpg filter=lfs diff=lfs merge=lfs -text
|
49 |
+
images/1[[:space:]](21).jpg filter=lfs diff=lfs merge=lfs -text
|
50 |
+
images/1[[:space:]](22).jpg filter=lfs diff=lfs merge=lfs -text
|
51 |
+
images/1[[:space:]](23).jpg filter=lfs diff=lfs merge=lfs -text
|
52 |
+
images/1[[:space:]](24).jpg filter=lfs diff=lfs merge=lfs -text
|
53 |
+
images/1[[:space:]](25).jpg filter=lfs diff=lfs merge=lfs -text
|
54 |
+
images/1[[:space:]](26).jpg filter=lfs diff=lfs merge=lfs -text
|
55 |
+
images/1[[:space:]](27).jpg filter=lfs diff=lfs merge=lfs -text
|
56 |
+
images/1[[:space:]](29).jpg filter=lfs diff=lfs merge=lfs -text
|
57 |
+
images/1[[:space:]](3).jpg filter=lfs diff=lfs merge=lfs -text
|
58 |
+
images/1[[:space:]](30).jpg filter=lfs diff=lfs merge=lfs -text
|
59 |
+
images/1[[:space:]](32).jpg filter=lfs diff=lfs merge=lfs -text
|
60 |
+
images/1[[:space:]](33).jpg filter=lfs diff=lfs merge=lfs -text
|
61 |
+
images/1[[:space:]](34).jpg filter=lfs diff=lfs merge=lfs -text
|
62 |
+
images/1[[:space:]](36).jpg filter=lfs diff=lfs merge=lfs -text
|
63 |
+
images/1[[:space:]](6).jpg filter=lfs diff=lfs merge=lfs -text
|
64 |
+
images/1[[:space:]](7).jpg filter=lfs diff=lfs merge=lfs -text
|
65 |
+
images/1[[:space:]](8).jpg filter=lfs diff=lfs merge=lfs -text
|
66 |
+
images/1[[:space:]](9).jpg filter=lfs diff=lfs merge=lfs -text
|
about.html
ADDED
@@ -0,0 +1,1378 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>About & Skills - Pranit Chilbule</title>
|
7 |
+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
8 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
|
9 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
10 |
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/devicons/[email protected]/devicon.min.css">
|
11 |
+
<style>
|
12 |
+
:root {
|
13 |
+
--bg-primary: #0a0a0f;
|
14 |
+
--bg-secondary: #1a1a2e;
|
15 |
+
--bg-card: #16213e;
|
16 |
+
--text-primary: #e6e6fa;
|
17 |
+
--text-secondary: rgba(230, 230, 250, 0.8);
|
18 |
+
--accent-blue: #00d4ff;
|
19 |
+
--accent-purple: #7c3aed;
|
20 |
+
--accent-green: #00ff88;
|
21 |
+
--accent-pink: #ff6b9d;
|
22 |
+
--accent-orange: #ff9500;
|
23 |
+
--header-bg: rgba(10, 10, 15, 0.95);
|
24 |
+
--border-color: #2a2a3e;
|
25 |
+
--shadow-glow: rgba(0, 212, 255, 0.3);
|
26 |
+
--gradient-primary: linear-gradient(135deg, var(--accent-blue), var(--accent-purple));
|
27 |
+
--gradient-secondary: linear-gradient(135deg, var(--accent-green), var(--accent-blue));
|
28 |
+
--gradient-tertiary: linear-gradient(135deg, var(--accent-pink), var(--accent-orange));
|
29 |
+
}
|
30 |
+
|
31 |
+
* {
|
32 |
+
margin: 0;
|
33 |
+
padding: 0;
|
34 |
+
box-sizing: border-box;
|
35 |
+
}
|
36 |
+
|
37 |
+
body {
|
38 |
+
background: var(--bg-primary);
|
39 |
+
color: var(--text-primary);
|
40 |
+
font-family: 'Inter', sans-serif;
|
41 |
+
line-height: 1.6;
|
42 |
+
overflow-x: hidden;
|
43 |
+
}
|
44 |
+
|
45 |
+
/* Animated Background */
|
46 |
+
#three-canvas {
|
47 |
+
position: fixed;
|
48 |
+
top: 0;
|
49 |
+
left: 0;
|
50 |
+
width: 100%;
|
51 |
+
height: 100%;
|
52 |
+
z-index: -1;
|
53 |
+
pointer-events: none;
|
54 |
+
}
|
55 |
+
|
56 |
+
/* Enhanced Header */
|
57 |
+
header {
|
58 |
+
position: fixed;
|
59 |
+
top: 0;
|
60 |
+
left: 0;
|
61 |
+
width: 100%;
|
62 |
+
padding: 1.5rem 2rem;
|
63 |
+
background: var(--header-bg);
|
64 |
+
backdrop-filter: blur(20px) saturate(180%);
|
65 |
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
66 |
+
z-index: 1000;
|
67 |
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
68 |
+
}
|
69 |
+
|
70 |
+
nav {
|
71 |
+
display: flex;
|
72 |
+
justify-content: space-between;
|
73 |
+
align-items: center;
|
74 |
+
max-width: 1400px;
|
75 |
+
margin: 0 auto;
|
76 |
+
}
|
77 |
+
|
78 |
+
.logo {
|
79 |
+
font-family: 'JetBrains Mono', monospace;
|
80 |
+
font-size: 1.8rem;
|
81 |
+
font-weight: 700;
|
82 |
+
background: var(--gradient-primary);
|
83 |
+
-webkit-background-clip: text;
|
84 |
+
-webkit-text-fill-color: transparent;
|
85 |
+
background-clip: text;
|
86 |
+
text-decoration: none;
|
87 |
+
transition: all 0.3s ease;
|
88 |
+
position: relative;
|
89 |
+
}
|
90 |
+
|
91 |
+
.logo::after {
|
92 |
+
content: '';
|
93 |
+
position: absolute;
|
94 |
+
bottom: -5px;
|
95 |
+
left: 0;
|
96 |
+
width: 0;
|
97 |
+
height: 3px;
|
98 |
+
background: var(--gradient-primary);
|
99 |
+
transition: width 0.3s ease;
|
100 |
+
border-radius: 2px;
|
101 |
+
}
|
102 |
+
|
103 |
+
.logo:hover::after {
|
104 |
+
width: 100%;
|
105 |
+
}
|
106 |
+
|
107 |
+
.nav-links {
|
108 |
+
display: flex;
|
109 |
+
list-style: none;
|
110 |
+
gap: 2.5rem;
|
111 |
+
}
|
112 |
+
|
113 |
+
.nav-links a {
|
114 |
+
color: var(--text-primary);
|
115 |
+
text-decoration: none;
|
116 |
+
font-weight: 500;
|
117 |
+
font-size: 1.1rem;
|
118 |
+
transition: all 0.3s ease;
|
119 |
+
position: relative;
|
120 |
+
padding: 0.5rem 1rem;
|
121 |
+
border-radius: 25px;
|
122 |
+
}
|
123 |
+
|
124 |
+
.nav-links a:hover,
|
125 |
+
.nav-links a.active {
|
126 |
+
color: var(--accent-blue);
|
127 |
+
background: rgba(0, 212, 255, 0.1);
|
128 |
+
transform: translateY(-2px);
|
129 |
+
}
|
130 |
+
|
131 |
+
.nav-links a::before {
|
132 |
+
content: '';
|
133 |
+
position: absolute;
|
134 |
+
top: 0;
|
135 |
+
left: 0;
|
136 |
+
right: 0;
|
137 |
+
bottom: 0;
|
138 |
+
background: var(--gradient-primary);
|
139 |
+
border-radius: 25px;
|
140 |
+
opacity: 0;
|
141 |
+
transition: opacity 0.3s ease;
|
142 |
+
z-index: -1;
|
143 |
+
}
|
144 |
+
|
145 |
+
.nav-links a:hover::before {
|
146 |
+
opacity: 0.1;
|
147 |
+
}
|
148 |
+
|
149 |
+
/* Main Content */
|
150 |
+
main {
|
151 |
+
margin-top: 100px;
|
152 |
+
padding: 2rem 0;
|
153 |
+
position: relative;
|
154 |
+
z-index: 1;
|
155 |
+
}
|
156 |
+
|
157 |
+
.container {
|
158 |
+
max-width: 1400px;
|
159 |
+
margin: 0 auto;
|
160 |
+
padding: 0 2rem;
|
161 |
+
}
|
162 |
+
|
163 |
+
/* Enhanced About Section */
|
164 |
+
#about {
|
165 |
+
padding: 5rem 2rem;
|
166 |
+
margin-bottom: 5rem;
|
167 |
+
background: rgba(22, 33, 62, 0.4);
|
168 |
+
backdrop-filter: blur(20px) saturate(180%);
|
169 |
+
border-radius: 30px;
|
170 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
171 |
+
position: relative;
|
172 |
+
overflow: hidden;
|
173 |
+
}
|
174 |
+
|
175 |
+
#about::before {
|
176 |
+
content: '';
|
177 |
+
position: absolute;
|
178 |
+
top: 0;
|
179 |
+
left: 0;
|
180 |
+
right: 0;
|
181 |
+
bottom: 0;
|
182 |
+
background: var(--gradient-primary);
|
183 |
+
opacity: 0.05;
|
184 |
+
border-radius: 30px;
|
185 |
+
}
|
186 |
+
|
187 |
+
.about-grid {
|
188 |
+
display: grid;
|
189 |
+
grid-template-columns: 1fr 2fr;
|
190 |
+
gap: 5rem;
|
191 |
+
align-items: center;
|
192 |
+
max-width: 1400px;
|
193 |
+
margin: 0 auto;
|
194 |
+
position: relative;
|
195 |
+
z-index: 1;
|
196 |
+
}
|
197 |
+
|
198 |
+
.profile-section {
|
199 |
+
text-align: center;
|
200 |
+
position: relative;
|
201 |
+
}
|
202 |
+
|
203 |
+
.profile-image {
|
204 |
+
position: relative;
|
205 |
+
display: inline-block;
|
206 |
+
}
|
207 |
+
|
208 |
+
.profile-image::before {
|
209 |
+
content: '';
|
210 |
+
position: absolute;
|
211 |
+
top: -20px;
|
212 |
+
left: -20px;
|
213 |
+
right: -20px;
|
214 |
+
bottom: -20px;
|
215 |
+
background: var(--gradient-primary);
|
216 |
+
border-radius: 50%;
|
217 |
+
animation: rotate 10s linear infinite;
|
218 |
+
z-index: -1;
|
219 |
+
}
|
220 |
+
|
221 |
+
.profile-image img {
|
222 |
+
width: 250px;
|
223 |
+
height: 250px;
|
224 |
+
border-radius: 50%;
|
225 |
+
border: 6px solid var(--bg-primary);
|
226 |
+
box-shadow: 0 20px 60px var(--shadow-glow);
|
227 |
+
object-fit: cover;
|
228 |
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
229 |
+
position: relative;
|
230 |
+
z-index: 1;
|
231 |
+
}
|
232 |
+
|
233 |
+
.profile-image:hover img {
|
234 |
+
transform: scale(1.05);
|
235 |
+
box-shadow: 0 30px 80px var(--shadow-glow);
|
236 |
+
}
|
237 |
+
|
238 |
+
.status-badge {
|
239 |
+
position: absolute;
|
240 |
+
bottom: 20px;
|
241 |
+
right: 20px;
|
242 |
+
background: var(--gradient-secondary);
|
243 |
+
color: white;
|
244 |
+
padding: 0.5rem 1rem;
|
245 |
+
border-radius: 20px;
|
246 |
+
font-size: 0.9rem;
|
247 |
+
font-weight: 600;
|
248 |
+
box-shadow: 0 10px 30px rgba(0, 255, 136, 0.3);
|
249 |
+
animation: pulse 2s infinite;
|
250 |
+
}
|
251 |
+
|
252 |
+
.about-content h2 {
|
253 |
+
font-size: 3.5rem;
|
254 |
+
margin-bottom: 2rem;
|
255 |
+
background: var(--gradient-primary);
|
256 |
+
-webkit-background-clip: text;
|
257 |
+
-webkit-text-fill-color: transparent;
|
258 |
+
background-clip: text;
|
259 |
+
font-weight: 700;
|
260 |
+
line-height: 1.2;
|
261 |
+
}
|
262 |
+
|
263 |
+
.about-content p {
|
264 |
+
font-size: 1.2rem;
|
265 |
+
margin-bottom: 2rem;
|
266 |
+
opacity: 0.9;
|
267 |
+
line-height: 1.8;
|
268 |
+
}
|
269 |
+
|
270 |
+
.about-highlights {
|
271 |
+
display: grid;
|
272 |
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
273 |
+
gap: 2rem;
|
274 |
+
margin-top: 3rem;
|
275 |
+
}
|
276 |
+
|
277 |
+
.highlight-card {
|
278 |
+
background: rgba(255, 255, 255, 0.05);
|
279 |
+
padding: 2rem;
|
280 |
+
border-radius: 20px;
|
281 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
282 |
+
transition: all 0.3s ease;
|
283 |
+
text-align: center;
|
284 |
+
}
|
285 |
+
|
286 |
+
.highlight-card:hover {
|
287 |
+
transform: translateY(-10px);
|
288 |
+
background: rgba(255, 255, 255, 0.1);
|
289 |
+
box-shadow: 0 20px 40px rgba(0, 212, 255, 0.2);
|
290 |
+
}
|
291 |
+
|
292 |
+
.highlight-card i {
|
293 |
+
font-size: 2.5rem;
|
294 |
+
margin-bottom: 1rem;
|
295 |
+
background: var(--gradient-primary);
|
296 |
+
-webkit-background-clip: text;
|
297 |
+
-webkit-text-fill-color: transparent;
|
298 |
+
background-clip: text;
|
299 |
+
}
|
300 |
+
|
301 |
+
.highlight-card h4 {
|
302 |
+
font-size: 1.1rem;
|
303 |
+
margin-bottom: 0.5rem;
|
304 |
+
color: var(--accent-blue);
|
305 |
+
}
|
306 |
+
|
307 |
+
.highlight-card p {
|
308 |
+
font-size: 0.9rem;
|
309 |
+
opacity: 0.8;
|
310 |
+
margin: 0;
|
311 |
+
}
|
312 |
+
|
313 |
+
/* Enhanced Education Timeline */
|
314 |
+
.timeline-section {
|
315 |
+
padding: 5rem 2rem;
|
316 |
+
margin-bottom: 5rem;
|
317 |
+
background: rgba(22, 33, 62, 0.4);
|
318 |
+
backdrop-filter: blur(20px) saturate(180%);
|
319 |
+
border-radius: 30px;
|
320 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
321 |
+
position: relative;
|
322 |
+
overflow: hidden;
|
323 |
+
}
|
324 |
+
|
325 |
+
.timeline-section::before {
|
326 |
+
content: '';
|
327 |
+
position: absolute;
|
328 |
+
top: 0;
|
329 |
+
left: 0;
|
330 |
+
right: 0;
|
331 |
+
bottom: 0;
|
332 |
+
background: var(--gradient-secondary);
|
333 |
+
opacity: 0.05;
|
334 |
+
border-radius: 30px;
|
335 |
+
}
|
336 |
+
|
337 |
+
.timeline-section h2 {
|
338 |
+
text-align: center;
|
339 |
+
font-size: 3rem;
|
340 |
+
margin-bottom: 4rem;
|
341 |
+
background: var(--gradient-secondary);
|
342 |
+
-webkit-background-clip: text;
|
343 |
+
-webkit-text-fill-color: transparent;
|
344 |
+
background-clip: text;
|
345 |
+
font-weight: 700;
|
346 |
+
position: relative;
|
347 |
+
z-index: 1;
|
348 |
+
}
|
349 |
+
|
350 |
+
.timeline {
|
351 |
+
position: relative;
|
352 |
+
max-width: 1000px;
|
353 |
+
margin: 0 auto;
|
354 |
+
}
|
355 |
+
|
356 |
+
.timeline::before {
|
357 |
+
content: '';
|
358 |
+
position: absolute;
|
359 |
+
left: 50%;
|
360 |
+
top: 0;
|
361 |
+
bottom: 0;
|
362 |
+
width: 4px;
|
363 |
+
background: var(--gradient-primary);
|
364 |
+
transform: translateX(-50%);
|
365 |
+
border-radius: 2px;
|
366 |
+
}
|
367 |
+
|
368 |
+
.timeline-item {
|
369 |
+
position: relative;
|
370 |
+
margin-bottom: 4rem;
|
371 |
+
width: 50%;
|
372 |
+
}
|
373 |
+
|
374 |
+
.timeline-item:nth-child(odd) {
|
375 |
+
left: 0;
|
376 |
+
padding-right: 3rem;
|
377 |
+
}
|
378 |
+
|
379 |
+
.timeline-item:nth-child(even) {
|
380 |
+
left: 50%;
|
381 |
+
padding-left: 3rem;
|
382 |
+
}
|
383 |
+
|
384 |
+
.timeline-date {
|
385 |
+
position: absolute;
|
386 |
+
top: 50%;
|
387 |
+
width: 80px;
|
388 |
+
height: 80px;
|
389 |
+
background: var(--gradient-primary);
|
390 |
+
border-radius: 50%;
|
391 |
+
display: flex;
|
392 |
+
align-items: center;
|
393 |
+
justify-content: center;
|
394 |
+
font-weight: bold;
|
395 |
+
font-size: 1rem;
|
396 |
+
transform: translateY(-50%);
|
397 |
+
box-shadow: 0 0 0 6px var(--bg-primary), 0 20px 40px rgba(0, 212, 255, 0.3);
|
398 |
+
z-index: 2;
|
399 |
+
}
|
400 |
+
|
401 |
+
.timeline-item:nth-child(odd) .timeline-date {
|
402 |
+
right: -40px;
|
403 |
+
}
|
404 |
+
|
405 |
+
.timeline-item:nth-child(even) .timeline-date {
|
406 |
+
left: -40px;
|
407 |
+
}
|
408 |
+
|
409 |
+
.timeline-content {
|
410 |
+
background: rgba(255, 255, 255, 0.05);
|
411 |
+
padding: 2.5rem;
|
412 |
+
border-radius: 20px;
|
413 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
414 |
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
415 |
+
position: relative;
|
416 |
+
overflow: hidden;
|
417 |
+
}
|
418 |
+
|
419 |
+
.timeline-content::before {
|
420 |
+
content: '';
|
421 |
+
position: absolute;
|
422 |
+
top: 0;
|
423 |
+
left: 0;
|
424 |
+
right: 0;
|
425 |
+
bottom: 0;
|
426 |
+
background: var(--gradient-primary);
|
427 |
+
opacity: 0;
|
428 |
+
transition: opacity 0.3s ease;
|
429 |
+
}
|
430 |
+
|
431 |
+
.timeline-content:hover {
|
432 |
+
transform: translateY(-10px);
|
433 |
+
box-shadow: 0 30px 60px rgba(0, 212, 255, 0.2);
|
434 |
+
}
|
435 |
+
|
436 |
+
.timeline-content:hover::before {
|
437 |
+
opacity: 0.05;
|
438 |
+
}
|
439 |
+
|
440 |
+
.timeline-content h3 {
|
441 |
+
color: var(--accent-blue);
|
442 |
+
font-size: 1.5rem;
|
443 |
+
margin-bottom: 1rem;
|
444 |
+
display: flex;
|
445 |
+
align-items: center;
|
446 |
+
gap: 1rem;
|
447 |
+
position: relative;
|
448 |
+
z-index: 1;
|
449 |
+
}
|
450 |
+
|
451 |
+
.timeline-content h3 i {
|
452 |
+
font-size: 1.8rem;
|
453 |
+
}
|
454 |
+
|
455 |
+
.timeline-content .degree {
|
456 |
+
font-weight: 600;
|
457 |
+
margin-bottom: 0.5rem;
|
458 |
+
font-size: 1.1rem;
|
459 |
+
position: relative;
|
460 |
+
z-index: 1;
|
461 |
+
}
|
462 |
+
|
463 |
+
.timeline-content .duration {
|
464 |
+
color: var(--text-secondary);
|
465 |
+
font-size: 1rem;
|
466 |
+
position: relative;
|
467 |
+
z-index: 1;
|
468 |
+
}
|
469 |
+
|
470 |
+
/* Enhanced Skills Section */
|
471 |
+
#skills {
|
472 |
+
padding: 5rem 2rem;
|
473 |
+
background: rgba(22, 33, 62, 0.4);
|
474 |
+
backdrop-filter: blur(20px) saturate(180%);
|
475 |
+
border-radius: 30px;
|
476 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
477 |
+
position: relative;
|
478 |
+
overflow: hidden;
|
479 |
+
}
|
480 |
+
|
481 |
+
#skills::before {
|
482 |
+
content: '';
|
483 |
+
position: absolute;
|
484 |
+
top: 0;
|
485 |
+
left: 0;
|
486 |
+
right: 0;
|
487 |
+
bottom: 0;
|
488 |
+
background: var(--gradient-tertiary);
|
489 |
+
opacity: 0.05;
|
490 |
+
border-radius: 30px;
|
491 |
+
}
|
492 |
+
|
493 |
+
.skills-container {
|
494 |
+
max-width: 1400px;
|
495 |
+
margin: 0 auto;
|
496 |
+
position: relative;
|
497 |
+
z-index: 1;
|
498 |
+
}
|
499 |
+
|
500 |
+
.skills-container h2 {
|
501 |
+
text-align: center;
|
502 |
+
font-size: 3rem;
|
503 |
+
margin-bottom: 4rem;
|
504 |
+
background: var(--gradient-tertiary);
|
505 |
+
-webkit-background-clip: text;
|
506 |
+
-webkit-text-fill-color: transparent;
|
507 |
+
background-clip: text;
|
508 |
+
font-weight: 700;
|
509 |
+
}
|
510 |
+
|
511 |
+
.skills-grid {
|
512 |
+
display: grid;
|
513 |
+
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
|
514 |
+
gap: 2.5rem;
|
515 |
+
margin-bottom: 5rem;
|
516 |
+
}
|
517 |
+
|
518 |
+
.skill-category {
|
519 |
+
background: rgba(255, 255, 255, 0.05);
|
520 |
+
backdrop-filter: blur(10px);
|
521 |
+
padding: 2.5rem;
|
522 |
+
border-radius: 25px;
|
523 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
524 |
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
525 |
+
position: relative;
|
526 |
+
overflow: hidden;
|
527 |
+
}
|
528 |
+
|
529 |
+
.skill-category::before {
|
530 |
+
content: '';
|
531 |
+
position: absolute;
|
532 |
+
top: 0;
|
533 |
+
left: 0;
|
534 |
+
right: 0;
|
535 |
+
bottom: 0;
|
536 |
+
background: var(--gradient-primary);
|
537 |
+
opacity: 0;
|
538 |
+
transition: opacity 0.3s ease;
|
539 |
+
}
|
540 |
+
|
541 |
+
.skill-category:hover {
|
542 |
+
transform: translateY(-15px);
|
543 |
+
box-shadow: 0 30px 60px rgba(124, 58, 237, 0.3);
|
544 |
+
}
|
545 |
+
|
546 |
+
.skill-category:hover::before {
|
547 |
+
opacity: 0.1;
|
548 |
+
}
|
549 |
+
|
550 |
+
.skill-category h3 {
|
551 |
+
color: var(--accent-blue);
|
552 |
+
font-size: 1.5rem;
|
553 |
+
margin-bottom: 2rem;
|
554 |
+
display: flex;
|
555 |
+
align-items: center;
|
556 |
+
gap: 1rem;
|
557 |
+
position: relative;
|
558 |
+
z-index: 1;
|
559 |
+
}
|
560 |
+
|
561 |
+
.skill-category h3 i {
|
562 |
+
font-size: 2rem;
|
563 |
+
width: 40px;
|
564 |
+
text-align: center;
|
565 |
+
background: var(--gradient-primary);
|
566 |
+
-webkit-background-clip: text;
|
567 |
+
-webkit-text-fill-color: transparent;
|
568 |
+
background-clip: text;
|
569 |
+
}
|
570 |
+
|
571 |
+
.skill-tags {
|
572 |
+
display: flex;
|
573 |
+
flex-wrap: wrap;
|
574 |
+
gap: 1rem;
|
575 |
+
position: relative;
|
576 |
+
z-index: 1;
|
577 |
+
}
|
578 |
+
|
579 |
+
.skill-tag {
|
580 |
+
background: rgba(255, 255, 255, 0.1);
|
581 |
+
color: var(--text-primary);
|
582 |
+
padding: 0.8rem 1.5rem;
|
583 |
+
border-radius: 25px;
|
584 |
+
font-size: 0.95rem;
|
585 |
+
font-weight: 500;
|
586 |
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
587 |
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
588 |
+
display: flex;
|
589 |
+
align-items: center;
|
590 |
+
gap: 0.5rem;
|
591 |
+
position: relative;
|
592 |
+
overflow: hidden;
|
593 |
+
}
|
594 |
+
|
595 |
+
.skill-tag::before {
|
596 |
+
content: '';
|
597 |
+
position: absolute;
|
598 |
+
top: 0;
|
599 |
+
left: -100%;
|
600 |
+
width: 100%;
|
601 |
+
height: 100%;
|
602 |
+
background: var(--gradient-primary);
|
603 |
+
transition: left 0.5s ease;
|
604 |
+
z-index: -1;
|
605 |
+
}
|
606 |
+
|
607 |
+
.skill-tag:hover {
|
608 |
+
transform: translateY(-5px);
|
609 |
+
box-shadow: 0 15px 30px rgba(0, 212, 255, 0.3);
|
610 |
+
color: white;
|
611 |
+
}
|
612 |
+
|
613 |
+
.skill-tag:hover::before {
|
614 |
+
left: 0;
|
615 |
+
}
|
616 |
+
|
617 |
+
.skill-tag i {
|
618 |
+
font-size: 1.2rem;
|
619 |
+
}
|
620 |
+
|
621 |
+
/* Programming Languages Icons */
|
622 |
+
.skill-tag[data-skill="java"] i::before { content: '\f4e4'; color: #f89820; }
|
623 |
+
.skill-tag[data-skill="python"] i::before { content: '\f3e2'; color: #3776ab; }
|
624 |
+
.skill-tag[data-skill="javascript"] i::before { content: '\f3b8'; color: #f7df1e; }
|
625 |
+
.skill-tag[data-skill="html"] i::before { content: '\f13b'; color: #e34f26; }
|
626 |
+
.skill-tag[data-skill="css"] i::before { content: '\f13c'; color: #1572b6; }
|
627 |
+
.skill-tag[data-skill="c"] i::before { content: '\f671'; color: #a8b9cc; }
|
628 |
+
|
629 |
+
/* Enhanced Skill Meters */
|
630 |
+
.skill-meters {
|
631 |
+
margin-top: 4rem;
|
632 |
+
background: rgba(255, 255, 255, 0.03);
|
633 |
+
padding: 3rem;
|
634 |
+
border-radius: 25px;
|
635 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
636 |
+
}
|
637 |
+
|
638 |
+
.skill-meters h3 {
|
639 |
+
text-align: center;
|
640 |
+
margin-bottom: 3rem;
|
641 |
+
color: var(--accent-green);
|
642 |
+
font-size: 2rem;
|
643 |
+
font-weight: 600;
|
644 |
+
}
|
645 |
+
|
646 |
+
.skill-meter {
|
647 |
+
margin-bottom: 2.5rem;
|
648 |
+
position: relative;
|
649 |
+
}
|
650 |
+
|
651 |
+
.skill-meter-header {
|
652 |
+
display: flex;
|
653 |
+
justify-content: space-between;
|
654 |
+
align-items: center;
|
655 |
+
margin-bottom: 1rem;
|
656 |
+
}
|
657 |
+
|
658 |
+
.skill-name {
|
659 |
+
font-weight: 600;
|
660 |
+
font-size: 1.1rem;
|
661 |
+
display: flex;
|
662 |
+
align-items: center;
|
663 |
+
gap: 1rem;
|
664 |
+
}
|
665 |
+
|
666 |
+
.skill-name i {
|
667 |
+
font-size: 1.5rem;
|
668 |
+
width: 30px;
|
669 |
+
text-align: center;
|
670 |
+
}
|
671 |
+
|
672 |
+
.skill-percentage {
|
673 |
+
color: var(--accent-blue);
|
674 |
+
font-weight: 700;
|
675 |
+
font-size: 1.1rem;
|
676 |
+
}
|
677 |
+
|
678 |
+
.skill-bar {
|
679 |
+
height: 12px;
|
680 |
+
background: rgba(255, 255, 255, 0.1);
|
681 |
+
border-radius: 10px;
|
682 |
+
overflow: hidden;
|
683 |
+
position: relative;
|
684 |
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
|
685 |
+
}
|
686 |
+
|
687 |
+
.skill-progress {
|
688 |
+
height: 100%;
|
689 |
+
background: var(--gradient-primary);
|
690 |
+
border-radius: 10px;
|
691 |
+
width: 0;
|
692 |
+
transition: width 2s cubic-bezier(0.4, 0, 0.2, 1);
|
693 |
+
position: relative;
|
694 |
+
overflow: hidden;
|
695 |
+
}
|
696 |
+
|
697 |
+
.skill-progress::after {
|
698 |
+
content: '';
|
699 |
+
position: absolute;
|
700 |
+
top: 0;
|
701 |
+
left: 0;
|
702 |
+
right: 0;
|
703 |
+
bottom: 0;
|
704 |
+
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
|
705 |
+
animation: shimmer 2s infinite;
|
706 |
+
}
|
707 |
+
|
708 |
+
/* Floating Icons Animation */
|
709 |
+
.floating-icons {
|
710 |
+
position: absolute;
|
711 |
+
top: 0;
|
712 |
+
left: 0;
|
713 |
+
right: 0;
|
714 |
+
bottom: 0;
|
715 |
+
pointer-events: none;
|
716 |
+
overflow: hidden;
|
717 |
+
}
|
718 |
+
|
719 |
+
.floating-icon {
|
720 |
+
position: absolute;
|
721 |
+
font-size: 2rem;
|
722 |
+
opacity: 0.1;
|
723 |
+
animation: float 20s infinite linear;
|
724 |
+
}
|
725 |
+
|
726 |
+
/* Footer Enhancement */
|
727 |
+
footer {
|
728 |
+
margin-top: 5rem;
|
729 |
+
padding: 3rem 2rem;
|
730 |
+
background: var(--bg-secondary);
|
731 |
+
border-top: 1px solid var(--border-color);
|
732 |
+
position: relative;
|
733 |
+
}
|
734 |
+
|
735 |
+
.footer-content {
|
736 |
+
display: flex;
|
737 |
+
justify-content: center;
|
738 |
+
align-items: center;
|
739 |
+
max-width: 1400px;
|
740 |
+
margin: 0 auto;
|
741 |
+
gap: 2rem;
|
742 |
+
}
|
743 |
+
|
744 |
+
.social-link {
|
745 |
+
display: flex;
|
746 |
+
align-items: center;
|
747 |
+
justify-content: center;
|
748 |
+
width: 50px;
|
749 |
+
height: 50px;
|
750 |
+
background: rgba(255, 255, 255, 0.05);
|
751 |
+
border-radius: 15px;
|
752 |
+
transition: all 0.3s ease;
|
753 |
+
text-decoration: none;
|
754 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
755 |
+
}
|
756 |
+
|
757 |
+
.social-link:hover {
|
758 |
+
transform: translateY(-5px);
|
759 |
+
background: var(--gradient-primary);
|
760 |
+
box-shadow: 0 15px 30px rgba(0, 212, 255, 0.3);
|
761 |
+
}
|
762 |
+
|
763 |
+
.social-icon {
|
764 |
+
width: 24px;
|
765 |
+
height: 24px;
|
766 |
+
fill: var(--text-secondary);
|
767 |
+
transition: fill 0.3s ease;
|
768 |
+
}
|
769 |
+
|
770 |
+
.social-link:hover .social-icon {
|
771 |
+
fill: white;
|
772 |
+
}
|
773 |
+
|
774 |
+
/* Animations */
|
775 |
+
@keyframes rotate {
|
776 |
+
from { transform: rotate(0deg); }
|
777 |
+
to { transform: rotate(360deg); }
|
778 |
+
}
|
779 |
+
|
780 |
+
@keyframes pulse {
|
781 |
+
0%, 100% { transform: scale(1); }
|
782 |
+
50% { transform: scale(1.1); }
|
783 |
+
}
|
784 |
+
|
785 |
+
@keyframes shimmer {
|
786 |
+
0% { transform: translateX(-100%); }
|
787 |
+
100% { transform: translateX(100%); }
|
788 |
+
}
|
789 |
+
|
790 |
+
@keyframes float {
|
791 |
+
0% {
|
792 |
+
transform: translateY(100vh) rotate(0deg);
|
793 |
+
opacity: 0;
|
794 |
+
}
|
795 |
+
10% {
|
796 |
+
opacity: 0.1;
|
797 |
+
}
|
798 |
+
90% {
|
799 |
+
opacity: 0.1;
|
800 |
+
}
|
801 |
+
100% {
|
802 |
+
transform: translateY(-100vh) rotate(360deg);
|
803 |
+
opacity: 0;
|
804 |
+
}
|
805 |
+
}
|
806 |
+
|
807 |
+
.fade-in {
|
808 |
+
opacity: 0;
|
809 |
+
transform: translateY(50px);
|
810 |
+
transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
|
811 |
+
}
|
812 |
+
|
813 |
+
.fade-in.visible {
|
814 |
+
opacity: 1;
|
815 |
+
transform: translateY(0);
|
816 |
+
}
|
817 |
+
|
818 |
+
/* Mobile Menu */
|
819 |
+
.menu-toggle {
|
820 |
+
display: none;
|
821 |
+
flex-direction: column;
|
822 |
+
cursor: pointer;
|
823 |
+
gap: 4px;
|
824 |
+
}
|
825 |
+
|
826 |
+
.menu-toggle span {
|
827 |
+
width: 25px;
|
828 |
+
height: 3px;
|
829 |
+
background: var(--text-primary);
|
830 |
+
transition: all 0.3s ease;
|
831 |
+
border-radius: 2px;
|
832 |
+
}
|
833 |
+
|
834 |
+
/* Responsive Design */
|
835 |
+
@media (max-width: 768px) {
|
836 |
+
header {
|
837 |
+
padding: 1rem;
|
838 |
+
}
|
839 |
+
|
840 |
+
.nav-links {
|
841 |
+
display: none;
|
842 |
+
position: absolute;
|
843 |
+
top: 100%;
|
844 |
+
left: 0;
|
845 |
+
width: 100%;
|
846 |
+
background: var(--header-bg);
|
847 |
+
backdrop-filter: blur(20px);
|
848 |
+
flex-direction: column;
|
849 |
+
padding: 2rem 0;
|
850 |
+
gap: 1rem;
|
851 |
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
852 |
+
}
|
853 |
+
|
854 |
+
.nav-links.active {
|
855 |
+
display: flex;
|
856 |
+
}
|
857 |
+
|
858 |
+
.menu-toggle {
|
859 |
+
display: flex;
|
860 |
+
}
|
861 |
+
|
862 |
+
.about-grid {
|
863 |
+
grid-template-columns: 1fr;
|
864 |
+
gap: 3rem;
|
865 |
+
text-align: center;
|
866 |
+
}
|
867 |
+
|
868 |
+
.about-content h2 {
|
869 |
+
font-size: 2.5rem;
|
870 |
+
}
|
871 |
+
|
872 |
+
.timeline::before {
|
873 |
+
left: 30px;
|
874 |
+
}
|
875 |
+
|
876 |
+
.timeline-item {
|
877 |
+
width: 100%;
|
878 |
+
left: 0 !important;
|
879 |
+
padding-left: 5rem !important;
|
880 |
+
padding-right: 0 !important;
|
881 |
+
}
|
882 |
+
|
883 |
+
.timeline-date {
|
884 |
+
left: 0 !important;
|
885 |
+
right: auto !important;
|
886 |
+
}
|
887 |
+
|
888 |
+
.skills-grid {
|
889 |
+
grid-template-columns: 1fr;
|
890 |
+
}
|
891 |
+
|
892 |
+
.timeline-section h2,
|
893 |
+
.skills-container h2 {
|
894 |
+
font-size: 2.5rem;
|
895 |
+
}
|
896 |
+
|
897 |
+
.profile-image img {
|
898 |
+
width: 200px;
|
899 |
+
height: 200px;
|
900 |
+
}
|
901 |
+
}
|
902 |
+
|
903 |
+
@media (max-width: 480px) {
|
904 |
+
.container {
|
905 |
+
padding: 0 1rem;
|
906 |
+
}
|
907 |
+
|
908 |
+
#about,
|
909 |
+
.timeline-section,
|
910 |
+
#skills {
|
911 |
+
padding: 3rem 1.5rem;
|
912 |
+
margin-bottom: 3rem;
|
913 |
+
}
|
914 |
+
|
915 |
+
.about-content h2 {
|
916 |
+
font-size: 2rem;
|
917 |
+
}
|
918 |
+
|
919 |
+
.timeline-content {
|
920 |
+
padding: 2rem;
|
921 |
+
}
|
922 |
+
|
923 |
+
.skill-category {
|
924 |
+
padding: 2rem;
|
925 |
+
}
|
926 |
+
|
927 |
+
.about-highlights {
|
928 |
+
grid-template-columns: 1fr;
|
929 |
+
}
|
930 |
+
}
|
931 |
+
</style>
|
932 |
+
</head>
|
933 |
+
<body>
|
934 |
+
<!-- Animated Background -->
|
935 |
+
<canvas id="three-canvas"></canvas>
|
936 |
+
|
937 |
+
<!-- Floating Icons -->
|
938 |
+
<div class="floating-icons">
|
939 |
+
<i class="fab fa-python floating-icon" style="left: 10%; animation-delay: 0s;"></i>
|
940 |
+
<i class="fab fa-js-square floating-icon" style="left: 20%; animation-delay: 3s;"></i>
|
941 |
+
<i class="fab fa-react floating-icon" style="left: 30%; animation-delay: 6s;"></i>
|
942 |
+
<i class="fab fa-node-js floating-icon" style="left: 40%; animation-delay: 9s;"></i>
|
943 |
+
<i class="fas fa-brain floating-icon" style="left: 50%; animation-delay: 12s;"></i>
|
944 |
+
<i class="fab fa-github floating-icon" style="left: 60%; animation-delay: 15s;"></i>
|
945 |
+
<i class="fas fa-database floating-icon" style="left: 70%; animation-delay: 18s;"></i>
|
946 |
+
<i class="fab fa-docker floating-icon" style="left: 80%; animation-delay: 21s;"></i>
|
947 |
+
</div>
|
948 |
+
|
949 |
+
<!-- Header -->
|
950 |
+
<header>
|
951 |
+
<nav>
|
952 |
+
<a href="index.html" class="logo">Pranit Chilbule</a>
|
953 |
+
<div class="menu-toggle" onclick="toggleMenu()">
|
954 |
+
<span></span>
|
955 |
+
<span></span>
|
956 |
+
<span></span>
|
957 |
+
</div>
|
958 |
+
<ul class="nav-links" id="navLinks">
|
959 |
+
<li><a href="index.html"><i class="fas fa-home"></i> Home</a></li>
|
960 |
+
<li><a href="#about" class="active"><i class="fas fa-user"></i> About</a></li>
|
961 |
+
<li><a href="projects.html"><i class="fas fa-project-diagram"></i> Projects</a></li>
|
962 |
+
<li><a href="#achievements"><i class="fas fa-trophy"></i> Achievements</a></li>
|
963 |
+
<li><a href="#contact"><i class="fas fa-envelope"></i> Contact</a></li>
|
964 |
+
</ul>
|
965 |
+
</nav>
|
966 |
+
</header>
|
967 |
+
|
968 |
+
<main>
|
969 |
+
<!-- About Section -->
|
970 |
+
<section id="about" class="fade-in">
|
971 |
+
<div class="about-grid">
|
972 |
+
<div class="profile-section">
|
973 |
+
<div class="profile-image">
|
974 |
+
<img src="images/121415604.jpeg" alt="Pranit Chilbule Profile Picture">
|
975 |
+
<div class="status-badge">
|
976 |
+
<i class="fas fa-circle" style="color: var(--accent-green); font-size: 0.7rem;"></i>
|
977 |
+
Available for Projects
|
978 |
+
</div>
|
979 |
+
</div>
|
980 |
+
</div>
|
981 |
+
<div class="about-content">
|
982 |
+
<h2>About Me</h2>
|
983 |
+
<p>
|
984 |
+
I'm a 3rd-year AI/ML engineering student at VIT Pune, passionate about building intelligent systems that solve real-world problems. My journey in technology spans from developing cutting-edge machine learning models to creating robust web applications using the MERN stack.
|
985 |
+
</p>
|
986 |
+
<p>
|
987 |
+
I thrive on exploring the intersection of artificial intelligence and practical software development. When I'm not coding, you'll find me diving deep into research papers, experimenting with new AI frameworks, or contributing to open-source projects that push the boundaries of what's possible with technology.
|
988 |
+
</p>
|
989 |
+
|
990 |
+
<div class="about-highlights">
|
991 |
+
<div class="highlight-card">
|
992 |
+
<i class="fas fa-graduation-cap"></i>
|
993 |
+
<h4>Education</h4>
|
994 |
+
<p>AI/ML Engineering<br>VIT Pune</p>
|
995 |
+
</div>
|
996 |
+
<div class="highlight-card">
|
997 |
+
<i class="fas fa-code"></i>
|
998 |
+
<h4>Experience</h4>
|
999 |
+
<p>3+ Years in<br>Programming</p>
|
1000 |
+
</div>
|
1001 |
+
<div class="highlight-card">
|
1002 |
+
<i class="fas fa-project-diagram"></i>
|
1003 |
+
<h4>Projects</h4>
|
1004 |
+
<p>15+ Completed<br>Projects</p>
|
1005 |
+
</div>
|
1006 |
+
<div class="highlight-card">
|
1007 |
+
<i class="fas fa-brain"></i>
|
1008 |
+
<h4>Specialization</h4>
|
1009 |
+
<p>Generative AI &<br>Deep Learning</p>
|
1010 |
+
</div>
|
1011 |
+
</div>
|
1012 |
+
</div>
|
1013 |
+
</div>
|
1014 |
+
</section>
|
1015 |
+
|
1016 |
+
<!-- Education Timeline -->
|
1017 |
+
<section class="timeline-section fade-in">
|
1018 |
+
<div class="container">
|
1019 |
+
<h2>Education Journey</h2>
|
1020 |
+
<div class="timeline">
|
1021 |
+
<div class="timeline-item">
|
1022 |
+
<div class="timeline-date">2026</div>
|
1023 |
+
<div class="timeline-content">
|
1024 |
+
<h3><i class="fas fa-university"></i>VIT Pune</h3>
|
1025 |
+
<div class="degree">B.Tech in Artificial Intelligence & Machine Learning</div>
|
1026 |
+
<div class="duration">2022 - 2026 (Expected)</div>
|
1027 |
+
</div>
|
1028 |
+
</div>
|
1029 |
+
<div class="timeline-item">
|
1030 |
+
<div class="timeline-date">2022</div>
|
1031 |
+
<div class="timeline-content">
|
1032 |
+
<h3><i class="fas fa-school"></i>Vidya Niketan Junior College</h3>
|
1033 |
+
<div class="degree">Higher Secondary Certificate (HSC) - Science</div>
|
1034 |
+
<div class="duration">2020 - 2022</div>
|
1035 |
+
</div>
|
1036 |
+
</div>
|
1037 |
+
<div class="timeline-item">
|
1038 |
+
<div class="timeline-date">2020</div>
|
1039 |
+
<div class="timeline-content">
|
1040 |
+
<h3><i class="fas fa-graduation-cap"></i>Chanda Public School</h3>
|
1041 |
+
<div class="degree">Secondary School Certificate (SSC)</div>
|
1042 |
+
<div class="duration">Completed 2020</div>
|
1043 |
+
</div>
|
1044 |
+
</div>
|
1045 |
+
</div>
|
1046 |
+
</div>
|
1047 |
+
</section>
|
1048 |
+
|
1049 |
+
<!-- Skills Section -->
|
1050 |
+
<section id="skills" class="fade-in">
|
1051 |
+
<div class="skills-container">
|
1052 |
+
<h2>Technical Skills</h2>
|
1053 |
+
|
1054 |
+
<div class="skills-grid">
|
1055 |
+
<div class="skill-category">
|
1056 |
+
<h3><i class="fas fa-code"></i> Programming Languages</h3>
|
1057 |
+
<div class="skill-tags">
|
1058 |
+
<span class="skill-tag" data-skill="java"><i class="devicon-java-plain"></i>Java</span>
|
1059 |
+
<span class="skill-tag" data-skill="python"><i class="devicon-python-plain"></i>Python</span>
|
1060 |
+
<span class="skill-tag" data-skill="c"><i class="devicon-c-plain"></i>C</span>
|
1061 |
+
<span class="skill-tag" data-skill="html"><i class="devicon-html5-plain"></i>HTML</span>
|
1062 |
+
<span class="skill-tag" data-skill="css"><i class="devicon-css3-plain"></i>CSS</span>
|
1063 |
+
<span class="skill-tag" data-skill="javascript"><i class="devicon-javascript-plain"></i>JavaScript</span>
|
1064 |
+
</div>
|
1065 |
+
</div>
|
1066 |
+
|
1067 |
+
<div class="skill-category">
|
1068 |
+
<h3><i class="fas fa-layer-group"></i> Frameworks & Libraries</h3>
|
1069 |
+
<div class="skill-tags">
|
1070 |
+
<span class="skill-tag"><i class="devicon-tensorflow-original"></i>TensorFlow</span>
|
1071 |
+
<span class="skill-tag"><i class="fas fa-brain"></i>Keras</span>
|
1072 |
+
<span class="skill-tag"><i class="fas fa-chart-line"></i>Scikit-learn</span>
|
1073 |
+
<span class="skill-tag"><i class="devicon-numpy-original"></i>NumPy</span>
|
1074 |
+
<span class="skill-tag"><i class="devicon-pandas-original"></i>Pandas</span>
|
1075 |
+
<span class="skill-tag"><i class="fas fa-chart-bar"></i>Plotly</span>
|
1076 |
+
<span class="skill-tag"><i class="fas fa-map"></i>Folium</span>
|
1077 |
+
<span class="skill-tag"><i class="devicon-flask-original"></i>Flask</span>
|
1078 |
+
<span class="skill-tag"><i class="fas fa-stream"></i>Streamlit</span>
|
1079 |
+
<span class="skill-tag"><i class="devicon-react-original"></i>React</span>
|
1080 |
+
<span class="skill-tag"><i class="devicon-nodejs-plain"></i>Node.js</span>
|
1081 |
+
</div>
|
1082 |
+
</div>
|
1083 |
+
|
1084 |
+
<div class="skill-category">
|
1085 |
+
<h3><i class="fas fa-brain"></i> AI/ML Domains</h3>
|
1086 |
+
<div class="skill-tags">
|
1087 |
+
<span class="skill-tag"><i class="fas fa-robot"></i>Generative AI</span>
|
1088 |
+
<span class="skill-tag"><i class="fas fa-magic"></i>Agentic AI</span>
|
1089 |
+
<span class="skill-tag"><i class="fas fa-search"></i>RAG Systems</span>
|
1090 |
+
<span class="skill-tag"><i class="fas fa-language"></i>Large Language Models</span>
|
1091 |
+
<span class="skill-tag"><i class="fas fa-network-wired"></i>GANs</span>
|
1092 |
+
<span class="skill-tag"><i class="fas fa-eye"></i>Computer Vision</span>
|
1093 |
+
<span class="skill-tag"><i class="fas fa-comments"></i>NLP</span>
|
1094 |
+
</div>
|
1095 |
+
</div>
|
1096 |
+
|
1097 |
+
<div class="skill-category">
|
1098 |
+
<h3><i class="fas fa-tools"></i> Tools & Platforms</h3>
|
1099 |
+
<div class="skill-tags">
|
1100 |
+
<span class="skill-tag"><i class="devicon-git-plain"></i>Git</span>
|
1101 |
+
<span class="skill-tag"><i class="devicon-vscode-plain"></i>VS Code</span>
|
1102 |
+
<span class="skill-tag"><i class="devicon-pycharm-plain"></i>PyCharm</span>
|
1103 |
+
<span class="skill-tag"><i class="devicon-intellij-plain"></i>IntelliJ IDEA</span>
|
1104 |
+
<span class="skill-tag"><i class="fas fa-eclipse"></i>Eclipse</span>
|
1105 |
+
<span class="skill-tag"><i class="fas fa-chart-pie"></i>Power BI</span>
|
1106 |
+
<span class="skill-tag"><i class="fas fa-table"></i>Tableau</span>
|
1107 |
+
<span class="skill-tag"><i class="devicon-docker-plain"></i>Docker</span>
|
1108 |
+
</div>
|
1109 |
+
</div>
|
1110 |
+
</div>
|
1111 |
+
|
1112 |
+
<!-- Skill Meters -->
|
1113 |
+
<div class="skill-meters">
|
1114 |
+
<h3>Proficiency Levels</h3>
|
1115 |
+
|
1116 |
+
<div class="skill-meter" data-skill="90">
|
1117 |
+
<div class="skill-meter-header">
|
1118 |
+
<span class="skill-name"><i class="devicon-python-plain"></i>Python</span>
|
1119 |
+
<span class="skill-percentage">90%</span>
|
1120 |
+
</div>
|
1121 |
+
<div class="skill-bar">
|
1122 |
+
<div class="skill-progress"></div>
|
1123 |
+
</div>
|
1124 |
+
</div>
|
1125 |
+
|
1126 |
+
<div class="skill-meter" data-skill="85">
|
1127 |
+
<div class="skill-meter-header">
|
1128 |
+
<span class="skill-name"><i class="fas fa-brain"></i>Machine Learning</span>
|
1129 |
+
<span class="skill-percentage">85%</span>
|
1130 |
+
</div>
|
1131 |
+
<div class="skill-bar">
|
1132 |
+
<div class="skill-progress"></div>
|
1133 |
+
</div>
|
1134 |
+
</div>
|
1135 |
+
|
1136 |
+
<div class="skill-meter" data-skill="80">
|
1137 |
+
<div class="skill-meter-header">
|
1138 |
+
<span class="skill-name"><i class="devicon-javascript-plain"></i>JavaScript</span>
|
1139 |
+
<span class="skill-percentage">80%</span>
|
1140 |
+
</div>
|
1141 |
+
<div class="skill-bar">
|
1142 |
+
<div class="skill-progress"></div>
|
1143 |
+
</div>
|
1144 |
+
</div>
|
1145 |
+
|
1146 |
+
<div class="skill-meter" data-skill="85">
|
1147 |
+
<div class="skill-meter-header">
|
1148 |
+
<span class="skill-name"><i class="devicon-react-original"></i>React.js</span>
|
1149 |
+
<span class="skill-percentage">85%</span>
|
1150 |
+
</div>
|
1151 |
+
<div class="skill-bar">
|
1152 |
+
<div class="skill-progress"></div>
|
1153 |
+
</div>
|
1154 |
+
</div>
|
1155 |
+
|
1156 |
+
<div class="skill-meter" data-skill="75">
|
1157 |
+
<div class="skill-meter-header">
|
1158 |
+
<span class="skill-name"><i class="fas fa-chart-line"></i>Data Analysis</span>
|
1159 |
+
<span class="skill-percentage">75%</span>
|
1160 |
+
</div>
|
1161 |
+
<div class="skill-bar">
|
1162 |
+
<div class="skill-progress"></div>
|
1163 |
+
</div>
|
1164 |
+
</div>
|
1165 |
+
|
1166 |
+
<div class="skill-meter" data-skill="80">
|
1167 |
+
<div class="skill-meter-header">
|
1168 |
+
<span class="skill-name"><i class="fas fa-network-wired"></i>Deep Learning</span>
|
1169 |
+
<span class="skill-percentage">80%</span>
|
1170 |
+
</div>
|
1171 |
+
<div class="skill-bar">
|
1172 |
+
<div class="skill-progress"></div>
|
1173 |
+
</div>
|
1174 |
+
</div>
|
1175 |
+
</div>
|
1176 |
+
</div>
|
1177 |
+
</section>
|
1178 |
+
</main>
|
1179 |
+
|
1180 |
+
<!-- Footer -->
|
1181 |
+
<footer>
|
1182 |
+
<div class="footer-content">
|
1183 |
+
<a href="https://linkedin.com/in/pranit-chilbule" target="_blank" class="social-link">
|
1184 |
+
<svg class="social-icon" viewBox="0 0 24 24">
|
1185 |
+
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
|
1186 |
+
</svg>
|
1187 |
+
</a>
|
1188 |
+
<a href="https://github.com/pranit-chilbule" target="_blank" class="social-link">
|
1189 |
+
<svg class="social-icon" viewBox="0 0 24 24">
|
1190 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
1191 |
+
</svg>
|
1192 |
+
</a>
|
1193 |
+
<a href="mailto:[email protected]" target="_blank" class="social-link">
|
1194 |
+
<svg class="social-icon" viewBox="0 0 24 24">
|
1195 |
+
<path d="M12 12.713l-11.985-9.713h23.97l-11.985 9.713zm0 2.574l-12-9.725v15.438h24v-15.438l-12 9.725z"/>
|
1196 |
+
</svg>
|
1197 |
+
</a>
|
1198 |
+
</div>
|
1199 |
+
</footer>
|
1200 |
+
|
1201 |
+
<script>
|
1202 |
+
// Three.js Background Animation
|
1203 |
+
let scene, camera, renderer, particles;
|
1204 |
+
|
1205 |
+
function initThree() {
|
1206 |
+
scene = new THREE.Scene();
|
1207 |
+
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
1208 |
+
renderer = new THREE.WebGLRenderer({
|
1209 |
+
canvas: document.getElementById('three-canvas'),
|
1210 |
+
alpha: true
|
1211 |
+
});
|
1212 |
+
|
1213 |
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
1214 |
+
renderer.setClearColor(0x000000, 0);
|
1215 |
+
|
1216 |
+
// Create particles
|
1217 |
+
const geometry = new THREE.BufferGeometry();
|
1218 |
+
const particleCount = 1500;
|
1219 |
+
const positions = new Float32Array(particleCount * 3);
|
1220 |
+
const colors = new Float32Array(particleCount * 3);
|
1221 |
+
|
1222 |
+
for (let i = 0; i < particleCount * 3; i += 3) {
|
1223 |
+
positions[i] = (Math.random() - 0.5) * 2000;
|
1224 |
+
positions[i + 1] = (Math.random() - 0.5) * 2000;
|
1225 |
+
positions[i + 2] = (Math.random() - 0.5) * 2000;
|
1226 |
+
|
1227 |
+
// Color variations (blue to purple)
|
1228 |
+
colors[i] = Math.random() * 0.5 + 0.5; // R
|
1229 |
+
colors[i + 1] = Math.random() * 0.3 + 0.7; // G
|
1230 |
+
colors[i + 2] = 1; // B
|
1231 |
+
}
|
1232 |
+
|
1233 |
+
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
|
1234 |
+
geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));
|
1235 |
+
|
1236 |
+
const material = new THREE.PointsMaterial({
|
1237 |
+
size: 3,
|
1238 |
+
vertexColors: true,
|
1239 |
+
transparent: true,
|
1240 |
+
opacity: 0.8
|
1241 |
+
});
|
1242 |
+
|
1243 |
+
particles = new THREE.Points(geometry, material);
|
1244 |
+
scene.add(particles);
|
1245 |
+
|
1246 |
+
camera.position.z = 1000;
|
1247 |
+
}
|
1248 |
+
|
1249 |
+
function animateThree() {
|
1250 |
+
requestAnimationFrame(animateThree);
|
1251 |
+
|
1252 |
+
particles.rotation.x += 0.0005;
|
1253 |
+
particles.rotation.y += 0.001;
|
1254 |
+
|
1255 |
+
renderer.render(scene, camera);
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
// Mobile menu toggle
|
1259 |
+
function toggleMenu() {
|
1260 |
+
const navLinks = document.getElementById('navLinks');
|
1261 |
+
const menuToggle = document.querySelector('.menu-toggle');
|
1262 |
+
|
1263 |
+
navLinks.classList.toggle('active');
|
1264 |
+
menuToggle.classList.toggle('active');
|
1265 |
+
}
|
1266 |
+
|
1267 |
+
// Scroll animations
|
1268 |
+
function animateOnScroll() {
|
1269 |
+
const elements = document.querySelectorAll('.fade-in');
|
1270 |
+
|
1271 |
+
elements.forEach(element => {
|
1272 |
+
const elementTop = element.getBoundingClientRect().top;
|
1273 |
+
const elementVisible = 150;
|
1274 |
+
|
1275 |
+
if (elementTop < window.innerHeight - elementVisible) {
|
1276 |
+
element.classList.add('visible');
|
1277 |
+
}
|
1278 |
+
});
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
// Skill bar animations
|
1282 |
+
function animateSkillBars() {
|
1283 |
+
const skillMeters = document.querySelectorAll('.skill-meter');
|
1284 |
+
|
1285 |
+
skillMeters.forEach(meter => {
|
1286 |
+
const progress = meter.querySelector('.skill-progress');
|
1287 |
+
const percentage = meter.getAttribute('data-skill');
|
1288 |
+
const meterTop = meter.getBoundingClientRect().top;
|
1289 |
+
|
1290 |
+
if (meterTop < window.innerHeight - 100) {
|
1291 |
+
setTimeout(() => {
|
1292 |
+
progress.style.width = percentage + '%';
|
1293 |
+
}, 200);
|
1294 |
+
}
|
1295 |
+
});
|
1296 |
+
}
|
1297 |
+
|
1298 |
+
// Header scroll effect
|
1299 |
+
function handleHeaderScroll() {
|
1300 |
+
const header = document.querySelector('header');
|
1301 |
+
if (window.scrollY > 100) {
|
1302 |
+
header.style.background = 'rgba(10, 10, 15, 0.98)';
|
1303 |
+
header.style.boxShadow = '0 10px 30px rgba(0, 0, 0, 0.3)';
|
1304 |
+
} else {
|
1305 |
+
header.style.background = 'var(--header-bg)';
|
1306 |
+
header.style.boxShadow = 'none';
|
1307 |
+
}
|
1308 |
+
}
|
1309 |
+
|
1310 |
+
// Smooth scrolling for navigation links
|
1311 |
+
function smoothScroll() {
|
1312 |
+
const navLinks = document.querySelectorAll('.nav-links a[href^="#"]');
|
1313 |
+
|
1314 |
+
navLinks.forEach(link => {
|
1315 |
+
link.addEventListener('click', function(e) {
|
1316 |
+
e.preventDefault();
|
1317 |
+
const targetId = this.getAttribute('href');
|
1318 |
+
const targetSection = document.querySelector(targetId);
|
1319 |
+
|
1320 |
+
if (targetSection) {
|
1321 |
+
targetSection.scrollIntoView({
|
1322 |
+
behavior: 'smooth',
|
1323 |
+
block: 'start'
|
1324 |
+
});
|
1325 |
+
}
|
1326 |
+
});
|
1327 |
+
});
|
1328 |
+
}
|
1329 |
+
|
1330 |
+
// Initialize everything
|
1331 |
+
document.addEventListener('DOMContentLoaded', function() {
|
1332 |
+
initThree();
|
1333 |
+
animateThree();
|
1334 |
+
smoothScroll();
|
1335 |
+
|
1336 |
+
// Initial animations
|
1337 |
+
setTimeout(() => {
|
1338 |
+
animateOnScroll();
|
1339 |
+
animateSkillBars();
|
1340 |
+
}, 500);
|
1341 |
+
});
|
1342 |
+
|
1343 |
+
// Event listeners
|
1344 |
+
window.addEventListener('scroll', function() {
|
1345 |
+
animateOnScroll();
|
1346 |
+
animateSkillBars();
|
1347 |
+
handleHeaderScroll();
|
1348 |
+
});
|
1349 |
+
|
1350 |
+
window.addEventListener('resize', function() {
|
1351 |
+
camera.aspect = window.innerWidth / window.innerHeight;
|
1352 |
+
camera.updateProjectionMatrix();
|
1353 |
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
1354 |
+
});
|
1355 |
+
|
1356 |
+
// Particle mouse interaction
|
1357 |
+
document.addEventListener('mousemove', function(event) {
|
1358 |
+
if (particles) {
|
1359 |
+
const mouseX = (event.clientX / window.innerWidth) * 2 - 1;
|
1360 |
+
const mouseY = -(event.clientY / window.innerHeight) * 2 + 1;
|
1361 |
+
|
1362 |
+
particles.rotation.x += mouseY * 0.0001;
|
1363 |
+
particles.rotation.y += mouseX * 0.0001;
|
1364 |
+
}
|
1365 |
+
});
|
1366 |
+
|
1367 |
+
// Add parallax effect to profile image
|
1368 |
+
window.addEventListener('scroll', function() {
|
1369 |
+
const profileImage = document.querySelector('.profile-image');
|
1370 |
+
if (profileImage) {
|
1371 |
+
const scrolled = window.pageYOffset;
|
1372 |
+
const parallax = scrolled * 0.1;
|
1373 |
+
profileImage.style.transform = `translateY(${parallax}px)`;
|
1374 |
+
}
|
1375 |
+
});
|
1376 |
+
</script>
|
1377 |
+
</body>
|
1378 |
+
</html>
|
achievements.html
ADDED
@@ -0,0 +1,594 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Achievements & Blog - Pranit Chilbule</title>
|
7 |
+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
8 |
+
<style>
|
9 |
+
* {
|
10 |
+
margin: 0;
|
11 |
+
padding: 0;
|
12 |
+
box-sizing: border-box;
|
13 |
+
}
|
14 |
+
|
15 |
+
:root {
|
16 |
+
--bg-primary: #0d1117;
|
17 |
+
--bg-secondary: #010409;
|
18 |
+
--bg-card: #21262d;
|
19 |
+
--text-primary: #c9d1d9;
|
20 |
+
--text-secondary: rgba(201, 209, 217, 0.8);
|
21 |
+
--accent-blue: #58a6ff;
|
22 |
+
--accent-green: #10a37f;
|
23 |
+
--accent-gold: #ffd700;
|
24 |
+
--accent-silver: #c0c0c0;
|
25 |
+
--header-bg: rgba(0, 0, 0, 0.6);
|
26 |
+
--border-color: #30363d;
|
27 |
+
}
|
28 |
+
|
29 |
+
body {
|
30 |
+
font-family: 'Inter', sans-serif;
|
31 |
+
background: var(--bg-primary);
|
32 |
+
color: var(--text-primary);
|
33 |
+
line-height: 1.6;
|
34 |
+
overflow-x: hidden;
|
35 |
+
}
|
36 |
+
|
37 |
+
/* Header */
|
38 |
+
header {
|
39 |
+
position: fixed;
|
40 |
+
top: 0;
|
41 |
+
width: 100%;
|
42 |
+
background: var(--header-bg);
|
43 |
+
backdrop-filter: blur(10px);
|
44 |
+
z-index: 1000;
|
45 |
+
border-bottom: 1px solid var(--border-color);
|
46 |
+
}
|
47 |
+
|
48 |
+
nav {
|
49 |
+
display: flex;
|
50 |
+
justify-content: space-between;
|
51 |
+
align-items: center;
|
52 |
+
padding: 1rem 2rem;
|
53 |
+
max-width: 1200px;
|
54 |
+
margin: 0 auto;
|
55 |
+
}
|
56 |
+
|
57 |
+
.logo {
|
58 |
+
font-family: 'Roboto Mono', monospace;
|
59 |
+
font-size: 1.5rem;
|
60 |
+
font-weight: 700;
|
61 |
+
color: var(--accent-blue);
|
62 |
+
}
|
63 |
+
|
64 |
+
.nav-links {
|
65 |
+
display: flex;
|
66 |
+
list-style: none;
|
67 |
+
gap: 2rem;
|
68 |
+
}
|
69 |
+
|
70 |
+
.nav-links a {
|
71 |
+
color: var(--text-primary);
|
72 |
+
text-decoration: none;
|
73 |
+
transition: color 0.3s ease;
|
74 |
+
}
|
75 |
+
|
76 |
+
.nav-links a:hover {
|
77 |
+
color: var(--accent-blue);
|
78 |
+
}
|
79 |
+
|
80 |
+
/* Main Content */
|
81 |
+
main {
|
82 |
+
max-width: 1200px;
|
83 |
+
margin: 0 auto;
|
84 |
+
padding: 120px 2rem 2rem;
|
85 |
+
}
|
86 |
+
|
87 |
+
section {
|
88 |
+
margin-bottom: 4rem;
|
89 |
+
}
|
90 |
+
|
91 |
+
h2 {
|
92 |
+
font-size: 2.5rem;
|
93 |
+
margin-bottom: 2rem;
|
94 |
+
color: var(--accent-blue);
|
95 |
+
text-align: center;
|
96 |
+
position: relative;
|
97 |
+
}
|
98 |
+
|
99 |
+
h2::after {
|
100 |
+
content: '';
|
101 |
+
position: absolute;
|
102 |
+
bottom: -10px;
|
103 |
+
left: 50%;
|
104 |
+
transform: translateX(-50%);
|
105 |
+
width: 80px;
|
106 |
+
height: 3px;
|
107 |
+
background: linear-gradient(90deg, var(--accent-blue), var(--accent-green));
|
108 |
+
border-radius: 2px;
|
109 |
+
}
|
110 |
+
|
111 |
+
/* Achievement Cards */
|
112 |
+
.achievements-grid {
|
113 |
+
display: grid;
|
114 |
+
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
|
115 |
+
gap: 2rem;
|
116 |
+
padding: 2rem 0;
|
117 |
+
}
|
118 |
+
|
119 |
+
.achievement-card {
|
120 |
+
background: var(--bg-card);
|
121 |
+
border-radius: 16px;
|
122 |
+
padding: 2rem;
|
123 |
+
border: 1px solid var(--border-color);
|
124 |
+
transition: all 0.4s ease;
|
125 |
+
cursor: pointer;
|
126 |
+
position: relative;
|
127 |
+
overflow: hidden;
|
128 |
+
}
|
129 |
+
|
130 |
+
.achievement-card::before {
|
131 |
+
content: '';
|
132 |
+
position: absolute;
|
133 |
+
top: 0;
|
134 |
+
left: -100%;
|
135 |
+
width: 100%;
|
136 |
+
height: 100%;
|
137 |
+
background: linear-gradient(90deg, transparent, rgba(88, 166, 255, 0.1), transparent);
|
138 |
+
transition: left 0.6s ease;
|
139 |
+
}
|
140 |
+
|
141 |
+
.achievement-card:hover::before {
|
142 |
+
left: 100%;
|
143 |
+
}
|
144 |
+
|
145 |
+
.achievement-card:hover {
|
146 |
+
transform: translateY(-8px);
|
147 |
+
box-shadow: 0 15px 40px rgba(88, 166, 255, 0.2);
|
148 |
+
border-color: var(--accent-blue);
|
149 |
+
}
|
150 |
+
|
151 |
+
.achievement-icon {
|
152 |
+
font-size: 3rem;
|
153 |
+
margin-bottom: 1.5rem;
|
154 |
+
display: block;
|
155 |
+
}
|
156 |
+
|
157 |
+
.achievement-title {
|
158 |
+
color: var(--accent-blue);
|
159 |
+
font-size: 1.3rem;
|
160 |
+
font-weight: 600;
|
161 |
+
margin-bottom: 1rem;
|
162 |
+
}
|
163 |
+
|
164 |
+
.achievement-description {
|
165 |
+
color: var(--text-secondary);
|
166 |
+
font-size: 1rem;
|
167 |
+
line-height: 1.6;
|
168 |
+
}
|
169 |
+
|
170 |
+
.achievement-stats {
|
171 |
+
display: flex;
|
172 |
+
gap: 1rem;
|
173 |
+
margin-top: 1rem;
|
174 |
+
font-size: 0.9rem;
|
175 |
+
color: var(--accent-green);
|
176 |
+
}
|
177 |
+
|
178 |
+
.stat-item {
|
179 |
+
background: rgba(16, 163, 127, 0.1);
|
180 |
+
padding: 0.3rem 0.8rem;
|
181 |
+
border-radius: 12px;
|
182 |
+
border: 1px solid rgba(16, 163, 127, 0.3);
|
183 |
+
}
|
184 |
+
|
185 |
+
/* Blog Section */
|
186 |
+
.blog-container {
|
187 |
+
overflow-x: auto;
|
188 |
+
padding: 2rem 0;
|
189 |
+
-ms-overflow-style: none;
|
190 |
+
scrollbar-width: none;
|
191 |
+
}
|
192 |
+
|
193 |
+
.blog-container::-webkit-scrollbar {
|
194 |
+
display: none;
|
195 |
+
}
|
196 |
+
|
197 |
+
.blog-grid {
|
198 |
+
display: flex;
|
199 |
+
gap: 2rem;
|
200 |
+
padding: 0.5rem;
|
201 |
+
}
|
202 |
+
|
203 |
+
.blog-card {
|
204 |
+
min-width: 350px;
|
205 |
+
max-width: 400px;
|
206 |
+
background: var(--bg-card);
|
207 |
+
border-radius: 16px;
|
208 |
+
overflow: hidden;
|
209 |
+
border: 1px solid var(--border-color);
|
210 |
+
transition: all 0.4s ease;
|
211 |
+
position: relative;
|
212 |
+
}
|
213 |
+
|
214 |
+
.blog-card:hover {
|
215 |
+
transform: translateY(-8px);
|
216 |
+
box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
|
217 |
+
border-color: var(--accent-blue);
|
218 |
+
}
|
219 |
+
|
220 |
+
.blog-image {
|
221 |
+
width: 100%;
|
222 |
+
height: 220px;
|
223 |
+
background: linear-gradient(135deg, var(--accent-blue), var(--accent-green));
|
224 |
+
display: flex;
|
225 |
+
align-items: center;
|
226 |
+
justify-content: center;
|
227 |
+
font-size: 3rem;
|
228 |
+
color: white;
|
229 |
+
}
|
230 |
+
|
231 |
+
.blog-content {
|
232 |
+
padding: 2rem;
|
233 |
+
}
|
234 |
+
|
235 |
+
.blog-date {
|
236 |
+
color: var(--accent-green);
|
237 |
+
font-size: 0.9rem;
|
238 |
+
margin-bottom: 0.8rem;
|
239 |
+
font-weight: 500;
|
240 |
+
}
|
241 |
+
|
242 |
+
.blog-title {
|
243 |
+
color: var(--text-primary);
|
244 |
+
font-size: 1.3rem;
|
245 |
+
font-weight: 600;
|
246 |
+
margin-bottom: 1rem;
|
247 |
+
line-height: 1.4;
|
248 |
+
}
|
249 |
+
|
250 |
+
.blog-excerpt {
|
251 |
+
color: var(--text-secondary);
|
252 |
+
font-size: 1rem;
|
253 |
+
margin-bottom: 1.5rem;
|
254 |
+
line-height: 1.6;
|
255 |
+
display: -webkit-box;
|
256 |
+
-webkit-line-clamp: 3;
|
257 |
+
-webkit-box-orient: vertical;
|
258 |
+
overflow: hidden;
|
259 |
+
}
|
260 |
+
|
261 |
+
.blog-link {
|
262 |
+
color: var(--accent-blue);
|
263 |
+
text-decoration: none;
|
264 |
+
font-weight: 500;
|
265 |
+
display: inline-flex;
|
266 |
+
align-items: center;
|
267 |
+
gap: 0.5rem;
|
268 |
+
transition: all 0.3s ease;
|
269 |
+
}
|
270 |
+
|
271 |
+
.blog-link:hover {
|
272 |
+
color: var(--accent-green);
|
273 |
+
transform: translateX(5px);
|
274 |
+
}
|
275 |
+
|
276 |
+
/* Footer */
|
277 |
+
footer {
|
278 |
+
background: var(--bg-secondary);
|
279 |
+
padding: 3rem 2rem 2rem;
|
280 |
+
border-top: 1px solid var(--border-color);
|
281 |
+
text-align: center;
|
282 |
+
}
|
283 |
+
|
284 |
+
.footer-content {
|
285 |
+
max-width: 1200px;
|
286 |
+
margin: 0 auto;
|
287 |
+
}
|
288 |
+
|
289 |
+
.social-links {
|
290 |
+
display: flex;
|
291 |
+
justify-content: center;
|
292 |
+
gap: 2rem;
|
293 |
+
margin-bottom: 2rem;
|
294 |
+
}
|
295 |
+
|
296 |
+
.social-links a {
|
297 |
+
color: var(--text-secondary);
|
298 |
+
font-size: 1.5rem;
|
299 |
+
transition: color 0.3s ease;
|
300 |
+
}
|
301 |
+
|
302 |
+
.social-links a:hover {
|
303 |
+
color: var(--accent-blue);
|
304 |
+
}
|
305 |
+
|
306 |
+
.footer-text {
|
307 |
+
color: var(--text-secondary);
|
308 |
+
font-size: 0.9rem;
|
309 |
+
}
|
310 |
+
|
311 |
+
/* Animations */
|
312 |
+
.fade-in {
|
313 |
+
opacity: 0;
|
314 |
+
transform: translateY(30px);
|
315 |
+
animation: fadeInUp 0.8s ease forwards;
|
316 |
+
}
|
317 |
+
|
318 |
+
@keyframes fadeInUp {
|
319 |
+
to {
|
320 |
+
opacity: 1;
|
321 |
+
transform: translateY(0);
|
322 |
+
}
|
323 |
+
}
|
324 |
+
|
325 |
+
.fade-in:nth-child(1) { animation-delay: 0.1s; }
|
326 |
+
.fade-in:nth-child(2) { animation-delay: 0.2s; }
|
327 |
+
.fade-in:nth-child(3) { animation-delay: 0.3s; }
|
328 |
+
.fade-in:nth-child(4) { animation-delay: 0.4s; }
|
329 |
+
.fade-in:nth-child(5) { animation-delay: 0.5s; }
|
330 |
+
.fade-in:nth-child(6) { animation-delay: 0.6s; }
|
331 |
+
|
332 |
+
/* Mobile Responsiveness */
|
333 |
+
@media (max-width: 768px) {
|
334 |
+
.nav-links {
|
335 |
+
display: none;
|
336 |
+
}
|
337 |
+
|
338 |
+
main {
|
339 |
+
padding: 100px 1rem 2rem;
|
340 |
+
}
|
341 |
+
|
342 |
+
h2 {
|
343 |
+
font-size: 2rem;
|
344 |
+
}
|
345 |
+
|
346 |
+
.achievements-grid {
|
347 |
+
grid-template-columns: 1fr;
|
348 |
+
gap: 1.5rem;
|
349 |
+
}
|
350 |
+
|
351 |
+
.achievement-card {
|
352 |
+
padding: 1.5rem;
|
353 |
+
}
|
354 |
+
|
355 |
+
.blog-card {
|
356 |
+
min-width: 280px;
|
357 |
+
}
|
358 |
+
}
|
359 |
+
</style>
|
360 |
+
</head>
|
361 |
+
<body>
|
362 |
+
<!-- Header -->
|
363 |
+
<header>
|
364 |
+
<nav>
|
365 |
+
<div class="logo">Pranit Chilbule</div>
|
366 |
+
<ul class="nav-links">
|
367 |
+
<li><a href="index.html">Home</a></li>
|
368 |
+
<li><a href="about.html">About</a></li>
|
369 |
+
<li><a href="projects.html">Projects</a></li>
|
370 |
+
<li><a href="achievements.html">Achievements</a></li>
|
371 |
+
<li><a href="contact.html">Contact</a></li>
|
372 |
+
</ul>
|
373 |
+
</nav>
|
374 |
+
</header>
|
375 |
+
|
376 |
+
<main>
|
377 |
+
<!-- Achievements Section -->
|
378 |
+
<section id="achievements">
|
379 |
+
<h2 class="fade-in">Achievements</h2>
|
380 |
+
<div class="achievements-grid">
|
381 |
+
<div class="achievement-card fade-in">
|
382 |
+
<div class="achievement-icon">🏆</div>
|
383 |
+
<h3 class="achievement-title">3× Hackathon Winner</h3>
|
384 |
+
<p class="achievement-description">First place victories at Cavista, Solvex, and Agri Tech hackathons, delivering innovative solutions across healthcare, agriculture, and engineering domains.</p>
|
385 |
+
<div class="achievement-stats">
|
386 |
+
<span class="stat-item">3 Wins</span>
|
387 |
+
<span class="stat-item">Multiple Domains</span>
|
388 |
+
</div>
|
389 |
+
</div>
|
390 |
+
|
391 |
+
<div class="achievement-card fade-in">
|
392 |
+
<div class="achievement-icon">🥈</div>
|
393 |
+
<h3 class="achievement-title">Runner-Up & Finalist</h3>
|
394 |
+
<p class="achievement-description">Runner-up at Smart India Hackathon 2024 and Agri AI Hackathon 2025. Finalist at 8+ hackathons with 20+ total participations, consistently applying AI to solve real-world challenges.</p>
|
395 |
+
<div class="achievement-stats">
|
396 |
+
<span class="stat-item">2 Runner-ups</span>
|
397 |
+
<span class="stat-item">8+ Finals</span>
|
398 |
+
<span class="stat-item">20+ Participations</span>
|
399 |
+
</div>
|
400 |
+
</div>
|
401 |
+
|
402 |
+
<div class="achievement-card fade-in">
|
403 |
+
<div class="achievement-icon">📑</div>
|
404 |
+
<h3 class="achievement-title">Research Publications</h3>
|
405 |
+
<p class="achievement-description">Research papers presented at the Maitri Conference and ICCICN, with publications indexed in prestigious Scopus and Springer databases.</p>
|
406 |
+
<div class="achievement-stats">
|
407 |
+
<span class="stat-item">Scopus Indexed</span>
|
408 |
+
<span class="stat-item">Springer</span>
|
409 |
+
</div>
|
410 |
+
</div>
|
411 |
+
|
412 |
+
<div class="achievement-card fade-in">
|
413 |
+
<div class="achievement-icon">🏅</div>
|
414 |
+
<h3 class="achievement-title">Best Project Award</h3>
|
415 |
+
<p class="achievement-description">Best Project Award for Plant Disease Detection System at college level, recognized for innovation among 120+ participants.</p>
|
416 |
+
<div class="achievement-stats">
|
417 |
+
<span class="stat-item">120+ Participants</span>
|
418 |
+
<span class="stat-item">AI/ML Project</span>
|
419 |
+
</div>
|
420 |
+
</div>
|
421 |
+
|
422 |
+
<div class="achievement-card fade-in">
|
423 |
+
<div class="achievement-icon">👥</div>
|
424 |
+
<h3 class="achievement-title">Innovsphere Club Founder</h3>
|
425 |
+
<p class="achievement-description">Founded and serve as Tech Lead of Innovsphere Club, a community-driven technology club fostering collaboration among students and industry professionals.</p>
|
426 |
+
<div class="achievement-stats">
|
427 |
+
<span class="stat-item">Founder</span>
|
428 |
+
<span class="stat-item">Tech Lead</span>
|
429 |
+
</div>
|
430 |
+
</div>
|
431 |
+
|
432 |
+
<div class="achievement-card fade-in">
|
433 |
+
<div class="achievement-icon">🌟</div>
|
434 |
+
<h3 class="achievement-title">Continuous Contributor</h3>
|
435 |
+
<p class="achievement-description">Actively contributing to data science and AI through open-source projects, technical blog posts, and ongoing academic and industry collaborations.</p>
|
436 |
+
<div class="achievement-stats">
|
437 |
+
<span class="stat-item">Open Source</span>
|
438 |
+
<span class="stat-item">Tech Blogs</span>
|
439 |
+
<span class="stat-item">Collaborations</span>
|
440 |
+
</div>
|
441 |
+
</div>
|
442 |
+
</div>
|
443 |
+
</section>
|
444 |
+
|
445 |
+
<!-- Blog Section -->
|
446 |
+
<section id="blog">
|
447 |
+
<h2 class="fade-in">Technical Blog</h2>
|
448 |
+
<div class="blog-container">
|
449 |
+
<div class="blog-grid">
|
450 |
+
<!-- Blog Post 1 -->
|
451 |
+
<article class="blog-card fade-in">
|
452 |
+
<div class="blog-image">🧠</div>
|
453 |
+
<div class="blog-content">
|
454 |
+
<div class="blog-date">December 15, 2024</div>
|
455 |
+
<h3 class="blog-title">Implementing GANs for Audio Generation</h3>
|
456 |
+
<p class="blog-excerpt">Exploring the architecture and implementation of Generative Adversarial Networks for creating realistic audio samples with deep learning techniques.</p>
|
457 |
+
<a href="#" class="blog-link">
|
458 |
+
Read More
|
459 |
+
<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
460 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
|
461 |
+
</svg>
|
462 |
+
</a>
|
463 |
+
</div>
|
464 |
+
</article>
|
465 |
+
|
466 |
+
<!-- Blog Post 2 -->
|
467 |
+
<article class="blog-card fade-in">
|
468 |
+
<div class="blog-image">🌱</div>
|
469 |
+
<div class="blog-content">
|
470 |
+
<div class="blog-date">November 28, 2024</div>
|
471 |
+
<h3 class="blog-title">AI in Agriculture: Plant Disease Detection</h3>
|
472 |
+
<p class="blog-excerpt">Deep dive into computer vision techniques for early detection of plant diseases, featuring CNN architectures and real-world deployment strategies.</p>
|
473 |
+
<a href="#" class="blog-link">
|
474 |
+
Read More
|
475 |
+
<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
476 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
|
477 |
+
</svg>
|
478 |
+
</a>
|
479 |
+
</div>
|
480 |
+
</article>
|
481 |
+
|
482 |
+
<!-- Blog Post 3 -->
|
483 |
+
<article class="blog-card fade-in">
|
484 |
+
<div class="blog-image">⚡</div>
|
485 |
+
<div class="blog-content">
|
486 |
+
<div class="blog-date">October 10, 2024</div>
|
487 |
+
<h3 class="blog-title">Building Scalable ML Pipelines</h3>
|
488 |
+
<p class="blog-excerpt">Best practices for designing and implementing machine learning pipelines that can handle production workloads with MLOps principles.</p>
|
489 |
+
<a href="#" class="blog-link">
|
490 |
+
Read More
|
491 |
+
<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
492 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
|
493 |
+
</svg>
|
494 |
+
</a>
|
495 |
+
</div>
|
496 |
+
</article>
|
497 |
+
|
498 |
+
<!-- Blog Post 4 -->
|
499 |
+
<article class="blog-card fade-in">
|
500 |
+
<div class="blog-image">🔬</div>
|
501 |
+
<div class="blog-content">
|
502 |
+
<div class="blog-date">September 22, 2024</div>
|
503 |
+
<h3 class="blog-title">Research Paper Insights: AI Ethics</h3>
|
504 |
+
<p class="blog-excerpt">Key findings from recent research publications on ethical AI development and responsible machine learning practices in industry applications.</p>
|
505 |
+
<a href="#" class="blog-link">
|
506 |
+
Read More
|
507 |
+
<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
508 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
|
509 |
+
</svg>
|
510 |
+
</a>
|
511 |
+
</div>
|
512 |
+
</article>
|
513 |
+
</div>
|
514 |
+
</div>
|
515 |
+
</section>
|
516 |
+
</main>
|
517 |
+
|
518 |
+
<!-- Footer -->
|
519 |
+
<footer>
|
520 |
+
<div class="footer-content">
|
521 |
+
<div class="social-links">
|
522 |
+
<a href="#" aria-label="LinkedIn">📧</a>
|
523 |
+
<a href="#" aria-label="GitHub">💻</a>
|
524 |
+
<a href="#" aria-label="Twitter">🐦</a>
|
525 |
+
<a href="#" aria-label="Medium">📝</a>
|
526 |
+
</div>
|
527 |
+
<p class="footer-text">© 2024 Pranit Chilbule. All rights reserved.</p>
|
528 |
+
</div>
|
529 |
+
</footer>
|
530 |
+
|
531 |
+
<script>
|
532 |
+
// Smooth scrolling for navigation links
|
533 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
534 |
+
anchor.addEventListener('click', function (e) {
|
535 |
+
e.preventDefault();
|
536 |
+
const target = document.querySelector(this.getAttribute('href'));
|
537 |
+
if (target) {
|
538 |
+
target.scrollIntoView({
|
539 |
+
behavior: 'smooth',
|
540 |
+
block: 'start'
|
541 |
+
});
|
542 |
+
}
|
543 |
+
});
|
544 |
+
});
|
545 |
+
|
546 |
+
// Intersection Observer for animations
|
547 |
+
const observerOptions = {
|
548 |
+
threshold: 0.1,
|
549 |
+
rootMargin: '0px 0px -50px 0px'
|
550 |
+
};
|
551 |
+
|
552 |
+
const observer = new IntersectionObserver((entries) => {
|
553 |
+
entries.forEach(entry => {
|
554 |
+
if (entry.isIntersecting) {
|
555 |
+
entry.target.style.animationPlayState = 'running';
|
556 |
+
}
|
557 |
+
});
|
558 |
+
}, observerOptions);
|
559 |
+
|
560 |
+
// Observe all elements with fade-in class
|
561 |
+
document.querySelectorAll('.fade-in').forEach(el => {
|
562 |
+
observer.observe(el);
|
563 |
+
});
|
564 |
+
|
565 |
+
// Add click effects to achievement cards
|
566 |
+
document.querySelectorAll('.achievement-card').forEach(card => {
|
567 |
+
card.addEventListener('click', function() {
|
568 |
+
this.style.transform = 'scale(0.98)';
|
569 |
+
setTimeout(() => {
|
570 |
+
this.style.transform = '';
|
571 |
+
}, 150);
|
572 |
+
});
|
573 |
+
});
|
574 |
+
|
575 |
+
// Header background on scroll
|
576 |
+
window.addEventListener('scroll', () => {
|
577 |
+
const header = document.querySelector('header');
|
578 |
+
if (window.scrollY > 100) {
|
579 |
+
header.style.background = 'rgba(0, 0, 0, 0.9)';
|
580 |
+
} else {
|
581 |
+
header.style.background = 'rgba(0, 0, 0, 0.6)';
|
582 |
+
}
|
583 |
+
});
|
584 |
+
|
585 |
+
// Initialize animations
|
586 |
+
document.addEventListener('DOMContentLoaded', () => {
|
587 |
+
const fadeElements = document.querySelectorAll('.fade-in');
|
588 |
+
fadeElements.forEach((el, index) => {
|
589 |
+
el.style.animationDelay = `${index * 0.1}s`;
|
590 |
+
});
|
591 |
+
});
|
592 |
+
</script>
|
593 |
+
</body>
|
594 |
+
</html>
|
contact.html
ADDED
@@ -0,0 +1,288 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Contact - Pranit Chilbule</title>
|
7 |
+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
8 |
+
<style>
|
9 |
+
/* Import existing theme variables */
|
10 |
+
:root {
|
11 |
+
--bg-primary: #0d1117;
|
12 |
+
--bg-secondary: #010409;
|
13 |
+
--bg-card: #21262d;
|
14 |
+
--text-primary: #c9d1d9;
|
15 |
+
--text-secondary: rgba(201, 209, 217, 0.8);
|
16 |
+
--accent-blue: #58a6ff;
|
17 |
+
--accent-green: #10a37f;
|
18 |
+
--header-bg: rgba(0, 0, 0, 0.6);
|
19 |
+
--border-color: #30363d;
|
20 |
+
}
|
21 |
+
|
22 |
+
/* Base styles */
|
23 |
+
body {
|
24 |
+
background-color: var(--bg-primary);
|
25 |
+
color: var(--text-primary);
|
26 |
+
font-family: 'Inter', sans-serif;
|
27 |
+
line-height: 1.6;
|
28 |
+
margin: 0;
|
29 |
+
}
|
30 |
+
|
31 |
+
/* Contact Form Section */
|
32 |
+
.contact-section {
|
33 |
+
max-width: 600px;
|
34 |
+
margin: 100px auto 4rem;
|
35 |
+
padding: 0 2rem;
|
36 |
+
}
|
37 |
+
|
38 |
+
.form-group {
|
39 |
+
position: relative;
|
40 |
+
margin-bottom: 1.5rem;
|
41 |
+
}
|
42 |
+
|
43 |
+
.form-label {
|
44 |
+
position: absolute;
|
45 |
+
left: 0.75rem;
|
46 |
+
top: 0.75rem;
|
47 |
+
color: var(--text-secondary);
|
48 |
+
transition: all 0.3s ease;
|
49 |
+
pointer-events: none;
|
50 |
+
font-size: 0.9rem;
|
51 |
+
}
|
52 |
+
|
53 |
+
.form-input {
|
54 |
+
width: 100%;
|
55 |
+
padding: 0.75rem;
|
56 |
+
background: var(--bg-secondary);
|
57 |
+
border: 1px solid var(--border-color);
|
58 |
+
border-radius: 0.5rem;
|
59 |
+
color: var(--text-primary);
|
60 |
+
font-size: 1rem;
|
61 |
+
transition: all 0.3s ease;
|
62 |
+
}
|
63 |
+
|
64 |
+
.form-input:focus {
|
65 |
+
outline: none;
|
66 |
+
border-color: var(--accent-blue);
|
67 |
+
box-shadow: 0 0 0 2px rgba(88, 166, 255, 0.2);
|
68 |
+
}
|
69 |
+
|
70 |
+
.form-input:focus + .form-label,
|
71 |
+
.form-input:not(:placeholder-shown) + .form-label {
|
72 |
+
transform: translateY(-1.5rem) scale(0.8);
|
73 |
+
background: var(--bg-primary);
|
74 |
+
padding: 0 0.5rem;
|
75 |
+
color: var(--accent-blue);
|
76 |
+
}
|
77 |
+
|
78 |
+
textarea.form-input {
|
79 |
+
min-height: 150px;
|
80 |
+
resize: vertical;
|
81 |
+
}
|
82 |
+
|
83 |
+
.submit-btn {
|
84 |
+
width: 100%;
|
85 |
+
padding: 0.75rem;
|
86 |
+
background: var(--accent-blue);
|
87 |
+
color: white;
|
88 |
+
border: none;
|
89 |
+
border-radius: 0.5rem;
|
90 |
+
font-size: 1rem;
|
91 |
+
font-weight: 500;
|
92 |
+
cursor: pointer;
|
93 |
+
transition: all 0.3s ease;
|
94 |
+
}
|
95 |
+
|
96 |
+
.submit-btn:hover {
|
97 |
+
background: #4a8fd6;
|
98 |
+
transform: translateY(-2px);
|
99 |
+
}
|
100 |
+
|
101 |
+
/* Direct Contact Section */
|
102 |
+
.direct-contact {
|
103 |
+
margin-top: 3rem;
|
104 |
+
text-align: center;
|
105 |
+
padding: 2rem;
|
106 |
+
background: var(--bg-card);
|
107 |
+
border-radius: 1rem;
|
108 |
+
border: 1px solid var(--border-color);
|
109 |
+
}
|
110 |
+
|
111 |
+
.contact-link {
|
112 |
+
display: inline-flex;
|
113 |
+
align-items: center;
|
114 |
+
gap: 0.5rem;
|
115 |
+
color: var(--accent-blue);
|
116 |
+
text-decoration: none;
|
117 |
+
margin: 0.5rem 0;
|
118 |
+
transition: all 0.3s ease;
|
119 |
+
}
|
120 |
+
|
121 |
+
.contact-link:hover {
|
122 |
+
color: var(--accent-green);
|
123 |
+
}
|
124 |
+
|
125 |
+
.resume-btn {
|
126 |
+
display: inline-block;
|
127 |
+
margin-top: 1.5rem;
|
128 |
+
padding: 0.75rem 2rem;
|
129 |
+
background: var(--accent-green);
|
130 |
+
color: white;
|
131 |
+
text-decoration: none;
|
132 |
+
border-radius: 0.5rem;
|
133 |
+
transition: all 0.3s ease;
|
134 |
+
}
|
135 |
+
|
136 |
+
.resume-btn:hover {
|
137 |
+
background: #0c8a6a;
|
138 |
+
transform: translateY(-2px);
|
139 |
+
}
|
140 |
+
|
141 |
+
/* Animation classes */
|
142 |
+
.fade-in {
|
143 |
+
opacity: 0;
|
144 |
+
transform: translateY(20px);
|
145 |
+
transition: all 0.6s ease;
|
146 |
+
}
|
147 |
+
|
148 |
+
.fade-in.visible {
|
149 |
+
opacity: 1;
|
150 |
+
transform: translateY(0);
|
151 |
+
}
|
152 |
+
header {
|
153 |
+
position: fixed;
|
154 |
+
top: 0;
|
155 |
+
width: 100%;
|
156 |
+
background: var(--header-bg);
|
157 |
+
backdrop-filter: blur(10px);
|
158 |
+
z-index: 1000;
|
159 |
+
border-bottom: 1px solid var(--border-color);
|
160 |
+
}
|
161 |
+
|
162 |
+
nav {
|
163 |
+
display: flex;
|
164 |
+
justify-content: space-between;
|
165 |
+
align-items: center;
|
166 |
+
padding: 1rem 2rem;
|
167 |
+
max-width: 1200px;
|
168 |
+
margin: 0 auto;
|
169 |
+
}
|
170 |
+
|
171 |
+
.logo {
|
172 |
+
font-family: 'Roboto Mono', monospace;
|
173 |
+
font-size: 1.5rem;
|
174 |
+
font-weight: 700;
|
175 |
+
color: var(--accent-blue);
|
176 |
+
}
|
177 |
+
|
178 |
+
.nav-links {
|
179 |
+
display: flex;
|
180 |
+
list-style: none;
|
181 |
+
gap: 2rem;
|
182 |
+
}
|
183 |
+
|
184 |
+
.nav-links a {
|
185 |
+
color: var(--text-primary);
|
186 |
+
text-decoration: none;
|
187 |
+
transition: color 0.3s ease;
|
188 |
+
}
|
189 |
+
|
190 |
+
.nav-links a:hover {
|
191 |
+
color: var(--accent-blue);
|
192 |
+
}
|
193 |
+
</style>
|
194 |
+
</head>
|
195 |
+
<body>
|
196 |
+
<!-- Header from existing pages -->
|
197 |
+
<header>
|
198 |
+
<nav>
|
199 |
+
<div class="logo">Pranit Chilbule</div>
|
200 |
+
<ul class="nav-links">
|
201 |
+
<li><a href="index.html">Home</a></li>
|
202 |
+
<li><a href="about.html">About</a></li>
|
203 |
+
<li><a href="projects.html">Projects</a></li>
|
204 |
+
<li><a href="achievements.html">Achievements</a></li>
|
205 |
+
<li><a href="contact.html">Contact</a></li>
|
206 |
+
</ul>
|
207 |
+
</nav>
|
208 |
+
</header>
|
209 |
+
|
210 |
+
<main>
|
211 |
+
<section class="contact-section">
|
212 |
+
<h2 class="fade-in">Get In Touch</h2>
|
213 |
+
|
214 |
+
<form id="contactForm" class="fade-in" onsubmit="handleSubmit(event)">
|
215 |
+
<div class="form-group">
|
216 |
+
<input type="text" id="name" class="form-input" placeholder=" " required>
|
217 |
+
<label for="name" class="form-label">Name</label>
|
218 |
+
</div>
|
219 |
+
|
220 |
+
<div class="form-group">
|
221 |
+
<input type="email" id="email" class="form-input" placeholder=" " required>
|
222 |
+
<label for="email" class="form-label">Email</label>
|
223 |
+
</div>
|
224 |
+
|
225 |
+
<div class="form-group">
|
226 |
+
<textarea id="message" class="form-input" placeholder=" " required></textarea>
|
227 |
+
<label for="message" class="form-label">Message</label>
|
228 |
+
</div>
|
229 |
+
|
230 |
+
<button type="submit" class="submit-btn">Send Message</button>
|
231 |
+
</form>
|
232 |
+
|
233 |
+
<div class="direct-contact fade-in">
|
234 |
+
<h3>Direct Contact</h3>
|
235 |
+
<a href="tel:+919763059811" class="contact-link">
|
236 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
237 |
+
<path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z"/>
|
238 |
+
</svg>
|
239 |
+
+91-9763059811
|
240 |
+
</a>
|
241 |
+
<br>
|
242 |
+
<a href="mailto:[email protected]" class="contact-link">
|
243 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
244 |
+
<path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
|
245 |
+
</svg>
|
246 | |
247 |
+
</a>
|
248 |
+
<br>
|
249 |
+
<a href="/assets/Pranit_Chilbule_Resume.pdf" class="resume-btn" download>
|
250 |
+
Download Résumé
|
251 |
+
</a>
|
252 |
+
</div>
|
253 |
+
</section>
|
254 |
+
</main>
|
255 |
+
|
256 |
+
<!-- Footer from existing pages -->
|
257 |
+
<footer>...</footer>
|
258 |
+
|
259 |
+
<script>
|
260 |
+
// Form submission handler
|
261 |
+
function handleSubmit(event) {
|
262 |
+
event.preventDefault();
|
263 |
+
const formData = {
|
264 |
+
name: document.getElementById('name').value,
|
265 |
+
email: document.getElementById('email').value,
|
266 |
+
message: document.getElementById('message').value
|
267 |
+
};
|
268 |
+
console.log('Form submitted:', formData);
|
269 |
+
// Add your form submission logic here
|
270 |
+
event.target.reset();
|
271 |
+
}
|
272 |
+
|
273 |
+
// Animation observer
|
274 |
+
const observer = new IntersectionObserver(
|
275 |
+
(entries) => {
|
276 |
+
entries.forEach(entry => {
|
277 |
+
if (entry.isIntersecting) {
|
278 |
+
entry.target.classList.add('visible');
|
279 |
+
}
|
280 |
+
});
|
281 |
+
},
|
282 |
+
{ threshold: 0.1 }
|
283 |
+
);
|
284 |
+
|
285 |
+
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
|
286 |
+
</script>
|
287 |
+
</body>
|
288 |
+
</html>
|
images/0_rOIc88HfNzBtAhru.gif
ADDED
![]() |
Git LFS Details
|
images/1 (1).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (1).mp4
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ee59fad349454d94db6c3d1b50870c6bfab3f63a8c7f24d8b4e75c4d93a06f7c
|
3 |
+
size 1155684
|
images/1 (10).jpg
ADDED
![]() |
images/1 (11).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (12).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (13).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (14).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (15).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (16).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (17).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (18).jpg
ADDED
![]() |
images/1 (19).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (2).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (20).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (21).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (22).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (23).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (24).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (25).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (26).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (27).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (28).jpg
ADDED
![]() |
images/1 (29).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (3).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (30).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (31).jpg
ADDED
![]() |
images/1 (32).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (33).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (34).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (35).jpg
ADDED
![]() |
images/1 (36).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (4).jpg
ADDED
![]() |
images/1 (5).jpg
ADDED
![]() |
images/1 (6).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (7).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (8).jpg
ADDED
![]() |
Git LFS Details
|
images/1 (9).jpg
ADDED
![]() |
Git LFS Details
|
images/121415604.jpeg
ADDED
![]() |
index.html
CHANGED
@@ -1,19 +1,1076 @@
|
|
1 |
-
<!
|
2 |
-
<html>
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Pranit Chilbule - AI/ML Engineer & MERN Developer</title>
|
7 |
+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
8 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
|
9 |
+
<style>
|
10 |
+
* {
|
11 |
+
margin: 0;
|
12 |
+
padding: 0;
|
13 |
+
box-sizing: border-box;
|
14 |
+
}
|
15 |
+
|
16 |
+
:root {
|
17 |
+
--bg-primary: #0d1117;
|
18 |
+
--bg-secondary: #010409;
|
19 |
+
--text-primary: #c9d1d9;
|
20 |
+
--text-secondary: rgba(201, 209, 217, 0.8);
|
21 |
+
--accent-blue: #58a6ff;
|
22 |
+
--accent-green: #10a37f;
|
23 |
+
--header-bg: rgba(0, 0, 0, 0.6);
|
24 |
+
--border-color: rgba(201, 209, 217, 0.1);
|
25 |
+
}
|
26 |
+
|
27 |
+
body {
|
28 |
+
background-color: var(--bg-primary);
|
29 |
+
color: var(--text-primary);
|
30 |
+
font-family: 'Inter', sans-serif;
|
31 |
+
line-height: 1.6;
|
32 |
+
overflow-x: hidden;
|
33 |
+
}
|
34 |
+
|
35 |
+
/* Three.js Canvas */
|
36 |
+
#three-canvas {
|
37 |
+
position: fixed;
|
38 |
+
top: 0;
|
39 |
+
left: 0;
|
40 |
+
width: 100%;
|
41 |
+
height: 100%;
|
42 |
+
z-index: -1;
|
43 |
+
pointer-events: none;
|
44 |
+
}
|
45 |
+
|
46 |
+
/* Header */
|
47 |
+
header {
|
48 |
+
position: fixed;
|
49 |
+
top: 0;
|
50 |
+
left: 0;
|
51 |
+
width: 100%;
|
52 |
+
padding: 1rem 2rem;
|
53 |
+
background: var(--header-bg);
|
54 |
+
backdrop-filter: blur(10px);
|
55 |
+
z-index: 1000;
|
56 |
+
transition: all 0.3s ease;
|
57 |
+
}
|
58 |
+
|
59 |
+
nav {
|
60 |
+
display: flex;
|
61 |
+
justify-content: space-between;
|
62 |
+
align-items: center;
|
63 |
+
max-width: 1200px;
|
64 |
+
margin: 0 auto;
|
65 |
+
}
|
66 |
+
|
67 |
+
.logo {
|
68 |
+
font-family: 'Roboto Mono', monospace;
|
69 |
+
font-size: 1.5rem;
|
70 |
+
font-weight: 700;
|
71 |
+
color: var(--text-primary);
|
72 |
+
text-decoration: none;
|
73 |
+
transition: color 0.3s ease;
|
74 |
+
}
|
75 |
+
|
76 |
+
.logo:hover {
|
77 |
+
color: var(--accent-blue);
|
78 |
+
}
|
79 |
+
|
80 |
+
.nav-links {
|
81 |
+
display: flex;
|
82 |
+
list-style: none;
|
83 |
+
gap: 2rem;
|
84 |
+
}
|
85 |
+
|
86 |
+
.nav-links a {
|
87 |
+
color: var(--text-primary);
|
88 |
+
text-decoration: none;
|
89 |
+
font-weight: 500;
|
90 |
+
transition: color 0.3s ease;
|
91 |
+
position: relative;
|
92 |
+
}
|
93 |
+
|
94 |
+
.nav-links a:hover {
|
95 |
+
color: var(--accent-blue);
|
96 |
+
}
|
97 |
+
|
98 |
+
.nav-links a::after {
|
99 |
+
content: '';
|
100 |
+
position: absolute;
|
101 |
+
bottom: -5px;
|
102 |
+
left: 0;
|
103 |
+
width: 0;
|
104 |
+
height: 2px;
|
105 |
+
background: var(--accent-blue);
|
106 |
+
transition: width 0.3s ease;
|
107 |
+
}
|
108 |
+
|
109 |
+
.nav-links a:hover::after {
|
110 |
+
width: 100%;
|
111 |
+
}
|
112 |
+
|
113 |
+
/* Main Hero Section */
|
114 |
+
main {
|
115 |
+
min-height: 100vh;
|
116 |
+
display: flex;
|
117 |
+
align-items: center;
|
118 |
+
justify-content: center;
|
119 |
+
padding: 0 2rem;
|
120 |
+
position: relative;
|
121 |
+
}
|
122 |
+
|
123 |
+
.hero-content {
|
124 |
+
text-align: center;
|
125 |
+
max-width: 1200px;
|
126 |
+
width: 100%;
|
127 |
+
margin: 0 auto;
|
128 |
+
padding-top: 80px; /* Added to account for fixed header */
|
129 |
+
animation: fadeInUp 1s ease-out;
|
130 |
+
}
|
131 |
+
|
132 |
+
@keyframes fadeInUp {
|
133 |
+
from {
|
134 |
+
opacity: 0;
|
135 |
+
transform: translateY(30px);
|
136 |
+
}
|
137 |
+
to {
|
138 |
+
opacity: 1;
|
139 |
+
transform: translateY(0);
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
.hero-content h1 {
|
144 |
+
font-family: 'Roboto Mono', monospace;
|
145 |
+
font-size: 4rem;
|
146 |
+
font-weight: 700;
|
147 |
+
white-space: nowrap; /* Keeps name in one line */
|
148 |
+
margin-left: 0; /* Removed left margin */
|
149 |
+
background: linear-gradient(135deg, var(--accent-blue), var(--accent-green));
|
150 |
+
-webkit-background-clip: text;
|
151 |
+
-webkit-text-fill-color: transparent;
|
152 |
+
background-clip: text;
|
153 |
+
animation: glow 2s ease-in-out infinite alternate;
|
154 |
+
}
|
155 |
+
|
156 |
+
@keyframes glow {
|
157 |
+
from {
|
158 |
+
text-shadow: 0 0 20px rgba(88, 166, 255, 0.5);
|
159 |
+
}
|
160 |
+
to {
|
161 |
+
text-shadow: 0 0 30px rgba(88, 166, 255, 0.8);
|
162 |
+
}
|
163 |
+
}
|
164 |
+
|
165 |
+
.hero-content p {
|
166 |
+
font-size: 1.25rem;
|
167 |
+
letter-spacing: 1px;
|
168 |
+
opacity: 0.8;
|
169 |
+
margin-bottom: 2.5rem;
|
170 |
+
font-weight: 300;
|
171 |
+
}
|
172 |
+
|
173 |
+
.cta-buttons {
|
174 |
+
display: flex;
|
175 |
+
gap: 1rem;
|
176 |
+
justify-content: center;
|
177 |
+
flex-wrap: wrap;
|
178 |
+
}
|
179 |
+
|
180 |
+
.btn {
|
181 |
+
padding: 0.75rem 1.5rem;
|
182 |
+
border: none;
|
183 |
+
border-radius: 50px;
|
184 |
+
font-size: 1rem;
|
185 |
+
font-weight: 500;
|
186 |
+
text-decoration: none;
|
187 |
+
cursor: pointer;
|
188 |
+
transition: all 0.3s ease;
|
189 |
+
display: inline-block;
|
190 |
+
}
|
191 |
+
|
192 |
+
.btn-primary {
|
193 |
+
background: var(--accent-blue);
|
194 |
+
color: white;
|
195 |
+
}
|
196 |
+
|
197 |
+
.btn-primary:hover {
|
198 |
+
box-shadow: 0 0 20px rgba(88, 166, 255, 0.6);
|
199 |
+
transform: translateY(-2px);
|
200 |
+
}
|
201 |
+
|
202 |
+
.btn-secondary {
|
203 |
+
background: transparent;
|
204 |
+
color: var(--accent-green);
|
205 |
+
border: 2px solid var(--accent-green);
|
206 |
+
}
|
207 |
+
|
208 |
+
.btn-secondary:hover {
|
209 |
+
background: var(--accent-green);
|
210 |
+
color: white;
|
211 |
+
box-shadow: 0 0 20px rgba(16, 163, 127, 0.4);
|
212 |
+
transform: translateY(-2px);
|
213 |
+
}
|
214 |
+
|
215 |
+
/* About Section */
|
216 |
+
#about {
|
217 |
+
padding: 4rem 2rem;
|
218 |
+
background: rgba(13, 17, 23, 0.8);
|
219 |
+
backdrop-filter: blur(10px);
|
220 |
+
border-radius: 15px;
|
221 |
+
border: 1px solid var(--border-color);
|
222 |
+
margin: 2rem auto;
|
223 |
+
max-width: 1200px;
|
224 |
+
}
|
225 |
+
|
226 |
+
.about-grid {
|
227 |
+
display: grid;
|
228 |
+
grid-template-columns: 1fr 2fr;
|
229 |
+
gap: 4rem;
|
230 |
+
align-items: center;
|
231 |
+
}
|
232 |
+
|
233 |
+
.profile-image {
|
234 |
+
display: flex;
|
235 |
+
justify-content: center;
|
236 |
+
align-items: center;
|
237 |
+
}
|
238 |
+
|
239 |
+
.profile-image img {
|
240 |
+
width: 200px;
|
241 |
+
height: 200px;
|
242 |
+
border-radius: 50%;
|
243 |
+
border: 4px solid var(--accent-blue);
|
244 |
+
box-shadow: 0 10px 30px rgba(88, 166, 255, 0.3);
|
245 |
+
transition: transform 0.3s ease;
|
246 |
+
}
|
247 |
+
|
248 |
+
.profile-image img:hover {
|
249 |
+
transform: scale(1.05);
|
250 |
+
}
|
251 |
+
|
252 |
+
.about-content {
|
253 |
+
max-width: 600px;
|
254 |
+
}
|
255 |
+
|
256 |
+
.about-content h2 {
|
257 |
+
font-size: 2.5rem;
|
258 |
+
margin-bottom: 1rem;
|
259 |
+
position: relative;
|
260 |
+
display: inline-block;
|
261 |
+
}
|
262 |
+
|
263 |
+
.about-content h2::after {
|
264 |
+
content: '';
|
265 |
+
position: absolute;
|
266 |
+
width: 100%;
|
267 |
+
height: 2px;
|
268 |
+
bottom: -5px;
|
269 |
+
left: 0;
|
270 |
+
background: var(--accent-blue);
|
271 |
+
transform: scaleX(0);
|
272 |
+
transition: transform 0.3s ease;
|
273 |
+
}
|
274 |
+
|
275 |
+
.about-content h2:hover::after {
|
276 |
+
transform: scaleX(1);
|
277 |
+
}
|
278 |
+
|
279 |
+
.quick-info {
|
280 |
+
display: flex;
|
281 |
+
gap: 2rem;
|
282 |
+
margin: 2rem 0;
|
283 |
+
}
|
284 |
+
|
285 |
+
.info-item {
|
286 |
+
display: flex;
|
287 |
+
align-items: center;
|
288 |
+
gap: 0.5rem;
|
289 |
+
}
|
290 |
+
|
291 |
+
.info-icon {
|
292 |
+
font-size: 1.5rem;
|
293 |
+
}
|
294 |
+
|
295 |
+
/* Journey Sliders */
|
296 |
+
.journey-sliders {
|
297 |
+
padding: 4rem 2rem;
|
298 |
+
overflow: hidden;
|
299 |
+
background: rgba(13, 17, 23, 0.8);
|
300 |
+
backdrop-filter: blur(10px);
|
301 |
+
border-radius: 15px;
|
302 |
+
border: 1px solid var(--border-color);
|
303 |
+
margin: 2rem auto;
|
304 |
+
max-width: 1400px;
|
305 |
+
}
|
306 |
+
|
307 |
+
.section-title {
|
308 |
+
text-align: center;
|
309 |
+
font-size: 2.5rem;
|
310 |
+
margin-bottom: 2rem;
|
311 |
+
color: var(--text-primary);
|
312 |
+
background: linear-gradient(135deg, var(--accent-blue), var(--accent-green));
|
313 |
+
-webkit-background-clip: text;
|
314 |
+
-webkit-text-fill-color: transparent;
|
315 |
+
background-clip: text;
|
316 |
+
}
|
317 |
+
|
318 |
+
.slider-container {
|
319 |
+
position: relative;
|
320 |
+
padding: 2rem 0;
|
321 |
+
margin-bottom: 2rem;
|
322 |
+
}
|
323 |
+
|
324 |
+
.slider-track {
|
325 |
+
display: flex;
|
326 |
+
width: calc(250px * 18);
|
327 |
+
animation: scroll 40s linear infinite;
|
328 |
+
}
|
329 |
+
|
330 |
+
.slider-track.reverse {
|
331 |
+
animation-direction: reverse;
|
332 |
+
}
|
333 |
+
|
334 |
+
.slider-item {
|
335 |
+
width: 250px;
|
336 |
+
height: 180px;
|
337 |
+
padding: 0 15px;
|
338 |
+
flex-shrink: 0;
|
339 |
+
}
|
340 |
+
|
341 |
+
.slider-item img {
|
342 |
+
width: 100%;
|
343 |
+
height: 100%;
|
344 |
+
object-fit: cover;
|
345 |
+
border-radius: 10px;
|
346 |
+
border: 2px solid var(--accent-blue);
|
347 |
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
348 |
+
}
|
349 |
+
|
350 |
+
.slider-item img:hover {
|
351 |
+
transform: scale(1.05);
|
352 |
+
box-shadow: 0 0 20px rgba(88, 166, 255, 0.3);
|
353 |
+
}
|
354 |
+
|
355 |
+
@keyframes scroll {
|
356 |
+
0% {
|
357 |
+
transform: translateX(0);
|
358 |
+
}
|
359 |
+
100% {
|
360 |
+
transform: translateX(calc(-250px * 9));
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
.slider-container::before,
|
365 |
+
.slider-container::after {
|
366 |
+
content: '';
|
367 |
+
position: absolute;
|
368 |
+
top: 0;
|
369 |
+
width: 200px;
|
370 |
+
height: 100%;
|
371 |
+
z-index: 2;
|
372 |
+
}
|
373 |
+
|
374 |
+
.slider-container::before {
|
375 |
+
left: 0;
|
376 |
+
background: linear-gradient(to right, var(--bg-primary), transparent);
|
377 |
+
}
|
378 |
+
|
379 |
+
.slider-container::after {
|
380 |
+
right: 0;
|
381 |
+
background: linear-gradient(to left, var(--bg-primary), transparent);
|
382 |
+
}
|
383 |
+
|
384 |
+
/* Footer */
|
385 |
+
footer {
|
386 |
+
position: fixed;
|
387 |
+
bottom: 0;
|
388 |
+
left: 0;
|
389 |
+
width: 100%;
|
390 |
+
padding: 1rem 2rem;
|
391 |
+
background: var(--bg-secondary);
|
392 |
+
z-index: 100;
|
393 |
+
}
|
394 |
+
|
395 |
+
.footer-content {
|
396 |
+
display: flex;
|
397 |
+
justify-content: center;
|
398 |
+
align-items: center;
|
399 |
+
max-width: 1200px;
|
400 |
+
margin: 0 auto;
|
401 |
+
gap: 0.5rem;
|
402 |
+
}
|
403 |
+
|
404 |
+
.social-icon {
|
405 |
+
width: 24px;
|
406 |
+
height: 24px;
|
407 |
+
fill: var(--text-secondary);
|
408 |
+
transition: fill 0.3s ease;
|
409 |
+
cursor: pointer;
|
410 |
+
}
|
411 |
+
|
412 |
+
.social-icon:hover {
|
413 |
+
fill: var(--accent-green);
|
414 |
+
}
|
415 |
+
|
416 |
+
/* Mobile Menu Toggle */
|
417 |
+
.menu-toggle {
|
418 |
+
display: none;
|
419 |
+
flex-direction: column;
|
420 |
+
cursor: pointer;
|
421 |
+
gap: 4px;
|
422 |
+
}
|
423 |
+
|
424 |
+
.menu-toggle span {
|
425 |
+
width: 25px;
|
426 |
+
height: 3px;
|
427 |
+
background: var(--text-primary);
|
428 |
+
transition: all 0.3s ease;
|
429 |
+
}
|
430 |
+
|
431 |
+
/* Update the header styles */
|
432 |
+
.header-profile-img {
|
433 |
+
width: 50px;
|
434 |
+
height: 50px;
|
435 |
+
border-radius: 50%;
|
436 |
+
margin-left: 1rem;
|
437 |
+
border: 2px solid var(--accent-blue);
|
438 |
+
object-fit: cover;
|
439 |
+
}
|
440 |
+
|
441 |
+
.logo-container {
|
442 |
+
display: flex;
|
443 |
+
align-items: center;
|
444 |
+
gap: 1rem;
|
445 |
+
}
|
446 |
+
|
447 |
+
.header-profile-img {
|
448 |
+
width: 40px;
|
449 |
+
height: 40px;
|
450 |
+
border-radius: 50%;
|
451 |
+
border: 2px solid var(--accent-blue);
|
452 |
+
object-fit: cover;
|
453 |
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
454 |
+
}
|
455 |
+
|
456 |
+
.header-profile-img:hover {
|
457 |
+
transform: scale(1.1);
|
458 |
+
box-shadow: 0 0 15px rgba(88, 166, 255, 0.4);
|
459 |
+
}
|
460 |
+
|
461 |
+
/* Add to your existing styles */
|
462 |
+
.profile-container {
|
463 |
+
display: flex;
|
464 |
+
align-items: center;
|
465 |
+
justify-content: center; /* Changed to center */
|
466 |
+
margin-bottom: 2rem;
|
467 |
+
padding: 0 2rem;
|
468 |
+
gap: 6rem;
|
469 |
+
width: 100%; /* Added to ensure full width */
|
470 |
+
}
|
471 |
+
|
472 |
+
.profile-wrapper {
|
473 |
+
position: relative;
|
474 |
+
width: 300px; /* Increased width */
|
475 |
+
height: 300px; /* Increased height */
|
476 |
+
border-radius: 10px; /* Changed from 50% to 10px for slight rounding */
|
477 |
+
overflow: hidden;
|
478 |
+
border: 3px solid var(--accent-blue);
|
479 |
+
box-shadow: 0 0 20px rgba(88, 166, 255, 0.3);
|
480 |
+
animation: float 6s ease-in-out infinite;
|
481 |
+
background: var(--bg-primary);
|
482 |
+
}
|
483 |
+
|
484 |
+
.profile-img {
|
485 |
+
width: 450px; /* Increased size */
|
486 |
+
height: 450px; /* Increased size */
|
487 |
+
object-fit: contain;
|
488 |
+
transform: scale(1);
|
489 |
+
transition: all 0.3s ease;
|
490 |
+
border: 4px solid var(--accent-blue); /* Added bright border */
|
491 |
+
box-shadow: 0 0 30px rgba(88, 166, 255, 0.5); /* Added glow effect */
|
492 |
+
border-radius: 15px; /* Optional: slight rounded corners */
|
493 |
+
padding: 10px;
|
494 |
+
background: rgba(13, 17, 23, 0.8); /* Semi-transparent background */
|
495 |
+
}
|
496 |
+
|
497 |
+
.profile-img:hover {
|
498 |
+
transform: scale(1.02);
|
499 |
+
border-color: var(--accent-green); /* Color change on hover */
|
500 |
+
box-shadow: 0 0 40px rgba(16, 163, 127, 0.6); /* Enhanced glow on hover */
|
501 |
+
}
|
502 |
+
|
503 |
+
.ai-overlay {
|
504 |
+
position: absolute;
|
505 |
+
top: 0;
|
506 |
+
left: 0;
|
507 |
+
width: 100%;
|
508 |
+
height: 100%;
|
509 |
+
pointer-events: none;
|
510 |
+
}
|
511 |
+
|
512 |
+
.scanning-line {
|
513 |
+
position: absolute;
|
514 |
+
width: 100%;
|
515 |
+
height: 2px;
|
516 |
+
background: linear-gradient(90deg, transparent, var(--accent-blue), transparent);
|
517 |
+
animation: scan 2s linear infinite;
|
518 |
+
}
|
519 |
+
|
520 |
+
.ai-particles {
|
521 |
+
position: absolute;
|
522 |
+
width: 100%;
|
523 |
+
height: 100%;
|
524 |
+
background: radial-gradient(circle at center, transparent 30%, rgba(88, 166, 255, 0.1));
|
525 |
+
animation: pulse 2s ease-in-out infinite;
|
526 |
+
}
|
527 |
+
|
528 |
+
@keyframes scan {
|
529 |
+
0% {
|
530 |
+
top: 0;
|
531 |
+
opacity: 0;
|
532 |
+
}
|
533 |
+
50% {
|
534 |
+
opacity: 1;
|
535 |
+
}
|
536 |
+
100% {
|
537 |
+
top: 100%;
|
538 |
+
opacity: 0;
|
539 |
+
}
|
540 |
+
}
|
541 |
+
|
542 |
+
@keyframes pulse {
|
543 |
+
0%, 100% {
|
544 |
+
transform: scale(1);
|
545 |
+
opacity: 0.5;
|
546 |
+
}
|
547 |
+
50% {
|
548 |
+
transform: scale(1.1);
|
549 |
+
opacity: 0.8;
|
550 |
+
}
|
551 |
+
}
|
552 |
+
|
553 |
+
@keyframes float {
|
554 |
+
0%, 100% {
|
555 |
+
transform: translateY(0);
|
556 |
+
}
|
557 |
+
50% {
|
558 |
+
transform: translateY(-10px);
|
559 |
+
}
|
560 |
+
}
|
561 |
+
|
562 |
+
/* Responsive Design */
|
563 |
+
@media (max-width: 1200px) {
|
564 |
+
.hero-content h1 {
|
565 |
+
font-size: 3.5rem;
|
566 |
+
}
|
567 |
+
|
568 |
+
.profile-container {
|
569 |
+
gap: 4rem;
|
570 |
+
}
|
571 |
+
|
572 |
+
.hero-content h1 {
|
573 |
+
margin-left: 1rem;
|
574 |
+
}
|
575 |
+
}
|
576 |
+
|
577 |
+
@media (max-width: 768px) {
|
578 |
+
header {
|
579 |
+
padding: 1rem;
|
580 |
+
}
|
581 |
+
|
582 |
+
.nav-links {
|
583 |
+
display: none;
|
584 |
+
position: absolute;
|
585 |
+
top: 100%;
|
586 |
+
left: 0;
|
587 |
+
width: 100%;
|
588 |
+
background: var(--header-bg);
|
589 |
+
backdrop-filter: blur(10px);
|
590 |
+
flex-direction: column;
|
591 |
+
padding: 1rem 0;
|
592 |
+
gap: 1rem;
|
593 |
+
}
|
594 |
+
|
595 |
+
.nav-links.active {
|
596 |
+
display: flex;
|
597 |
+
}
|
598 |
+
|
599 |
+
.menu-toggle {
|
600 |
+
display: flex;
|
601 |
+
}
|
602 |
+
|
603 |
+
.hero-content h1 {
|
604 |
+
font-size: 2.5rem;
|
605 |
+
}
|
606 |
+
|
607 |
+
.hero-content p {
|
608 |
+
font-size: 1.1rem;
|
609 |
+
}
|
610 |
+
|
611 |
+
.cta-buttons {
|
612 |
+
flex-direction: column;
|
613 |
+
align-items: center;
|
614 |
+
}
|
615 |
+
|
616 |
+
.btn {
|
617 |
+
width: 200px;
|
618 |
+
}
|
619 |
+
|
620 |
+
.about-grid {
|
621 |
+
grid-template-columns: 1fr;
|
622 |
+
}
|
623 |
+
|
624 |
+
.journey-sliders {
|
625 |
+
padding: 2rem 1rem;
|
626 |
+
}
|
627 |
+
|
628 |
+
.section-title {
|
629 |
+
font-size: 2rem;
|
630 |
+
}
|
631 |
+
|
632 |
+
.slider-item {
|
633 |
+
width: 200px;
|
634 |
+
height: 150px;
|
635 |
+
}
|
636 |
+
|
637 |
+
.logo-container {
|
638 |
+
gap: 0.5rem;
|
639 |
+
}
|
640 |
+
|
641 |
+
.header-profile-img {
|
642 |
+
width: 32px;
|
643 |
+
height: 32px;
|
644 |
+
}
|
645 |
+
|
646 |
+
.profile-container {
|
647 |
+
flex-direction: column;
|
648 |
+
text-align: center;
|
649 |
+
gap: 2rem;
|
650 |
+
}
|
651 |
+
|
652 |
+
.hero-content h1 {
|
653 |
+
margin-left: 0;
|
654 |
+
}
|
655 |
+
}
|
656 |
+
|
657 |
+
@media (max-width: 480px) {
|
658 |
+
main {
|
659 |
+
padding: 0 1rem;
|
660 |
+
}
|
661 |
+
|
662 |
+
.hero-content h1 {
|
663 |
+
font-size: 2rem;
|
664 |
+
}
|
665 |
+
|
666 |
+
.hero-content p {
|
667 |
+
font-size: 1rem;
|
668 |
+
letter-spacing: 0.5px;
|
669 |
+
}
|
670 |
+
|
671 |
+
header {
|
672 |
+
padding: 0.75rem 1rem;
|
673 |
+
}
|
674 |
+
|
675 |
+
footer {
|
676 |
+
padding: 0.75rem 1rem;
|
677 |
+
}
|
678 |
+
}
|
679 |
+
|
680 |
+
/* Smooth scroll behavior */
|
681 |
+
html {
|
682 |
+
scroll-behavior: smooth;
|
683 |
+
}
|
684 |
+
|
685 |
+
/* Loading animation */
|
686 |
+
.loading {
|
687 |
+
opacity: 0;
|
688 |
+
animation: fadeIn 0.5s ease-in forwards;
|
689 |
+
}
|
690 |
+
|
691 |
+
@keyframes fadeIn {
|
692 |
+
to {
|
693 |
+
opacity: 1;
|
694 |
+
}
|
695 |
+
}
|
696 |
+
|
697 |
+
/* AI Particles */
|
698 |
+
.ai-particles {
|
699 |
+
position: fixed;
|
700 |
+
top: 0;
|
701 |
+
left: 0;
|
702 |
+
width: 100%;
|
703 |
+
height: 100%;
|
704 |
+
pointer-events: none;
|
705 |
+
overflow: hidden;
|
706 |
+
z-index: 0;
|
707 |
+
}
|
708 |
+
|
709 |
+
.ai-particle {
|
710 |
+
position: absolute;
|
711 |
+
width: 4px;
|
712 |
+
height: 4px;
|
713 |
+
background: var(--accent-blue);
|
714 |
+
border-radius: 50%;
|
715 |
+
pointer-events: none;
|
716 |
+
}
|
717 |
+
|
718 |
+
@keyframes particleFloat {
|
719 |
+
0% {
|
720 |
+
transform: translateY(0);
|
721 |
+
}
|
722 |
+
50% {
|
723 |
+
transform: translateY(-10px);
|
724 |
+
}
|
725 |
+
100% {
|
726 |
+
transform: translateY(0);
|
727 |
+
}
|
728 |
+
}
|
729 |
+
</style>
|
730 |
+
</head>
|
731 |
+
<body>
|
732 |
+
<!-- Three.js Canvas -->
|
733 |
+
<canvas id="three-canvas"></canvas>
|
734 |
+
|
735 |
+
<!-- Header -->
|
736 |
+
<header>
|
737 |
+
<nav>
|
738 |
+
<div class="logo-container">
|
739 |
+
<a href="index.html" class="logo">Pranit Chilbule</a>
|
740 |
+
<img src="images/0_rOIc88HfNzBtAhru.gif" alt="Profile" class="header-profile-img">
|
741 |
+
</div>
|
742 |
+
<div class="menu-toggle" onclick="toggleMenu()">
|
743 |
+
<span></span>
|
744 |
+
<span></span>
|
745 |
+
<span></span>
|
746 |
+
</div>
|
747 |
+
<ul class="nav-links" id="navLinks">
|
748 |
+
<li><a href="index.html" class="nav-home">Home</a></li>
|
749 |
+
<li><a href="about.html" class="nav-about">About</a></li>
|
750 |
+
<li><a href="projects.html" class="nav-projects">Projects</a></li>
|
751 |
+
<li><a href="achievements.html" class="nav-achievements">Achievements</a></li>
|
752 |
+
<li><a href="contact.html" class="nav-contact">Contact</a></li>
|
753 |
+
|
754 |
+
</ul>
|
755 |
+
</nav>
|
756 |
+
</header>
|
757 |
+
|
758 |
+
<!-- Main Hero Section -->
|
759 |
+
<main id="home">
|
760 |
+
<div class="hero-content loading">
|
761 |
+
<div class="profile-container">
|
762 |
+
<h1>Pranit Chilbule</h1>
|
763 |
+
<img src="images/0_rOIc88HfNzBtAhru.gif" alt="Profile" class="profile-img">
|
764 |
+
</div>
|
765 |
+
<p>AI/ML Engineer | MERN Developer | Tech Enthusiast</p>
|
766 |
+
<div class="cta-buttons">
|
767 |
+
<a href="#about" class="btn btn-primary">Learn More</a>
|
768 |
+
<a href="projects.html" class="btn btn-secondary">View Projects</a>
|
769 |
+
</div>
|
770 |
+
</div>
|
771 |
+
</main>
|
772 |
+
|
773 |
+
|
774 |
+
<!-- Journey Sliders Section -->
|
775 |
+
<section class="journey-sliders fade-in">
|
776 |
+
<h2 class="section-title">My Journey</h2>
|
777 |
+
|
778 |
+
<!-- First Slider - Moving Left -->
|
779 |
+
<div class="slider-container">
|
780 |
+
<div class="slider-track">
|
781 |
+
<!-- First set of images -->
|
782 |
+
<div class="slider-item"><img src="images/1 (1).jpg" alt="Journey moment"></div>
|
783 |
+
<div class="slider-item"><img src="images/1 (2).jpg" alt="Journey moment"></div>
|
784 |
+
<div class="slider-item"><img src="images/1 (3).jpg" alt="Journey moment"></div>
|
785 |
+
<div class="slider-item"><img src="images/1 (4).jpg" alt="Journey moment"></div>
|
786 |
+
<div class="slider-item"><img src="images/1 (5).jpg" alt="Journey moment"></div>
|
787 |
+
<div class="slider-item"><img src="images/1 (6).jpg" alt="Journey moment"></div>
|
788 |
+
<div class="slider-item"><img src="images/1 (7).jpg" alt="Journey moment"></div>
|
789 |
+
<div class="slider-item"><img src="images/1 (8).jpg" alt="Journey moment"></div>
|
790 |
+
<div class="slider-item"><img src="images/1 (9).jpg" alt="Journey moment"></div>
|
791 |
+
<!-- Duplicate for seamless loop -->
|
792 |
+
<div class="slider-item"><img src="images/1 (1).jpg" alt="Journey moment"></div>
|
793 |
+
<div class="slider-item"><img src="images/1 (2).jpg" alt="Journey moment"></div>
|
794 |
+
<div class="slider-item"><img src="images/1 (3).jpg" alt="Journey moment"></div>
|
795 |
+
<div class="slider-item"><img src="images/1 (4).jpg" alt="Journey moment"></div>
|
796 |
+
<div class="slider-item"><img src="images/1 (5).jpg" alt="Journey moment"></div>
|
797 |
+
<div class="slider-item"><img src="images/1 (6).jpg" alt="Journey moment"></div>
|
798 |
+
<div class="slider-item"><img src="images/1 (7).jpg" alt="Journey moment"></div>
|
799 |
+
<div class="slider-item"><img src="images/1 (8).jpg" alt="Journey moment"></div>
|
800 |
+
<div class="slider-item"><img src="images/1 (9).jpg" alt="Journey moment"></div>
|
801 |
+
</div>
|
802 |
+
</div>
|
803 |
+
|
804 |
+
<!-- Second Slider - Moving Right -->
|
805 |
+
<div class="slider-container">
|
806 |
+
<div class="slider-track reverse">
|
807 |
+
<!-- Second set of images -->
|
808 |
+
<div class="slider-item"><img src="images/1 (10).jpg" alt="Journey moment"></div>
|
809 |
+
<div class="slider-item"><img src="images/1 (11).jpg" alt="Journey moment"></div>
|
810 |
+
<div class="slider-item"><img src="images/1 (12).jpg" alt="Journey moment"></div>
|
811 |
+
<div class="slider-item"><img src="images/1 (13).jpg" alt="Journey moment"></div>
|
812 |
+
<div class="slider-item"><img src="images/1 (14).jpg" alt="Journey moment"></div>
|
813 |
+
<div class="slider-item"><img src="images/1 (15).jpg" alt="Journey moment"></div>
|
814 |
+
<div class="slider-item"><img src="images/1 (16).jpg" alt="Journey moment"></div>
|
815 |
+
<div class="slider-item"><img src="images/1 (17).jpg" alt="Journey moment"></div>
|
816 |
+
<div class="slider-item"><img src="images/1 (18).jpg" alt="Journey moment"></div>
|
817 |
+
<!-- Duplicate for seamless loop -->
|
818 |
+
<div class="slider-item"><img src="images/1 (10).jpg" alt="Journey moment"></div>
|
819 |
+
<div class="slider-item"><img src="images/1 (11).jpg" alt="Journey moment"></div>
|
820 |
+
<div class="slider-item"><img src="images/1 (12).jpg" alt="Journey moment"></div>
|
821 |
+
<div class="slider-item"><img src="images/1 (13).jpg" alt="Journey moment"></div>
|
822 |
+
<div class="slider-item"><img src="images/1 (14).jpg" alt="Journey moment"></div>
|
823 |
+
<div class="slider-item"><img src="images/1 (15).jpg" alt="Journey moment"></div>
|
824 |
+
<div class="slider-item"><img src="images/1 (16).jpg" alt="Journey moment"></div>
|
825 |
+
<div class="slider-item"><img src="images/1 (17).jpg" alt="Journey moment"></div>
|
826 |
+
<div class="slider-item"><img src="images/1 (18).jpg" alt="Journey moment"></div>
|
827 |
+
</div>
|
828 |
+
</div>
|
829 |
+
|
830 |
+
<!-- Third Slider - Moving Left -->
|
831 |
+
<div class="slider-container">
|
832 |
+
<div class="slider-track">
|
833 |
+
<!-- Third set of images -->
|
834 |
+
<div class="slider-item"><img src="images/1 (19).jpg" alt="Journey moment"></div>
|
835 |
+
<div class="slider-item"><img src="images/1 (20).jpg" alt="Journey moment"></div>
|
836 |
+
<div class="slider-item"><img src="images/1 (21).jpg" alt="Journey moment"></div>
|
837 |
+
<div class="slider-item"><img src="images/1 (22).jpg" alt="Journey moment"></div>
|
838 |
+
<div class="slider-item"><img src="images/1 (23).jpg" alt="Journey moment"></div>
|
839 |
+
<div class="slider-item"><img src="images/1 (24).jpg" alt="Journey moment"></div>
|
840 |
+
<div class="slider-item"><img src="images/1 (25).jpg" alt="Journey moment"></div>
|
841 |
+
<div class="slider-item"><img src="images/1 (26).jpg" alt="Journey moment"></div>
|
842 |
+
<div class="slider-item"><img src="images/1 (27).jpg" alt="Journey moment"></div>
|
843 |
+
<!-- Duplicate for seamless loop -->
|
844 |
+
<div class="slider-item"><img src="images/1 (19).jpg" alt="Journey moment"></div>
|
845 |
+
<div class="slider-item"><img src="images/1 (20).jpg" alt="Journey moment"></div>
|
846 |
+
<div class="slider-item"><img src="images/1 (21).jpg" alt="Journey moment"></div>
|
847 |
+
<div class="slider-item"><img src="images/1 (22).jpg" alt="Journey moment"></div>
|
848 |
+
<div class="slider-item"><img src="images/1 (23).jpg" alt="Journey moment"></div>
|
849 |
+
<div class="slider-item"><img src="images/1 (24).jpg" alt="Journey moment"></div>
|
850 |
+
<div class="slider-item"><img src="images/1 (25).jpg" alt="Journey moment"></div>
|
851 |
+
<div class="slider-item"><img src="images/1 (26).jpg" alt="Journey moment"></div>
|
852 |
+
<div class="slider-item"><img src="images/1 (27).jpg" alt="Journey moment"></div>
|
853 |
+
</div>
|
854 |
+
</div>
|
855 |
+
|
856 |
+
<!-- Fourth Slider - Moving Right -->
|
857 |
+
<div class="slider-container">
|
858 |
+
<div class="slider-track reverse">
|
859 |
+
<!-- Fourth set of images -->
|
860 |
+
<div class="slider-item"><img src="images/1 (28).jpg" alt="Journey moment"></div>
|
861 |
+
<div class="slider-item"><img src="images/1 (29).jpg" alt="Journey moment"></div>
|
862 |
+
<div class="slider-item"><img src="images/1 (30).jpg" alt="Journey moment"></div>
|
863 |
+
<div class="slider-item"><img src="images/1 (31).jpg" alt="Journey moment"></div>
|
864 |
+
<div class="slider-item"><img src="images/1 (32).jpg" alt="Journey moment"></div>
|
865 |
+
<div class="slider-item"><img src="images/1 (33).jpg" alt="Journey moment"></div>
|
866 |
+
<div class="slider-item"><img src="images/1 (34).jpg" alt="Journey moment"></div>
|
867 |
+
<div class="slider-item"><img src="images/1 (35).jpg" alt="Journey moment"></div>
|
868 |
+
<div class="slider-item"><img src="images/1 (36).jpg" alt="Journey moment"></div>
|
869 |
+
<!-- Duplicate for seamless loop -->
|
870 |
+
<div class="slider-item"><img src="images/1 (28).jpg" alt="Journey moment"></div>
|
871 |
+
<div class="slider-item"><img src="images/1 (29).jpg" alt="Journey moment"></div>
|
872 |
+
<div class="slider-item"><img src="images/1 (30).jpg" alt="Journey moment"></div>
|
873 |
+
<div class="slider-item"><img src="images/1 (31).jpg" alt="Journey moment"></div>
|
874 |
+
<div class="slider-item"><img src="images/1 (32).jpg" alt="Journey moment"></div>
|
875 |
+
<div class="slider-item"><img src="images/1 (33).jpg" alt="Journey moment"></div>
|
876 |
+
<div class="slider-item"><img src="images/1 (34).jpg" alt="Journey moment"></div>
|
877 |
+
<div class="slider-item"><img src="images/1 (35).jpg" alt="Journey moment"></div>
|
878 |
+
<div class="slider-item"><img src="images/1 (36).jpg" alt="Journey moment"></div>
|
879 |
+
</div>
|
880 |
+
</div>
|
881 |
+
</section>
|
882 |
+
<!-- About Section -->
|
883 |
+
<section id="about" class="fade-in">
|
884 |
+
<div class="about-grid">
|
885 |
+
<div class="profile-image">
|
886 |
+
<img src="images/121415604.jpeg" alt="Pranit Chilbule Profile Picture">
|
887 |
+
</div>
|
888 |
+
|
889 |
+
<div class="about-content">
|
890 |
+
<h2>About Me</h2>
|
891 |
+
<p>
|
892 |
+
I'm a 3rd-year AI/ML engineering student at VIT Pune, passionate about building intelligent systems that solve real-world problems. My journey in technology spans from developing cutting-edge machine learning models to creating robust web applications using the MERN stack.
|
893 |
+
</p>
|
894 |
+
<div class="quick-info">
|
895 |
+
<div class="info-item">
|
896 |
+
<span class="info-icon">🎓</span>
|
897 |
+
<span>AI/ML Engineer</span>
|
898 |
+
</div>
|
899 |
+
<div class="info-item">
|
900 |
+
<span class="info-icon">💻</span>
|
901 |
+
<span>MERN Developer</span>
|
902 |
+
</div>
|
903 |
+
<div class="info-item">
|
904 |
+
<span class="info-icon">🚀</span>
|
905 |
+
<span>Tech Enthusiast</span>
|
906 |
+
</div>
|
907 |
+
</div>
|
908 |
+
<div class="cta-buttons">
|
909 |
+
<a href="about.html" class="btn btn-primary">Full Bio</a>
|
910 |
+
<a href="#contact" class="btn btn-secondary">Get in Touch</a>
|
911 |
+
</div>
|
912 |
+
</div>
|
913 |
+
</div>
|
914 |
+
</section>
|
915 |
+
|
916 |
+
<!-- Footer -->
|
917 |
+
<footer>
|
918 |
+
<div class="footer-content">
|
919 |
+
<a href="www.linkedin.com/in/pranit-chilbule-03ba7b1b5" target="_blank">
|
920 |
+
<svg class="social-icon" viewBox="0 0 24 24">
|
921 |
+
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
|
922 |
+
</svg>
|
923 |
+
</a>
|
924 |
+
<a href="https://github.com/pranit144" target="_blank">
|
925 |
+
<svg class="social-icon" viewBox="0 0 24 24">
|
926 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
927 |
+
</svg>
|
928 |
+
</a>
|
929 |
+
<a href="/blog.html" target="_blank">
|
930 |
+
<svg class="social-icon" viewBox="0 0 24 24">
|
931 |
+
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
|
932 |
+
</svg>
|
933 |
+
</a>
|
934 |
+
</div>
|
935 |
+
</footer>
|
936 |
+
|
937 |
+
<script>
|
938 |
+
// Three.js Particle Network Background
|
939 |
+
let scene, camera, renderer, particles, lines;
|
940 |
+
let particleCount = 100;
|
941 |
+
let mouseX = 0, mouseY = 0;
|
942 |
+
let windowHalfX = window.innerWidth / 2;
|
943 |
+
let windowHalfY = window.innerHeight / 2;
|
944 |
+
|
945 |
+
function initThreeJS() {
|
946 |
+
const canvas = document.getElementById('three-canvas');
|
947 |
+
|
948 |
+
// Scene setup
|
949 |
+
scene = new THREE.Scene();
|
950 |
+
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
951 |
+
renderer = new THREE.WebGLRenderer({ canvas: canvas, alpha: true });
|
952 |
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
953 |
+
renderer.setClearColor(0x000000, 0);
|
954 |
+
|
955 |
+
// Create particles
|
956 |
+
const geometry = new THREE.BufferGeometry();
|
957 |
+
const positions = new Float32Array(particleCount * 3);
|
958 |
+
const velocities = [];
|
959 |
+
|
960 |
+
for (let i = 0; i < particleCount; i++) {
|
961 |
+
positions[i * 3] = (Math.random() - 0.5) * 2000;
|
962 |
+
positions[i * 3 + 1] = (Math.random() - 0.5) * 2000;
|
963 |
+
positions[i * 3 + 2] = (Math.random() - 0.5) * 2000;
|
964 |
+
|
965 |
+
velocities.push({
|
966 |
+
x: (Math.random() - 0.5) * 2,
|
967 |
+
y: (Math.random() - 0.5) * 2,
|
968 |
+
z: (Math.random() - 0.5) * 2
|
969 |
+
});
|
970 |
+
}
|
971 |
+
|
972 |
+
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
|
973 |
+
|
974 |
+
const material = new THREE.PointsMaterial({
|
975 |
+
color: 0x58a6ff,
|
976 |
+
size: 2,
|
977 |
+
transparent: true,
|
978 |
+
opacity: 0.8
|
979 |
+
});
|
980 |
+
|
981 |
+
particles = new THREE.Points(geometry, material);
|
982 |
+
particles.userData = { velocities: velocities };
|
983 |
+
scene.add(particles);
|
984 |
+
|
985 |
+
// Create lines
|
986 |
+
const lineGeometry = new THREE.BufferGeometry();
|
987 |
+
const lineMaterial = new THREE.LineBasicMaterial({
|
988 |
+
color: 0x58a6ff,
|
989 |
+
transparent: true,
|
990 |
+
opacity: 0.3
|
991 |
+
});
|
992 |
+
|
993 |
+
lines = new THREE.LineSegments(lineGeometry, lineMaterial);
|
994 |
+
scene.add(lines);
|
995 |
+
|
996 |
+
camera.position.z = 1000;
|
997 |
+
|
998 |
+
// Start animation
|
999 |
+
animate();
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
function animate() {
|
1003 |
+
requestAnimationFrame(animate);
|
1004 |
+
|
1005 |
+
// Update particles positions
|
1006 |
+
const positions = particles.geometry.attributes.position.array;
|
1007 |
+
const velocities = particles.userData.velocities;
|
1008 |
+
|
1009 |
+
for (let i = 0; i < particleCount; i++) {
|
1010 |
+
positions[i * 3] += velocities[i].x;
|
1011 |
+
positions[i * 3 + 1] += velocities[i].y;
|
1012 |
+
positions[i * 3 + 2] += velocities[i].z;
|
1013 |
+
|
1014 |
+
// Boundary check
|
1015 |
+
if (positions[i * 3] > 1000 || positions[i * 3] < -1000) velocities[i].x *= -1;
|
1016 |
+
if (positions[i * 3 + 1] > 1000 || positions[i * 3 + 1] < -1000) velocities[i].y *= -1;
|
1017 |
+
if (positions[i * 3 + 2] > 1000 || positions[i * 3 + 2] < -1000) velocities[i].z *= -1;
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
particles.geometry.attributes.position.needsUpdate = true;
|
1021 |
+
|
1022 |
+
// Update lines between close particles
|
1023 |
+
updateLines();
|
1024 |
+
|
1025 |
+
// Camera movement based on mouse
|
1026 |
+
camera.position.x += (mouseX - camera.position.x) * 0.05;
|
1027 |
+
camera.position.y += (-mouseY - camera.position.y) * 0.05;
|
1028 |
+
camera.lookAt(scene.position);
|
1029 |
+
|
1030 |
+
renderer.render(scene, camera);
|
1031 |
+
}
|
1032 |
+
|
1033 |
+
function updateLines() {
|
1034 |
+
const positions = particles.geometry.attributes.position.array;
|
1035 |
+
const linePositions = [];
|
1036 |
+
|
1037 |
+
for (let i = 0; i < particleCount; i++) {
|
1038 |
+
for (let j = i + 1; j < particleCount; j++) {
|
1039 |
+
const dx = positions[i * 3] - positions[j * 3];
|
1040 |
+
const dy = positions[i * 3 + 1] - positions[j * 3 + 1];
|
1041 |
+
const dz = positions[i * 3 + 2] - positions[j * 3 + 2];
|
1042 |
+
const distance = Math.sqrt(dx * dx + dy * dy + dz * dz);
|
1043 |
+
|
1044 |
+
if (distance < 120) {.style.display = 'block';
|
1045 |
+
linePositions.push(positions[i * 3], positions[i * 3 + 1], positions[i * 3 + 2]);
|
1046 |
+
linePositions.push(positions[j * 3], positions[j * 3 + 1], positions[j * 3 + 2]);
|
1047 |
+
}
|
1048 |
+
}
|
1049 |
+
}
|
1050 |
+
nks = document.getElementById('navLinks');
|
1051 |
+
lines.geometry.setAttribute('position', new THREE.Float32BufferAttribute(linePositions, 3));nks.classList.toggle('active');
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
// Mouse movement tracking // Smooth scroll for internal links
|
1055 |
+
document.addEventListener('mousemove', (event) => {]').forEach(anchor => {
|
1056 |
+
mouseX = event.clientX - windowHalfX;nction (e) {
|
1057 |
+
mouseY = event.clientY - windowHalfY;efault();
|
1058 |
+
}); const target = document.querySelector(this.getAttribute('href'));
|
1059 |
+
|
1060 |
+
// Window resize handlerollIntoView({
|
1061 |
+
window.addEventListener('resize', () => {
|
1062 |
+
windowHalfX = window.innerWidth / 2; block: 'start'
|
1063 |
+
windowHalfY = window.innerHeight / 2; });
|
1064 |
+
}
|
1065 |
+
camera.aspect = window.innerWidth / window.innerHeight;
|
1066 |
+
camera.updateProjectionMatrix();
|
1067 |
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
1068 |
+
ge loads
|
1069 |
+
// Pause animation on mobile
|
1070 |
+
if (window.innerWidth < 600) {eJS();
|
1071 |
+
renderer.domElement.style.display = 'none';
|
1072 |
+
anchor.addEventListener('click', function (e) {/ Show content with animation
|
1073 |
+
e.preventDefault(); setTimeout(() => {
|
1074 |
+
const target = document.querySelector(this.getAttribute('href')); document.querySelector('.hero-content').classList.remove('loading');
|
1075 |
+
if (target) { }, 100);
|
1076 |
+
target.scrollIntoView({ });
|
projects.html
ADDED
@@ -0,0 +1,1558 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Projects & Experience - Pranit Chilbule</title>
|
7 |
+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
8 |
+
<style>
|
9 |
+
* {
|
10 |
+
margin: 0;
|
11 |
+
padding: 0;
|
12 |
+
box-sizing: border-box;
|
13 |
+
}
|
14 |
+
|
15 |
+
:root {
|
16 |
+
--bg-primary: #0d1117;
|
17 |
+
--bg-secondary: #010409;
|
18 |
+
--bg-card: #21262d;
|
19 |
+
--text-primary: #c9d1d9;
|
20 |
+
--text-secondary: rgba(201, 209, 217, 0.8);
|
21 |
+
--accent-blue: #58a6ff;
|
22 |
+
--accent-green: #10a37f;
|
23 |
+
--accent-purple: #a5b4fc;
|
24 |
+
--accent-orange: #fbbf24;
|
25 |
+
--header-bg: rgba(0, 0, 0, 0.8);
|
26 |
+
--border-color: #30363d;
|
27 |
+
--gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
28 |
+
--gradient-2: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
29 |
+
--gradient-3: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
30 |
+
}
|
31 |
+
|
32 |
+
body {
|
33 |
+
background-color: var(--bg-primary);
|
34 |
+
color: var(--text-primary);
|
35 |
+
font-family: 'Inter', sans-serif;
|
36 |
+
line-height: 1.6;
|
37 |
+
overflow-x: hidden;
|
38 |
+
}
|
39 |
+
|
40 |
+
/* Animated Background */
|
41 |
+
.animated-bg {
|
42 |
+
position: fixed;
|
43 |
+
top: 0;
|
44 |
+
left: 0;
|
45 |
+
width: 100%;
|
46 |
+
height: 100%;
|
47 |
+
z-index: -1;
|
48 |
+
opacity: 0.1;
|
49 |
+
}
|
50 |
+
|
51 |
+
.floating-shape {
|
52 |
+
position: absolute;
|
53 |
+
border-radius: 50%;
|
54 |
+
animation: float 20s infinite ease-in-out;
|
55 |
+
}
|
56 |
+
|
57 |
+
.shape-1 {
|
58 |
+
width: 300px;
|
59 |
+
height: 300px;
|
60 |
+
background: var(--gradient-1);
|
61 |
+
top: 10%;
|
62 |
+
left: 10%;
|
63 |
+
animation-delay: 0s;
|
64 |
+
}
|
65 |
+
|
66 |
+
.shape-2 {
|
67 |
+
width: 200px;
|
68 |
+
height: 200px;
|
69 |
+
background: var(--gradient-2);
|
70 |
+
top: 60%;
|
71 |
+
right: 10%;
|
72 |
+
animation-delay: 7s;
|
73 |
+
}
|
74 |
+
|
75 |
+
.shape-3 {
|
76 |
+
width: 150px;
|
77 |
+
height: 150px;
|
78 |
+
background: var(--gradient-3);
|
79 |
+
bottom: 20%;
|
80 |
+
left: 20%;
|
81 |
+
animation-delay: 14s;
|
82 |
+
}
|
83 |
+
|
84 |
+
@keyframes float {
|
85 |
+
0%, 100% { transform: translate(0, 0) rotate(0deg); }
|
86 |
+
33% { transform: translate(50px, -50px) rotate(120deg); }
|
87 |
+
66% { transform: translate(-30px, 30px) rotate(240deg); }
|
88 |
+
}
|
89 |
+
|
90 |
+
/* Header Styles */
|
91 |
+
header {
|
92 |
+
position: fixed;
|
93 |
+
top: 0;
|
94 |
+
left: 0;
|
95 |
+
width: 100%;
|
96 |
+
padding: 1rem 2rem;
|
97 |
+
background: var(--header-bg);
|
98 |
+
backdrop-filter: blur(20px);
|
99 |
+
z-index: 1000;
|
100 |
+
transition: all 0.3s ease;
|
101 |
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
102 |
+
}
|
103 |
+
|
104 |
+
header.scrolled {
|
105 |
+
background: rgba(0, 0, 0, 0.9);
|
106 |
+
}
|
107 |
+
|
108 |
+
nav {
|
109 |
+
display: flex;
|
110 |
+
justify-content: space-between;
|
111 |
+
align-items: center;
|
112 |
+
max-width: 1200px;
|
113 |
+
margin: 0 auto;
|
114 |
+
}
|
115 |
+
|
116 |
+
.logo {
|
117 |
+
font-family: 'Roboto Mono', monospace;
|
118 |
+
font-size: 1.5rem;
|
119 |
+
color: var(--text-primary);
|
120 |
+
text-decoration: none;
|
121 |
+
font-weight: 700;
|
122 |
+
transition: color 0.3s ease;
|
123 |
+
}
|
124 |
+
|
125 |
+
.logo:hover {
|
126 |
+
color: var(--accent-blue);
|
127 |
+
}
|
128 |
+
|
129 |
+
.nav-links {
|
130 |
+
display: flex;
|
131 |
+
gap: 2rem;
|
132 |
+
list-style: none;
|
133 |
+
}
|
134 |
+
|
135 |
+
.nav-links a {
|
136 |
+
color: var(--text-primary);
|
137 |
+
text-decoration: none;
|
138 |
+
font-weight: 500;
|
139 |
+
position: relative;
|
140 |
+
transition: color 0.3s ease;
|
141 |
+
padding: 0.5rem 0;
|
142 |
+
}
|
143 |
+
|
144 |
+
.nav-links a::after {
|
145 |
+
content: '';
|
146 |
+
position: absolute;
|
147 |
+
bottom: 0;
|
148 |
+
left: 0;
|
149 |
+
width: 0;
|
150 |
+
height: 2px;
|
151 |
+
background: var(--accent-blue);
|
152 |
+
transition: width 0.3s ease;
|
153 |
+
}
|
154 |
+
|
155 |
+
.nav-links a:hover::after,
|
156 |
+
.nav-links a.active::after {
|
157 |
+
width: 100%;
|
158 |
+
}
|
159 |
+
|
160 |
+
.nav-links a:hover,
|
161 |
+
.nav-links a.active {
|
162 |
+
color: var(--accent-blue);
|
163 |
+
}
|
164 |
+
|
165 |
+
/* Mobile Menu */
|
166 |
+
.menu-toggle {
|
167 |
+
display: none;
|
168 |
+
flex-direction: column;
|
169 |
+
cursor: pointer;
|
170 |
+
padding: 0.5rem;
|
171 |
+
}
|
172 |
+
|
173 |
+
.menu-toggle span {
|
174 |
+
height: 3px;
|
175 |
+
width: 25px;
|
176 |
+
background: var(--text-primary);
|
177 |
+
margin-bottom: 4px;
|
178 |
+
transition: all 0.3s ease;
|
179 |
+
}
|
180 |
+
|
181 |
+
.menu-toggle.active span:nth-child(1) {
|
182 |
+
transform: rotate(45deg) translate(5px, 5px);
|
183 |
+
}
|
184 |
+
|
185 |
+
.menu-toggle.active span:nth-child(2) {
|
186 |
+
opacity: 0;
|
187 |
+
}
|
188 |
+
|
189 |
+
.menu-toggle.active span:nth-child(3) {
|
190 |
+
transform: rotate(-45deg) translate(7px, -6px);
|
191 |
+
}
|
192 |
+
|
193 |
+
/* Main Content Styles */
|
194 |
+
main {
|
195 |
+
padding: 2rem;
|
196 |
+
max-width: 1200px;
|
197 |
+
margin: 80px auto 0;
|
198 |
+
}
|
199 |
+
|
200 |
+
section {
|
201 |
+
margin-bottom: 6rem;
|
202 |
+
}
|
203 |
+
|
204 |
+
h2 {
|
205 |
+
font-size: 3rem;
|
206 |
+
margin-bottom: 3rem;
|
207 |
+
color: var(--accent-blue);
|
208 |
+
text-align: center;
|
209 |
+
font-weight: 700;
|
210 |
+
position: relative;
|
211 |
+
}
|
212 |
+
|
213 |
+
h2::after {
|
214 |
+
content: '';
|
215 |
+
position: absolute;
|
216 |
+
bottom: -10px;
|
217 |
+
left: 50%;
|
218 |
+
transform: translateX(-50%);
|
219 |
+
width: 100px;
|
220 |
+
height: 4px;
|
221 |
+
background: var(--gradient-1);
|
222 |
+
border-radius: 2px;
|
223 |
+
}
|
224 |
+
|
225 |
+
/* Project Categories */
|
226 |
+
.project-categories {
|
227 |
+
display: flex;
|
228 |
+
justify-content: center;
|
229 |
+
gap: 1rem;
|
230 |
+
margin-bottom: 3rem;
|
231 |
+
flex-wrap: wrap;
|
232 |
+
}
|
233 |
+
|
234 |
+
.category-btn {
|
235 |
+
background: var(--bg-card);
|
236 |
+
border: 2px solid var(--border-color);
|
237 |
+
color: var(--text-primary);
|
238 |
+
padding: 0.75rem 1.5rem;
|
239 |
+
border-radius: 25px;
|
240 |
+
cursor: pointer;
|
241 |
+
transition: all 0.3s ease;
|
242 |
+
font-weight: 500;
|
243 |
+
}
|
244 |
+
|
245 |
+
.category-btn:hover,
|
246 |
+
.category-btn.active {
|
247 |
+
background: var(--accent-blue);
|
248 |
+
border-color: var(--accent-blue);
|
249 |
+
transform: translateY(-2px);
|
250 |
+
box-shadow: 0 5px 15px rgba(88, 166, 255, 0.4);
|
251 |
+
}
|
252 |
+
|
253 |
+
/* Project Cards */
|
254 |
+
.projects-grid {
|
255 |
+
display: grid;
|
256 |
+
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
|
257 |
+
gap: 2.5rem;
|
258 |
+
padding: 2rem 0;
|
259 |
+
}
|
260 |
+
|
261 |
+
.project-card {
|
262 |
+
background: var(--bg-card);
|
263 |
+
border-radius: 16px;
|
264 |
+
overflow: hidden;
|
265 |
+
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
|
266 |
+
transition: all 0.4s ease;
|
267 |
+
border: 1px solid var(--border-color);
|
268 |
+
position: relative;
|
269 |
+
}
|
270 |
+
|
271 |
+
.project-card::before {
|
272 |
+
content: '';
|
273 |
+
position: absolute;
|
274 |
+
top: 0;
|
275 |
+
left: 0;
|
276 |
+
right: 0;
|
277 |
+
height: 4px;
|
278 |
+
background: var(--gradient-1);
|
279 |
+
opacity: 0;
|
280 |
+
transition: opacity 0.3s ease;
|
281 |
+
}
|
282 |
+
|
283 |
+
.project-card:hover::before {
|
284 |
+
opacity: 1;
|
285 |
+
}
|
286 |
+
|
287 |
+
.project-card:hover {
|
288 |
+
transform: translateY(-10px);
|
289 |
+
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
|
290 |
+
border-color: var(--accent-blue);
|
291 |
+
}
|
292 |
+
|
293 |
+
.project-thumbnail {
|
294 |
+
position: relative;
|
295 |
+
padding-top: 56.25%;
|
296 |
+
background: var(--bg-secondary);
|
297 |
+
overflow: hidden;
|
298 |
+
}
|
299 |
+
|
300 |
+
.project-thumbnail img {
|
301 |
+
position: absolute;
|
302 |
+
top: 0;
|
303 |
+
left: 0;
|
304 |
+
width: 100%;
|
305 |
+
height: 100%;
|
306 |
+
object-fit: cover;
|
307 |
+
transition: transform 0.4s ease;
|
308 |
+
}
|
309 |
+
|
310 |
+
.project-card:hover .project-thumbnail img {
|
311 |
+
transform: scale(1.1);
|
312 |
+
}
|
313 |
+
|
314 |
+
.project-overlay {
|
315 |
+
position: absolute;
|
316 |
+
top: 0;
|
317 |
+
left: 0;
|
318 |
+
right: 0;
|
319 |
+
bottom: 0;
|
320 |
+
background: rgba(0, 0, 0, 0.7);
|
321 |
+
display: flex;
|
322 |
+
align-items: center;
|
323 |
+
justify-content: center;
|
324 |
+
opacity: 0;
|
325 |
+
transition: opacity 0.3s ease;
|
326 |
+
}
|
327 |
+
|
328 |
+
.project-card:hover .project-overlay {
|
329 |
+
opacity: 1;
|
330 |
+
}
|
331 |
+
|
332 |
+
.project-status {
|
333 |
+
position: absolute;
|
334 |
+
top: 1rem;
|
335 |
+
right: 1rem;
|
336 |
+
background: var(--accent-green);
|
337 |
+
color: white;
|
338 |
+
padding: 0.5rem 1rem;
|
339 |
+
border-radius: 15px;
|
340 |
+
font-size: 0.8rem;
|
341 |
+
font-weight: 600;
|
342 |
+
}
|
343 |
+
|
344 |
+
.project-status.in-progress {
|
345 |
+
background: var(--accent-orange);
|
346 |
+
}
|
347 |
+
|
348 |
+
.project-content {
|
349 |
+
padding: 2rem;
|
350 |
+
}
|
351 |
+
|
352 |
+
.project-title {
|
353 |
+
font-size: 1.4rem;
|
354 |
+
color: var(--accent-blue);
|
355 |
+
margin-bottom: 1rem;
|
356 |
+
font-weight: 600;
|
357 |
+
}
|
358 |
+
|
359 |
+
.project-description {
|
360 |
+
color: var(--text-secondary);
|
361 |
+
margin-bottom: 1.5rem;
|
362 |
+
line-height: 1.7;
|
363 |
+
}
|
364 |
+
|
365 |
+
.tech-stack {
|
366 |
+
display: flex;
|
367 |
+
flex-wrap: wrap;
|
368 |
+
gap: 0.75rem;
|
369 |
+
margin-bottom: 1.5rem;
|
370 |
+
}
|
371 |
+
|
372 |
+
.tech-tag {
|
373 |
+
background: var(--bg-secondary);
|
374 |
+
color: var(--accent-green);
|
375 |
+
padding: 0.4rem 1rem;
|
376 |
+
border-radius: 20px;
|
377 |
+
font-size: 0.85rem;
|
378 |
+
font-weight: 500;
|
379 |
+
border: 1px solid rgba(16, 163, 127, 0.3);
|
380 |
+
transition: all 0.3s ease;
|
381 |
+
}
|
382 |
+
|
383 |
+
.tech-tag:hover {
|
384 |
+
background: var(--accent-green);
|
385 |
+
color: white;
|
386 |
+
transform: translateY(-2px);
|
387 |
+
}
|
388 |
+
|
389 |
+
.project-links {
|
390 |
+
display: flex;
|
391 |
+
gap: 1rem;
|
392 |
+
}
|
393 |
+
|
394 |
+
.project-links a {
|
395 |
+
color: var(--accent-blue);
|
396 |
+
text-decoration: none;
|
397 |
+
display: flex;
|
398 |
+
align-items: center;
|
399 |
+
gap: 0.5rem;
|
400 |
+
padding: 0.75rem 1.5rem;
|
401 |
+
border: 2px solid var(--accent-blue);
|
402 |
+
border-radius: 8px;
|
403 |
+
transition: all 0.3s ease;
|
404 |
+
font-weight: 500;
|
405 |
+
}
|
406 |
+
|
407 |
+
.project-links a:hover {
|
408 |
+
background: var(--accent-blue);
|
409 |
+
color: white;
|
410 |
+
transform: translateY(-2px);
|
411 |
+
}
|
412 |
+
|
413 |
+
/* Experience Timeline */
|
414 |
+
.timeline {
|
415 |
+
position: relative;
|
416 |
+
max-width: 100%;
|
417 |
+
margin: 4rem auto;
|
418 |
+
padding: 3rem 0;
|
419 |
+
}
|
420 |
+
|
421 |
+
.timeline::before {
|
422 |
+
content: '';
|
423 |
+
position: absolute;
|
424 |
+
left: 0;
|
425 |
+
right: 0;
|
426 |
+
top: 50%;
|
427 |
+
height: 3px;
|
428 |
+
background: var(--gradient-1);
|
429 |
+
box-shadow: 0 0 20px var(--accent-blue);
|
430 |
+
border-radius: 2px;
|
431 |
+
}
|
432 |
+
|
433 |
+
.timeline-container {
|
434 |
+
display: flex;
|
435 |
+
justify-content: space-between;
|
436 |
+
align-items: center;
|
437 |
+
gap: 2rem;
|
438 |
+
overflow-x: auto;
|
439 |
+
padding: 3rem 1rem;
|
440 |
+
scroll-snap-type: x mandatory;
|
441 |
+
-ms-overflow-style: none;
|
442 |
+
scrollbar-width: none;
|
443 |
+
}
|
444 |
+
|
445 |
+
.timeline-container::-webkit-scrollbar {
|
446 |
+
display: none;
|
447 |
+
}
|
448 |
+
|
449 |
+
.timeline-item {
|
450 |
+
min-width: 380px;
|
451 |
+
max-width: 380px;
|
452 |
+
scroll-snap-align: center;
|
453 |
+
position: relative;
|
454 |
+
}
|
455 |
+
|
456 |
+
.timeline-item:nth-child(odd) {
|
457 |
+
transform: translateY(-40px);
|
458 |
+
}
|
459 |
+
|
460 |
+
.timeline-item:nth-child(even) {
|
461 |
+
transform: translateY(40px);
|
462 |
+
}
|
463 |
+
|
464 |
+
.timeline-content {
|
465 |
+
background: var(--bg-card);
|
466 |
+
padding: 2rem;
|
467 |
+
border-radius: 16px;
|
468 |
+
border: 1px solid var(--border-color);
|
469 |
+
backdrop-filter: blur(10px);
|
470 |
+
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
|
471 |
+
transition: all 0.4s ease;
|
472 |
+
position: relative;
|
473 |
+
}
|
474 |
+
|
475 |
+
.timeline-content::before {
|
476 |
+
content: '';
|
477 |
+
position: absolute;
|
478 |
+
width: 24px;
|
479 |
+
height: 24px;
|
480 |
+
background: var(--accent-blue);
|
481 |
+
border-radius: 50%;
|
482 |
+
left: 50%;
|
483 |
+
transform: translateX(-50%);
|
484 |
+
border: 4px solid var(--bg-primary);
|
485 |
+
box-shadow: 0 0 20px var(--accent-blue);
|
486 |
+
}
|
487 |
+
|
488 |
+
.timeline-item:nth-child(odd) .timeline-content::before {
|
489 |
+
bottom: -52px;
|
490 |
+
}
|
491 |
+
|
492 |
+
.timeline-item:nth-child(even) .timeline-content::before {
|
493 |
+
top: -52px;
|
494 |
+
}
|
495 |
+
|
496 |
+
.timeline-content:hover {
|
497 |
+
transform: translateY(-10px);
|
498 |
+
box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
|
499 |
+
border-color: var(--accent-blue);
|
500 |
+
}
|
501 |
+
|
502 |
+
.timeline-date {
|
503 |
+
display: inline-block;
|
504 |
+
padding: 0.75rem 1.5rem;
|
505 |
+
background: var(--gradient-1);
|
506 |
+
border-radius: 25px;
|
507 |
+
color: white;
|
508 |
+
font-weight: 700;
|
509 |
+
margin-bottom: 1rem;
|
510 |
+
font-size: 0.9rem;
|
511 |
+
}
|
512 |
+
|
513 |
+
.timeline-location {
|
514 |
+
color: var(--text-secondary);
|
515 |
+
font-size: 0.95rem;
|
516 |
+
margin-bottom: 0.5rem;
|
517 |
+
display: flex;
|
518 |
+
align-items: center;
|
519 |
+
gap: 0.5rem;
|
520 |
+
}
|
521 |
+
|
522 |
+
.timeline-location::before {
|
523 |
+
content: '📍';
|
524 |
+
font-size: 1.1rem;
|
525 |
+
}
|
526 |
+
|
527 |
+
.timeline-role {
|
528 |
+
color: var(--accent-blue);
|
529 |
+
font-size: 1.2rem;
|
530 |
+
margin-bottom: 1rem;
|
531 |
+
font-weight: 600;
|
532 |
+
}
|
533 |
+
|
534 |
+
.timeline-content ul {
|
535 |
+
list-style: none;
|
536 |
+
margin-top: 1rem;
|
537 |
+
}
|
538 |
+
|
539 |
+
.timeline-content li {
|
540 |
+
position: relative;
|
541 |
+
padding-left: 2rem;
|
542 |
+
margin-bottom: 1rem;
|
543 |
+
color: var(--text-secondary);
|
544 |
+
line-height: 1.6;
|
545 |
+
}
|
546 |
+
|
547 |
+
.timeline-content li::before {
|
548 |
+
content: '→';
|
549 |
+
position: absolute;
|
550 |
+
left: 0;
|
551 |
+
color: var(--accent-green);
|
552 |
+
font-weight: bold;
|
553 |
+
font-size: 1.2rem;
|
554 |
+
}
|
555 |
+
|
556 |
+
/* Timeline Navigation */
|
557 |
+
.timeline-nav {
|
558 |
+
display: flex;
|
559 |
+
justify-content: center;
|
560 |
+
gap: 1rem;
|
561 |
+
margin-top: 3rem;
|
562 |
+
}
|
563 |
+
|
564 |
+
.timeline-nav button {
|
565 |
+
background: var(--bg-card);
|
566 |
+
border: 2px solid var(--border-color);
|
567 |
+
color: var(--text-primary);
|
568 |
+
padding: 0.75rem 1.5rem;
|
569 |
+
border-radius: 12px;
|
570 |
+
cursor: pointer;
|
571 |
+
transition: all 0.3s ease;
|
572 |
+
font-size: 1.1rem;
|
573 |
+
font-weight: 600;
|
574 |
+
}
|
575 |
+
|
576 |
+
.timeline-nav button:hover {
|
577 |
+
background: var(--accent-blue);
|
578 |
+
border-color: var(--accent-blue);
|
579 |
+
transform: translateY(-2px);
|
580 |
+
box-shadow: 0 5px 15px rgba(88, 166, 255, 0.4);
|
581 |
+
}
|
582 |
+
|
583 |
+
/* Skills Section */
|
584 |
+
.skills-section {
|
585 |
+
background: var(--bg-card);
|
586 |
+
border-radius: 20px;
|
587 |
+
padding: 3rem;
|
588 |
+
margin: 4rem 0;
|
589 |
+
border: 1px solid var(--border-color);
|
590 |
+
}
|
591 |
+
|
592 |
+
.skills-grid {
|
593 |
+
display: grid;
|
594 |
+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
595 |
+
gap: 2rem;
|
596 |
+
margin-top: 2rem;
|
597 |
+
}
|
598 |
+
|
599 |
+
.skill-category {
|
600 |
+
text-align: center;
|
601 |
+
}
|
602 |
+
|
603 |
+
.skill-category h4 {
|
604 |
+
color: var(--accent-blue);
|
605 |
+
margin-bottom: 1rem;
|
606 |
+
font-size: 1.2rem;
|
607 |
+
}
|
608 |
+
|
609 |
+
.skill-list {
|
610 |
+
display: flex;
|
611 |
+
flex-wrap: wrap;
|
612 |
+
gap: 0.75rem;
|
613 |
+
justify-content: center;
|
614 |
+
}
|
615 |
+
|
616 |
+
.skill-item {
|
617 |
+
background: var(--bg-secondary);
|
618 |
+
color: var(--text-primary);
|
619 |
+
padding: 0.5rem 1rem;
|
620 |
+
border-radius: 15px;
|
621 |
+
font-size: 0.9rem;
|
622 |
+
transition: all 0.3s ease;
|
623 |
+
}
|
624 |
+
|
625 |
+
.skill-item:hover {
|
626 |
+
background: var(--accent-green);
|
627 |
+
color: white;
|
628 |
+
transform: translateY(-2px);
|
629 |
+
}
|
630 |
+
|
631 |
+
/* Contact Section */
|
632 |
+
.contact-section {
|
633 |
+
text-align: center;
|
634 |
+
background: var(--gradient-1);
|
635 |
+
border-radius: 20px;
|
636 |
+
padding: 4rem 2rem;
|
637 |
+
margin: 4rem 0;
|
638 |
+
color: white;
|
639 |
+
}
|
640 |
+
|
641 |
+
.contact-section h3 {
|
642 |
+
font-size: 2rem;
|
643 |
+
margin-bottom: 1rem;
|
644 |
+
}
|
645 |
+
|
646 |
+
.contact-section p {
|
647 |
+
font-size: 1.1rem;
|
648 |
+
margin-bottom: 2rem;
|
649 |
+
opacity: 0.9;
|
650 |
+
}
|
651 |
+
|
652 |
+
.contact-buttons {
|
653 |
+
display: flex;
|
654 |
+
gap: 1rem;
|
655 |
+
justify-content: center;
|
656 |
+
flex-wrap: wrap;
|
657 |
+
}
|
658 |
+
|
659 |
+
.contact-btn {
|
660 |
+
background: white;
|
661 |
+
color: var(--bg-primary);
|
662 |
+
padding: 1rem 2rem;
|
663 |
+
border-radius: 12px;
|
664 |
+
text-decoration: none;
|
665 |
+
font-weight: 600;
|
666 |
+
transition: all 0.3s ease;
|
667 |
+
display: flex;
|
668 |
+
align-items: center;
|
669 |
+
gap: 0.5rem;
|
670 |
+
}
|
671 |
+
|
672 |
+
.contact-btn:hover {
|
673 |
+
transform: translateY(-3px);
|
674 |
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
|
675 |
+
}
|
676 |
+
|
677 |
+
/* Animations */
|
678 |
+
.fade-in {
|
679 |
+
opacity: 0;
|
680 |
+
transform: translateY(30px);
|
681 |
+
transition: opacity 0.8s ease, transform 0.8s ease;
|
682 |
+
}
|
683 |
+
|
684 |
+
.fade-in.visible {
|
685 |
+
opacity: 1;
|
686 |
+
transform: translateY(0);
|
687 |
+
}
|
688 |
+
|
689 |
+
.slide-in-left {
|
690 |
+
opacity: 0;
|
691 |
+
transform: translateX(-50px);
|
692 |
+
transition: opacity 0.8s ease, transform 0.8s ease;
|
693 |
+
}
|
694 |
+
|
695 |
+
.slide-in-left.visible {
|
696 |
+
opacity: 1;
|
697 |
+
transform: translateX(0);
|
698 |
+
}
|
699 |
+
|
700 |
+
.slide-in-right {
|
701 |
+
opacity: 0;
|
702 |
+
transform: translateX(50px);
|
703 |
+
transition: opacity 0.8s ease, transform 0.8s ease;
|
704 |
+
}
|
705 |
+
|
706 |
+
.slide-in-right.visible {
|
707 |
+
opacity: 1;
|
708 |
+
transform: translateX(0);
|
709 |
+
}
|
710 |
+
|
711 |
+
/* Responsive Design */
|
712 |
+
@media (max-width: 768px) {
|
713 |
+
.menu-toggle {
|
714 |
+
display: flex;
|
715 |
+
}
|
716 |
+
|
717 |
+
.nav-links {
|
718 |
+
display: none;
|
719 |
+
position: fixed;
|
720 |
+
top: 80px;
|
721 |
+
left: 0;
|
722 |
+
width: 100%;
|
723 |
+
background: var(--bg-card);
|
724 |
+
padding: 2rem;
|
725 |
+
flex-direction: column;
|
726 |
+
align-items: center;
|
727 |
+
z-index: 1000;
|
728 |
+
border-top: 1px solid var(--border-color);
|
729 |
+
}
|
730 |
+
|
731 |
+
.nav-links.active {
|
732 |
+
display: flex;
|
733 |
+
}
|
734 |
+
|
735 |
+
h2 {
|
736 |
+
font-size: 2.5rem;
|
737 |
+
}
|
738 |
+
|
739 |
+
.projects-grid {
|
740 |
+
grid-template-columns: 1fr;
|
741 |
+
}
|
742 |
+
|
743 |
+
.timeline-item {
|
744 |
+
min-width: 300px;
|
745 |
+
transform: none !important;
|
746 |
+
}
|
747 |
+
|
748 |
+
.project-categories {
|
749 |
+
justify-content: flex-start;
|
750 |
+
overflow-x: auto;
|
751 |
+
padding-bottom: 1rem;
|
752 |
+
}
|
753 |
+
|
754 |
+
.contact-buttons {
|
755 |
+
flex-direction: column;
|
756 |
+
align-items: center;
|
757 |
+
}
|
758 |
+
|
759 |
+
.skills-grid {
|
760 |
+
grid-template-columns: 1fr;
|
761 |
+
}
|
762 |
+
}
|
763 |
+
|
764 |
+
@media (max-width: 480px) {
|
765 |
+
main {
|
766 |
+
padding: 1rem;
|
767 |
+
}
|
768 |
+
|
769 |
+
.timeline-item {
|
770 |
+
min-width: 280px;
|
771 |
+
}
|
772 |
+
|
773 |
+
.project-card {
|
774 |
+
margin-bottom: 1rem;
|
775 |
+
}
|
776 |
+
}
|
777 |
+
</style>
|
778 |
+
</head>
|
779 |
+
<body>
|
780 |
+
<!-- Animated Background -->
|
781 |
+
<div class="animated-bg">
|
782 |
+
<div class="floating-shape shape-1"></div>
|
783 |
+
<div class="floating-shape shape-2"></div>
|
784 |
+
<div class="floating-shape shape-3"></div>
|
785 |
+
</div>
|
786 |
+
|
787 |
+
<header>
|
788 |
+
<nav>
|
789 |
+
<a href="index.html" class="logo">Pranit Chilbule</a>
|
790 |
+
<div class="menu-toggle" onclick="toggleMenu()">
|
791 |
+
<span></span>
|
792 |
+
<span></span>
|
793 |
+
<span></span>
|
794 |
+
</div>
|
795 |
+
<ul class="nav-links">
|
796 |
+
<li><a href="index.html">Home</a></li>
|
797 |
+
<li><a href="about.html">About</a></li>
|
798 |
+
<li><a href="#" class="active">Projects</a></li>
|
799 |
+
<li><a href="achievements.html">Achievement</a></li>
|
800 |
+
<li><a href="contact.html">Contact</a></li>
|
801 |
+
</ul>
|
802 |
+
</nav>
|
803 |
+
</header>
|
804 |
+
|
805 |
+
<main>
|
806 |
+
<!-- Projects Section -->
|
807 |
+
<section id="projects">
|
808 |
+
<h2 class="fade-in">Featured Projects</h2>
|
809 |
+
|
810 |
+
<!-- Project Categories -->
|
811 |
+
<div class="project-categories fade-in">
|
812 |
+
<button class="category-btn active" onclick="filterProjects('all')">All Projects</button>
|
813 |
+
<button class="category-btn" onclick="filterProjects('ai-ml')">AI/ML</button>
|
814 |
+
<button class="category-btn" onclick="filterProjects('web')">Web Development</button>
|
815 |
+
<button class="category-btn" onclick="filterProjects('iot')">IoT</button>
|
816 |
+
</div>
|
817 |
+
|
818 |
+
<div class="projects-grid">
|
819 |
+
<!-- Project 1: Inspect.AI -->
|
820 |
+
<article class="project-card fade-in" data-category="ai-ml">
|
821 |
+
<div class="project-thumbnail">
|
822 |
+
<img src="https://images.unsplash.com/photo-1555949963-aa79dcee981c?w=600&h=400&fit=crop" alt="AI Inspection System" loading="lazy">
|
823 |
+
<div class="project-overlay">
|
824 |
+
<div style="color: white; font-weight: 600;">View Details</div>
|
825 |
+
</div>
|
826 |
+
<div class="project-status">Completed</div>
|
827 |
+
</div>
|
828 |
+
<div class="project-content">
|
829 |
+
<h3 class="project-title">Inspect.AI - Institute Inspection System</h3>
|
830 |
+
<p class="project-description">
|
831 |
+
Advanced AI-powered inspection system utilizing CNNs, YOLOv8, and image segmentation for comprehensive institute assessment. Features OCR document processing, automated report generation, and seamless ERP integration with 95% accuracy in defect detection.
|
832 |
+
</p>
|
833 |
+
<div class="tech-stack">
|
834 |
+
<span class="tech-tag">Flask</span>
|
835 |
+
<span class="tech-tag">YOLOv8</span>
|
836 |
+
<span class="tech-tag">Deep Learning</span>
|
837 |
+
<span class="tech-tag">Computer Vision</span>
|
838 |
+
<span class="tech-tag">NLP</span>
|
839 |
+
<span class="tech-tag">Gemini API</span>
|
840 |
+
<span class="tech-tag">OCR</span>
|
841 |
+
</div>
|
842 |
+
<div class="project-links">
|
843 |
+
<a href="https://github.com/pranit144/inspect-ai" target="_blank">
|
844 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
845 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
846 |
+
</svg>
|
847 |
+
GitHub
|
848 |
+
</a>
|
849 |
+
<a href="#" target="_blank">
|
850 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
851 |
+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
|
852 |
+
</svg>
|
853 |
+
Live Demo
|
854 |
+
</a>
|
855 |
+
</div>
|
856 |
+
</div>
|
857 |
+
</article>
|
858 |
+
|
859 |
+
<!-- Project 2: Ground Water Level Predictor -->
|
860 |
+
<article class="project-card fade-in" data-category="ai-ml">
|
861 |
+
<div class="project-thumbnail">
|
862 |
+
<img src="https://images.unsplash.com/photo-1569163139394-de4e4f43e4e3?w=600&h=400&fit=crop" alt="Water Level Prediction" loading="lazy">
|
863 |
+
<div class="project-overlay">
|
864 |
+
<div style="color: white; font-weight: 600;">View Details</div>
|
865 |
+
</div>
|
866 |
+
<div class="project-status">Completed</div>
|
867 |
+
</div>
|
868 |
+
<div class="project-content">
|
869 |
+
<h3 class="project-title">Ground Water Level Predictor</h3>
|
870 |
+
<p class="project-description">
|
871 |
+
Comprehensive web application for groundwater level estimation using machine learning algorithms. Features geospatial analysis, time-series forecasting, and achieved 90% accuracy using XGBoost and Prophet models with interactive visualization dashboard.
|
872 |
+
</p>
|
873 |
+
<div class="tech-stack">
|
874 |
+
<span class="tech-tag">Python</span>
|
875 |
+
<span class="tech-tag">Flask</span>
|
876 |
+
<span class="tech-tag">XGBoost</span>
|
877 |
+
<span class="tech-tag">Prophet</span>
|
878 |
+
<span class="tech-tag">Pandas</span>
|
879 |
+
<span class="tech-tag">Plotly</span>
|
880 |
+
<span class="tech-tag">Geospatial Analysis</span>
|
881 |
+
</div>
|
882 |
+
<div class="project-links">
|
883 |
+
<a href="#" target="_blank">
|
884 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
885 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
886 |
+
</svg>
|
887 |
+
GitHub
|
888 |
+
</a>
|
889 |
+
<a href="#" target="_blank">
|
890 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
891 |
+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
|
892 |
+
</svg>
|
893 |
+
Live Demo
|
894 |
+
</a>
|
895 |
+
</div>
|
896 |
+
</div>
|
897 |
+
</article>
|
898 |
+
|
899 |
+
<!-- Project 3: Enhanced Plant Disease Detection -->
|
900 |
+
<article class="project-card fade-in" data-category="iot">
|
901 |
+
<div class="project-thumbnail">
|
902 |
+
<img src="https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=600&h=400&fit=crop" alt="Plant Disease Detection System" loading="lazy">
|
903 |
+
<div class="project-overlay">
|
904 |
+
<div style="color: white; font-weight: 600;">View Details</div>
|
905 |
+
</div>
|
906 |
+
<div class="project-status">Completed</div>
|
907 |
+
</div>
|
908 |
+
<div class="project-content">
|
909 |
+
<h3 class="project-title">Enhanced Plant Disease Detection</h3>
|
910 |
+
<p class="project-description">
|
911 |
+
IoT-based agricultural solution combining deep learning and hardware automation for real-time crop disease detection. Features automated pesticide mixing system, smart resource management, and achieved 92% detection accuracy with reduced false positives.
|
912 |
+
</p>
|
913 |
+
<div class="tech-stack">
|
914 |
+
<span class="tech-tag">IoT</span>
|
915 |
+
<span class="tech-tag">Deep Learning</span>
|
916 |
+
<span class="tech-tag">Computer Vision</span>
|
917 |
+
<span class="tech-tag">Arduino</span>
|
918 |
+
<span class="tech-tag">Raspberry Pi</span>
|
919 |
+
<span class="tech-tag">Python</span>
|
920 |
+
<span class="tech-tag">Sensors</span>
|
921 |
+
</div>
|
922 |
+
<div class="project-links">
|
923 |
+
<a href="#" target="_blank">
|
924 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
925 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
926 |
+
</svg>
|
927 |
+
GitHub
|
928 |
+
</a>
|
929 |
+
<a href="#" target="_blank">
|
930 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
931 |
+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
|
932 |
+
</svg>
|
933 |
+
Live Demo
|
934 |
+
</a>
|
935 |
+
</div>
|
936 |
+
</div>
|
937 |
+
</article>
|
938 |
+
|
939 |
+
<!-- Project 4: E-Commerce Platform -->
|
940 |
+
<article class="project-card fade-in" data-category="web">
|
941 |
+
<div class="project-thumbnail">
|
942 |
+
<img src="https://images.unsplash.com/photo-1563013544-824ae1b704d3?w=600&h=400&fit=crop" alt="E-Commerce Platform" loading="lazy">
|
943 |
+
<div class="project-overlay">
|
944 |
+
<div style="color: white; font-weight: 600;">View Details</div>
|
945 |
+
</div>
|
946 |
+
<div class="project-status">Completed</div>
|
947 |
+
</div>
|
948 |
+
<div class="project-content">
|
949 |
+
<h3 class="project-title">Modern E-Commerce Platform</h3>
|
950 |
+
<p class="project-description">
|
951 |
+
Full-stack e-commerce solution with responsive design, payment integration, inventory management, and real-time analytics. Features secure authentication, order tracking, and optimized performance for high-traffic scenarios.
|
952 |
+
</p>
|
953 |
+
<div class="tech-stack">
|
954 |
+
<span class="tech-tag">React</span>
|
955 |
+
<span class="tech-tag">Node.js</span>
|
956 |
+
<span class="tech-tag">MongoDB</span>
|
957 |
+
<span class="tech-tag">Express</span>
|
958 |
+
<span class="tech-tag">Stripe API</span>
|
959 |
+
<span class="tech-tag">Redux</span>
|
960 |
+
<span class="tech-tag">JWT</span>
|
961 |
+
</div>
|
962 |
+
<div class="project-links">
|
963 |
+
<a href="#" target="_blank">
|
964 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
965 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
966 |
+
</svg>
|
967 |
+
GitHub
|
968 |
+
</a>
|
969 |
+
<a href="#" target="_blank">
|
970 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
971 |
+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
|
972 |
+
</svg>
|
973 |
+
Live Demo
|
974 |
+
</a>
|
975 |
+
</div>
|
976 |
+
</div>
|
977 |
+
</article>
|
978 |
+
|
979 |
+
<!-- Project 5: Smart Home Automation -->
|
980 |
+
<article class="project-card fade-in" data-category="iot">
|
981 |
+
<div class="project-thumbnail">
|
982 |
+
<img src="https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=600&h=400&fit=crop" alt="Smart Home System" loading="lazy">
|
983 |
+
<div class="project-overlay">
|
984 |
+
<div style="color: white; font-weight: 600;">View Details</div>
|
985 |
+
</div>
|
986 |
+
<div class="project-status in-progress">In Progress</div>
|
987 |
+
</div>
|
988 |
+
<div class="project-content">
|
989 |
+
<h3 class="project-title">Smart Home Automation System</h3>
|
990 |
+
<p class="project-description">
|
991 |
+
Comprehensive IoT solution for home automation featuring voice control, mobile app integration, energy monitoring, and AI-driven optimization. Implements machine learning for predictive analytics and energy efficiency.
|
992 |
+
</p>
|
993 |
+
<div class="tech-stack">
|
994 |
+
<span class="tech-tag">IoT</span>
|
995 |
+
<span class="tech-tag">Arduino</span>
|
996 |
+
<span class="tech-tag">React Native</span>
|
997 |
+
<span class="tech-tag">Firebase</span>
|
998 |
+
<span class="tech-tag">ML</span>
|
999 |
+
<span class="tech-tag">Voice Recognition</span>
|
1000 |
+
<span class="tech-tag">WiFi</span>
|
1001 |
+
</div>
|
1002 |
+
<div class="project-links">
|
1003 |
+
<a href="#" target="_blank">
|
1004 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1005 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
1006 |
+
</svg>
|
1007 |
+
GitHub
|
1008 |
+
</a>
|
1009 |
+
<a href="#" target="_blank">
|
1010 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1011 |
+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
|
1012 |
+
</svg>
|
1013 |
+
Preview
|
1014 |
+
</a>
|
1015 |
+
</div>
|
1016 |
+
</div>
|
1017 |
+
</article>
|
1018 |
+
|
1019 |
+
<!-- Project 6: Data Visualization Dashboard -->
|
1020 |
+
<article class="project-card fade-in" data-category="ai-ml">
|
1021 |
+
<div class="project-thumbnail">
|
1022 |
+
<img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=600&h=400&fit=crop" alt="Data Visualization Dashboard" loading="lazy">
|
1023 |
+
<div class="project-overlay">
|
1024 |
+
<div style="color: white; font-weight: 600;">View Details</div>
|
1025 |
+
</div>
|
1026 |
+
<div class="project-status">Completed</div>
|
1027 |
+
</div>
|
1028 |
+
<div class="project-content">
|
1029 |
+
<h3 class="project-title">Interactive Data Analytics Dashboard</h3>
|
1030 |
+
<p class="project-description">
|
1031 |
+
Advanced analytics platform with real-time data processing, interactive visualizations, and predictive modeling capabilities. Features custom charts, automated reporting, and machine learning integration for business intelligence.
|
1032 |
+
</p>
|
1033 |
+
<div class="tech-stack">
|
1034 |
+
<span class="tech-tag">Python</span>
|
1035 |
+
<span class="tech-tag">Dash</span>
|
1036 |
+
<span class="tech-tag">Plotly</span>
|
1037 |
+
<span class="tech-tag">Pandas</span>
|
1038 |
+
<span class="tech-tag">SQL</span>
|
1039 |
+
<span class="tech-tag">Machine Learning</span>
|
1040 |
+
<span class="tech-tag">Docker</span>
|
1041 |
+
</div>
|
1042 |
+
<div class="project-links">
|
1043 |
+
<a href="#" target="_blank">
|
1044 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1045 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
1046 |
+
</svg>
|
1047 |
+
GitHub
|
1048 |
+
</a>
|
1049 |
+
<a href="#" target="_blank">
|
1050 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1051 |
+
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
|
1052 |
+
</svg>
|
1053 |
+
Live Demo
|
1054 |
+
</a>
|
1055 |
+
</div>
|
1056 |
+
</div>
|
1057 |
+
</article>
|
1058 |
+
</div>
|
1059 |
+
</section>
|
1060 |
+
|
1061 |
+
<!-- Experience Timeline -->
|
1062 |
+
<section id="experience">
|
1063 |
+
<h2 class="fade-in">Professional Experience</h2>
|
1064 |
+
<div class="timeline">
|
1065 |
+
<div class="timeline-container">
|
1066 |
+
<!-- Passion Infotech -->
|
1067 |
+
<div class="timeline-item fade-in">
|
1068 |
+
<div class="timeline-content">
|
1069 |
+
<div class="timeline-date">August 2024-November 2024 </div>
|
1070 |
+
<div class="timeline-location">Pune, India</div>
|
1071 |
+
<h3 class="timeline-role">AI Engineer - Passion Infotech Private Limited</h3>
|
1072 |
+
<ul>
|
1073 |
+
<li>Developed a generative AI system using GANs and transformers for advanced content creation</li>
|
1074 |
+
<li>Implemented mood-driven audio-visual enhancements with 85% user satisfaction</li>
|
1075 |
+
<li>Secured ₹2.5M industry funding for innovation projects</li>
|
1076 |
+
<li>Expanded RAG framework expertise and deployed production-ready AI solutions</li>
|
1077 |
+
<li>Led cross-functional team of 5 engineers in AI product development</li>
|
1078 |
+
</ul>
|
1079 |
+
</div>
|
1080 |
+
</div>
|
1081 |
+
|
1082 |
+
<!-- Softgrowth Infotech -->
|
1083 |
+
<div class="timeline-item fade-in">
|
1084 |
+
<div class="timeline-content">
|
1085 |
+
<div class="timeline-date">July 2024</div>
|
1086 |
+
<div class="timeline-location">Chandrapur, India</div>
|
1087 |
+
<h3 class="timeline-role">Summer Intern - Softgrowth Infotech</h3>
|
1088 |
+
<ul>
|
1089 |
+
<li>Developed responsive website frontend using HTML5, CSS3, and JavaScript ES6</li>
|
1090 |
+
<li>Enhanced user experience and improved page load performance by 25%</li>
|
1091 |
+
<li>Ensured cross-browser compatibility and mobile responsiveness</li>
|
1092 |
+
<li>Collaborated with design team to implement pixel-perfect UI components</li>
|
1093 |
+
<li>Optimized code for better SEO performance and accessibility standards</li>
|
1094 |
+
</ul>
|
1095 |
+
</div>
|
1096 |
+
</div>
|
1097 |
+
|
1098 |
+
<!-- Acmegrade -->
|
1099 |
+
<div class="timeline-item fade-in">
|
1100 |
+
<div class="timeline-content">
|
1101 |
+
<div class="timeline-date">April 2023 - May 2023</div>
|
1102 |
+
<div class="timeline-location">Remote</div>
|
1103 |
+
<h3 class="timeline-role">Data Science Trainee - Acmegrade</h3>
|
1104 |
+
<ul>
|
1105 |
+
<li>Built spam classification model achieving 94% accuracy using ML techniques</li>
|
1106 |
+
<li>Developed NLP chatbot with advanced data preprocessing and sentiment analysis</li>
|
1107 |
+
<li>Implemented feature engineering pipelines using Pandas and NumPy</li>
|
1108 |
+
<li>Analyzed large datasets and created predictive models for business insights</li>
|
1109 |
+
<li>Participated in end-to-end ML project lifecycle from data collection to deployment</li>
|
1110 |
+
</ul>
|
1111 |
+
</div>
|
1112 |
+
</div>
|
1113 |
+
</div>
|
1114 |
+
|
1115 |
+
<div class="timeline-nav">
|
1116 |
+
<button onclick="scrollTimeline('left')" aria-label="Previous">←</button>
|
1117 |
+
<button onclick="scrollTimeline('right')" aria-label="Next">→</button>
|
1118 |
+
</div>
|
1119 |
+
</div>
|
1120 |
+
</section>
|
1121 |
+
|
1122 |
+
<!-- Skills Section -->
|
1123 |
+
<section id="skills">
|
1124 |
+
<div class="skills-section fade-in">
|
1125 |
+
<h2>Technical Skills</h2>
|
1126 |
+
<div class="skills-grid">
|
1127 |
+
<div class="skill-category">
|
1128 |
+
<h4>Programming Languages</h4>
|
1129 |
+
<div class="skill-list">
|
1130 |
+
<span class="skill-item">Python</span>
|
1131 |
+
<span class="skill-item">JavaScript</span>
|
1132 |
+
<span class="skill-item">Java</span>
|
1133 |
+
<span class="skill-item">C++</span>
|
1134 |
+
<span class="skill-item">SQL</span>
|
1135 |
+
<span class="skill-item">R</span>
|
1136 |
+
</div>
|
1137 |
+
</div>
|
1138 |
+
<div class="skill-category">
|
1139 |
+
<h4>AI/ML Technologies</h4>
|
1140 |
+
<div class="skill-list">
|
1141 |
+
<span class="skill-item">TensorFlow</span>
|
1142 |
+
<span class="skill-item">PyTorch</span>
|
1143 |
+
<span class="skill-item">Scikit-learn</span>
|
1144 |
+
<span class="skill-item">OpenCV</span>
|
1145 |
+
<span class="skill-item">YOLO</span>
|
1146 |
+
<span class="skill-item">Transformers</span>
|
1147 |
+
<span class="skill-item">GANs</span>
|
1148 |
+
</div>
|
1149 |
+
</div>
|
1150 |
+
<div class="skill-category">
|
1151 |
+
<h4>Web Technologies</h4>
|
1152 |
+
<div class="skill-list">
|
1153 |
+
<span class="skill-item">React</span>
|
1154 |
+
<span class="skill-item">Node.js</span>
|
1155 |
+
<span class="skill-item">Flask</span>
|
1156 |
+
<span class="skill-item">Django</span>
|
1157 |
+
<span class="skill-item">MongoDB</span>
|
1158 |
+
<span class="skill-item">Express</span>
|
1159 |
+
</div>
|
1160 |
+
</div>
|
1161 |
+
<div class="skill-category">
|
1162 |
+
<h4>Tools & Platforms</h4>
|
1163 |
+
<div class="skill-list">
|
1164 |
+
<span class="skill-item">Git</span>
|
1165 |
+
<span class="skill-item">Docker</span>
|
1166 |
+
<span class="skill-item">AWS</span>
|
1167 |
+
<span class="skill-item">Google Cloud</span>
|
1168 |
+
<span class="skill-item">Jupyter</span>
|
1169 |
+
<span class="skill-item">VS Code</span>
|
1170 |
+
</div>
|
1171 |
+
</div>
|
1172 |
+
</div>
|
1173 |
+
</div>
|
1174 |
+
</section>
|
1175 |
+
|
1176 |
+
<!-- Contact Section -->
|
1177 |
+
<section id="contact">
|
1178 |
+
<div class="contact-section fade-in">
|
1179 |
+
<h3>Let's Work Together</h3>
|
1180 |
+
<p>Ready to bring your ideas to life? Let's discuss how we can collaborate on your next project.</p>
|
1181 |
+
<div class="contact-buttons">
|
1182 |
+
<a href="mailto:[email protected]" class="contact-btn">
|
1183 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1184 |
+
<path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
|
1185 |
+
</svg>
|
1186 |
+
Email Me
|
1187 |
+
</a>
|
1188 |
+
<a href="https://linkedin.com/in/pranit144" class="contact-btn">
|
1189 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1190 |
+
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
|
1191 |
+
</svg>
|
1192 |
+
LinkedIn
|
1193 |
+
</a>
|
1194 |
+
<a href="https://github.com/pranit144" class="contact-btn">
|
1195 |
+
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
|
1196 |
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
1197 |
+
</svg>
|
1198 |
+
GitHub
|
1199 |
+
</a>
|
1200 |
+
</div>
|
1201 |
+
</div>
|
1202 |
+
</section>
|
1203 |
+
</main>
|
1204 |
+
|
1205 |
+
<script>
|
1206 |
+
// Header scroll effect
|
1207 |
+
window.addEventListener('scroll', () => {
|
1208 |
+
const header = document.querySelector('header');
|
1209 |
+
if (window.scrollY > 100) {
|
1210 |
+
header.classList.add('scrolled');
|
1211 |
+
} else {
|
1212 |
+
header.classList.remove('scrolled');
|
1213 |
+
}
|
1214 |
+
});
|
1215 |
+
|
1216 |
+
// Mobile menu toggle
|
1217 |
+
function toggleMenu() {
|
1218 |
+
const navLinks = document.querySelector('.nav-links');
|
1219 |
+
const menuToggle = document.querySelector('.menu-toggle');
|
1220 |
+
navLinks.classList.toggle('active');
|
1221 |
+
menuToggle.classList.toggle('active');
|
1222 |
+
}
|
1223 |
+
|
1224 |
+
// Project filtering
|
1225 |
+
function filterProjects(category) {
|
1226 |
+
const cards = document.querySelectorAll('.project-card');
|
1227 |
+
const buttons = document.querySelectorAll('.category-btn');
|
1228 |
+
|
1229 |
+
// Update active button
|
1230 |
+
buttons.forEach(btn => btn.classList.remove('active'));
|
1231 |
+
event.target.classList.add('active');
|
1232 |
+
|
1233 |
+
// Filter cards
|
1234 |
+
cards.forEach(card => {
|
1235 |
+
if (category === 'all' || card.dataset.category === category) {
|
1236 |
+
card.style.display = 'block';
|
1237 |
+
card.style.animation = 'fadeIn 0.5s ease forwards';
|
1238 |
+
} else {
|
1239 |
+
card.style.display = 'none';
|
1240 |
+
}
|
1241 |
+
});
|
1242 |
+
}
|
1243 |
+
|
1244 |
+
// Timeline navigation
|
1245 |
+
function scrollTimeline(direction) {
|
1246 |
+
const container = document.querySelector('.timeline-container');
|
1247 |
+
const scrollAmount = 400;
|
1248 |
+
if (direction === 'left') {
|
1249 |
+
container.scrollBy({ left: -scrollAmount, behavior: 'smooth' });
|
1250 |
+
} else {
|
1251 |
+
container.scrollBy({ left: scrollAmount, behavior: 'smooth' });
|
1252 |
+
}
|
1253 |
+
}
|
1254 |
+
|
1255 |
+
// Intersection Observer for animations
|
1256 |
+
const observerOptions = {
|
1257 |
+
threshold: 0.1,
|
1258 |
+
rootMargin: '0px 0px -50px 0px'
|
1259 |
+
};
|
1260 |
+
|
1261 |
+
const observer = new IntersectionObserver((entries) => {
|
1262 |
+
entries.forEach(entry => {
|
1263 |
+
if (entry.isIntersecting) {
|
1264 |
+
entry.target.classList.add('visible');
|
1265 |
+
}
|
1266 |
+
});
|
1267 |
+
}, observerOptions);
|
1268 |
+
|
1269 |
+
// Observe all elements with animation classes
|
1270 |
+
document.addEventListener('DOMContentLoaded', () => {
|
1271 |
+
const animatedElements = document.querySelectorAll('.fade-in, .slide-in-left, .slide-in-right');
|
1272 |
+
animatedElements.forEach(el => observer.observe(el));
|
1273 |
+
});
|
1274 |
+
|
1275 |
+
// Smooth scrolling for navigation links
|
1276 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
1277 |
+
anchor.addEventListener('click', function (e) {
|
1278 |
+
e.preventDefault();
|
1279 |
+
const target = document.querySelector(this.getAttribute('href'));
|
1280 |
+
if (target) {
|
1281 |
+
const headerHeight = document.querySelector('header').offsetHeight;
|
1282 |
+
const targetPosition = target.offsetTop - headerHeight - 20;
|
1283 |
+
|
1284 |
+
window.scrollTo({
|
1285 |
+
top: targetPosition,
|
1286 |
+
behavior: 'smooth'
|
1287 |
+
});
|
1288 |
+
|
1289 |
+
// Close mobile menu if open
|
1290 |
+
const navLinks = document.querySelector('.nav-links');
|
1291 |
+
const menuToggle = document.querySelector('.menu-toggle');
|
1292 |
+
navLinks.classList.remove('active');
|
1293 |
+
menuToggle.classList.remove('active');
|
1294 |
+
}
|
1295 |
+
});
|
1296 |
+
});
|
1297 |
+
|
1298 |
+
// Typing animation for hero section
|
1299 |
+
function typeWriter(element, text, speed = 100) {
|
1300 |
+
let i = 0;
|
1301 |
+
element.innerHTML = '';
|
1302 |
+
function type() {
|
1303 |
+
if (i < text.length) {
|
1304 |
+
element.innerHTML += text.charAt(i);
|
1305 |
+
i++;
|
1306 |
+
setTimeout(type, speed);
|
1307 |
+
}
|
1308 |
+
}
|
1309 |
+
type();
|
1310 |
+
}
|
1311 |
+
|
1312 |
+
// Initialize typing animation
|
1313 |
+
window.addEventListener('load', () => {
|
1314 |
+
const heroTitle = document.querySelector('.hero-title');
|
1315 |
+
if (heroTitle) {
|
1316 |
+
typeWriter(heroTitle, 'AI Engineer & Full-Stack Developer', 80);
|
1317 |
+
}
|
1318 |
+
});
|
1319 |
+
|
1320 |
+
// Parallax effect for hero section
|
1321 |
+
window.addEventListener('scroll', () => {
|
1322 |
+
const scrolled = window.pageYOffset;
|
1323 |
+
const hero = document.querySelector('.hero');
|
1324 |
+
if (hero) {
|
1325 |
+
hero.style.transform = `translateY(${scrolled * 0.5}px)`;
|
1326 |
+
}
|
1327 |
+
});
|
1328 |
+
|
1329 |
+
// Project card hover effects
|
1330 |
+
document.querySelectorAll('.project-card').forEach(card => {
|
1331 |
+
card.addEventListener('mouseenter', function() {
|
1332 |
+
this.style.transform = 'translateY(-10px)';
|
1333 |
+
});
|
1334 |
+
|
1335 |
+
card.addEventListener('mouseleave', function() {
|
1336 |
+
this.style.transform = 'translateY(0)';
|
1337 |
+
});
|
1338 |
+
});
|
1339 |
+
|
1340 |
+
// Skills animation on scroll
|
1341 |
+
const skillItems = document.querySelectorAll('.skill-item');
|
1342 |
+
const skillObserver = new IntersectionObserver((entries) => {
|
1343 |
+
entries.forEach((entry, index) => {
|
1344 |
+
if (entry.isIntersecting) {
|
1345 |
+
setTimeout(() => {
|
1346 |
+
entry.target.style.opacity = '1';
|
1347 |
+
entry.target.style.transform = 'translateY(0)';
|
1348 |
+
}, index * 100);
|
1349 |
+
}
|
1350 |
+
});
|
1351 |
+
});
|
1352 |
+
|
1353 |
+
skillItems.forEach(item => {
|
1354 |
+
item.style.opacity = '0';
|
1355 |
+
item.style.transform = 'translateY(20px)';
|
1356 |
+
item.style.transition = 'all 0.5s ease';
|
1357 |
+
skillObserver.observe(item);
|
1358 |
+
});
|
1359 |
+
|
1360 |
+
// Dynamic year update
|
1361 |
+
const currentYear = new Date().getFullYear();
|
1362 |
+
const yearElements = document.querySelectorAll('.current-year');
|
1363 |
+
yearElements.forEach(el => el.textContent = currentYear);
|
1364 |
+
|
1365 |
+
// Form validation (if contact form exists)
|
1366 |
+
const contactForm = document.querySelector('#contact-form');
|
1367 |
+
if (contactForm) {
|
1368 |
+
contactForm.addEventListener('submit', function(e) {
|
1369 |
+
e.preventDefault();
|
1370 |
+
// Add form validation logic here
|
1371 |
+
alert('Thank you for your message! I will get back to you soon.');
|
1372 |
+
});
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
// Performance optimization - lazy loading for images
|
1376 |
+
if ('IntersectionObserver' in window) {
|
1377 |
+
const imageObserver = new IntersectionObserver((entries, observer) => {
|
1378 |
+
entries.forEach(entry => {
|
1379 |
+
if (entry.isIntersecting) {
|
1380 |
+
const img = entry.target;
|
1381 |
+
img.src = img.dataset.src || img.src;
|
1382 |
+
img.classList.remove('lazy');
|
1383 |
+
observer.unobserve(img);
|
1384 |
+
}
|
1385 |
+
});
|
1386 |
+
});
|
1387 |
+
|
1388 |
+
document.querySelectorAll('img[loading="lazy"]').forEach(img => {
|
1389 |
+
imageObserver.observe(img);
|
1390 |
+
});
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
// Active navigation highlighting
|
1394 |
+
window.addEventListener('scroll', () => {
|
1395 |
+
const sections = document.querySelectorAll('section[id]');
|
1396 |
+
const navLinks = document.querySelectorAll('.nav-links a');
|
1397 |
+
|
1398 |
+
let current = '';
|
1399 |
+
sections.forEach(section => {
|
1400 |
+
const sectionTop = section.offsetTop;
|
1401 |
+
const sectionHeight = section.clientHeight;
|
1402 |
+
if (scrollY >= (sectionTop - 200)) {
|
1403 |
+
current = section.getAttribute('id');
|
1404 |
+
}
|
1405 |
+
});
|
1406 |
+
|
1407 |
+
navLinks.forEach(link => {
|
1408 |
+
link.classList.remove('active');
|
1409 |
+
if (link.getAttribute('href') === '#' + current) {
|
1410 |
+
link.classList.add('active');
|
1411 |
+
}
|
1412 |
+
});
|
1413 |
+
});
|
1414 |
+
|
1415 |
+
// Timeline scroll indicators
|
1416 |
+
const timelineContainer = document.querySelector('.timeline-container');
|
1417 |
+
if (timelineContainer) {
|
1418 |
+
timelineContainer.addEventListener('scroll', () => {
|
1419 |
+
const scrollLeft = timelineContainer.scrollLeft;
|
1420 |
+
const maxScroll = timelineContainer.scrollWidth - timelineContainer.clientWidth;
|
1421 |
+
const scrollPercentage = (scrollLeft / maxScroll) * 100;
|
1422 |
+
|
1423 |
+
// Update navigation buttons state
|
1424 |
+
const leftBtn = document.querySelector('.timeline-nav button:first-child');
|
1425 |
+
const rightBtn = document.querySelector('.timeline-nav button:last-child');
|
1426 |
+
|
1427 |
+
if (leftBtn && rightBtn) {
|
1428 |
+
leftBtn.disabled = scrollLeft === 0;
|
1429 |
+
rightBtn.disabled = scrollLeft >= maxScroll - 1;
|
1430 |
+
}
|
1431 |
+
});
|
1432 |
+
}
|
1433 |
+
|
1434 |
+
// Easter egg - Konami code
|
1435 |
+
let konamiCode = [];
|
1436 |
+
const konamiSequence = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65];
|
1437 |
+
|
1438 |
+
document.addEventListener('keydown', (e) => {
|
1439 |
+
konamiCode.push(e.keyCode);
|
1440 |
+
if (konamiCode.length > konamiSequence.length) {
|
1441 |
+
konamiCode.shift();
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
if (konamiCode.toString() === konamiSequence.toString()) {
|
1445 |
+
document.body.style.animation = 'rainbow 2s infinite';
|
1446 |
+
setTimeout(() => {
|
1447 |
+
document.body.style.animation = '';
|
1448 |
+
}, 5000);
|
1449 |
+
console.log('🎉 Easter egg activated! Welcome to the matrix!');
|
1450 |
+
}
|
1451 |
+
});
|
1452 |
+
|
1453 |
+
// Add CSS for rainbow animation
|
1454 |
+
const style = document.createElement('style');
|
1455 |
+
style.textContent = `
|
1456 |
+
@keyframes rainbow {
|
1457 |
+
0% { filter: hue-rotate(0deg); }
|
1458 |
+
100% { filter: hue-rotate(360deg); }
|
1459 |
+
}
|
1460 |
+
`;
|
1461 |
+
document.head.appendChild(style);
|
1462 |
+
|
1463 |
+
// Console welcome message
|
1464 |
+
console.log('%c Welcome to Pranit Chilbule\'s Portfolio! ', 'background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); color: white; padding: 10px; border-radius: 5px; font-size: 16px; font-weight: bold;');
|
1465 |
+
console.log('%c Feel free to explore the code and reach out if you have any questions! ', 'color: #667eea; font-size: 14px;');
|
1466 |
+
</script>
|
1467 |
+
|
1468 |
+
<!-- Additional CSS for enhanced animations and responsive design -->
|
1469 |
+
<style>
|
1470 |
+
/* Ensure smooth transitions for all interactive elements */
|
1471 |
+
* {
|
1472 |
+
transition-duration: 0.3s;
|
1473 |
+
}
|
1474 |
+
|
1475 |
+
/* Enhanced project card animations */
|
1476 |
+
.project-card {
|
1477 |
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
1478 |
+
}
|
1479 |
+
|
1480 |
+
.project-card:hover {
|
1481 |
+
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
|
1482 |
+
}
|
1483 |
+
|
1484 |
+
/* Improved timeline navigation */
|
1485 |
+
.timeline-nav button:disabled {
|
1486 |
+
opacity: 0.5;
|
1487 |
+
cursor: not-allowed;
|
1488 |
+
}
|
1489 |
+
|
1490 |
+
/* Enhanced mobile responsiveness */
|
1491 |
+
@media (max-width: 768px) {
|
1492 |
+
.timeline-container {
|
1493 |
+
scroll-snap-type: x mandatory;
|
1494 |
+
}
|
1495 |
+
|
1496 |
+
.timeline-item {
|
1497 |
+
scroll-snap-align: start;
|
1498 |
+
}
|
1499 |
+
|
1500 |
+
.skills-grid {
|
1501 |
+
grid-template-columns: 1fr;
|
1502 |
+
gap: 1.5rem;
|
1503 |
+
}
|
1504 |
+
}
|
1505 |
+
|
1506 |
+
/* Loading animation for lazy images */
|
1507 |
+
img.lazy {
|
1508 |
+
opacity: 0;
|
1509 |
+
transition: opacity 0.3s;
|
1510 |
+
}
|
1511 |
+
|
1512 |
+
img.lazy.loaded {
|
1513 |
+
opacity: 1;
|
1514 |
+
}
|
1515 |
+
|
1516 |
+
/* Active navigation styling */
|
1517 |
+
.nav-links a.active {
|
1518 |
+
color: var(--primary-color);
|
1519 |
+
border-bottom: 2px solid var(--primary-color);
|
1520 |
+
}
|
1521 |
+
|
1522 |
+
/* Print styles */
|
1523 |
+
@media print {
|
1524 |
+
.nav-links,
|
1525 |
+
.menu-toggle,
|
1526 |
+
.project-links,
|
1527 |
+
.contact-buttons {
|
1528 |
+
display: none;
|
1529 |
+
}
|
1530 |
+
|
1531 |
+
.project-card,
|
1532 |
+
.timeline-item {
|
1533 |
+
break-inside: avoid;
|
1534 |
+
}
|
1535 |
+
}
|
1536 |
+
|
1537 |
+
/* High contrast mode support */
|
1538 |
+
@media (prefers-contrast: high) {
|
1539 |
+
:root {
|
1540 |
+
--text-color: #000;
|
1541 |
+
--background-color: #fff;
|
1542 |
+
--primary-color: #0000ff;
|
1543 |
+
}
|
1544 |
+
}
|
1545 |
+
|
1546 |
+
/* Reduced motion for accessibility */
|
1547 |
+
@media (prefers-reduced-motion: reduce) {
|
1548 |
+
*,
|
1549 |
+
*::before,
|
1550 |
+
*::after {
|
1551 |
+
animation-duration: 0.01ms !important;
|
1552 |
+
animation-iteration-count: 1 !important;
|
1553 |
+
transition-duration: 0.01ms !important;
|
1554 |
+
}
|
1555 |
+
}
|
1556 |
+
</style>
|
1557 |
+
</body>
|
1558 |
+
</html>
|