Skip to content

Commit efcdd07

Browse files
authored
Update index.html
1 parent 0117938 commit efcdd07

1 file changed

Lines changed: 32 additions & 28 deletions

File tree

index.html

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,17 @@
7575

7676
section { min-height: 100vh; padding: 140px 6% 80px; display: flex; flex-direction: column; justify-content: center; position: relative; }
7777
.container { width: 100%; max-width: 1100px; margin: 0 auto; }
78-
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
78+
79+
.project-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
7980

8081
.glass-card { background: var(--glass); border: 1px solid var(--glass-border); padding: 50px 40px; border-radius: var(--radius); backdrop-filter: blur(10px); }
8182
.tab-item h4 { color: var(--terminal); font-size: 1.2rem; margin-bottom: 12px; font-family: 'Space Grotesk'; }
8283
.tab-item p { color: var(--text-sub); line-height: 1.7; font-size: 0.95rem; }
8384

84-
.tech-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 24px; }
85+
.scope-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
86+
87+
.tech-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
88+
8589
.tech-item {
8690
background: var(--glass); border: 1px solid var(--glass-border);
8791
padding: 45px 25px; border-radius: 28px; text-align: center;
@@ -110,11 +114,20 @@
110114

111115
footer { padding: 80px 0; text-align: center; color: var(--text-sub); font-size: 0.65rem; letter-spacing: 6px; text-transform: uppercase; }
112116

117+
@media (max-width: 1024px) {
118+
.scope-grid { grid-template-columns: repeat(2, 1fr); }
119+
.tech-grid { grid-template-columns: repeat(3, 1fr); }
120+
.project-grid { grid-template-columns: repeat(2, 1fr); }
121+
}
122+
113123
@media (max-width: 768px) {
114124
.nav-container { padding: 0 4%; }
115125
.nav-item { font-size: 0.6rem; gap: 10px; }
116126
.nav-item:nth-child(4) { display: none; }
117127
.glass-card { padding: 30px 20px; }
128+
.scope-grid { grid-template-columns: 1fr; }
129+
.tech-grid { grid-template-columns: repeat(2, 1fr); }
130+
.project-grid { grid-template-columns: 1fr; }
118131
}
119132
</style>
120133
</head>
@@ -158,7 +171,7 @@ <h1 class="fade-in">QA ANALYST</h1>
158171
<div class="container fade-in">
159172
<div class="glass-card">
160173
<h2>CORE SCOPE</h2>
161-
<div class="grid">
174+
<div class="scope-grid">
162175
<div class="tab-item">
163176
<h4>App Testing</h4>
164177
<p>Identifying critical logic vulnerabilities and edge-case failures before production. Ensuring bulletproof application stability.</p>
@@ -171,6 +184,10 @@ <h4>Documentation</h4>
171184
<h4>Logic Audit</h4>
172185
<p>Systematic review of UX interaction patterns and backend behavioral consistency to eliminate system errors.</p>
173186
</div>
187+
<div class="tab-item">
188+
<h4>Icon Designing</h4>
189+
<p>Focused on crafting simple and minimal icon designs that enhance user experience through clarity and precision.</p>
190+
</div>
174191
</div>
175192
</div>
176193
</div>
@@ -185,14 +202,15 @@ <h2 style="font-size: 2rem; margin-bottom: 20px;">LAB STACK</h2>
185202
<div class="tech-item"><i class="devicon-git-plain"></i><span>Git</span></div>
186203
<div class="tech-item"><i class="devicon-vscode-plain"></i><span>VS Code</span></div>
187204
<div class="tech-item"><i class="devicon-html5-plain"></i><span>HTML5</span></div>
205+
<div class="tech-item"><i class="devicon-figma-plain"></i><span>Figma</span></div>
188206
</div>
189207
</div>
190208
</section>
191209

192210
<section id="work">
193211
<div class="container">
194212
<h2 class="fade-in">LAB OUTPUT</h2>
195-
<div class="grid">
213+
<div class="project-grid">
196214
<a href="https://github.com/Earendel-lab/Currency" target="_blank" class="project-card fade-in reactive">
197215
<div><h3>Currency</h3><p style="color:var(--text-sub); margin-top:10px;">Minimalist Nothing-OS aesthetic converter.</p></div>
198216
<div style="color:var(--accent); font-weight:800; font-size:0.7rem; margin-top:20px;">VISIT LAB →</div>
@@ -204,7 +222,7 @@ <h2 class="fade-in">LAB OUTPUT</h2>
204222
<a href="https://github.com/Earendel-lab/Flow" target="_blank" class="project-card fade-in reactive">
205223
<div><h3>Flow</h3><p style="color:var(--text-sub); margin-top:10px;">Countdown timer for deep work flow.</p></div>
206224
<div style="color:var(--accent); font-weight:800; font-size:0.7rem; margin-top:20px;">VISIT LAB →</div>
207-
</a>
225+
</a>
208226
<a href="https://github.com/Earendel-lab/Compass" target="_blank" class="project-card fade-in reactive">
209227
<div><h3>Compass</h3><p style="color:var(--text-sub); margin-top:10px;">Simple and beautiful compass app.</p></div>
210228
<div style="color:var(--accent); font-weight:800; font-size:0.7rem; margin-top:20px;">VISIT LAB →</div>
@@ -229,7 +247,7 @@ <h2 class="fade-in">PROJECT STARSHOT</h2>
229247
<div class="action-box fade-in">
230248
<h2 style="background: linear-gradient(135deg, #000 0%, #444 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;">INITIATE AUDIT</h2>
231249
<div style="display:flex; gap:15px; justify-content:center; margin-top:30px; flex-wrap: wrap;">
232-
<button class="btn btn-black reactive" onclick="copyMail()">Copy Email</button>
250+
<button class="btn btn-black reactive" onclick="handleEmail()">Email Me</button>
233251
<a href="https://github.com/Earendel-lab" target="_blank" class="btn btn-black reactive">GitHub</a>
234252
<a href="https://discord.com/users/1393491217299275778" target="_blank" class="btn btn-discord reactive">Discord</a>
235253
</div>
@@ -288,11 +306,8 @@ <h2 style="background: linear-gradient(135deg, #000 0%, #444 100%); -webkit-back
288306
}
289307
type();
290308

