PageSourceSearch

https://nexthop.ai/

html nexthop.ai collected 2026-09-28 09:26:40 UTC 119,574 bytes, 1,270 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head>
4	<meta charset="UTF-8">
5	<meta name="viewport" content="width=device-width, initial-scale=1">
6	<link rel="profile" href="https://gmpg.org/xfn/11">
7	<title>Nexthop.ai &#8211; Building the most efficient Al infrastructure
for the world&#039;s largest cloud operators</title>
8<meta name='robots' content='max-image-preview:large' />
9<script id="cookie-law-info-gcm-var-js" type="db210efae27388b2ff45553d-text/javascript">
10var _ckyGcm = {"status":true,"default_settings":[{"analytics":"denied","advertisement":"denied","functional":"denied","necessary":"granted","ad_user_data":"denied","ad_personalization":"denied","regions":"All"}],"wait_for_update":2000,"url_passthrough":false,"ads_data_redaction":false}</script>
vendor: 1 bytes, line 10
10
11<script id="cookie-law-info-gcm-js" type="db210efae27388b2ff45553d-text/javascript" src="https://nexthop.ai/wp-content/plugins/cookie-law-info/lite/frontend/js/gcm.min.js"></script>
11 
11<script id="cookieyes" type="db210efae27388b2ff45553d-text/javascript" src="https://cdn-cookieyes.com/client_data/6a83b895579b0a54949b51bb9bff3d0c/script.js"></script>
11<link rel='dns-prefetch' href='//descopecdn.com' />
12<link rel='dns-prefetch' href='//unpkg.com' />
13<link rel='dns-prefetch' href='//static.descope.com' />
14<link rel="alternate" type="application/rss+xml" title="Nexthop.ai &raquo; Feed" href="https://nexthop.ai/feed/" />
15<link rel="alternate" type="application/rss+xml" title="Nexthop.ai &raquo; Comments Feed" href="https://nexthop.ai/comments/feed/" />
16<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://nexthop.ai/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fnexthop.ai%2F" />
17<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://nexthop.ai/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fnexthop.ai%2F&#038;format=xml" />
18<style id="wp-img-auto-sizes-contain-inline-css">
19img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
20/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
21</style>
22<style id="wp-emoji-styles-inline-css">
23
24	img.wp-smiley, img.emoji {
25		display: inline !important;
26		border: none !important;
27		box-shadow: none !important;
28		height: 1em !important;
29		width: 1em !important;
30		margin: 0 0.07em !important;
31		vertical-align: -0.1em !important;
32		background: none !important;
33		padding: 0 !important;
34	}
35/*# sourceURL=wp-emoji-styles-inline-css */
36</style>
37<link rel='stylesheet' id='sdm-styles-css' href='https://nexthop.ai/wp-content/plugins/simple-download-monitor/css/sdm_wp_styles.css?ver=4.1.1' media='all' />
38<link rel='stylesheet' id='sdm_fancy2_styles-css' href='https://nexthop.ai/wp-content/plugins/simple-download-monitor/includes/templates-related/fancy2/sdm-fancy-2-styles.css?ver=4.1.1' media='all' />
39<style id="global-styles-inline-css">
40:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
40--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
40.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
41:root :where(.wp-block-icon svg){width: 24px;}
42:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
43/*# sourceURL=global-styles-inline-css */
44</style>
45<link rel='stylesheet' id='contact-form-7-css' href='https://nexthop.ai/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.7' media='all' />
46<link rel='stylesheet' id='descope-wp-css' href='https://nexthop.ai/wp-content/plugins/descope/public/css/descope-wp-public.css?ver=1.0.0' media='all' />
47<link rel='stylesheet' id='hello-elementor-css' href='https://nexthop.ai/wp-content/themes/hello-elementor/assets/css/reset.css?ver=3.5.1' media='all' />
48<link rel='stylesheet' id='hello-elementor-theme-style-css' href='https://nexthop.ai/wp-content/themes/hello-elementor/assets/css/theme.css?ver=3.5.1' media='all' />
49<link rel='stylesheet' id='elementor-frontend-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.3.2' media='all' />
50<link rel='stylesheet' id='widget-heading-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.3.2' media='all' />
51<link rel='stylesheet' id='widget-image-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.3.2' media='all' />
52<link rel='stylesheet' id='widget-nav-menu-css' href='https://nexthop.ai/wp-content/plugins/elementor-pro/assets/css/widget-nav-menu.min.css?ver=4.3.0' media='all' />
53<link rel='stylesheet' id='e-sticky-css' href='https://nexthop.ai/wp-content/plugins/elementor-pro/assets/css/modules/sticky.min.css?ver=4.3.0' media='all' />
54<link rel='stylesheet' id='elementor-post-6-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-6.css?ver=1790308106' media='all' />
55<link rel='stylesheet' id='e-animation-fadeIn-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/lib/animations/styles/fadeIn.min.css?ver=4.3.2' media='all' />
56<link rel='stylesheet' id='swiper-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/lib/swiper/v8/css/swiper.min.css?ver=8.4.5' media='all' />
57<link rel='stylesheet' id='e-swiper-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/css/conditionals/e-swiper.min.css?ver=4.3.2' media='all' />
58<link rel='stylesheet' id='widget-nested-carousel-css' href='https://nexthop.ai/wp-content/plugins/elementor-pro/assets/css/widget-nested-carousel.min.css?ver=4.3.0' media='all' />
59<link rel='stylesheet' id='widget-loop-common-css' href='https://nexthop.ai/wp-content/plugins/elementor-pro/assets/css/widget-loop-common.min.css?ver=4.3.0' media='all' />
60<link rel='stylesheet' id='widget-loop-carousel-css' href='https://nexthop.ai/wp-content/plugins/elementor-pro/assets/css/widget-loop-carousel.min.css?ver=4.3.0' media='all' />
61<link rel='stylesheet' id='elementor-post-28-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-28.css?ver=1790308116' media='all' />
62<link rel='stylesheet' id='elementor-post-19-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-19.css?ver=1790308107' media='all' />
63<link rel='stylesheet' id='elementor-post-1142-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-1142.css?ver=1790308108' media='all' />
64<link rel='stylesheet' id='elementor-gf-roboto-css' href='https://fonts.googleapis.com/css?family=Roboto:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
65<link rel='stylesheet' id='elementor-gf-robotoslab-css' href='https://fonts.googleapis.com/css?family=Roboto+Slab:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
66<link rel='stylesheet' id='elementor-gf-manrope-css' href='https://fonts.googleapis.com/css?family=Manrope:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
67<link rel='stylesheet' id='elementor-gf-poppins-css' href='https://fonts.googleapis.com/css?family=Poppins:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
68<script id="jquery-core-js" src="https://nexthop.ai/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 68
68
69<script id="jquery-migrate-js" src="https://nexthop.ai/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 69
69
70<script id="descope-web-component-js" src="https://descopecdn.com/npm/@descope/[email protected]/dist/index.js?ver=1.0.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 70
70
71<script id="descope-web-js-js" src="https://descopecdn.com/npm/@descope/[email protected]/dist/index.umd.js?ver=1.0.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 71
71
72<script id="jwt-decode-js" src="https://unpkg.com/[email protected]/build/jwt-decode.js?ver=1.0.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 72
72
73<script id="descope-user-profile-widget-js" src="https://static.descope.com/npm/@descope/[email protected]/dist/index.js?ver=1.0.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 73
73
74<script id="descope-wp-js-extra" type="db210efae27388b2ff45553d-text/javascript">
75var descope_ajax_object = {"ajax_url":"https://nexthop.ai/wp-admin/admin-ajax.php","nonce":"e5224af452","siteUrl":"https://nexthop.ai","clientId":"P30VkovLWYgbXPYZUVbwxU1AdPG5","baseUrl":"https://auth.nexthop.ai","flowId":null,"dynamicFields":"","logoutUrl":"https://nexthop.ai/nexthop-gateway-2024/?action=logout&redirect_to=https%3A%2F%2Fnexthop.ai&_wpnonce=e260c65910","providerId":null,"redirectPagePath":null};
76//# sourceURL=descope-wp-js-extra
77</script>
vendor: 1 bytes, line 77
77
78<script id="descope-wp-js" src="https://nexthop.ai/wp-content/plugins/descope/public/js/descope-wp-public.js?ver=1.0.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 78
78
79<script id="sdm-scripts-js-extra" type="db210efae27388b2ff45553d-text/javascript">
80var sdm_ajax_script = {"ajaxurl":"https://nexthop.ai/wp-admin/admin-ajax.php"};
81//# sourceURL=sdm-scripts-js-extra
82</script>
vendor: 1 bytes, line 82
82
83<script id="sdm-scripts-js" src="https://nexthop.ai/wp-content/plugins/simple-download-monitor/js/sdm_wp_scripts.js?ver=7.1.2" type="db210efae27388b2ff45553d-text/javascript"></script>
83
84<link rel="https://api.w.org/" href="https://nexthop.ai/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://nexthop.ai/wp-json/wp/v2/pages/28" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://nexthop.ai/xmlrpc.php?rsd" />
85<meta name="generator" content="WordPress 7.1.2" />
86<link rel="canonical" href="https://nexthop.ai/" />
87<link rel='shortlink' href='https://nexthop.ai/' />
88<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 88-89
88
89<script async src="https://www.googletagmanager.com/gtag/js?id=
89G-1XKYS6NV33
vendor: 61 bytes, line 89
89" type="db210efae27388b2ff45553d-text/javascript"></script>
90<script type="db210efae27388b2ff45553d-text/javascript">
91  
vendor: 138 bytes, lines 91-95
91window.dataLayer = window.dataLayer || [];
92  function gtag(){dataLayer.push(arguments);}
93  gtag('js', new Date());
94
95  gtag('config', '
95G-1XKYS6NV33
vendor: 5 bytes, line 95
95');
96</script>
96
97
98<script type="db210efae27388b2ff45553d-text/javascript">
99
100    /*
101    *   Gradient Animation
102    *   ScrollObserver functionality to disable animation when not scrolled into view has been disabled and 
103    *   commented out for now.
104    */
105
106    //Converting colors to proper format
107    function normalizeColor(hexCode) {
108      return [(hexCode >> 16 & 255) / 255, (hexCode >> 8 & 255) / 255, (255 & hexCode) / 255]
109    } ["SCREEN", "LINEAR_LIGHT"].reduce((hexCode, t, n) => Object.assign(hexCode, {
110      [t]: n
111    }), {}); 
112
113    //Essential functionality of WebGl
114    // t = 500,
115    // n = 200,
116    class MiniGl {
117      constructor(canvas, width, height, debug = false) {
118        const _miniGl = this,
119          debug_output = -1 !== document.location.search.toLowerCase().indexOf("debug=webgl");
120        _miniGl.canvas = canvas, _miniGl.gl = _miniGl.canvas.getContext("webgl", {
121          antialias: true
122        }), _miniGl.meshes = [];
123        const context = _miniGl.gl;
124        width && height && this.setSize(width, height), _miniGl.lastDebugMsg, _miniGl.debug = debug && debug_output ? function (e) {
125          const t = new Date;
126          t - _miniGl.lastDebugMsg > 1e3 && console.log("---"), console.log(t.toLocaleTimeString() + Array(Math.max(0, 11 - e.length)).join(" ") + e + ": ", ...Array.from(arguments).slice(1)), _miniGl.lastDebugMsg = t
127        } : () => { }, Object.defineProperties(_miniGl, {
128          Material: {
129            enumerable: false,
130            value: class {
131              constructor(vertexShaders, fragments, uniforms = {}) {
132                const material = this;
133                function getShaderByType(type, source) {
134                  const shader = context.createShader(type);
135                  return context.shaderSource(shader, source), context.compileShader(shader), context.getShaderParameter(shader, context.COMPILE_STATUS) || console.error(context.getShaderInfoLog(shader)), _miniGl.debug("Material.compileShaderSource", {
136                    source: source
137                  }), shader
138                }
139                function getUniformVariableDeclarations(uniforms, type) {
140                  return Object.entries(uniforms).map(([uniform, value]) => value.getDeclaration(uniform, type)).join("\n")
141                }
142                material.uniforms = uniforms, material.uniformInstances = [];
143
144                const prefix = "\n              precision highp float;\n            ";
145                material.vertexSource = `\n              ${prefix}\n              attribute vec4 position;\n              attribute vec2 uv;\n              attribute vec2 uvNorm;\n              ${getUniformVariableDeclarations(_miniGl.commonUniforms, "vertex")}\n              ${getUniformVariableDeclarations(uniforms, "vertex")}\n              ${vertexShaders}\n            `,
146                  material.Source = `\n              ${prefix}\n              ${getUniformVariableDeclarations(_miniGl.commonUniforms, "fragment")}\n              ${getUniformVariableDeclarations(uniforms, "fragment")}\n              ${fragments}\n            `,
147                  material.vertexShader = getShaderByType(context.VERTEX_SHADER, material.vertexSource),
148                  material.fragmentShader = getShaderByType(context.FRAGMENT_SHADER, material.Source),
149                  material.program = context.createProgram(),
150                  context.attachShader(material.program, material.vertexShader),
151                  context.attachShader(material.program, material.fragmentShader),
152                  context.linkProgram(material.program),
153                  context.getProgramParameter(material.program, context.LINK_STATUS) || console.error(context.getProgramInfoLog(material.program)),
154                  context.useProgram(material.program),
155                  material.attachUniforms(void 0, _miniGl.commonUniforms),
156                  material.attachUniforms(void 0, material.uniforms)
157              }
158              //t = uniform
159              attachUniforms(name, uniforms) {
160                //n  = material
161                const material = this;
162                void 0 === name ? Object.entries(uniforms).forEac
162h(([name, uniform]) => {
163                  material.attachUniforms(name, uniform)
164                }) : "array" == uniforms.type ? uniforms.value.forEach((uniform, i) => material.attachUniforms(`${name}[${i}]`, uniform)) : "struct" == uniforms.type ? Object.entries(uniforms.value).forEach(([uniform, i]) => material.attachUniforms(`${name}.${uniform}`, i)) : (_miniGl.debug("Material.attachUniforms", {
165                  name: name,
166                  uniform: uniforms
167                }), material.uniformInstances.push({
168                  uniform: uniforms,
169                  location: context.getUniformLocation(material.program, name)
170                }))
171              }
172            }
173          },
174          Uniform: {
175            enumerable: !1,
176            value: class {
177              constructor(e) {
178                this.type = "float", Object.assign(this, e);
179                this.typeFn = {
180                  float: "1f",
181                  int: "1i",
182                  vec2: "2fv",
183                  vec3: "3fv",
184                  vec4: "4fv",
185                  mat4: "Matrix4fv"
186                }[this.type] || "1f", this.update()
187              }
188              update(value) {
189                void 0 !== this.value && context[`uniform${this.typeFn}`](value, 0 === this.typeFn.indexOf("Matrix") ? this.transpose : this.value, 0 === this.typeFn.indexOf("Matrix") ? this.value : null)
190              }
191              //e - name
192              //t - type
193              //n - length
194              getDeclaration(name, type, length) {
195                const uniform = this;
196                if (uniform.excludeFrom !== type) {
197                  if ("array" === uniform.type) return uniform.value[0].getDeclaration(name, type, uniform.value.length) + `\nconst int ${name}_length = ${uniform.value.length};`;
198                  if ("struct" === uniform.type) {
199                    let name_no_prefix = name.replace("u_", "");
200                    return name_no_prefix =
201                      name_no_prefix.charAt(0).toUpperCase() +
202                      name_no_prefix.slice(1),
203                      `uniform struct ${name_no_prefix} 
204                                {\n` +
205                      Object.entries(uniform.value).map(([name, uniform]) =>
206                        uniform.getDeclaration(name, type)
207                          .replace(/^uniform/, ""))
208                        .join("")
209                      + `\n} ${name}${length > 0 ? `[${length}]` : ""};`
210                  }
211                  return `uniform ${uniform.type} ${name}${length > 0 ? `[${length}]` : ""};`
212                }
213              }
214            }
215          },
216          PlaneGeometry: {
217            enumerable: !1,
218            value: class {
219              constructor(width, height, n, i, orientation) {
220                context.createBuffer(), this.attributes = {
221                  position: new _miniGl.Attribute({
222                    target: context.ARRAY_BUFFER,
223                    size: 3
224                  }),
225                  uv: new _miniGl.Attribute({
226                    target: context.ARRAY_BUFFER,
227                    size: 2
228                  }),
229                  uvNorm: new _miniGl.Attribute({
230                    target: context.ARRAY_BUFFER,
231                    size: 2
232                  }),
233                  index: new _miniGl.Attribute({
234                    target: context.ELEMENT_ARRAY_BUFFER,
235                    size: 3,
236                    type: context.UNSIGNED_SHORT
237                  })
238                }, this.setTopology(n, i), this.setSize(width, height, orientation)
239              }
240              setTopology(e = 1, t = 1) {
241                const n = this;
242                n.xSegCount = e, n.ySegCount = t, n.vertexCount = (n.xSegCount + 1) * (n.ySegCount + 1), n.quadCount = n.xSegCount * n.ySegCount * 2, n.attributes.uv.values = new Float32Array(2 * n.vertexCount), n.attributes.uvNorm.values = new Float32Array(2 * n.vertexCount), n.attributes.index.values = new Uint16Array(3 * n.quadCount);
243                for (let e = 0; e <= n.ySegCount; e++)
244                  for (let t = 0; t <= n.xSegCount; t++) {
245                    const i = e * (n.xSegCount + 1) + t;
246                    if (n.attributes.uv.values[2 * i] = t / n.xSegCount, n.attributes.uv.values[2 * i + 1] = 1 - e / n.ySegCount, n.attributes.uvNorm.values[2 * i] = t / n.xSegCount * 2 - 1, n.attributes.uvNorm.values[2 * i + 1] = 1 - e / n.ySegCount * 2, t < n.xSegCount && e < n.ySegCount) {
247                      const s = e * n.xSegCount + t;
248                      n.attributes.index.values[6 * s] = i, n.attributes.index.values[6 * s + 1] = i + 1 + n.xSegCount, n.attributes.index.values[6 * s + 2] = i + 1, n.attributes.index.values[6 * s + 3] = i + 1, n.attributes.index.values[6 * s + 4] = i + 1 + n.xSegCount, n.attributes.index.values[6 * s + 5] = i + 2 + n.xSegCount
249                    }
250                  }
251                n.attributes.uv.update(), n.attributes.uvNorm.update(), n.attributes.index.update(), _miniGl.debug("Geometry.setTopology", {
252                  uv: n.attributes.uv,
253                  uvNorm: n.attributes.uvNorm,
254                  index: n.attributes.index
255                })
256              }
257              setSize(width = 1, height = 1, orientation = "xz") {
258                const geometry = this;
259                geometry.width = width,
260                  geometry.height = height,
261                  geometry.orientation = orientation,
262                  geometry.attributes.position.values && geometry.attributes.position.values.length === 3 * geometry.vertexCount
263                  || (geometry.attributes.position.values = new Float32Array(3 * geometry.vertexCount));
264                const o = width / -2,
265                  r = height / -2,
266                  segment_width = width / geometry.xSegCount,
267                  segment_height = height / geometry.ySegCount;
268                for (let yIndex = 0; yIndex <= geometry.ySegCount; yIndex++) {
269                  const t = r + yIndex * segment_height;
270                  for (let xIndex = 0; xIndex <= geometry.xSegCount; xIndex++) {
271                    const r = o + xIndex * segment_width,
272                      l = yIndex * (geometry.xSegCount + 1) + xIndex;
273                    geometry.attributes.position.values[3 * l + "xyz".indexOf(orientation[0])] = r,
274                      geometry.attributes.position.values[3 * l + "xyz".indexOf(orientation[1])] = -t
275                  }
276                }
277                geometry.attributes.position.update(), _miniGl.debug("Geometry.setSize", {
278                  position: geometry.attributes.position
279                })
280              }
281            }
282          },
283          Mesh: {
284            enumerable: !1,
285            value: class {
286              constructor(geometry, material) {
287                const mesh = this;
288                mesh.geometry = geometry, mesh.material = material, mesh.wireframe = !1, mesh.attributeInstances = [], Object.entries(mesh.geometry.attributes).forEach(([e, attribute]) => {
289                  mesh.attributeInstances.push({
290                    attribute: attribute,
291                    location: attribute.attach(e, mesh.material.program)
292                  })
293                }), _miniGl.meshes.push(mesh), _miniGl.debug("Mesh.constructor", {
294                  mesh: mesh
295                })
296              }
297              draw() {
298                context.useProgram(this.material.program), this.material.uniformInstances.forEach(({
299                  uniform: e,
300                  location: t
301                }) => e.update(t)), this.attributeInstances.forEach(({
302                  attribute: e,
303                  location: t
304                }) => e.use(t)), context.drawElements(this.wireframe ? context.LINES : context.TRIANGLES, this.geometry.attributes.index.values.length, context.UNSIGNED_SHORT, 0)
305              }
306              remove() {
307                _miniGl.meshes = _miniGl.meshes.filter(e => e != this)
308              }
309            }
310          },
311          Attribute: {
312            enumerable: !1,
313            value: class {
314              constructor(e) {
315                this.type = context.FLOAT, this.normalized = !1, this.buffer = context.createBuffer(), Object.assign(this, e), this.update()
316              }
317              update() {
318                void 0 !== this.values && (context.bindBuffer(this.target, this.buffer), context.bufferData(this.target, this.values, context.STATIC_DRAW))
319              }
320              attach(e, t) {
321                const n = context.getAttribLocation(t, e);
322                return this.target === context.ARRAY_BUFFER && (context.enableVertexAttribArray(n), context.vertexAttribPointer(n, this.size, this.type, this.normalized, 0, 0)), n
323              }
324              use(e) {
325                context.bindBuffer(this.target, this.buffer), this.target === context.ARRAY_BUFFER && (context.enableVertexAttribArray(e), context.vertexAttribPointer(e, this.size, this.type, this.normalized, 0, 0))
326              }
327            }
328          }
329        });
330        const a = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
331        _miniGl.commonUniforms = {
332          projectionMatrix: new _miniGl.Uniform({
333            type: "mat4",
334            value: a
335          }),
336          modelViewMatrix: new _miniGl.Uniform({
337            type: "mat4",
338            value: a
339          }),
340          resolution: new _miniGl.Uniform({
341            type: "vec2",
342            value: [1, 1]
343          }),
344          aspectRatio: new _miniGl.Uniform({
345            type: "float",
346            value: 1
347          })
348        }
349      }
350      setSize(e = 640, t = 480) {
351        this.width = e, this.height = t, this.canvas.width = e, this.canvas.height = t, this.gl.viewport(0, 0, e, t), this.commonUniforms.resolution.value = [e, t], this.commonUniforms.aspectRatio.value = e / t, this.debug("MiniGL.setSize", {
352          width: e,
353          height: t
354        })
355      }
356      //left, right, top, bottom, near, far
357      setOrthographicCamera(e = 0, t = 0, n = 0, i = -2e3, s = 2e3) {
358        this.commonUniforms.projectionMatrix.value = [2 / this.width, 0, 0, 0, 0, 2 / this.height, 0, 0, 0, 0, 2 / (i - s), 0, e, t, n, 1], this.debug("setOrthographicCamera", this.commonUniforms.projectionMatrix.value)
359      }
360      render() {
361        this.gl.clearColor(0, 0, 0, 0), this.gl.clearDepth(1), this.meshes.forEach(e => e.draw())
362      }
363    }
364
365
366
367    //Sets initial properties
368    function e(object, propertyName, val) {
369      return propertyName in object ? Object.defineProperty(object, propertyName, {
370        value: val,
371        enumerable: !0,
372        configurable: !0,
373        writable: !0
374      }) : object[propertyName] = val, object
375    }
376
377    //Gradient object
378    class Gradient {
379      constructor(...t) {
380        e(this, "el", void 0), e(this, "cssVarRetries", 0), e(this, "maxCssVarRetries", 200), e(this, "angle", 0), e(this, "isLoadedClass", !1), e(this, "isScrolling", !1), /*e(this, "isStatic", o.disableAmbientAnimations()),*/ e(this, "scrollingTimeout", void 0), e(this, "scrollingRefreshDelay", 200), e(this, "isIntersecting", !1), e(this, "shaderFiles", void 0), e(this, "vertexShader", void 0), e(this, "sectionColors", void 0), e(this, "computedCanvasStyle", void 0), e(this, "conf", void 0), e(this, "uniforms", void 0), e(this, "t", 1253106), e(this, "last", 0), e(this, "width", void 0), e(this, "minWidth", 1111), e(this, "height", 600), e(this, "xSegCount", void 0), e(this, "ySegCount", void 0), e(this, "mesh", void 0), e(this, "material", void 0), e(this, "geometry", void 0), e(this, "minigl", void 0), e(this, "scrollObserver", void 0), e(this, "amp", 320), e(this, "seed", 5), e(this, "freqX", 14e-5), e(this, "freqY", 29e-5), e(this, "freqDelta", 1e-5), e(this, "activeColors", [1, 1, 1, 1]), e(this, "isMetaKey", !1), e(this, "isGradientLegendVisible", !1), e(this, "isMouseDown", !1), e(this, "handleScroll", () => {
381          clearTimeout(this.scrollingTimeout), this.scrollingTimeout = setTimeout(this.handleScrollEnd, this.scrollingRefreshDelay), this.isGradientLegendVisible && this.hideGradientLegend(), this.conf.playing && (this.isScrolling = !0, this.pause())
382        }), e(this, "handleScrollEnd", () => {
383          this.isScrolling = !1, this.isIntersecting && this.play()
384        }), e(this, "resize", () => {
385          this.width = window.innerWidth, this.minigl.setSize(this.width, this.height), this.minigl.setOrthographicCamera(), this.xSegCount = Math.ceil(this.width * this.conf.density[0]), this.ySegCount = Math.ceil(this.height * this.conf.density[1]), this.mesh.geometry.setTopology(this.xSegCount, this.ySegCount), this.mesh.geometry.setSize(this.width, this.height), this.mesh.material.uniforms.u_shadow_power.value = this.width < 600 ? 5 : 6
386        }), e(this, "handleMouseDown", e => {
387          this.isGradientLegendVisible && (this.isMetaKey = e.metaKey, this.isMouseDown = !0, !1 === this.conf.playing && requestAnimationFrame(this.animate))
388        }), e(this, "handleMouseUp", () => {
389          this.isMouseDown = !1
390        }), e(this, "animate", e => {
391          if (!this.shouldSkipFrame(e) || this.isMouseDown) {
392            if (this.t += Math.min(e - this.last, 1e3 / 15), this.last = e, this.isMouseDown) {
393              let e = 160;
394              this.isMetaKey && (e = -160), this.t += e
395            }
396            this.mesh.material.uniforms.u_time.value = this.t, this.minigl.render()
397
398          }
399          if (0 !== this.last && this.isStatic) return this.minigl.render(), void this.disconnect();
400          (/*this.isIntersecting && */this.conf.playing || this.isMouseDown) && requestAnimationFrame(this.animate)
401        }), e(this, "addIsLoadedClass", () => {
402          /*this.isIntersecting && */!this.isLoadedClass && (this.isLoadedClass = !0, this.el.classList.add("isLoaded"), setTimeout(() => {
403          this.el.parentElement.classList.add("isLoaded")
404        }, 3e3))
405        }), e(this, "pause", () => {
406          this.conf.playing = false
407        }), e(this, "play", () => {
408          requestAnimationFrame(this.animate), this.conf.playing = true
409        }), e(this, "initGradient", (selector) => {
410          this.el = document.querySelector(selector);
411          this.connect();
412          return this;
413        })
414      }
415      async connect() {
416        this.shaderFiles = {
417          vertex: "varying vec3 v_color;\n\nvoid main() {\n  float time = u_time * u_global.noiseSpeed;\n\n  vec2 noiseCoord = resolution * uvNorm * u_global.noiseFreq;
417\n\n  vec2 st = 1. - uvNorm.xy;\n\n  //\n  // Tilting the plane\n  //\n\n  // Front-to-back tilt\n  float tilt = resolution.y / 2.0 * uvNorm.y;\n\n  // Left-to-right angle\n  float incline = resolution.x * uvNorm.x / 2.0 * u_vertDeform.incline;\n\n  // Up-down shift to offset incline\n  float offset = resolution.x / 2.0 * u_vertDeform.incline * mix(u_vertDeform.offsetBottom, u_vertDeform.offsetTop, uv.y);\n\n  //\n  // Vertex noise\n  //\n\n  float noise = snoise(vec3(\n    noiseCoord.x * u_vertDeform.noiseFreq.x + time * u_vertDeform.noiseFlow,\n    noiseCoord.y * u_vertDeform.noiseFreq.y,\n    time * u_vertDeform.noiseSpeed + u_vertDeform.noiseSeed\n  )) * u_vertDeform.noiseAmp;\n\n  // Fade noise to zero at edges\n  noise *= 1.0 - pow(abs(uvNorm.y), 2.0);\n\n  // Clamp to 0\n  noise = max(0.0, noise);\n\n  vec3 pos = vec3(\n    position.x,\n    position.y + tilt + incline + noise - offset,\n    position.z\n  );\n\n  //\n  // Vertex color, to be passed to fragment shader\n  //\n\n  if (u_active_colors[0] == 1.) {\n    v_color = u_baseColor;\n  }\n\n  for (int i = 0; i < u_waveLayers_length; i++) {\n    if (u_active_colors[i + 1] == 1.) {\n      WaveLayers layer = u_waveLayers[i];\n\n      float noise = smoothstep(\n        layer.noiseFloor,\n        layer.noiseCeil,\n        snoise(vec3(\n          noiseCoord.x * layer.noiseFreq.x + time * layer.noiseFlow,\n          noiseCoord.y * layer.noiseFreq.y,\n          time * layer.noiseSpeed + layer.noiseSeed\n        )) / 2.0 + 0.5\n      );\n\n      v_color = blendNormal(v_color, layer.color, pow(noise, 4.));\n    }\n  }\n\n  //\n  // Finish\n  //\n\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);\n}",
418          noise: "//\n// Description : Array and textureless GLSL 2D/3D/4D simplex\n//               noise functions.\n//      Author : Ian McEwan, Ashima Arts.\n//  Maintainer : stegu\n//     Lastmod : 20110822 (ijm)\n//     License : Copyright (C) 2011 Ashima Arts. All rights reserved.\n//               Distributed under the MIT License. See LICENSE file.\n//               https://github.com/ashima/webgl-noise\n//               https://github.com/stegu/webgl-noise\n//\n\nvec3 mod289(vec3 x) {\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 mod289(vec4 x) {\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 permute(vec4 x) {\n    return mod289(((x*34.0)+1.0)*x);\n}\n\nvec4 taylorInvSqrt(vec4 r)\n{\n  return 1.79284291400159 - 0.85373472095314 * r;\n}\n\nfloat snoise(vec3 v)\n{\n  const vec2  C = vec2(1.0/6.0, 1.0/3.0) ;\n  const vec4  D = vec4(0.0, 0.5, 1.0, 2.0);\n\n// First corner\n  vec3 i  = floor(v + dot(v, C.yyy) );\n  vec3 x0 =   v - i + dot(i, C.xxx) ;\n\n// Other corners\n  vec3 g = step(x0.yzx, x0.xyz);\n  vec3 l = 1.0 - g;\n  vec3 i1 = min( g.xyz, l.zxy );\n  vec3 i2 = max( g.xyz, l.zxy );\n\n  //   x0 = x0 - 0.0 + 0.0 * C.xxx;\n  //   x1 = x0 - i1  + 1.0 * C.xxx;\n  //   x2 = x0 - i2  + 2.0 * C.xxx;\n  //   x3 = x0 - 1.0 + 3.0 * C.xxx;\n  vec3 x1 = x0 - i1 + C.xxx;\n  vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n  vec3 x3 = x0 - D.yyy;      // -1.0+3.0*C.x = -0.5 = -D.y\n\n// Permutations\n  i = mod289(i);\n  vec4 p = permute( permute( permute(\n            i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\n          + i.y + vec4(0.0, i1.y, i2.y, 1.0 ))\n          + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\n\n// Gradients: 7x7 points over a square, mapped onto an octahedron.\n// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n  float n_ = 0.142857142857; // 1.0/7.0\n  vec3  ns = n_ * D.wyz - D.xzx;\n\n  vec4 j = p - 49.0 * floor(p * ns.z * ns.z);  //  mod(p,7*7)\n\n  vec4 x_ = floor(j * ns.z);\n  vec4 y_ = floor(j - 7.0 * x_ );    // mod(j,N)\n\n  vec4 x = x_ *ns.x + ns.yyyy;\n  vec4 y = y_ *ns.x + ns.yyyy;\n  vec4 h = 1.0 - abs(x) - abs(y);\n\n  vec4 b0 = vec4( x.xy, y.xy );\n  vec4 b1 = vec4( x.zw, y.zw );\n\n  //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\n  //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\n  vec4 s0 = floor(b0)*2.0 + 1.0;\n  vec4 s1 = floor(b1)*2.0 + 1.0;\n  vec4 sh = -step(h, vec4(0.0));\n\n  vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\n  vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\n\n  vec3 p0 = vec3(a0.xy,h.x);\n  vec3 p1 = vec3(a0.zw,h.y);\n  vec3 p2 = vec3(a1.xy,h.z);\n  vec3 p3 = vec3(a1.zw,h.w);\n\n//Normalise gradients\n  vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n  p0 *= norm.x;\n  p1 *= norm.y;\n  p2 *= norm.z;\n  p3 *= norm.w;\n\n// Mix final noise value\n  vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n  m = m * m;
418\n  return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),\n                                dot(p2,x2), dot(p3,x3) ) );\n}",
419          blend: "//\n// https://github.com/jamieowen/glsl-blend\n//\n\n// Normal\n\nvec3 blendNormal(vec3 base, vec3 blend) {\n\treturn blend;\n}\n\nvec3 blendNormal(vec3 base, vec3 blend, float opacity) {\n\treturn (blendNormal(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Screen\n\nfloat blendScreen(float base, float blend) {\n\treturn 1.0-((1.0-base)*(1.0-blend));\n}\n\nvec3 blendScreen(vec3 base, vec3 blend) {\n\treturn vec3(blendScreen(base.r,blend.r),blendScreen(base.g,blend.g),blendScreen(base.b,blend.b));\n}\n\nvec3 blendScreen(vec3 base, vec3 blend, float opacity) {\n\treturn (blendScreen(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Multiply\n\nvec3 blendMultiply(vec3 base, vec3 blend) {\n\treturn base*blend;\n}\n\nvec3 blendMultiply(vec3 base, vec3 blend, float opacity) {\n\treturn (blendMultiply(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Overlay\n\nfloat blendOverlay(float base, float blend) {\n\treturn base<0.5?(2.0*base*blend):(1.0-2.0*(1.0-base)*(1.0-blend));\n}\n\nvec3 blendOverlay(vec3 base, vec3 blend) {\n\treturn vec3(blendOverlay(base.r,blend.r),blendOverlay(base.g,blend.g),blendOverlay(base.b,blend.b));\n}\n\nvec3 blendOverlay(vec3 base, vec3 blend, float opacity) {\n\treturn (blendOverlay(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Hard light\n\nvec3 blendHardLight(vec3 base, vec3 blend) {\n\treturn blendOverlay(blend,base);\n}\n\nvec3 blendHardLight(vec3 base, vec3 blend, float opacity) {\n\treturn (blendHardLight(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Soft light\n\nfloat blendSoftLight(float base, float blend) {\n\treturn (blend<0.5)?(2.0*base*blend+base*base*(1.0-2.0*blend)):(sqrt(base)*(2.0*blend-1.0)+2.0*base*(1.0-blend));\n}\n\nvec3 blendSoftLight(vec3 base, vec3 blend) {\n\treturn vec3(blendSoftLight(base.r,blend.r),blendSoftLight(base.g,blend.g),blendSoftLight(base.b,blend.b));\n}\n\nvec3 blendSoftLight(vec3 base, vec3 blend, float opacity) {\n\treturn (blendSoftLight(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Color dodge\n\nfloat blendColorDodge(float base, float blend) {\n\treturn (blend==1.0)?blend:min(base/(1.0-blend),1.0);\n}\n\nvec3 blendColorDodge(vec3 base, vec3 blend) {\n\treturn vec3(blendColorDodge(base.r,blend.r),blendColorDodge(base.g,blend.g),blendColorDodge(base.b,blend.b));\n}\n\nvec3 blendColorDodge(vec3 base, vec3 blend, float opacity) {\n\treturn (blendColorDodge(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Color burn\n\nfloat blendColorBurn(float base, float blend) {\n\treturn (blend==0.0)?blend:max((1.0-((1.0-base)/blend)),0.0);\n}\n\nvec3 blendColorBurn(vec3 base, vec3 blend) {\n\treturn vec3(blendColorBurn(base.r,blend.r),blendColorBurn(base.g,blend.g),blendColorBurn(base.b,blend.b));\n}\n\nvec3 blendColorBurn(vec3 base, vec3 blend, float opacity) {\n\treturn (blendColorBurn(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Vivid Light\n\nfloat blendVividLight(float base, float blend) {\n\treturn (blend<0.5)?blendColorBurn(base,(2.0*blend)):blendColorDodge(base,(2.0*(blend-0.5)));\n}\n\nvec3 blendVividLight(vec3 base, vec3 blend) {\n\treturn vec3(blendVividLight(base.r,blend.r),blendVividLight(base.g,blend.g),blendVividLight(base.b,blend.b));\n}\n\nvec3 blendVividLight(vec3 base, vec3 blend, float opacity) {\n\treturn (blendVividLight(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Lighten\n\nfloat blendLighten(float base, float blend) {\n\treturn max(blend,base);\n}\n\nvec3 blendLighten(vec3 base, vec3 blend) {\n\treturn vec3(blendLighten(base.r,blend.r),blendLighten(base.g,blend.g),blendLighten(base.b,blend.b));\n}\n\nvec3 blendLighten(vec3 base, vec3 blend, float opacity) {\n\treturn (blendLighten(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Linear burn\n\nfloat blendLinearBurn(float base, float blend) {\n\t// Note : Same implementation as BlendSubtractf\n\treturn max(base+blend-1.0,0.0);\n}
419\n\nvec3 blendLinearBurn(vec3 base, vec3 blend) {\n\t// Note : Same implementation as BlendSubtract\n\treturn max(base+blend-vec3(1.0),vec3(0.0));\n}\n\nvec3 blendLinearBurn(vec3 base, vec3 blend, float opacity) {\n\treturn (blendLinearBurn(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Linear dodge\n\nfloat blendLinearDodge(float base, float blend) {\n\t// Note : Same implementation as BlendAddf\n\treturn min(base+blend,1.0);\n}\n\nvec3 blendLinearDodge(vec3 base, vec3 blend) {\n\t// Note : Same implementation as BlendAdd\n\treturn min(base+blend,vec3(1.0));\n}\n\nvec3 blendLinearDodge(vec3 base, vec3 blend, float opacity) {\n\treturn (blendLinearDodge(base, blend) * opacity + base * (1.0 - opacity));\n}\n\n// Linear light\n\nfloat blendLinearLight(float base, float blend) {\n\treturn blend<0.5?blendLinearBurn(base,(2.0*blend)):blendLinearDodge(base,(2.0*(blend-0.5)));\n}\n\nvec3 blendLinearLight(vec3 base, vec3 blend) {\n\treturn vec3(blendLinearLight(base.r,blend.r),blendLinearLight(base.g,blend.g),blendLinearLight(base.b,blend.b));\n}\n\nvec3 blendLinearLight(vec3 base, vec3 blend, float opacity) {\n\treturn (blendLinearLight(base, blend) * opacity + base * (1.0 - opacity));\n}",
420          fragment: "varying vec3 v_color;\n\nvoid main() {\n  vec3 color = v_color;\n  if (u_darken_top == 1.0) {\n    vec2 st = gl_FragCoord.xy/resolution.xy;\n    color.g -= pow(st.y + sin(-12.0) * st.x, u_shadow_power) * 0.4;\n  }\n  gl_FragColor = vec4(color, 1.0);\n}"
421        },
422          this.conf = {
423            presetName: "",
424            wireframe: false,
425            density: [.06, 1],
426            zoom: 1,
427            rotation: 0,
428            playing: true
429          },
430          document.querySelectorAll("canvas").length < 1 ? console.log("DID NOT LOAD HERO STRIPE CANVAS") : (
431
432            this.minigl = new MiniGl(this.el, null, null, !0),
433            requestAnimationFrame(() => {
434              this.el && (this.computedCanvasStyle = getComputedStyle(this.el), this.waitForCssVars())
435            })
436            /*
437            this.scrollObserver = await s.create(.1, !1),
438            this.scrollObserver.observe(this.el),
439            this.scrollObserver.onSeparate(() => {
440                window.removeEventListener("scroll", this.handleScroll), window.removeEventListener("mousedown", this.handleMouseDown), window.removeEventListener("mouseup", this.handleMouseUp), window.removeEventListener("keydown", this.handleKeyDown), this.isIntersecting = !1, this.conf.playing && this.pause()
441            }), 
442            this.scrollObserver.onIntersect(() => {
443                window.addEventListener("scroll", this.handleScroll), window.addEventListener("mousedown", this.handleMouseDown), window.addEventListener("mouseup", this.handleMouseUp), window.addEventListener("keydown", this.handleKeyDown), this.isIntersecting = !0, this.addIsLoadedClass(), this.play()
444            })*/
445
446          )
447      }
448      disconnect() {
449        this.scrollObserver && (window.removeEventListener("scroll", this.handleScroll), window.removeEventListener("mousedown", this.handleMouseDown), window.removeEventListener("mouseup", this.handleMouseUp), window.removeEventListener("keydown", this.handleKeyDown), this.scrollObserver.disconnect()), window.removeEventListener("resize", this.resize)
450      }
451      initMaterial() {
452        this.uniforms = {
453          u_time: new this.minigl.Uniform({
454            value: 0
455          }),
456          u_shadow_power: new this.minigl.Uniform({
457            value: 5
458          }),
459          u_darken_top: new this.minigl.Uniform({
460            value: "" === this.el.dataset.jsDarkenTop ? 1 : 0
461          }),
462          u_active_colors: new this.minigl.Uniform({
463            value: this.activeColors,
464            type: "vec4"
465          }),
466          u_global: new this.minigl.Uniform({
467            value: {
468              noiseFreq: new this.minigl.Uniform({
469                value: [this.freqX, this.freqY],
470                type: "vec2"
471              }),
472              noiseSpeed: new this.minigl.Uniform({
473                value: 5e-6
474              })
475            },
476            type: "struct"
477          }),
478          u_vertDeform: new this.minigl.Uniform({
479            value: {
480              incline: new this.minigl.Uniform({
481                value: Math.sin(this.angle) / Math.cos(this.angle)
482              }),
483              offsetTop: new this.minigl.Uniform({
484                value: -.5
485              }),
486              offsetBottom: new this.minigl.Uniform({
487                value: -.5
488              }),
489              noiseFreq: new this.minigl.Uniform({
490                value: [3, 4],
491                type: "vec2"
492              }),
493              noiseAmp: new this.minigl.Uniform({
494                value: this.amp
495              }),
496              noiseSpeed: new this.minigl.Uniform({
497                value: 10
498              }),
499              noiseFlow: new this.minigl.Uniform({
500                value: 3
501              }),
502              noiseSeed: new this.minigl.Uniform({
503                value: this.seed
504              })
505            },
506            type: "struct",
507            excludeFrom: "fragment"
508          }),
509          u_baseColor: new this.minigl.Uniform({
510            value: this.sectionColors[0],
511            type: "vec3",
512            excludeFrom: "fragment"
513          }),
514          u_waveLayers: new this.minigl.Uniform({
515            value: [],
516            excludeFrom: "fragment",
517            type: "array"
518          })
519        };
520        for (let e = 1; e < this.sectionColors.length; e += 1) this.uniforms.u_waveLayers.value.push(new this.minigl.Uniform({
521          value: {
522            color: new this.minigl.Uniform({
523              value: this.sectionColors[e],
524              type: "vec3"
525            }),
526            noiseFreq: new this.minigl.Uniform({
527              value: [2 + e / this.sectionColors.length, 3 + e / this.sectionColors.length],
528              type: "vec2"
529            }),
530            noiseSpeed: new this.minigl.Uniform({
531              value: 50 + .3 * e
532            }),
533            noiseFlow: new this.minigl.Uniform({
534              value: 10 + .3 * e
535            }),
536            noiseSeed: new this.minigl.Uniform({
537              value: this.seed + 10 * e
538            }),
539            noiseFloor: new this.minigl.Uniform({
540              value: .1
541            }),
542            noiseCeil: new this.minigl.Uniform({
543              value: .63 + .07 * e
544            })
545          },
546          type: "struct"
547        }));
548        return this.vertexShader = [this.shaderFiles.noise, this.shaderFiles.blend, this.shaderFiles.vertex].join("\n\n"), new this.minigl.Material(this.vertexShader, this.shaderFiles.fragment, this.uniforms)
549      }
550      initMesh() {
551        this.material = this.initMaterial(), this.geometry = new this.minigl.PlaneGeometry, this.mesh = new this.minigl.Mesh(this.geometry, this.material)
552      }
553      shouldSkipFrame(e) {
554        return !!window.document.hidden || (!this.conf.playing || (parseInt(e, 10) % 2 == 0 || void 0))
555      }
556      updateFrequency(e) {
557        this.freqX += e, this.freqY += e
558      }
559      toggleColor(index) {
560        this.activeColors[index] = 0 === this.activeColors[index] ? 1 : 0
561      }
562      showGradientLegend() {
563        this.width > this.minWidth && (this.isGradientLegendVisible = !0, document.body.classList.add("isGradientLegendVisible"))
564      }
565      hideGradientLegend() {
566        this.isGradientLegendVisible = !1, document.body.classList.remove("isGradientLegendVisible")
567      }
568      init() {
569        this.initGradientColors(), this.initMesh(), this.resize(), requestAnimationFrame(this.animate), window.addEventListener("resize", this.resize)
570      }
571      /*
572      * Waiting for the css variables to become available, usually on page load before we can continue.
573      * Using default colors assigned below if no variables have been found after maxCssVarRetries
574      */
575      waitForCssVars() {
576        if (this.computedCanvasStyle && -1 !== this.computedCanvasStyle.getPropertyValue("--gradient-color-1").indexOf("#")) this.init(), this.addIsLoadedClass();
577        else {
578          if (this.cssVarRetries += 1, this.cssVarRetries > this.maxCssVarRetries) {
579            return this.sectionColors = [16711680, 16711680, 16711935, 65280, 255], void this.init();
580          }
581          requestAnimationFrame(() => this.waitForCssVars())
582        }
583      }
584      /*
585      * Initializes the four section colors by retrieving them from css variables.
586      */
587      initGradientColors() {
588        this.sectionColors = ["--gradient-color-1", "--gradient-color-2", "--gradient-color-3", "--gradient-color-4"].map(cssPropertyName => {
589          let hex = this.computedCanvasStyle.getPropertyValue(cssPropertyName).trim();
590          //Check if shorthand hex value was used and double the length so the conversion in normalizeColor will work.
591          if (4 === hex.length) {
592            const hexTemp = hex.substr(1).split("").map(hexTemp => hexTemp + hexTemp).join("");
593            hex = `#${hexTemp}`
594          }
595          return hex && `0x${hex.substr(1)}`
596        }
596).filter(Boolean).map(normalizeColor)
597      }
598    }
599
600    /*
601    *Finally initializing the Gradient class, assigning a canvas to it and calling Gradient.connect() which initializes everything,
602    * Use Gradient.pause() and Gradient.play() for controls.
603    *
604    * Here are some default property values you can change anytime:
605    * Amplitude:    Gradient.amp = 0
606    * Colors:       Gradient.sectionColors (if you change colors, use normalizeColor(#hexValue)) before you assign it.
607    *
608    *
609    * Useful functions
610    * Gradient.toggleColor(index)
611    * Gradient.updateFrequency(freq)
612    */ 
613//     var gradient = new Gradient();
614//     gradient.amp = 0;
615//     gradient.initGradient("#print-edition-canvas");
616// 	var gradient2 = new Gradient(); 
617//     gradient2.initGradient("#gradient-canvas2");
618</script>
618
619    
619<script type="db210efae27388b2ff45553d-text/javascript">
620        window.EULA_ACCEPTED = true;
621        window.EULA_AJAX_URL = "https://nexthop.ai/wp-admin/admin-ajax.php";
622    </script>
622
623    <meta name="generator" content="Elementor 4.3.2; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap">
624			<style>
625				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
626				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
627					background-image: none !important;
628				}
629				@media screen and (max-height: 1024px) {
630					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
631					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
632						background-image: none !important;
633					}
634				}
635				@media screen and (max-height: 640px) {
636					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
637					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
638						background-image: none !important;
639					}
640				}
641			</style>
642			<link rel="icon" href="https://nexthop.ai/wp-content/uploads/2025/12/cropped-logo-with-icon-linkedin-400x400.png" sizes="32x32" />
643<link rel="icon" href="https://nexthop.ai/wp-content/uploads/2025/12/cropped-logo-with-icon-linkedin-400x400.png" sizes="192x192" />
644<link rel="apple-touch-icon" href="https://nexthop.ai/wp-content/uploads/2025/12/cropped-logo-with-icon-linkedin-400x400.png" />
645<meta name="msapplication-TileImage" content="https://nexthop.ai/wp-content/uploads/2025/12/cropped-logo-with-icon-linkedin-400x400.png" />
646<style id="wp-custom-css">
647.logged-in .menu-login-button{
648	display: none !important;
649}
650.menu-logout-button a.logoutButton {
651    font-family: "Poppins", Sans-serif;
652    font-weight: 500;
653    color: #000000 !important;
654    cursor: pointer;
655}
656
657.menu-software-realeases-button{
658	display: none !important;
659}
660.logged-in .menu-software-realeases-button{
661	display: block !important;
662}
663
664p a{
665	color: #00859B !important;
666}
667
668p a:hover{
669	color: #000 !important;
670}
671
672pre a{
673	color: #00859B !important;
674}
675
676
677.elementor-6586 .elementor-widget-container   {
678    background-color: transparent!important;
679    border-style: none;
680    border-radius: 16px 16px 16px 16px;
681}
682.top-nav-menu .elementor-nav-menu li.menu-logout-button a, .top-nav-menu .elementor-nav-menu li.menu-login-button a {
683    background-color: #ffffff;
684    color: #000000 !important;
685    padding: 12px 22px !important;
686		border: 1px solid #000000;
687    border-radius: 80px;
688    transition: 0.3s;
689    font-size: 1rem !important;
690    font-weight: 500 !important;
691	text-decoration: none !important;
692}
693.top-nav-menu .elementor-nav-menu li.menu-logout-button a:hover::after, .top-nav-menu .elementor-nav-menu li.menu-login-button a:hover::after{
694	text-decoration: none !important;
695	display: none !important;
696}
697.elementor-6572 .elementor-element.elementor-element-5f3f5a8 > .elementor-widget-container {
698   background-color: transparent !important;
699    padding: 2px 10px 2px 10px;
700    border-radius: 16px 16px 16px 16px;
701}
702
703
704@media (min-width: 1600px) {
705  .image-box {
706    margin-top: 12%;
707  }
708}
709svg.e-font-icon-svg.e-fas-caret-down path {
710    display: none;
711}
712svg.e-font-icon-svg.e-fas-caret-down{
713	background: url(https://nexthop.ai/staging/wp-content/uploads/2025/09/chevron-open.svg) left top no-repeat;
714    background-size: 16px;
715}
716
717
718@media screen and (max-width: 1024px){
719	.top-nav-menu .elementor-nav-menu li.menu-logout-button a, .top-nav-menu .elementor-nav-menu li.menu-login-button a {
720    background-color: #ffffff;
721    color: #000000 !important;
722    padding: 15px 10px !important;
723		border: 0px solid #000000;
724    border-radius: 0px;
725    transition: 0.3s;
726    font-size: 1.7rem !important;
727		margin: 0px !important;
728    font-weight: 500 !important;
729	text-decoration: none !important;
730}
731	
732	.top-nav-menu .elementor-nav-menu li.menu-logout-button a{
733		padding: 15px 10px !important;
734	}
735	
736	.top-nav-menu .elementor-nav-menu li.menu-login-button a {
737		padding: 15px 10px 5px 10px !important;
738	}
739	
740
741.menu-logout-button center {
742    text-align: left !important;
743}
744
745.menu-logout-button center a.logoutButton {
746    display: block !important;
747    text-align: left !important;
748    margin: 0 !important;
749}
750
751
752}
753</style>
754</head>
755<body class="home wp-singular page-template-default page page-id-28 wp-custom-logo wp-embed-responsive wp-theme-hello-elementor hello-elementor-default elementor-default elementor-template-full-width elementor-kit-6 elementor-page elementor-page-28">
756
757
758<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
759
760		<header data-elementor-type="header" data-elementor-id="19" class="elementor elementor-19 elementor-location-header" data-elementor-post-type="elementor_library">
761			<div class="elementor-element elementor-element-ce024e7 e-con-full header-container e-flex e-con e-parent" data-id="ce024e7" data-element_type="container" data-e-type="container" id="hide-header" data-settings="{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}">
762		<div class="elementor-element elementor-element-fd3330e e-con-full e-flex e-con e-child" data-id="fd3330e" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
763				<div class="elementor-element elementor-element-c035a59 elementor-widget elementor-widget-heading" data-id="c035a59" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
764				<div class="elementor-widget-container">
765					<p class="elementor-heading-title elementor-size-default"></p>				</div>
766				</div>
767				</div>
768		<div class="elementor-element elementor-element-bdd7472 e-flex e-con-boxed e-con e-child" data-id="bdd7472" data-element_type="container" data-e-type="container">
769					<div class="e-con-inner">
770				<div class="elementor-element elementor-element-897863c main-logo elementor-widget elementor-widget-theme-site-logo elementor-widget-image" data-id="897863c" data-element_type="widget" data-e-type="widget" data-widget_type="theme-site-logo.default">
771				<div class="elementor-widget-container">
772											<a href="https://nexthop.ai">
773			<img width="221" height="45" src="https://nexthop.ai/wp-content/uploads/2025/02/logo-color.svg" class="attachment-full size-full wp-image-7102" alt="" />				</a>
774											</div>
775				</div>
776				<div class="elementor-element elementor-element-0229371 elementor-nav-menu--stretch top-nav-menu elementor-nav-menu--dropdown-tablet elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu" data-id="0229371" data-element_type="widget" data-e-type="widget" data-settings="{&quot;full_width&quot;:&quot;stretch&quot;,&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;svg aria-hidden=\&quot;true\&quot; class=\&quot;e-font-icon-svg e-fas-caret-down\&quot;
776 viewBox=\&quot;0 0 320 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;toggle&quot;:&quot;burger&quot;}" data-widget_type="nav-menu.default">
777				<div class="elementor-widget-container">
778								<nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-underline e--animation-fade">
779				<ul id="menu-1-0229371" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5069"><a href="https://nexthop.ai/about-us/" class="elementor-item">About us<span class="sub-arrow"><svg aria-hidden="true" class="e-font-icon-svg e-fas-caret-down" viewBox="0 0 320 512" xmlns="http://www.w3.org/2000/svg"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></a>
780<ul class="sub-menu elementor-nav-menu--dropdown">
781	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3948"><a href="https://nexthop.ai/about-us/" class="elementor-sub-item">Team</a></li>
782	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11535"><a href="https://nexthop.ai/blogs/" class="elementor-sub-item">Blogs</a></li>
783	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11534"><a href="https://nexthop.ai/news-events/" class="elementor-sub-item">News &#038; Events</a></li>
784</ul>
785</li>
786<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-7201"><a href="https://nexthop.ai/platforms/" class="elementor-item">Products<span class="sub-arrow"><svg aria-hidden="true" class="e-font-icon-svg e-fas-caret-down" viewBox="0 0 320 512" xmlns="http://www.w3.org/2000/svg"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></a>
787<ul class="sub-menu elementor-nav-menu--dropdown">
788	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7200"><a href="https://nexthop.ai/platforms/" class="elementor-sub-item">Platforms</a></li>
789	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7199"><a href="https://nexthop.ai/software-portfolio/" class="elementor-sub-item">Software</a></li>
790	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10876"><a href="https://nexthop.ai/optics-and-cables/" class="elementor-sub-item">Optics and Cables</a></li>
791</ul>
792</li>
793<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-10130"><a href="https://nexthop.ai/support-hub/" class="elementor-item">Support<span class="sub-arrow"><svg aria-hidden="true" class="e-font-icon-svg e-fas-caret-down" viewBox="0 0 320 512" xmlns="http://www.w3.org/2000/svg"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></a>
794<ul class="sub-menu elementor-nav-menu--dropdown">
795	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10131"><a href="https://nexthop.ai/support-hub/" class="elementor-sub-item">Support Hub</a></li>
796	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7079"><a href="https://nexthop.ai/software-releases/" class="elementor-sub-item">Software Releases</a></li>
797</ul>
798</li>
799<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10971"><a href="https://nexthop.ai/learning-hub/" class="elementor-item">Learning hub</a></li>
800<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5431"><a href="https://nexthop.ai/join-us/" class="elementor-item">Join us</a></li>
801<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11888"><a href="https://nexthop.ai/contact-us/" class="elementor-item">Contact us</a></li>
802<li class="menu-login-button menu-item menu-item-type-post_type menu-item-object-page menu-item-10090"><a href="https://nexthop.ai/login/" class="elementor-item">Login</a></li>
803<li class="menu-logout-button menu-item menu-item-type-gs_sim menu-item-object-gs_sim menu-item-7078"></li>
804</ul>			</nav>
805					<div class="elementor-menu-toggle" role="button" tabindex="0" aria-label="Menu Toggle" aria-expanded="false">
806			<svg aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--open e-font-icon-svg e-eicon-menu-bar" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M104 333H896C929 333 958 304 958 271S929 208 896 208H104C71 208 42 237 42 271S71 333 104 333ZM104 583H896C929 583 958 554 958 521S929 458 896 458H104C71 458 42 487 42 521S71 583 104 583ZM104 833H896C929 833 958 804 958 771S929 708 896 708H104C71 708 42 737 42 771S71 833 104 833Z"></path></svg><svg aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--close e-font-icon-svg e-eicon-close" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z"></path></svg>		</div>
807					<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
808				<ul id="menu-2-0229371" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5069"><a href="https://nexthop.ai/about-us/" class="elementor-item" tabindex="-1">About us<span class="sub-arrow"><svg aria-hidden="true" class="e-font-icon-svg e-fas-caret-down" viewB
808ox="0 0 320 512" xmlns="http://www.w3.org/2000/svg"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></a>
809<ul class="sub-menu elementor-nav-menu--dropdown">
810	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3948"><a href="https://nexthop.ai/about-us/" class="elementor-sub-item" tabindex="-1">Team</a></li>
811	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11535"><a href="https://nexthop.ai/blogs/" class="elementor-sub-item" tabindex="-1">Blogs</a></li>
812	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11534"><a href="https://nexthop.ai/news-events/" class="elementor-sub-item" tabindex="-1">News &#038; Events</a></li>
813</ul>
814</li>
815<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-7201"><a href="https://nexthop.ai/platforms/" class="elementor-item" tabindex="-1">Products<span class="sub-arrow"><svg aria-hidden="true" class="e-font-icon-svg e-fas-caret-down" viewBox="0 0 320 512" xmlns="http://www.w3.org/2000/svg"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></a>
816<ul class="sub-menu elementor-nav-menu--dropdown">
817	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7200"><a href="https://nexthop.ai/platforms/" class="elementor-sub-item" tabindex="-1">Platforms</a></li>
818	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7199"><a href="https://nexthop.ai/software-portfolio/" class="elementor-sub-item" tabindex="-1">Software</a></li>
819	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10876"><a href="https://nexthop.ai/optics-and-cables/" class="elementor-sub-item" tabindex="-1">Optics and Cables</a></li>
820</ul>
821</li>
822<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-10130"><a href="https://nexthop.ai/support-hub/" class="elementor-item" tabindex="-1">Support<span class="sub-arrow"><svg aria-hidden="true" class="e-font-icon-svg e-fas-caret-down" viewBox="0 0 320 512" xmlns="http://www.w3.org/2000/svg"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></a>
823<ul class="sub-menu elementor-nav-menu--dropdown">
824	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10131"><a href="https://nexthop.ai/support-hub/" class="elementor-sub-item" tabindex="-1">Support Hub</a></li>
825	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7079"><a href="https://nexthop.ai/software-releases/" class="elementor-sub-item" tabindex="-1">Software Releases</a></li>
826</ul>
827</li>
828<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10971"><a href="https://nexthop.ai/learning-hub/" class="elementor-item" tabindex="-1">Learning hub</a></li>
829<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5431"><a href="https://nexthop.ai/join-us/" class="elementor-item" tabindex="-1">Join us</a></li>
830<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11888"><a href="https://nexthop.ai/contact-us/" class="elementor-item" tabindex="-1">Contact us</a></li>
831<li class="menu-login-button menu-item menu-item-type-post_type menu-item-object-page menu-item-10090"><a href="https://nexthop.ai/login/" class="elementor-item" tabindex="-1">Login</a></li>
832<li class="menu-logout-button menu-item menu-item-type-gs_sim menu-item-object-gs_sim menu-item-7078"></li>
833</ul>			</nav>
834						</div>
835				</div>
836					</div>
837				</div>
838				</div>
839				</header>
840				<div data-elementor-type="wp-page" data-elementor-id="28" class="elementor elementor-28" data-elementor-post-type="page">
841				<div class="elementor-element elementor-element-98dc783 e-con-full e-flex e-con e-parent" data-id="98dc783" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;,&quot;position&quot;:&quot;fixed&quot;}">
842				<div class="elementor-element elementor-element-a8c3dd1 elementor-widget elementor-widget-html" data-id="a8c3dd1" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
843				<div class="elementor-widget-container">
844					<canvas id="homepage-canvas"></canvas>
845<div style="height: 30%;position: absolute;width: 100%;bottom: 0%;background: linear-gradient(0deg, rgb(254 252 250) 15%, rgb(255 255 255 / 1%) 82%);"></div>				</div>
846				</div>
847				</div>
848		<div class="elementor-element elementor-element-72f9f4b e-flex e-con-boxed e-con e-parent" data-id="72f9f4b" data-element_type="container" data-e-type="container">
849					<div class="e-con-inner">
850		<div class="elementor-element elementor-element-45dcf6e e-con-full animated-slow e-flex elementor-invisible e-con e-child" data-id="45dcf6e" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}">
851				<div class="elementor-element elementor-element-e26edd9 elementor-widget elementor-widget-heading" data-id="e26edd9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
852				<div class="elementor-widget-container">
853					<h1 class="elementor-heading-title elementor-size-default">Building the most <span class="homepage-title">efficient Al infrastructure</span>
 for the world's largest cloud operators</h1>				</div>
