AIencoder commited on
Commit
bce9cc3
·
verified ·
1 Parent(s): 43ed820

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +265 -264
index.html CHANGED
@@ -1,5 +1,5 @@
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">
@@ -10,6 +10,7 @@
10
  <body>
11
  <div class="mesh-bg"></div>
12
  <div class="grid-bg"></div>
 
13
 
14
  <!-- SVG SPRITES -->
15
  <svg xmlns="http://www.w3.org/2000/svg" style="display:none">
@@ -27,7 +28,6 @@
27
  <symbol id="i-book" viewBox="0 0 24 24"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/></symbol>
28
  <symbol id="i-pin" viewBox="0 0 24 24"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/><circle cx="12" cy="10" r="3"/></symbol>
29
  <symbol id="i-link" viewBox="0 0 24 24"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></symbol>
30
- <symbol id="i-alert" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></symbol>
31
  <symbol id="i-brain" viewBox="0 0 24 24"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"/><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"/><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"/></symbol>
32
  <symbol id="i-db" viewBox="0 0 24 24"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5V19A9 3 0 0 0 21 19V5"/><path d="M3 12A9 3 0 0 0 21 12"/></symbol>
33
  <symbol id="i-layout" viewBox="0 0 24 24"><rect width="18" height="18" x="3" y="3" rx="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="9" y1="21" x2="9" y2="9"/></symbol>
@@ -37,6 +37,18 @@
37
  <symbol id="i-cloud" viewBox="0 0 24 24"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/></symbol>
38
  <symbol id="i-download" viewBox="0 0 24 24"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></symbol>
39
  <symbol id="i-users" viewBox="0 0 24 24"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></symbol>
 
 
 
 
 
 
 
 
 
 
 
 
40
  </svg>
41
 
42
  <!-- NAV -->
@@ -48,18 +60,28 @@
48
  </a>
49
  <div class="flex items-center gap-1 md-hide" id="nav-links">
50
  <a href="#home" class="nav-link">Home</a>
51
- <a href="#huggingface" class="nav-link">Hugging Face</a>
 
52
  <a href="#github" class="nav-link">GitHub</a>
 
53
  <a href="#contact" class="nav-link">Contact</a>
54
  </div>
55
- <button id="menu-btn" class="md-show" style="display:none;padding:.5rem">
56
- <svg class="icon icon-md"><use href="#i-menu"/></svg>
57
- </button>
 
 
 
 
 
 
58
  </div>
59
  <div id="mobile-menu" class="mobile-menu hidden glass">
60
  <a href="#home">Home</a>
 
61
  <a href="#huggingface">Hugging Face</a>
62
  <a href="#github">GitHub</a>
 
63
  <a href="#contact">Contact</a>
64
  </div>
65
  </nav>
@@ -68,16 +90,16 @@
68
  <section id="home" style="min-height:100vh;display:flex;align-items:center;justify-content:center;padding-top:80px">
69
  <div class="container text-center">
70
  <div class="fade-up" style="animation-delay:.1s">
71
- <span style="display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;border:1px solid rgba(74,222,128,.2);font-size:.875rem;color:#d1d5db;background:rgba(255,255,255,.03);margin-bottom:2rem">
72
  <span class="pulse" style="width:8px;height:8px;background:#4ade80;border-radius:50%;display:inline-block"></span>
73
  Available for Collaboration
74
  </span>
75
  </div>
76
  <h1 class="fade-up" style="animation-delay:.2s">
77
- <span class="hero-title" style="display:block;font-size:clamp(2.5rem,8vw,5rem);font-weight:800;color:#e5e5e5;letter-spacing:-.02em">Hello, I'm</span>
78
  <span class="hero-sub mono cursor gradient-text" id="typewriter" style="display:block;font-size:clamp(2rem,6vw,4rem);font-weight:700;margin-top:.25rem"></span>
79
  </h1>
80
- <p class="fade-up" style="animation-delay:.35s;font-size:clamp(1rem,2vw,1.25rem);color:#6b7280;max-width:600px;margin:2rem auto 3rem;line-height:1.7">
81
  Building the future with AI and code. Passionate about machine learning, open-source, and creating impactful solutions.
82
  </p>
83
  <div class="flex flex-wrap justify-center gap-3 fade-up" style="animation-delay:.5s">
@@ -88,28 +110,11 @@
88
  <svg class="icon"><use href="#i-github"/></svg> GitHub
89
  </a>
90
  </div>
91
-
92
  <div class="grid grid-4 gap-3 fade-up" style="animation-delay:.65s;max-width:700px;margin:5rem auto 0">
93
- <div class="card glow-card stat">
94
- <div class="stat-icon" style="color:#c084fc"><svg class="icon icon-lg"><use href="#i-cpu"/></svg></div>
95
- <div class="stat-num">15+</div>
96
- <div class="stat-label">AI Models</div>
97
- </div>
98
- <div class="card glow-card stat">
99
- <div class="stat-icon" style="color:#60a5fa"><svg class="icon icon-lg"><use href="#i-branch"/></svg></div>
100
- <div class="stat-num" id="s-repos">5+</div>
101
- <div class="stat-label">Repositories</div>
102
- </div>
103
- <div class="card glow-card stat">
104
- <div class="stat-icon" style="color:#34d399"><svg class="icon icon-lg"><use href="#i-code"/></svg></div>
105
- <div class="stat-num">10K+</div>
106
- <div class="stat-label">Lines of Code</div>
107
- </div>
108
- <div class="card glow-card stat">
109
- <div class="stat-icon" style="color:#f472b6"><svg class="icon icon-lg"><use href="#i-heart"/></svg></div>
110
- <div class="stat-num">500+</div>
111
- <div class="stat-label">Contributions</div>
112
- </div>
113
  </div>
114
  </div>
115
  </section>
@@ -117,12 +122,12 @@
117
  <!-- CODE SHOWCASE -->
118
  <section class="section">
119
  <div class="container-sm">
120
- <div class="code-win" style="box-shadow:0 24px 48px rgba(168,85,247,.05)">
121
  <div class="code-head">
122
  <div class="code-dot" style="background:rgba(239,68,68,.8)"></div>
123
  <div class="code-dot" style="background:rgba(234,179,8,.8)"></div>
124
  <div class="code-dot" style="background:rgba(34,197,94,.8)"></div>
125
- <span class="mono" style="margin-left:1rem;color:#6b7280;font-size:.75rem">developer_profile.py</span>
126
  </div>
127
  <div class="code-body">
128
  <div class="c-gray2"># Define the developer profile</div>
@@ -130,47 +135,45 @@
130
  <div style="padding-left:1.5rem"><span class="c-purple">def</span> <span class="c-blue">__init__</span><span class="c-gray">(</span><span class="c-orange">self</span><span class="c-gray">):</span></div>
131
  <div style="padding-left:2.5rem"><span class="c-orange">self</span><span class="c-gray">.</span>name <span class="c-gray">=</span> <span class="c-green">"AIencoder"</span></div>
132
  <div style="padding-left:2.5rem"><span class="c-orange">self</span><span class="c-gray">.</span>role <span class="c-gray">=</span> <span class="c-green">"AI/ML Engineer &amp; Developer"</span></div>
133
- <div style="padding-left:2.5rem"><span class="c-orange">self</span><span class="c-gray">.</span>platforms <span class="c-gray">=</span> <span class="c-gray">{</span></div>
134
- <div style="padding-left:3.5rem"><span class="c-green">"huggingface"</span><span class="c-gray">:</span> <span class="c-green">"huggingface.co/AIencoder"</span><span class="c-gray">,</span></div>
135
- <div style="padding-left:3.5rem"><span class="c-green">"github"</span><span class="c-gray">:</span> <span class="c-green">"github.com/Ary5272"</span></div>
136
- <div style="padding-left:2.5rem"><span class="c-gray">}</span></div>
137
  <div style="padding-left:1.5rem;margin-top:.75rem"><span class="c-purple">def</span> <span class="c-blue">create_impact</span><span class="c-gray">(</span><span class="c-orange">self</span><span class="c-gray">):</span></div>
138
  <div style="padding-left:2.5rem"><span class="c-purple">return</span> <span class="c-green">"Transforming ideas into reality"</span></div>
139
- <div style="margin-top:1rem" class="c-gray2"># Initialize and run</div>
140
- <div><span class="c-white">dev</span> <span class="c-gray">=</span> <span class="c-amber">Developer</span><span class="c-gray">()</span></div>
141
- <div><span class="c-white">dev</span><span class="c-gray">.</span><span class="c-blue">create_impact</span><span class="c-gray">()</span></div>
142
- <div style="margin-top:.5rem"><span class="c-gray">>>> </span><span class="c-green">"Transforming ideas into reality"</span></div>
143
  </div>
144
  </div>
145
  </div>
146
  </section>
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  <!-- HUGGING FACE -->
149
  <section id="huggingface" class="section">
150
  <div class="container">
151
- <div class="flex items-center justify-between" style="margin-bottom:3rem">
152
  <div class="flex items-center gap-3">
