1<!DOCTYPE html><!-- Last Published: Fri Oct 02 2026 16:47:43 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="multiverse-site.webflow.io" data-wf-page="699d7e9e881fdff59db7f525" data-wf-site="69381061fef68be00431dd04" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Upskilling platform for AI adoption | Multiverse</title><meta content="The gap between AI ambition and AI adoption is a skills problem. Multiverse closes it with apprenticeships and upskilling programmes in AI, data, engineering and leadership, trusted by 1,500+ employers." name="description"/><meta content="Upskilling platform for AI adoption | Multiverse" property="og:title"/><meta content="The gap between AI ambition and AI adoption is a skills problem. Multiverse closes it with apprenticeships and upskilling programmes in AI, data, engineering and leadership, trusted by 1,500+ employers." property="og:description"/><meta content="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6968e946b3685eb32fbecdff_OPEN%20GRAPH%20IMAGE.png" property="og:image"/><meta content="Upskilling platform for AI adoption | Multiverse" name="twitter:title"/><meta content="The gap between AI ambition and AI adoption is a skills problem. Multiverse closes it with apprenticeships and upskilling programmes in AI, data, engineering and leadership, trusted by 1,500+ employers." name="twitter:description"/><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/69381061fef68be00431dd04/css/multiverse-site.shared.9e97817ee.min.css" rel="stylesheet" type="text/css" integrity="sha384-npeBfug0eN8PRaQ3G/JoDRT147khTQTdBu5WdhM63SnLz+9aTQegETkH+3RpL+1z" 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/69381061fef68be00431dd04/69c3d4adc29ee9b46a9fc7f1_32x32.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/69381061fef68be00431dd04/69c3d4b040bd33eec71349d4_256x256.png" rel="apple-touch-icon"/><link href="https://www.multiverse.io" rel="canonical"/>
1<script type="application/ld+json"> 2{ 3 "@context": "https://schema.org", 4 "@type": "WebPage", 5 "@id": "https://www.multiverse.io/#webpage", 6 "url": "https://www.multiverse.io/", 7 "name": "Multiverse", 8 "inLanguage": "en-GB", 9 10 "isPartOf": { 11 "@id": "https://www.multiverse.io/#website" 12 }, 13 14 "publisher": { 15 "@id": "https://www.multiverse.io/#organization" 16 } 17} 18</script>
18<!-- Ketch -->
19<script>!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/multiverse/website_smart_tag/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}();</script>
19 20 21<!-- Google Tag Manager -->
22<script>
vendor: 328 bytes, lines 22-27
22 23(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 24new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 25j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 26'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 27})(window,document,'script','dataLayer','
27GTM-KWQD2SP
vendor: 4 bytes, line 27
27');
28</script>
28 29<!-- End Google Tag Manager --> 30 31<!-- Qualified -->
32<script> 33(function(w,q){w['QualifiedObject']=q;w[q]=w[q]||function(){ 34(w[q].q=w[q].q||[]).push(arguments)};})(window,'qualified') 35 36</script>
vendor: 1 bytes, line 36
36
37<script async src="https://js.qualified.com/qualified.js?token=wpHsnP5rMcLh2VpW"></script>
37 38<!-- End Qualified --> 39 40 41<!-- Debug -->
42<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/makebuild-code/[email protected]/src/debug-logger/debug-logger.min.js"></script>
42 43 44 45<!-- Website Schema -->
46<script type="application/ld+json" id="schema-website"> 47{ 48 "@context":"https://schema.org", 49 "@type":"WebSite", 50 "@id":"https://www.multiverse.io/#website", 51 "url":"https://www.multiverse.io/", 52 "name":"Multiverse", 53 "publisher":{"@id":"https://www.multiverse.io/#organization"}, 54 "inLanguage":"en-GB" 55} 56</script>
56<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/lenis.css"> 57<!--
57<script src="https://unpkg.com/[email protected]/dist/lenis.min.js"></script>
57
58<script>window.lenis = new Lenis({ autoRaf: true, autoToggle: true, anchors: true, allowNestedScroll: true, naiveDimensions: true, stopInertiaOnNavigate: true })</script>
58 -->
59<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/lenis.min.js" defer></script>
vendor: 1 bytes, line 59
59
60<script> 61window.addEventListener('load', () => { 62 const init = () => { 63 if (matchMedia('(hover: none), (pointer: coarse)').matches) return; 64 65 const lenis = new Lenis({ anchors: true }); 66 window.lenis = lenis; 67 68 if (window.gsap && window.ScrollTrigger) { 69 // GSAP drives the single animation loop 70 lenis.on('scroll', ScrollTrigger.update); 71 gsap.ticker.add((t) => lenis.raf(t * 1000)); 72 gsap.ticker.lagSmoothing(0); 73 } else { 74 // No GSAP: let Lenis run its own loop 75 lenis.options.autoRaf = true; 76 requestAnimationFrame(lenis.raf); 77 } 78 }; 79 80 'requestIdleCallback' in window 81 ? requestIdleCallback(init, { timeout: 2000 }) 82 : setTimeout(init, 200); 83}); 84</script>
84 85 86<style> 87/* Intro sticky â desktop: the section is a sticky, opaque, full-viewport "curtain". 88 Lives here rather than on a Designer combo class so the section below stays 89 editable in the Designer (custom code doesn't load on the canvas). */ 90.intro-sticky-wrap .intro-sticky { 91 position: sticky; 92 top: 0; 93 z-index: 10; 94 padding-top: 2rem; 95 padding-bottom: 2rem; 96 background-color: #fff; 97 pointer-events: none; 98} 99 100/* Off for small screens and touch-first devices (must match the script's query): 101 normal document flow and a plain 3:2 image. */ 102@media (max-width: 767px) { 103 .intro-sticky-wrap .intro-sticky { 104 position: relative; 105 top: auto; 106 z-index: auto; 107 padding-top: 0; 108 padding-bottom: 0; 109 background-color: transparent; 110 pointer-events: auto; 111 } 112} 113</style></head><body><div class="page-wrapper"><section data-nav-add-class="" data-nav="wrapper" data-nav-active-class="is-active" data-panel-open-class="is-open" data-wf--section-global---nav--variant="overlapping" class="nav_wrap"><div class="global-code_wrap"><div class="w-embed"><style> 114 115/* Improve text clarity */ 116 117html { 118 text-rendering: optimizeLegibility; 119 -webkit-font-smoothing: antialiased; 120 -moz-osx-font-smoothing: grayscale; 121} 122 123/* Sets default style for video compoennt */ 124 125video { 126 width: 100% !important; 127 object-fit: cover !important; 128} 129 130button { 131 border: none; 132 background-color: initial; 133} 134 135.u-text-hyphen { 136 -webkit-hyphens: auto; 137 -moz-hyphens: auto; 138 -ms-hyphens: auto; 139 hyphens: auto; 140} 141 .u-body-text.w-richtext ul { 142 list-style: none; 143 margin: 0; 144 padding-left: 0; 145} 146 147.u-body-text.w-richtext ul li { 148 position: relative; 149 padding-left: 1rem; 150} 151 152.u-body-text.w-richtext ul li::before { 153 content: ""; 154 position: absolute; 155 left: 0; 156 top: 0.6em; 157 top: calc((1lh - 0.375rem) / 2); 158 width: 0.375rem; 159 height: 0.375rem; 160 background-color: var(--text--primary-headings); 161} 162 163</style></div><div class="w-embed"><style> 164@media (max-height: 700px) and (min-width: 1000px){ 165 166 [data-slider-slot-wrapper][data-slider-variant="content"][data-scroll-pinned] { 167 height: 100%; 168 top: 50%; 169 transform: translateY(-50%); 170 } 171 172} 173 174</style> 175</div><div class="w-embed"><style> 176 177 /* Styles to improve the designer experience withing design mode */ 178 html.wf-design-mode .collection-list_empty { 179 display: none; 180 } 181 182 /* Styles section padding when [cc-design-mode="true"] is applied */ 183 184 html.wf-design-mode .section-padding_wrap[cc-design-mode="true"], .is-ds .section-padding_wrap[cc-design-mode="true"] { 185 box-shadow: 0px 0px 0px 1px var(--_ds-system-colours---visualisation--dark) inset; 186 background: var(--_ds-system-colours---visualisation--light); 187 } 188 189 /* Styles empty slots to make them more visible */ 190 191 html.wf-design-mode [slot]:empty, 192 html.wf-design-mode .u-button-group:has([slot]:empty), 193 .is-ds [slot]:empty, 194 .is-ds .u-button-group:has([slot]:empty) { 195 box-shadow: 0px 0px 0px 1px var(--_ds-system-colours---component--dark) inset; 196 background: var(--_ds-system-colours---component--light); 197 min-height: 4rem; 198 position: relative; 199 display: flex; 200 align-items: center; 201 justify-content: center; 202 } 203 204 html.wf-design-mode .u-button-group:has([slot]:empty), 205 .is-ds .u-button-group:has([slot]:empty), 206 html.wf-design-mode .u-display-contents:empty, 207 .is-ds .u-display-contents:empty{ 208 width: 100%; 209 } 210 211 212 213 /* Adds pseudo label to empty slots */ 214 215 html.wf-design-mode [slot]:empty::after, .is-ds [slot]:empty::after { 216 color: var(--_ds-system-colours---component--dark); 217 font-size: 0.875rem; 218 text-align: center; 219 pointer-events: none; 220 display: block !important; 221 top: 50%; 222 left: 50%; 223 transform: translate(-50%, -50%); 224 position: absolute; 225 } 226 227 /* Adds labels to empty slots */ 228 229 html.wf-design-mode [slot="content"]:empty::after { 230 content: "Add content here"; 231 } 232 233 html.wf-design-mode [slot="sections"]:empty::after { 234 content: "Add sections here"; 235 } 236 237 html.wf-design-mode [slot="button"]:empty::after { 238 content: "Add button component here"; 239 } 240 241 html.wf-design-mode [slot="grid"]:empty::after { 242 content: "Add grid component here"; 243 } 244 245 html.wf-design-mode [slot="accordion"]:empty::after { 246 content: "Add accordion item here"; 247 } 248 249 html.wf-design-mode [slot="media"]:empty::after { 250 content: "Add media component here"; 251 } 252 253 html.wf-design-mode [slot="tab-link"]:empty::after { 254 content: "Add tab links here"; 255 } 256 257 html.wf-design-mode [slot="tab-content"]:empty::after { 258 content: "Add tab content here"; 259 } 260 261 html.wf-design-mode [slot="slider"]:empty::after { 262 content: "Add slides here"; 263 } 264 265 html.wf-design-mode [slot="logos"]:empty::after { 266 content: "Add logos here"; 267 } 268 269 html.wf-design-mode [slot="rtb"]:empty::after { 270 content: "Add list items here"; 271 } 272 273 html.wf-design-mode [slot="cms"]:empty::after { 274 content: "Add CMS list here"; 275 } 276 277 /* Design system pages */ 278 .ds_nav_list.is-sub { 279 height: 0px; 280 opacity: 0; 281 } 282 283 :has(.w--current) > .ds_nav_list.is-sub { 284 height: auto; 285 opacity: 1; 286 padding-top: 0.5rem; 287 } 288 289</style></div><div class="w-embed"><style> 290 291 /*Accordion Styling*/ 292 293 .accordion_wrap[open] .accordion_toggle-button { 294 background-color: transparent; 295 color: var(--_colour-primitives---neutral--new--800); 296 } 297 298 .accordion_wrap[open] .accordion_toggle-button[data-wf--element-accordion-button--variant="warm"]{ 299 color: var(--text--inverse); 300 background-color: var(--_colour-primitives---neutral--new--800); 301 } 302 303 .accordion_trigger.is-small[aria-expanded="true"] .accordion_toggle-button[data-wf--element-accordion-button--variant="small-warm"] { 304 color: var(--text--inverse); 305 background-color: var(--_colour-primitives---neutral--new--800); 306 border-color: var(--_colour-primitives---neutral--new--800); 307 } 308 309 .curriculum-accordion_trigger[aria-expanded="true"] .accordion_toggle-button[data-wf--element-accordion-button--variant="small-warm"] { 310 color: var(--text--inverse); 311 background-color: var(--_colour-primitives---neutral--new--800); 312 border-color: var(--_colour-primitives---neutral--new--800); 313 } 314 315 /*Accordion + Image Styling*/ 316 317 .accordion-img_wrap[open] .accordion-img_toggle-button{ 318 color: var(--text--inverse); 319 background-color: var(--_colour-primitives---neutral--new--800); 320 } 321 322 .accordion-img_item-wrap[open] .accordion-img_image{ 323 opacity: 100%; 324 } 325 326 .accordion-img_slot .accordion-img_item-wrap:last-child { 327 border-bottom: none; 328 } 329 330 .accordion-img-list_wrap[data-wf--wrapper-accordion-image-list--style-layout="image-left"] .accordion-img_image{ 331 inset: .5rem auto .5rem .5rem; 332 } 333 334</style></div><div class="w-embed"><style> 335 @media (max-width: 767px) { 336 [data-tabs-accordion="content"] { 337 display: grid; 338 grid-template-rows: 0fr; 339 overflow: hidden; 340 transition: grid-template-rows 0.6s ease; 341 } 342 [data-tabs-accordion="content"].is-open { 343 grid-template-rows: 1fr; 344 } 345 [data-tabs-accordion="content"] > * { 346 min-height: 0; 347 } 348 } 349</style></div><div class="w-embed"><style> 350 @media (min-width: 992px) { 351 /* Target the CMS items wrapper */ 352 [data-alt-layout="3-2"] .w-dyn-items { 353 display: flex; 354 flex-wrap: wrap; 355 gap: var(--grid-gap, 1.5rem); 356 } 357 358 /* Default: 3-up row */ 359 [data-alt-layout="3-2"] .w-dyn-item { 360 width: calc((100% - (2 * var(--grid-gap, 1.5rem))) / 3); 361 } 362 363 /* The 2-up row = items 4 & 5 in each group of 5 */ 364 [data-alt-layout="3-2"] .w-dyn-item:nth-child(5n + 4), 365 [data-alt-layout="3-2"] .w-dyn-item:nth-child(5n + 5) { 366 width: calc((100% - var(--grid-gap, 1.5rem)) / 2); 367 } 368 369 /* Center the 2-up row */ 370 [data-alt-layout="3-2"] .w-dyn-item:nth-child(5n + 4) { margin-left: auto; } 371 [data-alt-layout="3-2"] .w-dyn-item:nth-child(5n + 5) { margin-right: auto; } 372 373 /* If the LAST item is alone in a 2-col row (it will be the "4th" position of a 5-group), don't auto-center it */ 374 [data-alt-layout="3-2"] .w-dyn-item:last-child:nth-child(5n + 4) { 375 margin-left: 0; 376 } 377 378 } 379 380 /* Tablet: 2 x 2 grid */ 381 @media (max-width: 991px) and (min-width: 768px) { 382 [data-alt-layout="3-2"] .w-dyn-items { 383 display: grid; 384 grid-template-columns: repeat(2, 1fr); 385 gap: var(--_site-sizes---layout--grid-gutter); 386 } 387 388 [data-alt-layout="3-2"] .w-dyn-item { 389 width: auto; 390 margin: 0; 391 } 392 } 393 394 /* mobile: stacked list */ 395 396 @media (max-width: 767px) { 397 [data-alt-layout="3-2"] .w-dyn-items { 398 grid-template-columns: repeat(1, 1fr); 399 } 400 } 401 402</style></div><div class="w-embed"><style> 403 .jobs-list_form.is-sticky .jobs-list_tags, 404 .jobs-list_form.is-sticky .jobs-list_counter-wrap, 405 .jobs-list_form.is-sticky .jobs-list_dropdown-icon { 406 display: none; 407 } 408 .jobs-list_form.is-sticky .jobs-list_dropdown-wrap { 409 flex-shrink: 1; 410 } 411 .jobs-list_form.is-sticky .jobs-list_dropdown-wrap { 412 flex-shrink: 1; 413 grid-column-gap: 1rem; 414 width: auto; 415 flex-flow: row; 416 } 417 .jobs-list_form.is-sticky .jobs-list_search-wrap { 418 flex-grow: 1; 419 width: 100%; 420 } 421 .jobs-list_form.is-sticky .jobs-list_dropdown { 422 width: auto; 423 } 424 425 .jobs-list_form.is-sticky .jobs-list_dropdown-nav.w--open { 426 min-width: 260px; 427 right: 0; 428 } 429 430 @media (max-width: 767px) { 431 .jobs-list_form.is-sticky .jobs-list_dropdown-toggle-title { 432 display: none; 433 } 434 .jobs-list_form.is-sticky .jobs-list_dropdown { 435 position: static; 436 } 437 .jobs-list_form.is-sticky .jobs-list_dropdown-nav.w--open { 438 width: 100%; 439 } 440 .jobs-list_form.is-sticky .jobs-list_dropdown-toggle[data-icon="location"]::before { 441 content: ""; 442 display: inline-block; 443 width: 24px; 444 height: 24px; 445 446 background-repeat: no-repeat; 447 background-position: center; 448 background-size: contain; 449 450 background-image: url("data:image/svg+xml;utf8,\ 451 <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>\ 452 <path fill='none' stroke='%23d8d9da' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 8.25a3.75 3.75 0 1 0 7.5 0 3.75 3.75 0 1 0-7.5 0' vector-effect='non-scaling-stroke'/>\ 453 <path fill='none' stroke='%23d8d9da' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 .75a7.5 7.5 0 0 1 7.5 7.5c0 3.407-5.074 11.95-6.875 14.665a.75.75 0 0 1-1.25 0C9.574 20.2 4.5 11.657 4.5 8.25A7.5 7.5 0 0 1 12 .75' vector-effect='non-scaling-stroke'/>\ 454 </svg>"); 455 } 456 .jobs-list_form.is-sticky .jobs-list_dropdown-toggle[data-icon="department"]::before { 457 content: ""; 458 display: inline-block; 459 width: 24px; 460 height: 24px; 461 462 background-repeat: no-repeat; 463 background-position: center; 464 background-size: contain; 465 466 background-image: url("data:image/svg+xml;utf8,\ 467 <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>\ 468 <g fill='none' stroke='%23d8d9da' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'>\ 469 <path fill='none' d='M3.754 13.943v8.25h6v-6a1.5 1.5 0 0 1 1.5-1.5h1.5a1.5 1.5 0 0 1 1.5 1.5v6h6v-8.25M.754 12.443 10.943 2.254a1.5 1.5 0 0 1 2.122
4690l10.189 10.19' vector-effect='non-scaling-stroke'/>\ 470 </g>\ 471 </svg>"); 472 } 473 474 } 475</style></div><div class="w-embed"><style> 476 .hero-blog_wrap[data-blog-bg='Black'] { 477 background-color: var(--surface--black); 478 color: var(--text--inverse); 479 } 480 481 .hero-blog_wrap[data-blog-bg='Grey'] { 482 background-color: var(--surface--inverse); 483 color: var(--text--inverse); 484 } 485 486 .hero-blog_wrap[data-blog-bg='Parchment'] { 487 background-color: var(--surface--warm); 488 color: var(--text--primary-headings); 489 } 490 .hero-blog_wrap[data-blog-bg='Black'] .blog-heading { 491 color: var(--text--inverse); 492 } 493 494 .hero-blog_wrap[data-blog-bg='Grey'] .blog-heading { 495 color: var(--text--inverse); 496 } 497 498 .hero-blog_wrap[data-blog-bg='Parchment'] .blog-heading { 499 color: var(--text--primary-headings); 500 } 501</style></div><div class="w-embed"><style> 502 .button_wrap.back-button { 503 flex-direction: row-reverse; 504 } 505 .button_wrap.back-button .button_icon-wrap { 506 transform: rotate(-90deg); 507 } 508 .button_wrap[data-wf--element-button--style-style='primary']:hover .button_wrap-inner, 509 .button_wrap[data-wf--element-button--style-style='primary']:hover .button_icon-wrap { 510 background-color: var(--button-primary--primary-bg-hover); 511 } 512 .button_wrap[data-wf--element-button--style-style='secondary']:hover .button_wrap-inner, 513 .button_wrap[data-wf--element-button--style-style='secondary']:hover .button_icon-wrap { 514 background-color: var(--button-secondary--secondary-bg-hover); 515 } 516 .button_wrap:hover .button_wrap-inner { 517 border-radius: var(--_site-sizes---radius--xsmall); 518 transition: border-radius 0.3s cubic-bezier(0.25, 1, 0.5, 1); 519 } 520 .button_wrap:hover .button_icon-wrap { 521 border-radius: 50%; 522 } 523 .button_wrap[data-wf--element-button--style-style='secondary']:hover .button_wrap-inner.is-secondary { 524 border-radius: 1.75rem; 525 transition: border-radius 0.4s cubic-bezier(0.25, 1, 0.5, 1); 526 } 527 .button_wrap[data-wf--element-button--style-style='link']:hover .button_wrap-line { 528 width: 100%; 529 } 530</style></div><div class="w-embed"><style> 531 532/*Image Card*/ 533 534.card-image_wrap:has(.u-link-cover:hover) { 535 transform: scale(1.03); 536} 537 538/*Article Card*/ 539.card-article_description { 540 display: -webkit-box; 541 -webkit-line-clamp: 3; 542 -webkit-box-orient: vertical; 543} 544.card-article_wrap:hover { 545 transform: scale(1.03); 546} 547 548.card-article_content.primary { 549 background-color: var(--card-surface--surface-primary-subtle); 550} 551 552.card-article_content.primary .card-article_description{ 553 color: var(--text--primary); 554} 555 556.card-article_content.warm { 557 background-color: var(--card-surface--surface-warm); 558} 559 560.card-article_content.warm .card-article_description{ 561 color: var(--text--primary); 562} 563 564.card-article_content.cool { 565 background-color: var(--card-surface--surface-cool); 566} 567 568.card-article_content.cool .card-article_description{ 569 color: var(--text--primary); 570} 571 572.card-article_wrap:hover:has(.card-article_content.primary) .card-article_content.primary { 573 background-color: color-mix(in srgb, var(--card-surface--surface-primary-subtle) 60%, transparent); 574} 575 576.card-article_wrap:hover:has(.card-article_content.warm) .card-article_content.warm { 577 background-color: color-mix(in srgb, var(--card-surface--surface-warm) 60%, transparent); 578} 579 580.card-article_wrap:hover:has(.card-article_content.cool) .card-article_content.warm { 581 background-color: color-mix(in srgb, var(--card-surface--surface-cool) 60%, transparent); 582} 583 584.heading_wrap.is-card-article.small { 585 font-size: 1.125rem; 586} 587 588.featured-article_wrap .card-article_img { 589 aspect-ratio: 2.39 / 1; 590} 591 592/*Programme Card*/ 593.programme-card_wrap .image_wrap img, 594.programme-card_wrap .programme-card_heading { 595 transition: transform 0.4s ease; 596} 597 598.programme-card_wrap:has(.u-link-cover:hover) .programme-card_image .image_wrap img { 599 transform: scale(1.05); 600} 601 602/*Content Card*/ 603.card-content_small h3 { 604 font-size: var(--_typography-tokens---body-medium--size); 605} 606.card-content_small p { 607 color: var(--text--secondary); 608} 609 610</style></div><div class="w-embed"><style> 611 /* CMS list with Finsweet Search turned on */ 612 .collection-list_searchbar.is-list-active { 613 background-color: rgb(232, 240, 254); 614 } 615 616 .collection-list_form:has(.collection-list_searchbar.is-list-active) 617 .collection-list_search-button, 618 .collection-list_form:has(.collection-list_searchbar.is-list-active) 619 .collection-list_search-clear { 620 background-color: rgb(255,255,255); 621 } 622 623 /* CMS list with Finsweet Pagination & Load more */ 624 .collection-list_arrow.is-list-pagination-disabled { 625 display:none; 626 } 627 628 .collection-list_wrap:has(.collection-list_list[fs-list-load="more"]) .w-pagination-next { 629 border: 1px solid var(--button-flat--flat-border-idle); 630 background-color: var(--button-flat--flat-bg-idle); 631 color: var(--button-flat--flat-content-idle); 632 padding: 0 1.25rem; 633 height: 56px; 634 width: auto; 635 } 636 .collection-list_wrap:has(.collection-list_list[fs-list-load="more"]) .w-pagination-next:hover { 637 background-color: var(--button-flat--flat-bg-hover); 638 border-color: var(--button-flat--flat-border-hover); 639 color: var(--button-flat--flat-content-hover); 640 } 641 642 .collection-list_wrap:has(.collection-list_list[fs-list-load="more"]) .collection-list_arrow-icon, 643 .collection-list_wrap:has(.collection-list_list[fs-list-load="more"]) .collection-list_page-count-wrap, 644 .collection-list_wrap:has(.collection-list_list[fs-list-load="more"]) .collection-list_arrow.is-prev { 645 display: none; 646 } 647 .collection-list_wrap:has(.collection-list_list[fs-list-load="more"]) .collection-list_load-more { 648 display: block; 649 } 650 651 .collection-list_page-count-wrap { 652 display: none; 653 } 654 655 .collection-list_page-count-wrap:has(.w-page-count) { 656 display: flex; 657 } 658 659 .collection-list_page-count::before { 660 content: "Page "; 661 } 662 663</style></div><div class="w-embed"><style> 664 .comparison_cell-content[background='none'] { 665 background-color: transparent; 666 } 667 .comparison_cell-content[background='dark'] { 668 background-color: var(--card-surface--surface-inverse); 669 color: var(--text--inverse); 670 } 671 .comparison_cell-content[background='subtle'] { 672 background-color: var(--card-surface--surface-cool); 673 } 674 675 @media only screen and (min-width: 767px) { 676 .comparison_grid-row[border-bottom='yes'] { 677 border-bottom: 1px solid var(--border--secondary); 678 } 679 } 680 681 .comparison_grid[col-count='2'] .comparison_grid-row { 682 grid-template-columns: 1fr 1fr 1fr; 683 } 684 .comparison_grid[col-count='2'] .comparison_grid-row .comparison_cell:last-child { 685 display: none; 686 } 687</style></div><div class="w-embed"><style> 688 @media screen and (min-width: 1180px){
689 [data-slide][data-slider-variant="featured"] [data-slide-media]{ 690 width: auto; 691 height: auto; 692 overflow:auto; 693 } 694 } 695</style></div><div class="w-embed"><style> 696 .u-grid.center { 697 place-items: center stretch; 698 } 699 .u-grid.top { 700 place-items: start stretch; 701 } 702 .u-grid.bottom { 703 place-items: end stretch; 704 } 705</style></div><div class="w-embed"><style> 706 @media (min-width: 991px) { 707 /* Child item row spans */ 708 [mb-row-span="1"] { grid-row: span 1; } 709 [mb-row-span="2"] { grid-row: span 2; } 710 [mb-row-span="3"] { grid-row: span 3; } 711 [mb-row-span="4"] { grid-row: span 4; } 712 [mb-row-span="5"] { grid-row: span 5; } 713 [mb-row-span="6"] { grid-row: span 6; } 714 } 715 /* Child item column spans */ 716 [mb-column-span="1"] { grid-column: span 1; } 717 [mb-column-span="2"] { grid-column: span 2; } 718 [mb-column-span="3"] { grid-column: span 3; } 719 [mb-column-span="4"] { grid-column: span 4; } 720 [mb-column-span="5"] { grid-column: span 5; } 721 [mb-column-span="6"] { grid-column: span 6; } 722 } 723</style></div><div class="w-embed"><style> 724 725.u-grid:has(.u-grid) { 726 display: block; 727} 728 729@media (min-width: 992px) { 730 731 [mb-dt-column-count="1"], 732 [mb-dt-column-count="1"] .u-grid { 733 display: grid; 734 grid-template-columns: repeat(1, 1fr); 735 } 736 737 [mb-dt-column-count="2"], 738 [mb-dt-column-count="2"] .u-grid { 739 display: grid; 740 grid-template-columns: repeat(2, 1fr); 741 } 742 743 [mb-dt-column-count="3"], 744 [mb-dt-column-count="3"] .u-grid { 745 display: grid; 746 grid-template-columns: repeat(3, 1fr); 747 } 748 749 [mb-dt-column-count="4"], 750 [mb-dt-column-count="4"] .u-grid { 751 display: grid; 752 grid-template-columns: repeat(4, 1fr); 753 } 754 755 [mb-dt-column-count="5"], 756 [mb-dt-column-count="5"] .u-grid { 757 display: grid; 758 grid-template-columns: repeat(5, 1fr); 759 } 760 761 [mb-dt-column-count="6"], 762 [mb-dt-column-count="6"] .u-grid { 763 display: grid; 764 grid-template-columns: repeat(6, 1fr); 765 } 766 767} 768 769@media (max-width: 991px) { 770 771 [mb-tb-column-count="1"], 772 [mb-tb-column-count="1"] .u-grid { 773 display: grid; 774 grid-template-columns: repeat(1, 1fr); 775 } 776 777 [mb-tb-column-count="2"], 778 [mb-tb-column-count="2"] .u-grid { 779 display: grid; 780 grid-template-columns: repeat(2, 1fr); 781 } 782 783 [mb-tb-column-count="3"], 784 [mb-tb-column-count="3"] .u-grid { 785 display: grid; 786 grid-template-columns: repeat(3, 1fr); 787 } 788 789 [mb-tb-column-count="4"], 790 [mb-tb-column-count="4"] .u-grid { 791 display: grid; 792 grid-template-columns: repeat(4, 1fr); 793 } 794 795 [mb-tb-column-count="5"], 796 [mb-tb-column-count="5"] .u-grid { 797 display: grid; 798 grid-template-columns: repeat(5, 1fr); 799 } 800 801 [mb-tb-column-count="6"], 802 [mb-tb-column-count="6"] .u-grid { 803 display: grid; 804 grid-template-columns: repeat(6, 1fr); 805 } 806 807} 808 809@media (max-width: 767px) { 810 811 [mb-mb-column-count="1"], 812 [mb-mb-column-count="1"] .u-grid { 813 display: grid; 814 grid-template-columns: repeat(1, 1fr); 815 } 816 817 [mb-mb-column-count="2"], 818 [mb-mb-column-count="2"] .u-grid { 819 display: grid; 820 grid-template-columns: repeat(2, 1fr); 821 } 822 823 [mb-mb-column-count="3"], 824 [mb-mb-column-count="3"] .u-grid { 825 display: grid; 826 grid-template-columns: repeat(3, 1fr); 827 } 828 829 [mb-mb-column-count="4"], 830 [mb-mb-column-count="4"] .u-grid { 831 display: grid; 832 grid-template-columns: repeat(4, 1fr); 833 } 834 835 [mb-mb-column-count="5"], 836 [mb-mb-column-count="5"] .u-grid { 837 display: grid; 838 grid-template-columns: repeat(5, 1fr); 839 } 840 841 [mb-mb-column-count="6"], 842 [mb-mb-column-count="6"] .u-grid { 843 display: grid; 844 grid-template-columns: repeat(6, 1fr); 845 } 846 847} 848 849</style></div><div class="w-embed"><style> 850 851 .heading_wrap[data-font-style="sans-serif"]{ 852 font-family: var(--_typography-primitives---family--primary-family); 853 } 854 855 .heading_wrap[data-font-style="serif"]{ 856 font-family: var(--_typography-primitives---family--display-serif); 857 font-weight: 400; 858 } 859 860.heading_wrap h1, 861.heading_wrap h2, 862.heading_wrap h3, 863.heading_wrap h4, 864.heading_wrap h5, 865.heading_wrap h6, 866.heading_wrap p { 867 font-size: inherit; 868 font-weight: inherit; 869 letter-spacing: inherit; 870 line-height: inherit; 871} 872 873.u-vertical-gap-large { 874 grid-row-gap: var(--_site-sizes---vertical-gap--large); 875} 876 877.u-text-colour-inverse .u-text-colour-secondary { 878 color: var(--text--inverse); 879} 880 881.eyebrow_text strong, 882.seyebrow_text b { 883 font-weight: inherit; 884} 885
886/* Heading Reveal */ 887.line-mask { 888 display: block; 889 overflow: hidden; 890 padding-bottom: 0.08em; 891 margin-bottom: -0.08em; 892} 893 894.line-inner { 895 display: block; 896 transform: translateY(110%) rotate(1.5deg); 897 transform-origin: 0% 100%; 898 opacity: 0; 899 transition: 900 transform 0.85s cubic-bezier(.2,.8,.2,1), 901 opacity 0.6s ease; 902 transition-delay: calc(var(--i) * 90ms); 903 will-change: transform, opacity; 904} 905 906.js-line-split.in-view .line-inner { 907 transform: translateY(0) rotate(0deg); 908 opacity: 1; 909} 910 911.heading-lockup_heading[data-wf--text-heading-lockup--style-alignment='layout-h'] > :first-child { 912 grid-column: span 2; 913} 914 915@media (prefers-reduced-motion: reduce) { 916 .line-inner { 917 transition: opacity 0.3s ease; 918 transform: none !important; 919 } 920} 921 922</style></div><div class="w-embed"><style> 923 924/* 925.hero-split-image_media .video_wrap { 926 aspect-ratio: 16 / 9; 927} 928*/ 929 930/* Hero Standalone */ 931.hero-split-image_divider.light { 932 background-color: var(--_colour-primitives---neutral--lunar--0); 933} 934.hero-split-image_divider.warm { 935 background-color: var(--_colour-primitives---neutral--lunar--50); 936} 937 938/* Hero Standalone */ 939.section_decoration.light { 940 background-color: var(--_colour-primitives---neutral--lunar--0); 941} 942.section_decoration.warm { 943 background-color: var(--_colour-primitives---neutral--lunar--50); 944} 945 946 947</style></div><div class="w-embed"><style> 948 .product-highlight_media .image_wrap { 949 border-radius: var(--_site-sizes---radius--xlarge); 950 overflow: clip; 951 } 952 .image_wrap.xsmall { 953 border-radius: var(--_site-sizes---radius--xsmall); 954 overflow: clip; 955 } 956 .image_wrap.small { 957 border-radius: var(--_site-sizes---radius--small); 958 } 959 .image_wrap.medium { 960 border-radius: var(--_site-sizes---radius--medium); 961 } 962 .image_wrap.large { 963 border-radius: var(--_site-sizes---radius--large); 964 } 965 .image_wrap.xlarge { 966 border-radius: var(--_site-sizes---radius--xlarge); 967 } 968</style> 969</div><div class="w-embed"><style> 970.jobs-list_form-container.is-sticky { 971 transition: transform 0.4s; /* same as .nav_component-wrapper */ 972} 973.jobs-list_form-container.is-sticky.is-active { 974 transform: translateY(-4.2rem); /* sticky top 5.2rem â nav pill top 1rem */ 975} 976 977@media (max-width: 991px) { 978 .jobs-list_form-container.is-sticky { 979 transition-duration: 0.3s; /* matches the nav at tablet and below */ 980 } 981 .jobs-list_form-container.is-sticky.is-active { 982 transform: translateY(-4.5rem); /* sticky top 6rem â nav pill top 1.5rem */ 983 } 984} 985</style></div><div class="w-embed"><style> 986 .check-list_wrap li::before { 987 content: ''; 988 position: absolute; 989 left: 0; 990 top: 0.3em; 991 width: 1em; 992 height: 1em; 993 background-repeat: no-repeat; 994 background-size: 1em; 995 background-image: url("data:image/svg+xml;utf8,<?xml version='1.0' encoding='utf-8'?><svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'><g clip-path='url(%23a)'><path stroke='%23555553' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m12.915 7.5-3.75 5-2.083-2.083M18.335 10a8.333 8.333 0 1 1-16.667 0 8.333 8.333 0 0 1 16.667 0' vector-effect='non-scaling-stroke'/></g><defs><clipPath id='a'><path fill='%23fff' d='M0 0h20v20H0z'/></clipPath></defs></svg>"); 996 } 997</style></div><div class="w-embed"><style> 998.nav_component.is-active .nav_container{ 999 padding: 0.5rem 1rem; 1000} 1001 1002 .nav_component.is-active .nav_component-inner{ 1003 border-radius: var(--_site-sizes---radius--small); 1004 transition: border 0.3s ease; 1005 } 1006 1007 .nav_component.is-active .nav_component-inner.panel-open{ 1008 border-radius: var(--_site-sizes---radius--small) var(--_site-sizes---radius--small) 0 0; 1009 } 1010 1011 1012</style></div><div class="w-embed"><style> 1013 .programme-banner_wrap.light { 1014 color: var(--text--inverse); 1015 } 1016 .programme-banner_wrap.dark .u-text-colour-light, 1017 .programme-banner_wrap.dark .programme-category_wrap, 1018 .programme-banner_wrap.dark .programme-category_link { 1019 color: var(--text--secondary); 1020 } 1021 .programme-category_list .programme-category_item:not(:last-child)::after { 1022 content: ", "; 1023 } 1024 /* Programme Categories */ 1025 /* 1. Commas after all except last two */ 1026 .programme-category_list 1027 ..programme-category_item:not(:nth-last-child(-n+2))::after { 1028 content: ", "; 1029 } 1030 1031 /* 2. Add " and " before the last item (only when there is more than one) */ 1032 .programme-category_list 1033 .programme-category_item:nth-last-child(2)::after { 1034 content: " and "; 1035 } 1036</style></div><div class="w-embed"><style> 1037 /* All corners */ 1038[data-radius="large"] { 1039 border-radius: var(--_site-sizes---radius--xlarge); 1040} 1041[data-radius="medium"] { 1042 border-radius: var(--_site-sizes---radius--large); 1043} 1044[data-radius="small"] { 1045 border-radius: var(--_site-sizes---radius--medium); 1046} 1047 1048/* Top corners only */ 1049[data-radius="top-large"] { 1050 border-top-left-radius: var(--_site-sizes---radius--xlarge); 1051 border-top-right-radius: var(--_site-sizes---radius--xlarge); 1052} 1053[data-radius="top-medium"] { 1054 border-top-left-radius: var(--_site-sizes---radius--large); 1055 border-top-right-radius: var(--_site-sizes---radius--large); 1056} 1057[data-radius="top-small"] { 1058 border-top-left-radius: var(--_site-sizes---radius--medium); 1059 border-top-right-radius: var(--_site-sizes---radius--medium); 1060} 1061 1062/* Bottom corners only */ 1063[data-radius="bottom-large"] { 1064 border-bottom-left-radius: var(--_site-sizes---radius--xlarge); 1065 border-bottom-right-radius: var(--_site-sizes---radius--xlarge); 1066} 1067[data-radius="bottom-medium"] { 1068 border-bottom-left-radius: var(--_site-sizes---radius--large); 1069 border-bottom-right-radius: var(--_site-sizes---radius--large); 1070} 1071[data-radius="bottom-small"] { 1072 border-bottom-left-radius: var(--_site-sizes---radius--medium); 1073 border-bottom-right-radius: var(--_site-sizes---radius--medium); 1074} 1075</style></div><div class="w-embed"><style> 1076/* 1077.toc_link.is-blog-post::before { 1078 margin-top: 0.3rem; 1079 flex-shrink: 0; 1080 content: ""; 1081 display: inline-block; 1082 width: 12px; 1083 height: 12px; 1084 1085 background-repeat: no-repeat; 1086 background-size: contain; 1087 background-position: center; 1088 1089 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'><path stroke='%234a5ff7' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.969 10H17.03m0 0-6.562 6.563M17.03 10 10.47 3.438' vector-effect='non-scaling-stroke'/></svg>"); 1090} 1091 */ 1092</style></div><div class="w-embed"><style> 1093/* Number Attributes */ 1094[cc-number="-1"]{--number: initial;}[cc-number="0"]{--number: 0;}[cc-number="1"]{--number:1}[cc-number="2"]{--number:2}[cc-number="3"]{--number:3}[cc-number="4"]{--number:4}[cc-number="5"]{--number:5}[cc-number="6"]{--number:6}[cc-number="7"]{--number:7}[cc-number="8"]{--number:8}[cc-number="9"]{--number:9} 1095[cc-number="10"]{--number:10}[cc-number="11"]{--number:11}[cc-number="12"]{--number:12}[cc-number="13"]{--number:13}[cc-number="14"]{--number:14}[cc-number="15"]{--number:15}[cc-number="16"]{--number:16}[cc-number="17"]{--number:17}[cc-number="18"]{--number:18}[cc-number="19"]{--number:19} 1096[cc-number="20"]{--number:20}[cc-number="21"]{--number:21}[cc-number="22"]{--number:22}[cc-number="23"]{--number:23}[cc-number="24"]{--number:24}[cc-number="25"]{--number:25}[cc-number="26"]{--number:26}[cc-number="27"]{--number:27}
1096[cc-number="28"]{--number:28}[cc-number="29"]{--number:29} 1097[cc-number="30"]{--number:30}[cc-number="31"]{--number:31}[cc-number="32"]{--number:32}[cc-number="33"]{--number:33}[cc-number="34"]{--number:34}[cc-number="35"]{--number:35}[cc-number="36"]{--number:36}[cc-number="37"]{--number:37}[cc-number="38"]{--number:38}[cc-number="39"]{--number:39} 1098[cc-number="40"]{--number:40}[cc-number="41"]{--number:41}[cc-number="42"]{--number:42}[cc-number="43"]{--number:43}[cc-number="44"]{--number:44}[cc-number="45"]{--number:45}[cc-number="46"]{--number:46}[cc-number="47"]{--number:47}[cc-number="48"]{--number:48}[cc-number="49"]{--number:49} 1099[cc-number="50"]{--number:50}[cc-number="51"]{--number:51}[cc-number="52"]{--number:52}[cc-number="53"]{--number:53}[cc-number="54"]{--number:54}[cc-number="55"]{--number:55}[cc-number="56"]{--number:56}[cc-number="57"]{--number:57}[cc-number="58"]{--number:58}[cc-number="59"]{--number:59} 1100[cc-number="60"]{--number:60}[cc-number="61"]{--number:61}[cc-number="62"]{--number:62}[cc-number="63"]{--number:63}[cc-number="64"]{--number:64}[cc-number="65"]{--number:65}[cc-number="66"]{--number:66}[cc-number="67"]{--number:67}[cc-number="68"]{--number:68}[cc-number="69"]{--number:69} 1101[cc-number="70"]{--number:70}[cc-number="71"]{--number:71}[cc-number="72"]{--number:72}[cc-number="73"]{--number:73}[cc-number="74"]{--number:74}[cc-number="75"]{--number:75}[cc-number="76"]{--number:76}[cc-number="77"]{--number:77}[cc-number="78"]{--number:78}[cc-number="79"]{--number:79} 1102[cc-number="80"]{--number:80}[cc-number="81"]{--number:81}[cc-number="82"]{--number:82}[cc-number="83"]{--number:83}[cc-number="84"]{--number:84}[cc-number="85"]{--number:85}[cc-number="86"]{--number:86}[cc-number="87"]{--number:87}[cc-number="88"]{--number:88}[cc-number="89"]{--number:89} 1103[cc-number="90"]{--number:90}[cc-number="91"]{--number:91}[cc-number="92"]{--number:92}[cc-number="93"]{--number:93}[cc-number="94"]{--number:94}[cc-number="95"]{--number:95}[cc-number="96"]{--number:96}[cc-number="97"]{--number:97}[cc-number="98"]{--number:98}[cc-number="99"]{--number:99}[cc-number="100"]{--number:100} 1104</style></div><div class="w-embed"><style> 1105 1106.u-text-1-line { 1107 display: -webkit-box; 1108 -webkit-box-orient: vertical; 1109 -webkit-line-clamp: 1; 1110 line-clamp: 1; 1111 overflow: hidden; 1112} 1113 1114.u-text-2-lines { 1115 display: -webkit-box; 1116 -webkit-box-orient: vertical; 1117 -webkit-line-clamp: 2; 1118 line-clamp: 2; 1119 overflow: hidden; 1120} 1121 1122.u-text-3-lines { 1123 display: -webkit-box; 1124 -webkit-box-orient: vertical; 1125 -webkit-line-clamp: 3; 1126 line-clamp: 3; 1127 overflow: hidden; 1128} 1129 1130 1131</style></div><div class="w-embed"><style> 1132 .timeline_slot .timeline-card_wrap.small { 1133 padding-bottom: 1.5rem; 1134 } 1135 .timeline_slot .timeline-card_wrap.medium { 1136 padding-bottom: 2.5rem; 1137 } 1138 .timeline_slot .timeline-card_wrap.large { 1139 padding-bottom: 3.5rem; 1140 } 1141 1142 .timeline_slot .timeline-card_wrap:first-child .timeline_line { 1143 margin-top: 1.5rem; 1144 } 1145 1146 .timeline_slot .timeline-card_wrap:last-child .timeline_line { 1147 height: 1.5rem; 1148 } 1149 1150 .timeline_slot .timeline-card_wrap:last-child { 1151 padding-bottom: 0; 1152 } 1153 1154 .timeline-card_icon.light { 1155 color: var(--_colour-primitives---brand--ultraviolet--700); 1156 } 1157 .timeline-card_icon.dark { 1158 color: var(--_colour-primitives---brand--ultraviolet--500); 1159 } 1160 1161</style></div><div class="w-embed"><style> 1162 .u-rich-text h2:first-child, 1163 .article_rich-text h2:first-child { 1164 margin-top: 0; 1165 } 1166 .u-rich-text [id] { 1167 scroll-margin-top: 7rem; 1168 } 1169 1170 .article_rich-text .w-richtext-figure-type-image { 1171 max-width: 100%; 1172 margin: 4rem 0; 1173 } 1174 1175 .article_rich-text .check-list ul { 1176 padding-left: 0; 1177 } 1178 .article_rich-text .check-list ul li::before { 1179 content: ''; 1180 position: absolute; 1181 left: 0; 1182 top: 0; 1183 width: 1.1em; 1184 height: 1.1em; 1185 background-repeat: no-repeat; 1186 background-image: url("data:image/svg+xml;utf8,<?xml version='1.0' encoding='utf-8'?><svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'><g clip-path='url(%23a)'><path stroke='%238423FF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m12.915 7.5-3.75 5-2.083-2.083M18.335 10a8.333 8.333 0 1 1-16.667 0 8.333 8.333 0 0 1 16.667 0' vector-effect='non-scaling-stroke'/></g><defs><clipPath id='a'><path fill='%23fff' d='M0 0h20v20H0z'/></clipPath></defs></svg>"); 1187 } 1188 .article_rich-text .check-list ul li { 1189 padding-left: 2rem; 1190 } 1191 1192 .article_rich-text .block-lunarlight, 1193 .article_rich-text .block-lunardark, 1194 .article_rich-text .block-starlight { 1195 margin: 0 auto; 1196 width: 85%; 1197 padding: 2rem; 1198 border-radius: var(--_site-sizes---radius--medium); 1199 } 1200 .article_rich-text .block-lunarlight, 1201 .article_rich-text .block-lunardark, 1202 .article_rich-text .block-starlight, 1203 .article_rich-text .border-ultraviolet, 1204 .article_rich-text .border-eclipse 1205 { 1206 line-height: 170%; 1207 } 1208 .article_rich-text .block-lunarlight p, 1209 .article_rich-text .block-lunardark p, 1210 .article_rich-text .block-starlight p, 1211 .article_rich-text .border-ultraviolet p, 1212 .article_rich-text .border-eclipse p 1213 { 1214 margin-bottom: 0.5rem; 1215 } 1216 .article_rich-text .block-lunarlight h5, 1217 .article_rich-text .block-lunardark h5, 1218 .article_rich-text .block-starlight h5, 1219 .article_rich-text .border-ultraviolet h5, 1220 .article_rich-text .border-eclipse h5 1221 { 1222 font-size: 1rem; 1223 font-weight: 570; 1224 margin-top: 2rem; 1225 margin-bottom: 0.75rem; 1226 } 1227 .article_rich-text .block-lunarlight h6, 1228 .article_rich-text .block-lunardark h6, 1229 .article_rich-text .block-starlight h6, 1230 .article_rich-text .border-ultraviolet h6, 1231 .article_rich-text .border-eclipse h6 1232 { 1233 font-size: 0.875rem; 1234 opacity: 85%; 1235 margin-bottom: 0; 1236 font-weight: 400; 1237 } 1238 1239 .article_rich-text .block-lunarlight { 1240 background-color: var(--card-surface--surface-warm); 1241 } 1242 .article_rich-text .block-starlight { 1243 background-color: var(--card-surface--surface-primary-subtle) 1244 } 1245 .article_rich-text .block-lunardark { 1246 background-color: var(--_colour-primitives---neutral--lunar--700); 1247 color: var(--text--accent); 1248 } 1249 .article_rich-text .border-ultraviolet { 1250 border-left: 4px solid var(--border--brand); 1251 margin-left: 3rem; 1252 padding-left: 2rem; 1253 } 1254 .article_rich-text .border-eclipse { 1255 border-left: 4px solid var(--text--accent); 1256 margin-left: 3rem; 1257 padding-left: 2rem; 1258 } 1259 1260 .curriculum_rich-text p:has(sub) { 1261 display: inline-block; 1262 min-width: 5rem; 1263 margin-right: 0.5rem; 1264 vertical-align: top; 1265 } 1266 1267 .curriculum_rich-text p:has(sub) sub { 1268 font-size: 90%; 1269 top: 0; 1270 line-height: 120%; 1271 } 1272 1273 .curriculum_rich-text p:has(strong) { 1274 display: inline-block; 1275 } 1276 1277 @media (min-width: 768px) { 1278 .curriculum_rich-text p:not(:has(strong)):not(:has(sub)) { 1279 margin-left: 5.5rem; 1280 } 1281 .curriculum_rich-text ul { 1282 padding-left: 5.5rem; 1283 } 1284 } 1285 1286 .curriculum_rich-text ul { 1287 margin-top: 0; 1288 margin-bottom: 10px; 1289 } 1290 1291 .curriculum_rich-text ul li::before { 1292 content: ''; 1293 position: absolute; 1294 left: 0; 1295 top: 0.3em; 1296 width: 1em; 1297 height: 1em; 1298 background-repeat: no-repeat; 1299 background-size: 1em; 1300 background-image: url("data:image/svg+xml;utf8,<?xml version='1.0' encoding='utf-8'?><svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'><g clip-path='url(%23a)'><path stroke='%23555553' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m12.915 7.5-3.75 5-2.083-2.083M18.335 10a8.333 8.333 0 1 1-16.667 0 8.333 8.333 0 0 1 16.667 0' vector-effect='non-scaling-stroke'/></g><defs><clipPath id='a'><path fill='%23fff' d='M0 0h20v20H0z'/></clipPath></defs></svg>"); 1301 } 1302 1303 1304</style></div><div class="w-embed"><style> 1305.stat-card_stat strong, 1306.stat-card_stat b { 1307 font-weight: inherit; 1308} 1309
1310.content-block_wrap .stat-card_wrap:nth-child(1) { background-color: var(--_colour-primitives---neutral--new--200); } 1311.content-block_wrap .stat-card_wrap:nth-child(2) { background-color: var(--_colour-primitives---neutral--new--300); } 1312.content-block_wrap .stat-card_wrap:nth-child(n+3) { background-color: var(--_colour-primitives---neutral--new--400); } 1313 1314[data-accent="purple"] { 1315 --_colour-primitives---neutral--new--200: var(--_colour-primitives---brand--purple--100); 1316 --_colour-primitives---neutral--new--300: var(--_colour-primitives---brand--purple--200); 1317 --_colour-primitives---neutral--new--400: var(--_colour-primitives---brand--purple--300); 1318} 1319[data-accent="teal"] { 1320 --_colour-primitives---neutral--new--200: var(--_colour-primitives---brand--teal--100); 1321 --_colour-primitives---neutral--new--300: var(--_colour-primitives---brand--teal--200); 1322 --_colour-primitives---neutral--new--400: var(--_colour-primitives---brand--teal--300); 1323} 1324[data-accent="blue"] { 1325 --_colour-primitives---neutral--new--200: var(--_colour-primitives---brand--blue--100); 1326 --_colour-primitives---neutral--new--300: var(--_colour-primitives---brand--blue--200); 1327 --_colour-primitives---neutral--new--400: var(--_colour-primitives---brand--blue--300); 1328} 1329 1330[data-accent="purple"] .content-block_wrap .stat-card_wrap:nth-child(n+3), 1331[data-accent="teal"] .content-block_wrap .stat-card_wrap:nth-child(n+3), 1332[data-accent="blue"] .content-block_wrap .stat-card_wrap:nth-child(n+3) { 1333 color: var(--_colour-primitives---neutral--new--0); 1334} 1335</style></div><div class="w-embed"><style> 1336 .swiper-slide { 1337 height: auto !important 1338 } 1339</style> 1340 1341<!-- Slide Crop--> 1342<style> 1343@media screen and (max-width: 991px) { 1344 [data-image-crop="top"] { object-position: 50% 0% !important; } 1345 [data-image-crop="15"] { object-position: 50% 15% !important; } 1346 [data-image-crop="25"] { object-position: 50% 25% !important; } 1347 [data-image-crop="30"] { object-position: 50% 30% !important; } 1348 [data-image-crop="35"] { object-position: 50% 35% !important; } 1349 [data-image-crop="bottom"] { object-position: 50% 100% !important; } 1350 [data-image-crop="75"] { object-position: 50% 75% !important; } 1351 [data-image-crop="center"] { object-position: 50% 50% !important; } 1352} 1353@media screen and (min-width: 992px) { 1354 [data-image-crop-desktop="top"] { object-position: 50% 0% !important; } 1355 [data-image-crop-desktop="15"] { object-position: 50% 15% !important; } 1356 [data-image-crop-desktop="25"] { object-position: 50% 25% !important; } 1357 [data-image-crop-desktop="30"] { object-position: 50% 30% !important; } 1358 [data-image-crop-desktop="35"] { object-position: 50% 35% !important; } 1359 [data-image-crop-desktop="bottom"] { object-position: 50% 100% !important; } 1360 [data-image-crop-desktop="75"] { object-position: 50% 75% !important; } 1361 [data-image-crop-desktop="center"] { object-position: 50% 50% !important; } 1362} 1363</style></div><div class="w-embed"><style> 1364 .video_label-layout[bg-colour='dark'] { 1365 background-color: rgba(0,0,0,0.80); 1366 color: var(--text--inverse); 1367 } 1368 .video_label-layout[bg-colour='light'] { 1369 background-color: #fff; 1370 color: var(--text--primary); 1371 } 1372 1373 .custom-ar-1{ 1374 aspect-ratio: 1440/1340; 1375 } 1376</style></div><div class="w-embed w-script">
1376<script> 1377/* 1378 data-animate="rise" 1379 Drop this attribute on any element to give it the rising parallax scroll effect: 1380 as the element's top edge travels from the bottom of the viewport to the 1381 middle of the viewport, it rises faster than the page scrolls, then settles 1382 into a 1:1 scroll once it passes the midpoint. 1383 1384 Optional per-element tuning via data attributes (all in px / 0-1): 1385 data-rise-distance="60" how far below its natural position the element 1386 starts, i.e. how much "extra" it rises. Default 60. 1387 data-rise-end="0.5" where in the viewport (0 = top, 1 = bottom) the 1388 effect finishes. Default 0.5 (middle of screen). 1389 data-rise-min-width="992" disables the effect (renders at natural position) 1390 below this viewport width. Omit to always run. 1391 Also applies to data-animate="parallax" below. 1392 1393 data-animate="parallax" 1394 Drop this on an image that's taller than its clipping parent - 1395 e.g. height: 120%; top: -10%; on the image, overflow: clip on the parent 1396*/ 1397function initMovementBlocks() { 1398 const SELECTOR = '[data-animate="rise"], [data-animate="parallax"]'; 1399 const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1400 1401 const els = document.querySelectorAll(SELECTOR); 1402 if (!els.length || reduceMotion) return; 1403 1404 function applyTransform(el) { 1405 const minWidth = parseFloat(el.dataset.riseMinWidth); 1406 if (minWidth && window.innerWidth < minWidth) { 1407 el.style.transform = ''; 1408 return; 1409 } 1410 const vh = window.innerHeight; 1411 1412 if (el.dataset.animate === 'parallax') { 1413 const container = el.parentElement; 1414 const containerRect = container.getBoundingClientRect(); 1415 const halfOverscan = Math.max(0, el.offsetHeight - container.offsetHeight) / 2; 1416 const progress = Math.min(1, Math.max(0, (vh - containerRect.top) / (vh + containerRect.height))); 1417 const y = halfOverscan * (1 - 2 * progress); 1418 el.style.transform = y ? `translateY(${y}px)` : ''; 1419 return; 1420 } 1421 1422 const distance = parseFloat(el.dataset.riseDistance) || 60; 1423 const endAt = parseFloat(el.dataset.riseEnd) || 0.5; // 0.5 = viewport middle 1424 const rect = el.getBoundingClientRect(); 1425 const progress = Math.min(1, Math.max(0, (vh - rect.top) / (vh * (1 - endAt)))); 1426 const y = distance * (1 - progress); 1427 el.style.transform = y ? `translateY(${y}px)` : ''; 1428 }
1429 els.forEach(applyTransform); // set correct starting position before anything is visible 1430 1431 const active = new Set(); 1432 const io = new IntersectionObserver((entries) => { 1433 entries.forEach((entry) => { 1434 if (entry.isIntersecting) active.add(entry.target); 1435 else active.delete(entry.target); 1436 }); 1437 update(); 1438 }, { rootMargin: '0px 0px 100% 0px' }); // pick elements up a viewport-height early so update() is already running by the time they're visible - avoids a catch-up snap on fast/inertial scrolls 1439 els.forEach((el) => io.observe(el)); 1440 1441 let ticking = false; 1442 function update() { 1443 ticking = false; 1444 active.forEach(applyTransform); 1445 } 1446 function onNativeScroll() { 1447 if (!ticking) { 1448 ticking = true; 1449 requestAnimationFrame(update); 1450 } 1451 } 1452 1453 window.addEventListener('scroll', onNativeScroll, { passive: true }); 1454 window.addEventListener('resize', onNativeScroll); 1455 1456 // Lenis compatibility 1457 function attachLenis() { 1458 if (window.lenis && typeof window.lenis.on === 'function') { 1459 window.lenis.on('scroll', update); 1460 return true; 1461 } 1462 return false; 1463 } 1464 if (!attachLenis()) { 1465 let attempts = 0; 1466 const poll = setInterval(() => { 1467 attempts += 1; 1468 if (attachLenis() || attempts > 20) clearInterval(poll); 1469 }, 250); 1470 } 1471} 1472 1473// wait for the DOM if this runs before .movement-block exists 1474if (document.readyState === 'loading') { 1475 document.addEventListener('DOMContentLoaded', initMovementBlocks); 1476} else { 1477 initMovementBlocks(); 1478} 1479</script>
1479</div></div><div class="nav-js"><div class="w-embed w-script">
1479<script> 1480 // Dynamically control dropdown hover behavior based on screen size 1481 document.addEventListener('DOMContentLoaded', () => { 1482 const dropdowns = document.querySelectorAll('.nav-dropdown_wrap'); 1483 1484 if (window.innerWidth <= 991) { 1485 dropdowns.forEach((dropdown) => { 1486 dropdown.setAttribute('data-hover', 'false'); 1487 }); 1488 } 1489 }); 1490</script>
1490</div></div><nav aria-label="User type navigation" class="nav-type_wrap w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"><div class="nav-type_container w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"><div data-wf--dependency-nav-user-type--variant="employers" class="nav-type_links"><a href="/" aria-current="page" class="nav-type_link is-employers w-inline-block w--current"><div>Employers</div></a><a href="/individuals/learn-new-skills" class="nav-type_link w-inline-block"><div>Learners</div></a></div><a href="/impact-hub-2026" class="nav-type_text-link is-mobile">Our 2026 Impact Report â</a><a href="/impact-hub-2026" class="nav-type_text-link">Our 2026 Impact Report is live: data, not dreams â</a></div></nav><div data-nav-type="toggle" data-nav-add-class="" class="nav_component-wrapper w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"><div data-nav-add-class="" class="nav_component w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"><div data-nav="navbar" data-animation="default" class="nav_component-inner w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0 w-nav" data-easing2="ease" data-easing="ease" aria-label="Primary navigation" data-collapse="medium" role="banner" data-duration="400"><div class="nav_container-outer"><div class="nav_container w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"><div class="nav_logo-container"><a data-panel-add-class="" aria-label="Multiverse home" data-nav-add-class="" href="/" aria-current="page" class="nav_logo-link w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0 w-nav-brand w--current"><div id="" STYLE="" class="logo_wrap"><div data-nav-add-class="" class="logo_svg w-embed"><svg viewBox="0 0 197 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 1491<path d="M164.788 18.0562L162.048 17.4779C160.372 17.0924 159.534 16.2892 159.534 15.004C159.534 13.4618 161.049 12.4659 162.79 12.4659C165.239 12.4659 166.496 14.0402 166.754 15.6787H171.46C170.654 10.4739 166.883 8.48193 162.79 8.48193C157.826 8.48193 154.732 11.8554 154.732 15.4859C154.732 18.9237 157.214 20.6908 160.533 21.494L163.144 22.1044C165.755 22.7149 166.915 23.3574 166.915 24.9639C166.915 26.4739 165.755 28.0161 163.531 28.0161C160.824 28.0161 159.663 26.4418 159.47 24.4819H154.635C154.732 28.7871 158.084 32 163.338 32C168.72 32 171.621 28.4016 171.621 24.7068C171.654 21.5261 169.139 19.0201 164.788 18.0562ZM153.281 8.99598H140.839V31.4859H145.384V13.012H153.281V8.99598ZM111.83 8.99598L106.093 25.7028L100.291 8.99598H95.3596L103.74 31.4859H108.414L116.794 8.99598H111.83ZM93.0711 8.99598H88.5263V31.4859H93.0711V8.99598ZM80.017 2.63454H75.4722V8.99598H69.6059V13.012H75.4722V31.4859H80.017V13.012H85.8188V8.99598H80.017V2.63454ZM67.4463 2.63454H62.9016V31.4859H67.4463V2.63454ZM53.7154 21.6546C53.7154 25.3494 51.4913 27.5984 48.4292 27.5984C45.3027 27.5984 43.1754 25.3494 43.1754 21.6546V8.99598H38.6306V21.5582C38.6306 27.8876 42.2084 32 48.3325 32C54.36 32 58.2601 27.7912 58.2601 21.5582V8.99598H53.7154V21.6546ZM34.6016 8.99598H29.4444L20.3226 23.9357V8.99598H15.101L6.01144 23.8394V8.99598H1.46667V31.4859H6.04367L15.7778 15.4859V31.4859H20.3548L30.0568 15.6466V31.4859H34.6016V8.99598ZM90.7826 5.87952C92.4264 5.87952 93.748 4.56225 93.748 2.92369C93.748 1.31727 92.4264 0 90.7826 0C89.1387 0 87.8172 1.31727 87.8172 2.92369C87.8172 4.56225 89.1387 5.87952 90.7826 5.87952ZM116.665 20.2731C116.665 27.1486 121.597 32 127.818 32C133.458 32 137.068 29.0763 138.1 24.4177H133.265C132.91 26.1205 131.395 27.759 128.14 27.759C124.627 27.759 121.822 25.7349 121.468 21.9759H138.229C138.293 21.4618 138.325 20.7871 138.325 20.2731C138.325 13.5582 134.232 8.48193 127.721 8.48193C121.5 8.48193 116.665 13.5582 116.665 20.2731ZM121.371 18.4739C121.984 14.9719 124.272 12.7229 127.721 12.7229C131.138 12.7229 133.297 14.9076 133.781 18.4739H121.371ZM173.201 20.2731C173.201 27.1486 178.132 32 184.353 32C189.994 32 193.604 29.0763 194.635 24.4177H189.8C189.446 26.1205 187.931 27.759 184.676 27.759C181.162 27.759 178.358 25.7349 178.003 21.9759H194.764C194.829 21.4618 194.861 20.7871 194.861 20.2731C194.861 13.5582 190.767 8.48193 184.256 8.48193C178.036 8.48193 173.201 13.5582 173.201 20.2731ZM177.907 18.4739C178.519 14.9719 180.808 12.7229 184.256 12.7229C187.673 12.7229 189.833 14.9076 190.316 18.4739H177.907Z" fill="currentColor"/> 1492</svg> 1493</div><div data-nav-add-class="" class="logo_svg is-icon w-embed">
1493<svg width="100%" height="100%" viewBox="0 0 34 23" fill="none" xmlns="http://www.w3.org/2000/svg"> 1494<path d="M33.1349 0L27.9777 0L18.8559 14.9398V0L13.6343 0L4.54476 14.8434V0L0 0V22.49H4.577L14.3112 6.48996V22.49H18.8882L28.5901 6.6506V22.49H33.1349V0Z" fill="currentColor"/> 1495</svg></div></div></a></div><div data-panel-add-class="" data-nav-add-class="" class="nav_menu-wrap w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"><nav role="navigation" class="nav_menu w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0 w-nav-menu"><ul role="list" class="nav_links_wrap"><li class="nav_links_item"><a href="/impact-hub-2026" class="nav_link w-inline-block"><div>Our Impact</div><div class="nav_link-icon is-link"><div data-wf--element-accordion-button--variant="transparent" class="accordion_toggle-button w-variant-1f6cc5ee-defb-eaa1-aa4c-6f483bf16a1e"><div mb-accordion-element="icon" data-accordion-element="icon" class="accordion_toggle-icon w-variant-1f6cc5ee-defb-eaa1-aa4c-6f483bf16a1e"><div data-wf--icon-caret-down--variant="cover" class="icon_wrap w-variant-702d3b5e-d0a2-ca90-cc5d-b6a059750d6f"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon_svg w-variant-702d3b5e-d0a2-ca90-cc5d-b6a059750d6f"><path d="M13.3337 6L8.0001 11.3336L2.6665 6" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div></div></div><div class="nav_link-line"></div></a></li><li data-panel-add-class="" data-mega-mobile="resources" class="nav_links_item"><button data-mega-trigger="resources" class="nav_link"><div>Resources</div><div data-panel-add-class="" class="nav_link-line"></div><div data-panel-add-class="" class="nav_link-icon"><div data-wf--element-accordion-button--variant="transparent" class="accordion_toggle-button w-variant-1f6cc5ee-defb-eaa1-aa4c-6f483bf16a1e"><div mb-accordion-element="icon" data-accordion-element="icon" class="accordion_toggle-icon w-variant-1f6cc5ee-defb-eaa1-aa4c-6f483bf16a1e"><div data-wf--icon-caret-down--variant="cover" class="icon_wrap w-variant-702d3b5e-d0a2-ca90-cc5d-b6a059750d6f"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon_svg w-variant-702d3b5e-d0a2-ca90-cc5d-b6a059750d6f"><path d="M13.3337 6L8.0001 11.3336L2.6665 6" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div></div></div></button></li><li data-panel-add-class="" data-mega-mobile="about" class="nav_links_item"><button data-mega-trigger="about" class="nav_link"><div>About</div><div data-panel-add-class="" class="nav_link-line"></div><div data-panel-add-class="" class="nav_link-icon"><div data-wf--element-accordion-button--variant="transparent" class="accordion_toggle-button w-variant-1f6cc5ee-defb-eaa1-aa4c-6f483bf16a1e"><div mb-accordion-element="icon" data-accordion-element="icon" class="accordion_toggle-icon w-variant-1f6cc5ee-defb-eaa1-aa4c-6f483bf16a1e"><div data-wf--icon-caret-down--variant="cover" class="icon_wrap w-variant-702d3b5e-d0a2-ca90-cc5d-b6a059750d6f"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon_svg w-variant-702d3b5e-d0a2-ca90-cc5d-b6a059750d6f"><path d="M13.3337 6L8.0001 11.3336L2.6665 6" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div></div></div></button></li></ul></nav><div class="nav_link-line-wrap"><div aria-hidden="true" class="nav_link-line"></div></div></div><div class="nav_action-container"><div class="u-button-wrapper is-nav"><a data-wf--element-button--style-style="primary" href="/employer-contact-form" class="button_wrap w-inline-block"><div class="button_wrap-inner"><div class="u-weight-medium">Contact Sales</div></div><div class="button_icon-wrap"><div class="button_icon"><div data-wf--icon-arrow-right--variant="cover" class="icon_wrap w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332"><div class="icon_svg w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1496<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1497</svg></div></div></div></div></a></div><div class="nav_menu-button w-nav-button"><div class="button_wrap is-menu"><div class="nav_menu-button-text is-opened"><div class="u-text-style-small u-weight-medium">Close</div></div><div class="nav_menu-icon-wrap"><div class="nav_menu-icon-line"></div><div class="nav_menu-icon-css w-embed"><style> 1498.nav_menu-icon-wrap { 1499 --thickness: 0.2rem; 1500 --gap: 0.5rem; 1501 --rotate: 35; 1502 --width: 100%; 1503} 1504.w--open .nav_menu-icon-line { 1505 transform: scaleX(0); 1506} 1507.w--open .nav_menu-icon-line:first-child { 1508 transform: translateY(calc(var(--thickness) + var(--gap))) rotate(calc(var(--rotate) * -1.3deg)); 1509} 1510.w--open .nav_menu-icon-line:last-child { 1511 transform: translateY(calc(var(--thickness) * -1 + var(--gap) * -1)) rotate(calc(var(--rotate) * 1.3deg)); 1512} 1513</style></div><div class="nav_menu-icon-line"></div><div class="nav_menu-icon-line"></div></div></div></div></div></div></div><div class="nav_dropdown_mega_outer"><div data-nav-add-class="" data-panel-add-class="" data-mega-panel="resources" class="nav_dropdown_mega_wrap"><div class="nav_dropdown_mega_content"><div class="mega_wrap"><div class="u-container"><div class="mega_layout"><div class="mega_menu"><div class="u-text-style-h4">Our <span class="u-highlighted">Resources</span></div>
1513<div class="mega_menu-grid"><a href="/employers/case-studies" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">Case studies</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1514<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1515</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Real impact stories from Multiverse customers.</p></a><a href="/resources/ebooks-guides" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">eBooks and Guides</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1516<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1517</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Practical advice on data, AI and skills strategy.</p></a><a href="/events-webinars" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">Events and webinars</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1518<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1519</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Sign up for expert insights from industry leaders.</p></a><a href="/blog" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">News & Blog</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1520<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1521</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Discover advice, explainers and tips. Get the latest news from our team.</p></a></div></div><div class="mega_feature-container"><div class="mega_feature"><div data-wf--element-card-full--variant="base" class="card-full_wrap"><div class="card-full_img"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6a68b58b41668287c02f2623_Multiverse%20Impact%20Hub%202026.webp.avif" loading="lazy" fetchpriority="auto" alt="Blurred image of two people walking past each other in an urban setting with horizontal metal shutters in the background." class="image_src"/></div></div><div class="card-full_content"><div class="card-full_inner-content"><div class="card-full_eyebrow">Impact Hub 2026</div><div class="heading_wrap is-text-version">See how skills are powering productivity: 40,000+ learners and £2bn+ in ROI.</div></div></div><a aria-label="See how skills are powering productivity: 40,000+ learners and £2bn+ in ROI." target="" href="https://www.multiverse.io/impact-hub-2026" class="u-link-cover w-inline-block"></a></div></div></div></div></div></div></div></div><div data-nav-add-class="" data-panel-add-class="" data-mega-panel="about" class="nav_dropdown_mega_wrap"><div class="nav_dropdown_mega_content"><div class="mega_wrap"><div class="u-container"><div class="mega_layout"><div class="mega_menu"><div class="u-text-style-h4"><span class="u-highlighted">About</span> us</div>
1521<div class="mega_menu-grid"><a href="/about/our-mission" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">About</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1522<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1523</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Equip the workforce to win in the AI era</p></a><a href="/careers/were-hiring" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">Careers</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1524<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1525</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Together, we'll build a world where tech skills unlock peopleâs potential and output</p></a><a href="/careers/mobility-and-inclusion" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">Career Mobility and Inclusion</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1526<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1527</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">We have a culture built on fair systems, clear expectations, and inclusive collaboration</p></a><a href="/blog" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">News & Blog</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1528<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1529</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">The latest news and blog from Multiverse</p></a><a href="/about/learning-science" class="mega_nav-link w-inline-block"><div class="mega_nav-link-header"><div class="u-text-style-small u-weight-medium">Learning Science Research Hub</div><div class="mega_nav-link-arrow"><div data-wf--icon-arrow-right--variant="0-75rem" class="icon_wrap w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11"><div class="icon_svg w-variant-9628c932-09aa-a4fa-0e47-e531e05cda11 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1530<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1531</svg></div></div></div></div><p class="u-text-style-xsmall u-text-colour-secondary">Exciting research happening across our Learning Science Team</p></a></div></div><div class="mega_feature-container"><div class="mega_feature"><div data-wf--element-card-full--variant="base" class="card-full_wrap"><div class="card-full_img"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/69cb865e1b56e638f44e4a46_731e9ddbc1898d51a75dc40a7a924eff7a6b6e02-7369x4913.avif" loading="lazy" fetchpriority="auto" alt="Man in black outfit sitting cross-legged in a cushioned chair in a bright room with large windows, gesturing with hands while being filmed by a camera operator on the left and recorded with microphones and filming equipment in front." class="image_src"/></div></div><div class="card-full_content"><div class="card-full_inner-content"><div class="heading_wrap is-text-version">Meet Jay Richman, Chief Product Officer at Multiverse</div><p class="card-full_description">Former Spotify and Amazon leader joins Multiverse as CPO. Read his take on the future of AI, engineering "dogfooding," and the London tech scene.</p></div></div><a aria-label="Meet Jay Richman, Chief Product Officer at Multiverse" target="" href="https://www.multiverse.io/blog/why-jay-richman-is-betting-on-london-and-human-centric-ai-meet-multiverse-s-new-chief-product-officer" class="u-link-cover w-inline-block"></a></div></div></div></div></div></div></div></div></div></div>
1531<div data-nav-add-class="" data-panel-add-class="" class="nav_component-bg w-variant-5eff6c55-a9fb-3bbc-cb10-67a61a91c2d0"></div></div></div><div class="u-button-wrapper is-mobile-nav"><a data-wf--element-button--style-style="primary" href="/employer-contact-form" class="button_wrap w-inline-block"><div class="button_wrap-inner"><div class="u-weight-medium">Contact Sales</div></div><div class="button_icon-wrap"><div class="button_icon"><div data-wf--icon-arrow-right--variant="cover" class="icon_wrap w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332"><div class="icon_svg w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 1532<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 1533</svg></div></div></div></div></a></div><div data-panel-add-class="" class="nav-dropdown_scrim"></div><div><div class="u-embed w-embed w-script">
1533<script> 1534(function () { 1535 const MOBILE_BREAKPOINT = 991; 1536 const mobileMedia = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT}px)`); 1537 1538 // Nav open/close state 1539 const menuButton = document.querySelector('.nav_menu-button'); 1540 function isNavOpen() { 1541 return !!menuButton && menuButton.classList.contains('w--open'); 1542 } 1543 if (menuButton) { 1544 const observer = new MutationObserver(() => { 1545 document.dispatchEvent(new CustomEvent('navmenu:change', { detail: { open: isNavOpen() } })); 1546 }); 1547 observer.observe(menuButton, { attributes: true, attributeFilter: ['class'] }); 1548 } 1549 const scrollCallbacks = new Set(); 1550 let ticking = false; 1551 window.addEventListener('scroll', () => { 1552 if (ticking) return; 1553 ticking = true; 1554 requestAnimationFrame(() => { 1555 ticking = false; 1556 scrollCallbacks.forEach(fn => fn(window.scrollY)); 1557 }); 1558 }, { passive: true }); 1559 1560 window.SITE = { 1561 MOBILE_BREAKPOINT, 1562 mobileMedia, 1563 navMenuState: { isOpen: isNavOpen }, 1564 onScroll(fn) { scrollCallbacks.add(fn); return () => scrollCallbacks.delete(fn); }, 1565 }; 1566})(); 1567</script>
1567</div><div class="u-embed w-embed w-script">
1567<script> 1568(function () { 1569 const wrapper = document.querySelector('[data-nav="wrapper"]'); 1570 if (!wrapper) return; 1571 1572 const activeClass = wrapper.dataset.navActiveClass; 1573 const allTargets = Array.from(document.querySelectorAll('[data-nav-add-class]')); 1574 if (!activeClass || !allTargets.length) return; 1575 1576 const toggleTargets = allTargets.filter(el => el.dataset.navType === 'toggle'); 1577 const scrolledTargets = allTargets.filter(el => el.dataset.navType !== 'toggle'); 1578 1579 const TOP_ZONE = 10; 1580 const COMMIT_DELTA = 8; 1581 const HIDE_DURATION = 300; 1582 1583 let anchorY = 0; 1584 let isHidden = false; 1585 let isScrolled = false; 1586 let scrolledTimer = null; 1587 let lastNavHeight = wrapper.offsetHeight; 1588 1589 function setHidden(state) { 1590 if (isHidden === state) return; 1591 isHidden = state; 1592 toggleTargets.forEach(el => el.classList.toggle(activeClass, state)); 1593 } 1594 1595 function setScrolled(state) { 1596 if (scrolledTimer) { clearTimeout(scrolledTimer); scrolledTimer = null; } 1597 if (isScrolled === state) return; 1598 isScrolled = state; 1599 scrolledTargets.forEach(el => el.classList.toggle(activeClass, state)); 1600 } 1601 1602 function menuIsOpen() { 1603 const state = window.SITE.navMenuState; 1604 return !!(state && typeof state.isOpen === 'function' && state.isOpen()); 1605 } 1606 1607 function update(rawScrollY) { 1608 const y = Math.max(0, rawScrollY); 1609 1610 const navHeight = wrapper.offsetHeight; 1611 if (navHeight !== lastNavHeight) { 1612 anchorY += navHeight - lastNavHeight; 1613 lastNavHeight = navHeight; 1614 } 1615 1616 if (y < TOP_ZONE) { 1617 anchorY = y; 1618 setHidden(false); 1619 setScrolled(false); 1620 return; 1621 } 1622 1623 if (menuIsOpen()) { 1624 anchorY = y; 1625 setHidden(false); 1626 return; 1627 } 1628 1629 const delta = y - anchorY; 1630 1631 if (delta > COMMIT_DELTA) { 1632 anchorY = y; 1633 1634 setHidden(true); 1635 1636 if (!isScrolled && !scrolledTimer) { 1637 scrolledTimer = setTimeout(() => { 1638 scrolledTimer = null; 1639 if (isHidden) setScrolled(true); 1640 }, HIDE_DURATION); 1641 } 1642 } else if (delta < -COMMIT_DELTA) { 1643 anchorY = y; 1644 1645 if (scrolledTimer) setScrolled(true); 1646 1647 setHidden(false); 1648 } 1649 } 1650 1651 window.SITE.onScroll(update); 1652 1653 window.addEventListener('load', () => { 1654 const y = Math.max(0, window.scrollY); 1655 anchorY = y; 1656 if (y >= TOP_ZONE) setScrolled(true); 1657 }); 1658})(); 1659</script>
1659</div><div class="u-embed w-embed w-script">
1659<script> 1660(function () { 1661 const CLOSE_DELAY = 80; 1662 const NAV_INNER = document.querySelector('.nav_component-inner'); 1663 1664 function initMegaMenu() { 1665 const navWrap = document.querySelector('[data-panel-open-class]'); 1666 const openClass = navWrap?.getAttribute('data-panel-open-class') || 'is-open'; 1667 const mobileMedia = window.SITE.mobileMedia; 1668 1669 const triggers = [...document.querySelectorAll('[data-mega-trigger]')]; 1670 if (!triggers.length) return; 1671 1672 const instances = []; 1673 const scopedEls = new Set(); 1674 1675 triggers.forEach((trigger) => { 1676 const id = trigger.getAttribute('data-mega-trigger'); 1677 const panel = document.querySelector(`[data-mega-panel="${id}"]`); 1678 if (!panel) return; 1679 1680 const homeAnchor = document.createComment(`mega-panel-home-${id}`); 1681 panel.parentNode.insertBefore(homeAnchor, panel); 1682 const mobileHost = document.querySelector(`[data-mega-mobile="${id}"]`); 1683 1684 const classTargets = getClassTargets([trigger, panel, mobileHost].filter(Boolean)); 1685 classTargets.forEach((el) => scopedEls.add(el)); 1686 1687 trigger.setAttribute('aria-expanded', 'false'); 1688 trigger.setAttribute('aria-haspopup', 'true'); 1689 trigger.setAttribute('aria-controls', `mega-panel-${id}`); 1690 panel.id = `mega-panel-${id}`; 1691 1692 instances.push({ 1693 id, trigger, panel, homeAnchor, mobileHost, classTargets, 1694 closeTimer: null, isOpen: false, isHoveringTrigger: false, isHoveringPanel: false, 1695 }); 1696 }); 1697 1698 const globalTargets = [...document.querySelectorAll('[data-panel-add-class]')] 1699 .filter((el) => !scopedEls.has(el)); 1700 1701 function updateGlobalTargets() { 1702 const anyOpen = instances.some((inst) => inst.isOpen); 1703 globalTargets.forEach((el) => el.classList.toggle(openClass, anyOpen)); 1704 } 1705 1706 function openPanel(instance) { 1707 cancelClose(instance); 1708 instances.forEach((other) => { 1709 if (other !== instance && other.isOpen) closePanel(other); 1710 }); 1711 if (!instance.isOpen) { 1712 instance.isOpen = true; 1713 instance.trigger.setAttribute('aria-expanded', 'true'); 1714 instance.classTargets.forEach((el) => el.classList.add(openClass)); 1715 NAV_INNER.classList.add('panel-open'); 1716 } 1717 updateGlobalTargets(); 1718 } 1719 1720 function closePanel(instance) { 1721 cancelClose(instance); 1722 if (instance.isOpen) { 1723 instance.isOpen = false; 1724 instance.isHoveringTrigger = false; 1725 instance.isHoveringPanel = false; 1726 instance.trigger.setAttribute('aria-expanded', 'false'); 1727 instance.classTargets.forEach((el) => el.classList.remove(openClass)); 1728 NAV_INNER.classList.remove('panel-open'); 1729 } 1730 updateGlobalTargets(); 1731 } 1732 1733 function getPanelHoverRect(inst) { 1734 const rect = inst.panel.getBoundingClientRect(); 1735 const layoutEl = inst.panel.querySelector('.mega_layout') || inst.panel; 1736 const layoutRect = layoutEl.getBoundingClientRect(); 1737 const cs = getComputedStyle(layoutEl); 1738 const padBottom = parseFloat(cs.paddingBottom) || 0; 1739 const padTop = parseFloat(cs.paddingTop) || 0; 1740 return { 1741 top: Math.max(rect.top, layoutRect.top + padTop), 1742 left: rect.left, 1743 right: rect.right, 1744 bottom: Math.min(rect.bottom, layoutRect.bottom - padBottom), 1745 }; 1746 } 1747 1748 function isPointInRect(x, y, rect) { 1749 return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom; 1750 } 1751 1752 let currentMode = null; 1753 function applyLayout() { 1754 const mobile = mobileMedia.matches; 1755 const mode = mobile ? 'mobile' : 'desktop'; 1756 if (mode === currentMode) return; 1757 currentMode = mode; 1758 1759 instances.forEach((inst) => closePanel(inst)); 1760 instances.forEach((inst) => { 1761 if (mobile && inst.mobileHost) { 1762 inst.mobileHost.appendChild(inst.panel); 1763 } else { 1764 inst.homeAnchor.parentNode.insertBefore(inst.panel, inst.homeAnchor); 1765 } 1766 }); 1767 } 1768 1769 mobileMedia.addEventListener('change', applyLayout); 1770 applyLayout(); 1771 1772 let navWasOpen = window.SITE.navMenuState.isOpen(); 1773 document.addEventListener('navmenu:change', (e) => { 1774 const navIsOpen = e.detail.open; 1775 if (navWasOpen && !navIsOpen) {
1776 instances.forEach((inst) => closePanel(inst)); 1777 } 1778 navWasOpen = navIsOpen; 1779 }); 1780 1781 instances.forEach((inst) => { 1782 inst.panel.addEventListener('focusin', () => { 1783 inst.isHoveringPanel = true; 1784 cancelClose(inst); 1785 }); 1786 1787 inst.panel.addEventListener('focusout', () => { 1788 setTimeout(() => { 1789 if (!inst.panel.contains(document.activeElement)) { 1790 scheduleClose(inst, closePanel); 1791 } 1792 }, 0); 1793 }); 1794 1795 inst.trigger.addEventListener('mouseenter', () => { 1796 if (mobileMedia.matches) return; 1797 inst.isHoveringTrigger = true; 1798 openPanel(inst); 1799 }); 1800 1801 inst.trigger.addEventListener('keydown', (e) => { 1802 if (e.key === 'Enter' || e.key === ' ') { 1803 e.preventDefault(); 1804 inst.isOpen ? closePanel(inst) : openPanel(inst); 1805 } 1806 if (e.key === 'Escape' && inst.isOpen) { 1807 closePanel(inst); 1808 inst.trigger.focus(); 1809 } 1810 }); 1811 1812 inst.trigger.addEventListener('click', (e) => { 1813 e.preventDefault(); 1814 inst.isOpen ? closePanel(inst) : openPanel(inst); 1815 }); 1816 }); 1817 1818 document.addEventListener('mousemove', (e) => { 1819 if (mobileMedia.matches) return; 1820 instances.forEach((inst) => { 1821 if (!inst.isOpen) return; 1822 const triggerRect = inst.trigger.getBoundingClientRect(); 1823 const hoverRect = getPanelHoverRect(inst); 1824 const overTrigger = isPointInRect(e.clientX, e.clientY, triggerRect); 1825 const overPanel = isPointInRect(e.clientX, e.clientY, hoverRect); 1826 inst.isHoveringTrigger = overTrigger; 1827 inst.isHoveringPanel = overPanel; 1828 if (overTrigger || overPanel) { 1829 cancelClose(inst); 1830 } else { 1831 scheduleClose(inst, closePanel); 1832 } 1833 }); 1834 }); 1835 1836 let lastScrollY = window.scrollY; 1837 function handleScroll(currentScrollY) { 1838 if (!mobileMedia.matches && currentScrollY > lastScrollY) { 1839 instances.forEach((inst) => { if (inst.isOpen) closePanel(inst); }); 1840 } 1841 lastScrollY = currentScrollY; 1842 } 1843 window.SITE.onScroll(handleScroll); 1844 } 1845 1846 function getClassTargets(scopeEls) { 1847 const targets = new Set(); 1848 scopeEls.forEach((el) => { 1849 if (el.hasAttribute('data-panel-add-class')) targets.add(el); 1850 el.querySelectorAll('[data-panel-add-class]').forEach((child) => targets.add(child)); 1851 }); 1852 return [...targets]; 1853 } 1854 1855 function scheduleClose(instance, closeFn) { 1856 cancelClose(instance); 1857 instance.closeTimer = setTimeout(() => { 1858 if (!instance.isHoveringTrigger && !instance.isHoveringPanel) closeFn(instance); 1859 }, CLOSE_DELAY); 1860 } 1861 1862 function cancelClose(instance) { 1863 if (instance.closeTimer) { 1864 clearTimeout(instance.closeTimer); 1865 instance.closeTimer = null; 1866 } 1867 } 1868 1869 if (document.readyState === 'loading') { 1870 document.addEventListener('DOMContentLoaded', initMegaMenu); 1871 } else { 1872 initMegaMenu(); 1873 } 1874})(); 1875</script>
1875</div><div class="u-embed w-embed w-script">
1875<script> 1876(function () { 1877 const mobileMedia = window.SITE.mobileMedia; 1878 let savedScrollY = 0; 1879 let locked = false; 1880 1881 function lock() { 1882 if (locked) return; 1883 savedScrollY = window.scrollY; 1884 document.body.style.position = 'fixed'; 1885 document.body.style.top = `-${savedScrollY}px`; 1886 document.body.style.left = '0'; 1887 document.body.style.right = '0'; 1888 locked = true; 1889 } 1890 1891 function unlock() { 1892 if (!locked) return; 1893 document.body.style.position = ''; 1894 document.body.style.top = ''; 1895 document.body.style.left = ''; 1896 document.body.style.right = ''; 1897 window.scrollTo(0, savedScrollY); 1898 locked = false; 1899 } 1900 1901 function syncScrollLock() { 1902 const shouldLock = mobileMedia.matches && window.SITE.navMenuState.isOpen(); 1903 shouldLock ? lock() : unlock(); 1904 } 1905 1906 document.addEventListener('navmenu:change', syncScrollLock); 1907 mobileMedia.addEventListener('change', syncScrollLock); 1908 syncScrollLock(); 1909})(); 1910</script>
1910</div><div class="u-embed w-embed w-script">
1910<script> 1911(function () { 1912 const CLOSE_TRANSITION = 'color 0.2s ease 0.5s'; 1913 const CLEAR_AFTER = 750; 1914 1915 function initNavCloseDelay() { 1916 const mobileMedia = window.SITE.mobileMedia; 1917 1918 document.querySelectorAll('.nav_component').forEach((nav) => { 1919 const menu = nav.querySelector('.nav_menu'); 1920 const menuButton = nav.querySelector('.nav_menu-button'); 1921 const desktopTargets = nav.querySelectorAll('.nav_menu-wrap, .nav_logo-link'); 1922 const mobileTargets = nav.querySelectorAll('.nav_logo-link, .nav_component-inner'); 1923 let timer; 1924 1925 function setDelay(targets) { 1926 clearTimeout(timer); 1927 targets.forEach((el) => (el.style.transition = CLOSE_TRANSITION)); 1928 } 1929 1930 function clearInline(targets) { 1931 clearTimeout(timer); 1932 targets.forEach((el) => (el.style.transition = '')); 1933 } 1934 1935 function clearAfterClose(targets) { 1936 clearTimeout(timer); 1937 timer = setTimeout(() => clearInline(targets), CLEAR_AFTER); 1938 } 1939 1940 if (menu) { 1941 menu.addEventListener('mouseenter', () => { 1942 if (mobileMedia.matches) return; 1943 clearInline(desktopTargets); 1944 }); 1945 menu.addEventListener('mouseleave', () => { 1946 if (mobileMedia.matches) return; 1947 setDelay(desktopTargets); 1948 clearAfterClose(desktopTargets); 1949 }); 1950 } 1951 1952 if (menuButton) { 1953 let wasOpen = menuButton.classList.contains('w--open'); 1954 1955 new MutationObserver(() => { 1956 const isOpen = menuButton.classList.contains('w--open'); 1957 if (isOpen === wasOpen) return; 1958 wasOpen = isOpen; 1959 if (!mobileMedia.matches) return; 1960 1961 if (isOpen) { 1962 requestAnimationFrame(() => requestAnimationFrame(() => { 1963 if (menuButton.classList.contains('w--open')) setDelay(mobileTargets); 1964 })); 1965 } else { 1966 clearAfterClose(mobileTargets); 1967 } 1968 }).observe(menuButton, { attributes: true, attributeFilter: ['class'] }); 1969 } 1970 }); 1971 } 1972 1973 if (document.readyState === 'loading') { 1974 document.addEventListener('DOMContentLoaded', initNavCloseDelay); 1975 } else { 1976 initNavCloseDelay(); 1977 } 1978})(); 1979</script>
1979</div><div class="u-embed w-embed"><style> 1980 /* mega dropdown open/close animation */ 1981 .nav_dropdown_mega_wrap { 1982 display: grid; 1983 grid-template-rows: 0fr !important; 1984 overflow: hidden; 1985 transition: grid-template-rows 0.6s ease; 1986 } 1987 .nav_dropdown_mega_wrap.is-open { 1988 grid-template-rows: 1fr !important; 1989 } 1990 1991 /* base transition (close state, with delay) */ 1992 .nav_component-bg { 1993 transition: opacity 0.2s ease 0.5s; 1994 } 1995 1996 /* desktop: triggered by hover */ 1997 @media screen and (min-width: 992px) { 1998 .nav_component:has(.nav_menu:hover) .nav_component-bg { 1999 opacity: 100% !important; 2000 transition-delay: 0s; 2001 } 2002 .nav_component:has(.nav_menu:hover) .nav_menu-wrap, 2003 .nav_component:has(.nav_menu:hover) .nav_logo-link { 2004 color: var(--text--primary-headings); 2005 transition: color 0.2s ease 0s; 2006 } 2007 2008 /* mega nav arrow on hover */ 2009 .mega_nav-link:hover .mega_nav-link-arrow { 2010 opacity: 1; 2011 transform: translate(0%, 0px); 2012 } 2013 } 2014 2015 /* tablet and below: triggered by navbar open (w--open) */ 2016 @media screen and (max-width: 991px) { 2017 .nav_component:has(.nav_menu-button.w--open) .nav_component-bg { 2018 opacity: 100% !important; 2019 transition-delay: 0s; 2020 } 2021 .nav_component:has(.nav_menu-button.w--open) .nav_logo-link, 2022 .nav_component:has(.nav_menu-button.w--open) .nav_component-inner { 2023 color: var(--text--primary-headings); 2024 transition: color 0.2s ease 0s; 2025 } 2026 2027 .nav_menu { 2028 touch-action: pan-y; 2029 overscroll-behavior: contain; 2030 } 2031 } 2032 2033 /* mobile nav button reveal */ 2034 .nav_wrap:has(.nav_menu-button.w--open) .u-button-wrapper.is-mobile-nav { 2035 transform: translate3d(0px, 0%, 0px) !important; 2036 translate: 0px 0% 0px !important; 2037 } 2038 2039 /* nav link underline on hover */ 2040 .nav_link:hover .nav_link-line { 2041 width: 100%; 2042 } 2043 2044 /* misc resets */ 2045 .w-dropdown-btn, 2046 .w-dropdown-toggle, 2047 .w-dropdown-link { 2048 color: unset; 2049 } 2050 2051 .accordion_toggle-button[data-wf--element-accordion-button--variant='warm'] { 2052 transition: all 0.4s; 2053 } 2054 body:has(.nav_component.is-active) .page-wrapper { 2055 margin-top: -3%; 2056} 2057</style></div></div></section><section data-wf--content---home-hero--variant="maximal" class="home-hero_wrap"><div class="home-hero_nav-reserve"></div><div cc-design-mode="false" class="section-padding_wrap home-hero-top"></div><div class="u-container u-hero-text-color"><div class="home-hero_layout"><div class="home-hero_content"><header cc-number="60" data-wf--text---highlighted-heading--style-variant="display-tight" class="heading_wrap w-variant-c9d091b2-4c69-0d0d-cce4-3595d8447e86 w-richtext"><h1><strong>Eve</strong>ry <strong>t</strong>e<strong>am</strong> <strong>h</strong>as <strong>AI</strong><strong>.</strong> <strong>Fe</strong>w <strong>master</strong><strong> it</strong><strong>.</strong></h1></header></div></div></div><div cc-design-mode="false" class="section-padding_wrap home-hero-bottom"></div><div data-wf--structure-section-split--section-split---colour="white" class="hero-split-image_divider"></div><div data-video-hero="" data-video-src="https://design-assets.multiverse.io/assets/marketing-site/homepage-hero.4a8d7949.mp4" class="bg-video_wrap"><div class="bg-video_embed w-embed w-script">
2057<script> 2058(() => { 2059 const wrap = document.currentScript.closest('[data-video-src]'); 2060 if (!wrap) return; 2061 2062 const desktopSrc = wrap.getAttribute('data-video-src'); 2063 if (!desktopSrc) return; // image fallback if no URL 2064 const mobileSrc = wrap.getAttribute('data-video-src-mobile'); 2065 const isHero = wrap.hasAttribute('data-video-hero'); 2066 2067 const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches; 2068 const saveData = navigator.connection?.saveData; 2069 if (reduceMotion || saveData) { 2070 // Poster only; hide the toggle since there's nothing to control 2071 const hideToggle = () => wrap.querySelector('[data-video="toggle"]')?.setAttribute('hidden', ''); 2072 document.readyState === 'loading' 2073 ? document.addEventListener('DOMContentLoaded', hideToggle, { once: true }) 2074 : hideToggle(); 2075 return; 2076 } 2077 2078 const video = document.createElement('video'); 2079 video.setAttribute('data-loop-video', ''); 2080 video.defaultMuted = true; 2081 video.muted = true; 2082 video.setAttribute('muted', ''); 2083 video.playsInline = true; 2084 video.setAttribute('webkit-playsinline', ''); 2085 video.loop = true; 2086 video.preload = 'none'; // nothing downloads until load() runs 2087 video.setAttribute('aria-hidden', 'true'); 2088 video.tabIndex = -1; 2089 video.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;object-fit:cover;'; 2090 wrap.appendChild(video); 2091 2092 let loaded = false; 2093 let inView = false; 2094 let userPaused = false; 2095 2096 const load = () => { 2097 if (loaded) return; 2098 loaded = true; 2099 const useMobile = mobileSrc && matchMedia('(max-width: 767px)').matches; 2100 video.src = useMobile ? mobileSrc : desktopSrc; 2101 video.preload = 'auto'; 2102 }; 2103 2104 const tryPlay = () => { 2105 if (loaded && inView && !userPaused) video.play().catch(() => {}); 2106 }; 2107 2108 video.addEventListener('playing', () => { 2109 wrap.querySelector('[data-video="poster"]')?.classList.add('is-video-ready'); 2110 }, { once: true }); 2111 2112 // Hero: wait until the page has loaded so the poster wins LCP. 2113 // Everything else: start loading when it's within 300px of the viewport. 2114 if (isHero) { 2115 const start = () => { load(); tryPlay(); }; 2116 document.readyState === 'complete' ? start() : window.addEventListener('load', start, { once: true }); 2117 } else { 2118 const loadObserver = new IntersectionObserver((entries) => { 2119 if (entries.some(e => e.isIntersecting)) { 2120 load(); 2121 tryPlay(); 2122 loadObserver.disconnect(); 2123 } 2124 }, { rootMargin: '300px 0px' }); 2125 loadObserver.observe(wrap); 2126 } 2127 2128 // Play/pause by visibility â this video only 2129 new IntersectionObserver(([entry]) => { 2130 inView = entry.isIntersecting; 2131 inView ? tryPlay() : video.pause(); 2132 }, { threshold: 0.25 }).observe(wrap); 2133 2134 const wireToggle = () => { 2135 const toggle = wrap.querySelector('[data-video="toggle"]'); 2136 if (!toggle) return; 2137 const playIcon = toggle.querySelector('[data-video="icon-play"]'); 2138 const pauseIcon = toggle.querySelector('[data-video="icon-pause"]'); 2139 2140 toggle.addEventListener('click', () => { 2141 if (video.paused) { 2142 userPaused = false; 2143 load(); 2144 video.play().catch(() => {}); 2145 toggle.setAttribute('aria-label', 'Pause background video'); 2146 playIcon?.classList.add('u-hide-button'); 2147 pauseIcon?.classList.remove('u-hide-button'); 2148 } else { 2149 userPaused = true; 2150 video.pause(); 2151 toggle.setAttribute('aria-label', 'Play background video'); 2152 pauseIcon?.classList.add('u-hide-button'); 2153 playIcon?.classList.remove('u-hide-button'); 2154 } 2155 }); 2156 }; 2157 2158 document.readyState === 'loading' 2159 ? document.addEventListener('DOMContentLoaded', wireToggle, { once: true }) 2160 : wireToggle(); 2161})(); 2162</script>
2162</div><img fetchpriority="high" data-video="poster" alt="" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero.avif" loading="eager" sizes="(max-width: 1440px) 100vw, 1440px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero-p-1600.avif 1600w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero-p-2000.avif 2000w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe27f5e758121d1fd977b7_homepage-hero.avif 2560w" class="bg-video_poster"/><button aria-label="Pause background video" data-video="toggle" class="bg-video_toggle"><div data-video="icon-play" class="bg-video_icon-play u-hide-button w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2163<path d="M20.1333 9.97067L7.47733 2.96267C6.74 2.55467 5.86933 2.56667 5.14533 2.99333C4.428 3.416 4 4.16267 4 4.992V19.008C4 19.8373 4.428 20.584 5.14533 21.0067C5.51733 21.2253 5.92667 21.336 6.33867 21.336C6.72933 21.336 7.12 21.236 7.47733 21.0387L20.132 14.0307C20.8733 13.6213 21.3333 12.8427 21.3333 12.0013C21.3333 11.16 20.8733 10.38 20.1333 9.97067Z" fill="currentColor"/> 2164</svg></div><div data-video="icon-pause" class="bg-video_icon-pause w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2165<path d="M7 2.66663H5C3.71134 2.66663 2.66667 3.71129 2.66667 4.99996V19C2.66667 20.2886 3.71134 21.3333 5 21.3333H7C8.28866 21.3333 9.33333 20.2886 9.33333 19V4.99996C9.33333 3.71129 8.28866 2.66663 7 2.66663Z" fill="currentColor"/> 2166<path d="M19 2.66663H17C15.7113 2.66663 14.6667 3.71129 14.6667 4.99996V19C14.6667 20.2886 15.7113 21.3333 17 21.3333H19C20.2887 21.3333 21.3333 20.2886 21.3333 19V4.99996C21.3333 3.71129 20.2887 2.66663 19 2.66663Z" fill="currentColor"/> 2167</svg></div></button></div></section><section class="heading-standalone_wrap u-section"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="none" class="section-padding_wrap w-variant-b8dc5a9b-8812-6fe9-32ee-40b7f2f8cc4d"></div><div class="u-container"><div data-wf--text-heading-lockup--style-alignment="full-width---2-column" class="heading-lockup_wrap w-variant-64da9291-f926-75b2-15d7-8bf0af6b00e6"><div id="w-node-_3e6058e9-5e4a-5e2f-bb8e-de861be88a9b-60470592" class="heading-lockup_heading w-variant-64da9291-f926-75b2-15d7-8bf0af6b00e6"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 2168<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 2169</svg></div><p class="eyebrow_text">Multiverse is the AI Adoption Layer</p></div><div class="lockup-heading_layout"></div></div><div class="heading-lockup_body"><div cc-number="25" data-wf--text-body--style-size="large" class="u-body-text w-variant-fda06414-de25-9f0d-c93f-4000ce11761d w-richtext u-text-pretty"><p>The missing layer between AI tools youâve invested in and the people who bring them to life.</p></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div></section><div class="intro-sticky-wrap"><section class="intro-sticky"><div class="intro-image_wrap"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5eb4e0a03f03abd7f40d_hero-reveal_bg.avif" loading="lazy" sizes="(max-width: 2064px) 100vw, 2064px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5eb4e0a03f03abd7f40d_hero-reveal_bg-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5eb4e0a03f03abd7f40d_hero-reveal_bg-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5eb4e0a03f03abd7f40d_hero-reveal_bg-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5eb4e0a03f03abd7f40d_hero-reveal_bg-p-1600.avif 1600w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5eb4e0a03f03abd7f40d_hero-reveal_bg.avif 2064w" alt="" class="intro-image"/><div data-reveal-tile="top-left" class="intro-image-tile_1"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe58480f818d60d7441e61_hero-reveal-avatar.avif" loading="lazy" alt="" class="image-intro-tile_avatar"/><div class="intro-image-text_wrap"><div class="intro-image-heading">AI Solutions Builder</div><div class="intro-image-body"><strong>7 days</strong> until launch</div></div></div><div data-reveal-tile="bottom-right" class="intro-image-tile_2"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5a6706b9c61a3ab9bce6_hero-reveal-tile.avif" loading="lazy" alt="" class="image-intro-tile_gradient"/><div class="intro-image_text-wrap"><div class="intro-image-heading">AI-Powered Productivity</div><div class="intro-image_bar-wrap"><div class="intro-image-eyebrow">50% COMPLETE</div><div class="intro-image-bar_outer"><div class="intro-image-bar_inner"></div></div></div></div></div></div></section><div class="intro-sticky_below"><section class="products-demo_wrap u-section"><div class="products-demo_bg"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="none" class="section-padding_wrap w-variant-b8dc5a9b-8812-6fe9-32ee-40b7f2f8cc4d"></div><div class="tabbed-content_js w-embed w-script">
2169<script> 2170 2171/** 2172 * Tabs Component (+ mobile accordion) 2173 * Optimized for multiple instances on a single page. 2174 * 2175 * Features: 2176 * - Tab panel switching based on tab link clicks 2177 * - Full keyboard navigation support (Arrow keys, Home, End, Enter, Space) 2178 * - Comprehensive ARIA attributes (aria-selected, aria-hidden, aria-controls, aria-labelledby, aria-expanded) 2179 * - Autoplay with configurable duration 2180 * - Pause on hover and focus 2181 * - Smooth panel animations with CSS transitions 2182 * - Multiple instances per page 2183 * - Active state management for tab links 2184 * - Optional accordion mode on mobile (tab show/hide, fades and autoplay are turned off) 2185 * - Accordion code only runs if accordion attributes are present 2186 * - No layout shift on load: no open animation on first paint, images preloaded in accordion mode 2187 * 2188 * Usage (tabs): 2189 * - Add [data-tabs-element="wrapper"] to the main wrapper 2190 * - Add [data-tabs-element="link-list"] to the tab links container 2191 * - Add [data-tabs-element="panel-list"] to the tab panels container 2192 * - Tab links should have [data-tabs-element="tab-link"] 2193 * - Tab panes should have [data-tabs-element="tab-panel"] 2194 * 2195 * Usage (accordion, optional, mobile only): 2196 * - [data-tabs-accordion="wrapper"] one per tab link, holds the trigger + content 2197 * - [data-tabs-accordion="trigger"] opens the accordion (usually the tab link) 2198 * - [data-tabs-accordion="content"] the panel is moved into its first child on mobile 2199 * - [data-tabs-accordion="item"] the panel that gets moved (same order as the wrappers) 2200 * - data-tabs-accordion-class="is-open" on the accordion wrapper: the active class 2201 * - [data-tabs-accordion-add-class] elements inside the accordion wrapper that receive the active class 2202 * - [data-tabs-accordion-animate] added to the tabs wrapper by the script once it's safe to animate 2203 * 2204 * Attributes (on [data-tabs-element="wrapper"]): 2205 * - data-pause-on-hover="true/false" - Pause autoplay on hover (default: false) 2206 * - data-autoplay-duration="0" - Autoplay duration in seconds (0 = disabled) 2207 * - data-duration="0.3" - Panel animation duration in seconds 2208 * - data-initial-tab="1" - Initially active tab (1-based index) 2209 * - data-fade-panels="true/false" - Fade panels in from 0 to 1 opacity (default: false) 2210 * - data-tabs-accordion-breakpoint="767" - Max width (px) for accordion mode (default: 767) 2211 */ 2212 2213(function() { 2214 // Debug helpers 2215 const urlParams = new URLSearchParams(window.location.search); 2216 const debugMode = urlParams.get('debug') === 'true'; 2217 2218 function debug(message) { 2219 if (debugMode) console.log(`[Tabs] ${message}`); 2220 } 2221 2222 function debugWarn(message) { 2223 if (debugMode) console.warn(`[Tabs] ${message}`); 2224 } 2225 2226 function debugError(message) { 2227 if (debugMode) console.error(`[Tabs] ${message}`); 2228 } 2229 2230 function initTabs() { 2231 const tabWrappers = document.querySelectorAll('[data-tabs-element="wrapper"]'); 2232 debug(`Found ${tabWrappers.length} tabs component(s).`); 2233 2234 tabWrappers.forEach((tabWrapper, componentIndex) => { 2235 // Prevent multiple initializations 2236 if (tabWrapper.dataset.tabsInitialized) { 2237 debug(`Component ${componentIndex + 1} already initialized, skipping.`); 2238 return; 2239 } 2240 tabWrapper.dataset.tabsInitialized = "true"; 2241 debug(`Initializing tabs for component ${componentIndex + 1}...`); 2242 2243 // Get configuration 2244 const pauseOnHover = tabWrapper.getAttribute("data-pause-on-hover") === "true"; 2245 const autoplay = Number(tabWrapper.getAttribute("data-autoplay-duration")) || 0; 2246 const duration = Number(tabWrapper.getAttribute("data-duration")) || 0.3; 2247 const initialTab = parseInt(tabWrapper.getAttribute('data-initial-tab') || '1', 10); 2248 const fadePanes = tabWrapper.getAttribute("data-fade-panels") === "true"; 2249 2250 // Get DOM elements 2251 const linkList = tabWrapper.querySelector('[data-tabs-element="link-list"]'); 2252 const paneList = tabWrapper.querySelector('[data-tabs-element="panel-list"]'); 2253 2254 if (!linkList || !paneList) { 2255 debugError(`Missing link list or pane list in component ${c
2255omponentIndex + 1}`); 2256 return; 2257 } 2258 2259 const tabLinks = Array.from(linkList.querySelectorAll('[data-tabs-element="tab-link"]')); 2260 const tabPanes = Array.from(paneList.querySelectorAll('[data-tabs-element="tab-panel"]')); 2261 2262 if (!tabLinks.length || !tabPanes.length) { 2263 debugError(`No tab links or panes found in component ${componentIndex + 1}`); 2264 return; 2265 } 2266 2267 debug(`Found ${tabLinks.length} tab link(s) and ${tabPanes.length} pane(s)`); 2268 2269 // --------------------------------------------------------------- 2270 // Accordion setup (only runs if accordion attributes are present) 2271 // --------------------------------------------------------------- 2272 const hasAccordion = !!tabWrapper.querySelector('[data-tabs-accordion="wrapper"]'); 2273 let accordionMq = null; 2274 let accItems = []; 2275 let accItemHomes = []; 2276 let accParts = []; 2277 let imagesPreloaded = false; 2278 2279 if (hasAccordion) { 2280 const accordionBp = parseInt(tabWrapper.getAttribute('data-tabs-accordion-breakpoint') || '767', 10); 2281 accordionMq = window.matchMedia(`(max-width: ${accordionBp}px)`); 2282 2283 // Items to move (fallback to tab panes if no item attribute is set) 2284 const accItemsFound = Array.from(tabWrapper.querySelectorAll('[data-tabs-accordion="item"]')); 2285 accItems = accItemsFound.length ? accItemsFound : tabPanes; 2286 // Remember where each item lives on desktop 2287 accItemHomes = accItems.map(item => item.parentNode); 2288 2289 accParts = Array.from(tabWrapper.querySelectorAll('[data-tabs-accordion="wrapper"]')).map(wrap => { 2290 const content = wrap.querySelector('[data-tabs-accordion="content"]'); 2291 return { 2292 trigger: wrap.querySelector('[data-tabs-accordion="trigger"]'), 2293 // Move into the inner div (needed for the grid 0fr â 1fr collapse) 2294 target: content ? (content.firstElementChild || content) : null, 2295 toggles: Array.from(wrap.querySelectorAll('[data-tabs-accordion-add-class]')), 2296 cls: wrap.getAttribute('data-tabs-accordion-class') || 'is-open' 2297 }; 2298 }); 2299 } 2300 2301 const isAccordionMode = () => hasAccordion && accordionMq.matches; 2302 2303 debug(`Config: autoplay=${autoplay}s, duration=${duration}s, pauseOnHover=${pauseOnHover}, initialTab=${initialTab}, fadePanes=${fadePanes}, accordion=${hasAccordion ? accordionMq.media : 'off'}`); 2304 2305 // Set up ARIA attributes 2306 linkList.setAttribute("role", "tablist"); 2307 2308 tabLinks.forEach((link, index) => { 2309 const componentId = componentIndex + 1; 2310 const tabId = `tab-${componentId}-${index + 1}`; 2311 const paneId = `tabpane-${componentId}-${index + 1}`; 2312 2313 // Tab link attributes 2314 link.setAttribute("role", "tab"); 2315 link.setAttribute("id", tabId); 2316 link.setAttribute("aria-selected", "false"); 2317 link.setAttribute("aria-controls", paneId); 2318 link.setAttribute("tabindex", "-1"); 2319 2320 // Add active class management 2321 if (link.classList.contains('is-active')) { 2322 link.classList.remove('is-active'); 2323 } 2324 }); 2325 2326 tabPanes.forEach((pane, index) => { 2327 const componentId = componentIndex + 1; 2328 const tabId = `tab-${componentId}-${index + 1}`; 2329 const paneId = `tabpane-${componentId}-${index + 1}`; 2330 2331 // Tab pane attributes 2332 pane.setAttribute("role", "tabpanel"); 2333 pane.setAttribute("id", paneId); 2334 pane.setAttribute("aria-labelledby", tabId); 2335 pane.setAttribute("aria-hidden", "true"); 2336 pane.style.display = "none"; 2337 pane.setAttribute("tabindex", "0"); 2338 2339 // Set up CSS transitions for smooth animations 2340 pane.style.transition = fadePanes 2341 ? `opacity ${duration}s ease-out` 2342 : 'none'; 2343 2344 // Set panes to opacity 0 if fadePanes is enabled 2345 if (fadePanes) { 2346 pane.style.opacity = '0'; 2347 } 2348 }); 2349 2350 let activeIndex = -1; 2351 let animating = false;
2352 let animationTimeouts = []; // Track timeouts to allow cancellation 2353 let canPlay = autoplay > 0; 2354 let autoplayInterval = null; 2355 let refreshAutoplay = () => {}; // Set by autoplay block if enabled 2356 2357 // Cancel any running fade timeouts 2358 const cancelAnimations = () => { 2359 animationTimeouts.forEach(timeout => clearTimeout(timeout)); 2360 animationTimeouts = []; 2361 animating = false; 2362 }; 2363 2364 // Mobile: show all panes, the accordion handles open/close 2365 const showAllPanes = () => { 2366 cancelAnimations(); 2367 tabPanes.forEach(pane => { 2368 pane.style.display = "flex"; 2369 pane.style.opacity = "1"; 2370 }); 2371 }; 2372 2373 // Desktop: only the active pane is visible 2374 const restoreTabPanes = () => { 2375 cancelAnimations(); 2376 tabPanes.forEach((pane, i) => { 2377 const isActive = i === activeIndex; 2378 pane.style.display = isActive ? "flex" : "none"; 2379 pane.style.opacity = fadePanes ? (isActive ? "1" : "0") : ""; 2380 pane.setAttribute("aria-hidden", isActive ? "false" : "true"); 2381 }); 2382 }; 2383 2384 // --------------------------------------------------------------- 2385 // Accordion helpers (only called in accordion mode) 2386 // --------------------------------------------------------------- 2387 const setAccordionOpen = (i, open) => { 2388 const p = accParts[i]; 2389 if (!p) return; 2390 p.toggles.forEach(el => el.classList.toggle(p.cls, open)); 2391 if (p.trigger) p.trigger.setAttribute('aria-expanded', open ? 'true' : 'false'); 2392 if (accItems[i]) accItems[i].setAttribute('aria-hidden', open ? 'false' : 'true'); 2393 }; 2394 2395 // Only the given index is open 2396 const syncAccordion = (index) => { 2397 accParts.forEach((_, i) => setAccordionOpen(i, i === index)); 2398 }; 2399 2400 // Load lazy images now, so opening an accordion doesn't jump when the image arrives 2401 const preloadImages = () => { 2402 if (imagesPreloaded) return; 2403 imagesPreloaded = true; 2404 accItems.forEach(item => { 2405 item.querySelectorAll('img[loading="lazy"]').forEach(img => { 2406 img.loading = 'eager'; 2407 }); 2408 }); 2409 }; 2410 2411 const enterAccordion = () => { 2412 debug(`Component ${componentIndex + 1}: accordion mode`); 2413 // No transition while setting the initial state (prevents open animation / shift) 2414 tabWrapper.removeAttribute('data-tabs-accordion-animate'); 2415 2416 accItems.forEach((item, i) => { 2417 if (accParts[i] && accParts[i].target) accParts[i].target.appendChild(item); 2418 }); 2419 showAllPanes(); 2420 syncAccordion(activeIndex); 2421 preloadImages(); 2422 2423 // Turn transitions on after the initial state has painted 2424 requestAnimationFrame(() => { 2425 requestAnimationFrame(() => { 2426 if (isAccordionMode()) tabWrapper.setAttribute('data-tabs-accordion-animate', ''); 2427 }); 2428 }); 2429 }; 2430 2431 const exitAccordion = () => { 2432 debug(`Component ${componentIndex + 1}: tabs mode`); 2433 tabWrapper.removeAttribute('data-tabs-accordion-animate'); 2434 accItems.forEach((item, i) => accItemHomes[i].appendChild(item)); 2435 accParts.forEach(p => { 2436 p.toggles.forEach(el => el.classList.remove(p.cls)); 2437 if (p.trigger) p.trigger.removeAttribute('aria-expanded'); 2438 }); 2439 restoreTabPanes(); 2440 }; 2441 2442 // Function to switch tab panes 2443 const switchPane = (index, animate = true) => { 2444 // Only switch to a different tab (clicking the open one does nothing, so it stays open) 2445 if (index === activeIndex || index < 0 || index >= tabPanes.length) return; 2446 2447 // Cancel any ongoing animations 2448 if (animating) { 2449 debug(`Interrupting animation to switch to pane ${index + 1}`); 2450 cancelAnimations(); 2451 } 2452 2453 const previousIndex = activeIndex; 2454 debug(`Switching pane from ${previousIndex + 1} to ${index + 1}`); 2455 2456 const previousPane = tabPanes[previousIndex]; 2457 const currentPane = tabPanes[index]; 2458 2459 // Update ARIA attributes and classes for previous tab link/pane 2460 if (previousIndex !== -1) { 2461 if (tabLinks[previousIndex]) { 2462 tabLinks[previousIndex].setAttribute('aria-selected', 'false'); 2463 tabLinks[previousIndex].setAttribute('tabindex', '-1'); 2464 tabLinks[previousIndex].classList.remove('is-active'); 2465 } 2466 if (previousPane) { 2467 previousPane.setAttribute('aria-hidden', 'true'); 2468 } 2469 } 2470 2471 // Update ARIA attributes and classes for current tab link/pane 2472 if (tabLinks[index]) { 2473 tabLinks[index].setAttribute('aria-selected', 'true'); 2474 tabLinks[index].setAttribute('tabindex', '0'); 2475 tabLinks[index].classList.add('is-active'); 2476 } 2477 currentPane.setAttribute('aria-hidden', 'false'); 2478 2479 if (isAccordionMode()) { 2480 // Mobile: skip tab show/hide + fade, the accordion handles it 2481 showAllPanes(); 2482 syncAccordion(index); 2483 } else if (animate && previousIndex !== -1 && fadePanes) { 2484 // Animate pane transition 2485 animating = true; 2486 2487 // Fade out previous pane 2488 if (previousPane) { 2489 previousPane.style.opacity = '0'; 2490 2491 const timeout1 = setTimeout(() => { 2492 previousPane.style.display = "none"; 2493 2494 // Fade in current pane 2495 currentPane.style.display = "flex"; 2496 currentPane.style.opacity = '0'; 2497 2498 // Force reflow to ensure transition 2499 currentPane.offsetHeight; 2500 2501 currentPane.style.opacity = '1'; 2502 2503 const timeout2 = setTimeout(() => { 2504 animating = false;
2505 animationTimeouts = []; 2506 }, duration * 1000); 2507 2508 animationTimeouts.push(timeout2); 2509 }, duration * 1000); 2510 2511 animationTimeouts.push(timeout1); 2512 } else { 2513 // No previous pane, just show current 2514 currentPane.style.display = "flex"; 2515 currentPane.style.opacity = '0'; 2516 currentPane.offsetHeight; 2517 currentPane.style.opacity = '1'; 2518 2519 const timeout = setTimeout(() => { 2520 animating = false; 2521 animationTimeouts = []; 2522 }, duration * 1000); 2523 2524 animationTimeouts.push(timeout); 2525 } 2526 } else { 2527 // No animation or no fade 2528 if (previousPane) { 2529 previousPane.style.display = "none"; 2530 if (fadePanes) previousPane.style.opacity = '0'; 2531 } 2532 currentPane.style.display = "flex"; 2533 currentPane.style.opacity = fadePanes ? '1' : ''; 2534 } 2535 2536 activeIndex = index; 2537 2538 // Dispatch custom event 2539 window.dispatchEvent(new CustomEvent('tabChange', { 2540 detail: { 2541 component: tabWrapper, 2542 activeIndex: index, 2543 activeLink: tabLinks[index], 2544 activePane: tabPanes[index] 2545 } 2546 })); 2547 }; 2548 2549 // Set initial active pane 2550 const initialIndex = initialTab > 0 && initialTab <= tabPanes.length ? initialTab - 1 : 0; 2551 switchPane(initialIndex, false); 2552 2553 // Start in accordion mode if on mobile, and switch on resize 2554 if (hasAccordion) { 2555 if (isAccordionMode()) enterAccordion(); 2556 2557 accordionMq.addEventListener("change", () => { 2558 if (isAccordionMode()) { 2559 enterAccordion(); 2560 } else { 2561 exitAccordion(); 2562 } 2563 refreshAutoplay(); 2564 }); 2565 } 2566 2567 // Handle tab link clicks 2568 tabLinks.forEach((link, index) => { 2569 link.addEventListener('click', (e) => { 2570 e.preventDefault(); 2571 switchPane(index); 2572 link.focus(); 2573 }); 2574 }); 2575 2576 // Accordion triggers that aren't tab links (if set up that way) 2577 if (hasAccordion) { 2578 accParts.forEach((p, index) => { 2579 if (!p.trigger || tabLinks.includes(p.trigger)) return; 2580 p.trigger.addEventListener('click', (e) => { 2581 if (!isAccordionMode()) return; 2582 e.preventDefault(); 2583 switchPane(index); 2584 }); 2585 }); 2586 } 2587 2588 // Keyboard navigation 2589 linkList.addEventListener('keydown', (e) => { 2590 const currentFocus = document.activeElement; 2591 const currentIndex = tabLinks.indexOf(currentFocus); 2592 2593 if (currentIndex === -1) return; 2594 2595 let targetIndex = currentIndex; 2596 2597 switch (e.key) { 2598 case 'ArrowRight': 2599 case 'ArrowDown': 2600 e.preventDefault(); 2601 targetIndex = (currentIndex + 1) % tabLinks.length; 2602 break; 2603 2604 case 'ArrowLeft': 2605 case 'ArrowUp': 2606 e.preventDefault(); 2607 targetIndex = (currentIndex - 1 + tabLinks.length) % tabLinks.length; 2608 break; 2609 2610 case 'Home': 2611 e.preventDefault(); 2612 targetIndex = 0; 2613 break; 2614 2615 case 'End': 2616 e.preventDefault(); 2617 targetIndex = tabLinks.length - 1; 2618 break; 2619 2620 case 'Enter': 2621 case ' ': 2622 e.preventDefault(); 2623 switchPane(currentIndex); 2624 return; 2625 2626 default: 2627 return; 2628 } 2629 2630 // Switch to target tab and focus it 2631 switchPane(targetIndex); 2632 tabLinks[targetIndex].focus(); 2633 }); 2634 2635 // Autoplay functionality 2636 if (autoplay > 0) { 2637 debug(`Setting up autoplay with ${autoplay}s interval`); 2638 2639 let isHovered = false;
2640 let hasFocusInside = false; 2641 let prefersReducedMotion = false; 2642 let inView = true; 2643 2644 function startAutoplay() { 2645 if (autoplayInterval) return; 2646 2647 autoplayInterval = setInterval(() => { 2648 const nextIndex = (activeIndex + 1) % tabLinks.length; 2649 switchPane(nextIndex); 2650 }, autoplay * 1000); 2651 } 2652 2653 function stopAutoplay() { 2654 if (autoplayInterval) { 2655 clearInterval(autoplayInterval); 2656 autoplayInterval = null; 2657 } 2658 } 2659 2660 function updateAutoplay() { 2661 // No autoplay in accordion mode 2662 if (isAccordionMode() || prefersReducedMotion || !inView || !canPlay || isHovered || hasFocusInside) { 2663 stopAutoplay(); 2664 } else { 2665 startAutoplay(); 2666 } 2667 } 2668 refreshAutoplay = updateAutoplay; 2669 2670 // Reduced motion preference 2671 function handleMotionChange(e) { 2672 prefersReducedMotion = e.matches; 2673 updateAutoplay(); 2674 } 2675 handleMotionChange(window.matchMedia("(prefers-reduced-motion: reduce)")); 2676 window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change", handleMotionChange); 2677 2678 // Pause on hover 2679 if (pauseOnHover) { 2680 tabWrapper.addEventListener("mouseenter", () => { 2681 isHovered = true; 2682 updateAutoplay(); 2683 }); 2684 tabWrapper.addEventListener("mouseleave", () => { 2685 isHovered = false; 2686 hasFocusInside = false;
2687 updateAutoplay(); 2688 }); 2689 } 2690 2691 // Pause on focus 2692 tabWrapper.addEventListener("focusin", () => { 2693 hasFocusInside = true; 2694 updateAutoplay(); 2695 }); 2696 tabWrapper.addEventListener("focusout", (e) => { 2697 if (!e.relatedTarget || !tabWrapper.contains(e.relatedTarget)) { 2698 hasFocusInside = false; 2699 updateAutoplay(); 2700 } 2701 }); 2702 2703 // Pause when out of view 2704 new IntersectionObserver((entries) => { 2705 inView = entries[0].isIntersecting; 2706 updateAutoplay(); 2707 }, { threshold: 0 }).observe(tabWrapper); 2708 2709 updateAutoplay(); 2710 } 2711 2712 debug(`Component ${componentIndex + 1} initialized successfully`); 2713 }); 2714 } 2715 initTabs(); 2716 if (document.readyState === 'loading') { 2717 document.addEventListener('DOMContentLoaded', initTabs); 2718 } 2719})(); 2720 2721</script>
2721</div><div class="u-container"><div class="products-demo_content"></div><div data-fade-panels="true" data-tabs-element="wrapper" data-pause-on-hover="false" data-autoplay-duration="0" data-duration="0.3" data-wf--element-tab-wrapper--variant="tabs-absolute" class="tabbed-content_wrap"><div class="tabbed-content_layout"><div slot="tab-content" class="tabbed-content_panel-list"><div data-tabs-element="panel-list" slot="tab-content" class="tabbed-content_panel-list"><div data-tabs-element="tab-panel" class="tabbed-content_panel"><div class="tabbed-content_content-wrap"><div class="tabbed-content_logo"><div class="tabbed-content_logo-wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab0f13f4f3f1084f656730a_MV_LOGO.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div cc-number="60" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p><strong>Skills Scan</strong></p></div></div><header cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>Find where the <strong>gaps are</strong>.</h2></header><div cc-number="42" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>You lead a workforce of 12,000, <strong>most of your skill gaps are blocking business goals</strong>. Letâs find where the gaps are.</p></div></div><div class="tabbed-content_embed-wrap"><div slot="product-demo"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"SkillsScan","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"texture":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd221a7476a6b700fbc5cf_blue-green.webp"},"showHeader":true,"headerTitle":"Skills scan","headerSubtitle":"Workforce of 12,000","headerMeta":"11,860 of 12,000 responses","cardHeight":488,"mobileCardHeight":440,"replayOnScroll":false}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2F9815b7ebe7ff2eef2de2.css"/><div data-root="true" style="display:contents"><!--$--><div role="group" aria-label="Skills scan" class="pd-root pd-paused" style="--pd-card-h:488px;--pd-card-h-m:440px"><div class="pd-card"><div class="pd-texture" style="background-image:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd221a7476a6b700fbc5cf_blue-green.webp");background-size:260% auto;background-position:78% 22%"></div><div class="pd-panel"><div style="position:absolute;inset:0"><div class="pd-winwrap" style="position:absolute;top:36px;left:36px;right:-70px;bottom:-60px;
2721animation:pd-win-l 0.8s var(--pd-ease) both"><div class="pd-mat" style="position:absolute;inset:-8px;border-radius:16px 0px 0px 0px;background:rgba(255,255,255,0.34);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 30px 80px rgba(0,0,0,0.35);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-sizing:border-box"></div><div class="pd-win" style="position:absolute;inset:0;background:#F0ECE1;border-radius:10px 0px 0px 0px;display:flex;flex-direction:row;overflow:hidden;color:#232220"><div class="pd-side" style="width:150px;flex:none;background:#FFFFFF;padding:20px 12px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22120.21%2087.35%20702.57%20116.63%22%3E%3Cpath%20d%3D%22M713.64%2C153.17l-9.95-2.1c-6.09-1.4-9.13-4.32-9.13-8.99%2C0-5.6%2C5.5-9.22%2C11.83-9.22%2C8.9%2C0%2C13.47%2C5.72%2C14.4%2C11.67h17.1c-2.93-18.91-16.63-26.15-31.5-26.15-18.03%2C0-29.28%2C12.26-29.28%2C25.45%2C0%2C12.49%2C9.02%2C18.91%2C21.08%2C21.83l9.49%2C2.22c9.49%2C2.22%2C13.7%2C4.55%2C13.7%2C10.39%2C0%2C5.49-4.22%2C11.09-12.3%2C11.09-9.84%2C0-14.05-5.72-14.76-12.84h-17.57c.35%2C15.64%2C12.53%2C27.31%2C31.62%2C27.31s30.09-13.07%2C30.09-26.5c.12-11.56-9.02-20.66-24.83-24.16ZM671.84%2C120.25h-45.2v81.71h16.51v-67.12h28.69v-14.59ZM521.24%2C120.25l-20.85%2C60.7-21.08-60.7h-17.92l30.45%2C81.71h16.98l30.45-81.71h-18.03ZM453.09%2C120.25h-16.51v81.71h16.51v-81.71ZM405.66%2C97.14h-16.51v23.11h-21.31v14.59h21.31v67.12h16.51v-67.12h21.08v-14.59h-21.08v-23.11ZM359.99%2C97.14h-16.51v104.82h16.51v-104.82ZM310.1%2C166.24c0%2C13.42-8.08%2C21.59-19.21%2C21.59s-19.09-8.17-19.09-21.59v-45.99h-16.51v45.64c0%2C22.99%2C13%2C37.94%2C35.25%2C37.94s36.07-15.29%2C36.07-37.94v-45.64h-16.51v45.99ZM240.66%2C120.25h-18.74l-33.14%2C54.28v-54.28h-18.97l-33.02%2C53.93v-53.93h-16.51v81.71h16.63l35.37-58.13v58.13h16.63l35.25-57.55v57.55h16.51v-81.71ZM444.77%2C108.93c5.97%2C0%2C10.77-4.79%2C10.77-10.74s-4.8-10.62-10.77-10.62-10.77%2C4.79-10.77%2C10.62%2C4.8%2C10.74%2C10.77%2C10.74ZM538.81%2C161.22c0%2C24.98%2C17.92%2C42.6%2C40.52%2C42.6%2C20.49%2C0%2C33.61-10.62%2C37.36-27.55h-17.57c-1.29%2C6.19-6.79%2C12.14-18.62%2C12.14-12.76%2C0-22.95-7.35-24.24-21.01h60.89c.23-1.87.35-4.32.35-6.19%2C0-24.4-14.87-42.84-38.53-42.84s-40.17%2C18.44-40.17%2C42.84ZM555.91%2C154.69c2.22-12.72%2C10.54-20.89%2C23.07-20.89s20.26%2C7.94%2C22.02%2C20.89h-45.08ZM744.21%2C161.22c0%2C24.98%2C17.92%2C42.6%2C40.52%2C42.6%2C20.49%2C0%2C33.61-10.62%2C37.36-27.55h-17.57c-1.29%2C6.19-6.79%2C12.14-18.62%2C12.14-12.76%2C0-22.95-7.35-24.24-21.01h60.89c.23-1.87.35-4.32.35-6.19%2C0-24.4-14.87-42.84-38.53-42.84s-40.17%2C18.44-40.17%2C42.84ZM761.3%2C154.69c2.23-12.72%2C10.54-20.89%2C23.07-20.89s20.26%2C7.94%2C22.02%2C20.89h-45.09Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" alt="Multiverse" style="height:15px;width:auto;align-self:flex-start;margin-left:8px;display:block"/><div style="display:flex;flex-direction:column;gap:4px;margin-top:20px"><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1z"></path></svg>Overview</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:#232220;font-size:13px;font-weight:500;color:#FFFFFF;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#D6EE40" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><path d="M7 12h10"></path></svg>Skills scan<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none;margin-left:auto"><path d="m9 6 6 6-6 6"></path></svg></div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"></path></svg>Programmes</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>Progress</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M3 3v18h18"></path><path d="M7 15l4-4 4 4 5-6"></path></svg>Impact</div></div></div><div class="pd-main" style="flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px 94px 84px 24px;box-sizing:border-box"><div class="pd-panel-head" style="display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(35,34,32,0.10);flex:none"><span style="display:flex;flex-direction:column;gap:3px"><span style="font-size:15px;font-weight:500;letter-spacing:-0.01em;color:#232220">Skills scan</span><span style="font-size:13px;font-weight:300;color:#383633">Workforce of 12,000</span></span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;display:flex;align-items:center;gap:8px;white-space:nowrap"><span style="width:6px;height:6px;border-radius:50%;background:#232220"></span>11,860 of 12,000 responses</span></div><div class="pd-panel-body" style="flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;margin-right:0"><div class="pd-s1" style="display:flex;flex-direction:column;gap:20px;
2721animation:pd-rise 0.7s var(--pd-ease) 0ms both"><div style="display:flex;justify-content:space-between;gap:12px;align-items:baseline"><span style="font-size:14px;font-weight:300;color:#383633">Where the week goes</span><span class="pd-hide-m" style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Hours · per person · per week</span></div><div class="pd-s1-rows" style="display:flex;flex-direction:column;gap:12px"><div class="pd-s1-row" style="display:grid;grid-template-columns:minmax(0,128px) minmax(0,1fr) 32px;gap:12px;align-items:center;animation:pd-rise 0.7s var(--pd-ease) 80ms both"><span style="font-size:14px;font-weight:500;color:#232220;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Manual reporting</span><div style="height:20px;border-radius:4px 10px 10px 4px;background:#FFFFFF;overflow:hidden"><div style="width:100%;height:100%;border-radius:4px 10px 10px 4px;background:#7B16EE;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 120ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:right">9<!-- -->h</span></div><div class="pd-s1-row" style="display:grid;grid-template-columns:minmax(0,128px) minmax(0,1fr) 32px;gap:12px;align-items:center;animation:pd-rise 0.7s var(--pd-ease) 150ms both"><span style="font-size:14px;font-weight:300;color:#232220;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Data preparation</span><div style="height:20px;border-radius:4px 10px 10px 4px;background:#FFFFFF;overflow:hidden"><div style="width:66.66666666666666%;height:100%;border-radius:4px 10px 10px 4px;background:#9A50F2;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 210ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:right">6<!-- -->h</span></div><div class="pd-s1-row" style="display:grid;grid-template-columns:minmax(0,128px) minmax(0,1fr) 32px;gap:12px;align-items:center;animation:pd-rise 0.7s var(--pd-ease) 220ms both"><span style="font-size:14px;font-weight:300;color:#232220;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Status meetings</span><div style="height:20px;border-radius:4px 10px 10px 4px;background:#FFFFFF;overflow:hidden"><div style="width:44.44444444444444%;height:100%;border-radius:4px 10px 10px 4px;background:#CAA2F8;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 300ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:right">4<!-- -->h</span></div><div class="pd-s1-row" style="display:grid;grid-template-columns:minmax(0,128px) minmax(0,1fr) 32px;gap:12px;align-items:center;animation:pd-rise 0.7s var(--pd-ease) 290ms both"><span style="font-size:14px;font-weight:300;color:#232220;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Chasing approvals</span><div style="height:20px;border-radius:4px 10px 10px 4px;background:#FFFFFF;overflow:hidden"><div style="width:33.33333333333333%;height:100%;border-radius:4px 10px 10px 4px;background:#E5D0FC;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 390ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:right">3<!-- -->h</span></div><div class="pd-s1-row" style="display:grid;grid-template-columns:minmax(0,128px) minmax(0,1fr) 32px;gap:12px;align-items:center;animation:pd-rise 0.7s var(--pd-ease) 360ms both"><span style="font-size:14px;font-weight:300;color:#232220;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Ad-hoc analysis</span><div style="height:20px;border-radius:4px 10px 10px 4px;background:#FFFFFF;overflow:hidden"><div style="width:22.22222222222222%;height:100%;border-radius:4px 10px 10px 4px;background:#F2E8FE;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 480ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:right">2<!-- -->h</span></div></div><div class="pd-s1-foot" style="display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid rgba(35,34,32,0.10);align-items:flex-end;
2721gap:16px"><span style="font-size:14px;font-weight:500;color:#232220;line-height:1.3">Recoverable with AI skills</span><div class="pd-s1-big" style="display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right;animation:pd-rise 0.7s var(--pd-ease) 620ms both"><span style="font-family:var(--pd-font-display);font-weight:300;font-size:36px;line-height:0.9;letter-spacing:-0.02em;white-space:nowrap;color:#232220">288,000</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;white-space:nowrap">hours a week · 24h per person</span></div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></template></code-island></div></div></div><div data-tabs-element="tab-panel" class="tabbed-content_panel"><div class="tabbed-content_content-wrap"><div class="tabbed-content_logo"><div class="tabbed-content_logo-wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab0f13f4f3f1084f656730a_MV_LOGO.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div cc-number="60" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p><strong>Programme matcher</strong></p></div></div><header cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>Skills gaps, <strong>matched</strong>.</h2></header><div cc-number="42" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Your workforceâs remaining gaps: <strong>AI Building</strong>, <strong>AI Governance</strong>. Matched programme: <strong>AI Solutions Builder</strong> â for 250 of your 12,000 employees, within your levy budget.</p></div></div><div class="tabbed-content_embed-wrap"><div slot="product-demo"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"ProgrammeMatcher","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"texture":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd214ed35ed003f11bec6a_pink-cream.webp"},"showHeader":true,"headerTitle":"Programme matcher · 2 gaps","headerMeta":"Level 4 · Recommended","cardHeight":488,"mobileCardHeight":440,"replayOnScroll":false,"solutionsBuilderImage":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abcfa1c67bb7d14a86a3ceb_expression-embedded-pink-light.webp"},"transformationArchitectImage":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd157219c6aa5a0b868f3c_expression-exponential-blue-dark.webp"}}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2F9815b7ebe7ff2eef2de2.css"/><div data-root="true" style="display:contents"><!--$--><div role="group" aria-label="Programme matcher" class="pd-root pd-paused" style="--pd-card-h:488px;--pd-card-h-m:440px"><div class="pd-card"><div class="pd-texture" style="background-image:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd214ed35ed003f11bec6a_pink-cream.webp");background-size:400% auto;
2721background-position:100% 55%"></div><div class="pd-panel"><div style="position:absolute;inset:0"><div class="pd-winwrap" style="position:absolute;top:56px;left:36px;right:-96px;bottom:30px;animation:pd-win-d 0.8s var(--pd-ease) both"><div class="pd-mat" style="position:absolute;inset:-8px;border-radius:16px 0px 0px 16px;background:rgba(255,255,255,0.34);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 30px 80px rgba(0,0,0,0.35);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-sizing:border-box"></div><div class="pd-win" style="position:absolute;inset:0;background:#F0ECE1;border-radius:10px 0px 0px 10px;display:flex;flex-direction:row;overflow:hidden;color:#232220"><div class="pd-main" style="flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px 120px 24px 24px;box-sizing:border-box"><div class="pd-panel-head" style="display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(35,34,32,0.10);flex:none"><span style="display:flex;flex-direction:column;gap:3px"><span style="font-size:15px;font-weight:500;letter-spacing:-0.01em;color:#232220">Programme matcher · 2 gaps</span></span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;display:flex;align-items:center;gap:8px;white-space:nowrap"><span style="width:6px;height:6px;border-radius:50%;background:#232220"></span>Level 4 · Recommended</span></div><div class="pd-panel-body" style="flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;margin-right:-96px"><div class="pd-two" style="animation:pd-rise 0.7s var(--pd-ease) 0ms both"><div class="pd-gaps" style="display:flex;flex-direction:column;gap:12px"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Remaining gaps · 2 of 5</span><div class="pd-gap-tile" style="background:#FFFFFF;border-radius:10px;padding:14px 16px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:10px;
2721animation:pd-rise 0.7s var(--pd-ease) 80ms both"><div style="display:flex;justify-content:space-between;align-items:baseline;gap:8px"><span style="font-size:15px;font-weight:500;letter-spacing:-0.01em">AI Building</span><span style="font-family:var(--pd-font-display);font-weight:300;font-size:22px;line-height:1">32<!-- -->%</span></div><div style="height:6px;border-radius:999px;background:#F0ECE1;overflow:hidden"><div style="width:32%;height:100%;border-radius:999px;background:#7B16EE;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 300ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Team coverage</span></div><div class="pd-gap-tile" style="background:#FFFFFF;border-radius:10px;padding:14px 16px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:10px;animation:pd-rise 0.7s var(--pd-ease) 170ms both"><div style="display:flex;justify-content:space-between;align-items:baseline;gap:8px"><span style="font-size:15px;font-weight:500;letter-spacing:-0.01em">AI Governance</span><span style="font-family:var(--pd-font-display);font-weight:300;font-size:22px;line-height:1">41<!-- -->%</span></div><div style="height:6px;border-radius:999px;background:#F0ECE1;overflow:hidden"><div style="width:41%;height:100%;border-radius:999px;background:#7B16EE;transform-origin:left;animation:pd-grow 0.9s var(--pd-ease) 420ms both"></div></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Team coverage</span></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;margin-top:4px">Match confidence · 94%</span></div><div class="pd-flow" style="position:relative;height:6px;min-width:0;display:flex;justify-content:space-between;align-items:center"><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="position:absolute;top:0;width:6px;height:6px;border-radius:50%;background:#D6EE40;box-shadow:0 0 0 3px rgba(214,238,64,0.25);
2721animation:pd-travel 1.8s var(--pd-ease) 0s infinite"></span></div><div class="pd-cards" style="position:relative;display:flex;justify-content:flex-start;align-items:center;animation:pd-rise 0.7s var(--pd-ease) 260ms both"><div class="pd-back-card" style="position:absolute;top:0;bottom:0;left:150px;display:flex;align-items:center;opacity:0.7;animation:pd-rise 0.7s var(--pd-ease) 420ms both"><div style="position:relative;width:300px;box-sizing:border-box;border-radius:29.512px;background-color:#fff;overflow:hidden;display:flex;flex-direction:column;gap:31.275px;padding:26.062px;flex:none;zoom:0.56"><div style="display:flex;flex-direction:column;gap:26.062px;padding-bottom:20.85px;align-self:stretch"><div style="height:104.25px;align-self:stretch;border-radius:11.755px;overflow:hidden;background:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd157219c6aa5a0b868f3c_expression-exponential-blue-dark.webp") center / cover no-repeat"></div><div style="display:flex;flex-direction:column;gap:20.85px;align-self:stretch"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:17.375px;line-height:1.2;letter-spacing:-0.02em;color:#212223">AI Transformation Architect</span><div style="align-self:flex-start;border-radius:20.85px;box-shadow:0 0 0 0.869px #E9E9E9;padding:6.95px 8.687px;display:flex;align-items:center"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:10.425px;line-height:1.2;letter-spacing:0.02em;color:#212223;white-space:nowrap">Artificial Intelligence</span></div><span style="font-family:var(--pd-font-body);font-weight:380;font-size:13.9px;line-height:1.2;color:#212223;align-self:stretch">Identify and transform processes across departments with agentic AI and automation.</span><div style="display:flex;flex-direction:column;gap:6.95px;align-self:stretch"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#212223">Who's it for</span><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#7A7670">AI strategists</span></div><div style="display:flex;flex-direction:column;gap:6.95px;align-self:stretch"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#212223">Course details</span><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#7A7670">13 month delivery, plus 3 month assessment</span></div></div></div><div style="margin-top:auto;align-self:stretch"><div style="height:0.811px;background:#7A7670;align-self:stretch;margin-bottom:18px"></div><div style="display:flex;align-items:center;gap:9.067px"><svg width="27.201" height="27.201" viewBox="0 0 28 28" fill="none" aria-hidden="true" style="flex-shrink:0"><rect x="1.63629" y="17.2865" width="7.09586" height="7.09586" rx="3.54793" fill="#D6EE40"></rect><rect x="17.2272" y="17.2272" width="7.09586" height="7.09586" rx="3.54793" fill="#D6EE40"></rect><rect x="1.81339" y="1.81339" width="7.09586" height="7.09586" rx="3.54793" fill="#D6EE40"></rect><rect x="17.2865" y="1.63586" width="7.09586" height="7.09586" rx="0" fill="#D6EE40"></rect></svg><span style="font-family:var(--pd-font-mono);font-weight:400;font-size:10.425px;line-height:1.4;color:#7A7670;text-transform:uppercase">Level 4 Apprenticeship<br/>AI & Automation Practitioner</span></div></div></div></div><div class="pd-front-card" style="position:relative;width:300px;box-sizing:border-box;border-radius:29.512px;background-color:#fff;overflow:hidden;display:flex;flex-direction:column;gap:31.275px;padding:26.062px;flex:none;zoom:0.6;box-shadow:0 16px 40px rgba(35,34,32,0.22)"><div style="display:flex;flex-direction:column;gap:26.062px;padding-bottom:20.85px;align-self:stretch"><div style="height:104.25px;align-self:stretch;border-radius:11.755px;overflow:hidden;background:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abcfa1c67bb7d14a86a3ceb_expression-embedded-pink-light.webp") center / cover no-repeat"></div><div style="display:flex;flex-direction:column;gap:20.85px;align-self:stretch"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:17.375px;line-height:1.2;letter-spacing:-0.02em;color:#212223">AI Solutions Builder</span><div style="align-self:flex-start;border-radius:20.85px;box-shadow:0 0 0 0.869px #E9E9E9;padding:6.95px 8.687px;display:flex;align-items:center"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:10.425px;line-height:1.2;letter-spacing:0.02em;color:#212223;white-space:nowrap">Artificial Intelligence</span></div><span style="font-family:var(--pd-font-body);font-weight:380;font-size:13.9px;line-height:1.2;color:#212223;align-self:stretch">Create agentic AI experts who build solutions to improve team processes and eliminate repetitive tasks.</span><div style="display:flex;flex-direction:column;gap:6.95px;align-self:stretch"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#212223">Who's it for</span><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#7A7670">Mid-level employees and departmental AI champions</span></div><div style="display:flex;flex-direction:column;gap:6.95px;align-self:stretch"><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#212223">Course details</span><span style="font-family:var(--pd-font-body);font-weight:380;font-size:12.162px;line-height:1.2;color:#7A7670">13 month delivery, plus 3 month assessment</span></div></div></div><div style="margin-top:auto;align-self:stretch"><div style="height:0.811px;background:#7A7670;align-self:stretch;margin-bottom:18px"></div><div style="display:flex;align-items:center;gap:9.067px">
2721<svg width="27.201" height="27.201" viewBox="0 0 28 28" fill="none" aria-hidden="true" style="flex-shrink:0"><rect x="1.63629" y="17.2865" width="7.09586" height="7.09586" rx="3.54793" fill="#D6EE40"></rect><rect x="17.2272" y="17.2272" width="7.09586" height="7.09586" rx="3.54793" fill="#D6EE40"></rect><rect x="1.81339" y="1.81339" width="7.09586" height="7.09586" rx="3.54793" fill="#D6EE40"></rect><rect x="17.2865" y="1.63586" width="7.09586" height="7.09586" rx="0" fill="#D6EE40"></rect></svg><span style="font-family:var(--pd-font-mono);font-weight:400;font-size:10.425px;line-height:1.4;color:#7A7670;text-transform:uppercase">Level 4 Apprenticeship<br/>AI & Automation Practitioner</span></div></div></div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></template></code-island></div></div></div><div data-tabs-element="tab-panel" class="tabbed-content_panel"><div class="tabbed-content_content-wrap"><div class="tabbed-content_logo"><div class="tabbed-content_logo-wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab0f13f4f3f1084f656730a_MV_LOGO.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div cc-number="60" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p><strong>Learning and coaching</strong></p></div></div><header cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>Learn by <strong>doing</strong>.</h2></header><div cc-number="42" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Your team applies skills through expert instruction, dedicated group or one-to-one coaching, and <strong>Atlas</strong> supporting every moment in between.</p></div></div><div class="tabbed-content_embed-wrap"><div slot="product-demo"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"Learning","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"texture":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd234d8cb22a3055a0eab9_red-green.webp"},"showHeader":true,"headerTitle":"This week · Cohort of 12","headerMeta":"Week 9 of 56","cardHeight":488,"mobileCardHeight":440,"replayOnScroll":false,"portrait1":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd24a21b4b5591788fd1bd_photo-portrait-technology.webp"},"portrait2":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd24a2705d610b262db312_photo-portrait-nurse.webp"},"portrait3":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd24a2705d610b262db30f_photo-portrait-retail.webp"}}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2F9815b7ebe7ff2eef2de2.css"/><div data-root="true" style="display:contents"><!--$--><div role="group" aria-label="Learning and coaching" class="pd-root pd-paused" style="--pd-card-h:488px;--pd-card-h-m:440px"><div class="pd-card"><div class="pd-texture" style="background-image:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd234d8cb22a3055a0eab9_red-green.webp");background-size:230% auto;background-position:85% 60%"></div><div class="pd-panel"><div style="position:absolute;inset:0"><div class="pd-winwrap" style="position:absolute;top:36px;left:36px;right:-80px;bottom:36px;
2721animation:pd-win-r 0.8s var(--pd-ease) both"><div class="pd-mat" style="position:absolute;inset:-8px;border-radius:16px 0px 0px 16px;background:rgba(255,255,255,0.34);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 30px 80px rgba(0,0,0,0.35);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-sizing:border-box"></div><div class="pd-win" style="position:absolute;inset:0;background:#F0ECE1;border-radius:10px 0px 0px 10px;display:flex;flex-direction:column;overflow:hidden;color:#232220"><div class="pd-panel-head" style="display:flex;align-items:center;gap:12px;padding:14px 100px 14px 20px;background:#FFFFFF;flex:none"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%2293.07%2093.06%20186.38%20126.64%22%3E%3Cpath%20d%3D%22M279.6%2C93.2h-29.01l-51.31%2C84.04v-84.04h-29.37l-51.13%2C83.5v-83.5h-25.57v126.52h25.75l54.76-90.01v90.01h25.75l54.58-89.1v89.1h25.57v-126.52Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" alt="" style="height:16px;width:auto;display:block"/><span style="font-size:14px;font-weight:500;letter-spacing:-0.01em;color:#232220">This week · Cohort of 12</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;margin-left:auto;display:flex;align-items:center;gap:10px;white-space:nowrap">Week 9 of 56</span></div><div class="pd-main" style="flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px 104px 24px 24px;box-sizing:border-box"><div class="pd-panel-body" style="flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;margin-right:-80px"><div class="pd-three" style="align-items:stretch;
2721animation:pd-rise 0.7s var(--pd-ease) 0ms both"><div style="background:#FFFFFF;border-radius:10px;padding:16px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:14px;min-height:250px;animation:pd-rise 0.7s var(--pd-ease) 60ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Coaching</span><div class="pd-hide-m" style="display:flex"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd24a21b4b5591788fd1bd_photo-portrait-technology.webp" alt="" style="width:60px;height:60px;border-radius:50%;margin-left:0;border:2px solid #FFFFFF;box-sizing:border-box;object-fit:cover;display:block"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd24a2705d610b262db312_photo-portrait-nurse.webp" alt="" style="width:60px;height:60px;border-radius:50%;margin-left:-16px;border:2px solid #FFFFFF;box-sizing:border-box;object-fit:cover;display:block"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd24a2705d610b262db30f_photo-portrait-retail.webp" alt="" style="width:60px;height:60px;border-radius:50%;margin-left:-16px;border:2px solid #FFFFFF;box-sizing:border-box;object-fit:cover;display:block"/></div><span style="font-size:15px;font-weight:500;margin-top:auto">Group or one-to-one</span><span style="font-size:13px;font-weight:300;color:#383633">Weekly · 45 min</span><span style="font-family:var(--pd-font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;padding:4px 8px;border-radius:999px;background:#F0ECE1;white-space:nowrap">Next · Tue 14:00</span></div><div style="background:#232220;border-radius:10px;padding:16px;box-sizing:border-box;color:#FFFFFF;display:flex;flex-direction:column;gap:12px;min-height:250px;
2721animation:pd-rise 0.7s var(--pd-ease) 140ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#F0ECE1;display:flex;align-items:center;gap:8px"><span style="width:6px;height:6px;border-radius:50%;background:#D6EE40"></span>Atlas · Online</span><div style="align-self:flex-end;background:rgba(255,255,255,0.14);color:#FFFFFF;border-radius:12px 12px 4px 12px;padding:6px 10px;font-size:11px;line-height:1.35;max-width:90%;animation:pd-bubble 0.5s var(--pd-ease) 500ms both">How do I brief an agent safely?</div><div style="position:relative;align-self:flex-start;max-width:92%"><div style="position:absolute;left:0;top:0;background:#F0ECE1;border-radius:12px 12px 12px 4px;padding:8px 10px;display:flex;gap:3px;animation:pd-typing 6s linear 1100ms both"><span style="width:5px;height:5px;border-radius:50%;background:#232220;animation:pd-dot 1.1s ease-in-out 0s infinite"></span><span style="width:5px;height:5px;border-radius:50%;background:#232220;animation:pd-dot 1.1s ease-in-out 0.15s infinite"></span><span style="width:5px;height:5px;border-radius:50%;background:#232220;
2721animation:pd-dot 1.1s ease-in-out 0.3s infinite"></span></div><div style="background:#F0ECE1;color:#232220;border-radius:12px 12px 12px 4px;padding:6px 10px;font-size:11px;line-height:1.35;animation:pd-bubble 0.5s var(--pd-ease) 2700ms both">Start with scope and data access. Hereâs a template from your last project.</div></div></div><div style="background:#FFFFFF;border-radius:10px;padding:16px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:14px;min-height:250px;animation:pd-rise 0.7s var(--pd-ease) 220ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Expert instruction</span><div class="pd-hide-m" style="width:60px;height:60px;border-radius:4px;background:#F0ECE1;color:#232220;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1"><span style="font-family:var(--pd-font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Thu</span><span style="font-size:20px;font-weight:500;margin-top:3px">12</span></div><span style="font-size:15px;font-weight:500;margin-top:auto">Agentic workflows</span><span style="font-size:13px;font-weight:300;color:#383633">Live · Thu 10:00</span><span style="font-family:var(--pd-font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;padding:4px 8px;border-radius:999px;background:#F0ECE1;white-space:nowrap">42 attending</span></div></div></div></div></div></div></div></div></div></div><!--/$--></div></template></code-island></div></div></div><div data-tabs-element="tab-panel" class="tabbed-content_panel"><div class="tabbed-content_content-wrap"><div class="tabbed-content_logo"><div class="tabbed-content_logo-wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab0f13f4f3f1084f656730a_MV_LOGO.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div cc-number="60" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p><strong>Atlas</strong></p></div></div><header cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>Atlas, in the <strong>flow of work</strong>.</h2></header><div cc-number="42" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Connect <strong>Atlas</strong> with the tools your team uses, so they learn AI skills directly in the flow of work.</p></div></div><div class="tabbed-content_embed-wrap"><div slot="product-demo"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"Atlas","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"texture":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd238075d178af72859665_blue-yellow.webp"},"showHeader":true,"headerTitle":"Atlas · Work coach","headerMeta":"MCP · Connected","cardHeight":488,"mobileCardHeight":440,"replayOnScroll":false,"copilotLogo":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab3d8225902bb8f5aa8f04a_copilotsvg.webp"},"claudeLogo":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab3d82d01f86b85d620d806_claude.webp"}}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2F9815b7ebe7ff2eef2de2.css"/><div data-root="true" style="display:contents"><!--$-->
2721<div role="group" aria-label="Atlas" class="pd-root pd-paused" style="--pd-card-h:488px;--pd-card-h-m:440px"><div class="pd-card"><div class="pd-texture" style="background-image:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd238075d178af72859665_blue-yellow.webp");background-size:220% auto;background-position:92% 12%"></div><div class="pd-panel"><div style="position:absolute;inset:0"><div class="pd-winwrap" style="position:absolute;top:30px;left:44px;right:44px;bottom:-70px;animation:pd-win-s 0.8s var(--pd-ease) both"><div class="pd-mat" style="position:absolute;inset:-8px;border-radius:16px 16px 0px 0px;background:rgba(255,255,255,0.34);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 30px 80px rgba(0,0,0,0.35);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-sizing:border-box"></div><div class="pd-win" style="position:absolute;inset:0;background:#F0ECE1;border-radius:10px 10px 0px 0px;display:flex;flex-direction:row;overflow:hidden;color:#232220"><div class="pd-main" style="flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px 24px 94px 24px;box-sizing:border-box"><div class="pd-panel-head" style="display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(35,34,32,0.10);flex:none"><span style="display:flex;flex-direction:column;gap:3px"><span style="font-size:15px;font-weight:500;letter-spacing:-0.01em;color:#232220">Atlas · Work coach</span></span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;display:flex;align-items:center;gap:8px;white-space:nowrap"><span style="width:6px;height:6px;border-radius:50%;background:#232220"></span>MCP · Connected</span></div><div class="pd-panel-body" style="flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;margin-right:0"><div class="pd-s4" style="display:flex;flex-direction:column;gap:18px;
2721animation:pd-rise 0.7s var(--pd-ease) 0ms both"><div style="display:grid;grid-template-columns:auto minmax(20px,1fr) auto minmax(20px,1fr) auto;align-items:center;gap:8px;padding:4px 0"><div class="pd-tool" style="display:flex;flex-direction:column;align-items:center;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 200ms both"><div style="width:64px;height:64px;border-radius:16px;background:#FFFFFF;display:grid;place-items:center;overflow:hidden"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab3d8225902bb8f5aa8f04a_copilotsvg.webp" alt="Copilot" style="width:36px;height:36px;object-fit:contain;display:block"/></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Copilot</span></div><div style="position:relative;height:6px;min-width:0;display:flex;justify-content:space-between;align-items:center"><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="position:absolute;top:0;width:6px;height:6px;border-radius:50%;background:#D6EE40;box-shadow:0 0 0 3px rgba(214,238,64,0.25);
2721animation:pd-travel 1.8s var(--pd-ease) 0s infinite"></span></div><div style="display:flex;flex-direction:column;align-items:center;gap:14px"><div class="pd-orb" style="width:120px;height:120px;border-radius:50%;background:#FFFFFF;display:grid;place-items:center;box-shadow:0 4px 14px rgba(35,34,32,0.10), 0 1px 2px rgba(35,34,32,0.06)"><svg viewBox="0 0 100 100" width="86%" height="86%" style="display:block"><g style="transform-box:fill-box;transform-origin:50% 50%;animation:pd-atlas-breathe 5.4s cubic-bezier(0.65,0.05,0.36,1) infinite"><g style="animation:pd-atlas-look 7s cubic-bezier(0.65,0.05,0.36,1) infinite"><g fill="#232220" transform="translate(-3.5,4)"><g style="animation:pd-atlas-arch 5.4s cubic-bezier(0.65,0.05,0.36,1) infinite"><path d="M0 0H6.879V30H0.81V8.871L-12.042 30H-18.111Z" transform="translate(40.1,18)"></path></g><g style="animation:pd-atlas-arch-r 5.4s cubic-bezier(0.65,0.05,0.36,1) 80ms infinite"><path d="M0 0H6.879V30H0.81V8.871L-12.042 30H-18.111Z" transform="translate(71.1,18)"></path></g></g><g transform="translate(-2,2)"><path d="M 36,64 C 45,71 57,71 68,64" fill="none" stroke="#232220" stroke-width="6" stroke-linecap="butt" style="animation:pd-atlas-mouth 5.4s cubic-bezier(0.65,0.05,0.36,1) infinite"></path></g></g></g></svg></div><span style="display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#232220;font-size:12px;color:#FFFFFF"><span style="width:6px;height:6px;border-radius:50%;background:#D6EE40;
2721animation:pd-pulse 1.8s ease-in-out infinite"></span>Atlas is listening</span></div><div style="position:relative;height:6px;min-width:0;display:flex;justify-content:space-between;align-items:center"><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="width:3px;height:3px;border-radius:50%;background:rgba(35,34,32,0.25)"></span><span style="position:absolute;top:0;width:6px;height:6px;border-radius:50%;background:#D6EE40;box-shadow:0 0 0 3px rgba(214,238,64,0.25);animation:pd-travel-r 1.8s var(--pd-ease) 0.9s infinite"></span></div><div class="pd-tool" style="display:flex;flex-direction:column;align-items:center;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 320ms both"><div style="width:64px;height:64px;border-radius:16px;background:#FFFFFF;display:grid;place-items:center;overflow:hidden"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab3d82d01f86b85d620d806_claude.webp" alt="Claude" style="width:36px;height:36px;object-fit:contain;display:block"/></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Claude</span></div></div><div class="pd-s4-copy" style="display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center"><span style="font-family:var(--pd-font-display);font-weight:300;font-size:26px;line-height:1;letter-spacing:-0.02em">Connected to your AI tool</span><span style="font-size:14px;font-weight:300;color:#383633">Starting with Copilot and Claude</span></div><div class="pd-hide-m" style="display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:8px;padding-top:14px;border-top:1px solid rgba(35,34,32,0.10)"><div style="display:flex;flex-direction:column;gap:4px;min-width:0;
2721animation:pd-rise 0.7s var(--pd-ease) 500ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">Calendar</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">12 weeks read</span></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0;animation:pd-rise 0.7s var(--pd-ease) 590ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">Email</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">31 threads</span></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0;animation:pd-rise 0.7s var(--pd-ease) 680ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">Files</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">9 documents</span></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0;
2721animation:pd-rise 0.7s var(--pd-ease) 770ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">Copilot</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Connected</span></div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></template></code-island></div></div></div><div data-tabs-element="tab-panel" class="tabbed-content_panel"><div class="tabbed-content_content-wrap"><div class="tabbed-content_logo"><div class="tabbed-content_logo-wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab0f13f4f3f1084f656730a_MV_LOGO.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div cc-number="60" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p><strong>Progress</strong></p></div></div><header cc-number="11" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2><strong>Upskill in AI</strong> as you work.</h2></header><div cc-number="42" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Every skill earned in the flow of work is tracked, so progress <strong>compounds</strong> across five AI capability areas.</p></div></div><div class="tabbed-content_embed-wrap"><div slot="product-demo"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"Progress","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"texture":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd221a7476a6b700fbc5cf_blue-green.webp"},"showHeader":true,"headerTitle":"Progress · Sam Okafor","headerMeta":"41 of 54 skills","cardHeight":488,"mobileCardHeight":440,"replayOnScroll":false,"avatar":{"src":""}}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2F9815b7ebe7ff2eef2de2.css"/><div data-root="true" style="display:contents"><!--$--><div role="group" aria-label="Progress" class="pd-root pd-paused" style="--pd-card-h:488px;--pd-card-h-m:440px"><div class="pd-card"><div class="pd-texture" style="background-image:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd221a7476a6b700fbc5cf_blue-green.webp");background-size:280% auto;background-position:4% 96%"></div><div class="pd-panel"><div style="position:absolute;inset:0"><div class="pd-winwrap" style="position:absolute;top:40px;left:60px;right:-110px;bottom:-70px;
2721animation:pd-win-u 0.8s var(--pd-ease) both"><div class="pd-mat" style="position:absolute;inset:-8px;border-radius:16px 0px 0px 0px;background:rgba(255,255,255,0.34);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 30px 80px rgba(0,0,0,0.35);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-sizing:border-box"></div><div class="pd-win" style="position:absolute;inset:0;background:#F0ECE1;border-radius:10px 0px 0px 0px;display:flex;flex-direction:column;overflow:hidden;color:#232220"><div class="pd-panel-head" style="display:flex;align-items:center;gap:12px;padding:14px 130px 14px 20px;background:#FFFFFF;flex:none"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%2293.07%2093.06%20186.38%20126.64%22%3E%3Cpath%20d%3D%22M279.6%2C93.2h-29.01l-51.31%2C84.04v-84.04h-29.37l-51.13%2C83.5v-83.5h-25.57v126.52h25.75l54.76-90.01v90.01h25.75l54.58-89.1v89.1h25.57v-126.52Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" alt="" style="height:16px;width:auto;display:block"/><span style="font-size:14px;font-weight:500;letter-spacing:-0.01em;color:#232220">Progress · Sam Okafor</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;margin-left:auto;display:flex;align-items:center;gap:10px;white-space:nowrap">41 of 54 skills</span></div><div class="pd-main" style="flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px 134px 94px 24px;box-sizing:border-box"><div class="pd-panel-body" style="flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;margin-right:0"><div class="pd-s5" style="display:flex;flex-direction:column;gap:14px"><div class="pd-hide-m pd-s5-top" style="display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:10px"><div style="background:#FFFFFF;border-radius:10px;padding:12px 14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:6px;
2721animation:pd-rise 0.7s var(--pd-ease) 60ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Earned</span><span style="font-family:var(--pd-font-display);font-weight:300;font-size:22px;line-height:1;letter-spacing:-0.02em;color:#232220">41</span></div><div style="background:#FFFFFF;border-radius:10px;padding:12px 14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:6px;animation:pd-rise 0.7s var(--pd-ease) 140ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">This month</span><span style="font-family:var(--pd-font-display);font-weight:300;font-size:22px;line-height:1;letter-spacing:-0.02em;color:#232220">+6</span></div><div style="background:#FFFFFF;border-radius:10px;padding:12px 14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:6px;animation:pd-rise 0.7s var(--pd-ease) 220ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Streak</span><span style="font-family:var(--pd-font-display);font-weight:300;font-size:22px;line-height:1;letter-spacing:-0.02em;color:#232220">9 wks</span></div><div style="background:#FFFFFF;border-radius:10px;padding:12px 14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:6px;
2721animation:pd-rise 0.7s var(--pd-ease) 300ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Level</span><span style="font-family:var(--pd-font-display);font-weight:300;font-size:22px;line-height:1;letter-spacing:-0.02em;color:#232220">4</span></div></div><div class="pd-prog" style="animation:pd-rise 0.7s var(--pd-ease) 0ms both"><div style="display:flex;flex-direction:column;gap:22px"><div class="pd-item" style="display:flex;align-items:center;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 120ms both"><div style="width:34px;height:34px;border-radius:10px;background:#7B16EE;flex:none;display:grid;place-items:center"><div style="width:10px;height:10px;border-radius:3px;border:1.5px solid #FFFFFF"></div></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">AI fluency</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">12<!-- --> / <!-- -->15</span></div></div><div class="pd-item" style="display:flex;align-items:center;gap:12px;
2721animation:pd-rise 0.7s var(--pd-ease) 200ms both"><div style="width:34px;height:34px;border-radius:10px;background:#B27CF5;flex:none;display:grid;place-items:center"><div style="width:10px;height:10px;border-radius:3px;border:1.5px solid #232220"></div></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Strategy & delivery</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">11<!-- --> / <!-- -->15</span></div></div><div class="pd-item" style="display:flex;align-items:center;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 280ms both"><div style="width:34px;height:34px;border-radius:10px;background:#CAA2F8;flex:none;display:grid;place-items:center"><div style="width:10px;height:10px;border-radius:3px;border:1.5px solid #232220"></div></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Governance & compliance</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">7<!-- --> / <!-- -->9</span></div></div></div><div class="pd-ring" style="position:relative;width:180px;height:180px;justify-self:center"><svg viewBox="0 0 220 220" width="180" height="180" style="display:block"><g><circle cx="110" cy="110" r="100" fill="none" stroke="#FFFFFF" stroke-width="9"></circle><circle cx="110" cy="110" r="100" fill="none" stroke="#7B16EE" stroke-width="9" stroke-linecap="round" stroke-dasharray="628.3185307179587" transform="rotate(-90 110 110)" style="--c:628.3185307179587;--o:125.6637061435917;
2721animation:pd-ring 1.4s var(--pd-ease) 200ms both"></circle></g><g><circle cx="110" cy="110" r="85" fill="none" stroke="#FFFFFF" stroke-width="9"></circle><circle cx="110" cy="110" r="85" fill="none" stroke="#9A50F2" stroke-width="9" stroke-linecap="round" stroke-dasharray="534.0707511102648" transform="rotate(-90 110 110)" style="--c:534.0707511102648;--o:133.5176877775662;animation:pd-ring 1.4s var(--pd-ease) 320ms both"></circle></g><g><circle cx="110" cy="110" r="70" fill="none" stroke="#FFFFFF" stroke-width="9"></circle><circle cx="110" cy="110" r="70" fill="none" stroke="#B27CF5" stroke-width="9" stroke-linecap="round" stroke-dasharray="439.822971502571" transform="rotate(-90 110 110)" style="--c:439.822971502571;--o:117.28612573401897;animation:pd-ring 1.4s var(--pd-ease) 440ms both"></circle></g><g><circle cx="110" cy="110" r="55" fill="none" stroke="#FFFFFF" stroke-width="9"></circle><circle cx="110" cy="110" r="55" fill="none" stroke="#CAA2F8" stroke-width="9" stroke-linecap="round" stroke-dasharray="345.57519189487726" transform="rotate(-90 110 110)" style="--c:345.57519189487726;--o:76.7944870877505;
2721animation:pd-ring 1.4s var(--pd-ease) 560ms both"></circle></g><g><circle cx="110" cy="110" r="40" fill="none" stroke="#FFFFFF" stroke-width="9"></circle><circle cx="110" cy="110" r="40" fill="none" stroke="#E5D0FC" stroke-width="9" stroke-linecap="round" stroke-dasharray="251.32741228718345" transform="rotate(-90 110 110)" style="--c:251.32741228718345;--o:71.80783208205241;animation:pd-ring 1.4s var(--pd-ease) 680ms both"></circle></g></svg><div style="position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none;animation:pd-rise 0.7s var(--pd-ease) 900ms both"><span style="font-family:var(--pd-font-display);font-weight:300;font-size:24px;line-height:1">41</span><span style="font-family:var(--pd-font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">of 54</span></div></div><div style="display:flex;flex-direction:column;gap:22px"><div class="pd-item" style="display:flex;align-items:center;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 160ms both"><div style="width:34px;height:34px;border-radius:10px;background:#9A50F2;flex:none;display:grid;place-items:center"><div style="width:10px;height:10px;border-radius:3px;border:1.5px solid #FFFFFF"></div></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Automation</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">6<!-- --> / <!-- -->8</span></div></div><div class="pd-item" style="display:flex;align-items:center;gap:12px;
2721animation:pd-rise 0.7s var(--pd-ease) 240ms both"><div style="width:34px;height:34px;border-radius:10px;background:#E5D0FC;flex:none;display:grid;place-items:center"><div style="width:10px;height:10px;border-radius:3px;border:1.5px solid #232220"></div></div><div style="display:flex;flex-direction:column;gap:4px;min-width:0"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Agentic systems</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220">5<!-- --> / <!-- -->7</span></div></div></div></div><div class="pd-hide-m" style="display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid rgba(35,34,32,0.10);animation:pd-rise 0.7s var(--pd-ease) 500ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Recently earned</span><div style="display:flex;align-items:center;gap:10px;animation:pd-rise 0.7s var(--pd-ease) 560ms both"><span style="width:6px;height:6px;border-radius:50%;background:#D6EE40;flex:none;box-shadow:0 0 0 4px #232220;margin-left:4px;margin-right:4px"></span><span style="font-size:13px;font-weight:500;color:#232220">Briefing an agent safely</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;margin-left:auto;white-space:nowrap">Agentic systems<!-- --> · <!-- -->Today</span></div><div style="display:flex;align-items:center;gap:10px;
2721animation:pd-rise 0.7s var(--pd-ease) 640ms both"><span style="width:6px;height:6px;border-radius:50%;background:#D6EE40;flex:none;box-shadow:0 0 0 4px #232220;margin-left:4px;margin-right:4px"></span><span style="font-size:13px;font-weight:500;color:#232220">Prompt evaluation</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;margin-left:auto;white-space:nowrap">AI fluency<!-- --> · <!-- -->Tue</span></div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></template></code-island></div></div></div><div data-tabs-element="tab-panel" class="tabbed-content_panel"><div class="tabbed-content_content-wrap"><div class="tabbed-content_logo"><div class="tabbed-content_logo-wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6ab0f13f4f3f1084f656730a_MV_LOGO.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div cc-number="60" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p><strong>Impact</strong></p></div></div><header cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>Measure what <strong>matters</strong>.</h2></header><div cc-number="42" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Measure AI transformation across your organisation through <strong>earned skills</strong> and <strong>credible ROI</strong>.</p></div></div><div class="tabbed-content_embed-wrap"><div slot="product-demo"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"Impact","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"texture":{"src":"https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd241aa4ba29084c6b6483_red-green-intense.webp"},"showHeader":true,"headerTitle":"Impact · Whole organisation","headerMeta":"FY26 · Verified","cardHeight":488,"mobileCardHeight":440,"replayOnScroll":false}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2F9815b7ebe7ff2eef2de2.css"/><div data-root="true" style="display:contents"><!--$--><div role="group" aria-label="Impact" class="pd-root pd-paused" style="--pd-card-h:488px;--pd-card-h-m:440px"><div class="pd-card"><div class="pd-texture" style="background-image:url("https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd241aa4ba29084c6b6483_red-green-intense.webp");background-size:260% auto;background-position:100% 0%"></div><div class="pd-panel"><div style="position:absolute;inset:0"><div class="pd-winwrap" style="position:absolute;top:36px;left:28px;right:-60px;bottom:36px;
2721animation:pd-win 0.8s var(--pd-ease) both"><div class="pd-mat" style="position:absolute;inset:-8px;border-radius:16px 0px 0px 16px;background:rgba(255,255,255,0.34);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 30px 80px rgba(0,0,0,0.35);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-sizing:border-box"></div><div class="pd-win" style="position:absolute;inset:0;background:#F0ECE1;border-radius:10px 0px 0px 10px;display:flex;flex-direction:row;overflow:hidden;color:#232220"><div class="pd-side" style="width:150px;flex:none;background:#FFFFFF;padding:20px 12px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22120.21%2087.35%20702.57%20116.63%22%3E%3Cpath%20d%3D%22M713.64%2C153.17l-9.95-2.1c-6.09-1.4-9.13-4.32-9.13-8.99%2C0-5.6%2C5.5-9.22%2C11.83-9.22%2C8.9%2C0%2C13.47%2C5.72%2C14.4%2C11.67h17.1c-2.93-18.91-16.63-26.15-31.5-26.15-18.03%2C0-29.28%2C12.26-29.28%2C25.45%2C0%2C12.49%2C9.02%2C18.91%2C21.08%2C21.83l9.49%2C2.22c9.49%2C2.22%2C13.7%2C4.55%2C13.7%2C10.39%2C0%2C5.49-4.22%2C11.09-12.3%2C11.09-9.84%2C0-14.05-5.72-14.76-12.84h-17.57c.35%2C15.64%2C12.53%2C27.31%2C31.62%2C27.31s30.09-13.07%2C30.09-26.5c.12-11.56-9.02-20.66-24.83-24.16ZM671.84%2C120.25h-45.2v81.71h16.51v-67.12h28.69v-14.59ZM521.24%2C120.25l-20.85%2C60.7-21.08-60.7h-17.92l30.45%2C81.71h16.98l30.45-81.71h-18.03ZM453.09%2C120.25h-16.51v81.71h16.51v-81.71ZM405.66%2C97.14h-16.51v23.11h-21.31v14.59h21.31v67.12h16.51v-67.12h21.08v-14.59h-21.08v-23.11ZM359.99%2C97.14h-16.51v104.82h16.51v-104.82ZM310.1%2C166.24c0%2C13.42-8.08%2C21.59-19.21%2C21.59s-19.09-8.17-19.09-21.59v-45.99h-16.51v45.64c0%2C22.99%2C13%2C37.94%2C35.25%2C37.94s36.07-15.29%2C36.07-37.94v-45.64h-16.51v45.99ZM240.66%2C120.25h-18.74l-33.14%2C54.28v-54.28h-18.97l-33.02%2C53.93v-53.93h-16.51v81.71h16.63l35.37-58.13v58.13h16.63l35.25-57.55v57.55h16.51v-81.71ZM444.77%2C108.93c5.97%2C0%2C10.77-4.79%2C10.77-10.74s-4.8-10.62-10.77-10.62-10.77%2C4.79-10.77%2C10.62%2C4.8%2C10.74%2C10.77%2C10.74ZM538.81%2C161.22c0%2C24.98%2C17.92%2C42.6%2C40.52%2C42.6%2C20.49%2C0%2C33.61-10.62%2C37.36-27.55h-17.57c-1.29%2C6.19-6.79%2C12.14-18.62%2C12.14-12.76%2C0-22.95-7.35-24.24-21.01h60.89c.23-1.87.35-4.32.35-6.19%2C0-24.4-14.87-42.84-38.53-42.84s-40.17%2C18.44-40.17%2C42.84ZM555.91%2C154.69c2.22-12.72%2C10.54-20.89%2C23.07-20.89s20.26%2C7.94%2C22.02%2C20.89h-45.08ZM744.21%2C161.22c0%2C24.98%2C17.92%2C42.6%2C40.52%2C42.6%2C20.49%2C0%2C33.61-10.62%2C37.36-27.55h-17.57c-1.29%2C6.19-6.79%2C12.14-18.62%2C12.14-12.76%2C0-22.95-7.35-24.24-21.01h60.89c.23-1.87.35-4.32.35-6.19%2C0-24.4-14.87-42.84-38.53-42.84s-40.17%2C18.44-40.17%2C42.84ZM761.3%2C154.69c2.23-12.72%2C10.54-20.89%2C23.07-20.89s20.26%2C7.94%2C22.02%2C20.89h-45.09Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" alt="Multiverse" style="height:15px;width:auto;align-self:flex-start;margin-left:8px;display:block"/><div style="display:flex;flex-direction:column;gap:4px;margin-top:20px"><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1z"></path></svg>Overview</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><path d="M7 12h10"></path></svg>Skills scan</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"></path></svg>Programmes</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:transparent;font-size:13px;font-weight:300;color:#232220;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#232220" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>Progress</div><div style="display:flex;align-items:center;gap:8px;padding:8px 8px;border-radius:8px;background:#232220;font-size:13px;font-weight:500;color:#FFFFFF;white-space:nowrap"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#D6EE40" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none"><path d="M3 3v18h18"></path><path d="M7 15l4-4 4 4 5-6"></path></svg>Impact<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:none;margin-left:auto"><path d="m9 6 6 6-6 6"></path></svg></div></div></div><div class="pd-main" style="flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px 84px 24px 24px;box-sizing:border-box"><div class="pd-panel-head" style="display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(35,34,32,0.10);flex:none"><span style="display:flex;flex-direction:column;gap:3px"><span style="font-size:15px;font-weight:500;letter-spacing:-0.01em;color:#232220">Impact · Whole organisation</span></span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;display:flex;align-items:center;gap:8px;white-space:nowrap"><span style="width:6px;height:6px;border-radius:50%;background:#232220"></span>FY26 · Verified</span></div><div class="pd-panel-body" style="flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;margin-right:-60px"><div class="pd-s6" style="display:flex;flex-direction:column;gap:12px;
2721animation:pd-rise 0.7s var(--pd-ease) 0ms both"><div class="pd-three pd-stats"><div style="background:#FFFFFF;border-radius:10px;padding:14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 60ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Skills earned</span><span class="pd-val" style="font-family:var(--pd-font-display);font-weight:300;font-size:34px;line-height:0.9;letter-spacing:-0.02em;white-space:nowrap;display:flex;align-items:baseline;color:#232220">1,240</span><div><span style="font-family:var(--pd-font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;padding:4px 8px;border-radius:999px;background:#F0ECE1;white-space:nowrap">+18% QoQ</span></div></div><div style="background:#FFFFFF;border-radius:10px;padding:14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:12px;animation:pd-rise 0.7s var(--pd-ease) 140ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Hours returned</span><span class="pd-val" style="font-family:var(--pd-font-display);font-weight:300;font-size:34px;line-height:0.9;letter-spacing:-0.02em;white-space:nowrap;display:flex;align-items:baseline;color:#232220">600<span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;margin-left:6px">a week</span></span><div><span style="font-family:var(--pd-font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;padding:4px 8px;border-radius:999px;background:#F0ECE1;white-space:nowrap">+12% QoQ</span></div></div><div style="background:#FFFFFF;border-radius:10px;padding:14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:12px;
2721animation:pd-rise 0.7s var(--pd-ease) 220ms both"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">ROI</span><span class="pd-val" style="font-family:var(--pd-font-display);font-weight:300;font-size:34px;line-height:0.9;letter-spacing:-0.02em;white-space:nowrap;display:flex;align-items:baseline;color:#232220">4.2Ã</span><div><span style="font-family:var(--pd-font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;padding:4px 8px;border-radius:999px;background:#F0ECE1;white-space:nowrap">Verified</span></div></div></div><div class="pd-chart-tile" style="background:#FFFFFF;border-radius:10px;padding:14px;box-sizing:border-box;color:#232220;display:flex;flex-direction:column;gap:14px;animation:pd-rise 0.7s var(--pd-ease) 320ms both"><div style="display:flex;justify-content:space-between;gap:12px"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">Skills earned across the organisation</span><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633">12 months</span></div><div class="pd-chart" style="display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:10px;align-items:end;height:104px"><div style="display:flex;flex-direction:column;gap:8px;height:100%;justify-content:flex-end"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:center;animation:pd-count 0.6s var(--pd-ease) 900ms both">223</span><div style="height:18%;border-radius:10px 10px 4px 4px;background:#E5D0FC;transform-origin:bottom;animation:pd-grow-y 0.9s var(--pd-ease) 420ms both"></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;text-align:center">Q1</span></div><div style="display:flex;flex-direction:column;gap:8px;height:100%;justify-content:flex-end"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:center;animation:pd-count 0.6s var(--pd-ease) 1010ms both">446</span><div style="height:36%;border-radius:10px 10px 4px 4px;background:#CAA2F8;transform-origin:bottom;animation:pd-grow-y 0.9s var(--pd-ease) 530ms both"></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;text-align:center">Q2</span></div><div style="display:flex;flex-direction:column;gap:8px;height:100%;justify-content:flex-end"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:center;animation:pd-count 0.6s var(--pd-ease) 1120ms both">756</span><div style="height:61%;border-radius:10px 10px 4px 4px;background:#9A50F2;transform-origin:bottom;animation:pd-grow-y 0.9s var(--pd-ease) 640ms both"></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;text-align:center">Q3</span></div><div style="display:flex;flex-direction:column;gap:8px;height:100%;justify-content:flex-end"><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#232220;text-align:center;animation:pd-count 0.6s var(--pd-ease) 1230ms both">1240</span><div style="height:100%;border-radius:10px 10px 4px 4px;background:#7B16EE;transform-origin:bottom;animation:pd-grow-y 0.9s var(--pd-ease) 750ms both"></div><span style="font-family:var(--pd-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#383633;text-align:center">Q4</span></div></div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></template></code-island></div></div></div></div></div><div data-tabs-element="link-list" slot="tab-link" class="tabbed-content_link-list"><div data-tabs-element="link-list" slot="tab-link" class="tabbed-content_link-list-inner"><button data-tabs-element="tab-link" id="" class="tabbed-content_link"><div template="heading" cc-number="" class="u-text-style-eyebrow">Skills scan</div></button><button data-tabs-element="tab-link" id="" class="tabbed-content_link"><div template="heading" cc-number="" class="u-text-style-eyebrow">Programme matcher</div></button><button data-tabs-element="tab-link" id="" class="tabbed-content_link"><div template="heading" cc-number="" class="u-text-style-eyebrow">Coaching</div></button><button data-tabs-element="tab-link" id="" class="tabbed-content_link"><div template="heading" cc-number="" class="u-text-style-eyebrow">Atlas</div></button><button data-tabs-element="tab-link" id="" class="tabbed-content_link"><div template="heading" cc-number="" class="u-text-style-eyebrow">Progress</div></button><button data-tabs-element="tab-link" id="" class="tabbed-content_link"><div template="heading" cc-number="" class="u-text-style-eyebrow">Impact</div></button></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></div></section></div></div><div id="hero-split-image"><section data-wf--section-sticky-text-media--style-layout-order="standard" class="new-text-media_wrap u-section"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><div class="u-container"><div class="new-text-media_layout"><div id="w-node-f115f477-a7cd-65cb-c8ec-f8092cdca0de-2cdca0da" class="new-text-media_content"><div class="new-text-media_lockup"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed">
2721<svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 2722<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 2723</svg></div><p class="eyebrow_text">The adoption gap</p></div></div><div class="new-text-media_sticky-wrap"><div class="new-text-media_sticky"><header data-split="lines" cc-number="14" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>You bought AI. </h2><h2>The <strong>productivity never showed up.</strong></h2></header><p cc-number="38" class="new-text-media_text">Licences sit unused, pilots stall, gains stay theoretical. The bottleneck isnât the technology - itâs that nobody equipped your people to use it.</p></div></div></div><div class="new-text-media_style custom-ar-1"><div class="u-slot new-text-media_slot"><div data-video-src="https://design-assets.multiverse.io/assets/marketing-site/adoption-gap.2fc99ec9.mp4" class="bg-video_wrap"><div class="bg-video_embed w-embed w-script">
2723<script> 2724(() => { 2725 const wrap = document.currentScript.closest('[data-video-src]'); 2726 if (!wrap) return; 2727 2728 const desktopSrc = wrap.getAttribute('data-video-src'); 2729 if (!desktopSrc) return; // image fallback if no URL 2730 const mobileSrc = wrap.getAttribute('data-video-src-mobile'); 2731 const isHero = wrap.hasAttribute('data-video-hero'); 2732 2733 const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches; 2734 const saveData = navigator.connection?.saveData; 2735 if (reduceMotion || saveData) { 2736 // Poster only; hide the toggle since there's nothing to control 2737 const hideToggle = () => wrap.querySelector('[data-video="toggle"]')?.setAttribute('hidden', ''); 2738 document.readyState === 'loading' 2739 ? document.addEventListener('DOMContentLoaded', hideToggle, { once: true }) 2740 : hideToggle(); 2741 return; 2742 } 2743 2744 const video = document.createElement('video'); 2745 video.setAttribute('data-loop-video', ''); 2746 video.defaultMuted = true; 2747 video.muted = true; 2748 video.setAttribute('muted', ''); 2749 video.playsInline = true; 2750 video.setAttribute('webkit-playsinline', ''); 2751 video.loop = true; 2752 video.preload = 'none'; // nothing downloads until load() runs 2753 video.setAttribute('aria-hidden', 'true'); 2754 video.tabIndex = -1; 2755 video.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;object-fit:cover;'; 2756 wrap.appendChild(video); 2757 2758 let loaded = false; 2759 let inView = false; 2760 let userPaused = false; 2761 2762 const load = () => { 2763 if (loaded) return; 2764 loaded = true; 2765 const useMobile = mobileSrc && matchMedia('(max-width: 767px)').matches; 2766 video.src = useMobile ? mobileSrc : desktopSrc; 2767 video.preload = 'auto'; 2768 }; 2769 2770 const tryPlay = () => { 2771 if (loaded && inView && !userPaused) video.play().catch(() => {}); 2772 }; 2773 2774 video.addEventListener('playing', () => { 2775 wrap.querySelector('[data-video="poster"]')?.classList.add('is-video-ready'); 2776 }, { once: true }); 2777 2778 // Hero: wait until the page has loaded so the poster wins LCP. 2779 // Everything else: start loading when it's within 300px of the viewport. 2780 if (isHero) { 2781 const start = () => { load(); tryPlay(); }; 2782 document.readyState === 'complete' ? start() : window.addEventListener('load', start, { once: true }); 2783 } else { 2784 const loadObserver = new IntersectionObserver((entries) => { 2785 if (entries.some(e => e.isIntersecting)) { 2786 load(); 2787 tryPlay(); 2788 loadObserver.disconnect(); 2789 } 2790 }, { rootMargin: '300px 0px' }); 2791 loadObserver.observe(wrap); 2792 } 2793 2794 // Play/pause by visibility â this video only 2795 new IntersectionObserver(([entry]) => { 2796 inView = entry.isIntersecting; 2797 inView ? tryPlay() : video.pause(); 2798 }, { threshold: 0.25 }).observe(wrap); 2799 2800 const wireToggle = () => { 2801 const toggle = wrap.querySelector('[data-video="toggle"]'); 2802 if (!toggle) return; 2803 const playIcon = toggle.querySelector('[data-video="icon-play"]'); 2804 const pauseIcon = toggle.querySelector('[data-video="icon-pause"]'); 2805 2806 toggle.addEventListener('click', () => { 2807 if (video.paused) { 2808 userPaused = false; 2809 load(); 2810 video.play().catch(() => {}); 2811 toggle.setAttribute('aria-label', 'Pause background video'); 2812 playIcon?.classList.add('u-hide-button'); 2813 pauseIcon?.classList.remove('u-hide-button'); 2814 } else { 2815 userPaused = true; 2816 video.pause(); 2817 toggle.setAttribute('aria-label', 'Play background video'); 2818 pauseIcon?.classList.add('u-hide-button'); 2819 playIcon?.classList.remove('u-hide-button'); 2820 } 2821 }); 2822 }; 2823 2824 document.readyState === 'loading' 2825 ? document.addEventListener('DOMContentLoaded', wireToggle, { once: true }) 2826 : wireToggle(); 2827})(); 2828</script>
2828</div><img fetchpriority="high" data-video="poster" alt="" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe291d2ce842efff606bd1_adoption-gap.avif" loading="eager" sizes="(max-width: 1440px) 100vw, 1440px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe291d2ce842efff606bd1_adoption-gap-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe291d2ce842efff606bd1_adoption-gap-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe291d2ce842efff606bd1_adoption-gap-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe291d2ce842efff606bd1_adoption-gap.avif 1280w" class="bg-video_poster"/></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></section><section data-wf--section-sticky-text-media--style-layout-order="reverse" class="new-text-media_wrap u-section"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><div class="u-container"><div class="new-text-media_layout"><div id="w-node-f115f477-a7cd-65cb-c8ec-f8092cdca0de-2cdca0da" class="new-text-media_content w-variant-0665b4e5-65a8-f6dc-82d8-adabd795bdf1"><div class="new-text-media_lockup"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 2829<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 2830</svg></div><p class="eyebrow_text">What we do</p></div></div><div class="new-text-media_sticky-wrap"><div class="new-text-media_sticky"><header data-split="lines" cc-number="15" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>The layer where AI ambition <strong>becomes AI adoption</strong></h2></header><p cc-number="37" class="new-text-media_text">Multiverse sits between tools and teams: embedding AI capability into real workflows. Spots skills gaps in real time. Delivers expert coaching at the moments that matter.</p></div></div></div><div class="new-text-media_style w-variant-0665b4e5-65a8-f6dc-82d8-adabd795bdf1"><div class="u-slot new-text-media_slot"><div data-video-src="https://design-assets.multiverse.io/assets/marketing-site/what-we-do.89cb035b.mp4" class="bg-video_wrap"><div class="bg-video_embed w-embed w-script">
2830<script> 2831(() => { 2832 const wrap = document.currentScript.closest('[data-video-src]'); 2833 if (!wrap) return; 2834 2835 const desktopSrc = wrap.getAttribute('data-video-src'); 2836 if (!desktopSrc) return; // image fallback if no URL 2837 const mobileSrc = wrap.getAttribute('data-video-src-mobile'); 2838 const isHero = wrap.hasAttribute('data-video-hero'); 2839 2840 const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches; 2841 const saveData = navigator.connection?.saveData; 2842 if (reduceMotion || saveData) { 2843 // Poster only; hide the toggle since there's nothing to control 2844 const hideToggle = () => wrap.querySelector('[data-video="toggle"]')?.setAttribute('hidden', ''); 2845 document.readyState === 'loading' 2846 ? document.addEventListener('DOMContentLoaded', hideToggle, { once: true }) 2847 : hideToggle(); 2848 return; 2849 } 2850 2851 const video = document.createElement('video'); 2852 video.setAttribute('data-loop-video', ''); 2853 video.defaultMuted = true; 2854 video.muted = true; 2855 video.setAttribute('muted', ''); 2856 video.playsInline = true; 2857 video.setAttribute('webkit-playsinline', ''); 2858 video.loop = true; 2859 video.preload = 'none'; // nothing downloads until load() runs 2860 video.setAttribute('aria-hidden', 'true'); 2861 video.tabIndex = -1; 2862 video.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;object-fit:cover;'; 2863 wrap.appendChild(video); 2864 2865 let loaded = false; 2866 let inView = false; 2867 let userPaused = false; 2868 2869 const load = () => { 2870 if (loaded) return; 2871 loaded = true; 2872 const useMobile = mobileSrc && matchMedia('(max-width: 767px)').matches; 2873 video.src = useMobile ? mobileSrc : desktopSrc; 2874 video.preload = 'auto'; 2875 }; 2876 2877 const tryPlay = () => { 2878 if (loaded && inView && !userPaused) video.play().catch(() => {}); 2879 }; 2880 2881 video.addEventListener('playing', () => { 2882 wrap.querySelector('[data-video="poster"]')?.classList.add('is-video-ready'); 2883 }, { once: true }); 2884 2885 // Hero: wait until the page has loaded so the poster wins LCP. 2886 // Everything else: start loading when it's within 300px of the viewport. 2887 if (isHero) { 2888 const start = () => { load(); tryPlay(); }; 2889 document.readyState === 'complete' ? start() : window.addEventListener('load', start, { once: true }); 2890 } else { 2891 const loadObserver = new IntersectionObserver((entries) => { 2892 if (entries.some(e => e.isIntersecting)) { 2893 load(); 2894 tryPlay(); 2895 loadObserver.disconnect(); 2896 } 2897 }, { rootMargin: '300px 0px' }); 2898 loadObserver.observe(wrap); 2899 } 2900 2901 // Play/pause by visibility â this video only 2902 new IntersectionObserver(([entry]) => { 2903 inView = entry.isIntersecting; 2904 inView ? tryPlay() : video.pause(); 2905 }, { threshold: 0.25 }).observe(wrap); 2906 2907 const wireToggle = () => { 2908 const toggle = wrap.querySelector('[data-video="toggle"]'); 2909 if (!toggle) return; 2910 const playIcon = toggle.querySelector('[data-video="icon-play"]'); 2911 const pauseIcon = toggle.querySelector('[data-video="icon-pause"]'); 2912 2913 toggle.addEventListener('click', () => { 2914 if (video.paused) { 2915 userPaused = false; 2916 load(); 2917 video.play().catch(() => {}); 2918 toggle.setAttribute('aria-label', 'Pause background video'); 2919 playIcon?.classList.add('u-hide-button'); 2920 pauseIcon?.classList.remove('u-hide-button'); 2921 } else { 2922 userPaused = true; 2923 video.pause(); 2924 toggle.setAttribute('aria-label', 'Play background video'); 2925 pauseIcon?.classList.add('u-hide-button'); 2926 playIcon?.classList.remove('u-hide-button'); 2927 } 2928 }); 2929 }; 2930 2931 document.readyState === 'loading' 2932 ? document.addEventListener('DOMContentLoaded', wireToggle, { once: true }) 2933 : wireToggle(); 2934})(); 2935</script>
2935</div><img fetchpriority="high" data-video="poster" alt="" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29673c361831f4d9319f_what-we-do.avif" loading="eager" sizes="(max-width: 1440px) 100vw, 1440px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29673c361831f4d9319f_what-we-do-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29673c361831f4d9319f_what-we-do-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29673c361831f4d9319f_what-we-do-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29673c361831f4d9319f_what-we-do-p-1600.avif 1600w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29673c361831f4d9319f_what-we-do.avif 1920w" class="bg-video_poster"/></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></section></div><div data-wf--theme-wrapper--style-theme="dark" class="theme-wrapper_wrap w-variant-0aaa4c6e-f6eb-3b6d-83c9-40f12303dd85"><div slot="sections" class="u-slot"><section class="u-section"><div class="w-layout-blockcontainer u-container is-half-full is-flex-col w-container"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><div class="featured-slider_breakout"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"FeaturedSlider","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"label":"Featured","loop":true,"autoplay":false,"autoplayDelay":6000,"showArrows":true,"showPagination":true}" data-slots="["children"]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fce41c8a61a6af28cd35d.css"/><div data-root="true" style="display:contents"><!--$--><div data-slider="true" data-slider-variant="featured" data-arrow-style="cursor" class="mb-slider mb-featured-slider" role="region" aria-roledescription="carousel" aria-label="Featured"><div class="mb-slider-viewport"><div data-slider-track="true" class="mb-slider-track"><slot name="children"></slot></div></div><div aria-live="polite" class="mb-slider-visually-hidden">Slide <!-- -->1<!-- --> of <!-- -->0</div></div><!--/$--></div></template><div slot="children"><div data-wf--element-featured-slide--variant="base" class="featured-slide_wrap"><div data-slide-content="" class="featured-slide_content-wrap"><div data-wf--text-heading-lockup--style-alignment="basic---left" class="heading-lockup_wrap"><div class="heading-lockup_heading"><div class="lockup-heading_layout"><header cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h1>Build the workforce <strong>of the future</strong><strong></strong></h1></header></div></div><div class="heading-lockup_body"><div cc-number="40" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Skills are cheaper to build than buy. Upskill the people you already have - at speed, at scale, and funded by the levy - so every role becomes an AI-enabled role.</p></div></div><div id="w-node-_0c50c06d-3162-d373-1610-18e275f6633f-60470592" class="lockup-button_layout"><div id="" class="u-button-group"><div slot="button" class="u-button-slot"><a data-wf--element-button--style-style="link" href="/about/our-mission" class="button_wrap w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194 w-inline-block"><div class="button_wrap-inner w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"><div class="u-weight-medium w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194">About Us</div><div class="button_wrap-line w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"></div></div></a></div></div></div></div></div>
2935<div data-slide-media="" id="w-node-fe07e569-95de-a47d-5485-a7d577af7ae8-77af7ada" class="featured-slide_image-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd300b7a507be0726c69e3_04-build-workforce-future.webp" alt="" class="featured-slide_image"/></div></div><div data-wf--element-featured-slide--variant="base" class="featured-slide_wrap"><div data-slide-content="" class="featured-slide_content-wrap"><div data-wf--text-heading-lockup--style-alignment="basic---left" class="heading-lockup_wrap"><div class="heading-lockup_heading"><div class="lockup-heading_layout"><header cc-number="15" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h1><strong>Unlock</strong> productivity<strong></strong><strong></strong></h1></header></div></div><div class="heading-lockup_body"><div cc-number="40" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Your workforce is sitting on hours of untapped capacity. We find the gaps holding your people back and close them â turning saved time into measurable, compounding productivity gains.</p></div></div><div id="w-node-_0c50c06d-3162-d373-1610-18e275f6633f-60470592" class="lockup-button_layout"><div id="" class="u-button-group"><div slot="button" class="u-button-slot"><a data-wf--element-button--style-style="link" href="/about/our-mission" class="button_wrap w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194 w-inline-block"><div class="button_wrap-inner w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"><div class="u-weight-medium w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194">About Us</div><div class="button_wrap-line w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"></div></div></a></div></div></div></div></div><div data-slide-media="" id="w-node-fe07e569-95de-a47d-5485-a7d577af7ae8-77af7ada" class="featured-slide_image-wrap"><div data-video-src="https://design-assets.multiverse.io/assets/marketing-site/unlock-productivity.d11eaba4.mp4" class="bg-video_wrap"><div class="bg-video_embed w-embed w-script">
2935<script> 2936(() => { 2937 const wrap = document.currentScript.closest('[data-video-src]'); 2938 if (!wrap) return; 2939 2940 const desktopSrc = wrap.getAttribute('data-video-src'); 2941 if (!desktopSrc) return; // image fallback if no URL 2942 const mobileSrc = wrap.getAttribute('data-video-src-mobile'); 2943 const isHero = wrap.hasAttribute('data-video-hero'); 2944 2945 const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches; 2946 const saveData = navigator.connection?.saveData; 2947 if (reduceMotion || saveData) { 2948 // Poster only; hide the toggle since there's nothing to control 2949 const hideToggle = () => wrap.querySelector('[data-video="toggle"]')?.setAttribute('hidden', ''); 2950 document.readyState === 'loading' 2951 ? document.addEventListener('DOMContentLoaded', hideToggle, { once: true }) 2952 : hideToggle(); 2953 return; 2954 } 2955 2956 const video = document.createElement('video'); 2957 video.setAttribute('data-loop-video', ''); 2958 video.defaultMuted = true; 2959 video.muted = true; 2960 video.setAttribute('muted', ''); 2961 video.playsInline = true; 2962 video.setAttribute('webkit-playsinline', ''); 2963 video.loop = true; 2964 video.preload = 'none'; // nothing downloads until load() runs 2965 video.setAttribute('aria-hidden', 'true'); 2966 video.tabIndex = -1; 2967 video.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;object-fit:cover;'; 2968 wrap.appendChild(video); 2969 2970 let loaded = false; 2971 let inView = false; 2972 let userPaused = false; 2973 2974 const load = () => { 2975 if (loaded) return; 2976 loaded = true; 2977 const useMobile = mobileSrc && matchMedia('(max-width: 767px)').matches; 2978 video.src = useMobile ? mobileSrc : desktopSrc; 2979 video.preload = 'auto'; 2980 }; 2981 2982 const tryPlay = () => { 2983 if (loaded && inView && !userPaused) video.play().catch(() => {}); 2984 }; 2985 2986 video.addEventListener('playing', () => { 2987 wrap.querySelector('[data-video="poster"]')?.classList.add('is-video-ready'); 2988 }, { once: true }); 2989 2990 // Hero: wait until the page has loaded so the poster wins LCP. 2991 // Everything else: start loading when it's within 300px of the viewport. 2992 if (isHero) { 2993 const start = () => { load(); tryPlay(); }; 2994 document.readyState === 'complete' ? start() : window.addEventListener('load', start, { once: true }); 2995 } else { 2996 const loadObserver = new IntersectionObserver((entries) => { 2997 if (entries.some(e => e.isIntersecting)) { 2998 load(); 2999 tryPlay(); 3000 loadObserver.disconnect(); 3001 } 3002 }, { rootMargin: '300px 0px' }); 3003 loadObserver.observe(wrap); 3004 } 3005 3006 // Play/pause by visibility â this video only 3007 new IntersectionObserver(([entry]) => { 3008 inView = entry.isIntersecting; 3009 inView ? tryPlay() : video.pause(); 3010 }, { threshold: 0.25 }).observe(wrap); 3011 3012 const wireToggle = () => { 3013 const toggle = wrap.querySelector('[data-video="toggle"]'); 3014 if (!toggle) return; 3015 const playIcon = toggle.querySelector('[data-video="icon-play"]'); 3016 const pauseIcon = toggle.querySelector('[data-video="icon-pause"]'); 3017 3018 toggle.addEventListener('click', () => { 3019 if (video.paused) { 3020 userPaused = false; 3021 load(); 3022 video.play().catch(() => {}); 3023 toggle.setAttribute('aria-label', 'Pause background video'); 3024 playIcon?.classList.add('u-hide-button'); 3025 pauseIcon?.classList.remove('u-hide-button'); 3026 } else { 3027 userPaused = true; 3028 video.pause(); 3029 toggle.setAttribute('aria-label', 'Play background video'); 3030 pauseIcon?.classList.add('u-hide-button'); 3031 playIcon?.classList.remove('u-hide-button'); 3032 } 3033 }); 3034 }; 3035 3036 document.readyState === 'loading' 3037 ? document.addEventListener('DOMContentLoaded', wireToggle, { once: true }) 3038 : wireToggle(); 3039})(); 3040</script>
3040</div><img fetchpriority="high" data-video="poster" alt="" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff837948f4c2dbd1577_unlock-productivity.avif" loading="eager" sizes="(max-width: 1440px) 100vw, 1440px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff837948f4c2dbd1577_unlock-productivity-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff837948f4c2dbd1577_unlock-productivity-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff837948f4c2dbd1577_unlock-productivity-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff837948f4c2dbd1577_unlock-productivity.avif 1194w" class="bg-video_poster"/></div></div></div><div data-wf--element-featured-slide--variant="base" class="featured-slide_wrap"><div data-slide-content="" class="featured-slide_content-wrap"><div data-wf--text-heading-lockup--style-alignment="basic---left" class="heading-lockup_wrap"><div class="heading-lockup_heading"><div class="lockup-heading_layout"><header cc-number="15" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h1>Deliver<strong> </strong>outcomes<strong> with AI</strong><strong></strong><strong></strong></h1></header></div></div><div class="heading-lockup_body"><div cc-number="40" data-wf--text-body--style-size="base" class="u-body-text w-richtext u-text-pretty"><p>Stop measuring AI by licences bought. Start measuring it by outcomes delivered: adoption you can see, ROI you can report, and a competitive edge your board can bank.</p></div></div><div id="w-node-_0c50c06d-3162-d373-1610-18e275f6633f-60470592" class="lockup-button_layout"><div id="" class="u-button-group"><div slot="button" class="u-button-slot"><a data-wf--element-button--style-style="link" href="/about/our-mission" class="button_wrap w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194 w-inline-block"><div class="button_wrap-inner w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"><div class="u-weight-medium w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194">About Us</div><div class="button_wrap-line w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"></div></div></a></div></div></div></div></div><div data-slide-media="" id="w-node-fe07e569-95de-a47d-5485-a7d577af7ae8-77af7ada" class="featured-slide_image-wrap"><div data-video-src="https://design-assets.multiverse.io/assets/marketing-site/deliver-outcomes.6323a6ba.mp4" class="bg-video_wrap"><div class="bg-video_embed w-embed w-script">
3040<script> 3041(() => { 3042 const wrap = document.currentScript.closest('[data-video-src]'); 3043 if (!wrap) return; 3044 3045 const desktopSrc = wrap.getAttribute('data-video-src'); 3046 if (!desktopSrc) return; // image fallback if no URL 3047 const mobileSrc = wrap.getAttribute('data-video-src-mobile'); 3048 const isHero = wrap.hasAttribute('data-video-hero'); 3049 3050 const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches; 3051 const saveData = navigator.connection?.saveData; 3052 if (reduceMotion || saveData) { 3053 // Poster only; hide the toggle since there's nothing to control 3054 const hideToggle = () => wrap.querySelector('[data-video="toggle"]')?.setAttribute('hidden', ''); 3055 document.readyState === 'loading' 3056 ? document.addEventListener('DOMContentLoaded', hideToggle, { once: true }) 3057 : hideToggle(); 3058 return; 3059 } 3060 3061 const video = document.createElement('video'); 3062 video.setAttribute('data-loop-video', ''); 3063 video.defaultMuted = true; 3064 video.muted = true; 3065 video.setAttribute('muted', ''); 3066 video.playsInline = true; 3067 video.setAttribute('webkit-playsinline', ''); 3068 video.loop = true; 3069 video.preload = 'none'; // nothing downloads until load() runs 3070 video.setAttribute('aria-hidden', 'true'); 3071 video.tabIndex = -1; 3072 video.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;object-fit:cover;'; 3073 wrap.appendChild(video); 3074 3075 let loaded = false; 3076 let inView = false; 3077 let userPaused = false; 3078 3079 const load = () => { 3080 if (loaded) return; 3081 loaded = true; 3082 const useMobile = mobileSrc && matchMedia('(max-width: 767px)').matches; 3083 video.src = useMobile ? mobileSrc : desktopSrc; 3084 video.preload = 'auto'; 3085 }; 3086 3087 const tryPlay = () => { 3088 if (loaded && inView && !userPaused) video.play().catch(() => {}); 3089 }; 3090 3091 video.addEventListener('playing', () => { 3092 wrap.querySelector('[data-video="poster"]')?.classList.add('is-video-ready'); 3093 }, { once: true }); 3094 3095 // Hero: wait until the page has loaded so the poster wins LCP. 3096 // Everything else: start loading when it's within 300px of the viewport. 3097 if (isHero) { 3098 const start = () => { load(); tryPlay(); }; 3099 document.readyState === 'complete' ? start() : window.addEventListener('load', start, { once: true }); 3100 } else { 3101 const loadObserver = new IntersectionObserver((entries) => { 3102 if (entries.some(e => e.isIntersecting)) { 3103 load(); 3104 tryPlay(); 3105 loadObserver.disconnect(); 3106 } 3107 }, { rootMargin: '300px 0px' }); 3108 loadObserver.observe(wrap); 3109 } 3110 3111 // Play/pause by visibility â this video only 3112 new IntersectionObserver(([entry]) => { 3113 inView = entry.isIntersecting; 3114 inView ? tryPlay() : video.pause(); 3115 }, { threshold: 0.25 }).observe(wrap); 3116 3117 const wireToggle = () => { 3118 const toggle = wrap.querySelector('[data-video="toggle"]'); 3119 if (!toggle) return; 3120 const playIcon = toggle.querySelector('[data-video="icon-play"]'); 3121 const pauseIcon = toggle.querySelector('[data-video="icon-pause"]'); 3122 3123 toggle.addEventListener('click', () => { 3124 if (video.paused) { 3125 userPaused = false; 3126 load(); 3127 video.play().catch(() => {}); 3128 toggle.setAttribute('aria-label', 'Pause background video'); 3129 playIcon?.classList.add('u-hide-button'); 3130 pauseIcon?.classList.remove('u-hide-button'); 3131 } else { 3132 userPaused = true; 3133 video.pause(); 3134 toggle.setAttribute('aria-label', 'Play background video'); 3135 pauseIcon?.classList.add('u-hide-button'); 3136 playIcon?.classList.remove('u-hide-button'); 3137 } 3138 }); 3139 }; 3140 3141 document.readyState === 'loading' 3142 ? document.addEventListener('DOMContentLoaded', wireToggle, { once: true }) 3143 : wireToggle(); 3144})(); 3145</script>
3145</div><img fetchpriority="high" data-video="poster" alt="" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff8445800c27752d49b_deliver-outcomes.avif" loading="eager" sizes="(max-width: 1440px) 100vw, 1440px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff8445800c27752d49b_deliver-outcomes-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff8445800c27752d49b_deliver-outcomes-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff8445800c27752d49b_deliver-outcomes-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe2ff8445800c27752d49b_deliver-outcomes.avif 1194w" class="bg-video_poster"/></div></div></div></div></code-island></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></div></section></div></div><div data-wf--theme-wrapper--style-theme="parchment-muted" class="theme-wrapper_wrap w-variant-776b36cb-93bc-e4ae-c2d4-5a0bc73077d1"><div slot="sections" class="u-slot"><section class="u-section"><div class="w-layout-blockcontainer u-container w-container"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"ContentSlider","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"label":"Content","loop":false,"autoplay":false,"autoplayDelay":6000,"showArrows":false,"showPagination":true,"scrollDriven":true,"scrollThreshold":150}" data-slots="["children"]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fb7bbf5f8567bb2a52f41.css"/><div data-root="true" style="display:contents"><!--$--><div data-scroll-range="true" class="mb-slider-scroll-range" style="height:var(--scroll-range-height, 0vh)"><div data-slider="true" data-slider-variant="content" data-arrow-style="none" data-scroll-pinned="true" class="mb-slider mb-content-slider" role="region" aria-roledescription="carousel" aria-label="Content"><div class="mb-slider-viewport"><div data-slider-stage="true" class="mb-slider-stage"><slot name="children"></slot></div></div><div aria-live="polite" class="mb-slider-visually-hidden">Slide <!-- -->1<!-- --> of <!-- -->0</div></div></div><!--/$--></div></template><div slot="children"><div data-wf--content-slide--variant="minimal" class="content-slide_layout"><div class="content-slide-image_wrap"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img class="image_src" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd34ae44964b494bb8f6de_07-results-speak-1.webp" data-image-crop="" data-slide-media="" alt="" data-image-crop-desktop="" loading="lazy" fetchpriority="auto"/></div></div><div class="content-slide-content_wrap"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3146<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3147</svg></div><p class="eyebrow_text">THE RESULTS SPEAK FOR THEMSELVES</p></div><div class="content-slide-heading_lockup"><header data-slide-heading="" cc-number="60" data-wf--text---highlighted-heading--style-variant="h1" class="heading_wrap w-richtext"><h1>94% of top-100 customers relaunch <strong>within a year</strong></h1></header></div></div></div><div data-wf--content-slide--variant="minimal" class="content-slide_layout"><div class="content-slide-image_wrap"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img class="image_src" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe7fb25a9c0aa030028140_08-results-speak-2-1.webp" data-image-crop="top" data-sli
3147de-media="" alt="" data-image-crop-desktop="" loading="lazy" fetchpriority="auto"/></div></div><div class="content-slide-content_wrap"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3148<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3149</svg></div><p class="eyebrow_text">THE RESULTS SPEAK FOR THEMSELVES</p></div><div class="content-slide-heading_lockup"><header data-slide-heading="" cc-number="60" data-wf--text---highlighted-heading--style-variant="h1" class="heading_wrap w-richtext"><h1>£181,970 projected financial return per learner</h1></header></div></div></div><div data-wf--content-slide--variant="minimal" class="content-slide_layout"><div class="content-slide-image_wrap"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img class="image_src" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd34d9fea807987f27a34b_08-results-speak-3-1.webp" data-image-crop="" data-slide-media="" alt="" data-image-crop-desktop="" loading="lazy" fetchpriority="auto"/></div></div><div class="content-slide-content_wrap"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3150<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3151</svg></div><p class="eyebrow_text">THE RESULTS SPEAK FOR THEMSELVES</p></div><div class="content-slide-heading_lockup"><header data-slide-heading="" cc-number="60" data-wf--text---highlighted-heading--style-variant="h1" class="heading_wrap w-richtext"><h1>57% of learners gain a promotion or pay rise</h1></header></div></div></div></div></code-island></div></section><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"Marquee","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"height":48,"speed":30,"gap":80,"direction":"left","pauseOnHover":false,"pauseEaseDuration":600,"fadeEdges":false,"edgeWidth":80,"edgeColor":"white","edgeOpacity":1,"scrollInertia":true,"scrollInertiaStrength":2.5,"scrollInertiaMax":6,"scrollInertiaRelease":800}" data-slots="["children"]" data-hydrate="false" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents" data-wf--multiverse-code-components--marquee--direction="left"><template shadowrootmode="open"><div data-root="true" style="display:contents"></div><link rel="stylesheet" type="text/css" href="https://cdn.prod.website-files.com/69381061fef68be00431dd04/css/tags.26ef79055.css"/></template><div slot="children"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa1843a8f4e41bccaaf38c7_wgsn.svg" loading="lazy" alt="WGSN logo"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa18439e461939df1b3eaac_citi.svg" loading="lazy" alt="Citi Logo"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa184395ce5c6e508f8a5cc_kpmg.svg" loading="lazy" alt="KPMG logo"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa1843943929eca60c54098_capita.svg" loading="lazy" alt="Capita Logo"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa18439a68e33c1e09e2201_just-eat.svg" loading="lazy" alt="Just Eat Logo"/><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa18439f1ccc451cd2c4cc4_microsoft.svg" loading="lazy" alt="Microsoft logo"/></div></code-island><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></div></div><section class="u-section"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><div class="u-container"><div class="block-list_layout"><div class="block-list_eyebrow-wrap"><div class="block-list-sticky_wrap"><div class="block-list_sticky"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed">
3151<svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3152<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3153</svg></div><p class="eyebrow_text">Updates</p></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div></div><div class="block-list_wrap"><div role="list"><div data-wf--large-block-list-item--variant="regular-first-item" id="" role="listitem" class="large-block-item_wrap"><div class="large-block-list_parallax-wrap w-variant-9f470827-0b70-9da0-0455-40aca2b38c2b"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div><div class="updates-list_parallax-control"></div></div><div class="large-block-item_layout"><div class="large--block-item_media"><div class="large-block-item_image-wrap"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd37a5b799b47be462c967_09-impact-hub.webp" loading="lazy" fetchpriority="auto" alt="" class="image_src"/></div></div></div><div class="large-block-item_content"><div class="block-list-sticky_wrap"><div class="updates-item_sticky"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><p class="eyebrow_text">01</p></div></div></div><div data-wf--text-heading-lockup--style-alignment="basic---left" class="heading-lockup_wrap"><div class="heading-lockup_heading"><div class="lockup-heading_layout"><header data-split="lines" cc-number="60" data-wf--text---highlighted-heading--style-variant="h3" class="heading_wrap w-variant-9f2a6e12-fa26-1522-e250-0b03c8fabe81 w-richtext"><h2><strong>Impact</strong> Hub</h2></header></div></div><div class="heading-lockup_body"><div cc-number="28" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p>Real companies, real numbers. Explore the outcomes our customers are unlocking.</p></div></div><div id="w-node-_0c50c06d-3162-d373-1610-18e275f6633f-60470592" class="lockup-button_layout"><div id="" class="u-button-group"><div slot="button" class="u-button-slot"><a data-wf--element-button--style-style="link" href="/impact-hub-2026" class="button_wrap w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194 w-inline-block"><div class="button_wrap-inner w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"><div class="u-weight-medium w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194">Discover more</div><div class="button_wrap-line w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"></div></div></a></div></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div></div><div data-wf--large-block-list-item--variant="regular" id="" role="listitem" class="large-block-item_wrap"><div class="large-block-list_parallax-wrap"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div><div class="updates-list_parallax-control"></div></div><div data-animate="rise" class="large-block-item_layout"><div class="large--block-item_media"><div class="large-block-item_image-wrap"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd37b78ca91be6aed4b45a_10-skills-intelligence.webp" loading="lazy" fetchpriority="auto" alt="" class="image_src"/></div></div></div><div class="large-block-item_content"><div class="block-list-sticky_wrap"><div class="updates-item_sticky"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><p class="eyebrow_text">02</p></div></div></div><div data-wf--text-heading-lockup--style-alignment="basic---left" class="heading-lockup_wrap"><div class="heading-lockup_heading"><div class="lockup-heading_layout"><header data-split="lines" cc-number="60" data-wf--text---highlighted-heading--style-variant="h3" class="heading_wrap w-variant-9f2a6e12-fa26-1522-e250-0b03c8fabe81 w-richtext"><h2><strong>Skills </strong>Intelligence Report</h2></header></div></div><div class="heading-lockup_body"><div cc-number="28" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p>Discover the most in-demand AI and data skills from 14,500 workers across 16 industries,</p></div></div><div id="w-node-_0c50c06d-3162-d373-1610-18e275f6633f-60470592" class="lockup-button_layout"><div id="" class="u-button-group"><div slot="button" class="u-button-slot"><a data-wf--element-button--style-style="link" href="/resources/skills-intelligence-report-2025" class="button_wrap w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194 w-inline-block"><div class="button_wrap-inner w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"><div class="u-weight-medium w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194">Read the report</div><div class="button_wrap-line w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"></div></div></a></div></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div></div><div data-wf--large-block-list-item--variant="regular" id="" role="listitem" class="large-block-item_wrap"><div class="large-block-list_parallax-wrap"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div><div class="updates-list_parallax-control"></div></div><div data-animate="rise" class="large-block-item_layout"><div class="large--block-item_media"><div class="large-block-item_image-wrap"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abd37c95292f6b4913ad4cb_11-workforce-2030.webp" loading="lazy" fetchpriority="auto" alt="" class="image_src"/></div></div></div><div class="large-block-item_content"><div class="block-list-sticky_wrap"><div class="updates-item_sticky"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><p class="eyebrow_text">03</p></div></div></div><div data-wf--text-heading-lockup--style-alignment="basic---left" class="heading-lockup_wrap"><div class="heading-lockup_heading"><div class="lockup-heading_layout"><header data-split="lines" cc-number="60" data-wf--text---highlighted-heading--style-variant="h3" class="heading_wrap w-variant-9f2a6e12-fa26-1522-e250-0b03c8fabe81 w-richtext"><h2>Workforce 2030 <strong>conference</strong></h2></header></div></div><div class="heading-lockup_body"><div cc-number="28" data-wf--text-body--style-size="medium" class="u-body-text w-variant-bfbf01b2-03c6-2841-54d1-41ef2a9ed520 w-richtext u-text-pretty"><p>Didnât get a ticket? Watch every keynote from Workforce 2030 on 14th October.</p></div></div><div id="w-node-_0c50c06d-3162-d373-1610-18e275f6633f-60470592" class="lockup-button_layout"><div id="" class="u-button-group"><div slot="button" class="u-button-slot"><a data-wf--element-button--style-style="link" href="https://workforce2030.multiverse.io/" class="button_wrap w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194 w-inline-block"><div class="button_wrap-inner w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"><div class="u-weight-medium w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194">Learn more</div><div class="button_wrap-line w-variant-5d5b61f8-fc1e-cf12-3af7-ff8b1c223194"></div></div></a></div></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="large" class="section-padding_wrap"></div></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></section><div data-wf--theme-wrapper--style-theme="dark" class="theme-wrapper_wrap w-variant-0aaa4c6e-f6eb-3b6d-83c9-40f12303dd85"><div slot="sections" class="u-slot"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><section class="u-section"><div class="w-layout-blockcontainer u-container w-container"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"ContentSlider","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"label":"Content","loop":false,"autoplay":false,"autoplayDelay":6000,"showArrows":false,"showPagination":true,"scrollDriven":true,"scrollThreshold":150}" data-slots="["children"]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fb7bbf5f8567bb2a52f41.css"/><div data-root="true" style="display:contents"><!--$--><div data-scroll-range="true" class="mb-slider-scroll-range" style="height:var(--scroll-range-height, 0vh)">
3153<div data-slider="true" data-slider-variant="content" data-arrow-style="none" data-scroll-pinned="true" class="mb-slider mb-content-slider" role="region" aria-roledescription="carousel" aria-label="Content"><div class="mb-slider-viewport"><div data-slider-stage="true" class="mb-slider-stage"><slot name="children"></slot></div></div><div aria-live="polite" class="mb-slider-visually-hidden">Slide <!-- -->1<!-- --> of <!-- -->0</div></div></div><!--/$--></div></template><div slot="children"><div data-wf--content-slide--variant="testimonial" class="content-slide_layout w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div class="content-slide-image_wrap w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img class="image_src" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abfa9f98cd850b7e569f552_14-customer-stories-2.webp" data-image-crop="15" data-slide-media="" alt="" data-image-crop-desktop="top" loading="lazy" fetchpriority="auto"/></div></div><div class="content-slide-content_wrap w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3154<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3155</svg></div><p class="eyebrow_text">Customer Stories</p></div><div class="content-slide-heading_lockup w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><header data-slide-heading="" cc-number="60" data-wf--text---highlighted-heading--style-variant="h1" class="heading_wrap w-richtext"><h2>âPatient falls cut by 88% using Power BI skillsâ</h2></header><div data-slide-meta="" class="attribution_layout w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div class="attibution-image_wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe52724712d46f86bb6e58_NHS.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div class="attibution-content_wrap"><div class="u-weight-bold">Anvi Boulbouldjou</div><div>Quality and Cancer Performance Manager, Harrogate and District NHS Foundation Trust</div></div></div></div><div data-slide-cta="" class="content-slide-buttons w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--wrapper-button-wrapper--variant="base" id="" class="u-button-group"><div slot="button" class="u-display-contents"><a data-wf--element-button--style-style="primary" href="https://www.multiverse.io/case-studies/from-17-falls-a-month-to-two-inside-a-trust-wide-data-upskilling-drive" class="button_wrap w-inline-block"><div class="button_wrap-inner"><div class="u-weight-medium">Read case study</div></div><div class="button_icon-wrap"><div class="button_icon"><div data-wf--icon-arrow-right--variant="cover" class="icon_wrap w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332"><div class="icon_svg w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 3156<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 3157</svg></div></div></div></div></a></div></div></div></div></div><div data-wf--content-slide--variant="testimonial" class="content-slide_layout w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div class="content-slide-image_wrap w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img class="image_src" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abfa9e4a6d5d8338b33e0b4_13-customer-stories-1-1.webp" data-image-crop="15" data-sli
3157de-media="" alt="" data-image-crop-desktop="15" loading="lazy" fetchpriority="auto"/></div></div><div class="content-slide-content_wrap w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3158<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3159</svg></div><p class="eyebrow_text">Customer Stories</p></div><div class="content-slide-heading_lockup w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><header data-slide-heading="" cc-number="60" data-wf--text---highlighted-heading--style-variant="h1" class="heading_wrap w-richtext"><h2>âWork that took weeks is 10x fasterâ</h2></header><div data-slide-meta="" class="attribution_layout w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div class="attibution-image_wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe5272bc96eee40de9b6b7_QS.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div class="attibution-content_wrap"><div class="u-weight-bold">BeiBei Xiong</div><div>Product Manager, QS</div></div></div></div><div data-slide-cta="" class="content-slide-buttons w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--wrapper-button-wrapper--variant="base" id="" class="u-button-group"><div slot="button" class="u-display-contents"><a data-wf--element-button--style-style="primary" href="https://www.multiverse.io/case-studies/disrupting-themselves-before-someone-else-does-how-qs-is-building-a-future-ready-workforce-with-multiverse" class="button_wrap w-inline-block"><div class="button_wrap-inner"><div class="u-weight-medium">Read case study</div></div><div class="button_icon-wrap"><div class="button_icon"><div data-wf--icon-arrow-right--variant="cover" class="icon_wrap w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332"><div class="icon_svg w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 3160<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 3161</svg></div></div></div></div></a></div></div></div></div></div><div data-wf--content-slide--variant="testimonial" class="content-slide_layout w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div class="content-slide-image_wrap w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img class="image_src" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6aa3eb3250ae2b8cd344cf58_S01%20Customers.avif" data-image-crop="" data-slide-media="" alt="" data-image-crop-desktop="" loading="lazy" fetchpriority="auto"/></div></div><div class="content-slide-content_wrap w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3162<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3163</svg></div><p class="eyebrow_text">Customer Stories</p></div><div class="content-slide-heading_lockup w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><header data-slide-heading="" cc-number="60" data-wf--text---highlighted-heading--style-variant="h1" class="heading_wrap w-richtext"><h1>â200+ hours saved a year on tracking new startersâ</h1></header>
3163<div data-slide-meta="" class="attribution_layout w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div class="attibution-image_wrap"><div data-wf--media-image--style-aspect-ratio="contain" id="" STYLE="" class="image_wrap w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe52725b931a8fba094413_JL.svg" loading="lazy" fetchpriority="auto" alt="" class="image_src w-variant-24d32a7c-a068-72bc-566a-92a3d098582d"/></div></div><div class="attibution-content_wrap"><div class="u-weight-bold">Laura Zilite</div><div>John Lewis Partnership</div></div></div></div><div data-slide-cta="" class="content-slide-buttons w-variant-ed7189c3-4bb0-04df-f6fa-dbf96d49dea8"><div data-wf--wrapper-button-wrapper--variant="base" id="" class="u-button-group"><div slot="button" class="u-display-contents"><a data-wf--element-button--style-style="primary" href="https://www.multiverse.io/case-studies/john-lewis-partnership-case-study" class="button_wrap w-inline-block"><div class="button_wrap-inner"><div class="u-weight-medium">Read case study</div></div><div class="button_icon-wrap"><div class="button_icon"><div data-wf--icon-arrow-right--variant="cover" class="icon_wrap w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332"><div class="icon_svg w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 3164<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 3165</svg></div></div></div></div></a></div></div></div></div></div></div></code-island></div></section><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></div></div><section data-wf--section-expression---cta-02--style-theme="video" class="expression-2-cta_wrap"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><div class="expression-cta_outer"><div class="expression-cta_container u-container"><div class="expression-cta_layout"><div id="w-node-_788b7488-4da6-53a7-9142-d4f2b76a6685-3881c4d7" class="expression-cta_tag"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><div class="eyebrow_svg w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 3166<path d="M4 0C6.20918 0 7.99991 1.79084 8 4C8 6.20924 6.20924 8 4 8C1.79087 7.99987 0 6.20916 0 4C9.50842e-05 1.79092 1.79093 0.000127419 4 0ZM2.15918 2.15918V5.8418H5.8418V2.15918H2.15918Z" fill="currentColor"/> 3167</svg></div><p class="eyebrow_text">What We Believe</p></div></div><div id="w-node-_3c2f1302-915f-bcff-8a4c-bd985723553a-3881c4d7" class="expression-cta_content"><header cc-number="60" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><p><strong>T</strong>e<strong>c</strong>h<strong> </strong>sh<strong>ould make </strong></p><p><strong>huma</strong>n<strong>s smarter. </strong></p><p>Not the<strong> o</strong>t<strong>her </strong></p><p><strong>wa</strong>y<strong> </strong>aro<strong>und.</strong></p></header><div class="expression-cta_buttons"><a data-wf--element-button--style-style="primary" href="/about/our-mission" class="button_wrap w-inline-block"><div class="button_wrap-inner"><div class="u-weight-medium">About Us</div></div><div class="button_icon-wrap"><div class="button_icon"><div data-wf--icon-arrow-right--variant="cover" class="icon_wrap w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332"><div class="icon_svg w-variant-ec33f14d-0fd7-6b46-b530-c34ec4e2a332 w-embed"><svg width="100%" height="100%" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 3168<path d="M10.6839 5.65685L5.02709 11.3137L4.06034 10.347L8.06682 6.34048H0V4.97323H8.06682L4.06034 0.966748L5.02709 0L10.6839 5.65685Z" fill="currentColor"/> 3169</svg></div></div></div></div></a></div></div></div></div></div><div data-video-src="https://design-assets.multiverse.io/assets/marketing-site/homepage-bottom.fd6
31695faed.mp4" class="bg-video_wrap"><div class="bg-video_embed w-embed w-script">
3169<script> 3170(() => { 3171 const wrap = document.currentScript.closest('[data-video-src]'); 3172 if (!wrap) return; 3173 3174 const desktopSrc = wrap.getAttribute('data-video-src'); 3175 if (!desktopSrc) return; // image fallback if no URL 3176 const mobileSrc = wrap.getAttribute('data-video-src-mobile'); 3177 const isHero = wrap.hasAttribute('data-video-hero'); 3178 3179 const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches; 3180 const saveData = navigator.connection?.saveData; 3181 if (reduceMotion || saveData) { 3182 // Poster only; hide the toggle since there's nothing to control 3183 const hideToggle = () => wrap.querySelector('[data-video="toggle"]')?.setAttribute('hidden', ''); 3184 document.readyState === 'loading' 3185 ? document.addEventListener('DOMContentLoaded', hideToggle, { once: true }) 3186 : hideToggle(); 3187 return; 3188 } 3189 3190 const video = document.createElement('video'); 3191 video.setAttribute('data-loop-video', ''); 3192 video.defaultMuted = true; 3193 video.muted = true; 3194 video.setAttribute('muted', ''); 3195 video.playsInline = true; 3196 video.setAttribute('webkit-playsinline', ''); 3197 video.loop = true; 3198 video.preload = 'none'; // nothing downloads until load() runs 3199 video.setAttribute('aria-hidden', 'true'); 3200 video.tabIndex = -1; 3201 video.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;object-fit:cover;'; 3202 wrap.appendChild(video); 3203 3204 let loaded = false; 3205 let inView = false; 3206 let userPaused = false; 3207 3208 const load = () => { 3209 if (loaded) return; 3210 loaded = true; 3211 const useMobile = mobileSrc && matchMedia('(max-width: 767px)').matches; 3212 video.src = useMobile ? mobileSrc : desktopSrc; 3213 video.preload = 'auto'; 3214 }; 3215 3216 const tryPlay = () => { 3217 if (loaded && inView && !userPaused) video.play().catch(() => {}); 3218 }; 3219 3220 video.addEventListener('playing', () => { 3221 wrap.querySelector('[data-video="poster"]')?.classList.add('is-video-ready'); 3222 }, { once: true }); 3223 3224 // Hero: wait until the page has loaded so the poster wins LCP. 3225 // Everything else: start loading when it's within 300px of the viewport. 3226 if (isHero) { 3227 const start = () => { load(); tryPlay(); }; 3228 document.readyState === 'complete' ? start() : window.addEventListener('load', start, { once: true }); 3229 } else { 3230 const loadObserver = new IntersectionObserver((entries) => { 3231 if (entries.some(e => e.isIntersecting)) { 3232 load(); 3233 tryPlay(); 3234 loadObserver.disconnect(); 3235 } 3236 }, { rootMargin: '300px 0px' }); 3237 loadObserver.observe(wrap); 3238 } 3239 3240 // Play/pause by visibility â this video only 3241 new IntersectionObserver(([entry]) => { 3242 inView = entry.isIntersecting; 3243 inView ? tryPlay() : video.pause(); 3244 }, { threshold: 0.25 }).observe(wrap); 3245 3246 const wireToggle = () => { 3247 const toggle = wrap.querySelector('[data-video="toggle"]'); 3248 if (!toggle) return; 3249 const playIcon = toggle.querySelector('[data-video="icon-play"]'); 3250 const pauseIcon = toggle.querySelector('[data-video="icon-pause"]'); 3251 3252 toggle.addEventListener('click', () => { 3253 if (video.paused) { 3254 userPaused = false; 3255 load(); 3256 video.play().catch(() => {}); 3257 toggle.setAttribute('aria-label', 'Pause background video'); 3258 playIcon?.classList.add('u-hide-button'); 3259 pauseIcon?.classList.remove('u-hide-button'); 3260 } else { 3261 userPaused = true; 3262 video.pause(); 3263 toggle.setAttribute('aria-label', 'Play background video'); 3264 pauseIcon?.classList.add('u-hide-button'); 3265 playIcon?.classList.remove('u-hide-button'); 3266 } 3267 }); 3268 }; 3269 3270 document.readyState === 'loading' 3271 ? document.addEventListener('DOMContentLoaded', wireToggle, { once: true }) 3272 : wireToggle(); 3273})(); 3274</script>
3274</div><img fetchpriority="high" data-video="poster" alt="" src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29d67123c30e7c897a12_4d0df181baa2caf2681beecfc682f18b_homepage-bottom.avif" loading="eager" sizes="(max-width: 1440px) 100vw, 1440px" srcset="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29d67123c30e7c897a12_4d0df181baa2caf2681beecfc682f18b_homepage-bottom-p-500.avif 500w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29d67123c30e7c897a12_4d0df181baa2caf2681beecfc682f18b_homepage-bottom-p-800.avif 800w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29d67123c30e7c897a12_4d0df181baa2caf2681beecfc682f18b_homepage-bottom-p-1080.avif 1080w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29d67123c30e7c897a12_4d0df181baa2caf2681beecfc682f18b_homepage-bottom-p-1600.avif 1600w, https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe29d67123c30e7c897a12_4d0df181baa2caf2681beecfc682f18b_homepage-bottom.avif 2000w" class="bg-video_poster"/></div><div class="expression-cta_marquee w-variant-01900172-f12c-0940-95e2-0588aaac5300"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6abfaa897b456cdc49a62246%2Fmodule%2Fwf-manifest.json","moduleId":"_6abfaa897b456cdc49a62246","submoduleId":"Marquee","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"height":48,"speed":10,"gap":48,"direction":"left","pauseOnHover":false,"pauseEaseDuration":600,"fadeEdges":false,"edgeWidth":80,"edgeColor":"white","edgeOpacity":1,"scrollInertia":true,"scrollInertiaStrength":2.5,"scrollInertiaMax":3,"scrollInertiaRelease":800}" data-slots="["children"]" data-hydrate="false" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents" data-wf--multiverse-code-components--marquee--direction="left"><template shadowrootmode="open"><div data-root="true" style="display:contents"></div><link rel="stylesheet" type="text/css" href="https://cdn.prod.website-files.com/69381061fef68be00431dd04/css/tags.26ef79055.css"/></template><div slot="children"><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><p class="eyebrow_text">Ai Adoption Layer</p></div><div class="icon_wrap is-circle"><svg viewBox="0 0 8 8" class="icon_svg"><path d="M3.94141 0C6.11849 0 7.88379 1.7653 7.88379 3.94238C7.88358 6.11929 6.11836 7.88379 3.94141 7.88379C1.7645 7.88374 0.000206443 6.11926 0 3.94238C0 1.76533 1.76437 5.29669e-05 3.94141 0ZM2.12598 2.12793V5.75684H5.75488V2.12793H2.12598Z" fill="currentColor"></path></svg></div><div data-wf--text-eyebrow--variant="base" class="eyebrow_wrap"><p class="eyebrow_text">Multiverse</p></div><div class="icon_wrap is-circle"><svg viewBox="0 0 8 8" class="icon_svg"><path d="M3.94141 0C6.11849 0 7.88379 1.7653 7.88379 3.94238C7.88358 6.11929 6.11836 7.88379 3.94141 7.88379C1.7645 7.88374 0.000206443 6.11926 0 3.94238C0 1.76533 1.76437 5.29669e-05 3.94141 0ZM2.12598 2.12793V5.75684H5.75488V2.12793H2.12598Z" fill="currentColor"></path></svg></div></div></code-island></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></section><section data-wf--section-sticky-text-media--style-layout-order="standard" class="new-text-media_wrap u-section"><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div><div class="u-container"><div class="new-text-media_layout"><div id="w-node-f115f477-a7cd-65cb-c8ec-f8092cdca0de-2cdca0da" class="new-text-media_content"><div class="new-text-media_sticky-wrap"><div class="new-text-media_sticky"><header data-split="lines" cc-number="10" data-wf--text---highlighted-heading--style-variant="h2" class="heading_wrap w-variant-69689fb8-29eb-16e5-facc-03019b1b57f5 w-richtext"><h2>AI adoption starts <strong>with</strong></h2><h2><strong>a skills scan</strong></h2></header><p cc-number="28" class="new-text-media_text">Ten minutes to see the gaps. One demo to see how we close them.</p><div data-wf--wrapper-button-wrapper--variant="left" id="" class="u-button-group w-variant-902564bc-361d-59bc-7c93-e16a4306923a"><div slot="button" class="u-display-contents"><div class="u-display-contents"><a data-wf--element-button--style-style="primary" href="/book-a-demo" class="button_wrap w-inline-block"><div class="button_wrap-inner is-secondary"><div class="u-weight-medium">Book a demo</div></div></a></div></div></div></div></div></div><div class="new-text-media_style"><div class="u-slot new-text-media_slot"><div data-wf--media-image--style-aspect-ratio="cover" id="" STYLE="" class="image_wrap w-variant-b504a7c1-563e-4536-d82d-a664d1a7c96f"><img src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/6abe4a638e9c4d66311f58d9_12-skills-scan.webp" loading="lazy" fetchpriority="auto" alt="" class="image_src"/></div></div></div></div></div><div cc-design-mode="false" data-wf--structure-section-padding--style-size="xlarge" class="section-padding_wrap w-variant-aba6ddbf-fa7f-fd47-276b-0d10beff318c"></div></section></div><footer class="footer_wrap"><div class="u-container u-text-colour-inverse"><div class="footer_stack"><div class="footer_layout"><div class="footer_column"><ul role="list" class="footer_social-list w-list-unstyled"><li><a aria-label="facebook" href="https://www.facebook.com/joinmultiverse" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" aria-hidden="true" width="100%"><path d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"></path></svg></a></li><li><a aria-label="Twitter X" href="https://x.com/joinmultiverse" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" aria-hidden="true" width="100%"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a></li><li><a aria-label="LinkedIn" href="https://www.linkedin.com/company/joinmultiverse/" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-hidden="true" width="100%"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a></li><li><a aria-label="Instagram" href="https://www.instagram.com/joinmultiverse" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-hidden="true" width="100%"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></a></li><li><a aria-label="Youtube" href="https://www.youtube.com/c/multiverse1" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 576 512" aria-hidden="true" width="100%"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg></a></li><li><a aria-label="Tik Tok" href="https://www.tiktok.com/@joinmultiverse" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" width="100%"><path d="M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08
3274-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z"></path></svg></a></li></ul></div><div class="footer_links"><div class="footer_column"><button id="" class="footer-label_wrap"><div class="footer_list-label is-static"><div>Employers</div></div><div class="footer-dropdown_wrap"><div class="footer-dropdown-icon w-embed"><svg width="100%" height="100%" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg"> 3275<path d="M8.5 0.5L4.5 4.5L0.5 0.5" stroke="currentColor" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3276</svg> 3277</div></div></button><ul role="list" class="footer_link-list"><li class="footer_link-list-item"><a href="/" aria-current="page" class="footer_link w-inline-block w--current"><div>Overview</div></a></li><li class="footer_link-list-item"><a href="/employers/why-multiverse" class="footer_link w-inline-block"><div>Why Multiverse</div></a></li><li class="footer_link-list-item"><a href="/employers/how-it-works" class="footer_link w-inline-block"><div>How it works</div></a></li><li class="footer_link-list-item"><a href="/impact-hub-2026" class="footer_link w-inline-block"><div>Impact Hub 2026</div></a></li><li class="footer_link-list-item"><a href="/employers/the-apprenticeship-levy" class="footer_link w-inline-block"><div>Levy</div></a></li></ul></div><div class="footer_column"><button id="" class="footer-label_wrap"><div class="footer_list-label is-static"><div>Get Involved</div></div><div class="footer-dropdown_wrap"><div class="footer-dropdown-icon w-embed"><svg width="100%" height="100%" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg"> 3278<path d="M8.5 0.5L4.5 4.5L0.5 0.5" stroke="currentColor" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3279</svg> 3280</div></div></button><ul role="list" class="footer_link-list w-list-unstyled"><li class="footer_link-list-item"><a href="/individuals/learn-new-skills" class="footer_link w-inline-block"><div>Learn New Skills</div></a></li><li class="footer_link-list-item"><a href="/individuals/community" class="footer_link w-inline-block"><div>Community</div></a></li><li class="footer_link-list-item"><a href="/careers/were-hiring" class="footer_link w-inline-block"><div>Join the team</div></a></li><li class="footer_link-list-item"><a href="/employer-contact-form" class="footer_link w-inline-block"><div>Contact Us</div></a></li></ul></div><div class="footer_column"><button id="" class="footer-label_wrap"><div class="footer_list-label is-static"><div>About</div></div><div class="footer-dropdown_wrap"><div class="footer-dropdown-icon w-embed"><svg width="100%" height="100%" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg"> 3281<path d="M8.5 0.5L4.5 4.5L0.5 0.5" stroke="currentColor" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3282</svg> 3283</div></div></button><ul role="list" class="footer_link-list w-list-unstyled"><li class="footer_link-list-item"><a href="/about/our-mission" class="footer_link w-inline-block"><div>Overview</div></a></li><li class="footer_link-list-item"><a href="/blog" class="footer_link w-inline-block"><div>Blog</div></a></li><li class="footer_link-list-item"><a href="/careers/mobility-and-inclusion" class="footer_link w-inline-block"><div>Diversity, Equity and Inclusion</div></a></li><li class="footer_link-list-item"><a href="/about/press-media" class="footer_link w-inline-block"><div>Press Enquiries</div></a></li></ul></div><div class="footer_column is-last"><button id="" class="footer-label_wrap"><div class="footer_list-label is-static"><div>Legal</div></div><div class="footer-dropdown_wrap"><div class="footer-dropdown-icon w-embed"><svg width="100%" height="100%" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg"> 3284<path d="M8.5 0.5L4.5 4.5L0.5 0.5" stroke="currentColor" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3285</svg> 3286</div></div></button><ul role="list" class="footer_link-list w-list-unstyled"><li class="footer_link-list-item"><a href="/about/our-policies" class="footer_link w-inline-block"><div>Policies & Terms of Use</div></a></li><li class="footer_link-list-item"><a href="/our-policies/privacy-policy-uk" class="footer_link w-inline-block"><div>Privacy Policy</div></a></li><li id="privacy-settings" class="footer_link-list-item"><a href="#" class="footer_link w-inline-block"><div>Privacy Settings</div></a></li><li class="footer_link-list-item"><a href="/our-policies/accounts" class="footer_link w-inline-block"><div>Accounts</div></a></li><li class="footer_link-list-item"><a href="/our-policies/browser-support" class="footer_link w-inline-block"><div>Browser Support</div></a></li><li class="footer_link-list-item"><a href="/our-policies/transparency-information-2026" class="footer_link w-inline-block"><div>Transparency Information 2026</div></a></li><li class="footer_link-list-item"><a href="/info/modern-slavery-human-trafficking" class="footer_link w-inline-block"><div>Modern slavery statement</div></a></li></ul></div></div></div><div class="footer-dummy"><div class="footer-logo w-embed">
3286<svg width="100%" height="auto" viewBox="0 0 1376 229" fill="none" xmlns="http://www.w3.org/2000/svg"> 3287<path d="M1162.03 128.885L1142.54 124.757C1130.61 122.005 1124.65 116.272 1124.65 107.099C1124.65 96.0907 1135.43 88.9813 1147.81 88.9813C1165.24 88.9813 1174.19 100.219 1176.02 111.915H1209.5C1203.77 74.7627 1176.94 60.544 1147.81 60.544C1112.5 60.544 1090.48 84.624 1090.48 110.539C1090.48 135.077 1108.14 147.691 1131.76 153.424L1150.34 157.781C1168.91 162.139 1177.17 166.725 1177.17 178.192C1177.17 188.971 1168.91 199.979 1153.09 199.979C1133.82 199.979 1125.57 188.741 1124.19 174.752H1089.79C1090.48 205.483 1114.33 228.416 1151.71 228.416C1190.01 228.416 1210.65 202.731 1210.65 176.357C1210.88 153.653 1192.99 135.765 1162.03 128.885ZM1080.16 64.2133H991.637V224.747H1023.97V92.88H1080.16V64.2133ZM785.237 64.2133L744.416 183.467L703.136 64.2133H668.048L727.675 224.747H760.928L820.555 64.2133H785.237ZM651.765 64.2133H619.429V224.747H651.765V64.2133ZM558.885 18.8053H526.549V64.2133H484.811V92.88H526.549V224.747H558.885V92.88H600.165V64.2133H558.885V18.8053ZM469.445 18.8053H437.109V224.747H469.445V18.8053ZM371.749 154.571C371.749 180.944 355.925 196.997 334.139 196.997C311.893 196.997 296.757 180.944 296.757 154.571V64.2133H264.421V153.883C264.421 199.061 289.877 228.416 333.451 228.416C376.336 228.416 404.085 198.373 404.085 153.883V64.2133H371.749V154.571ZM235.755 64.2133H199.061L134.16 170.853V64.2133H97.008L32.336 170.165V64.2133H0V224.747H32.5653L101.824 110.539V224.747H134.389L203.419 111.685V224.747H235.755V64.2133ZM635.483 41.968C647.179 41.968 656.581 32.5653 656.581 20.8693C656.581 9.40267 647.179 0 635.483 0C623.787 0 614.384 9.40267 614.384 20.8693C614.384 32.5653 623.787 41.968 635.483 41.968ZM819.637 144.709C819.637 193.787 854.725 228.416 898.987 228.416C939.12 228.416 964.805 207.547 972.144 174.293H937.744C935.221 186.448 924.443 198.144 901.28 198.144C876.283 198.144 856.331 183.696 853.808 156.864H973.061C973.52 153.195 973.749 148.379 973.749 144.709C973.749 96.7787 944.624 60.544 898.299 60.544C854.037 60.544 819.637 96.7787 819.637 144.709ZM853.12 131.867C857.477 106.869 873.76 90.816 898.299 90.816C922.608 90.816 937.973 106.411 941.413 131.867H853.12ZM1221.89 144.709C1221.89 193.787 1256.98 228.416 1301.24 228.416C1341.37 228.416 1367.06 207.547 1374.39 174.293H1339.99C1337.47 186.448 1326.69 198.144 1303.53 198.144C1278.53 198.144 1258.58 183.696 1256.06 156.864H1375.31C1375.77 153.195 1376 148.379 1376 144.709C1376 96.7787 1346.87 60.544 1300.55 60.544C1256.29 60.544 1221.89 96.7787 1221.89 144.709ZM1255.37 131.867C1259.73 106.869 1276.01 90.816 1300.55 90.816C1324.86 90.816 1340.22 106.411 1343.66 131.867H1255.37Z" fill="white"/> 3288</svg> 3289</div><div class="footer-sentinel"></div></div><div class="footer-space"></div><div class="footer_bottom"><div class="footer-logo w-embed"><svg width="100%" height="auto" viewBox="0 0 1376 229" fill="none" xmlns="http://www.w3.org/2000/svg"> 3290<path d="M1162.03 128.885L1142.54 124.757C1130.61 122.005 1124.65 116.272 1124.65 107.099C1124.65 96.0907 1135.43 88.9813 1147.81 88.9813C1165.24 88.9813 1174.19 100.219 1176.02 111.915H1209.5C1203.77 74.7627 1176.94 60.544 1147.81 60.544C1112.5 60.544 1090.48 84.624 1090.48 110.539C1090.48 135.077 1108.14 147.691 1131.76 153.424L1150.34 157.781C1168.91 162.139 1177.17 166.725 1177.17 178.192C1177.17 188.971 1168.91 199.979 1153.09 199.979C1133.82 199.979 1125.57 188.741 1124.19 174.752H1089.79C1090.48 205.483 1114.33 228.416 1151.71 228.416C1190.01 228.416 1210.65 202.731 1210.65 176.357C1210.88 153.653 1192.99 135.765 1162.03 128.885ZM1080.16 64.2133H991.637V224.747H1023.97V92.88H1080.16V64.2133ZM785.237 64.2133L744.416 183.467L703.136 64.2133H668.048L727.675 224.747H760.928L820.555 64.2133H785.237ZM651.765 64.2133H619.429V224.747H651.765V64.2133ZM558.885 18.8053H526.549V64.2133H484.811V92.88H526.549V224.747H558.885V92.88H600.165V64.2133H558.885V18.8053ZM469.445 18.8053H437.109V224.747H469.445V18.8053ZM371.749 154.571C371.749 180.944 355.925 196.997 334.139 196.997C311.893 196.997 296.757 180.944 296.757 154.571V64.2133H264.421V153.883C264.421 199.061 289.877 228.416 333.451 228.416C376.336 228.416 404.085 198.373 404.085 153.883V64.2133H371.749V154.571ZM235.755 64.2133H199.061L134.16 170.853V64.2133H97.008L32.336 170.165V64.2133H0V224.747H32.5653L101.824 110.539V224.747H134.389L203.419 111.685V224.747H235.755V64.2133ZM635.483 41.968C647.179 41.968 656.581 32.5653 656.581 20.8693C656.581 9.40267 647.179 0 635.483 0C623.787 0 614.384 9.40267 614.384 20.8693C614.384 32.5653 623.787 41.968 635.483 41.968ZM819.637 144.709C819.637 193.787 854.725 228.416 898.987 228.416C939.12 228.416 964.805 207.547 972.144 174.293H937.744C935.221 186.448 924.443 198.144 901.28 198.144C876.283 198.144 856.331 183.696 853.808 156.864H973.061C973.52 153.195 973.749 148.379 973.749 144.709C973.749 96.7787 944.624 60.544 898.299 60.544C854.037 60.544 819.637 96.7787 819.637 144.709ZM853.12 131.867C857.477 106.869 873.76 90.816 898.299 90.816C922.608 90.816 937.973 106.411 941.413 131.867H853.12ZM1221.89 144.709C1221.89 193.787 1256.98 228.416 1301.24 228.416C1341.37 228.416 1367.06 207.547 1374.39 174.293H1339.99C1337.47 186.448 1326.69 198.144 1303.53 198.144C1278.53 198.144 1258.58 183.696 1256.06 156.864H1375.31C1375.77 153.195 1376 148.379 1376 144.709C1376 96.7787 1346.87 60.544 1300.55 60.544C1256.29 60.544 1221.89 96.7
3290787 1221.89 144.709ZM1255.37 131.867C1259.73 106.869 1276.01 90.816 1300.55 90.816C1324.86 90.816 1340.22 106.411 1343.66 131.867H1255.37Z" fill="white"/> 3291</svg> 3292</div></div></div></div></footer>
3292<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=69381061fef68be00431dd04" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
3292<script src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/js/multiverse-site.schunk.b36de0610a35aa79.js" type="text/javascript" integrity="sha384-bOZ0zosqGRfOla7kqUultK9km3dXI3K5kOn6mDnozBPY/ZGl9/GKllrjZ0EdPONC" crossorigin="anonymous"></script>
3292<script src="https://cdn.prod.website-files.com/69381061fef68be00431dd04/js/multiverse-site.1f3f8683.2bf56f0cdd2c2efd.js" type="text/javascript" integrity="sha384-TDkRTFI3xAFHrVy7JY2S8o/EI0Vxh/YdyuIdS8eIbzqDoHDdgmMtAQFxkiDYzskt" crossorigin="anonymous"></script>
3292<script type="application/ld+json" id="schema-organization"> 3293{ 3294 "@context": "https://schema.org", 3295 "@type": "Organization", 3296 "@id": "https://www.multiverse.io/#organization", 3297 "name": "Multiverse", 3298 "url": "https://www.multiverse.io", 3299 "logo": { 3300 "@type": "ImageObject", 3301 "url": "https://cdn.prod.website-files.com/69381061fef68be00431dd04/696a57e58189719ef932a40b_Logo.svg" 3302 }, 3303 "contactPoint": { 3304 "@type": "ContactPoint", 3305 "contactType": "customer support", 3306 "email": "[email protected]" 3307 }, 3308 "address": { 3309 "@type": "PostalAddress", 3310 "streetAddress": "2 Eastbourne Terrace, Floors 5+6", 3311 "addressLocality": "London", 3312 "addressCountry": "GB", 3313 "postalCode": "W2 6LG" 3314 }, 3315 "sameAs": [ 3316 "https://www.linkedin.com/company/joinmultiverse/", 3317 "https://twitter.com/joinmultiverse", 3318 "https://www.youtube.com/c/multiverse1", 3319 "https://www.instagram.com/joinmultiverse", 3320 "https://www.facebook.com/joinmultiverse", 3321 "https://www.tiktok.com/@joinmultiverse" 3322 ] 3323} 3324</script>
3324 3325 3326<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 3326-3327
3326 3327<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3327GTM-KWQD2SP
vendor: 83 bytes, lines 3327-3328
3327" 3328height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3329<!-- End Google Tag Manager (noscript) --> 3330 3331<!-- Show Ketch Privacy Settings on Footer 'Privacy Settings' Link Click -->
3332<script> 3333document.addEventListener("DOMContentLoaded", function () { 3334 var el = document.getElementById("privacy-settings"); 3335 3336 if (el) { 3337 el.addEventListener("click", function (e) { 3338 e.preventDefault(); 3339 3340 if (window.ketch) { 3341 window.ketch('showConsent'); 3342 } 3343 }); 3344 } 3345}); 3346</script>
3346 3347 3348<!-- Paginated Canonicals -->
3349<script> 3350document.addEventListener("DOMContentLoaded", function () { 3351 const url = new URL(window.location.href); 3352 3353 // Detect pagination param (_page) 3354 const paginationParams = Array.from(url.searchParams.keys()) 3355 .filter(key => key.endsWith("_page")); 3356 3357 if (paginationParams.length === 0) return; 3358 3359 // Keep only pagination params 3360 const cleanUrl = new URL(url.origin + url.pathname); 3361 3362 paginationParams.forEach(param => { 3363 cleanUrl.searchParams.set(param, url.searchParams.get(param)); 3364 }); 3365 3366 // Remove existing canonical 3367 document.querySelectorAll("link[rel='canonical']").forEach(el => el.remove()); 3368 3369 // Add clean canonical 3370 const canonical = document.createElement("link"); 3371 canonical.rel = "canonical"; 3372 canonical.href = cleanUrl.toString(); 3373 3374 document.head.appendChild(canonical); 3375}); 3376</script>
vendor: 1 bytes, line 3376
3376
3377<script> 3378(function () { 3379 const SELECTOR = '[data-split="lines"]'; 3380 const HEADING_TAGS = ['h1','h2','h3','h4','h5','h6','p']; 3381 const originalMarkup = new WeakMap(); 3382 3383 function resolveTargets(root) { 3384 return HEADING_TAGS.includes(root.tagName.toLowerCase()) 3385 ? [root] 3386 : Array.from(root.querySelectorAll(HEADING_TAGS.join(','))); 3387 } 3388 3389 function collectWords(root) { 3390 const words = []; 3391 (function walk(node, tags) { 3392 if (node.nodeType === Node.TEXT_NODE) { 3393 node.textContent.split(/\s+/).filter(Boolean).forEach(text => words.push({ text, tags: tags.slice() })); 3394 } else if (node.nodeType === Node.ELEMENT_NODE) { 3395 const tagInfo = { tagName: node.tagName.toLowerCase(), attrs: Array.from(node.attributes) }; 3396 Array.from(node.childNodes).forEach(child => walk(child, tags.concat([tagInfo]))); 3397 } 3398 })(root, []); 3399 return words; 3400 } 3401 3402 function buildWordSpan(wordObj) { 3403 let node = document.createTextNode(wordObj.text + '\u00A0'); 3404 for (let i = wordObj.tags.length - 1; i >= 0; i--) { 3405 const info = wordObj.tags[i]; 3406 const wrapper = document.createElement(info.tagName); 3407 info.attrs.forEach(attr => wrapper.setAttribute(attr.name, attr.value)); 3408 wrapper.appendChild(node); 3409 node = wrapper; 3410 } 3411 const span = document.createElement('span'); 3412 span.className = 'word'; 3413 span.style.display = 'inline-block'; 3414 span.appendChild(node); 3415 return span; 3416 } 3417 3418 function splitLines(el) { 3419 if (!originalMarkup.has(el)) originalMarkup.set(el, el.innerHTML); 3420 3421 const container = document.createElement('div'); 3422 container.innerHTML = originalMarkup.get(el); 3423 const wordSpans = collectWords(container).map(buildWordSpan); 3424 3425 el.innerHTML = ''; 3426 wordSpans.forEach(span => el.appendChild(span)); 3427 3428// patch for line splitting 3429 const LINE_TOLERANCE = 10; 3430 const tops = wordSpans.map(w => w.offsetTop); 3431 const lines = []; 3432 let currentTop = null; 3433 wordSpans.forEach((span, i) => { 3434 if (currentTop === null || Math.abs(tops[i] - currentTop) > LINE_TOLERANCE) { 3435 lines.push([]); 3436 currentTop = tops[i]; 3437 } 3438 lines[lines.length - 1].push(span); 3439 }); 3440// end patch 3441 3442 el.innerHTML = ''; 3443 lines.forEach((lineSpans, i) => { 3444 const mask = document.createElement('span'); 3445 mask.className = 'line-mask'; 3446 const inner = document.createElement('span'); 3447 inner.className = 'line-inner'; 3448 inner.style.setProperty('--i', i); 3449 lineSpans.forEach(span => inner.appendChild(span)); 3450 mask.appendChild(inner); 3451 el.appendChild(mask); 3452 }); 3453 } 3454 3455 function init() { 3456 const seen = new Set(); 3457 const els = []; 3458 Array.from(document.querySelectorAll(SELECTOR)).forEach(root => { 3459 resolveTargets(root).forEach(target => { 3460 if (!seen.has(target)) { 3461 seen.add(target); 3462 target.classList.add('js-line-split'); 3463 els.push(target); 3464 } 3465 }); 3466 }); 3467 3468 els.forEach(splitLines); 3469 3470 const io = new IntersectionObserver((entries, obs) => { 3471 entries.forEach(entry => { 3472 if (entry.isIntersecting) { 3473 entry.target.classList.add('in-view'); 3474 obs.unobserve(entry.target); 3475 } 3476 }); 3477 }, { threshold: 0.2, rootMargin: '0px 0px -10% 0px' }); 3478 3479 els.forEach(el => io.observe(el)); 3480 3481 let resizeTimer; 3482 window.addEventListener('resize', () => { 3483 clearTimeout(resizeTimer); 3484 resizeTimer = setTimeout(() => { 3485 els.forEach(splitLines); 3486 }, 150); 3487 }); 3488 } 3489 3490 if (document.readyState === 'loading') { 3491 document.addEventListener('DOMContentLoaded', init); 3492 } else { 3493 init(); 3494 } 3495})(); 3496</script>
3496 3497 3498 3499<!-- Footer Animation Code --> 3500<style> 3501 .footer_layout { 3502 opacity: 0; 3503 transition: opacity 0.3s ease; 3504 } 3505 .footer_layout.is-visible { 3506 opacity: 1; 3507 } 3508</style>
3509<script> 3510function initFooterLayoutReveal() { 3511 const layout = document.querySelector('.footer_layout'); 3512 const sentinel = document.querySelector('.footer-sentinel'); // 1px div, 32px below dummy's bottom 3513 if (!layout || !sentinel) return; 3514 3515 const observer = new IntersectionObserver( 3516 ([entry]) => layout.classList.toggle('is-visible', entry.isIntersecting) 3517 ); 3518 observer.observe(sentinel); 3519} 3520window.addEventListener('DOMContentLoaded', initFooterLayoutReveal); 3521</script>
3521 3522 3523<!-- VIDEO PLAYER â headless controller --> 3524
3525<script> 3526/* 3527 Headless video player controller. 3528 - a normal file (.mp4 etc) -> played as-is with native controls 3529 - any Wistia link -> the <video> is swapped for a <wistia-player> 3530*/ 3531(function () { 3532 const WISTIA_PLAYER_JS = 'https://fast.wistia.com/player.js'; 3533 const ID_PATTERNS = [ 3534 /\/medias\/([a-z0-9]{10})/i, 3535 /\/embed\/iframe\/([a-z0-9]{10})/i, 3536 /\/embed\/medias\/([a-z0-9]{10})/i, 3537 /[?&]wvideo=([a-z0-9]{10})/i 3538 ]; 3539 3540 function isWistiaUrl(src) { 3541 return /(^|\/\/|\.)wistia\.(com|net)\//i.test(src); 3542 } 3543 3544 3545 function mediaIdFromUrl(src) { 3546 for (let i = 0; i < ID_PATTERNS.length; i++) { 3547 const m = src.match(ID_PATTERNS[i]); 3548 if (m) return m[1]; 3549 } 3550 return null; 3551 } 3552 3553 function resolveMediaId(src) { 3554 const direct = mediaIdFromUrl(src); 3555 if (direct) return Promise.resolve(direct); 3556 return fetch('https://fast.wistia.com/oembed.json?url=' + encodeURIComponent(src)) 3557 .then(function (r) { return r.ok ? r.json() : null; }) 3558 .then(function (data) { return data ? mediaIdFromUrl(data.html || '') : null; }) 3559 .catch(function () { return null; }); 3560 } 3561 3562 let wistiaReady = null; 3563 function loadWistia() { 3564 if (wistiaReady) return wistiaReady; 3565 if (!document.querySelector('script[src^="' + WISTIA_PLAYER_JS + '"]')) { 3566 const s = document.createElement('script'); 3567 s.src = WISTIA_PLAYER_JS; 3568 s.async = true; 3569 document.head.appendChild(s); 3570 } 3571 wistiaReady = customElements.whenDefined('wistia-player'); 3572 return wistiaReady; 3573 } 3574 3575 // Swap the <video> for a <wistia-player> 3576 function buildWistiaPlayer(videoEl, mediaId) { 3577 const p = document.createElement('wistia-player'); 3578 p.setAttribute('data-vp-video', ''); 3579 p.setAttribute('media-id', mediaId); 3580 p.setAttribute('fit-strategy', 'contain'); 3581 p.setAttribute('big-play-button', 'false'); 3582 p.setAttribute('controls-visible-on-load', 'false'); 3583 p.setAttribute('playback-rate-control', 'false'); 3584 p.setAttribute('style', videoEl.getAttribute('style') || 'width:100%;height:100%;display:block;background:#000'); 3585 videoEl.removeAttribute('src'); 3586 videoEl.replaceWith(p); 3587 return p; 3588 } 3589 3590 // --- media adapters: one interface over <wistia-player> and <video> --- 3591 function wistiaAdapter(p) { 3592 return { 3593 play: function () { const r = p.play(); if (r && r.catch) r.catch(function () {}); }, 3594 focus: function () { try { p.focus(); } catch (e) {} }, 3595 reset: function () { try { p.currentTime = 0; } catch (e) {} }, 3596 on: function (ev, cb) { p.addEventListener(ev, cb); }, 3597 onDuration: function (cb) { 3598 const ready = typeof p.whenApiReady === 'function' ? p.whenApiReady() : Promise.resolve(); 3599 Promise.resolve(ready).then(function () { cb(p.duration); }).catch(function () {}); 3600 } 3601 }; 3602 } 3603 3604 function nativeAdapter(v) { 3605 return { 3606 play: function () { 3607 v.setAttribute('controls', ''); 3608 const r = v.play(); 3609 if (r && r.catch) r.catch(function () {}); 3610 }, 3611 focus: function () { try { v.focus(); } catch (e) {} }, 3612 reset: function () { v.removeAttribute('controls'); v.currentTime = 0; }, 3613 on: function (ev, cb) { v.addEventListener(ev, cb); }, 3614 onDuration: function (cb) { 3615 if (v.readyState > 0) cb(v.duration); 3616 else v.addEventListener('loadedmetadata', function () { cb(v.duration); }); 3617 } 3618 }; 3619 } 3620 3621 function initPlayer(root) { 3622 if (root.dataset.vpInit) return; 3623 root.dataset.vpInit = 'true'; 3624 3625 const videoEl = root.querySelector('[data-vp-video]'); 3626 const poster = root.querySelector('[data-vp-poster]'); 3627 const playBtn = root.querySelector('[data-vp-play]'); 3628 const meta = root.querySelector('[data-vp-meta]'); 3629 const labelEl = root.querySelector('[data-vp-label]'); 3630 const durationEl = root.querySelector('[data-vp-duration]'); 3631 const hideOnPlay = [poster, playBtn, meta].filter(Boolean); 3632 if (!videoEl || !playBtn) return; 3633 3634 playBtn.setAttribute('aria-label', 'Play: ' + (labelEl ? labelEl.textContent.trim() : 'video')); 3635 3636 let media = null; 3637 let pendingPlay = false;
3638 playBtn.addEventListener('click', function () { 3639 if (media) media.play(); 3640 else pendingPlay = true; 3641 }); 3642 3643 function wire(adapter) { 3644 media = adapter; 3645 3646 media.onDuration(function (d) { 3647 if (durationEl) { 3648 if (Number.isFinite(d) && d > 0) { 3649 const m = Math.floor(d / 60); 3650 const s = Math.floor(d % 60).toString().padStart(2, '0'); 3651 durationEl.textContent = m + ':' + s; 3652 } else { 3653 durationEl.style.display = 'none'; 3654 const dot = root.querySelector('.video-player_dot, [data-vp-dot]'); 3655 if (dot) dot.style.display = 'none'; 3656 } 3657 } 3658 root.dispatchEvent(new CustomEvent('video-loadedmetadata', { bubbles: true, detail: { duration: d } })); 3659 }); 3660 3661 media.on('play', function () { 3662 hideOnPlay.forEach(function (el) { 3663 el.style.opacity = ''; 3664 el.style.visibility = ''; 3665 el.classList.add('is-playing'); 3666 }); 3667 media.focus(); 3668 root.dispatchEvent(new CustomEvent('video-play', { bubbles: true })); 3669 }); 3670 3671 let endHandled = false; 3672 media.on('ended', function () { 3673 if (endHandled) return; 3674 endHandled = true; 3675 root.dispatchEvent(new CustomEvent('video-ended', { bubbles: true })); 3676 setTimeout(function () { 3677 hideOnPlay.forEach(function (el) { 3678 el.style.transition = 'opacity 0.8s ease'; 3679 el.classList.remove('is-playing'); 3680 }); 3681 setTimeout(function () { 3682 media.reset(); 3683 hideOnPlay.forEach(function (el) { el.style.transition = ''; }); 3684 endHandled = false; 3685 }, 800); 3686 }, 5000); 3687 }); 3688 3689 if (pendingPlay) { 3690 pendingPlay = false; 3691 media.play(); 3692 } 3693 } 3694 3695 const src = videoEl.getAttribute('src') || ''; 3696 3697 if (!isWistiaUrl(src)) { 3698 wire(nativeAdapter(videoEl)); 3699 return; 3700 } 3701 3702 Promise.all([resolveMediaId(src), loadWistia()]).then(function (results) { 3703 const mediaId = results[0]; 3704 if (!mediaId) { 3705 console.warn('[video-player] could not resolve a Wistia media id from:', src); 3706 return; 3707 } 3708 wire(wistiaAdapter(buildWistiaPlayer(videoEl, mediaId))); 3709 }); 3710 } 3711 3712 function initAll() { 3713 document.querySelectorAll('[data-vp-root]').forEach(initPlayer); 3714 } 3715 3716 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initAll); 3717 else initAll(); 3718})(); 3719</script>
3719 3720
3721<script> 3722/* Footer accordion (<=767px): button.footer-label_wrap toggles its sibling .footer_link-list */ 3723(() => { 3724 const mq = matchMedia('(max-width: 767px)'); 3725 const still = matchMedia('(prefers-reduced-motion: reduce)'); 3726 const labels = [...document.querySelectorAll('.footer-label_wrap')]; 3727 const sentinel = document.querySelector('.footer-sentinel'); 3728 3729 document.head.insertAdjacentHTML('beforeend', `<style> 3730@media (max-width:767px){ 3731 .footer_link-list{display:flex;overflow:hidden} 3732 .footer_link-list[hidden]{display:none} 3733 .footer_layout:not(.is-visible){pointer-events:none} 3734 .footer-label_wrap{cursor:pointer} 3735 .footer-dropdown-icon{transition:transform .25s} 3736 [aria-expanded=true] .footer-dropdown-icon{transform:rotate(180deg)} 3737} 3738@media (prefers-reduced-motion:reduce){.footer-dropdown-icon{transition:none}} 3739</style>`); 3740 3741 labels.forEach((l, i) => { 3742 const ul = l.nextElementSibling; 3743 ul.id ||= 'footer-list-' + i; 3744 l.setAttribute('aria-controls', ul.id); 3745 }); 3746 3747 const sync = () => labels.forEach((l) => { 3748 l.nextElementSibling.hidden = mq.matches; 3749 mq.matches ? l.setAttribute('aria-expanded', 'false') : l.removeAttribute('aria-expanded'); 3750 }); 3751 3752 const toggle = (l) => { 3753 const ul = l.nextElementSibling; 3754 const open = l.getAttribute('aria-expanded') !== 'true'; 3755 ul.getAnimations().forEach((a) => a.cancel()); 3756 l.setAttribute('aria-expanded', open); 3757 const y0 = sentinel && sentinel.getBoundingClientRect().top; 3758 ul.hidden = false; 3759 const a = ul.animate( 3760 { height: ['0px', ul.offsetHeight + 'px'], paddingBlock: ['0px', getComputedStyle(ul).paddingTop] }, 3761 { duration: still.matches ? 0 : 250, easing: 'ease', direction: open ? 'normal' : 'reverse' } 3762 ); 3763 a.onfinish = () => (ul.hidden = !open); 3764 3765 // Footer reveal is driven by the sentinel at the page bottom. While opening, scroll by however much 3766 // the page grows each frame so the sentinel stays in view (no fade-out, links never sit behind the pinned logo). 3767 if (open && y0 < innerHeight) { 3768 const follow = () => { 3769 scrollBy(0, sentinel.getBoundingClientRect().top - y0); 3770 if (a.playState === 'running') requestAnimationFrame(follow); 3771 }; 3772 requestAnimationFrame(follow); 3773 } 3774 }; 3775 3776 document.addEventListener('click', (e) => { 3777 const l = mq.matches && e.target.closest('.footer-label_wrap'); 3778 if (l) toggle(l); 3779 }); 3780 3781 mq.addEventListener('change', sync); 3782 sync(); 3783})(); 3784</script>
3784<script> 3785/* 3786 Intro sticky image 3787 ------------------ 3788 .intro-sticky-wrap 3789 section.intro-sticky â sticky "curtain" (styles in <head> CSS); fades out once, never returns 3790 .intro-image_wrap â scales startScale â 1 on scroll, reaching full size as it pins 3791 .intro-sticky_below â card sits exactly where the image was 3792 3793 Sequence 3794 1. Image grows as it scrolls in, reaching full size exactly as it pins. 3795 2. It holds for holdPx of scroll, then â while still opaque â the curtain switches 3796 from sticky to fixed (same spot), which takes its space out of the page. A 3797 spacer the size of the hold keeps _below at the top of the viewport, its card 3798 in the image's footprint, without scrolling (a scroll up would show the nav). 3799 3. Curtain fades out over fadeMs (scroll input paused meanwhile); animations 3800 inside _below are restarted so they play as it's revealed. 3801 4. _below is sticky with a revealHoldPx spacer after it, so it holds briefly 3802 before scrolling on. 3803 5. On the first scroll up (the nav is showing then anyway) all of that is removed 3804 in one go with _below kept still on screen, so the page is back to normal. 3805 If the page loads (or restores its scroll) past the reveal point, the image is 3806 removed straight away and never shown. 3807*/ 3808(function () { 3809 const CFG = { 3810 startScale: 0.4, // image scale when the section first enters the viewport 3811 holdPx: 80, // scroll distance the pinned, full-size image holds before fading 3812 revealHoldPx: 400, // scroll distance the revealed section holds before scrolling away 3813 fadeMs: 700, 3814 fadeEase: 'cubic-bezier(0.4, 0, 0.2, 1)', 3815 pauseScroll: true, // hold the page still while the fade plays 3816 replayAnimations: true, 3817 scaleEase: t => 1 - (1 - t) * (1 - t), // easeOutQuad; use t => t for linear 3818 }; 3819 3820 let current; 3821 3822 function initIntroSticky() { 3823 if (current) current.destroy(); 3824 3825 const wrap = document.querySelector('.intro-sticky-wrap'); 3826 const section = document.querySelector('.intro-sticky'); 3827 const image = section && section.querySelector('.intro-image_wrap'); 3828 const below = document.querySelector('.intro-sticky_below'); 3829 if (!wrap || !section || !image || !below) return; 3830 3831 const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 3832 3833 image.style.willChange = 'transform'; 3834 3835 let state = 'active'; // active â revealing â revealed â done, or destroyed 3836 let ticking = false; 3837 let rafId; 3838 let lastY = 0; 3839 let holdEl; 3840 let fadeTimer; 3841 let unlockScroll = () => {}; 3842 3843 function setScale(s, originY) { 3844 image.style.transformOrigin = `50% ${originY}%`; 3845 image.style.transform = s >= 1 ? 'none' : `scale(${s})`; 3846 } 3847 3848 function setScroll(y) { 3849 const l = window.lenis; 3850 if (l && typeof l.scrollTo === 'function') l.scrollTo(y, { immediate: true, force: true }); 3851 else window.scrollTo(0, y); 3852 } 3853 3854 // Run a layout change without `anchor` visibly moving. 3855 function withoutShift(anchor, change) { 3856 const root = document.documentElement; 3857 const prevAnchor = root.style.overflowAnchor; 3858 root.style.overflowAnchor = 'none'; 3859 const before = anchor.getBoundingClientRect().top; 3860 change(); 3861 const after = anchor.getBoundingClientRect().top; 3862 if (before !== after) setScroll(window.scrollY + after - before); 3863 root.style.overflowAnchor = prevAnchor; 3864 } 3865 3866 function pauseScroll(ms) { 3867 const keys = ['ArrowUp', 'ArrowDown', 'PageUp', 'PageDown', 'Home', 'End', ' ']; 3868 const block = e => { 3869 if (e.type === 'keydown' && !keys.includes(e.key)) return; 3870 e.preventDefault(); 3871 e.stopImmediatePropagation(); 3872 }; 3873 const opts = { capture: true, passive: false }; 3874 const types = ['wheel', 'touchmove', 'keydown']; 3875 types.forEach(t => document.addEventListener(t, block, opts)); 3876 const timer = setTimeout(unlock, ms); 3877 function unlock() { 3878 clearTimeout(timer); 3879 types.forEach(t => document.removeEventListener(t, block, opts)); 3880 unlockScroll = () => {}; 3881 } 3882 unlockScroll = unlock; 3883 } 3884 3885 function replayAnimations() { 3886 const roots = [below, ...[...below.querySelectorAll('*')].map(el =>
3886 el.shadowRoot).filter(Boolean)]; 3887 for (const root of roots) { 3888 const anims = root === below ? below.getAnimations({ subtree: true }) : root.getAnimations(); 3889 for (const a of anims) { 3890 a.currentTime = 0; 3891 a.play(); 3892 } 3893 } 3894 } 3895 3896 // Page loaded (or scroll-restored) past the reveal point â never show it. 3897 function removeInstantly() { 3898 withoutShift(below, () => { section.style.display = 'none'; }); 3899 finish(); 3900 } 3901 3902 function reveal() { 3903 state = 'revealing'; 3904 setScale(1, 50); 3905 if (CFG.pauseScroll) pauseScroll(CFG.fadeMs); 3906 3907 const r = section.getBoundingClientRect(); 3908 Object.assign(section.style, { 3909 position: 'fixed', 3910 top: `${r.top}px`, 3911 left: `${r.left}px`, 3912 width: `${r.width}px`, 3913 margin: '0', 3914 }); 3915 const offset = below.getBoundingClientRect().top; 3916 if (offset < 0) { 3917 wrap.style.paddingTop = `${-offset}px`; 3918 } else if (offset > 0) { 3919 setScroll(window.scrollY + offset); // only ever downwards 3920 } 3921 3922 // Hold the revealed section briefly 3923 below.style.position = 'sticky'; 3924 below.style.top = '0px'; 3925 holdEl = document.createElement('div'); 3926 holdEl.setAttribute('aria-hidden', 'true'); 3927 holdEl.style.height = `${CFG.revealHoldPx}px`; 3928 wrap.appendChild(holdEl); 3929 3930 if (CFG.replayAnimations) replayAnimations(); 3931 3932 section.style.transition = `opacity ${CFG.fadeMs}ms ${CFG.fadeEase}`; 3933 section.style.opacity = '0'; 3934 fadeTimer = setTimeout(() => { 3935 section.style.display = 'none'; 3936 state = 'revealed'; 3937 lastY = window.scrollY; 3938 }, CFG.fadeMs); 3939 } 3940 3941 // On the first scroll up (the nav is showing then anyway), put the layout back to 3942 // normal in one go, keeping _below still on screen. 3943 function checkScrollUp() { 3944 const y = window.scrollY; 3945 if (y < lastY) { 3946 withoutShift(below, restoreLayout); 3947 finish(); 3948 } 3949 lastY = y; 3950 } 3951 3952 function restoreLayout() { 3953 wrap.style.paddingTop = ''; 3954 below.style.position = ''; 3955 below.style.top = ''; 3956 if (holdEl) holdEl.remove(); 3957 holdEl = undefined; 3958 } 3959 3960 function finish() { 3961 state = 'done'; 3962 unbind(); 3963 } 3964 3965 function update(instant) { 3966 ticking = false; 3967 if (state === 'revealed') return checkScrollUp(); 3968 if (state !== 'active') return; 3969 3970 const vh = window.innerHeight; 3971 const wrapTop = wrap.getBoundingClientRect().top; // not sticky, so it's the true flow position 3972 3973 if (wrapTop <= -CFG.holdPx) return instant ? removeInstantly() : reveal(); 3974 3975 if (reduceMotion) return setScale(1, 50); 3976 // 0 as the section's top enters the viewport â 1 as it pins at the top. 3977 const p = Math.min(Math.max((vh - wrapTop) / vh, 0), 1); 3978 // Shrink towards the top edge at first (keeps the gap to the text above), 3979 // shifting to the centre by the time it pins. 3980 setScale(CFG.startScale + (1 - CFG.startScale) * CFG.scaleEase(p), 50 * p * p); 3981 } 3982 3983 function onScroll() { 3984 if (!ticking) { 3985 ticking = true; 3986 rafId = requestAnimationFrame(() => update(false)); 3987 } 3988 } 3989 3990 function onLoad() { 3991 rafId = requestAnimationFrame(() => update(true)); 3992 } 3993 3994 function unbind() { 3995 window.removeEventListener('scroll', onScroll); 3996 window.removeEventListener('resize', onScroll); 3997 window.removeEventListener('load', onLoad); 3998 image.style.willChange = ''; 3999 } 4000 4001 function destroy() { 4002 state = 'destroyed'; // stops any already-queued update from touching the page 4003 unbind(); 4004 cancelAnimationFrame(rafId); 4005 unlockScroll(); 4006 clearTimeout(fadeTimer); 4007 section.removeAttribute('style'); 4008 image.removeAttribute('style'); 4009 restoreLayout(); 4010 if (current === api) current = undefined; 4011 } 4012 4013 window.addEventListener('scroll', onScroll, { passive: true }); 4014 window.addEventListener('resize', onScroll); 4015 4016 update(true); 4017 if (document.readyState !== 'complete') window.addEventListener('load', onLoad, { once: true }); 4018 4019 const api = { destroy, state: () => state }; 4020 current = api; 4021 return api; 4022 } 4023 4024 // Off for small screens (must match the <head> CSS query). 4025 const disabledMQ = window.matchMedia('(max-width: 767px)'); 4026 4027 function sync() { 4028 if (disabledMQ.matches) { 4029 if (current) current.destroy(); 4030 window.introSticky = undefined; 4031 } else if (!current) { 4032 window.introSticky = initIntroSticky(); 4033 } 4034 } 4035 4036 window.initIntroSticky = initIntroSticky; 4037 disabledMQ.addEventListener('change', sync); 4038 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', sync); 4039 else sync(); 4040})(); 4041 4042</script>
4042 4043 4044
4045<script> 4046/* 4047 Intro image tiles: keep them from running into each other 4048*/ 4049(function () { 4050 const CFG = { 4051 gapRem: 1.5, // minimum clearance kept between the tiles, and from the wrap's edges 4052 minScale: 0.5, // never shrink them below this 4053 }; 4054 4055 function initIntroTiles() { 4056 const wrap = document.querySelector('.intro-image_wrap'); 4057 const tiles = wrap ? [...wrap.querySelectorAll('[data-reveal-tile]')] : []; 4058 if (tiles.length !== 2) return; 4059 4060 // Each tile shrinks towards the corner it's anchored to 4061 function origin(t, W, H) { 4062 const v = t.getAttribute('data-reveal-tile') || ''; 4063 const right = /right/.test(v) || (!/left/.test(v) && W - (t.offsetLeft + t.offsetWidth) < t.offsetLeft); 4064 const bottom = /bottom/.test(v) || (!/top/.test(v) && H - (t.offsetTop + t.offsetHeight) < t.offsetTop); 4065 return { right, bottom }; 4066 } 4067 4068 function scaledBox(t, o, s) { 4069 const w = t.offsetWidth * s; 4070 const h = t.offsetHeight * s; 4071 const left = o.right ? t.offsetLeft + t.offsetWidth - w : t.offsetLeft; 4072 const top = o.bottom ? t.offsetTop + t.offsetHeight - h : t.offsetTop; 4073 return { left, top, right: left + w, bottom: top + h }; 4074 } 4075 4076 function clear(a, b, gap) { 4077 return ( 4078 a.right + gap <= b.left || b.right + gap <= a.left || 4079 a.bottom + gap <= b.top || b.bottom + gap <= a.top 4080 ); 4081 } 4082 4083 function inside(box, o, W, H, m) { 4084 return (o.right ? box.left >= m : box.right <= W - m) && 4085 (o.bottom ? box.top >= m : box.bottom <= H - m); 4086 } 4087 4088 function fit() { 4089 if (tiles.some(t => !t.offsetParent)) { 4090 tiles.forEach(t => { t.style.scale = ''; }); 4091 return; 4092 } 4093 const W = wrap.clientWidth; 4094 const H = wrap.clientHeight; 4095 const gap = CFG.gapRem * parseFloat(getComputedStyle(document.documentElement).fontSize); 4096 const [ta, tb] = tiles; 4097 const oa = origin(ta, W, H); 4098 const ob = origin(tb, W, H); 4099 const fits = s => { 4100 const a = scaledBox(ta, oa, s); 4101 const b = scaledBox(tb, ob, s); 4102 return clear(a, b, gap) && inside(a, oa, W, H, gap) && inside(b, ob, W, H, gap); 4103 }; 4104 4105 let s = 1; 4106 if (!fits(1)) { 4107 let lo = CFG.minScale; 4108 let hi = 1; 4109 for (let i = 0; i < 20; i++) { 4110 const mid = (lo + hi) / 2; 4111 if (fits(mid)) lo = mid; 4112 else hi = mid; 4113 } 4114 s = lo; 4115 } 4116 4117 tiles.forEach((t, i) => { 4118 const o = i ? ob : oa; 4119 t.style.transformOrigin = `${o.right ? 'right' : 'left'} ${o.bottom ? 'bottom' : 'top'}`; 4120 t.style.scale = s < 1 ? String(Math.round(s * 1000) / 1000) : ''; 4121 }); 4122 } 4123 4124 const ro = new ResizeObserver(fit); 4125 ro.observe(wrap); 4126 tiles.forEach(t => ro.observe(t)); // their height changes as text wraps or fonts load 4127 if (document.fonts) document.fonts.ready.then(fit); 4128 fit(); 4129 } 4130 4131 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initIntroTiles); 4132 else initIntroTiles(); 4133})(); 4134</script>
4134</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.