854				</div>
855				</div>
856		<div class="elementor-element elementor-element-b0c2993 homepage-video-bg animated-slow e-con-full e-flex elementor-invisible e-con e-child" data-id="b0c2993" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}">
857				<div class="elementor-element elementor-element-55d18ff4 elementor-pagination-type-bullets elementor-arrows-position-inside elementor-pagination-position-outside elementor-widget elementor-widget-n-carousel" data-id="55d18ff4" data-element_type="widget" data-e-type="widget" data-settings="{&quot;carousel_items&quot;:[{&quot;slide_title&quot;:&quot;Slide-1&quot;,&quot;_id&quot;:&quot;f492751&quot;},{&quot;slide_title&quot;:&quot;Slide-2&quot;,&quot;_id&quot;:&quot;df73efa&quot;},{&quot;slide_title&quot;:&quot;Slide-3&quot;,&quot;_id&quot;:&quot;e0905c5&quot;}],&quot;slides_to_show&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;slides_to_show_tablet&quot;:&quot;1&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;speed&quot;:500,&quot;arrows&quot;:&quot;yes&quot;,&quot;pagination&quot;:&quot;bullets&quot;,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="nested-carousel.default">
858				<div class="elementor-widget-container">
859							<div class="e-n-carousel swiper" role="region" aria-roledescription="carousel" aria-label="Carousel" dir="ltr">
860			<div class="swiper-wrapper" aria-live="polite">
861										<div class="swiper-slide" data-slide="1" role="group" aria-roledescription="slide" aria-label="1 of 3">
862							<div class="elementor-element elementor-element-d078e41 e-flex e-con-boxed e-con e-child" data-id="d078e41" data-element_type="container" data-e-type="container">
863					<div class="e-con-inner">
864				<div class="elementor-element elementor-element-31e1b99 elementor-widget elementor-widget-shortcode" data-id="31e1b99" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
865				<div class="elementor-widget-container">
866							<div class="elementor-shortcode">		<div data-elementor-type="container" data-elementor-id="11139" class="elementor elementor-11139" data-elementor-post-type="elementor_library">
867				<div class="elementor-element elementor-element-2c6ce5a1 e-con-full e-flex e-con e-child" data-id="2c6ce5a1" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
868		<div class="elementor-element elementor-element-30d90e06 e-con-full e-flex e-con e-child" data-id="30d90e06" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
869				<div class="elementor-element elementor-element-121f8735 elementor-widget elementor-widget-video" data-id="121f8735" data-element_type="widget" data-e-type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/KXtD-e5KD-Y&quot;,&quot;lazy_load&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
870				<div class="elementor-widget-container">
871							<div class="elementor-wrapper elementor-open-inline">
872			<div class="elementor-video"></div>		</div>
873						</div>
874				</div>
875				</div>
876		<div class="elementor-element elementor-element-65e5baea e-con-full e-flex e-con e-child" data-id="65e5baea" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
877				<div class="elementor-element elementor-element-54fc00e elementor-widget elementor-widget-heading" data-id="54fc00e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
878				<div class="elementor-widget-container">
879					<p class="elementor-heading-title elementor-size-default">"Power efficiency, cost, reliability and speed of deployment are all extremely important for scaling AI infrastructure - bringing down the cost per token"</p>				</div>
880				</div>
881		<div class="elementor-element elementor-element-7faf8f13 e-con-full e-flex e-con e-child" data-id="7faf8f13" data-element_type="container" data-e-type="container">
882				<div class="elementor-element elementor-element-1864221 elementor-widget elementor-widget-heading" data-id="1864221" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
883				<div class="elementor-widget-container">
884					<p class="elementor-heading-title elementor-size-default">Anshul Sadana - Founder &amp; CEO, Nexthop AI</p>				</div>
885				</div>
886				<div class="elementor-element elementor-element-2561e03d elementor-widget elementor-widget-heading" data-id="2561e03d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
887				<div class="elementor-widget-container">
888					<p class="elementor-heading-title elementor-size-default"><a href="https://nexthop.ai/blog/the-hyperscaler-paradox-build-buy-or-partner/">Read the Founder’s Blog</a></p>				</div>
889				</div>
890				</div>
891				</div>
892				</div>
893				</div>
894		</div>
895						</div>
896				</div>
897					</div>
898				</div>
899								</div>
900											<div class="swiper-slide" data-slide="2" role="group" aria-roledescription="slide" aria-label="2 of 3">
901							<div class="elementor-element elementor-element-e02d46d e-flex e-con-boxed e-con e-child" data-id="e02d46d" data-element_type="container" data-e-type="container">
902					<div class="e-con-inner">
903				<div class="elementor-element elementor-element-3127542 elementor-widget elementor-widget-shortcode" data-id="3127542" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
904				<div class="elementor-widget-container">
905							<div class="elementor-shortcode">		<div data-elementor-type="container" data-elementor-id="11198" class="elementor elementor-11198" data-elementor-post-type="elementor_library">
906				<div class="elementor-element elementor-element-2c6ce5a1 e-con-full e-flex e-con e-child" data-id="2c6ce5a1" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
907		<div class="elementor-element elementor-element-30d90e06 e-con-full e-flex e-con e-child" data-id="30d90e06" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
908				<div class="elementor-element elementor-element-121f8735 elementor-widget elementor-widget-video" data-id="121f8735" data-element_type="widget" data-e-type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/www.youtube.com\/watch?v=9zWUPbIXF6c&quot;,&quot;lazy_load&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
909				<div class="elementor-widget-container">
910							<div class="elementor-wrapper elementor-open-inline">
911			<div class="elementor-video"></div>		</div>
912						</div>
913				</div>
914				</div>
915		<div class="elementor-element elementor-element-65e5baea e-con-full e-flex e-con e-child" data-id="65e5baea" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
916				<div class="elementor-element elementor-element-54fc00e elementor-widget elementor-widget-heading" data-id="54fc00e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
917				<div class="elementor-widget-container">
918					<p class="elementor-heading-title elementor-size-default">Guru Chahal speaks with Anshul Sadana, founder and CEO of Nexthop AI, about how the AI boom is pushing cloud operators to rethink networking for speed, customization, and efficie
918ncy in modern data centers.</p>				</div>
919				</div>
920		<div class="elementor-element elementor-element-7faf8f13 e-con-full e-flex e-con e-child" data-id="7faf8f13" data-element_type="container" data-e-type="container">
921				</div>
922				</div>
923				</div>
924				</div>
925		</div>
926						</div>
927				</div>
928					</div>
929				</div>
930								</div>
931											<div class="swiper-slide" data-slide="3" role="group" aria-roledescription="slide" aria-label="3 of 3">
932							<div class="elementor-element elementor-element-f8fa9b3 e-flex e-con-boxed e-con e-child" data-id="f8fa9b3" data-element_type="container" data-e-type="container">
933					<div class="e-con-inner">
934				<div class="elementor-element elementor-element-371bf26 elementor-widget elementor-widget-shortcode" data-id="371bf26" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
935				<div class="elementor-widget-container">
936							<div class="elementor-shortcode">		<div data-elementor-type="container" data-elementor-id="10391" class="elementor elementor-10391" data-elementor-post-type="elementor_library">
937				<div class="elementor-element elementor-element-2c6ce5a1 e-con-full e-flex e-con e-child" data-id="2c6ce5a1" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
938		<div class="elementor-element elementor-element-30d90e06 e-con-full e-flex e-con e-child" data-id="30d90e06" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
939				<div class="elementor-element elementor-element-121f8735 elementor-widget elementor-widget-video" data-id="121f8735" data-element_type="widget" data-e-type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/ox628w2GxP4&quot;,&quot;lazy_load&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
940				<div class="elementor-widget-container">
941							<div class="elementor-wrapper elementor-open-inline">
942			<div class="elementor-video"></div>		</div>
943						</div>
944				</div>
945				</div>
946		<div class="elementor-element elementor-element-65e5baea e-con-full e-flex e-con e-child" data-id="65e5baea" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
947				<div class="elementor-element elementor-element-54fc00e elementor-widget elementor-widget-heading" data-id="54fc00e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
948				<div class="elementor-widget-container">
949					<p class="elementor-heading-title elementor-size-default">"A Spirit of Dialogue" in Action at Davos 2026</p>				</div>
950				</div>
951		<div class="elementor-element elementor-element-7faf8f13 e-con-full e-flex e-con e-child" data-id="7faf8f13" data-element_type="container" data-e-type="container">
952				<div class="elementor-element elementor-element-1864221 elementor-widget elementor-widget-heading" data-id="1864221" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
953				<div class="elementor-widget-container">
954					<p class="elementor-heading-title elementor-size-default">Anshul Sadana at Davos 2026, World Economic Forum 
955</p>				</div>
956				</div>
957				</div>
958				</div>
959				</div>
960				</div>
961		</div>
962						</div>
963				</div>
964					</div>
965				</div>
966								</div>
967								</div>
968		</div>
969					<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0" aria-label="Previous">
970				<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M19 12H5M5 12L12 19M5 12L12 5" stroke="#667085" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg>			</div>
971			<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0" aria-label="Next">
972				<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="#667085" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg>			</div>
973					<div class="swiper-pagination"></div>
974						</div>
975				</div>
976				</div>
977					</div>
978				</div>
979		<div class="elementor-element elementor-element-2e6d6d7 e-con-full e-flex e-con e-parent" data-id="2e6d6d7" data-element_type="container" data-e-type="container">
980				<div class="elementor-element elementor-element-a1d1b7c elementor-pagination-type-bullets elementor-pagination-position-outside elementor-widget elementor-widget-loop-carousel" data-id="a1d1b7c" data-element_type="widget" data-e-type="widget" data-settings="{&quot;template_id&quot;:5030,&quot;slides_to_show&quot;:&quot;1&quot;,&quot;speed&quot;:1000,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;slides_to_show_tablet&quot;:&quot;1&quot;,&quot;_skin&quot;:&quot;post&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;.elementor-loop-container&quot;,&quot;pagination&quot;:&quot;bullets&quot;,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="loop-carousel.post">
981				<div class="elementor-widget-container">
982							<div class="swiper elementor-loop-container elementor-grid" role="list" dir="ltr">
983				<div class="swiper-wrapper" aria-live="polite">
984		<style id="loop-5030">.elementor-5030 .elementor-element.elementor-element-e4c66a6{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--flex-wrap:nowrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-5030 .elementor-element.elementor-element-54ab572.elementor-element{--align-self:center;}.elementor-5030 .elementor-element.elementor-element-54ab572{text-align:center;}.elementor-5030 .elementor-element.elementor-element-54ab572 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:32px;font-weight:400;line-height:60px;color:#373D41;}.elementor-5030 .elementor-element.elementor-element-54ab572 .elementor-heading-title a:hover, .elementor-5030 .elementor-element.elementor-element-54ab572 .elementor-heading-title a:focus{color:#00859B;}@media(max-width:1024px){.elementor-5030 .elementor-element.elementor-element-54ab572 .elementor-heading-title{font-size:28px;}}@media(max-width:767px){.elementor-5030 .elementor-element.elementor-element-54ab572 .elementor-heading-title{font-size:18px;line-height:28px;}}/* Start custom CSS for theme-post-title, class: .elementor-element-54ab572 */.scrollable-news-title h3{
985    text-wrap: nowrap;
986    overflow: hidden;
987    text-overflow: ellipsis;
988}/* End custom CSS */</style>		<div data-elementor-type="loop-item" data-elementor-id="5030" class="elementor elementor-5030 swiper-slide e-loop-item e-loop-item-10928 post-10928 news-and-event type-news-and-event status-publish format-standard hentry tag-pr news-category-press-release" data-elementor-post-type="elementor_library" role="group" aria-roledescription="slide" data-custom-edit-handle="1">
989			<div class="elementor-element elementor-element-e4c66a6 e-flex e-con-boxed e-con e-parent" data-id="e4c66a6" data-element_type="container" data-e-type="container">
990					<div class="e-con-inner">
991				<div class="elementor-element elementor-element-54ab572 scrollable-news-title elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="54ab572" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-title.default">
992				<div class="elementor-widget-container">
993					<h3 class="elementor-heading-title elementor-size-default"><a href="https://nexthop.ai/news-and-event/nexthop-ai-accelerates-into-hypergrowth-with-oversubscribed-500m-series-b-funding-catapulting-the-companys-valuation-to-4-2-billion/">Nexthop AI accelerates into Hypergrowth with Oversubscribed $500M Series B Funding, catapulting the company’s valuation to $4.2 Billion</a></h3>
993				</div>
994				</div>
995					</div>
996				</div>
997				</div>
998				<div data-elementor-type="loop-item" data-elementor-id="5030" class="elementor elementor-5030 swiper-slide e-loop-item e-loop-item-10932 post-10932 news-and-event type-news-and-event status-publish format-standard hentry tag-pr news-category-press-release" data-elementor-post-type="elementor_library" role="group" aria-roledescription="slide" data-custom-edit-handle="1">
999			<div class="elementor-element elementor-element-e4c66a6 e-flex e-con-boxed e-con e-parent" data-id="e4c66a6" data-element_type="container" data-e-type="container">
1000					<div class="e-con-inner">
1001				<div class="elementor-element elementor-element-54ab572 scrollable-news-title elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="54ab572" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-title.default">
1002				<div class="elementor-widget-container">
1003					<h3 class="elementor-heading-title elementor-size-default"><a href="https://nexthop.ai/news-and-event/nexthop-ai-unveils-transformative-industry-leading-scale-out-and-scale-across-switches-engineered-for-hyperscalers-neoclouds/">Nexthop AI Unveils Transformative, industry-leading Scale-out and Scale-across Switches engineered for Hyperscalers &amp; NeoClouds</a></h3>				</div>
1004				</div>
1005					</div>
1006				</div>
1007				</div>
1008				</div>
1009		</div>
1010					<div class="swiper-pagination"></div>
1011						</div>
1012				</div>
1013				</div>
1014		<a class="elementor-element elementor-element-030c00c home-page-press-release-container elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent" data-id="030c00c" data-element_type="container" data-e-type="container" href="https://nexthop.ai/news-and-event/nexthop-ai-accelerates-into-hypergrowth-with-oversubscribed-500m-series-b-funding-catapulting-the-companys-valuation-to-4-2-billion/" target="_blank">
1015					<div class="e-con-inner">
1016				<div class="elementor-element elementor-element-eda29d8 elementor-widget__width-initial elementor-widget-mobile__width-initial homepage-press-release-link elementor-widget elementor-widget-heading" data-id="eda29d8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
1017				<div class="elementor-widget-container">
1018					<h3 class="elementor-heading-title elementor-size-default">Nexthop AI accelerates into Hypergrowth with Oversubscribed $500M Series B Funding, catapulting the company’s valuation to $4.2 Billion</h3>				</div>
1019				</div>
1020		<div class="elementor-element elementor-element-5786cc3 e-con-full e-flex e-con e-child" data-id="5786cc3" data-element_type="container" data-e-type="container">
1021				<div class="elementor-element elementor-element-62c4b6b read-more elementor-widget elementor-widget-heading" data-id="62c4b6b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
1022				<div class="elementor-widget-container">
1023					<div class="elementor-heading-title elementor-size-default">Read more</div>				</div>
1024				</div>
1025				</div>
1026				<div class="elementor-element elementor-element-a79a4ef elementor-widget elementor-widget-html" data-id="a79a4ef" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
1027				<div class="elementor-widget-container">
1028					<style>
1029    .home-page-press-release-container:hover .homepage-press-release-link h3, .home-page-press-release-container:hover .read-more .elementor-heading-title{
1030    color: #000000 !important;
1031}
1032
1033/* Read More Hover Effect */
1034.read-more {
1035    position: relative;
1036    display: inline-block;
1037    text-decoration: none;
1038    width: fit-content;
1039}
1040
1041/* Default underline */
1042.read-more::before {
1043    content: "";
1044    width: 100%;
1045    position: absolute;
1046    height: 1.5px;
1047    bottom: -2px;
1048    right: 0;
1049    background-color: black;
1050    transition: 0.3s;
1051}
1052
1053/* Trigger underline animation when hovering over .home-page-press-release-container */
1054.home-page-press-release-container:hover .read-more::before {
1055    animation: hideThenShow 1s ease-in-out forwards;
1056}
1057
1058/* Animation */
1059@keyframes hideThenShow {
1060    0% {
1061        width: 100%;
1062    }
1063    50% {
1064        width: 0%;
1065        right: 0;
1066    }
1067    100% {
1068        width: 100%;
1069        right: inherit;
1070        left: 0;
1071    }
1072}
1073
1074
1075</style>				</div>
1076				</div>
1077					</div>
1078				</a>
1079				</div>
1080				<footer data-elementor-type="footer" data-elementor-id="1142" class="elementor elementor-1142 elementor-location-footer" data-elementor-post-type="elementor_library">
1081			<div class="elementor-element elementor-element-1d0d0fe e-flex e-con-boxed e-con e-parent" data-id="1d0d0fe" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
1082					<div class="e-con-inner">
1083		<div class="elementor-element elementor-element-7befc15 e-con-full e-flex e-con e-child" data-id="7befc15" data-element_type="container" data-e-type="container">
1084		<a class="elementor-element elementor-element-44d1c31 e-con-full e-flex e-con e-child" data-id="44d1c31" data-element_type="container" data-e-type="container" href="https://www.linkedin.com/company/nexthopai" target="_blank">
1085				<div class="elementor-element elementor-element-02a8cbe elementor-widget elementor-widget-image" data-id="02a8cbe" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
1086				<div class="elementor-widget-container">
1087															<img width="18" height="18" src="https://nexthop.ai/wp-content/uploads/2025/03/ic_LinkedIn.svg" class="attachment-full size-full wp-image-1552" alt="" />															</div>
1088				</div>
1089				</a>
1090				<div class="elementor-element elementor-element-a9bb753 elementor-widget__width-auto elementor-widget elementor-widget-text-editor" data-id="a9bb753" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
1091				<div class="elementor-widget-container">
1092									<p>Copyright © 2026 Nexthop Systems Inc. – All Rights Reserved.</p>								</div>
1093				</div>
1094				<div class="elementor-element elementor-element-1de4bf5 elementor-nav-menu--dropdown-none elementor-widget elementor-widget-nav-menu" data-id="1de4bf5" data-element_type="widget" data-e-type="widget" data-settings="{&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;svg aria-hidden=\&quot;true\&quot; class=\&quot;e-font-icon-svg e-fas-caret-down\&quot;
1094 viewBox=\&quot;0 0 320 512\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;&gt;&lt;path d=\&quot;M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;}}" data-widget_type="nav-menu.default">
1095				<div class="elementor-widget-container">
1096								<nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-none">
1097				<ul id="menu-1-1de4bf5" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-11555"><a rel="privacy-policy" href="https://nexthop.ai/privacy-policy/" class="elementor-item">Privacy Policy</a></li>
1098<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11556"><a href="https://nexthop.ai/website-terms-and-conditions-of-use/" class="elementor-item">Terms of Use</a></li>
1099</ul>			</nav>
1100						<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
1101				<ul id="menu-2-1de4bf5" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-11555"><a rel="privacy-policy" href="https://nexthop.ai/privacy-policy/" class="elementor-item" tabindex="-1">Privacy Policy</a></li>
1102<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11556"><a href="https://nexthop.ai/website-terms-and-conditions-of-use/" class="elementor-item" tabindex="-1">Terms of Use</a></li>
1103</ul>			</nav>
1104						</div>
1105				</div>
1106				</div>
1107		<div class="elementor-element elementor-element-680a7e9 e-con-full e-flex e-con e-child" data-id="680a7e9" data-element_type="container" data-e-type="container">
1108				<div class="elementor-element elementor-element-2368006 footer-logo elementor-widget elementor-widget-image" data-id="2368006" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
1109				<div class="elementor-widget-container">
1110																<a href="https://nexthop.ai/">
1111							<img width="221" height="45" src="https://nexthop.ai/wp-content/uploads/2025/02/logo-color.svg" class="attachment-full size-full wp-image-7102" alt="" />								</a>
1112															</div>
1113				</div>
1114				</div>
1115					</div>
1116				</div>
1117				</footer>
1118		
1119<script type="speculationrules">
1120{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1121</script>
1121
1122<style>
1123#homepage-canvas {
1124  width: 100%;
1125  height: 150vh;
1126  --gradient-color-1: #d4eefc;
1127  --gradient-color-2: #ffffff;
1128  --gradient-color-3: #d4eefc;
1129  --gradient-color-4: #ffffff;
1130  z-index: 0;
1131}
1132</style>
1133<script type="db210efae27388b2ff45553d-text/javascript">
1134	var gradientHome = new Gradient();
1135    gradientHome.amp = 0;
1136    gradientHome.initGradient("#homepage-canvas");
1137</script>
1137			
1137<script type="db210efae27388b2ff45553d-text/javascript">
1138				( () => {
1139					const lazyloadRunObserver = () => {
1140						const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
1141						const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
1142							entries.forEach( ( entry ) => {
1143								if ( entry.isIntersecting ) {
1144									let lazyloadBackground = entry.target;
1145									if( lazyloadBackground ) {
1146										lazyloadBackground.classList.add( 'e-lazyloaded' );
1147									}
1148									lazyloadBackgroundObserver.unobserve( entry.target );
1149								}
1150							});
1151						}, { rootMargin: '200px 0px 200px 0px' } );
1152						lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
1153							lazyloadBackgroundObserver.observe( lazyloadBackground );
1154						} );
1155					};
1156					const events = [
1157						'DOMContentLoaded',
1158						'elementor/lazyload/observe',
1159					];
1160					events.forEach( ( event ) => {
1161						document.addEventListener( event, lazyloadRunObserver );
1162					} );
1163				} )();
1164			</script>
1164
1165			<link rel='stylesheet' id='elementor-post-11139-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-11139.css?ver=1790308116' media='all' />
1166<link rel='stylesheet' id='widget-video-css' href='https://nexthop.ai/wp-content/plugins/elementor/assets/css/widget-video.min.css?ver=4.3.2' media='all' />
1167<link rel='stylesheet' id='elementor-post-11198-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-11198.css?ver=1790308116' media='all' />
1168<link rel='stylesheet' id='elementor-post-10391-css' href='https://nexthop.ai/wp-content/uploads/elementor/css/post-10391.css?ver=1790308116' media='all' />
1169<script id="wp-hooks-js" src="https://nexthop.ai/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1169
1169
1170<script id="wp-i18n-js" src="https://nexthop.ai/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1170
1170
1171<script id="wp-i18n-js-after" type="db210efae27388b2ff45553d-text/javascript">
1172wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
1173//# sourceURL=wp-i18n-js-after
1174</script>
vendor: 1 bytes, line 1174
1174
1175<script id="swv-js" src="https://nexthop.ai/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1175
1175
1176<script id="contact-form-7-js-before" type="db210efae27388b2ff45553d-text/javascript">
1177var wpcf7 = {
1178    "api": {
1179        "root": "https:\/\/nexthop.ai\/wp-json\/",
1180        "namespace": "contact-form-7\/v1"
1181    }
1182};
1183//# sourceURL=contact-form-7-js-before
1184</script>
vendor: 1 bytes, line 1184
1184
1185<script id="contact-form-7-js" src="https://nexthop.ai/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.7" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1185
1185
1186<script id="elementor-webpack-runtime-js" src="https://nexthop.ai/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.3.2" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1186
1186
1187<script id="elementor-frontend-modules-js" src="https://nexthop.ai/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.3.2" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1187
1187
1188<script id="jquery-ui-core-js-before" type="db210efae27388b2ff45553d-text/javascript">
1189jQuery.uiBackCompat = true;
1190//# sourceURL=jquery-ui-core-js-before
1191</script>
vendor: 1 bytes, line 1191
1191
1192<script id="jquery-ui-core-js" src="https://nexthop.ai/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1192
1192
1193<script id="elementor-frontend-js-before" type="db210efae27388b2ff45553d-text/javascript">
1194var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},
1195"hasCustomBreakpoints":false},"version":"4.3.2","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"nested-elements":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true},"urls":{"assets":"https:\/\/nexthop.ai\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/nexthop.ai\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/nexthop.ai\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"042ae3cea1","atomicFormsSendForm":"702281ca1a"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"body_background_background":"classic","active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":28,"title":"Nexthop.ai%20%E2%80%93%20Building%20the%20most%20efficient%20Al%20infrastructure%E2%80%A8for%20the%20world%27s%20largest%20cloud%20operators","excerpt":"","featuredImage":false}};
1196//# sourceURL=elementor-frontend-js-before
1197</script>
vendor: 1 bytes, line 1197
1197
1198<script id="elementor-frontend-js" src="https://nexthop.ai/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.3.2" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1198
1198
1199<script id="smartmenus-js" src="https://nexthop.ai/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.2.1" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1199
1199
1200<script id="e-sticky-js" src="https://nexthop.ai/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=4.3.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1200
1200
1201<script id="swiper-js" src="https://nexthop.ai/wp-content/plugins/elementor/assets/lib/swiper/v8/swiper.min.js?ver=8.4.5" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1201
1201
1202<script id="imagesloaded-js" src="https://nexthop.ai/wp-includes/js/imagesloaded.min.js?ver=5.0.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 86 bytes, lines 1202-1203
1202
1203<script id="google-recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
12036LderGYqAAAAALcyKbqoHX2Hi-mmcsfRYLyvnAJ-
vendor: 73 bytes, line 1203
1203&#038;ver=3.0" type="db210efae27388b2ff45553d-text/javascript"></script>
1204<script id="wp-polyfill-js" src="https://nexthop.ai/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1204
1204
1205<script id="wpcf7-recaptcha-js-before" type="db210efae27388b2ff45553d-text/javascript">
1206var wpcf7_recaptcha = {
1207    "sitekey": "6LderGYqAAAAALcyKbqoHX2Hi-mmcsfRYLyvnAJ-",
1208    "actions": {
1209        "homepage": "homepage",
1210        "contactform": "contactform"
1211    }
1212};
1213//# sourceURL=wpcf7-recaptcha-js-before
1214</script>
vendor: 1 bytes, line 1214
1214
1215<script id="wpcf7-recaptcha-js" src="https://nexthop.ai/wp-content/plugins/contact-form-7/modules/recaptcha/index.js?ver=6.1.7" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1215
1215
1216<script id="elementor-pro-frontend-js-before" type="db210efae27388b2ff45553d-text/javascript">
1217var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/nexthop.ai\/wp-admin\/admin-ajax.php","nonce":"a734106389","urls":{"assets":"https:\/\/nexthop.ai\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/nexthop.ai\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},
1218"facebook_sdk":{"lang":"en","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/nexthop.ai\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
1219//# sourceURL=elementor-pro-frontend-js-before
1220</script>
vendor: 1 bytes, line 1220
1220
1221<script id="elementor-pro-frontend-js" src="https://nexthop.ai/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.3.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1221
1221
1222<script id="pro-elements-handlers-js" src="https://nexthop.ai/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.3.0" type="db210efae27388b2ff45553d-text/javascript"></script>
vendor: 1 bytes, line 1222
1222
1223<script id="wp-emoji-settings" type="application/json">
1224{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://nexthop.ai/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
1225</script>
vendor: 1 bytes, line 1225
1225
1226<script type="db210efae27388b2ff45553d-module">
1227/*! This file is auto-generated */
1228var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
1229//# sourceURL=https://nexthop.ai/wp-includes/js/wp-emoji-loader.min.js
1230</script>
1230
1231<!-- Hide and Show Desktop Header -->
1232<script type="db210efae27388b2ff45553d-text/javascript">
1233var prevScrollpos = window.pageYOffset;
1234window.onscroll = function() {
1235var currentScrollPos = window.pageYOffset;
1236  if (prevScrollpos > currentScrollPos) {
1237    document.getElementById("hide-header").style.top = "0px";
1238  } else  {
1239		if(screen.width > 980){
1240			 	// document.getElementById("hide-header").style.top = "-130px"; /* adjust this value to the height of your header--- hide header */
1241			  document.getElementById("hide-header").style.top = "0px"; /* For fixed header */
1242		}
1243  }
1244  prevScrollpos = currentScrollPos;
1245}
1246
1247	// Function to update height and width
1248	function updateSize(){
1249		console.log(window.innerWidth);
1250// 		document.getElementById("hide-header").style.position = "relative";
1251		document.getElementById("hide-header").style.width = "100%";
1252	}
1253
1254	// Add event listener for window resize
1255	window.addEventListener('resize', updateSize);
1256
1257	// Initial update
1258	updateSize();
1259
1260</script>
1260
1261
1262<style>
1263/* Show Hide Sticky Header Speed Control */
1264#hide-header {
1265	transition: all .4s ease!important;
1266}
1267</style>
vendor: 144 bytes, lines 1267-1269
1267
1268
1269<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="db210efae27388b2ff45553d-|49" defer></script>
1269</body>
1270<script type="db210efae27388b2ff45553d-text/javascript">'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]),_trfd.push({'tccl.baseHost':'secureserver.net'},{'ap':'cpsh-oh'},{'server':'p3plzcpnl509041'},{'dcenter':'p3'},{'cp_id':'10237784'},{'cp_cl':'8'}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support.</script>
1270<script src='https://img1.wsimg.com/traffic-assets/js/tccl.min.js' type="db210efae27388b2ff45553d-text/javascript"></script>
1270</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.