NOfeck technology

Welcome to Nofeck Technology, your premier IT Solutions partner, conveniently located in the vibrant city of Chennai. Here, innovation meets efficiency, and we proudly collaborate with Bitrix24 to deliver cutting-edge solutions tailored to your business needs.

Our servics range from seamless cloud integrations and cybersecurity fortifications to bespoke software development. At Nofeck , we prioritize client satisfaction, ensuring a collaborative approach that transforms challenges into opportunities.

Our team at Nofeck Technologies is here to assist you through the ever-changing environment of technology with refinement and creativity so that you can get the most out of it.


Our projects

We are the
best


We are honoured to be acknowledged as the best Bitrix24 partner in India, with a dynamic portfolio of over 48 active clients. Our success is rooted in a strategic approach, exceptional client trust, superior support, and unparalleled technical expertise.

Our Strategy:
Our strategy revolves around understanding the unique needs of each client and tailoring Bitrix24 solutions to fit their specific requirements. We focus on:
Personalized Solutions: 
We start by conducting a thorough analysis of our client's business processes and goals. This enables us to customize Bitrix24 features to align perfectly with their operational needs.
Continuous Improvement:
we believe in constant evolution. Our team stays updated with the latest Bitrix24 developments and industry trends to provide innovative and effective solutions.
Proactive Engagement:
We maintain a proactive engagement model, regularly checking in with clients to ensure the solutions are delivering the desired outcomes and making adjustments as necessary.

Why Clients Trust Us:
Our clients trust us for several reasons:
Proven Track Record:
With over 48 active clients, we have a proven history of successful Bitrix24 implementations across various industries.
Client-Centric Approach: Our clients appreciate our commitment to their success. We prioritize their needs and work collaboratively to achieve their business objectives.
Transparency:
We maintain open and honest communication throughout the project lifecycle, ensuring clients are informed and involved at every stage.
Exemplary Support:
Our support services are second to none, providing clients with peace of mind knowing they are in capable hands. We offer:
24/7 Support:
 Our dedicated support team is available around the clock to assist with any issues or queries.
Training and Onboarding:
We provide comprehensive training sessions to ensure clients and their teams are proficient in using Bitrix24.
Ongoing Assistance:
Beyond initial implementation, we offer continuous support and troubleshooting to keep the system running smoothly.
Technical Expertise:
Our technical proficiency is a cornerstone of our success. We excel in:
Custom Development:
Our team of skilled developers can create custom modules and integrations to extend the functionality of Bitrix24, ensuring it meets the unique needs of each client.
System Optimization:
We optimize Bitrix24 for performance, ensuring it operates efficiently and effectively even as business needs evolve.
Security and Compliance: We prioritize data security and compliance, implementing robust measures to protect client information and adhere to industry standards.

Loading Bitrix24 prices. Please wait...

Our clients

feedback of professionals

"Dive into the realm of client acclaim, where every review paints a picture of our excellence."

nofeck's marvel client's

Our partners

Brilliance unfolds when the best partners collaborate, turning visions into realities.