291-
/* --- FIXED PERSPECTIVE FLOW ENGINE --- */
292309
const scene = new THREE.Scene();
293310
const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
294-
295-
// Locked Camera Base
296311
const BASE_Y = 25;
297312
const BASE_Z = 60;
298313
camera.position.set(0, BASE_Y, BASE_Z);
@@ -304,7 +319,7 @@ <h2 style="background: linear-gradient(135deg, #000 0%, #444 100%); -webkit-back
304319
const geometry = new THREE.PlaneGeometry(280, 280, 110, 110);
305320
const material = new THREE.MeshBasicMaterial({ color: 0x1e3a8a, transparent: true, opacity: 0.38 });
306321
const waveMesh = new THREE.Mesh(geometry, material);
307-
waveMesh.rotation.x = -Math.PI / 2; // Perfectly Flat Plane
322+
waveMesh.rotation.x = -Math.PI / 2;
308323
scene.add(waveMesh);
309324

310325
const starGeo = new THREE.BufferGeometry();
@@ -336,47 +351,39 @@ <h2 style="background: linear-gradient(135deg, #000 0%, #444 100%); -webkit-back
336351
currentSpeed += (targetSpeed - currentSpeed) * 0.01;
337352
time += 0.007 * currentSpeed;
338353
requestAnimationFrame(animate);
339-
340354
const pos = geometry.attributes.position;
341355
for (let i = 0; i < pos.count; i++) {
342356
const x = pos.getX(i);
343357
const y = pos.getY(i);
344-
345-
// Stable Waves
346358
const w1 = Math.sin(x * 0.05 + time * 1.0) * 4.5;
347359
const w2 = Math.cos(y * 0.08 + time * 0.8) * 4.5;
348360
pos.setZ(i, w1 + w2);
349361
}
350362
pos.needsUpdate = true;
351-
352-
// NEW: FIXED PERSPECTIVE LOGIC
353-
// Side-wise movement (mouseX) and Up-down slide (mouseY)
354-
// We never change camera rotation, only position, to keep the view wide.
355363
const driftX = Math.sin(time * 0.3) * 15;
356364
const driftY = Math.cos(time * 0.25) * 5;
357-
358365
camera.position.x += (mouseX + driftX - camera.position.x) * 0.05;
359366
camera.position.y += (BASE_Y - mouseY + driftY - camera.position.y) * 0.05;
360-
361-
// Look slightly ahead to maintain the "wide" ocean feel
362367
camera.lookAt(0, -10, -20);
363-
364368
stars.rotation.y += 0.0004 * currentSpeed;
365369
renderer.render(scene, camera);
366370
}
367371
animate();
368372

369-
function copyMail() {
370-
navigator.clipboard.writeText('zwebuse@gmail.com');
373+
function handleEmail() {
374+
const mail = 'zwebuse@gmail.com';
375+
navigator.clipboard.writeText(mail);
371376
const p = document.getElementById('popup');
372377
p.classList.add('show');
373-
setTimeout(()=>p.classList.remove('show'), 2000);
378+
setTimeout(()=> {
379+
p.classList.remove('show');
380+
window.location.href = `mailto:${mail}`;
381+
}, 1000);
374382
}
375383

376384
const reveal = new IntersectionObserver((entries) => {
377385
entries.forEach(e => { if(e.isIntersecting) e.target.classList.add('visible'); });
378386
}, { threshold: 0.1 });
379-
380387
document.querySelectorAll('.fade-in').forEach(el => reveal.observe(el));
381388

382389
window.addEventListener('resize', () => {
@@ -387,6 +394,3 @@ <h2 style="background: linear-gradient(135deg, #000 0%, #444 100%); -webkit-back
387394
</script>
388395
</body>
389396
</html>
390-
391-
392-

0 commit comments

Comments
 (0)