153
- <div class="section-icon" style="background:rgba(245,158,11,.1);color:#f59e0b">
154
- <svg class="icon icon-md"><use href="#i-smile"/></svg>
155
- </div>
156
- <div>
157
- <h2 class="section-title">Hugging Face</h2>
158
- <p style="color:#6b7280;font-size:.875rem;margin-top:.25rem">AI models, spaces, and datasets for the community</p>
159
- </div>
160
  </div>
161
- <a href="https://huggingface.co/AIencoder" target="_blank" rel="noopener noreferrer" class="flex items-center gap-1 md-hide" style="color:#f59e0b;font-size:.875rem;font-weight:500">
162
- View Profile <svg class="icon icon-sm"><use href="#i-up-right"/></svg>
163
- </a>
164
  </div>
165
-
166
- <!-- HF Profile Card -->
167
- <div class="card glow-card card-amber" style="padding:2rem;margin-bottom:2.5rem">
168
  <div class="flex gap-5 profile-wrap" style="align-items:center">
169
  <img id="hf-avatar" src="https://huggingface.co/avatars/46a0d6090e169c088fc1a64d4b8d993c.svg" alt="" class="profile-avatar profile-avatar-hf" onerror="this.outerHTML='<div class=\'profile-avatar profile-avatar-hf profile-avatar-fallback hf\'>A</div>'">
170
  <div style="flex:1;min-width:200px">
171
  <h3 style="font-size:1.25rem;font-weight:700" id="hf-name">Aryan Nukala</h3>
172
- <p style="color:#6b7280;font-size:.875rem">@AIencoder</p>
173
- <p style="color:#9ca3af;font-size:.875rem;margin-top:.5rem">AI/ML Engineer building intelligent systems</p>
174
  </div>
175
  <div class="flex gap-2 flex-wrap profile-stats">
176
  <div class="profile-stat amber"><div class="profile-stat-num" style="color:#f59e0b" id="hf-n-models">7</div><div class="profile-stat-label">Models</div></div>
@@ -180,56 +183,32 @@
180
  </div>
181
  </div>
182
  </div>
183
-
184
- <!-- Models -->
185
- <h3 class="flex items-center gap-2 section-subtitle" style="color:#f59e0b">
186
- <svg class="icon icon-sm"><use href="#i-brain"/></svg> Models
187
- </h3>
188
- <div class="grid grid-3 gap-4" style="margin-bottom:2.5rem" id="hf-models"></div>
189
-
190
- <!-- Spaces -->
191
- <h3 class="flex items-center gap-2 section-subtitle" style="color:#c084fc">
192
- <svg class="icon icon-sm"><use href="#i-layout"/></svg> Spaces
193
- </h3>
194
- <div class="grid grid-3 gap-4" style="margin-bottom:2.5rem" id="hf-spaces"></div>
195
-
196
- <!-- Datasets -->
197
- <h3 class="flex items-center gap-2 section-subtitle" style="color:#34d399">
198
- <svg class="icon icon-sm"><use href="#i-db"/></svg> Datasets
199
- </h3>
200
- <div class="grid grid-3 gap-4" id="hf-datasets"></div>
201
  </div>
202
  </section>
203
 
204
  <!-- GITHUB -->
205
- <section id="github" class="section" style="background:rgba(255,255,255,.01)">
206
  <div class="container">
207
- <div class="flex items-center justify-between" style="margin-bottom:3rem">
208
  <div class="flex items-center gap-3">
209
- <div class="section-icon" style="background:rgba(255,255,255,.05);color:#fff">
210
- <svg class="icon icon-md"><use href="#i-github"/></svg>
211
- </div>
212
- <div>
213
- <h2 class="section-title">GitHub</h2>
214
- <p style="color:#6b7280;font-size:.875rem;margin-top:.25rem">Open source projects and contributions</p>
215
- </div>
216
  </div>
217
- <a href="https://github.com/Ary5272" target="_blank" rel="noopener noreferrer" class="flex items-center gap-1 md-hide" style="color:#9ca3af;font-size:.875rem;font-weight:500">
218
- View Profile <svg class="icon icon-sm"><use href="#i-up-right"/></svg>
219
- </a>
220
  </div>
221
-
222
- <!-- Profile Card -->
223
- <div class="card glow-card" style="padding:2rem;margin-bottom:2rem">
224
  <div class="flex gap-5 profile-wrap" style="align-items:center">
225
  <img id="gh-avatar" src="https://avatars.githubusercontent.com/u/215576213?v=4" alt="" class="profile-avatar profile-avatar-gh" onerror="this.outerHTML='<div class=\'profile-avatar profile-avatar-gh profile-avatar-fallback gh\'>A</div>'">
226
  <div style="flex:1;min-width:200px">
227
  <h3 style="font-size:1.25rem;font-weight:700" id="gh-name">Aryan Nukala</h3>
228
- <p style="color:#6b7280;font-size:.875rem" id="gh-user">@Ary5272</p>
229
- <p style="color:#9ca3af;font-size:.875rem;margin-top:.5rem" id="gh-bio">AI/ML Developer</p>
230
- <div class="flex flex-wrap gap-4" style="margin-top:.5rem;font-size:.75rem;color:#6b7280">
231
- <span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-pin"/></svg><span id="gh-loc">Remote</span></span>
232
- </div>
233
  </div>
234
  <div class="flex gap-2 profile-stats">
235
  <div class="profile-stat"><div class="profile-stat-num" style="color:#c084fc" id="gh-repos-n">5</div><div class="profile-stat-label">Repos</div></div>
@@ -237,63 +216,69 @@
237
  </div>
238
  </div>
239
  </div>
 
 
 
 
240
 
241
- <!-- Repos -->
242
- <h3 class="flex items-center gap-2 section-subtitle" style="color:#9ca3af">
243
- <svg class="icon icon-sm"><use href="#i-book"/></svg> Latest Repositories
244
- </h3>
245
- <div class="grid grid-3 gap-4" id="gh-grid"></div>
 
 
 
246
  </div>
247
  </section>
248
 
249
  <!-- TECH STACK -->
250
- <section class="section">
251
  <div class="container-sm text-center">
252
- <h2 class="section-title" style="margin-bottom:.75rem">Tech Stack</h2>
253
- <p style="color:#6b7280;margin-bottom:3rem">Technologies I work with</p>
254
- <div class="flex flex-wrap justify-center gap-2" id="tech-pills"></div>
255
  </div>
256
  </section>
257
 
258
  <!-- CONTACT -->
259
- <section id="contact" class="section" style="background:rgba(255,255,255,.01)">
260
  <div class="container-xs text-center">
261
- <h2 class="section-title" style="margin-bottom:.75rem">Let's Connect</h2>
262
- <p style="color:#6b7280;margin-bottom:3rem">Interested in collaborating or have a question? Let's chat!</p>
263
- <div class="grid grid-2 gap-4" style="max-width:420px;margin:0 auto">
264
  <a href="https://huggingface.co/AIencoder" target="_blank" rel="noopener noreferrer" class="card glow-card card-amber text-center" style="padding:1.5rem">
265
- <div style="width:48px;height:48px;background:rgba(245,158,11,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;color:#f59e0b;font-size:1.5rem">
266
- <svg class="icon icon-lg"><use href="#i-smile"/></svg>
267
- </div>
268
  <h3 style="font-weight:600;margin-bottom:.25rem">Hugging Face</h3>
269
- <p style="color:#6b7280;font-size:.875rem">@AIencoder</p>
270
  </a>
271
  <a href="https://github.com/Ary5272" target="_blank" rel="noopener noreferrer" class="card glow-card text-center" style="padding:1.5rem">
272
- <div style="width:48px;height:48px;background:rgba(255,255,255,.05);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;font-size:1.5rem">
273
- <svg class="icon icon-lg"><use href="#i-github"/></svg>
274
- </div>
275
  <h3 style="font-weight:600;margin-bottom:.25rem">GitHub</h3>
276
- <p style="color:#6b7280;font-size:.875rem">@Ary5272</p>
277
  </a>
278
  </div>
279
  </div>
280
  </section>
281
 
282
  <!-- FOOTER -->
283
- <footer style="padding:2rem 0;border-top:1px solid rgba(255,255,255,.04)">
284
  <div class="container flex items-center justify-between" style="flex-wrap:wrap;gap:1rem">
285
  <div class="flex items-center gap-1">
286
  <svg class="icon" style="color:#c084fc"><use href="#i-terminal"/></svg>
287
  <span class="mono gradient-text" style="font-weight:700;font-size:.875rem">AIencoder</span>
288
  </div>
289
- <p style="color:#4b5563;font-size:.75rem">Built with passion and code</p>
 
 
 
 
 
 
 
290
  <div class="flex gap-1">
