1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 6 <meta charset="utf-8" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1" /> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 9 10 <title>Azure FinOps, Microsoft 365 & AI Managed Services | eprotech</title> 11 <meta name="author" content="eprotech" /> 12 <meta name="description" 13 content="Enterprise Microsoft 365, Azure & AI managed services: cloud FinOps, M365 license rightsizing, modern workplace, data & AI analytics." /> 14 <meta name="keywords" 15 content="enterprise managed services, Azure FinOps, Microsoft 365 management, AI managed services, modern workplace transformation" /> 16 <meta name="robots" content="index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large" /> 17 18 <link rel="icon" href="/images/eprotech-favicon.png" type="image/png"> 19 <link rel="icon" sizes="32x32" href="/images/eprotech-favicon.png" type="image/png"> 20 <link rel="icon" sizes="16x16" href="/images/eprotech-fav.png" type="image/png"> 21 <link rel="apple-touch-icon" href="/images/eprotech-favicon.png"> 22 23 <link rel="canonical" href="https://www.eprotech.ai/" /> 24 <link rel="alternate" hreflang="en-us" href="https://www.eprotech.ai/" /> 25 <link rel="alternate" hreflang="x-default" href="https://www.eprotech.ai/" /> 26 27 <meta property="og:title" content="Azure FinOps, Microsoft 365 & AI Managed Services | eprotech" /> 28 <meta property="og:description" 29 content="Enterprise Microsoft 365, Azure & AI managed services: cloud FinOps, M365 license rightsizing, modern workplace, data & AI analytics, and app innovation." /> 30 <meta property="og:type" content="website" /> 31 <meta property="og:site_name" content="eprotech AI" /> 32 <meta property="og:url" content="https://www.eprotech.ai" /> 33 <meta property="og:locale" content="en_US" /> 34 <meta property="og:image" content="https://www.eprotech.ai/images/eprotech-logo-tm.png" /> 35 <meta property="og:image:secure_url" content="https://www.eprotech.ai/images/eprotech-logo-tm.png" /> 36 <meta property="og:image:alt" content="eprotech Logo" /> 37 38 <meta name="twitter:card" content="summary_large_image" /> 39 <meta name="twitter:title" content="Azure FinOps, Microsoft 365 & AI Managed Services | eprotech" /> 40 <meta name="twitter:description" 41 content="Enterprise Microsoft 365, Azure & AI managed services: cloud FinOps, M365 license rightsizing, modern workplace, data & AI analytics, and app innovation." /> 42 <meta name="twitter:image" content="https://www.eprotech.ai/images/eprotech-logo-tm.png" /> 43<meta property="twitter:image:secure_url" content="https://www.eprotech.ai/images/eprotech-logo-tm.png" /> 44 45 <link rel="preconnect" href="https://fonts.googleapis.com" /> 46 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 47 <link rel="preconnect" href="https://cdnjs.cloudflare.com" /> 48 <link rel="preconnect" href="https://www.googletagmanager.com" /> 49 <link rel="preconnect" href="https://www.google-analytics.com" /> 50 <link rel="preconnect" href="https://www.clarity.ms" /> 51 52 <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600&display=swap" onload="this.onload=null;this.rel='stylesheet'" /> 53 <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600&display=swap" /></noscript> 54 55 <link rel="preload" href="/assets/css/site-logo.css" as="style" /> 56 57 <!-- 10. Load CSS --> 58 <link rel="stylesheet" href="/assets/css/site-logo.css" /> 59 <link rel="stylesheet" href="/assets/css/header.css" /> 60 <link rel="stylesheet" href="/assets/css/modern-workplace-footer.css" /> 61 <link rel="stylesheet" href="/scroll-to-top.css" /> 62 <link rel="stylesheet" href="/assets/css/index.css" /> 63 64
64<script defer src="/assets/js/header-loader.js"></script>
64 65 66
66<script defer src="/assets/js/footer-loader.js"></script>
66 67
67<script defer src="/assets/js/float-loader.js"></script>
67 68
68<script defer src="/assets/js/clarity.js"></script>
68 69
69<script defer src="/assets/js/gtag.js"></script>
69 70
70<script defer src="/scroll-to-top.js"></script>
70 71
71<script defer src="/assets/js/cookie.js"></script>
71 72 73
73<script defer src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
73 74
74<script defer src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>
74 75 76 <meta name="google-site-verification" content="ucv7rYDtgfl3aRUnjkqK0S__Wt0LvmT6oAi-sHMcC5c" /> 77 <meta name="msvalidate.01" content="2277DAB7C4B0FF5783593660BF919E1D" />
vendor: 67 bytes, lines 77-79
77 78 79 <script async src="https://www.googletagmanager.com/gtag/js?id=
79G-KL22GXJMC0
vendor: 16 bytes, lines 79-82
79"></script> 80 81 82
82<!-- 15. Schema.org structured data --> 83
83<script type="application/ld+json"> 84 85{ 86 87 "@context": "https://schema.org", 88 89 "@type": "Organization", 90 91 "name": "Eprotech", 92 93 "url": "https://www.eprotech.ai/", 94 95 "logo": "https://www.eprotech.ai/images/eprotech-logo-tm.png", 96 97 "image": "https://www.eprotech.ai/images/eprotech-logo-tm.png", 98 99 "description": "AI-augmented Microsoft 365 and Azure managed services provider specializing in cloud FinOps, license rightsizing, and governed enterprise GenAI.", 100 101 "email": "[email protected]", 102 103 "telephone": "+1 732-283-0499", 104 105 "sameAs": [ 106 107 "https://www.linkedin.com/company/eprotech-cloud/", 108 109 "https://x.com/eprotech_cloud", 110 111 "https://www.youtube.com/@eprotech-official" 112 113 ], 114 115 "contactPoint": { 116 117 "@type": "ContactPoint", 118 119 "contactType": "sales", 120 121 "areaServed": "Global", 122 123 "availableLanguage": "English" 124 125 }, 126 127 "address": { 128 129 "@type": "PostalAddress", 130 131 "streetAddress": "1460 US Highway 9 North, Suite 303", 132 133 "addressLocality": "Woodbridge", 134 135 "addressRegion": "NJ", 136 137 "postalCode": "07095", 138 139 "addressCountry": "US" 140 141 } 142 143} 144</script>
144 145 146 147
147<script type="application/ld+json"> 148{ 149 "@context": "https://schema.org", 150 "@type": "WebSite", 151 "name": "eprotech", 152 "url": "https://www.eprotech.ai/", 153 "potentialAction": { "@type": "SearchAction", "target": "https://www.eprotech.ai/search?q={search_term_string}", "query-input": "required name=search_term_string" } 154} 155</script>
155 156 157</head> 158<body> 159 160<a href="#capabilities" class="skip-link">Skip to main content</a> 161 162 163 <div id="float-placeholder"></div> 164 165 166 <!-- Live Monitor Widget --> 167 <div class="live-monitor"> 168 <span class="pulse"></span> 169 <span>Systems Active</span> 170 <div class="monitor-stats"> 171 <div>CPU: 42%</div> 172 <div>Efficiency: 94%</div> 173 <div>Queries: 1,247</div> 174 </div> 175 </div> 176 177 178 <!-- Header --> 179 <div id="header-placeholder"></div> 180 181 <main id="main-content"> 182 183 <!-- HERO --> 184 <div class="hero"> 185 <canvas id="particles"></canvas> 186 <div class="container hero-inner"> 187 <div class="hero-eyebrow no-select"> 188 <h1>Human Experience Engineered <br>For Enterprises</h1> 189 <h2 class="hero-subtitle-microsoft"> 190 Enterprise Microsoft 365, Azure & AI Managed Services 191 </h2> 192 </div> 193 <div class="hero-lines no-select" id="typewriter"> 194 <span class="line" data-text="AI that anticipates."></span> 195 <span class="line" data-text="Data that inspires."></span> 196 <span class="line" data-text="Work that flows."></span> 197 </div> 198 <p class="hero-sub"> 199 We partner with enterprises to engineer intelligent, resilient 200 operations â accelerating Microsoft platforms, modernizing the 201 workplace, and turning natural-language questions into governed 202 insights. 203 </p> 204 <div class="cta-row"> 205 <a href="#pillars" class="btn13" role="button" aria-label="Explore Solutions section"> 206 <div class="dots_border"></div> 207 208 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="sparkle" aria-hidden="true" 209 focusable="false"> 210 <path class="path" stroke-linejoin="round" stroke-linecap="round" stroke="black" fill="black" 211 d="M14.187 8.096L15 5.25L15.813 8.096C16.0231 8.83114 16.4171 9.50062 16.9577 10.0413C17.4984 10.5819 18.1679 10.9759 18.903 11.186L21.75 12L18.904 12.813C18.1689 13.0231 17.4994 13.4171 16.9587 13.9577C16.4181 14.4984 16.0241 15.1679 15.814 15.903L15 18.75L14.187 15.904C13.9769 15.1689 13.5829 14.4994 13.0423 13.9587C12.5016 13.4181 11.8321 13.0241 11.097 12.814L8.25 12L11.096 11.187C11.8311 10.9769 12.5006 10.5829 13.0413 10.0423C13.5819 9.50162 13.9759 8.83214 14.186 8.097L14.187 8.096Z"> 212 </path> 213 <path class="path" stroke-linejoin="round" stroke-linecap="round" stroke="black" fill="black" 214 d="M6 14.25L5.741 15.285C5.59267 15.8785 5.28579 16.4206 4.85319 16.8532C4.42059 17.2858 3.87853 17.5927 3.285 17.741L2.25 18L3.285 18.259C3.87853 18.4073 4.42059 18.7142 4.85319 19.1468C5.28579 19.5794 5.59267 20.1215 5.741 20.715L6 21.75L6.259 20.715C6.40725 20.1216 6.71398 19.5796 7.14639 19.147C7.5788 18.7144 8.12065 18.4075 8.714 18.259L9.75 18L8.714 17.741C8.12065 17.5925 7.5788 17.2856 7.14639 16.853C6.71398 16.4204 6.40725 15.8784 6.259 15.285L6 14.25Z"> 215 </path> 216 <path class="path" stroke-linejoin="round" stroke-linecap="round" stroke="black" fill="black" 217 d="M6.5 4L6.303 4.5915C6.24777 4.75718 6.15472 4.90774 6.03123 5.03123C5.90774 5.15472 5.75718 5.24777 5.5915 5.303L5 5.5L5.5915 5.697C5.75718 5.75223 5.90774 5.84528 6.03123 5.96877C6.15472 6.09226 6.24777 6.24282 6.303 6.4085L6.5 7L6.697 6.4085C6.75223 6.24282 6.84528 6.09226 6.96877 5.96877C7.09226 5.84528 7.24282 5.75223 7.4085 5.697L8 5.5L7.4085 5.303C7.24282 5.24777 7.09226 5.15472 6.96877 5.03123C6.84528 4.90774 6.75223 4.75718 6.697 4.5915L6.5 4Z"> 218 </path> 219 </svg> 220 221 <span class="text_button">Explore Solutions</span> 222 </a> 223 </div> 224 </div> 225 </div> 226 <!-- our core capabilities sec --> 227 <section id="capabilities"> 228 <div class="container"> 229 <h2 class="section-title">Our Core Capabilities</h2> 230 231 <!-- <div class="section-sub"> 232 Enterprise cloud, AI and managed services designed to accelerate growth. 233 </div> --> 234 235 <div class="why"> 236 237 <div class="fact"> 238 <h3 class="big">Cloud Ops </h3> 239 <h4>Azure FinOps & Cloud Cost Optimization</h4> 240 <div class="sub">
241 We watch 187 infrastructure signals - idle VMs, oversized resources, spot-instance opportunities - and trim 242 Azure spend automatically. 243 </div> 244 <!-- Explore Button --> 245 <div class="cap-btn-wrap"> 246 <a href="https://www.eprotech.ai/cloudops-and-infrastructure/" class="explore-btn" aria-label="Explore More about Cloud Ops and Infrastructure"> 247 Explore More 248 <span>â</span> 249 </a> 250 </div> 251 </div> 252 253 <div class="fact"> 254 <h3 class="big">M365 Tenant Ops </h3> 255 <h4>Microsoft 365 Management, Teams & Security</h4> 256 <div class="sub"> 257 Teams call-quality, license-waste tracking, and Secure Score monitoring across the whole tenant. 258 </div> 259 <!-- Explore Button --> 260 <div class="cap-btn-wrap"> 261 <a href="https://www.eprotech.ai/m365-tenant-ops/" class="explore-btn" aria-label="Explore More about M365 Tenant Ops"> 262 Explore More 263 <span>â</span> 264 </a> 265 </div> 266 </div> 267 268 <div class="fact"> 269 <h3 class="big">Automated Workplace Ops </h3> 270 <h4>Enterprise IT Operations Automation & Service Desk</h4> 271 <div class="sub"> 272 60+ Microsoft-native automations cut tickets up to 85% and slash MTTR â Tier-0/1 automation that plugs into 273 your ITSM. 274 </div> 275 <!-- Explore Button --> 276 <div class="cap-btn-wrap"> 277 <a href="https://www.eprotech.ai/modern-workplace-service-tower/" class="explore-btn" aria-label="Explore More about Automated Workplace Ops"> 278 Explore More 279 <span>â</span> 280 </a> 281 </div> 282 </div> 283 284 <div class="fact"> 285 <h3 class="big">Data & AI </h3> 286 <h4>Natural-Language Analytics, No-SQL</h4> 287 <div class="sub"> 288 Ask questions in plain English and get governed, source-cited insights â no SQL required. 289 </div> 290 <!-- Explore Button --> 291 <div class="cap-btn-wrap"> 292 <a href="https://www.eprotech.ai/data-and-ai/" class="explore-btn" aria-label="Explore More about Data and AI Analytics"> 293 Explore More 294 <span>â</span> 295 </a> 296 </div> 297 </div> 298 299 <div class="fact"> 300 <h3 class="big">Velocity Engineering </h3> 301 <h4>Azure App Modernization & Rapid Delivery </h4> 302 <div class="sub"> 303 Cloud-native development and app modernization that ship in weeks, not quarters. 304 </div> 305 <!-- Explore Button --> 306 <div class="cap-btn-wrap"> 307 <a href="https://www.eprotech.ai/microsoft-velocity-engineering/" class="explore-btn" aria-label="Explore More about Velocity Engineering"> 308 Explore More 309 <span>â</span> 310 </a> 311 </div> 312 </div> 313 314 315 316 </div> 317 </div> 318 </section> 319 <!-- THREE SERVICE PILLARS --> 320 <section id="pillars"> 321 <div class="container"> 322 <h2 class="section-title">Outpace Change with Three Engines</h2> 323 324 <div class="section-sub"> 325 From blueprint to business impact â faster, safer, leaner. 326 </div> 327 328 <div class="pillars"> 329 <!-- Card 1 --> 330 <article class="card3d" data-tilt> 331 <a class="card-link" href="/microsoft-velocity-engineering/" aria-label="Open Microsoft Velocity Engineering"> 332 <div class="border-glow"></div> 333 <div class="card-body"> 334 <h3 class="kicker">â¡Microsoft Velocity Engineering</h3> 335 <h4 class="card-title">Deploy in Days, Not Months</h4> 336 337 <ul class="bullets"> 338 <li>Weeks to days transformation</li> 339 <li>Zero-downtime deployments</li> 340 <li>DevOps excellence in 90 days</li> 341 <li>Reduce time-to-market dramatically</li> 342 <li>Lead time â 30â40%, MTTR < 60m</li> 343 <li>Adoption > 70%, cost-to-serve â 10â20%</li> 344 </ul> 345 346 <p class="exec-hook">Beat competitors to market</p> 347 </div> 348 </a> 349 </article> 350 351 <!-- Card 2 --> 352 <article class="card3d" data-tilt> 353 <a class="card-link" href="/ai-augmented-managed-services/" aria-label="Open Modern Workplace"> 354 <div class="border-glow"></div> 355 <div class="card-body"> 356 <h3 class="kicker">ð AI Augmented Managed services</h3> 357 <h4 class="card-title">Most clients see 30â40% total reduction across licenses, tickets, and automation 358 </h4> 359 360 <ul class="bullets"> 361 <li>Workplace automation solutions</li> 362 <li>Real-time monitoring dashboards</li> 363 <li>Process optimization</li> 364 <li>Microsoft 365 transformation</li> 365 <li>Employee productivity boost</li> 366 <li>Operational efficiency gains</li> 367 </ul> 368 369 <p class="exec-hook"> 370 Transform operations while cutting costs 371 </p> 372 </div> 373 </a> 374 </article> 375 376 <!-- Card 3 --> 377 <article class="card3d" data-tilt> 378 <a class="card-link" href="/data-and-ai/" aria-label="Open Data & AI Analytics"> 379 <div class="border-glow"></div> 380 <div class="card-body"> 381 <h3 class="kicker">ð§ Data & AI Analytics</h3> 382 <h4 class="card-title">Ask Questions. Get Answers. <br>No SQL Required.</h4> 383 384 <ul class="bullets"> 385 <li>Ask questions in plain English</li> 386 <li>Instant insights generation</li> 387 <li>No technical skills required</li> 388 <li>Enterprise-grade governance</li> 389 </ul> 390 391 <p class="exec-hook"> 392 Turn data into decisions instantly 393 </p> 394 </div> 395 </a> 396 </article> 397 </div> 398 </div> 399 </section> 400 401 402 <!-- INTERACTIVE DEMO SECTION WITH INDUSTRY TABS --> 403 <section id="demo"> 404 <div class="container"> 405 <h2 class="section-title tyr1">Data and AI</h2> 406 <div class="section-sub tyr1"> 407 Experience the power of natural language analytics 408 </div> 409 410 <div class="demo-container"> 411 <!-- Tab List --> 412 <div class="demo-controls" role="tablist" aria-label="Industry demos"> 413 <div class="demo-tab active" data-industry="general" role="tab" aria-selected="true" id="tab-general" 414 tabindex="0" aria-controls="panel-general"> 415 General 416 </div> 417 <div class="demo-tab" data-industry="contact-center" role="tab" aria-selected="false" id="tab-contact" 418 tabindex="-1" aria-controls="panel-contact"> 419 Contact Center 420 </div> 421 <div class="demo-tab" data-industry="hedge-fund" role="tab" aria-selected="false" id="tab-hedge" tabindex="-1" 422 aria-controls="panel-hedge"> 423 Hedge Fund 424 </div> 425 </div> 426 427 <!-- Tab Panels --> 428 <div id="panel-general" role="tabpanel" aria-labelledby="tab-general" class="demo-terminal active" tabindex="0"> 429 <div class="demo-input-wrapper"> 430 <input type="text" class="demo-input" id="demoInput" 431 placeholder="Try asking: What's driving our customer churn?" aria-label="Ask a data analytics question" /> 432 <button class="reset-btn" id="resetBtn" type="button">Reset</button> 433 </div> 434 <div class="demo-response" id="demoResponse" aria-live="polite">
435 <span class="typing-cursor"></span> 436 </div> 437 </div> 438 439 <!-- Hidden panels for other tabs (content switches via JS) --> 440 <div id="panel-contact" role="tabpanel" aria-labelledby="tab-contact" class="demo-terminal" hidden tabindex="0"> 441 <div class="demo-input-wrapper"> 442 <input type="text" class="demo-input" id="demoInputContact" 443 placeholder="Try: What is the average CSAT score for August 2025?" 444 aria-label="Contact center analytics question" /> 445 <button class="reset-btn" id="resetBtnContact" type="button">Reset</button> 446 </div> 447 <div class="demo-response" id="demoResponseContact" aria-live="polite"> 448 <span class="typing-cursor"></span> 449 </div> 450 </div> 451 452 <div id="panel-hedge" role="tabpanel" aria-labelledby="tab-hedge" class="demo-terminal" hidden tabindex="0"> 453 <div class="demo-input-wrapper"> 454 <input type="text" class="demo-input" id="demoInputHedge" 455 placeholder="Try: What was the net return for June 2025?" aria-label="Hedge fund analytics question" /> 456 <button class="reset-btn" id="resetBtnHedge" type="button">Reset</button> 457 </div> 458 <div class="demo-response" id="demoResponseHedge" aria-live="polite"> 459 <span class="typing-cursor"></span> 460 </div> 461 </div> 462 </div> 463 </div> 464 </section> 465 466 467 <!-- CAPABILITIES SHOWCASE --> 468 <section> 469 <div class="container"> 470 <h2 class="section-title"> 471 Built on Our Business Applications Expertise 472 </h2> 473 474 <div class="section-sub"> 475 Proven track record in enterprise solutions 476 </div> 477 478 <div class="caps-grid"> 479 <div class="cap-item"> 480 <span class="cap-dot"></span> Custom application development 481 </div> 482 <div class="cap-item"> 483 <span class="cap-dot"></span> System integration experience 484 </div> 485 <div class="cap-item"> 486 <span class="cap-dot"></span> Enterprise architecture 487 </div> 488 <div class="cap-item"> 489 <span class="cap-dot"></span> Cloud migration expertise 490 </div> 491 <div class="cap-item"> 492 <span class="cap-dot"></span> Security & compliance 493 </div> 494 <div class="cap-item"> 495 <span class="cap-dot"></span> 24/7 monitoring capabilities 496 </div> 497 </div> 498 </div> 499 </section> 500 501 502 <!-- TIMELINE SECTION --> 503 <section class="timeline"> 504 <div class="container"> 505 <h2 class="section-title tyr1"> 506 Your 90-Day Transformation Journey 507 </h2> 508 509 <div class="section-sub tyr1"> 510 From assessment to optimization in 12 weeks 511 </div> 512 513 <div class="timeline-items"> 514 <div class="timeline-item" data-week="Week 1-2"> 515 <h3>Assessment</h3> 516 <p> 517 Understand your landscape, identify quick wins, design roadmap 518 </p> 519 </div> 520 521 <div class="timeline-item" data-week="Week 3-4"> 522 <h3>Foundation</h3> 523 <p>Deploy core platform, configure systems, establish governance</p> 524 </div> 525 526 <div class="timeline-item" data-week="Week 5-8"> 527 <h3>Implementation</h3> 528 <p>Launch pilot teams, refine workflows, measure early impact</p> 529 </div> 530 531 <div class="timeline-item" data-week="Week 9-12"> 532 <h3>Optimization</h3> 533 <p> 534 Scale across enterprise, advanced features, continuous improvement 535 </p> 536 </div> 537 </div> 538 </div> 539 </section> 540 541 542 <!-- VALUE METRICS --> 543 <section id="metrics"> 544 <div class="container"> 545 <h2 class="section-title">The eprotech Advantage</h2> 546 547 <div class="metrics"> 548 <div class="metric-box"> 549 <div class="metric-val" data-counter data-target="90" data-suffix=" days"> 550 90 days 551 </div> 552 <div class="metric-lbl">Typical transformation timeline</div> 553 </div> 554 555 <div class="metric-box"> 556 <div class="metric-val" data-counter data-target="40" data-suffix="%"> 557 40% 558 </div> 559 <div class="metric-lbl">Potential cost reduction</div> 560 </div> 561 562 <div class="metric-box"> 563 <div class="metric-val" data-counter data-target="87" data-suffix="%"> 564 Weeks to days 565 </div> 566 <div class="metric-lbl">deployment â guaranteed</div> 567 </div> 568 569 <div class="metric-box"> 570 <div class="metric-val">24/7</div> 571 <div class="metric-lbl">
571Monitoring coverage</div> 572 </div> 573 574 <div class="metric-box"> 575 <div class="metric-val" data-counter data-target="2" data-prefix="<" data-suffix=" sec"> 576 Instant Insights 577 </div> 578 <div class="metric-lbl">no SQL required</div> 579 </div> 580 581 <div class="metric-box"> 582 <div class="metric-val" data-counter data-target="100" data-suffix="%"> 583 100% 584 </div> 585 <div class="metric-lbl">Cloud-native solutions</div> 586 </div> 587 </div> 588 </div> 589 </section> 590 591 <section id="why"> 592 <div class="container"> 593 <h2 class="section-title">Why eprotech â The Reality in Numbers</h2> 594 595 <div class="section-sub"> 596 We exist to fix what slows enterprises down: failed pilots, cloud 597 waste, license sprawl, and fragile ops. 598 </div> 599 600 <div class="why"> 601 <div class="fact"> 602 <h3 class="big">Only 5% of GenAI Pilots Deliver P&L Impact</h3> 603 <div class="sub"> 604 We run an "AI Pilot Recovery" play to convert proof-of-concepts 605 into production outcomes. 606 </div> 607 </div> 608 609 <div class="fact"> 610 <h3 class="big">27% of Your Cloud Budget Is Wasted</h3> 611 <div class="sub"> 612 For every $1M you spend, $270K disappears. 613 </div> 614 </div> 615 616 <div class="fact"> 617 <h3 class="big">56% of M365 Licenses Are Underutilized</h3> 618 <div class="sub"> 619 License rightsizing + adoption engineering to unlock hidden value. 620 </div> 621 </div> 622 623 <div class="fact"> 624 <h3 class="big">Your Cloud Has Gaps. We Close Them in 60 Days.</h3> 625 <div class="sub"> 626 Zero-trust baselines + self-healing policies. 627 </div> 628 </div> 629 630 <div class="fact"> 631 <h3 class="big">Decisions in seconds</h3> 632 <div class="sub"> 633 Plain-English to governed insights â no SQL, no training. 634 </div> 635 </div> 636 637 <div class="fact"> 638 <h3 class="big">Rapid ROI specialists</h3> 639 <div class="sub"> 640 Results in weeks, not months â senior experts only, success-based 641 pricing available. 642 </div> 643 </div> 644 </div> 645 </div> 646 </section> 647 648 649 <!-- EXECUTIVE CTA SECTION --> 650 <section class="cta-section container"> 651 <h2>Ready to Transform Your Enterprise?</h2> 652 653 <div class="cta-buttons"> 654 <!-- Primary CTA --> 655 <a href="/contact-us/" class="btn-executive btn-primary-exec" aria-label="Schedule an executive briefing"> 656 Schedule Executive Briefing 657 </a> 658 659 <!-- Secondary CTA (styled button link) --> 660 <a href="/schedule-demo/" class="btn13" role="button" aria-label="Request a live product demo"> 661 <div class="dots_border"></div> 662 663 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="sparkle" aria-hidden="true" 664 focusable="false"> 665 <path class="path" stroke-linejoin="round" stroke-linecap="round" stroke="black" fill="black" 666 d="M14.187 8.096L15 5.25L15.813 8.096C16.0231 8.83114 16.4171 9.50062 16.9577 10.0413C17.4984 10.5819 18.1679 10.9759 18.903 11.186L21.75 12L18.904 12.813C18.1689 13.0231 17.4994 13.4171 16.9587 13.9577C16.4181 14.4984 16.0241 15.1679 15.814 15.903L15 18.75L14.187 15.904C13.9769 15.1689 13.5829 14.4994 13.0423 13.9587C12.5016 13.4181 11.8321 13.0241 11.097 12.814L8.25 12L11.096 11.187C11.8311 10.9769 12.5006 10.5829 13.0413 10.0423C13.5819 9.50162 13.9759 8.83214 14.186 8.097L14.187 8.096Z"> 667 </path> 668 <path class="path" stroke-linejoin="round" stroke-linecap="round" stroke="black" fill="black" 669 d="M6 14.25L5.741 15.285C5.59267 15.8785 5.28579 16.4206 4.85319 16.8532C4.42059 17.2858 3.87853 17.5927 3.285 17.741L2.25 18L3.285 18.259C3.87853 18.4073 4.42059 18.7142 4.85319 19.1468C5.28579 19.5794 5.59267 20.1215 5.741 20.715L6 21.75L6.259 20.715C6.40725 20.1216 6.71398 19.5796 7.14639 19.147C7.5788 18.7144 8.12065 18.4075 8.714 18.259L9.75 18L8.714 17.741C8.12065 17.5925 7.5788 17.2856 7.14639 16.853C6.71398 16.4204 6.40725 15.8784 6.259 15.285L6 14.25Z"> 670 </path> 671 <path class="path" stroke-linejoin="round" stroke-linecap="round" stroke="black" fill="black" 672 d="M6.5 4L6.303 4.5915C6.24777 4.75718 6.15472 4.90774 6.03123 5.03123C5.90774 5.15472 5.75718 5.24777 5.5915 5.303L5 5.5L5.5915 5.697C
6725.75718 5.75223 5.90774 5.84528 6.03123 5.96877C6.15472 6.09226 6.24777 6.24282 6.303 6.4085L6.5 7L6.697 6.4085C6.75223 6.24282 6.84528 6.09226 6.96877 5.96877C7.09226 5.84528 7.24282 5.75223 7.4085 5.697L8 5.5L7.4085 5.303C7.24282 5.24777 7.09226 5.15472 6.96877 5.03123C6.84528 4.90774 6.75223 4.75718 6.697 4.5915L6.5 4Z"> 673 </path> 674 </svg> 675 676 <span class="text_button">Request Live Demo</span> 677 </a> 678 </div> 679 </section> 680 681 </main> 682 683 <!-- footer --> 684 <div id="footer-placeholder"></div> 685 686 687 <!-- Bloomberg-style ticker accent --> 688 <div class="ticker" aria-hidden="true"> 689 <div class="bar"> 690 <div class="scroll"> 691 <span class="item"><span class="dot"></span><span class="mono">Velocity â² Weeks â Days</span></span> 692 <span class="item"><span class="dot cost"></span><span class="mono">Cost â 40%</span></span> 693 <span class="item"><span class="dot cost1"></span><span class="mono">Query â Insight in Seconds</span></span> 694 <span class="item"><span class="dot cost2"></span><span class="mono">Uptime 99.95%</span></span> 695 <span class="item"><span class="dot cost3"></span><span class="mono">Coverage 24/7</span></span> 696 <span class="item"><span class="dot"></span><span class="mono">Velocity â² Weeks â Days</span></span> 697 <span class="item"><span class="dot cost"></span><span class="mono">Cost â 40%</span></span> 698 <span class="item"><span class="dot cost1"></span><span class="mono">Query â Insight in Seconds</span></span> 699 <span class="item"><span class="dot cost2"></span><span class="mono">Uptime 99.95%</span></span> 700 <span class="item"><span class="dot cost3"></span><span class="mono">Coverage 24/7</span></span> 701 </div> 702 </div> 703 </div> 704 705 706 707
707<script> 708 // CODE PROTECTION MEASURES (kept from previous) 709 (function () { 710 // Disable right-click context menu 711 document.addEventListener("contextmenu", function (e) { 712 e.preventDefault(); 713 return false; 714 }); 715 716 // Disable text selection with keyboard 717 document.addEventListener("selectstart", function (e) { 718 if (e.target.tagName !== "INPUT" && e.target.tagName !== "TEXTAREA") { 719 e.preventDefault(); 720 } 721 }); 722 723 // Disable F12, Ctrl+Shift+I, Ctrl+Shift+J, Ctrl+U 724 document.addEventListener("keydown", function (e) { 725 if (e.keyCode == 123) { 726 // F12 727 e.preventDefault(); 728 return false; 729 } 730 if (e.ctrlKey && e.shiftKey && (e.keyCode == 73 || e.keyCode == 74)) { 731 // Ctrl+Shift+I/J 732 e.preventDefault(); 733 return false; 734 } 735 if (e.ctrlKey && e.keyCode == 85) { 736 // Ctrl+U 737 e.preventDefault(); 738 return false; 739 } 740 }); 741 742 // Console warning message 743 console.log( 744 "%câ ï¸ STOP!", 745 "color: red; font-size: 50px; font-weight: bold;" 746 ); 747 console.log( 748 "%cThis is a browser feature intended for developers. Content here is proprietary to eprotech.ai", 749 "color: red; font-size: 16px;" 750 ); 751 })(); 752 753 754 // PARTICLE NETWORK 755 (function () { 756 const canvas = document.getElementById("particles"); 757 const ctx = canvas.getContext("2d"); 758 const DPR = Math.min(window.devicePixelRatio || 1, 2); 759 let W, 760 H, 761 parts, 762 mouse = { x: -9999, y: -9999 }; 763 764 // Mobile-optimized particle count 765 const N = window.innerWidth < 720 ? 60 : 110; 766 767 function resize() { 768 W = canvas.width = Math.floor(window.innerWidth * DPR); 769 H = canvas.height = Math.floor( 770 window.innerHeight * (window.innerWidth < 720 ? 0.8 : 0.92) * DPR 771 ); 772 canvas.style.width = window.innerWidth + "px"; 773 canvas.style.height = 774 window.innerHeight * (window.innerWidth < 720 ? 0.8 : 0.92) + "px"; 775 } 776 777 function R(a, b) { 778 return Math.random() * (b - a) + a; 779 } 780 781 function init() { 782 parts = Array.from({ length: N }, () => ({ 783 x: R(0, W), 784 y: R(0, H), 785 vx: R(-0.15, 0.15), 786 vy: R(-0.15, 0.15), 787 r: R(1 * DPR, 2 * DPR), 788 })); 789 } 790 791 function step() { 792 ctx.clearRect(0, 0, W, H); 793 794 for (const p of parts) { 795 p.x += p.vx; 796 p.y += p.vy; 797 if (p.x < 0 || p.x > W) p.vx *= -1; 798 if (p.y < 0 || p.y > H) p.vy *= -1; 799 800 const dx = p.x - mouse.x, 801 dy = p.y - mouse.y, 802 d2 = dx * dx + dy * dy; 803 if (d2 < 140 * DPR * (140 * DPR)) { 804 p.x += dx * 0.002; 805 p.y += dy * 0.002; 806 } 807 } 808 809 ctx.lineWidth = 0.8 * DPR; 810 for (let i = 0; i < parts.length; i++) { 811 for (let j = i + 1; j < parts.length; j++) { 812 const a = parts[i], 813 b = parts[j]; 814 const dx = a.x - b.x, 815 dy = a.y - b.y, 816 d2 = dx * dx + dy * dy; 817 if (d2 < 120 * DPR * (120 * DPR)) { 818 const alpha = 1 - Math.sqrt(d2) / (120 * DPR); 819 ctx.strokeStyle = `rgba(168,200,255,${alpha * 0.35})`; 820 ctx.beginPath(); 821 ctx.moveTo(a.x, a.y); 822 ctx.lineTo(b.x, b.y); 823 ctx.stroke(); 824 } 825 } 826 } 827 828 for (const p of parts) { 829 ctx.fillStyle = "rgba(255,122,0,.9)"; 830 ctx.beginPath(); 831 ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2); 832 ctx.fill(); 833 } 834 835 requestAnimationFrame(step); 836 } 837 838 window.addEventListener("mousemove", (e) => { 839 const r = canvas.getBoundingClientRect(); 840 mouse.x = (e.clientX - r.left) * DPR; 841 mouse.y = (e.clientY - r.top) * DPR; 842 }); 843 844 window.addEventListener("mouseout", () => { 845 mouse.x = mouse.y = -9999; 846 }); 847 window.addEventListener("resize", () => { 848 resize(); 849 init(); 850 }); 851 852 resize(); 853 init(); 854 step(); 855 })(); 856 857 // FIXED TYPEWRITER EFFECT 858 window.addEventListener("DOMContentLoaded", function () { 859 const lines = document.querySelectorAll("#typewriter .line"); 860
861 lines.forEach((line, index) => { 862 const text = line.getAttribute("data-text"); 863 const delay = index * 800; 864 865 setTimeout(() => { 866 line.style.opacity = "1"; 867 let charIndex = 0; 868 869 const typeInterval = setInterval(() => { 870 if (charIndex <= text.length) { 871 line.textContent = text.substring(0, charIndex); 872 charIndex++; 873 } else { 874 clearInterval(typeInterval); 875 } 876 }, 40); 877 }, delay + 500); 878 }); 879 }); 880 881 // Card tilt 882 (function () { 883 const cards = document.querySelectorAll("[data-tilt]"); 884 cards.forEach((card) => { 885 const B = () => card.getBoundingClientRect(); 886 const onMove = (e) => { 887 const b = B(); 888 const cx = e.clientX - b.left, 889 cy = e.clientY - b.top; 890 const px = cx / b.width - 0.5, 891 py = cy / b.height - 0.5; 892 card.style.setProperty("--mx", cx + "px"); 893 card.style.setProperty("--my", cy + "px"); 894 card.style.transform = `perspective(900px) rotateY(${px * 10 895 }deg) rotateX(${-py * 8}deg)`; 896 }; 897 const reset = () => { 898 card.style.transform = "perspective(900px) rotateX(0) rotateY(0)"; 899 }; 900 card.addEventListener("mousemove", onMove); 901 card.addEventListener("mouseenter", onMove); 902 card.addEventListener("mouseleave", reset); 903 }); 904 })(); 905 906 // ENHANCED Interactive Demo with Industry Scenarios 907 (function () { 908 const input = document.getElementById("demoInput"); 909 const response = document.getElementById("demoResponse"); 910 const resetBtn = document.getElementById("resetBtn"); 911 const tabs = document.querySelectorAll(".demo-tab"); 912 let currentIndustry = "general"; 913 let isTyping = false; // Add flag to track typing state 914 915 // Profanity filter 916 const inappropriateWords = [ 917 "fuck", 918 "shit", 919 "damn", 920 "ass", 921 "bitch", 922 "hell", 923 ]; 924 925 // Industry-specific responses 926 const industryResponses = { 927 general: { 928 churn: 929 "Analysis complete: Customer churn increased 23% due to:\n⢠Support response time > 48hrs (impact: 45%)\n⢠Product bugs in v2.3 (impact: 30%)\n⢠Competitor pricing changes (impact: 25%)\n\nRecommended actions: Prioritize support automation, hotfix v2.3.1, implement retention pricing.", 930 cost: "Cost analysis reveals:\n⢠Cloud infrastructure: $342K/month (â12%)\n⢠Unused licenses: $89K/month (opportunity)\n⢠Manual processes: 2,400 hrs/month\n\nPotential savings: $147K/month through optimization.", 931 revenue: "Revenue analysis shows:\n⢠Q3 2025 revenue: $4.2M (â18% YoY)\n⢠New customer acquisition: +340 accounts\n⢠Expansion revenue: $890K (â25%)\n⢠Top growth segment: Enterprise (â42%)\n\nProjected Q4: $4.8M based on current pipeline velocity.", 932 default: 933 'Welcome! Try asking a business question.\n\nExample queries:\n⢠"What\'s driving customer churn?"\n⢠"Show me cost optimization opportunities"\n⢠"Analyze revenue growth"', 934 }, 935 "contact-center": { 936 csat: '<span class="fact-tag">FACT</span>Average CSAT Score for August 2025: 4.2/5.0 (84%)\n\nBreakdown by channel:\n⢠Phone: 4.1/5.0\n⢠Chat: 4.3/5.0\n⢠Email: 4.0/5.0\n\nTrend: â 3% from July 2025', 937 "top agents": 938 '<span class="fact-tag">FACT</span>Top 5 Agents with High CSAT (August 2025):\n\n1. Sarah Chen - 4.8/5.0 (96%)\n2. Michael Rodriguez - 4.7/5.0 (94%)\n3. Emily Johnson - 4.7/5.0 (94%)\n4. David Park - 4.6/5.0 (92%)\n5. Jessica Williams - 4.6/5.0 (92%)\n\nKey success factors: Active listening, first-call resolution, empathy', 939 dsat: '<span class="insight-tag">INSIGHT</span>DSAT Score Increase Analysis:\n\nDSAT increased from 8% to 14% due to:\n⢠System outage on Aug 15-16 (impact: 40%)\n⢠New agent onboarding delays (impact: 30%)\n⢠Complex product launch issues (impact: 20%)\n⢠Increased wait times during peak hours (impact: 10%)\n\nRecommendations: Implement redundancy systems, accelerate training program', 940 default: 941 'Contact Center Analytics Ready.\n\nTry these queries:\n⢠"What is the average CSAT score for August 2025?"\n⢠"Top 5 agents with high CSAT score"\n⢠"Why has the average DSAT score increased?"', 942 }, 943 "hedge-fund": { 944 "net return": 945 '<span class="fact-tag">
945FACT</span>Net Return - Onshore Share Class (June 2025):\n\n+2.04% net for June 2025\nPeriodicity: Monthly\nYTD Performance: +11.3%\nBenchmark Alpha: +180bps', 946 exposure: 947 '<span class="fact-tag">FACT</span>Gross and Net Exposures by Theme (2025-06-30):\n\n⢠Equity: Gross 88.9%, Net 13.8%\n⢠Credit: Gross 41.5%, Net 10.2%\n⢠Merger-Related: Gross 29.7%, Net -2.1%\n⢠Total Portfolio: Gross 159.1%, Net 21.9%', 948 february: 949 '<span class="insight-tag">INSIGHT</span>February 2025 Performance Analysis:\n\nFebruary softness driven by:\n⢠Consumer & Software detractors: -0.7pp combined\n⢠Higher hedge ratio muted gains\n⢠3 positions accounted for majority of losses\n⢠Net exposure trending lower vs January\n\nKey learning: Reduce concentration risk in growth names', 950 tariff: 951 '<span class="insight-tag">INSIGHT</span>Tariff Headlines Impact (Q2 2025):\n\nPositioning changes:\n⢠Raised gross exposure in Equity\n⢠Reduced net via additional shorts/index hedges\n⢠Tilted toward domestic cyclicals\n⢠Moved away from import-sensitive names\n⢠Tighter net due to tariff uncertainty\n⢠Focus on idiosyncratic longs', 952 default: 953 'Hedge Fund Analytics Ready.\n\nExample FACT queries:\n⢠"What was the net return for June 2025?"\n⢠"Gross and net exposures by theme"\n\nExample INSIGHT queries:\n⢠"Why did performance dip in February?"\n⢠"How did tariff headlines influence positioning?"', 954 }, 955 }; 956 957 // Tab switching
958 tabs.forEach((tab) => { 959 tab.addEventListener("click", function () { 960 // Stop any ongoing typing animation 961 isTyping = false; 962 963 tabs.forEach((t) => t.classList.remove("active")); 964 this.classList.add("active"); 965 currentIndustry = this.getAttribute("data-industry"); 966 967 // Clear the input field when switching tabs 968 input.value = ""; 969 970 // Update placeholder based on industry 971 if (currentIndustry === "contact-center") { 972 input.placeholder = 973 "Try: What is the average CSAT score for August 2025?"; 974 } else if (currentIndustry === "hedge-fund") { 975 input.placeholder = "Try: What was the net return for June 2025?"; 976 } else { 977 input.placeholder = 978 "Try asking: What's driving our customer churn?"; 979 } 980 981 // Wait a brief moment to ensure previous animation stops 982 setTimeout(() => { 983 typeWriter(industryResponses[currentIndustry].default, response); 984 }, 100); 985 }); 986 }); 987 988 function typeWriter(text, element, isError = false) { 989 // Stop any previous typing animation 990 isTyping = false; 991 992 element.innerHTML = ""; 993 element.className = isError 994 ? "demo-response demo-error" 995 : "demo-response"; 996 let i = 0; 997 const speed = 15; 998 isTyping = true; // Set typing flag to true 999 1000 const type = () => { 1001 if (!isTyping) return; // Check if typing should stop 1002 1003 if (i < text.length) { 1004 // Handle HTML tags 1005 if (text.substring(i).startsWith("<span")) { 1006 const endTag = text.indexOf("</span>", i) + 7; 1007 element.innerHTML += text.substring(i, endTag); 1008 i = endTag; 1009 } else { 1010 element.innerHTML += text.charAt(i); 1011 i++; 1012 } 1013 setTimeout(type, speed); 1014 } else { 1015 if (isTyping) { // Only add cursor if typing completed naturally 1016 element.innerHTML += '<span class="typing-cursor"></span>'; 1017 } 1018 isTyping = false; // Reset typing flag 1019 } 1020 }; 1021 type(); 1022 } 1023 1024 function processQuery() { 1025 const query = input.value.toLowerCase().trim(); 1026 1027 // Check for inappropriate content 1028 const hasInappropriate = inappropriateWords.some((word) => 1029 query.includes(word) 1030 ); 1031 1032 if (hasInappropriate) { 1033 typeWriter( 1034 "Please keep queries professional and business-related.", 1035 response, 1036 true 1037 ); 1038 return; 1039 } 1040 1041 // Check for empty input 1042 if (query === "") { 1043 typeWriter("Please enter a question to analyze.", response, true); 1044 return; 1045 } 1046 1047 // Find matching response based on current industry 1048 const responses = industryResponses[currentIndustry]; 1049 let responseText = responses.default; 1050 1051 if (currentIndustry === "contact-center") { 1052 if (query.includes("csat") && query.includes("august")) { 1053 responseText = responses.csat; 1054 } else if (query.includes("top") && query.includes("agent")) { 1055 responseText = responses["top agents"]; 1056 } else if (query.includes("dsat") && query.includes("increase")) { 1057 responseText = responses.dsat; 1058 } 1059 } else if (currentIndustry === "hedge-fund") { 1060 if (query.includes("net return") || query.includes("june")) { 1061 responseText = responses["net return"]; 1062 } else if (query.includes("exposure") || query.includes("theme")) { 1063 responseText = responses.exposure; 1064 } else if (query.includes("february") || query.includes("dip")) { 1065 responseText = responses.february; 1066 } else if (query.includes("tariff")) { 1067 responseText = responses.tariff; 1068 } 1069 } else if (currentIndustry === "general") { 1070 // General responses 1071 if (query.includes("churn") || query.includes("customer")) { 1072 responseText = responses.churn; 1073 } else if (query.includes("cost") || query.includes("spend")) { 1074 responseText = responses.cost; 1075 } else if (query.includes("revenue") || query.includes("growth")) { 1076 responseText = "Revenue analysis shows:\n⢠Q3 2025 revenue: $4.2M (â18% YoY)\n⢠New customer acquisition: +340 accounts\n⢠Expansion revenue: $890K (â25%)\n⢠Top growth segment: Enterprise (â42%)\n\nProjected Q4: $4.8M based on current pipeline velocity."; 1077 } 1078 } 1079 1080 // Stop any ongoing animation before starting new one 1081 isTyping = false;
1082 1083 // Show processing animation first 1084 response.innerHTML = 1085 'Processing query<span class="typing-cursor"></span>'; 1086 1087 setTimeout(() => { 1088 typeWriter(responseText, response); 1089 }, 1000); 1090 } 1091 1092 // Reset function 1093 function resetDemo() { 1094 isTyping = false; // Stop any ongoing typing animation 1095 input.value = ""; 1096 1097 // Wait briefly to ensure animation stops, then show default 1098 setTimeout(() => { 1099 typeWriter(industryResponses[currentIndustry].default, response); 1100 }, 100); 1101 } 1102 1103 // Handle Enter key 1104 input.addEventListener("keypress", (e) => { 1105 if (e.key === "Enter") { 1106 processQuery(); 1107 } 1108 }); 1109 1110 // Handle Reset button 1111 resetBtn.addEventListener("click", resetDemo); 1112 1113 // Auto-demo on page load 1114 setTimeout(() => { 1115 typeWriter(industryResponses.general.default, response); 1116 }, 3000); 1117 })(); 1118 (function () { 1119 if ( 1120 typeof gsap !== "undefined" && 1121 typeof ScrollTrigger !== "undefined" 1122 ) { 1123 gsap.registerPlugin(ScrollTrigger); 1124 1125 ScrollTrigger.create({ 1126 trigger: "#metrics", 1127 start: "top 80%", 1128 once: true, 1129 onEnter: () => { 1130 const counters = document.querySelectorAll("[data-counter]"); 1131 1132 counters.forEach((counter, index) => { 1133 const target = parseInt(counter.getAttribute("data-target")); 1134 const suffix = counter.getAttribute("data-suffix") || ""; 1135 const prefix = counter.getAttribute("data-prefix") || ""; 1136 1137 // Set initial value to 0 1138 counter.innerHTML = `${prefix}0${suffix}`; 1139 1140 const obj = { val: 0 }; 1141 1142 gsap.to(obj, { 1143 val: target, 1144 duration: 2, 1145 ease: "power2.out", 1146 delay: index * 0.1, 1147 onUpdate: function () { 1148 counter.innerHTML = `${prefix}${Math.round( 1149 obj.val 1150 )}${suffix}`; 1151 }, 1152 onComplete: function () { 1153 counter.innerHTML = `${prefix}${target}${suffix}`; 1154 }, 1155 }); 1156 }); 1157 }, 1158 }); 1159 } 1160 })(); 1161 1162 // Smooth scroll 1163 document.documentElement.style.scrollBehavior = "smooth"; 1164 </script>
1164 1165 1166 <!-- Scroll to Top Button --> 1167 1168 <div id="scrollToTop"> 1169 <svg viewBox="0 0 36 36" width="40" height="40"> 1170 <path id="progress" fill="none" stroke="#ff6600" stroke-width="2.5" stroke-dasharray="0, 100" 1171 d="M18 2 a 16 16 0 0 1 0 32 a 16 16 0 0 1 0 -32" /> 1172 </svg> 1173 <span>â</span> 1174 </div> 1175 1176</body> 1177 1178</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.