PageSourceSearch

https://redeploy.webflow.io/post/financial-crime-volumes-keep-climbing-investigation-teams-dont

html redeploy.webflow.io collected 2026-10-03 13:38:35 UTC 87,610 bytes, 921 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Wed Sep 30 2026 10:10:28 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="redeploy.webflow.io" data-wf-page="62b9af89a83391a99e26881e" data-wf-site="62b0265c2452a57e6a524bf6" data-wf-intellimize-customer-id="117427340" lang="en" data-wf-collection="62b9af89a833911c9126881c" data-wf-item-slug="financial-crime-volumes-keep-climbing-investigation-teams-dont"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Financial crime volumes climb, headcount doesn&#x27;t | Redeploy</title><meta content="Redeploy AI Lead Oskar Dahl Aldeborn on where the hours in a financial crime case go, what AI agents should take over, and where they still fail." name="description"/><meta content="Financial crime volumes keep climbing, investigation teams don&#x27;t" property="og:title"/><meta content="Redeploy AI Lead Oskar Dahl Aldeborn on where the hours in a financial crime case go, what AI agents should take over, and where they still fail." property="og:description"/><meta content="https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138.jpg" property="og:image"/><meta content="Financial crime volumes keep climbing, investigation teams don&#x27;t" name="twitter:title"/><meta content="Redeploy AI Lead Oskar Dahl Aldeborn on where the hours in a financial crime case go, what AI agents should take over, and where they still fail." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138.jpg" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/css/redeploy.shared.f3d53f99e.min.css" rel="stylesheet" type="text/css" integrity="sha384-89U/mea0vCG7vXHLKfxvpK9nkJvSLk8iHespKcADUvI3oNaiKyY63bkKEYCwRZvC" crossorigin="anonymous"/>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/62d738aa18ca34185df3a5a2_favicon-small.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/62d738b0e7941bdcf365ee66_favicon.png" rel="apple-touch-icon"/><link href="https://www.redeploy.com/post/financial-crime-volumes-keep-climbing-investigation-teams-dont" rel="canonical"/>
1<script type="application/ld+json">
2{
3  "@context": "https://schema.org",
4  "@graph": [
5    {
6      "@type": "BlogPosting",
7      "headline": "",
8      "description": "",
9      "image": "",
10      "datePublished": "",
11      "author": {
12        "@type": "Person",
13        "name": ""
14      },
15      "publisher": {
16        "@id": "https://www.redeploy.com/#organization"
17      },
18      "inLanguage": "en",
19      "isPartOf": {
20        "@type": "Blog",
21        "@id": "https://www.redeploy.com/blog",
22        "name": "The Redeploy Blog"
23      },
24      "mainEntityOfPage": {
25        "@type": "WebPage",
26        "@id": "https://www.redeploy.com/post/"
27      },
28      "url": "https://www.redeploy.com/post/"
29    },
30    {
31      "@type": "BreadcrumbList",
32      "itemListElement": [
33        {
34          "@type": "ListItem",
35          "position": 1,
36          "name": "Home",
37          "item": "https://www.redeploy.com/"
38        },
39        {
40          "@type": "ListItem",
41          "position": 2,
42          "name": "Blog",
43          "item": "https://www.redeploy.com/blog"
44        },
45        {
46          "@type": "ListItem",
47          "position": 3,
48          "name": "",
49          "item": "https://www.redeploy.com/post/"
50        }
51      ]
52    }
53  ]
54}
55</script>
55<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push.apply(w[g],Array.isArray(i)?i:[i]);})(window,['G-RZM6Z87M3J'],'google_tags_first_party');</script>
55<script async="" src="/9i1h7htkfq16NjJiMDI2NWMyNDUyYTU3ZTZhNTI0YmY2/E8TizvnPmNW8gp9ZJ4B7NJTJxj4"></script>
55<script type="text/javascript">window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('set', 'developer_id.dZGVlNj', true);gtag('set', 'developer_id.dYWYxNW', true);gtag('js', new Date());gtag('config', 'G-RZM6Z87M3J');</script>
55<script src="https://api.consentpro.com/v2/cdn/runtime/62b0265c2452a57e6a524bf6.js" type="text/javascript" finsweet="consentpro" siteid="62b0265c2452a57e6a524bf6"></script>
55
56<!-- Lenis: ONLY copy on the site. Do not add a second one. -->
57<script src="https://unpkg.com/[email protected]/dist/lenis.min.js"></script>
vendor: 1 bytes, line 57
57
58<script>
59window.addEventListener('DOMContentLoaded',function(){
60var c=document.querySelector('link[rel="canonical"]');
61var u=c?c.getAttribute('href'):window.location.href;
62var m=document.querySelector('meta[property="og:url"]');
63if(!m){m=document.createElement('meta');m.setAttribute('property','og:url');document.head.appendChild(m);}
64m.setAttribute('content',u);
65});
66</script>
66
67<!-- Google Tag Manager -->
68<script>
vendor: 327 bytes, lines 68-72
68(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
69new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
70j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
71'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
72})(window,document,'script','dataLayer','
72GTM-WMC99VZ
vendor: 3 bytes, line 72
72');
72</script>
72
73<meta name="ahrefs-site-verification" content="106c1c8f0ed9ff64399349dd599c35294a3814dbf1074a66335d68aafd0fe99a">
74
75<!-- Motion tokens. Canonical source: design system > Motion. Change there first. Only transform and opacity animate. -->
76<style>
77:root{--ease-enter:cubic-bezier(.22,1,.36,1);--ease-move:cubic-bezier(.65,0,.35,1);--ease-linear:linear;--motion-instant:150ms;--motion-fast:200ms;--motion-base:320ms;--motion-slow:480ms;--motion-ambient:1200ms;--move-nudge:8px;--move-rise:16px;--move-enter:24px;--move-max:32px;--stagger-text:80ms;--stagger-list:60ms;--scroll-lerp:.25;--marquee-cycle:90s}
78@media(prefers-reduced-motion:reduce){:root{--motion-instant:1ms;--motion-fast:1ms;--motion-base:1ms;--motion-slow:1ms;--motion-ambient:1ms;--move-nudge:0px;--move-rise:0px;--move-enter:0px;--move-max:0px;--stagger-text:0ms;--stagger-list:0ms}}
79html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}
80</style>
81
82<!-- ============================================================
83     SCROLL REVEALS. The primitives.
84     Put u-rise, u-fade, u-slide or u-draw on an element in the Designer.
85     RedeployReveal (footer) adds is-in when the element's TOP crosses 85% of
86     the viewport, once, and never again.
87
88     A component INSTANCE cannot carry a class in Webflow, so a primitive goes
89     inside a component DEFINITION and every instance of it gets the reveal.
90     Put the class on the content wrapper, never the section root: the root
91     carries the theme band, and animating it reads as the page jumping.
92
93     Four knobs, all token-valued, all optional:
94       --reveal-ease       default --ease-enter. Use --ease-move on LARGE
95                           elements: ease-enter is front-loaded, so a big
96                           block covers most of its travel immediately and
97                           then creeps the last pixels.
98       --reveal-duration   default --motion-slow.
99       --rise-distance     default --move-enter. Use --move-rise for a
100                           single line of text inside a stagger.
101       --motion-delay      default 0. Stagger with --stagger-text.
102
103     Above the fold: do NOT use these.
104     ============================================================ -->
105<style>
106.u-fade,.u-rise,.u-slide{opacity:0}
107.u-fade{transition:opacity var(--reveal-duration,var(--motion-slow)) var(--reveal-ease,var(--ease-enter));transition-delay:var(--motion-delay,0ms)}
108.u-rise{transform:translateY(var(--rise-distance,var(--move-enter)));transition:opacity var(--reveal-duration,var(--motion-slow)) var(--reveal-ease,var(--ease-enter)),transform var(--reveal-duration,var(--motion-slow)) var(--reveal-ease,var(--ease-enter));transition-delay:var(--motion-delay,0ms)}
109.u-slide{transform:translateX(calc(-1 * var(--move-enter)));transition:opacity var(--reveal-duration,var(--motion-slow)) var(--reveal-ease,var(--ease-enter)),transform var(--reveal-duration,var(--motion-slow)) var(--reveal-ease,var(--ease-enter));transition-delay:var(--motion-delay,0ms)}
110.u-draw{transform:scaleX(0);transform-origin:left center;transition:transform var(--reveal-duration,var(--motion-slow)) var(--reveal-ease,var(--ease-enter));transition-delay:var(--motion-delay,0ms)}
111.u-fade.is-in,.u-rise.is-in,.u-slide.is-in{opacity:1;transform:none}
112.u-draw.is-in{transform:scaleX(1)}
113/* Features Split Layout: a full-width two-column block. Keeps the standard
114   duration but takes the even curve, because the front-loaded one leaves a
115   visible tail at this size. */
116.split_contain.u-rise{--reveal-ease:var(--ease-move)}
117/* If the script never runs, nothing stays invisible. */
118.no-js .u-fade,.no-js .u-rise,.no-js .u-slide{opacity:1;transform:none}
119.no-js .u-draw{transform:scaleX(1)}
120</style>
121
122<!-- Lenis init. One instance. Skipped under reduced motion and in the Designer. lerp from --scroll-lerp. -->
123<script>
124document.addEventListener('DOMContentLoaded',function(){
125if(window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;
126if(window.Webflow&&Webflow.env&&Webflow.env('editor')!==undefined)return;
127if(typeof Lenis==='undefined')return;
128var lerp=parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--scroll-lerp'))||.25;
129var l=new Lenis({lerp:lerp,wheelMultiplier:1.5,gestureOrientation:'vertical',normalizeWheel:false,smoothTouch:false});
130window.lenis=l;
131function raf(t){l.raf(t);requestAnimationFrame(raf);}
132requestAnimationFrame(raf);
133if(window.ScrollTrigger)l.on('scroll',ScrollTrigger.update);
134});
135</script>
135
136
137<!-- ============================================================
138     RUNTIME STATE CLASSES + PARENT-HOVER RULES.
139     Toggled by script, or styling a child from the parent's hover, which the
140     Designer cannot express. A Style Manager cleanup reports runtime classes as
141     unused and deletes them; that is what broke the mega menu in Sept 2026.
142     DO NOT recreate these as Webflow classes.
143     ============================================================ -->
144<style>
145/* Mega menu. The script sets is-open on .mega and pm-open on .mega_pm. */
146.mega{transition:opacity var(--motion-base) var(--ease-move),visibility 0s linear var(--motion-base)}
147.mega.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--motion-base) var(--ease-move),visibility 0s}
148.mega_pm.pm-open::after,.mega_pm.is-open::after{transform:translate(-50%) scaleY(0)}
149
150/* FAQ accordion icon. The panel is driven by RedeployAccordion in the footer. */
151.faq-plus{transition:transform var(--motion-base) var(--ease-move);transform-origin:center center}
152.tab-item.is-open .faq-plus{transform:rotate(45deg)}
153
154/* ---- CTA links -------------------------------------------------
155   ONE gesture, three icons. The icon says where the link goes and is the
156   only thing that moves. The underline stays put and gains weight.
157     right arrow (.link-arrow)    navigate within the site
158     enter arrow (.button--image) something opens here, a modal
159     diagonal                     opens in a new tab
160   Each icon travels toward where it points. Travel is --move-nudge along the
161   icon's own axis, so the diagonal moves nudge x 0.707 per axis and all three
162   cover the same distance.
163
164   The arrow geometry comes straight from the design system's arrow-right and
165   needs no mirroring. It used to: arrow-right and arrow-left were swapped in
166   the icon set, so the glyph pointed the wrong way and was flipped here with
167   scaleX(-1). The icon set was corrected in Sept 2026 and the flip is gone.
168   ---------------------------------------------------------------- */
169.link-block [class*="btn-border"],.link-block [class*="btn--border"],
170.link-block-case [class*="btn-border"],.link-block-case [class*="btn--border"]{opacity:.32;transition:opacity var(--motion-instant) var(--ease-move)}
171.link-block:hover [class*="btn-border"],.link-block:focus-visible [class*="btn-border"],
172.link-block:hover [class*="btn--border"],.link-block:focus-visible [class*="btn--border"],
173.link-block-case:hover [class*="btn-border"],.link-block-case:focus-visible [class*="btn-border"],
174.link-block-case:hover [class*="btn--border"],.link-block-case:focus-visible [class*="btn--border"]{opacity:1}
175
176.link-arrow{transition:transform var(--motion-instant) var(--ease-move)}
177.link-block:hover .link-arrow,.link-block:focus-visible .link-arrow,
178.link-block-case:hover .link-arrow,.link-block-case:focus-visible .link-arrow{transform:translateX(var(--move-nudge))}
179
180.link-block .button--image,.link-block-case .button--image{transition:transform var(--motion-instant) var(--ease-move)}
181.link-block:hover .button--image,.link-block:focus-visible .button--image,
182.link-block-case:hover .button--image,.link-block-case:focus-visible .button--image{transform:translateX(var(--move-nudge))}
183
184.link-block .button-image--wrapper-lined-link,.link-block-case .button-image--wrapper-lined-link,
185.link-block .arrow-diagonal,.link-block-case .arrow-diagonal{transition:transform var(--motion-instant) var(--ease-move)}
186.link-block:hover .button-image--wrapper-lined-link,.link-block:focus-visible .button-image--wrapper-lined-link,
187.link-block-case:hover .button-image--wrapper-lined-link,.link-block-case:focus-visible .button-image--wrapper-lined-link,
188.link-block:hover .arrow-diagonal,.link-block:focus-visible .arrow-diagonal,
189.link-block-case:hover .arrow-diagonal,.link-block-case:focus-visible .arrow-diagonal{transform:translate(calc(var(--move-nudge) * .707),calc(var(--move-nudge) * -.707))}
190</style>
191
192<!-- Callout banner: marquee + edge masking. Pause covers hover AND focus-within: WCAG 2.2.2. Prefixed and unprefixed mask values must stay IDENTICAL. -->
193<style>
194.callout-banner--slides{animation:rd-marquee var(--marquee-cycle) linear infinite reverse}
195.callout-banner--content-wrapper:hover .callout-banner--slides,
196.callout-banner--content-wrapper:focus-within .callout-banner--slides{animation-play-state:paused}
197@keyframes rd-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-33.3333%,0,0)}}
198@media(prefers-reduced-motion:reduce){.callout-banner--slides{animation:none}}
199.callout-banner--viewport{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 56px,#000 calc(100% - 160px),transparent calc(100% - 56px));mask-image:linear-gradient(to right,transparent 0,#000 56px,#000 calc(100% - 160px),transparent calc(100% - 56px))}
200@media(max-width:767px){.callout-banner--viewport{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 1.5rem,#000 calc(100% - 84px),transparent calc(100% - 28px));mask-image:linear-gradient(to right,transparent 0,#000 1.5rem,#000 calc(100% - 84px),transparent calc(100% - 28px))}}
201@media(max-width:479px){.callout-banner--viewport{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 1.5rem,#000 calc(100% - 64px),transparent calc(100% - 20px));mask-image:linear-gradient(to right,transparent 0,#000 1.5rem,#000 calc(100% - 64px),transparent calc(100% - 20px))}}
202</style>
203
204<!-- Feature Slideshow -->
205<style>
206.fslide{background:transparent!important;color:inherit!important;padding:0!important;margin:0!important}
207.fslide[data-theme="dark"]{color:#fff!important}
208.fslide[data-theme="light"]{color:#01081a!important}
209.fslide__inner{width:100%;max-width:none!important;margin:0!important}
210.fslide__frame{width:100%;display:block;border-color:rgba(255,255,255,.18)}
211.fslide[data-theme="light"] .fslide__frame{border-color:rgba(1,8,26,.14)}
212.fslide__stage{width:100%}
213.fslide__track{background:rgba(255,255,255,.18)}
214.fslide[data-theme="light"] .fslide__track{background:rgba(1,8,26,.18)}
215.fslide__fill{background:#20fb87}
216.fslide[data-theme="light"] .fslide__fill{background:#01081a}
217.fslide__title{color:inherit}
218.fslide__text{color:rgba(255,255,255,.7)}
219.fslide[data-theme="light"] .fslide__text{color:rgba(1,8,26,.65)}
220.fslide__view{pointer-events:none}
221.fslide__view.is-active{opacity:1;pointer-events:auto}
222.fslide__cap.is-active{opacity:1}
223.fslide__caps{display:flex!important;gap:40px}
224.fslide__caps > .fslide__cap{flex:1 1 0;min-width:0}
225.fslide__bars{gap:8px}
226.fslide__bars > *{flex:1 1 0;min-width:0}
227.fslide__img.is-mobile{display:none}
228@media screen and (max-width:991px){.fslide__caps{gap:28px}}
229@media screen and (max-width:767px){
230.fslide__stage{aspect-ratio:4 / 3}
231.fslide__img.is-desktop{display:none}
232.fslide__img.is-mobile{display:block}
233.fslide__bars{display:flex!important}
234.fslide__caps{gap:0;margin-top:20px}
235.fslide__cap{display:none;gap:10px;opacity:1}
236.fslide__cap.is-active{display:flex}
237.fslide__cap .fslide__track{display:none}
238}
239</style>
240
241<!-- Text links. INLINE (rich text, .rl, .u-link) wraps across lines so it must use text-decoration, and only the COLOUR animates. STANDALONE never wraps, so it gets a scaleX underline. -->
242<style>
243.w-richtext a:not(.w-button),a.rl,.u-link{position:relative;color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.24em;text-decoration-color:color-mix(in srgb,currentColor 32%,transparent);border-radius:2px;transition:text-decoration-color var(--motion-instant) var(--ease-move),color var(--motion-instant) var(--ease-move),opacity var(--motion-instant) var(--ease-move)}
244.w-richtext a:not(.w-button):hover,a.rl:hover,.u-link:hover{text-decoration-color:currentColor}
245.w-richtext a:not(.w-button):active,a.rl:active,.u-link:active{opacity:.7}
246.w-richtext a:not(.w-button):focus-visible,a.rl:focus-visible,.u-link:focus-visible{outline:2px solid currentColor;outline-offset:3px;text-decoration-color:currentColor}
247a.rl[aria-disabled="true"],.u-link[aria-disabled="true"]{color:color-mix(in srgb,currentColor 38%,transparent);text-decoration-color:color-mix(in srgb,currentColor 18%,transparent);pointer-events:none}
248a.rl.standalone,.u-link.standalone{text-decoration:none}
249a.rl.standalone::after,.u-link.standalone::after{content:"";position:absolute;left:0;right:0;bottom:-.14em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--motion-base) var(--ease-enter);pointer-events:none}
250a.rl.standalone:hover::after,.u-link.standalone:hover::after,a.rl.
250standalone:focus-visible::after,.u-link.standalone:focus-visible::after{transform:scaleX(1)}
251a.rl .ext,.u-link .ext{display:inline-block;width:.78em;height:.78em;margin-left:.28em;vertical-align:-.02em;transition:transform var(--motion-instant) var(--ease-move)}
252a.rl:hover .ext,.u-link:hover .ext{transform:translate(1px,-1px)}
253[data-theme="dark"] .w-richtext a:not(.w-button):hover,[data-theme="dark"] a.rl:hover,[data-theme="dark"] .u-link:hover,[data-theme="dark"] .w-richtext a:not(.w-button):focus-visible,[data-theme="dark"] a.rl:focus-visible,[data-theme="dark"] .u-link:focus-visible{color:#20fb87;text-decoration-color:#20fb87}
254</style>
254<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js"></script>
254
255<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/styles/base16/black-metal-mayhem.css" />
256 
257 
257<script>
258    hljs.highlightAll(); // apply highlighting
259 </script>
259<script type="text/javascript">window.__WEBFLOW_CURRENCY_SETTINGS = {"currencyCode":"USD","symbol":"$","decimal":".","fractionDigits":2,"group":",","template":"{{wf {\"path\":\"symbol\",\"type\":\"PlainText\"} }} {{wf {\"path\":\"amount\",\"type\":\"CommercePrice\"} }} {{wf {\"path\":\"currencyCode\",\"type\":\"PlainText\"} }}","hideDecimalForWholeNumbers":false};</script>
259</head><body class="blog-page"><div class="page-wrapper"><div data-animation="default" class="navbar w-nav" data-easing2="ease" data-easing="ease" data-collapse="medium" data-w-id="1aa62dc0-5f7c-412b-c4f5-6ff6f89d68c8" role="banner" data-no-scroll="1" data-duration="400" data-doc-height="1" data-wf--navigation-menu--variant="base"><div id="services-fill" class="mega_fill"></div><div class="slot"></div><div class="nav_contain u-container"><div class="navbar-container w-container"><a href="/" class="logo w-inline-block"><div class="logo-image w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="135" height="22" viewBox="0 0 135 22" fill="none">
260<path d="M71.4316 5.00879C71.6963 3.74238 72.8308 2.79688 74.1729 2.79688H81.2227C82.7915 2.79688 84.0391 4.06335 84.0391 5.61328V15.4795C84.0391 17.0105 82.7726 18.2773 81.2227 18.2773H74.1729C72.8308 18.2773 71.6963 17.3318 71.4316 16.0654V21.0752H68.6152V2.79688H71.4316V5.00879ZM114.34 2.79688C115.89 2.79688 117.156 4.06335 117.156 5.61328V15.4795C117.156 17.0294 115.89 18.2959 114.34 18.2959H104.529C102.979 18.2957 101.713 17.0293 101.713 15.4795V5.61328C101.713 4.04454 102.979 2.79702 104.529 2.79688H114.34ZM48.4092 18.2783H45.6113V16.0664C45.3467 17.3328 44.2122 18.2783 42.8701 18.2783H35.8203C34.2514 18.2783 33.0039 17.0304 33.0039 15.4805V5.61426C33.0039 4.08322 34.2703 2.81641 35.8203 2.81641H42.8701C44.2122 2.81641 45.3467 3.76191 45.6113 5.02832V0.0185547L48.4092 0V18.2783ZM2.81641 4.98926C3.08111 3.74184 4.21563 2.79688 5.55762 2.79688H13.9307V5.59473H2.81641V18.2773H0V2.79688H2.81641V4.98926ZM27.8623 2.79688C29.431 2.79704 30.6971 4.08213 30.6973 5.63184V9.18555C30.6784 10.7354 29.4121 11.9832 27.8623 11.9834H18.1084V15.4795H30.6973V18.2773H18.127C16.5583 18.2771 15.2922 17.011 15.292 15.4424V5.63184C15.2921 4.06326 16.5583 2.79708 18.127 2.79688H27.8623ZM63.5498 2.79688C65.1185 2.79704 66.3846 4.08213 66.3848 5.63184V9.18555C66.3659 10.7354 65.0996 11.9832 63.5498 11.9834H53.7959V15.4795H66.3848V18.2773H53.8145C52.2458 18.2771 50.9797 17.011 50.9795 15.4424V5.63184C50.9796 4.06326 52.2458 2.79708 53.8145 2.79688H63.5498ZM89.0859 2.79688V15.4795H100.428V18.2773H89.124C87.5553 18.2773 86.2892 17.011 86.2891 15.4424V2.79688H89.0859ZM122.393 9.88477H132.202V2.79688H135V15.4424C135 17.0111 133.733 18.2773 132.184 18.2773H119.595V15.4795H132.202V10.4707C131.938 11.737 130.804 12.6825 129.462 12.6826H122.393C120.861 12.6826 119.595 11.4347 119.595 9.88477V2.79688H122.393V9.88477ZM35.8203 15.4805H45.6113V5.61426H35.8203V15.4805ZM104.529 15.4795H114.34V5.61328H104.529V15.4795ZM71.4316 15.4609H81.2227V5.59473H71.4316V15.4609ZM18.1084 9.16699H27.8809V5.68848L27.8994 5.61328H18.1084V9.16699ZM53.7773 9.16699H63.5684V5.68848L63.5869 5.61328H53.7773V9.16699Z" fill="white"/>
261</svg></div></a><nav role="navigation" class="nav-menu home w-nav-menu"><a href="/about" class="navigation-menu-link w-nav-link">About</a><div class="inline-dropdown"><div data-wf--full-page-dropdown--variant="close-dropdown"><div id="services-trigger" class="navigation-menu-link services"><div class="user-select-none">What we do</div><span aria-hidden="true" class="mega_pm"></span></div><div id="services-mega" class="mega"><div class="embed-code"><div class="w-embed"><style>
262  html {
263    scrollbar-gutter: stable;
264    scrollbar-width: thin;
265    scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
266  }
267  html::-webkit-scrollbar {
268    width: 10px;
269  }
270  html::-webkit-scrollbar-track {
271    background: transparent;
272  }
273  html::-webkit-scrollbar-thumb {
274    background-color: rgba(255, 255, 255, 0.22);
275    border-radius: 10px;
276    border: 3px solid transparent;
277    background-clip: padding-box;
278  }
279  html::-webkit-scrollbar-thumb:hover {
280    background-color: rgba(255, 255, 255, 0.4);
281  }
282
283  @media (min-width: 992px) {
284    #services-mega {
285      top: 100%;
286      height: calc(100dvh - 100%);
287      overflow-y: auto;
288      overflow-x: clip;
289      overscroll-behavior: contain;
290      scrollbar-width: none;
291      transition:
292        opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1),
293        visibility 0.2s;
294    }
295    #services-mega::-webkit-scrollbar {
296      display: none;
297    }
298  }
299
300  #services-mega.mega-js .mega-section-header,
301  #services-mega.mega-js .mega_item,
302  #services-mega.mega-js .mega_subitem,
303  #services-mega.mega-js .mega_foot {
304    opacity: 0;
305    transform: translateY(10px);
306  }
307  #services-mega .mega-section-header.mega-in,
308  #services-mega .mega_item.mega-in,
309  #services-mega .mega_subitem.mega-in,
310  #services-mega .mega_foot.mega-in {
311    opacity: 1;
312    transform: none;
313    transition:
314      opacity 0.42s ease,
315      transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
316  }
317
318  html.nav-locked .navbar {
319    z-index: 2000000000 !important;
320    transform: none !important;
321    margin-top: 0 !important;
322  }
323  html.nav-locked #services-fill {
324    opacity: 1;
325  }
326  html.nav-locked,
327  html.nav-locked body {
328    overflow: hidden !important;
329  }
330  @media (max-width: 991px) {
331    #services-fill {
332      transition: opacity 0.1s linear !important;
333    }
334    html.nav-locked #services-fill {
335      transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1) !important;
336    }
337  }
338
339  .mega-section-header {
340    display: flex;
341    width: -moz-fit-content;
342    width: fit-content;
343    align-items: center;
344    column-gap: 0.5em;
345  }
346  .mega-section-header .mega_head {
347    margin: 0;
348  }
349  .mega_item {
350    display: grid;
351    grid-template-columns: auto 1fr;
352    column-gap: 0.5em;
353    align-items: start;
354    margin-bottom: 1.25rem;
355    break-inside: avoid;
356  }
357  .mega_subitem {
358    display: inline-flex;
359    align-items: center;
360    gap: 0.5em;
361  }
362
363  .mega-arrow {
364    color: #ffffff;
365    background-color: currentColor;
366    flex: 0 0 auto;
367    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
368    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='4' y='15.02' width='18' height='2'/%3E%3Cpolygon points='17.29 6.72 26.59 16.02 17.3 25.31 18.71 26.72 28.71 16.72 28.71 15.31 18.71 5.31 17.29 6.72'/%3E%3C/svg%3E") center/contain no-repeat;
369    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='4' y='15.02' width='18' height='2'/%3E%3Cpolygon points='17.29 6.72 26.59 16.02 17.3 25.31 18.71 26.72 28.71 16.72 28.71 15.31 18.71 5.31 17.29 6.72'/%3E%3C/svg%3E") center/contain no-repeat;
370  }
371  .mega-arrow > * {
372    display: none;
373  }
374  .mega-arrow.is-head {
375    display: none;
376  }
377  .mega_item .mega-arrow {
378    position: static;
379    grid-row: 1 / 3;
380    align-self: start;
381  }
382  .mega_subitem .mega-arrow {
383    position: static;
384  }
385
386  @media (min-width: 992px) {
387    .mega-section-header {
388      margin-bottom: 18px;
389    }
390    .mega_item .mega-arrow {
391      margin-top: 0.18em;
392      width: 17px;
393      height: 17px;
394    }
395    .mega_subitem .mega-arrow {
396      width: 15px;
397      height: 15px;
398    }
399    #services-mega .mega_foot {
400      margin-top: 18px;
401      z-index: 3;
402      background-color: rgb(1, 8, 26);
403    }
404  }
405  @media (max-width: 991px) {
406    .mega-section-header {
407      margin-bottom: 14px;
408    }
409    .mega_item .mega-arrow {
410      margin-top: 0.12em;
411      width: 15px;
412      height: 15px;
413    }
414    .mega_subitem .mega-arrow {
415      width: 13px;
416      height: 13px;
417    }
418  }
419
420  @media (hover: hover) {
421    .mega_item:hover .mega-arrow,
422    .mega_subitem:hover .mega-arrow {
423      transform: translateX(0.25em);
424    }
425  }
426
427  #services-mega {
428    border-top-color: transparent;
429  }
430  .mega_col-line,
431  .mega_children,
432  .mega_foot {
433    position: relative;
434  }
435  #services-mega .mega_col-line {
436    border-left-color: transparent;
437  }
438  .mega_children {
439    border-left-color: transparent;
440  }
441  .mega_foot {
442    border-top-color: transparent;
443  }
444  #services-mega::before,
445  .mega_col-line::before,
446  .mega_children::before,
447  .mega_foot::before {
448    content: '';
449    position: absolute;
450    pointer-events: none;
451    z-index: 2;
452    transition: transform 0.35s ease;
453  }
454  #services-mega::before {
455    top: 0;
456    left: 0;
457    width: 100%;
458    height: 1px;
459    background: rgba(255, 255, 255, 0.1);
460    transform: scaleX(0);
461    transform-origin: left center;
462  }
463  .mega_col-line::before {
464    top: -24px;
465    left: 0;
466    width: 1px;
467    height: calc(100% + 60px);
468    background: rgba(255, 255, 255, 0.1);
469    transform: scaleY(0);
470    transform-origin: top center;
471  }
472  .mega_children::before {
473    top: 0;
474    left: 0;
475    width: 1px;
476    height: 100%;
477    background: rgba(32, 251, 135, 0.35);
478    transform: scaleY(0);
479    transform-origin: top center;
480  }
481  .mega_foot::before {
482    top: -1px;
483    left: -50vw;
484    width: calc(100% + 100vw);
485    height: 1px;
486    background: rgba(255, 255, 255, 0.1);
487    transform: scaleX(0);
488    transform-origin: left center;
489    z-index: 4;
490  }
491  #services-mega.lines-in::before {
492    transform: scaleX(1);
493    transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
494  }
495  #services-mega.lines-in .mega_col-line::before,
496  #services-mega.lines-in .mega_children::before {
497    transform: scaleY(1);
498    transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
499  }
500  #services-mega.lines-in .mega_foot::before {
501    transform: scaleX(1);
502    transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
503  }
504
505  #services-mega.mega-closing .mega-section-header,
506  #services-mega.mega-closing .mega_item,
507  #services-mega.mega-closing .mega_subitem,
508  #services-mega.mega-closing .mega_foot {
509    opacity: 0 !important;
510    transform: translateY(8px) !important;
511    transition:
512      opacity 0.18s ease,
513      transform 0.18s ease !important;
514    transition-delay: 0s !important;
515  }
516
517  @media (prefers-reduced-motion: reduce) {
518    #services-mega {
519      transition: opacity 0.15s ease !important;
520    }
521    #services-fill {
522      transition: none !important;
523    }
524    #services-mega .mega-section-header,
525    #services-mega .mega_item,
526    #services-mega .mega_subitem,
527    #services-mega .mega_foot {
528      opacity: 1 !important;
529      transform: none !important;
530      transition: none !important;
531    }
532    #services-mega::before,
533    .mega_col-line::before,
534    .mega_children::before,
535    .mega_foot::before {
536      transform: none !important;
537      transition: none !important;
538    }
539  }
540
541  @media (max-width: 991px) {
542    #services-mega::before,
543    .mega_col-line::before,
544    .mega_children::before,
545    .mega_foot::before {
546      display: none !important;
547    }
548  }
549</style></div><div class="w-embed w-script">
549<script>
550(function () {
551  function init() {
552    var t = document.getElementById('services-trigger');
553    var m = document.getElementById('services-mega');
554    if (!t || !m) return;
555    var pm = t.querySelector('.mega_pm');
556    var inner = m.querySelector('.mega_inner');
557    var root = document.documentElement;
558    var menuBtn = document.querySelector('.w-nav-button');
559    var menuEl = document.querySelector('.w-nav-menu');
560    var navbar = document.querySelector('.navbar');
561    var navSlide = 'margin-top .5s cubic-bezier(.4,0,.2,1), transform .4s cubic-bezier(.4,0,.2,1), background-color .8s ease-in-out';
562    var reduce = window.matchMedia('(prefers-reduced-motion:reduce)').matches;
563    var open = false, staggerTimer = null, resetTimer = null, closeTimer1 = null, closeTimer2 = null, navSlideTimer = null;
564    m.classList.add('mega-js');
565
566    /* Always start closed/fresh on load, clearing leftover Designer state */
567    m.classList.remove('is-open', 'lines-in', 'mega-closing');
568    if (pm) pm.classList.remove('pm-open');
569    root.classList.remove('mega-active', 'nav-locked');
570    Array.prototype.forEach.call(m.querySelectorAll('.mega-section-header, .mega_item, .mega_subitem, .mega_foot'), function (el) { el.classList.remove('mega-in'); el.style.transitionDelay = ''; });
571    t.setAttribute('aria-expanded', 'false');
572
573    function isDesktop() { return window.matchMedia('(min-width:992px)').matches; }
574    function navOpen() { return !!(menuBtn && menuBtn.classList.contains('w--open')); }
575    function vh() { return window.visualViewport ? window.visualViewport.height : window.innerHeight; }
576    function fitMenu() { if (!menuEl) return; if (isDesktop() || !navOpen()) { menuEl.style.height = ''; return; } var top = menuEl.getBoundingClientRect().top; menuEl.style.height = Math.max(0, vh() - top) + 'px'; }
577    function items() { return Array.prototype.slice.call(m.querySelectorAll('.mega-section-header, .mega_item, .mega_subitem, .mega_foot')); }
578    function setLock() { root.classList.toggle('nav-locked', (open && isDesktop()) || navOpen()); }
579    function applyState() { if (open && isDesktop()) root.classList.add('mega-active'); else root.classList.remove('mega-active'); }
580    function mobileHeight() { if (isDesktop()) { m.style.maxHeight = ''; return; } m.style.maxHeight = open ? (m.scrollHeight + 'px') : '0px'; }
581    function runStagger() {
582      var els = items();
583      if (reduce) { els.forEach(function (el) { el.classList.add('mega-in'); }); return; }
584      els.forEach(function (el) { el.classList.remove('mega-in'); el.style.transitionDelay = '0ms'; });
585      void m.offsetWidth;
586      var tops = els.map(function (el) { return el.getBoundingClientRect().top; });
587      var minT = Math.min.apply(null, tops), maxT = Math.max.apply(null, tops);
588      var H = Math.max(maxT - minT, 1);
589      els.forEach(function (el, i) { var f = Math.max(0, Math.min(1, (tops[i] - minT) / H)); el.style.transitionDelay = Math.round(f * 280 + 20) + 'ms'; el.classList.add('mega-in'); });
590    }
591    function clearStagger() { items().forEach(function (el) { el.classList.remove('mega-in'); el.style.transitionDelay = ''; }); }
592    function openMenu() {
593      open = true; clearTimeout(resetTimer); clearTimeout(closeTimer1); clearTimeout(closeTimer2); clearTimeout(navSlideTimer);
594      if (navbar && isDesktop()) { navbar.style.transition = navSlide; void navbar.offsetWidth; }
595      m.classList.remove('mega-closing'); applyState();
596      m.classList.add('is-open'); m.classList.add('lines-in'); if (pm) pm.classList.add('pm-open');
597      t.setAttribute('aria-expanded', 'true'); setLock();
598      clearTimeout(staggerTimer);
599      if (isDesktop()) { staggerTimer = setTimeout(runStagger, 200); }
600      else { mobileHeight(); fitMenu(); staggerTimer = setTimeout(runStagger, 200); }
601    }
602    function closeMenu() {
603      if (!open) return;
604      open = false; clearTimeout(staggerTimer); clearTimeout(closeTimer1); clearTimeout(closeTimer2); clearTimeout(navSlideTimer);
605      if (pm) pm.classList.remove('pm-open');
606      t.setAttribute('aria-expanded', 'false');
607      m.classList.add('mega-closing');
608      root.classList.remove('mega-active'); setLock();
609      closeTimer1 = setTimeout(function () { m.classList.remove('lines-in'); }, 160);
610      closeTimer2 = setTimeout(function () {
611        m.classList.remove('is-open', 'mega-closing');
612        if (!isDesktop()) m.style.maxHeight = '0px';
613        clearStagger();
614      }, 500);
615      navSlideTimer = setTimeout(function () { if (navbar) navbar.style.transition = ''; }, 700);
616    }
617    function dismiss() { if (navOpen() && menuBtn) menuBtn.click(); else if (open) closeMenu(); }
618
619    t.addEventListener('click', function (e) { e.preventDefault(); open ? closeMenu() : openMenu(); });
620
621    /* New footer trigger: #openservice opens the dropdown */
622    var footTrigger = document.getElementById('openservice');
623    if (footTrigger) {
624      footTrigger.addEventListener('click', function (e) {
625        e.preventDefault();
626if (!open) { if (!isDesktop() && !navOpen() && menuBtn) { menuBtn.click(); setTimeout(openMenu, 60); } else { openMenu(); } }      });
627    }
628
629    document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && open) closeMenu(); });
630    m.addEventListener('click', function (e) {
631      if (e.target === m || e.target === inner) { closeMenu(); return; }
632      if (e.target.closest && (e.target.closest('a, button, [role=button], .w-button') || e.target.closest('.mega_foot'))) { closeMenu(); }
633    });
634    window.addEventListener('resize', function () { if (open) applyState(); setLock(); if (isDesktop()) m.style.maxHeight = ''; else if (open) m.style.maxHeight = m.scrollHeight + 'px'; });
635    if (window.visualViewport) window.visualViewport.addEventListener('resize', fitMenu);
636    if (menuBtn) { new MutationObserver(function () { if (!navOpen() && open) closeMenu(); setLock(); requestAnimationFrame(fitMenu); }).observe(menuBtn, { attributes: true, attributeFilter: ['class'] }); }
637  }
638  if (document.readyState !== 'loading') init();
639  else document.addEventListener('DOMContentLoaded', init);
640})();
641</script>
641</div></div><div class="mega_inner"><div class="mega_cols"><div class="mega_col"><div class="mega-section-header"><div class="mega_head">Solutions</div><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow is-head mega-arrow is-head"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg></div><div class="mega_list-two"><a href="/solutions/agentic-kyc" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Agentic KYC</div></div><div class="mega_item-sub">Corporate KYC files, assembled by agents.</div></a><a href="/solutions/agentic-aml-investigation" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Agentic AML Investigation</div></div><div class="mega_item-sub">Clear the alert backlog without adding headcount.</div></a><a href="/solutions/agentic-contract-review" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Agentic Contract Review</div></div><div class="mega_item-sub">Contract review without the manual load.</div></a><a href="/solutions/agentic-databricks-health-check" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Agentic Databricks Health Check</div></div><div class="mega_item-sub">See where your Databricks spend goes.</div></a><a href="/solutions/agentic-vm-right-sizing" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Agentic VM Right-sizing</div></div><div class="mega_item-sub">Find every leaking VM.</div></a><a href="/solutions/ai-control-plane" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">AI Control Plane</div></div><div class="mega_item-sub">Govern and scale your AI workloads.<br/>‍</div></a></div></div><div class="mega_col mega_col-line"><div class="mega-section-header"><div class="mega_head">Platforms</div><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow is-head mega-arrow is-head"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg></div><div><a href="/platforms/ai-platform" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">AI Platform</div></div><div class="mega_item-sub">
641Governed, self-service AI infrastructure for your teams to build on.</div></a><a href="/platforms/data-platform" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Data Platform</div></div><div class="mega_item-sub">Modern data infrastructure that makes your data AI-ready.</div></a><a href="/platforms/cloud-platform" class="mega_item w-inline-block"><svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="mega-arrow mega-arrow"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.30566 11.5415L2.30566 10.2082L16.3057 10.2082L17.639 10.2082L17.639 11.5415L16.3057 11.5415L16.3057 12.8748L14.9724 12.8748L14.9724 11.5415L2.30566 11.5415ZM12.3057 6.20813L12.3057 7.54146L13.639 7.54146L13.639 6.20813L12.3057 6.20813ZM13.639 8.87472L13.639 7.54139L14.9724 7.54139L14.9724 8.87472L13.639 8.87472ZM14.9724 8.87478L14.9724 10.2081L16.3057 10.2081L16.3057 8.87478L14.9724 8.87478ZM13.639 14.2082L13.639 12.8748L14.9724 12.8748L14.9724 14.2082L13.639 14.2082ZM12.3057 14.2081L12.3057 15.5414L13.639 15.5414L13.639 14.2081L12.3057 14.2081Z" fill="currentColor"></path></svg><div class="w-layout-hflex"><div class="mega_item-name">Cloud Platform</div></div><div class="mega_item-sub">Secure, cost-efficient cloud foundations on Azure and AWS. </div></a></div></div></div><div class="mega_foot"><div class="mega_foot-txt">Not sure where you are? Start with an assessment, and we&#x27;ll map the next step.</div><div><a href="/assessments" class="main_btn w-inline-block"><div class="g_button_text">See all assessments</div><div class="button-image--wrapper"><div class="button--image w-embed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="100%" height="100%" fill="currentColor" style="display:block" aria-hidden="true"><rect x="4.31" y="17.52" width="18.38" height="2" transform="translate(-9.14 14.97) rotate(-45)"></rect><polygon points="23 23.02 25 23.02 25 8.02 24 7.02 9 7.02 9 9.02 23 9.02 23 23.02"></polygon></svg></div></div></a></div></div></div></div></div></div><a href="/case-studies" class="navigation-menu-link w-nav-link">Case Studies</a><a href="/blog" class="navigation-menu-link w-nav-link">Blog</a><a href="https://careers.redeploy.com/" target="_blank" class="navigation-menu-link careers w-inline-block"><div class="nav-link-text-copy">Careers</div><div class="arrow-diagonal w-embed"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="display:block;flex:none;width:100%;height:100%;overflow:visible">
642  <path d="M2 22L22 2M22 2H6.2M22 2V17.8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke"/>
643</svg></div></a></nav><div class="menu-button pure-white w-nav-button"><div class="menu-open w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 40 40" fill="none">
644<path fill-rule="evenodd" clip-rule="evenodd" d="M6 8.33975L6 11.0064L34 11.0064L34 8.33975L6 8.33975ZM6 18.6667L6 21.3333L34 21.3333L34 18.6667L6 18.6667ZM6 31.6602L6 28.9936L34 28.9936L34 31.6602L6 31.6602Z" fill="currentColor"/>
645</svg></div><div class="menu-closed w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none">
646<path fill-rule="evenodd" clip-rule="evenodd" d="M0 14.8347L14.8347 -6.62423e-06L16 1.16532
646L1.16533 16L0 14.8347ZM1.16728 0.00108256L0.00195312 1.16641L5.77034 6.9348L6.93567 5.76947L1.16728 0.00108256ZM10.2278 9.06523L9.0625 10.2306L14.8309 15.999L15.9962 14.8336L10.2278 9.06523Z" fill="currentColor"/>
647</svg></div></div><div class="display-inline hide-tablet"><div><div data-w-id="ebf21602-684d-922f-aed8-0a64ce097af8" class="main_btn is-nav"><div class="g_button_text">Talk to us</div><div class="button-image--wrapper"><div class="button--image w-embed"><svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg">
648<g id="graphic/icon/enter-arrow">
649<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M1.07018 0.646606V5.43185H10.3285L6.88997 1.99375L7.64666 1.23697L12.0002 5.58997V6.34675L7.64666 10.6997L6.88997 9.94297L10.3313 6.50203H0.535092L0 5.96694V0.646606H1.07018Z" fill="currentColor"/>
650</g>
651</svg></div></div></div></div></div></div></div></div><div class="small-default-hero"></div><div class="blog-post"><div class="padding-global"><div class="container-medium"><div class="blog-post--specific"><div class="blog-title"><h1 class="sg-h1">Financial crime volumes keep climbing, investigation teams don&#x27;t</h1></div><img src="https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138.jpg" loading="lazy" alt="Portrait of Jonas Dahlberg, Head of Growth at Redeploy, seated at a table in a dark blazer and white shirt." sizes="100vw" srcset="https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138-p-500.jpg 500w, https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138-p-800.jpg 800w, https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138-p-1080.jpg 1080w, https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138-p-1600.jpg 1600w, https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f263f9e3a13cca9b36e_Redeploy_Oskar_-138.jpg 1809w" class="article-header"/><div class="article-columns w-row"><div class="article-column-1 w-col w-col-3"><div class="article-details"><div class="published-date"><p class="sg-label-1">Category</p><p class="sg-body-1">Tech</p></div><div class="published-date"><p class="sg-label-1">Published</p><p class="sg-body-1">September 28, 2026</p></div></div></div><div class="article-column-2 w-col w-col-9"><p class="article-paragraph large blue">The pattern is familiar to anyone running a financial crime function. New alerts arrive, last week&#x27;s queue is still open, and the team is the same size it was in January.</p><div class="u-rich-text w-richtext"><p>We sat down with Oskar Dahl Aldeborn, AI Lead at Redeploy, who spends his weeks inside banks&#x27; financial crime teams, to hear where the time actually goes and what he thinks should change.</p><p>His work covers three areas that banks usually run as separate functions: know your customer (KYC), the checks a bank runs when it takes on a customer and reviews them later; anti-money laundering (AML), the work of finding and reporting laundered money; and transaction monitoring (TM), the alerts on unusual transactions that feed the AML investigators.</p><p>“Different teams and different tools, but the same shape of case every time,” Oskar says. “A trigger, evidence to assemble, a decision, and a record the regulator can follow.”</p><h2>Most of a case is administration</h2><p>We asked Oskar where the hours in a case go, and his answer begins with a screen.</p><p>“In the last process walkthrough I sat in, the analyst had the client lifecycle management system, the CLM, open and ten other windows. The CLM is where the case is built and signed off. None of the information the case needs lives there.”</p><p>It sits in the other ten, and much of it is unstructured: customer documents, scanned forms, annual reports, registry extracts, transaction history, screening results, negative news. The analyst opens each one, finds the detail, copies it into the CLM by hand, compares it with the next source, and chases the mismatches. That, Oskar says, is most of the working day, and it is why the case queue grows.</p><p>Take a periodic review of a trading company. The customer form names two owners, the registry extract names three, and one of those is a holding company in another country. The annual report arrives as a scanned document. An hour into the copying, the analyst notices that the ownership percentages do not add up.</p><p>“That last observation is the investigation. Everything before it is 
651what an experienced investigator was not hired to do.”</p><p>Transaction monitoring is no different, he adds. The judgment is whether a pattern of transactions fits the business the customer claims to run. The hours go into assembling the pattern.</p><figure style="max-width:1932pxpx" class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Oskar Dahl Aldeborn, AI Lead at Redeploy, working at his laptop in a meeting room at the Stockholm office" src="https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97f8dfdd8c364303cc994_Redeploy_Oskar_-174.jpg" loading="lazy"/></div></figure><h2>Why hiring does not close the gap</h2><p>The obvious response to a growing queue is more people, and Oskar’s point is that this option is weaker than it looks. The budget is hard to defend when the driver sits outside the bank and keeps growing. Even with the money approved, an experienced investigator takes months to recruit and longer to become effective.</p><p>“Meanwhile the backlog is what the regulator sees, and overdue reviews are what the board hears about.”</p><h2>The shortcut most banks have already tried</h2><p>Most banks, he says, have reached for the off-the-shelf AI assistant first, the kind that now sits in every office suite. The investigator pastes case text into a chat window and gets a summary back.</p><p>“It helps with the writing and changes nothing about the queue. The assistant does not know how the bank defines suspicious behavior, it cannot read the source systems, and everything it produces has to be checked against the sources anyway. It adds a step to the case instead of removing one.”</p><h2>Agents do the administration, people do the investigation</h2><p>The split Oskar argues for is simple to state. AI agents take the administrative steps: read the documents, pull the data from the source systems, fill in the CLM, compare every detail across sources, screen the parties, and reason against the bank’s own rulebook rather than general knowledge. The investigator opens a finished file where every statement points to the source it came from, and gaps are flagged. The decision is theirs.</p><p>“The hours do not disappear. They move from copy-paste into the CLM to investigation,” Oskar says. “And that is why the quality argument is stronger than the speed argument. A case that gets a full hour of investigation instead of a full hour of data entry is a better case.”</p><h2>Where agents still fail</h2><p>He is equally clear about the limits.</p><p>“Bad scans. Handwritten forms. Ownership chains that run through jurisdictions with weak registries. Two sources that disagree and no third to settle it. Those cases go to a person, as they always did. The difference is that the person receives them with everything else already assembled and the disagreement already marked.”</p><figure style="max-width:1973px" class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Oskar Dahl Aldeborn in conversation with a colleague, gesturing towards his head as he makes a point." src="https://cdn.prod.website-files.com/62b9af89058c57398105e76a/6aa97fc2291587f15252b8fe_Redeploy_Oskar_-180.jpg" loading="lazy"/></div></figure><h2>How a bank should test it</h2><p>His advice to a bank considering this starts before any technology.</p><p>“If you have not measured today’s time per case, you are not ready to start. Measure first.”</p><p>From there it stays deliberately small. One case type, run all the way through over a few weeks on anonymized test cases, never live data. Decide what good looks like before anything gets built, and keep a person reviewing every case. At the end there is one decision, go or no go, and the bank makes it.</p><p>&quot;A capability that works in a controlled test has absorbed nothing. It counts when it runs inside the daily flow, where the volume sits.&quot;</p><h2>The number worth watching</h2><p>Asked what he would measure at the end of the year, he is quick to answer:</p><p>“How much faster the queue moves, with the same people making the calls. When the board asks what the bank is doing about AI in financial crime, that is the answer that survives the follow-up questions.”</p></div></div></div><div class="article-columns w-row"><div class="article-column-1 w-col w-col-3"></div><div class="article-column-2 w-col w-col-9"><div class="author"><img src="" loading="lazy" alt="" class="author-image w-dyn-bind-empty"/><div class="author-details"><p class="sg-label-1 w-condition-invisible">Written by</p><p class="article-paragraph large darkest-blue w-dyn-bind-empty"></p></div></div></div></div></div></div></div></div><div class="footer ai-core"><div class="section--footer"><div class="padding-global"><div class="container-large"><div class="sg-footer-wrapper"><div class="footer-header--max-width"><h2 class="sg-h1 max-width-650">Ready to power up your business?</h2></div><p class="max-width-590">Whether you are looking to begin your cloud journey, modernize existing applications, or leverage data and AI platforms, we can help you every step of the way.</p><div data-wf--spacer--variant="64px" class="spacer is-relative"><div class="spacer-setting"></div></div><div><div data-w-id="ebf21602-684d-922f-aed8-0a64ce097af8" class="main_btn is-dark"><div class="g_button_text">Book a conversation</div><div class="button-image--wrapper"><div class="button--image w-embed">
651<svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg">
652<g id="graphic/icon/enter-arrow">
653<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M1.07018 0.646606V5.43185H10.3285L6.88997 1.99375L7.64666 1.23697L12.0002 5.58997V6.34675L7.64666 10.6997L6.88997 9.94297L10.3313 6.50203H0.535092L0 5.96694V0.646606H1.07018Z" fill="currentColor"/>
654</g>
655</svg></div></div></div></div></div><div class="footer-links_list"><a href="/about" class="footer-link_item">About</a><a id="openservice" href="#" class="footer-link_item">What we do +</a><a href="/case-studies" class="footer-link_item">Case Studies</a><a href="/blog" class="footer-link_item">Blog</a><a href="https://careers.redeploy.com/" target="_blank" class="footer-link_item">Careers</a></div><div class="footer-details"><a href="/" class="logo w-inline-block"><div class="logo-image w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="130" height="22" viewBox="0 0 129 21" fill="none">
656  <g clip-path="url(#clip0_1080_34966)">
657    <path d="M0 2.87012V17.5311H2.6502V5.51842V2.87012H0Z" fill="currentColor" />
658    <path d="M2.64844 5.51842H13.228V2.87012H5.30924C3.83573 2.87012 2.64844 4.05656 2.64844 5.51842Z" fill="currentColor" />
659    <path
660      d="M27.0425 2.87012H17.629C16.1767 2.87012 15 4.04596 15 5.49724V14.904C15 16.3553 
66016.1767 17.5311 17.629 17.5311H29.6715V14.8828H17.6502V11.5248H27.0425C28.4948 11.5248 29.6715 10.3489 29.6715 8.89766V5.49724C29.6715 4.04596 28.4948 2.87012 27.0425 2.87012ZM27.0213 8.89766H17.6502V5.51842H27.0213V8.89766Z"
661      fill="currentColor" />
662    <path
663      d="M109.232 2.87012H99.8611C98.3982 2.87012 97.2109 4.05656 97.2109 5.51842V14.8828C97.2109 16.3447 98.3982 17.5311 99.8611 17.5311H109.232C110.695 17.5311 111.882 16.3447 111.882 14.8828V5.51842C111.882 4.05656 110.695 2.87012 109.232 2.87012ZM109.232 14.8828H99.8611V5.51842H109.232V14.8828Z"
664      fill="currentColor" />
665    <path
666      d="M83.408 2.87012H80.7578V14.8828C80.7578 16.3447 81.9451 17.5311 83.408 17.5311H95.4293V14.8828H83.408V2.87012Z"
667      fill="currentColor" />
668    <path
669      d="M43.4744 5.51799C43.4744 4.05613 42.2871 2.86969 40.8242 2.86969H34.1033C32.6404 2.86969 31.4531 4.05613 31.4531 5.51799V14.8824C31.4531 16.3443 32.6404 17.5307 34.1033 17.5307H40.8136C42.2765 17.5307 43.4638 16.3443 43.4638 14.8824V17.5307H46.1034V0.200195H43.4638V5.51799H43.4744ZM34.0927 14.8824V5.51799H43.4638V14.8824H34.0927Z"
670      fill="currentColor" />
671    <path
672      d="M59.9175 2.87012H50.504C49.0517 2.87012 47.875 4.04596 47.875 5.49724V14.904C47.875 16.3553 49.0517 17.5311 50.504 17.5311H62.5465V14.8828H50.5252V11.5248H59.9175C61.3698 11.5248 62.5465 10.3489 62.5465 8.89766V5.49724C62.5571 4.04596 61.3804 2.87012 59.9175 2.87012ZM59.9069 8.89766H50.5358V5.51842H59.9069V8.89766Z"
673      fill="currentColor" />
674    <path
675      d="M76.3271 2.87012H69.6062C68.1433 2.87012 66.956 4.05656 66.956 5.51842V2.87012H64.3164V20.2006H66.956V14.8828C66.956 16.3447 68.1433 17.5311 69.6062 17.5311H76.3271C77.79 17.5311 78.9773 16.3447 78.9773 14.8828V5.51842C78.9879 4.05656 77.8006 2.87012 76.3271 2.87012ZM76.3271 14.8828H66.956V5.51842H76.3271V14.8828Z"
676      fill="currentColor" />
677    <path
678      d="M125.681 2.85938V9.57548H116.31V2.85938H113.66V9.57548C113.66 11.0373 114.847 12.2238 116.31 12.2238H123.031C124.494 12.2238 125.681 11.0373 125.681 9.57548V14.9039H113.66V17.5522H125.681C127.144 17.5522 128.332 16.3657 128.332 14.9039V2.85938H125.681Z"
679      fill="currentColor" />
680  </g>
681  <defs>
682    <clipPath id="clip0_1080_34966">
683      <rect width="128.333" height="20" fill="white" transform="translate(0 0.200195)" />
684    </clipPath>
685  </defs>
686</svg></div></a><div class="footer-links-small"><div class="footer-group"><a href="mailto:[email protected]" class="sg-small-link">[email protected]</a></div><div class="footer-group"><a href="https://www.google.com/maps/place/Redeploy+AB/@59.3369007,18.0328419,17z/data=!3m1!4b1!4m5!3m4!1s0x465f9ddd6bd61277:0xea2bcf66f8716983!8m2!3d59.3369007!4d18.0328419" target="_blank" class="sg-small-link">Torsgatan 4, 111 23 Stockholm</a><a href="https://www.google.com/maps/place/Redeploy+AB/@57.7825702,14.1734095,17z/data=!3m1!4b1!4m5!3m4!1s0x465a6d938db130b3:0xad8345c924a0a823!8m2!3d57.7825702!4d14.1734095" target="_blank" class="sg-small-link">Södra Strandgatan 5, 553 20 Jönköping</a><a href="https://goo.gl/maps/AbK7GXC3KKPrJXFr5" target="_blank" class="sg-small-link">Drottninggatan 31, 411 14 Göteborg</a></div></div><div class="socials"><a aria-label="github-link" href="https://github.com/RedeployAB" target="_blank" class="social-link w-inline-block"><div class="social-image w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
687<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7 1.5H9.9V2.7H6.3V3.9H5.1V5.1H3.9V6.3H2.7V9.9H1.5V14.7H2.7V17.7H3.9V18.9H5.1V20.1H6.3V21.3H9.9V22.5H14.7V21.3H17.7V20.1H18.9V18.9H20.1V17.7H21.3V14.7H22.5V9.9H21.3V6.3H20.1V5.1H18.9V3.9H17.7V2.7H14.7V1.5ZM14.7 2.7V3.9H17.7V5.1H18.9V6.3H20.1V9.9H21.3V14.7H20.1V17.7H18.9V18.9H17.7V20.1H15.3V17.1H14.7H14.1V15.9H15.9V14.7H17.1V13.5H18.3V9.3H17.1V5.1H15.9V6.3H14.7V7.5H9.9V6.3H8.7V5.1H7.5V9.3H6.3V13.5H7.5V14.7H8.7V15.9H10.5V17.1H9.9H9.3V17.7H8.1V16.5H6.3V15.3H5.1V16.5H6.3V17.7H8.1V18.9H9.3V20.1H6.3V18.9H5.1V17.7H3.9V14.7H2.7V9.9H3.9V6.3H5.1V5.1H6.3V3.9H9.9V2.7H14.7Z" fill="currentColor"/>
688</svg></div></a><a aria-label="linked-in link" href="https://linkedin.com/company/redeploy-ab" target="_blank" class="social-link w-inline-block"><div class="social-image w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
689<path fill-rule="evenodd" clip-rule="evenodd" d="M7.19998 3H4.79998V4.2L3.59998 4.2V6.6H4.79998V7.8H7.19998V6.6H8.39998V4.2L7.19998 4.2V3ZM6.59998 9H4.19998V21H6.59998H7.79998V9H6.59998ZM12 9H9.59998V10.2V21H12H13.2V13.8H14.4V12.6H15.6V13.8H16.8V21H18H20.4V11.4H19.2V10.2H18V9H13.2V10.2H12V9Z" fill="currentColor"/>
690</svg></div></a><a aria-label="youtube link" href="https://www.youtube.com/channel/UC5PywW-NaN6GVDGECs_tDcg" target="_blank" class="social-link w-inline-block"><div class="social-image w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
691  <path fill-rule="evenodd" clip-rule="evenodd" d="M18.6 2.40039H5.39999V3.60039H3.59999V6.00039H1.79999V18.0004H3.59999V20.4004H5.39999V21.6004H18.6V20.4004H20.4V18.0004H22.2V6.00039H20.4V3.60039H18.6V2.40039ZM8.99999 7.80039H10.8V9.00039H13.2V10.2004H15V11.4004H16.2V12.6004H15V13.8004H13.2V15.0004H10.8V16.2004H8.99999V7.80039Z" fill="currentColor"/>
692</svg></div></a></div></div></div></div></div><div class="background-wrap"><img src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services.webp" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services-p-500.webp 500w, https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services-p-800.webp 800w, https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services-p-1080.webp 1080w, https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services-p-1600.webp 1600w, https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services-p-2000.webp 2000w, https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services-p-2600.webp 2600w, https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/65ef4b59ff5763911f49798e_BG%20-%20Services.webp 2880w" class="full-size"/></div></div><div data-wf--contact-modal--variant="base" data-w-id="88d36eee-08bc-5a57-5382-0d4a72faf513" class="modal-wrapper"><div class="overlay"><div class="contact-form-wrapper w-form"><div data-w-id="761f7c75-1137-ae9c-cf30-fbc4d6e8c7b5" class="modal-close-wrapper"><img src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/656f375f97e6c6304552223d_Union.svg" loading="lazy" alt="Close menu" class="modal-close"/></div><form id="wf-form-Email-Form" name="wf-form-Email-Form" data-name="Email Form" method="get" class="contact-form" data-wf-page-id="62b9af89a83391a99e26881e" data-wf-element-id="88d36eee-08bc-5a57-5382-0d4a72faf51a"><h2 class="heading-2">Let’s Connect!</h2><div class="form-row"><div class="input"><input class="input-field w-input" maxlength="256" name="Email" data-name="Email" placeholder="Your E-mail" type="email" id="Email" required=""/></div><div class="input"><input class="input-field w-input" maxlength="256" name="Name" data-name="Name" placeholder="Full Name" type="text" id="Name" required=""/></div></div><div class="radio-button-group"><div class="radio-button-title">I’m interested in…</div><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">AI agents &amp; applications</span></label></div><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">AI-ready data &amp; RAG </span></label></div><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">Cloud &amp; data platforms</span></label></div><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">Managed AI operations</span></label></div><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">FinOps</span></label></div><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">Advisory &amp; assessment</span></label></div><div role="listitem" class="w-dyn-item"><label class="radio-button-field w-radio"><div class="w-form-formradioinput w-form-formradioinput--inputType-custom radio-button w-radio-input"></div><input type="radio" name="radio" id="radio" data-name="Radio" style="opacity:0;position:absolute;z-index:-1" value=""/><span class="radio-button-label w-form-label" for="radio">
692Other</span></label></div></div></div></div><div class="form-row"><div class="input"><input class="input-field w-input" maxlength="256" name="Message" data-name="Message" placeholder="Write your message..." type="text" id="Message"/></div><input type="submit" data-wait="Please wait..." class="submit-button sg-button w-button" value="Send"/></div></form><div class="success-message w-form-done"><img src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/62c72e6d363b6330bafb8aca_icon--ok.svg" loading="lazy" alt="" class="success-message-image"/><div class="text-block-4">Thank you! <br/>Your submission has been sent</div></div><div class="error-message w-form-fail"><div class="text-block-5">Oops! Something went wrong while submitting the form. Try mailing us at [email protected] instead!</div></div></div><div data-w-id="6ceae74b-3601-aa22-b0e3-c7fa0c4d89cc" class="overlay-closable"></div></div><div class="w-embed w-script">
692<script>
693function setRadioButtonValuesToPreviousSibling() {
694  // Select all elements with the class '.radio-button-label'
695  const labels = document.querySelectorAll('.radio-button-label');
696
697  labels.forEach(label => {
698    // Find the previous sibling input element
699    const inputElement = label.previousElementSibling;
700    if (inputElement && inputElement.tagName === 'INPUT') {
701      // Set the value of the input element to the text content of the label
702      inputElement.value = label.textContent.trim();
703    }
704  });
705}
706
707// Call the function to apply the changes
708setRadioButtonValuesToPreviousSibling();
709
710
711</script>
711</div></div><div fs-cc="banner" data-wf--cookie-banner--variant="base" class="fs-cc-banner3_component"><div class="cookie-wrapper"><img src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/654208b9a4fb0928e4cf3f66_Icon-Web-Cookie-White.svg" loading="lazy" width="Auto" alt="" class="cookie-image"/><div class="fs-cc-banner3_container"><div class="fs-cc-banner3_block"><h3 class="sg-h3 cookie">Cookie Consent</h3><p class="sg-body-2">By clicking <strong class="bold-text">“Accept,”</strong> you agree to store cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. Please view our <a href="/cookie-policy" class="white">Cookie Policy</a> for more information.</p></div><div class="fs-cc-banner3_buttons-wrapper"><a fs-cc="allow" href="#" class="button green w-button">Accept</a><a fs-cc="deny" href="#" class="button secondary cookie-button w-button">Deny</a></div></div></div></div></div>
711<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=62b0265c2452a57e6a524bf6" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
711<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/js/redeploy.schunk.01b56ef8c8bd111c.js" type="text/javascript" integrity="sha384-iYCaTaSJwo7SLv+5Fpais23xfjuXE4ZoLekLYLRLibhpj99yMyQiXSRZk4pg0rtX" crossorigin="anonymous"></script>
711<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6/js/redeploy.d6e7c5e3.a5434eed714ba8f5.js" type="text/javascript" integrity="sha384-G+7U952ofhfpwISiZHhlO1PSKhpiyf4ND8mO8ixzcce/A8Juhm8vW3/yvAEka4LW" crossorigin="anonymous"></script>
711<script src="https://cdn.prod.website-files.com/gsap/3.15.0/gsap.min.js" type="text/javascript"></script>
711<script src="https://cdn.prod.website-files.com/gsap/3.15.0/ScrollTrigger.min.js" type="text/javascript"></script>
711<script type="text/javascript">gsap.registerPlugin(ScrollTrigger);</script>
711<script>
712	function debounce(func, delay){
713		let timer;
714		return function () {
715			const context = this;
716			const args = arguments;
717			clearTimeout(timer);
718			timer = setTimeout(()=> { func.apply(context, args) }, delay);
719		}
720	}
721	const trigger = 100
722	const navbar = document.querySelector('.navbar')
723	const navbarLight = document.querySelector('.navbar-light')
724	const navbarRun = document.querySelector('.navbar-run')
725	const navbarApaas = document.querySelector('.navbar-apaas')
726	const navbarBuild = document.querySelector('.navbar-build')
727	const navbarInsight = document.querySelector('.navbar-insight')
728	window.addEventListener('scroll', debounce(() => {
729		const scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
730		if (Boolean(navbar)) { navbar.classList.toggle('is-below-trigger', scrollPosition > trigger); }
731		if (Boolean(navbarLight)) { navbarLight.classList.toggle('light-is-below-trigger', scrollPosition > trigger); }
732		if (Boolean(navbarRun)) { navbarRun.classList.toggle('run-is-below-trigger', scrollPosition > trigger); }
733		if (Boolean(navbarApaas)) { navbarApaas.classList.toggle('apaas-is-below-trigger', scrollPosition > trigger); }
734		if (Boolean(navbarBuild)) { navbarBuild.classList.toggle('build-is-below-trigger', scrollPosition > trigger); }
735		if (Boolean(navbarInsight)) { navbarInsight.classList.toggle('insight-is-below-trigger', scrollPosition > trigger); }
736	}), 1000);
737</script>
737
738
739<!-- Lenis is initialised ONCE, in Site settings > Custom code > Head. A second copy (1.0.23) used to live here and was removed in September 2026. Do not add it back. -->
740
741<!-- People Section runtime. Moved here from the component Code Embed in September 2026: behaviour does not live in embeds, and at ~2.7k characters it is over the 2,000 cap for a registered script. The Splide CSS stays in the component's Styles embed.
742     The v4.2 drag watchdog is kept (after a free drag, 'scrolled' never fires and AutoScroll stays paused forever) but it is now FOCUS AWARE. pauseOnFocus was already set and was being undone by the watchdog one second later, so keyboard users could not stop moving content holding links. WCAG 2.2.2. -->
743<script>
744(function () {
745  var CORE = 'https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js';
746  var AUTO = 'https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide-extension-auto-scroll.min.js';
747  function loadOnce(src, attr, cb) {
748    var tag = document.querySelector('script[' + attr + ']');
749    if (tag) {
750      if (tag.getAttribute('data-rd-loaded') === '1') { cb(); }
751      else { tag.addEventListener('load', cb); }
752      return;
753    }
754    var s = document.createElement('script');
755    s.src = src; s.async = false;
756    s.setAttribute(attr, '');
757    s.onload = function () { s.setAttribute('data-rd-loaded', '1'); cb(); };
758    document.head.appendChild(s);
759  }
760  function ensureCore(cb) { if (window.Splide) { cb(); return; } loadOnce(CORE, 'data-rd-splide', cb); }
761  function ensureAutoScroll(cb) {
762    if (window.splide && window.splide.Extensions && window.splide.Extensions.AutoScroll) { cb(); return; }
763    loadOnce(AUTO, 'data-rd-splide-autoscroll', cb);
764  }
765  function keepRunning(sp, root) {
766    var as = sp.Components.AutoScroll;
767    if (!as) return;
768    var over = false, focused = false;
769    root.addEventListener('pointerenter', function () { over = true; });
770    root.addEventListener('pointerleave', function () { over = false; });
771    root.addEventListener('focusin', function () { focused = true; as.pause(); });
772    root.addEventListener('focusout', function () {
773      if (!root.contains(document.activeElement)) { focused = false; as.play(); }
774    });
775    sp.on('dragged', function () { setTimeout(function () { if (!focused) as.play(); }, 300); });
776    sp.on('scrolled', function () { if (!focused) as.play(); });
777    setInterval(function () {
778      var drag = sp.Components.Drag;
779      var dragging = !!(drag && drag.isDragging && drag.isDragging());
780      if (!over && !focused && !dragging && as.isPaused()) { as.play(); }
781    }, 1000);
782  }
783  function initPeopleSliders() {
784    if (!window.Splide) return;
785    var ext = (window.splide && window.splide.Extensions) || {};
786    var reduce = !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
787    var roots = document.querySelectorAll('.section--people .splide');
788    for (var i = 0; i < roots.length; i++) {
789      var root = roots[i];
790      if (root.__rdSplide) continue;
791      var sp = new Splide(root, {
792        type: 'loop', autoWidth: true, perMove: 1,
793        pagination: false, arrows: true, gap: '44px',
794        drag: 'free', flickPower: 200,
795        autoScroll: { speed: reduce ? 0 : 0.6, pauseOnHover: true, pauseOnFocus: true, rewind: false }
796      });
797      root.__rdSplide = sp;
798      sp.mount(ext);
799      if (!reduce) { keepRunning(sp, root); }
800    }
801  }
802  function boot() { ensureCore(function () { ensureAutoScroll(initPeopleSliders); }); }
803  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', boot); } else { boot(); }
804})();
805</script>
805
806
807<!-- Case Slideshow runtime. Drives every [data-cslide] component: autoplay, dots, progress bar, play/pause. Timings from the motion tokens in the head. Progress bar animates transform, never width. Reduced motion starts paused; the dots drive. -->
808<script>
809(function(){
810  var LIME='#20fb87';
811  var PAUSE='M10 6h2v20h-2zM18 6h2v20h-2z', PLAY='M8 5L24.98 15.37V16.63L8 27Z';
812  function icon(d){return '<svg width="16" height="16" viewBox="0 0 32 32" fill="currentColor" aria-hidden="true" focusable="false"><path d="'+d+'"></path></svg>';}
813  function rgb(color){
814    var m = String(color || '').match(/rgba?\(([^)]+)\)/);
815    if(!m) return null;
816    var p = m[1].split(',');
817    return [parseFloat(p[0]), parseFloat(p[1]), parseFloat(p[2])];
818  }
819  function alpha(color, a){
820    var c = rgb(color);
821    if(!c) return color;
822    return 'rgba(' + c[0] + ',' + c[1] + ',' + c[2] + ',' + a + ')';
823  }
824  function each(root, sel, fn){ Array.prototype.forEach.call(root.querySelectorAll(sel), fn); }
825  function init(root){
826    if(root.getAttribute('data-cslide-ready') === '1') return;
827    root.setAttribute('data-cslide-ready','1');
828    var i, all = root.querySelectorAll('[data-cslide-slide]'), slides = [];
829    for(i=0;i<all.length;i++){ if(getComputedStyle(all[i]).display !== 'none') slides.push(all[i]); }
830    if(!slides.length) return;
831    var dall = root.querySelectorAll('[data-cslide-dot]'), dots = [];
832    for(i=0;i<dall.length;i++){ if(i < slides.length){ dots.push(dall[i]); } else { dall[i].style.display='none'; } }
833    var play = root.querySelector('[data-cslide-play]');
834    var counter = root.querySelector('[data-cslide-counter]');
835    var secEl = root.querySelector('[data-cslide-seconds-value]');
836    var secs = parseFloat((secEl && secEl.textContent) || root.getAttribute('data-cslide-seconds') || '6');
837    if(!(secs > 0)) secs = 6;
838    var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
839    var dur = secs * 1000, ix = 0, playing = !reduce, timer = null, anim = null;
840    var textColor = getComputedStyle(root).color;
841    var c = rgb(textColor) || [255,255,255];
842    var onDark = (0.2126*c[0] + 0.7152*c[1] + 0.0722*c[2]) / 255 > 0.5;
843    var accent = onDark ? LIME : textColor;
844    each(root, '.cslide__label, .cslide__eyebrow, .cslide__metric-value', function(el){ el.style.color = accent; });
845    each(root, '.cslide__metric', function(el){ el.style.borderLeftColor = accent; });
846    each(root, '.cslide__fill', function(el){ el.style.backgroundColor = accent; });
847    each(root, '.cslide__visual', function(el){ el.style.backgroundColor = onDark ? '#01081a' : 'rgba(1,8,26,0.04)'; });
848    each(root, '.cslide__cta-dark', function(el){ el.style.display = onDark ? 'flex' : 'none'; });
849    each(root, '.cslide__cta-light', function(el){ el.style.display = onDark ? 'none' : 'flex'; });
850    var probe = root.querySelector('.cslide__track');
851    var idleColor = probe ? getComputedStyle(probe).backgroundColor : alpha(textColor, 0.45);
852    var trackColor = alpha(idleColor, 0.16);
853    function pad(n){ return n < 10 ? '0' + n : '' + n; }
854    function barWidth(){ return window.innerWidth < 768 ? 40 : 72; }
855    function paint(){
856      slides.forEach(function(s, n){
857        var on = n === ix;
858        s.style.transition = 'opacity var(--motion-slow) var(--ease-move)';
859        s.style.opacity = on ? '1' : '0';
860        s.style.visibility = on ? 'visible' : 'hidden';
861        s.style.pointerEvents = on ? 'auto' : 'none';
862      });
863      dots.forEach(function(d, n){
864        var on = n === ix, t = d.querySelector('.cslide__track');
865        d.setAttribute('aria-current', on ? 'true' : 'false');
866        if(!t) return;
867        t.style.width = on ? barWidth() + 'px' : '6px';
868        t.style.height = on ? '3px' : '6px';
869        t.style.borderRadius = on ? '0px' : '50%';
870        t.style.background = on ? trackColor : idleColor;
871      });
872      if(counter) counter.textContent = pad(ix + 1) + ' / ' + pad(slides.length);
873      if(play){ play.innerHTML = icon(playing ? PAUSE : PLAY); play.setAttribute('aria-label', playing ? 'Pause the slideshow' : 'Play the slideshow'); }
874    }
875    function run(){
876      if(anim){ anim.cancel(); anim = null; }
877      clearTimeout(timer);
878      var fill = dots[ix] && dots[ix].querySelector('.cslide__fill');
879      if(fill){
880        fill.style.width = '100%';
881        fill.style.transformOrigin = 'left center';
882        fill.style.transform = 'scaleX(0)';
883        if(playing && !reduce && fill.animate){
884          anim = fill.animate([{transform:'scaleX(0)'},{transform:'scaleX(1)'}], {duration: dur, easing:'linear', fill:'forwards'});
885        } else if(playing){ fill.style.transform = 'scaleX(1)'; }
886      }
887      if(playing) timer = setTimeout(next, dur);
888    }
889    function next(){ go((ix + 1) % slides.length); }
890    function go(n){ ix = n; paint(); run(); }
891    function toggle(){
892      playing = !playing;
893      if(!playing){ clearTimeout(timer); if(anim) anim.pause(); paint(); return; }
894      if(anim){ anim.play(); timer = setTimeout(next, Math.max(0, dur - (anim.currentTime || 0))); } else { run(); }
895      paint();
896    }
897    function key(fn){ return function(e){ if(e.key === 'Enter' || e.key === ' '){ e.preventDefault(); fn(); } }; }
898    dots.forEach(function(d, n){
899      d.setAttribute('role','button');
900      d.setAttribute('tabindex','0');
901      d.setAttribute('aria-label','Show case ' + (n + 1) + ' of ' + slides.length);
902      d.addEventListener('click', function(){ go(n); });
903      d.addEventListener('keydown', key(function(){ go(n); }));
904    });
905    if(play){
906      play.setAttribute('role','button');
907      play.setAttribute('tabindex','0');
908      play.addEventListener('click', toggle);
909      play.addEventListener('keydown', key(toggle));
910    }
911    root.addEventListener('mouseenter', function(){ if(playing && anim){ anim.pause(); clearTimeout(timer); } });
912    root.addEventListener('mouseleave', function(){ if(playing && anim){ anim.play(); timer = setTimeout(next, Math.max(0, dur - (anim.currentTime || 0))); } });
913    root.addEventListener('focusin', function(){ if(playing && anim){ anim.pause(); clearTimeout(timer); } });
914    root.addEventListener('focusout', function(){ if(playing && anim && !root.contains(document.activeElement)){ anim.play(); timer = setTimeout(next, Math.max(0, dur - (anim.currentTime || 0))); } });
915    window.addEventListener('resize', paint);
916    go(0);
917  }
918  function boot(){ Array.prototype.forEach.call(document.querySelectorAll('[data-cslide]'), init); }
919  if(document.readyState !== 'loading'){ boot(); } else { document.addEventListener('DOMContentLoaded', boot); }
920})();
921</script>
921<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6%2F689e5ba67671442434f3ca35%2F6ab27de86039f00f54c18575%2Fredeploycounterup-1.2.0.js" type="text/javascript"></script>
921<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6%2F689e5ba67671442434f3ca35%2F6ab282f4a6716c1b6c7d5ef3%2Fredeploycalloutbanner-1.0.0.js" type="text/javascript"></script>
921<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6%2F689e5ba67671442434f3ca35%2F6ab2874d770a7723b5419005%2Ffeatureslideauto3-0.0.2.js" type="text/javascript"></script>
921<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6%2F689e5ba67671442434f3ca35%2F6ab3d098caa0e1600d87ca39%2Fredeployaccordion-1.1.0.js" type="text/javascript"></script>
921<script src="https://cdn.prod.website-files.com/62b0265c2452a57e6a524bf6%2F689e5ba67671442434f3ca35%2F6ab55ecd0229184df86574bc%2Fredeployreveal-1.1.0.js" type="text/javascript"></script>
921</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.