291
- <a href="https://huggingface.co/AIencoder" target="_blank" rel="noopener noreferrer" style="color:#4b5563;padding:.5rem;transition:color .2s" onmouseover="this.style.color='#f59e0b'" onmouseout="this.style.color='#4b5563'">
292
- <svg class="icon"><use href="#i-smile"/></svg>
293
- </a>
294
- <a href="https://github.com/Ary5272" target="_blank" rel="noopener noreferrer" style="color:#4b5563;padding:.5rem;transition:color .2s" onmouseover="this.style.color='#fff'" onmouseout="this.style.color='#4b5563'">
295
- <svg class="icon"><use href="#i-github"/></svg>
296
- </a>
297
  </div>
298
  </div>
299
  </footer>
@@ -303,178 +288,194 @@
303
  const words=['AIencoder','A Developer','An ML Engineer','A Builder'];
304
  let wi=0,ci=0,del=false;
305
  const tw=document.getElementById('typewriter');
306
- function type(){
307
- const w=words[wi];
308
- tw.textContent=del?w.substring(0,--ci):w.substring(0,++ci);
309
- let s=del?40:80;
310
- if(!del&&ci===w.length){s=2500;del=true}
311
- else if(del&&ci===0){del=false;wi=(wi+1)%words.length;s=400}
312
- setTimeout(type,s);
313
- }
314
  type();
315
 
316
- // ===== HARDCODED FALLBACK DATA =====
317
- const FALLBACK_HF_MODELS=[
318
- {id:'AIencoder/Logic-Coder-7B',downloads:95,likes:1},
319
- {id:'AIencoder/Hermes-2-Pro-Mistral-7B-GodCoder',downloads:15,likes:1},
320
- {id:'AIencoder/Logic-Coder-7B-Q4_K_M-GGUF',downloads:52,likes:0},
321
- {id:'AIencoder/HermesMath-7B-TIES',downloads:17,likes:1},
322
- {id:'AIencoder/Llama3-CodeInstruct-8B',downloads:11,likes:0},
323
- {id:'AIencoder/Axon26-Coder',downloads:23,likes:0},
324
- ];
325
- const FALLBACK_HF_SPACES=[
326
- {id:'AIencoder/AXON-TRINITY',sdk:'Gradio',likes:0},
327
- {id:'AIencoder/Axon',sdk:'Docker',likes:3},
328
- {id:'AIencoder/llama-wheel-factory',sdk:'Docker',likes:0},
329
- {id:'AIencoder/merge-config-generator',sdk:'Gradio',likes:0},
330
- {id:'AIencoder/Prompt-Template-Tester',sdk:'Gradio',likes:0},
331
- {id:'AIencoder/Axon-Llama-GUI',sdk:'Docker',likes:0},
332
- ];
333
- const FALLBACK_HF_DATASETS=[
334
- {id:'AIencoder/llama-cpp-wheels',downloads:153,likes:1},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
335
  ];
