PageSourceSearch

https://www.upwind.io/

html upwind.io collected 2026-09-24 09:23:07 UTC 501,028 bytes, 5,036 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head>
4<!-- Google Tag Manager -->
5<script>
vendor: 327 bytes, lines 5-9
5(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
6new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
7j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
8'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
9})(window,document,'script','dataLayer','
9GTM-NQ4VVFZS
vendor: 3 bytes, line 9
9');
9</script>
9
10<!-- End Google Tag Manager -->
11<meta charset="UTF-8">
12<script>
13var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});
14</script>
14
15
16<meta name="viewport" content="width=device-width, initial-scale=1">
17<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
18
19	<!-- This site is optimized with the Yoast SEO plugin v27.7 - https://yoast.com/product/yoast-seo-wordpress/ -->
20	<title>Upwind Security: Cloud &amp; AI Security for the Realtime Era</title>
21	<meta name="description" content="Combine the power of cloud security posture with runtime context and realtime protection— enabling your security team to prioritize accurately and respond fast to your most critical risks." />
22	<link rel="canonical" href="https://www.upwind.io/" />
23	<meta property="og:locale" content="en_US" />
24	<meta property="og:type" content="website" />
25	<meta property="og:title" content="Upwind Security: Cloud &amp; AI Security for the Realtime Era" />
26	<meta property="og:description" content="Combine the power of cloud security posture with runtime context and realtime protection— enabling your security team to prioritize accurately and respond fast to your most critical risks." />
27	<meta property="og:url" content="https://www.upwind.io/" />
28	<meta property="og:site_name" content="Upwind | Cloud &amp; AI Security for the Realtime Era" />
29	<meta property="article:modified_time" content="2026-09-23T15:49:36+00:00" />
30	<meta property="og:image" content="https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Cloud-AI-Security-for-the-Realtime-Era.png" />
31	<meta property="og:image:width" content="1920" />
32	<meta property="og:image:height" content="1080" />
33	<meta property="og:image:type" content="image/png" />
34	<meta name="twitter:card" content="summary_large_image" />
35	
35<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.upwind.io\/","url":"https:\/\/www.upwind.io\/","name":"Upwind Security: Cloud & AI Security for the Realtime Era","isPartOf":{"@id":"https:\/\/www.upwind.io\/#website"},"about":{"@id":"https:\/\/www.upwind.io\/#organization"},"datePublished":"2026-06-29T19:46:27+00:00","dateModified":"2026-09-23T15:49:36+00:00","description":"Combine the power of cloud security posture with runtime context and realtime protection— enabling your security team to prioritize accurately and respond fast to your most critical risks.","breadcrumb":{"@id":"https:\/\/www.upwind.io\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.upwind.io\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.upwind.io\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/www.upwind.io\/#website","url":"https:\/\/www.upwind.io\/","name":"Upwind","description":"","publisher":{"@id":"https:\/\/www.upwind.io\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.upwind.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.upwind.io\/#organization","name":"Upwind | Cloud Security Happens at Runtime","url":"https:\/\/www.upwind.io\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.upwind.io\/#\/schema\/logo\/image\/","url":"https:\/\/www.upwind.io\/wp-content\/uploads\/2024\/11\/Frame-1.png","contentUrl":"https:\/\/www.upwind.io\/wp-content\/uploads\/2024\/11\/Frame-1.png","width":696,"height":696,"caption":"Upwind | Cloud Security Happens at Runtime"},"image":{"@id":"https:\/\/www.upwind.io\/#\/schema\/logo\/image\/"}}]}</script>
35
36	<!-- / Yoast SEO plugin. -->
37
38
39<link rel='dns-prefetch' href='//js-na2.hs-scripts.com' />
40<link rel='dns-prefetch' href='//platform-api.sharethis.com' />
41<link rel='dns-prefetch' href='//use.typekit.net' />
42<link rel='dns-prefetch' href='//www.googletagmanager.com' />
43<link rel="alternate" type="application/rss+xml" title="Upwind | Cloud &amp; AI Security for the Realtime Era &raquo; Feed" href="https://www.upwind.io/feed" />
44<link rel="alternate" type="application/rss+xml" title="Upwind | Cloud &amp; AI Security for the Realtime Era &raquo; Comments Feed" href="https://www.upwind.io/comments/feed" />
45<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.upwind.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.upwind.io%2F" />
46<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.upwind.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.upwind.io%2F&#038;format=xml" />
47<link rel="stylesheet" type="text/css" href="https://use.typekit.net/aud8qux.css"><style id="wp-img-auto-sizes-contain-inline-css">
48img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
49/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
50</style>
51<link rel='stylesheet' id='gform_basic-css' href='https://www.upwind.io/wp-content/plugins/gravityforms/assets/css/dist/basic.min.css?ver=2.9.25' media='all' />
52<link rel='stylesheet' id='gform_theme_components-css' href='https://www.upwind.io/wp-content/plugins/gravityforms/assets/css/dist/theme-components.min.css?ver=2.9.25' media='all' />
53<link rel='stylesheet' id='gform_theme-css' href='https://www.upwind.io/wp-content/plugins/gravityforms/assets/css/dist/theme.min.css?ver=2.9.25' media='all' />
54<style id="wp-emoji-styles-inline-css">
55
56	img.wp-smiley, img.emoji {
57		display: inline !important;
58		border: none !important;
59		box-shadow: none !important;
60		height: 1em !important;
61		width: 1em !important;
62		margin: 0 0.07em !important;
63		vertical-align: -0.1em !important;
64		background: none !important;
65		padding: 0 !important;
66	}
67/*# sourceURL=wp-emoji-styles-inline-css */
68</style>
69<style id="upwind-tip-style-inline-css">
70.wp-block-upwind-tip {
71  margin: 44px 0;
72}
73.uw-tip {
74  display: flex;
75  position: relative;
76  align-items: flex-start;
77  flex-direction: column;
78  padding: 35px;
79  border: 1px solid #D8DFE9;
80  border-radius: 20px;
81}
82.uw-tip-header {
83  display: flex;
84  width: 100%;
85  column-gap: 20px;
86  align-items: center;
87}
88.uw-tip-header svg {
89  display: block;
90  height: auto;
91  width: 32px;
92}
93.uw-tip-header h3 {
94  margin: 0 !important;
95  color: #75808E !important;
96  font-family: 'Upwind Sans' !important;
97  font-size: 20px !important;
98  font-weight: 400 !important;
99  line-height: 1.5 !important;
100}
101.uw-tip .uw-tip-content {
102  width: 100%;
103  margin: 0 !important;
104  margin-top: 30px !important;
105  color: #141217 !important;
106  font-family: 'Upwind Sans' !important;
107  font-size: 16px !important;
108  font-weight: 400 !important;
109  line-height: 1.5 !important;
110}
111.uw-tip .uw-tip-content::last-of-type {
112  margin-bottom: 0 !important;
113}
114.uw-tip .upwind-button {
115  display: inline-block;
116  position: relative;
117  margin-top: 30px;
118  padding: 7px 24px;
119  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #F2583C 0%, #9214C4 52.79%, #1E71ED 98.47%) border-box;
120  border: 1px solid transparent;
121  border-radius: 4px;
122  color: #18202D !important;
123  font-size: 16px !important;
124  font-family: "Upwind Sans" !important;
125  font-weight: 400 !important;
126  line-height: 1.4 !important;
127  letter-spacing: -0.16px !important;
128  text-align: center;
129  text-decoration: none !important;
130  cursor: pointer;
131  overflow: hidden;
132  transition: background 0.2s ease;
133}
134.uw-tip .upwind-button:hover {
135  background: linear-gradient(#FCFAFF, #FCFAFF) padding-box, linear-gradient(112deg, #F2583C, #9214C4, #1E71ED) border-box;
136  color: transparent;
137}
138.uw-tip .upwind-button::after {
139  content: attr(data-text);
140  position: absolute;
141  inset: 0;
142  padding-top: 7px;
143  padding-bottom: 7px;
144  padding-right: 0;
145  font: inherit;
146  line-height: inherit;
147  letter-spacing: inherit;
148  text-align: inherit;
149  pointer-events: none;
150  background: var(--brand-gradient);
151  -webkit-background-clip: text;
152  background-clip: text;
153  -webkit-text-fill-color: transparent;
154  opacity: 0;
155  transition: opacity 0.2s ease;
156}
157.uw-tip .upwind-button:hover::after {
158  opacity: 1;
159}
160
161@media (max-width: 768px) {
162  .uw-tip .uw-tip-content {
163    max-width: 100%;
164  }
165}
166
167/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/glossary/blocks/tip/tip.css */
168</style>
169<style id="upwind-call-to-action-style-inline-css">
170.wp-block-upwind-call-to-action {
171  margin: 60px 0;
172}
173.uw-call-to-action {
174  display: flex;
175  position: relative;
176  align-items: flex-start;
177  column-gap: 48px;
178  flex-direction: row;
179  justify-content: space-between;
180  margin-bottom: 50px;
181  padding: 35px 30px;
182  background-color: #ffffff;
183  border: 1px solid #e2e2e2;
184  border-radius: 10px;
185}
186.uw-call-to-action-content {
187  display: flex;
188  max-width: 45%;
189  width: 100%;
190  align-items: flex-start;
191  flex-direction: column;
192}
193.uw-call-to-action-header {
194  display: flex;
195  width: 100%;
196  column-gap: 0.75rem;
197  align-items: center;
198}
199.uw-call-to-action-header div {
200  line-height: 0;
201}
202.uw-call-to-action-header svg {
203  width: 36px;
204  height: auto;
205}
206.uw-call-to-action-label {
207  color: #75808E !important;
208  font-family: 'Upwind Sans' !important;
209  font-size: 20px !important;
210  font-weight: 400 !important;
211  line-height: 1.4 !important;
212}
213.uw-call-to-action h3 {
214  margin: 0 !important;
215  margin-top: 10px !important;
216  font-family: 'Upwind Sans' !important;
217  color: #000 !important;
218  font-size: 36px !important;
219  font-weight: 400 !important;
220  line-height: 1.3 !important;
221}
222.uw-call-to-action-content p {
223  margin-bottom: 0 !important;
224  margin-top: 25px !important;
225  color: #141217 !important;
226  font-family: 'Upwind Sans' !important;
227  font-size: 18px;
228  font-weight: 400;
229  line-height: 1.6;
230}
231
232.uw-call-to-action .upwind-button {
233  display: block;
234  position: relative;
235  margin-top: 25px !important;
236  padding: 0 0;
237  background-color: #ffffff;
238  border: none;
239  color: #18202D !important;
240  font-family: 'Upwind Sans' !important;
241  font-size: 16px !important;
242  font-weight: 400 !important;
243  line-height: 1.6 !important;
244  text-decoration: none !important;
245  transition: 300ms;
246}
247.uw-call-to-action .upwind-button:hover {
248  background-color: #f2f7fc !important;
249}
250.uw-call-to-action .upwind-button::after {
251  content: '';
252  display: block;
253  position: absolute;
254  height: 1px;
255  width: 100%;
256  bottom: 0;
257  left: 0;
258  background: linear-gradient(90deg, #F2583C 0%, #9214C4 52.79%, #1E71ED 98.47%);
259}
260
261.uw-call-to-action-image {
262  display: block;
263  max-width: 45%;
264  width: 100%;
265  aspect-ratio: 1 / 1;
266}
267.uw-call-to-action-image img {
268  display: block;
269  height: 100%;
270  width: 100%;
271  object-fit: cover;
272  overflow: hidden;
273  border: 1px solid #D8DFE9;
274  border-radius: 12px;
275}
276.uw-call-to-action.w-border {
277  background: rgb(242, 88, 60);
278  background: linear-gradient(
279    104deg,
280    rgba(242, 88, 60, 1) 0%,
281    rgba(146, 20, 196, 1) 54%,
282    rgba(30, 113, 237, 1) 100%
283  );
284  border: none;
285}
286.uw-call-to-action.w-border::before {
287  content: "";
288  display: block;
289  position: absolute;
290  background-color: #ffffff;
291  height: calc(100% - 2px);
292  width: calc(100% - 2px);
293  left: 1px;
294  top: 1px;
295  z-index: 1;
296  border-radius: 10px;
297}
298.uw-call-to-action.w-border > div {
299  position: relative;
300  z-index: 2;
301}
302
303@media (max-width: 768px) {
304  .uw-call-to-action {
305    flex-direction: column;
306  }
307  .uw-call-to-action-image {
308    order: -1;
309    max-width: 100%;
310  }
311  .uw-call-to-action-content {
312    max-width: 100%;
313  }
314}
315
316/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/glossary/blocks/call-to-action/call-to-action.css */
317</style>
318<style id="upwind-banner-block-callout-style-inline-css">
319.uw-banner-callout.gradient {
320  background: rgb(242, 88, 60);
321  background: linear-gradient(104deg, rgba(242, 88, 60, 1) 0%, rgba(146, 20, 196, 1) 54%, rgba(30, 113, 237, 1) 100%);
322  border: none;
323  position: relative;
324}
325.uw-banner-callout.gray-bg {
326  border-radius: 10px;
327  border: 1px solid var(--Gray-04, #D8DFE9);
328  background: var(--Gray-05, #F2F7FC);
329}
330.uw-banner-callout {
331  display: flex;
332  /* flex-direction: column; */
333  flex-direction: row;
334  /* row-gap: 1rem; */
335  gap: 25px;
336  padding: 64px 30px 42px 30px;
337  background-color: #ffffff;
338  border: 1px solid #e2e2e2;
339  border-radius: 10px;
340  position: relative;
341  margin-bottom: 50px;
342  margin-left: -100px;
343  margin-right: -100px;
344  
345}
346.uw-banner-callout.gradient::before {
347  content: "";
348  display: block;
349  position: absolute;
350  background-color: #ffffff;
351  height: calc(100% - 2px);
352  width: calc(100% - 2px);
353  left: 1px;
354  top: 1px;
355  z-index: 1;
356  border-radius: 10px;
357}
358.uw-banner-callout .uw-banner-callout-content {
359  position: relative;
360  z-index: 1;
361  max-width: 600px;
362  margin-left: auto;
363  margin-right: auto;
364}
365.upwind-single .single-content .uw-banner-callout .uw-banner-callout-content h3,
366.upwind-single.edit-post-visual-editor .uw-banner-callout .uw-banner-callout-content h3
367{
368  font-family: "Aeonik Pro";
369  font-size: 30px;
370  font-style: normal;
371  font-weight: 400;
372  line-height: 120%; /* 36px */
373  letter-spacing: -0.3px;
374  margin-top: 0;
375  margin-bottom: 10px;
376}
377.upwind-single .single-content .uw-banner-callout.gradient .uw-banner-callout-content h3,
378.upwind-single.edit-post-visual-editor .uw-banner-callout.gradient .uw-banner-callout-content h3
379{
380  background: var(--Gradients-Gradient-1, linear-gradient(94deg, #F2583C -1.2%, #9214C4 52.79%, #1E71ED 98.47%));
381  background-clip: text;
382  -webkit-background-clip: text;
383  -webkit-text-fill-color: transparent;
384}
385.upwind-single .single-content .uw-banner-callout.gray-bg .uw-banner-callout-content h3,
386.upwind-single.edit-post-visual-editor .uw-banner-callout.gray-bg .uw-banner-callout-content h3
387{
388color: var(--Gray-01, #18202D);
389}
390@media (max-width: 1400px) {
391  .uw-banner-callout {
392    margin-left:0;
393    margin-right: 0;
394    padding: 30px 30px;
395  }
396}
397/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/glossary/blocks/banner-block-callout/banner-block-callout.css */
398</style>
399<style id="upwind-code-style-inline-css">
400.uw-code-block{background:#18202d;border-radius:8px;font-family:Upwind Sans,sans-serif;margin:44px 0;overflow:hidden;position:relative}.uw-code-block__copy-btn{align-items:center;background:transparent;border:1px solid hsla(0,0%,100%,.6);border-radius:4px;box-shadow:none;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:15px;top:15px;transition:border-color .15s ease;width:24px;z-index:1}.uw-code-block__copy-btn:hover{border-color:#fff}.uw-code-block__check-icon,.uw-code-block__copy-icon{align-items:center;display:flex;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.uw-code-block__check-icon svg,.uw-code-block__copy-icon svg{display:block;height:14px;width:14px}.uw-code-block__copy-icon{opacity:1;transition:opacity .3s ease}.uw-code-block__check-icon{opacity:0;transition:opacity .3s ease}@keyframes uw-code-spin-out{0%{opacity:1;transform:translate(-50%,-50%) rotate(0deg)}to{opacity:0;transform:translate(-50%,-50%) rotate(1turn)}}.uw-code-block.is-copying .uw-code-block__copy-icon{animation:uw-code
400-spin-out .4s ease-in forwards}.uw-code-block.is-copied .uw-code-block__copy-icon{opacity:0}.uw-code-block.is-copied .uw-code-block__check-icon{opacity:1}.uw-code-block pre{background:none;margin:0;overflow-x:auto;padding:30px}.uw-code-block pre code{background:none;font-family:DM Mono,monospace;font-size:16px;letter-spacing:0;line-height:1.5;white-space:pre}.uw-code-block:not(.is-style-plain) pre code{color:#d4d4d4}.uw-code-block .token.cdata,.uw-code-block .token.comment,.uw-code-block .token.doctype,.uw-code-block .token.prolog{color:#6a9955;font-style:italic}.uw-code-block .token.punctuation{color:#d4d4d4}.uw-code-block .token.boolean,.uw-code-block .token.constant,.uw-code-block .token.deleted,.uw-code-block .token.number,.uw-code-block .token.property,.uw-code-block .token.symbol,.uw-code-block .token.tag{color:#b5cea8}.uw-code-block .token.attr-name,.uw-code-block .token.builtin,.uw-code-block .token.char,.uw-code-block .token.inserted,.uw-code-block .token.selector,.uw-code-block .token.string{color:#ce9178}.uw-code-block .token.entity,.uw-code-block .token.operator,.uw-code-block .token.url{color:#d4d4d4}.uw-code-block .token.atrule,.uw-code-block .token.attr-value,.uw-code-block .token.keyword{color:#569cd6}.uw-code-block .token.class-name,.uw-code-block .token.function{color:#dcdcaa}.uw-code-block .token.important,.uw-code-block .token.regex,.uw-code-block .token.variable{color:#d16969}.uw-code-block .token.bold,.uw-code-block .token.important{font-weight:700}.uw-code-block .token.italic{font-style:italic}.uw-code-block.is-style-plain pre code{color:#fff}.uw-code-block.is-style-plain .token{color:inherit;font-style:normal;font-weight:400}
401
402/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/build/code/style-index.css */
403</style>
404<style id="upwind-prompt-style-inline-css">
405.uw-prompt-block{border:1px solid #d8dfe9;border-radius:8px;font-family:Upwind Sans,sans-serif;margin:44px 0;overflow:hidden;position:relative}.uw-prompt-block__header{align-items:center;border-bottom:1px solid #d8dfe9;display:flex;gap:16px;justify-content:space-between;padding:8px 16px}.uw-prompt-block__headline{color:#75808e;flex:1;font-family:Upwind Sans,sans-serif;font-size:14px;font-weight:400;line-height:1.5}.uw-prompt-block__copy-btn{align-items:center;background:transparent;border:1px solid #75808e;border-radius:4px;box-shadow:none;color:#75808e;cursor:pointer;display:flex;flex-shrink:0;height:24px;justify-content:center;padding:0;position:relative;transition:color .15s ease,border-color .15s ease;width:24px}.uw-prompt-block__copy-btn:after{background:#18202d;border-radius:4px;color:#fff;content:"Copy";font-family:Upwind Sans,sans-serif;font-size:11px;font-weight:500;opacity:0;padding:3px 8px;pointer-events:none;position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);transition:opacity .15s ease;white-space:nowrap}.uw-prompt-block__copy-btn:hover{border-color:#18202d;color:#18202d}.uw-prompt-block__copy-btn:hover:after{opacity:1}.uw-prompt-block__copy-placeholder{align-items:center;background:transparent;border:1px solid #75808e;border-radius:4px;color:#75808e;display:flex;flex-shrink:0;height:24px;justify-content:center;opacity:.4;pointer-events:none;width:24px}.uw-prompt-block__check-icon,.uw-prompt-block__copy-icon{align-items:center;display:flex;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.uw-prompt-block__check-icon svg,.uw-prompt-block__copy-icon svg{display:block;height:14px;width:14px}.uw-prompt-block__copy-icon{opacity:1;transition:opacity .3s ease}.uw-prompt-block__check-icon{opacity:0;transition:opacity .3s ease}.uw-prompt-block__body{margin-top:8px;padding:16px}.uw-prompt-block__content{color:#18202d;font-family:DM Mono,monospace;font-size:14px;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}@keyframes uw-prompt-spin-out{0%{opacity:1;transform:translate(-50%,-50%) rotate(0deg)}to{opacity:0;transform:translate(-50%,-50%) rotate(1turn)}}.uw-prompt-block.is-copying .uw-prompt-block__copy-icon{animation:uw-prompt-spin-out .4s ease-in forwards}.uw-prompt-block.is-copied .uw-prompt-block__copy-icon{opacity:0}
405.uw-prompt-block.is-copied .uw-prompt-block__check-icon{opacity:1}
406
407/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/build/prompt/style-index.css */
408</style>
409<style id="upwind-testimonial-style-inline-css">
410.uw-testimonial-block{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#f2583c,#9214c4 52.79%,#1e71ed 98.47%) border-box;border:1px solid transparent;border-radius:12px;box-sizing:border-box;font-family:Upwind Sans,sans-serif;margin:60px 0;padding:30px}.uw-testimonial-block__quote-icon{display:block;height:auto;line-height:0;width:17px}.uw-testimonial-block__quote-icon svg{display:block;height:auto;width:100%}.uw-testimonial-block__content{color:#18202d;font-family:Upwind Sans,sans-serif;font-size:18px;font-weight:400;line-height:1.3;margin:20px 0 0}.uw-testimonial-block__author{align-items:center;display:flex;margin-top:24px}.uw-testimonial-block__avatar{border-radius:100%;flex-shrink:0;height:53px;margin-right:8px;object-fit:cover;width:53px}.uw-testimonial-block__author-info{display:flex;flex-direction:column}.uw-testimonial-block__author-name{color:#18202d}.uw-testimonial-block__author-name,.uw-testimonial-block__author-title{display:block;font-family:Upwind Sans,sans-serif;font-size:14px;font-weight:500;line-height:1.4}.uw-testimonial-block__author-title{color:#75808e}.uw-testimonial-block.is-style-style-2{background:none;border:none;padding:0}.uw-testimonial-block.is-style-style-2 .uw-testimonial-block__quote-icon{width:21px}.uw-testimonial-block.is-style-style-2 .uw-testimonial-block__content{font-size:24px}
411
412/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/build/testimonial/style-index.css */
413</style>
414<style id="upwind-callout-style-inline-css">
415.uw-callout-block{border:1px solid #d8dfe9;border-radius:20px;box-sizing:border-box;font-family:Upwind Sans,sans-serif;margin:60px 0;padding:35px}.uw-callout-block__image-wrap{line-height:0}.uw-callout-block__image{display:block;object-fit:contain}.uw-callout-block__content{color:#141217;font-family:Upwind Sans,sans-serif;font-size:18px;font-weight:400;line-height:1.5;margin:30px 0 0}
416
417/*# sourceURL=https://www.upwind.io/wp-content/plugins/upwind/build/callout/style-index.css */
418</style>
419<link rel='stylesheet' id='ee-ff-css' href='https://www.upwind.io/wp-content/plugins/form-filtering-plugin/assets/app.css?ver=7.0.5' media='all' />
420<link rel='stylesheet' id='upwind-chat-css-css' href='https://www.upwind.io/wp-content/plugins/upwind/chat/chat.css?ver=1.1.1' media='all' />
421<link rel='stylesheet' id='podcast-css-css' href='https://www.upwind.io/wp-content/plugins/upwind/podcast/style.css?ver=1.0.0' media='all' />
422<link rel='stylesheet' id='upwind-css-css' href='https://www.upwind.io/wp-content/plugins/upwind/upwind.css?ver=1.1.10' media='all' />
423<link rel='stylesheet' id='upwind-block-styles-css' href='https://www.upwind.io/wp-content/plugins/upwind/block-styles.css?ver=1.0.0' media='all' />
424<link rel='stylesheet' id='ssa-upcoming-appointments-card-style-css' href='https://www.upwind.io/wp-content/plugins/simply-schedule-appointments/assets/css/upcoming-appointments.css?ver=2.6.9.21' media='all' />
425<link rel='stylesheet' id='ssa-styles-css' href='https://www.upwind.io/wp-content/plugins/simply-schedule-appointments/assets/css/ssa-styles.css?ver=2.6.9.21' media='all' />
426<link rel='stylesheet' id='bricks-frontend-css' href='https://www.upwind.io/wp-content/themes/bricks/assets/css/frontend-layer.min.css?ver=1768493258' media='all' />
427<style id="bricks-frontend-inline-css">
428@font-face{font-family:"Upwind Sans";font-weight:400;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Regular.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Regular.woff) format("woff"),url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Sans-Regular.ttf) format("truetype");}@font-face{font-family:"Upwind Sans";font-weight:500;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Medium.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Medium.woff) format("woff"),url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Sans-Medium.ttf) format("truetype");}@font-face{font-family:"Upwind Sans";font-weight:700;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Bold.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Bold.woff) format("woff"),url(https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Sans-Bold.ttf) format("truetype");}
429@font-face{font-family:"Aeonik Pro";font-weight:100;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Thin.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Thin.woff) format("woff");}@font-face{font-family:"Aeonik Pro";font-weight:300;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Light.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Light.woff) format("woff");}@font-face{font-family:"Aeonik Pro";font-weight:400;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Regular.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Regular.woff) format("woff");}@font-face{font-family:"Aeonik Pro";font-weight:500;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Medium.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Medium.woff) format("woff");}@font-face{font-family:"Aeonik Pro";font-weight:600;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-SemiBold.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-SemiBold.woff) format("woff");}@font-face{font-family:"Aeonik Pro";font-weight:700;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Bold.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Bold.woff) format("woff");}@font-face{font-family:"Aeonik Pro";font-weight:900;font-display:swap;src:url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Black.woff2) format("woff2"),url(https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Black.woff) format("woff");}
430
431/*# sourceURL=bricks-frontend-inline-css */
432</style>
433<link rel='stylesheet' id='elementor-icons-css' href='https://www.upwind.io/wp-content/plugins/elementor/assets/lib/eicons/css/elementor-icons.min.css?ver=5.49.0' media='all' />
434<link rel='stylesheet' id='elementor-frontend-css' href='https://www.upwind.io/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.1.1' media='all' />
435<style id="elementor-frontend-inline-css">
436.elementor-kit-4163{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-003bef6:#141217;--e-global-color-8f85e63:#455972;--e-global-color-e7a5493:#18202D;--e-global-color-080b723:#75808E;--e-global-color-39b2229:#3C3A3E;--e-global-color-6b4ffb0:#D8DFE9;--e-global-color-9e97693:#646265;--e-global-color-1de2da4:#F8FAFC;--e-global-color-a76f3ba:#F2583C;--e-global-color-2d28909:#9A31C4;--e-global-color-094c013:#FCFCFC;--e-global-color-90a9ef7:#FFFFFF;--e-global-color-0f7f100:#2C72DD;--e-global-color-fb269cd:#BD94F5;--e-global-color-904fe88:#455972;--e-global-color-907c69e:#75808E;--e-global-color-772b70a:#D8DFE9;--e-global-color-5eb3a73:#F8FAFC;--e-global-color-bb2b8d6:#FCFCFC;--e-global-color-20ef18b:#18202D;--e-global-color-e9f08b9:#FFFFFF;--e-global-color-7d7dc69:#2C72DD;--e-global-color-a5b507b:#BD94F5;--e-global-color-e5f1f6e:#FFF2F0;--e-global-color-18a46eb:#FFBDB0;--e-global-color-7b7ed7e:#FFE3DE;--e-global-color-95ce04a:#FAF8FD;--e-global-color-462b98e:#EEE4FF;--e-global-color-3d0c43e:#ACD0FC;--e-global-color-4d83e82:#F2F7FF;--e-global-color-778fba2:#DBE9FF;--e-global-typography-primary-font-family:"aktiv-grotesk";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Aeonik Pro";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"aktiv-grotesk";
436--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"aktiv-grotesk";--e-global-typography-accent-font-weight:500;--e-global-typography-f3fd765-font-family:"Aeonik Pro";--e-global-typography-f3fd765-font-size:56px;--e-global-typography-f3fd765-font-weight:400;--e-global-typography-f3fd765-line-height:1.2em;--e-global-typography-f3fd765-letter-spacing:0px;--e-global-typography-9af6033-font-family:"Aeonik Pro";--e-global-typography-9af6033-font-size:36px;--e-global-typography-9af6033-font-weight:400;--e-global-typography-9af6033-line-height:1.2em;--e-global-typography-9af6033-letter-spacing:0px;--e-global-typography-9268759-font-family:"Aeonik Pro";--e-global-typography-9268759-font-size:30px;--e-global-typography-9268759-font-weight:400;--e-global-typography-9268759-line-height:1.16em;--e-global-typography-9268759-letter-spacing:0px;--e-global-typography-1956b22-font-family:"Aeonik Pro";--e-global-typography-1956b22-font-size:24px;--e-global-typography-1956b22-font-weight:400;--e-global-typography-1956b22-line-height:1.36em;--e-global-typography-1956b22-letter-spacing:0px;--e-global-typography-5d1b49d-font-family:"Aeonik Pro";--e-global-typography-5d1b49d-font-size:18px;--e-global-typography-5d1b49d-font-weight:400;--e-global-typography-5d1b49d-line-height:1.3;--e-global-typography-4ff37ec-font-family:"aktiv-grotesk";--e-global-typography-4ff37ec-font-size:16px;--e-global-typography-4ff37ec-font-weight:600;--e-global-typography-4ff37ec-line-height:1.2em;--e-global-typography-4ff37ec-letter-spacing:-0.16px;--e-global-typography-ab8931e-font-family:"aktiv-grotesk";--e-global-typography-ab8931e-font-size:16px;--e-global-typography-ab8931e-font-weight:400;--e-global-typography-ab8931e-line-height:1.6em;--e-global-typography-ab8931e-letter-spacing:-0.16px;--e-global-typography-b5b129d-font-family:"aktiv-grotesk";--e-global-typography-b5b129d-font-size:16px;--e-global-typography-b5b129d-font-weight:500;--e-global-typography-b5b129d-line-height:18px;--e-global-typography-b5b129d-letter-spacing:-0.16px;--e-global-typography-3e997dd-font-family:"aktiv-grotesk";--e-global-typography-3e997dd-font-size:16px;--e-global-typography-3e997dd-font-weight:500;--e-global-typography-3e997dd-text-decoration:underline;--e-global-typography-3e997dd-line-height:18px;--e-global-typography-3e997dd-letter-spacing:-0.16px;--e-global-typography-bc10cec-font-family:"aktiv-grotesk";--e-global-typography-bc10cec-font-size:15px;--e-global-typography-bc10cec-font-weight:600;--e-global-typography-bc10cec-line-height:1.4em;--e-global-typography-bc10cec-letter-spacing:-0.15px;--e-global-typography-2222050-font-family:"aktiv-grotesk";--e-global-typography-2222050-font-size:15px;--e-global-typography-2222050-font-weight:400;--e-global-typography-2222050-line-height:20px;--e-global-typography-2222050-letter-spacing:-0.15px;--e-global-typography-6f8eb1c-font-family:"Georgia";--e-global-typography-6f8eb1c-font-size:22px;--e-global-typography-6f8eb1c-font-weight:400;--e-global-typography-6f8eb1c-line-height:40px;--e-global-typography-6f8eb1c-letter-spacing:-0.03em;--e-global-typography-5629eba-font-family:"aktiv-grotesk";--e-global-typography-5629eba-font-size:15px;--e-global-typography-5629eba-font-weight:500;--e-global-typography-5629eba-line-height:1.4em;--e-global-typography-5629eba-letter-spacing:-0.15px;--e-global-typography-7b0601f-font-family:"aktiv-grotesk";--e-global-typography-7b0601f-font-size:15px;--e-global-typography-7b0601f-font-weight:400;--e-global-typography-7b0601f-line-height:17px;--e-global-typography-7b0601f-letter-spacing:-0.15px;--e-global-typography-daa32e9-font-family:"Aeonik Pro";--e-global-typography-daa32e9-font-size:20px;--e-global-typography-daa32e9-font-weight:500;--e-global-typography-daa32e9-line-height:1.75em;--e-global-typography-daa32e9-letter-spacing:0px;--e-global-typography-3dcea6b-font-family:"Aeonik Pro";--e-global-typography-3dcea6b-font-size:18px;--e-global-typography-3dcea6b-font-weight:400;--e-global-typography-3dcea6b-line-height:2.5em;--e-global-typography-3dcea6b-letter-spacing:0px;--e-global-typography-607149c-font-family:"DM Mono";--e-global-typography-607149c-font-size:20px;--e-global-typography-607149c-line-height:1.4;--e-global-typography-5cb83b7-font-family:"Aeonik Pro";--e-global-typography-5cb83b7-font-size:24px;--e-global-typography-5cb83b7-font-weight:400;--e-global-typography-5cb83b7-line-height:1.36em;--e-global-typography-5cb83b7-letter-spacing:0px;--e-global-typography-68ba739-font-family:"Aeonik Pro";--e-global-typography-68ba739-font-size:30px;
436--e-global-typography-68ba739-font-weight:400;--e-global-typography-68ba739-line-height:1.16em;--e-global-typography-e60c67d-font-family:"Aeonik Pro";--e-global-typography-e60c67d-font-size:56px;--e-global-typography-e60c67d-font-weight:400;--e-global-typography-e60c67d-line-height:1.2em;--e-global-typography-e60c67d-letter-spacing:0px;--e-global-typography-b462665-font-family:"Aeonik Pro";--e-global-typography-b462665-font-size:36px;--e-global-typography-b462665-font-weight:400;--e-global-typography-b462665-line-height:1.2em;--e-global-typography-b462665-letter-spacing:0px;--e-global-typography-ed63261-font-family:"Aeonik Pro";--e-global-typography-ed63261-font-size:30px;--e-global-typography-ed63261-font-weight:400;--e-global-typography-ed63261-line-height:1.16em;--e-global-typography-ed63261-letter-spacing:0px;--e-global-typography-f5ce0d8-font-family:"Aeonik Pro";--e-global-typography-f5ce0d8-font-size:24px;--e-global-typography-f5ce0d8-font-weight:400;--e-global-typography-f5ce0d8-line-height:1.36em;--e-global-typography-f5ce0d8-letter-spacing:0px;--e-global-typography-937f0e3-font-family:"Aeonik Pro";--e-global-typography-937f0e3-font-size:18px;--e-global-typography-937f0e3-font-weight:400;--e-global-typography-937f0e3-line-height:1.3;--e-global-typography-408e54c-font-family:"aktiv-grotesk";--e-global-typography-408e54c-font-size:16px;--e-global-typography-408e54c-font-weight:600;--e-global-typography-408e54c-line-height:1.2em;--e-global-typography-408e54c-letter-spacing:-0.16px;--e-global-typography-4ea2526-font-family:"aktiv-grotesk";--e-global-typography-4ea2526-font-size:16px;--e-global-typography-4ea2526-font-weight:400;--e-global-typography-4ea2526-line-height:1.6em;--e-global-typography-4ea2526-letter-spacing:-0.16px;--e-global-typography-6f67485-font-family:"aktiv-grotesk";--e-global-typography-6f67485-font-size:16px;--e-global-typography-6f67485-font-weight:500;--e-global-typography-6f67485-text-decoration:none;--e-global-typography-6f67485-line-height:18px;--e-global-typography-6f67485-letter-spacing:-0.16px;--e-global-typography-671a85a-font-family:"aktiv-grotesk";--e-global-typography-671a85a-font-size:16px;--e-global-typography-671a85a-font-weight:500;--e-global-typography-671a85a-text-decoration:underline;--e-global-typography-671a85a-line-height:18px;--e-global-typography-671a85a-letter-spacing:-0.16px;--e-global-typography-437ea6b-font-family:"aktiv-grotesk";--e-global-typography-437ea6b-font-size:15px;--e-global-typography-437ea6b-font-weight:600;--e-global-typography-437ea6b-line-height:1.4em;--e-global-typography-437ea6b-letter-spacing:-0.15px;--e-global-typography-4ce34b7-font-family:"aktiv-grotesk";--e-global-typography-4ce34b7-font-size:15px;--e-global-typography-4ce34b7-font-weight:400;--e-global-typography-4ce34b7-line-height:20px;--e-global-typography-4ce34b7-letter-spacing:-0.15px;--e-global-typography-35979da-font-family:"Georgia";--e-global-typography-35979da-font-size:22px;--e-global-typography-35979da-font-weight:400;--e-global-typography-35979da-line-height:40px;--e-global-typography-35979da-letter-spacing:-0.03em;--e-global-typography-a2a0ca7-font-family:"aktiv-grotesk";--e-global-typography-a2a0ca7-font-size:15px;--e-global-typography-a2a0ca7-font-weight:500;--e-global-typography-a2a0ca7-line-height:1.4em;--e-global-typography-a2a0ca7-letter-spacing:-0.15px;--e-global-typography-806d58c-font-family:"aktiv-grotesk";--e-global-typography-806d58c-font-size:15px;--e-global-typography-806d58c-font-weight:400;--e-global-typography-806d58c-line-height:17px;--e-global-typography-806d58c-letter-spacing:-0.15px;--e-global-typography-16294a0-font-family:"DM Mono";--e-global-typography-16294a0-font-size:20px;--e-global-typography-16294a0-line-height:1.4;--e-global-typography-b07dd33-font-family:"Aeonik Pro";--e-global-typography-b07dd33-font-size:24px;--e-global-typography-b07dd33-font-weight:400;--e-global-typography-b07dd33-line-height:1.36em;--e-global-typography-b07dd33-letter-spacing:0px;--e-global-typography-29dcf0b-font-family:"Aeonik Pro";--e-global-typography-29dcf0b-font-size:30px;
436--e-global-typography-29dcf0b-font-weight:400;--e-global-typography-29dcf0b-line-height:1.16em;--e-global-typography-0bddda5-font-family:"Aeonik Pro";--e-global-typography-0bddda5-font-size:18px;--e-global-typography-0bddda5-font-weight:400;--e-global-typography-0bddda5-line-height:1.2em;--e-global-typography-0bddda5-letter-spacing:0px;--e-global-typography-fbfd539-font-family:"Aeonik Pro";--e-global-typography-fbfd539-font-size:44px;--e-global-typography-fbfd539-font-weight:400;--e-global-typography-fbfd539-line-height:1.2em;--e-global-typography-fbfd539-letter-spacing:0px;--e-global-typography-94fcec7-font-family:"aktiv-grotesk";--e-global-typography-94fcec7-font-size:24px;--e-global-typography-94fcec7-font-weight:400;--e-global-typography-94fcec7-line-height:1.4em;--e-global-typography-94fcec7-letter-spacing:0px;--e-global-typography-1aa147d-font-family:"Aeonik Pro";--e-global-typography-1aa147d-font-size:24px;--e-global-typography-1aa147d-font-weight:400;--e-global-typography-1aa147d-line-height:1.2em;--e-global-typography-1aa147d-letter-spacing:-0.24px;--e-global-typography-19790c0-font-family:"Aeonik Pro";--e-global-typography-19790c0-font-size:30px;--e-global-typography-19790c0-font-weight:400;--e-global-typography-19790c0-letter-spacing:0em;--e-global-typography-cf56130-font-family:"aktiv-grotesk";--e-global-typography-cf56130-font-size:18px;--e-global-typography-cf56130-font-weight:400;--e-global-typography-cf56130-line-height:28.8px;--e-global-typography-9852350-font-family:"Aeonik Pro";--e-global-typography-9852350-font-size:36px;--e-global-typography-9852350-font-weight:400;--e-global-typography-9852350-line-height:1.16em;--e-global-typography-9852350-letter-spacing:0px;--e-global-typography-d7227e7-font-family:"Aeonik Pro";--e-global-typography-d7227e7-font-size:36px;--e-global-typography-d7227e7-font-weight:400;--e-global-typography-d7227e7-line-height:1.16em;--e-global-typography-d7227e7-letter-spacing:0px;font-family:var( --e-global-typography-4ea2526-font-family ), Sans-serif;font-size:var( --e-global-typography-4ea2526-font-size );font-weight:var( --e-global-typography-4ea2526-font-weight );line-height:var( --e-global-typography-4ea2526-line-height );letter-spacing:var( --e-global-typography-4ea2526-letter-spacing );}.elementor-kit-4163 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4163 a{color:var( --e-global-color-003bef6 );font-family:var( --e-global-typography-671a85a-font-family ), Sans-serif;font-size:var( --e-global-typography-671a85a-font-size );font-weight:var( --e-global-typography-671a85a-font-weight );text-decoration:var( --e-global-typography-671a85a-text-decoration );line-height:var( --e-global-typography-671a85a-line-height );letter-spacing:var( --e-global-typography-671a85a-letter-spacing );}.elementor-kit-4163 h1{color:var( --e-global-color-003bef6 );font-family:"Linear Sans", Sans-serif;font-size:72px;font-weight:400;line-height:1em;letter-spacing:-0.03em;}.elementor-kit-4163 h2{color:var( --e-global-color-003bef6 );font-family:var( --e-global-typography-ed63261-font-family ), Sans-serif;font-size:var( --e-global-typography-ed63261-font-size );font-weight:var( --e-global-typography-ed63261-font-weight );line-height:var( --e-global-typography-ed63261-line-height );letter-spacing:var( --e-global-typography-ed63261-letter-spacing );}.elementor-kit-4163 h3{color:var( --e-global-color-003bef6 );font-family:var( --e-global-typography-f5ce0d8-font-family ), Sans-serif;font-size:var( --e-global-typography-f5ce0d8-font-size );font-weight:var( --e-global-typography-f5ce0d8-font-weight );line-height:var( --e-global-typography-f5ce0d8-line-height );letter-spacing:var( --e-global-typography-f5ce0d8-letter-spacing );}.elementor-kit-4163 h4{color:var( --e-global-color-003bef6 );font-family:"Linear Sans", Sans-serif;font-size:20px;font-weight:400;line-height:23px;letter-spacing:-0.03em;}.elementor-kit-4163 h5{color:var( --e-global-color-003bef6 );font-family:var( --e-global-typography-408e54c-font-family ), Sans-serif;font-size:var( --e-global-typography-408e54c-font-size );
436font-weight:var( --e-global-typography-408e54c-font-weight );line-height:var( --e-global-typography-408e54c-line-height );letter-spacing:var( --e-global-typography-408e54c-letter-spacing );}.elementor-kit-4163 h6{color:var( --e-global-color-003bef6 );font-family:var( --e-global-typography-4ea2526-font-family ), Sans-serif;font-size:var( --e-global-typography-4ea2526-font-size );font-weight:var( --e-global-typography-4ea2526-font-weight );line-height:var( --e-global-typography-4ea2526-line-height );letter-spacing:var( --e-global-typography-4ea2526-letter-spacing );}.elementor-kit-4163 button,.elementor-kit-4163 input[type="button"],.elementor-kit-4163 input[type="submit"],.elementor-kit-4163 .elementor-button{font-family:"Upwind Sans", Sans-serif;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1320px;}.e-con{--container-max-width:1320px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-4163{--e-global-typography-fbfd539-font-size:36px;--e-global-typography-fbfd539-line-height:1.2em;--e-global-typography-fbfd539-letter-spacing:-0.96px;--e-global-typography-94fcec7-font-size:24px;font-size:var( --e-global-typography-4ea2526-font-size );line-height:var( --e-global-typography-4ea2526-line-height );letter-spacing:var( --e-global-typography-4ea2526-letter-spacing );}.elementor-kit-4163 a{font-size:var( --e-global-typography-671a85a-font-size );line-height:var( --e-global-typography-671a85a-line-height );letter-spacing:var( --e-global-typography-671a85a-letter-spacing );}.elementor-kit-4163 h1{font-size:65px;line-height:72px;}.elementor-kit-4163 h2{font-size:var( --e-global-typography-ed63261-font-size );line-height:var( --e-global-typography-ed63261-line-height );letter-spacing:var( --e-global-typography-ed63261-letter-spacing );}.elementor-kit-4163 h3{font-size:var( --e-global-typography-f5ce0d8-font-size );line-height:var( --e-global-typography-f5ce0d8-line-height );letter-spacing:var( --e-global-typography-f5ce0d8-letter-spacing );}.elementor-kit-4163 h5{font-size:var( --e-global-typography-408e54c-font-size );line-height:var( --e-global-typography-408e54c-line-height );letter-spacing:var( --e-global-typography-408e54c-letter-spacing );}.elementor-kit-4163 h6{font-size:var( --e-global-typography-4ea2526-font-size );line-height:var( --e-global-typography-4ea2526-line-height );letter-spacing:var( --e-global-typography-4ea2526-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-4163{--e-global-typography-e60c67d-font-size:36px;--e-global-typography-b462665-font-size:32px;--e-global-typography-ed63261-font-size:27px;--e-global-typography-f5ce0d8-font-size:21px;--e-global-typography-b07dd33-font-size:19px;--e-global-typography-29dcf0b-font-size:25px;--e-global-typography-fbfd539-font-size:21px;--e-global-typography-fbfd539-line-height:1.36em;--e-global-typography-fbfd539-letter-spacing:-0.16px;--e-global-typography-94fcec7-font-size:18px;--e-global-typography-1aa147d-font-size:21px;--e-global-typography-9852350-font-size:27px;--e-global-typography-d7227e7-font-size:27px;font-size:var( --e-global-typography-4ea2526-font-size );line-height:var( --e-global-typography-4ea2526-line-height );letter-spacing:var( --e-global-typography-4ea2526-letter-spacing );}.elementor-kit-4163 a{font-size:var( --e-global-typography-671a85a-font-size );line-height:var( --e-global-typography-671a85a-line-height );letter-spacing:var( --e-global-typography-671a85a-letter-spacing );}.elementor-kit-4163 h1{font-size:36px;line-height:1.1em;letter-spacing:-1.05px;}.elementor-kit-4163 h2{font-size:var( --e-global-typography-ed63261-font-size );line-height:var( --e-global-typography-ed63261-line-height );letter-spacing:var( --e-global-typography-ed63261-letter-spacing );}.elementor-kit-4163 h3{font-size:var( --e-global-typography-f5ce0d8-font-size );line-height:var( --e-global-typography-f5ce0d8-line-height );letter-spacing:var( --e-global-typography-f5ce0d8-letter-spacing );}.elementor-kit-4163 h4{font-size:16px;line-height:1.16em;letter-spacing:-0.16px;}.elementor-kit-4163 h5{font-size:var( --e-global-typography-408e54
436c-font-size );line-height:var( --e-global-typography-408e54c-line-height );letter-spacing:var( --e-global-typography-408e54c-letter-spacing );}.elementor-kit-4163 h6{font-size:var( --e-global-typography-4ea2526-font-size );line-height:var( --e-global-typography-4ea2526-line-height );letter-spacing:var( --e-global-typography-4ea2526-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start Custom Fonts CSS */@font-face {
437	font-family: 'Aeonik Pro';
438	font-style: normal;
439	font-weight: normal;
440	font-display: auto;
441	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Regular.woff2') format('woff2'),
442		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Regular.woff') format('woff');
443}
444@font-face {
445	font-family: 'Aeonik Pro';
446	font-style: italic;
447	font-weight: normal;
448	font-display: auto;
449	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-RegularItalic.woff2') format('woff2'),
450		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-RegularItalic.woff') format('woff');
451}
452@font-face {
453	font-family: 'Aeonik Pro';
454	font-style: normal;
455	font-weight: bold;
456	font-display: auto;
457	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Bold.woff2') format('woff2'),
458		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Bold.woff') format('woff');
459}
460@font-face {
461	font-family: 'Aeonik Pro';
462	font-style: italic;
463	font-weight: bold;
464	font-display: auto;
465	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-BoldItalic.woff2') format('woff2'),
466		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-BoldItalic.woff') format('woff');
467}
468@font-face {
469	font-family: 'Aeonik Pro';
470	font-style: normal;
471	font-weight: 100;
472	font-display: auto;
473	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Thin.woff2') format('woff2'),
474		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Thin.woff') format('woff');
475}
476@font-face {
477	font-family: 'Aeonik Pro';
478	font-style: italic;
479	font-weight: 100;
480	font-display: auto;
481	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-ThinItalic.woff2') format('woff2'),
482		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-ThinItalic.woff') format('woff');
483}
484@font-face {
485	font-family: 'Aeonik Pro';
486	font-style: normal;
487	font-weight: 300;
488	font-display: auto;
489	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Light.woff2') format('woff2'),
490		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Light.woff') format('woff');
491}
492@font-face {
493	font-family: 'Aeonik Pro';
494	font-style: italic;
495	font-weight: 300;
496	font-display: auto;
497	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-LightItalic.woff2') format('woff2'),
498		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-LightItalic.woff') format('woff');
499}
500@font-face {
501	font-family: 'Aeonik Pro';
502	font-style: normal;
503	font-weight: 500;
504	font-display: auto;
505	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Medium.woff2') format('woff2'),
506		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Medium.woff') format('woff');
507}
508@font-face {
509	font-family: 'Aeonik Pro';
510	font-style: italic;
511	font-weight: 500;
512	font-display: auto;
513	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-MediumItalic.woff2') format('woff2'),
514		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-MediumItalic.woff') format('woff');
515}
516@font-face {
517	font-family: 'Aeonik Pro';
518	font-style: normal;
519	font-weight: 600;
520	font-display: auto;
521	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-SemiBold.woff2') format('woff2'),
522		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-SemiBold.woff') format('woff');
523}
524@font-face {
525	font-family: 'Aeonik Pro';
526	font-style: italic;
527	font-weight: 600;
528	font-display: auto;
529	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-SemiBoldItalic.woff2') format('woff2'),
530		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-SemiBoldItalic.woff') format('woff');
531}
532@font-face {
533	font-family: 'Aeonik Pro';
534	font-style: normal;
535	font-weight: 900;
536	font-display: auto;
537	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Black.woff2') format('woff2'),
538		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-Black.woff') format('woff');
539}
540@font-face {
541	font-family: 'Aeonik Pro';
542	font-style: italic;
543	font-weight: 900;
544	font-display: auto;
545	src: url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-BlackItalic.woff2') format('woff2'),
546		url('https://www.upwind.io/wp-content/uploads/2024/12/AeonikPro-BlackItalic.woff') format('woff');
547}
548/* End Custom Fonts CSS */
549/* Start Custom Fonts CSS */@font-face {
550	font-family: 'Linear Sans';
551	font-style: normal;
552	font-weight: 300;
553	font-display: auto;
554	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-light-webfont.woff2') format('woff2'),
555		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-light-webfont.woff') format('woff');
556}
557@font-face {
558	font-family: 'Linear Sans';
559	font-style: italic;
560	font-weight: 300;
561	font-display: auto;
562	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-lightitalic-webfont.woff2') format('woff2'),
563		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-lightitalic-webfont.woff') format('woff');
564}
565@font-face {
566	font-family: 'Linear Sans';
567	font-style: normal;
568	font-weight: normal;
569	font-display: auto;
570	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-regular-webfont.woff2') format('woff2'),
571		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-regular-webfont.woff') format('woff');
572}
573@font-face {
574	font-family: 'Linear Sans';
575	font-style: italic;
576	font-weight: normal;
577	font-display: auto;
578	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-italic-webfont.woff2') format('woff2'),
579		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-italic-webfont.woff') format('woff');
580}
581@font-face {
582	font-family: 'Linear Sans';
583	font-style: normal;
584	font-weight: 600;
585	font-display: auto;
586	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-semibold-webfont.woff2') format('woff2'),
587		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-semibold-webfont.woff') format('woff');
588}
589@font-face {
590	font-family: 'Linear Sans';
591	font-style: italic;
592	font-weight: 600;
593	font-display: auto;
594	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-semibolditalic-webfont.woff2') format('woff2'),
595		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-semibolditalic-webfont.woff') format('woff');
596}
597@font-face {
598	font-family: 'Linear Sans';
599	font-style: normal;
600	font-weight: 700;
601	font-display: auto;
602	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-bold-webfont.woff2') format('woff2'),
603		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-bold-webfont.woff') format('woff');
604}
605@font-face {
606	font-family: 'Linear Sans';
607	font-style: italic;
608	font-weight: 700;
609	font-display: auto;
610	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-bolditalic-webfont.woff2') format('woff2'),
611		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-bolditalic-webfont.woff') format('woff');
612}
613@font-face {
614	font-family: 'Linear Sans';
615	font-style: normal;
616	font-weight: 800;
617	font-display: auto;
618	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-black-webfont.woff2') format('woff2'),
619		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-black-webfont.woff') format('woff');
620}
621@font-face {
622	font-family: 'Linear Sans';
623	font-style: italic;
624	font-weight: 800;
625	font-display: auto;
626	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-blackitalic-webfont.woff2') format('woff2'),
627		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-blackitalic-webfont.woff') format('woff');
628}
629@font-face {
630	font-family: 'Linear Sans';
631	font-style: normal;
632	font-weight: 900;
633	font-display: auto;
634	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-heavy-webfont.woff2') format('woff2'),
635		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-heavy-webfont.woff') format('woff');
636}
637@font-face {
638	font-family: 'Linear Sans';
639	font-style: italic;
640	font-weight: 900;
641	font-display: auto;
642	src: url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-heavyitalic-webfont.woff2') format('woff2'),
643		url('https://www.upwind.io/wp-content/uploads/2023/01/linearsans-heavyitalic-webfont.woff') format('woff');
644}
645/* End Custom Fonts CSS */
646/* Start Custom Fonts CSS */@font-face {
647	font-family: 'Upwind Sans';
648	font-style: normal;
649	font-weight: 400;
650	font-display: auto;
651	src: url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Regular.woff2') format('woff2'),
652		url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Sans-Regular.ttf') format('truetype');
653}
654@font-face {
655	font-family: 'Upwind Sans';
656	font-style: normal;
657	font-weight: 500;
658	font-display: auto;
659	src: url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Medium.woff2') format('woff2'),
660		url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Medium.woff') format('woff'),
661		url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Sans-Medium.ttf') format('truetype');
662}
663@font-face {
664	font-family: 'Upwind Sans';
665	font-style: normal;
666	font-weight: 700;
667	font-display: auto;
668	src: url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Bold.woff2') format('woff2'),
669		url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind_Sans_Bold.woff') format('woff'),
670		url('https://www.upwind.io/wp-content/uploads/2026/05/Upwind-Sans-Bold.ttf') format('truetype');
671}
672/* End Custom Fonts CSS */
673/*# sourceURL=elementor-frontend-inline-css */
674</style>
675<style id="bricks-frontend-inline-inline-css">
676:root {--border-gray: #E2e2e2;} .brxe-section {padding-right: 32px; padding-left: 32px; max-width: 100vw} .brxe-container {max-width: 860px; width: 100%} #brx-content.wordpress {max-width: 860px; width: 100%} .woocommerce main.site-main {width: 100%}svg {height: 10px; width: 10px}.brxe-accordion .accordion-title .title {font-size: 16px; font-family: "Upwind Sans"; font-weight: 500; line-height: 1.2; color: #18202d}.brxe-accordion .accordion-content-wrapper {font-family: "Upwind Sans"; font-weight: 400} .bricks-button {border-radius: 4px; padding-top: 7px; padding-right: 24px; padding-bottom: 7px; padding-left: 24px; font-size: 16px; font-family: "Upwind Sans"; font-weight: 500; line-height: 1.4; letter-spacing: -0.16px; text-decoration: none}.brx-popup .brx-popup-backdrop {background-color: rgba(255, 255, 255, 0.95)} .brx-popup-content {padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0}.text-menu-heading.brxe-text-basic {font-size: 14px; font-family: "Upwind Sans"; line-height: 1.4; letter-spacing: -0.14px; font-weight: 500}.text-menu-heading.brxe-block {font-size: 14px; font-family: "Upwind Sans"; line-height: 1.4; letter-spacing: -0.14px; font-weight: 500}.text-menu-description.brxe-text-basic {font-size: 12px; font-family: "Upwind Sans"; font-weight: 400; letter-spacing: -0.12px; line-height: 1.4}.heading-48.brxe-heading {font-size: 56px; font-family: "Upwind Sans"; line-height: 1.2; font-weight: 400}@media (max-width: 991px) {.heading-48.brxe-heading {font-size: 48px}}.text-18.brxe-text-basic {font-family: "Upwind Sans"; font-weight: 400; line-height: 1.2; font-size: 18px}.heading-20.brxe-heading {font-size: 20px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.5}.text-20.brxe-button {font-size: 20px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.4; margin-top: 32px}.heading-32.brxe-heading {font-size: 32px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.2}.text-14.brxe-text-basic {font-size: 14px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.4}.text-14.brxe-heading {font-size: 14px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.4}.heading-16.brxe-text-basic {font-size: 16px; font-weight: 400; font-family: "Upwind Sans"; line-height: 1.2}:root {--bricks-color-cec36e: #f5f5f5;--bricks-color-4154c1: #e0e0e0;--bricks-color-f27fcc: #9e9e9e;--bricks-color-7641f2: #616161;--bricks-color-ab37ed: #424242;--bricks-color-9a6d69: #212121;--bricks-color-e9e6a1: #ffeb3b;--bricks-color-08f135: #ffc107;--bricks-color-bf4f35: #ff9800;--bricks-color-b0785c: #ff5722;--bricks-color-e09c09: #f44336;--bricks-color-f02043: #9c27b0;--bricks-color-a75377: #2196f3;--bricks-color-09ff1d: #03a9f4;--bricks-color-806360: #81D4FA;--bricks-color-ee7dec: #4caf50;--bricks-color-feaaff: #8bc34a;--bricks-color-cc7c22: #cddc39;--bricks-color-kyjivg: #5697ea;--bricks-color-onpvpa: #d8dfe9;
676--bricks-color-puxggr: #75808e;--bricks-color-hffyut: #18202d;--bricks-color-tkomdk: #141217;--bricks-color-tikayd: #504e52;--bricks-color-ynbhmd: #18202d;--bricks-color-pxmmbf: #18202d;}#brxe-cce152 {width: 94px; height: auto; margin-right: 30px}@media (max-width: 767px) {#brxe-cce152 {margin-left: 32px}}#brxe-99c7ec {color: var(--bricks-color-tkomdk); font-weight: 400}#brxe-99c7ec{ text-wrap: nowrap;}#brxe-66f56c {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-66f56c {padding-top: 0; padding-bottom: 0}}#brxe-463443 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 5px; text-decoration: none}#brxe-463443:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-463443{ transition: all 0.3s ease;}#brxe-179186 {flex-direction: row; column-gap: 15px; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; transition: all 300ms ease-in-out; text-decoration: none; min-width: 217px}#brxe-179186:hover {border-color: #d8dfe9}@media (max-width: 767px) {#brxe-179186 {flex-wrap: nowrap; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0}}#brxe-668f33 {width: auto; color: var(--bricks-color-tkomdk); font-weight: 400; min-width: none; flex-grow: 0; flex-shrink: 0}#brxe-cdd43e {flex-direction: row; align-items: center; column-gap: 10px; justify-content: flex-start; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-cdd43e {padding-top: 0; padding-bottom: 0}}#brxe-18c544 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 5px}#brxe-18c544:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-18c544{ transition: all 0.3s ease;}#brxe-1fff21 {flex-direction: row; column-gap: 15px; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; transition: all 300ms ease-in-out; text-decoration: none; min-width: 217px}#brxe-1fff21:hover {border-color: #d8dfe9}@media (max-width: 767px) {#brxe-1fff21 {flex-wrap: nowrap; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0}}#brxe-97aff9 {flex-grow: 0; flex-shrink: 0; color: var(--bricks-color-tkomdk); font-weight: 400; min-width: none; width: auto}#brxe-97aff9{ text-wrap: nowrap;}#brxe-7de57e {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-7de57e {padding-top: 0; padding-bottom: 0}}#brxe-460595 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 5px}#brxe-460595:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-460595{ transition: all 0.3s ease;}#brxe-989497 {flex-direction: row; column-gap: 15px; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; transition: all 300ms ease-in-out; text-decoration: none; min-width: 217px}#brxe-989497:hover {border-color: #d8dfe9}@media (max-width: 767px) {#brxe-989497 {flex-wrap: nowrap; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0}}#brxe-8ef5c8 {flex-direction: column; border: 1px solid #F5F5F5; border-radius: 5px; align-items: center; flex-wrap: nowrap}@media (max-width: 767px) {#brxe-8ef5c8 {margin-top: 0; flex-direction: column; border-style: none; row-gap: 12px}}#brxe-0eeee1 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.10); border: 1px solid #F0F0F0; border-radius: 10px; background-color: #ffffff; flex-wrap: nowrap}@media (max-width: 767px) {#brxe-0eeee1 {box-shadow: 0 0 0 0 transparent; border-style: solid; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; margin-top: 0}}#brxe-e9c954 {left: 0px; top: 100%; position: absolute; margin-top: -6px; margin-left: 30%; transform: translateX(-50%); background-color: transparent; min-width: fit-content; width: 240px}@media (max-width: 767px) {#brxe-e9c954 {position: relative; top: 0px; left: 0px !important; padding-top: 0; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; max-width: none; margin-left: 0; transform: translateX(0px); width: 100%}}#brxe-a85a9f {position: static}#brxe-a85a9f .brx-submenu-toggle button > svg {height: 12px; width: 11px}#brxe-a85a9f .brx-submenu-toggle {gap: 8px}#brxe-a85a9f .brx-submenu-toggle button[aria-expanded="true"] {transform: rotateZ(180deg)}#brxe-a85a9f button[aria-label="Toggle dropdown"] svg path { fill: #18202D;}#brxe-a85a9f.open .brx-submenu-toggle span { background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}#brxe-a85a9f.open button[aria-label="Toggle dropdown"] svg path { fill: #1E71ED;}@media (max-width: 767px) {#brxe-a85a9f {border-bottom: 1px solid var(--border-gray)}#brxe-a85a9f .brx-submenu-toggle button {transform: scaleX(1.15) scaleY(1.15)}}#brxe-ffaa7c {font-family: "Upwind Sans"; font-size: 14px; color: #777779; line-height: 1.4; letter-spacing: -1%; font-weight: 400}#brxe-bfc1af {color: #18202d}#brxe-5af8bd {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-5af8bd {flex-wrap: nowrap}}#brxe-01214c {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-01214c:hover {border-color: #d8dfe9}#brxe-01214c:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-01214c{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-01214c {flex-wrap: nowrap}}#brxe-01292b {color: #18202d}#brxe-4348c1 {flex-direction: row; align-items: center; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px; column-gap: 2px; row-gap: 2px}@media (max-width: 767px) {#brxe-4348c1 {flex-wrap: nowrap}}#brxe-7a5095 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-7a5095:hover {border-color: #d8dfe9}#brxe-7a5095:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-7a5095{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-7a5095 {flex-wrap: nowrap}}#brxe-3e1e65 {color: #18202d}#brxe-00979d {flex-direction: row; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px; column-gap: 2px; row-gap: 2px}@media (max-width: 767px) {#brxe-00979d {flex-wrap: nowrap}}#brxe-1a9da6 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-1a9da6:hover {border-color: #d8dfe9}#brxe-1a9da6:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-1a9da6{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-1a9da6 {flex-wrap: nowrap}}#brxe-468d6a {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 10px}#brxe-468d6a { column-gap: 16px; row-gap: 12px}@media (max-width: 767px) {#brxe-468d6a {row-gap: 12px}}#brxe-94aa26 {line-height: 1.4; letter-spacing: -1%; color: #777779; font-size: 14px; font-family: "Upwind Sans"}@media (max-width: 767px) {#brxe-94aa26 {margin-bottom: 8px}}#brxe-66071c {color: #18202d}#brxe-2bf3ab {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-2bf3ab {flex-wrap: nowrap}}#brxe-203b4d {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-203b4d:hover {border-color: #d8dfe9}#brxe-203b4d:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-203b4d{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-203b4d {flex-wrap: nowrap}}#brxe-3ca488 {color: #18202d}#brxe-75e78d {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-75e78d {flex-wrap: nowrap}}#brxe-064d53 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-064d53:hover {border-color: #d8dfe9}#brxe-064d53:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-064d53{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-064d53 {flex-wrap: nowrap}}
676#brxe-211641 {color: #18202d}#brxe-fb9510 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-fb9510 {flex-wrap: nowrap}}#brxe-ef767e {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-ef767e:hover {border-color: #d8dfe9}#brxe-ef767e:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-ef767e{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-ef767e {flex-wrap: nowrap}}#brxe-777f99 {color: #18202d}#brxe-d32835 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-d32835 {flex-wrap: nowrap}}#brxe-e7a75b {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-e7a75b:hover {border-color: #d8dfe9}#brxe-e7a75b:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-e7a75b{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-e7a75b {flex-wrap: nowrap}}#brxe-cbcff0 {border-left: 1px solid #F5F5F5; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 10px}@media (max-width: 767px) {#brxe-cbcff0 {flex-direction: column; row-gap: 12px; padding-bottom: 0; border-top: 1px solid #F5F5F5; border-left: 0 solid #F5F5F5}}#brxe-72b27c {height: 20px; max-height: 20px; min-height: 20px}@media (max-width: 767px) {#brxe-72b27c {display: none}}#brxe-6425b5 {color: #18202d}#brxe-71a115 {padding-top: 2px; padding-bottom: 2px; column-gap: 10px; flex-direction: row; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-71a115 {flex-wrap: nowrap}}#brxe-97cea3 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-97cea3:hover {border-color: #d8dfe9}#brxe-97cea3:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-97cea3{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-97cea3 {flex-wrap: nowrap}}#brxe-8e9d89 {color: #18202d}#brxe-1c4bb6 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-1c4bb6 {flex-wrap: nowrap}}#brxe-80ba42 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-80ba42:hover {border-color: #d8dfe9}#brxe-80ba42:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-80ba42{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-80ba42 {flex-wrap: nowrap}}#brxe-463302 {color: #18202d}#brxe-55ad1c {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-55ad1c {flex-wrap: nowrap}}#brxe-b10916 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-b10916:hover {border-color: #d8dfe9}#brxe-b10916:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-b10916{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-b10916 {flex-wrap: nowrap}}#brxe-44c6cc {color: #18202d}#brxe-fce1ce {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-fce1ce {flex-wrap: nowrap}}#brxe-4ee8c3 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-4ee8c3:hover {border-color: #d8dfe9}#brxe-4ee8c3:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-4ee8c3{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-4ee8c3 {flex-wrap: nowrap}}#brxe-056b3f {color: #18202d}#brxe-047230 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-047230 {flex-wrap: nowrap}}#brxe-7a2f3f {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(215, 100%, 99%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-7a2f3f:hover {border-color: #d8dfe9}#brxe-7a2f3f:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-7a2f3f{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-7a2f3f {flex-wrap: nowrap}}#brxe-0e8e67 {column-gap: 10px; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; border-left: 1px none #F5F5F5; row-gap: 10px}@media (max-width: 767px) {#brxe-0e8e67 {flex-direction: column; row-gap: 12px; padding-top: 12px}}#brxe-43ab0b {font-family: "Upwind Sans"; font-size: 14px; color: #777779; line-height: 1.4; letter-spacing: -1%; font-weight: 400}#brxe-8ac9c8 {color: #18202d}#brxe-758c4f {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-758c4f {flex-wrap: nowrap}}#brxe-3a6a5d {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-3a6a5d:hover {border-color: #d8dfe9}#brxe-3a6a5d:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-3a6a5d{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-3a6a5d {flex-wrap: nowrap}}#brxe-6c6521 {color: #18202d}#brxe-4ab119 {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; padding-top: 2px; padding-bottom: 2px; min-height: 22px}@media (max-width: 767px) {#brxe-4ab119 {flex-wrap: nowrap}}#brxe-b5fe5e {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-b5fe5e:hover {border-color: #d8dfe9}#brxe-b5fe5e:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-b5fe5e{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-b5fe5e {flex-wrap: nowrap}}#brxe-4e3fee {color: #18202d}#brxe-c65907 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-c65907 {flex-wrap: nowrap}}#brxe-a51171 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-a51171:hover {border-color: #d8dfe9}#brxe-a51171:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-a51171{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-a51171 {flex-wrap: nowrap}}#brxe-6564c7 {color: #18202d}#brxe-ee6bfe {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-ee6bfe {flex-wrap: nowrap}}#brxe-d74ec8 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-d74ec8:hover {border-color: #d8dfe9}#brxe-d74ec8:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-d74ec8{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-d74ec8 {flex-wrap: nowrap}}#brxe-172ee9 {color: #18202d}#brxe-e69eed {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-e69eed {flex-wrap: nowrap}}#brxe-ecbb73 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-ecbb73:hover {border-color: #d8dfe9}#brxe-ecbb73:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-ecbb73{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-ecbb73 {flex-wrap: nowrap}}#brxe-cfedcd {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 10px; border-left: 1px solid #F5F5F5}#brxe-cfedcd { column-gap: 16px; row-gap: 12px}@media (max-width: 991px) {#brxe-cfedcd {grid-column: 1/4; border-top: 1px solid #F5F5F5; border-left: 0 solid #F5F5F5}}@media (max-width: 767px) {#brxe-cfedcd {grid-column: auto}}#brxe-c8a9b8 {flex-direction: row; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 16px; border: 1px solid #F5F5F5; border-radius: 5px; column-gap: 0px; align-items: stretch; display: grid; align-items: initial}@media (max-width: 991px) {#brxe-c8a9b8 {grid-template-columns: 1fr 1fr 1fr; grid-gap: 0px}}@media (max-width: 767px) {#brxe-c8a9b8 {margin-top: 0; grid-template-columns: 1fr; grid-gap: 0px}}#brxe-53f310 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid #F0F0F0; border-radius: 10px; box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.10); max-width: none; background-color: #ffffff}@media (max-width: 767px) {#brxe-53f310 {box-shadow: 0 0 0 0 transparent; border-style: none; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0}}#brxe-a256fd {position: absolute; top: 100%; transform: translateX(-50%); background-color: transparent; width: 80%; margin-top: -6px; margin-left: 50%; left: 0px}@media (max-width: 767px) {#brxe-a256fd {position: relative; top: 0px; left: 0px !important; padding-top: 0; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-bottom-width: 1px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; max-width: none; margin-left: 0; width: 100%; transform: translateX(0px)}}#brxe-1bcba3 {position: static}#brxe-1bcba3 .brx-submenu-toggle button > svg {height: 12px; width: 11px}#brxe-1bcba3 .brx-submenu-toggle {gap: 8px}#brxe-1bcba3 .brx-submenu-toggle button[aria-expanded="true"] {transform: rotateZ(180deg)}#brxe-1bcba3 button[aria-label="Toggle dropdown"] svg path { fill: #18202D;}#brxe-1bcba3.open .brx-submenu-toggle span { background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}#brxe-1bcba3.open button[aria-label="Toggle dropdown"] svg path { fill: #1E71ED;}@media (max-width: 767px) {#brxe-1bcba3 {border-bottom: 1px solid var(--border-gray)}#brxe-1bcba3 .brx-submenu-toggle button {transform: scaleX(1.15) scaleY(1.15)}}#brxe-80c6f7 {color: #18202d; font-weight: 400}#brxe-2e2f55 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-2e2f55 {flex-wrap: nowrap}}#brxe-0bdae0 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-0bdae0:hover {border-color: #d8dfe9}#brxe-0bdae0:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-0bdae0{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-0bdae0 {flex-wrap: nowrap}}#brxe-500e71 {color: #18202d; font-weight: 400}#brxe-f2a076 {flex-direction: row; align-items: center; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px; column-gap: 2px; row-gap: 2px}@media (max-width: 767px) {#brxe-f2a076 {flex-wrap: nowrap}}#brxe-c9cf7a {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-c9cf7a:hover {border-color: #d8dfe9}#brxe-c9cf7a:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-c9cf7a{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-c9cf7a {flex-wrap: nowrap}}#brxe-22459e {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; min-width: 215px; row-gap: 30px !important}@media (max-width: 767px) {#brxe-22459e {row-gap: 12px; padding-bottom: 0}}
676#brxe-211d2a {color: #18202d; font-weight: 400}#brxe-667d7b {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-667d7b {flex-wrap: nowrap}}#brxe-76214f {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-76214f:hover {border-color: #d8dfe9}#brxe-76214f:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-76214f{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-76214f {flex-wrap: nowrap}}#brxe-0e8648 {color: #18202d; font-weight: 400}#brxe-caff77 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-caff77 {flex-wrap: nowrap}}#brxe-cf4ee0 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-cf4ee0:hover {border-color: #d8dfe9}#brxe-cf4ee0:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-cf4ee0{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-cf4ee0 {flex-wrap: nowrap}}#brxe-ee43ce {border-left: 1px solid #F5F5F5; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 30px; min-width: 215px}@media (max-width: 767px) {#brxe-ee43ce {flex-direction: column; row-gap: 12px; border-left: 0 none #F5F5F5; padding-top: 12px; padding-bottom: 0}}#brxe-154e4f {color: #18202d; font-weight: 400}#brxe-c9a022 {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-c9a022 {flex-wrap: nowrap}}#brxe-cfed2c {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-cfed2c:hover {border-color: #d8dfe9}#brxe-cfed2c:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-cfed2c{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-cfed2c {flex-wrap: nowrap}}#brxe-42f24d {color: #18202d; font-weight: 400}#brxe-5cdfd3 {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; padding-top: 2px; padding-bottom: 2px; min-height: 22px}@media (max-width: 767px) {#brxe-5cdfd3 {flex-wrap: nowrap}}#brxe-f51444 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-f51444:hover {border-color: #d8dfe9}#brxe-f51444:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-f51444{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-f51444 {flex-wrap: nowrap}}#brxe-070581 {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 30px; border-left: 1px solid #F5F5F5; min-width: 215px}@media (max-width: 991px) {#brxe-070581 {border-top: 1px solid #F5F5F5; border-left: 0 solid #F5F5F5}}@media (max-width: 767px) {#brxe-070581 {grid-column: auto; border-style: none; padding-top: 12px}}#brxe-700eaf {flex-direction: row; grid-template-columns: 1fr 1fr 1fr; grid-gap: 16px; border: 1px solid #F5F5F5; border-radius: 5px; column-gap: 0px; align-items: stretch; display: grid; align-items: initial}@media (max-width: 991px) {#brxe-700eaf {grid-template-columns: 1fr 1fr 1fr; grid-gap: 0px}}@media (max-width: 767px) {#brxe-700eaf {margin-top: 0; grid-template-columns: 1fr}}#brxe-33a487 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid #F5F5F5; border-radius: 10px;
676 box-shadow: 0 5px 35px 0 rgba(148, 163, 184, 0.15); width: 100%; max-width: none; background-color: #ffffff}@media (max-width: 767px) {#brxe-33a487 {box-shadow: 0 0 0 0 transparent; border-style: none; border-radius: 0; padding-top: 0; padding-right: 10px; padding-bottom: 10px; padding-left: 10px}}#brxe-3beefb {position: absolute; left: 0px; top: 100%; transform: translateX(-50%); margin-top: -6px; margin-left: 50%; background-color: transparent}@media (max-width: 767px) {#brxe-3beefb {position: relative; top: 0px; left: 0px !important; padding-top: 0; max-width: none; margin-left: 0; transform: translateX(0px); width: 100%}}#brxe-9e90e6 {position: static}#brxe-9e90e6 .brx-submenu-toggle button > svg {height: 12px; width: 11px}#brxe-9e90e6 .brx-submenu-toggle {gap: 8px}#brxe-9e90e6 .brx-submenu-toggle button[aria-expanded="true"] {transform: rotateZ(180deg)}#brxe-9e90e6 button[aria-label="Toggle dropdown"] svg path { fill: #18202D;}#brxe-9e90e6.open .brx-submenu-toggle span { background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}#brxe-9e90e6.open button[aria-label="Toggle dropdown"] svg path { fill: #1E71ED;}@media (max-width: 767px) {#brxe-9e90e6 {border-bottom: 1px solid var(--border-gray)}#brxe-9e90e6 .brx-submenu-toggle button {transform: scaleX(1.15) scaleY(1.15)}}#brxe-eae96d {color: #18202d; font-weight: 400}#brxe-8799bb {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-8799bb {flex-wrap: nowrap}}#brxe-ea6b22 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-ea6b22:hover {border-color: #d8dfe9}#brxe-ea6b22:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-ea6b22{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-ea6b22 {flex-wrap: nowrap}}#brxe-c83b6a {color: #18202d; font-weight: 400}#brxe-554b1b {flex-direction: row; align-items: center; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px; column-gap: 2px; row-gap: 2px}@media (max-width: 767px) {#brxe-554b1b {flex-wrap: nowrap}}#brxe-e9c1a2 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-e9c1a2:hover {border-color: #d8dfe9}#brxe-e9c1a2:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-e9c1a2{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-e9c1a2 {flex-wrap: nowrap}}#brxe-ec1b99 {color: #18202d; font-weight: 400}#brxe-32de47 {flex-direction: row; align-items: center; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px; column-gap: 2px; row-gap: 2px}@media (max-width: 767px) {#brxe-32de47 {flex-wrap: nowrap}}#brxe-9efe30 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-9efe30:hover {border-color: #d8dfe9}#brxe-9efe30:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-9efe30{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-9efe30 {flex-wrap: nowrap}}#brxe-8b474b {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 30px; min-width: 215px}@media (max-width: 767px) {#brxe-8b474b {row-gap: 12px; padding-bottom: 0}}#brxe-b4abda {color: #18202d; font-weight: 400}#brxe-d42e4c {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-d42e4c {flex-wrap: nowrap}}#brxe-d07101 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-d07101:hover {border-color: #d8dfe9}#brxe-d07101:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-d07101{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-d07101 {flex-wrap: nowrap}}#brxe-2f2613 {color: #18202d; font-weight: 400}#brxe-0d3de4 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-0d3de4 {flex-wrap: nowrap}}#brxe-516b51 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-516b51:hover {border-color: #d8dfe9}#brxe-516b51:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-516b51{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-516b51 {flex-wrap: nowrap}}#brxe-0d4775 {border-left: 1px solid #F5F5F5; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 30px; min-width: 215px}@media (max-width: 767px) {#brxe-0d4775 {flex-direction: column; row-gap: 12px; border-left: 0 none #F5F5F5; padding-top: 12px; padding-bottom: 0}}#brxe-b86383 {color: #18202d; font-weight: 400}#brxe-373443 {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-373443 {flex-wrap: nowrap}}#brxe-d665a7 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-d665a7:hover {border-color: #d8dfe9}#brxe-d665a7:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-d665a7{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-d665a7 {flex-wrap: nowrap}}#brxe-19ab2c {color: #18202d; font-weight: 400}#brxe-8bfdd2 {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; padding-top: 2px; padding-bottom: 2px; min-height: 22px}@media (max-width: 767px) {#brxe-8bfdd2 {flex-wrap: nowrap}}#brxe-0e2a03 {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-0e2a03:hover {border-color: #d8dfe9}#brxe-0e2a03:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-0e2a03{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-0e2a03 {flex-wrap: nowrap}}#brxe-a99ce4 {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 30px; border-left: 1px solid #F5F5F5; min-width: 215px}@media (max-width: 991px) {#brxe-a99ce4 {grid-column: 1/4; border-top: 1px solid #F5F5F5; border-left: 0 solid #F5F5F5}}@media (max-width: 767px) {#brxe-a99ce4 {grid-column: auto; border-style: none; padding-top: 12px}}#brxe-57535b {flex-direction: row; grid-template-columns: 1fr 1fr 1fr; grid-gap: 16px; border: 1px solid #F5F5F5; border-radius: 5px; column-gap: 0px; align-items: stretch; display: grid; align-items: initial}@media (max-width: 991px) {#brxe-57535b {grid-template-columns: 1fr 1fr 1fr; grid-gap: 0px}}@media (max-width: 767px) {#brxe-57535b {margin-top: 0; grid-template-columns: 1fr}}#brxe-77a455 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid #F5F5F5; border-radius: 10px;
676 box-shadow: 0 5px 35px 0 rgba(148, 163, 184, 0.15); width: 100%; max-width: none; background-color: #ffffff}@media (max-width: 767px) {#brxe-77a455 {box-shadow: 0 0 0 0 transparent; border-style: none; border-radius: 0; padding-top: 0; padding-right: 10px; padding-bottom: 10px; padding-left: 10px}}#brxe-7fa538 {position: absolute; left: 0px; top: 100%; margin-top: -6px; margin-left: 50%; transform: translateX(-50%); background-color: transparent}@media (max-width: 767px) {#brxe-7fa538 {position: relative; top: 0px; left: 0px !important; padding-top: 0; max-width: none; margin-left: 0; transform: translateX(0px)}}#brxe-e2274e {position: static}#brxe-e2274e .brx-submenu-toggle button > svg {height: 12px; width: 11px}#brxe-e2274e .brx-submenu-toggle {gap: 8px}#brxe-e2274e .brx-submenu-toggle button[aria-expanded="true"] {transform: rotateZ(180deg)}#brxe-e2274e button[aria-label="Toggle dropdown"] svg path { fill: #18202D;}#brxe-e2274e.open .brx-submenu-toggle span { background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}#brxe-e2274e.open button[aria-label="Toggle dropdown"] svg path { fill: #1E71ED;}@media (max-width: 767px) {#brxe-e2274e {border-bottom: 1px solid var(--border-gray)}#brxe-e2274e .brx-submenu-toggle button {transform: scaleX(1.15) scaleY(1.15)}}#brxe-56f665 {color: #18202d; font-weight: 400}#brxe-b85753 {flex-direction: row; column-gap: 10px; padding-top: 2px; padding-bottom: 2px; align-items: center; justify-content: space-between; min-height: 22px}@media (max-width: 767px) {#brxe-b85753 {flex-wrap: nowrap}}#brxe-6f0dad {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-6f0dad:hover {border-color: #d8dfe9}#brxe-6f0dad:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-6f0dad{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-6f0dad {flex-wrap: nowrap}}#brxe-3a2ca6 {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 10px; min-width: 215px}#brxe-3a2ca6 { column-gap: 16px; row-gap: 12px}@media (max-width: 767px) {#brxe-3a2ca6 {row-gap: 12px; padding-bottom: 0}}#brxe-25a2af {color: #18202d; font-weight: 400}#brxe-f6fb8a {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-f6fb8a {flex-wrap: nowrap}}#brxe-91fa66 {flex-direction: row; align-items: center; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none; column-gap: 5px; row-gap: 5px}#brxe-91fa66:hover {border-color: #d8dfe9}#brxe-91fa66:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-91fa66{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-91fa66 {flex-wrap: nowrap}}#brxe-6b5fca {border-left: 1px solid #F5F5F5; padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 10px; min-width: 215px}@media (max-width: 767px) {#brxe-6b5fca {flex-direction: column; row-gap: 12px; border-left: 0 none #F5F5F5; padding-top: 12px; padding-bottom: 0}}#brxe-c5dcbc {color: #18202d; font-weight: 400}#brxe-1a8ff2 {flex-direction: row; align-items: center; column-gap: 10px; justify-content: space-between; min-height: 22px; padding-top: 2px; padding-bottom: 2px}@media (max-width: 767px) {#brxe-1a8ff2 {flex-wrap: nowrap}}#brxe-3e3f3e {flex-direction: row; align-items: center; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 8px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-3e3f3e:hover {border-color: #d8dfe9}#brxe-3e3f3e:hover{ background: #FAFAFA; border: 1px solid #F0F0F0;}#brxe-3e3f3e{ transition: all 0.3s ease;}@media (max-width: 767px) {#brxe-3e3f3e {flex-wrap: nowrap}}#brxe-392594 {padding-top: 15px; padding-right: 15px; padding-bottom: 15px; padding-left: 15px; column-gap: 10px; row-gap: 10px; border-left: 1px solid #F5F5F5; min-width: 215px}#brxe-392594 { column-gap: 16px; row-gap: 12px}@media (max-width: 991px) {#brxe-392594 {grid-column: 1/4; border-top: 1px solid #F5F5F5; border-left: 0 solid #F5F5F5}}@media (max-width: 767px) {#brxe-392594 {grid-column: auto; border-style: none; padding-top: 12px}}#brxe-7f12b3 {flex-direction: row; grid-template-columns: 1fr 1fr 1fr; grid-gap: 16px; border: 1px solid #F5F5F5; border-radius: 5px; column-gap: 0px; align-items: stretch; display: grid; align-items: initial}@media (max-width: 991px) {#brxe-7f12b3 {grid-template-columns: 1fr 1fr 1fr; grid-gap: 0px}}@media (max-width: 767px) {#brxe-7f12b3 {margin-top: 0; grid-template-columns: 1fr}}#brxe-e532ad {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid #F5F5F5; border-radius: 10px;
676 box-shadow: 0 5px 35px 0 rgba(148, 163, 184, 0.15); width: 100%; max-width: none; background-color: #ffffff}@media (max-width: 767px) {#brxe-e532ad {box-shadow: 0 0 0 0 transparent; border-style: none; border-radius: 0; padding-top: 0; padding-right: 10px; padding-bottom: 10px; padding-left: 10px}}#brxe-64fadf {font-size: 24px; color: var(--bricks-color-puxggr); font-family: "Upwind Sans"; font-weight: 400; line-height: 1.3}@media (max-width: 767px) {#brxe-64fadf {display: none}}#brxe-26d942 {height: 32px; width: 32px}#brxe-8a9ae4 {color: #18202d}#brxe-04a7e1 {height: 10px; width: 10px}#brxe-0797f2 {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px}#brxe-bb7ffc {margin-top: 4px; color: #18202d}#brxe-f6ccd7 {padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; flex-direction: row; column-gap: 15px; transition: all 300ms ease-in-out; text-decoration: none}#brxe-f6ccd7:hover {border-color: #d8dfe9}#brxe-f6ccd7 { --icon-primary: #5697EA; --icon-secondary: #F2F7FF;}@media (max-width: 767px) {#brxe-f6ccd7 {flex-wrap: nowrap}}#brxe-7131eb {height: 32px; width: 32px}#brxe-cc147a {color: #18202d; width: auto; min-width: none; flex-grow: 0; flex-shrink: 0}#brxe-efab77 {height: 10px; width: 10px; flex-grow: 0; flex-shrink: 0}#brxe-734030 {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px}#brxe-c60229 {color: #18202d; margin-top: 4px}#brxe-61276b {text-decoration: none; flex-direction: row; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out}#brxe-61276b:hover {border-color: #d8dfe9}#brxe-61276b { --icon-primary: #F47D93; --icon-secondary: #FFF3F5;}@media (max-width: 767px) {#brxe-61276b {flex-wrap: nowrap}}#brxe-631108 {height: 32px; width: 32px}#brxe-aa9ee0 {color: #18202d; min-width: none; width: auto; flex-grow: 0; flex-shrink: 0}#brxe-d9796f {height: 10px; width: 10px; flex-grow: 0; flex-shrink: 0}#brxe-eed5b2 {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px}#brxe-62ff9e {margin-top: 4px; color: #18202d}#brxe-884fd0 {text-decoration: none; flex-direction: row; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out}#brxe-884fd0:hover {border-color: #d8dfe9}#brxe-884fd0 { --icon-primary: #A191FD; --icon-secondary: #F7F5FF;}@media (max-width: 767px) {#brxe-884fd0 {flex-wrap: nowrap}}#brxe-56ee71 {height: 32px; width: 32px}#brxe-cebc1d {color: #18202d; min-width: none; width: auto; flex-grow: 0; flex-shrink: 0}#brxe-ed91bb {height: 10px; width: 10px; flex-grow: 0; flex-shrink: 0}#brxe-d7e12a {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px}#brxe-873d1c {margin-top: 4px; color: #18202d}#brxe-bdd0fb {text-decoration: none; flex-direction: row; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out}#brxe-bdd0fb:hover {border-color: #d8dfe9}#brxe-bdd0fb { --icon-primary: #F89684; --icon-secondary: #FFF7F2;}@media (max-width: 767px) {#brxe-bdd0fb {flex-wrap: nowrap}}#brxe-86c312 {height: 32px; width: 32px}#brxe-a14544 {color: #18202d; min-width: none; width: auto; flex-grow: 0; flex-shrink: 0}#brxe-742fdd {height: 10px; width: 10px; flex-grow: 0; flex-shrink: 0}#brxe-cec2cf {flex-direction: row; column-gap: 10px; align-items: center; justify-content: flex-start; min-height: 22px}#brxe-282e68 {margin-top: 4px; color: #18202d}#brxe-ef9e7c {text-decoration: none; flex-direction: row; column-gap: 15px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border: 1px solid rgba(216, 223, 233, 0); border-radius: 8px; transition: all 300ms ease-in-out}#brxe-ef9e7c:hover {border-color: #d8dfe9}#brxe-ef9e7c { --icon-primary: #F47D93; --icon-secondary: #FFF3F5;}@media (max-width: 767px) {#brxe-ef9e7c {flex-wrap: nowrap}}#brxe-e1d1ff {margin-top: 44px; column-gap: 16px; flex-direction: row; display: grid; align-items: initial; grid-template-columns: 1fr 1fr 1fr; grid-gap: 16px}@media (max-width: 767px) {#brxe-e1d1ff {margin-top: 0; grid-template-columns: 1fr; grid-gap: 12px}}#brxe-eecafa {padding-top: 54px; padding-right: 50px; padding-bottom: 54px; padding-left: 50px; border: 1px solid #d8dfe9; border-radius: 20px;
676 box-shadow: 0 5px 35px 0 rgba(148, 163, 184, 0.15); width: 100%; max-width: none; background-color: #ffffff}@media (max-width: 767px) {#brxe-eecafa {box-shadow: 0 0 0 0 transparent; border-style: none; padding-top: 24px; padding-right: 32px; padding-bottom: 24px; padding-left: 32px}}#brxe-b47c93 {position: absolute; left: 0px; top: 100%; margin-top: -6px; margin-left: 50%; transform: translateX(-50%); background-color: transparent}@media (max-width: 767px) {#brxe-b47c93 {position: relative; top: 0px; left: 0px !important; padding-top: 0; max-width: none; margin-left: 0; transform: translateX(0px)}}#brxe-990777 {position: static}#brxe-990777 .brx-submenu-toggle button > svg {height: 12px; width: 11px}#brxe-990777 .brx-submenu-toggle {gap: 8px}#brxe-990777 .brx-submenu-toggle button[aria-expanded="true"] {transform: rotateZ(180deg)}#brxe-990777 button[aria-label="Toggle dropdown"] svg path { fill: #18202D;}#brxe-990777.open .brx-submenu-toggle span { background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}#brxe-990777.open button[aria-label="Toggle dropdown"] svg path { fill: #1E71ED;}@media (max-width: 767px) {#brxe-990777 {border-bottom: 1px solid var(--border-gray)}#brxe-990777 .brx-submenu-toggle button {transform: scaleX(1.15) scaleY(1.15)}}#brxe-f201de {font-size: 15px; line-height: 1.4; font-family: "Upwind Sans"; font-weight: 500; color: var(--bricks-color-hffyut)}@media (max-width: 767px) {#brxe-f201de {font-size: 18px}}#brxe-87938f {text-decoration: none; width: auto; flex-direction: row; align-items: center; column-gap: 8px; padding-top: 4px; padding-right: 6px; padding-bottom: 4px; padding-left: 6px; margin-left: 0}@media (max-width: 767px) {#brxe-87938f {margin-left: 0}#brxe-87938f{ border-bottom: 1px solid #E2E2E2 !important;}}#brxe-952199 {font-size: 15px; line-height: 1.4; font-family: "Upwind Sans"; font-weight: 500; color: var(--bricks-color-hffyut)}@media (max-width: 767px) {#brxe-952199 {font-size: 18px}}#brxe-12d5f5 {text-decoration: none; width: auto; flex-direction: row; align-items: center; column-gap: 8px; padding-top: 4px; padding-right: 6px; padding-bottom: 4px; padding-left: 6px; margin-left: 0}@media (max-width: 767px) {#brxe-12d5f5{ border-bottom: 1px solid #E2E2E2 !important;}}#brxe-976d11 {font-family: "Upwind Sans"; font-weight: 500; font-size: 15px; text-wrap: nowrap}@media (max-width: 767px) {#brxe-976d11 {font-size: 18px}}#brxe-319bcc {padding-top: 4px; padding-right: 6px; padding-bottom: 4px; padding-left: 6px; text-decoration: none; cursor: pointer; display: none}@media (max-width: 767px) {#brxe-319bcc {display: block}#brxe-319bcc{ border-bottom: 1px solid #E2E2E2 !important;}}#brxe-bfffbe {width: 32px; height: 32px}@media (max-width: 767px) {#brxe-bfffbe {height: auto; width: 24px; width: 24px}}#brxe-044fa9 {font-size: 15px; line-height: 1.4; font-family: "Upwind Sans"; font-weight: 500; color: var(--bricks-color-hffyut)}@media (max-width: 767px) {#brxe-044fa9 {font-size: 18px}}#brxe-eb6ff4 {text-decoration: none; width: auto; flex-direction: row; align-items: center; column-gap: 8px; padding-right: 4px; padding-left: 4px; display: none}@media (max-width: 767px) {#brxe-eb6ff4 {display: flex}}#brxe-2717cf {justify-content: center}#brxe-2717cf > .menu-item { line-height: 0px;}#brxe-2717cf > .menu-item:last-of-type { display: none !important;}@media screen and (max-width: 767px) { #brxe-2717cf > .menu-item:last-of-type { display: flex !important; } #brxe-2717cf > .menu-item:last-of-type > a { width: 100% !important; }}@media (max-width: 767px) {#brxe-2717cf {border-top: 1px solid var(--border-gray); justify-content: flex-start; row-gap: 0px}}#brxe-900088 {height: 2px; width: 32px; position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%)}#brxe-b78b5e {height: 2px; width: 32px; position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%)}#brxe-4aa216 {height: 2px; width: 32px; position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%)}#brxe-7e2047 {position: relative; width: 32px; height: 32px; flex-grow: 0; flex-shrink: 0; display: none}#brxe-7e2047 > svg { transition: 0.3s ease-in-out;}#brxe-7e2047[data-state="closed"] > svg:first-of-type { margin-top: -7px;}#brxe-7e2047[data-state="closed"] > svg:last-of-type { margin-top: 7px;}#brxe-7e2047[data-state="opened"] > svg { transform: translateX(-50%) translateY(-50%) rotate(45deg);}#brxe-7e2047[data-state="opened"] > svg:last-of-type { transform: translateX(-50%) translateY(-50%) rotate(-45deg);}@media (max-width: 767px) {#brxe-7e2047 {display: block; margin-right: 32px}}@layer bricks {@media (max-width: 767px) {#brxe-c72527 .brx-toggle-div { display: inline-flex; }#brxe-c72527 .brxe-toggle { display: inline-flex; }[data-script-id="c72527"] .brx-nav-nested-items {opacity: 0;visibility: hidden;gap: 0;position: fixed;z-index: 1001;top: 0;right: 0;bottom: 0;left: 0;display: flex;align-items: center;justify-content: center;flex-direction: column;background-color: #fff;
676overflow-y: scroll;flex-wrap: nowrap;}#brxe-c72527.brx-open .brx-nav-nested-items {opacity: 1;visibility: visible;}}}#brxe-c72527 .brx-nav-nested-items > li > a {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; letter-spacing: -0.15px; line-height: 1.4; color: var(--bricks-color-hffyut)}#brxe-c72527 .brx-nav-nested-items > li > .brxe-text-link:not(a) {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; letter-spacing: -0.15px; line-height: 1.4; color: var(--bricks-color-hffyut)}#brxe-c72527 .brx-nav-nested-items > li > .brxe-icon {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; letter-spacing: -0.15px; line-height: 1.4; color: var(--bricks-color-hffyut)}#brxe-c72527 .brx-nav-nested-items > li:has( > .brxe-svg) {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; letter-spacing: -0.15px; line-height: 1.4; color: var(--bricks-color-hffyut)}#brxe-c72527 .brx-nav-nested-items > li > .brx-submenu-toggle > * {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; letter-spacing: -0.15px; line-height: 1.4; color: var(--bricks-color-hffyut)}#brxe-c72527 .brx-nav-nested-items {gap: 27px}@media (max-width: 991px) {#brxe-c72527 .brx-nav-nested-items {gap: 16px}}@media (max-width: 767px) {#brxe-c72527 .brx-nav-nested-items > li > a {padding-top: 20px; padding-right: 32px; padding-bottom: 20px; padding-left: 32px; border-bottom: 1px none var(--border-gray); font-size: 18px}#brxe-c72527 .brx-nav-nested-items > li > .brxe-text-link:not(a) {padding-top: 20px; padding-right: 32px; padding-bottom: 20px; padding-left: 32px; border-bottom: 1px none var(--border-gray); font-size: 18px}#brxe-c72527 .brx-nav-nested-items > li > .brxe-icon {padding-top: 20px; padding-right: 32px; padding-bottom: 20px; padding-left: 32px; border-bottom: 1px none var(--border-gray); font-size: 18px}#brxe-c72527 .brx-nav-nested-items > li:has( > .brxe-svg) {padding-top: 20px; padding-right: 32px; padding-bottom: 20px; padding-left: 32px; border-bottom: 1px none var(--border-gray); font-size: 18px}#brxe-c72527 .brx-nav-nested-items > li > .brx-submenu-toggle > * {padding-top: 20px; padding-right: 32px; padding-bottom: 20px; padding-left: 32px; font-size: 18px}#brxe-c72527.brx-open .brx-nav-nested-items > li > button.brx-toggle-div {padding-top: 20px; padding-right: 32px; padding-bottom: 20px; padding-left: 32px}#brxe-c72527.brx-open .brx-nav-nested-items { position: absolute; height: calc(100svh - 92px); width: 100vw; top: 100%; left: 0; overflow: auto;}#brxe-c72527 .brx-nav-nested-items > li > .brx-submenu-toggle {border-bottom: 1px none var(--border-gray)}#brxe-c72527 .brx-nav-nested-items {gap: 0px}}#brxe-1c601d {width: auto; flex-direction: row; align-items: center}#brxe-06a7a0 {font-family: "Upwind Sans"; font-weight: 500; font-size: 15px; text-wrap: nowrap}#brxe-5dd8dc {padding-top: 4px; padding-right: 6px; padding-bottom: 4px; padding-left: 6px; text-decoration: none; cursor: pointer}#brxe-d87001 {width: 32px; height: 32px; height: 11px; width: 13px; min-width: 13px}#brxe-a7e2e0 {font-size: 12px; line-height: 1.4; font-family: "Upwind Sans"; font-weight: 400; color: #777779; text-wrap: nowrap; flex-grow: 0; flex-shrink: 0}#brxe-632449 {text-decoration: none; width: auto; flex-direction: row; align-items: center; column-gap: 6px; padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px}#brxe-85200a {max-width: auto; width: fit-content; flex-direction: row; align-items: center; column-gap: 14px}@media (max-width: 767px) {#brxe-85200a {display: none}}#brxe-fcd69c {flex-direction: row; align-items: center; padding-top: 12px; padding-right: 32px; padding-bottom: 12px; padding-left: 32px; justify-content: space-between; position: relative; max-width: 1364px; column-gap: 40px}@media (max-width: 767px) {#brxe-fcd69c {padding-right: 0; padding-left: 0}}#brxe-47443e {background-color: #ffffff; padding-right: 0; padding-left: 0}#brxe-47443e::before { content: ''; display: block; position: relative; height: 2px; width: 100%; background: linear-gradient(90deg,rgba(242, 88, 60, 1) 0%, rgba(146, 20, 196, 1) 50%, rgba(30, 113, 237, 1) 100%);}@media (max-width: 767px) {#brxe-47443e {position: relative; padding-right: 0; padding-left: 0}}#brxe-qswkqu {z-index: 2; position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; padding-top: 0; width: 100%; height: 100%}#brxe-qswkqu video { object-fit: cover !important;}#announcementBanner2 {min-width: auto; min-height: auto}#brxe-ugmpgb {color: #ffffff; text-transform: none; max-width: 100%; border: 1px solid #ffffff; border-radius: 4px; max-height: auto; z-index: 999; padding-top: 3px; padding-right: 20px; padding-bottom: 3px; padding-left: 20px}#brxe-ugmpgb{ background: rgba(255, 255, 255, 0.001); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);}@media (max-width: 767px) {#brxe-ugmpgb {padding-top: 5px; padding-bottom: 5px}}#brxe-jrgayf {margin-top: 25px; color: #ffffff; text-align: center; max-width: 600px}@media (max-width: 767px) {#brxe-jrgayf {font-size: 40px}}#brxe-kjyuat {max-width: 700px; margin-top: 20px; color: #ffffff; text-align: center; line-height: 1.6}@media (max-width: 767px) {#brxe-kjyuat {font-size: 16px}}#brxe-iyijkp {margin-top: 20px}#brxe-kahgdm {width: 100%; height: 100%; flex-direction: column; justify-content: center; align-items: center; z-index: 3}#brxe-prriah {min-height: 691px; max-width: 1300px; border-radius: 16px; overflow: hidden; background-color: #1E71ED; padding-top: 32px; padding-right: 32px; padding-bottom: 32px; padding-left: 32px; justify-content: center; align-items: center; position: relative}#brxe-prriah::after { content: ''; display: block; position: absolute; height: 100%; width: 100%; left: 0; top: 0; box-shadow: 0 0 16px 0 rgba(255, 255, 255, 0.60) inset;}#brxe-dlylyv {padding-top: 50px; padding-bottom: 50px}#announcementBanner1 {min-width: auto; min-height: auto}#brxe-0f4b48 {color: #ffffff; text-transform: none; max-width: 100%; border: 1px solid #ffffff; border-radius: 4px; max-height: auto; z-index: 999; padding-top: 3px; padding-right: 20px; padding-bottom: 3px; padding-left: 20px}#brxe-0f4b48{ background: rgba(255, 255, 255, 0.001); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);}@media (max-width: 767px) {#brxe-0f4b48 {padding-top: 5px; padding-bottom: 5px}}#brxe-09abeb {margin-top: 25px; color: #ffffff; text-align: center; max-width: 600px}@media (max-width: 767px) {#brxe-09abeb {font-size: 40px}}#brxe-00ae0c {max-width: 700px; margin-top: 20px; color: #ffffff; text-align: center; line-height: 1.6}@media (max-width: 767px) {#brxe-00ae0c {font-size: 16px}}#brxe-d01168 {margin-top: 20px}#brxe-63b08b {width: 100%; height: 100%; flex-direction: column; justify-content: center; align-items: center; z-index: 2}#brxe-e3e653 {min-height: 691px; max-width: 1300px; border-radius: 16px; overflow: hidden; background-color: #1E71ED; padding-top: 32px; padding-right: 32px; padding-bottom: 32px; padding-left: 32px; justify-content: center; align-items: center; position: relative}#brxe-e3e653::after { content: ''; display: block; position: absolute; height: 100%; width: 100%; left: 0; top: 0; box-shadow: 0 0 16px 0 rgba(255, 255, 255, 0.60) inset;}#brxe-3335e8 {padding-top: 50px; padding-bottom: 50px}.brxe-58e345 {text-align: center; color: var(--bricks-color-tkomdk); padding-right: 32px; padding-left: 32px}.brxe-76b514 {width: calc(43px * var(--resize-percent))}.brxe-d3cc08 {width: calc(77px * var(--resize-percent))}.brxe-9079cf {width: calc(53px * var(--resize-percent))}.brxe-2626cf {width: calc(70px * var(--resize-percent))}.brxe-73a819 {width: calc(34px * var(--resize-percent))}.brxe-1cab32 {width: calc(41px * var(--resize-percent))}.brxe-6a406f {width: calc(89px * var(--resize-percent))}.brxe-c8b786 {width: calc(24px * var(--resize-percent))}.brxe-284905 {width: calc(72px * var(--resize-percent))}.brxe-ngnqlj {width: calc(71px * var(--resize-percent))}.brxe-kvsolh {width: calc(44px * var(--resize-percent))}.brxe-xtzaun {width: calc(46px * var(--resize-percent))}.brxe-qrbeoq {width: calc(100px * var(--resize-percent))}.brxe-adfa3f {flex-direction: row; column-gap: 24px; justify-content: center; align-items: center; position: relative}.brxe-adfa3f { --resize-percent: 1.28;}@media (max-width: 991px) {.brxe-adfa3f {flex-wrap: wrap; row-gap: 24px}}.brxe-lkswtj {width: calc(41px * var(--resize-percent)); display: none}.brxe-ufiizl {width: calc(126px * var(--resize-percent)); display: none}.brxe-nvvvpv {width: calc(98px * var(--resize-percent)); display: none}.brxe-bvhnam {width: calc(85px * var(--resize-percent)); display: none}.brxe-bvhnam:not(.tag), .brxe-bvhnam img {object-fit: contain}.brxe-kuammh {flex-direction: row; column-gap: 24px; justify-content: center; align-items: center; position: relative; display: none}.brxe-kuammh { --resize-percent: 1.28;}@media (max-width: 991px) {.brxe-kuammh {flex-wrap: wrap; row-gap: 24px}}.brxe-gisgwi {max-width: none; row-gap: 24px}.brxe-ccb23a {align-items: center; row-gap: 40px; max-width: none}@media (max-width: 478px) {.brxe-ccb23a {row-gap: 32px}}.brxe-boiuru {padding-top: 80px; padding-right: 0; padding-bottom: 80px; padding-left: 0}@media (max-width: 478px) {.brxe-boiuru {padding-top: 60px; padding-bottom: 60px}}#brxe-a3f637 {max-width: 1000px; text-align: center; font-size: 40px; font-family: "Upwind Sans"}.no-break{ white-space: nowrap;}@media (max-width: 767px) {#brxe-a3f637 {font-size: 32px}}#brxe-1e5992 {text-align: center; font-family: "Upwind Sans"; color: var(--bricks-color-tkomdk); font-size: 18px; max-width: 845px; margin-top: 30px}#brxe-4aa9a1 {max-width: 1082px; border: 1px solid var(--border-gray); border-radius: 8px; align-items: center; padding-top: 90px; padding-right: 60px; padding-bottom: 90px; padding-left: 60px; background-color: #ffffff}@media (max-width: 767px) {#brxe-4aa9a1 {padding-top: 60px; padding-right: 40px; padding-bottom: 60px; padding-left: 40px}}@media (max-width: 767px) {#brxe-a8a69a {display: none}}#brxe-3e112e {display: none; aspect-ratio: 300 / 541 !important; width: 100%}@media (max-width: 767px) {#brxe-3e112e {display: flex}}#brxe-df8ced {max-width: 1082px; border: 1px solid var(--border-gray); border-radius: 8px; align-items: center; overflow: hidden}#brxe-59d3aa {width: 22px; height: 100%}#brxe-ca26ff {font-family: "Upwind Sans"}#brxe-0c09b2 {border: 1px solid #ACD0FC; border-radius: 4px; padding-top: 4px; padding-right: 24px; padding-bottom: 4px; padding-left: 24px; background-color: #F3F7FF; display: flex; align-items: center; column-gap: 8px; row-gap: 8px}#brxe-1b1622 {font-family: "Upwind Sans"}#brxe-8dd4b6 {border: 1px solid #ACD0FC; border-radius: 4px; padding-top: 4px; padding-right: 24px; padding-bottom: 4px; padding-left: 24px; background-color: #F3F7FF; display: flex; align-items: center; column-gap: 8px; row-gap: 8px}#brxe-372b2c {flex-direction: row; column-gap: 16px; row-gap: 16px}#brxe-3bcf2a {text-align: left; font-size: 32px; font-family: "Upwind Sans"; line-height: 1.2; max-width: 1000px}@media (max-width: 767px) {#brxe-3bcf2a {font-size: 28px}}#brxe-f5aaf1 {font-family: "Upwind Sans"; font-size: 18px; line-height: 1.5}#brxe-f8667d {font-family: "Upwind Sans"; font-size: 18px; line-height: 1.5}#brxe-1d9ea6 {column-gap: 12px; row-gap: 12px}#brxe-2a00e3 {max-width: 880px; padding-top: 60px; padding-right: 32px; padding-bottom: 60px; padding-left: 32px; column-gap: 28px; row-gap: 28px}@media (max-width: 478px) {#brxe-2a00e3 {padding-top: 32px; padding-bottom: 32px}}#brxe-d5369b {max-width: 1082px; border: 1px solid var(--border-gray); border-radius: 8px; align-items: center}#brxe-d5369b{ position: relative; background-color: #ffffff; z-index: 1;}#brxe-d5369b::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(293deg, #F2583C -62.82%, #9214C4 18.07%, #1E71ED 98.96%); opacity: 0; transition: opacity 0.3s ease; z-index: -1; border-radius: 7.9px;}#brxe-d5369b:hover::before { opacity: 1;}#brxe-d5369b:hover{ color: white !important;}#brxe-d5369b:hover .text{ color: white !important;}#brxe-d5369b:hover .tag { background: none; border: 1px solid white;} .icon1{ fill: #2C72DD;}#brxe-d5369b:hover .icon1{ fill: white;}#brxe-f00253 {height: 100%; width: 100%; width: 22px}#brxe-97ae53 {font-family: "Upwind Sans"}#brxe-7ec89c {border: 1px solid #D3CCFF; border-radius: 4px; padding-top: 4px; padding-right: 24px; padding-bottom: 4px; padding-left: 24px; background-color: #F7F5FF; display: flex; align-items: center; column-gap: 8px; row-gap: 8px}#brxe-f59b97 {font-family: "Upwind Sans"}#brxe-756b10 {border: 1px solid #D3CCFF; border-radius: 4px; padding-top: 4px; padding-right: 24px; padding-bottom: 4px; padding-left: 24px; background-color: #F7F5FF; display: flex; align-items: center; column-gap: 8px; row-gap: 8px}#brxe-46c3fb {flex-direction: row; column-gap: 16px; row-gap: 16px}#brxe-333f7a {font-size: 32px; font-family: "Upwind Sans"; line-height: 1.2}@media (max-width: 767px) {#brxe-333f7a {font-size: 28px}}#brxe-bb767d {font-family: "Upwind Sans"; font-size: 18px; line-height: 1.5}#brxe-76c181 {font-family: "Upwind Sans"; font-size: 18px; line-height: 1.5}#brxe-f9f6f0 {column-gap: 12px; row-gap: 12px}#brxe-9d1557 {max-width: 880px; padding-top: 60px; padding-right: 32px; padding-bottom: 60px; padding-left: 32px; column-gap: 28px; row-gap: 28px}@media (max-width: 478px) {#brxe-9d1557 {padding-top: 32px; padding-bottom: 32px}}#brxe-1bf06f {max-width: 1082px; border: 1px solid var(--border-gray); border-radius: 8px; align-items: center}#brxe-1bf06f{ position: relative; background-color: #ffffff; z-index: 1;}#brxe-1bf06f::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(293deg, #F2583C -30.73%, #9214C4 50.71%, #1E71ED 132.15%); opacity: 0; transition: opacity 0.3s ease; z-index: -1; border-radius: 7.9px;}#brxe-1bf06f:hover::before { opacity: 1;}#brxe-1bf06f:hover{ color: white !important;}#brxe-1bf06f:hover .text{ color: white !important;}#brxe-1bf06f:hover .tag { background: none; border: 1px solid white;} .icon2{ fill: #7762F8;}#brxe-1bf06f:hover .icon2{ fill: white;}#brxe-ade957 {height: 100%; width: 100%; width: 22px}#brxe-b08777 {font-family: "Upwind Sans"}#brxe-b3c812 {border: 1px solid #FFBDB0; border-radius: 4px; padding-top: 4px; padding-right: 24px; padding-bottom: 4px; padding-left: 24px; background-color: #FFF2F0; display: flex; align-items: center; column-gap: 8px; row-gap: 8px}#brxe-1af5d0 {font-family: "Upwind Sans"}#brxe-3a1699 {border: 1px solid #FFBDB0; border-radius: 4px; padding-top: 4px; padding-right: 24px; padding-bottom: 4px; padding-left: 24px; background-color: #FFF2F0; display: flex; align-items: center; column-gap: 8px; row-gap: 8px}#brxe-633861 {flex-direction: row; column-gap: 16px; row-gap: 16px}#brxe-af19d1 {font-size: 32px; font-family: "Upwind Sans"; line-height: 1.2; max-width: 1000px}@media (max-width: 767px) {#brxe-af19d1 {font-size: 28px}}#brxe-380cf1 {font-family: "Upwind Sans"; font-size: 18px; line-height: 1.5}#brxe-841319 {font-family: "Upwind Sans"; font-size: 18px; line-height: 1.5}#brxe-855889 {column-gap: 12px; row-gap: 12px}#brxe-54ece9 {max-width: 880px; padding-top: 60px; padding-right: 32px; padding-bottom: 60px; padding-left: 32px; column-gap: 28px; row-gap: 28px}@media (max-width: 478px) {#brxe-54ece9 {padding-top: 32px; padding-bottom: 32px}}#brxe-a39915 {max-width: 1082px; border: 1px solid var(--border-gray); border-radius: 8px; align-items: center}#brxe-a39915{ position: relative; background-color: #ffffff; z-index: 1;}#brxe-a39915::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(293deg, #F2583C 1.19%, #9214C4 82.21%, #1E71ED 163.23%); opacity: 0; transition: opacity 0.3s ease; z-index: -1; border-radius: 7.9px;}#brxe-a39915:hover::before { opacity: 1;}#brxe-a39915:hover{ color: white !important;}#brxe-a39915:hover .text{ color: white !important;}#brxe-a39915:hover .tag { background: none; border: 1px solid white;} .icon3{ fill: #F2583C;}#brxe-a39915:hover .icon3{ fill: white;}#brxe-e2dfd6 {width: 12px}#brxe-6ed771 {width: 36px; height: 36px; min-width: auto; min-height: auto; display: flex; align-items: center; justify-content: center}#brxe-6ed771 { border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #F2583C 0%, #9214C
6764 50%, #1E71ED 100%) border-box; border-radius: 4px; }#brxe-2a20d2 {text-align: center; font-size: 40px; margin-top: 15px}@media (max-width: 767px) {#brxe-2a20d2 {font-size: 32px; text-align: center}}#btn1 {padding-top: 8px; padding-right: 20px; padding-bottom: 8px; padding-left: 20px; line-height: 1.2; letter-spacing: 0%; color: var(--bricks-color-hffyut)}#btn1{ font-size: 20px !important; background: #FCFCFC; border: 1px solid #E2E2E2; transition: all 0.3s ease;}#btn1:hover{ border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box;}#btn1:hover::after{ opacity: 0 !important;} .btn-active{ border: 1px solid transparent !important; border-radius: 4px !important; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box !important; }#btn2 {padding-top: 8px; padding-right: 20px; padding-bottom: 8px; padding-left: 20px; min-width: 2px; line-height: 1.2; letter-spacing: 0%; color: var(--bricks-color-hffyut)}#btn2{ font-size: 20px !important; background: #FCFCFC; border: 1px solid #E2E2E2; transition: all 0.3s ease;}#btn2:hover{ border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box;}#btn2:hover::after{ opacity: 0 !important;} .btn-active{ border: 1px solid transparent !important; border-radius: 4px !important; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box !important; }@media (max-width: 478px) {#btn2 {margin-top: 0}}#btn3 {padding-top: 8px; padding-right: 20px; padding-bottom: 8px; padding-left: 20px; line-height: 1.2; letter-spacing: 0%; color: var(--bricks-color-hffyut); font-size: 20px}#btn3{ font-size: 20px !important; background: #FCFCFC; border: 1px solid #E2E2E2; transition: all 0.3s ease;}#btn3:hover{ border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box;}#btn3:hover::after{ opacity: 0 !important;} .btn-active{ border: 1px solid transparent !important; border-radius: 4px !important; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box !important; }@media (max-width: 478px) {#btn3 {margin-top: 0}}#brxe-aa68e8 {flex-direction: row; justify-content: center; column-gap: 24px; margin-top: 30px; margin-bottom: 10px}@media (max-width: 767px) {#brxe-aa68e8 {padding-right: 20px; padding-left: 20px; row-gap: 24px}}#state1 {width: 100%; padding-top: 0; height: 100%}#state1{ aspect-ratio: 1398 / 734 !important;}#state2 {padding-top: 0; width: 100%; height: 100%; display: none}#state2{ aspect-ratio: 1398 / 734 !important;}#state3 {padding-top: 0; width: 100%; height: 100%; display: none}#state3{ aspect-ratio: 1398 / 734 !important;}#brxe-c9e0d8 {max-width: 1400px; width: 100%; aspect-ratio: 1398 / 734; margin-top: 40px; border: 1px solid var(--border-gray); border-radius: 14px; overflow: hidden; background-color: white}#brxe-38cb90 {align-items: center; max-width: 100%; margin-top: 350px; position: relative}#brxe-38cb90::before { content: ''; display: block; position: absolute; height: calc(100% + 175px + 175px); width: 100vw; left: 50%; top: -175px; transform: translateX(-50vw); z-index: 1; background-color: #ffffff;}#brxe-38cb90 > * { position: relative; z-index: 2;}#brxe-96cd9f {font-family: "Upwind Sans"; text-align: center; font-size: 40px; max-width: 1000px}@media (max-width: 767px) {#brxe-96cd9f {font-size: 32px}}#brxe-031f48 {text-decoration: none; font-family: "Upwind Sans"; font-weight: 400}#brxe-4c75b7 {text-decoration: none; width: 168px; display: flex; align-items: center; justify-content: center; padding-top: 8px; padding-bottom: 8px; border: 1px solid var(--border-gray); border-radius: 4px; transition: color 0.1s ease-out; cursor: pointer}#brxe-4c75b7:hover{ border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%) border-box; border-radius: 4px; }#brxe-4c75b7:hover * { background: linear-gradient(90deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: transparent;}#brxe-dbd283 {text-decoration: none; font-family: "Upwind Sans"; font-weight: 400}#brxe-769c27 {justify-content: center; align-items: center; padding-top: 8px; padding-bottom: 8px; width: 168px; display: flex; border: 1px solid var(--border-gray); border-radius: 4px; transition: color 0.1s ease-out; cursor: pointer; text-decoration: none}#brxe-769c27:hover{ border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%) border-box; border-radius: 4px; }#brxe-769c27:hover * { background: linear-gradient(90deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: transparent;}#brxe-bc88c6 {text-decoration: none; font-family: "Upwind Sans"; font-weight: 400}#brxe-1e16c3 {width: 168px; display: flex; align-items: center; justify-content: center; padding-top: 8px; padding-bottom: 8px; border: 1px solid var(--border-gray); border-radius: 4px; transition: color 0.1s ease-out; cursor: pointer; text-decoration: none}#brxe-1e16c3:hover{ border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%) border-box; border-radius: 4px; }#brxe-1e16c3:hover * { background: linear-gradient(90deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: transparent;}#brxe-9a3829 {align-items: center; flex-direction: row; justify-content: center; column-gap: 20px; row-gap: 20px; margin-top: 25px}#brxe-d6abbb {align-items: center; margin-top: 350px; margin-bottom: 200px; max-width: 1100px; border: 1px solid var(--border-gray); border-radius: 8px; padding-top: 40px; padding-right: 30px; padding-bottom: 40px; padding-left: 30px; background-color: white}#brxe-1825aa {column-gap: 20px; row-gap: 20px; padding-top: 200px; padding-bottom: 200px}#brxe-7dd70c {text-align: center; color: var(--bricks-color-tkomdk)}@media (max-width: 767px) {#brxe-7dd70c {font-size: 28px; text-align: center}}#brxe-73f7f8 {margin-top: 20px}#brxe-84ba44 {align-items: center; padding-right: 32px; padding-left: 32px}.brxe-fbmjgf {background-image: linear-gradient(90deg, #ffffff, #ffffff00); width: 80px; position: absolute; top: 0px; left: 0px; z-index: 4; height: 100%}@media (max-width: 767px) {.brxe-fbmjgf {width: 50px}}.brxe-zslsay {background-image: linear-gradient(-90deg, #ffffff, #ffffff00); width: 80px; position: absolute; top: 0px; z-index: 4; height: 100%; right: 0px}@media (max-width: 767px) {.brxe-zslsay {width: 50px}}.brxe-ekyfwa {flex-direction: row; column-gap: 36px; justify-content: center; align-items: center; position: relative}.brxe-ekyfwa .element-scroll-wrapper { align-items: center !important;}@media (max-width: 991px) {.brxe-ekyfwa {flex-wrap: wrap; row-gap: 24px}}.brxe-rvjooe {position: relative; margin-top: 60px; margin-right: 32px; margin-left: 32px; overflow: hidden; max-width: 100%; width: calc(100% - 64px); align-self: center !important}@media (max-width: 767px) {.brxe-rvjooe {margin-right: 0; margin-left: 0; width: 100%}}#brxe-118188 {max-width: none}#brxe-423e4e {justify-content: center; align-items: center; padding-top: 200px; padding-right: 0; padding-bottom: 200px; padding-left: 0; overflow: hidden; min-height: 50svh}.brxe-xjxnqs {position: absolute; z-index: 4; top: 0px; right: 0px; bottom: 0px; left: 0px; border: 1px solid #e2e2e2; border-radius: 8px; background-color: #ffffff; opacity: 1; transition: opacity 0.3s ease}.brxe-fssmog {height: 100%; width: auto !important; max-width: none}.brxe-pdbnrp {position: relative; width: auto; align-items: flex-start; flex-grow: 0; flex-shrink: 0; border: 1px solid #E2E2E2; border-radius: 4px; height: 36px; justify-content: center; padding-top: 10px; padding-right: 15px; padding-bottom: 10px; padding-left: 15px; background-color: #FAFAFA; z-index: 5}.brxe-erdnwq {color: var(--bricks-color-hffyut); font-size: 16px !important; line-height: 1.3 !important; margin-top: 0; position: relative}.brxe-erdnwq::before { content: "“"; display: block; position: absolute; right: 100%; top: 0; height: auto; width: auto; color: inherit;}.brxe-fdndcv {flex-grow: 1; flex-shrink: 1; position: relative; z-index: 5; margin-top: 16px; margin-bottom: 0}.brxe-gmzoer {width: 50px; height: 50px; border-radius: 99px; flex-grow: 0; flex-shrink: 0}.brxe-gmzoer:not(.tag), .brxe-gmzoer img {aspect-ratio: 1 / 1; object-fit: cover}.brxe-trpqwc {color: var(--bricks-color-hffyut); font-weight: 500; letter-spacing: -0.12px; font-size: 12px; line-height: 1.2}.brxe-kdsutj {color: var(--bricks-color-puxggr); font-weight: 400; letter-spacing: -0.12px; font-size: 12px; line-height: 1.2}.brxe-ujdveo {row-gap: 4px}.brxe-inlguk {margin-top: 14px; flex-grow: 0; flex-shrink: 0; position: relative; z-index: 5; flex-direction: row; column-gap: 12px; align-items: center; padding-top: 8px; padding-bottom: 8px}@media (max-width: 767px) {.brxe-inlguk {flex-direction: row; flex-wrap: nowrap; column-gap: 12px}}.brxe-omjaao {height: 100%}.brxe-govwpy {width: 100vw; height: 100svh; top: 0px; left: 0px; bottom: 0px; right: 0px; z-index: 2 !important}.brxe-govwpy { position: fixed !important; box-shadow: 0 0 16px 0 rgba(255, 255, 255, 0.60) inset;}.brxe-ticcbg {max-width: 387px; height: auto; width: 100%}.brxe-pzllzp {max-width: 774px; width: 100%; color: #ffffff; font-weight: 400; line-height: 1.1; letter-spacing: -2.24px; font-family: "Upwind Sans"; font-size: 56px; margin-top: 52px; margin-bottom: 34px}@media (max-width: 767px) {.brxe-pzllzp {font-size: 28px; line-height: 1.2; font-family: "Upwind Sans"; font-weight: 400; letter-spacing: 0px}}.brxe-pmeykc {width: 102px; height: 102px; border-radius: 99px; flex-grow: 0; flex-shrink: 0}.brxe-pmeykc:not(.tag), .brxe-pmeykc img {aspect-ratio: 1 / 1; object-fit: cover}@media (max-width: 767px) {.brxe-pmeykc {width: 52px; height: 52px}}.brxe-dcjppx {color: #ffffff}.brxe-dcjppx { font-size: 22px !important; font-weight: 500 !important; letter-spacing: -0.225px !important; line-height: 1.2 !important;}@media (max-width: 767px) {.brxe-dcjppx {font-size: 16px !important}}.brxe-tiwpcl {color: #ffffff; font-weight: 400; letter-spacing: -0.225px; font-size: 22px; line-height: 1.2}@media (max-width: 767px) {.brxe-tiwpcl {font-size: 14px !important}}.brxe-sxxpzl {row-gap: 6px}.brxe-gthbgl {flex-grow: 0; flex-shrink: 0; position: relative; z-index: 5; flex-direction: row; column-gap: 20px; align-items: center}@media (max-width: 767px) {.brxe-gthbgl {display: flex; flex-wrap: nowrap}}.brxe-wkrfhj {flex-direction: column; display: block}@media (max-width: 767px) {.brxe-wkrfhj {flex-wrap: nowrap; flex-direction: column}}.brxe-erycct {position: fixed; left: -9999px; width: 100vw; top: -9999px; padding-top: 57px; padding-right: 67px; padding-bottom: 72px; padding-left: 67px; z-index: 2; height: 100svh; overflow: scroll; display: block}.brxe-erycct { pointer-events: none;} .brxe-erycct > * { position: relative; z-index: 3;}@media (max-width: 767px) {.brxe-erycct {flex-direction: column; flex-wrap: nowrap; padding-top: 28px; padding-right: 32px; padding-bottom: 40px; padding-left: 32px}}.brxe-tdhfns {flex-direction: column; flex-grow: 0; flex-shrink: 0; align-items: flex-start; padding-top: 30px; padding-right: 20px; padding-bottom: 30px; padding-left: 20px; border-radius: 8px; height: 100%}.brxe-sfvetv {align-self: stretch !important; width: 100%; align-items: flex-start; flex-grow: 0; flex-shrink: 0; max-width: 347px; min-height: 374px; position: relative; border-radius: 8px}#brxe-8be174 {text-align: center; font-size: 40px; max-width: 700px}@media (max-width: 767px) {#brxe-8be174 {font-size: 32px}}#brxe-f3acf3 {padding-bottom: 50px; flex-direction: column; align-items: center; background-color: #ffffff}#brxe-dbfee6 {color: #ffffff}@media (max-width: 478px) {#brxe-dbfee6 {text-align: center}}#brxe-620421 {padding-top: 9px; padding-right: 24px; padding-bottom: 6px; padding-left: 24px; font-size: 16px; font-family: "aktiv-grotesk"; font-weight: 500; line-height: 1.4; letter-spacing: -0.16px; color: var(--bricks-color-hffyut); background-color: transparent}#brxe-620421::after { padding-top: 9px; padding-bottom: 6px;}#brxe-d2da6e {padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; justify-content: center; align-items: center; flex-direction: row; column-gap: 35px}@media (max-width: 767px) {#brxe-d2da6e {row-gap: 25px}}@media (max-width: 478px) {#brxe-d2da6e {flex-direction: column; justify-content: center; align-items: center; row-gap: 16px; padding-top: 32px; padding-right: 32px; padding-bottom: 32px; padding-left: 32px}}#brxe-50b720 {padding-top: 15px; padding-right: 25px; padding-bottom: 15px; padding-left: 25px; justify-content: center; align-items: center; border-radius: 12px; position: relative}#brxe-50b720 .top-left,#brxe-50b720 .top-right,#brxe-50b720 .bottom-left,#brxe-50b720 .bottom-right { display: block; position: absolute; height: 16px; width: 16px; transform: translateX(-50%) translateY(-50%);}#brxe-50b720 .top-left { left: 0; top: 0;}
676#brxe-50b720 .top-right { left: 100%; top: 0;}#brxe-50b720 .bottom-left { left: 0; top: 100%;}#brxe-50b720 .bottom-right { left: 100%; top: 100%;}#brxe-98d47f {background-color: #ffffff; min-height: auto}#brxe-98d47f { max-height: 20px !important; height: 20px !important;}.brxe-dgfwft {flex-grow: 0; flex-shrink: 0; aspect-ratio: 272 / 164; flex-direction: row; position: relative; justify-content: center; align-items: center}@media (max-width: 767px) {.brxe-dgfwft {flex-direction: row; justify-content: center; align-items: center}}.brxe-ncomkr {border: 1px solid var(--bricks-color-onpvpa); border-radius: 4px; padding-top: 2px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; flex-grow: 0; flex-shrink: 0; color: var(--bricks-color-puxggr)}.brxe-aaogyn {flex-grow: 1; flex-shrink: 1; line-height: 1.3; font-size: 20px; margin-top: 10px; margin-bottom: 20px}.brxe-aaogyn{ display: -webkit-box;-webkit-line-clamp: 5;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}.brxe-kglili {margin-top: 0; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; transform: translateX(-10px) translateY(10px); min-width: calc(100% + 20px)}.brxe-kglili { color: #777779 !important; font-family: "Upwind Sans" !important; font-weight: 400 !important; text-decoration: none !important; line-height: 1.6 !important;}.brxe-ihekuj {flex-grow: 1; flex-shrink: 1; background-color: #ffffff; padding-top: 20px; position: relative}.brxe-ihekuj::before { content: ''; display: block; position: absolute; height: calc(100% + 10px); width: calc(100% + 20px); left: -10px; top: 0px; background: #ffffff;} .brxe-ihekuj > * { position: relative; z-index: 2;}@media (max-width: 478px) {.brxe-ihekuj {flex-direction: column; flex-wrap: nowrap}}.brxe-ixudtw {border-top: 20px solid #ffffff; border-right: 20px solid #ffffff; border-bottom: 25px solid #ffffff; border-left: 20px solid #ffffff; flex-direction: column; height: 100%}@media (max-width: 767px) {.brxe-ixudtw {flex-direction: column; flex-wrap: nowrap}}.brxe-fwitce {border: 1px solid var(--border-gray); border-radius: 12px; overflow: hidden; height: 100%; flex-direction: row; position: relative; z-index: 1}.brxe-tohdxr {height: 100%; position: relative}#brxe-a95bf7 .splide__arrow--prev {right: calc(100% + 44px); left: auto; transform: translateX(0px)}#brxe-a95bf7 .splide__arrow--next {left: calc(100% + 44px); right: auto; transform: translateX(0px)}#brxe-a95bf7 .splide__arrow {width: 56px; height: 56px}#brxe-a95bf7 .splide__arrow--prev > * {width: 15px; height: 25px}#brxe-a95bf7 .splide__arrow--next > * {height: 25px; width: 15px}#brxe-a95bf7 .splide__list { align-items: stretch !important;}#brxe-a95bf7 .top-left,#brxe-a95bf7 .top-right,#brxe-a95bf7 .bottom-left,#brxe-a95bf7 .bottom-right { display: block; position: absolute; height: 16px; width: 16px; transform: translateX(-50%) translateY(-50%);}#brxe-a95bf7 .top-left { left: 0; top: 0;}#brxe-a95bf7 .top-right { left: 100%; top: 0;}#brxe-a95bf7 .bottom-left { left: 0; top: 100%;}#brxe-a95bf7 .bottom-right { left: 100%; top: 100%;}#brxe-a95bf7 .splide__slide::before,#brxe-a95bf7 .splide__slide::after { content: ''; display: block; position: absolute; left: 0px; top: 0px; height: 100%; width: 20px; background: white;}#brxe-a95bf7 .splide__slide::after { width: 60px; left: calc(100% - 20px);}@media (max-width: 767px) {#brxe-a95bf7 .splide__arrow--next {left: 50px; top: calc(100% + 20px); right: auto}#brxe-a95bf7 .splide__arrow--prev {top: calc(100% + 20px); right: auto; left: 0px}#brxe-a95bf7 .splide__arrow { border: 1px solid #e2e2e2; border-radius: 8px;}#brxe-a95bf7 .splide__arrow svg { height: 18px !important;}#brxe-a95bf7 .splide__arrow {height: 40px; width: 40px; font-size: 40px; min-height: 40px; min-width: 40px}#brxe-a95bf7 .splide__arrow svg {height: 40px; width: 40px}#brxe-a95bf7 .splide__arrow--prev > * {height: auto; width: 10px}#brxe-a95bf7 .splide__arrow--next > * {height: auto; width: 10px}}@media (max-width: 478px) {#brxe-a95bf7 {min-height: 100%; max-height: 100%}#brxe-a95bf7 .splide__slide {height: 100%}}#brxe-5be3fe {align-items: center; max-width: 1100px}#brxe-5be3fe { background: radial-gradient( 81.19% 950.56% at 83.83% 49.49%, rgb(242, 88, 60) 10.68%, rgb(154, 49, 196) 46.15%, rgb( 30, 113, 237) 100% );}#brxe-737ef0 {padding-top: 150px; padding-bottom: 150px}#brxe-12010f {color: var(--bricks-color-tkomdk); text-align: center; font-size: 40px}@media (max-width: 767px) {#brxe-12010f {font-size: 32px; text-align: center}}#brxe-e3ad6b {text-align: center; font-family: "Upwind Sans"; margin-top: 5px}#brxe-e3ad6b a {text-align: center; font-family: "Upwind Sans"; font-size: inherit}#brxe-191f18 {margin-top: 10px}#brxe-fbcc11 {align-items: center; max-width: 580px; row-gap: 12px}#brxe-bc3122 {max-width: 1000px}#brxe-d68eef {position: relative; padding-top: 150px; padding-bottom: 150px}#brxe-52d55c {color: #ffffff; text-align: center}@media (max-width: 767px) {#brxe-52d55c {font-size: 40px; text-align: center}}#brxe-cea52c {color: #ffffff; text-align: center; line-height: 1.6; max-width: 500px; margin-top: 30px}@media (max-width: 767px) {#brxe-cea52c {font-size: 16px}}#brxe-c4d942 {margin-top: 20px}#brxe-33b699 {max-width: 1300px; min-height: 400px; border-radius: 16px; overflow: hidden; background-color: var(--bricks-color-kyjivg); padding-top: 32px; padding-right: 32px; padding-bottom: 32px; padding-left: 32px; justify-content: center; align-items: center; position: relative}#brxe-33b699 > * { position: relative; z-index: 2;}@media (max-width: 767px) {#brxe-33b699 {min-height: 600px}}#brxe-fc9d88 {padding-top: 100px; padding-bottom: 100px}@media (max-width: 767px) {#brxe-9376a4 {display: none}}#brxe-4e977d {max-width: 190px; justify-content: space-between}#brxe-fb6d78 {color: var(--bricks-color-hffyut); font-family: "Upwind Sans"; font-weight: 500; line-height: 1.4; font-size: 14px; letter-spacing: -1%; flex-grow: 0; flex-shrink: 0}@media (max-width: 767px) {#brxe-fb6d78 {margin-bottom: 10px}}#brxe-9c1c97 #gform_2 #input_2_1 { padding: 7px 15px; font-size: 14px !important; font-weight: 400 !important; line-height: 1.4 !important; letter-spacing: -1%; border: 1px solid #E2E2E2; border-radius: 4px !important;}#brxe-9c1c97 .gform_footer #gform_submit_button_2 { padding-top: 7px; padding-bottom: 7px; padding-right: 15px; padding-left: 15px; font-weight: 400 !important; font-size: 14px !important; line-height: 1.4 !important; letter-spacing: -1% !important;}#brxe-9c1c97 input::placeholder,#brxe-9c1c97 textarea::placeholder { text-transform: capitalize !important; color: #75808E !important;}#brxe-9c1c97 form{ gap: 8px !important;}#brxe-a661d8 {column-gap: 16px; flex-direction: row; padding-right: 15px; padding-left: 15px; align-items: center}@media (max-width: 767px) {#brxe-a661d8 {padding-right: 0; padding-left: 0}}#brxe-e26b96 {margin-bottom: 10px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; font-weight: 500; letter-spacing: -1%; color: var(--bricks-color-hffyut)}#brxe-dd9800 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-dd9800:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA;
676 color: #141217 !important;}#brxe-dd9800{ transition: all 0.3s ease;}#brxe-128b3c {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-128b3c:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-128b3c{ transition: all 0.3s ease;}#brxe-b8cc93 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-b8cc93:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-b8cc93{ transition: all 0.3s ease;}#brxe-a985e6 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-a985e6:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-a985e6{ transition: all 0.3s ease;}#brxe-2e920d {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-2e920d:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-2e920d{ transition: all 0.3s ease;}#brxe-77dd75 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-77dd75:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-77dd75{ transition: all 0.3s ease;}#brxe-27a337 {row-gap: 10px}#brxe-a09884 {padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px}@media (max-width: 991px) {#brxe-a09884 {width: 50%}}#brxe-be4d6e {margin-bottom: 10px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; font-weight: 500; letter-spacing: -1%; color: var(--bricks-color-hffyut)}#brxe-37a092 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-37a092:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-37a092{ transition: all 0.3s ease;}#brxe-5c03f8 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-5c03f8:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-5c03f8{ transition: all 0.3s ease; text-wrap: nowrap;}#brxe-5c03f8 .text{ padding-left: 10px;}#brxe-ea43c3 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-ea43c3:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-ea43c3{ transition: all 0.3s ease;}#brxe-d60ccb {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-d60ccb:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA;
676 color: #141217 !important;}#brxe-d60ccb{ transition: all 0.3s ease;}#brxe-48449c {row-gap: 10px}#brxe-d01707 {padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px}@media (max-width: 991px) {#brxe-d01707 {width: 50%}}#brxe-6e8de0 {margin-bottom: 10px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; font-weight: 500; letter-spacing: -1%; color: var(--bricks-color-hffyut)}#brxe-8838a1 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-8838a1:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-8838a1{ transition: all 0.3s ease;}#brxe-ee2fe6 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-ee2fe6:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-ee2fe6{ transition: all 0.3s ease;}#brxe-b62ffd {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-b62ffd:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-b62ffd{ transition: all 0.3s ease;}#brxe-18701d {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-18701d:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-18701d{ transition: all 0.3s ease;}#brxe-031615 {row-gap: 10px}#brxe-9e78f5 {padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px}@media (max-width: 991px) {#brxe-9e78f5 {width: 50%}}#brxe-e39c62 {margin-bottom: 10px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; font-weight: 500; letter-spacing: -1%; color: var(--bricks-color-hffyut)}#brxe-ec64f9 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-ec64f9:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-ec64f9{ transition: all 0.3s ease;}#brxe-85bde4 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-85bde4:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-85bde4{ transition: all 0.3s ease;}#brxe-cca1ad {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-cca1ad:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-cca1ad{ transition: all 0.3s ease;}#brxe-808838 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-808838:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA;
676 color: #141217 !important;}#brxe-808838{ transition: all 0.3s ease;}#brxe-82a790 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-82a790:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-82a790{ transition: all 0.3s ease;}#brxe-mjhnpk {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border: 1px solid hsla(0, 0%, 100%, 0); border-radius: 4px}#brxe-mjhnpk:hover{ border: 1px solid #E2E2E2; border-radius: 4px; background: #FAFAFA; color: #141217 !important;}#brxe-mjhnpk{ transition: all 0.3s ease;}#brxe-3033ad {row-gap: 10px}#brxe-1ef5f7 {padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px}@media (max-width: 991px) {#brxe-1ef5f7 {width: 50%}}#brxe-76fb6f {flex-direction: row; padding-bottom: 118px}@media (max-width: 991px) {#brxe-76fb6f {flex-wrap: wrap; row-gap: 30px}}#brxe-8a6d39 {row-gap: 50px}@media (max-width: 767px) {#brxe-8a6d39 {margin-top: 30px}}#brxe-61b82b {flex-direction: row; column-gap: 10px; align-items: stretch; padding-top: 20px; padding-right: 20px; padding-bottom: 20px; padding-left: 20px}#brxe-a93d17 {font-size: 14px; line-height: 1.4; font-family: "Upwind Sans"; font-weight: 500; color: var(--bricks-color-hffyut)}#brxe-b14d0c {color: var(--bricks-color-tkomdk); font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; line-height: 1.4}#brxe-09d195 {flex-direction: row; column-gap: 4px}@media (max-width: 478px) {#brxe-09d195 {flex-direction: row; justify-content: center; margin-top: 5px}}#brxe-a13d51 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4}#brxe-c9a438 {font-size: 14px; font-family: "Upwind Sans"; font-weight: 500; color: #777779; text-decoration: none; line-height: 1.4}#brxe-6bb1aa {flex-direction: row; justify-content: flex-end; column-gap: 24px}@media (max-width: 478px) {#brxe-6bb1aa {justify-content: center; flex-direction: column; align-items: center; row-gap: 5px}}#brxe-42f2ac {flex-direction: row; justify-content: space-between; padding-top: 30px; padding-bottom: 30px; align-items: center}@media (max-width: 767px) {#brxe-42f2ac {flex-wrap: nowrap}}@media (max-width: 478px) {#brxe-42f2ac {padding-right: 20px; padding-left: 20px; flex-direction: column-reverse; align-items: center; justify-content: center}}#brxe-c0208b {position: absolute; max-width: 100%}#brxe-8fd756 {max-width: 100%; visibility: hidden}#brxe-731131:not(.tag), #brxe-731131 img {aspect-ratio: 1079.97/254.77; object-fit: cover; object-position: 0% 0%}#brxe-731131 {position: absolute; max-width: 100%; opacity: 0}#brxe-731131{ transition: all 0.3s ease;}#brxe-c599ee {position: absolute; top: 0px; left: 0px; width: 14.8%; display: block; aspect-ratio: 160.29/41.9}#brxe-e4352e {background-size: contain; background-repeat: no-repeat; position: relative; height: 100%}@media (max-width: 478px) {#brxe-e4352e {padding-right: 20px; padding-left: 20px}}#brxe-969b62 {max-width: 1080px; margin-bottom: 0; padding-bottom: 0}@media (max-width: 478px) {#brxe-969b62 {max-width: 100%}}#brxe-5daba3 {padding-top: 120px; padding-bottom: 0}@media (max-width: 478px) {#brxe-5daba3 {padding-top: 60px; padding-right: 0; padding-left: 0; margin-right: 0; margin-left: 0}}.brxe-popup-23248 .brx-popup-content {padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; max-width: 490px}.brxe-popup-23248.brx-popup .brx-popup-backdrop {background-color: rgba(255, 255, 255, 0.95)}#brxe-912211 {position: absolute; right: -30px; width: 18px; height: auto; top: -30px; z-index: 2}#brxe-12cc75 {color: #18202d; font-size: 30px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.16}#brxe-6995d2 {margin-top: 10px; color: #75808e; font-size: 16px; font-family: "Upwind Sans"; font-weight: 500; line-height: 1.2}#brxe-6995d2 a { color: #2c72dd;}#brxe-6995d2 a:hover { color: #18202d; text-decoration: none;}#brxe-90cc25 {width: 62px; height: auto}#brxe-335b4f {flex-grow: 0; flex-shrink: 0; width: auto}#brxe-69db6e {flex-direction: row; column-gap: 25px}#brxe-b17418 {font-family: "Upwind Sans"; font-size: 15px; color: #75808e; font-weight: 500; line-height: 1.4; padding-left: 15px; margin-bottom: 5px}#brxe-8906c4 {flex-direction: column; row-gap: 20px}#brxe-4d315b {flex-direction: column; row-gap: 40px}#brxe-2bbe5c {max-width: 490px; margin-right: auto; margin-left: auto; border: 1px solid #d8dfe9; border-radius: 24px; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; position: relative; overflow: visible; width: 100%}.brxe-popup-22846 .brx-popup-content {padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; max-width: 490px}.brxe-popup-22846.brx-popup .brx-popup-backdrop {background-color: rgba(255, 255, 255, 0.95)}#brxe-7f0d01 {position: absolute; right: -30px; width: 18px; height: auto; top: -30px; z-index: 2}#brxe-958358 {color: #18202d; font-size: 30px; font-family: "Upwind Sans"; font-weight: 400; line-height: 1.16}#brxe-8c013e {margin-top: 10px; color: #75808e; font-size: 16px; font-family: "Upwind Sans"; font-weight: 500; line-height: 1.2}#brxe-8c013e a { color: #2c72dd;}#brxe-8c013e a:hover { color: #18202d; text-decoration: none;}#brxe-b5f22d {width: 62px; height: auto}#brxe-4f5770 {flex-grow: 0; flex-shrink: 0; width: auto}#brxe-d4850d {flex-direction: row; column-gap: 25px}#brxe-1894f1 {font-family: "Upwind Sans"; font-size: 15px; color: #75808e; font-weight: 500; line-height: 1.4; padding-left: 15px; margin-bottom: 5px}#brxe-a47934 {font-family: "Upwind Sans"; font-size: 15px; color: #75808e; font-weight: 500; line-height: 1.4; padding-left: 15px; margin-bottom: 5px}#brxe-9e414a {flex-direction: column; row-gap: 20px}#brxe-e7e4aa {flex-direction: column; row-gap: 40px}#brxe-a38848 {max-width: 490px; margin-right: auto; margin-left: auto; border: 1px solid #d8dfe9; border-radius: 24px; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; position: relative; overflow: visible; width: 100%}.brxe-section { overflow: hidden; } #brx-header { top: 0 !important; } #brx-header .brxe-section { overflow: visible; } .inline-underline { position: relative; } .inline-underline::before { content: ''; display: block; position: absolute; height: 2px; width: 100%; left: 0; bottom: 0; background: linear-gradient(94.33deg, #F2583C -1.2%, #9214C4 52.79%, #1E71ED 98.47%); } .brxe-popup-23484 > .brxe-container { overflow: visible !important; } .wp-block-video video { height: auto !important; } .gradient-text { background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .gradient-text-dark { background: linear-gradient(95deg, #FF5950 0%, #F863F5 50%, #57C1FE 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .bricks-image-caption { display: none !important; } .accordion-item { position: relative; } .accordion-item::before { content: ''; display: block; position: absolute; height: 1px; width: 100%; left: 0; bottom: 0; background: #94A3B8; } .brx-open.accordion-item::before { background: linear-gradient(94.33deg, #F2583C -1.2%, #9214C4 52.79%, #1E71ED 98.47%); }  :root { --brand-gradient: linear-gradient(90deg, #F2583C 0%, #9214C4 52.79%, #1E71ED 98.47%); --brand-gradient-dark: linear-gradient(90deg, #FF5950 0%, #F863F5 52.79%, #57C1FE 98.47%); }  .brxe-button, .bricks-button, #gform_submit_button_2 { position: relative; border: 1px solid transparent; background: linear-gradient(#fff, #fff) padding-box, var(--brand-gradient) border-box; color: #18202D !important; font-size: 16px !important; font-family: "Upwind Sans" !important; font-weight: 400 !important; line-height: 1.4 !important; letter-spacing: -0.16px !important; text-decoration: none !important; cursor: pointer; overflow: hidden; transition: background 0.2s ease; } .brxe-button.dark-button, .bricks-button.dark-button { background: linear-gradient(#18202D, #18202D) padding-box, var(--brand-gradient-dark) border-box; color: #ffffff !important; }  input.brxe-button, input.bricks-button, input#gform_submit_button_2 { appearance: none; -webkit-appearance: none; }  .brxe-button[data-text]:not([data-text=""])::after, .bricks-button[data-text]:not([data-text=""])::after { content: attr(data-text); position: absolute; inset: 0; padding-top: 7px; padding-bottom: 7px; padding-left: 0; padding-right: 0; font: inherit; line-height: inherit; letter-spacing: inherit; text-align: inherit; pointer-events: none; background: var(--brand-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; opacity: 0; transition: opacity 0.2s ease; } .brxe-button > .hover-content { display: flex; position: absolute; align-items: center; column-gap: 5px; justify-content: center; inset: 0; padding-top: 7px; padding-bottom: 7px; padding-left: 0; padding-right: 0; font: inherit; line-height: inherit; letter-spacing: inherit; text-align: inherit; pointer-events: none; background: var(--brand-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; opacity: 0; transition: opacity 0.2s ease; } .brxe-button > .hover-content svg { color: #F2583C; } .brxe-button.dark-button::after, .bricks-button.dark-button::after { background: var(--brand-gradient-dark); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }  .brxe-button:hover, .bricks-button:hover, .bricks-button.brx-option-active, #gform_submit_button_2:hover { background: linear-gradient(#FCFAFF, #FCFAFF) padding-box, linear-gradient( 112deg, #F2583C, #9214C4, #1E71ED ) border-box; color: transparent; } .brxe-button.dark-button:hover, .bricks-button.dark-button:hover { background: linear-gradient(#18202D, #18202D) padding-box, linear-gradient( 112deg, #FF5950, #F863F5, #57C1FE ) border-box; } .brxe-button[data-text]:not([data-text=""]):hover::after, .bricks-button[data-text]:not([data-text=""]):hover::after, .bricks-button.brx-option-active::after { opacity: 1; } .brxe-button:hover> .hover-content, .bricks-button:hover> .hover-content { opacity: 1; } .horizontal-scrolling-images { display: flex; } .horizontal-scrolling-images .logo-scroll-wrapper { gap: inherit; } .horizontal-scrolling-images.is-static .logo-scroll-wrapper { justify-content: center; }  .horizontal-scrolling-elements .element-scroll-wrapper { gap: inherit; }  .horizontal-scrolling-elements.is-static .element-scroll-wrapper { justify-content: center; }
677/*# sourceURL=bricks-frontend-inline-inline-css */
678</style>
679<link rel='stylesheet' id='adobe-fonts-project-id-aud8qux-css' href='https://use.typekit.net/aud8qux.css?ver=7.0.5' media='all' />
680<link rel='stylesheet' id='elementor-gf-dmmono-css' href='https://fonts.googleapis.com/css?family=DM+Mono:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
681<script id="react-js" src="https://www.upwind.io/wp-includes/js/dist/vendor/react.min.js?ver=18.3.1.1"></script>
vendor: 1 bytes, line 681
681
682<script id="react-jsx-runtime-js" src="https://www.upwind.io/wp-includes/js/dist/vendor/react-jsx-runtime.min.js?ver=18.3.1"></script>
vendor: 1 bytes, line 682
682
683<script id="wp-autop-js" src="https://www.upwind.io/wp-includes/js/dist/autop.min.js?ver=9d0d0901b46f0a9027c9"></script>
vendor: 1 bytes, line 683
683
684<script id="wp-blob-js" src="https://www.upwind.io/wp-includes/js/dist/blob.min.js?ver=198af75fe06d924090d8"></script>
vendor: 1 bytes, line 684
684
685<script id="wp-block-serialization-default-parser-js" src="https://www.upwind.io/wp-includes/js/dist/block-serialization-default-parser.min.js?ver=bff55bd3f1ce9df0c99c"></script>
vendor: 1 bytes, line 685
685
686<script id="wp-hooks-js" src="https://www.upwind.io/wp-includes/js/dist/hooks.min.js?ver=7496969728ca0f95732d"></script>
vendor: 1 bytes, line 686
686
687<script id="wp-deprecated-js" src="https://www.upwind.io/wp-includes/js/dist/deprecated.min.js?ver=990e85f234fee8f7d446"></script>
vendor: 1 bytes, line 687
687
688<script id="wp-dom-js" src="https://www.upwind.io/wp-includes/js/dist/dom.min.js?ver=66a6cf58e0c4cd128af0"></script>
vendor: 1 bytes, line 688
688
689<script id="react-dom-js" src="https://www.upwind.io/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1"></script>
vendor: 1 bytes, line 689
689
690<script id="wp-escape-html-js" src="https://www.upwind.io/wp-includes/js/dist/escape-html.min.js?ver=3f093e5cca67aa0f8b56"></script>
vendor: 1 bytes, line 690
690
691<script id="wp-element-js" src="https://www.upwind.io/wp-includes/js/dist/element.min.js?ver=15ba804677f72a8db97b"></script>
vendor: 1 bytes, line 691
691
692<script id="wp-is-shallow-equal-js" src="https://www.upwind.io/wp-includes/js/dist/is-shallow-equal.min.js?ver=5d84b9f3cb50d2ce7d04"></script>
vendor: 1 bytes, line 692
692
693<script id="wp-i18n-js" src="https://www.upwind.io/wp-includes/js/dist/i18n.min.js?ver=781d11515ad3d91786ec"></script>
vendor: 1 bytes, line 693
693
694<script id="wp-i18n-js-after">
695wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
696//# sourceURL=wp-i18n-js-after
697</script>
vendor: 1 bytes, line 697
697
698<script id="wp-keycodes-js" src="https://www.upwind.io/wp-includes/js/dist/keycodes.min.js?ver=aa1a141e3468afe7f852"></script>
vendor: 1 bytes, line 698
698
699<script id="wp-priority-queue-js" src="https://www.upwind.io/wp-includes/js/dist/priority-queue.min.js?ver=1f0e89e247bc0bd3f9b9"></script>
vendor: 1 bytes, line 699
699
700<script id="wp-undo-manager-js" src="https://www.upwind.io/wp-includes/js/dist/undo-manager.min.js?ver=27bb0ae036a2c9d4a1b5"></script>
vendor: 1 bytes, line 700
700
701<script id="wp-compose-js" src="https://www.upwind.io/wp-includes/js/dist/compose.min.js?ver=fbe37f6b46750554f947"></script>
vendor: 1 bytes, line 701
701
702<script id="wp-private-apis-js" src="https://www.upwind.io/wp-includes/js/dist/private-apis.min.js?ver=835912f0086b9e59aed4"></script>
vendor: 1 bytes, line 702
702
703<script id="wp-redux-routine-js" src="https://www.upwind.io/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605"></script>
vendor: 1 bytes, line 703
703
704<script id="wp-data-js" src="https://www.upwind.io/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab"></script>
vendor: 1 bytes, line 704
704
705<script id="wp-data-js-after">
706( function() {
707	var userId = 0;
708	var storageKey = "WP_DATA_USER_" + userId;
709	wp.data
710		.use( wp.data.plugins.persistence, { storageKey: storageKey } );
711} )();
712//# sourceURL=wp-data-js-after
713</script>
vendor: 1 bytes, line 713
713
714<script id="wp-html-entities-js" src="https://www.upwind.io/wp-includes/js/dist/html-entities.min.js?ver=8c6fa5b869dfeadc4af2"></script>
vendor: 1 bytes, line 714
714
715<script id="wp-dom-ready-js" src="https://www.upwind.io/wp-includes/js/dist/dom-ready.min.js?ver=a06281ae5cf5500e9317"></script>
vendor: 1 bytes, line 715
715
716<script id="wp-a11y-js" src="https://www.upwind.io/wp-includes/js/dist/a11y.min.js?ver=af934e5259bc51b8718e"></script>
vendor: 1 bytes, line 716
716
717<script id="wp-rich-text-js" src="https://www.upwind.io/wp-includes/js/dist/rich-text.min.js?ver=16449e6108f48327f368"></script>
vendor: 1 bytes, line 717
717
718<script id="wp-shortcode-js" src="https://www.upwind.io/wp-includes/js/dist/shortcode.min.js?ver=11742fe18cc215d3d5ab"></script>
vendor: 1 bytes, line 718
718
719<script id="wp-warning-js" src="https://www.upwind.io/wp-includes/js/dist/warning.min.js?ver=36fdbdc984d93aee8a97"></script>
vendor: 1 bytes, line 719
719
720<script id="wp-blocks-js" src="https://www.upwind.io/wp-includes/js/dist/blocks.min.js?ver=ef38e42500165bfda301"></script>
vendor: 1 bytes, line 720
720
721<script id="jquery-core-js" src="https://www.upwind.io/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 721
721
722<script id="jquery-migrate-js" src="https://www.upwind.io/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 722
722
723<script id="gform_json-js" defer='defer' src="https://www.upwind.io/wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=2.9.25"></script>
vendor: 1 bytes, line 723
723
724<script id="gform_gravityforms-js-extra">
725var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https://www.upwind.io/wp-content/plugins/gravityforms","number_formats":[],"spinnerUrl":"https://www.upwind.io/wp-content/plugins/gravityforms/images/spinner.svg","version_hash":"7dd2df01a27a3c2bd2ae02705b85e76d","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
726var gform_i18n = {"datepicker":{"days":{"monday":"Mo","tuesday":"Tu","wednesday":"We","thursday":"Th","friday":"Fr","saturday":"Sa","sunday":"Su"},"months":{"january":"January","february":"February","march":"March","april":"April","may":"May","june":"June","july":"July","august":"August","september":"September","october":"October","november":"November","december":"December"},"firstDay":1,"iconText":"Select date"}};
727var gf_legacy_multi = {"2":""};
728var gform_gravityforms = {"strings":{"invalid_file_extension":"This type of file is not allowed. Must be one of the following:","delete_file":"Delete this file","in_progress":"in progress","file_exceeds_limit":"File exceeds size limit","illegal_extension":"This type of file is not allowed.","max_reached":"Maximum number of files reached","unknown_error":"There was a problem while saving the file on the server","currently_uploading":"Please wait for the uploading to complete","cancel":"Cancel","cancel_upload":"Cancel this upload","cancelled":"Cancelled","error":"Error","message":"Message"},"vars":{"images_url":"https://www.upwind.io/wp-content/plugins/gravityforms/images"}};
729//# sourceURL=gform_gravityforms-js-extra
730</script>
vendor: 1 bytes, line 730
730
731<script id="gform_gravityforms-js-before">
732
733//# sourceURL=gform_gravityforms-js-before
734</script>
vendor: 1 bytes, line 734
734
735<script id="gform_gravityforms-js" defer='defer' src="https://www.upwind.io/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=2.9.25"></script>
vendor: 1 bytes, line 735
735
736<script id="gform_gravityforms_utils-js" defer='defer' src="https://www.upwind.io/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=48a3755090e76a154853db28fc254681"></script>
vendor: 1 bytes, line 736
736
737<script id="upwind-utm-tracking-js" src="https://www.upwind.io/wp-content/plugins/upwind/utm-tracking.js?ver=1.0.0"></script>
737
738<link rel="https://api.w.org/" href="https://www.upwind.io/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.upwind.io/wp-json/wp/v2/pages/22323" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.upwind.io/xmlrpc.php?rsd" />
739<link rel='shortlink' href='https://www.upwind.io/' />
740<meta name="generator" content="Site Kit by Google 1.179.0" />			<!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.3.37-->
741			
741<script class="hsq-set-content-id" data-content-id="standard-page">
742				var _hsq = _hsq || [];
743				_hsq.push(["setContentType", "standard-page"]);
744			</script>
744
745			<!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin -->
746			<meta name='probely-verification' content='6acb6616-28a6-4591-978f-0b3fee023c76' /><meta name="generator" content="Elementor 4.1.1; features: additional_custom_breakpoints; settings: css_print_method-internal, google_font-enabled, font_display-swap">
747<script>
748    var hsscript = document.createElement("script");
749    hsscript.id = "wphs";
750    hsscript.src = "https://cdn.jsdelivr.net/npm/hockeystack@latest/hockeystack.min.js";
751    hsscript.async = 1;
752    hsscript.dataset.apikey = "0e7ad3b7c10b4504efe69a582de645";
753    hsscript.dataset.cookieless = 1;
754    hsscript.dataset.autoIdentify = 1;
755    document.getElementsByTagName('head')[0].append(hsscript);
756</script>
756
757			<style>
758				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
759				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
760					background-image: none !important;
761				}
762				@media screen and (max-height: 1024px) {
763					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
764					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
765						background-image: none !important;
766					}
767				}
768				@media screen and (max-height: 640px) {
769					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
770					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
771						background-image: none !important;
772					}
773				}
774			</style>
775			<style class="wpcode-css-snippet">.brxe-section {
776  overflow: hidden;
777}
778#brx-header {
779  top: 0 !important;
780}
781#brx-header .brxe-section {
782  overflow: visible;
783}
784.inline-underline {
785  position: relative;
786}
787.inline-underline::before {
788  content: '';
789  display: block;
790  position: absolute;
791  height: 2px;
792  width: 100%;
793  left: 0;
794  bottom: 0;
795  background: linear-gradient(94.33deg, #F2583C -1.2%, #9214C4 52.79%, #1E71ED 98.47%);
796}
797
798.brxe-popup-23484 > .brxe-container {
799  overflow: visible !important;
800}
801
802.wp-block-video video {
803  height: auto !important;
804}
805
806.gradient-text {
807background: linear-gradient(95deg, #F2583C 0%, #9214C4 50%, #1E71ED 100%);
808  background-clip: text;
809  -webkit-background-clip: text;
810  -webkit-text-fill-color: transparent;
811}
812.gradient-text-dark {
813  background: linear-gradient(95deg, #FF5950 0%, #F863F5 50%, #57C1FE 100%);
814  background-clip: text;
815  -webkit-background-clip: text;
816  -webkit-text-fill-color: transparent;
817}
818.bricks-image-caption {
819  display: none !important;
820}
821.accordion-item {
822  position: relative;
823}
824.accordion-item::before {
825  content: '';
826  display: block;
827  position: absolute;
828  height: 1px;
829  width: 100%;
830  left: 0;
831  bottom: 0;
832  background: #94A3B8;
833}
834.brx-open.accordion-item::before {
835  background: linear-gradient(94.33deg, #F2583C -1.2%, #9214C4 52.79%, #1E71ED 98.47%);
836}
837
838
839
840
841/* Shared brand gradient */
842:root {
843  --brand-gradient: linear-gradient(90deg, #F2583C 0%, #9214C4 52.79%, #1E71ED 98.47%);
844  --brand-gradient-dark: linear-gradient(90deg, #FF5950 0%, #F863F5 52.79%, #57C1FE 98.47%);
845}
846
847/* Base button */
848.brxe-button,
849.bricks-button,
850#gform_submit_button_2 {
851  position: relative;
852  border: 1px solid transparent;
853  background:
854    linear-gradient(#fff, #fff) padding-box,
855    var(--brand-gradient) border-box;
856  color: #18202D !important;
857  font-size: 16px !important;
858  font-family: "Upwind Sans" !important;
859  font-weight: 400 !important;
860  line-height: 1.4 !important;
861  letter-spacing: -0.16px !important;
862  text-decoration: none !important;
863  cursor: pointer;
864  overflow: hidden;
865  transition: background 0.2s ease;
866}
867
868.brxe-button.dark-button,
869.bricks-button.dark-button {
870  background:
871    linear-gradient(#18202D, #18202D) padding-box,
872    var(--brand-gradient-dark) border-box;
873  color: #ffffff !important;
874}
875
876/* Remove native appearance for inputs */
877input.brxe-button,
878input.bricks-button,
879input#gform_submit_button_2 {
880  appearance: none;
881  -webkit-appearance: none;
882}
883
884/* Gradient text layer (hidden by default) */
885.brxe-button[data-text]:not([data-text=""])::after,
886.bricks-button[data-text]:not([data-text=""])::after {
887  content: attr(data-text);
888  position: absolute;
889  inset: 0;
890  padding-top: 7px;
891  padding-bottom: 7px;
892  padding-left: 0;
893  padding-right: 0;
894  font: inherit;
895  line-height: inherit;
896  letter-spacing: inherit;
897  text-align: inherit;
898  pointer-events: none;
899  background: var(--brand-gradient);
900  -webkit-background-clip: text;
901  background-clip: text;
902  -webkit-text-fill-color: transparent;
903  opacity: 0;
904  transition: opacity 0.2s ease;
905}
906.brxe-button > .hover-content {
907  display: flex;
908  position: absolute;
909  align-items: center;
910  column-gap: 5px;
911  justify-content: center;
912  inset: 0;
913  padding-top: 7px;
914  padding-bottom: 7px;
915  padding-left: 0;
916  padding-right: 0;
917  font: inherit;
918  line-height: inherit;
919  letter-spacing: inherit;
920  text-align: inherit;
921  pointer-events: none;
922  background: var(--brand-gradient);
923  -webkit-background-clip: text;
924  background-clip: text;
925  -webkit-text-fill-color: transparent;
926  opacity: 0;
927  transition: opacity 0.2s ease;
928}
929.brxe-button > .hover-content svg {
930  color: #F2583C;
931}
932
933.brxe-button.dark-button::after,
934.bricks-button.dark-button::after {
935  background: var(--brand-gradient-dark);
936  -webkit-background-clip: text;
937  background-clip: text;
938  -webkit-text-fill-color: transparent;
939}
940
941/* Hover state */
942.brxe-button:hover,
943.bricks-button:hover,
944.bricks-button.brx-option-active,
945#gform_submit_button_2:hover {
946  background:
947    linear-gradient(#FCFAFF, #FCFAFF) padding-box,
948    linear-gradient(
949      112deg,
950      #F2583C,
951      #9214C4,
952      #1E71ED
953    ) border-box;
954
955  color: transparent;
956}
957
958.brxe-button.dark-button:hover,
959.bricks-button.dark-button:hover {
960  background:
961    linear-gradient(#18202D, #18202D) padding-box,
962    linear-gradient(
963      112deg,
964      #FF5950,
965      #F863F5,
966      #57C1FE
967    ) border-box;
968}
969
970.brxe-button[data-text]:not([data-text=""]):hover::after,
971.bricks-button[data-text]:not([data-text=""]):hover::after,
972.bricks-button.brx-option-active::after {
973  opacity: 1;
974}
975
976.brxe-button:hover> .hover-content,
977.bricks-button:hover> .hover-content {
978  opacity: 1;
979}
980
981/* -----------------------------------------
982   Horizontal Scrolling Images
983----------------------------------------- */
984.horizontal-scrolling-images {
985  display: flex;
986}
987.horizontal-scrolling-images .logo-scroll-wrapper {
988  gap: inherit;
989}
990.horizontal-scrolling-images.is-static .logo-scroll-wrapper {
991  justify-content: center;
992}
993.horizontal-scrolling-images.is-scrolling::before {
994  content: '';
995  display: block;
996  position: absolute;
997  max-width: 290px;
998  height: 100%;
999  width: 20%;
1000  top: 0;
1001  left: 0;
1002  background: linear-gradient(90deg,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
1003  z-index: 2;
1004}
1005.horizontal-scrolling-images.is-scrolling::after {
1006  content: '';
1007  display: block;
1008  position: absolute;
1009  max-width: 290px;
1010  height: 100%;
1011  width: 20%;
1012  top: 0;
1013  right: 0;
1014  background: linear-gradient(90deg,rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
1015  z-index: 2;
1016}
1017
1018/* -----------------------------------------
1019   Horizontal Scrolling Elements (Testimonials)
1020----------------------------------------- */
1021
1022/* Container setup: Enable scroll, hide scrollbar, set grab cursor */
1023.horizontal-scrolling-elements {
1024  overflow-x: auto;
1025  cursor: grab;
1026  scrollbar-width: none; /* Firefox */
1027  -ms-overflow-style: none; /* IE/Edge */
1028  user-select: none;
1029}
1030
1031/* Hide scrollbar in Webkit (Chrome, Safari) */
1032.horizontal-scrolling-elements::-webkit-scrollbar {
1033  display: none; 
1034}
1035
1036/* Scroll wrapper inherits gap from container */
1037.horizontal-scrolling-elements .element-scroll-wrapper {
1038  gap: inherit;
1039}
1040
1041/* Static state - elements centered */
1042.horizontal-scrolling-elements.is-static .element-scroll-wrapper {
1043  justify-content: center;
1044}
1045
1046/* Active dragging states applied via JS */
1047.horizontal-scrolling-elements.is-dragging {
1048  cursor: grabbing;
1049  user-select: none;
1050}
1051
1052/* Prevent accidental link clicks and text highlighting while dragging */
1053.horizontal-scrolling-elements.is-dragging * {
1054  user-select: none;
1055  pointer-events: none; 
1056}
1057
1058.gradient-section {
1059  position: relative;
1060  background-color: #1E71ED;
1061  overflow: hidden;
1062  cursor: default;
1063}
1064
1065.gradient-section .content {
1066  position: relative;
1067  z-index: 1;
1068  display: flex;
1069  flex-direction: column;
1070  align-items: center;
1071  justify-content: center;
1072  height: 100%;
1073}
1074
1075.dot-bg{
1076  --dotsize: 1.3px;
1077  --dotcolor: #dcdcdc;
1078  
1079    background-image: radial-gradient(var(--dotcolor) var(--dotsize), transparent var(--dotsize)), radial-gradient(var(--dotcolor) var(--dotsize), transparent var(--dotsize));
1080  background-size: 20px 20px;
1081  background-position: 0 0, 20px 20px;
1082}
1083
1084.dot-bg-small{
1085  --dotsize: 1px;
1086  --dotcolor: #d9d9d9;
1087  
1088    background-image: radial-gradient(var(--dotcolor) var(--dotsize), transparent var(--dotsize)), radial-gradient(var(--dotcolor) var(--dotsize), transparent var(--dotsize));
1089  background-size: 16px 16px;
1090  background-position: 0 0, 8px 8px;
1091
1092  z-index: -10;
1093}
1094
1095.text-fancy-italic {
1096  font-family: "Juana Sans";
1097  font-style: italic;
1098  font-weight: 300;
1099}
1100
1101video {
1102  -webkit-user-select: none;
1103  user-select: none;
1104}
1105
1106:where(.brxe-video) {
1107	aspect-ratio: 16/9;
1108}
1109
1110:where(.brxe-video) video {
1111	object-fit: contain;
1112}
1113
1114.horizontal-scrolling-block .brxe-text-basic {
1115  transition: color 0.3s ease;
1116}
1117
1118@media (hover: hover) and (pointer: fine) {
1119  .horizontal-scrolling-block:hover .brxe-text-basic { color: #fff !important; }
1120  .horizontal-scrolling-block:hover .horizontal-scrolling-block-inner-overlay { opacity: 0; }
1121}
1122
1123.horizontal-scrolling-block-inner {
1124  position: relative;
1125  isolation: isolate;
1126}
1127
1128.horizontal-scrolling-block-inner-overlay {
1129  position: absolute;
1130  inset: 0;
1131  z-index: 4;
1132  -webkit-transform: translateZ(0);
1133  transform: translateZ(0);
1134  will-change: opacity;
1135}
1136.horizontal-scrolling-block-inner > canvas {
1137  position: relative;
1138  z-index: 1;
1139  -webkit-transform: translateZ(0);
1140  transform: translateZ(0);
1141}
1142.horizontal-scrolling-block .content-layer {
1143  position: relative;
1144  z-index: 5;
1145  -webkit-transform: translateZ(0);
1146  transform: translateZ(0);
1147}</style><link rel="icon" href="https://www.upwind.io/wp-content/uploads/2025/11/cropped-Upwind-Favicon-Square-32x32.png" sizes="32x32" />
1148<link rel="icon" href="https://www.upwind.io/wp-content/uploads/2025/11/cropped-Upwind-Favicon-Square-192x192.png" sizes="192x192" />
1149<link rel="apple-touch-icon" href="https://www.upwind.io/wp-content/uploads/2025/11/cropped-Upwind-Favicon-Square-180x180.png" />
1150<meta name="msapplication-TileImage" content="https://www.upwind.io/wp-content/uploads/2025/11/cropped-Upwind-Favicon-Square-270x270.png" />
1151<style id="wp-custom-css">
1152#brx-content.wordpress {
1153	max-width: none !important;
1154	width: 100% !important;
1155}
1156
1157/* Hide CookieYes branding */
1158[data-cky-tag="detail-powered-by"] {
1159    display: none !important;
1160}
1161.cky-btn-revisit-wrapper {
1162	display: none !important;
1163}
1164
1165/* Style Hubspot Forms */
1166.hs-form-html form .hsfc-Step .hsfc-Step__Content {
1167	padding: 0;
1168}
1169
1170.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-Row {
1171	margin-bottom: 16px;
1172}
1173
1174.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-FieldLabel {
1175	display: none !important;
1176}
1177
1178.hs-form-html .hsfc-TextField .hsfc-TextInput,
1179.hs-form-html .hsfc-EmailField .hsfc-TextInput,
1180.hs-form-html .hsfc-PhoneField .hsfc-TextInput {
1181	min-height: 30px;
1182	margin-bottom: 0 !important;
1183	padding: 5px 16px;
1184	background-color: var(--White);
1185	border: 1px solid var(--Gray-04);
1186	border-radius: 4px !important;
1187	outline: none !important;
1188	color: var(--Gray-01);
1189	font-family: var(--Font-Inter);
1190	font-weight: 400;
1191	font-size: 14px;
1192	line-height: 1.4;
1193	letter-spacing: -0.42px;
1194}
1195
1196.hs-form-html form .hsfc-ErrorAlert {
1197	margin-top: 8px;
1198	color: #bd94f5 !important;
1199	font-family: var(--Font-Inter);
1200	font-weight: 400;
1201	font-size: 14px;
1202	line-height: 1.4;
1203	letter-spacing: -0.42px;
1204}
1205
1206.hs-form-html .hsfc-PhoneField .hsfc-PhoneInput {
1207	border: 1px solid var(--Gray-04);
1208	border-radius: 4px !important;
1209}
1210.hs-form-html .hsfc-PhoneField .hsfc-PhoneInput .hsfc-PhoneInput__FlagAndCaret {
1211	min-height: 30px;
1212	padding: 2px 16px;
1213	background-color: var(--White);
1214	border: none;
1215	border-right: 1px solid var(--Gray-04) !important;
1216}
1217
1218.hs-form-html .hsfc-PhoneField .hsfc-TextInput {
1219	border: none;
1220	border-radius: 0px !important;
1221}
1222
1223.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-NavigationRow {
1224	margin-top: 0 !important;
1225}
1226
1227.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-NavigationRow__Buttons {
1228	justify-content: flex-start !important;
1229}
1230
1231.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-NavigationRow button[type="submit"] {
1232	position: relative;
1233	min-height: 0 !important;
1234	min-width: 0 !important;
1235	margin: 0 !important;
1236	outline: none !important;
1237	border: 1px solid var(--e-global-color-6b4ffb0) !important;
1238	border-radius: 4px;
1239	background-color: #FFFFFF !important;
1240	padding: 4px 24px 4px 24px;
1241	color: var(--e-global-color-003bef6) !important;
1242	font-family: var(--Font-Inter);
1243	font-size: 15px;
1244	font-style: normal;
1245	font-weight: 500;
1246	line-height: 1.4;
1247	letter-spacing: -0.03em;
1248	text-decoration: none;
1249	transition: 300ms ease-in-out;
1250}
1251.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-NavigationRow button[type="submit"]::before {
1252	content: '';
1253	pointer-events: none;
1254	transition: .3s all 
1255		ease;
1256	width: 100%;
1257	height: 3px;
1258	display: block;
1259	position: absolute;
1260	z-index: 1;
1261	top: 0;
1262	left: 0;
1263	background: var(--Gradients-Gradient-1, linear-gradient(94deg, #F2583C -1.2%, #9214C4 52.79%, #1E71ED 98.47%));
1264	border-top-left-radius: 4px;
1265	border-top-right-radius: 4px;
1266}
1267.hs-form-html form .hsfc-Step .hsfc-Step__Content .hsfc-NavigationRow button[type="submit"]:hover {
1268	background-color: #F2F7FC !important;
1269}
1270
1271.comeet-outer-wrapper {
1272	
1273}
1274.comeet-position-info {
1275	
1276}
1277.comeet-outer-wrapper .comeet-position-info h4 {
1278	margin-bottom: 16px;
1279	color: #141217;
1280	font-family: "Aeonik Pro";
1281	font-size: 24px !important;
1282	font-weight: 600;
1283	line-height: 1.5;
1284}
1285.comeet-outer-wrapper .comeet-position-info strong {
1286	display: block;
1287	margin-top: 16px;
1288	margin-bottom: 4px !important;
1289	color: #141217;
1290	font-size: 18px !important;
1291	font-family: "aktiv-grotesk";
1292	font-weight: 600 !important;
1293	line-height: 1.5;
1294}
1295.comeet-outer-wrapper .comeet-position-info ul {
1296	padding-top: 0 !important;
1297}
1298.comeet-outer-wrapper .comeet-position-info p,
1299.comeet-outer-wrapper .comeet-position-info li {
1300	color: #141217;
1301	font-family: "aktiv-grotesk";
1302	font-size: 18px;
1303	font-weight: 400;
1304	line-height: 1.6;
1305}
1306.comeet-outer-wrapper .comeet-apply h4 {
1307	margin-bottom: 16px;
1308	color: #141217;
1309	font-family: "Aeonik Pro";
1310	font-size: 24px !important;
1311	font-weight: 600;
1312	line-height: 1.5;
1313}
1314
1315.wp-block-video, .wp-block-video video {
1316	width: 100%;
1317}
1318
1319.upwind-single .wp-block-pullquote blockquote {
1320	border-left: none !important;
1321	font-family: inherit !important;
1322	font-size: inherit !important;
1323	padding: 0px !important;
1324}
1325</style>
1326
1327<meta property="og:url" content="https://www.upwind.io" />
1328<meta property="og:site_name" content="Upwind | Cloud &amp; AI Security for the Realtime Era" />
1329<meta property="og:title" content="Homepage" />
1330<meta property="og:type" content="website" />
1331</head>
1332
1333<body class="home wp-singular page-template-default page page-id-22323 wp-theme-bricks brx-body bricks-is-frontend wp-embed-responsive elementor-default elementor-kit-4163">	<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 1333-1334
1333
1334	<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1334GTM-NQ4VVFZS
vendor: 85 bytes, lines 1334-1336
1334"
1335	height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1336	
1336<!-- End Google Tag Manager (noscript) -->
1337			<a class="skip-link" href="#brx-content">Skip to main content</a>
1338
1339					<a class="skip-link" href="#brx-footer">Skip to footer</a>
1340			<header id="brx-header" class="brx-sticky on-scroll"><section id="brxe-47443e" class="brxe-section"><div id="brxe-fcd69c" class="brxe-container"><a href="/" aria-current="page" class="bricks-link-wrapper"><svg class="brxe-svg" id="brxe-cce152" xmlns="http://www.w3.org/2000/svg" width="80" height="24" viewBox="0 0 80 24" fill="none"><path d="M11.838 0H0V3.10389H11.838V0Z" fill="url(#paint0_linear_10762_162028)"></path><path d="M17.3445 7.29371C18.0085 6.23377 19.4113 5.17279 21.1711 5.17279C24.2589 5.17279 26.733 7.99167 26.733 11.7935C26.733 15.5954 24.2579 18.4142 21.1711 18.4142C19.4113 18.4142 18.0074 17.3543 17.3445 16.2423V24H14.0792V5.37875H17.3445V7.29267V7.29371ZM23.4677 11.7935C23.4677 9.87959 22.0906 8.27668 20.4056 8.27668C18.7206 8.27668 17.3435 9.87959 17.3435 11.7935C17.3435 13.7074 18.7206 15.3104 20.4056 15.3104C22.0906 15.3104 23.4677 13.7074 23.4677 11.7935Z" fill="#18202D"></path><path d="M46.8362 5.37875L42.5498 18.2062H39.4877L36.834 9.56858L34.1803 18.2062H31.1182L26.8318 5.37875H30.3014L32.7508 13.3954L35.2516 5.37875H38.4154L40.9162 13.3954L43.3656 5.37875H46.8352H46.8362Z" fill="#18202D"></path><path d="M48.0898 0H51.3551V3.10389H48.0898V0ZM48.0898 5.37875H51.3551V18.2062H48.0898V5.37875Z" fill="#18202D"></path><path d="M65.6005 10.7585V18.2072H62.3352V10.9655C62.3352 8.89663 61.1367 8.27564 59.9371 8.27564C58.4573 8.27564 57.0278 9.25861 57.0278 11.3795V18.2072H53.7625V5.37875H57.0278V7.29267C57.4363 6.5167 58.7118 5.17175 60.7016 5.17175C63.4825 5.17175 65.6005 6.87868 65.6005 10.7575V10.7585Z" fill="#18202D"></path><path d="M79.8367 0V18.2062H76.5714V16.2413C75.9075 17.3533 74.5047 18.4132 72.7448 18.4132C69.657 18.4132 67.1829 15.5943 67.1829 11.7925C67.1829 7.99064 69.6581 5.17176 72.7448 5.17176C74.5047 5.17176 75.9085 6.2317 76.5714 7.29268V0H79.8367ZM76.5714 11.7925C76.5714 9.87856 75.1943 8.27565 73.5093 8.27565C71.8243 8.27565 70.4472 9.87856 70.4472 11.7925C70.4472 13.7064 71.8243 15.3093 73.5093 15.3093C75.1943 15.3093 76.5714 13.7064 76.5714 11.7925Z" fill="#18202D"></path><path d="M5.919 18.4132C2.65575 18.4132 0 15.7223 0 12.4135V5.37875H3.2653V12.6205C3.2653 14.1038 4.45567 15.3104 5.919 15.3104C7.38233 15.3104 8.5727 14.1038 8.5727 12.6205V5.37875H11.838V12.4135C11.838 15.7223 9.18225 18.4132 5.919 18.4132Z" fill="#18202D"></path><defs><linearGradient id="paint0_linear_10762_162028" x1="-0.379575" y1="0.785419" x2="11.336" y2="4.16793" gradientUnits="userSpaceOnUse"><stop stop-color="#F2583C"></stop><stop offset="0.541667" stop-color="#9214C4"></stop><stop offset="1" stop-color="#1E71ED"></stop></linearGradient></defs></svg></a><div id="brxe-1c601d" class="brxe-block"><nav id="brxe-c72527" data-script-id="c72527" class="brxe-nav-nested" aria-label="Menu" data-toggle="mobile_landscape"><ul id="brxe-2717cf" class="brxe-block brx-nav-nested-items"><li id="brxe-a85a9f" data-script-id="a85a9f" class="brxe-dropdown" data-toggle="click"><div class="brx-submenu-toggle"><span>Platform</span><button aria-expanded="false" aria-label="Toggle dropdown"><svg class="" xmlns="http://www.w3.org/2000/svg" width="10" height="15" fill="currentColor" viewBox="0 0 10 15"><g clip-path="url(#a)"><path d="M4.99 15a.8.8 0 0 1-.299-.056.7.7 0 0 1-.25-.166l-4.2-4.2a.75.75 0 0 1-.24-.572.82.82 0 0 1 .254-.565.775.775 0 0 1 1.13 0l3.61 3.632 3.632-3.632a.74.74 0 0 1 .565-.233.82.82 0 0 1 .564.255.775.775 0 0 1-.007 1.136l-4.2 4.18A.8.8 0 0 1 4.99 15m0-15a.8.8 0 0 0-.299.055.7.7 0 0 0-.25.167l-4.2 4.2a.75.75 0 0 0-.24.572.82.82 0 0 0 .254.565.775.775 0 0 0 1.13 0l3.61-3.632 3.632 3.632q.243.244.565.233a.82.82 0 0 0 .564-.255.775.775 0 0 0-.007-1.136l-4.2-4.18A.8.8 0 0 0 4.99 0"></path></g><defs><clipPath id="a"><path d="M0 0h10v15H0z"></path></clipPath></defs></svg></button></div><ul id="brxe-e9c954" class="brxe-div brx-dropdown-content"><li class="menu-item"><div id="brxe-0eeee1" class="brxe-block"><div id="brxe-8ef5c8" class="brxe-block"><div id="brxe-179186" class="brxe-block"><a id="brxe-463443" href="/cnapp" class="brxe-block"><div id="brxe-66f56c" class="brxe-block"><div id="brxe-99c7ec" class="brxe-text-basic text-menu-heading">Cloud Security</div></div></a></div><a id="brxe-1fff21" href="/ai-security-platform" class="brxe-block"><div id="brxe-18c544" class="brxe-block"><div id="brxe-cdd43e" class="brxe-block"><div id="brxe-668f33" class="brxe-text-basic text-menu-heading">AI Security</div></div></div></a><a id="brxe-989497" href="/agentic-security" class="brxe-block"><div id="brxe-460595" class="brxe-block"><div id="brxe-7de57e" class="brxe-block"><div id="brxe-97aff9" class="brxe-text-basic text-menu-heading">Agentic Security</div></div></div></a></div></div></li></ul></li><li id="brxe-1bcba3" data-script-id="1bcba3" class="brxe-dropdown" data-toggle="click"><div class="brx-submenu-toggle"><span>Solutions</span><button aria-expanded="false" aria-label="Toggle dropdown"><svg class="" xmlns="http://www.w3.org/2000/svg" width="10" height="15" fill="currentColor" viewBox="0 0 10 15"><g clip-path="url(#a)"><path d="M4.99 15a.8.8 0 0 1-.299-.056.7.7 0 0 1-.25-.166l-4.2-4.2a.75.75 0 0 1-.24-.572.82.82 0 0 1 .254-.565.775.775 0 0 1 1.13 0l3.61 3.632 3.632-3.632a.74.74 0 0 1 .565-.233.82.82 0 0 1 .564.255.7
134075.775 0 0 1-.007 1.136l-4.2 4.18A.8.8 0 0 1 4.99 15m0-15a.8.8 0 0 0-.299.055.7.7 0 0 0-.25.167l-4.2 4.2a.75.75 0 0 0-.24.572.82.82 0 0 0 .254.565.775.775 0 0 0 1.13 0l3.61-3.632 3.632 3.632q.243.244.565.233a.82.82 0 0 0 .564-.255.775.775 0 0 0-.007-1.136l-4.2-4.18A.8.8 0 0 0 4.99 0"></path></g><defs><clipPath id="a"><path d="M0 0h10v15H0z"></path></clipPath></defs></svg></button></div><ul id="brxe-a256fd" class="brxe-div brx-dropdown-content"><li class="menu-item"><div id="brxe-53f310" class="brxe-block"><div id="brxe-c8a9b8" class="brxe-block brx-grid"><div id="brxe-468d6a" class="brxe-block"><div id="brxe-ffaa7c" class="brxe-text-basic">Application Security</div><a id="brxe-01214c" href="/iac-security" class="brxe-block"><div id="brxe-9522bb" class="brxe-block"><div id="brxe-5af8bd" class="brxe-block"><div id="brxe-bfc1af" class="brxe-text-basic text-menu-description">IaC Security</div></div></div></a><a id="brxe-7a5095" href="/sca-sbom" class="brxe-block"><div id="brxe-600a17" class="brxe-block"><div id="brxe-4348c1" class="brxe-block"><div id="brxe-01292b" class="brxe-text-basic text-menu-description">Supply Chain Security
(SCA & SBOM)</div></div></div></a><a id="brxe-1a9da6" href="/container-admission-controller" class="brxe-block"><div id="brxe-b17e9c" class="brxe-block"><div id="brxe-00979d" class="brxe-block"><div id="brxe-3e1e65" class="brxe-text-basic text-menu-description">Containers Admission Controller</div></div></div></a></div><div id="brxe-cbcff0" class="brxe-block"><div id="brxe-94aa26" class="brxe-text-basic">Security Posture</div><a id="brxe-203b4d" href="/cspm" class="brxe-block"><div id="brxe-eeee97" class="brxe-block"><div id="brxe-2bf3ab" class="brxe-block"><div id="brxe-66071c" class="brxe-text-basic text-menu-description">Cloud Security Posture 
Management (CSPM)</div></div></div></a><a id="brxe-064d53" href="/identity-security" class="brxe-block"><div id="brxe-66d8dd" class="brxe-block"><div id="brxe-75e78d" class="brxe-block"><div id="brxe-3ca488" class="brxe-text-basic text-menu-description">Cloud Infrastructure 
1341Entitlements Management (CIEM)</div></div></div></a><a id="brxe-ef767e" href="/dspm" class="brxe-block"><div id="brxe-11af6f" class="brxe-block"><div id="brxe-fb9510" class="brxe-block"><div id="brxe-211641" class="brxe-text-basic text-menu-description">Data Security Posture 
1342Management (DSPM)</div></div></div></a><a id="brxe-e7a75b" href="/ai-spm" class="brxe-block"><div id="brxe-2f077e" class="brxe-block"><div id="brxe-d32835" class="brxe-block"><div id="brxe-777f99" class="brxe-text-basic text-menu-description">AI Security Posture 
1343Management (AI-SPM)</div></div></div></a></div><div id="brxe-0e8e67" class="brxe-block"><div id="brxe-72b27c" class="brxe-block"></div><a id="brxe-97cea3" href="/attack-path-exposure-analysis" class="brxe-block"><div id="brxe-a30918" class="brxe-block"><div id="brxe-71a115" class="brxe-block"><div id="brxe-6425b5" class="brxe-text-basic text-menu-description">Attack Path Analysis
&amp; Exposure Management</div></div></div></a><a id="brxe-80ba42" href="/vulnerability-management" class="brxe-block"><div id="brxe-bfcae6" class="brxe-block"><div id="brxe-1c4bb6" class="brxe-block"><div id="brxe-8e9d89" class="brxe-text-basic text-menu-description">Vulnerability Management</div></div></div></a><a id="brxe-b10916" href="/container-security" class="brxe-block"><div id="brxe-817f5f" class="brxe-block"><div id="brxe-55ad1c" class="brxe-block"><div id="brxe-463302" class="brxe-text-basic text-menu-description">Container & 
1344Kubernetes Security</div></div></div></a><a id="brxe-4ee8c3" href="/serverless-security" class="brxe-block"><div id="brxe-b0519c" class="brxe-block"><div id="brxe-fce1ce" class="brxe-block"><div id="brxe-44c6cc" class="brxe-text-basic text-menu-description">Serverless Security</div></div></div></a><a id="brxe-7a2f3f" href="/ai-security" class="brxe-block"><div id="brxe-fc20a8" class="brxe-block"><div id="brxe-047230" class="brxe-block"><div id="brxe-056b3f" class="brxe-text-basic text-menu-description">AI Security</div></div></div></a></div><div id="brxe-cfedcd" class="brxe-block"><div id="brxe-43ab0b" class="brxe-text-basic">Realtime Protection</div><a id="brxe-3a6a5d" href="/cdr" class="brxe-block"><div id="brxe-2ccc7b" class="brxe-block"><div id="brxe-758c4f" class="brxe-block"><div id="brxe-8ac9c8" class="brxe-text-basic text-menu-description">Cloud Detection &amp;
1344 Response (CDR)</div></div></div></a><a id="brxe-b5fe5e" href="/attack-surface-management" class="brxe-block"><div id="brxe-8cf1ce" class="brxe-block"><div id="brxe-4ab119" class="brxe-block"><div id="brxe-6c6521" class="brxe-text-basic text-menu-description">Attack Surface Management</div></div></div></a><a id="brxe-a51171" href="/api-security" class="brxe-block"><div id="brxe-e27250" class="brxe-block"><div id="brxe-c65907" class="brxe-block"><div id="brxe-4e3fee" class="brxe-text-basic text-menu-description">API Security</div></div></div></a><a id="brxe-d74ec8" href="/dast" class="brxe-block"><div id="brxe-d0e21b" class="brxe-block"><div id="brxe-ee6bfe" class="brxe-block"><div id="brxe-6564c7" class="brxe-text-basic text-menu-description">Dynamic Application Security Testing (DAST)</div></div></div></a><a id="brxe-ecbb73" href="/mdr" class="brxe-block"><div id="brxe-284260" class="brxe-block"><div id="brxe-e69eed" class="brxe-block"><div id="brxe-172ee9" class="brxe-text-basic text-menu-description">Incident Response (MDR)</div></div></div></a></div></div></div></li></ul></li><li id="brxe-9e90e6" data-script-id="9e90e6" class="brxe-dropdown" data-toggle="click"><div class="brx-submenu-toggle"><span>Resources</span><button aria-expanded="false" aria-label="Toggle dropdown"><svg class="" xmlns="http://www.w3.org/2000/svg" width="10" height="15" fill="currentColor" viewBox="0 0 10 15"><g clip-path="url(#a)"><path d="M4.99 15a.8.8 0 0 1-.299-.056.7.7 0 0 1-.25-.166l-4.2-4.2a.75.75 0 0 1-.24-.572.82.82 0 0 1 .254-.565.775.775 0 0 1 1.13 0l3.61 3.632 3.632-3.632a.74.74 0 0 1 .565-.233.82.82 0 0 1 .564.255.775.775 0 0 1-.007 1.136l-4.2 4.18A.8.8 0 0 1 4.99 15m0-15a.8.8 0 0 0-.299.055.7.7 0 0 0-.25.167l-4.2 4.2a.75.75 0 0 0-.24.572.82.82 0 0 0 .254.565.775.775 0 0 0 1.13 0l3.61-3.632 3.632 3.632q.243.244.565.233a.82.82 0 0 0 .564-.255.775.775 0 0 0-.007-1.136l-4.2-4.18A.8.8 0 0 0 4.99 0"></path></g><defs><clipPath id="a"><path d="M0 0h10v15H0z"></path></clipPath></defs></svg></button></div><ul id="brxe-3beefb" class="brxe-div brx-dropdown-content"><li class="menu-item"><div id="brxe-33a487" class="brxe-block"><div id="brxe-700eaf" class="brxe-block brx-grid"><div id="brxe-22459e" class="brxe-block"><a id="brxe-0bdae0" href="/feed" class="brxe-block"><div id="brxe-af5869" class="brxe-block"><div id="brxe-2e2f55" class="brxe-block text-menu-heading"><div id="brxe-80c6f7" class="brxe-text-basic text-menu-heading">Feed (Blog)</div></div></div></a><a id="brxe-c9cf7a" href="/events" class="brxe-block"><div id="brxe-86955f" class="brxe-block"><div id="brxe-f2a076" class="brxe-block"><div id="brxe-500e71" class="brxe-text-basic text-menu-heading">Events</div></div></div></a></div><div id="brxe-ee43ce" class="brxe-block"><a id="brxe-76214f" href="/tv" class="brxe-block"><div id="brxe-1003b2" class="brxe-block"><div id="brxe-667d7b" class="brxe-block"><div id="brxe-211d2a" class="brxe-text-basic text-menu-heading">UpwindTV</div></div></div></a><a id="brxe-cf4ee0" href="/integrations" class="brxe-block"><div id="brxe-29b9bd" class="brxe-block"><div id="brxe-caff77" class="brxe-block"><div id="brxe-0e8648" class="brxe-text-basic text-menu-heading">Integrations</div></div></div></a></div><div id="brxe-070581" class="brxe-block"><a id="brxe-cfed2c" href="/case-studies" class="brxe-block"><div id="brxe-a3c23a" class="brxe-block"><div id="brxe-c9a022" class="brxe-block"><div id="brxe-154e4f" class="brxe-text-basic text-menu-heading">Customers</div></div></div></a><a id="brxe-f51444" href="/glossary" class="brxe-block"><div id="brxe-4136b5" class="brxe-block"><div id="brxe-5cdfd3" class="brxe-block"><div id="brxe-42f24d" class="brxe-text-basic text-menu-heading">Glossary</div></div></div></a></div></div></div></li></ul></li><li id="brxe-e2274e" data-script-id="e2274e" class="brxe-dropdown" data-toggle="click"><div class="brx-submenu-toggle"><span>Partners</span><button aria-expanded="false" aria-label="Toggle dropdown"><svg class="" xmlns="http://www.w3.org/2000/svg" width="10" height="15" fill="currentColor" viewBox="0 0 10 15"><g clip-path="url(#a)"><path d="M4.99 15a.8.8 0 0 1-.299-.056.7.7 0 0 1-.25-.166l-4.2-4.2a.75.75 0 0 1-.24-.572.82.82 0 0 1 .254-.565.775.775 0 0 1 1.13 0l3.61 3.632 3.632-3.632a.74.74 0 0 1 .565-.233.82.82 0 0 1 .564.255.7
134475.775 0 0 1-.007 1.136l-4.2 4.18A.8.8 0 0 1 4.99 15m0-15a.8.8 0 0 0-.299.055.7.7 0 0 0-.25.167l-4.2 4.2a.75.75 0 0 0-.24.572.82.82 0 0 0 .254.565.775.775 0 0 0 1.13 0l3.61-3.632 3.632 3.632q.243.244.565.233a.82.82 0 0 0 .564-.255.775.775 0 0 0-.007-1.136l-4.2-4.18A.8.8 0 0 0 4.99 0"></path></g><defs><clipPath id="a"><path d="M0 0h10v15H0z"></path></clipPath></defs></svg></button></div><ul id="brxe-7fa538" class="brxe-div brx-dropdown-content"><li class="menu-item"><div id="brxe-77a455" class="brxe-block"><div id="brxe-57535b" class="brxe-block brx-grid"><div id="brxe-8b474b" class="brxe-block"><a id="brxe-ea6b22" href="/partners" class="brxe-block"><div id="brxe-f14420" class="brxe-block"><div id="brxe-8799bb" class="brxe-block"><div id="brxe-eae96d" class="brxe-text-basic text-menu-heading">Our Partners</div></div></div></a><a id="brxe-e9c1a2" href="/partners/join-the-lineup" class="brxe-block"><div id="brxe-aaa7f0" class="brxe-block"><div id="brxe-554b1b" class="brxe-block"><div id="brxe-c83b6a" class="brxe-text-basic text-menu-heading">Technology Alliances</div></div></div></a><a id="brxe-9efe30" href="/partners/join-upp" class="brxe-block"><div id="brxe-a27956" class="brxe-block"><div id="brxe-32de47" class="brxe-block"><div id="brxe-ec1b99" class="brxe-text-basic text-menu-heading">Channel Partners</div></div></div></a></div><div id="brxe-0d4775" class="brxe-block"><a id="brxe-d07101" href="/partners/aws" class="brxe-block"><div id="brxe-b666a3" class="brxe-block"><div id="brxe-d42e4c" class="brxe-block"><div id="brxe-b4abda" class="brxe-text-basic text-menu-heading">Amazon Web Services</div></div></div></a><a id="brxe-516b51" href="/partners/google-cloud" class="brxe-block"><div id="brxe-4f0e40" class="brxe-block"><div id="brxe-0d3de4" class="brxe-block"><div id="brxe-2f2613" class="brxe-text-basic text-menu-heading">Google Cloud</div></div></div></a></div><div id="brxe-a99ce4" class="brxe-block"><a id="brxe-d665a7" href="/partners/azure" class="brxe-block"><div id="brxe-034c1c" class="brxe-block"><div id="brxe-373443" class="brxe-block"><div id="brxe-b86383" class="brxe-text-basic text-menu-heading">Microsoft Azure</div></div></div></a><a id="brxe-0e2a03" href="/partners/oracle-cloud-infrastructure" class="brxe-block"><div id="brxe-b6cb2f" class="brxe-block"><div id="brxe-8bfdd2" class="brxe-block"><div id="brxe-19ab2c" class="brxe-text-basic text-menu-heading">Oracle Cloud</div></div></div></a></div></div></div></li></ul></li><li id="brxe-990777" data-script-id="990777" class="brxe-dropdown" data-toggle="click"><div class="brx-submenu-toggle"><span>Company</span><button aria-expanded="false" aria-label="Toggle dropdown"><svg class="" xmlns="http://www.w3.org/2000/svg" width="10" height="15" fill="currentColor" viewBox="0 0 10 15"><g clip-path="url(#a)"><path d="M4.99 15a.8.8 0 0 1-.299-.056.7.7 0 0 1-.25-.166l-4.2-4.2a.75.75 0 0 1-.24-.572.82.82 0 0 1 .254-.565.775.775 0 0 1 1.13 0l3.61 3.632 3.632-3.632a.74.74 0 0 1 .565-.233.82.82 0 0 1 .564.255.775.775 0 0 1-.007 1.136l-4.2 4.18A.8.8 0 0 1 4.99 15m0-15a.8.8 0 0 0-.299.055.7.7 0 0 0-.25.167l-4.2 4.2a.75.75 0 0 0-.24.572.82.82 0 0 0 .254.565.775.775 0 0 0 1.13 0l3.61-3.632 3.632 3.632q.243.244.565.233a.82.82 0 0 0 .564-.255.775.775 0 0 0-.007-1.136l-4.2-4.18A.8.8 0 0 0 4.99 0"></path></g><defs><clipPath id="a"><path d="M0 0h10v15H0z"></path></clipPath></defs></svg></button></div><ul id="brxe-b47c93" class="brxe-div brx-dropdown-content"><li class="menu-item"><div id="brxe-e532ad" class="brxe-block"><div id="brxe-7f12b3" class="brxe-block brx-grid"><div id="brxe-3a2ca6" class="brxe-block"><a id="brxe-6f0dad" href="/about" class="brxe-block"><div id="brxe-06a029" class="brxe-block"><div id="brxe-b85753" class="brxe-block"><div id="brxe-56f665" class="brxe-text-basic text-menu-heading">About</div></div></div></a></div><div id="brxe-6b5fca" class="brxe-block"><a id="brxe-91fa66" href="/values" class="brxe-block"><div id="brxe-b92e64" class="brxe-block"><div id="brxe-f6fb8a" class="brxe-block"><div id="brxe-25a2af" class="brxe-text-basic text-menu-heading">Values</div></div></div></a></div><div id="brxe-392594" class="brxe-block"><a id="brxe-3e3f3e" href="/careers" class="brxe-block"><div id="brxe-af2730" class="brxe-block"><div id="brxe-1a8ff2" class="brxe-block"><div id="brxe-c5dcbc" class="brxe-text-basic text-menu-heading">Careers</div></div></div></a></div></div></div></li></ul></li><li class="menu-item"><a id="brxe-87938f" href="/feed" class="brxe-block"><div id="brxe-f201de" class="brxe-text-basic">Feed</div></a></li><li class="menu-item"><a id="brxe-12d5f5" href="/tv" class="brxe-block"><div id="brxe-952199" class="brxe-text-basic">TV</div></a></li><li class="menu-item"><a id="brxe-319bcc" href="/contact/?v=get-started" class="brxe-div" data-interactions="[{&quot;id&quot;:&quot;jfnhlv&quot;,&quot;trigger&quot;:&quot;mouseenter&quot;,&quot;action&quot;:&quot;setAttribute&quot;,&quot;actionAttributeKey&quot;:&quot;class&quot;,&quot;actionAttributeValue&quot;:&quot;gradient-text&quot;,&quot;target&quot;:&quot;self&quot;},{&quot;id&quot;:&quot;rqwikt&quot;,&quot;trigger&quot;:&quot;mouseleave&quot;,&quot;action&quot;:&quot;removeAttribute&quot;,&quot;actionAttributeKey&quot;:&quot;class&quot;,&quot;actionAttributeValue&quot;:&quot;gradient-text&quot;,&quot;target&quot;:&quot;self&quot;}]" data-interaction-id="23298c"><div id="brxe-976d11" class="brxe-text-basic">Get a Demo</div></a></li><li class="menu-item"><a id="brxe-eb6ff4" href="/ai-threat-feed" class="brxe-block"><svg class="brxe-svg" id="brxe-bfffbe" xmlns="http://www.w3.org/2000/svg" width="13" height="11" viewB
1344ox="0 0 13 11" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.62349 0.486161L0.138721 9.52188C-0.0441044 9.82388 -0.0466436 10.202 0.133643 10.5065C0.313929 10.8109 0.651649 11 1.01476 11H11.9843C12.3474 11 12.6851 10.8109 12.8654 10.5065C13.0457 10.202 13.0457 9.82634 12.8603 9.52188L7.37557 0.486161C7.19274 0.184152 6.8601 0 6.49953 0C6.13895 0 5.80631 0.184152 5.62349 0.486161ZM1.56983 9.68H11.4292L6.49953 1.55872L1.56983 9.68Z" fill="#F89684"></path><path d="M6.5001 3.85851C6.22994 3.85851 6.0126 4.06868 6.0126 4.32991V6.52975C6.0126 6.79098 6.22994 7.00114 6.5001 7.00114C6.77025 7.00114 6.9876 6.79098 6.9876 6.52975V4.32991C6.9876 4.06868 6.77025 3.85851 6.5001 3.85851ZM7.1501 8.2582C7.1501 7.91054 6.85963 7.62967 6.5001 7.62967C6.14057 7.62967 5.8501 7.91054 5.8501 8.2582C5.8501 8.60585 6.14057 8.88672 6.5001 8.88672C6.85963 8.88672 7.1501 8.60585 7.1501 8.2582Z" fill="#F89684"></path></svg><div id="brxe-044fa9" class="brxe-text-basic">Under Attack?</div></a></li></ul><div id="brxe-7e2047" class="brxe-block closed" data-state="closed" data-interactions="[{&quot;id&quot;:&quot;kqvors&quot;,&quot;trigger&quot;:&quot;click&quot;,&quot;action&quot;:&quot;toggleAttribute&quot;,&quot;actionAttributeKey&quot;:&quot;class&quot;,&quot;actionAttributeValue&quot;:&quot;brx-open&quot;,&quot;target&quot;:&quot;custom&quot;,&quot;targetSelector&quot;:&quot;#brxe-c72527&quot;},{&quot;id&quot;:&quot;qnafbi&quot;,&quot;trigger&quot;:&quot;click&quot;,&quot;action&quot;:&quot;javascript&quot;,&quot;target&quot;:&quot;self&quot;,&quot;jsFunction&quot;:&quot;toggleMenu&quot;}]" data-interaction-id="115ce6"><svg class="brxe-svg" id="brxe-900088" xmlns="http://www.w3.org/2000/svg" width="32" height="3" fill="none"><path stroke="#252729" stroke-width="2" d="M0 1.646h32"></path></svg><svg class="brxe-svg" id="brxe-b78b5e" xmlns="http://www.w3.org/2000/svg" width="32" height="3" fill="none"><path stroke="#252729" stroke-width="2" d="M0 1.646h32"></path></svg><svg class="brxe-svg" id="brxe-4aa216" xmlns="http://www.w3.org/2000/svg" width="32" height="3" fill="none"><path stroke="#252729" stroke-width="2" d="M0 1.646h32"></path></svg>
1344<script>/*
1345(function() {
1346  const el = document.querySelector('#brxe-06ecbc');
1347  el.addEventListener('click', function(e) {
1348    if ( el.dataset.state == '' ) {
1349      return;
1350    }
1351    
1352  	if ( el.dataset.state == 'opened' ) {
1353      el.dataset.state = '';
1354      setTimeout(function() {
1355        el.dataset.state = 'closed';
1356      }, 300);
1357    } else {
1358      el.dataset.state = '';
1359      setTimeout(function() {
1360        el.dataset.state = 'opened';
1361      }, 300);
1362    }
1363	});
1364})()
1365*/</script>
1365</div></nav></div><div id="brxe-85200a" class="brxe-block"><a id="brxe-5dd8dc" href="/contact/?v=get-started" class="brxe-div" data-interactions="[{&quot;id&quot;:&quot;jfnhlv&quot;,&quot;trigger&quot;:&quot;mouseenter&quot;,&quot;action&quot;:&quot;setAttribute&quot;,&quot;actionAttributeKey&quot;:&quot;class&quot;,&quot;actionAttributeValue&quot;:&quot;gradient-text&quot;,&quot;target&quot;:&quot;self&quot;},{&quot;id&quot;:&quot;rqwikt&quot;,&quot;trigger&quot;:&quot;mouseleave&quot;,&quot;action&quot;:&quot;removeAttribute&quot;,&quot;actionAttributeKey&quot;:&quot;class&quot;,&quot;actionAttributeValue&quot;:&quot;gradient-text&quot;,&quot;target&quot;:&quot;self&quot;}]" data-interaction-id="2ad4c8"><div id="brxe-06a7a0" class="brxe-text-basic">Get a Demo</div></a><a id="brxe-632449" href="/under-attack" class="brxe-block"><svg class="brxe-svg" id="brxe-d87001" xmlns="http://www.w3.org/2000/svg" width="13" height="11" fill="none" viewBox="0 0 13 11"><path fill="#F2583C" fill-rule="evenodd" d="M5.623.486.14 9.522a.96.96 0 0 0-.005.985c.18.304.518.493.88.493h10.97c.363 0 .701-.19.881-.493a.95.95 0 0 0-.005-.985L7.376.486A1.02 1.02 0 0 0 6.5 0c-.361 0-.694.184-.877.486M1.57 9.68h9.86L6.5 1.559z" clip-rule="evenodd"></path><path fill="#F2583C" d="M6.5 3.859c-.27 0-.487.21-.487.47v2.2c0 .262.217.472.487.472s.488-.21.488-.471v-2.2a.48.48 0 0 0-.488-.471m.65 4.4a.64.64 0 0 0-.65-.63.64.64 0 0 0-.65.63c0 .347.29.628.65.628s.65-.281.65-.629"></path></svg><div id="brxe-a7e2e0" class="brxe-text-basic">Under Attack?</div></a></div></div></section></header><main id="brx-content"><section id="brxe-dlylyv" class="brxe-section"><div id="brxe-prriah" class="brxe-container"><div id="brxe-qswkqu" data-script-id="qswkqu" class="brxe-video"><video src="https://www.upwind.io/wp-content/uploads/2026/08/Upwind_WaveCrashing_Loop_16x9_01-2.mp4" autoplay playsinline onclick="this.paused ? this.play() : this.pause()" loop muted><p>Your browser does not support the video tag.</p></video></div><div id="brxe-kahgdm" class="brxe-block content"><div id="brxe-ugmpgb" class="brxe-div spin-banner1"><div id="brxe-nbubjr" data-script-id="nbubjr" class="brxe-code"><style>/* === Banner styles === */
1366.spin-banner1 {
1367  display: block;
1368  color: #ffffff;
1369  text-align: center;
1370  font-family: "Upwind Sans", sans-serif;
1371  font-size: 14px;
1372  font-weight: 500;
1373  overflow: hidden;
1374  opacity: 0; 
1375  transition: opacity 0.5s ease;
1376}
1377
1378.spin-banner__reel-container1 {
1379  display: inline-flex;
1380  align-items: center;
1381  justify-content: center;
1382  vertical-align: middle;
1383  overflow: hidden;
1384  max-width: 100%;
1385  white-space: nowrap; /* Keeps it on a single line for desktop width transition */
1386  transition: width 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
1387}
1388
1389/* Inner wrapper for the fade effect */
1390.spin-banner__content {
1391  display: inline-flex;
1392  align-items: center;
1393  gap: 6px; /* Spacing between image and text */
1394  opacity: 1;
1395  transition: opacity 0.3s ease;
1396}
1397
1398.spin-banner__content.fading {
1399  opacity: 0;
1400}
1401
1402/* Force correct font, color, and remove default underlines from builder */
1403.spin-banner1 a,
1404.spin-banner__link1,
1405.spin-banner__content span {
1406  color: #ffffff !important;
1407  text-decoration: none !important;
1408  font-family: "Upwind Sans", sans-serif !important;
1409  font-size: 14px !important;
1410  font-weight: 500 !important;
1411}
1412
1413.spin-banner__link1 {
1414  display: inline-flex;
1415  align-items: center;
1416  gap: 6px;
1417}
1418
1419.spin-banner__link1:hover,
1420.spin-banner__link1:hover span {
1421  text-decoration: none !important;
1422}
1423
1424/* Mobile: Allow natural wrapping, disable width animation to prevent jumps */
1425@media (max-width: 768px) {
1426  .spin-banner__reel-container1 {
1427    white-space: normal;
1428    width: auto !important; /* Override JS width calculations */
1429    transition: none;
1430  }
1431
1432  .spin-banner__content,
1433  .spin-banner__link1 {
1434    flex-wrap: wrap;
1435    justify-content: center;
1436    line-height: 1.5;
1437  }
1438}
1439
1440/* Respect users who prefer reduced motion */
1441@media (prefers-reduced-motion: reduce) {
1442  .spin-banner__reel-container1,
1443  .spin-banner__content {
1444    transition: none !important;
1445  }
1446}
1447</style>
1447<script>/* ============================================
1448   Fade Banner - Vanilla JS
1449   ============================================ */
1450document.addEventListener("DOMContentLoaded", function () {
1451  "use strict";
1452
1453  // ===== CONFIG =====
1454  const config = {
1455    targetSelector: "#announcementBanner2",
1456    messages: [
1457      {
1458        text: "Building the Future: Introducing the Upwind AI Security Lab",
1459        url: "/feed/building-the-future-introducing-the-upwind-ai-security-lab",
1460      },
1461      {
1462        text: "Upwind is the first in the world to identify Shai-Hulud striking again →",
1463        url: "/feed/shai-hulud-tanstack-supply-chain-worm",
1464        imagePosition: "before",
1465      },
1466      {
1467        text: "AWS & Upwind partner to bring CNAPP to the AWS Security Hub →",
1468        url: "/feed/the-next-wave-is-here-upwind-is-now-seamlessly-accessible-within-the-aws-security-operating-model",
1469        imagePosition: "before",
1470      },
1471      {
1472        text: "Upwind raises $250M Series B →",
1473        url: "/feed/building-next-wave-cloud-security-upwind",
1474        imagePosition: "before",
1475      },
1476      {
1477        text: "The next wave of AI. Upwind becomes Agentic →",
1478        url: "/feed/introducing-the-upwind-agentic-pack-ai-agents-for-cloud-security",
1479        imagePosition: "before",
1480      },
1481    ],
1482
1483    imageSize: 22, // px
1484    rotateInterval: 8000, // ms between message swaps (shortened slightly from 12s)
1485    fadeDuration: 300, // ms it takes to fade out before swapping
1486  };
1487
1488  const container = document.querySelector(config.targetSelector);
1489  if (!container) return;
1490  let currentIndex = 0;
1491  let rotateTimer = null;
1492
1493  // Create inner wrapper to handle the fading
1494
1495  const contentWrapper = document.createElement("div");
1496  contentWrapper.className = "spin-banner__content fading"; // Start faded out
1497  container.style.width = "0px"; // Force start at 0px width
1498  container.appendChild(contentWrapper);
1499
1500  function buildMessageHTML(message) {
1501    const text = typeof message === "string" ? message : message.text;
1502    const url = typeof message === "object" ? message.url : null;
1503    const image = typeof message === "object" ? message.image : null;
1504    const imagePosition =
1505      (typeof message === "object" && message.imagePosition) || "before";
1506
1507    let imgHTML = image
1508      ? `<img src="${image}" alt="" style="width:${config.imageSize}px;height:${config.imageSize}px;flex-shrink:0;vertical-align:middle;">`
1509      : "";
1510
1511    let innerHTML = "";
1512    if (imagePosition === "before") innerHTML += imgHTML;
1513    innerHTML += `<span>${text}</span>`;
1514    if (imagePosition === "after") innerHTML += imgHTML;
1515    if (url) {
1516      return `<a href="${url}" class="spin-banner__link1">${innerHTML}</a>`;
1517    }
1518
1519    return innerHTML;
1520  }
1521
1522  function renderMessage(index) {
1523    const isFirstRender = !contentWrapper.innerHTML;
1524    
1525    if (isFirstRender) {
1526      // 1. Inject the text invisibly so we can measure its exact width
1527      contentWrapper.innerHTML = buildMessageHTML(config.messages[index]);
1528      // 2. Start the outer banner fade-in immediately
1529      const outerBanner = document.querySelector('.spin-banner1');
1530      if (outerBanner) {
1531        outerBanner.style.opacity = '1';
1532      }
1533      // 3. Start the width expansion at the same time
1534      container.style.width = contentWrapper.offsetWidth + 'px';
1535      // 4. Delay the text's visual fade-in by exactly 60ms
1536      setTimeout(() => {
1537        contentWrapper.classList.remove('fading');
1538      }, 60); 
1539      return;
1540    }
1541    
1542    // --- Subsequent swaps behavior remains unchanged --   
1543    // 1. Trigger the CSS fade out
1544    contentWrapper.classList.add('fading');
1545    setTimeout(() => {
1546      // 2. Swap the HTML while it's invisible
1547      contentWrapper.innerHTML = buildMessageHTML(config.messages[index]);
1548      // 3. Measure the new natural width and expand/contract the inner container
1549      container.style.width = contentWrapper.offsetWidth + 'px';
1550      // 4. Fade back in immediately after the width starts adjusting
1551      requestAnimationFrame(() => {
1552        contentWrapper.classList.remove('fading');
1553      });
1554    }, config.fadeDuration);
1555  }
1556
1557  function startRotation() {
1558    if (config.rotateInterval <= 0 || config.messages.length <= 1) return;
1559
1560    rotateTimer = setInterval(() => {
1561      currentIndex = (currentIndex + 1) % config.messages.length;
1562
1563      renderMessage(currentIndex);
1564    }, config.rotateInterval);
1565  }
1566
1567  function stopRotation() {
1568    if (rotateTimer) clearInterval(rotateTimer);
1569  }
1570
1571  // Pause on hover
1572  container.parentElement.addEventListener("mouseenter", stopRotation);
1573  container.parentElement.addEventListener("mouseleave", startRotation);
1574
1575  // ===== INIT =====
1576  (document.fonts ? document.fonts.ready : Promise.resolve()).then(() => {
1577    // Wait exactly 1 second on a blank screen before triggering the first animation
1578
1579    setTimeout(() => {
1580      renderMessage(0);
1581      startRotation();
1582    }, 500);
1583  });
1584});
1585</script>
1585</div><div id="announcementBanner2" class="brxe-div spin-banner__reel-container1"></div></div><h1 id="brxe-jrgayf" class="brxe-heading heading-48">Cloud & AI Security from the <span class="text-fancy-italic">Inside-Out.</span></h1><div id="brxe-kjyuat" class="brxe-text-basic text-18">By combining agentless scanning and runtime sensors Upwind enables security, developers and devops teams to see their Cloud & AI infrastructure in the same operating picture, remediate exactly what matters and stop attacks in real-time. </div><a id="brxe-iyijkp" class="brxe-button bricks-button bricks-background-primary" href="/contact">Get a Demo</a></div></div></section><section class="brxe-boiuru brxe-section"><div class="brxe-ccb23a brxe-container"><h2 class="brxe-58e345 brxe-heading heading-20">Trusted by hundreds of enterprises around the world</h2><div class="brxe-gisgwi brxe-container"><div class="brxe-adfa3f brxe-block horizontal-scrolling-images"><img width="87" height="27" src="https://www.upwind.io/wp-content/uploads/2026/01/roku-logo.png" class="brxe-76b514 brxe-image css-filter size-full" alt="roku-logo.png" decoding="async" /><img width="155" height="35" src="https://www.upwind.io/wp-content/uploads/2026/01/carvana-logo.png" class="brxe-d3cc08 brxe-image css-filter size-full" alt="carvana-logo.png" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/01/carvana-logo.png 155w, https://www.upwind.io/wp-content/uploads/2026/01/carvana-logo-150x35.png 150w" sizes="(max-width: 155px) 100vw, 155px" /><img width="106" height="41" src="https://www.upwind.io/wp-content/uploads/2026/01/Waste_Management_logo.png" class="brxe-9079cf brxe-image css-filter size-full" alt="Waste_Management_logo.png" decoding="async" /><img width="142" height="23" src="https://www.upwind.io/wp-content/uploads/2026/01/Siemens_AG_logo-2.png" class="brxe-2626cf brxe-image css-filter size-full" alt="Siemens_AG_logo-2.png" decoding="async" /><img width="68" height="38" src="https://www.upwind.io/wp-content/uploads/2026/01/nu-logo.png" class="brxe-73a819 brxe-image css-filter size-full" alt="nu-logo.png" decoding="async" /><img width="82" height="30" src="https://www.upwind.io/wp-content/uploads/2026/01/wix-logo.png" class="brxe-1cab32 brxe-image css-filter size-full" alt="wix-logo.png" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/01/wix-logo.png 82w, https://www.upwind.io/wp-content/uploads/2026/01/wix-logo-80x30.png 80w" sizes="(max-width: 82px) 100vw, 82px" /><img width="178" height="39" src="https://www.upwind.io/wp-content/uploads/2026/01/checkpoint-logo.png" class="brxe-6a406f brxe-image css-filter size-full" alt="checkpoint-logo.png" decoding="async" /><img src="https://www.upwind.io/wp-content/uploads/2026/01/Bill.svg" class="brxe-c8b786 brxe-image css-filter size-large" alt="Bill.svg" decoding="async" /><img width="145" height="44" src="https://www.upwind.io/wp-content/uploads/2026/01/Peloton_logo.png" class="brxe-284905 brxe-image css-filter size-full" alt="Peloton_logo.png" decoding="async" /><img width="143" height="35" src="https://www.upwind.io/wp-content/uploads/2026/01/clickup-logo.png" class="brxe-ngnqlj brxe-image css-filter size-full" alt="clickup-logo.png" decoding="async" /><img width="89" height="46" src="https://www.upwind.io/wp-content/uploads/2026/01/agoda-logo.png" class="brxe-kvsolh brxe-image css-filter size-full" alt="agoda-logo.png" decoding="async" /><img src="https://www.upwind.io/wp-content/uploads/2026/08/Sixt_Logo.svg" class="brxe-xtzaun brxe-image css-filter size-full" alt="Sixt_Logo" decoding="async" /><img src="https://www.upwind.io/wp-content/uploads/2026/08/supabase-logo-wordmark-light-1.svg" class="brxe-qrbeoq brxe-image css-filter size-full" alt="supabase-logo-wordmark--light 1" decoding="async" /></div><div class="brxe-kuammh brxe-block horizontal-scrolling-images scroll-right"><img src="https://www.upwind.io/wp-content/uploads/2026/07/HM-Logo-1.svg" class="brxe-lkswtj brxe-image css-filter size-large" alt="H&amp;M-Logo 1" decoding="async" /><img src="https://www.upwind.io/wp-content/uploads/2026/07/Wolters-logo.svg" class="brxe-ufiizl brxe-image css-filter size-large" alt="Wolters-logo" decoding="async" /><img src="https://www.upwind.io/wp-content/uploads/2026/07/Patagonia_Unternehmen_logo-1.svg" class="brxe-nvvvpv brxe-image css-filter size-full" alt="Patagonia_(Unternehmen)_logo 1" decoding="async" /><img src="https://www.upwind.io/wp-content/uploads/2026/07/amex-gbt-1.svg" class="brxe-bvhnam brxe-image css-filter size-full" alt="amex-gbt 1" title="amex-gbt 1" decoding="async" /></div></div></div></section><section id="brxe-1825aa" class="brxe-section dot-bg"><div id="brxe-4aa9a1" class="brxe-container"><h2 id="brxe-a3f637" class="brxe-heading">Cloud &amp;
1585 AI Infrastructure is now changing in <span class="no-break">real-time</span> and security needs to do the same.</h2><div id="brxe-1e5992" class="brxe-text-basic">A new operating model, <span class="gradient-text">Inside-Out</span> links context of code to production in realtime, allowing security teams to see their live inventory, high-signal exposures and whether an attack is already unfolding.</div></div><div id="brxe-df8ced" class="brxe-container"><div id="brxe-a8a69a" data-script-id="a8a69a" class="brxe-video play-and-loop-end"><video src="https://www.upwind.io/wp-content/uploads/2026/08/Funnel-03-02_x3-edited.mp4" playsinline onclick="this.paused ? this.play() : this.pause()" muted><p>Your browser does not support the video tag.</p></video></div><div id="brxe-3e112e" data-script-id="3e112e" class="brxe-video play-and-loop-end"><video src="https://www.upwind.io/wp-content/uploads/2026/08/Funnel-03-01_Vertical_x3_1.mp4" playsinline onclick="this.paused ? this.play() : this.pause()" muted><p>Your browser does not support the video tag.</p></video></div><div id="brxe-61b97e" data-script-id="61b97e" class="brxe-code">
1585<script>
1586  document.addEventListener('DOMContentLoaded', () => {
1587    // Select videos inside Bricks elements with the new class
1588    const loopVideos = document.querySelectorAll('.play-and-loop-end video');
1589
1590    if (loopVideos.length === 0) return;
1591
1592    // Triggers when the top of the video is 35% up from the bottom of the viewport
1593    const observerOptions = {
1594      root: null,
1595      rootMargin: '0px 0px -35% 0px', 
1596      threshold: 0 
1597    };
1598
1599    const videoObserver = new IntersectionObserver((entries, observer) => {
1600      entries.forEach(entry => {
1601        if (entry.isIntersecting) {
1602          const video = entry.target;
1603
1604          // Ensure autoplay policies are met
1605          video.muted = true;
1606          video.playsInline = true;
1607          // Disable native loop so our custom script handles it
1608          video.loop = false; 
1609
1610          const playPromise = video.play();
1611          if (playPromise !== undefined) {
1612            playPromise.then(() => {
1613                // Once playing successfully, start monitoring the time
1614                requestAnimationFrame(() => monitorPlayback(video));
1615            }).catch(error => {
1616              console.error('Video play failed:', error);
1617            });
1618          }
1619
1620          // Stop observing once it has been triggered
1621          observer.unobserve(video);
1622        }
1623      });
1624    }, observerOptions);
1625
1626    // High-performance loop to check video time without relying on slow event listeners
1627    function monitorPlayback(video) {
1628      if (video.duration) {
1629        // If the video is within 0.05 seconds of ending, jump back 0.5s from the end.
1630        // Doing this slightly before the end prevents the native pause/stutter.
1631        if (video.currentTime >= video.duration - 0.05) {
1632            video.currentTime = video.duration - 0.5;
1633        }
1634      }
1635      
1636      // Continue monitoring as long as the video isn't paused
1637      if (!video.paused) {
1638        requestAnimationFrame(() => monitorPlayback(video));
1639      }
1640    }
1641
1642    loopVideos.forEach(video => {
1643      // Fallback: If it somehow slips past our monitor and officially ends
1644      video.addEventListener('ended', () => {
1645        video.currentTime = video.duration - 0.5;
1646        video.play();
1647        requestAnimationFrame(() => monitorPlayback(video));
1648      });
1649
1650      videoObserver.observe(video);
1651    });
1652  });
1653</script>
1653</div></div><div id="brxe-d5369b" class="brxe-container"><div id="brxe-2a00e3" class="brxe-block"><div id="brxe-372b2c" class="brxe-block"><div id="brxe-0c09b2" class="brxe-div tag"><svg class="brxe-svg icon1" id="brxe-59d3aa" xmlns="http://www.w3.org/2000/svg" width="25" height="19" fill="currentColor" viewBox="0 0 25 19"><path d="M12.499 1.969c-2.83 0-5.156 1.214-6.94 2.777-1.671 1.468-2.826 3.211-3.416 4.442.59 1.23 1.745 2.973 3.411 4.442 1.789 1.562 4.115 2.776 6.945 2.776s5.156-1.214 6.94-2.776c1.671-1.469 2.826-3.212 3.416-4.443-.59-1.23-1.745-2.973-3.412-4.441-1.788-1.563-4.114-2.777-6.944-2.777m-8.36 1.337C6.185 1.509 8.993 0 12.5 0s6.315 1.51 8.36 3.306c2.03 1.784 3.389 3.913 4.036 5.377a1.24 1.24 0 0 1 0 1.009c-.647 1.464-2.005 3.597-4.037 5.377-2.044 1.797-4.852 3.306-8.36 3.306-3.506 0-6.314-1.51-8.358-3.306C2.108 13.29.75 11.156.107 9.692a1.24 1.24 0 0 1 0-1.009C.75 7.219 2.108 5.086 4.14 3.306m8.36 9.163c1.918 0 3.472-1.469 3.472-3.281S14.417 5.906 12.5 5.906h-.087q.085.316.087.657c0 1.447-1.246 2.625-2.778 2.625q-.36-.002-.694-.083v.082c0 1.813 1.554 3.282 3.472 3.282m0-8.531c1.473 0 2.886.553 3.928 1.537 1.042.985 1.628 2.32 1.628 3.713 0 1.392-.586 2.727-1.628 3.712a5.73 5.73 0 0 1-3.928 1.537c-1.474 0-2.887-.553-3.928-1.537-1.042-.985-1.628-2.32-1.628-3.713 0-1.392.586-2.727 1.628-3.712 1.041-.984 2.454-1.537 3.928-1.537"></path></svg><div id="brxe-ca26ff" class="brxe-text-basic">Live inventory</div></div><div id="brxe-8dd4b6" class="brxe-div tag"><div id="brxe-1b1622" class="brxe-text-basic">Refreshed every 30 seconds</div></div></div><h3 id="brxe-3bcf2a" class="brxe-heading text">Know what is running, connected, and exposed across your environment.</h3><div id="brxe-1d9ea6" class="brxe-block"><div id="brxe-f5aaf1" class="brxe-text-basic text">Cloud assets, APIs, data flows, AI services, and non-human identities change too quickly for manual inventories and periodic scans to stay current.
</div><div id="brxe-f8667d" class="brxe-text-basic text"><div>Give your security and application owners a live map of the environment so they can answer what is running, who owns it, what it communicates with, and what data it can reach.</div></div></div></div></div><div id="brxe-1bf06f" class="brxe-container"><div id="brxe-9d1557" class="brxe-block"><div id="brxe-46c3fb" class="brxe-block"><div id="brxe-7ec89c" class="brxe-div tag"><svg class="brxe-svg icon2" id="brxe-f00253" xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" viewBox="0 0 25 25"><path d="M12.504 6.346c.37 0 .674.286.674.635 0 1.31 1.68 1.964 2.66 1.04a.705.705 0 0 1 .952 0c.26.246.26.65 0 .896-.981.925-.287 2.508 1.102 2.508.37 0 .674.286.674.635s-.303.635-.674.635c-1.389 0-2.083 1.583-1.102 2.508.26.246.26.65 0 .897a.706.706 0 0 1-.952 0c-.98-.925-2.66-.27-2.66 1.04 0 .349-.303.634-.674.634-.37 0-.673-.285-.673-.635 0-1.309-1.68-1.964-2.66-1.04a.705.705 0 0 1-.952 0 .61.61 0 0 1 0-.896c.98-.925.286-2.508-1.103-2.508-.37 0-.673-.286-.673-.635s.303-.635.673-.635c1.39 0 2.084-1.583 1.103-2.508a.61.61 0 0 1 0-.896.705.705 0 0 1 .951 0c.981.924 2.66.27 2.66-1.04 0-.35.304-.635.674-.635m-1.01 5.714c.56 0 1.01-.424 1.01-.952s-.45-.953-1.01-.953-1.01.425-1.01.953.45.952 1.01.952m3.03 1.27c0-.35-.302-.635-.673-.635-.37 0-.673.286-.673.635s.303.635.673.635.674-.286.674-.635"></path><path d="M12.5 0q.369.002.699.143l9.807 3.923c1.145.457 2 1.521 1.994 2.807l-.03.958c-.288 5.007-2.682 13.077-11.095 16.874l-.333.13c-.675.22-1.41.22-2.084 0l-.333-.13C2.712 20.908.318 12.838.03 7.83L0 6.873c-.005-1.206.746-2.217 1.784-2.715l.21-.092L11.801.143Q12.131 0 12.5 0M2.924 6.387H2.92a.8.8 0 0 0-.34.252.36.36 0 0 0-.08.221l.028.86c.26 4.478 2.404 11.448 9.625 14.707l.17.054a.85.85 0 0 0 .523-.054l.706-.338c7.115-3.616 8.926-10.973 8.948-15.229 0-.069-.02-.14-.08-.221a.7.7 0 0 0-.23-.2l-.11-.052h-.004L12.5 2.556z"></path></svg><div id="brxe-97ae53" class="brxe-text-basic">Fix High-signal exposures</div></div><div id="brxe-756b10" class="brxe-div tag"><div id="brxe-f59b97" class="brxe-text-basic">93% noise reduction</div></div></div><h3 id="brxe-333f7a" class="brxe-heading text">Direct remediation to the risks most likely to affect production.</h3><div id="brxe-f9f6f0" class="brxe-block"><div id="brxe-bb767d" class="brxe-text-basic text">Static severity scores and findings from separate tools create large backlogs without showing whether a vulnerable service is running, reachable, exposed, or connected to a likely attack path.</div><div id="brxe-76c181" class="brxe-text-basic text"><div>Let your team use live exposure and activity to separate real risk from theoretical risk, shorten triage, and fix the source of the issue instead of chasing every alert.</div></div></div></div></div><div id="brxe-a39915" class="brxe-container"><div id="brxe-54ece9" class="brxe-block"><div id="brxe-633861" class="brxe-block"><div id="brxe-b3c812" class="brxe-div tag"><svg class="brxe-svg icon3" id="brxe-ade957" xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" viewBox="0 0 25 25"><path d="M12.5 0q.369.002.699.143l9.807 3.923c1.145.457 2 1.521 1.994 2.807l-.03.958c-.288 5.007-2.682 13.077-11.095 16.874l-.333.13c-.675.22-1.41.22-2.084 0l-.333-.13C2.712 20.908.318 12.838.03 7.83L0 6.873c-.005-1.206.746-2.217 1.784-2.715l.21-.092L11.801.143Q12.131 0 12.5 0M2.924 6.387H2.92a.8.8 0 0 0-.34.252.36.36 0 0 0-.08.221l.028.86c.26 4.478 2.404 11.448 9.625 14.707l.17.054a.85.85 0 0 0 .523-.054l.706-.338c7.115-3.616 8.926-10.973 8.948-15.229 0-.069-.02-.14-.08-.221a.7.7 0 0 0-.23-.2l-.11-.052h-.004L12.5 2.556z"></path><path d="M16.62 8.571a1.251 1.251 0 0 1 1.732 1.732l-.16.197-5.499 5.497a1.635 1.635 0 0 1-2.186.112l-.124-.112-2.614-2.613-.16-.197a1.251 1.251 0 0 1 1.732-1.731l.197.16 2 2 4.885-4.885z"></path></svg><div id="brxe-b08777" class="brxe-text-basic">Real-time protection</div></div><div id="brxe-3a1699" class="brxe-div tag"><div id="brxe-1af5d0" class="brxe-text-basic">15 seconds to detect</div></div></div><h3 id="brxe-af19d1" class="brxe-heading text">Detect and stop attacks while they are happening.</h3><div id="brxe-855889" class="brxe-block"><div id="brxe-380cf1" class="brxe-text-basic text">Configuration scans cannot see abnormal process execution, suspicious network destinations, unexpected identity actions, prompt attacks, or sensitive data moving through a live application.</div><div id="brxe-841319" class="brxe-text-basic text"><div>Upwind allows you to connect workload runtime signals and cloud activities to spot meaningful deviations as they occur, and empower people and agents to immediately investigate and contain the threat.</div></div></div></div></div><div id="brxe-38cb90" class="brxe-container"><div id="brxe-6ed771" class="brxe-div"><img src="https://www.upwind.io/wp-content/uploads/2026/08/dark-u-logo.svg" class="brxe-image css-filter size-large" alt="dark-u-logo.svg" id="brxe-e2dfd6" decoding="async" /></div><h2 id="brxe-2a20d2" class="brxe-heading">The <span class="text-fancy-italic">Inside-Out</span> Cloud &amp; AI Security Platform</h2><div id="brxe-aa68e8" class="brxe-block"><span id="btn1" class="brxe-button text-20 btn-active bricks-button bricks-background-primary">Live inventory</span><span id="btn2" class="brxe-button text-20 bricks-button bricks-background-primary">Fix High-signal exposures</span><span id="btn3" class="brxe-button text-20 bricks-button bricks-background-primary">Real-time protection</span></div><div id="brxe-c9e0d8" class="brxe-block"><div id="state1" data-script-id="969aea" class="brxe-video play-on-scroll"><video src="https://www.upwind.io/wp-content/uploads/2026/08/Visablity2.mp4" playsinline controls muted><p>Your browser does not support the video tag.</p></video></div><div id="state2" data-script-id="0c46e8" class="brxe-video"><video src="https://www.upwind.io/wp-content/uploads/2026/08/High-signal-exposure-1c.mp4" autoplay playsinline controls muted><p>Your browser does not support the video tag.</p></video></div><div id="state3" data-script-id="3c4a8c" class="brxe-video"><video src="https://www.upwind.io/wp-content/uploads/2026/08/runtime-protection2-edited.mp4" autoplay playsinline controls muted><p>Your browser does not support the video tag.</p></video></div></div><div id="brxe-dbc85a" data-script-id="dbc85a" class="brxe-code">
1653<script>document.addEventListener('DOMContentLoaded', () => {
1654  const btn1 = document.getElementById('btn1');
1655  const btn2 = document.getElementById('btn2');
1656  const btn3 = document.getElementById('btn3');
1657
1658  const state1 = document.getElementById('state1');
1659  const state2 = document.getElementById('state2');
1660  const state3 = document.getElementById('state3');
1661
1662  if (!btn1 || !btn2 || !btn3 || !state1 || !state2 || !state3) return;
1663
1664  const buttons = [btn1, btn2, btn3];
1665  const states = [state1, state2, state3];
1666
1667  // Added a second parameter to check if this is the initial page load
1668  function switchState(activeIndex, isInitialLoad = false) {
1669    for (let i = 0; i < buttons.length; i++) {
1670      const video = states[i].querySelector('video');
1671
1672      if (i === activeIndex) {
1673        // Activate button and show state
1674        buttons[i].classList.add('btn-active');
1675        states[i].style.display = 'flex';
1676        
1677        // Resume video ONLY if it exists AND it's not the initial page load
1678        if (video && !isInitialLoad) {
1679          let playPromise = video.play();
1680          if (playPromise !== undefined) {
1681            playPromise.catch(error => {
1682              console.log("Browser prevented auto-playing the video.");
1683            });
1684          }
1685        }
1686      } else {
1687        // Deactivate button and hide state
1688        buttons[i].classList.remove('btn-active');
1689        states[i].style.display = 'none';
1690        
1691        // Pause video if it exists in this hidden state
1692        if (video) {
1693          video.pause();
1694        }
1695      }
1696    }
1697  }
1698
1699  // Set initial state but pass 'true' to prevent the video from playing
1700  switchState(0, true);
1701
1702  // Attach listeners (defaults to false, so videos will play on click)
1703  btn1.addEventListener('click', (e) => { 
1704    e.preventDefault(); 
1705    switchState(0); 
1706  });
1707  
1708  btn2.addEventListener('click', (e) => { 
1709    e.preventDefault(); 
1710    switchState(1); 
1711  });
1712  
1713  btn3.addEventListener('click', (e) => { 
1714    e.preventDefault(); 
1715    switchState(2); 
1716  });
1717});</script>
1717</div></div><div id="brxe-d6abbb" class="brxe-container"><h2 id="brxe-96cd9f" class="brxe-heading">Learn more</h2><div id="brxe-9a3829" class="brxe-block"><a id="brxe-4c75b7" href="/cnapp" class="brxe-div"><div id="brxe-031f48" class="brxe-text-basic">Cloud Security</div></a><a id="brxe-769c27" href="/ai-security-platform" class="brxe-div"><div id="brxe-dbd283" class="brxe-text-basic">AI Security</div></a><a id="brxe-1e16c3" href="/agentic-security" class="brxe-div"><div id="brxe-bc88c6" class="brxe-text-basic">Agentic Security</div></a></div></div></section><section id="brxe-423e4e" class="brxe-section"><div id="brxe-118188" class="brxe-container"><div id="brxe-84ba44" class="brxe-block"><h2 id="brxe-7dd70c" class="brxe-heading heading-32">Trusted and deployed by the biggest enterprises in the world</h2><a id="brxe-73f7f8" class="brxe-button bricks-button bricks-background-primary" href="/case-studies">See Case Studies</a></div><div class="brxe-rvjooe brxe-block"><div class="brxe-fbmjgf brxe-div"></div><div class="brxe-zslsay brxe-div"></div><div class="brxe-ekyfwa brxe-block horizontal-scrolling-elements"><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/09/callrail.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="callrail.svg" data-size="104px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind has truly acted as an extension of our security team, making it even easier for us to ensure compliance, automate security workflows, and focus our efforts on remediations in record time.</div></div><div class="brxe-inlguk brxe-block"><img width="120" height="120" src="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A woman with long dark hair, wearing a light blue shirt and brown belt, smiles while standing outdoors. Sunlight filters through green trees and vegetation, creating a bright, serene atmosphere. A walking path is visible in the background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png 120w, https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim-80x80.png 80w" sizes="(max-width: 120px) 100vw, 120px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Kurdeen Karim​</div><div class="brxe-kdsutj brxe-text-basic text-14">Information Security and Privacy​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-1.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-1" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind has truly acted as an extension of our security team, making it even easier for us to ensure compliance, automate security workflows, and focus our efforts on remediations in record time.</div><div class="brxe-gthbgl brxe-block"><img width="120" height="120" src="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A woman with long dark hair, wearing a light blue shirt and brown belt, smiles while standing outdoors. Sunlight filters through green trees and vegetation, creating a bright, serene atmosphere. A walking path is visible in the background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png 120w, https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim-80x80.png 80w" sizes="(max-width: 120px) 100vw, 120px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Kurdeen Karim​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Information Security and Privacy​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/05/h20ai.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="h20ai" data-size="48px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">We have consolidated multiple products while giving security engineers end-to-e
1717nd visibility, which we previously needed to use multiple products for.</div></div><div class="brxe-inlguk brxe-block"><img width="512" height="512" src="https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Ophir Zahavi" decoding="async" fetchpriority="high" srcset="https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi.png 512w, https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi-80x80.png 80w" sizes="(max-width: 512px) 100vw, 512px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Ophir Zahavi​</div><div class="brxe-kdsutj brxe-text-basic text-14">Head of Cloud Engineering​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-2.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-2" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">We have consolidated multiple products while giving security engineers end-to-end visibility, which we previously needed to use multiple products for.</div><div class="brxe-gthbgl brxe-block"><img width="512" height="512" src="https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Ophir Zahavi" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi.png 512w, https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/Ophir-Zahavi-80x80.png 80w" sizes="(max-width: 512px) 100vw, 512px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Ophir Zahavi​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Head of Cloud Engineering​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/01/yotpo-testimonial-logo.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="yotpo-testimonial-logo.svg" data-size="88px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind has drastically reduced triage and investigation time by correlating runtime detections with audit logs and giving us end-to-end visibility. Understanding who did what, how, and when, at a single glance has been a major game-changer.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="108" src="https://www.upwind.io/wp-content/uploads/2025/04/Dobromir-Kosev.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Dobromir-Kosev" decoding="async" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Dobromir Kosev​</div><div class="brxe-kdsutj brxe-text-basic text-14">Security Engineer​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind has drastically reduced triage and investigation time by correlating runtime detections with audit logs and giving us end-to-end visibility. Understanding who did what, how, and when, at a single glance has been a major game-changer.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="108" src="https://www.upwind.io/wp-content/uploads/2025/04/Dobromir-Kosev.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Dobromir-Kosev" decoding="async" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Dobromir Kosev​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Security Engineer​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img width="157" height="41" src="https://www.upwind.io/wp-content/uploads/2025/09/Intezer-Logo.png" class="brxe-fssmog brxe-image css-filter size-full" alt="Intezer-Logo" data-size="94px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">
1717Upwind has given us an end-to-end view of our multi-cloud infrastructure in a single platform, which previously required us to use multiple tools. Upwind truly acts as a single pane of glass for our security team, helping us focus on what’s important.</div></div><div class="brxe-inlguk brxe-block"><img width="512" height="512" src="https://www.upwind.io/wp-content/uploads/2026/08/Roy.jpg" class="brxe-gmzoer brxe-image css-filter size-full" alt="Roy" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/Roy.jpg 512w, https://www.upwind.io/wp-content/uploads/2026/08/Roy-300x300.jpg 300w, https://www.upwind.io/wp-content/uploads/2026/08/Roy-150x150.jpg 150w, https://www.upwind.io/wp-content/uploads/2026/08/Roy-80x80.jpg 80w" sizes="(max-width: 512px) 100vw, 512px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Roy Halevi​</div><div class="brxe-kdsutj brxe-text-basic text-14">CTO</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-3.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-3" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind has given us an end-to-end view of our multi-cloud infrastructure in a single platform, which previously required us to use multiple tools. Upwind truly acts as a single pane of glass for our security team, helping us focus on what’s important.</div><div class="brxe-gthbgl brxe-block"><img width="512" height="512" src="https://www.upwind.io/wp-content/uploads/2026/08/Roy.jpg" class="brxe-pmeykc brxe-image css-filter size-full" alt="Roy" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/Roy.jpg 512w, https://www.upwind.io/wp-content/uploads/2026/08/Roy-300x300.jpg 300w, https://www.upwind.io/wp-content/uploads/2026/08/Roy-150x150.jpg 150w, https://www.upwind.io/wp-content/uploads/2026/08/Roy-80x80.jpg 80w" sizes="(max-width: 512px) 100vw, 512px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Roy Halevi​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CTO</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/cogniteam.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="cogniteam" data-size="126px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind saves us time and money. It has been a game changer for our security team. We previously required multiple tools to protect our cloud infrastructure. With Upwind, we receive even better protection in one platform, helping our teams focus their efforts effectively.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="105" src="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A man wearing glasses and a white shirt stands with his arms crossed and a slight smile. He has short dark hair and a watch on his left wrist. The background features a partial logo on a wall." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Dr. Yehuda Elmaliah​</div><div class="brxe-kdsutj brxe-text-basic text-14">CEO</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-4.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-4" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind saves us time and money. It has been a game changer for our security team. We previously required multiple tools to protect our cloud infrastru
1717cture. With Upwind, we receive even better protection in one platform, helping our teams focus their efforts effectively.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="105" src="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A man wearing glasses and a white shirt stands with his arms crossed and a slight smile. He has short dark hair and a watch on his left wrist. The background features a partial logo on a wall." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Dr. Yehuda Elmaliah​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CEO</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/09/rivery.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="rivery.svg" data-size="93px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind’s detailed threat detections provide us with all the context we need from our CI/CD pipeline, process trees and network topology- allowing us to increase our time to resolution by 7x.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="110" src="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Person with short dark hair wearing a blue button-up shirt, standing against a white background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png 109w, https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Alon Reznik​</div><div class="brxe-kdsutj brxe-text-basic text-14">Chief Architect​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-13.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-13" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind’s detailed threat detections provide us with all the context we need from our CI/CD pipeline, process trees and network topology- allowing us to increase our time to resolution by 7x.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="110" src="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Person with short dark hair wearing a blue button-up shirt, standing against a white background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png 109w, https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Alon Reznik​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Chief Architect​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/661917c5a7cc10c6a4630e9f_logo-digital-turbine-1.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="661917c5a7cc10c6a4630e9f_logo-digital-turbine 1" data-size="71px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind superpowers our DevOps/Platform Engineering teams. At the scale of our infrastru
1717cture, we know we can only trust a few agent-based security products. Upwind’s efficient eBPF sensor is the only one that met our standards.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A person with a shaved head, wearing a black shirt, leans against a glass wall. The background features a modern office interior with lights and a workspace." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Gal Aviv​</div><div class="brxe-kdsutj brxe-text-basic text-14">CTO & GM​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-6.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-6" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind superpowers our DevOps/Platform Engineering teams. At the scale of our infrastructure, we know we can only trust a few agent-based security products. Upwind’s efficient eBPF sensor is the only one that met our standards.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A person with a shaved head, wearing a black shirt, leans against a glass wall. The background features a modern office interior with lights and a workspace." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Gal Aviv​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CTO & GM​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2024/07/Qwak_idBdUq_8mh_1.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="Qwak_idBdUq_8mh_1" data-size="60px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">I found it incredibly intuitive that our workload protection seamlessly integrates API security in a single platform. Combining infrastructure and application security represents a seamless synergy that addresses a critical need in the cloud security space. This is the API security solution we were waiting for.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="105" src="https://www.upwind.io/wp-content/uploads/2025/04/Yuval-Fernbach.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A man with short dark hair smiles subtly. He is wearing a black shirt and is set against a bright green circular background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Yuval-Fernbach.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Yuval-Fernbach-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Yuval Fernbach​</div><div class="brxe-kdsutj brxe-text-basic text-14">Co-Founder & CTO​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-5.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-5" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">I found it incredibly intuitive that our workload protection seamlessly integrates API security in a single platform. Combining infrastru
1717cture and application security represents a seamless synergy that addresses a critical need in the cloud security space. This is the API security solution we were waiting for.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="105" src="https://www.upwind.io/wp-content/uploads/2025/04/Yuval-Fernbach.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A man with short dark hair smiles subtly. He is wearing a black shirt and is set against a bright green circular background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Yuval-Fernbach.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Yuval-Fernbach-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Yuval Fernbach​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Co-Founder & CTO​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/09/callrail.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="callrail.svg" data-size="104px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Burnout from alert fatigue is real, Upwind helps us eliminate alert fatigue by providing us with information that is relevant and actionable in realtime.</div></div><div class="brxe-inlguk brxe-block"><img width="120" height="120" src="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A woman with long dark hair, wearing a light blue shirt and brown belt, smiles while standing outdoors. Sunlight filters through green trees and vegetation, creating a bright, serene atmosphere. A walking path is visible in the background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png 120w, https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim-80x80.png 80w" sizes="(max-width: 120px) 100vw, 120px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Kurdeen Karim​</div><div class="brxe-kdsutj brxe-text-basic text-14">Information Security and Privacy​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-1.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-1" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Burnout from alert fatigue is real, Upwind helps us eliminate alert fatigue by providing us with information that is relevant and actionable in realtime.</div><div class="brxe-gthbgl brxe-block"><img width="120" height="120" src="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A woman with long dark hair, wearing a light blue shirt and brown belt, smiles while standing outdoors. Sunlight filters through green trees and vegetation, creating a bright, serene atmosphere. A walking path is visible in the background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim.png 120w, https://www.upwind.io/wp-content/uploads/2025/04/Kurdeen-Karim-80x80.png 80w" sizes="(max-width: 120px) 100vw, 120px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Kurdeen Karim​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Information Security and Privacy​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/h2o-logo-1-1.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="h2o-logo (1) 1" data-size="48px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">
1717Upwind really changed the way we handle security. And It’s changing the entire industry. It saves us time, it minimizes the gap between teams and they have more collaboration today. Upwind is the security product that is loved by DevOps.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Asaf-Oren.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Man wearing sunglasses and a white shirt, standing outdoors with greenery and hills in the background, under a clear sky." decoding="async" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Asaf Oren​</div><div class="brxe-kdsutj brxe-text-basic text-14">Director of Cloud Development​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-2.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-2" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind really changed the way we handle security. And It’s changing the entire industry. It saves us time, it minimizes the gap between teams and they have more collaboration today. Upwind is the security product that is loved by DevOps.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Asaf-Oren.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Man wearing sunglasses and a white shirt, standing outdoors with greenery and hills in the background, under a clear sky." decoding="async" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Asaf Oren​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Director of Cloud Development​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/09/rivery.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="rivery.svg" data-size="93px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">The entire process using Upwind was incredibly simple. Within minutes of deployment, we already had 24/7 eyes on our infra with Upwind’s MDR service.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="110" src="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Person with short dark hair wearing a blue button-up shirt, standing against a white background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png 109w, https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Alon Reznik​</div><div class="brxe-kdsutj brxe-text-basic text-14">Chief Architect​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-13.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-13" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">The entire process using Upwind was incredibly simple. Within minutes of deployment, we already had 24/7 eyes on our infra with Upwind’s MDR service.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="110" src="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Person with short dark hair wearing a blue button-up shirt, standing against a white background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png 109w, https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">
1717Alon Reznik​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Chief Architect​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/intezer.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="intezer" data-size="94px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">We use Upwind's real-time insights to prioritize vulnerabilities effectively across various layers. This ensures our response is quick and well-informed, aligning with our operational priorities and threat landscape.</div></div><div class="brxe-inlguk brxe-block"><img width="117" height="116" src="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Portrait of a man with a beard and mustache, wearing a light gray shirt and a necklace. The background is a solid dark gray, and he is looking directly at the camera with a neutral expression." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png 117w, https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi-80x80.png 80w" sizes="(max-width: 117px) 100vw, 117px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Roy Halevi​</div><div class="brxe-kdsutj brxe-text-basic text-14">CTO​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-3.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-3" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">We use Upwind's real-time insights to prioritize vulnerabilities effectively across various layers. This ensures our response is quick and well-informed, aligning with our operational priorities and threat landscape.</div><div class="brxe-gthbgl brxe-block"><img width="117" height="116" src="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Portrait of a man with a beard and mustache, wearing a light gray shirt and a necklace. The background is a solid dark gray, and he is looking directly at the camera with a neutral expression." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png 117w, https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi-80x80.png 80w" sizes="(max-width: 117px) 100vw, 117px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Roy Halevi​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CTO​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/661917c5a7cc10c6a4630e9f_logo-digital-turbine-1.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="661917c5a7cc10c6a4630e9f_logo-digital-turbine 1" data-size="71px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind provides a level of visibility and context I have never seen before in a solution.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A person with a shaved head, wearing a black shirt, leans against a glass wall. The background features a modern office interior with lights and a workspace." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv-80x80.png 80w" sizes="(max-width: 106px) 100v
1717w, 106px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Gal Aviv​</div><div class="brxe-kdsutj brxe-text-basic text-14">CTO & GM​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-6.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-6" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind provides a level of visibility and context I have never seen before in a solution.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A person with a shaved head, wearing a black shirt, leans against a glass wall. The background features a modern office interior with lights and a workspace." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Gal-Aviv-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Gal Aviv​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CTO & GM​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/cogniteam.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="cogniteam" data-size="126px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Within minutes of connecting Upwind, we got huge value. We were able to understand our most critical vulnerabilities. Our team was able to take this information and start fixing our most critical risks - a task that would have taken us days or weeks to complete prior to using Upwind.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="105" src="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A man wearing glasses and a white shirt stands with his arms crossed and a slight smile. He has short dark hair and a watch on his left wrist. The background features a partial logo on a wall." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Dr. Yehuda Elmaliah​</div><div class="brxe-kdsutj brxe-text-basic text-14">CEO​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-4.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-4" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Within minutes of connecting Upwind, we got huge value. We were able to understand our most critical vulnerabilities. Our team was able to take this information and start fixing our most critical risks - a task that would have taken us days or weeks to complete prior to using Upwind.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="105" src="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A man wearing glasses and a white shirt stands with his arms crossed and a slight smile. He has short dark hair and a watch on his left wrist. The background features a partial logo on a wall." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Dr-Yehuda-Elmaliah-80x80.png 80w" sizes="(max-width: 106px) 100v
1717w, 106px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Dr. Yehuda Elmaliah​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CEO​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/h2o-logo-1-1.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="h2o-logo (1) 1" data-size="48px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upon deploying Upwind into our production environment, within just 5 minutes we gained comprehensive visibility into our infrastructure and applications. The integration provided us with invaluable insights into threat detection, vulnerabilities, and posture for all of our API endpoints.</div></div><div class="brxe-inlguk brxe-block"><img width="106" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Ophir-Zahavi.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="A man with a beard and sunglasses resting on his head smiles at the camera. He is wearing a dark polo shirt and stands in front of a blurred green background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Ophir-Zahavi.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Ophir-Zahavi-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Ophir Zahavi​</div><div class="brxe-kdsutj brxe-text-basic text-14">Cloud Engineering Manager​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-2.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-2" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upon deploying Upwind into our production environment, within just 5 minutes we gained comprehensive visibility into our infrastructure and applications. The integration provided us with invaluable insights into threat detection, vulnerabilities, and posture for all of our API endpoints.</div><div class="brxe-gthbgl brxe-block"><img width="106" height="106" src="https://www.upwind.io/wp-content/uploads/2025/04/Ophir-Zahavi.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="A man with a beard and sunglasses resting on his head smiles at the camera. He is wearing a dark polo shirt and stands in front of a blurred green background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Ophir-Zahavi.png 106w, https://www.upwind.io/wp-content/uploads/2025/04/Ophir-Zahavi-80x80.png 80w" sizes="(max-width: 106px) 100vw, 106px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Ophir Zahavi​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Cloud Engineering Manager​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/rivery.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="rivery" data-size="93px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">The fact that Upwind provides not only visibility but also contextualized vulnerability and threat analysis for ECS has been a game changer for our organization.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="110" src="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Person with short dark hair wearing a blue button-up shirt, standing against a white background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png 109w, https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">
1717Alon Reznik​</div><div class="brxe-kdsutj brxe-text-basic text-14">Chief Architect​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-13.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-13" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">The fact that Upwind provides not only visibility but also contextualized vulnerability and threat analysis for ECS has been a game changer for our organization.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="110" src="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Person with short dark hair wearing a blue button-up shirt, standing against a white background." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik.png 109w, https://www.upwind.io/wp-content/uploads/2025/04/Alon-Reznik-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Alon Reznik​</div><div class="brxe-tiwpcl brxe-text-basic text-14">Chief Architect​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2025/04/intezer.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="intezer" data-size="94px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind’s ability to not only identify and provide visibility into identities but also baseline their behavior has provided us with a new level of identity understanding. Using Upwind, we have been able to eliminate risky privileges, reduce the attack surface and streamline compliance.</div></div><div class="brxe-inlguk brxe-block"><img width="117" height="116" src="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Portrait of a man with a beard and mustache, wearing a light gray shirt and a necklace. The background is a solid dark gray, and he is looking directly at the camera with a neutral expression." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png 117w, https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi-80x80.png 80w" sizes="(max-width: 117px) 100vw, 117px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Roy Halevi​</div><div class="brxe-kdsutj brxe-text-basic text-14">CTO​</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-3.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-3" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind’s ability to not only identify and provide visibility into identities but also baseline their behavior has provided us with a new level of identity understanding. Using Upwind, we have been able to eliminate risky privileges, reduce the attack surface and streamline compliance.</div><div class="brxe-gthbgl brxe-block"><img width="117" height="116" src="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Portrait of a man with a beard and mustache, wearing a light gray shirt and a necklace. The background is a solid dark gray, and he is looking directly at the camera with a neutral expression." decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi.png 117w, https://www.upwind.io/wp-content/uploads/2025/04/Roy-Halevi-80x80.png 80w" sizes="(max-width: 117px) 100v
1717w, 117px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Roy Halevi​</div><div class="brxe-tiwpcl brxe-text-basic text-14">CTO​</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img width="2000" height="353" src="https://www.upwind.io/wp-content/uploads/2026/08/cyberhaven-logo.png" class="brxe-fssmog brxe-image css-filter size-full" alt="cyberhaven-logo" data-size="80px" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/cyberhaven-logo.png 2000w, https://www.upwind.io/wp-content/uploads/2026/08/cyberhaven-logo-300x53.png 300w, https://www.upwind.io/wp-content/uploads/2026/08/cyberhaven-logo-1024x181.png 1024w, https://www.upwind.io/wp-content/uploads/2026/08/cyberhaven-logo-768x136.png 768w" sizes="(max-width: 2000px) 100vw, 2000px" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">The AI Agentic Pack helps our team focus on what is actually exposed, what matters most to the business, and prioritize action with far greater confidence and efficiency.</div></div><div class="brxe-inlguk brxe-block"><img width="400" height="400" src="https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="aman-sirohi-testimonial" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial.png 400w, https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial-80x80.png 80w" sizes="(max-width: 400px) 100vw, 400px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Aman Sirohi</div><div class="brxe-kdsutj brxe-text-basic text-14">SVP - Chief Security Officer & IT</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-7.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-7" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">The AI Agentic Pack helps our team focus on what is actually exposed, what matters most to the business, and prioritize action with far greater confidence and efficiency.</div><div class="brxe-gthbgl brxe-block"><img width="400" height="400" src="https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="aman-sirohi-testimonial" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial.png 400w, https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/aman-sirohi-testimonial-80x80.png 80w" sizes="(max-width: 400px) 100vw, 400px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Aman Sirohi</div><div class="brxe-tiwpcl brxe-text-basic text-14">SVP - Chief Security Officer & IT</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/05/VECTRA.svg" class="brxe-fssmog brxe-image css-filter size-full" alt="VECTRA" data-size="80px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">We needed to know what vulnerabilities are real so we can fix those and Upwind was the only platform that could do this for us.</div></div><div class="brxe-inlguk brxe-block"><img width="400" height="400" src="https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="9c1b4638334c62ce27193505ef4ee30a965ac094" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094.png 400w, https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094-80x80.png 80w" sizes="(max-width: 400px) 100v
1717w, 400px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Chris Long</div><div class="brxe-kdsutj brxe-text-basic text-14">Cybersecurity Leader</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-8.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-8" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">We needed to know what vulnerabilities are real so we can fix those and Upwind was the only platform that could do this for us.</div><div class="brxe-gthbgl brxe-block"><img width="400" height="400" src="https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="9c1b4638334c62ce27193505ef4ee30a965ac094" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094.png 400w, https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/9c1b4638334c62ce27193505ef4ee30a965ac094-80x80.png 80w" sizes="(max-width: 400px) 100vw, 400px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Chris Long</div><div class="brxe-tiwpcl brxe-text-basic text-14">Cybersecurity Leader</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/05/CAVA.svg" class="brxe-fssmog brxe-image css-filter size-full" alt="CAVA" data-size="80px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">With Upwind if there is an alert we take it seriously because there are no false positives.</div></div><div class="brxe-inlguk brxe-block"><img width="359" height="359" src="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="9e30cdc63cf28c58e1dad2b418de470073b83742" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png 359w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-80x80.png 80w" sizes="(max-width: 359px) 100vw, 359px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Eli Edelkind</div><div class="brxe-kdsutj brxe-text-basic text-14">CISO, Infrastructure & Tech Operations</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frame-9.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="Frame-9" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">With Upwind if there is an alert we take it seriously because there are no false positives.</div><div class="brxe-gthbgl brxe-block"><img width="359" height="359" src="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="9e30cdc63cf28c58e1dad2b418de470073b83742" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png 359w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-80x80.png 80w" sizes="(max-width: 359px) 100vw, 359px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Eli Edelkind</div><div class="brxe-tiwpcl brxe-text-basic text-14">
1717CISO, Infrastructure & Tech Operations</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/06/iac-logo.svg" class="brxe-fssmog brxe-image css-filter size-full" alt="iac-logo" data-size="80px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind's blue agent helps us run deep correlations and investigations across multiple data sources, cutting analysts work from hours to minutes.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="109" src="https://www.upwind.io/wp-content/uploads/2026/06/vishon-ganesh.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="vishon-ganesh" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/06/vishon-ganesh.png 109w, https://www.upwind.io/wp-content/uploads/2026/06/vishon-ganesh-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Vishon Ganesh</div><div class="brxe-kdsutj brxe-text-basic text-14">Director Information Security</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/iac-popup-logo.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="iac-popup-logo" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind's blue agent helps us run deep correlations and investigations across multiple data sources, cutting analysts work from hours to minutes.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="109" src="https://www.upwind.io/wp-content/uploads/2026/06/vishon-ganesh.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="vishon-ganesh" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/06/vishon-ganesh.png 109w, https://www.upwind.io/wp-content/uploads/2026/06/vishon-ganesh-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Vishon Ganesh</div><div class="brxe-tiwpcl brxe-text-basic text-14">Director Information Security</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img width="1024" height="288" src="https://www.upwind.io/wp-content/uploads/2026/08/insurity-logo.png" class="brxe-fssmog brxe-image css-filter size-full" alt="insurity-logo" data-size="80px" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/insurity-logo.png 1024w, https://www.upwind.io/wp-content/uploads/2026/08/insurity-logo-300x84.png 300w, https://www.upwind.io/wp-content/uploads/2026/08/insurity-logo-768x216.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">With our initial deployment of Upwind Agent Pack, our visibility and telemetry across our public cloud environments has increased not by percents but by multiples. Our program visibility is 3x or 4x what it was previously. Add to that the Agent Pack’s ability to show runtime vulnerabilities and we can target and remediate across our enterprise where it matters most.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="109" src="https://www.upwind.io/wp-content/uploads/2026/06/Frame-31470.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="Frame 31470" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/06/Frame-31470.png 109w, https://www.upwind.io/wp-content/uploads/2026/06/Frame-31470-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Jay Wilson</div><div class="brxe-kdsutj brxe-text-basic text-14">CIO + CISO</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/insurity-popup-logo.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="insurity-popup-logo" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">With our initial deployment of Upwind Agent Pack, our visibility and telemetry across our public cloud environments has increased not by percents but by multiples. Our program visibility is 3x or 4x what it was previously. Add to that the Agent Pack’s ability to show runtime vulnerabilities and we can target and remediate across our enterprise where it matters most.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="109" src="https://www.upwind.io/wp-content/uploads/2026/06/Frame-31470.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="Frame 31470" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/06/Frame-31470.png 109w, https://www.upwind.io/wp-content/uploads/2026/06/Frame-31470-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Jay Wilson</div><div class="brxe-tiwpcl brxe-text-basic text-14">CIO + CISO</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/06/Litera-Logo.svg" class="brxe-fssmog brxe-image css-filter size-full" alt="Litera-Logo" data-size="80px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind green agent helps our team to prioritize the highest impact actions in our environment, instead of chasing 100's of fixes, we find the one fix that affects hundreds of assets saving our teams days of effort.</div></div><div class="brxe-inlguk brxe-block"><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Pravesh A.</div><div class="brxe-kdsutj brxe-text-basic text-14">Director of Cybersecurity</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/litera-popup-logo.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="litera-popup-logo" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind green agent helps our team to prioritize the highest impact actions in our environment, instead of chasing 100's of fixes, we find the one fix that affects hundreds of assets saving our teams days of effort.</div><div class="brxe-gthbgl brxe-block"><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Pravesh A.</div><div class="brxe-tiwpcl brxe-text-basic text-14">Director of Cybersecurity</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/05/CAVA.svg" class="brxe-fssmog brxe-image css-filter size-full" alt="CAVA" data-size="80px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind provides an incredible ability to see your cloud environments that I just hadn’t seen before.</div></div><div class="brxe-inlguk brxe-block"><img width="359" height="359" src="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="9e30cdc63cf28c58e1dad2b418de470073b83742" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png 359w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-80x80.png 80w" sizes="(max-width: 359px) 100vw, 359px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Eli Edelkind</div><div class="brxe-kdsutj brxe-text-basic text-14">
1717CISO, Infrastructure & Tech Operations</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/cava-popup-logo.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="cava-popup-logo" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind provides an incredible ability to see your cloud environments that I just hadn’t seen before.</div><div class="brxe-gthbgl brxe-block"><img width="359" height="359" src="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="9e30cdc63cf28c58e1dad2b418de470073b83742" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742.png 359w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/05/9e30cdc63cf28c58e1dad2b418de470073b83742-80x80.png 80w" sizes="(max-width: 359px) 100vw, 359px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Eli Edelkind</div><div class="brxe-tiwpcl brxe-text-basic text-14">CISO, Infrastructure & Tech Operations</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img width="1024" height="566" src="https://www.upwind.io/wp-content/uploads/2026/08/Nubank_logo_2021.svg-1024x566.webp" class="brxe-fssmog brxe-image css-filter size-large" alt="Nubank_logo_2021.svg" data-size="80px" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/Nubank_logo_2021.svg-1024x566.webp 1024w, https://www.upwind.io/wp-content/uploads/2026/08/Nubank_logo_2021.svg-300x166.webp 300w, https://www.upwind.io/wp-content/uploads/2026/08/Nubank_logo_2021.svg-768x424.webp 768w, https://www.upwind.io/wp-content/uploads/2026/08/Nubank_logo_2021.svg.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">Upwind has mastered the hardest part of cloud security: providing the deep context required for accurate remediation. That extends to real time monitoring. The Agentic Pack release takes this even further, using specialized agents to manage investigation and validation at a scale that was previously impossible.</div></div><div class="brxe-inlguk brxe-block"><img width="109" height="109" src="https://www.upwind.io/wp-content/uploads/2026/06/dave-hannigan.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="dave-hannigan" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/06/dave-hannigan.png 109w, https://www.upwind.io/wp-content/uploads/2026/06/dave-hannigan-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Dave Hannigan</div><div class="brxe-kdsutj brxe-text-basic text-14">CISO</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/nu-popup.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="nu-popup" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">Upwind has mastered the hardest part of cloud security: providing the deep context required for accurate remediation. That extends to real time monitoring. The Agentic Pack release takes this even further, using specialized agents to manage investigation and validation at a scale that was previously impossible.</div><div class="brxe-gthbgl brxe-block"><img width="109" height="109" src="https://www.upwind.io/wp-content/uploads/2026/06/dave-hannigan.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="dave-hannigan" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/06/dave-hannigan.png 109w, https://www.upwind.io/wp-content/uploads/2026/06/dave-hannigan-80x80.png 80w" sizes="(max-width: 109px) 100vw, 109px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Dave Hannigan</div><div class="brxe-tiwpcl brxe-text-basic text-14">CISO</div></div></div></div></div></div></div><div class="brxe-sfvetv brxe-block horizontal-scrolling-block"><div class="brxe-tdhfns brxe-block horizontal-scrolling-block-inner gradient-section"><div class="brxe-xjxnqs brxe-block horizontal-scrolling-block-inner-overlay"></div><div class="brxe-omjaao brxe-block content-layer"><div class="brxe-pdbnrp brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Sixt_Logo.svg" class="brxe-fssmog brxe-image css-filter size-large" alt="Sixt_Logo" data-size="80px" decoding="async" /></div><div class="brxe-fdndcv brxe-block"><div class="brxe-erdnwq brxe-text-basic text-14">In our fast-paced global operations, real-time context is everything. Upwind gives us instant visibility into our 
1717cloud environment, allowing us to identify and neutralize runtime risks before they ever become operational threats.</div></div><div class="brxe-inlguk brxe-block"><img width="400" height="400" src="https://www.upwind.io/wp-content/uploads/2026/08/itay-livne.png" class="brxe-gmzoer brxe-image css-filter size-full" alt="itay-livne" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/itay-livne.png 400w, https://www.upwind.io/wp-content/uploads/2026/08/itay-livne-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/08/itay-livne-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/08/itay-livne-80x80.png 80w" sizes="(max-width: 400px) 100vw, 400px" /><div class="brxe-ujdveo brxe-block"><div class="brxe-trpqwc brxe-text-basic text-14">Itay Livne</div><div class="brxe-kdsutj brxe-text-basic text-14">CISO</div></div></div></div><div class="brxe-erycct brxe-block horizontal-scrolling-block-popup-content"><div class="brxe-govwpy brxe-block"></div><div class="brxe-wkrfhj brxe-block"><div class="brxe-fpjbrd brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/sixt-popup-logo.svg" class="brxe-ticcbg brxe-image css-filter size-large" alt="sixt-popup-logo" decoding="async" /></div><div class="brxe-pzllzp brxe-text-basic">In our fast-paced global operations, real-time context is everything. Upwind gives us instant visibility into our cloud environment, allowing us to identify and neutralize runtime risks before they ever become operational threats.</div><div class="brxe-gthbgl brxe-block"><img width="400" height="400" src="https://www.upwind.io/wp-content/uploads/2026/08/itay-livne.png" class="brxe-pmeykc brxe-image css-filter size-full" alt="itay-livne" decoding="async" srcset="https://www.upwind.io/wp-content/uploads/2026/08/itay-livne.png 400w, https://www.upwind.io/wp-content/uploads/2026/08/itay-livne-300x300.png 300w, https://www.upwind.io/wp-content/uploads/2026/08/itay-livne-150x150.png 150w, https://www.upwind.io/wp-content/uploads/2026/08/itay-livne-80x80.png 80w" sizes="(max-width: 400px) 100vw, 400px" /><div class="brxe-sxxpzl brxe-block"><div class="brxe-dcjppx brxe-text-basic text-14">Itay Livne</div><div class="brxe-tiwpcl brxe-text-basic text-14">CISO</div></div></div></div></div></div></div></div></div></div></section><section id="brxe-737ef0" class="brxe-section"><div id="brxe-5be3fe" class="brxe-container"><div id="brxe-f3acf3" class="brxe-block"><h2 id="brxe-8be174" class="brxe-heading heading-32">Upwind recognized as a leading cloud security platform</h2></div><div id="brxe-50b720" class="brxe-block"><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1718<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1719<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1720<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1721<div id="brxe-d2da6e" class="brxe-block"><div id="brxe-dbfee6" class="brxe-text-basic heading-16">Rated 4.9 out of 5 on Gartner® Peer Insights™ in the CNAPP Category</div><img src="https://www.upwind.io/wp-content/uploads/2026/08/white-stars.svg" class="brxe-image css-filter size-large" alt="white-stars.svg" id="brxe-e0c002" decoding="async" /><a id="brxe-620421" class="brxe-button bricks-button bricks-background-primary" href="https://www.gartner.com/reviews/market/cloud-native-application-protection-
1721platforms/vendor/upwind/product/upwind">Read Reviews</a></div></div><div id="brxe-98d47f" class="brxe-block"></div><div id="brxe-a95bf7" data-script-id="a95bf7" class="brxe-slider-nested splide brx-auto-height" data-splide="{&quot;type&quot;:&quot;loop&quot;,&quot;direction&quot;:&quot;ltr&quot;,&quot;keyboard&quot;:&quot;global&quot;,&quot;height&quot;:&quot;auto&quot;,&quot;gap&quot;:&quot;20px&quot;,&quot;start&quot;:0,&quot;perPage&quot;:3,&quot;perMove&quot;:&quot;1&quot;,&quot;speed&quot;:400,&quot;interval&quot;:3000,&quot;autoHeight&quot;:true,&quot;autoplay&quot;:false,&quot;pauseOnHover&quot;:false,&quot;pauseOnFocus&quot;:false,&quot;arrows&quot;:true,&quot;pagination&quot;:false,&quot;mediaQuery&quot;:&quot;max&quot;,&quot;breakpoints&quot;:{&quot;1279&quot;:{&quot;gap&quot;:&quot;20px&quot;,&quot;perPage&quot;:&quot;3&quot;,&quot;perMove&quot;:&quot;1&quot;,&quot;autoHeight&quot;:true,&quot;arrows&quot;:true},&quot;767&quot;:{&quot;perPage&quot;:&quot;2&quot;},&quot;478&quot;:{&quot;perPage&quot;:&quot;1&quot;}}}"><div class="splide__track"><div class="splide__list"><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Group-11937.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Group 11937" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1722<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1723<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1724<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1725</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Demo Competition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Top Takeaways from the Gartner® 2025 Market Guide for CNAPP</h3><a class="brxe-kglili brxe-text-link" href="/feed/2025-gartner-market-guide-for-cloud-native-application-protection-platforms-5-takeaways-that-we-believe-matter">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Latio-Tamnoon-1st-Place.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Latio-Tamnoon-1st-Place" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1726<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1727<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1728<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32">
1728<path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1729</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Market Guide</div><h3 class="brxe-aaogyn brxe-heading heading-20">Practitioners Vote Upwind 
#1 Cloud Security Platform in Demo Showdown</h3><a class="brxe-kglili brxe-text-link" href="/feed/upwind-wins-big-at-cloud-security-showdown-hosted-by-tamnoon-analyst-james-berthoty" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/QKS-SPARK-Matrix-LEADER.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="QKS-SPARK-Matrix-LEADER" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1730<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1731<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1732<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1733</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Market Guide</div><h3 class="brxe-aaogyn brxe-heading heading-20">
1733Upwind Recognized as a Leader in the QKS Group 2025 SPARK Matrix™ for CNAPP</h3><a class="brxe-kglili brxe-text-link" href="/feed/upwind-recognized-as-a-leader-in-the-qks-group-2025-spark-matrix-for-cnapp" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Frost-Sullivan-Company-of-the-year.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Frost-Sullivan-Company-of-the-year" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1734<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1735<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1736<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1737</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Recognized as Frost & Sullivan Company of the Year 2025</h3><a class="brxe-kglili brxe-text-link" href="/frostandsullivan-2025-company-of-the-year" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/GigaOm-LEADER-1.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="GigaOm-LEADER" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1738<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1739<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1740<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1741</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">
1741Upwind Recognized as a Leader & Out-performer in Container Security by GigaOm</h3><a class="brxe-kglili brxe-text-link" href="/gigaom-2025-container-security-radar-report" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Latio-2X-Leader-1.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Latio-2X-Leader" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1742<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1743<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1744<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1745</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Market Guide</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Recognized as a Cloud Security & CADR Leader in the Latio Cloud Security Market Report</h3><a class="brxe-kglili brxe-text-link" href="/feed/upwind-recognized-as-a-cloud-security-cadr-leader-in-the-2025-latio-cloud-security-market-report">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Latio-Innovator-1.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Latio-Innovator" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1746<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1747<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1748<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1749</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Market Guide</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Named a Runtime Innovator & API Security Innovator in the 2026 Latio Application Security Market Report</h3><a class="brxe-kglili brxe-text-link" href="/latio-2026-application-security-market-report">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Cyber150.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Cyber150" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32">
1749<path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1750<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1751<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1752<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1753</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Recognized in the Cyber150 Top 'Cybersecurity' Vendors of 2026</h3><a class="brxe-kglili brxe-text-link" href="https://cyber150.com/rooms/upwind/" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/CRN-Sec100.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="CRN-Sec100" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1754<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1755<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1756<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1757</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Recognized in the CRN Security 100: The 20 Coolest Web, Email and Application Security Companies Of 2026</h3><a class="brxe-kglili brxe-text-link" href="https://www.crn.com/news/security/2026/the-20-coolest-web-email-and-application-security-companies-of-2026-the-security-100?page=19" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/CRN-AI100.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="CRN-AI100" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1758<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1759<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32">
1759<path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1760<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1761</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Recognized in the CRN AI 100: The 20 Hottest AI Cybersecurity Companies</h3><a class="brxe-kglili brxe-text-link" href="https://www.crn.com/news/security/2026/the-20-hottest-ai-cybersecurity-companies-the-2026-crn-ai-100?page=19" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/CRN-StellarStartup.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="CRN-StellarStartup" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1762<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1763<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1764<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1765</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Recognized as a CRN Stellar Startup 2025</h3><a class="brxe-kglili brxe-text-link" href="https://www.crn.com/rankings-and-lists/stellar-startups-2025-details?c=87" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Fast-Company-MOST-INNOVATIVE.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Fast Company MOST INNOVATIVE" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1766<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1767<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1768<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1769</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind Named to Fast Company Annual List of the World’s Most Innovative Companies of 2026</h3><a class="brxe-kglili brxe-text-link" href="https://www.businesswire.com/news/home/20260324672819/en/Upwind-Named-to-Fast-Companys-Annual-List-of-the-Worlds-Most-Innovative-Companies-of-2026" target="_blank">Learn More</a></div></div></div></div><div class="brxe-tohdxr brxe-block"><div class="brxe-fwitce brxe-block"><div class="brxe-ixudtw brxe-block"><div class="brxe-dgfwft brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Forbes-CYBER60.svg" class="brxe-fajzll brxe-image css-filter size-large" alt="Forbes CYBER60" decoding="async" /><svg class="top-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32">
1769<path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1770<svg class="top-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1771<svg class="bottom-left" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1772<svg class="bottom-right" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 32 32"><path d="M32 15.99c-8.84 0-15.99 7.17-15.99 16.01 0-8.84-7.17-16.01-16.01-16.01 8.84 0 16.01-7.17 16.01-15.99 0 8.83 7.15 15.99 15.99 15.99" style="fill:#fff"/></svg>
1773</div><div class="brxe-ihekuj brxe-block"><div class="brxe-ncomkr brxe-text-basic text-14">Analyst Recognition</div><h3 class="brxe-aaogyn brxe-heading heading-20">Upwind named to Forbes Cyber60 2024-2025-2026 (Three Years in a Row)</h3><a class="brxe-kglili brxe-text-link" href="https://lsvp.com/cyber60-2025-2026/" target="_blank">Learn More</a></div></div></div></div></div></div><div class="splide__arrows custom">
1773<button class="splide__arrow splide__arrow--prev" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" width="15" height="25" viewBox="0 0 15 25" fill="none"><path d="M13.5 23.1484L1.5 11.2306L13.5 1.14844" stroke="#94A3B8" stroke-width="3" stroke-linejoin="round"></path></svg></button><button class="splide__arrow splide__arrow--next" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" width="15" height="25" viewBox="0 0 15 25" fill="none"><path d="M1.05664 1.06421L13.0566 12.982L1.05664 23.0642" stroke="#94A3B8" stroke-width="3" stroke-linejoin="round"></path></svg></button></div></div></div></section><section id="brxe-d68eef" class="brxe-section"><div id="brxe-fbcc11" class="brxe-container"><h2 id="brxe-12010f" class="brxe-heading">Stay ahead of the threat curve</h2><div id="brxe-e3ad6b" class="brxe-text"><p>Upwind’s world-class researchers uncover zero-days and active threats in the wild, delivering intelligence at AI speed.</p>
1774</div><a id="brxe-191f18" class="brxe-button bricks-button bricks-background-primary" href="/ai-threat-feed">See the latest Upwind Threat Feed</a></div><div id="brxe-bc3122" class="brxe-container"><div id="brxe-bb3753" data-script-id="bb3753" class="brxe-code"><div class="timeline-section"></div><style>:root {
1775  --border-gray: #e2e2e2;
1776}
1777
1778/* ── Timeline Section ──────────────────────────────────────────────────────── */
1779
1780.timeline-section {
1781  position: relative;
1782  width: 100%;
1783  overflow: hidden;
1784  background: #fff;
1785}
1786
1787/* Hidden on mobile */
1788@media (max-width: 767px) {
1789  .timeline-section {
1790    display: none;
1791  }
1792}
1793
1794/* ── Scroll container ──────────────────────────────────────────────────────── */
1795
1796.tl-scroll {
1797  width: 100%;
1798  overflow-x: scroll;
1799  overflow-y: hidden;
1800  cursor: grab;
1801  scrollbar-width: none; /* Firefox */
1802  -ms-overflow-style: none; /* IE/Edge */
1803  user-select: none;
1804  -webkit-user-select: none;
1805}
1806
1807.tl-scroll::-webkit-scrollbar {
1808  display: none;
1809}
1810.tl-scroll.is-dragging {
1811  cursor: grabbing;
1812}
1813
1814/* ── Track ─────────────────────────────────────────────────────────────────── */
1815
1816.tl-track {
1817  position: relative;
1818  /* height driven by line-y + card height + padding */
1819  height: 280px;
1820  /* width set by JS */
1821}
1822
1823/* ── Dashed line ───────────────────────────────────────────────────────────── */
1824
1825.tl-line {
1826  position: absolute;
1827  height: 1px;
1828  left: 0;
1829  /* top set by JS (lineY) */
1830  /* SVG tile: 4px wide = 2px dash + 2px gap, matching stroke-dasharray="2 2" */
1831  background-image: url("data:image/svg+xml,%3Csvg width='4' height='1' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .5H4' stroke='%23C7C7C7' stroke-dasharray='2 2'/%3E%3C/svg%3E");
1832  background-repeat: repeat-x;
1833  background-size: 4px 1px;
1834  pointer-events: none;
1835}
1836
1837/* ── Dot wrapper ───────────────────────────────────────────────────────────── */
1838
1839.tl-dot-wrapper {
1840  position: absolute;
1841  /* width/height = dot size; centered on the line via transform in JS */
1842  width: 7px;
1843  height: 7px;
1844  /* top + left set by JS */
1845  transform: translate(-50%, -50%);
1846}
1847
1848/* ── Hit area (30×30 transparent) ──────────────────────────────────────────── */
1849
1850.tl-dot-hit {
1851  position: absolute;
1852  width: 30px;
1853  height: 30px;
1854  top: 50%;
1855  left: 50%;
1856  transform: translate(-50%, -50%);
1857  cursor: default;
1858  background: transparent;
1859  z-index: 2;
1860}
1861
1862.tl-dot-wrapper[data-has-post] .tl-dot-hit {
1863  cursor: pointer;
1864}
1865
1866/* ── Visual dot ─────────────────────────────────────────────────────────────── */
1867
1868.tl-dot-vis {
1869  position: absolute;
1870  width: 7px;
1871  height: 7px;
1872  top: 50%;
1873  left: 50%;
1874  transform: translate(-50%, -50%);
1875  border-radius: 50%;
1876  background-color: #c7c7c7;
1877  pointer-events: none;
1878  transition: background-color 0.2s ease;
1879  z-index: 1;
1880}
1881
1882.tl-dot-wrapper.is-active .tl-dot-vis {
1883  background-color: #141217;
1884}
1885
1886/* ── Label above dot (time + date) ─────────────────────────────────────────── */
1887
1888.tl-dot-label {
1889  position: absolute;
1890  /* bottom of label = 12px above top of wrapper */
1891  bottom: calc(100% + 12px);
1892  left: 50%;
1893  transform: translateX(-50%);
1894  text-align: center;
1895  white-space: nowrap;
1896  pointer-events: none;
1897  opacity: 0;
1898  z-index: 3;
1899}
1900
1901.tl-dot-wrapper.is-active .tl-dot-label {
1902  /* opacity controlled by JS (fade) */
1903}
1904
1905.tl-time {
1906  display: block;
1907  font-size: 12px;
1908  font-weight: 400;
1909  color: #141217;
1910  line-height: 1.4;
1911  font-family: "DM Mono", monospace;
1912}
1913
1914.tl-date {
1915  display: block;
1916  font-size: 11px;
1917  font-weight: 400;
1918  color: #141217;
1919  line-height: 1.4;
1920  font-family: "DM Mono", monospace;
1921}
1922
1923/* ── Card below dot ─────────────────────────────────────────────────────────── */
1924
1925.tl-dot-card {
1926  position: absolute;
1927  /* top of card = 12px below bottom of wrapper */
1928  top: calc(100% + 12px);
1929  left: 50%;
1930  transform: translateX(-50%);
1931  background: #fff;
1932  border: 1px solid var(--border-gray);
1933  border-radius: 8px;
1934  padding: 16px;
1935  opacity: 0;
1936  pointer-events: none;
1937  z-index: 3;
1938  box-sizing: border-box;
1939  display: flex;
1940  flex-direction: column;
1941  align-items: center;
1942  gap: 20px;
1943  width: 205px;
1944}
1945
1946.tl-dot-wrapper.is-active .tl-dot-card {
1947  pointer-events: auto;
1948}
1949
1950.tl-cve {
1951  font-size: 11px;
1952  color: #F2583C;
1953  text-transform: uppercase;
1954  letter-spacing: 0.02em;
1955  font-family: "Upwind Sans", "aktiv-grotesk", sans-serif;
1956  border: 1px solid #FFBDB0;
1957  height: 20px;
1958  text-overflow: ellipsis;
1959  border-radius: 4px;
1960  padding: 0 4px;
1961  background: #FFF2F0;
1962  display: -webkit-box;
1963  -webkit-box-orient: vertical;
1964  -webkit-line-clamp: 1;
1965  overflow: hidden;
1966  width: 171px;
1967  max-width: 100%;
1968  text-align: left;
1969  line-height: 18px;
1970}
1971
1972.tl-title {
1973  font-size: 13px;
1974  text-align: center;
1975  color: #141217;
1976  line-height: 1.45;
1977  font-family: "Upwind Sans", "aktiv-grotesk", sans-serif;
1978  /* clamp to 3 lines */
1979  display: -webkit-box;
1980  -webkit-line-clamp: 3;
1981  -webkit-box-orient: vertical;
1982  overflow: hidden;
1983}
1984
1985.tl-btns {
1986  display: flex;
1987  gap: 8px;
1988  flex-wrap: none;
1989}
1990
1991.tl-btn {
1992  display: inline-block;
1993  font-size: 12px !important;
1994  padding: 5px 10px;
1995  border-radius: 4px;
1996  text-decoration: none !important;
1997  cursor: pointer;
1998  white-space: nowrap;
1999  font-family: "Upwind Sans", "aktiv-grotesk", sans-serif !important;
2000  transition: all 0.15s ease;
2001  line-height: 1 !important;
2002  font-weight: 400 !important;
2003
2004  /* 1. Base foreground colors (These sit ON TOP of the background) */
2005  border: 1px solid var(--border-gray);
2006  color: #141217 !important;
2007
2008  /* 2. Permanent background layers */
2009  background-origin: border-box;
2010  -webkit-background-clip: text, padding-box, border-box !important;
2011  background-clip: text, padding-box, border-box !important;
2012
2013  /* Top layer (clipped to text), Middle layer (replaces your white background), Bottom layer (clipped to border) */
2014  background-image:
2015    linear-gradient(94deg, #1e71ed -1.2%, #9214c4 44.48%, #f2583c 98.47%),
2016    linear-gradient(#ffffff, #ffffff),
2017    linear-gradient(94deg, #1e71ed -1.2%, #9214c4 44.48%, #f2583c 98.47%) !important;
2018}
2019
2020.tl-btn:hover {
2021  /* 3. On hover, fade out the top solid colors to reveal the backgrounds underneath */
2022  border-color: transparent;
2023  color: transparent !important;
2024}
2025
2026/* ── Loading indicator ──────────────────────────────────────────────────────── */
2027
2028.tl-loader {
2029  position: absolute;
2030  left: 24px;
2031  top: 50%;
2032  transform: translateY(-50%);
2033  display: flex;
2034  align-items: center;
2035  gap: 6px;
2036  opacity: 0;
2037  pointer-events: none;
2038  transition: opacity 0.2s ease;
2039  z-index: 10;
2040}
2041
2042.tl-loader.is-visible {
2043  opacity: 1;
2044}
2045
2046.tl-loader-dot {
2047  width: 5px;
2048  height: 5px;
2049  border-radius: 50%;
2050  background: #c7c7c7;
2051  animation: tl-pulse 1.2s ease-in-out infinite;
2052}
2053.tl-loader-dot:nth-child(2) {
2054  animation-delay: 0.2s;
2055}
2056.tl-loader-dot:nth-child(3) {
2057  animation-delay: 0.4s;
2058}
2059
2060@keyframes tl-pulse {
2061  0%,
2062  80%,
2063  100% {
2064    transform: scale(0.8);
2065    opacity: 0.5;
2066  }
2067  40% {
2068    transform: scale(1);
2069    opacity: 1;
2070  }
2071}
2072
2073/* ── Fade Gradients ────────────────────────────────────────────────────────── */
2074
2075.timeline-section::before,
2076.timeline-section::after {
2077  content: "";
2078  position: absolute;
2079  top: 0;
2080  bottom: 0;
2081  width: 100px; /* Controls how far the gradient stretches */
2082  pointer-events: none;
2083  z-index: 5; /* Sits above the cards (z-index: 3) but below the loader */
2084}
2085
2086.timeline-section::before {
2087  left: 0;
2088  background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
2089}
2090
2091.timeline-section::after {
2092  right: 0;
2093  background: linear-gradient(to left, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
2094}
2095</style>
2095<script>/**
2096 * Threat Post Timeline
2097 * Interactive horizontal timeline for /wp-json/wp/v2/threat-post posts.
2098 * Desktop + tablet only (viewport > 767px).
2099 * MAX 10 ITEMS - LAZY LOADING REMOVED
2100 */
2101(() => {
2102  'use strict';
2103
2104  // ── Config ──────────────────────────────────────────────────────────────────
2105  const CFG = {
2106    apiBase:        'https://www.upwind.io',
2107    endpoint:       '/wp-json/wp/v2/threat-post',
2108    perPage:        10,                    // Only fetch 10 posts total
2109    section:        '.timeline-section',   
2110    dotSpacing:     70,                    
2111    dotSize:        7,                     
2112    hitSize:        30,                    
2113    placeholderBuf: 0,                     
2114    lineY:          90,                    
2115    trackPadLeft:   200,                   // <-- Changed from trackPadX and increased to 250
2116    trackPadRight:  200,                   
2117    fadeDuration:   180,                   
2118    minWidth:       768,                   
2119  };
2120
2121  if (window.innerWidth < CFG.minWidth) return;
2122
2123  const sectionEl = document.querySelector(CFG.section);
2124  if (!sectionEl) return;
2125
2126  // ── State ───────────────────────────────────────────────────────────────────
2127  let posts       = [];   
2128  let totalDots   = 0;    
2129  let activeDot   = -1;   
2130  let isLoading   = false;
2131
2132  let isDragging  = false;
2133  let dragStartX  = 0;
2134  let dragScrollX = 0;
2135
2136  // ── DOM skeleton ────────────────────────────────────────────────────────────
2137  const scrollEl = document.createElement('div');
2138  scrollEl.className = 'tl-scroll';
2139  sectionEl.appendChild(scrollEl);
2140
2141  const trackEl = document.createElement('div');
2142  trackEl.className = 'tl-track';
2143  scrollEl.appendChild(trackEl);
2144
2145  const lineEl = document.createElement('div');
2146  lineEl.className = 'tl-line';
2147  trackEl.appendChild(lineEl);
2148
2149  const loaderEl = document.createElement('div');
2150  loaderEl.className = 'tl-loader';
2151  loaderEl.innerHTML =
2152    '<div class="tl-loader-dot"></div>' +
2153    '<div class="tl-loader-dot"></div>' +
2154    '<div class="tl-loader-dot"></div>';
2155  sectionEl.appendChild(loaderEl);
2156
2157  const dotEls = [];
2158
2159  // ── Track sizing ─────────────────────────────────────────────────────────────
2160  function calcTotalDots() {
2161    return posts.length; 
2162  }
2163
2164  function trackPxWidth() {
2165    // Updated to use CFG.trackPadLeft
2166    return CFG.trackPadLeft + (totalDots - 1) * CFG.dotSpacing + CFG.dotSize + CFG.trackPadRight;
2167  }
2168
2169  function updateWidths() {
2170    const w = trackPxWidth() + 'px';
2171    trackEl.style.width = w;
2172    lineEl.style.width  = w;
2173    lineEl.style.top    = CFG.lineY + 'px';
2174  }
2175
2176  // ── Dot creation / positioning ───────────────────────────────────────────────
2177  function createDotEl() {
2178    const w = document.createElement('div');
2179    w.className = 'tl-dot-wrapper';
2180
2181    w.innerHTML =
2182      '<div class="tl-dot-label">' +
2183        '<span class="tl-time"></span>' +
2184        '<span class="tl-date"></span>' +
2185      '</div>' +
2186      '<div class="tl-dot-hit"></div>' +
2187      '<div class="tl-dot-vis"></div>' +
2188      '<div class="tl-dot-card"></div>';
2189
2190    w.querySelector('.tl-dot-hit').addEventListener('mouseenter', () => {
2191      const idx = parseInt(w.dataset.idx, 10);
2192      if (w.dataset.hasPost) onDotEnter(idx);
2193    });
2194
2195    trackEl.appendChild(w);
2196    return w;
2197  }
2198
2199  function growDots(n) {
2200    while (dotEls.length < n) {
2201      dotEls.push(createDotEl());
2202    }
2203    reindexDots();
2204  }
2205
2206  function reindexDots() {
2207    dotEls.forEach((el, i) => { el.dataset.idx = i; });
2208  }
2209
2210  function positionDots() {
2211    // Updated to use CFG.trackPadLeft
2212    dotEls.forEach((el, i) => {
2213      el.style.left = (CFG.trackPadLeft + i * CFG.dotSpacing) + 'px';
2214      el.style.top  = CFG.lineY + 'px';
2215    });
2216  }
2217
2218  function postToDot(postIdx) {
2219    return totalDots - 1 - postIdx;
2220  }
2221
2222  // ── Hydration ─────────────────────────────────────────────────────────────────
2223  function hydrateDot(dotIdx, post) {
2224    const el = dotEls[dotIdx];
2225    if (!el) return;
2226    el.dataset.hasPost = '1';
2227
2228    const ts = parseTimestamp(post.acf && post.acf.timestamp);
2229    el.querySelector('.tl-time').textContent = ts.time;
2230    el.querySelector('.tl-date').textContent = ts.date;
2231
2232    const cveId   = (post.acf && post.acf.cve_id)  || '';
2233    const readUrl = (post.acf && post.acf.link)     || '#';
2234    const postUrl = post.link || '#';
2235    const title   = decodeHtml(
2236                    (post.title && post.title.rendered)
2237                      ? post.title.rendered
2238                      : String(post.title || '')
2239                    );
2240
2241    el.querySelector('.tl-dot-card').innerHTML =
2242      (cveId ? '<div class="tl-cve">' + escHtml(cveId) + '</div>' : '') +
2243      '<div class="tl-title">' + escHtml(title) + '</div>' +
2244      '<div class="tl-btns">' +
2245        '<a class="tl-btn"' +
2246          ' href="' + escHtml(postUrl) + '"' +
2247          ' target="_blank" rel="noopener">View Feed</a>' +
2248        '<a class="tl-btn tl-btn-secondary"' +
2249          ' href="' + escHtml(readUrl) + '"' +
2250          ' target="_blank" rel="noopener">Read More</a>' +
2251      '</div>';
2252  }
2253
2254  function clearDotData(el) {
2255    delete el.dataset.hasPost;
2256    el.classList.remove('is-active');
2257    el.querySelector('.tl-time').textContent      = '';
2258    el.querySelector('.tl-date').textContent      = '';
2259    el.querySelector('.tl-dot-card').innerHTML    = '';
2260    el.querySelector('.tl-dot-label').style.opacity = '0';
2261    el.querySelector('.tl-dot-card').style.opacity  = '0';
2262    el.querySelector('.tl-dot-vis').style.backgroundColor = '';
2263  }
2264
2265  function hydrateAll() {
2266    dotEls.forEach((el, i) => {
2267      const postIdx = (totalDots - 1) - i;
2268      if (postIdx >= 0 && postIdx < posts.length) {
2269        hydrateDot(i, posts[postIdx]);
2270      } else if (el.dataset.hasPost) {
2271        clearDotData(el);
2272      }
2273    });
2274  }
2275
2276  // ── Activation / hover ────────────────────────────────────────────────────────
2277  function setActive(dotIdx, instant) {
2278    if (dotIdx === activeDot) return;
2279
2280    const prevIdx = activeDot;
2281    activeDot = dotIdx;
2282
2283    if (prevIdx !== -1 && dotEls[prevIdx]) {
2284      const prev = dotEls[prevIdx];
2285      prev.classList.remove('is-active');
2286      prev.querySelector('.tl-dot-vis').style.backgroundColor = '';
2287      instant
2288        ? (prev.querySelector('.tl-dot-label').style.opacity = '0',
2289           prev.querySelector('.tl-dot-card').style.opacity  = '0')
2290        : (fadeEl(prev.querySelector('.tl-dot-label'), false),
2291           fadeEl(prev.querySelector('.tl-dot-card'),  false));
2292    }
2293
2294    if (dotIdx !== -1 && dotEls[dotIdx] && dotEls[dotIdx].dataset.hasPost) {
2295      const next = dotEls[dotIdx];
2296      next.classList.add('is-active');
2297      next.querySelector('.tl-dot-vis').style.backgroundColor = '#141217';
2298      instant
2299        ? (next.querySelector('.tl-dot-label').style.opacity = '1',
2300           next.querySelector('.tl-dot-card').style.opacity  = '1')
2301        : (fadeEl(next.querySelector('.tl-dot-label'), true),
2302           fadeEl(next.querySelector('.tl-dot-card'),  true));
2303    }
2304  }
2305
2306  function onDotEnter(idx) {
2307    setActive(idx, false);
2308  }
2309
2310  function fadeEl(el, show) {
2311    el.style.transition = 'opacity ' + CFG.fadeDuration + 'ms ease';
2312    el.style.opacity    = show ? '1' : '0';
2313  }
2314
2315  // ── API ────────────────────────────────────────────────────────────────────────
2316  async function fetchPosts() {
2317    const url =
2318      CFG.apiBase + CFG.endpoint +
2319      '?per_page=' + CFG.perPage +
2320      '&page=1' +
2321      '&_fields=id,title,link,acf';
2322    const res = await fetch(url);
2323    if (!res.ok) throw new Error('HTTP ' + res.status);
2324    const data = await res.json();
2325    return Array.isArray(data) ? data : [];
2326  }
2327
2328  // ── Drag scroll ────────────────────────────────────────────────────────────────
2329  scrollEl.addEventListener('mousedown', e => {
2330    if (e.button !== 0) return;
2331    isDragging  = true;
2332    dragStartX  = e.clientX;
2333    dragScrollX = scrollEl.scrollLeft;
2334    scrollEl.classList.add('is-dragging');
2335    e.preventDefault();
2336  });
2337
2338  document.addEventListener('mousemove', e => {
2339    if (!isDragging) return;
2340    scrollEl.scrollLeft = dragScrollX - (e.clientX - dragStartX);
2341  });
2342
2343  document.addEventListener('mouseup', () => {
2344    if (!isDragging) return;
2345    isDragging = false;
2346    scrollEl.classList.remove('is-dragging');
2347  });
2348
2349  // ── Timestamp parser ───────────────────────────────────────────────────────────
2350  function parseTimestamp(ts) {
2351    if (ts === null || ts === undefined || ts === '') {
2352      return { time: '--:--', date: '--/--/----' };
2353    }
2354    const str = String(ts).trim();
2355    let d;
2356
2357    if (/^\d{10}$/.test(str)) {
2358      d = new Date(parseInt(str, 10) * 1000);         
2359    } else if (/^\d{13}$/.test(str)) {
2360      d = new Date(parseInt(str, 10));                 
2361    } else if (/^\d{14}$/.test(str)) {
2362      d = new Date(
2363        str.slice(0,4)   + '-' + str.slice(4,6)   + '-' + str.slice(6,8)  + 'T' +
2364        str.slice(8,10)  + ':' + str.slice(10,12) + ':' + str.slice(12,14)
2365      );
2366    } else if (/^\d{8}$/.test(str)) {
2367      d = new Date(str.slice(0,4) + '-' + str.slice(4,6) + '-' + str.slice(6,8));
2368    } else {
2369      d = new Date(ts);
2370    }
2371
2372    if (!d || isNaN(d.getTime())) {
2373      return { time: '--:--', date: '--/--/----' };
2374    }
2375    return {
2376      time: pad2(d.getHours())       + ':' + pad2(d.getMinutes()),
2377      date: pad2(d.getMonth() + 1)   + '/' + pad2(d.getDate()) + '/' + d.getFullYear(),
2378    };
2379  }
2380
2381  function pad2(n) { return n < 10 ? '0' + n : String(n); }
2382
2383  function escHtml(s) {
2384    return String(s)
2385      .replace(/&/g, '&amp;')
2386      .replace(/</g, '&lt;')
2387      .replace(/>/g, '&gt;')
2388      .replace(/"/g, '&quot;');
2389  }
2390
2391  function decodeHtml(str) {
2392    var ta = document.createElement('textarea');
2393    ta.innerHTML = String(str);
2394    return ta.value;
2395  }
2396
2397  // ── Init ───────────────────────────────────────────────────────────────────────
2398  async function init() {
2399    isLoading = true;
2400    loaderEl.classList.add('is-visible');
2401
2402    try {
2403      posts     = await fetchPosts();
2404      totalDots = calcTotalDots();
2405
2406      growDots(totalDots);   
2407      positionDots();
2408      updateWidths();
2409      hydrateAll();
2410
2411      if (posts.length) {
2412        setActive(postToDot(0), true);
2413      }
2414
2415      requestAnimationFrame(() => {
2416        scrollEl.scrollLeft = scrollEl.scrollWidth - scrollEl.clientWidth;
2417      });
2418
2419    } catch (e) {
2420      console.warn('[timeline] init error:', e);
2421    } finally {
2422      isLoading = false;
2423      loaderEl.classList.remove('is-visible');
2424    }
2425  }
2426
2427  init();
2428
2429})();</script>
2429</div></div></section><section id="brxe-fc9d88" class="brxe-section"><div id="brxe-33b699" class="brxe-container gradient-section"><h1 id="brxe-52d55c" class="brxe-heading heading-48">Demo the Upwind Platform</h1><div id="brxe-cea52c" class="brxe-text-basic text-18">See how Upwind is reducing risk and strengthening cloud security for global enterprises.</div><a id="brxe-c4d942" class="brxe-button bricks-button bricks-background-primary" href="/contact">Get a Demo</a></div></section></main><footer id="brx-footer"><section id="brxe-5daba3" class="brxe-section"><div id="brxe-969b62" class="brxe-container"><div id="brxe-61b82b" class="brxe-block"><div id="brxe-4e977d" class="brxe-block"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Logo_Upwind_Header.svg" class="brxe-image css-filter size-full" alt="Logo_Upwind_Header.svg" id="brxe-7c4a03" decoding="async" loading="lazy" /><img src="https://www.upwind.io/wp-content/uploads/2026/08/Group-11817-1.svg" class="brxe-image css-filter size-full" alt="Group-11817.svg" id="brxe-9376a4" decoding="async" loading="lazy" /></div><div id="brxe-8a6d39" class="brxe-block"><div id="brxe-656dfb" class="brxe-block"><div id="brxe-a661d8" class="brxe-block"><div id="brxe-fb6d78" class="brxe-text-basic">Stay In Touch</div><div id="brxe-9c1c97" class="brxe-shortcode">
2430                <div class='gf_browser_unknown gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_2' ><div id='gf_2' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_2' id='gform_2'  action='/#gf_2' data-formid='2' novalidate>
2431                        <div class='gform-body gform_body'><div id='gform_fields_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_2_7" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label' for='input_2_7'>Instagram</label><div class='ginput_container'><input name='input_7' id='input_2_7' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_2_7'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_2_1" class="gfield gfield--type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label' for='input_2_1'>Email<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
2432                            <input name='input_1' id='input_2_1' type='email' value='' class='large'   placeholder='Email Address' aria-required="true" aria-invalid="false"  />
2433                        </div></div><div id="field_2_2" class="gfield gfield--type-hidden uw-utm uw-utm-source gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  ><div class='ginput_container ginput_container_text'><input name='input_2' id='input_2_2' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_2_3" class="gfield gfield--type-hidden uw-utm uw-utm-medium gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  ><div class='ginput_container ginput_container_text'><input name='input_3' id='input_2_3' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_2_4" class="gfield gfield--type-hidden uw-utm uw-utm-campaign gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  ><div class='ginput_container ginput_container_text'><input name='input_4' id='input_2_4' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_2_5" class="gfield gfield--type-hidden uw-utm uw-utm-term gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  ><div class='ginput_container ginput_container_text'><input name='input_5' id='input_2_5' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_2_6" class="gfield gfield--type-hidden uw-utm uw-utm-content gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  ><div class='ginput_container ginput_container_text'><input name='input_6' id='input_2_6' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div></div></div>
2434        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_2' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Submit'  /> <input type='hidden' name='gform_ajax' value='form_id=2&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme&amp;styles=[]&amp;hash=ba5f5c2e4aca75d7bcd32da532e3e461' />
2435            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_2' value='iframe' />
2436            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_2' id='gform_theme_2' value='gravity-theme' />
2437            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_2' id='gform_style_settings_2' value='[]' />
2438            <input type='hidden' class='gform_hidden' name='is_submit_2' value='1' />
2439            <input type='hidden' class='gform_hidden' name='gform_submit' value='2' />
2440            
2441            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
2442            <input type='hidden' class='gform_hidden' name='state_2' value='WyJbXSIsImJlYzIyYmZmNmEwYmRhMjliNmI1ZGNjMmQ0YWEzN2YyIl0=' />
2443            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_2' id='gform_target_page_number_2' value='0' />
2444            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_2' id='gform_source_page_number_2' value='1' />
2445            <input type='hidden' name='gform_field_values' value='' />
2446            
2447        </div>
2448                        </form>
2449                        </div>
2450		                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_2' id='gform_ajax_frame_2' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe>
2451		                
2451<script>
2452gform.initializeOnLoaded( function() {gformInitSpinner( 2, 'https://www.upwind.io/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_2').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_2');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_2').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_2').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_2').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_2').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_2').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_2').val();gformInitSpinner( 2, 'https://www.upwind.io/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [2, current_page]);window['gf_submitting_2'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_2').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_2').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [2]);window['gf_submitting_2'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_2').text());}else{jQuery('#gform_2').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "2", currentPage: "current_page", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( "gform_wrapper_2" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_2";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_2" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 2, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );
2453</script>
2453
2454</div></div></div><div id="brxe-76fb6f" class="brxe-block"><div id="brxe-a09884" class="brxe-block"><h3 id="brxe-e26b96" class="brxe-heading text-14">Product</h3><div id="brxe-27a337" class="brxe-block"><a id="brxe-dd9800" class="brxe-text-link" href="/cnapp">Cloud Security</a><a id="brxe-128b3c" class="brxe-text-link" href="/ai-security-platform">AI Security</a><a id="brxe-b8cc93" class="brxe-text-link" href="/agentic-security">Agentic Security</a><a id="brxe-a985e6" class="brxe-text-link" href="/build">Application Security</a><a id="brxe-2e920d" class="brxe-text-link" href="/run">Security Posture</a><a id="brxe-77dd75" class="brxe-text-link" href="/protect">Realtime Protection</a></div></div><div id="brxe-d01707" class="brxe-block"><h3 id="brxe-be4d6e" class="brxe-heading text-14">General</h3><div id="brxe-48449c" class="brxe-block"><a id="brxe-37a092" class="brxe-text-link" href="/about">About Us</a><a id="brxe-5c03f8" class="brxe-text-link" href="/careers">Careers <span class="gradient-text text">We're hiring!</span></a><a id="brxe-ea43c3" class="brxe-text-link" href="/events">Events</a><a id="brxe-d60ccb" class="brxe-text-link" href="/case-studies">Customers</a></div></div><div id="brxe-9e78f5" class="brxe-block"><h3 id="brxe-6e8de0" class="brxe-heading text-14">Social</h3><div id="brxe-031615" class="brxe-block"><a id="brxe-8838a1" class="brxe-text-link" href="https://twitter.com/upwindsecurity">X</a><a id="brxe-ee2fe6" class="brxe-text-link" href="https://www.linkedin.com/company/upwindsecurity/">LinkedIn</a>
2454<a id="brxe-b62ffd" class="brxe-text-link" href="https://www.instagram.com/upwindsecurity/">Instagram</a><a id="brxe-18701d" class="brxe-text-link" href="/mdr">MDR</a></div></div><div id="brxe-1ef5f7" class="brxe-block"><h3 id="brxe-e39c62" class="brxe-heading text-14">Resources</h3><div id="brxe-3033ad" class="brxe-block"><a id="brxe-ec64f9" class="brxe-text-link" href="/feed">Blog (Feed)</a><a id="brxe-85bde4" class="brxe-text-link" href="/tv">Upwind TV</a><a id="brxe-cca1ad" class="brxe-text-link" href="/newsroom">Newsroom</a><a id="brxe-808838" class="brxe-text-link" href="https://docs.upwind.io/public/?_gl=1*14c34lk*_gcl_aw*R0NMLjE3NjQxODg5NTQuQ2p3S0NBaUE1NXJKQmhCeUVpd0FGa1kxUUlrYkE0THFRbkRUbmpCNVZjc0xobFh6X1haRUlyX0VPSTJCOTdjQkFNX2pOdzJ5aGhmZU14b0N1YWNRQXZEX0J3RQ..*_gcl_au*MzM2ODczNTIxLjE3NjUyMDM1Nzk.">Documentation</a><a id="brxe-82a790" class="brxe-text-link" href="/glossary">Glossary</a><a id="brxe-mjhnpk" class="brxe-text-link" href="/ai-threat-feed">Threat Feed</a></div></div></div></div></div><div id="brxe-42f2ac" class="brxe-block"><div id="brxe-09d195" class="brxe-block"><div id="brxe-a93d17" class="brxe-text-basic gradient-text">©</div><div id="brxe-b14d0c" class="brxe-text-basic">2026 Upwind Security</div></div><div id="brxe-6bb1aa" class="brxe-block"><a id="brxe-a13d51" class="brxe-text-link" href="/privacy-policy" target="_blank">Privacy Policy</a><a id="brxe-c9a438" class="brxe-text-link" href="/terms-of-use" target="_blank">Terms Of Use</a></div></div><div id="brxe-e4352e" class="brxe-block image-container"><img src="https://www.upwind.io/wp-content/uploads/2026/08/Logo-Components-2.svg" class="brxe-image css-filter size-full" alt="Logo-Components.svg" id="brxe-c0208b" decoding="async" loading="lazy" /><img src="https://www.upwind.io/wp-content/uploads/2026/08/Logo-Components-2.svg" class="brxe-image css-filter size-full" alt="Logo-Components.svg" id="brxe-8fd756" decoding="async" loading="lazy" /><img src="https://www.upwind.io/wp-content/uploads/2026/08/Logo-Components-1-1.svg" class="brxe-image hover-image css-filter size-full" alt="Logo-Components-1.svg" id="brxe-731131" decoding="async" loading="lazy" /><div id="brxe-c599ee" class="brxe-block hover-area"></div><div id="brxe-b99af2" data-script-id="b99af2" class="brxe-code">
2454<script>document.querySelectorAll('.image-container').forEach(container => {
2455    const hoverArea = container.querySelector('.hover-area');
2456    const hoverImage = container.querySelector('.hover-image');
2457
2458    hoverArea.addEventListener('mouseenter', () => {
2459        hoverImage.style.opacity = '1';
2460    });
2461
2462    hoverArea.addEventListener('mouseleave', () => {
2463        hoverImage.style.opacity = '0';
2464    });
2465});</script>
2465</div></div></div></section></footer>
2465<script type="speculationrules">
2466{"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/bricks/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2467</script>
2467
2468<div id="ee-upwind-chat"></div><div id="ee-appt-footer"><div class="bg-overlay"></div><div class="ee-appt-footer-cont"><div class="ee-appt-close">
2469        <svg xmlns="http://www.w3.org/2000/svg" width="18" height="17" viewBox="0 0 18 17" fill="none">
2470          <path fill-rule="evenodd" clip-rule="evenodd" d="M4.07276 3.32798C4.46144 2.96619 5.09161 2.96619 5.48029 3.32798L14.3272 11.5627C14.7159 11.9245 14.7159 12.511 14.3272 12.8728C13.9385 13.2346 13.3083 13.2346 12.9197 12.8728L4.07276 4.63811C3.68408 4.27633 3.68408 3.68976 4.07276 3.32798Z" fill="currentColor" stroke="currentColor" stroke-width="0.306" stroke-linecap="round"></path>
2471          <path fill-rule="evenodd" clip-rule="evenodd" d="M14.3257 3.32798C13.937 2.96619 13.3068 2.96619 12.9181 3.32798L4.07125 11.5627C3.68257 11.9245 3.68257 12.511 4.07125 12.8728C4.45993 13.2346 5.0901 13.2346 5.47878 12.8728L14.3257 4.63811C14.7144 4.27633 14.7144 3.68976 14.3257 3.32798Z" fill="currentColor" stroke="currentColor" stroke-width="0.306" stroke-linecap="round"></path>
2472        </svg>
2473      </div><div class="ee-appt-footer-content"><iframe src="https://www.upwind.io/wp-json/ssa/v1/embed-inner?integration&type&label&types&edit&view&payment_provider&ssa_locale=en_US&ssa_is_rtl&sid=c5d66e7f5ae18c1b56ab8ad34d475412d4534bc1&availability_start_date&availability_end_date&suggest_first_available&suggest_first_available_within_minutes&flow&fallback_flow&time_view&date_view&appointment_types_view=cardColumns&version&accent_color&background&padding=px&font&booking_url=https%3A%2F%2Fwww.upwind.io%2Fbook-a-demo&booking_post_id=5131&booking_title=Book+a+Demo&_wpnonce=3ab53b1203&redirect_post_id#/" height="400px" width="100%" name="ssa_booking" loading="eager" frameborder="0" data-skip-lazy="1" title="Book a time"></iframe></div></div></div><div data-popup-id="23248" class="brx-popup brxe-popup-23248 hide"><div class="brx-popup-content brxe-container"><div id="brxe-2bbe5c" class="brxe-block"><svg data-interaction-id="944585" data-interactions="[{&quot;id&quot;:&quot;dltxwb&quot;,&quot;trigger&quot;:&quot;click&quot;,&quot;disablePreventDefault&quot;:&quot;1&quot;,&quot;action&quot;:&quot;hide&quot;,&quot;target&quot;:&quot;popup&quot;,&quot;templateId&quot;:&quot;23484&quot;}]" class="brxe-svg" id="brxe-912211" xmlns="http://www.w3.org/2000/svg" width="18" height="17" viewBox="0 0 18 17" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.07276 3.32798C4.46144 2.96619 5.09161 2.96619 5.48029 3.32798L14.3272 11.5627C14.7159 11.9245 14.7159 12.511 14.3272 12.8728C13.9385 13.2346 13.3083 13.2346 12.9197 12.8728L4.07276 4.63811C3.68408 4.27633 3.68408 3.68976 4.07276 3.32798Z" fill="currentColor" stroke="currentColor" stroke-width="0.306" stroke-linecap="round"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M14.3257 3.32798C13.937 2.96619 13.3068 2.96619 12.9181 3.32798L4.07125 11.5627C3.68257 11.9245 3.68257 12.511 4.07125 12.8728C4.45993 13.2346 5.0901 13.2346 5.47878 12.8728L14.3257 4.63811C14.7144 4.27633 14.7144 3.68976 14.3257 3.32798Z" fill="currentColor" stroke="currentColor" stroke-width="0.306" stroke-linecap="round"></path></svg><div id="brxe-4d315b" class="brxe-block"><div id="brxe-69db6e" class="brxe-block"><div id="brxe-cfaf20" class="brxe-block"><div id="brxe-12cc75" class="brxe-text-basic">Add the Upwind RSS Feed to Slack</div><div id="brxe-6995d2" class="brxe-text-basic">Connect the Upwind RSS Feed to your Slack.<br /><a href="https://slack.com/help/articles/218688467-Add-RSS-feeds-to-Slack" target="_blank">Follow the how-to here.</a></div></div><div id="brxe-335b4f" class="brxe-block"><svg class="brxe-svg" id="brxe-90cc25" xmlns="http://www.w3.org/2000/svg" width="62" height="28" viewBox="0 0 62 28" fill="none"><path d="M18.215 0H0.966797V4.51936H18.215V0Z" fill="url(#paint0_linear_1244_250427)"></path><path d="M9.59092 26.8106C4.83629 26.8106 0.966797 22.8925 0.966797 18.0748V7.83203H5.72442V18.3762C5.72442 20.5359 7.45881 22.2928 9.59092 22.2928C11.723 22.2928 13.4574 20.5359 13.4574 18.3762V7.83203H18.215V18.0748C18.215 22.8925 14.3456 26.8106 9.59092 26.8106Z" fill="#141217"></path><path d="M30.3816 15.5732L29.6104 16.3445L27.7201 14.4542L25.8298 16.3445L25.0586 15.5732L26.9489 13.683L25.0586 11.7927L25.8298 11.0215L27.7201 12.9117L29.6104 11.0215L30.3816 11.7927L28.4913 13.683L30.3816 15.5732Z" fill="#141217"></path><path d="M42.4531 16.9472C42.4531 18.378 41.2843 19.5468 39.8535 19.5468C38.4227 19.5468 37.2539 18.378 37.2539 16.9472C37.2539 15.5165 38.4227 14.3477 39.8535 14.3477H42.4531V16.9472Z" fill="#E01E5A"></path><path d="M43.7617 16.9472C43.7617 15.5165 44.9305 14.3477 46.3613 14.3477C47.7921 14.3477 48.9609 15.5165 48.9609 16.9472V23.4563C48.9609 24.8871 47.7921 26.0559 46.3613 26.0559C44.9305 26.0559 43.7617 24.8871 43.7617 23.4563V16.9472Z" fill="#E01E5A"></path><path d="M46.3613 6.50972C44.9305 6.50972 43.7617 5.34092 43.7617 3.91014C43.7617 2.47935 44.9305 1.31055 46.3613 1.31055C47.7921 1.31055 48.9609 2.47935 48.9609 3.91014V6.50972H46.3613Z" fill="#36C5F0"></path><path d="M46.3625 7.81836C47.7933 7.81836 48.9621 8.98717 48.9621 10.4179C48.9621 11.8487 47.7933 13.0175 46.3625 13.0175H39.8535C38.4227 13.0175 37.2539 11.8487 37.2539 10.4179C37.2539 8.98717 38.4227 7.81836 39.8535 7.81836H46.3625Z" fill="#36C5F0"></path><path d="M56.7988 10.4179C56.7988 8.98717 57.9676 7.81836 59.3984 7.81836C60.8292 7.81836 61.998 8.98717 61.998 10.4179C61.998 11.8487 60.8292 13.0175 59.3984 13.0175H56.7988V10.4179Z" fill="#2EB67D"></path><path d="M55.4902 10.4192C55.4902 11.85 54.3214 13.0188 52.8906 13.0188C51.4598 13.0188 50.291 11.85 50.291 10.4192V3.91014C50.291 2.47935 51.4598 1.31055 52.8906 1.31055C54.3214 1.31055 55.4902 2.47935 55.4902 3.91014V10.4192Z" fill="#2EB67D"></path><path d="M52.8906 20.8555C54.3214 20.8555 55.4902 22.0243 55.4902 23.4551C55.4902 24.8858 54.3214 26.0546 52.8906 26.0546C51.4598 26.0546 50.291 24.8858 50.291 23.4551V20.8555H52.8906Z" fill="#ECB22E"></path><path d="M52.8906 19.5468C51.4598 19.5468 50.291 18.378 50.291 16.9472C50.291 15.5165 51.4598 14.3477 52.8906 14.3477H59.3997C60.8304 14.3477 61.9992 15.5165 61.9992 16.9472C61.9992 18.378 60.8304 19.5468 59.3997 19.5468H52.8906Z" fill="#ECB22E"></path><defs><linearGradient id="paint0_linear_1244_250427" x1="0.413747" y1="1.1436" x2="17.4818" y2="6.07484" gradientUnits="userSpaceOnUse"><stop stop-color="#F2583C"></stop><stop offset="0.541667" stop-color="#9214C4"></stop><stop offset="1" stop-color="#1E71ED"></stop></linearGradient></defs></svg></div></div><div id="brxe-8906c4" class="brxe-block"><div id="brxe-ddcb91" class="brxe-block"><div id="brxe-b17418" class="brxe-text-basic">Threat RSS</div><div class="threat-rss-input">
2474<input type="text" value="https://www.upwind.io/feed/threat-feed/" />
2475						<div class="rss-copy-link">
2476							<div class="icon">
2477								<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.26384 12.9839H8.97584C9.20024 12.9839 9.38384 12.8003 9.38384 12.5759V10.9439H10.6078V12.5759C10.6078 13.476 9.87599 14.2079 8.97584 14.2079H3.26384C2.36241 14.2079 1.63184 13.476 1.63184 12.5759V6.86386C1.63184 5.96371 2.36241 5.23186 3.26384 5.23186H4.89584V6.45586H3.26384C3.03842 6.45586 2.85584 6.63946 2.85584 6.86386V12.5759C2.85584 12.8003 3.03842 12.9839 3.26384 12.9839ZM5.71184 2.78386C5.71184 1.88243 6.44369 1.15186 7.34384 1.15186H13.0558C13.956 1.15186 14.6878 1.88243 14.6878 2.78386V8.49586C14.6878 9.39601 13.956 10.1279 13.0558 10.1279H7.34384C6.44369 10.1279 5.71184 9.39601 5.71184 8.49586V2.78386ZM7.34384 8.90386H13.0558C13.2802 8.90386 13.4638 8.72026 13.4638 8.49586V2.78386C13.4638 2.55844 13.2802 2.37586 13.0558 2.37586H7.34384C7.11944 2.37586 6.93584 2.55844 6.93584 2.78386V8.49586C6.93584 8.72026 7.11944 8.90386 7.34384 8.90386Z" fill="currentColor"/></svg>
2478              </div>
2479              <div class="copy-notify">
2480                Link Copied
2481              </div>
2482  </div>
2483</div><style>.threat-rss-input {
2484  display: flex;
2485  position: relative;
2486  width: 100%;
2487  column-gap: 5px;
2488  padding: 0;
2489  border: none;
2490}
2491.threat-rss-input input {
2492  border-radius: 4px;
2493  background: #f2f7fc;
2494  border: 1px solid #f2f7fc;
2495  padding: 5px 15px;
2496  color: var(--Gray-03);
2497  font-family: var(--Feed-Text-family);
2498  font-size: var(--Feed-Text-size);
2499  font-style: var(--Feed-Text-style);
2500  font-weight: var(--Feed-Text-weight);
2501  line-height: var(--Feed-Text-height);
2502  letter-spacing: var(--Feed-Text-spacing);
2503  white-space: nowrap;
2504  overflow: hidden;
2505  text-overflow: ellipsis;
2506}
2507.threat-rss-input .rss-copy-link {
2508  border-radius: 4px;
2509  background: #f2f7fc;
2510  cursor: pointer;
2511  display: flex;
2512  padding: 4px 24px;
2513  flex-direction: column;
2514  justify-content: center;
2515  align-items: center;
2516  gap: 12px;
2517  color: var(--Gray-03);
2518  max-width: 69px;
2519}
2520.threat-rss-input .rss-copy-link .icon {
2521  pointer-events: none;
2522}
2523.threat-rss-input .rss-copy-link .icon svg {
2524  display: block;
2525  height: auto;
2526  width: 21px;
2527}
2528.threat-rss-input .rss-copy-link:hover {
2529  background-color: var(--Gray-01);
2530  color: #f2f7fc;
2531}
2532.threat-rss-input .rss-copy-link .copy-notify {
2533  width: 100%;
2534  padding: 5px 8px;
2535  left: 0px;
2536  bottom: calc(100% + 5px);
2537  top: auto;
2538  font-family: var(--Font-Inter);
2539  font-size: 10px;
2540  font-style: normal;
2541  font-weight: 400;
2542  line-height: 140%;
2543  letter-spacing: -0.42px;
2544  border-radius: 4px;
2545}</style>
2545<script>(function(){
2546  var copy_rss = function(event) {
2547    event.preventDefault();
2548
2549    // Get the text field
2550    var copyText = event.target.closest('.threat-rss-input').querySelector('input').value;
2551        
2552    navigator.clipboard.writeText(copyText);
2553
2554    event.target.closest('.threat-rss-input').querySelector('.copy-notify').classList.add('active');
2555    setTimeout(function(){
2556      document.querySelector('.threat-rss-input .rss-copy-link .active').classList.remove('active');
2557    }, 2500)
2558  }
2559  
2560  document.querySelector('.threat-rss-input .rss-copy-link').addEventListener('click', copy_rss);
2561})();</script>
2561</div></div></div></div></div><div class="brx-popup-backdrop"></div></div><div data-popup-id="22846" class="brx-popup brxe-popup-22846 hide"><div class="brx-popup-content brxe-container"><div id="brxe-a38848" class="brxe-block"><svg data-interaction-id="d202f7" data-interactions="[{&quot;id&quot;:&quot;dltxwb&quot;,&quot;trigger&quot;:&quot;click&quot;,&quot;disablePreventDefault&quot;:&quot;1&quot;,&quot;action&quot;:&quot;hide&quot;,&quot;target&quot;:&quot;popup&quot;,&quot;templateId&quot;:&quot;23484&quot;}]" class="brxe-svg" id="brxe-7f0d01" xmlns="http://www.w3.org/2000/svg" width="18" height="17" viewBox="0 0 18 17" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.07276 3.32798C4.46144 2.96619 5.09161 2.96619 5.48029 3.32798L14.3272 11.5627C14.7159 11.9245 14.7159 12.511 14.3272 12.8728C13.9385 13.2346 13.3083 13.2346 12.9197 12.8728L4.07276 4.63811C3.68408 4.27633 3.68408 3.68976 4.07276 3.32798Z" fill="currentColor" stroke="currentColor" stroke-width="0.306" stroke-linecap="round"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M14.3257 3.32798C13.937 2.96619 13.3068 2.96619 12.9181 3.32798L4.07125 11.5627C3.68257 11.9245 3.68257 12.511 4.07125 12.8728C4.45993 13.2346 5.0901 13.2346 5.47878 12.8728L14.3257 4.63811C14.7144 4.27633 14.7144 3.68976 14.3257 3.32798Z" fill="currentColor" stroke="currentColor" stroke-width="0.306" stroke-linecap="round"></path></svg><div id="brxe-e7e4aa" class="brxe-block"><div id="brxe-d4850d" class="brxe-block"><div id="brxe-85fb53" class="brxe-block"><div id="brxe-958358" class="brxe-text-basic">Add the Upwind RSS Feed to Slack</div><div id="brxe-8c013e" class="brxe-text-basic">Connect the Upwind RSS Feed to your Slack.<br /><a href="https://slack.com/help/articles/218688467-Add-RSS-feeds-to-Slack" target="_blank">Follow the how-to here.</a></div></div><div id="brxe-4f5770" class="brxe-block"><svg class="brxe-svg" id="brxe-b5f22d" xmlns="http://www.w3.org/2000/svg" width="62" height="28" viewBox="0 0 62 28" fill="none"><path d="M18.215 0H0.966797V4.51936H18.215V0Z" fill="url(#paint0_linear_1244_250427)"></path><path d="M9.59092 26.8106C4.83629 26.8106 0.966797 22.8925 0.966797 18.0748V7.83203H5.72442V18.3762C5.72442 20.5359 7.45881 22.2928 9.59092 22.2928C11.723 22.2928 13.4574 20.5359 13.4574 18.3762V7.83203H18.215V18.0748C18.215 22.8925 14.3456 26.8106 9.59092 26.8106Z" fill="#141217"></path><path d="M30.3816 15.5732L29.6104 16.3445L27.7201 14.4542L25.8298 16.3445L25.0586 15.5732L26.9489 13.683L25.0586 11.7927L25.8298 11.0215L27.7201 12.9117L29.6104 11.0215L30.3816 11.7927L28.4913 13.683L30.3816 15.5732Z" fill="#141217"></path><path d="M42.4531 16.9472C42.4531 18.378 41.2843 19.5468 39.8535 19.5468C38.4227 19.5468 37.2539 18.378 37.2539 16.9472C37.2539 15.5165 38.4227 14.3477 39.8535 14.3477H42.4531V16.9472Z" fill="#E01E5A"></path><path d="M43.7617 16.9472C43.7617 15.5165 44.9305 14.3477 46.3613 14.3477C47.7921 14.3477 48.9609 15.5165 48.9609 16.9472V23.4563C48.9609 24.8871 47.7921 26.0559 46.3613 26.0559C44.9305 26.0559 43.7617 24.8871 43.7617 23.4563V16.9472Z" fill="#E01E5A"></path><path d="M46.3613 6.50972C44.9305 6.50972 43.7617 5.34092 43.7617 3.91014C43.7617 2.47935 44.9305 1.31055 46.3613 1.31055C47.7921 1.31055 48.9609 2.47935 48.9609 3.91014V6.50972H46.3613Z" fill="#36C5F0"></path><path d="M46.3625 7.81836C47.7933 7.81836 48.9621 8.98717 48.9621 10.4179C48.9621 11.8487 47.7933 13.0175 46.3625 13.0175H39.8535C38.4227 13.0175 37.2539 11.8487 37.2539 10.4179C37.2539 8.98717 38.4227 7.81836 39.8535 7.81836H46.3625Z" fill="#36C5F0"></path><path d="M56.7988 10.4179C56.7988 8.98717 57.9676 7.81836 59.3984 7.81836C60.8292 7.81836 61.998 8.98717 61.998 10.4179C61.998 11.8487 60.8292 13.0175 59.3984 13.0175H56.7988V10.4179Z" fill="#2EB67D"></path><path d="M55.4902 10.4192C55.4902 11.85 54.3214 13.0188 52.8906 13.0188C51.4598 13.0188 50.291 11.85 50.291 10.4192V3.91014C50.291 2.47935 51.4598 1.31055 52.8906 1.31055C54.3214 1.31055 55.4902 2.47935 55.4902 3.91014V10.4192Z" fill="#2EB67D"></path><path d="M52.8906 20.8555C54.3214 20.8555 55.4902 22.0243 55.4902 23.4551C55.4902 24.8858 54.3214 26.0546 52.8906 26.0546C51.4598 26.0546 50.291 24.8858 50.291 23.4551V20.8555H52.8906Z" fill="#ECB22E"></path><path d="M52.8906 19.5468C51.4598 19.5468 50.291 18.378 50.291 16.9472C50.291 15.5165 51.4598 14.3477 52.8906 14.3477H59.3997C60.8304 14.3477 61.9992 15.5165 61.9992 16.9472C61.9992 18.378 60.8304 19.5468 59.3997 19.5468H52.8906Z" fill="#ECB22E"></path><defs><linearGradient id="paint0_linear_1244_250427" x1="0.413747" y1="1.1436" x2="17.4818" y2="6.07484" gradientUnits="userSpaceOnUse"><stop stop-color="#F2583C"></stop><stop offset="0.541667" stop-color="#9214C4"></stop><stop offset="1" stop-color="#1E71ED"></stop></linearGradient></defs></svg></div></div><div id="brxe-9e414a" class="brxe-block"><div id="brxe-b7e2bf" class="brxe-block"><div id="brxe-1894f1" class="brxe-text-basic">Main RSS</div><div class="main-rss-input">
2562<input type="text" value="https://www.upwind.io/feed/rss-feed/" />
2563						<div class="rss-copy-link">
2564							<div class="icon">
2565								<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.26384 12.9839H8.97584C9.20024 12.9839 9.38384 12.8003 9.38384 12.5759V10.9439H10.6078V12.5759C10.6078 13.476 9.87599 14.2079 8.97584 14.2079H3.26384C2.36241 14.2079 1.63184 13.476 1.63184 12.5759V6.86386C1.63184 5.96371 2.36241 5.23186 3.26384 5.23186H4.89584V6.45586H3.26384C3.03842 6.45586 2.85584 6.63946 2.85584 6.86386V12.5759C2.85584 12.8003 3.03842 12.9839 3.26384 12.9839ZM5.71184 2.78386C5.71184 1.88243 6.44369 1.15186 7.34384 1.15186H13.0558C13.956 1.15186 14.6878 1.88243 14.6878 2.78386V8.49586C14.6878 9.39601 13.956 10.1279 13.0558 10.1279H7.34384C6.44369 10.1279 5.71184 9.39601 5.71184 8.49586V2.78386ZM7.34384 8.90386H13.0558C13.2802 8.90386 13.4638 8.72026 13.4638 8.49586V2.78386C13.4638 2.55844 13.2802 2.37586 13.0558 2.37586H7.34384C7.11944 2.37586 6.93584 2.55844 6.93584 2.78386V8.49586C6.93584 8.72026 7.11944 8.90386 7.34384 8.90386Z" fill="currentColor"/></svg>
2566              </div>
2567              <div class="copy-notify">
2568                Link Copied
2569              </div>
2570  </div>
2571</div><style>.main-rss-input {
2572  display: flex;
2573  position: relative;
2574  width: 100%;
2575  column-gap: 5px;
2576  padding: 0;
2577  border: none;
2578}
2579.main-rss-input input {
2580  border-radius: 4px;
2581  background: #f2f7fc;
2582  border: 1px solid #f2f7fc;
2583  padding: 5px 15px;
2584  color: var(--Gray-03);
2585  font-family: var(--Feed-Text-family);
2586  font-size: var(--Feed-Text-size);
2587  font-style: var(--Feed-Text-style);
2588  font-weight: var(--Feed-Text-weight);
2589  line-height: var(--Feed-Text-height);
2590  letter-spacing: var(--Feed-Text-spacing);
2591  white-space: nowrap;
2592  overflow: hidden;
2593  text-overflow: ellipsis;
2594}
2595.main-rss-input .rss-copy-link {
2596  border-radius: 4px;
2597  background: #f2f7fc;
2598  cursor: pointer;
2599  display: flex;
2600  padding: 4px 24px;
2601  flex-direction: column;
2602  justify-content: center;
2603  align-items: center;
2604  gap: 12px;
2605  color: var(--Gray-03);
2606  max-width: 69px;
2607}
2608.main-rss-input .rss-copy-link .icon {
2609  pointer-events: none;
2610}
2611.main-rss-input .rss-copy-link .icon svg {
2612  display: block;
2613  height: auto;
2614  width: 21px;
2615}
2616.main-rss-input .rss-copy-link:hover {
2617  background-color: var(--Gray-01);
2618  color: #f2f7fc;
2619}
2620.main-rss-input .rss-copy-link .copy-notify {
2621  font-size: 10px;
2622  width: 100%;
2623  padding: 5px 8px;
2624  left: 0px;
2625  bottom: calc(100% + 5px);
2626  top: auto;
2627  font-family: var(--Font-Inter);
2628  font-size: 14px;
2629  font-style: normal;
2630  font-weight: 400;
2631  line-height: 140%;
2632  letter-spacing: -0.42px;
2633  border-radius: 4px;
2634}</style>
2634<script>(function(){
2635  var copy_rss = function(event) {
2636    event.preventDefault();
2637
2638    // Get the text field
2639    var copyText = event.target.closest('.main-rss-input').querySelector('input').value;
2640        
2641    navigator.clipboard.writeText(copyText);
2642
2643    event.target.closest('.main-rss-input').querySelector('.copy-notify').classList.add('active');
2644    setTimeout(function(){
2645      document.querySelector('.main-rss-input .rss-copy-link .active').classList.remove('active');
2646    }, 2500)
2647  }
2648  
2649  document.querySelector('.main-rss-input .rss-copy-link').addEventListener('click', copy_rss);
2650})();</script>
2650</div></div></div></div></div><div class="brx-popup-backdrop"></div></div>
2650<script id="wp-importmap" type="importmap">
2651{"imports":{"@wordpress/route":"https://www.upwind.io/wp-includes/js/dist/script-modules/route/index.min.js?ver=c5843b6c5e84b352f43b","@wordpress/latex-to-mathml":"https://www.upwind.io/wp-includes/js/dist/script-modules/latex-to-mathml/index.min.js?ver=e5fd3ae6d2c3b6e669da"}}
2652</script>
2652
2653			
2653<script>
2654				const lazyloadRunObserver = () => {
2655					const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
2656					const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
2657						entries.forEach( ( entry ) => {
2658							if ( entry.isIntersecting ) {
2659								let lazyloadBackground = entry.target;
2660								if( lazyloadBackground ) {
2661									lazyloadBackground.classList.add( 'e-lazyloaded' );
2662								}
2663								lazyloadBackgroundObserver.unobserve( entry.target );
2664							}
2665						});
2666					}, { rootMargin: '200px 0px 200px 0px' } );
2667					lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
2668						lazyloadBackgroundObserver.observe( lazyloadBackground );
2669					} );
2670				};
2671				const events = [
2672					'DOMContentLoaded',
2673					'elementor/lazyload/observe',
2674				];
2675				events.forEach( ( event ) => {
2676					document.addEventListener( event, lazyloadRunObserver );
2677				} );
2678			</script>
2678
2679			
2679<script>(() => {
2680
2681  // ── Single canvas — no CSS filters ───────────────────────────────────────────
2682  // Cloudflare's approach: store trail history, clear + redraw every frame at
2683  // computed opacity. One pre-rendered gradient image stamped via drawImage
2684  // (GPU-accelerated) instead of re-creating radial gradients each frame.
2685  //
2686  // Supports multiple sections on the same page — each .gradient-section gets
2687  // its own independent canvas, trail history, and animation loop.
2688
2689  // ── Config ───────────────────────────────────────────────────────────────────
2690
2691  // On touch/mobile devices the gradient renders once at its default position
2692  // and is never updated — no rAF loop, no trail accumulation, no memory growth.
2693  const IS_TOUCH = window.matchMedia('(pointer: coarse)').matches;
2694
2695  // Gradient
2696  const GRAD_FACTOR     = 1.5;  // gradient radius as fraction of smaller dimension
2697  const TRAIL_DURATION  = 60;   // frames a trail point lives  (~1.5s at 60fps)
2698  const MAX_TRAIL       = 60;   // max stored trail points
2699  const POINT_THRESHOLD = 8;    // min logical-px gap between stored points
2700  const FADE_POWER      = 8;    // alpha = (1−age)^FADE_POWER  (higher = steeper drop)
2701
2702  // Dot grid
2703  const DOT_COLOR   = 'rgba(255, 255, 255, 0.5)'; // '#C7C7C7'; // dot fill colour
2704  const DOT_SIZE    = 1;         // dot size in logical px (1 = one physical px per DPR unit)
2705  const DOT_SPACING = 12;         // logical-px gap between dot centres (rows and cols)
2706  const DOT_STAGGER = 6;         // logical-px horizontal offset applied to every odd row
2707
2708  function initGradientSection(section) {
2709    // On touch/mobile devices, skip canvas init for scrolling-card gradient sections.
2710    // 78 cards × 2 canvases = ~80MB on page load — way over Safari mobile's limit.
2711    // The popup modal is outside .horizontal-scrolling-elements so it still inits.
2712    if (IS_TOUCH && section.closest('.horizontal-scrolling-elements')) {
2713      section._gradientInit = true; // mark so the observer doesn't retry
2714      return;
2715    }
2716    section._gradientInit = true;
2717    const dpr = Math.min(window.devicePixelRatio || 1, 2);
2718
2719    const canvas = document.createElement('canvas');
2720    canvas.style.cssText = [
2721      'position:absolute', 'top:0', 'left:0',
2722      'width:100%', 'height:100%',
2723      'pointer-events:none', 'z-index:0',
2724    ].join(';');
2725    section.appendChild(canvas);
2726    const ctx = canvas.getContext('2d');
2727
2728    const dotCanvas = document.createElement('canvas');
2729    dotCanvas.style.cssText = [
2730      'position:absolute', 'top:0', 'left:0',
2731      'width:100%', 'height:100%',
2732      'pointer-events:none', 'z-index:1',
2733    ].join(';');
2734    section.appendChild(dotCanvas);
2735    const dotCtx = dotCanvas.getContext('2d');
2736
2737    // ── State ─────────────────────────────────────────────────────────────────
2738
2739    let frame = 0;
2740    let cursorX, cursorY;
2741    let lastTrailX = -9999, lastTrailY = -9999;
2742    let isInside  = false;
2743    let rafId     = null;
2744    let gradImg   = null;
2745    let gradR     = 0;
2746    const trail   = [];
2747
2748    // ── Gradient image ────────────────────────────────────────────────────────
2749
2750    function buildGradImage() {
2751      const R = Math.round(
2752        Math.min(canvas.width, canvas.height) * GRAD_FACTOR / dpr
2753      ) * dpr;
2754      if (R === 0) return; // element hidden — initCanvas() will retry when dimensions are known
2755      if (gradImg && R === gradR) return;
2756      gradR = R;
2757
2758      const off = document.createElement('canvas');
2759      off.width  = R * 2;
2760      off.height = R * 2;
2761      const oc = off.getContext('2d');
2762
2763      const grd = oc.createRadialGradient(R, R, 0, R, R, R);
2764      grd.addColorStop(0,   '#F2583C');              // orange — solid core
2765      grd.addColorStop(0.1, '#F2583C');              // orange — holds to 10%
2766      grd.addColorStop(0.6, 'rgba(146,20,196,1)');  // purple — transition 10–60%
2767      grd.addColorStop(1.0, 'rgba(30,113,237,0)');  // transparent — fades to blue 60–100%
2768
2769      oc.fillStyle = grd;
2770      oc.fillRect(0, 0, R * 2, R * 2);
2771      gradImg = off;
2772    }
2773
2774    // ── Canvas init ───────────────────────────────────────────────────────────
2775
2776    function initCanvas() {
2777      const lw = section.offsetWidth;
2778      const lh = section.offsetHeight;
2779      if (!lw || !lh) return; // element hidden — ResizeObserver will call again when visible
2780      canvas.width  = lw * dpr | 0;
2781      canvas.height = lh * dpr | 0;
2782      canvas.style.width  = lw + 'px';
2783      canvas.style.height = lh + 'px';
2784
2785      if (cursorX === undefined) {
2786        cursorX = lw / 2;
2787        cursorY = lh;  // bottom-centre default
2788      }
2789
2790      buildGradImage();
2791      if (!rafId) paint();
2792    }
2793
2794    // ── Dot-grid overlay ─────────────────────────────────────────────────────
2795
2796    function paintDots() {
2797      const lw = section.offsetWidth;
2798      const lh = section.offsetHeight;
2799      dotCanvas.width        = lw * dpr | 0;
2800      dotCanvas.height       = lh * dpr | 0;
2801      dotCanvas.style.width  = lw + 'px';
2802      dotCanvas.style.height = lh + 'px';
2803
2804      dotCtx.clearRect(0, 0, dotCanvas.width, dotCanvas.height);
2805      dotCtx.fillStyle = DOT_COLOR;
2806
2807      const dotPx = Math.max(1, Math.round(dpr * DOT_SIZE));
2808
2809      for (let row = 0, y = 0; y <= lh; row++, y = row * DOT_SPACING) {
2810        const xOffset = (row % 2 === 1) ? DOT_STAGGER : 0;
2811        for (let col = 0, x = xOffset; x <= lw + DOT_STAGGER; col++, x = xOffset + col * DOT_SPACING) {
2812          dotCtx.fillRect(x * dpr, y * dpr, dotPx, dotPx);
2813        }
2814      }
2815    }
2816
2817    // ── Drawing ───────────────────────────────────────────────────────────────
2818
2819    function stamp(lx, ly, alpha) {
2820      if (!gradImg || gradImg.width === 0 || gradImg.height === 0 || alpha < 0.005) return;
2821      ctx.globalAlpha = alpha;
2822      ctx.drawImage(gradImg, lx * dpr - gradR, ly * dpr - gradR);
2823    }
2824
2825    function paint() {
2826      ctx.clearRect(0, 0, canvas.width, canvas.height);
2827
2828      for (const p of trail) {
2829        const age   = (frame - p.birth) / TRAIL_DURATION;
2830        const alpha = Math.pow(1 - age, FADE_POWER);
2831        stamp(p.x, p.y, alpha);
2832      }
2833
2834      if (isInside) {
2835        stamp(cursorX, cursorY, 1);
2836      } else {
2837        // Always anchor at last known position — whether trail is draining or fully gone.
2838        stamp(cursorX, cursorY, 0.9);
2839      }
2840    }
2841
2842    // ── Animation loop ────────────────────────────────────────────────────────
2843
2844    function tick() {
2845      frame++;
2846      while (trail.length && frame - trail[0].birth >= TRAIL_DURATION) {
2847        trail.shift();
2848      }
2849      paint();
2850      if (trail.length || isInside) {
2851        rafId = requestAnimationFrame(tick);
2852      } else {
2853        rafId = null;
2854      }
2855    }
2856
2857    function startLoop() {
2858      if (!rafId) rafId = requestAnimationFrame(tick);
2859    }
2860
2861    // ── Trail sampling ────────────────────────────────────────────────────────
2862
2863    function addPoint(lx, ly) {
2864      const dx = lx - lastTrailX, dy = ly - lastTrailY;
2865      if (dx * dx + dy * dy < POINT_THRESHOLD * POINT_THRESHOLD) return;
2866      trail.push({ x: lx, y: ly, birth: frame });
2867      if (trail.length > MAX_TRAIL) trail.shift();
2868      lastTrailX = lx;
2869      lastTrailY = ly;
2870    }
2871
2872    // ── Events ────────────────────────────────────────────────────────────────
2873
2874    // Track on document rather than the section element so that sibling overlays,
2875    // scroll-container fades, or any absolutely-positioned Bricks element sitting
2876    // on top of the card's padding zone can't steal the event and trigger a false
2877    // mouseleave. We check the cursor against the section's bounding rect instead —
2878    // that rect includes padding, so hovering anywhere in the visual card works.
2879    // Mouse tracking and the rAF loop are desktop-only — on touch devices
2880    // the gradient renders once at its default position and stays static.
2881    if (!IS_TOUCH) {
2882      document.addEventListener('mousemove', e => {
2883        const r       = section.getBoundingClientRect();
2884        const inBounds = e.clientX >= r.left && e.clientX <= r.right &&
2885                         e.clientY >= r.top  && e.clientY <= r.bottom;
2886        if (inBounds) {
2887          cursorX = e.clientX - r.left;
2888          cursorY = e.clientY - r.top;
2889          isInside = true;
2890          addPoint(cursorX, cursorY);
2891          startLoop();
2892        } else if (isInside) {
2893          isInside = false;
2894          startLoop();
2895        }
2896      });
2897    }
2898
2899    window.addEventListener('resize', initCanvas);
2900    window.addEventListener('resize', paintDots);
2901
2902    // ResizeObserver keeps the canvas pixel dimensions in sync with the section's
2903    // rendered size, catching post-init height growth from font-swap reflow, image
2904    // decode, or flex layout settling — causes that window 'resize' misses entirely.
2905    // This fires asynchronously (after paint) so it always sees the final layout height.
2906    if (typeof ResizeObserver !== 'undefined') {
2907      new ResizeObserver(function() { initCanvas(); paintDots(); }).observe(section);
2908    }
2909
2910    // ── Boot ──────────────────────────────────────────────────────────────────
2911
2912    initCanvas();
2913    paintDots();
2914
2915    // Public API attached to the element so external callers (e.g. card-expand.js)
2916    // can force the canvas to a specific logical size and repaint without needing
2917    // to re-initialise the whole section or fire a resize event.
2918    section._gradientAPI = {
2919      setSize: function(w, h) {
2920        var lw = w | 0;
2921        var lh = h | 0;
2922        canvas.width        = lw * dpr | 0;
2923        canvas.height       = lh * dpr | 0;
2924        canvas.style.width  = lw + 'px';
2925        canvas.style.height = lh + 'px';
2926        if (cursorX === undefined) { cursorX = lw / 2; cursorY = lh; }
2927        buildGradImage();
2928        if (!rafId) paint();
2929      },
2930    };
2931  }
2932
2933  // Initialise any .gradient-section elements already on the page.
2934  document.querySelectorAll('.gradient-section').forEach(function(el) {
2935    if (!el._gradientInit) initGradientSection(el);
2936  });
2937
2938  // Watch for .gradient-section elements added after this script runs, AND for
2939  // the gradient-section class being added to existing elements (Bricks Builder
2940  // dynamically adds the class to horizontal-scroll cards after page load, so a
2941  // childList observer alone would miss them).
2942  new MutationObserver(function(mutations) {
2943    mutations.forEach(function(m) {
2944      if (m.type === 'attributes') {
2945        // Class was mutated on an existing element — re-check for gradient-section.
2946        var el = m.target;
2947        if (el.classList.contains('gradient-section') && !el._gradientInit) {
2948          initGradientSection(el);
2949        }
2950        return;
2951      }
2952      // New nodes added to the DOM.
2953      m.addedNodes.forEach(function(node) {
2954        if (!(node instanceof Element)) return;
2955        if (node.matches('.gradient-section') && !node._gradientInit) {
2956          initGradientSection(node);
2957        }
2958        node.querySelectorAll('.gradient-section').forEach(function(el) {
2959          if (!el._gradientInit) initGradientSection(el);
2960        });
2961      });
2962    });
2963  }).observe(document.body, {
2964    childList:       true,
2965    subtree:         true,
2966    attributes:      true,
2967    attributeFilter: ['class'],
2968  });
2969
2970  // ── Global API for card-expand.js ────────────────────────────────────────────
2971
2972  // init — safe to call multiple times; no-ops after first run.
2973  window.initGradientSection = function(el) {
2974    if (el._gradientInit) return;
2975    el._gradientInit = true;
2976    initGradientSection(el);
2977  };
2978
2979  // sizeGradientSection(el, w, h)
2980  // Pre-sizes the canvas to the final popup dimensions BEFORE the expand animation.
2981  // The popup starts at card size with overflow:hidden so only a card-sized window
2982  // into the canvas is visible — the growing popup then "reveals" more of it.
2983  // Works on every open without re-initialising event listeners or the rAF loop.
2984  window.sizeGradientSection = function(el, w, h) {
2985    if (!el._gradientInit) {
2986      el._gradientInit = true;
2987      initGradientSection(el); // first-time init (also attaches _gradientAPI)
2988    }
2989    if (el._gradientAPI) el._gradientAPI.setSize(w, h);
2990  };
2991})();
2992</script>
2992<script>(() => {
2993  if (document.readyState === 'loading') {
2994    document.addEventListener('DOMContentLoaded', main);
2995  } else {
2996    main();
2997  }
2998
2999  function main() {
3000
3001  // ── Config ───────────────────────────────────────────────────────────────────
3002
3003  // On touch/mobile devices the gradient renders once (static) — no rAF loop.
3004  var IS_TOUCH = window.matchMedia('(pointer: coarse)').matches;
3005
3006  var CARD_SEL      = '.horizontal-scrolling-block-inner';
3007  var POPUP_SEL     = '.horizontal-scrolling-block-popup-content';
3008  var WRAPPER_SEL   = '.horizontal-scrolling-block';
3009  // Direct child blocks of the card that aren't the popup (the visible card text)
3010  var BLOCK_SEL     = ':scope > .brxe-block:not(.horizontal-scrolling-block-popup-content)';
3011  // Direct children of the popup excluding canvas (gradient layer)
3012  var CONTENT_SEL   = ':scope > *:not(canvas)';
3013  var EXPAND_MS     = 400;
3014  var FADE_MS       = 160;
3015  var SIDE_GAP      = 0;   // no gap — popup covers 100vw × 100svh
3016  var TAP_THRESHOLD = 8;
3017  var CARD_RADIUS   = 8;   // px — matches the card's CSS border-radius
3018  var POPUP_RADIUS  = 0;   // px — 0 for true full-screen (no rounded corners)
3019  var CLOSE_BTN_SIZE   = 64; // px — width and height of the close button SVG
3020  var CLOSE_BTN_OFFSET = 58; // px — distance from top and right edges of the popup
3021
3022  // Gradient
3023  var GRAD_FACTOR     = 1.5; // gradient radius as fraction of smaller canvas dimension
3024  var TRAIL_DURATION  = 60;  // frames a trail point lives (~1.5s at 60fps)
3025  var MAX_TRAIL       = 60;  // max stored trail points
3026  var POINT_THRESHOLD = 8;   // min logical-px gap between stored trail points
3027  var FADE_POWER      = 8;   // alpha = (1−age)^FADE_POWER (higher = steeper drop)
3028
3029  // Dot grid — keep in sync with script.js
3030  var DOT_COLOR   = 'rgba(255, 255, 255, 0.5)';
3031  var DOT_SIZE    = 1;  // dot size in logical px (1 = one physical px per DPR unit)
3032  var DOT_SPACING = 12; // logical-px gap between dot centres (rows and cols)
3033  var DOT_STAGGER = 6;  // logical-px horizontal offset applied to every odd row
3034
3035  // ── Inject styles ─────────────────────────────────────────────────────────────
3036
3037  var ceStyle = document.createElement('style');
3038  ceStyle.textContent = [
3039    // Hide scrollbar on the popup modal in all browsers while keeping scroll.
3040    '.ce-modal { scrollbar-width:none; -ms-overflow-style:none; }',
3041    '.ce-modal::-webkit-scrollbar { display:none; }',
3042  ].join('\n');
3043  document.head.appendChild(ceStyle);
3044
3045  // ── State ─────────────────────────────────────────────────────────────────────
3046
3047  var activeCard         = null;
3048  var activePopup        = null;
3049  var overlayEl          = null;
3050  var lastHoveredWrapper = null;
3051  var scrollPauseRafId   = null;
3052
3053  // ── Modal container ───────────────────────────────────────────────────────────
3054  //
3055  // Lives on <body> permanently. Parked off-screen via left:-9999px when not in
3056  // use. We use position:fixed + off-screen (NOT display:none) so the gradient
3057  // canvas initialises with real dimensions and is never torn down between opens.
3058
3059  var initW = window.innerWidth;
3060  var initH = window.innerHeight;
3061
3062  var modalEl = document.createElement('div');
3063  modalEl.className = 'gradient-section ce-modal';
3064  // Prevent script.js from running initGradientSection on the modal — we manage
3065  // our own self-contained gradient canvas below and don't want a second canvas.
3066  modalEl._gradientInit = true;
3067  modalEl.style.cssText = [
3068    'position:fixed',
3069    'top:-9999px',
3070    'left:-9999px',
3071    'width:'  + initW + 'px',
3072    'height:' + initH + 'px',
3073    'z-index:9001',
3074    'overflow:hidden',
3075    'box-sizing:border-box',
3076    'margin:0',
3077    'pointer-events:none',
3078  ].join(';');
3079  document.body.appendChild(modalEl);
3080
3081  // ── Self-contained gradient ───────────────────────────────────────────────────
3082  //
3083  // Mirrors the page's gradient-section script exactly so we don't depend on it
3084  // exposing any global functions (it doesn't). The canvas lives inside modalEl
3085  // permanently and is only ever resized — never destroyed and re-created.
3086
3087  var gdpr = Math.min(window.devicePixelRatio || 1, 2);
3088
3089  var gCanvas = document.createElement('canvas');
3090  gCanvas.style.cssText = [
3091    'position:absolute', 'top:0', 'left:0',
3092    'width:100%', 'height:100%',
3093    'pointer-events:none', 'z-index:0',
3094  ].join(';');
3095  modalEl.appendChild(gCanvas);
3096  var gCtx = gCanvas.getContext('2d');
3097
3098  // ── Dot-grid overlay (mirrors script.js paintDots, z-index:1 above gradient) ──
3099  var dCanvas = document.createElement('canvas');
3100  dCanvas.style.cssText = [
3101    'position:absolute', 'top:0', 'left:0',
3102    'width:100%', 'height:100%',
3103    'pointer-events:none', 'z-index:1',
3104  ].join(';');
3105  modalEl.appendChild(dCanvas);
3106  var dCtx = dCanvas.getContext('2d');
3107
3108  function dPaintDots(lw, lh) {
3109    dCanvas.width        = (lw * gdpr) | 0;
3110    dCanvas.height       = (lh * gdpr) | 0;
3111    dCanvas.style.width  = lw + 'px';
3112    dCanvas.style.height = lh + 'px';
3113    dCtx.clearRect(0, 0, dCanvas.width, dCanvas.height);
3114    dCtx.fillStyle = DOT_COLOR;
3115    var dotPx = Math.max(1, Math.round(gdpr * DOT_SIZE));
3116    for (var row = 0, y = 0; y <= lh; row++, y = row * DOT_SPACING) {
3117      var xOff = (row % 2 === 1) ? DOT_STAGGER : 0;
3118      for (var col = 0, x = xOff; x <= lw + DOT_STAGGER; col++, x = xOff + col * DOT_SPACING) {
3119        dCtx.fillRect(x * gdpr, y * gdpr, dotPx, dotPx);
3120      }
3121    }
3122  }
3123
3124  // ── Close button ──────────────────────────────────────────────────────────────
3125  //
3126  // position:absolute inside the fixed modal — does NOT scroll with popup content.
3127  // Starts at opacity:0 and fades in/out with the popup content children.
3128
3129  var closeBtnEl = document.createElement('div');
3130  closeBtnEl.style.cssText = [
3131    'position:absolute',
3132    'top:'   + CLOSE_BTN_OFFSET + 'px',
3133    'right:' + CLOSE_BTN_OFFSET + 'px',
3134    'z-index:10',          // above gradient canvas (0) and dot canvas (1)
3135    'width:'  + CLOSE_BTN_SIZE + 'px',
3136    'height:' + CLOSE_BTN_SIZE + 'px',
3137    'opacity:0',
3138    'cursor:pointer',
3139    'line-height:0',       // collapse any inline-block whitespace
3140    'flex-shrink:0',       // prevent flex parents from squishing it
3141    'transition:opacity 0.3s ease-in-out',
3142  ].join(';');
3143  // style="display:block;width:64px;height:64px" on the SVG overrides any
3144  // inherited CSS that might resize it (e.g. img { max-width:100% } rules).
3145  closeBtnEl.innerHTML = '<svg display="block"'
3146    + ' width="'  + CLOSE_BTN_SIZE + '"'
3147    + ' height="' + CLOSE_BTN_SIZE + '"'
3148    + ' style="display:block;width:' + CLOSE_BTN_SIZE + 'px;height:' + CLOSE_BTN_SIZE + 'px"'
3149    + ' viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">'
3150    + '<circle cx="32" cy="32" r="31.5" stroke="white"/>'
3151    + '<line x1="14.6464" y1="48.6464" x2="48.6464" y2="14.6464" stroke="white"/>'
3152    + '<line x1="15.3604" y1="14.6464" x2="49.3604" y2="48.6464" stroke="white"/>'
3153    + '</svg>';
3154
3155  // Hover: fade to 0.7 opacity. Uses JS rather than CSS :hover to avoid inline
3156  // style specificity conflicts with the fade-in/out opacity we set directly.
3157  closeBtnEl.addEventListener('mouseenter', function() {
3158    closeBtnEl.style.opacity = '0.7';
3159  });
3160  closeBtnEl.addEventListener('mouseleave', function() {
3161    closeBtnEl.style.opacity = '1';
3162  });
3163  closeBtnEl.addEventListener('click', function(e) {
3164    e.stopPropagation(); // don't bubble to overlay
3165    collapse();
3166  });
3167
3168  modalEl.appendChild(closeBtnEl);
3169  var gImg   = null, gR = 0;
3170  var gFrame = 0;
3171  var gX, gY;
3172  var gLastX = -9999, gLastY = -9999;
3173  var gInside = false, gRafId = null;
3174  var gTrail  = [];
3175
3176  function gBuildImage() {
3177    var R = Math.round(Math.min(gCanvas.width, gCanvas.height) * GRAD_FACTOR / gdpr) * gdpr;
3178    if (gImg && R === gR) return;
3179    gR = R;
3180    var off = document.createElement('canvas');
3181    off.width = R * 2; off.height = R * 2;
3182    var oc = off.getContext('2d');
3183    var gr = oc.createRadialGradient(R, R, 0, R, R, R);
3184    gr.addColorStop(0,   '#F2583C');
3185    gr.addColorStop(0.1, '#F2583C');
3186    gr.addColorStop(0.6, 'rgba(146,20,196,1)');
3187    gr.addColorStop(1.0, 'rgba(30,113,237,0)');
3188    oc.fillStyle = gr;
3189    oc.fillRect(0, 0, R * 2, R * 2);
3190    gImg = off;
3191  }
3192
3193  function gStamp(lx, ly, alpha) {
3194    if (!gImg || alpha < 0.005) return;
3195    gCtx.globalAlpha = alpha;
3196    gCtx.drawImage(gImg, lx * gdpr - gR, ly * gdpr - gR);
3197  }
3198
3199  function gPaint() {
3200    gCtx.clearRect(0, 0, gCanvas.width, gCanvas.height);
3201    gTrail.forEach(function(p) {
3202      var age = (gFrame - p.birth) / TRAIL_DURATION;
3203      gStamp(p.x, p.y, Math.pow(1 - age, FADE_POWER));
3204    });
3205    gStamp(gX, gY, gInside ? 1 : 0.9);
3206  }
3207
3208  function gTick() {
3209    gFrame++;
3210    while (gTrail.length && gFrame - gTrail[0].birth >= TRAIL_DURATION) gTrail.shift();
3211    gPaint();
3212    if (gTrail.length || gInside) {
3213      gRafId = requestAnimationFrame(gTick);
3214    } else {
3215      gRafId = null;
3216    }
3217  }
3218
3219  function gStartLoop() {
3220    if (!gRafId) gRafId = requestAnimationFrame(gTick);
3221  }
3222
3223  function gAddPoint(lx, ly) {
3224    var dx = lx - gLastX, dy = ly - gLastY;
3225    if (dx * dx + dy * dy < POINT_THRESHOLD * POINT_THRESHOLD) return;
3226    gTrail.push({ x: lx, y: ly, birth: gFrame });
3227    if (gTrail.length > MAX_TRAIL) gTrail.shift();
3228    gLastX = lx; gLastY = ly;
3229  }
3230
3231  // Resize both canvases to explicit pixel dimensions and repaint.
3232  // Works regardless of the modal's display/visibility state.
3233  function gSetSize(w, h) {
3234    var lw = w | 0, lh = h | 0;
3235    gCanvas.width        = (lw * gdpr) | 0;
3236    gCanvas.height       = (lh * gdpr) | 0;
3237    gCanvas.style.width  = lw + 'px';
3238    gCanvas.style.height = lh + 'px';
3239    if (gX === undefined) { gX = lw / 2; gY = lh; }
3240    gBuildImage();
3241    if (!gRafId) gPaint();
3242    dPaintDots(lw, lh);
3243  }
3244
3245  // Desktop: pre-allocate at full size so the canvas is warm before first click.
3246  // Mobile: defer allocation until the first expand — avoids two full-viewport
3247  // canvases sitting in memory when they may never be used.
3248  if (!IS_TOUCH) {
3249    gSetSize(initW, initH);
3250  }
3251
3252  // Mouse tracking and rAF loop are desktop-only — on touch devices the
3253  // gradient renders once at its default position and stays static.
3254  if (!IS_TOUCH) {
3255    modalEl.addEventListener('mousemove', function(e) {
3256      var r = modalEl.getBoundingClientRect();
3257      gX = e.clientX - r.left;
3258      gY = e.clientY - r.top;
3259      gInside = true;
3260      gAddPoint(gX, gY);
3261      gStartLoop();
3262    });
3263    modalEl.addEventListener('mouseleave', function() {
3264      gInside = false;
3265      gStartLoop();
3266    });
3267  }
3268
3269  // ── Popup height measurement ──────────────────────────────────────────────────
3270  //
3271  // Temporarily renders the popup off-screen to read its scrollHeight at the
3272  // target modal width. Result is cached on the element to avoid repeated work.
3273
3274  function measurePopupHeight(popup, tw, mh) {
3275    var key = '__popupH' + tw;
3276    if (popup[key]) return popup[key];
3277    popup.style.display  = '';
3278    popup.style.position = 'fixed';
3279    popup.style.top      = '-9999px';
3280    popup.style.left     = '0';
3281    popup.style.width    = tw + 'px';
3282    popup.style.height   = 'auto';
3283    var h = Math.min(popup.scrollHeight, mh);
3284    // Restore to hidden; Bricks CSS position:fixed/-9999px takes back over.
3285    popup.style.cssText  = 'display:none';
3286    popup[key] = h;
3287    return h;
3288  }
3289
3290  // ── Canvas pre-sizing on card hover ───────────────────────────────────────────
3291  //
3292  // When the user hovers a card, we resize the gradient canvas to that popup's
3293  // exact final dimensions. When they click, the canvas is already the right size.
3294  // The modal expands with overflow:hidden, "revealing" more of the canvas as it
3295  // grows — no canvas resize during the animation.
3296
3297  // Hover pre-size is a desktop optimisation (no hover on touch).
3298  if (!IS_TOUCH) {
3299    document.addEventListener('mouseover', function(e) {
3300      if (activeCard) return;
3301      var wrapper = e.target.closest ? e.target.closest(WRAPPER_SEL) : null;
3302      if (!wrapper || wrapper === lastHoveredWrapper) return;
3303      lastHoveredWrapper = wrapper;
3304      var card = wrapper.querySelector(CARD_SEL);
3305      if (!card) return;
3306      var popup = card.querySelector(POPUP_SEL);
3307      if (!popup) return;
3308      // Pre-size canvas at full-screen dimensions so it's warm on click.
3309      gSetSize(window.innerWidth, window.innerHeight);
3310    }, true);
3311  }
3312
3313  // ── Scroll pause / resume ─────────────────────────────────────────────────────
3314  //
3315  // Directly targets .element-scroll-wrapper — the animated track created by
3316  // horizontal-scroll-element.js. A rAF loop re-asserts the pause every frame
3317  // while the popup is open so that the scroll script's mouseleave handler
3318  // (which fires when the overlay covers the container) can't sneak a resume in.
3319  // getComputedStyle is only called when the play-state was externally changed,
3320  // so the per-frame cost is a single cheap style property read.
3321
3322  function pauseAllScrollTracks() {
3323    function keepPaused() {
3324      document.querySelectorAll('.element-scroll-wrapper').forEach(function(el) {
3325        el.dataset.cePaused = '1';
3326        if (el.style.animationPlayState !== 'paused') {
3327          // External code resumed it — re-freeze at the current position.
3328          el.style.transform          = getComputedStyle(el).transform;
3329          el.style.animationPlayState = 'paused';
3330        }
3331      });
3332      scrollPauseRafId = requestAnimationFrame(keepPaused);
3333    }
3334    keepPaused();
3335  }
3336
3337  function resumeAllScrollTracks() {
3338    if (scrollPauseRafId) {
3339      cancelAnimationFrame(scrollPauseRafId);
3340      scrollPauseRafId = null;
3341    }
3342    document.querySelectorAll('.element-scroll-wrapper[data-ce-paused]').forEach(function(el) {
3343      delete el.dataset.cePaused;
3344      el.style.animationPlayState = '';
3345      el.style.transform          = '';
3346    });
3347  }
3348
3349  // ── Overlay ───────────────────────────────────────────────────────────────────
3350
3351  function showOverlay() {
3352    // Remove any stale overlay left over from a previous session or the old script.
3353    document.querySelectorAll('.__ce-overlay').forEach(function(el) { el.remove(); });
3354
3355    overlayEl = document.createElement('div');
3356    overlayEl.className = '__ce-overlay';
3357    overlayEl.style.cssText = [
3358      'position:fixed', 'inset:0', 'z-index:9000',
3359      'background:rgba(0,0,0,0.55)',
3360      'opacity:0',
3361      'transition:opacity ' + FADE_MS + 'ms ease',
3362      'cursor:pointer',
3363    ].join(';');
3364    overlayEl.addEventListener('click', collapse);
3365    document.body.appendChild(overlayEl);
3366    requestAnimationFrame(function() {
3367      if (overlayEl) overlayEl.style.opacity = '1';
3368    });
3369  }
3370
3371  function hideOverlay() {
3372    if (!overlayEl) return;
3373    var el = overlayEl;
3374    overlayEl = null;
3375    // Kill pointer events immediately — stops the overlay blocking clicks during fade-out.
3376    el.style.pointerEvents = 'none';
3377    el.style.opacity       = '0';
3378    // Use setTimeout as a guaranteed removal — transitionend won't fire if opacity
3379    // was already 0 (user clicked before the rAF in showOverlay had a chance to run).
3380    setTimeout(function() { el.remove(); }, FADE_MS + 20);
3381  }
3382
3383  // ── Expand ────────────────────────────────────────────────────────────────────
3384  //
3385  // Phase 1  fade out card text blocks
3386  // Phase 2  move popup into modal, animate modal from card → full size
3387  // Phase 3  fade in popup content children
3388
3389  function expand(card) {
3390    if (activeCard) return;
3391    var popup = card.querySelector(POPUP_SEL);
3392    if (!popup) return;
3393
3394    activeCard  = card;
3395    activePopup = popup;
3396
3397    var cardRect = card.getBoundingClientRect();
3398    pauseAllScrollTracks();
3399    showOverlay();
3400
3401    // Phase 1: fade out card text blocks.
3402    Array.from(card.querySelectorAll(BLOCK_SEL)).forEach(function(b) {
3403      b.style.transition = 'opacity ' + FADE_MS + 'ms ease';
3404      b.style.opacity    = '0';
3405    });
3406
3407    setTimeout(function() { startExpand(card, popup, cardRect); }, FADE_MS);
3408  }
3409
3410  function startExpand(card, popup, cardRect) {
3411    var tw = window.innerWidth;   // 100vw
3412    var tl = 0;
3413    var h  = window.innerHeight;  // 100svh — content scrolls inside
3414    var tt = 0;
3415    var mh = h;
3416
3417    // Ensure canvas is at the exact final size (may already be from hover pre-size).
3418    gSetSize(tw, h);
3419
3420    // Pre-hide popup content children — they fade in after expand completes.
3421    Array.from(popup.querySelectorAll(CONTENT_SEL)).forEach(function(el) {
3422      el.style.transition = 'none';
3423      el.style.opacity    = '0';
3424    });
3425
3426    // Move popup into modal. Sits above gradient canvas (z:1).
3427    // Must set top/left to auto — Bricks CSS has top:-9999px; left:-9999px which
3428    // apply as offsets when position switches from fixed → relative.
3429    popup.style.display   = '';
3430    popup.style.position  = 'relative';
3431    popup.style.top       = 'auto';
3432    popup.style.left      = 'auto';
3433    popup.style.zIndex    = '1';
3434    modalEl.appendChild(popup);
3435
3436    document.body.style.overflow = 'hidden';
3437
3438    // Snap modal to card position (bring on-screen, enable events, no transition).
3439    //
3440    // Corner strategy: clip-path on the modal handles the *container* clip.
3441    // Each canvas element also gets its own border-radius that animates in sync
3442    // with the modal's clip-path. A canvas's own border-radius is applied to its
3443    // rendered output before compositing, so it works even when the canvas is
3444    // promoted to its own GPU layer — the root cause of "corners escaping" when
3445    // only a parent clip-path is used.
3446    modalEl.style.pointerEvents = 'auto';
3447    modalEl.style.top           = cardRect.top    + 'px';
3448    modalEl.style.left          = cardRect.left   + 'px';
3449    modalEl.style.width         = cardRect.width  + 'px';
3450    modalEl.style.height        = cardRect.height + 'px';
3451    modalEl.style.maxHeight     = mh + 'px';
3452    modalEl.style.overflow      = 'hidden';
3453    modalEl.style.borderRadius  = '';
3454    modalEl.style.clipPath      = 'inset(0 round ' + CARD_RADIUS + 'px)';
3455    modalEl.style.transition    = 'none';
3456
3457    // Snap canvas corners to card radius — must match modal's starting clip-path.
3458    gCanvas.style.transition   = 'none';
3459    gCanvas.style.borderRadius = CARD_RADIUS + 'px';
3460    dCanvas.style.transition   = 'none';
3461    dCanvas.style.borderRadius = CARD_RADIUS + 'px';
3462
3463    requestAnimationFrame(function() {
3464      requestAnimationFrame(function() {
3465        var bez = EXPAND_MS + 'ms cubic-bezier(0.4,0,0.2,1)';
3466        modalEl.style.transition = [
3467          'width '      + bez,
3468          'height '     + bez,
3469          'left '       + bez,
3470          'top '        + bez,
3471          'clip-path '  + bez,
3472        ].join(', ');
3473        modalEl.style.width    = tw + 'px';
3474        modalEl.style.height   = h  + 'px';
3475        modalEl.style.left     = tl + 'px';
3476        modalEl.style.top      = tt + 'px';
3477        modalEl.style.clipPath = 'inset(0 round ' + POPUP_RADIUS + 'px)';
3478
3479        // Canvas border-radius animates CARD_RADIUS → POPUP_RADIUS alongside clip-path.
3480        var canvTrans          = 'border-radius ' + bez;
3481        gCanvas.style.transition   = canvTrans;
3482        gCanvas.style.borderRadius = POPUP_RADIUS + 'px';
3483        dCanvas.style.transition   = canvTrans;
3484        dCanvas.style.borderRadius = POPUP_RADIUS + 'px';
3485
3486        modalEl.addEventListener('transitionend', onExpandDone, { once: true });
3487      });
3488    });
3489  }
3490
3491  function onExpandDone() {
3492    // Pin to viewport height — content scrolls inside. 'auto' would shrink to content.
3493    modalEl.style.height     = window.innerHeight + 'px';
3494    modalEl.style.overflow   = 'auto';
3495    modalEl.style.transition = 'none';
3496    // clip-path stays at inset(0 round 0px) — no further change needed until collapse.
3497
3498    // Clear canvas transitions; border-radius stays at 16px until startCollapse.
3499    gCanvas.style.transition = 'none';
3500    dCanvas.style.transition = 'none';
3501
3502    // Correct canvas to actual rendered modal size. May differ slightly from the
3503    // measured height (flex stretch, min-height, borders, etc.).
3504    gSetSize(modalEl.offsetWidth, modalEl.offsetHeight);
3505
3506    // Phase 3: fade in popup content children + close button.
3507    var popup = activePopup;
3508    if (popup) {
3509      var content = Array.from(popup.querySelectorAll(CONTENT_SEL));
3510      content.forEach(function(el) { void el.offsetHeight; }); // commit opacity:0
3511      requestAnimationFrame(function() {
3512        content.forEach(function(el) {
3513          el.style.transition = 'opacity ' + (FADE_MS * 2) + 'ms ease';
3514          el.style.opacity    = '1';
3515        });
3516        // Close button fades in with the content.
3517        closeBtnEl.style.opacity = '1';
3518      });
3519    }
3520  }
3521
3522  // ── Collapse ──────────────────────────────────────────────────────────────────
3523  //
3524  // Phase 1  fade out popup content
3525  // Phase 2  animate modal from full size → card position
3526  // Phase 3  return popup to card, fade card text back in
3527
3528  function collapse() {
3529    if (!activePopup) return;
3530    hideOverlay();
3531
3532    // Phase 1: fade out popup content + close button together.
3533    Array.from(activePopup.querySelectorAll(CONTENT_SEL)).forEach(function(el) {
3534      el.style.transition = 'opacity ' + FADE_MS + 'ms ease';
3535      el.style.opacity    = '0';
3536    });
3537    closeBtnEl.style.opacity = '0';
3538
3539    setTimeout(startCollapse, FADE_MS);
3540  }
3541
3542  function startCollapse() {
3543    var cardRect = activeCard.getBoundingClientRect();
3544    var currentH = modalEl.getBoundingClientRect().height;
3545
3546    modalEl.style.height   = currentH + 'px';
3547    modalEl.style.overflow = 'hidden';
3548
3549    requestAnimationFrame(function() {
3550      requestAnimationFrame(function() {
3551        var cbez = EXPAND_MS + 'ms cubic-bezier(0.4,0,0.2,1)';
3552        modalEl.style.transition = [
3553          'width '     + cbez,
3554          'height '    + cbez,
3555          'left '      + cbez,
3556          'top '       + cbez,
3557          'clip-path ' + cbez,
3558        ].join(', ');
3559        modalEl.style.width    = cardRect.width  + 'px';
3560        modalEl.style.height   = cardRect.height + 'px';
3561        modalEl.style.left     = cardRect.left   + 'px';
3562        modalEl.style.top      = cardRect.top    + 'px';
3563        modalEl.style.clipPath = 'inset(0 round ' + CARD_RADIUS + 'px)';
3564
3565        // Canvas shrinks in sync with the modal AND its own border-radius animates
3566        // POPUP_RADIUS → CARD_RADIUS to match the modal's clip-path. Animating the
3567        // canvas's own border-radius is the reliable fix for GPU-promoted layers
3568        // bypassing a parent's clip-path: the canvas clips its own output before
3569        // compositing, so rounded corners are guaranteed regardless of GPU layers.
3570        var canvasTrans = 'width ' + cbez + ', height ' + cbez + ', border-radius ' + cbez;
3571        gCanvas.style.transition   = canvasTrans;
3572        gCanvas.style.width        = cardRect.width  + 'px';
3573        gCanvas.style.height       = cardRect.height + 'px';
3574        gCanvas.style.borderRadius = CARD_RADIUS + 'px';
3575        dCanvas.style.transition   = canvasTrans;
3576        dCanvas.style.width        = cardRect.width  + 'px';
3577        dCanvas.style.height       = cardRect.height + 'px';
3578        dCanvas.style.borderRadius = CARD_RADIUS + 'px';
3579
3580        modalEl.addEventListener('transitionend', onCollapseShrinkDone, { once: true });
3581      });
3582    });
3583  }
3584
3585  // Phase 2 of collapse: after the resize animation lands, fade the entire modal
3586  // (gradient canvas + any remaining content) to opacity 0 before parking it.
3587  // This prevents the abrupt "jump" of the canvas disappearing instantly.
3588  var COLLAPSE_FADE_MS = 280;
3589
3590  function onCollapseShrinkDone() {
3591    // Canvas transitions done — stop them before the opacity fade so they don't
3592    // interfere with the next gSetSize call that will resize them on next hover.
3593    gCanvas.style.transition = 'none';
3594    dCanvas.style.transition = 'none';
3595    modalEl.style.transition = 'opacity ' + COLLAPSE_FADE_MS + 'ms ease';
3596    modalEl.style.opacity    = '0';
3597    setTimeout(onCollapseDone, COLLAPSE_FADE_MS + 20);
3598  }
3599
3600  function onCollapseDone() {
3601    var popup = activePopup;
3602    var card  = activeCard;
3603
3604    // Return popup to its card. Bricks CSS position:fixed/-9999px takes back over.
3605    card.appendChild(popup);
3606    popup.style.cssText = 'display:none';
3607
3608    // Park modal off-screen — canvas stays alive and warm inside.
3609    // Reset opacity, clip-path, and close button so the next open starts clean.
3610    closeBtnEl.style.opacity    = '0';
3611    modalEl.style.opacity       = '';
3612    modalEl.style.clipPath      = '';
3613    modalEl.style.pointerEvents = 'none';
3614    modalEl.style.top           = '-9999px';
3615    modalEl.style.left          = '-9999px';
3616    modalEl.style.transition    = 'none';
3617
3618    document.body.style.overflow = '';
3619    resumeAllScrollTracks();
3620    activeCard         = null;
3621    activePopup        = null;
3622    lastHoveredWrapper = null;
3623
3624    // Phase 3: fade card text blocks back in.
3625    Array.from(card.querySelectorAll(BLOCK_SEL)).forEach(function(b) {
3626      b.style.transition = 'opacity ' + FADE_MS + 'ms ease';
3627      b.style.opacity    = '1';
3628      b.addEventListener('transitionend', function() {
3629        b.style.transition = '';
3630        b.style.opacity    = '';
3631      }, { once: true });
3632    });
3633  }
3634
3635  // ── Keyboard ──────────────────────────────────────────────────────────────────
3636
3637  document.addEventListener('keydown', function(e) {
3638    if (e.key === 'Escape' && activeCard) collapse();
3639  });
3640
3641  // ── Init cards ────────────────────────────────────────────────────────────────
3642
3643  function initCard(card) {
3644    var popup = card.querySelector(POPUP_SEL);
3645    if (popup) popup.style.display = 'none';
3646    card.style.cursor        = 'pointer';
3647    card.style.pointerEvents = 'auto';
3648  }
3649
3650  document.querySelectorAll(CARD_SEL).forEach(initCard);
3651
3652  new MutationObserver(function(mutations) {
3653    mutations.forEach(function(m) {
3654      m.addedNodes.forEach(function(node) {
3655        if (!(node instanceof Element)) return;
3656        if (node.matches(CARD_SEL)) { initCard(node); return; }
3657        node.querySelectorAll(CARD_SEL).forEach(initCard);
3658      });
3659    });
3660  }).observe(document.body, { childList: true, subtree: true });
3661
3662  // ── Pointer events ────────────────────────────────────────────────────────────
3663  // Capture phase so the scroll slider can't intercept.
3664
3665  var downX = 0, downY = 0, downCard = null;
3666
3667  document.addEventListener('pointerdown', function(e) {
3668    downCard = e.target.closest ? e.target.closest(CARD_SEL) : null;
3669    if (!downCard && e.target.matches && e.target.matches(WRAPPER_SEL)) {
3670      downCard = e.target.querySelector(CARD_SEL);
3671    }
3672    downX = e.clientX;
3673    downY = e.clientY;
3674  }, { capture: true, passive: true });
3675
3676document.addEventListener('pointerup', function(e) {
3677    if (!downCard || activeCard) {
3678        downCard = null;
3679        return;
3680    }
3681
3682    // If the horizontal slider has identified this interaction
3683    // as a swipe, do not open the popup.
3684    var scrollingContainer = downCard.closest
3685        ? downCard.closest('.horizontal-scrolling-elements')
3686        : null;
3687
3688    if (
3689        scrollingContainer &&
3690        scrollingContainer.dataset.horizontalDragging === '1'
3691    ) {
3692        downCard = null;
3693        return;
3694    }
3695
3696    var dx = Math.abs(e.clientX - downX);
3697    var dy = Math.abs(e.clientY - downY);
3698
3699    if (dx < TAP_THRESHOLD && dy < TAP_THRESHOLD) {
3700        expand(downCard);
3701    }
3702
3703    downCard = null;
3704}, { capture: true });
3705
3706  } // end main()
3707})();
3708</script>
3708<style>
3709	.horizontal-marquee {
3710	  overflow: hidden;
3711	  position: relative;
3712	  width: 100%;
3713	}
3714
3715	.horizontal-marquee-track {
3716	  display: flex;
3717	  width: max-content;
3718	  will-change: transform;
3719	}
3720
3721	.horizontal-marquee-track.scrolling {
3722	  animation: horizontal-marquee-scroll var(--marquee-duration, 20s) linear infinite;
3723	}
3724
3725	.horizontal-marquee-track.scrolling[data-direction="right"] {
3726	  animation-name: horizontal-marquee-scroll-right;
3727	}
3728
3729	.horizontal-marquee-track > * {
3730	  flex-shrink: 0;
3731	}
3732
3733	@keyframes horizontal-marquee-scroll {
3734	  0% {
3735		transform: translateX(0);
3736	  }
3737	  100% {
3738		transform: translateX(calc(var(--marquee-set-width) * -1));
3739	  }
3740	}
3741
3742	@keyframes horizontal-marquee-scroll-right {
3743	  0% {
3744		transform: translateX(calc(var(--marquee-set-width) * -1));
3745	  }
3746	  100% {
3747		transform: translateX(0);
3748	  }
3749	}
3750</style>
3751<script>
3752	(function() {
3753		/**
3754		 * Horizontal Marquee
3755		 *
3756		 * Usage:
3757		 *   <div class="horizontal-marquee" data-direction="left" data-gap="24" data-speed="1">
3758		 *     <div>Item 1</div>
3759		 *     <div>Item 2</div>
3760		 *     <div>Item 3</div>
3761		 *   </div>
3762		 *
3763		 * Attributes:
3764		 *   data-direction  — "left" (default) or "right"
3765		 *   data-gap        — gap in px between items (default: 0)
3766		 *   data-speed      — multiplier: 1 = default, 2 = twice as fast, 0.5 = half, etc.
3767		 *
3768		 * Multiple instances are fully supported — each .horizontal-marquee on the
3769		 * page gets its own independent HorizontalMarquee instance.
3770		 */
3771
3772		class HorizontalMarquee {
3773		  constructor(el) {
3774			this.container = el;
3775			this.direction = el.dataset.direction || "left";
3776			this.gap = parseFloat(el.dataset.gap) || 0;
3777			this.speed = parseFloat(el.dataset.speed) || 1;
3778			this.track = null;
3779
3780			// Snapshot the original children before we touch the DOM
3781			this.originalItems = Array.from(el.children);
3782			if (this.originalItems.length === 0) return;
3783
3784			this._build();
3785
3786			// Each instance gets its own debounced resize handler
3787			this._onResize = HorizontalMarquee._debounce(() => this._rebuild(), 300);
3788			window.addEventListener("resize", this._onResize);
3789		  }
3790
3791		  /* ------------------------------------------------------------------ */
3792		  /*  Build / rebuild                                                    */
3793		  /* ------------------------------------------------------------------ */
3794
3795		  _build() {
3796			// 1. Create the track wrapper
3797			this.track = document.createElement("div");
3798			this.track.classList.add("horizontal-marquee-track");
3799			this.track.dataset.direction = this.direction;
3800			this.track.style.gap = `${this.gap}px`;
3801
3802			// 2. Move originals into the track (keeps references intact)
3803			this.originalItems.forEach((item) => this.track.appendChild(item));
3804			this.container.appendChild(this.track);
3805
3806			// 2b. Force-load any lazy images on originals too
3807			this.originalItems.forEach((item) => this._fixLazyImages(item));
3808
3809			// 3. Measure one full set *after* the items are in the document flow
3810			//    so percentages / flex / responsive sizing are resolved.
3811			const setWidth = this._measureSetWidth();
3812
3813			// 4. Work out how many full duplicate sets we need.
3814			//    We need enough cloned content to fill the viewport so the
3815			//    loop-reset is never visible.
3816			const viewportWidth = this.container.offsetWidth;
3817			const clonesNeeded = Math.max(1, Math.ceil(viewportWidth / setWidth));
3818
3819			for (let c = 0; c < clonesNeeded; c++) {
3820			  this.originalItems.forEach((item) => {
3821				const clone = item.cloneNode(true);
3822				clone.setAttribute("aria-hidden", "true");
3823				this._fixLazyImages(clone);
3824				this.track.appendChild(clone);
3825			  });
3826			}
3827
3828			// 5. Tell CSS how far one set is
3829			this.track.style.setProperty("--marquee-set-width", `${setWidth}px`);
3830
3831			// 6. Duration = distance / speed.  Base rate: 50 px/s.
3832			const basePxPerSecond = 50;
3833			const duration = setWidth / (basePxPerSecond * this.speed);
3834			this.track.style.setProperty("--marquee-duration", `${duration}s`);
3835
3836			// 7. Force a reflow before adding the class so the browser picks up
3837			//    the new custom-property values before the animation starts.
3838			void this.track.offsetWidth;
3839			this.track.classList.add("scrolling");
3840		  }
3841
3842		  _rebuild() {
3843			if (!this.track) return;
3844
3845			// Pull originals back into the container (out of the track)
3846			this.originalItems.forEach((item) => this.container.appendChild(item));
3847			this.track.remove();
3848			this.track = null;
3849
3850			// Rebuild — children will be measured at their new natural size
3851			this._build();
3852		  }
3853
3854		  /* ------------------------------------------------------------------ */
3855		  /*  Lazy-load fixes (Bricks / native)                                  */
3856		  /* ------------------------------------------------------------------ */
3857
3858		  _fixLazyImages(node) {
3859			// Collect images from the node itself (if it's an img) and descendants
3860			const images = [];
3861			if (node.tagName === "IMG") images.push(node);
3862			images.push(...node.querySelectorAll("img"));
3863
3864			images.forEach((img) => {
3865			  // 1. Switch native lazy loading to eager
3866			  if (img.loading === "lazy") {
3867				img.loading = "eager";
3868			  }
3869
3870			  // 2. Bricks / WP data-src → src swap
3871			  if (img.dataset.src) {
3872				img.src = img.dataset.src;
3873				delete img.dataset.src;
3874			  }
3875
3876			  // 3. Bricks / WP data-srcset → srcset swap
3877			  if (img.dataset.srcset) {
3878				img.srcset = img.dataset.srcset;
3879				delete img.dataset.srcset;
3880			  }
3881
3882			  // 4. Remove common lazy-load placeholder classes
3883			  img.classList.remove("lazyload", "lazyloading", "lazy");
3884			  img.classList.add("lazyloaded");
3885			});
3886
3887			// Also handle <source> elements inside <picture>
3888			const sources = node.querySelectorAll("source[data-srcset]");
3889			sources.forEach((source) => {
3890			  source.srcset = source.dataset.srcset;
3891			  delete source.dataset.srcset;
3892			});
3893		  }
3894
3895		  /* ------------------------------------------------------------------ */
3896		  /*  Measurement                                                        */
3897		  /* ------------------------------------------------------------------ */
3898
3899		  _measureSetWidth() {
3900			let totalWidth = 0;
3901			this.originalItems.forEach((item) => {
3902			  // Use getBoundingClientRect for sub-pixel accuracy
3903			  totalWidth += item.getBoundingClientRect().width;
3904			});
3905
3906			// Each item is followed by a gap (flex gap applies between every
3907			// adjacent pair, including between the last clone of one set and the
3908			// first clone of the next), so each "set" contributes count × gap.
3909			totalWidth += this.originalItems.length * this.gap;
3910			return totalWidth;
3911		  }
3912
3913		  /* ------------------------------------------------------------------ */
3914		  /*  Public helpers                                                      */
3915		  /* ------------------------------------------------------------------ */
3916
3917		  pause() {
3918			if (this.track) this.track.style.animationPlayState = "paused";
3919		  }
3920
3921		  resume() {
3922			if (this.track) this.track.style.animationPlayState = "running";
3923		  }
3924
3925		  destroy() {
3926			window.removeEventListener("resize", this._onResize);
3927			if (this.track) {
3928			  this.originalItems.forEach((item) => this.container.appendChild(item));
3929			  this.track.remove();
3930			  this.track = null;
3931			}
3932			delete this.container._horizontalMarqueeInstance;
3933		  }
3934
3935		  /* ------------------------------------------------------------------ */
3936		  /*  Static utilities                                                    */
3937		  /* ------------------------------------------------------------------ */
3938
3939		  static _debounce(fn, ms) {
3940			let timer;
3941			return (...args) => {
3942			  clearTimeout(timer);
3943			  timer = setTimeout(() => fn(...args), ms);
3944			};
3945		  }
3946		}
3947
3948		/* -------------------------------------------------------------------- */
3949		/*  Auto-init                                                            */
3950		/* -------------------------------------------------------------------- */
3951
3952		function initHorizontalMarquees() {
3953		  document.querySelectorAll(".horizontal-marquee").forEach((el) => {
3954			// Guard: skip elements that are already initialised
3955			if (!el._horizontalMarqueeInstance) {
3956			  el._horizontalMarqueeInstance = new HorizontalMarquee(el);
3957			}
3958		  });
3959		}
3960
3961		// Run now or when the DOM is ready
3962		if (document.readyState === "loading") {
3963		  document.addEventListener("DOMContentLoaded", initHorizontalMarquees);
3964		} else {
3965		  initHorizontalMarquees();
3966		}
3967	})()
3968</script>
3968<script>/**
3969 * Infinite Horizontal Scroll - Elements
3970 * Automatically scrolls child elements horizontally if they overflow the container.
3971 * Stops scrolling and shows static elements if they fit within the viewport.
3972 * Supports multiple instances on the same page.
3973 * Handles Bricks Builder lazy loading for nested images.
3974 * Designed for testimonial cards, feature boxes, or any div-based content.
3975 *
3976 * MOBILE DRAG: touch pointers can grab the (auto-scrolling) track and drag it
3977 * horizontally. Desktop behavior (constant-speed auto-scroll, hover-to-pause)
3978 * is untouched - drag only activates for pointerType === 'touch'.
3979 */
3980(function() {
3981    'use strict';
3982  
3983    // Configuration
3984    const CONFIG = {
3985      containerSelector: '.horizontal-scrolling-elements',
3986      scrollSpeed: 30, // Pixels per second (constant speed regardless of content width)
3987      debounceDelay: 150, // Resize debounce delay in ms
3988      dragClickThreshold: 6 // px of movement before a touch counts as a drag (vs a tap/click)
3989    };
3990      
3991    document.querySelectorAll('.horizontal-scrolling-block img[data-size]').forEach(function(img) {
3992        img.style.width = img.dataset.size;
3993    });
3994  
3995    // Store all instances
3996    const instances = [];
3997  
3998    /**
3999     * Fix Bricks lazy loading on an element and all its children
4000     * Swaps data-src to src, data-srcset to srcset, removes bricks-lazy-hidden
4001     */
4002    function fixBricksLazyLoad(element) {
4003      // Fix the element itself if it has the class
4004      element.classList.remove('bricks-lazy-hidden');
4005      
4006      // Find all lazy-loaded images within the element
4007      const lazyImages = element.querySelectorAll('img[data-src], img.bricks-lazy-hidden');
4008      lazyImages.forEach(img => {
4009        // Swap data-src to src
4010        if (img.dataset.src) {
4011          img.src = img.dataset.src;
4012          img.removeAttribute('data-src');
4013        }
4014        
4015        // Swap data-srcset to srcset
4016        if (img.dataset.srcset) {
4017          img.srcset = img.dataset.srcset;
4018          img.removeAttribute('data-srcset');
4019        }
4020        
4021        // Swap data-sizes to sizes
4022        if (img.dataset.sizes) {
4023          img.sizes = img.dataset.sizes;
4024          img.removeAttribute('data-sizes');
4025        }
4026        
4027        // Remove lazy hidden class
4028        img.classList.remove('bricks-lazy-hidden');
4029      });
4030      
4031      // Also remove bricks-lazy-hidden from any nested divs
4032      const lazyDivs = element.querySelectorAll('.bricks-lazy-hidden');
4033      lazyDivs.forEach(div => {
4034        div.classList.remove('bricks-lazy-hidden');
4035      });
4036    }
4037
4038    /**
4039     * Read the current translateX (px) applied to an element, whether it's
4040     * coming from an inline style or a running CSS animation.
4041     */
4042    function getTranslateX(el) {
4043      const style = window.getComputedStyle(el);
4044      const transform = style.transform;
4045      if (!transform || transform === 'none') return 0;
4046
4047      // matrix(a, b, c, d, tx, ty)
4048      const matrixMatch = transform.match(/^matrix\(([^)]+)\)$/);
4049      if (matrixMatch) {
4050        const parts = matrixMatch[1].split(',').map(v => parseFloat(v.trim()));
4051        return parts[4] || 0;
4052      }
4053
4054      // matrix3d(...) - tx is the 13th value
4055      const matrix3dMatch = transform.match(/^matrix3d\(([^)]+)\)$/);
4056      if (matrix3dMatch) {
4057        const parts = matrix3dMatch[1].split(',').map(v => parseFloat(v.trim()));
4058        return parts[12] || 0;
4059      }
4060
4061      return 0;
4062    }
4063  
4064    /**
4065     * ScrollInstance class - manages a single scroll container
4066     */
4067    class ScrollInstance {
4068      constructor(container, index) {
4069        this.container = container;
4070        this.index = index;
4071        this.originalElements = [];
4072        this.isScrolling = false;
4073        this.scrollWrapper = null;
4074        this.animationName = `elementScroll-${index}`;
4075        this.gap = 0;
4076
4077        // Drag state
4078        this.scrollDistance = 0; // width (px) of one full content loop, incl. trailing gap
4079        this.duration = 0;       // seconds for one full loop at CONFIG.scrollSpeed
4080        this.dragState = null;   // active drag tracking, null when not dragging
4081        this.dragJustHappened = false; // suppresses the click that follows a drag
4082        
4083        this.init();
4084      }
4085  
4086      init() {
4087        // Get only direct children that aren't the scroll wrapper or clones
4088        this.originalElements = Array.from(this.container.children).filter(el => {
4089          return !el.classList.contains('element-scroll-wrapper') && 
4090                 !el.classList.contains('element-clone');
4091        });
4092        
4093        if (this.originalElements.length === 0) {
4094          console.warn(`Horizontal scroll instance ${this.index}: No elements found`);
4095          return;
4096        }
4097  
4098        // Fix lazy loading on original elements first
4099        this.originalElements.forEach(el => {
4100          fixBricksLazyLoad(el);
4101        });
4102  
4103        // Wait for images to load before calculating dimensions
4104        this.waitForImages().then(() => {
4105          this.setupContainer();
4106          this.calculateGap();
4107          this.checkAndToggleScroll();
4108        });
4109      }
4110  
4111      waitForImages() {
4112        // Find all images in original elements
4113        const allImages = [];
4114        this.originalElements.forEach(el => {
4115          const images = el.querySelectorAll('img');
4116          images.forEach(img => allImages.push(img));
4117        });
4118  
4119        const imagePromises = allImages.map(img => {
4120          if (img.complete && img.naturalWidth > 0) return Promise.resolve();
4121          return new Promise(resolve => {
4122            img.addEventListener('load', resolve);
4123            img.addEventListener('error', resolve);
4124          });
4125        });
4126  
4127        return Promise.all(imagePromises);
4128      }
4129  
4130      setupContainer() {
4131        this.container.style.overflow = 'hidden';
4132        this.container.style.position = 'relative';
4133		this.container.style.touchAction = 'pan-y';
4134		if (window.matchMedia('(hover: hover)').matches) {
4135			this.setupHoverPause();
4136		}
4137		this.setupDragging();
4138      }
4139
4140      /**
4141       * Pause the scroll animation while the pointer is hovering over
4142       * any of the elements inside the slider, and resume it on leave.
4143       *
4144       * card-expand.js stamps data-ce-paused="1" on the scrollWrapper when a
4145       * card popup is open so that the overlay triggering a spurious mouseleave
4146       * event here doesn't accidentally resume a scroll we explicitly paused.
4147       * Both enter and leave bail out if that flag is present. We also bail
4148       * out while a touch drag is in progress (data-dragging).
4149       */
4150      setupHoverPause() {
4151        this.container.addEventListener('mouseenter', () => {
4152          if (this.isScrolling && this.scrollWrapper && !this.scrollWrapper.dataset.cePaused && !this.scrollWrapper.dataset.dragging) {
4153            this.scrollWrapper.style.animationPlayState = 'paused';
4154          }
4155        });
4156
4157        this.container.addEventListener('mouseleave', () => {
4158          if (this.isScrolling && this.scrollWrapper && !this.scrollWrapper.dataset.cePaused && !this.scrollWrapper.dataset.dragging) {
4159            this.scrollWrapper.style.animationPlayState = 'running';
4160          }
4161        });
4162      }
4163      setupDragging() {
4164        this.container.addEventListener('pointerdown', (e) => this.onDragStart(e));
4165        this.container.addEventListener('pointermove', (e) => this.onDragMove(e));
4166        this.container.addEventListener('pointerup', (e) => this.onDragEnd(e));
4167        this.container.addEventListener('pointercancel', (e) => this.onDragEnd(e));
4168		  
4169		  window.addEventListener('blur', () => {
4170			this.cleanupDrag();
4171		});
4172
4173		document.addEventListener('visibilitychange', () => {
4174			if (document.hidden) {
4175				this.cleanupDrag();
4176			}
4177		});
4178
4179        this.container.addEventListener('click', (e) => {
4180          if (this.dragJustHappened) {
4181            e.preventDefault();
4182            e.stopPropagation();
4183            this.dragJustHappened = false;
4184          }
4185        }, true);
4186      }
4187
4188onDragStart(e) {
4189    if (e.pointerType !== 'touch') return;
4190    if (!this.isScrolling || !this.scrollWrapper) return;
4191
4192    this.dragState = {
4193        pointerId: e.pointerId,
4194        startX: e.clientX,
4195        startY: e.clientY,
4196        startTranslate: null,
4197        moved: false,
4198        dragging: false
4199    };
4200}
4201
4202     onDragMove(e) {
4203    if (!this.dragState || e.pointerId !== this.dragState.pointerId) return;
4204
4205    const deltaX = e.clientX - this.dragState.startX;
4206    const deltaY = e.clientY - this.dragState.startY;
4207
4208    // Wait until the finger has moved far enough to determine
4209    // whether this is a tap, horizontal swipe, or vertical scroll.
4210    if (!this.dragState.moved) {
4211
4212        if (
4213            Math.abs(deltaX) <= CONFIG.dragClickThreshold &&
4214            Math.abs(deltaY) <= CONFIG.dragClickThreshold
4215        ) {
4216            return;
4217        }
4218
4219        // Vertical movement belongs to the page.
4220			if (Math.abs(deltaY) > Math.abs(deltaX)) {
4221				this.cleanupDrag();
4222				return;
4223			}
4224
4225        // We now know this is a horizontal swipe.
4226        this.dragState.moved = true;
4227        this.dragState.dragging = true;
4228
4229        // Tell the popup script that this interaction is a drag.
4230        this.container.dataset.horizontalDragging = '1';
4231
4232        // Freeze the current animation position.
4233        this.dragState.startTranslate = getTranslateX(this.scrollWrapper);
4234
4235        this.scrollWrapper.style.animation = 'none';
4236        this.scrollWrapper.style.transform =
4237            `translateX(${this.dragState.startTranslate}px)`;
4238
4239        this.scrollWrapper.dataset.dragging = '1';
4240
4241        try {
4242            this.container.setPointerCapture(e.pointerId);
4243        } catch (err) {}
4244    }
4245
4246    if (!this.dragState.dragging) return;
4247
4248    e.preventDefault();
4249
4250    let translateX =
4251        this.dragState.startTranslate + deltaX;
4252
4253    if (this.scrollDistance > 0) {
4254        while (translateX > 0) {
4255            translateX -= this.scrollDistance;
4256        }
4257
4258        while (translateX <= -this.scrollDistance) {
4259            translateX += this.scrollDistance;
4260        }
4261    }
4262
4263    this.scrollWrapper.style.transform =
4264        `translateX(${translateX}px)`;
4265}
4266
4267onDragEnd(e) {
4268    if (!this.dragState || e.pointerId !== this.dragState.pointerId) return;
4269
4270    try {
4271        this.container.releasePointerCapture(e.pointerId);
4272    } catch (err) {}
4273
4274    this.cleanupDrag();
4275}
4276		
4277		cleanupDrag() {
4278    if (!this.dragState) return;
4279
4280    const wasDragging = this.dragState.dragging;
4281
4282    this.dragState = null;
4283
4284    delete this.container.dataset.horizontalDragging;
4285
4286    if (this.scrollWrapper) {
4287        delete this.scrollWrapper.dataset.dragging;
4288    }
4289
4290    if (wasDragging && this.isScrolling) {
4291        this.resumeAutoScrollFromCurrentPosition();
4292    }
4293}
4294		
4295		resumeAutoScrollFromCurrentPosition() {
4296    if (!this.scrollWrapper || !this.isScrolling || this.scrollDistance <= 0) return;
4297
4298    let currentX = getTranslateX(this.scrollWrapper);
4299
4300    // Normalize into (-scrollDistance, 0]
4301    while (currentX > 0) currentX -= this.scrollDistance;
4302    while (currentX <= -this.scrollDistance) currentX += this.scrollDistance;
4303
4304    const fraction = (-currentX) / this.scrollDistance; // 0 .. 1
4305    const delay = -(fraction * this.duration);
4306
4307    this.scrollWrapper.style.transform = '';
4308    this.scrollWrapper.style.animation = `${this.animationName} ${this.duration}s linear infinite`;
4309    this.scrollWrapper.style.animationDelay = `${delay}s`;
4310    this.scrollWrapper.style.animationPlayState = 'running';
4311}
4312  
4313      calculateGap() {
4314        if (this.originalElements.length >= 2) {
4315          const firstEl = this.originalElements[0];
4316          const secondEl = this.originalElements[1];
4317          const firstRect = firstEl.getBoundingClientRect();
4318          const secondRect = secondEl.getBoundingClientRect();
4319          this.gap = secondRect.left - firstRect.right;
4320          
4321          // Fallback if gap calculation fails
4322          if (this.gap <= 0 || isNaN(this.gap)) {
4323            const computedStyle = window.getComputedStyle(this.container);
4324            const cssGap = parseFloat(computedStyle.gap) || 0;
4325            this.gap = cssGap > 0 ? cssGap : 24; // Default to 24px for cards
4326          }
4327        } else {
4328          this.gap = 24;
4329        }
4330      }
4331  
4332      calculateOriginalWidth() {
4333        let totalWidth = 0;
4334        
4335        this.originalElements.forEach((el, index) => {
4336          totalWidth += el.offsetWidth;
4337          if (index < this.originalElements.length - 1) {
4338            totalWidth += this.gap;
4339          }
4340        });
4341        
4342        return totalWidth;
4343      }
4344  
4345      /**
4346       * Calculate animation duration based on content width and desired speed
4347       * Duration = Distance / Speed
4348       */
4349      calculateDuration(scrollDistance) {
4350        return scrollDistance / CONFIG.scrollSpeed;
4351      }
4352  
4353      checkAndToggleScroll() {
4354        // Recalculate gap in case CSS changed
4355        this.calculateGap();
4356        
4357        const containerWidth = this.container.offsetWidth;
4358        const contentWidth = this.calculateOriginalWidth();
4359        const needsScroll = contentWidth > containerWidth;
4360  
4361        if (needsScroll && !this.isScrolling) {
4362          this.enableScroll();
4363        } else if (!needsScroll && this.isScrolling) {
4364          this.disableScroll();
4365        }
4366      }
4367  
4368      enableScroll() {
4369        this.isScrolling = true;
4370  
4371        if (!this.scrollWrapper) {
4372          this.scrollWrapper = document.createElement('div');
4373          this.scrollWrapper.className = 'element-scroll-wrapper';
4374          
4375          // Move original elements into wrapper
4376          this.originalElements.forEach(el => {
4377            this.scrollWrapper.appendChild(el);
4378          });
4379          
4380          this.container.appendChild(this.scrollWrapper);
4381        }
4382  
4383        // Clear any existing clones
4384        const existingClones = this.scrollWrapper.querySelectorAll('.element-clone');
4385        existingClones.forEach(clone => clone.remove());
4386  
4387        // Calculate how many sets of duplicates we need
4388        const containerWidth = this.container.offsetWidth;
4389        const contentWidth = this.calculateOriginalWidth() + this.gap;
4390        const duplicateSets = Math.ceil(containerWidth / contentWidth) + 1;
4391  
4392        // Create duplicate sets for seamless looping
4393        for (let set = 0; set < duplicateSets; set++) {
4394          this.originalElements.forEach(el => {
4395            const clone = el.cloneNode(true);
4396            clone.classList.add('element-clone');
4397
4398            // Remove any IDs from clones to avoid duplicates
4399            clone.removeAttribute('id');
4400            clone.querySelectorAll('[id]').forEach(child => child.removeAttribute('id'));
4401
4402            // Remove blank canvas copies — they have no pixel data and would sit
4403            // underneath the fresh canvases that script.js injects on init.
4404            // gradient-section class is intentionally kept so the MutationObserver
4405            // in script.js initialises a real gradient on each visible clone.
4406            clone.querySelectorAll('canvas').forEach(c => c.remove());
4407
4408            // Fix Bricks lazy loading on the clone
4409            fixBricksLazyLoad(clone);
4410            
4411            this.scrollWrapper.appendChild(clone);
4412          });
4413        }
4414  
4415        // Calculate scroll distance and duration
4416        const scrollDistance = this.calculateOriginalWidth() + this.gap;
4417        const duration = this.calculateDuration(scrollDistance);
4418
4419        // Keep these on the instance so drag handlers can use them
4420        this.scrollDistance = scrollDistance;
4421        this.duration = duration;
4422        
4423        this.updateKeyframes(scrollDistance);
4424  
4425        // Apply scroll styles
4426        this.scrollWrapper.style.display = 'flex';
4427        this.scrollWrapper.style.alignItems = 'stretch';
4428        this.scrollWrapper.style.width = 'max-content';
4429        this.scrollWrapper.style.animation = `${this.animationName} ${duration}s linear infinite`;
4430  
4431        // Update container classes
4432        this.container.classList.add('is-scrolling');
4433        this.container.classList.remove('is-static');
4434      }
4435  
4436      updateKeyframes(scrollDistance) {
4437        let styleEl = document.getElementById(`element-scroll-keyframes-${this.index}`);
4438        
4439        if (!styleEl) {
4440          styleEl = document.createElement('style');
4441          styleEl.id = `element-scroll-keyframes-${this.index}`;
4442          document.head.appendChild(styleEl);
4443        }
4444        
4445        styleEl.textContent = `
4446          @keyframes ${this.animationName} {
4447            0% { transform: translateX(0); }
4448            100% { transform: translateX(-${scrollDistance}px); }
4449          }
4450        `;
4451      }
4452  
4453      disableScroll() {
4454        this.isScrolling = false;
4455  
4456        if (this.scrollWrapper) {
4457          const clones = this.scrollWrapper.querySelectorAll('.element-clone');
4458          clones.forEach(clone => clone.remove());
4459  
4460          // Reset wrapper styles
4461          this.scrollWrapper.style.display = 'flex';
4462          this.scrollWrapper.style.alignItems = 'stretch';
4463          this.scrollWrapper.style.justifyContent = 'center';
4464          this.scrollWrapper.style.width = '100%';
4465          this.scrollWrapper.style.animation = 'none';
4466          this.scrollWrapper.style.animationDelay = '';
4467          this.scrollWrapper.style.transform = '';
4468        }
4469
4470        this.scrollDistance = 0;
4471        this.duration = 0;
4472  
4473        // Update container classes
4474        this.container.classList.remove('is-scrolling');
4475        this.container.classList.add('is-static');
4476      }
4477    }
4478  
4479    /**
4480     * Initialize all scroll containers
4481     */
4482    function initAll() {
4483      const containers = document.querySelectorAll(CONFIG.containerSelector);
4484      
4485      if (containers.length === 0) {
4486        console.warn('Horizontal scroll elements: No containers found');
4487        return;
4488      }
4489  
4490      containers.forEach((container, index) => {
4491        instances.push(new ScrollInstance(container, index));
4492      });
4493  
4494      setupResizeListener();
4495    }
4496  
4497    /**
4498     * Debounced resize handler for all instances
4499     */
4500    function setupResizeListener() {
4501      let resizeTimeout;
4502      
4503      window.addEventListener('resize', () => {
4504        clearTimeout(resizeTimeout);
4505        resizeTimeout = setTimeout(() => {
4506          instances.forEach(instance => {
4507            instance.checkAndToggleScroll();
4508          });
4509        }, CONFIG.debounceDelay);
4510      });
4511    }
4512  
4513    // Initialize when DOM is ready
4514    if (document.readyState === 'loading') {
4515      document.addEventListener('DOMContentLoaded', initAll);
4516    } else {
4517      initAll();
4518    }
4519  })();</script>
4519<link rel='stylesheet' id='bricks-splide-css' href='https://www.upwind.io/wp-content/themes/bricks/assets/css/libs/splide-layer.min.css?ver=1768493258' media='all' />
4520<script id="gform_placeholder-js" defer='defer' src="https://www.upwind.io/wp-content/plugins/gravityforms/js/placeholders.jquery.min.js?ver=2.9.25"></script>
vendor: 1 bytes, line 4520
4520
4521<script id="gform_gravityforms_theme_vendors-js" defer='defer' src="https://www.upwind.io/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=4f8b3915c1c1e1a6800825abd64b03cb"></script>
vendor: 1 bytes, line 4521
4521
4522<script id="gform_gravityforms_theme-js-extra">
4523var gform_theme_config = {"common":{"form":{"honeypot":{"version_hash":"7dd2df01a27a3c2bd2ae02705b85e76d"},"ajax":{"ajaxurl":"https://www.upwind.io/wp-admin/admin-ajax.php","ajax_submission_nonce":"0a3fb80653","i18n":{"step_announcement":"Step %1$s of %2$s, %3$s","unknown_error":"There was an unknown error processing your request. Please try again."}}}},"hmr_dev":"","public_path":"https://www.upwind.io/wp-content/plugins/gravityforms/assets/js/dist/","config_nonce":"d295e1377a"};
4524//# sourceURL=gform_gravityforms_theme-js-extra
4525</script>
vendor: 1 bytes, line 4525
4525
4526<script id="gform_gravityforms_theme-js" defer='defer' src="https://www.upwind.io/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=244d9e312b90e462b62b2d9b9d415753"></script>
vendor: 1 bytes, line 4526
4526
4527<script id="ee-ff-js-extra">
4528var formFilter = {"ajax":"https://www.upwind.io/wp-admin/admin-ajax.php","list":"https://www.upwind.io/wp-content/uploads/ee-form-filter/black-list.json","errors":"{\"not-email\":\"An Email Address needs an @\",\"disposable\":\"The email address you provided shows up on known disposable email lists. Please try a different one.\",\"first-last\":\"The first name and last name must be different\",\"name-number\":\"A name cannot contain a number\",\"one-char\":\"A name cannot be just one character\",\"two-char\":\"A name cannot be 2 characters that are the same letter or both vowels\",\"profanity\":\"Profanity is not allowed\",\"personal\":\"Please use a business email.\",\"invalid\":\"This is not a valid email address\",\"server\":\"The server cannot be reached\"}"};
4529//# sourceURL=ee-ff-js-extra
4530</script>
vendor: 1 bytes, line 4530
4530
4531<script id="ee-ff-js" src="https://www.upwind.io/wp-content/plugins/form-filtering-plugin/assets/app.js?ver=1790240990"></script>
vendor: 1 bytes, line 4531
4531
4532<script id="leadin-script-loader-js-js-extra">
4533var leadin_wordpress = {"userRole":"visitor","pageType":"home","leadinPluginVersion":"11.3.37"};
4534//# sourceURL=leadin-script-loader-js-js-extra
4535</script>
vendor: 1 bytes, line 4535
4535
4536<script id="leadin-script-loader-js-js" src="https://js-na2.hs-scripts.com/242450885.js?integration=WordPress&#038;ver=11.3.37"></script>
vendor: 1 bytes, line 4536
4536
4537<script id="upwind-chat-js-js" src="https://www.upwind.io/wp-content/plugins/upwind/chat/chat.js?ver=1.1.2"></script>
vendor: 1 bytes, line 4537
4537
4538<script id="sharethis-js" src="https://platform-api.sharethis.com/js/sharethis.js?ver=1.0.0#property=64bfcba499ed020012e4a161&#038;product=sop"></script>
vendor: 1 bytes, line 4538
4538
4539<script id="up-js-js" src="https://www.upwind.io/wp-content/plugins/upwind/upwind.js?ver=7.0.5"></script>
vendor: 1 bytes, line 4539
4539
4540<script id="up-marquee-widget-js" src="https://www.upwind.io/wp-content/plugins/upwind/uw-marquee.js?ver=7.0.5"></script>
vendor: 1 bytes, line 4540
4540
4541<script id="bricks-scripts-js-extra">
4542var bricksData = {"debug":"","locale":"en_US","ajaxUrl":"https://www.upwind.io/wp-admin/admin-ajax.php","restApiUrl":"https://www.upwind.io/wp-json/bricks/v1/","nonce":"7a2777d9a9","formNonce":"1ad51ad6ad","wpRestNonce":"823f3cba2d","postId":"22323","recaptchaIds":[],"animatedTypingInstances":[],"videoInstances":[],"splideInstances":[],"tocbotInstances":[],"swiperInstances":[],"queryLoopInstances":[],"interactions":[],"filterInstances":[],"isotopeInstances":[],"activeFiltersCountInstances":[],"googleMapInstances":[],"facebookAppId":"","headerPosition":"top","offsetLazyLoad":"300","baseUrl":"https://www.upwind.io/","useQueryFilter":"1","pageFilters":[],"language":"","wpmlUrlFormat":"","multilangPlugin":"","i18n":{"remove":"Remove","openAccordion":"Open accordion","openMobileMenu":"Open mobile menu","closeMobileMenu":"Close mobile menu","showPassword":"Show password","hidePassword":"Hide password","prevSlide":"Previous slide","nextSlide":"Next slide","firstSlide":"Go to first slide","lastSlide":"Go to last slide","slideX":"Go to slide %s","play":"Start autoplay","pause":"Pause autoplay","splide":{"carousel":"carousel","select":"Select a slide to show","slide":"slide","slideLabel":"%1$s of %2$s"},"swiper":{"slideLabelMessage":"{{index}} / {{slidesLength}}"},"noLocationsFound":"No locations found","locationTitle":"Location title","locationSubtitle":"Location subtitle","locationContent":"Location content"},"selectedFilters":[],"filterNiceNames":[],"bricksGoogleMarkerScript":"https://www.upwind.io/wp-content/themes/bricks/assets/js/libs/bricks-google-marker.min.js?v=2.1.4","infoboxScript":"https://www.upwind.io/wp-content/themes/bricks/assets/js/libs/infobox.min.js?v=2.1.4","markerClustererScript":"https://www.upwind.io/wp-content/themes/bricks/assets/js/libs/markerclusterer.min.js?v=2.1.4","mainQueryId":""};
4543//# sourceURL=bricks-scripts-js-extra
4544</script>
vendor: 1 bytes, line 4544
4544
4545<script id="bricks-scripts-js" src="https://www.upwind.io/wp-content/themes/bricks/assets/js/bricks.min.js?ver=1768493258"></script>
vendor: 1 bytes, line 4545
4545
4546<script id="bricks-splide-js" src="https://www.upwind.io/wp-content/themes/bricks/assets/js/libs/splide.min.js?ver=4.1.4"></script>
vendor: 1 bytes, line 4546
4546
4547<script id="wp-emoji-settings" type="application/json">
4548{"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://www.upwind.io/wp-includes/js/wp-emoji-release.min.js?ver=7.0.5"}}
4549</script>
vendor: 1 bytes, line 4549
4549
4550<script type="module">
4551/*! This file is auto-generated */
4552var 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)))});
4553//# sourceURL=https://www.upwind.io/wp-includes/js/wp-emoji-loader.min.js
4554</script>
vendor: 1 bytes, line 4554
4554
4555<script>
4556document.addEventListener('DOMContentLoaded', () => {
4557  document.querySelectorAll('.brxe-button, .bricks-button').forEach(btn => {
4558    if (!btn.dataset.text) {
4559      if (btn.tagName === 'INPUT') {
4560        btn.dataset.text = btn.value;
4561      } else {
4562        if ( btn.innerHTML.includes('svg') ) {
4563          const newSpan = document.createElement('span');
4564          newSpan.className = 'hover-content';
4565          newSpan.innerHTML = btn.innerHTML.trim();
4566          btn.append(newSpan);
4567        } else {
4568          btn.dataset.text = btn.innerHTML.trim();
4569        }
4570      }
4571    }
4572  });
4573});
4574</script>
4574
4575
4576<script>
4577function slideToggleAccordian(brxParam) {
4578  const target = brxParam?.target || false
4579
4580  if ( target ) {
4581    slideToggle(target);
4582  }
4583}
4584
4585function slideToggle(target) {
4586  const el = target;
4587  const duration = 300;
4588
4589  // Prevent double-trigger during animation
4590  if (el.classList.contains('sliding')) return;
4591  el.classList.add('sliding');
4592
4593  const isHidden = window.getComputedStyle(el).display === 'none';
4594
4595  if (isHidden) {
4596    // SLIDE DOWN
4597    el.style.removeProperty('display');
4598    let display = window.getComputedStyle(el).display;
4599    if (display === 'none') display = 'block';
4600    el.style.display = display;
4601
4602    const height = el.scrollHeight;
4603
4604    el.style.overflow = 'hidden';
4605    el.style.height = '0px';
4606    el.style.transition = `height ${duration}ms ease`;
4607
4608    // Force reflow
4609    el.offsetHeight;
4610
4611    el.style.height = height + 'px';
4612
4613    setTimeout(() => {
4614      el.style.removeProperty('height');
4615      el.style.removeProperty('overflow');
4616      el.style.removeProperty('transition');
4617      el.classList.remove('sliding');
4618    }, duration);
4619  } else {
4620    // SLIDE UP
4621    const height = el.scrollHeight;
4622
4623    el.style.height = height + 'px';
4624    el.style.overflow = 'hidden';
4625    el.style.transition = `height ${duration}ms ease`;
4626
4627    // Force reflow
4628    el.offsetHeight;
4629
4630    el.style.height = '0px';
4631
4632    setTimeout(() => {
4633      el.style.display = 'none';
4634      el.style.removeProperty('height');
4635      el.style.removeProperty('overflow');
4636      el.style.removeProperty('transition');
4637      el.classList.remove('sliding');
4638    }, duration);
4639  }
4640}
4641
4642// When opening the menu
4643let dodge_menu_open = false;
4644function toggleMenu() {
4645  if ( dodge_menu_open == false ) {
4646    const scrollY = window.scrollY;
4647    document.body.style.position = 'fixed';
4648    document.body.style.top = `-${scrollY}px`;
4649    document.body.style.width = '100%';
4650    dodge_menu_open = true;
4651  } else {
4652    const scrollY = document.body.style.top;
4653    document.body.style.position = '';
4654    document.body.style.top = '';
4655    document.body.style.width = '';
4656    window.scrollTo(0, parseInt(scrollY || '0') * -1);
4657    dodge_menu_open = false;
4658  }
4659}
4660
4661
4662
4663function removeLeadingArrayFromAll(selector) {
4664  document.querySelectorAll(selector).forEach(el => {
4665    if (!el.firstChild) return;
4666
4667    if (
4668      el.firstChild.nodeType === Node.TEXT_NODE &&
4669      el.firstChild.textContent.trim().startsWith('Array')
4670    ) {
4671      el.firstChild.textContent =
4672        el.firstChild.textContent.replace(/^Arrays*/i, '');
4673    }
4674  });
4675}
4676
4677// usage
4678removeLeadingArrayFromAll('.elementor-shortcode');
4679
4680window.goToPrevSlide = function(sliderId) {
4681    const splideInstance = window.bricksData.splideInstances[sliderId];
4682
4683    if (splideInstance) {
4684        splideInstance.go( '<' );
4685    } else {
4686        console.error('Splide instance not found for ID:', sliderId);
4687    }
4688}
4689window.goToNextSlide = function(sliderId) {
4690    const splideInstance = window.bricksData.splideInstances[sliderId];
4691
4692    if (splideInstance) {
4693        splideInstance.go( '>' );
4694    } else {
4695        console.error('Splide instance not found for ID:', sliderId);
4696    }
4697}
4698</script>
4698
4699
4700
4701
4702
4703
4704
4705<script>
4706// for videos with class ".play-on-scroll" to wait to play until they are in view  
4707  document.addEventListener('DOMContentLoaded', () => {
4708    // Select all videos inside Bricks elements with the 'play-on-scroll' class
4709    const videos = document.querySelectorAll('.play-on-scroll video');
4710
4711    if (videos.length === 0) {
4712      return;
4713    }
4714
4715    const observerOptions = {
4716      root: null,
4717      // Triggers when the top of the video is 30% up from the bottom of the viewport
4718      // (If you meant 30% from the TOP of the screen, change this to: '-30% 0px 0px 0px')
4719      rootMargin: '0px 0px -50% 0px', 
4720      threshold: 0 // Triggers the exact moment a single pixel crosses the rootMargin line
4721    };
4722
4723    const videoObserver = new IntersectionObserver((entries, observer) => {
4724      entries.forEach(entry => {
4725        if (entry.isIntersecting) {
4726          const video = entry.target;
4727
4728          // Ensure Bricks settings are enforced for autoplay policies
4729          video.muted = true;
4730          video.playsInline = true;
4731
4732          // Force play
4733          const playPromise = video.play();
4734          if (playPromise !== undefined) {
4735            playPromise.catch(error => {
4736              console.error('Video play failed:', error);
4737            });
4738          }
4739
4740          // Stop observing once it has played
4741          observer.unobserve(video);
4742        }
4743      });
4744    }, observerOptions);
4745
4746    videos.forEach(video => {
4747      videoObserver.observe(video);
4748    });
4749  });
4750</script>
4750
4751
4752
4753<script>
4754// Enable grabbing and scrolling for horizontal-scrolling-images sections like testimonials
4755document.addEventListener('DOMContentLoaded', () => {
4756  const sliders = document.querySelectorAll('.horizontal-scrolling-elements');
4757
4758  sliders.forEach(slider => {
4759    let isDown = false;
4760    let startX;
4761    let scrollLeft;
4762
4763    slider.addEventListener('mousedown', (e) => {
4764      isDown = true;
4765      slider.classList.add('is-dragging');
4766      startX = e.pageX - slider.offsetLeft;
4767      scrollLeft = slider.scrollLeft;
4768    });
4769
4770    slider.addEventListener('mouseleave', () => {
4771      isDown = false;
4772      slider.classList.remove('is-dragging');
4773    });
4774
4775    slider.addEventListener('mouseup', () => {
4776      isDown = false;
4777      slider.classList.remove('is-dragging');
4778    });
4779
4780    slider.addEventListener('mousemove', (e) => {
4781      if (!isDown) return;
4782      e.preventDefault(); 
4783      const x = e.pageX - slider.offsetLeft;
4784      
4785      const walk = (x - startX); 
4786      slider.scrollLeft = scrollLeft - walk;
4787    });
4788  });
4789});
4790</script>
vendor: 1 bytes, line 4790
4790
4791<script>
4792(function () {
4793  var SELECTOR = ".topbar-text-container";
4794  var styleEl = null;
4795  var originalContent = null;
4796
4797  function injectStyles() {
4798    if (styleEl) return;
4799    styleEl = document.createElement("style");
4800    styleEl.textContent =
4801      ".topbar-text-container.marquee-active {" +
4802      "  overflow: hidden;" +
4803      "  white-space: nowrap;" +
4804      "  position: relative;" +
4805      "}" +
4806      ".topbar-text-container.marquee-active .marquee-track {" +
4807      "  display: inline-flex;" +
4808      "  white-space: nowrap;" +
4809      "  animation: marquee-scroll linear infinite;" +
4810      "}" +
4811      ".topbar-text-container.marquee-active .marquee-segment {" +
4812      "  display: inline-flex;" +
4813      "  flex-shrink: 0;" +
4814      "  column-gap: 24px;" +
4815      "  padding-right: 4rem;" +
4816      "}" +
4817      "@keyframes marquee-scroll {" +
4818      "  0%   { transform: translateX(0); }" +
4819      "  100% { transform: translateX(-50%); }" +
4820      "}";
4821    document.head.appendChild(styleEl);
4822  }
4823
4824  function checkMarquee() {
4825    var container = document.querySelector(SELECTOR);
4826    if (!container) return;
4827
4828    var viewportWidth = window.innerWidth;
4829    var isActive = container.classList.contains("marquee-active");
4830
4831    // If currently a marquee, restore original content to re-measure
4832    if (isActive) {
4833      deactivateMarquee(container);
4834    }
4835
4836    // Save original content before first modification
4837    if (!originalContent) {
4838      originalContent = Array.from(container.childNodes).map(function (node) {
4839        return node.cloneNode(true);
4840      });
4841    }
4842
4843    // Measure natural width
4844    container.style.overflow = "visible";
4845    container.style.whiteSpace = "nowrap";
4846    var contentWidth = container.scrollWidth;
4847    container.style.overflow = "";
4848    container.style.whiteSpace = "";
4849
4850    if (contentWidth > viewportWidth) {
4851      activateMarquee(container, contentWidth);
4852    }
4853  }
4854
4855  function activateMarquee(container, contentWidth) {
4856    if (container.classList.contains("marquee-active")) return;
4857
4858    injectStyles();
4859
4860    // Build track with two identical segments for seamless infinite loop
4861    var track = document.createElement("div");
4862    track.className = "marquee-track";
4863
4864    var segment1 = document.createElement("div");
4865    segment1.className = "marquee-segment";
4866
4867    var segment2 = document.createElement("div");
4868    segment2.className = "marquee-segment";
4869
4870    // Clone the original child nodes (divs, spans, links, etc.) into both segments
4871    originalContent.forEach(function (node) {
4872      segment1.appendChild(node.cloneNode(true));
4873      segment2.appendChild(node.cloneNode(true));
4874    });
4875
4876    track.appendChild(segment1);
4877    track.appendChild(segment2);
4878
4879    // Clear container and insert the track
4880    while (container.firstChild) {
4881      container.removeChild(container.firstChild);
4882    }
4883    container.appendChild(track);
4884    container.classList.add("marquee-active");
4885
4886    // Speed: lower = slower scroll. 30px/s is gentle.
4887    var speed = 30;
4888    var duration = contentWidth / speed;
4889    track.style.animationDuration = duration + "s";
4890  }
4891
4892  function deactivateMarquee(container) {
4893    container.classList.remove("marquee-active");
4894
4895    // Restore original child nodes
4896    while (container.firstChild) {
4897      container.removeChild(container.firstChild);
4898    }
4899
4900    if (originalContent) {
4901      originalContent.forEach(function (node) {
4902        container.appendChild(node.cloneNode(true));
4903      });
4904    }
4905  }
4906
4907  // --- Init ---
4908  var resizeTimer;
4909  window.addEventListener("resize", function () {
4910    clearTimeout(resizeTimer);
4911    resizeTimer = setTimeout(checkMarquee, 150);
4912  });
4913
4914  if (document.readyState === "loading") {
4915    document.addEventListener("DOMContentLoaded", checkMarquee);
4916  } else {
4917    checkMarquee();
4918  }
4919})();
4920</script>
vendor: 1 bytes, line 4920
4920
4921<script id="wp-emoji-settings" type="application/json">
4922{"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://www.upwind.io/wp-includes/js/wp-emoji-release.min.js?ver=7.0.5"}}
4923</script>
vendor: 1 bytes, line 4923
4923
4924<script type="module">
4925/*! This file is auto-generated */
4926var 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)))});
4927//# sourceURL=https://www.upwind.io/wp-includes/js/wp-emoji-loader.min.js
4928</script>
vendor: 1 bytes, line 4928
4928
4929<script>
4930(function($) {
4931
4932	const observer = new IntersectionObserver(function(entries, observer) {		
4933			entries.forEach((entry) => {
4934				  if ( entry.intersectionRatio > 0  && ! entry.target.classList.contains('active') ) {
4935					$(entry.target).addClass('active');
4936						
4937					
4938				}
4939			});
4940		}, {
4941			rootMargin: "-50px",
4942		});
4943	let all = document.querySelectorAll(".underline-gradient")
4944	document.querySelectorAll('.underline-gradient').forEach((i) => {
4945        observer.observe(i);
4946});
4947
4948})(jQuery);
4949</script>
4949
4950
4951<script>
4952document.addEventListener("DOMContentLoaded", function(){
4953
4954  let elements = document.getElementsByTagName('lottie-player');
4955
4956  for (var i = 0; i < elements.length; i++) {
4957  
4958    elements[i].addEventListener('play', (event) => {
4959      // console.log(event.target.shadowRoot.querySelector('svg').style.transform);
4960      event.target.shadowRoot.querySelector('svg').style.transform = '';
4961    });
4962    elements[i].play(); // trigger (again)
4963
4964  }
4965});
4966</script>
vendor: 1 bytes, line 4966
4966
4967<script>
4968(function($) {
4969	
4970	$('a').each(function($el) {
4971		if ( this.href.indexOf("upwind.io") == -1 ) {
4972			$(this).attr('target', '_blank');
4973			$(this).attr('rel', 'noreferrer noopener');
4974		}
4975	});
4976	
4977})(jQuery);
4978</script>
4978
4979<style>
4980	.upwind-animation-video-container {
4981		position: relative;
4982	}
4983	.upwind-animation-video {
4984		position: relative;
4985		aspect-ratio: 16 / 9;
4986		height: auto;
4987		width: 100%;
4988	}
4989	.upwind-animation-video-loop {
4990		position: absolute;
4991		aspect-ratio: 16 / 9;
4992		height: auto;
4993		width: 100%;
4994		left: 0;
4995		top: 0;
4996		opacity: 0;
4997		visibility: hidden;
4998	}
4999</style>
5000<script>
5001		document.querySelectorAll('.upwind-animation-video').forEach(function(el) {
5002			const video = el;
5003
5004			if ( el.hasAttribute('data-loop') ) {
5005								
5006				const loop_video = el.nextElementSibling;
5007				let looping = false;
5008				
5009				video.addEventListener('ended', () => {
5010					if (!looping) {
5011						console.log('start loop')
5012						loop_video.style.opacity = 1;
5013						loop_video.style.visibility = 'visible';
5014						video.style.opacity = 0;
5015						video.style.visibility = 'hidden';
5016						loop_video.currentTime = 0;
5017						loop_video.play();
5018					}
5019				});
5020			} else {
5021				video.addEventListener('ended', () => {
5022					video.pause();
5023					video.currentTime = video.duration; // Ensure it's on the last frame
5024				});
5025			}
5026		});		
5027</script>
vendor: 1 bytes, line 5027
5027
5028<script>
5029gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 2) {if(typeof Placeholders != 'undefined'){
5030                        Placeholders.enable();
5031                    }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } );
5032</script>
vendor: 1 bytes, line 5032
5032
5033<script>
5034gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "2", currentPage: "1", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( "gform_wrapper_2" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_2";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_2" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 2, 1 );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );
5035</script>
5035
5036</body></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.