File size: 3,584 Bytes
57d05ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// Main Script for Silent Comet LDA Website

document.addEventListener('DOMContentLoaded', function() {
    // Initialize Feather Icons
    if (typeof feather !== 'undefined') {
        feather.replace();
    }

    // Tech Stack Data
    const techStack = [
        'Python', 'TensorFlow', 'PyTorch', 'React', 'Node.js', 'AWS',
        'Azure', 'GCP', 'Kubernetes', 'Docker', 'TypeScript', 'Java',
        'PostgreSQL', 'MongoDB', 'Redis', 'Nginx', 'Linux', 'Git',
        'CI/CD', 'Jenkins', 'Terraform', 'Ansible', 'Puppet', 'Spark',
        'Hadoop', 'Kafka', 'RabbitMQ', 'GraphQL', 'REST APIs', 'Selenium',
        'Jest', 'Cypress', 'Wireshark', 'Burp Suite', 'Metasploit',
        'Nmap', 'ELK Stack', 'Prometheus', 'Grafana', 'Splunk',
        'OpenCV', 'spaCy', 'NLTK', 'Hugging Face', 'FastAPI', 'Django',
        'Flask', 'Spring Boot', '.NET', 'Rust', 'Go'
    ];

    // Populate Tech Stack
    const techContainer = document.getElementById('tech-stack-container');
    if (techContainer) {
        techStack.sort(() => Math.random() - 0.5).forEach(tech => {
            const techItem = document.createElement('div');
            techItem.className = 'tech-item';
            techItem.textContent = tech;
            techContainer.appendChild(techItem);
        });
    }

    // Service Card Animation
    const serviceCards = document.querySelectorAll('.service-card');
    serviceCards.forEach(card => {
        card.addEventListener('mouseenter', function() {
            this.style.transform = 'translateY(-8px) scale(1.02)';
        });
        
        card.addEventListener('mouseleave', function() {
            this.style.transform = 'translateY(0) scale(1)';
        });
    });

    // Smooth scrolling for anchor links
    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
        anchor.addEventListener('click', function (e) {
            const href = this.getAttribute('href');
            if (href !== '#') {
                e.preventDefault();
                const targetElement = document.querySelector(href);
                if (targetElement) {
                    targetElement.scrollIntoView({
                        behavior: 'smooth',
                        block: 'start'
                    });
                }
            }
        });
    });

    // Parallax effect for hero section
    window.addEventListener('scroll', function() {
        const scrolled = window.pageYOffset;
        const heroSection = document.querySelector('.relative.min-h-screen');
        if (heroSection) {
            const rate = scrolled * 0.3;
            heroSection.style.transform = `translate3d(0, ${rate}px, 0)`;
        }
    });

    // Intersection Observer for animations
    const observerOptions = {
        threshold: 0.1,
        rootMargin: '0px 0px -50px 0px'
    };

    const observer = new IntersectionObserver(function(entries) {
        entries.forEach(entry => {
            if (entry.isIntersecting) {
                entry.target.style.opacity = '1';
                entry.target.style.transform = 'translateY(0)';
            }
        });
    }, observerOptions);

    // Observe service cards
    serviceCards.forEach(card => {
        card.style.opacity = '0';
        card.style.transform = 'translateY(30px)';
        card.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
        observer.observe(card);
    });

    // Dynamic year for footer
    const yearElement = document.getElementById('current-year');
    if (yearElement) {
        yearElement.textContent = new Date().getFullYear();
    }
});