Help
RSS
API
Feed
Maltego
Contact
Domain > webbfusion.tech
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-09-17
148.135.128.233
(
ClassC
)
2025-11-17
148.135.128.160
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Mon, 17 Nov 2025 04:06:50 GMTContent-Type: text/htmlContent-Length: 795Connection: keep-aliveLocation: https://webbfusion.tech/platform: hostingerpanel: hpanelContent-Security-Policy: upgrade-insecure-requestsServer: hcdnalt-svc: h3:443; ma86400x-hcdn-request-id: 65273fe3ef02bed4f3bc5f1a0d859a6b-phx-edge8x-hcdn-cache-status: MISSx-hcdn-upstream-rt: 0.481 !DOCTYPE html>html styleheight:100%>head>meta nameviewport contentwidthdevice-width, initial-scale1, shrink-to-fitno />title> 301 Moved Permanently/title>style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}/style>/head>body stylecolor: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;>div styleheight:auto; min-height:100%; > div styletext-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;> h1 stylemargin:0; font-size:150px; line-height:150px; font-weight:bold;>301/h1>h2 stylemargin-top:20px;font-size: 30px;>Moved Permanently/h2>p>The document has been permanently moved./p>/div>/div>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Mon, 17 Nov 2025 04:06:51 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingLast-Modified: Sun, 14 Sep 2025 18:22:34 GMTEtag: W/11a81-68c707ea-6cdec28256103a9d;gzplatform: hostingerpanel: hpanelContent-Security-Policy: upgrade-insecure-requestsServer: hcdnalt-svc: h3:443; ma86400x-hcdn-request-id: 0bb11eecd70cf3169bf0e8fd8e90fc3e-phx-edge7x-hcdn-cache-status: DYNAMICx-hcdn-upstream-rt: 0.822 !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>WebFusion – Software & Digital Solutions/title> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css> link hrefhttps://fonts.googleapis.com/css2?familyPoppins:wght@300;400;500;600;700&familyRoboto+Mono:wght@300;400;500&displayswap relstylesheet> script srchttps://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js>/script> script srchttps://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js>/script> script srchttps://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js>/script> style> :root { --primary: #6e44ff; --secondary: #00e5ff; --accent: #ff2e63; --dark: #1a1a2e; --darker: #0d0d1a; --light: #f4f4f8; --gray: #8a8a9c; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Poppins, sans-serif; background-color: var(--darker); color: var(--light); overflow-x: hidden; line-height: 1.6; } h1, h2, h3, h4 { font-family: Roboto Mono, monospace; font-weight: 600; margin-bottom: 1rem; } .container { width: 90%; max-width: 1200px; margin: 0 auto; padding: 0 15px; } section { padding: 5rem 0; position: relative; } .btn { display: inline-block; padding: 12px 28px; background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; border: none; border-radius: 50px; font-weight: 500; text-decoration: none; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(110, 68, 255, 0.3); } .btn:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(110, 68, 255, 0.5); } .btn-outline { background: transparent; border: 2px solid var(--primary); color: var(--primary); } .btn-outline:hover { background: var(--primary); color: white; } /* Header & Navigation */ header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; padding: 1.2rem 0; background: rgba(26, 26, 46, 0.9); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } nav { display: flex; justify-content: space-between; align-items: center; } .logo { font-size: 1.8rem; font-weight: 700; color: white; text-decoration: none; } .logo span { background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .nav-links { display: flex; list-style: none; } .nav-links li { margin-left: 2rem; } .nav-links a { color: var(--light); text-decoration: none; font-weight: 500; transition: color 0.3s ease; } .nav-links a:hover { color: var(--secondary); } .hamburger { display: none; cursor: pointer; } /* Hero Section */ #hero { min-height: 100vh; display: flex; align-items: center; padding-top: 80px; overflow: hidden; position: relative; } #particles-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; } .hero-content { max-width: 800px; margin: 0 auto; text-align: center; z-index: 2; } .hero-content h1 { font-size: 3.5rem; margin-bottom: 1.5rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .hero-content p { font-size: 1.2rem; margin-bottom: 2rem; color: var(--gray); } .hero-buttons { display: flex; justify-content: center; gap: 1rem; margin-bottom: 2rem; } .contact-info { display: flex; justify-content: center; gap: 2rem; margin-top: 2rem; } .contact-info div { display: flex; align-items: center; gap: 0.5rem; } /* About Section */ #about { background: var(--dark); position: relative; overflow: hidden; } .about-content { display: flex; align-items: center; gap: 4rem; } .about-text { flex: 1; } .about-text h2 { font-size: 2.5rem; margin-bottom: 1.5rem; } .about-text p { margin-bottom: 1.5rem; color: var(--gray); } .about-visual { flex: 1; height: 300px; background: linear-gradient(135deg, rgba(110, 68, 255, 0.2), rgba(0, 229, 255, 0.2)); border-radius: 20px; display: flex; justify-content: center; align-items: center; position: relative; overflow: hidden; } .floating-card { width: 200px; height: 200px; background: rgba(255, 255, 255, 0.1); border-radius: 15px; backdrop-filter: blur(10px); display: flex; justify-content: center; align-items: center; flex-direction: column; padding: 20px; animation: float 6s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(5deg); } } /* Services Section */ #services h2 { text-align: center; font-size: 2.5rem; margin-bottom: 3rem; } /* make whole card clickable and remove link styles */ .service-link { display: block; text-decoration: none; color: inherit; } .service-link:focus { outline: 2px solid rgba(0,229,255,0.25); border-radius: 12px; } .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .service-card { background: rgba(255, 255, 255, 0.05); border-radius: 15px; padding: 2rem; text-align: center; transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; position: relative; overflow: hidden; } .service-card:hover { transform: translateY(-10px); box-shadow: 0 10px 30px rgba(110, 68, 255, 0.2); } .service-card i { font-size: 3rem; margin-bottom: 1.5rem; color: var(--secondary); } .service-card h3 { font-size: 1.5rem; margin-bottom: 1rem; } .service-card p { color: var(--gray); } /* Pricing Section */ #pricing { background: var(--dark); } #pricing h2 { text-align: center; font-size: 2.5rem; margin-bottom: 3rem; } .pricing-cards { display: flex; justify-content: center; gap: 2rem; flex-wrap: wrap; } .pricing-card { background: rgba(255, 255, 255, 0.05); border-radius: 15px; padding: 2.5rem 2rem; text-align: center; flex: 1; min-width: 280px; max-width: 350px; transition: transform 0.3s ease; position: relative; overflow: hidden; } .pricing-card:hover { transform: translateY(-10px); } .pricing-card h3 { font-size: 1.8rem; margin-bottom: 1rem; } .price { font-size: 2.5rem; font-weight: 700; margin: 1.5rem 0; color: var(--secondary); } .features { list-style: none; margin: 2rem 0; text-align: left; } .features li { margin-bottom: 0.8rem; display: flex; align-items: center; } .features li i { color: var(--secondary); margin-right: 0.5rem; } /* Contact Section */ #contact h2 { text-align: center; font-size: 2.5rem; margin-bottom: 3rem; } .contact-container { display: flex; gap: 4rem; } .contact-info { flex: 1; display: flex; flex-direction: column; gap: 1.5rem; } .contact-info div { display: flex; align-items: center; gap: 1rem; } .contact-info i { font-size: 1.5rem; color: var(--secondary); } .contact-form { flex: 1; } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 500; } .form-group input, .form-group textarea { width: 100%; padding: 12px 15px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: white; font-family: Poppins, sans-serif; } .form-group textarea { min-height: 150px; resize: vertical; } /* Footer */ footer { background: var(--dark); padding: 3rem 0; text-align: center; } .social-links { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 2rem; } .social-links a { display: flex; justify-content: center; align-items: center; width: 45px; height: 45px; background: rgba(255, 255, 255, 0.05); border-radius: 50%; color: white; font-size: 1.2rem; transition: all 0.3s ease; } .social-links a:hover { background: var(--primary); transform: translateY(-5px); } .footer-links { display: flex; justify-content: center; gap: 2rem; margin-bottom: 2rem; } .footer-links a { color: var(--gray); text-decoration: none; transition: color 0.3s ease; } .footer-links a:hover { color: var(--secondary); } .copyright { color: var(--gray); font-size: 0.9rem; } /* Admin Login Modal */ .admin-login-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px); z-index: 2000; justify-content: center; align-items: center; } .admin-login-content { background: var(--dark); padding: 2.5rem; border-radius: 15px; width: 90%; max-width: 450px; text-align: center; position: relative; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); } .admin-login-content h2 { margin-bottom: 2rem; color: var(--secondary); } .close-modal { position: absolute; top: 15px; right: 15px; font-size: 1.5rem; cursor: pointer; color: var(--gray); } /* Admin Dashboard */ .admin-dashboard { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--darker); z-index: 2000; overflow-y: auto; } .dashboard-header { background: var(--dark); padding: 1.2rem 2rem; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .dashboard-nav { display: flex; gap: 2rem; } .dashboard-nav a { color: var(--light); text-decoration: none; font-weight: 500; transition: color 0.3s ease; } .dashboard-nav a:hover { color: var(--secondary); } .dashboard-content { padding: 2rem; } .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; } .stat-card { background: rgba(255, 255, 255, 0.05); border-radius: 10px; padding: 1.5rem; text-align: center; } .stat-card h3 { font-size: 1.2rem; margin-bottom: 1rem; color: var(--gray); } .stat-card .number { font-size: 2.5rem; font-weight: 700; color: var(--secondary); } /* dashboard-section */ .dashboard-section { background: rgba(255, 255, 255, 0.05); border-radius: 10px; padding: 1.5rem; margin-bottom: 2rem; } .dashboard-section h3 { font-size: 1.5rem; margin-bottom: 1.5rem; color: var(--secondary); } table { width: 100%; border-collapse: collapse; } table th, table td { padding: 1rem; text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } table th { color: var(--secondary); font-weight: 600; } .service-chart { display: flex; align-items: flex-end; height: 200px; gap: 1rem; padding: 1rem; border-radius: 10px; background: rgba(0, 0, 0, 0.2); } .chart-bar { flex: 1; background: var(--primary); border-radius: 5px 5px 0 0; position: relative; transition: height 0.5s ease; } .chart-bar span { position: absolute; bottom: -25px; left: 0; width: 100%; text-align: center; font-size: 0.8rem; } /* All Clients Block (NEW) */ .clients-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-top: 1rem; } .client-card { background: rgba(255, 255, 255, 0.04); padding: 1rem; border-radius: 10px; text-align: left; } .client-card h4 { margin: 0 0 0.5rem 0; color: var(--secondary); font-size: 1.1rem; } .client-card p { margin: 0.25rem 0; color: var(--gray); font-size: 0.95rem; } .client-actions { margin-top: 0.75rem; display: flex; gap: 0.5rem; } /* 3D Alert Popup */ .animated-alert-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 3000; justify-content: center; align-items: center; perspective: 1200px; } .animated-alert-overlay.show { display: flex; } .animated-alert-card { width: 320px; max-width: calc(100% - 40px); background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)); border-radius: 12px; padding: 18px; color: var(--light); transform-style: preserve-3d; box-shadow: 0 20px 60px rgba(0,0,0,0.6); text-align: center; position: relative; } .animated-alert-card h4 { margin-bottom: 8px; color: var(--secondary); } .animated-alert-card p { color: var(--gray); margin-bottom: 12px; } .animated-alert-close { position: absolute; top: 10px; right: 10px; background: transparent; border: none; color: var(--gray); font-size: 18px; cursor: pointer; } @keyframes popIn3d { 0% { transform: translateY(30px) rotateX(30deg) translateZ(-200px) scale(.9); opacity: 0; } 60% { transform: translateY(-10px) rotateX(5deg) translateZ(40px) scale(1.03); opacity: 1; } 100% { transform: translateY(0) rotateX(0deg) translateZ(0) scale(1); opacity: 1; } } @keyframes popOut3d { 0% { transform: translateY(0) rotateX(0deg) translateZ(0) scale(1); opacity: 1; } 100% { transform: translateY(30px) rotateX(30deg) translateZ(-200px) scale(.9); opacity: 0; } } .animated-alert-card.animate-in { animation: popIn3d 420ms cubic-bezier(.2,.9,.2,1); } .animated-alert-card.animate-out { animation: popOut3d 320ms ease-in; } /* Service detail modal */ .service-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.7); z-index: 4000; justify-content: center; align-items: center; padding: 20px; } .service-modal-overlay.show { display: flex; } .service-modal-card { width: 920px; max-width: 100%; background: linear-gradient(180deg, rgba(18,18,34,0.95), rgba(26,26,46,0.98)); border-radius: 12px; padding: 24px; box-shadow: 0 30px 80px rgba(0,0,0,0.6); color: var(--light); transform-origin: center; } .service-modal-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 12px; } .service-modal-header h3 { margin: 0; color: var(--secondary); } .service-modal-close { background: transparent; border: none; color: var(--gray); font-size: 22px; cursor: pointer; } .service-modal-body { display: grid; grid-template-columns: 1fr 360px; gap: 18px; align-items: start; } .service-modal-desc { color: var(--gray); line-height: 1.5; } .service-pricing { background: rgba(255,255,255,0.03); padding: 12px; border-radius: 10px; } .pricing-tier { padding: 10px; border-radius: 8px; margin-bottom: 10px; background: linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); } .pricing-tier h4 { margin: 0 0 6px 0; color: var(--primary); } .pricing-tier .price { font-weight: 700; color: var(--secondary); } .pricing-features { list-style: none; padding: 0; margin: 6px 0 0 0; color: var(--gray); font-size: 0.95rem; } .service-modal-cta { display: flex; gap: 8px; margin-top: 8px; } @media (max-width: 880px) { .service-modal-body { grid-template-columns: 1fr; } } /* Responsive Styles */ @media (max-width: 992px) { .about-content { flex-direction: column; gap: 2rem; } .contact-container { flex-direction: column; gap: 2rem; } .hero-content h1 { font-size: 2.8rem; } } @media (max-width: 768px) { .nav-links { display: none; } .hamburger { display: block; } .hero-buttons { flex-direction: column; } .contact-info { flex-direction: column; gap: 1rem; } .pricing-cards { flex-direction: column; align-items: center; } .pricing-card { width: 100%; } .hero-content h1 { font-size: 2.2rem; } .footer-links { flex-wrap: wrap; } } /style>/head>body> !-- Header & Navigation --> header> div classcontainer> nav> a href# classlogo>Webspan>Fusion/span>/a> ul classnav-links> li>a href#hero>Home/a>/li> li>a href#about>About/a>/li> li>a href#services>Services/a>/li> li>a href#pricing>Pricing/a>/li> li>a href#contact>Contact/a>/li> li>a href# idadmin-login-link>Admin/a>/li> /ul> div classhamburger> i classfas fa-bars>/i> /div> /nav> /div> /header> !-- Hero Section --> section idhero> canvas idparticles-canvas>/canvas> div classcontainer> div classhero-content> h1>We Build Digital Experiences That Perform/h1> p>Web Development | SEO | AI/ML | UI/UX & More/p> p>🎁 2 Months FREE Maintenance On All Projects/p> div classhero-buttons> a href#contact classbtn>Get a Free Quote/a> a href#services classbtn btn-outline>View Services/a> /div> div classcontact-info> div> i classfas fa-envelope>/i> span>webbfusiontech@gmail.com/span> /div> div> i classfas fa-phone>/i> span>8839475867/span> /div> /div> /div> /div> /section> !-- About Section --> section idabout> div classcontainer> div classabout-content> div classabout-text> h2>About Us/h2> p>At WebFusion, we specialize in smart, scalable, and beautifully crafted digital solutions. From responsive websites to intelligent AI systems and intuitive UI/UX design — our expert team builds products that work and wow./p> p>Backed by experience and driven by innovation, we help businesses transform their digital presence and achieve their goals./p> a href#contact classbtn>Work With Us/a> /div> div classabout-visual> div classfloating-card> img srchttps://images.unsplash.com/photo-1522071820081-009f0129c71c?ixlibrb-4.0.3&ixidM3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&autoformat&fitcrop&w1200&q80 altWebFusion Team> h3>Innovation/h3> /div> /div> /div> /div> /section> !-- Services Section --> section idservices> div classcontainer> h2>Our Services/h2> div classservices-grid> a hrefweb-development.html classservice-link aria-labelWeb Development> div classservice-card> i classfas fa-code>/i> h3>Web Development/h3> p>Custom websites and web applications built with the latest technologies for optimal performance./p> /div> /a> a hrefseo.html classservice-link aria-labelSEO Optimization> div classservice-card> i classfas fa-search>/i> h3>SEO Optimization/h3> p>Boost your visibility on search engines and drive more traffic to your website with our SEO strategies./p> /div> /a> a hrefai-ml.html classservice-link aria-labelai-ml> div classservice-card> i classfas fa-robot>/i> h3>AI & ML Solutions/h3> p>Intelligent systems that learn from your data and automate processes for better efficiency./p> /div> /a> a hrefui-ux.html classservice-link aria-labelui-ux> div classservice-card> i classfas fa-paint-brush>/i> h3>UI/UX Design/h3> p>Beautiful and intuitive interfaces that provide exceptional user experiences and drive engagement./p> /div> /a> a hrefmobile-app.html classservice-link aria-labelmobile-app> div classservice-card> i classfas fa-mobile-alt>/i> h3>Mobile App Development/h3> p>Native and cross-platform mobile applications that deliver seamless experiences on any device./p> /div> /a> a hrefcustom-software.html classservice-link aria-labelcustom-software> div classservice-card> i classfas fa-cogs>/i> h3>Custom Software/h3> p>Tailor-made software solutions designed to address your specific business needs and challenges./p> /div> /a> /div> /div> /section> !-- Pricing Section --> section idpricing> div classcontainer> h2>Pricing Plans/h2> div classpricing-cards> div classpricing-card> h3>Starter Plan/h3> div classprice>₹15,000/div> ul classfeatures> li>i classfas fa-check>/i> 5 Pages Website/li> li>i classfas fa-check>/i> Mobile Responsive/li> li>i classfas fa-check>/i> Basic SEO/li> li>i classfas fa-check>/i> 2-Month Maintenance/li> /ul> a href#contact classbtn>Get Started/a> /div> div classpricing-card> h3>Growth Plan/h3> div classprice>₹45,000/div> ul classfeatures> li>i classfas fa-check>/i> 10-15 Pages/li> li>i classfas fa-check>/i> UI/UX Custom Design/li> li>i classfas fa-check>/i> Advanced SEO/li> li>i classfas fa-check>/i> AI Chatbot Integration/li> li>i classfas fa-check>/i> 2-Month Maintenance/li> /ul> a href#contact classbtn>Get Started/a> /div> div classpricing-card> h3>Enterprise Plan/h3> div classprice>₹1,25,000+/div> ul classfeatures> li>i classfas fa-check>/i> Full-Stack Development/li> li>i classfas fa-check>/i> AI/ML Integration/li> li>i classfas fa-check>/i> Web + App + API/li> li>i classfas fa-check>/i> CRM / ERP Integrations/li> li>i classfas fa-check>/i> Dedicated Support/li> /ul> a href#contact classbtn>Get Started/a> /div> /div> /div> /section> style>/style> !-- Contact Section --> section idcontact> div classcontainer> h2>Contact Us/h2> div classcontact-container> div classcontact-info> div> i classfas fa-envelope>/i> span>webbfusiontech@gmail.com/span> /div> div> i classfas fa-phone>/i> span>8839475867/span> /div> div> i classfas fa-map-marker-alt>/i> span>Digital Solutions for the Modern World/span> /div> div> i classfas fa-clock>/i> span>Mon - Fri: 9AM - 6PM/span> /div> /div> form classcontact-form idcontact-form> div classform-group> label forname>Your Name/label> input typetext idname required> /div> div classform-group> label foremail>Your Email/label> input typeemail idemail required> /div> div classform-group> label forservice>Service Interested In/label> select idservice required> option value>Select a service/option> option valueWeb Development>Web Development/option> option valueSEO>SEO/option> option valueAI/ML>AI/ML/option> option valueUI/UX>UI/UX/option> option valueMobile App>Mobile App Development/option> option valueCustom Software>Custom Software/option> /select> /div> div classform-group> label formessage>Your Message/label> textarea idmessage required>/textarea> /div> button typesubmit classbtn>Send Message/button> /form> /div> /div> /section> !-- Footer --> footer> div classcontainer> div classsocial-links> a href#>i classfab fa-facebook-f>/i>/a> a href#>i classfab fa-twitter>/i>/a> a href#>i classfab fa-instagram>/i>/a> a href#>i classfab fa-linkedin-in>/i>/a> a href#>i classfab fa-github>/i>/a> /div> div classfooter-links> a href#hero>Home/a> a href#about>About/a> a href#services>Services/a> a href#pricing>Pricing/a> a href#contact>Contact/a> a href#>Privacy Policy/a> a href#>Terms of Service/a> /div> p classcopyright>© 2025 WebFusion. All Rights Reserved./p> /div> /footer> !-- Admin Login Modal --> div classadmin-login-modal idadmin-login-modal> div classadmin-login-content> span classclose-modal>×/span> h2>Admin Login/h2> form idadmin-login-form> div classform-group> label foradmin-phone>Phone Number/label> input typetel idadmin-phone placeholderEnter your phone number required> /div> button typesubmit classbtn>Send OTP/button> /form> div idotp-section styledisplay: none; margin-top: 20px;> div classform-group> label foradmin-otp>Enter OTP/label> input typetext idadmin-otp placeholderEnter OTP required> /div> button typebutton idverify-otp classbtn>Verify OTP/button> /div> /div> /div> !-- Admin Dashboard --> div classadmin-dashboard idadmin-dashboard> div classdashboard-header> h2>WebFusion Admin Dashboard/h2> div classdashboard-nav> a href# iddashboard-link>Dashboard/a> a href# idclients-link>Clients/a> a href# idsettings-link>Settings/a> a href# idlogout-link>Logout/a> /div> /div> div classdashboard-content> !-- Panels: dashboard / clients / settings --> div iddashboard-panel> div classstats-grid> div classstat-card> h3>Total Visitors/h3> div classnumber idtotal-visitors>0/div> /div> div classstat-card> h3>Contact Requests/h3> div classnumber idtotal-contacts>0/div> /div> div classstat-card> h3>Services Interest/h3> div classnumber idtotal-services>0/div> /div> /div> div classdashboard-section> h3>Services Interest Distribution/h3> div classservice-chart idservice-chart> !-- Chart bars will be generated by JavaScript --> /div> /div> div classdashboard-section> h3>Recent Contact Requests/h3> table> thead> tr> th>Name/th> th>Email/th> th>Service/th> th>Date/th> /tr> /thead> tbody idcontacts-table> !-- Table rows will be generated by JavaScript --> /tbody> /table> /div> /div> !-- #dashboard-panel --> div idclients-panel styledisplay:none;> div classdashboard-section> h3>Client Management/h3> table> thead> tr> th>ID/th> th>Name/th> th>Email/th> th>Interests/th> th>Actions/th> /tr> /thead> tbody idclients-table> !-- Table rows will be generated by JavaScript --> /tbody> /table> /div> !-- NEW: All Clients Block --> div classdashboard-section> h3>All Clients/h3> div idall-clients-block classclients-grid> !-- Client cards generated by JavaScript --> /div> /div> /div> !-- #clients-panel --> div idsettings-panel styledisplay:none;> div classdashboard-section> h3>Admin Settings/h3> form idadmin-settings-form> div classform-group> label forsettings-name>Admin Name/label> input typetext idsettings-name required> /div> div classform-group> label forsettings-phone>Phone Number/label> input typetel idsettings-phone required> /div> div classform-group> label forsettings-password>Password / OTP/label> input typetext idsettings-password placeholderEnter new password or OTP required> /div> button typesubmit classbtn>Save Changes/button> /form> /div> /div> !-- #settings-panel --> /div> /div> !-- 3D Animated Alert --> div idanimated-alert classanimated-alert-overlay aria-hiddentrue> div classanimated-alert-card roledialog aria-livepolite> button classanimated-alert-close idanimated-alert-close aria-labelClose>×/button> h4 idanimated-alert-title>Notice/h4> p idanimated-alert-message>Message goes here/p> /div> /div> !-- Service Detail Modal --> div idservice-modal classservice-modal-overlay aria-hiddentrue> div classservice-modal-card roledialog aria-modaltrue aria-labelledbyservice-modal-title> div classservice-modal-header> h3 idservice-modal-title>Service/h3> button classservice-modal-close idservice-modal-close aria-labelClose>×/button> /div> div classservice-modal-body> div> p idservice-modal-desc classservice-modal-desc>/p> div idservice-modal-extra stylemargin-top:12px;color:var(--gray)>/div> /div> aside> div classservice-pricing idservice-pricing-list aria-livepolite> !-- Pricing tiers injected here --> /div> div classservice-modal-cta> button classbtn idservice-contact-btn>Contact Us/button> button classbtn btn-outline idservice-quote-btn>Request Quote/button> /div> /aside> /div> /div> /div> !-- optional: deter casual view-source / devtools --> script> (function(){ // polite UI message helper (uses your existing show3DAlert if present) function blockNotice() { if (window.show3DAlert) show3DAlert(Action blocked., Notice, 1500); else alert(Action blocked.); } // disable right click document.addEventListener(contextmenu, function(e){ e.preventDefault(); blockNotice(); }, { passive: false }); // disable common devtools / view-source shortcuts document.addEventListener(keydown, function(e){ // block Ctrl+U, Ctrl+Shift+I, Ctrl+Shift+C, Ctrl+Shift+J, F12 if ((e.ctrlKey && (e.key u || e.key U)) || (e.ctrlKey && e.shiftKey && (e.key I || e.key i || e.key C || e.key c || e.key J || e.key j)) || e.key F12) { e.preventDefault(); e.stopPropagation(); blockNotice(); } }, true); })(); /script> script> // Initialize localStorage data if not exists if (!localStorage.getItem(webFusionVisitors)) { localStorage.setItem(webFusionVisitors, 0); } if (!localStorage.getItem(webFusionContacts)) { localStorage.setItem(webFusionContacts, JSON.stringify()); } if (!localStorage.getItem(webFusionServices)) { const initialServices { Web Development: 0, SEO: 0, AI/ML: 0, UI/UX: 0, Mobile App: 0, Custom Software: 0 }; localStorage.setItem(webFusionServices, JSON.stringify(initialServices)); } if (!localStorage.getItem(webFusionAdmins)) { // Default admins with phone numbers and a simple password/OTP const admins { phone: 8839475867, otp: 0456 }, { phone: 7828584150, otp: 0456 } ; localStorage.setItem(webFusionAdmins, JSON.stringify(admins)); } // Track page visit function trackVisit() { let visitors parseInt(localStorage.getItem(webFusionVisitors)); visitors++; localStorage.setItem(webFusionVisitors, visitors.toString()); document.getElementById(total-visitors).textContent visitors; } // 3D alert helper (function(){ const overlay document.getElementById(animated-alert); const card overlay.querySelector(.animated-alert-card); const titleEl document.getElementById(animated-alert-title); const msgEl document.getElementById(animated-alert-message); const closeBtn document.getElementById(animated-alert-close); let hideTimer null; function show3DAlert(message, title Notice, duration 3000) { if (!overlay) return; titleEl.textContent title; msgEl.textContent message; overlay.classList.add(show); overlay.setAttribute(aria-hidden,false); card.classList.remove(animate-out); // force reflow to restart animation void card.offsetWidth; card.classList.add(animate-in); // clear previous timer if (hideTimer) clearTimeout(hideTimer); hideTimer setTimeout(() > hide3DAlert(), duration); } function hide3DAlert() { if (!overlay) return; card.classList.remove(animate-in); card.classList.add(animate-out); overlay.setAttribute(aria-hidden,true); // wait for animation to finish before hiding overlay setTimeout(() > { overlay.classList.remove(show); }, 320); } closeBtn.addEventListener(click, hide3DAlert); overlay.addEventListener(click, function(e){ if (e.target overlay) hide3DAlert(); }); // expose globally window.show3DAlert show3DAlert; window.hide3DAlert hide3DAlert; })(); // Handle contact form submission (async, robust) document.getElementById(contact-form).addEventListener(submit, async function(e) { e.preventDefault(); const name document.getElementById(name).value.trim(); const email document.getElementById(email).value.trim(); const service document.getElementById(service).value; const message document.getElementById(message).value.trim(); const payload { name, email, service, message }; try { const resp await fetch(leads.php, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify(payload) }); const text await resp.text(); let data; try { data JSON.parse(text); } catch (err) { data { raw: text }; } if (!resp.ok) { console.error(Server returned error:, resp.status, data); show3DAlert(Server error: + (data.error || resp.status), Server Error, 4000); return; } console.log(Lead saved on server:, data); show3DAlert(Thank you! Your message was saved on server., Message Sent, 3000); document.getElementById(contact-form).reset(); updateDashboard(); } catch (err) { console.warn(Server unreachable, saved locally:, err); // fallback const contacts JSON.parse(localStorage.getItem(webFusionContacts) || ); const fallback { id: Date.now(), name, email, service, message, date: new Date().toLocaleString() }; contacts.push(fallback); localStorage.setItem(webFusionContacts, JSON.stringify(contacts)); show3DAlert(Saved locally (server unreachable)., Saved Locally, 3000); document.getElementById(contact-form).reset(); updateDashboard(); } }); // Admin login functionality document.getElementById(admin-login-form).addEventListener(submit, function(e) { e.preventDefault(); const phone document.getElementById(admin-phone).value; const admins JSON.parse(localStorage.getItem(webFusionAdmins)); const admin admins.find(a > a.phone phone); if (admin) { // Show OTP field document.getElementById(otp-section).style.display block; // In a real app, you would send the OTP to the phone here show3DAlert(`OTP sent to ${phone}.`, OTP Sent, 3000); } else { show3DAlert(Phone number not registered as admin., Not Registered, 3000); } }); document.getElementById(verify-otp).addEventListener(click, function() { const phone document.getElementById(admin-phone).value; const otp document.getElementById(admin-otp).value; const admins JSON.parse(localStorage.getItem(webFusionAdmins)); const admin admins.find(a > a.phone phone && a.otp otp); if (admin) { // Successful login document.getElementById(admin-login-modal).style.display none; document.getElementById(admin-dashboard).style.display block; // store current admin in session so settings can be edited sessionStorage.setItem(webFusionCurrentAdmin, phone); showPanel(dashboard); updateDashboard(); } else { show3DAlert(Invalid OTP. Please try again., Invalid OTP, 3000); } }); document.getElementById(logout-link).addEventListener(click, function(e) { e.preventDefault(); document.getElementById(admin-dashboard).style.display none; }); // Dashboard/Clients/Settings panel switching function setActiveNav(id) { dashboard-link,clients-link,settings-link.forEach(linkId > { const el document.getElementById(linkId); if (!el) return; el.style.color (linkId id) ? var(--secondary) : ; }); } function showPanel(name) { const dashboardPanel document.getElementById(dashboard-panel); const clientsPanel document.getElementById(clients-panel); const settingsPanel document.getElementById(settings-panel); dashboardPanel.style.display (name dashboard) ? : none; clientsPanel.style.display (name clients) ? : none; settingsPanel.style.display (name settings) ? : none; if (name dashboard) setActiveNav(dashboard-link); if (name clients) setActiveNav(clients-link); if (name settings) setActiveNav(settings-link); if (name settings) loadSettingsForm(); } document.getElementById(dashboard-link).addEventListener(click, function(e) { e.preventDefault(); showPanel(dashboard); }); document.getElementById(clients-link).addEventListener(click, function(e) { e.preventDefault(); showPanel(clients); }); document.getElementById(settings-link).addEventListener(click, function(e) { e.preventDefault(); showPanel(settings); }); // Load settings form with current admin data function loadSettingsForm() { const currentPhone sessionStorage.getItem(webFusionCurrentAdmin); if (!currentPhone) { show3DAlert(No admin logged in. Please login again., Not Logged In, 3000); document.getElementById(admin-dashboard).style.display none; return; } const admins JSON.parse(localStorage.getItem(webFusionAdmins)) || ; const admin admins.find(a > a.phone currentPhone); if (!admin) return; document.getElementById(settings-name).value admin.name || ; document.getElementById(settings-phone).value admin.phone || ; document.getElementById(settings-password).value admin.otp || admin.password || ; } // Handle settings save document.getElementById(admin-settings-form).addEventListener(submit, function(e) { e.preventDefault(); const currentPhone sessionStorage.getItem(webFusionCurrentAdmin); if (!currentPhone) { show3DAlert(No admin logged in., Error, 2400); return; } const name document.getElementById(settings-name).value.trim(); const phone document.getElementById(settings-phone).value.trim(); const password document.getElementById(settings-password).value.trim(); const admins JSON.parse(localStorage.getItem(webFusionAdmins)) || ; const idx admins.findIndex(a > a.phone currentPhone); if (idx -1) { show3DAlert(Admin not found., Error, 2400); return; } // update fields (keep other properties) adminsidx.name name; adminsidx.phone phone; // store password/otp in property password and keep otp for compatibility adminsidx.password password; adminsidx.otp password; localStorage.setItem(webFusionAdmins, JSON.stringify(admins)); // update session to new phone sessionStorage.setItem(webFusionCurrentAdmin, phone); show3DAlert(Settings saved successfully., Saved, 2200); showPanel(dashboard); }); // Update dashboard with current data async function updateDashboard() { // Update visitor count const visitors localStorage.getItem(webFusionVisitors); document.getElementById(total-visitors).textContent visitors; // Update contact count // Prefer server leads if API available let contacts ; try { const controller new AbortController(); const timeout setTimeout(() > controller.abort(), 1500); // call PHP endpoint on same origin const resp await fetch(leads.php, { signal: controller.signal }); clearTimeout(timeout); if (resp && resp.ok) { contacts await resp.json(); } else { console.warn(leads.php returned non-ok response, resp && resp.status); contacts JSON.parse(localStorage.getItem(webFusionContacts) || ); } } catch (err) { console.warn(Failed to fetch leads.php, using localStorage fallback, err); contacts JSON.parse(localStorage.getItem(webFusionContacts) || ); } document.getElementById(total-contacts).textContent contacts.length; // Update services count const services JSON.parse(localStorage.getItem(webFusionServices)); let totalServices 0; for (const service in services) { totalServices + servicesservice; } document.getElementById(total-services).textContent totalServices; // Update services chart const serviceChart document.getElementById(service-chart); serviceChart.innerHTML ; let maxValue 0; for (const service in services) { if (servicesservice > maxValue) maxValue servicesservice; } for (const service in services) { const height maxValue > 0 ? (servicesservice / maxValue) * 150 : 0; const bar document.createElement(div); bar.className chart-bar; bar.style.height `${height}px`; bar.innerHTML `span>${service}/span>`; serviceChart.appendChild(bar); } // Update contacts table const contactsTable document.getElementById(contacts-table); contactsTable.innerHTML ; const recentContacts contacts.slice(-5).reverse(); // Show last 5 contacts recentContacts.forEach(contact > { const row document.createElement(tr); row.innerHTML ` td>${contact.name}/td> td>${contact.email}/td> td>${contact.service}/td> td>${contact.date}/td> `; contactsTable.appendChild(row); }); // Update clients table const clientsTable document.getElementById(clients-table); clientsTable.innerHTML ; contacts.forEach(contact > { const row document.createElement(tr); row.innerHTML ` td>${contact.id}/td> td>${contact.name}/td> td>${contact.email}/td> td>${contact.service}/td> td> button classbtn onclickeditClient(${contact.id})>Edit/button> button classbtn onclickdeleteClient(${contact.id})>Delete/button> /td> `; clientsTable.appendChild(row); }); // NEW: Populate All Clients Block (cards) const clientsBlock document.getElementById(all-clients-block); if (clientsBlock) { clientsBlock.innerHTML ; // Show newest first contacts.slice().reverse().forEach(contact > { const card document.createElement(div); card.className client-card; card.innerHTML ` h4>${contact.name || —}/h4> p>strong>Email:/strong> ${contact.email || —}/p> p>strong>Service:/strong> ${contact.service || —}/p> p>small>Added: ${contact.date || }/small>/p> div classclient-actions> button classbtn onclickeditClient(${contact.id})>Edit/button> button classbtn onclickdeleteClient(${contact.id})>Delete/button> /div> `; clientsBlock.appendChild(card); }); } } // Client management functions function editClient(id) { const contacts JSON.parse(localStorage.getItem(webFusionContacts)); const contact contacts.find(c > c.id id); if (contact) { const newName prompt(Enter new name:, contact.name); if (newName) contact.name newName; const newEmail prompt(Enter new email:, contact.email); if (newEmail) contact.email newEmail; const newService prompt(Enter new service:, contact.service); if (newService) contact.service newService; localStorage.setItem(webFusionContacts, JSON.stringify(contacts)); updateDashboard(); } } function deleteClient(id) { if (confirm(Are you sure you want to delete this client?)) { let contacts JSON.parse(localStorage.getItem(webFusionContacts)); contacts contacts.filter(c > c.id ! id); localStorage.setItem(webFusionContacts, JSON.stringify(contacts)); updateDashboard(); } } // Initialize particles animation function initParticles() { const canvas document.getElementById(particles-canvas); const ctx canvas.getContext(2d); canvas.width window.innerWidth; canvas.height window.innerHeight; const particles ; const particleCount 100; for (let i 0; i particleCount; i++) { particles.push({ x: Math.random() * canvas.width, y: Math.random() * canvas.height, radius: Math.random() * 2 + 1, speed: Math.random() * 2 + 0.5, opacity: Math.random() * 0.5 + 0.2 }); } function drawParticles() { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.fillStyle #0d0d1a; ctx.fillRect(0, 0, canvas.width, canvas.height); particles.forEach(particle > { ctx.beginPath(); ctx.arc(particle.x, particle.y, particle.radius, 0, Math.PI * 2); ctx.fillStyle `rgba(110, 68, 255, ${particle.opacity})`; ctx.fill(); particle.y + particle.speed; if (particle.y > canvas.height) { particle.y 0; particle.x Math.random() * canvas.width; } }); requestAnimationFrame(drawParticles); } drawParticles(); window.addEventListener(resize, function() { canvas.width window.innerWidth; canvas.height window.innerHeight; }); } // Initialize animations with GSAP function initAnimations() { gsap.registerPlugin(ScrollTrigger); gsap.from(.hero-content h1, { duration: 1, y: 50, opacity: 0, ease: power3.out }); gsap.from(.hero-content p, { duration: 1, y: 30, opacity: 0, delay: 0.3, ease: power3.out }); gsap.from(.hero-buttons, { duration: 1, y: 30, opacity: 0, delay: 0.6, ease: power3.out }); gsap.from(.service-card, { scrollTrigger: { trigger: .services-grid, start: top 80% }, opacity: 0, y: 30, stagger: 0.2, duration: 0.8 }); gsap.from(.pricing-card, { scrollTrigger: { trigger: .pricing-cards, start: top 80% }, opacity: 0, y: 30, stagger: 0.2, duration: 0.8 }); } // Initialize everything when page loads window.addEventListener(load, function() { trackVisit(); initParticles(); initAnimations(); }); // Open/close Admin modal handlers (fix for Admin button not working) (function(){ const adminLink document.getElementById(admin-login-link); const adminModal document.getElementById(admin-login-modal); const closeModalBtn document.querySelector(.close-modal); if (adminLink && adminModal) { adminLink.addEventListener(click, function(e){ e.preventDefault(); // reset modal state adminModal.style.display flex; const otpSection document.getElementById(otp-section); if (otpSection) otpSection.style.display none; const adminPhone document.getElementById(admin-phone); if (adminPhone) adminPhone.value ; const adminOtp document.getElementById(admin-otp); if (adminOtp) adminOtp.value ; }); } if (closeModalBtn && adminModal) { closeModalBtn.addEventListener(click, function(){ adminModal.style.display none; }); } // Click outside modal to close if (adminModal) { adminModal.addEventListener(click, function(e){ if (e.target adminModal) adminModal.style.display none; }); } })(); // Service detail modal logic (function(){ const servicesData { Web Development: { desc: Custom responsive websites, CMS integration, performance optimisation and deployment., extra: Tech stack: HTML/CSS/JS, React/Vue, Node/PHP as required., pricing: { tier: Basic, price: ₹15,000, features: Up to 5 pages, Responsive, 1 month support }, { tier: Standard, price: ₹45,000, features: 10–15 pages, Custom UI/UX, 2 months support }, { tier: Premium, price: ₹1,25,000+, features: Full-stack product, API & integrations, Dedicated support } }, SEO: { desc: On-page & off-page optimisation, keyword research and reporting to increase organic visibility., extra: Packages include monthly reports and consulting., pricing: { tier: Basic, price: ₹8,000, features: On-page fixes, Keyword research }, { tier: Standard, price: ₹20,000, features: Content + backlinks, Monthly reporting }, { tier: Premium, price: Custom, features: Enterprise SEO, Technical & outreach } }, AI & ML: { desc: Model prototyping, automation, chatbot and ML integration services for business workflows., extra: Includes POC and integration support., pricing: { tier: Proof, price: ₹25,000, features: Proof of concept, Basic model }, { tier: Project, price: ₹75,000, features: Custom model, Integration }, { tier: Enterprise, price: Custom, features: Production-ready ML, Scaling & monitoring } }, UI/UX: { desc: User research, wireframes, prototypes and high-fidelity UI with design systems and handoff., extra: Deliverables: Figma/Adobe XD files, assets and design system tokens., pricing: { tier: Basic, price: ₹10,000, features: Wireframes, Basic prototype }, { tier: Standard, price: ₹30,000, features: High-fidelity UI, Design system }, { tier: Premium, price: Custom, features: End-to-end product design, Testing & handoff } }, Mobile App: { desc: Native and cross-platform mobile apps, backend APIs and app store support., extra: MVP and full-featured app development available., pricing: { tier: MVP, price: ₹60,000, features: Simple app, Basic integrations }, { tier: Advanced, price: ₹1,50,000, features: Advanced features, Backend + API }, { tier: Enterprise, price: Custom, features: Enterprise engineering, App store support } }, Custom Software: { desc: Bespoke software solutions, integrations, automation and support tailored to your business., extra: We scope and propose a custom plan after discovery., pricing: { tier: Starter, price: Custom, features: Discovery workshop, MVP scope }, { tier: Growth, price: Custom, features: Iterative development, Integrations }, { tier: Enterprise, price: Custom, features: Dedicated team, SLA & support } } }; const overlay document.getElementById(service-modal); const titleEl document.getElementById(service-modal-title); const descEl document.getElementById(service-modal-desc); const extraEl document.getElementById(service-modal-extra); const pricingEl document.getElementById(service-pricing-list); const closeBtn document.getElementById(service-modal-close); const contactBtn document.getElementById(service-contact-btn); const quoteBtn document.getElementById(service-quote-btn); function buildPricingHtml(list) { pricingEl.innerHTML ; list.forEach(item > { const div document.createElement(div); div.className pricing-tier; div.innerHTML ` h4>${item.tier} span classprice>${item.price}/span>/h4> ul classpricing-features> ${item.features.map(f > `li>${f}/li>`).join()} /ul> `; pricingEl.appendChild(div); }); } function openServiceModal(name) { const data servicesDataname || { desc: Details coming soon., extra: , pricing: }; titleEl.textContent name; descEl.textContent data.desc; extraEl.textContent data.extra || ; buildPricingHtml(data.pricing); overlay.classList.add(show); overlay.setAttribute(aria-hidden, false); } function closeServiceModal() { overlay.classList.remove(show); overlay.setAttribute(aria-hidden, true); } // attach click to each service card document.querySelectorAll(.service-card).forEach(card > { card.addEventListener(click, function() { const nameEl card.querySelector(h3); if (!nameEl) return; openServiceModal(nameEl.innerText.trim()); }); }); closeBtn.addEventListener(click, closeServiceModal); overlay.addEventListener(click, function(e){ if (e.target overlay) closeServiceModal(); }); })(); /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]