336
- const FALLBACK_GH_REPOS=[
337
- {name:'llama-cpp-python',desc:'Python bindings for llama.cpp',lang:'Python',stars:0,url:'https://github.com/Ary5272/llama-cpp-python',date:'Jan 25'},
338
- {name:'llama.cpp',desc:'LLM inference in C/C++',lang:'C++',stars:0,url:'https://github.com/Ary5272/llama.cpp',date:'Jan 25'},
339
- {name:'llama.cpp-Dockerfile',desc:'Dockerfile for llama.cpp',lang:'Dockerfile',stars:0,url:'https://github.com/Ary5272/llama.cpp-Dockerfile',date:'Jan 25'},
340
- {name:'Ary5272',desc:'Config files for my GitHub profile.',lang:'',stars:1,url:'https://github.com/Ary5272/Ary5272',date:'Jan 24'},
341
- {name:'tutor-app-final',desc:'Tutor application',lang:'HTML',stars:1,url:'https://github.com/Ary5272/tutor-app-final',date:'Jan 21'},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
 
344
- // ===== RENDER FUNCTIONS =====
345
  const LANG_COLORS={Python:'#3572A5','C++':'#f34b7d',Dockerfile:'#384d54',HTML:'#e34c26',JavaScript:'#f1e05a'};
346
 
347
  function renderHfCards(items,containerId,type,icon,color){
348
  const grid=document.getElementById(containerId);
349
  const base=type==='model'?'https://huggingface.co/':type==='space'?'https://huggingface.co/spaces/':'https://huggingface.co/datasets/';
350
- items.forEach(m=>{
351
- const name=m.id.split('/')[1];
352
- const el=document.createElement('a');
353
- el.href=base+m.id;el.target='_blank';el.rel='noopener noreferrer';
354
- el.className='card glow-card card-amber';
355
- el.innerHTML=`
356
- <div class="flex items-center justify-between" style="margin-bottom:.75rem">
357
- <div style="width:40px;height:40px;background:${color}15;border-radius:12px;display:flex;align-items:center;justify-content:center;color:${color};font-size:1.25rem">
358
- <svg class="icon icon-md"><use href="#i-${icon}"/></svg>
359
- </div>
360
- <div class="flex items-center gap-3" style="font-size:.75rem;color:#6b7280">
361
- ${m.downloads!==undefined?`<span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-download"/></svg> ${m.downloads}</span>`:''}
362
- ${m.sdk?`<span style="background:rgba(255,255,255,.05);padding:.125rem .5rem;border-radius:9999px;font-size:.625rem">${m.sdk}</span>`:''}
363
- <span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-heart"/></svg> ${m.likes}</span>
364
- </div>
365
- </div>
366
- <h4 style="font-weight:600;font-size:.875rem;margin-bottom:.25rem" class="truncate">${name}</h4>
367
- <div style="margin-top:.75rem;display:flex;align-items:center;gap:.375rem;color:${color};font-size:.75rem;font-weight:500">
368
- Explore <svg class="icon icon-sm"><use href="#i-right"/></svg>
369
- </div>`;
370
- grid.appendChild(el);
371
- });
372
  }
373
-
374
  function renderGhRepos(repos){
375
- const grid=document.getElementById('gh-grid');
376
- grid.innerHTML='';
377
- repos.forEach(r=>{
378
- const el=document.createElement('a');
379
- el.href=r.url;el.target='_blank';el.rel='noopener noreferrer';
380
- el.className='card glow-card card-purple';
381
- const lc=LANG_COLORS[r.lang]||'#8b8b8b';
382
- el.innerHTML=`
383
- <div class="flex items-center justify-between" style="margin-bottom:.75rem">
384
- <div class="flex items-center gap-2" style="min-width:0">
385
- <svg class="icon icon-sm" style="color:#6b7280;flex-shrink:0"><use href="#i-book"/></svg>
386
- <h4 style="font-weight:600;font-size:.875rem" class="truncate">${r.name}</h4>
387
- </div>
388
- <svg class="icon icon-sm" style="color:#4b5563;flex-shrink:0"><use href="#i-up-right"/></svg>
389
- </div>
390
- <p class="repo-desc">${r.desc||'No description'}</p>
391
- <div class="flex items-center justify-between" style="font-size:.75rem">
392
- <div class="flex items-center gap-3">
393
- ${r.lang?`<span class="flex items-center gap-1"><span class="lang-dot" style="background:${lc}"></span><span style="color:#9ca3af">${r.lang}</span></span>`:''}
394
- <span class="flex items-center gap-1" style="color:#6b7280"><svg class="icon icon-sm"><use href="#i-star"/></svg> ${r.stars}</span>
395
- </div>
396
- <span style="color:#4b5563">${r.date}</span>
397
- </div>`;
398
- grid.appendChild(el);
399
- });
400
  }
401
 
402
  // ===== TECH STACK =====
403
- const techs=[
404
- {name:'Machine Learning',icon:'brain',color:'#f59e0b'},
405
- {name:'Python',icon:'file',color:'#60a5fa'},
406
- {name:'PyTorch',icon:'flame',color:'#f97316'},
407
- {name:'TensorFlow',icon:'layout',color:'#34d399'},
408
- {name:'HF Transformers',icon:'db',color:'#c084fc'},
409
- {name:'Git',icon:'branch',color:'#22d3ee'},
410
- {name:'Docker',icon:'box',color:'#f472b6'},
411
- {name:'Cloud Services',icon:'cloud',color:'#818cf8'},
412
- ];
413
  const tp=document.getElementById('tech-pills');
414
- techs.forEach(t=>{
415
- const el=document.createElement('div');
416
- el.className='pill';
417
- el.onmouseover=function(){this.style.borderColor=t.color+'50'};
418
- el.onmouseout=function(){this.style.borderColor='rgba(255,255,255,.06)'};
419
- el.innerHTML=`<svg class="icon" style="color:${t.color}"><use href="#i-${t.icon}"/></svg><span>${t.name}</span>`;
420
- tp.appendChild(el);
421
- });
422
 
423
- // ===== RENDER HARDCODED DATA FIRST (instant) =====
424
  renderHfCards(FALLBACK_HF_MODELS,'hf-models','model','brain','#f59e0b');
425
  renderHfCards(FALLBACK_HF_SPACES,'hf-spaces','space','layout','#c084fc');
426
  renderHfCards(FALLBACK_HF_DATASETS,'hf-datasets','dataset','db','#34d399');
427
  renderGhRepos(FALLBACK_GH_REPOS);
428
 
429
- // ===== LIVE FETCH UPGRADES (when hosted on HF Space, these will work) =====
430
  (async()=>{
431
- try{
432
- const r=await fetch('https://api.github.com/users/Ary5272');
433
- if(!r.ok)return;
434
- const u=await r.json();
435
- if(u.name)document.getElementById('gh-name').textContent=u.name;
436
- if(u.bio)document.getElementById('gh-bio').textContent=u.bio;
437
- if(u.location)document.getElementById('gh-loc').textContent=u.location;
438
- if(u.public_repos){document.getElementById('gh-repos-n').textContent=u.public_repos;document.getElementById('s-repos').textContent=u.public_repos+'+';}
439
- if(u.followers)document.getElementById('gh-followers-n').textContent=u.followers;
440
- if(u.avatar_url){const img=document.getElementById('gh-avatar');if(img)img.src=u.avatar_url;}
441
- }catch(e){}
442
- try{
443
- const r=await fetch('https://api.github.com/users/Ary5272/repos?sort=updated&per_page=6');
444
- if(!r.ok)return;
445
- const repos=await r.json();
446
- renderGhRepos(repos.map(r=>({name:r.name,desc:r.description||'',lang:r.language||'',stars:r.stargazers_count,url:r.html_url,date:new Date(r.updated_at).toLocaleDateString('en-US',{month:'short',day:'numeric'})})));
447
- }catch(e){}
448
- try{
449
- const r=await fetch('https://huggingface.co/api/users/AIencoder/overview');
450
- if(!r.ok)return;
451
- const u=await r.json();
452
- if(u.fullname)document.getElementById('hf-name').textContent=u.fullname;
453
- if(u.numModels)document.getElementById('hf-n-models').textContent=u.numModels;
454
- if(u.numSpaces)document.getElementById('hf-n-spaces').textContent=u.numSpaces;
455
- if(u.numDatasets)document.getElementById('hf-n-datasets').textContent=u.numDatasets;
456
- if(u.numFollowers)document.getElementById('hf-n-followers').textContent=u.numFollowers;
457
- if(u.avatarUrl){const img=document.getElementById('hf-avatar');if(img)img.src='https://huggingface.co'+u.avatarUrl;}
458
- }catch(e){}
459
  })();
460
 
461
  // ===== MOBILE MENU =====
462
  document.getElementById('menu-btn').addEventListener('click',()=>document.getElementById('mobile-menu').classList.toggle('hidden'));
463
 
464
  // ===== SMOOTH SCROLL =====
465
- document.querySelectorAll('a[href^="#"]').forEach(a=>a.addEventListener('click',function(e){
466
- e.preventDefault();
467
- const t=document.querySelector(this.getAttribute('href'));
468
- if(t){t.scrollIntoView({behavior:'smooth',block:'start'});document.getElementById('mobile-menu').classList.add('hidden')}
469
- }));
470
 
471
  // ===== RESPONSIVE NAV =====
472
- function checkNav(){
473
- const w=window.innerWidth;
474
- document.getElementById('nav-links').style.display=w>=768?'flex':'none';
475
- document.getElementById('menu-btn').style.display=w<768?'block':'none';
476
- if(w>=768)document.getElementById('mobile-menu').classList.add('hidden');
477
- }
478
  window.addEventListener('resize',checkNav);checkNav();
479
  </script>
480
  </body>
 
1
  <!DOCTYPE html>
2
+ <html lang="en" data-theme="dark">
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
10
  <body>
11
  <div class="mesh-bg"></div>
12
  <div class="grid-bg"></div>
13
+ <div class="particles" id="particles"></div>
14
 
15
  <!-- SVG SPRITES -->
16
  <svg xmlns="http://www.w3.org/2000/svg" style="display:none">
 
28
  <symbol id="i-book" viewBox="0 0 24 24"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/></symbol>
29
  <symbol id="i-pin" viewBox="0 0 24 24"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/><circle cx="12" cy="10" r="3"/></symbol>
30
  <symbol id="i-link" viewBox="0 0 24 24"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></symbol>
 
31
  <symbol id="i-brain" viewBox="0 0 24 24"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"/><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"/><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"/></symbol>
32
  <symbol id="i-db" viewBox="0 0 24 24"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5V19A9 3 0 0 0 21 19V5"/><path d="M3 12A9 3 0 0 0 21 12"/></symbol>
33
  <symbol id="i-layout" viewBox="0 0 24 24"><rect width="18" height="18" x="3" y="3" rx="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="9" y1="21" x2="9" y2="9"/></symbol>
 
37
  <symbol id="i-cloud" viewBox="0 0 24 24"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/></symbol>
38
  <symbol id="i-download" viewBox="0 0 24 24"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></symbol>
39
  <symbol id="i-users" viewBox="0 0 24 24"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></symbol>
40
+ <symbol id="i-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></symbol>
41
+ <symbol id="i-moon" viewBox="0 0 24 24"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></symbol>
42
+ <symbol id="i-rocket" viewBox="0 0 24 24"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/><path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/></symbol>
43
+ <symbol id="i-zap" viewBox="0 0 24 24"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></symbol>
44
+ <symbol id="i-shield" viewBox="0 0 24 24"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></symbol>
45
+ <symbol id="i-activity" viewBox="0 0 24 24"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></symbol>
46
+ <symbol id="i-tool" viewBox="0 0 24 24"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></symbol>
47
+ <symbol id="i-merge" viewBox="0 0 24 24"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M6 21V9a9 9 0 0 0 9 9"/></symbol>
48
+ <symbol id="i-pen" viewBox="0 0 24 24"><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/><path d="m15 5 4 4"/></symbol>
49
+ <symbol id="i-calendar" viewBox="0 0 24 24"><rect width="18" height="18" x="3" y="4" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></symbol>
50
+ <symbol id="i-clock" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></symbol>
51
+ <symbol id="i-eye" viewBox="0 0 24 24"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></symbol>
52
  </svg>
53
 
54
  <!-- NAV -->
 
60
  </a>
61
  <div class="flex items-center gap-1 md-hide" id="nav-links">
62
  <a href="#home" class="nav-link">Home</a>
63
+ <a href="#projects" class="nav-link">Projects</a>
64
+ <a href="#huggingface" class="nav-link">HF</a>
65
  <a href="#github" class="nav-link">GitHub</a>
66
+ <a href="#blog" class="nav-link">Blog</a>
67
  <a href="#contact" class="nav-link">Contact</a>
68
  </div>
69
+ <div class="flex items-center gap-1">
70
+ <button class="theme-toggle" id="theme-toggle" title="Toggle theme">
71
+ <svg class="icon icon-md" id="theme-icon-sun" style="display:none"><use href="#i-sun"/></svg>
72
+ <svg class="icon icon-md" id="theme-icon-moon"><use href="#i-moon"/></svg>
73
+ </button>
74
+ <button id="menu-btn" class="md-show" style="display:none;padding:.5rem">
75
+ <svg class="icon icon-md"><use href="#i-menu"/></svg>
76
+ </button>
77
+ </div>
78
  </div>
79
  <div id="mobile-menu" class="mobile-menu hidden glass">
80
  <a href="#home">Home</a>
81
+ <a href="#projects">Projects</a>
82
  <a href="#huggingface">Hugging Face</a>
83
  <a href="#github">GitHub</a>
84
+ <a href="#blog">Blog</a>
85
  <a href="#contact">Contact</a>
86
  </div>
87
  </nav>
 
90
  <section id="home" style="min-height:100vh;display:flex;align-items:center;justify-content:center;padding-top:80px">
91
  <div class="container text-center">
92
  <div class="fade-up" style="animation-delay:.1s">
93
+ <span style="display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;border:1px solid rgba(74,222,128,.2);font-size:.875rem;color:var(--text-muted);background:var(--bg-card);margin-bottom:2rem">
94
  <span class="pulse" style="width:8px;height:8px;background:#4ade80;border-radius:50%;display:inline-block"></span>
95
  Available for Collaboration
96
  </span>
97
  </div>
98
  <h1 class="fade-up" style="animation-delay:.2s">
99
+ <span class="hero-title" style="display:block;font-size:clamp(2.5rem,8vw,5rem);font-weight:800;letter-spacing:-.02em">Hello, I'm</span>
100
  <span class="hero-sub mono cursor gradient-text" id="typewriter" style="display:block;font-size:clamp(2rem,6vw,4rem);font-weight:700;margin-top:.25rem"></span>
101
  </h1>
102
+ <p class="fade-up" style="animation-delay:.35s;font-size:clamp(1rem,2vw,1.25rem);color:var(--text-dim);max-width:600px;margin:2rem auto 3rem;line-height:1.7">
103
  Building the future with AI and code. Passionate about machine learning, open-source, and creating impactful solutions.
104
  </p>
105
  <div class="flex flex-wrap justify-center gap-3 fade-up" style="animation-delay:.5s">
 
110
  <svg class="icon"><use href="#i-github"/></svg> GitHub
111
  </a>
112
  </div>
 
113
  <div class="grid grid-4 gap-3 fade-up" style="animation-delay:.65s;max-width:700px;margin:5rem auto 0">
114
+ <div class="card glow-card stat"><div class="stat-icon" style="color:#c084fc"><svg class="icon icon-lg"><use href="#i-cpu"/></svg></div><div class="stat-num">15+</div><div class="stat-label">AI Models</div></div>
115
+ <div class="card glow-card stat"><div class="stat-icon" style="color:#60a5fa"><svg class="icon icon-lg"><use href="#i-branch"/></svg></div><div class="stat-num" id="s-repos">5+</div><div class="stat-label">Repositories</div></div>
116
+ <div class="card glow-card stat"><div class="stat-icon" style="color:#34d399"><svg class="icon icon-lg"><use href="#i-code"/></svg></div><div class="stat-num">10K+</div><div class="stat-label">Lines of Code</div></div>
117
+ <div class="card glow-card stat"><div class="stat-icon" style="color:#f472b6"><svg class="icon icon-lg"><use href="#i-heart"/></svg></div><div class="stat-num">500+</div><div class="stat-label">Contributions</div></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  </div>
119
  </div>
120
  </section>
 
122
  <!-- CODE SHOWCASE -->
123
  <section class="section">
124
  <div class="container-sm">
125
+ <div class="code-win reveal" style="box-shadow:0 24px 48px rgba(168,85,247,.05)">
126
  <div class="code-head">
127
  <div class="code-dot" style="background:rgba(239,68,68,.8)"></div>
128
  <div class="code-dot" style="background:rgba(234,179,8,.8)"></div>
129
  <div class="code-dot" style="background:rgba(34,197,94,.8)"></div>
130
+ <span class="mono" style="margin-left:1rem;color:var(--text-dim);font-size:.75rem">developer_profile.py</span>
131
  </div>
132
  <div class="code-body">
133
  <div class="c-gray2"># Define the developer profile</div>
 
135
  <div style="padding-left:1.5rem"><span class="c-purple">def</span> <span class="c-blue">__init__</span><span class="c-gray">(</span><span class="c-orange">self</span><span class="c-gray">):</span></div>
136
  <div style="padding-left:2.5rem"><span class="c-orange">self</span><span class="c-gray">.</span>name <span class="c-gray">=</span> <span class="c-green">"AIencoder"</span></div>
137
  <div style="padding-left:2.5rem"><span class="c-orange">self</span><span class="c-gray">.</span>role <span class="c-gray">=</span> <span class="c-green">"AI/ML Engineer &amp; Developer"</span></div>
138
+ <div style="padding-left:2.5rem"><span class="c-orange">self</span><span class="c-gray">.</span>passion <span class="c-gray">=</span> <span class="c-green">"Building tools that matter"</span></div>
 
 
 
139
  <div style="padding-left:1.5rem;margin-top:.75rem"><span class="c-purple">def</span> <span class="c-blue">create_impact</span><span class="c-gray">(</span><span class="c-orange">self</span><span class="c-gray">):</span></div>
140
  <div style="padding-left:2.5rem"><span class="c-purple">return</span> <span class="c-green">"Transforming ideas into reality"</span></div>
 
 
 
 
141
  </div>
142
  </div>
143
  </div>
144
  </section>
145
 
146
+ <!-- PROJECTS -->
147
+ <section id="projects" class="section section-alt">
148
+ <div class="container">
149
+ <div class="text-center reveal" style="margin-bottom:4rem">
150
+ <h2 class="section-title" style="margin-bottom:.75rem">Featured Projects</h2>
151
+ <p style="color:var(--text-dim);max-width:500px;margin:0 auto">Flagship projects I've built — from AI coding assistants to medical imaging tools</p>
152
+ </div>
153
+ <div style="display:flex;flex-direction:column;gap:2rem" id="projects-grid">
154
+ <!-- Rendered by JS -->
155
+ </div>
156
+ </div>
157
+ </section>
158
+
159
  <!-- HUGGING FACE -->
160
  <section id="huggingface" class="section">
161
  <div class="container">
162
+ <div class="flex items-center justify-between reveal" style="margin-bottom:3rem">
163
  <div class="flex items-center gap-3">
164
+ <div class="section-icon" style="background:rgba(245,158,11,.1);color:#f59e0b"><svg class="icon icon-md"><use href="#i-smile"/></svg></div>
165
+ <div><h2 class="section-title">Hugging Face</h2><p style="color:var(--text-dim);font-size:.875rem;margin-top:.25rem">AI models, spaces, and datasets</p></div>
 
 
 
 
 
166
  </div>
167
+ <a href="https://huggingface.co/AIencoder" target="_blank" rel="noopener noreferrer" class="flex items-center gap-1 md-hide" style="color:#f59e0b;font-size:.875rem;font-weight:500">View Profile <svg class="icon icon-sm"><use href="#i-up-right"/></svg></a>
 
 
168
  </div>
169
+ <!-- HF Profile -->
170
+ <div class="card glow-card card-amber reveal" style="padding:2rem;margin-bottom:2.5rem">
 
171
  <div class="flex gap-5 profile-wrap" style="align-items:center">
172
  <img id="hf-avatar" src="https://huggingface.co/avatars/46a0d6090e169c088fc1a64d4b8d993c.svg" alt="" class="profile-avatar profile-avatar-hf" onerror="this.outerHTML='<div class=\'profile-avatar profile-avatar-hf profile-avatar-fallback hf\'>A</div>'">
173
  <div style="flex:1;min-width:200px">
174
  <h3 style="font-size:1.25rem;font-weight:700" id="hf-name">Aryan Nukala</h3>
175
+ <p style="color:var(--text-dim);font-size:.875rem">@AIencoder</p>
176
+ <p style="color:var(--text-muted);font-size:.875rem;margin-top:.5rem">AI/ML Engineer building intelligent systems</p>
177
  </div>
178
  <div class="flex gap-2 flex-wrap profile-stats">
179
  <div class="profile-stat amber"><div class="profile-stat-num" style="color:#f59e0b" id="hf-n-models">7</div><div class="profile-stat-label">Models</div></div>
 
183
  </div>
184
  </div>
185
  </div>
186
+ <h3 class="flex items-center gap-2 section-subtitle reveal" style="color:#f59e0b"><svg class="icon icon-sm"><use href="#i-brain"/></svg> Models</h3>
187
+ <div class="grid grid-3 gap-4 reveal" style="margin-bottom:2.5rem" id="hf-models"></div>
188
+ <h3 class="flex items-center gap-2 section-subtitle reveal" style="color:#c084fc"><svg class="icon icon-sm"><use href="#i-layout"/></svg> Spaces</h3>
189
+ <div class="grid grid-3 gap-4 reveal" style="margin-bottom:2.5rem" id="hf-spaces"></div>
190
+ <h3 class="flex items-center gap-2 section-subtitle reveal" style="color:#34d399"><svg class="icon icon-sm"><use href="#i-db"/></svg> Datasets</h3>
191
+ <div class="grid grid-3 gap-4 reveal" id="hf-datasets"></div>
 
 
 
 
 
 
 
 
 
 
 
 
192
  </div>
193
  </section>
194
 
195
  <!-- GITHUB -->
196
+ <section id="github" class="section section-alt">
197
  <div class="container">
198
+ <div class="flex items-center justify-between reveal" style="margin-bottom:3rem">
199
  <div class="flex items-center gap-3">
200
+ <div class="section-icon" style="background:rgba(255,255,255,.05);color:var(--text)"><svg class="icon icon-md"><use href="#i-github"/></svg></div>
201
+ <div><h2 class="section-title">GitHub</h2><p style="color:var(--text-dim);font-size:.875rem;margin-top:.25rem">Open source projects and contributions</p></div>
 
 
 
 
 
202
  </div>
203
+ <a href="https://github.com/Ary5272" target="_blank" rel="noopener noreferrer" class="flex items-center gap-1 md-hide" style="color:var(--text-muted);font-size:.875rem;font-weight:500">View Profile <svg class="icon icon-sm"><use href="#i-up-right"/></svg></a>
 
 
204
  </div>
205
+ <div class="card glow-card reveal" style="padding:2rem;margin-bottom:2rem">
 
 
206
  <div class="flex gap-5 profile-wrap" style="align-items:center">
207
  <img id="gh-avatar" src="https://avatars.githubusercontent.com/u/215576213?v=4" alt="" class="profile-avatar profile-avatar-gh" onerror="this.outerHTML='<div class=\'profile-avatar profile-avatar-gh profile-avatar-fallback gh\'>A</div>'">
208
  <div style="flex:1;min-width:200px">
209
  <h3 style="font-size:1.25rem;font-weight:700" id="gh-name">Aryan Nukala</h3>
210
+ <p style="color:var(--text-dim);font-size:.875rem" id="gh-user">@Ary5272</p>
211
+ <p style="color:var(--text-muted);font-size:.875rem;margin-top:.5rem" id="gh-bio">AI/ML Developer</p>
 
 
 
212
  </div>
213
  <div class="flex gap-2 profile-stats">
214
  <div class="profile-stat"><div class="profile-stat-num" style="color:#c084fc" id="gh-repos-n">5</div><div class="profile-stat-label">Repos</div></div>
 
216
  </div>
217
  </div>
218
  </div>
219
+ <h3 class="flex items-center gap-2 section-subtitle reveal" style="color:var(--text-muted)"><svg class="icon icon-sm"><use href="#i-book"/></svg> Latest Repositories</h3>
220
+ <div class="grid grid-3 gap-4 reveal" id="gh-grid"></div>
221
+ </div>
222
+ </section>
223
 
224
+ <!-- BLOG -->
225
+ <section id="blog" class="section">
226
+ <div class="container">
227
+ <div class="text-center reveal" style="margin-bottom:4rem">
228
+ <h2 class="section-title" style="margin-bottom:.75rem">Blog & Insights</h2>
229
+ <p style="color:var(--text-dim);max-width:500px;margin:0 auto">Thoughts on AI development, model optimization, and open-source tooling</p>
230
+ </div>
231
+ <div class="grid grid-3 gap-4" id="blog-grid"></div>
232
  </div>
233
  </section>
234
 
235
  <!-- TECH STACK -->
236
+ <section class="section section-alt">
237
  <div class="container-sm text-center">
238
+ <h2 class="section-title reveal" style="margin-bottom:.75rem">Tech Stack</h2>
239
+ <p class="reveal" style="color:var(--text-dim);margin-bottom:3rem">Technologies I work with</p>
240
+ <div class="flex flex-wrap justify-center gap-2 reveal" id="tech-pills"></div>
241
  </div>
242
  </section>
243
 
244
  <!-- CONTACT -->
245
+ <section id="contact" class="section">
246
  <div class="container-xs text-center">
247
+ <h2 class="section-title reveal" style="margin-bottom:.75rem">Let's Connect</h2>
248
+ <p class="reveal" style="color:var(--text-dim);margin-bottom:3rem">Interested in collaborating or have a question? Let's chat!</p>
249
+ <div class="grid grid-2 gap-4 reveal" style="max-width:420px;margin:0 auto">
250
  <a href="https://huggingface.co/AIencoder" target="_blank" rel="noopener noreferrer" class="card glow-card card-amber text-center" style="padding:1.5rem">
251
+ <div style="width:48px;height:48px;background:rgba(245,158,11,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;color:#f59e0b;font-size:1.5rem"><svg class="icon icon-lg"><use href="#i-smile"/></svg></div>
 
 
252
  <h3 style="font-weight:600;margin-bottom:.25rem">Hugging Face</h3>
253
+ <p style="color:var(--text-dim);font-size:.875rem">@AIencoder</p>
254
  </a>
255
  <a href="https://github.com/Ary5272" target="_blank" rel="noopener noreferrer" class="card glow-card text-center" style="padding:1.5rem">
256
+ <div style="width:48px;height:48px;background:var(--bg-card-hover);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;font-size:1.5rem"><svg class="icon icon-lg"><use href="#i-github"/></svg></div>
 
 
257
  <h3 style="font-weight:600;margin-bottom:.25rem">GitHub</h3>
258
+ <p style="color:var(--text-dim);font-size:.875rem">@Ary5272</p>
259
  </a>
260
  </div>
261
  </div>
262
  </section>
263
 
264
  <!-- FOOTER -->
265
+ <footer style="padding:2rem 0;border-top:1px solid var(--border)">
266
  <div class="container flex items-center justify-between" style="flex-wrap:wrap;gap:1rem">
267
  <div class="flex items-center gap-1">
268
  <svg class="icon" style="color:#c084fc"><use href="#i-terminal"/></svg>
269
  <span class="mono gradient-text" style="font-weight:700;font-size:.875rem">AIencoder</span>
270
  </div>
271
+ <div class="flex items-center gap-3">
272
+ <div class="visitor-badge">
273
+ <span class="visitor-dot"></span>
274
+ <svg class="icon icon-sm"><use href="#i-eye"/></svg>
275
+ <span id="visitor-count">—</span> visits
276
+ </div>
277
+ <p style="color:var(--text-faint);font-size:.75rem">Built with passion and code</p>
278
+ </div>
279
  <div class="flex gap-1">
280
+ <a href="https://huggingface.co/AIencoder" target="_blank" rel="noopener noreferrer" style="color:var(--text-faint);padding:.5rem;transition:color .2s" onmouseover="this.style.color='#f59e0b'" onmouseout="this.style.color=''"><svg class="icon"><use href="#i-smile"/></svg></a>
281
+ <a href="https://github.com/Ary5272" target="_blank" rel="noopener noreferrer" style="color:var(--text-faint);padding:.5rem;transition:color .2s" onmouseover="this.style.color='#c084fc'" onmouseout="this.style.color=''"><svg class="icon"><use href="#i-github"/></svg></a>
 
 
 
 
282
  </div>
283
  </div>
284
  </footer>
 
288
  const words=['AIencoder','A Developer','An ML Engineer','A Builder'];
289
  let wi=0,ci=0,del=false;
290
  const tw=document.getElementById('typewriter');
291
+ function type(){const w=words[wi];tw.textContent=del?w.substring(0,--ci):w.substring(0,++ci);let s=del?40:80;if(!del&&ci===w.length){s=2500;del=true}else if(del&&ci===0){del=false;wi=(wi+1)%words.length;s=400}setTimeout(type,s)}
 
 
 
 
 
 
 
292
  type();
293
 
294
+ // ===== THEME TOGGLE =====
295
+ const html=document.documentElement;
296
+ const themeBtn=document.getElementById('theme-toggle');
297
+ const sunIcon=document.getElementById('theme-icon-sun');
298
+ const moonIcon=document.getElementById('theme-icon-moon');
299
+ function setTheme(t){html.setAttribute('data-theme',t);localStorage.setItem('theme',t);sunIcon.style.display=t==='light'?'none':'inline-block';moonIcon.style.display=t==='light'?'inline-block':'none'}
300
+ themeBtn.addEventListener('click',()=>setTheme(html.getAttribute('data-theme')==='dark'?'light':'dark'));
301
+ setTheme(localStorage.getItem('theme')||'dark');
302
+
303
+ // ===== FLOATING PARTICLES =====
304
+ const particleContainer=document.getElementById('particles');
305
+ const colors=['#a855f7','#ec4899','#f59e0b','#60a5fa','#34d399'];
306
+ for(let i=0;i<20;i++){const p=document.createElement('div');p.className='particle';const s=Math.random()*4+2;p.style.cssText=`width:${s}px;height:${s}px;left:${Math.random()*100}%;background:${colors[i%colors.length]};animation-duration:${Math.random()*20+15}s;animation-delay:${Math.random()*10}s;opacity:${Math.random()*.3+.1}`;particleContainer.appendChild(p)}
307
+
308
+ // ===== SCROLL REVEAL =====
309
+ const revealObserver=new IntersectionObserver((entries)=>{entries.forEach(e=>{if(e.isIntersecting){e.target.classList.add('visible');revealObserver.unobserve(e.target)}})},{threshold:.1,rootMargin:'0px 0px -50px 0px'});
310
+ document.querySelectorAll('.reveal').forEach(el=>revealObserver.observe(el));
311
+
312
+ // ===== VISITOR COUNTER (localStorage-based) =====
313
+ let visits=parseInt(localStorage.getItem('portfolio_visits')||'0')+1;
314
+ localStorage.setItem('portfolio_visits',visits);
315
+ document.getElementById('visitor-count').textContent=visits.toLocaleString();
316
+
317
+ // ===== PROJECTS =====
318
+ const projects=[
319
+ {
320
+ name:'Axon',emoji:'🔥',
321
+ tagline:'Free AI Coding Assistant — 25 Tools, 100% Local',
322
+ desc:'A comprehensive AI coding assistant that runs entirely locally using llama.cpp. Features 5 optimized models (up to 30B parameters), 25 coding tools including code generation, debugging, security scanning, SQL/Shell/API builders, and voice input. Uses custom AVX2-optimized wheels for 2-3x faster inference.',
323
+ tags:['llama.cpp','Gradio','Docker','Python'],
324
+ color:'#f59e0b',bg:'linear-gradient(135deg,#1a1000,#2d1800)',
325
+ links:[{label:'Try it',url:'https://huggingface.co/spaces/AIencoder/Axon',icon:'i-rocket'},{label:'Code',url:'https://github.com/Ary5272/llama-cpp-python',icon:'i-github'}],
326
+ featured:true,
327
+ stats:['25 Tools','5 Models','100% Local']
328
+ },
329
+ {
330
+ name:'RadAssist-MedGemma',emoji:'🏥',
331
+ tagline:'AI Radiology Triage Assistant',
332
+ desc:'A 3-step agentic radiology pipeline built for the MedGemma Impact Challenge. Uses MedGemma 1.5 4B to classify chest X-ray severity, extract systematic findings using the ABCDE approach, and generate ACR-formatted radiology reports — all on a single GPU with 4-bit quantization.',
333
+ tags:['MedGemma','PyTorch','Medical AI','HuggingFace'],
334
+ color:'#60a5fa',bg:'linear-gradient(135deg,#001a2e,#002244)',
335
+ links:[{label:'Demo',url:'https://huggingface.co/spaces/AIencoder/RadAssist-MedGemma',icon:'i-layout'},{label:'Notebook',url:'https://www.kaggle.com/code/ary5272/radassist-medgemma-ai-radiology-triage-assistant',icon:'i-file'}],
336
+ featured:true,
337
+ stats:['3-Step Pipeline','4B Params','Edge AI']
338
+ },
339
+ {
340
+ name:'Wheel Factory',emoji:'🏭',
341
+ tagline:'Automated llama-cpp-python Wheel Builder',
342
+ desc:'A Gradio-based automation system for building llama-cpp-python wheels across multiple Python versions (3.10-3.13) with AVX2 optimization. Solves the pain of finding compatible pre-built wheels for Debian/Ubuntu deployments. Wheels published to a public HuggingFace dataset.',
343
+ tags:['Python','C++','CI/CD','HuggingFace'],
344
+ color:'#34d399',bg:'linear-gradient(135deg,#001a0f,#002a18)',
345
+ links:[{label:'Space',url:'https://huggingface.co/spaces/AIencoder/llama-wheel-factory',icon:'i-layout'},{label:'Wheels',url:'https://huggingface.co/datasets/AIencoder/llama-cpp-wheels',icon:'i-download'}],
346
+ stats:['4 Python Versions','AVX2 Optimized','153+ Downloads']
347
+ },
348
+ {
349
+ name:'Merge Config Generator',emoji:'🔀',
350
+ tagline:'Visual Model Merging Tool',
351
+ desc:'A web UI for creating LazyMergeKit merge configurations. Checks model architecture compatibility, supports DARE-TIES/SLERP/Linear methods, provides weight presets, and generates ready-to-use YAML configs for merging LLMs on Google Colab.',
352
+ tags:['Gradio','HuggingFace Hub','YAML','Model Merging'],
353
+ color:'#c084fc',bg:'linear-gradient(135deg,#1a0033,#2a0052)',
354
+ links:[{label:'Try it',url:'https://huggingface.co/spaces/AIencoder/merge-config-generator',icon:'i-rocket'}],
355
+ stats:['Arch Checking','Multiple Methods','1-Click Config']
356
+ }
357
  ];
358
+ const projectsGrid=document.getElementById('projects-grid');
359
+ projects.forEach(p=>{
360
+ const card=document.createElement('div');
361
+ card.className='project-card glow-card reveal';
362
+ card.innerHTML=`
363
+ <div class="project-card-inner" style="display:flex">
364
+ <div class="project-img" style="background:${p.bg}">
365
+ ${p.featured?'<span class="project-featured">Featured</span>':''}
366
+ <span style="position:relative;z-index:1">${p.emoji}</span>
367
+ </div>
368
+ <div class="project-body">
369
+ <h3 style="font-size:1.25rem;font-weight:700;margin-bottom:.25rem">${p.name}</h3>
370
+ <p style="color:${p.color};font-size:.875rem;font-weight:500;margin-bottom:.75rem">${p.tagline}</p>
371
+ <p style="color:var(--text-dim);font-size:.8125rem;line-height:1.7;margin-bottom:1rem">${p.desc}</p>
372
+ <div class="flex flex-wrap gap-1" style="margin-bottom:1rem">
373
+ ${p.stats.map(s=>`<span style="padding:.25rem .75rem;border-radius:9999px;font-size:.625rem;font-weight:600;background:${p.color}15;color:${p.color};border:1px solid ${p.color}25">${s}</span>`).join('')}
374
+ </div>
375
+ <div class="flex flex-wrap gap-1" style="margin-bottom:1.25rem">
376
+ ${p.tags.map(t=>`<span style="padding:.2rem .6rem;border-radius:9999px;font-size:.625rem;color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border)">${t}</span>`).join('')}
377
+ </div>
378
+ <div class="flex gap-2">
379
+ ${p.links.map(l=>`<a href="${l.url}" target="_blank" rel="noopener noreferrer" class="btn btn-sm btn-ghost"><svg class="icon icon-sm"><use href="#${l.icon}"/></svg>${l.label}</a>`).join('')}
380
+ </div>
381
+ </div>
382
+ </div>`;
383
+ projectsGrid.appendChild(card);
384
+ revealObserver.observe(card);
385
+ });
386
+
387
+ // ===== BLOG POSTS =====
388
+ const blogPosts=[
389
+ {
390
+ title:'Building a Local AI Coding Assistant from Scratch',
391
+ excerpt:'How I built Axon — a free, 100% local AI coding assistant with 25 tools and custom AVX2-optimized inference. The journey from broken wheels to 2-3x speedups.',
392
+ date:'Jan 2026',readTime:'8 min',
393
+ tags:['llama.cpp','Local AI','Tutorial'],
394
+ color:'#f59e0b',bg:'linear-gradient(135deg,#2d1800,#1a1000)',icon:'i-zap'
395
+ },
396
+ {
397
+ title:'Model Merging: Combining Coding & Math LLMs',
398
+ excerpt:'A deep dive into merging Qwen2.5-Coder and Qwen2.5-Math using DARE-TIES to create a model that excels at both — architecture compatibility, weight tuning, and results.',
399
+ date:'Feb 2026',readTime:'6 min',
400
+ tags:['Model Merging','DARE-TIES','Qwen'],
401
+ color:'#c084fc',bg:'linear-gradient(135deg,#1a0033,#2a0052)',icon:'i-merge'
402
+ },
403
+ {
404
+ title:'MedGemma for Radiology: Building an AI Triage Agent',
405
+ excerpt:'How I used MedGemma 1.5 4B to build a 3-step agentic pipeline for chest X-ray analysis — from severity classification to structured radiology reports.',
406
+ date:'Feb 2026',readTime:'10 min',
407
+ tags:['Medical AI','MedGemma','Agents'],
408
+ color:'#60a5fa',bg:'linear-gradient(135deg,#001a2e,#002244)',icon:'i-activity'
409
+ }
410
  ];
411
+ const blogGrid=document.getElementById('blog-grid');
412
+ blogPosts.forEach(post=>{
413
+ const el=document.createElement('div');
414
+ el.className='blog-card glow-card reveal';
415
+ el.innerHTML=`
416
+ <div class="blog-header" style="background:${post.bg}">
417
+ <svg class="icon" style="font-size:2.5rem;color:${post.color};position:relative;z-index:1;opacity:.8"><use href="#${post.icon}"/></svg>
418
+ </div>
419
+ <div class="blog-body">
420
+ <div class="blog-meta">
421
+ <span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-calendar"/></svg>${post.date}</span>
422
+ <span class="blog-dot"></span>
423
+ <span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-clock"/></svg>${post.readTime}</span>
424
+ </div>
425
+ <h3 style="font-size:1rem;font-weight:700;margin-bottom:.5rem;line-height:1.4">${post.title}</h3>
426
+ <p style="font-size:.8125rem;color:var(--text-dim);line-height:1.6;margin-bottom:1rem">${post.excerpt}</p>
427
+ <div class="flex flex-wrap gap-1">
428
+ ${post.tags.map(t=>`<span style="padding:.2rem .6rem;border-radius:9999px;font-size:.625rem;color:${post.color};background:${post.color}10;border:1px solid ${post.color}20">${t}</span>`).join('')}
429
+ </div>
430
+ </div>`;
431
+ blogGrid.appendChild(el);
432
+ revealObserver.observe(el);
433
+ });
434
+
435
+ // ===== HF DATA =====
436
+ const FALLBACK_HF_MODELS=[{id:'AIencoder/Logic-Coder-7B',downloads:95,likes:1},{id:'AIencoder/Hermes-2-Pro-Mistral-7B-GodCoder',downloads:15,likes:1},{id:'AIencoder/Logic-Coder-7B-Q4_K_M-GGUF',downloads:52,likes:0},{id:'AIencoder/HermesMath-7B-TIES',downloads:17,likes:1},{id:'AIencoder/Llama3-CodeInstruct-8B',downloads:11,likes:0},{id:'AIencoder/Axon26-Coder',downloads:23,likes:0}];
437
+ const FALLBACK_HF_SPACES=[{id:'AIencoder/AXON-TRINITY',sdk:'Gradio',likes:0},{id:'AIencoder/Axon',sdk:'Docker',likes:3},{id:'AIencoder/llama-wheel-factory',sdk:'Docker',likes:0},{id:'AIencoder/merge-config-generator',sdk:'Gradio',likes:0},{id:'AIencoder/Prompt-Template-Tester',sdk:'Gradio',likes:0},{id:'AIencoder/Axon-Llama-GUI',sdk:'Docker',likes:0}];
438
+ const FALLBACK_HF_DATASETS=[{id:'AIencoder/llama-cpp-wheels',downloads:153,likes:1}];
439
+ const FALLBACK_GH_REPOS=[{name:'llama-cpp-python',desc:'Python bindings for llama.cpp',lang:'Python',stars:0,url:'https://github.com/Ary5272/llama-cpp-python',date:'Jan 25'},{name:'llama.cpp',desc:'LLM inference in C/C++',lang:'C++',stars:0,url:'https://github.com/Ary5272/llama.cpp',date:'Jan 25'},{name:'llama.cpp-Dockerfile',desc:'Dockerfile for llama.cpp',lang:'Dockerfile',stars:0,url:'https://github.com/Ary5272/llama.cpp-Dockerfile',date:'Jan 25'},{name:'Ary5272',desc:'Config files for my GitHub profile.',lang:'',stars:1,url:'https://github.com/Ary5272/Ary5272',date:'Jan 24'},{name:'tutor-app-final',desc:'Tutor application',lang:'HTML',stars:1,url:'https://github.com/Ary5272/tutor-app-final',date:'Jan 21'}];
440
 
 
441
  const LANG_COLORS={Python:'#3572A5','C++':'#f34b7d',Dockerfile:'#384d54',HTML:'#e34c26',JavaScript:'#f1e05a'};
442
 
443
  function renderHfCards(items,containerId,type,icon,color){
444
  const grid=document.getElementById(containerId);
445
  const base=type==='model'?'https://huggingface.co/':type==='space'?'https://huggingface.co/spaces/':'https://huggingface.co/datasets/';
446
+ items.forEach(m=>{const name=m.id.split('/')[1];const el=document.createElement('a');el.href=base+m.id;el.target='_blank';el.rel='noopener noreferrer';el.className='card glow-card card-amber';el.innerHTML=`<div class="flex items-center justify-between" style="margin-bottom:.75rem"><div style="width:40px;height:40px;background:${color}15;border-radius:12px;display:flex;align-items:center;justify-content:center;color:${color};font-size:1.25rem"><svg class="icon icon-md"><use href="#i-${icon}"/></svg></div><div class="flex items-center gap-3" style="font-size:.75rem;color:var(--text-dim)">${m.downloads!==undefined?`<span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-download"/></svg> ${m.downloads}</span>`:''} ${m.sdk?`<span style="background:var(--bg-card-hover);padding:.125rem .5rem;border-radius:9999px;font-size:.625rem">${m.sdk}</span>`:''}<span class="flex items-center gap-1"><svg class="icon icon-sm"><use href="#i-heart"/></svg> ${m.likes}</span></div></div><h4 style="font-weight:600;font-size:.875rem;margin-bottom:.25rem" class="truncate">${name}</h4><div style="margin-top:.75rem;display:flex;align-items:center;gap:.375rem;color:${color};font-size:.75rem;font-weight:500">Explore <svg class="icon icon-sm"><use href="#i-right"/></svg></div>`;grid.appendChild(el)});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
447
  }
 
448
  function renderGhRepos(repos){
449
+ const grid=document.getElementById('gh-grid');grid.innerHTML='';
450
+ repos.forEach(r=>{const el=document.createElement('a');el.href=r.url;el.target='_blank';el.rel='noopener noreferrer';el.className='card glow-card card-purple';const lc=LANG_COLORS[r.lang]||'#8b8b8b';el.innerHTML=`<div class="flex items-center justify-between" style="margin-bottom:.75rem"><div class="flex items-center gap-2" style="min-width:0"><svg class="icon icon-sm" style="color:var(--text-dim);flex-shrink:0"><use href="#i-book"/></svg><h4 style="font-weight:600;font-size:.875rem" class="truncate">${r.name}</h4></div><svg class="icon icon-sm" style="color:var(--text-faint);flex-shrink:0"><use href="#i-up-right"/></svg></div><p class="repo-desc">${r.desc||'No description'}</p><div class="flex items-center justify-between" style="font-size:.75rem"><div class="flex items-center gap-3">${r.lang?`<span class="flex items-center gap-1"><span class="lang-dot" style="background:${lc}"></span><span style="color:var(--text-muted)">${r.lang}</span></span>`:''}<span class="flex items-center gap-1" style="color:var(--text-dim)"><svg class="icon icon-sm"><use href="#i-star"/></svg> ${r.stars}</span></div><span style="color:var(--text-faint)">${r.date}</span></div>`;grid.appendChild(el)});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
  }
452
 
453
  // ===== TECH STACK =====
454
+ const techs=[{name:'Machine Learning',icon:'brain',color:'#f59e0b'},{name:'Python',icon:'file',color:'#60a5fa'},{name:'PyTorch',icon:'flame',color:'#f97316'},{name:'TensorFlow',icon:'layout',color:'#34d399'},{name:'HF Transformers',icon:'db',color:'#c084fc'},{name:'Git',icon:'branch',color:'#22d3ee'},{name:'Docker',icon:'box',color:'#f472b6'},{name:'Cloud Services',icon:'cloud',color:'#818cf8'}];
 
 
 
 
 
 
 
 
 
455
  const tp=document.getElementById('tech-pills');
456
+ techs.forEach(t=>{const el=document.createElement('div');el.className='pill';el.onmouseover=function(){this.style.borderColor=t.color+'50'};el.onmouseout=function(){this.style.borderColor=''};el.innerHTML=`<svg class="icon" style="color:${t.color}"><use href="#i-${t.icon}"/></svg><span>${t.name}</span>`;tp.appendChild(el)});
 
 
 
 
 
 
 
457
 
458
+ // ===== RENDER FALLBACK DATA =====
459
  renderHfCards(FALLBACK_HF_MODELS,'hf-models','model','brain','#f59e0b');
460
  renderHfCards(FALLBACK_HF_SPACES,'hf-spaces','space','layout','#c084fc');
461
  renderHfCards(FALLBACK_HF_DATASETS,'hf-datasets','dataset','db','#34d399');
462
  renderGhRepos(FALLBACK_GH_REPOS);
463
 
464
+ // ===== LIVE FETCH UPGRADES =====
465
  (async()=>{
466
+ try{const r=await fetch('https://api.github.com/users/Ary5272');if(!r.ok)return;const u=await r.json();if(u.name)document.getElementById('gh-name').textContent=u.name;if(u.bio)document.getElementById('gh-bio').textContent=u.bio;if(u.public_repos){document.getElementById('gh-repos-n').textContent=u.public_repos;document.getElementById('s-repos').textContent=u.public_repos+'+'}if(u.followers)document.getElementById('gh-followers-n').textContent=u.followers;if(u.avatar_url){const img=document.getElementById('gh-avatar');if(img&&img.tagName==='IMG')img.src=u.avatar_url}}catch(e){}
467
+ try{const r=await fetch('https://api.github.com/users/Ary5272/repos?sort=updated&per_page=6');if(!r.ok)return;const repos=await r.json();renderGhRepos(repos.map(r=>({name:r.name,desc:r.description||'',lang:r.language||'',stars:r.stargazers_count,url:r.html_url,date:new Date(r.updated_at).toLocaleDateString('en-US',{month:'short',day:'numeric'})})))}catch(e){}
468
+ try{const r=await fetch('https://huggingface.co/api/users/AIencoder/overview');if(!r.ok)return;const u=await r.json();if(u.fullname)document.getElementById('hf-name').textContent=u.fullname;if(u.numModels)document.getElementById('hf-n-models').textContent=u.numModels;if(u.numSpaces)document.getElementById('hf-n-spaces').textContent=u.numSpaces;if(u.numDatasets)document.getElementById('hf-n-datasets').textContent=u.numDatasets;if(u.numFollowers)document.getElementById('hf-n-followers').textContent=u.numFollowers;if(u.avatarUrl){const img=document.getElementById('hf-avatar');if(img&&img.tagName==='IMG')img.src='https://huggingface.co'+u.avatarUrl}}catch(e){}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
469
  })();
470
 
471
  // ===== MOBILE MENU =====
472
  document.getElementById('menu-btn').addEventListener('click',()=>document.getElementById('mobile-menu').classList.toggle('hidden'));
473
 
474
  // ===== SMOOTH SCROLL =====
475
+ document.querySelectorAll('a[href^="#"]').forEach(a=>a.addEventListener('click',function(e){e.preventDefault();const t=document.querySelector(this.getAttribute('href'));if(t){t.scrollIntoView({behavior:'smooth',block:'start'});document.getElementById('mobile-menu').classList.add('hidden')}}));
 
 
 
 
476
 
477
  // ===== RESPONSIVE NAV =====
478
+ function checkNav(){const w=window.innerWidth;document.getElementById('nav-links').style.display=w>=768?'flex':'none';document.getElementById('menu-btn').style.display=w<768?'block':'none';if(w>=768)document.getElementById('mobile-menu').classList.add('hidden')}
 
 
 
 
 
479
  window.addEventListener('resize',checkNav);checkNav();
480
  </script>
481
  </body>