CRM form will load here
/* Hide all Bitrix24 blocks except this one */ .block-wrapper:not(#b8219) { display: none !important; } /* Remove potential body margins from Bitrix24 wrapper */ body { margin: 0; padding: 0; overflow-x: hidden; } /* Override any Bitrix24 background */ .landing-page-wrapper, .landing-main, .landing-content { background: transparent !important; } @import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"); /* ===== RESET & BASE ===== */ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; background: #0a0a0f; color: #e0e0f0; overflow-x: hidden; line-height: 1.6; } a { text-decoration: none; color: inherit; } /* ===== THREE.JS CANVAS ===== */ #particle-canvas { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 0; pointer-events: none; } /* ===== SCROLLBAR ===== */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: #0a0a0f; } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #667eea, #764ba2); border-radius: 3px; } /* ===== GLASS UTILITY ===== */ .glass { background: rgba(255, 255, 255, 0.04); backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 20px; } .glass-strong { background: rgba(15, 15, 30, 0.7); backdrop-filter: blur(30px) saturate(1.6); -webkit-backdrop-filter: blur(30px) saturate(1.6); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 20px; } .glass-card { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(16px) saturate(1.3); -webkit-backdrop-filter: blur(16px) saturate(1.3); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 16px; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .glass-card:hover { background: rgba(255, 255, 255, 0.06); border-color: rgba(102, 126, 234, 0.3); transform: translateY(-4px); box-shadow: 0 20px 60px rgba(102, 126, 234, 0.15); } /* ===== GRADIENT TEXT ===== */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .gradient-bg { background: linear-gradient(135deg, #667eea, #764ba2); } /* ===== NAVBAR ===== */ .navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 0 24px; height: 72px; display: flex; align-items: center; justify-content: space-between; background: rgba(10, 10, 15, 0.75); backdrop-filter: blur(24px) saturate(1.8); -webkit-backdrop-filter: blur(24px) saturate(1.8); border-bottom: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.3s ease; } .navbar.scrolled { background: rgba(10, 10, 15, 0.92); box-shadow: 0 4px 30px rgba(0,0,0,0.3); } .navbar .logo { display: flex; align-items: center; gap: 12px; font-size: 1.3rem; font-weight: 700; } .navbar .logo-icon { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; color: #fff; } .nav-links { display: flex; align-items: center; gap: 8px; list-style: none; } .nav-links a { padding: 8px 16px; border-radius: 10px; font-size: 0.85rem; font-weight: 500; color: rgba(224, 224, 240, 0.7); transition: all 0.3s ease; position: relative; } .nav-links a:hover, .nav-links a.active { color: #fff; background: rgba(255, 255, 255, 0.06); } .nav-links a::after { content: ''; position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%) scaleX(0); width: 60%; height: 2px; background: linear-gradient(90deg, #667eea, #764ba2); border-radius: 1px; transition: transform 0.3s ease; } .nav-links a:hover::after { transform: translateX(-50%) scaleX(1); } .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; background: none; border: none; } .hamburger span { width: 26px; height: 2px; background: #e0e0f0; border-radius: 2px; transition: all 0.3s ease; } .hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } .hamburger.active span:nth-child(2) { opacity: 0; } .hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); } /* ===== HERO ===== */ .hero { position: relative; z-index: 1; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 120px 24px 80px; text-align: center; } .hero-content { max-width: 800px; } .hero-badge { display: inline-block; padding: 8px 20px; border-radius: 50px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 24px; background: rgba(102, 126, 234, 0.15); border: 1px solid rgba(102, 126, 234, 0.25); color: #8899ff; } .hero h1 { font-size: clamp(2.2rem, 6vw, 4rem); font-weight: 800; line-height: 1.15; margin-bottom: 20px; } .hero h1 span { display: block; } .hero p { font-size: clamp(0.95rem, 2vw, 1.15rem); color: rgba(224, 224, 240, 0.7); max-width: 640px; margin: 0 auto 36px; } .hero-btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; } .btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 32px; border-radius: 12px; font-size: 0.95rem; font-weight: 600; border: none; cursor: pointer; transition: all 0.3s ease; } .btn-primary { background: linear-gradient(135deg, #667eea, #764ba2); color: #fff; box-shadow: 0 8px 32px rgba(102, 126, 234, 0.3); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 40px rgba(102, 126, 234, 0.4); } .btn-glass { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: #e0e0f0; } .btn-glass:hover { background: rgba(255, 255, 255, 0.1); transform: translateY(-2px); } .btn-whatsapp { background: #25d366; color: #fff; box-shadow: 0 8px 32px rgba(37, 211, 102, 0.25); } .btn-whatsapp:hover { transform: translateY(-2px); box-shadow: 0 12px 40px rgba(37, 211, 102, 0.35); } /* ===== SECTION COMMON ===== */ section { position: relative; z-index: 1; padding: 100px 24px; } .section-header { text-align: center; margin-bottom: 60px; } .section-header h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 700; margin-bottom: 12px; } .section-header p { color: rgba(224, 224, 240, 0.6); font-size: 1.05rem; max-width: 540px; margin: 0 auto; } .container { max-width: 1200px; margin: 0 auto; } /* ===== ABOUT ===== */ .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; } .about-text h3 { font-size: 1.8rem; font-weight: 700; margin-bottom: 20px; } .about-text p { color: rgba(224, 224, 240, 0.7); margin-bottom: 16px; font-size: 0.95rem; } .about-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; } .stat-card { text-align: center; padding: 28px 16px; } .stat-card .number { font-size: 2rem; font-weight: 800; } .stat-card .label { color: rgba(224, 224, 240, 0.6); font-size: 0.85rem; margin-top: 6px; } /* ===== SERVICES ===== */ .services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; } .service-card { padding: 24px 16px; text-align: center; cursor: default; } .service-card i { font-size: 1.8rem; margin-bottom: 12px; } .service-card h4 { font-size: 0.9rem; font-weight: 600; color: rgba(224, 224, 240, 0.85); } /* ===== PARTNERS / LOGOS ===== */ .partners-scroll { overflow: hidden; position: relative; width: 100%; } .partners-scroll::before, .partners-scroll::after { content: ''; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 2; pointer-events: none; } .partners-scroll::before { left: 0; background: linear-gradient(90deg, #0a0a0f 0%, transparent 100%); } .partners-scroll::after { right: 0; background: linear-gradient(270deg, #0a0a0f 0%, transparent 100%); } .partners-track { display: flex; gap: 40px; animation: scrollPartners 30s linear infinite; width: max-content; } .partner-item { display: flex; align-items: center; gap: 10px; padding: 16px 28px; white-space: nowrap; font-weight: 600; font-size: 0.95rem; color: rgba(224, 224, 240, 0.7); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.04); background: rgba(255,255,255,0.02); } .partner-item i { font-size: 1.4rem; } @keyframes scrollPartners { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } /* ===== STRATEGY ===== */ .strategy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; } .strategy-card { padding: 32px 24px; } .strategy-card .icon-wrap { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: 18px; } .strategy-card h4 { font-size: 1.1rem; font-weight: 600; margin-bottom: 8px; } .strategy-card p { color: rgba(224, 224, 240, 0.6); font-size: 0.9rem; } /* ===== WHY TRUST ===== */ .trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; } .trust-card { padding: 28px 20px; text-align: center; } .trust-card i { font-size: 2rem; margin-bottom: 14px; } .trust-card h4 { font-size: 1rem; font-weight: 600; margin-bottom: 6px; } .trust-card p { color: rgba(224, 224, 240, 0.55); font-size: 0.85rem; } /* ===== PRICING ===== */ .pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; align-items: start; } .pricing-card { padding: 36px 28px; text-align: center; position: relative; overflow: hidden; } .pricing-card.featured { border-color: rgba(102, 126, 234, 0.4); transform: scale(1.03); } .pricing-card.featured .pricing-badge { position: absolute; top: 14px; right: -30px; background: linear-gradient(135deg, #667eea, #764ba2); color: #fff; padding: 4px 36px; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; transform: rotate(45deg); } .pricing-card h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: 16px; } .pricing-card .price { font-size: 2.8rem; font-weight: 800; margin-bottom: 4px; } .pricing-card .price span { font-size: 1rem; font-weight: 400; color: rgba(224, 224, 240, 0.5); } .pricing-card .desc { color: rgba(224, 224, 240, 0.55); font-size: 0.85rem; margin-bottom: 24px; } .pricing-card ul { list-style: none; text-align: left; margin-bottom: 28px; } .pricing-card ul li { padding: 8px 0; font-size: 0.88rem; color: rgba(224, 224, 240, 0.75); display: flex; align-items: center; gap: 10px; } .pricing-card ul li i { color: #667eea; font-size: 0.8rem; width: 18px; } .pricing-card .btn { width: 100%; justify-content: center; } /* ===== CONTACT / FOOTER ===== */ .contact-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; } .contact-info .info-item { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 20px; } .contact-info .info-item i { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; } .contact-info .info-item h4 { font-size: 0.95rem; font-weight: 600; margin-bottom: 2px; } .contact-info .info-item p { color: rgba(224, 224, 240, 0.6); font-size: 0.9rem; } .contact-form .form-group { margin-bottom: 16px; } .contact-form input, .contact-form textarea { width: 100%; padding: 14px 18px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.03); color: #e0e0f0; font-family: inherit; font-size: 0.9rem; transition: border-color 0.3s ease; outline: none; } .contact-form input:focus, .contact-form textarea:focus { border-color: rgba(102, 126, 234, 0.4); } .contact-form textarea { min-height: 120px; resize: vertical; } .contact-form button { width: 100%; } .footer-bottom { margin-top: 60px; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, 0.05); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; } .footer-bottom p { color: rgba(224, 224, 240, 0.4); font-size: 0.85rem; } .social-links { display: flex; gap: 12px; } .social-links a { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; color: rgba(224, 224, 240, 0.5); border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.3s ease; } .social-links a:hover { color: #fff; border-color: rgba(102, 126, 234, 0.3); background: rgba(102, 126, 234, 0.1); } /* ===== RESPONSIVE ===== */ @media (max-width: 768px) { .hamburger { display: flex; } .nav-links { position: fixed; top: 72px; left: 0; right: 0; flex-direction: column; padding: 20px 24px; gap: 4px; background: rgba(10, 10, 15, 0.95); backdrop-filter: blur(24px); border-bottom: 1px solid rgba(255, 255, 255, 0.05); transform: translateY(-110%); opacity: 0; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); pointer-events: none; } .nav-links.open { transform: translateY(0); opacity: 1; pointer-events: all; } .nav-links a { padding: 14px 16px; font-size: 1rem; } .about-grid { grid-template-columns: 1fr; } .contact-wrap { grid-template-columns: 1fr; } .pricing-card.featured { transform: none; } .stats-grid { grid-template-columns: 1fr 1fr; } .footer-bottom { flex-direction: column; text-align: center; } } @media (max-width: 480px) { section { padding: 60px 16px; } .services-grid { grid-template-columns: repeat(2, 1fr); } } /* ===== ANIMATIONS ===== */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .animate-in { opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .animate-in.visible { opacity: 1; transform: translateY(0); } .animate-delay-1 { transition-delay: 0.1s; } .animate-delay-2 { transition-delay: 0.2s; } .animate-delay-3 { transition-delay: 0.3s; } .animate-delay-4 { transition-delay: 0.4s; } /* Floating WhatsApp */ .whatsapp-float { position: fixed; bottom: 24px; right: 24px; z-index: 999; width: 56px; height: 56px; border-radius: 50%; background: #25d366; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; box-shadow: 0 8px 32px rgba(37, 211, 102, 0.35); transition: all 0.3s ease; animation: pulseWhatsapp 2s infinite; } .whatsapp-float:hover { transform: scale(1.1); box-shadow: 0 12px 40px rgba(37, 211, 102, 0.5); } @keyframes pulseWhatsapp { 0%, 100% { box-shadow: 0 8px 32px rgba(37, 211, 102, 0.3); } 50% { box-shadow: 0 8px 48px rgba(37, 211, 102, 0.55); } }
Bitrix24 Gold Partner

Welcome to Nofeck Technology your premier IT Solutions partner

Empowering businesses with cloud integrations, cybersecurity, and bespoke software development. The best Bitrix24 partner in India, with over 48 active clients and growing.

About Nofeck Technology

Chennai-based IT solutions provider delivering enterprise-grade digital transformation

Chennai's Premier IT Partner

Welcome to Nofeck Technology, your premier IT Solutions partner based in Chennai, India. We specialize in cloud integrations, cybersecurity, and bespoke software development tailored to elevate your business operations.

As a proud Bitrix24 Gold Partner, we bring enterprise-level expertise to businesses of all sizes. With over 48 active clients, we are recognized as the best Bitrix24 partner in India, delivering results that drive growth.

Working Hours: Mon-Sat 08:00-18:00

48+
Active Clients
Gold
Bitrix24 Partner
15+
Platform Integrations
6+
Years Expertise

Our Services

Comprehensive IT solutions powered by industry-leading platforms

Bitrix24

Kommo

Monday

Sendpulse

WATI

Wazzup

MyOperator

CallHippo

TataTele

Knack

Easbuzz

Poptin

AI

Microsoft 0365

Cisco

SCIQUS AMS

Our Partner Ecosystem

Trusted integrations and platforms we work with

Bitrix24
Kommo
Monday
Sendpulse
WATI
Wazzup
MyOperator
CallHippo
TataTele
Knack
Easbuzz
Poptin
AI
Microsoft 0365
Cisco
SCIQUS AMS
Bitrix24
Kommo
Monday
Sendpulse
WATI
Wazzup
MyOperator
CallHippo
TataTele
Knack
Easbuzz
Poptin
AI
Microsoft 0365
Cisco
SCIQUS AMS

Our Strategy

How we deliver excellence to every client partnership

Personalized Solutions

Every business is unique. We craft tailored strategies that align with your specific goals and challenges.

Continuous Improvement

We never stop optimizing. Our iterative approach ensures your systems evolve with your growing business.

Proactive Engagement

We don't wait for issues — we anticipate needs and provide solutions before they become problems.

Why Trust Us

What sets Nofeck Technology apart from the rest

Proven Track Record

48+ active clients trust our expertise and delivery excellence.

Client-Centric

Your success is our mission. We prioritize your business outcomes.

Transparency

Clear communication, honest timelines, no hidden costs.

Exemplary Support

Mon-Sat 08:00-18:00 support with rapid response times.

Technical Expertise

Bitrix24 Gold Partner with deep expertise across 15+ platforms.

Our Pricing Plans

Flexible plans designed to scale with your business needs

Free

₹0
Get started with essential tools
  • Basic CRM Access
  • Email Support
  • 1 User
  • 1 GB Storage
Get Started

Basic

₹999/mo
For growing small businesses
  • Full CRM Suite
  • Email & Phone Support
  • Up to 5 Users
  • 5 GB Storage
  • Basic Integrations
Choose Plan

Enterprise

Custom
Tailored for large organizations
  • Unlimited Everything
  • Dedicated Account Manager
  • Unlimited Users
  • Unlimited Storage
  • Bespoke Development
  • On-Premise Option
  • SLA Guarantee
Contact Us

Get in Touch

Let's discuss how Nofeck Technology can transform your business

Our Location

Chennai, India

Working Hours

Mon-Sat 08:00-18:00

// ===== PARTICLE SYSTEM ===== (function initParticles() { const canvas = document.getElementById('particle-canvas'); const scene = new THREE.Scene(); scene.background = new THREE.Color(0x0a0a0f); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.z = 30; const renderer = new THREE.WebGLRenderer({ canvas: canvas, alpha: false, antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)); // Create particle geometry const count = 2000; const positions = new Float32Array(count * 3); const colors = new Float32Array(count * 3); const sizes = new Float32Array(count); const color1 = new THREE.Color(0x667eea); // purple-blue const color2 = new THREE.Color(0x764ba2); // deeper purple const color3 = new THREE.Color(0x4a6cf7); // bright blue for (let i = 0; i < count="" i="" const="" i3="" 3="" spread="" in="" a="" sphere="" radius="" 20="" math="" random="" 15="" theta="" pi="" 2="" phi="" acos="" -="" 1="" positions="" sin="" cos="" color="" from="" palette="" choice="" c="">< 0="" 4="" ?="" color1="" :="" choice="">< 0="" 7="" ?="" color2="" :="" color3="" colors="" i3="" c="" r="" 1="" g="" 2="" b="" sizes="" i="" 05="" math="" random="" 15="" const="" geometry="" new="" three="" buffergeometry="" setattribute="" position="" bufferattribute="" positions="" 3="" color="" size="" create="" texture="" for="" particles="" texturecanvas="" document="" createelement="" canvas="" width="" 64="" height="" ctx="" getcontext="" 2d="" gradient="" createradialgradient="" 32="" addcolorstop="" rgba="" 255="" 8="" fillstyle="" fillrect="" particletexture="" canvastexture="" material="" pointsmaterial="" size:="" 35="" map:="" blending:="" additiveblending="" depthwrite:="" false="" transparent:="" true="" vertexcolors:="" opacity:="" points="" scene="" add="" mouse="" interaction="" let="" mousex="" mousey="" targetrotx="" targetroty="" addeventlistener="" mousemove="" e=""> { mouseX = (e.clientX / window.innerWidth) * 2 - 1; mouseY = -(e.clientY / window.innerHeight) * 2 + 1; }); // Resize window.addEventListener('resize', () => { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); }); // Animate function animate() { requestAnimationFrame(animate); // Smooth mouse follow targetRotX += (mouseY * 0.3 - targetRotX) * 0.02; targetRotY += (mouseX * 0.3 - targetRotY) * 0.02; particles.rotation.x = targetRotX; particles.rotation.y = targetRotY; // Slow self-rotation particles.rotation.y += 0.0005; renderer.render(scene, camera); } animate(); })(); // ===== NAVBAR SCROLL EFFECT ===== const navbar = document.getElementById('navbar'); let lastScroll = 0; window.addEventListener('scroll', () => { const scrollY = window.scrollY; if (scrollY > 50) { navbar.classList.add('scrolled'); } else { navbar.classList.remove('scrolled'); } lastScroll = scrollY; }); // ===== HAMBURGER MENU ===== const hamburger = document.getElementById('hamburger'); const navLinks = document.getElementById('navLinks'); hamburger.addEventListener('click', () => { hamburger.classList.toggle('active'); navLinks.classList.toggle('open'); const isOpen = navLinks.classList.contains('open'); hamburger.setAttribute('aria-expanded', isOpen); }); // Close nav on link click navLinks.querySelectorAll('a').forEach(link => { link.addEventListener('click', () => { hamburger.classList.remove('active'); navLinks.classList.remove('open'); hamburger.setAttribute('aria-expanded', 'false'); }); }); // ===== ACTIVE NAV LINK ON SCROLL ===== const sections = document.querySelectorAll('section[id]'); const navAnchors = navLinks.querySelectorAll('a'); function updateActiveLink() { let current = ''; sections.forEach(section => { const top = section.offsetTop - 120; const bottom = top + section.offsetHeight; if (window.scrollY >= top && window.scrollY < bottom="" current="" section="" getattribute="" id="" navanchors="" foreach="" a=""> { a.classList.remove('active'); if (a.getAttribute('href') === '#' + current) { a.classList.add('active'); } }); } window.addEventListener('scroll', updateActiveLink); window.addEventListener('load', updateActiveLink); // ===== SCROLL ANIMATION ===== const animateElements = document.querySelectorAll('.animate-in'); const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); } }); }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); animateElements.forEach(el => observer.observe(el)); // ===== SMOOTH SCROLL FOR NAV ===== document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { const href = this.getAttribute('href'); if (href === '#') return; e.preventDefault(); const target = document.querySelector(href); if (target) { target.scrollIntoView({ beh * avior: 'smooth', block: 'start' }); } }); });