diff --git a/Zane.jpg b/Zane.jpg
new file mode 100644
index 0000000..98d799e
Binary files /dev/null and b/Zane.jpg differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c8e84eb
--- /dev/null
+++ b/index.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+ ZaneDev
+
+
+
+
+
+
+
+
+
+
+
+

+
+
ZaneDev
+
Certified Epik Guy
+
+
+
+
+
Bored guy who likes to make random stuff.
+
+
+
+
+
+
+
+
*Note* This website is not FDA approved
+
+
+
+
+
+
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..39d2e7c
--- /dev/null
+++ b/script.js
@@ -0,0 +1,1208 @@
+// DOM Elements
+const navButtons = document.querySelectorAll('.nav-button');
+const contentSections = document.querySelectorAll('.content-section');
+const closeButtons = document.querySelectorAll('.close-button');
+
+// Initialize the website
+document.addEventListener('DOMContentLoaded', function() {
+ // Add click event listeners to navigation buttons
+ navButtons.forEach(button => {
+ button.addEventListener('click', function(e) {
+ const section = this.getAttribute('data-section');
+ if (section) {
+ e.preventDefault();
+ showContentSection(section);
+ }
+ // If no data-section, it's a regular link and will navigate normally
+ });
+ });
+
+ // Add click event listeners to close buttons
+ closeButtons.forEach(button => {
+ button.addEventListener('click', function(e) {
+ e.preventDefault();
+ hideAllContentSections();
+ });
+ });
+
+ // Add click event listeners to close content sections when clicking outside
+ contentSections.forEach(section => {
+ section.addEventListener('click', function(e) {
+ if (e.target === this) {
+ hideAllContentSections();
+ }
+ });
+ });
+
+ // Add keyboard support (ESC to close)
+ document.addEventListener('keydown', function(e) {
+ if (e.key === 'Escape') {
+ hideAllContentSections();
+ }
+ });
+
+ // Add smooth animations on page load
+ animateOnLoad();
+
+ // Add skill tag animations
+ animateSkillTags();
+
+ // Add project card stagger animations
+ animateProjectCards();
+
+ // Add interactive elements
+ addInteractiveElements();
+
+ // Add particle effect
+ createParticleEffect();
+
+ // Add mouse trail effect
+ addMouseTrail();
+
+ // Add easter eggs
+ addEasterEggs();
+
+ // Add sound effects
+ addSoundEffects();
+
+ // Add matrix rain effect
+ addMatrixRain();
+
+ // Add custom cursor
+ addCustomCursor();
+
+ // Add typing animation for tagline
+ addTypingAnimation();
+
+ // Add interactive background
+ addInteractiveBackground();
+
+ // Add more micro-interactions
+ addMicroInteractions();
+
+ // Add text effects
+ addTextEffects();
+
+ // Add button morphing
+ addButtonMorphing();
+
+ // Add scroll effects
+ addScrollEffects();
+
+ // Add keyboard interactions
+ addKeyboardInteractions();
+});
+
+// Show specific content section
+function showContentSection(sectionName) {
+ // Hide all content sections first
+ hideAllContentSections();
+
+ // Show the requested section
+ const targetSection = document.getElementById(`${sectionName}-content`);
+ if (targetSection) {
+ targetSection.classList.add('active');
+
+ // Add entrance animation
+ setTimeout(() => {
+ targetSection.style.opacity = '1';
+ }, 10);
+ }
+}
+
+// Hide all content sections
+function hideAllContentSections() {
+ contentSections.forEach(section => {
+ section.classList.remove('active');
+ section.style.opacity = '0';
+ });
+}
+
+// Animate elements on page load
+function animateOnLoad() {
+ const avatar = document.querySelector('.avatar');
+ const brandName = document.querySelector('.brand-name');
+ const navButtons = document.querySelectorAll('.nav-button');
+ const disclaimer = document.querySelector('.disclaimer');
+
+ // Set initial states
+ avatar.style.opacity = '0';
+ avatar.style.transform = 'translateY(30px)';
+ brandName.style.opacity = '0';
+ brandName.style.transform = 'translateY(30px)';
+ navButtons.forEach((button, index) => {
+ button.style.opacity = '0';
+ button.style.transform = 'translateX(30px)';
+ button.style.transitionDelay = `${index * 0.1}s`;
+ });
+ disclaimer.style.opacity = '0';
+
+ // Animate in sequence
+ setTimeout(() => {
+ avatar.style.transition = 'all 0.8s ease';
+ avatar.style.opacity = '1';
+ avatar.style.transform = 'translateY(0)';
+ }, 200);
+
+ setTimeout(() => {
+ brandName.style.transition = 'all 0.8s ease';
+ brandName.style.opacity = '1';
+ brandName.style.transform = 'translateY(0)';
+ }, 400);
+
+ setTimeout(() => {
+ navButtons.forEach(button => {
+ button.style.transition = 'all 0.6s ease';
+ button.style.opacity = '1';
+ button.style.transform = 'translateX(0)';
+ });
+ }, 600);
+
+ setTimeout(() => {
+ disclaimer.style.transition = 'all 0.8s ease';
+ disclaimer.style.opacity = '1';
+ }, 800);
+}
+
+// Add hover effects for interactive elements
+document.addEventListener('DOMContentLoaded', function() {
+ // Enhanced button hover effects
+ const buttons = document.querySelectorAll('.nav-button, .github-button, .contact-link');
+
+ buttons.forEach(button => {
+ button.addEventListener('mouseenter', function() {
+ this.style.transform = 'translateY(-2px) scale(1.02)';
+ });
+
+ button.addEventListener('mouseleave', function() {
+ this.style.transform = 'translateY(0) scale(1)';
+ });
+ });
+
+ // Avatar hover effect
+ const avatar = document.querySelector('.avatar');
+ if (avatar) {
+ avatar.addEventListener('mouseenter', function() {
+ this.style.transform = 'scale(1.05) rotate(2deg)';
+ this.style.boxShadow = '0 12px 40px rgba(220, 38, 38, 0.3)';
+ });
+
+ avatar.addEventListener('mouseleave', function() {
+ this.style.transform = 'scale(1) rotate(0deg)';
+ this.style.boxShadow = '0 8px 32px rgba(0, 0, 0, 0.3)';
+ });
+ }
+});
+
+// Add smooth scrolling for any internal links
+document.addEventListener('DOMContentLoaded', function() {
+ const links = document.querySelectorAll('a[href^="#"]');
+
+ links.forEach(link => {
+ link.addEventListener('click', function(e) {
+ e.preventDefault();
+ const targetId = this.getAttribute('href').substring(1);
+ const targetElement = document.getElementById(targetId);
+
+ if (targetElement) {
+ targetElement.scrollIntoView({
+ behavior: 'smooth',
+ block: 'start'
+ });
+ }
+ });
+ });
+});
+
+// Add loading animation for external links
+document.addEventListener('DOMContentLoaded', function() {
+ const externalLinks = document.querySelectorAll('a[target="_blank"]');
+
+ externalLinks.forEach(link => {
+ link.addEventListener('click', function() {
+ // Add a subtle loading effect
+ this.style.opacity = '0.7';
+ this.style.transform = 'scale(0.98)';
+
+ setTimeout(() => {
+ this.style.opacity = '1';
+ this.style.transform = 'scale(1)';
+ }, 200);
+ });
+ });
+});
+
+// Add parallax effect to the grid background
+document.addEventListener('DOMContentLoaded', function() {
+ const gridBackground = document.querySelector('body::before');
+
+ window.addEventListener('mousemove', function(e) {
+ const mouseX = e.clientX / window.innerWidth;
+ const mouseY = e.clientY / window.innerHeight;
+
+ // Subtle parallax effect
+ document.body.style.setProperty('--mouse-x', mouseX);
+ document.body.style.setProperty('--mouse-y', mouseY);
+ });
+});
+
+// Add typing effect for the brand name (optional enhancement)
+function typeWriter(element, text, speed = 100) {
+ let i = 0;
+ element.innerHTML = '';
+
+ function type() {
+ if (i < text.length) {
+ element.innerHTML += text.charAt(i);
+ i++;
+ setTimeout(type, speed);
+ }
+ }
+
+ type();
+}
+
+// Animate skill tags with stagger effect
+function animateSkillTags() {
+ const skillTags = document.querySelectorAll('.skill-tag');
+
+ skillTags.forEach((tag, index) => {
+ tag.style.opacity = '0';
+ tag.style.transform = 'translateY(20px)';
+
+ setTimeout(() => {
+ tag.style.transition = 'all 0.5s ease';
+ tag.style.opacity = '1';
+ tag.style.transform = 'translateY(0)';
+ }, index * 100);
+ });
+}
+
+// Animate project cards with stagger effect
+function animateProjectCards() {
+ const projectCards = document.querySelectorAll('.project-card');
+
+ projectCards.forEach((card, index) => {
+ card.style.opacity = '0';
+ card.style.transform = 'translateY(30px)';
+
+ setTimeout(() => {
+ card.style.transition = 'all 0.6s ease';
+ card.style.opacity = '1';
+ card.style.transform = 'translateY(0)';
+ }, index * 150);
+ });
+}
+
+// Add intersection observer for scroll animations
+function addScrollAnimations() {
+ const observerOptions = {
+ threshold: 0.1,
+ rootMargin: '0px 0px -50px 0px'
+ };
+
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ entry.target.classList.add('animate-in');
+ }
+ });
+ }, observerOptions);
+
+ // Observe all elements that should animate on scroll
+ const animateElements = document.querySelectorAll('.skill-category, .project-card, .about-section');
+ animateElements.forEach(el => observer.observe(el));
+}
+
+// Enhanced hover effects for project cards
+function addProjectCardEffects() {
+ const projectCards = document.querySelectorAll('.project-card');
+
+ projectCards.forEach(card => {
+ card.addEventListener('mouseenter', function() {
+ this.style.transform = 'translateY(-8px) scale(1.02)';
+ this.style.boxShadow = '0 15px 40px rgba(0, 0, 0, 0.4)';
+ });
+
+ card.addEventListener('mouseleave', function() {
+ this.style.transform = 'translateY(0) scale(1)';
+ this.style.boxShadow = '0 10px 30px rgba(0, 0, 0, 0.3)';
+ });
+ });
+}
+
+// Add typing effect for the tagline
+function addTypingEffect() {
+ const tagline = document.querySelector('.tagline');
+ if (tagline) {
+ const originalText = tagline.textContent;
+ tagline.textContent = '';
+
+ setTimeout(() => {
+ typeWriter(tagline, originalText, 80);
+ }, 1500);
+ }
+}
+
+// Initialize additional features
+document.addEventListener('DOMContentLoaded', function() {
+ addScrollAnimations();
+ addProjectCardEffects();
+ addTypingEffect();
+});
+
+// Add interactive elements
+function addInteractiveElements() {
+ // Add click effect to brand name
+ const brandName = document.querySelector('.brand-name');
+ if (brandName) {
+ brandName.addEventListener('click', function() {
+ this.style.animation = 'none';
+ setTimeout(() => {
+ this.style.animation = 'gradientText 3s ease infinite';
+ }, 10);
+ });
+ }
+
+ // Add ripple effect to buttons
+ const buttons = document.querySelectorAll('.nav-button, .contact-link, .project-link');
+ buttons.forEach(button => {
+ button.addEventListener('click', function(e) {
+ const ripple = document.createElement('span');
+ const rect = this.getBoundingClientRect();
+ const size = Math.max(rect.width, rect.height);
+ const x = e.clientX - rect.left - size / 2;
+ const y = e.clientY - rect.top - size / 2;
+
+ ripple.style.width = ripple.style.height = size + 'px';
+ ripple.style.left = x + 'px';
+ ripple.style.top = y + 'px';
+ ripple.classList.add('ripple');
+
+ this.appendChild(ripple);
+
+ setTimeout(() => {
+ ripple.remove();
+ }, 600);
+ });
+ });
+
+ // Add floating animation to skill tags
+ const skillTags = document.querySelectorAll('.skill-tag');
+ skillTags.forEach((tag, index) => {
+ tag.addEventListener('mouseenter', function() {
+ this.style.animation = `float 2s ease-in-out infinite`;
+ });
+
+ tag.addEventListener('mouseleave', function() {
+ this.style.animation = 'none';
+ });
+ });
+}
+
+// Create particle effect
+function createParticleEffect() {
+ const particleContainer = document.createElement('div');
+ particleContainer.style.position = 'fixed';
+ particleContainer.style.top = '0';
+ particleContainer.style.left = '0';
+ particleContainer.style.width = '100%';
+ particleContainer.style.height = '100%';
+ particleContainer.style.pointerEvents = 'none';
+ particleContainer.style.zIndex = '-1';
+ document.body.appendChild(particleContainer);
+
+ function createParticle() {
+ const particle = document.createElement('div');
+ particle.style.position = 'absolute';
+ particle.style.width = '2px';
+ particle.style.height = '2px';
+ particle.style.background = '#007acc';
+ particle.style.borderRadius = '50%';
+ particle.style.opacity = '0.6';
+ particle.style.left = Math.random() * 100 + '%';
+ particle.style.top = '100%';
+ particle.style.animation = `floatUp ${3 + Math.random() * 4}s linear forwards`;
+
+ particleContainer.appendChild(particle);
+
+ setTimeout(() => {
+ particle.remove();
+ }, 7000);
+ }
+
+ // Add CSS for particle animation
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes floatUp {
+ to {
+ transform: translateY(-100vh);
+ opacity: 0;
+ }
+ }
+ @keyframes float {
+ 0%, 100% { transform: translateY(0px); }
+ 50% { transform: translateY(-10px); }
+ }
+ .ripple {
+ position: absolute;
+ border-radius: 50%;
+ background: rgba(0, 122, 204, 0.3);
+ transform: scale(0);
+ animation: rippleEffect 0.6s linear;
+ pointer-events: none;
+ }
+ @keyframes rippleEffect {
+ to {
+ transform: scale(4);
+ opacity: 0;
+ }
+ }
+ `;
+ document.head.appendChild(style);
+
+ // Create particles periodically
+ setInterval(createParticle, 2000);
+}
+
+// Add mouse trail effect
+function addMouseTrail() {
+ const trail = [];
+ const trailLength = 20;
+
+ document.addEventListener('mousemove', function(e) {
+ const dot = document.createElement('div');
+ dot.style.position = 'fixed';
+ dot.style.width = '4px';
+ dot.style.height = '4px';
+ dot.style.background = 'rgba(0, 122, 204, 0.8)';
+ dot.style.borderRadius = '50%';
+ dot.style.left = e.clientX + 'px';
+ dot.style.top = e.clientY + 'px';
+ dot.style.pointerEvents = 'none';
+ dot.style.zIndex = '9999';
+ dot.style.transition = 'opacity 0.5s ease';
+
+ document.body.appendChild(dot);
+ trail.push(dot);
+
+ if (trail.length > trailLength) {
+ const oldDot = trail.shift();
+ oldDot.style.opacity = '0';
+ setTimeout(() => oldDot.remove(), 500);
+ }
+
+ setTimeout(() => {
+ if (dot.parentNode) {
+ dot.style.opacity = '0';
+ setTimeout(() => dot.remove(), 500);
+ }
+ }, 100);
+ });
+}
+
+
+// Easter Eggs
+function addEasterEggs() {
+ let clickCount = 0;
+ const avatar = document.querySelector('.avatar');
+ const brandName = document.querySelector('.brand-name');
+
+ // Konami Code
+ const konamiCode = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65];
+ let konamiIndex = 0;
+
+ document.addEventListener('keydown', function(e) {
+ if (e.keyCode === konamiCode[konamiIndex]) {
+ konamiIndex++;
+ if (konamiIndex === konamiCode.length) {
+ activateKonamiCode();
+ konamiIndex = 0;
+ }
+ } else {
+ konamiIndex = 0;
+ }
+ });
+
+ // Avatar click counter
+ avatar.addEventListener('click', function() {
+ clickCount++;
+ if (clickCount === 5) {
+ activateAvatarEasterEgg();
+ clickCount = 0;
+ }
+ });
+
+ // Brand name secret
+ brandName.addEventListener('dblclick', function() {
+ activateBrandEasterEgg();
+ });
+}
+
+function activateKonamiCode() {
+ const body = document.body;
+ body.style.animation = 'rainbow 2s ease infinite';
+
+ // Add rainbow animation
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes rainbow {
+ 0% { filter: hue-rotate(0deg); }
+ 100% { filter: hue-rotate(360deg); }
+ }
+ `;
+ document.head.appendChild(style);
+
+ setTimeout(() => {
+ body.style.animation = '';
+ style.remove();
+ }, 5000);
+
+ showNotification('🎉 Konami Code Activated! You found the secret!');
+}
+
+function activateAvatarEasterEgg() {
+ const avatar = document.querySelector('.avatar');
+ avatar.style.animation = 'spin 1s linear infinite, bounce 0.5s ease infinite';
+
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes spin {
+ from { transform: rotate(0deg); }
+ to { transform: rotate(360deg); }
+ }
+ @keyframes bounce {
+ 0%, 100% { transform: translateY(0); }
+ 50% { transform: translateY(-20px); }
+ }
+ `;
+ document.head.appendChild(style);
+
+ setTimeout(() => {
+ avatar.style.animation = '';
+ style.remove();
+ }, 3000);
+
+ showNotification('🔄 Avatar Spin Mode Activated!');
+}
+
+function activateBrandEasterEgg() {
+ const brandName = document.querySelector('.brand-name');
+ const originalText = brandName.textContent;
+
+ const glitchTexts = ['Z4n3D3v', 'Z@n3D3v', 'ZaneDev', 'ZANE_DEV', 'zanedev'];
+ let glitchIndex = 0;
+
+ const glitchInterval = setInterval(() => {
+ brandName.textContent = glitchTexts[glitchIndex];
+ glitchIndex = (glitchIndex + 1) % glitchTexts.length;
+ }, 100);
+
+ setTimeout(() => {
+ clearInterval(glitchInterval);
+ brandName.textContent = originalText;
+ }, 2000);
+
+ showNotification('âš¡ Glitch Mode Activated!');
+}
+
+// Sound Effects
+function addSoundEffects() {
+ const buttons = document.querySelectorAll('.nav-button');
+
+ buttons.forEach(button => {
+ button.addEventListener('click', function() {
+ playSound('click');
+ });
+
+ button.addEventListener('mouseenter', function() {
+ playSound('hover');
+ });
+ });
+}
+
+function playSound(type) {
+ // Create audio context for sound effects
+ const audioContext = new (window.AudioContext || window.webkitAudioContext)();
+
+ if (type === 'click') {
+ // Click sound
+ const oscillator = audioContext.createOscillator();
+ const gainNode = audioContext.createGain();
+
+ oscillator.connect(gainNode);
+ gainNode.connect(audioContext.destination);
+
+ oscillator.frequency.setValueAtTime(800, audioContext.currentTime);
+ oscillator.frequency.exponentialRampToValueAtTime(400, audioContext.currentTime + 0.1);
+
+ gainNode.gain.setValueAtTime(0.1, audioContext.currentTime);
+ gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.1);
+
+ oscillator.start(audioContext.currentTime);
+ oscillator.stop(audioContext.currentTime + 0.1);
+ } else if (type === 'hover') {
+ // Hover sound
+ const oscillator = audioContext.createOscillator();
+ const gainNode = audioContext.createGain();
+
+ oscillator.connect(gainNode);
+ gainNode.connect(audioContext.destination);
+
+ oscillator.frequency.setValueAtTime(600, audioContext.currentTime);
+ oscillator.frequency.exponentialRampToValueAtTime(800, audioContext.currentTime + 0.05);
+
+ gainNode.gain.setValueAtTime(0.05, audioContext.currentTime);
+ gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.05);
+
+ oscillator.start(audioContext.currentTime);
+ oscillator.stop(audioContext.currentTime + 0.05);
+ }
+}
+
+// Matrix Rain Effect
+function addMatrixRain() {
+ const canvas = document.createElement('canvas');
+ const ctx = canvas.getContext('2d');
+
+ canvas.style.position = 'fixed';
+ canvas.style.top = '0';
+ canvas.style.left = '0';
+ canvas.style.width = '100%';
+ canvas.style.height = '100%';
+ canvas.style.pointerEvents = 'none';
+ canvas.style.zIndex = '-1';
+ canvas.style.opacity = '0.1';
+
+ document.body.appendChild(canvas);
+
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+
+ const matrix = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()*&^%+-/~{[|`]}";
+ const matrixArray = matrix.split("");
+
+ const font_size = 10;
+ const columns = canvas.width / font_size;
+
+ const drops = [];
+ for (let x = 0; x < columns; x++) {
+ drops[x] = 1;
+ }
+
+ function drawMatrix() {
+ ctx.fillStyle = 'rgba(0, 0, 0, 0.04)';
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
+
+ ctx.fillStyle = '#007acc';
+ ctx.font = font_size + 'px arial';
+
+ for (let i = 0; i < drops.length; i++) {
+ const text = matrixArray[Math.floor(Math.random() * matrixArray.length)];
+ ctx.fillText(text, i * font_size, drops[i] * font_size);
+
+ if (drops[i] * font_size > canvas.height && Math.random() > 0.975) {
+ drops[i] = 0;
+ }
+ drops[i]++;
+ }
+ }
+
+ setInterval(drawMatrix, 35);
+
+ // Resize handler
+ window.addEventListener('resize', () => {
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+ });
+}
+
+// Custom Cursor
+function addCustomCursor() {
+ const cursor = document.createElement('div');
+ cursor.className = 'custom-cursor';
+ document.body.appendChild(cursor);
+
+ const trail = document.createElement('div');
+ trail.className = 'custom-cursor-trail';
+ document.body.appendChild(trail);
+
+ let mouseX = 0, mouseY = 0;
+ let trailX = 0, trailY = 0;
+
+ document.addEventListener('mousemove', (e) => {
+ mouseX = e.clientX;
+ mouseY = e.clientY;
+
+ cursor.style.left = mouseX - 10 + 'px';
+ cursor.style.top = mouseY - 10 + 'px';
+ });
+
+ // Smooth trail following
+ function animateTrail() {
+ trailX += (mouseX - trailX) * 0.1;
+ trailY += (mouseY - trailY) * 0.1;
+
+ trail.style.left = trailX - 4 + 'px';
+ trail.style.top = trailY - 4 + 'px';
+
+ requestAnimationFrame(animateTrail);
+ }
+ animateTrail();
+
+ // Hover effects
+ const interactiveElements = document.querySelectorAll('a, button, .avatar, .brand-name');
+
+ interactiveElements.forEach(el => {
+ el.addEventListener('mouseenter', () => {
+ cursor.style.transform = 'scale(2)';
+ cursor.style.background = 'radial-gradient(circle, rgba(255, 107, 107, 0.8) 0%, rgba(255, 107, 107, 0.4) 50%, transparent 100%)';
+ });
+
+ el.addEventListener('mouseleave', () => {
+ cursor.style.transform = 'scale(1)';
+ cursor.style.background = 'radial-gradient(circle, rgba(0, 122, 204, 0.8) 0%, rgba(0, 122, 204, 0.4) 50%, transparent 100%)';
+ });
+ });
+}
+
+// Typing Animation for Tagline
+function addTypingAnimation() {
+ const tagline = document.querySelector('.tagline');
+ if (tagline) {
+ const originalText = tagline.textContent;
+ tagline.textContent = '';
+
+ setTimeout(() => {
+ typeWriter(tagline, originalText, 100);
+ }, 2000);
+ }
+}
+
+// Interactive Background
+function addInteractiveBackground() {
+ const canvas = document.createElement('canvas');
+ canvas.style.position = 'fixed';
+ canvas.style.top = '0';
+ canvas.style.left = '0';
+ canvas.style.width = '100%';
+ canvas.style.height = '100%';
+ canvas.style.pointerEvents = 'none';
+ canvas.style.zIndex = '-2';
+ canvas.style.opacity = '0.3';
+
+ document.body.appendChild(canvas);
+
+ const ctx = canvas.getContext('2d');
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+
+ const particles = [];
+ const particleCount = 50;
+
+ class Particle {
+ constructor() {
+ this.x = Math.random() * canvas.width;
+ this.y = Math.random() * canvas.height;
+ this.vx = (Math.random() - 0.5) * 2;
+ this.vy = (Math.random() - 0.5) * 2;
+ this.size = Math.random() * 3 + 1;
+ this.opacity = Math.random() * 0.5 + 0.2;
+ }
+
+ update() {
+ this.x += this.vx;
+ this.y += this.vy;
+
+ if (this.x < 0 || this.x > canvas.width) this.vx *= -1;
+ if (this.y < 0 || this.y > canvas.height) this.vy *= -1;
+ }
+
+ draw() {
+ ctx.beginPath();
+ ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
+ ctx.fillStyle = `rgba(0, 122, 204, ${this.opacity})`;
+ ctx.fill();
+ }
+ }
+
+ for (let i = 0; i < particleCount; i++) {
+ particles.push(new Particle());
+ }
+
+ function animate() {
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+
+ particles.forEach(particle => {
+ particle.update();
+ particle.draw();
+ });
+
+ // Draw connections
+ particles.forEach((particle, i) => {
+ particles.slice(i + 1).forEach(otherParticle => {
+ const dx = particle.x - otherParticle.x;
+ const dy = particle.y - otherParticle.y;
+ const distance = Math.sqrt(dx * dx + dy * dy);
+
+ if (distance < 100) {
+ ctx.beginPath();
+ ctx.moveTo(particle.x, particle.y);
+ ctx.lineTo(otherParticle.x, otherParticle.y);
+ ctx.strokeStyle = `rgba(0, 122, 204, ${0.1 * (1 - distance / 100)})`;
+ ctx.lineWidth = 1;
+ ctx.stroke();
+ }
+ });
+ });
+
+ requestAnimationFrame(animate);
+ }
+
+ animate();
+
+ window.addEventListener('resize', () => {
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+ });
+}
+
+
+// Notification System
+function showNotification(message) {
+ const notification = document.createElement('div');
+ notification.style.position = 'fixed';
+ notification.style.top = '20px';
+ notification.style.right = '20px';
+ notification.style.background = 'linear-gradient(135deg, #007acc, #00aaff)';
+ notification.style.color = 'white';
+ notification.style.padding = '1rem 2rem';
+ notification.style.borderRadius = '10px';
+ notification.style.boxShadow = '0 10px 30px rgba(0, 122, 204, 0.3)';
+ notification.style.zIndex = '10000';
+ notification.style.transform = 'translateX(100%)';
+ notification.style.transition = 'transform 0.3s ease';
+ notification.textContent = message;
+
+ document.body.appendChild(notification);
+
+ setTimeout(() => {
+ notification.style.transform = 'translateX(0)';
+ }, 100);
+
+ setTimeout(() => {
+ notification.style.transform = 'translateX(100%)';
+ setTimeout(() => {
+ notification.remove();
+ }, 300);
+ }, 3000);
+}
+
+// Micro-Interactions
+function addMicroInteractions() {
+ // Add magnetic effect to buttons
+ const buttons = document.querySelectorAll('.nav-button');
+
+ buttons.forEach(button => {
+ button.addEventListener('mousemove', function(e) {
+ const rect = this.getBoundingClientRect();
+ const x = e.clientX - rect.left - rect.width / 2;
+ const y = e.clientY - rect.top - rect.height / 2;
+
+ this.style.transform = `translate(${x * 0.1}px, ${y * 0.1}px) scale(1.05)`;
+ });
+
+ button.addEventListener('mouseleave', function() {
+ this.style.transform = 'translate(0, 0) scale(1)';
+ });
+ });
+
+ // Add tilt effect to avatar
+ const avatar = document.querySelector('.avatar');
+ if (avatar) {
+ avatar.addEventListener('mousemove', function(e) {
+ const rect = this.getBoundingClientRect();
+ const x = e.clientX - rect.left - rect.width / 2;
+ const y = e.clientY - rect.top - rect.height / 2;
+
+ const rotateX = (y / rect.height) * 20;
+ const rotateY = (x / rect.width) * -20;
+
+ this.style.transform = `perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(1.1)`;
+ });
+
+ avatar.addEventListener('mouseleave', function() {
+ this.style.transform = 'perspective(1000px) rotateX(0deg) rotateY(0deg) scale(1)';
+ });
+ }
+
+ // Add ripple effect to all clickable elements
+ const clickableElements = document.querySelectorAll('a, button, .avatar, .brand-name');
+
+ clickableElements.forEach(element => {
+ element.addEventListener('click', function(e) {
+ const ripple = document.createElement('span');
+ const rect = this.getBoundingClientRect();
+ const size = Math.max(rect.width, rect.height);
+ const x = e.clientX - rect.left - size / 2;
+ const y = e.clientY - rect.top - size / 2;
+
+ ripple.style.width = ripple.style.height = size + 'px';
+ ripple.style.left = x + 'px';
+ ripple.style.top = y + 'px';
+ ripple.style.position = 'absolute';
+ ripple.style.borderRadius = '50%';
+ ripple.style.background = 'rgba(0, 122, 204, 0.3)';
+ ripple.style.transform = 'scale(0)';
+ ripple.style.animation = 'ripple 0.6s linear';
+ ripple.style.pointerEvents = 'none';
+
+ this.style.position = 'relative';
+ this.style.overflow = 'hidden';
+ this.appendChild(ripple);
+
+ setTimeout(() => {
+ ripple.remove();
+ }, 600);
+ });
+ });
+
+ // Add CSS for ripple animation
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes ripple {
+ to {
+ transform: scale(4);
+ opacity: 0;
+ }
+ }
+ `;
+ document.head.appendChild(style);
+}
+
+// Text Effects
+function addTextEffects() {
+ const brandName = document.querySelector('.brand-name');
+ const tagline = document.querySelector('.tagline');
+ const aboutText = document.querySelector('.about-text');
+
+ // Add letter-by-letter animation to brand name
+ if (brandName) {
+ const text = brandName.textContent;
+ brandName.innerHTML = '';
+
+ text.split('').forEach((letter, index) => {
+ const span = document.createElement('span');
+ span.textContent = letter === ' ' ? '\u00A0' : letter;
+ span.style.display = 'inline-block';
+ span.style.animation = `letterBounce 0.6s ease forwards`;
+ span.style.animationDelay = `${index * 0.1}s`;
+ span.style.opacity = '0';
+ brandName.appendChild(span);
+ });
+ }
+
+ // Add hover effect to tagline
+ if (tagline) {
+ tagline.addEventListener('mouseenter', function() {
+ this.style.transform = 'scale(1.1) rotate(1deg)';
+ this.style.textShadow = '0 0 20px rgba(0, 122, 204, 0.8)';
+ });
+
+ tagline.addEventListener('mouseleave', function() {
+ this.style.transform = 'scale(1) rotate(0deg)';
+ this.style.textShadow = 'none';
+ });
+ }
+
+ // Add typewriter effect to about text
+ if (aboutText) {
+ const originalText = aboutText.textContent;
+ aboutText.textContent = '';
+
+ setTimeout(() => {
+ typeWriter(aboutText, originalText, 50);
+ }, 3000);
+ }
+
+ // Add CSS for letter animation
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes letterBounce {
+ 0% {
+ opacity: 0;
+ transform: translateY(20px) rotate(10deg);
+ }
+ 50% {
+ transform: translateY(-10px) rotate(-5deg);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0) rotate(0deg);
+ }
+ }
+ `;
+ document.head.appendChild(style);
+}
+
+// Button Morphing
+function addButtonMorphing() {
+ const buttons = document.querySelectorAll('.nav-button');
+
+ buttons.forEach(button => {
+ // Add loading state
+ button.addEventListener('click', function(e) {
+ if (this.href && !this.href.includes('#')) {
+ e.preventDefault();
+
+ const originalText = this.textContent;
+ this.innerHTML = '⟳';
+ this.style.pointerEvents = 'none';
+
+ setTimeout(() => {
+ window.location.href = this.href;
+ }, 1000);
+ }
+ });
+
+ // Add pulse effect on focus
+ button.addEventListener('focus', function() {
+ this.style.animation = 'pulse 1s ease-in-out infinite';
+ });
+
+ button.addEventListener('blur', function() {
+ this.style.animation = '';
+ });
+ });
+
+ // Add CSS for button effects
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes spin {
+ from { transform: rotate(0deg); }
+ to { transform: rotate(360deg); }
+ }
+ @keyframes pulse {
+ 0%, 100% { transform: scale(1); }
+ 50% { transform: scale(1.05); }
+ }
+ `;
+ document.head.appendChild(style);
+}
+
+// Scroll Effects
+function addScrollEffects() {
+ let ticking = false;
+
+ function updateScrollEffects() {
+ const scrolled = window.pageYOffset;
+ const parallax = scrolled * 0.5;
+
+ // Parallax effect on background
+ document.body.style.setProperty('--scroll', `${parallax}px`);
+
+ // Scale effect on avatar based on scroll
+ const avatar = document.querySelector('.avatar');
+ if (avatar) {
+ const scale = Math.max(0.8, 1 - scrolled * 0.001);
+ avatar.style.transform = `scale(${scale})`;
+ }
+
+ ticking = false;
+ }
+
+ function requestTick() {
+ if (!ticking) {
+ requestAnimationFrame(updateScrollEffects);
+ ticking = true;
+ }
+ }
+
+ window.addEventListener('scroll', requestTick);
+}
+
+// Keyboard Interactions
+function addKeyboardInteractions() {
+ let keySequence = [];
+ const secretKeys = ['z', 'a', 'n', 'e'];
+
+ document.addEventListener('keydown', function(e) {
+ keySequence.push(e.key.toLowerCase());
+ if (keySequence.length > secretKeys.length) {
+ keySequence.shift();
+ }
+
+ // Check for secret sequence
+ if (keySequence.join('') === secretKeys.join('')) {
+ activateSecretMode();
+ keySequence = [];
+ }
+
+ // Add visual feedback for key presses
+ const keyElement = document.createElement('div');
+ keyElement.textContent = e.key.toUpperCase();
+ keyElement.style.position = 'fixed';
+ keyElement.style.left = Math.random() * window.innerWidth + 'px';
+ keyElement.style.top = Math.random() * window.innerHeight + 'px';
+ keyElement.style.color = '#007acc';
+ keyElement.style.fontSize = '2rem';
+ keyElement.style.fontWeight = 'bold';
+ keyElement.style.pointerEvents = 'none';
+ keyElement.style.zIndex = '10000';
+ keyElement.style.animation = 'keyPress 1s ease-out forwards';
+
+ document.body.appendChild(keyElement);
+
+ setTimeout(() => {
+ keyElement.remove();
+ }, 1000);
+ });
+
+ // Add CSS for key press animation
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes keyPress {
+ 0% {
+ opacity: 1;
+ transform: scale(1) translateY(0);
+ }
+ 100% {
+ opacity: 0;
+ transform: scale(0.5) translateY(-50px);
+ }
+ }
+ `;
+ document.head.appendChild(style);
+}
+
+function activateSecretMode() {
+ const body = document.body;
+ body.style.animation = 'rainbow 1s ease infinite';
+
+ const style = document.createElement('style');
+ style.textContent = `
+ @keyframes rainbow {
+ 0% { filter: hue-rotate(0deg); }
+ 100% { filter: hue-rotate(360deg); }
+ }
+ `;
+ document.head.appendChild(style);
+
+ setTimeout(() => {
+ body.style.animation = '';
+ style.remove();
+ }, 3000);
+
+ showNotification('🎉 Secret "ZANE" sequence activated!');
+}
+
+// Uncomment the following lines if you want a typing effect for the brand name
+// document.addEventListener('DOMContentLoaded', function() {
+// const brandName = document.querySelector('.brand-name');
+// if (brandName) {
+// const originalText = brandName.textContent;
+// setTimeout(() => {
+// typeWriter(brandName, originalText, 150);
+// }, 1000);
+// }
+// });
diff --git a/styles.css b/styles.css
new file mode 100644
index 0000000..796d769
--- /dev/null
+++ b/styles.css
@@ -0,0 +1,837 @@
+/* Reset and base styles */
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Inter', sans-serif;
+ background-color: #1a1a1a;
+ color: #ffffff;
+ min-height: 100vh;
+ overflow-x: hidden;
+ position: relative;
+ cursor: none;
+}
+
+/* Custom Cursor */
+.custom-cursor {
+ position: fixed;
+ width: 20px;
+ height: 20px;
+ background: radial-gradient(circle, rgba(0, 122, 204, 0.8) 0%, rgba(0, 122, 204, 0.4) 50%, transparent 100%);
+ border-radius: 50%;
+ pointer-events: none;
+ z-index: 9999;
+ transition: transform 0.1s ease;
+ mix-blend-mode: difference;
+}
+
+.custom-cursor-trail {
+ position: fixed;
+ width: 8px;
+ height: 8px;
+ background: rgba(0, 122, 204, 0.6);
+ border-radius: 50%;
+ pointer-events: none;
+ z-index: 9998;
+ transition: all 0.3s ease;
+}
+
+/* Grid background */
+body::before {
+ content: '';
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-image:
+ radial-gradient(circle, #333 1px, transparent 1px);
+ background-size: 30px 30px;
+ background-position: 0 0, 15px 15px;
+ opacity: 0.3;
+ z-index: -1;
+ pointer-events: none;
+ animation: gridMove 20s linear infinite;
+}
+
+@keyframes gridMove {
+ 0% { transform: translate(0, 0); }
+ 100% { transform: translate(30px, 30px); }
+}
+
+/* Animated gradient background */
+body::after {
+ content: '';
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(-45deg, #1a1a1a, #2a2a2a, #1a1a1a, #333);
+ background-size: 400% 400%;
+ animation: gradientShift 15s ease infinite;
+ z-index: -2;
+ pointer-events: none;
+}
+
+@keyframes gradientShift {
+ 0% { background-position: 0% 50%; }
+ 50% { background-position: 100% 50%; }
+ 100% { background-position: 0% 50%; }
+}
+
+/* Main container */
+.container {
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+ padding: 2rem;
+}
+
+/* Avatar Section */
+.avatar-section {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-bottom: 3rem;
+ position: relative;
+ filter: drop-shadow(0 0 20px rgba(0, 122, 204, 0.3));
+}
+
+.avatar {
+ width: 120px;
+ height: 120px;
+ border-radius: 50%;
+ background: linear-gradient(135deg, #2a2a2a, #1a1a1a);
+ border: 3px solid #333;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 1.5rem;
+ box-shadow:
+ 0 8px 32px rgba(0, 0, 0, 0.3),
+ 0 0 0 0 rgba(0, 122, 204, 0.4),
+ inset 0 0 20px rgba(0, 122, 204, 0.1);
+ position: relative;
+ overflow: hidden;
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+ cursor: pointer;
+ transform-style: preserve-3d;
+}
+
+.avatar::before {
+ content: '';
+ position: absolute;
+ top: -3px;
+ left: -3px;
+ right: -3px;
+ bottom: -3px;
+ background: linear-gradient(45deg, #007acc, #00aaff, #007acc, #00aaff);
+ border-radius: 50%;
+ z-index: -1;
+ opacity: 0;
+ transition: opacity 0.3s ease;
+ animation: rotate 3s linear infinite;
+}
+
+.avatar:hover::before {
+ opacity: 1;
+}
+
+.avatar:hover {
+ transform: scale(1.1) rotateY(10deg) rotateX(5deg);
+ box-shadow:
+ 0 15px 50px rgba(0, 0, 0, 0.4),
+ 0 0 30px rgba(0, 122, 204, 0.6),
+ inset 0 0 30px rgba(0, 122, 204, 0.2);
+ border-color: #007acc;
+}
+
+@keyframes rotate {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+/* Profile Image */
+.profile-image {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ border-radius: 50%;
+ animation: slowSpin 60s linear infinite;
+}
+
+@keyframes slowSpin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+/* Brand Name */
+.brand-name {
+ font-size: 2.5rem;
+ font-weight: 600;
+ background: linear-gradient(135deg, #ffffff, #007acc, #00aaff, #ff6b6b, #4ecdc4);
+ background-size: 300% 300%;
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-align: center;
+ letter-spacing: -0.02em;
+ margin-bottom: 0.5rem;
+ animation: gradientText 4s ease infinite, neonPulse 2s ease-in-out infinite alternate;
+ cursor: pointer;
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+ text-shadow:
+ 0 0 5px rgba(0, 122, 204, 0.5),
+ 0 0 10px rgba(0, 122, 204, 0.3),
+ 0 0 15px rgba(0, 122, 204, 0.2);
+ position: relative;
+}
+
+.brand-name:hover {
+ transform: scale(1.1) rotateX(5deg);
+ filter: drop-shadow(0 0 20px rgba(0, 122, 204, 0.8));
+ text-shadow:
+ 0 0 10px rgba(0, 122, 204, 0.8),
+ 0 0 20px rgba(0, 122, 204, 0.6),
+ 0 0 30px rgba(0, 122, 204, 0.4);
+}
+
+@keyframes gradientText {
+ 0% { background-position: 0% 50%; }
+ 50% { background-position: 100% 50%; }
+ 100% { background-position: 0% 50%; }
+}
+
+@keyframes neonPulse {
+ 0% {
+ filter: drop-shadow(0 0 5px rgba(0, 122, 204, 0.5));
+ text-shadow:
+ 0 0 5px rgba(0, 122, 204, 0.5),
+ 0 0 10px rgba(0, 122, 204, 0.3),
+ 0 0 15px rgba(0, 122, 204, 0.2);
+ }
+ 100% {
+ filter: drop-shadow(0 0 15px rgba(0, 122, 204, 0.8));
+ text-shadow:
+ 0 0 10px rgba(0, 122, 204, 0.8),
+ 0 0 20px rgba(0, 122, 204, 0.6),
+ 0 0 30px rgba(0, 122, 204, 0.4);
+ }
+}
+
+/* Tagline */
+.tagline {
+ font-size: 1.1rem;
+ color: #888;
+ text-align: center;
+ font-weight: 400;
+ margin-bottom: 2rem;
+ position: relative;
+ animation: fadeInUp 1s ease 0.8s both;
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+/* About Section */
+.about-section {
+ max-width: 600px;
+ text-align: center;
+ margin-bottom: 3rem;
+ position: relative;
+ animation: slideInLeft 1s ease 1s both;
+}
+
+@keyframes slideInLeft {
+ from {
+ opacity: 0;
+ transform: translateX(-30px);
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.about-text {
+ font-size: 1.1rem;
+ line-height: 1.7;
+ color: #ccc;
+ font-weight: 400;
+}
+
+
+/* Navigation */
+.navigation {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ position: relative;
+ align-items: center;
+ animation: slideInRight 1s ease 1.2s both;
+}
+
+@keyframes slideInRight {
+ from {
+ opacity: 0;
+ transform: translateX(30px);
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.nav-button {
+ background: linear-gradient(135deg, #2a2a2a, #1a1a1a);
+ border: 2px solid #333;
+ border-radius: 12px;
+ padding: 1rem 2rem;
+ color: #ffffff;
+ font-size: 1.1rem;
+ font-weight: 500;
+ font-family: 'Inter', sans-serif;
+ cursor: pointer;
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+ min-width: 140px;
+ text-align: center;
+ position: relative;
+ overflow: hidden;
+ text-decoration: none;
+ display: inline-block;
+ box-shadow:
+ 0 4px 15px rgba(0, 0, 0, 0.2),
+ 0 0 0 0 rgba(0, 122, 204, 0.3);
+ transform-style: preserve-3d;
+}
+
+.nav-button::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(0, 122, 204, 0.3), transparent);
+ transition: left 0.6s ease;
+}
+
+.nav-button:hover::after {
+ left: 100%;
+}
+
+.nav-button.active {
+ background: #333;
+ border-color: #444;
+}
+
+.nav-button::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
+ transition: left 0.5s ease;
+}
+
+.nav-button:hover::before {
+ left: 100%;
+}
+
+.nav-button:hover {
+ background: linear-gradient(135deg, #333, #2a2a2a);
+ border-color: #007acc;
+ transform: translateY(-5px) scale(1.05) rotateX(5deg);
+ box-shadow:
+ 0 15px 40px rgba(0, 122, 204, 0.4),
+ 0 0 20px rgba(0, 122, 204, 0.6);
+ text-shadow: 0 0 10px rgba(0, 122, 204, 0.8);
+}
+
+.nav-button:active {
+ transform: translateY(0);
+}
+
+/* Disclaimer */
+.disclaimer {
+ position: fixed;
+ bottom: 2rem;
+ left: 2rem;
+ color: #666;
+ font-size: 0.9rem;
+ font-style: italic;
+}
+
+.disclaimer p {
+ margin: 0;
+}
+
+/* Content Sections */
+.content-section {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(26, 26, 26, 0.95);
+ backdrop-filter: blur(10px);
+ display: none;
+ align-items: center;
+ justify-content: center;
+ z-index: 1000;
+ opacity: 0;
+ transition: opacity 0.3s ease;
+}
+
+.content-section.active {
+ display: flex;
+ opacity: 1;
+}
+
+.content-wrapper {
+ max-width: 800px;
+ padding: 2rem;
+ text-align: center;
+}
+
+.content-wrapper h2 {
+ font-size: 2.5rem;
+ margin-bottom: 2rem;
+ color: #ffffff;
+}
+
+.project-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ margin-top: 2rem;
+}
+
+.project-card {
+ background: #2a2a2a;
+ border: 2px solid #333;
+ border-radius: 12px;
+ padding: 2rem;
+ transition: all 0.3s ease;
+}
+
+.project-card:hover {
+ transform: translateY(-5px);
+ border-color: #444;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
+}
+
+.project-card h3 {
+ color: #ffffff;
+ margin-bottom: 1rem;
+ font-size: 1.3rem;
+}
+
+.project-card p {
+ color: #ccc;
+ line-height: 1.6;
+}
+
+.github-link {
+ text-decoration: none;
+ display: inline-block;
+ margin-top: 2rem;
+}
+
+.github-button {
+ background: #333;
+ border: 2px solid #444;
+ border-radius: 12px;
+ padding: 1rem 2rem;
+ color: #ffffff;
+ font-size: 1.1rem;
+ font-weight: 500;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ font-family: 'Inter', sans-serif;
+}
+
+.github-button:hover {
+ background: #444;
+ border-color: #555;
+ transform: translateY(-2px);
+}
+
+.contact-info {
+ margin-top: 2rem;
+}
+
+.contact-methods {
+ display: flex;
+ justify-content: center;
+ gap: 2rem;
+ margin-top: 2rem;
+ flex-wrap: wrap;
+}
+
+.contact-link {
+ color: #ffffff;
+ text-decoration: none;
+ padding: 1rem 2rem;
+ border: 2px solid #333;
+ border-radius: 12px;
+ background: #2a2a2a;
+ transition: all 0.3s ease;
+ font-weight: 500;
+}
+
+.contact-link:hover {
+ background: #333;
+ border-color: #444;
+ transform: translateY(-2px);
+}
+
+/* Projects Page Specific Styles */
+.projects-main-content {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(26, 26, 26, 0.95);
+ backdrop-filter: blur(10px);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 1000;
+ overflow-y: auto;
+ padding: 2rem 0;
+}
+
+.projects-intro {
+ color: #ccc;
+ font-size: 1.2rem;
+ margin-bottom: 3rem;
+ text-align: center;
+}
+
+.project-tech {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+ margin: 1rem 0;
+}
+
+.tech-tag {
+ background: #333;
+ color: #ffffff;
+ padding: 0.3rem 0.8rem;
+ border-radius: 20px;
+ font-size: 0.8rem;
+ font-weight: 500;
+ border: 1px solid #444;
+}
+
+.project-links {
+ display: flex;
+ gap: 1rem;
+ margin-top: 1.5rem;
+}
+
+.project-link {
+ color: #ffffff;
+ text-decoration: none;
+ padding: 0.5rem 1rem;
+ border: 1px solid #333;
+ border-radius: 8px;
+ background: #2a2a2a;
+ transition: all 0.3s ease;
+ font-size: 0.9rem;
+ font-weight: 500;
+}
+
+.project-link:hover {
+ background: #333;
+ border-color: #444;
+ transform: translateY(-1px);
+}
+
+.contact-message {
+ font-size: 1.5rem;
+ color: #ffffff;
+ font-weight: 500;
+ text-align: center;
+ margin-top: 2rem;
+}
+
+/* Skills Section */
+.skills-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ margin-top: 2rem;
+}
+
+.skill-category {
+ background: #2a2a2a;
+ border: 2px solid #333;
+ border-radius: 12px;
+ padding: 2rem;
+ transition: all 0.3s ease;
+}
+
+.skill-category:hover {
+ transform: translateY(-5px);
+ border-color: #444;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
+}
+
+.skill-category h3 {
+ color: #ffffff;
+ margin-bottom: 1.5rem;
+ font-size: 1.3rem;
+ text-align: center;
+}
+
+.skill-tags {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.8rem;
+ justify-content: center;
+}
+
+.skill-tag {
+ background: linear-gradient(135deg, #333, #444);
+ color: #ffffff;
+ padding: 0.5rem 1rem;
+ border-radius: 25px;
+ font-size: 0.9rem;
+ font-weight: 500;
+ border: 1px solid #555;
+ transition: all 0.3s ease;
+}
+
+.skill-tag:hover {
+ background: linear-gradient(135deg, #444, #555);
+ transform: translateY(-2px);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
+}
+
+/* Featured Project Styles */
+.project-card.featured {
+ border: 2px solid #007acc;
+ background: linear-gradient(135deg, #2a2a2a, #1f1f1f);
+ position: relative;
+ overflow: hidden;
+}
+
+.project-card.featured::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 3px;
+ background: linear-gradient(90deg, #007acc, #00aaff, #007acc);
+ animation: shimmer 2s infinite;
+}
+
+@keyframes shimmer {
+ 0% { transform: translateX(-100%); }
+ 100% { transform: translateX(100%); }
+}
+
+.project-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 1rem;
+}
+
+.featured-badge {
+ background: linear-gradient(135deg, #007acc, #00aaff);
+ color: #ffffff;
+ padding: 0.3rem 0.8rem;
+ border-radius: 15px;
+ font-size: 0.8rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+/* Close button for content sections */
+.close-button {
+ position: absolute;
+ top: 2rem;
+ right: 2rem;
+ background: none;
+ border: none;
+ color: #666;
+ font-size: 2rem;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ z-index: 1001;
+}
+
+.close-button:hover {
+ color: #ffffff;
+ transform: scale(1.1);
+}
+
+/* Scroll Animation Classes */
+.animate-in {
+ animation: slideInUp 0.6s ease forwards;
+}
+
+@keyframes slideInUp {
+ from {
+ opacity: 0;
+ transform: translateY(30px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+/* Enhanced hover effects */
+.project-card {
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.project-card:hover {
+ transform: translateY(-8px) scale(1.02);
+ box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
+}
+
+/* Improved tech tag styling */
+.tech-tag {
+ background: linear-gradient(135deg, #333, #444);
+ color: #ffffff;
+ padding: 0.4rem 0.9rem;
+ border-radius: 20px;
+ font-size: 0.85rem;
+ font-weight: 500;
+ border: 1px solid #444;
+ transition: all 0.3s ease;
+ display: inline-block;
+}
+
+.tech-tag:hover {
+ background: linear-gradient(135deg, #444, #555);
+ transform: translateY(-2px);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
+}
+
+
+/* Responsive Design */
+@media (max-width: 768px) {
+ .container {
+ padding: 1rem;
+ }
+
+ .avatar-section {
+ margin-bottom: 2rem;
+ }
+
+ .navigation {
+ align-items: center;
+ }
+
+ .brand-name {
+ font-size: 2rem;
+ }
+
+ .tagline {
+ font-size: 1rem;
+ }
+
+ .about-text {
+ font-size: 1rem;
+ }
+
+ .nav-button {
+ min-width: 120px;
+ padding: 0.8rem 1.5rem;
+ font-size: 1rem;
+ }
+
+ .content-wrapper {
+ padding: 1rem;
+ }
+
+ .content-wrapper h2 {
+ font-size: 2rem;
+ }
+
+ .project-grid {
+ grid-template-columns: 1fr;
+ gap: 1rem;
+ }
+
+ .skills-grid {
+ grid-template-columns: 1fr;
+ gap: 1rem;
+ }
+
+ .contact-methods {
+ flex-direction: column;
+ align-items: center;
+ gap: 1rem;
+ }
+
+ .disclaimer {
+ bottom: 1rem;
+ left: 1rem;
+ font-size: 0.8rem;
+ }
+
+ .close-button {
+ top: 1rem;
+ right: 1rem;
+ font-size: 1.5rem;
+ }
+}
+
+@media (max-width: 480px) {
+ .avatar {
+ width: 100px;
+ height: 100px;
+ }
+
+ .mug {
+ width: 50px;
+ height: 42px;
+ }
+
+ .mug-body {
+ width: 42px;
+ height: 34px;
+ }
+
+ .brand-name {
+ font-size: 1.8rem;
+ }
+
+ .nav-button {
+ min-width: 100px;
+ padding: 0.7rem 1.2rem;
+ font-size: 0.9rem;
+ }
+}