1<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Fri Jun 12 2026 08:23:01 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="zebeyond-dev-4.webflow.io" data-wf-page="6920ceefd6e9590d3ad15797" data-wf-site="691fe9a45470bd6d1697aba4" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Solutions</title><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/css/zebeyond-dev-4.webflow.shared.3eed6a394.min.css" rel="stylesheet" type="text/css" integrity="sha384-Pu1qOU6XBWExb2eqXoQQVQj6penwh9Tp0KAcECrDS/xXBB8jgMaoD3c2wQO71CDs" 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/img/favicon.ico" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/img/webclip.png" rel="apple-touch-icon"/><!-- Splide CSS --> 2<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide.min.css"> 3<!-- Finsweet Attributes
4<script async type="module" 5src="https://cdn.jsdelivr.net/npm/@finsweet/attributes@2/attributes.js" 6fs-list 7></script>
7 8--> 9 10<style> 11 [data-tab-panel]:not(.is-active) { 12 display: none; 13 } 14 15 [data-diagram-panel]:not(.active) { 16 display: none; 17 } 18 19 [data-diagram-btn].active .cell-border::before { 20 opacity: 1; 21 } 22 23 [data-diagram-btn].active .cell-border { 24 border-color: transparent; 25 } 26</style></head><body><div class="global-code"><div class="global-css w-embed"><style> 27 .header { 28 will-change: transform; 29 -webkit-transform: translate3d(0, 0, 0); 30 transform: translate3d(0, 0, 0); 31 -webkit-backface-visibility: hidden; 32 backface-visibility: hidden; 33 } 34 35 :root { 36 --bg--gr-overlay: linear-gradient(180deg, #0d1512 0%, rgba(13, 21, 18, 0) 43.67%, rgba(13, 21, 18, 0) 100%); 37 --text--gr: linear-gradient(251deg, rgba(4, 239, 174, 0) 0%, #04efae 40%, rgba(4, 239, 174, 0) 100%); 38 --accent-1000: linear-gradient(270deg, #02f2aa 30%, #26d2e2 70%); 39 --accent-1000-hover: linear-gradient(270deg, #4EFAFF 0%, #20FFC8 100%); 40 --accent-text: linear-gradient(251deg, #fcfcfc 0%, #04efae 40%, #fcfcfc 100%); 41 --accent-text-on-light: linear-gradient(251deg, #0D1512 0%, #04efae 40%, #0D1512 100%); 42 --accent-900: linear-gradient(270deg, rgba(2, 242, 170, 0.90) 30%, rgba(38, 210, 226, 0.90) 70%); 43 --accent-700: linear-gradient(270deg, rgba(2, 242, 170, 0.70) 30%, rgba(38, 210, 226, 0.70) 70%); 44 --accent-1000-on-light: linear-gradient(270deg, #14A177 0%, #28A5B1 100%); 45 --accent-1000-on-dark: linear-gradient(270deg, #02F2AA 0%, #26D2E2 100%) 46 } 47 48 /* Fluid responsive */ 49 html { 50 font-size: calc(16*(100vw / 1440)); 51 } 52 53 @media (max-width: 479px) { 54 html { 55 font-size: calc(16*(100vw / 375)); 56 } 57 } 58 59 @media (min-width: 1440px) { 60 html { 61 font-size: 16px; 62 } 63 } 64 65 @media (min-width: 1920px) { 66 html { 67 font-size: 16px; 68 } 69 } 70 71 72 @media (min-width: 1440px) and (max-height: 720px) { 73 html { 74 font-size: calc(14*(100vw / 1440)); 75 } 76 } 77 78 79 img { 80 height: auto; 81 vertical-align: middle; 82 font-style: italic; 83 background-repeat: no-repeat; 84 background-size: cover; 85 shape-margin: 0.75rem; 86 } 87 88 /* Snippet gets rid of top margin on first element in any rich text*/ 89 .w-richtext>:first-child, .w-richtext>:first-child>:first-child { 90 margin-top: 0; 91 padding-top: 0; 92 } 93 /* Snippet gets rid of bottom margin on last element in any rich text*/ 94 .w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child { 95 margin-bottom: 0; 96 } 97 98 a, 99 .w-dropdown-btn, 100 .w-dropdown-toggle, 101 .w-dropdown-link { 102 color: inherit; 103 text-decoration: inherit; 104 font-size: inherit; 105 } 106 107 * { 108 -webkit-tap-highlight-color: transparent; 109 } 110 111 /* Apply "..." after 3 lines of text */ 112 [data-text-style-3lines] { 113 display: -webkit-box; 114 overflow: hidden; 115 -webkit-line-clamp: 3; 116 -webkit-box-orient: vertical; 117 } 118 119 /* Apply "..." after 2 lines of text */ 120 [data-text-style-2lines] { 121 display: -webkit-box; 122 overflow: hidden; 123 -webkit-line-clamp: 2; 124 -webkit-box-orient: vertical; 125 } 126 127 /* Apply "..." after 1 lines of text */ 128 [data-text-style-1lines] { 129 display: -webkit-box; 130 overflow: hidden; 131 -webkit-line-clamp: 1; 132 -webkit-box-orient: vertical; 133 } 134 135 @keyframes widthCSS { 136 0% { 137 width: 1%; 138 } 139 100% { 140 width: 100%; 141 } 142 } 143 @keyframes shimmer { 144 0% { 145 background-position: -300% 0; 146 } 147 100% { 148 background-position: 300% 0; 149 } 150 } 151 @keyframes slideUpCSS { 152 0% { 153 opacity: 0; 154 transform: translateY(20px); 155 } 156 100% { 157 opacity: 1; 158 transform: translateY(0px); 159 } 160 } 161 @keyframes slideDownCSS { 162 0% { 163 opacity: 0; 164 transform: translateY(-20px); 165 } 166 100% { 167 opacity: 1; 168 transform: translateY(0px); 169 } 170 } 171 @keyframes fadeInCSS { 172 0% { 173 opacity: 0; 174 } 175 100% { 176 opacity: 1; 177 } 178 } 179 180 [data-title-anim-gr] { 181 background: linear-gradient( 182 265deg, 183 rgba(255, 255, 255, 1) 3.84%, 184 #04efae 41.31%, 185 rgba(255, 255, 255, 1) 97.51% 186 ); 187 background-size: 300% 100%; 188 -webkit-background-clip: text; 189 background-clip: text; 190 -webkit-text-fill-color: transparent; 191 animation: shimmer 12.5s linear infinite; 192 } 193 194 [data-title-anim-gr-onLight] { 195 background: linear-gradient( 196 265deg, 197 #0D1512 3.84%, 198 #04efae 41.31%, 199 #0D1512 97.51% 200 ); 201 background-size: 300% 100%; 202 -webkit-background-clip: text; 203 background-clip: text; 204 -webkit-text-fill-color: transparent; 205 animation: shimmer 12.5s linear infinite; 206 } 207 208 [data-gr-text] { 209 background: var(--accent-text); 210 background-clip: text; 211 -webkit-background-clip: text; 212 -webkit-text-fill-color: transparent; 213 } 214 [data-gr-text-on-light] { 215 background: var(--accent-text-on-light); 216 background-clip: text; 217 -webkit-background-clip: text; 218 -webkit-text-fill-color: transparent; 219 } 220 221 [data-btn-text-gr] { 222 background: var(--accent-1000); 223 background-clip: text; 224 -webkit-background-clip: text; 225 -webkit-text-fill-color: transparent; 226 } 227 228 address { 229 font-style: normal; 230 } 231 232 [data-simple-dropdown].active [data-dropdown-arrow] { 233 transform: rotate(-180deg); 234 } 235 [data-dropdown-arrow] { 236 transition: transform 0.2s ease; 237 } 238 .w-dropdown-toggle.w--open [data-dropdown-arrow] { 239 transform: rotate(180deg); 240 } 241 242 .header.is-scrolled .nav-overlay { 243 opacity: 1; 244 } 245 246 [data-copy-done].active { 247 display: block; 248 } 249 250 .btn * { 251 z-index: 2; 252 } 253 254 .btn::before { 255 content: ''; 256 position: absolute; 257 top: 50%; 258 left: 50%; 259 transform: translate(-50%, -50%); 260 width: 200%; 261 height: 500%; 262 transition: transform 0.2s ease; 263 border-radius: inherit; 264 background: var(--accent-1000); 265 pointer-events: none; 266 } 267 268 .btn-secondary[data-onlight="True"] { 269 border-top-color: var(--button--secondary-onlight-stroke); 270 border-right-color: var(--button--secondary-onlight-stroke); 271 border-bottom-color: var(--button--secondary-onlight-stroke); 272 border-left-color: var(--button--secondary-onlight-stroke); 273 color: var(--button--secondary-onlight-text); 274 } 275 276 [data-link-ondark], [data-link-gr], [data-btn-text-gr] { 277 position: relative; 278 } 279 [data-link-ondark]::before { 280 content: ''; 281 position: absolute; 282 background: var(--accent-1000-hover); 283 bottom: 0; 284 left: 0; 285 width: 100%; 286 height: 0.06rem; 287 opacity: 0; 288 } 289 .text-link[data-link-ondark]::before { 290 background: currentcolor; 291 opacity: 1; 292 } 293 294 [data-link-gr] [data-btn-text-gr]::before { 295 content: ''; 296 position: absolute; 297 background: var(--accent-1000-hover); 298 bottom: 0; 299 left: 0; 300 width: 100%; 301 height: 0.06rem; 302 opacity: 0; 303 } 304 305 .gr-text-link, .case-rich-text a { 306 background: var(--accent-1000-on-light); 307 background-clip: text; 308 -webkit-background-clip: text; 309 -webkit-text-fill-color: transparent; 310 } 311 312 .toc-select-wrap.active [data-dropdown-arrow] { 313 transform: rotate(180deg); 314 } 315 316 .toc-list__link:not(.is--current) .toc-list__link-arrow { 317 opacity: 0; 318 } 319 320 .toc.is-pinned .toc-select-wrap { 321 padding: 0.75rem; 322 border-color: var(--stroke--primary-onlight); 323 background-color: var(--bg--primary-onlight); 324 width: calc(100% + 2rem); 325 } 326 327 body.modal-open { 328 overflow: hidden; 329 } 330 .modal.active { 331 display: block; 332 } 333 334 .modal.active .video-poster-wrap.in-modal { 335 display: none; 336 } 337 338 .toc-list__link.is--current { 339 background-color: var(--control--tab-onlight-bg-active)!important; 340 color: var(--control--tab-onlight-text-active)!important; 341 } 342 .toc-list__link.w--current { 343 background-color: var(--control--tab-onlight-bg); 344 color: var(--control--tab-onlight-text); 345 } 346 347 .tab-link { 348 transition: width 0.2s, background-color .2s, color .2s,border-color .2s; 349 } 350 351 [data-load-item].init { 352 display: none; 353 opacity: 0; 354 } 355 356 [data-load-item].fadeInCSS { 357 animation: fadeInCSS 0.2s ease both; 358 } 359 360 form .error { 361 font-size: var(--_fonts---font-size--control-s); 362 line-height: var(--_fonts---line-height--control-s); 363 font-weight: var(--_fonts---font-weight--control-s); 364 color: var(--text--error); 365 } 366 367 .splide__pagination { 368 bottom: 1rem; 369 left: 0; 370 padding: 0; 371 justify-content: flex-start; 372 } 373 374 .splide__pagination li { 375 display: flex; 376 } 377 378 .splide__pagination__page { 379 background: var(--icon--tertiary-ondark); 380 width: 0.5rem; 381 height: 0.5rem; 382 margin: 0 0.5rem 0 0; 383 transition: all 0.3s ease; 384 border: none; 385 padding: 0; 386 border-radius: 0.13rem; 387 opacity: 1; 388 } 389 390 .splide__pagination__page.is-active { 391 background: var(--accent-1000-on-light); 392 transform: scale(1); 393 width: 2rem; 394 } 395 396 397 @media (min-width: 480px) { 398 .nav__list-item:last-child .nav-link {
399 border-right: none; 400 } 401 } 402 403 @media (max-width: 479px) { 404 [data-last-breadcrumb] { 405 white-space: nowrap; 406 overflow: hidden; 407 text-overflow: ellipsis; 408 max-width: 13.7rem; 409 } 410 411 /* Apply "..." after 1 lines of text */ 412 [data-text-style-1lines--mob] { 413 display: -webkit-box; 414 overflow: hidden; 415 -webkit-line-clamp: 1; 416 -webkit-box-orient: vertical; 417 } 418 419 /* Apply "..." after 2 lines of text */ 420 [data-text-style-2lines--mob] { 421 display: -webkit-box; 422 overflow: hidden; 423 -webkit-line-clamp: 2; 424 -webkit-box-orient: vertical; 425 } 426 427 .header.menu-open .nav-container { 428 opacity: 0; 429 } 430 } 431 432</style></div><div class="hover-focus-active w-embed"><style> 433 input.on-dark:autofill, 434 input.on-dark:autofill:hover, 435 input.on-dark:autofill:focus { 436 text-fill-color: var(--input--ondark-text-active); 437 -webkit-text-fill-color: var(--input--ondark-text-active); 438 box-shadow: 0 0 0px 40rem var(--input--ondark-bg-active) inset; 439 -webkit-box-shadow: 0 0 0px 40rem var(--input--ondark-bg-active) inset; 440 caret-color: var(--input--ondark-text-active); 441 border: 1px solid var(--input--ondark-stroke-active); 442 -webkit-background-clip: text; 443 -webkit-text-fill-color: var(--input--ondark-text-active); 444 } 445 446 input.on-dark:-webkit-autofill, 447 input.on-dark:-webkit-autofill:hover, 448 input.on-dark:-webkit-autofill:focus { 449 text-fill-color: var(--input--ondark-text-active); 450 -webkit-text-fill-color: var(--input--ondark-text-active); 451 box-shadow: 0 0 0px 40rem var(--input--ondark-bg-active) inset; 452 -webkit-box-shadow: 0 0 0px 40rem var(--input--ondark-bg-active) inset; 453 caret-color: var(--input--ondark-text-active); 454 border: 1px solid var(--input--ondark-stroke-active); 455 -webkit-background-clip: text; 456 -webkit-text-fill-color: var(--input--ondark-text-active); 457 } 458 459 input:is(.input.on-light, .c-input):autofill, 460 input:is(.input.on-light, .c-input):autofill:hover, 461 input:is(.input.on-light, .c-input):autofill:focus { 462 text-fill-color: var(--input--onlight-text-active); 463 -webkit-text-fill-color: var(--input--onlight-text-active); 464 box-shadow: 0 0 0px 40rem var(--input--onlight-bg-active) inset; 465 -webkit-box-shadow: 0 0 0px 40rem var(--input--onlight-bg-active) inset; 466 caret-color: var(--input--onlight-text-active); 467 border: 1px solid var(--input--onlight-stroke-active); 468 -webkit-background-clip: text; 469 -webkit-text-fill-color: var(--input--onlight-text-active); 470 } 471 472 input:is(.input.on-light, .c-input):-webkit-autofill, 473 input:is(.input.on-light, .c-input):-webkit-autofill:hover, 474 input:is(.input.on-light, .c-input):-webkit-autofill:focus { 475 text-fill-color: var(--input--onlight-text-active); 476 -webkit-text-fill-color: var(--input--onlight-text-active); 477 box-shadow: 0 0 0px 40rem var(--input--onlight-bg-active) inset; 478 -webkit-box-shadow: 0 0 0px 40rem var(--input--onlight-bg-active) inset; 479 caret-color: var(--input--onlight-text-active); 480 border: 1px solid var(--input--onlight-stroke-active); 481 -webkit-background-clip: text; 482 -webkit-text-fill-color: var(--input--onlight-text-active); 483 } 484 485 /* DISABLED */ 486 .btn:disabled { 487 color: var(--button--primary-text-disabled); 488 pointer-events: none; 489 } 490 .btn:disabled::before { 491 background: var(--accent-700); 492 } 493 494 :is(.btn-secondary, .btn-min):disabled { 495 border-color: var(--button--secondary-ondark-stroke-disabled); 496 color: var(--button--secondary-ondark-text-disabled); 497 pointer-events: none; 498 } 499 500 [data-link-ondark]:disabled { 501 color: var(--button--tertiary-ondark-text-disabled); 502 pointer-events: none; 503 } 504 505 [data-link-gr]:disabled [data-btn-text-gr] { 506 background: var(--accent-700); 507 background-clip: text; 508 -webkit-background-clip: text; 509 -webkit-text-fill-color: transparent; 510 } 511 [data-link-gr]:disabled [data-btn-text-gr]::before { 512 opacity: 0; 513 } 514 515 :is(a, button).btn-min.on-light:disabled { 516 border-color: var(--button--secondary-onlight-stroke-disabled); 517 color: var(--button--secondary-onlight-icn-disabled); 518 pointer-events: none; 519 } 520 521 .btn-secondary[data-onlight="True"]:disabled {
522 border-color: var(--button--stroke-focus-onlight); 523 background: transparent; 524 color: var(--button--secondary-onlight-text); 525 } 526 527 .nav-list__link:disabled { 528 background-color: var(--control--tab-ondark-bg); 529 color: var(--control--tab-ondark-text-disabled); 530 } 531 532 /* FOCUS VISIBLE */ 533 [data-link-ondark]:focus-visible { 534 outline: 2px solid var(--button--stroke-focus-ondark); 535 border-radius: 0.25rem; 536 } 537 538 :is(a, button, .w-dropdown-toggle):focus-visible { 539 outline: 2px solid #fff; 540 outline-offset: 0px; 541 transition: outline 0s; 542 } 543 544 :is(.btn):focus-visible { 545 outline: 2px solid var(--button--stroke-focus-ondark); 546 outline-offset: 0px; 547 } 548 549 :is(.btn-secondary, :is(a, button).btn-min):focus-visible { 550 outline: 2px solid var(--button--stroke-focus-ondark); 551 outline-offset: -2px; 552 } 553 554 .btn-secondary[data-onlight="True"]:focus-visible { 555 border-color: var(--button--secondary-onlight-stroke-disabled); 556 background: transparent; 557 color: var(--button--secondary-onlight-text-disabled); 558 } 559 560 :is(a, button).btn-min.on-light:focus-visible { 561 outline: 2px solid var(--button--stroke-focus-onlight); 562 } 563 564 :is([data-link-ondark], [data-link-gr]):focus-visible { 565 outline: 2px solid var(--button--stroke-focus-ondark); 566 border-radius: 0.25rem; 567 } 568 569 /* HOVER/ACTIVE */ 570 @media (hover: hover) and (pointer: fine) and (min-width: 1024px) { 571 .input.on-dark:hover { 572 background-color: var(--input--ondark-bg-active); 573 border-color: var(--input--ondark-stroke-active); 574 } 575 576 :is(.input.on-light, .c-input):hover { 577 background-color: var(--bg--primary-onlight); 578 } 579 580 .btn:hover::before { 581 transform: translate(-50%, -50%) rotate(180deg); 582 } 583 .btn:active::before { 584 background: var(--accent-900); 585 } 586 .btn:active { 587 color: var(--button--primary-text-pressed); 588 } 589 590 :is(.btn-secondary, :is(a, button).btn-min):hover { 591 border-color: var(--button--secondary-ondark-stroke-hover); 592 background-color: var(--button--secondary-ondark-bg-hover); 593 } 594 :is(.btn-secondary, :is(a, button).btn-min):active { 595 border-color: var(--button--secondary-ondark-stroke-pressed); 596 color: var(--button--secondary-ondark-text-pressed); 597 background-color: var(--bg--primary-ondark); 598 } 599 600 .btn-secondary[data-onlight="True"]:hover { 601 border-color: var(--button--secondary-onlight-stroke-hover); 602 background: var(--button--secondary-onlight-bg-hover); 603 } 604 .btn-secondary[data-onlight="True"]:active { 605 border-color: var(--button--secondary-onlight-stroke-pressed); 606 background: transparent; 607 color: var(--button--secondary-onlight-text-pressed); 608 } 609 610 :is(a, button).btn-min.on-light:hover { 611 border-color: var(--button--secondary-onlight-stroke-hover); 612 background: var(--button--secondary-onlight-bg-hover); 613 } 614 :is(a, button).btn-min.on-light:active { 615 border-color: var(--button--secondary-onlight-stroke-pressed); 616 color: var(--button--secondary-onlight-icn-pressed); 617 } 618 619 [data-link-ondark]:hover { 620 background: var(--accent-1000-hover); 621 background-clip: text; 622 -webkit-background-clip: text; 623 -webkit-text-fill-color: transparent; 624 } 625 [data-link-ondark]:hover::before { 626 opacity: 1; 627 background: var(--accent-1000-hover); 628 } 629 [data-link-ondark]:active { 630 background: var(--button--tertiary-ondark-text-pressed); 631 background-clip: text; 632 -webkit-background-clip: text; 633 -webkit-text-fill-color: transparent; 634 } 635 [data-link-ondark]:active::before { 636 opacity: 1; 637 background: var(--button--tertiary-ondark-text-pressed); 638 } 639 640 [data-link-gr]:hover [data-btn-text-gr] { 641 background: var(--accent-1000-hover); 642 background-clip: text; 643 -webkit-background-clip: text; 644 -webkit-text-fill-color: transparent; 645 } 646 [data-link-gr]:hover [data-btn-text-gr]::before { 647 opacity: 1; 648 } 649 [data-link-gr]:active [data-btn-text-gr] { 650 background: var(--accent-900); 651 background-clip: text; 652 -webkit-background-clip: text; 653 -webkit-text-fill-color: transparent; 654 } 655 [data-link-gr]:active [data-btn-text-gr]::before { 656 opacity: 1; 657 background: var(--accent-900); 658 } 659 660 .toc-list__link:hover { 661 background-color: var(--control--tab-onlight-bg-active); 662 color: var(--control--tab-onlight-text-active); 663 } 664 665 .nav-list__link:hover { 666 background-color: var(--control--tab-ondark-bg-hover); 667 } 668 .nav-list__link:active { 669 background-color: var(--control--tab-ondark-bg-active); 670 color: var(--control--tab-ondark-text-active); 671 } 672 673 .epop-tab:hover { 674 border-color: var(--stroke--primary-onlight); 675 background-color: var(--control--tab-onlight-bg-hover); 676 } 677 .epop-tab:active { 678 border-color: var(--stroke--primary-onlight); 679 background-color: var(--control--tab-onlight-bg-active); 680 } 681 682 .tab-link:hover { 683 background-color: var(--control--tab-ondark-bg-hover); 684 color: var(--control--tab-ondark-text); 685 } 686 .tab-link:active { 687 background-color: var(--control--tab-ondark-bg-active); 688 color: var(--control--tab-ondark-text-active); 689 } 690 691 [data-search-clear]:hover { 692 color: var(--bg--primary-ondark); 693 } 694 695 } 696 697 @media (hover: none) and (pointer: coarse) { 698 .btn:active { 699 color: var(--button--primary-text-pressed); 700 } 701 702 :is(.btn-secondary, :is(a, button).btn-min):active { 703 border-color: var(--button--secondary-ondark-stroke-pressed); 704 color: var(--button--secondary-ondark-text-pressed); 705 background-color: var(--bg--primary-ondark); 706 } 707 708 .btn-secondary[data-onlight="True"]:active { 709 border-color: var(--button--secondary-onlight-stroke-hover); 710 background: var(--button--secondary-onlight-bg-hover); 711 } 712 713 [data-link-ondark]:active { 714 background: var(--button--tertiary-ondark-text-pressed); 715 background-clip: text; 716 -webkit-background-clip: text; 717 -webkit-text-fill-color: transparent; 718 } 719 [data-link-ondark]:active::before { 720 opacity: 1; 721 background: var(--button--tertiary-ondark-text-pressed); 722 } 723 724 [data-link-gr]:active [data-btn-text-gr] { 725 background: var(--accent-900); 726 background-clip: text; 727 -webkit-background-clip: text; 728 -webkit-text-fill-color: transparent; 729 } 730 [data-link-gr]:active [data-btn-text-gr]::before { 731 opacity: 1; 732 background: var(--accent-900); 733 } 734 735 .nav-list__link:active { 736 background-color: var(--control--tab-ondark-bg-hover); 737 } 738 739 .epop-tab:active { 740 border-color: var(--stroke--primary-onlight); 741 background-color: var(--control--tab-onlight-bg-hover); 742 } 743 } 744</style></div><div class="text-tertiary-ondark"></div><div class="text-tertiary-onlight"></div><div class="text-secondary-onlight"></div><div class="text-secondary-ondark"></div><div class="text-quarternary-onlight"></div><div class="m--body-s"></div></div><div class="page-code"><div class="page-css w-embed"><style> 745 [data-hero-heading] { 746 animation: slideUpCSS .5s ease both 0.5s; 747 } 748 [data-hero-img] { 749 animation: fadeInCSS 2s ease both 0.25s; 750 } 751 [data-hero-cases] { 752 animation: slideUpCSS .5s ease both 1s; 753 } 754 .nav-container { 755 animation: slideDownCSS .5s ease both 1s; 756 } 757 758 .cell-border::before { 759 content: ""; 760 position: absolute; 761 inset: 0px; 762 border-radius: inherit; 763 border: 1px solid transparent; 764 background: linear-gradient(90deg, #02f2aa 30%, #26d2e2 70%) border-box; 765 -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0); 766 -webkit-mask-composite: destination-out; 767 mask-composite: exclude; 768 opacity: 0; 769 transition: opacity 0.2s ease; 770 pointer-events: none; 771 } 772 .cell-border.is-bottom { 773 transform-style: preserve-3d; 774 transform: perspective(0.85rem) rotateX(-1deg) rotateY(0) rotate(0) skew(0deg); 775 } 776 777 .toc.is-pinned .toc-select-wrap { 778 padding: 0.75rem; 779 border-color: var(--stroke--primary-onlight); 780 background-color: var(--bg--primary-onlight); 781 width: calc(100% + 2rem); 782 border-radius: 1.125rem; 783 } 784 .epop-rich-text ul li::before { 785 content: ''; 786 position: absolute; 787 width: 0.5rem; 788 height: 0.5rem; 789 aspect-ratio: 1 / 1; 790 border-radius: 0.0625rem; 791 background-color: var(--icon--secondary-onlight); 792 transform: rotate(45deg); 793 top: 0.5rem; 794 left: 1px; 795 } 796 .epop-tab.is-active, .quarter-radio:has(.quarter-radio__input.w--redirected-checked), .quarter-radio:has(.quarter-radio__input:checked) { 797 color: var(--control--tab-onlight-text-active); 798 background-color: var(--control--tab-onlight-bg-active); 799 } 800 .epop-tabs-item:has(.epop-tab.is-active), .quarter-col-item:has(.quarter-radio__input.w--redirected-checked), .quarter-col-item:has(.quarter-radio__input:checked) { 801 width: 100%; 802 } 803 .epop-video-wrap-2 { 804 position: relative; 805 width: 100%; 806 height: 100%; 807 } 808 809
810 .s-solutions-col-item:last-child .s-solutions-item__step { 811 display: none; 812 } 813 814 .plans-tabs-link__caption, .plans-card__popular { 815 background: var(--accent-1000-on-light); 816 } 817 818 .case-rich-text ul li { 819 padding-left: 1.125rem; 820 } 821 .case-rich-text.in-plans-card ul li::before { 822 content: ''; 823 position: absolute; 824 width: 0.5rem; 825 height: 0.5rem; 826 top: 0.5rem; 827 left: 0; 828 background: var(--icon--secondary-onlight); 829 border-radius: 2px; 830 transform: rotate(45deg); 831 } 832 833 .plans-tabs-link.is-active { 834 color: var(--control--tab-onlight-text-active); 835 border-color: var(--stroke--primary-onlight); 836 background-color: var(--control--tab-onlight-bg-active); 837 } 838 .plans-tabs-panel.is-active { 839 animation: slideUpCSS 0.3s ease both; 840 } 841 .plans-tabs-panel.is-active .splide { 842 visibility: visible!important; 843 } 844 845 .suite .splide__pagination__page { 846 background: var(--icon--tertiary-onlight); 847 } 848 .suite .splide__pagination__page.is-active { 849 background: var(--accent-1000-on-dark); 850 } 851 852 .filter-option.is-active .filter-option__icon { 853 opacity: 1; 854 } 855 .filter-option.is-active { 856 color: var(--control--tab-onlight-text-active); 857 background-color: var(--control--tab-onlight-bg-active); 858 } 859 860 .r-year-radio__input.w--redirected-checked ~ .r-year-radio__icon, .r-year-radio__input:checked + .r-year-radio__icon { 861 opacity: 1; 862 } 863 864 .r-year-radio:has(.r-year-radio__input.w--redirected-checked), .r-year-radio:has(.r-year-radio__input:checked) { 865 color: var(--control--tab-onlight-text-active); 866 background-color: var(--control--tab-ondark-bg-active); 867 } 868 869 .r-pagination__btn:disabled { 870 color: var(--button--secondary-onlight-text-disabled); 871 } 872 873 .filter-dropdown.active { 874 z-index: 10; 875 } 876 877 .releases-empty-state { 878 display: none; 879 } 880 881 .releases-col-wrap:not(:has(.releases-col-item:not([style*="display: none"]):not([style*="display:none"]))) ~ .releases-empty-state { 882 display: block; 883 } 884 885 @media (min-width: 480px) { 886 .plans-list { 887 display: grid!important; 888 grid-template-columns: 1fr 1fr 1fr; 889 } 890 } 891 892 @media (max-width: 479px) { 893 .epop-tab.is-active .epop-tab__name, .quarter-col-item:has(.quarter-radio__input.w--redirected-checked) .quarter-radio__year, .quarter-col-item:has(.quarter-radio__input:checked) .quarter-radio__year { 894 display: flex; 895 } 896 .epop-tabs-item:has(.epop-tab.is-active) { 897 width: 100%; 898 max-width: calc(100% - 7.25rem); 899 } 900 901 .p-chart { 902 overflow: auto; 903 -ms-overflow-style: none; 904 scrollbar-width: none; 905 } 906 .p-chart::-webkit-scrollbar {
907 width: 0; 908 height: 0; 909 display: none; 910 } 911 } 912</style></div><div class="video-js w-embed w-script">
912<script> 913 class VideoManager { 914 constructor(containerSelector) { 915 this.container = document.querySelector(containerSelector); 916 if (!this.container) return; 917 this.videos = this.container.querySelectorAll('[data-target-video]'); 918 this.init(); 919 } 920 921 init() { 922 this.videos.forEach((videoElement) => { 923 // Set the start time when loading metadata 924 videoElement.addEventListener('loadedmetadata', () => { 925 const startTime = parseFloat(videoElement.getAttribute('data-start-time')) || 0; 926 if (startTime > 0) { 927 videoElement.currentTime = startTime; 928 } 929 }); 930 931 // Pause other videos while playing 932 videoElement.addEventListener('play', () => { 933 this.stopOtherVideos(videoElement); 934 }); 935 }); 936 } 937 938 stopOtherVideos(currentVideo) { 939 this.videos.forEach((videoElement) => { 940 if (videoElement === currentVideo) return; 941 videoElement.pause(); 942 }); 943 } 944 945 playVideo(videoElement) { 946 // Stop all the others 947 this.stopOtherVideos(videoElement); 948 949 // Get the start time from the attribute (in seconds) 950 const startTime = parseFloat(videoElement.getAttribute('data-start-time')) || 0; 951 952 if (startTime > 0) { 953 videoElement.currentTime = startTime; 954 } 955 956 videoElement.play().catch((e) => { 957 console.log('Video autoplay blocked:', e); 958 }); 959 } 960 961 destroy() { 962 // Cleaning if necessary 963 } 964 } 965 966 // Initialization 967 document.addEventListener('DOMContentLoaded', () => { 968 const videoManager = new VideoManager('.s-solutions-col-wrap'); 969 }); 970</script>
970</div><div class="simple-dropdown-js w-embed w-script"><!-- SIMPLE DROPDOWN -->
971<script> 972 document.addEventListener("DOMContentLoaded", () => { 973 function simpleDropdown() { 974 const $dropdownContainers = $('[data-simple-dropdown-wrap]'); 975 976 $dropdownContainers.each(function() { 977 const $container = $(this); 978 const $dropdowns = $container.find('[data-simple-dropdown]'); 979 const $dropdownToggles = $container.find('[data-simple-dropdown-toggle]'); 980 const noAutoOpen = $container.attr('data-no-auto-open') !== undefined; 981 982 function openFirstDropdown() { 983 if (noAutoOpen) { 984 return; // ÐÑли аÑÑибÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½, не оÑкÑÑваем авÑомаÑиÑеÑки 985 } 986 987 let allDropdownsInactive = 988 $dropdowns.not('.active').length === $dropdowns.length; 989 990 if (allDropdownsInactive) { 991 $dropdownToggles.eq(0).click(); 992 } 993 } 994 995 function closeDropdown(parentDropdown) { 996 let dropdownList = parentDropdown.find('[data-simple-dropdown-list]'); 997 let dropdownToggle = parentDropdown.find('[data-simple-dropdown-toggle]'); 998 999 parentDropdown.removeClass('active'); 1000 dropdownToggle.attr('aria-expanded', 'false'); 1001 dropdownList.attr('aria-hidden', 'true'); 1002 dropdownList.slideUp('fast', function() { 1003 ScrollTrigger.refresh(); 1004 }); 1005 } 1006 1007 // ÐакÑÑваем вÑе дÑопдаÑÐ½Ñ Ð¿Ñи иниÑиализаÑии 1008 $dropdowns.removeClass('active'); 1009 $container.find('[data-simple-dropdown-list]').hide(); 1010 1011 $dropdownToggles.on('click', function (e) { 1012 e.preventDefault(); 1013 let parentDropdown = $(this).parent('[data-simple-dropdown]'); 1014 let dropdownList = parentDropdown.find('[data-simple-dropdown-list]'); 1015 let isActive = parentDropdown.hasClass('active'); 1016 1017 // Updating aria attributes 1018 $(this).attr('aria-expanded', !isActive); 1019 dropdownList.attr('aria-hidden', isActive); 1020 1021 $dropdowns.removeClass('active'); 1022 $container.find('[data-simple-dropdown-list]').slideUp('fast'); 1023 1024 if (!isActive) { 1025 parentDropdown.addClass('active'); 1026 dropdownList.slideDown(200, function() { 1027 // Call refresh AFTER the animation is complete 1028 ScrollTrigger.refresh(); 1029 }); 1030 } else { 1031 // Refresh after closing 1032 ScrollTrigger.refresh(); 1033 } 1034 }); 1035 1036 // ÐакÑÑваем дÑопдаÑн пÑи клике на radio ÐºÐ½Ð¾Ð¿ÐºÑ 1037 $container.find('[data-simple-dropdown-list] input[type="radio"]').on('change', function() { 1038 let parentDropdown = $(this).closest('[data-simple-dropdown]'); 1039 closeDropdown(parentDropdown); 1040 }); 1041 1042 // ÐакÑÑваем дÑопдаÑн пÑи клике на ÑÑÑÐ»ÐºÑ 1043 $container.find('[data-simple-dropdown-list] a').on('click', function() { 1044 let parentDropdown = $(this).closest('[data-simple-dropdown]'); 1045 closeDropdown(parentDropdown); 1046 }); 1047 1048 // A little delay for the first opening 1049 setTimeout(() => { 1050 openFirstDropdown(); 1051 }, 100); 1052 }); 1053 } 1054 1055 simpleDropdown(); 1056 }); 1057</script>
1057</div><div class="tabs-js w-embed w-script"><!-- TABS js -->
1058<script> 1059 document.addEventListener('DOMContentLoaded', () => { 1060 // Ð¥Ñаним ÑкземплÑÑÑ ÑлайдеÑов 1061 const sliderInstances = {}; 1062 1063 function createSplideSlider({ 1064 selector, 1065 autoWidth = false, 1066 perPage = 1, 1067 desktopGap = '0rem', 1068 trimSpace = true, 1069 destroy = false, 1070 showPagination = true, 1071 loop = false, 1072 paginationFormat = '{current}/{total}', 1073 hideNavIfNotEnoughSlides = true, 1074 minWidthToCheck = 480, 1075 }) { 1076 const sliderEl = document.querySelector(selector); 1077 if (!sliderEl) return; 1078 1079 const parent = 1080 sliderEl.closest('[data-slider-wrap]') || sliderEl.parentElement; 1081 const prev = parent.querySelector('[data-slider-btn-prev]'); 1082 const next = parent.querySelector('[data-slider-btn-next]'); 1083 const paginationEl = parent.querySelector('.slide-counter'); 1084 const navigationEl = parent.querySelector('.slider-nav'); 1085 1086 const track = sliderEl.querySelector(':scope > .splide__track'); 1087 const list = sliderEl.querySelector('.splide__list'); 1088 1089 if (!track || !list) { 1090 if (navigationEl) navigationEl.style.display = 'none'; 1091 if (paginationEl) paginationEl.textContent = ''; 1092 return null; 1093 } 1094 1095 const slides = list.querySelectorAll('.splide__slide'); 1096 if (!slides.length) { 1097 if (navigationEl) navigationEl.style.display = 'none'; 1098 if (paginationEl) paginationEl.textContent = ''; 1099 return null; 1100 } 1101 1102 const slider = new Splide(sliderEl, { 1103 autoWidth, 1104 perPage, 1105 flickPower: 500, 1106 arrows: false, 1107 pagination: showPagination, 1108 trimSpace, 1109 omitEnd: true, 1110 focus: 0, 1111 classes: { 1112 pagination: 'splide__pagination slider-pagination', 1113 }, 1114 type: loop ? 'loop' : 'slide', 1115 ...(desktopGap && { gap: desktopGap }), 1116 mediaQuery: 'min', 1117 breakpoints: { 1118 480: { 1119 ...(destroy && { destroy }), 1120 }, 1121 }, 1122 }); 1123 1124 function padNumber(num) { 1125 return num < 10 ? `0${num}` : `${num}`; 1126 } 1127 1128 function getTotalSlides() { 1129 return slider.length; 1130 } 1131 1132 function getCurrentSlide() { 1133 const idx = slider.index; 1134 const perPage = slider.options.perPage || 1; 1135 const total = getTotalSlides(); 1136 const lastVisible = Math.min(idx + perPage, total); 1137 return lastVisible; 1138 } 1139 1140 function updatePagination() { 1141 if (!paginationEl) return; 1142 1143 const current = padNumber(getCurrentSlide()); 1144 const total = padNumber(getTotalSlides()); 1145 1146 paginationEl.textContent = paginationFormat 1147 .replace('{current}', current) 1148 .replace('{total}', total); 1149 } 1150 1151 function updateArrows() { 1152 if (loop) { 1153 prev && (prev.disabled = false); 1154 next && (next.disabled = false); 1155 return; 1156 } 1157 1158 const idx = slider.index; 1159 const last = slider.Components.Controller.getEnd(); 1160 prev && (prev.disabled = idx === 0); 1161 next && (next.disabled = idx === last); 1162 } 1163 1164 function toggleNavVisibility() { 1165 if (!hideNavIfNotEnoughSlides || !navigationEl) return; 1166 1167 const isWide = window.innerWidth >= minWidthToCheck; 1168 1169 if (destroy && !isWide) { 1170 navigationEl.style.display = 'none'; 1171 return; 1172 } 1173 1174 try { 1175 if (!slider || typeof slider.Components === 'undefined') { 1176 navigationEl.style.display = 'none'; 1177 return; 1178 } 1179 } catch (e) { 1180 navigationEl.style.display = 'none'; 1181 return; 1182 } 1183 1184 const slidesCount = getTotalSlides(); 1185 const shouldHideNav = 1186 (isWide && slidesCount <= perPage) || (!isWide && slidesCount <= 1); 1187 1188 navigationEl.style.display = shouldHideNav ? 'none' : 'flex'; 1189 } 1190 1191 slider.on('mounted move moved resize refresh', () => { 1192 updateArrows(); 1193 updatePagination(); 1194 toggleNavVisibility(); 1195 }); 1196 1197 prev && prev.addEventListener('click', () => slider.go('<')); 1198 next && next.addEventListener('click', () => slider.go('>')); 1199 1200 slider.mount(); 1201 1202 window.addEventListener('resize', toggleNavVisibility); 1203 1204 sliderInstances[selector] = slider; 1205 1206 return slider; 1207 } 1208 1209 // ÐбÑабоÑÑик кликов - Ð´Ð»Ñ ÑабоÑÑ Ð½Ð° Ñой же ÑÑÑаниÑе 1210 // ÐбÑабоÑÑик кликов - Ð´Ð»Ñ ÑабоÑÑ Ð½Ð° Ñой же ÑÑÑаниÑе 1211 document.addEventListener('click', (e) => { 1212 const link = e.target.closest('[data-tab-target]'); 1213 1214 if (link) { 1215 e.preventDefault(); // ÐÑегда пÑедоÑвÑаÑаем ÑÑандаÑÑное поведение 1216 1217 const href = link.getAttribute('href'); 1218 const tabTarget = link.dataset.tabTarget; 1219 1220 // ÐаÑÑим URL 1221 let linkPath; 1222 try { 1223 const url = new URL(href, window.location.origin); 1224 linkPath = url.pathname; 1225 } catch (e) { 1226 return; 1227 } 1228 1229 const currentPath = window.location.pathname; 1230 1231 // ÐÑли ÑÑо Ñа же ÑÑÑаниÑа - акÑивиÑÑем Ñаб 1232 if (currentPath === linkPath) { 1233 const targetButton = document.querySelector( 1234 `[data-tab-btn="${tabTarget}"]` 1235 ); 1236 1237 if (targetButton) { 1238 const container = targetButton.closest('[data-tabs-container]'); 1239 1240 if (container) { 1241 const tabButtons = container.querySelectorAll('[data-tab-btn]'); 1242 const tabPanels = container.querySelectorAll('[data-tab-panel]'); 1243 1244 tabButtons.forEach((btn) => { 1245 btn.classList.toggle('is-active', btn.dataset.tabBtn === tabTarget); 1246 });
1247 tabPanels.forEach((panel) => { 1248 panel.classList.toggle( 1249 'is-active', 1250 panel.dataset.tabPanel === tabTarget 1251 ); 1252 }); 1253 1254 requestAnimationFrame(() => { 1255 Object.values(sliderInstances).forEach((sliderInstance) => { 1256 if ( 1257 sliderInstance && 1258 typeof sliderInstance.refresh === 'function' 1259 ) { 1260 sliderInstance.refresh(); 1261 } 1262 }); 1263 }); 1264 } 1265 } 1266 1267 // ÐбновлÑем URL без пеÑезагÑÑзки ÑÑÑаниÑÑ 1268 history.pushState(null, null, href); 1269 1270 // СкÑолл к ÑкоÑÑ 1271 const hash = href.split('#')[1]; 1272 if (hash) { 1273 const targetElement = document.getElementById(hash); 1274 if (targetElement) { 1275 setTimeout(() => { 1276 const headerHeight = 1277 document.querySelector('.nav')?.offsetHeight || 0; 1278 const offset = 20; 1279 const elementPosition = targetElement.getBoundingClientRect().top; 1280 const offsetPosition = 1281 elementPosition + window.pageYOffset - headerHeight - offset; 1282 1283 window.scrollTo({ 1284 top: offsetPosition, 1285 behavior: 'smooth', 1286 }); 1287 }, 300); 1288 } 1289 } 1290 } else { 1291 // ÐеÑÐµÑ Ð¾Ð´ на дÑÑгÑÑ ÑÑÑаниÑÑ 1292 window.location.href = href; 1293 } 1294 } 1295 }); 1296 1297 function tabs() { 1298 const tabContainers = document.querySelectorAll('[data-tabs-container]'); 1299 1300 tabContainers.forEach((container) => { 1301 const tabButtons = container.querySelectorAll('[data-tab-btn]'); 1302 const tabPanels = container.querySelectorAll('[data-tab-panel]'); 1303 1304 function activateTab(tabName) { 1305 console.log('â ÐкÑивиÑÑем Ñаб:', tabName); 1306 tabButtons.forEach((btn) => { 1307 btn.classList.toggle('is-active', btn.dataset.tabBtn === tabName); 1308 }); 1309 tabPanels.forEach((panel) => { 1310 panel.classList.toggle('is-active', panel.dataset.tabPanel === tabName); 1311 }); 1312 1313 requestAnimationFrame(() => { 1314 Object.values(sliderInstances).forEach((sliderInstance) => { 1315 if (sliderInstance && typeof sliderInstance.refresh === 'function') { 1316 sliderInstance.refresh(); 1317 } 1318 }); 1319 }); 1320 } 1321 1322 tabButtons.forEach((btn) => { 1323 btn.addEventListener('click', (e) => { 1324 e.preventDefault(); 1325 activateTab(btn.dataset.tabBtn); 1326 }); 1327 }); 1328 1329 // ЧиÑаем паÑамеÑÑ ?tab= из URL 1330 const urlParams = new URLSearchParams(window.location.search); 1331 const tabParam = urlParams.get('tab'); 1332 1333 console.log('ð URL паÑамеÑÑ tab:', tabParam); 1334 1335 if (tabParam) { 1336 const tabExists = Array.from(tabButtons).some( 1337 (btn) => btn.dataset.tabBtn === tabParam 1338 ); 1339 1340 console.log('ð Таб ÑÑÑеÑÑвÑеÑ?:', tabExists); 1341 1342 if (tabExists) { 1343 activateTab(tabParam); 1344 1345 // СкÑолл к ÑкоÑÑ 1346 const hash = window.location.hash.substring(1); 1347 if (hash) { 1348 setTimeout(() => { 1349 const targetElement = document.getElementById(hash); 1350 if (targetElement) { 1351 const headerHeight = 1352 document.querySelector('.nav')?.offsetHeight || 0; 1353 const offset = 20; 1354 const elementPosition = 1355 targetElement.getBoundingClientRect().top; 1356 const offsetPosition = 1357 elementPosition + window.pageYOffset - headerHeight - offset; 1358 1359 window.scrollTo({ 1360 top: offsetPosition, 1361 behavior: 'smooth', 1362 }); 1363 console.log('â СкÑолл вÑполнен'); 1364 } 1365 }, 300); 1366 } 1367 } 1368 } else if (tabButtons.length > 0) { 1369 // ÐÐµÑ Ð¿Ð°ÑамеÑÑа - акÑивиÑÑем пеÑвÑй Ñаб 1370 activateTab(tabButtons[0].dataset.tabBtn); 1371 } 1372 }); 1373 } 1374 1375 tabs(); 1376 1377 createSplideSlider({ 1378 selector: '#plans-slider-1', 1379 autoWidth: false, 1380 perPage: 1, 1381 destroy: true, 1382 desktopGap: '0rem', 1383 }); 1384 1385 createSplideSlider({ 1386 selector: '#plans-slider-2', 1387 autoWidth: false, 1388 perPage: 1, 1389 destroy: true, 1390 desktopGap: '0rem', 1391 }); 1392 1393 createSplideSlider({ 1394 selector: '[data-workflows-slider="1"]', 1395 autoWidth: false, 1396 perPage: 1, 1397 destroy: false, 1398 desktopGap: '0rem', 1399 }); 1400 1401 createSplideSlider({ 1402 selector: '[data-workflows-slider="2"]', 1403 autoWidth: false, 1404 perPage: 1, 1405 destroy: false, 1406 desktopGap: '0rem', 1407 }); 1408 1409 createSplideSlider({ 1410 selector: '[data-workflows-slider="3"]', 1411 autoWidth: false, 1412 perPage: 1, 1413 destroy: false, 1414 desktopGap: '0rem', 1415 }); 1416 1417 function pinnedToc() { 1418 const header = document.querySelector('.nav'); 1419 const tocElements = document.querySelectorAll('[data-pinned-toc]'); 1420 1421 if (tocElements.length === 0) return; 1422 1423 function checkPosition() { 1424 const headerHeight = header?.offsetHeight || 0; 1425
1426 tocElements.forEach((tocWrap) => { 1427 const breakpoint = tocWrap.getAttribute('data-pinned-toc') || 'all'; 1428 const windowWidth = window.innerWidth; 1429 1430 let shouldWork = false; 1431 1432 if (breakpoint === 'all') { 1433 shouldWork = true; 1434 } else if (breakpoint === 'mobile' && windowWidth <= 479) { 1435 shouldWork = true; 1436 } else if (breakpoint === 'tablet' && windowWidth <= 991) { 1437 shouldWork = true; 1438 } else if (breakpoint === 'desktop' && windowWidth >= 992) { 1439 shouldWork = true; 1440 } 1441 1442 if (!shouldWork) { 1443 tocWrap.classList.remove('is-pinned'); 1444 return; 1445 } 1446 1447 const customOffset = 1448 parseInt(tocWrap.getAttribute('data-pinned-offset')) || 0; 1449 const triggerPoint = headerHeight + customOffset + 1; 1450 1451 const tocWrapTop = tocWrap.getBoundingClientRect().top; 1452 const isPinned = tocWrap.classList.contains('is-pinned'); 1453 1454 if (tocWrapTop <= triggerPoint && !isPinned) { 1455 tocWrap.classList.add('is-pinned'); 1456 } else if (tocWrapTop > triggerPoint && isPinned) { 1457 tocWrap.classList.remove('is-pinned'); 1458 } 1459 }); 1460 } 1461 1462 window.addEventListener('scroll', checkPosition, { passive: true }); 1463 1464 let resizeTimer; 1465 window.addEventListener('resize', () => { 1466 clearTimeout(resizeTimer); 1467 resizeTimer = setTimeout(checkPosition, 100); 1468 }); 1469 1470 checkPosition(); 1471 } 1472 1473 pinnedToc(); 1474 }); 1475</script>
1475</div><div class="diagram-js w-embed w-script"><!-- TABS js -->
1476<script> 1477 1478 // ÐонÑигÑÑаÑÐ¸Ñ 1479 const CONFIG = { 1480 mobile: { 1481 breakpoint: 992, 1482 smallBreakpoint: 480, 1483 }, 1484 scrollDuration: 1, // ÐлиÑелÑноÑÑÑ ÑкÑолла в ÑекÑÐ½Ð´Ð°Ñ 1485 animationDuration: 0.3, 1486 // Сдвиг .diagram-cells Ð´Ð»Ñ Ð¼Ð°Ð»ÐµÐ½ÑÐºÐ¸Ñ ÑкÑанов (< 480px) 1487 cellsOffsetMobile: { 1488 '1': '0rem', // Шаг 1 - без Ñдвига 1489 '2': '7.25rem', // Шаг 2 - Ñдвиг влево на 4.4rem 1490 '3': '7.25rem', // Шаг 3 - Ñдвиг влево на 4.4rem 1491 '4': '14.7rem', // Шаг 4 - Ñдвиг влево на 14rem 1492 }, 1493 // Сдвиг .diagram-line-mob Ð´Ð»Ñ Ð¼Ð°Ð»ÐµÐ½ÑÐºÐ¸Ñ ÑкÑанов (< 480px) 1494 lineMobOffsetMobile: { 1495 '1': '0vw', // Шаг 1 - без Ñдвига 1496 '2': '0vw', // Шаг 2 - без Ñдвига 1497 '3': '0vw', // Шаг 3 - без Ñдвига 1498 '4': '49vw', // Шаг 4 - Ñдвиг впÑаво на 49vw 1499 }, 1500 }; 1501 1502 1503 //-------------------------------------------------------------------- 1504 1505 class DiagramAnimation { 1506 constructor(containerSelector) { 1507 this.container = document.querySelector(containerSelector); 1508 if (!this.container) return; 1509 1510 // ÐолÑÑаем ÑлеменÑÑ ÑолÑко внÑÑÑи конÑейнеÑа 1511 this.diagramButtons = this.container.querySelectorAll('[data-diagram-btn]'); 1512 this.diagramPanels = this.container.querySelectorAll( 1513 '[data-diagram-panel]' 1514 ); 1515 this.scrollTriggers = this.container.querySelectorAll( 1516 '[data-scroll-trigger]' 1517 ); 1518 1519 // SVG ÑлеменÑÑ Ð´Ð»Ñ Ð´ÐµÑкÑопа и мобилки 1520 this.diagramLine = this.container.querySelector('.diagram-line'); 1521 this.diagramLineMob = this.container.querySelector('.diagram-line-mob'); 1522 this.svgPath = null; 1523 this.svgRect = null; 1524 1525 this.diagram = this.container.querySelector('.diagram'); 1526 this.diagramCells = this.container.querySelector('.diagram-cells'); // ÐÐ»ÐµÐ¼ÐµÐ½Ñ Ð´Ð»Ñ Ñдвига 1527 1528 // ÐобилÑÐ½Ð°Ñ Ð½Ð°Ð²Ð¸Ð³Ð°ÑÐ¸Ñ 1529 this.mobileNavContainer = this.container.querySelector( 1530 '[data-diagram-mobile-nav]' 1531 ); 1532 this.prevBtn = this.container.querySelector('[data-diagram-nav="prev"]'); 1533 this.nextBtn = this.container.querySelector('[data-diagram-nav="next"]'); 1534 this.counter = this.container.querySelector('[data-diagram-counter]'); 1535 1536 this.firstSVGstep = '0% 57%'; 1537 this.firstSVGstepMobile = '0% 57%'; // Ðожно наÑÑÑоиÑÑ Ð¾ÑделÑно Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÐºÐ¸ 1538 1539 // ÐооÑдинаÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑÑапа (desktop) 1540 this.animationSteps = { 1541 '1': { drawSVG: this.firstSVGstep, progress: 0.57 }, 1542 '2': { drawSVG: '0% 72%', progress: 0.715 }, 1543 '3': { drawSVG: '0% 87%', progress: 0.86 }, 1544 '4': { drawSVG: '0% 100%', progress: 1.0 }, 1545 }; 1546 1547 // ÐооÑдинаÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑÑапа (mobile) 1548 this.animationStepsMobile = { 1549 '1': { drawSVG: this.firstSVGstepMobile, progress: 0.26 }, 1550 '2': { drawSVG: '0% 50%', progress: 0.51 }, 1551 '3': { drawSVG: '0% 75%', progress: 0.76 }, 1552 '4': { drawSVG: '0% 100%', progress: 1.0 }, 1553 }; 1554 1555 this.rectProgressObj = { value: 0.57 }; 1556 this.currentPathEnd = 57; 1557 this.currentIndex = 0; 1558 this.isAnimating = false; 1559 this.scrollTriggersArray = []; 1560 this.triggerIndexMap = new Map(); 1561 this.isMobile = window.innerWidth < CONFIG.mobile.breakpoint; 1562 this.isSmallMobile = window.innerWidth < CONFIG.mobile.smallBreakpoint; 1563 1564 this.init(); 1565 } 1566 1567 init() { 1568 this.createTriggerIndexMap(); 1569 this.updateSVGReferences(); 1570 1571 if (!this.isMobile) { 1572 this.setStickyTop(); 1573 } 1574 1575 this.initSVG(); 1576 this.bindEvents(); 1577 this.switchPanel('1'); 1578 1579 // ScrollTrigger ÑолÑко Ð´Ð»Ñ Ð´ÐµÑкÑопа 1580 if (!this.isMobile) { 1581 this.initScrollTriggers(); 1582 } 1583 1584 this.updateMobileNavigation(); 1585 } 1586 1587 updateSVGReferences() { 1588 // ÐоказÑваем/ÑкÑÑваем нÑжнÑÑ SVG и обновлÑем ÑÑÑлки 1589 if (this.isSmallMobile) { 1590 // ÐобилÑÐ½Ð°Ñ SVG 1591 if (this.diagramLine) this.diagramLine.style.display = 'none'; 1592 if (this.diagramLineMob) this.diagramLineMob.style.display = 'block'; 1593 1594 this.svgPath = this.diagramLineMob?.querySelector('path'); 1595 this.svgRect = this.diagramLineMob?.querySelector('rect'); 1596 } else { 1597 // ÐеÑкÑÐ¾Ð¿Ð½Ð°Ñ SVG 1598 if (this.diagramLine) this.diagramLine.style.display = 'block'; 1599 if (this.diagramLineMob) this.diagramLineMob.style.display = 'none'; 1600 1601 this.svgPath = this.diagramLine?.querySelector('path'); 1602 this.svgRect = this.diagramLine?.querySelector('rect'); 1603 } 1604 } 1605 1606 getCurrentAnimationSteps() { 1607 return this.isSmallMobile ? this.animationStepsMobile : this.animationSteps; 1608 } 1609 1610 updateNavigationVisibility() { 1611 if (this.mobileNavContainer) { 1612 this.mobileNavContainer.style.display = this.isMobile ? 'flex' : 'none'; 1613 } 1614 } 1615 1616 updateMobileNavigation() { 1617 if (!this.isMobile) return; 1618 1619 // ÐбновлÑем ÑÑеÑÑик 1620 if (this.counter) { 1621 this.counter.textContent = `${this.currentIndex + 1}-4`; 1622 } 1623 1624 // ÐбновлÑем ÑоÑÑоÑние кнопок 1625 if (this.prevBtn) { 1626 this.prevBtn.disabled = this.currentIndex === 0; 1627 this.prevBtn.classList.toggle('disabled', this.currentIndex === 0); 1628 } 1629 1630 if (this.nextBtn) { 1631 this.nextBtn.disabled = this.currentIndex === 3; 1632 this.nextBtn.classList.toggle('disabled', this.currentIndex === 3); 1633 } 1634 1635 // ÐбновлÑем видимоÑÑÑ Ð½Ð°Ð²Ð¸Ð³Ð°Ñии 1636 this.updateNavigationVisibility(); 1637 } 1638 1639 // navigatePrev() { 1640 // if (this.currentIndex > 0) { 1641 // this.currentIndex--; 1642 // const panelNumber = (this.currentIndex + 1).toString(); 1643 // this.switchPanel(panelNumber); 1644 // this.updateMobileNavigation(); 1645 // } 1646 // } 1647 1648 // navigateNext() { 1649 // if (this.currentIndex < 3) { 1650 // this.currentIndex++; 1651 // const panelNumber = (this.currentIndex + 1).toString(); 1652 // this.switchPanel(panelNumber); 1653 // this.updateMobileNavigation(); 1654 // } 1655 // } 1656 1657 navigatePrev() { 1658 // ÐÑовеÑÑем анимаÑÐ¸Ñ ÐÐ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа 1659 if (this.isAnimating) { 1660 console.log('Animation in progress, blocking navigation'); 1661 return; 1662 } 1663 1664 if (this.currentIndex > 0) { 1665 this.currentIndex--; 1666 const panelNumber = (this.currentIndex + 1).toString(); 1667 this.switchPanel(panelNumber); 1668 this.updateMobileNavigation(); 1669 } 1670 } 1671 1672 navigateNext() { 1673 // ÐÑовеÑÑем анимаÑÐ¸Ñ ÐÐ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа 1674 if (this.isAnimating) { 1675 console.log('Animation in progress, blocking navigation'); 1676 return; 1677 } 1678 1679 if (this.currentIndex < 3) { 1680 this.currentIndex++; 1681 const panelNumber = (this.currentIndex + 1).toString(); 1682 this.switchPanel(panelNumber); 1683 this.updateMobileNavigation(); 1684 } 1685 } 1686 1687 setStickyTop() { 1688 if (!this.diagram) return; 1689 1690 const diagramHeight = this.diagram.offsetHeight;
1691 const viewportHeight = window.innerHeight; 1692 1693 // ÐолÑÑаем вÑÑоÑÑ header из CSS пеÑеменной 1694 const navHeight = getComputedStyle( 1695 document.documentElement 1696 ).getPropertyValue('--_size---nav-height'); 1697 const navHeightPx = parseFloat(navHeight) * 16 || 0; 1698 1699 // ЦенÑÑиÑÑем Ñ ÑÑеÑом header 1700 const topPosition = 1701 (viewportHeight - navHeightPx - diagramHeight) / 2 + navHeightPx; 1702 1703 this.diagram.style.top = `${topPosition}px`; 1704 } 1705 1706 createTriggerIndexMap() { 1707 this.scrollTriggers.forEach((trigger) => { 1708 const triggerValue = trigger.getAttribute('data-scroll-trigger'); 1709 this.triggerIndexMap.set(trigger, triggerValue); 1710 }); 1711 } 1712 1713 initSVG() { 1714 const firstStep = this.isSmallMobile 1715 ? this.firstSVGstepMobile 1716 : this.firstSVGstep; 1717 1718 // УÑÑанавливаем наÑалÑное ÑоÑÑоÑние SVG 1719 if (this.svgPath) { 1720 gsap.set(this.svgPath, { drawSVG: firstStep }); 1721 } 1722 1723 // ÐниÑиализаÑÐ¸Ñ Ð¿Ð¾Ð·Ð¸Ñии квадÑаÑа 1724 if (this.svgRect && this.svgPath) { 1725 gsap.set(this.svgRect, { 1726 motionPath: { 1727 path: this.svgPath, 1728 align: this.svgPath, 1729 alignOrigin: [0.5, 0.5], 1730 start: 0.57, 1731 end: 0.57, 1732 }, 1733 }); 1734 } 1735 } 1736 1737 // ÐнимаÑÐ¸Ñ Ñдвига .diagram-cells Ð´Ð»Ñ Ð¼Ð°Ð»ÐµÐ½ÑÐºÐ¸Ñ ÑкÑанов 1738 animateCellsOffset(panelNumber) { 1739 if (!this.isSmallMobile || !this.diagramCells) return; 1740 1741 const offset = CONFIG.cellsOffsetMobile[panelNumber] || '0rem'; 1742 1743 gsap.to(this.diagramCells, { 1744 x: `-${offset}`, 1745 duration: 0.5, 1746 ease: 'power2.inOut', 1747 }); 1748 } 1749 1750 switchPanel(panelNumber, fromScroll = false) { 1751 // ÐÐÐÐÐРУÐРпеÑеклÑÑение еÑли Ð¸Ð´ÐµÑ Ð°Ð½Ð¸Ð¼Ð°ÑÐ¸Ñ (кÑоме ÑкÑолла) 1752 if (this.isAnimating && !fromScroll) { 1753 console.log('Animation in progress, blocking panel switch'); 1754 return; 1755 } 1756 1757 // ÐбновлÑем ÑекÑÑий Ð¸Ð½Ð´ÐµÐºÑ 1758 this.currentIndex = parseInt(panelNumber) - 1; 1759 1760 // УбиÑаем акÑивнÑй клаÑÑ Ñо вÑÐµÑ Ð¿Ð°Ð½ÐµÐ»ÐµÐ¹ 1761 this.diagramPanels.forEach((panel) => { 1762 panel.classList.remove('active'); 1763 }); 1764 1765 // УбиÑаем акÑивнÑй клаÑÑ Ñо вÑÐµÑ ÐºÐ½Ð¾Ð¿Ð¾Ðº 1766 this.diagramButtons.forEach((btn) => { 1767 btn.classList.remove('active'); 1768 }); 1769 1770 // ÐобавлÑем акÑивнÑй клаÑÑ Ðº вÑбÑанной панели 1771 const activePanel = this.container.querySelector( 1772 `[data-diagram-panel="${panelNumber}"]` 1773 ); 1774 if (activePanel) { 1775 activePanel.classList.add('active'); 1776 } 1777 1778 // ÐобавлÑем акÑивнÑй клаÑÑ Ðº вÑбÑанной кнопке 1779 const activeButton = this.container.querySelector( 1780 `[data-diagram-btn="${panelNumber}"]` 1781 ); 1782 if (activeButton) { 1783 activeButton.classList.add('active'); 1784 } 1785 1786 // ÐнимиÑÑем SVG Ð»Ð¸Ð½Ð¸Ñ Ð¸ квадÑÐ°Ñ (вклÑÑÐ°ÐµÑ Ñдвиг line-mob на 4 Ñаге) 1787 this.animateSVGLine(panelNumber); 1788 1789 // ÐнимиÑÑем Ñдвиг .diagram-cells (ÑолÑко Ð´Ð»Ñ Ð¼Ð°Ð»ÐµÐ½ÑÐºÐ¸Ñ ÑкÑанов) 1790 this.animateCellsOffset(panelNumber); 1791 1792 // ÐбновлÑем мобилÑнÑÑ Ð½Ð°Ð²Ð¸Ð³Ð°ÑÐ¸Ñ 1793 if (this.isMobile) { 1794 this.updateMobileNavigation(); 1795 } 1796 } 1797 1798 animateSVGLine(panelNumber) { 1799 if (!this.svgPath) return; 1800 1801 const steps = this.getCurrentAnimationSteps(); 1802 const step = steps[panelNumber]; 1803 const targetPercent = step.progress * 100; 1804 1805 // Убиваем вÑе пÑедÑдÑÑие анимаÑии 1806 gsap.killTweensOf(this.svgPath); 1807 gsap.killTweensOf(this.rectProgressObj); 1808 if (this.diagramLineMob) { 1809 gsap.killTweensOf(this.diagramLineMob); 1810 } 1811 1812 // ÐÐÐÐÐРУÐРвзаимодейÑÑвие 1813 this.isAnimating = true; 1814 1815 // Создаем timeline Ð´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑной анимаÑии 1816 const tl = gsap.timeline({ 1817 onComplete: () => { 1818 // Ð ÐÐÐÐÐÐÐРУÐРпоÑле завеÑÑÐµÐ½Ð¸Ñ Ð²Ñей анимаÑии 1819 this.isAnimating = false;
1820 }, 1821 }); 1822 1823 // Шаг 1: Ðвигаем квадÑÐ°Ñ Ðº новой позиÑии 1824 if (this.svgRect) { 1825 tl.to(this.rectProgressObj, { 1826 value: step.progress, 1827 duration: CONFIG.animationDuration, 1828 // ease: 'power2.inOut', 1829 onUpdate: () => { 1830 gsap.set(this.svgRect, { 1831 motionPath: { 1832 path: this.svgPath, 1833 align: this.svgPath, 1834 alignOrigin: [0.5, 0.5], 1835 start: this.rectProgressObj.value, 1836 end: this.rectProgressObj.value, 1837 }, 1838 }); 1839 }, 1840 }); 1841 } 1842 1843 // Шаг 2: Сдвигаем .diagram-line-mob (Ð´Ð»Ñ Ð²ÑÐµÑ Ñагов на smallMobile) 1844 if (this.isSmallMobile && this.diagramLineMob) { 1845 const offset = CONFIG.lineMobOffsetMobile[panelNumber] || '0vw'; 1846 1847 tl.to(this.diagramLineMob, { 1848 x: offset, 1849 duration: CONFIG.animationDuration, 1850 // ease: 'power2.inOut', 1851 }); 1852 } 1853 1854 // Шаг 3: ÐнимиÑÑем Ð»Ð¸Ð½Ð¸Ñ Ð¾Ñ ÐÐÐЦРк ÐÐЧÐÐУ 1855 tl.set(this.svgPath, { 1856 drawSVG: `0% ${targetPercent}%`, 1857 }); 1858 1859 tl.fromTo( 1860 this.svgPath, 1861 { 1862 drawSVG: `${targetPercent}% ${targetPercent}%`, 1863 }, 1864 { 1865 drawSVG: `0% ${targetPercent}%`, 1866 duration: CONFIG.animationDuration, 1867 // ease: 'power2.inOut', 1868 onComplete: () => { 1869 this.currentPathEnd = targetPercent; 1870 }, 1871 } 1872 ); 1873 } 1874 1875 switchPanelWithScroll(panelNumber) { 1876 if (this.isAnimating || this.isMobile) return; 1877 1878 // ÐÐ°Ñ Ð¾Ð´Ð¸Ð¼ ÑооÑвеÑÑÑвÑÑÑий scroll trigger внÑÑÑи конÑейнеÑа 1879 const trigger = Array.from(this.scrollTriggers).find( 1880 (t) => t.getAttribute('data-scroll-trigger') === panelNumber 1881 ); 1882 1883 if (trigger) { 1884 this.isAnimating = true; 1885 1886 const triggerHeight = trigger.offsetHeight; 1887 const triggerCenter = triggerHeight / 2; 1888 1889 gsap.to(window, { 1890 // duration: CONFIG.scrollDuration, 1891 duration: 0.3, 1892 scrollTo: { 1893 y: trigger, 1894 offsetY: window.innerHeight / 2 - triggerCenter, 1895 }, 1896 ease: 'power2.inOut', 1897 onComplete: () => { 1898 setTimeout(() => { 1899 this.isAnimating = false; 1900 }, 100); 1901 }, 1902 }); 1903 } 1904 } 1905 1906 initScrollTriggers() { 1907 this.scrollTriggers.forEach((trigger) => { 1908 const triggerValue = trigger.getAttribute('data-scroll-trigger'); 1909 1910 const scrollTriggerInstance = ScrollTrigger.create({ 1911 trigger: trigger, 1912 start: 'top center', 1913 end: 'bottom center', 1914 onEnter: () => this.switchPanel(triggerValue, true), 1915 onEnterBack: () => this.switchPanel(triggerValue, true), 1916 // markers: true, 1917 id: `diagram-${triggerValue}`, 1918 }); 1919 1920 this.scrollTriggersArray.push(scrollTriggerInstance); 1921 }); 1922 } 1923 1924 bindEvents() { 1925 // ÐобавлÑем обÑабоÑÑики ÑобÑÑий на вÑе кнопки 1926 this.diagramButtons.forEach((button) => { 1927 button.addEventListener('click', (e) => { 1928 e.preventDefault(); 1929 1930 if (this.isMobile) { 1931 // Ðа мобилке пÑоÑÑо пеÑеклÑÑаем без ÑкÑолла 1932 const panelNumber = button.getAttribute('data-diagram-btn'); 1933 this.switchPanel(panelNumber); 1934 } else { 1935 // Ðа деÑкÑопе ÑкÑоллим 1936 const panelNumber = button.getAttribute('data-diagram-btn'); 1937 this.switchPanelWithScroll(panelNumber); 1938 } 1939 }); 1940 }); 1941 1942 // ÐбÑабоÑÑики Ð´Ð»Ñ Ð½Ð°Ð²Ð¸Ð³Ð°ÑионнÑÑ ÐºÐ½Ð¾Ð¿Ð¾Ðº 1943 if (this.prevBtn) { 1944 this.prevBtn.addEventListener('click', (e) => { 1945 e.preventDefault(); 1946 this.navigatePrev(); 1947 }); 1948 } 1949 1950 if (this.nextBtn) { 1951 this.nextBtn.addEventListener('click', (e) => { 1952 e.preventDefault(); 1953 this.navigateNext(); 1954 }); 1955 } 1956 1957 // ÐбÑабоÑÑик resize Ñ debounce 1958 let resizeTimeout; 1959 window.addEventListener('resize', () => { 1960 clearTimeout(resizeTimeout); 1961 resizeTimeout = setTimeout(() => { 1962 const wasMobile = this.isMobile; 1963 const wasSmallMobile = this.isSmallMobile; 1964 1965 this.isMobile = window.innerWidth < CONFIG.mobile.breakpoint; 1966 this.isSmallMobile = window.innerWidth < CONFIG.mobile.smallBreakpoint; 1967 1968 // ÐÑли изменилÑÑ Ñип SVG (пеÑеклÑÑение Ð¼ÐµÐ¶Ð´Ñ desktop/mobile SVG) 1969 if (wasSmallMobile !== this.isSmallMobile) { 1970 this.updateSVGReferences(); 1971 this.initSVG(); 1972 1973 // СбÑаÑÑваем или пÑименÑем Ñдвиги в завиÑимоÑÑи Ð¾Ñ ÑазмеÑа 1974 if (this.diagramCells) { 1975 if (this.isSmallMobile) { 1976 // ÐÑименÑем ÑекÑÑие Ñдвиги 1977 const panelNumber = (this.currentIndex + 1).toString(); 1978 this.animateCellsOffset(panelNumber); 1979 } else { 1980 // СбÑаÑÑваем Ñдвиги на болÑÑÐ¸Ñ ÑкÑÐ°Ð½Ð°Ñ 1981 gsap.set(this.diagramCells, { x: 0 }); 1982 if (this.diagramLineMob) { 1983 gsap.set(this.diagramLineMob, { x: 0 }); 1984 } 1985 } 1986 } 1987 } 1988 1989 if (!this.isMobile) { 1990 this.setStickyTop(); 1991 } else { 1992 if (this.diagram) { 1993 this.diagram.style.top = ''; 1994 } 1995 } 1996 1997 if (wasMobile !== this.isMobile) { 1998 this.handleModeChange(); 1999 } 2000 2001 ScrollTrigger.refresh(); 2002 }, 250); 2003 }); 2004 } 2005 2006 handleModeChange() { 2007 // ÐбновлÑем видимоÑÑÑ Ð½Ð°Ð²Ð¸Ð³Ð°Ñии 2008 this.updateNavigationVisibility(); 2009 2010 // ÐеÑеклÑÑаем ScrollTrigger 2011 if (!this.isMobile) { 2012 this.setStickyTop(); 2013 this.initScrollTriggers(); 2014 } else { 2015 if (this.diagram) { 2016 this.diagram.style.top = ''; 2017 } 2018 this.destroyScrollTriggers(); 2019 } 2020 2021 ScrollTrigger.refresh(); 2022 } 2023 2024 destroyScrollTriggers() { 2025 this.scrollTriggersArray.forEach((st) => st.kill()); 2026 this.scrollTriggersArray = []; 2027 } 2028 2029 destroy() { 2030 this.destroyScrollTriggers(); 2031 } 2032 } 2033 2034 // ÐниÑиализаÑÐ¸Ñ Ð¿Ð¾Ñле загÑÑзки DOM 2035 document.addEventListener('DOMContentLoaded', () => { 2036 window.diagramAnimation = new DiagramAnimation('.diagram-track'); 2037 }); 2038 2039</script>
2039</div></div><div class="page-wrapper"><header class="header"><div data-animation="over-right" class="nav w-nav" data-easing2="ease" fs-scrolldisable-element="smart-nav" data-easing="ease" data-collapse="tiny" role="banner" data-duration="400" data-doc-height="1"><div class="nav-overlay"></div><div class="container nav-container"><a href="/" aria-label="zebeyond logo" class="logo nav-logo w-nav-brand"><img width="136" height="26" alt="" src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abd6_Logo.svg" loading="lazy" class="logo__img"/></a><nav role="navigation" class="nav__menu-wrap w-nav-menu"><div fs-scrolldisable-element="preserve" class="nav__menu"><div class="nav__menu-top"><a href="/" aria-label="zebeyond logo" class="logo nav-logo w-nav-brand"><img width="136" height="26" alt="" src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abd6_Logo.svg" loading="lazy" class="logo__img"/></a><button type="button" aria-label="close menu" data-close-menu="" class="burger__box"><div class="burger__close w-embed"><svg width="100%" height="100%" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"> 2040 <rect width="13" height="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 11.8994 9.19238)" fill="currentcolor" /> 2041 <rect x="2" y="9.19238" width="13" height="1" transform="rotate(-45 2 9.19238)" fill="currentcolor" /> 2042</svg></div></button></div><ul role="list" class="nav__list"><li class="nav__list-item"><div data-hover="false" data-delay="0" class="nav-dropdown w-dropdown"><div class="nav-link is-nav-dropdown w-dropdown-toggle"><div class="control-s--h4">Solutions</div><div data-dropdown-arrow="" class="nav-link-arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 19 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2043 <path d="M5 7.5L9.5 12L14 7.5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2044</svg></div></div><nav class="nav-dropdown-list w-dropdown-list"><div class="nav-dropdown-box"><ul role="list" class="nav-list w-list-unstyled"><li class="nav-list__item"><a data-tab-target="epop-concept" href="/solutions?tab=epop-concept#product-suite" class="nav-list__link w-inline-block"><div class="control-s--h4">ePOP Concept</div></a></li><li class="nav-list__item"><a data-tab-target="epop-pro" href="/solutions?tab=epop-pro#product-suite" class="nav-list__link w-inline-block"><div class="control-s--h4">ePOP Pro</div></a></li><li class="nav-list__item"><a data-tab-target="benchmarking" href="/solutions?tab=benchmarking#product-suite" class="nav-list__link w-inline-block"><div class="control-s--h4">Benchmarking</div></a></li></ul></div></nav></div></li><li class="nav__list-item"><a href="/case-studies" class="nav-link w-inline-block"><div class="control-s--h4">Case studies</div></a></li><li class="nav__list-item"><div data-hover="false" data-delay="0" class="nav-dropdown w-dropdown"><div class="nav-link is-nav-dropdown w-dropdown-toggle"><div class="control-s--h4">Company</div><div data-dropdown-arrow="" class="nav-link-arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 19 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2045 <path d="M5 7.5L9.5 12L14 7.5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2046</svg></div></div><nav class="nav-dropdown-list w-dropdown-list"><div class="nav-dropdown-box"><ul role="list" class="nav-list w-list-unstyled"><li class="nav-list__item"><a href="/about-us" class="nav-list__link w-inline-block"><div class="control-s--h4">About us</div></a></li><li class="nav-list__item"><a href="/careers" class="nav-list__link w-inline-block"><div class="control-s--h4">Careers</div></a></li><li class="nav-list__item"><a href="/newsroom" class="nav-list__link w-inline-block"><div class="control-s--h4">Newsroom</div></a></li><li class="nav-list__item"><a href="/faq" class="nav-list__link w-inline-block"><div class="control-s--h4">FAQ</div></a></li></ul></div></nav></div></li></ul><div class="nav__menu-footer"><div class="nav__menu-btns"><a href="mailto:[email protected]" class="btn-min w-inline-block"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewB
2046ox="0 0 22 22" fill="none"> 2047 <path d="M3.35 5.38723L10.1068 11.1835C10.6171 11.6213 11.3829 11.6213 11.8932 11.1835L18.65 5.38723M4.7 18H17.3C18.7912 18 20 16.8247 20 15.375V6.625C20 5.17525 18.7912 4 17.3 4H4.7C3.20883 4 2 5.17525 2 6.625V15.375C2 16.8247 3.20883 18 4.7 18Z" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2048</svg></div></a><a href="https://account.epop.tech/Account/Login" class="btn-min w-inline-block"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2049 <path d="M12.771 3H14.7287C16.2238 3 16.9713 3 17.5424 3.29065C18.0447 3.54631 18.4531 3.95426 18.709 4.45603C19 5.02646 19 5.77319 19 7.26667V14.7333C19 16.2268 19 16.9735 18.709 17.544C18.4531 18.0457 18.0447 18.4537 17.5424 18.7094C16.9713 19 16.2238 19 14.7287 19H12.771M13.2142 11L9.41532 14.7948M13.2142 11L9.41532 7.20524M13.2142 11H3" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2050</svg></div></a></div><a href="/book-a-demo" class="btn nav-btn w-inline-block"><div class="control-s">Request a quote</div></a></div></div></nav><div id="w-node-_039cd56d-a547-bca2-8bde-21595c0286b3-5c028695" class="nav__right"><div class="nav-btns-min"><a href="#" class="btn-min w-inline-block"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2051 <path d="M19 19L15.4444 15.4444M17.2222 10.1111C17.2222 14.0385 14.0385 17.2222 10.1111 17.2222C6.18375 17.2222 3 14.0385 3 10.1111C3 6.18375 6.18375 3 10.1111 3C14.0385 3 17.2222 6.18375 17.2222 10.1111Z" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2052</svg></div></a><a href="mailto:[email protected]" class="btn-min w-inline-block"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2053 <path d="M3.35 5.38723L10.1068 11.1835C10.6171 11.6213 11.3829 11.6213 11.8932 11.1835L18.65 5.38723M4.7 18H17.3C18.7912 18 20 16.8247 20 15.375V6.625C20 5.17525 18.7912 4 17.3 4H4.7C3.20883 4 2 5.17525 2 6.625V15.375C2 16.8247 3.20883 18 4.7 18Z" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2054</svg></div></a><a href="https://account.epop.tech/Account/Login" class="btn-min w-inline-block"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2055 <path d="M12.771 3H14.7287C16.2238 3 16.9713 3 17.5424 3.29065C18.0447 3.54631 18.4531 3.95426 18.709 4.45603C19 5.02646 19 5.77319 19 7.26667V14.7333C19 16.2268 19 16.9735 18.709 17.544C18.4531 18.0457 18.0447 18.4537 17.5424 18.7094C16.9713 19 16.2238 19 14.7287 19H12.771M13.2142 11L9.41532 14.7948M13.2142 11L9.41532 7.20524M13.2142 11H3" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2056</svg></div></a></div><a href="/book-a-demo" class="btn nav-btn w-inline-block"><div class="control-s">Request a quote</div></a></div><div class="burger w-nav-button"><div class="burger__box"><div class="burger__open w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2057 <path d="M2 11L14 11M2 4L20 4M2 18L20 18" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2058</svg></div></div></div></div></div></header><main class="main-wrapper"><section class="s-hero"><div class="page-padding"><div class="container"><ul role="list" class="breadcrumbs"><li class="breadcrumbs-item"><a data-link-ondark="" href="/" class="breadcrumbs-link w-inline-block"><div class="control-m">Home</div></a><div class="control-m">/</div></li><li class="breadcrumbs-item is-item-name"><div class="control-m">Solutions</div></li></ul><div class="spacer-60 mob-40"></div><div class="wrap s-hero__wrap"><div class="heading s-hero__heading"><h2 data-title-anim-gr="" class="header-h2">Everything you need for smarter electrification â in one product</h2></div><div class="spacer-60 mob-40"></div><div class="s-solutions-col-wrap w-dyn-list"><div role="list" class="s-solutions-col-list w-dyn-items"><div role="listitem" class="s-solutions-col-item w-dyn-item"><article class="s-solutions-item"><div class="s-solutions-item__upper"><h2 class="header-h4">ePOP Concept</h2><p class="body-m text-secondary-ondark">Build electrification cases in hours with ePOPâs physics-based platform.</p></div><div class="s-solutions-item__lower"><div class="s-solutions-item__step"><div class="btn-min s-solutions-item__step-icon"><div class="s-solutions-item__step-icon_arrow"><div class="icon-24 mob-20 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewB
2058ox="0 0 24 24" fill="none"> 2059 <path d="M9 18L15 12L9 6" stroke="currentcolor" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2060</svg></div></div></div></div><div class="s-solutions-item__video-wrap"><video src="https://www.dropbox.com/scl/fi/dbku7i7uypuzsmoswpfcl/ePOP-Arial-Work-Platform-Power-System-Answers-1.mp4?rlkey=cgz3olzlvr74ua5ol91ud8clb&st=m2817zxy&raw=1" playsinline="true" loop="" controls="" data-start-time="332" preload="metadata" loading="lazy" data-target-video="" class="s-solutions-item__video"></video></div></div></article></div><div role="listitem" class="s-solutions-col-item w-dyn-item"><article class="s-solutions-item"><div class="s-solutions-item__upper"><h2 class="header-h4">ePOP Pro</h2><p class="body-m text-secondary-ondark">Find the best fit through detailed models and real-time insights.</p></div><div class="s-solutions-item__lower"><div class="s-solutions-item__step"><div class="btn-min s-solutions-item__step-icon"><div class="s-solutions-item__step-icon_arrow"><div class="icon-24 mob-20 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none"> 2061 <path d="M9 18L15 12L9 6" stroke="currentcolor" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2062</svg></div></div></div></div><div class="s-solutions-item__video-wrap"><video src="https://www.dropbox.com/scl/fi/gn9auurcagvhlbork0ta8/ePOP-Desktop-Designing-a-hybrid-powertrain-for-a-C-segment-passenger-vehicle-1-1.mp4?rlkey=bht2zs0gd1u41jvnzf0l3emwb&st=218n4rds&raw=1" playsinline="true" loop="" controls="" data-start-time="587" preload="metadata" loading="lazy" data-target-video="" class="s-solutions-item__video"></video></div></div></article></div><div role="listitem" class="s-solutions-col-item w-dyn-item"><article class="s-solutions-item"><div class="s-solutions-item__upper"><h2 class="header-h4">Benchmarking</h2><p class="body-m text-secondary-ondark">Turn complex simulations into clear visuals that align results with KPIs.</p></div><div class="s-solutions-item__lower"><div class="s-solutions-item__step"><div class="btn-min s-solutions-item__step-icon"><div class="s-solutions-item__step-icon_arrow"><div class="icon-24 mob-20 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none"> 2063 <path d="M9 18L15 12L9 6" stroke="currentcolor" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2064</svg></div></div></div></div><div class="s-solutions-item__video-wrap"><video src="https://www.dropbox.com/scl/fi/5aizivzg45fzsx0rvl4p5/EDU-Benchmarking-A2MAC1-min.mp4?rlkey=mjbm422jdoxqxo2eg6qvy1a16&raw=1" playsinline="true" loop="" controls="" data-start-time="90" preload="metadata" loading="lazy" data-target-video="" class="s-solutions-item__video"></video></div></div></article></div></div></div></div></div></div><div class="s-hero__bg"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/6920d04625c8ed8f3b88f9b5_solutions-hero--d.avif" loading="lazy" width="2160" height="1463" alt="" class="img-full-cover mob-off"/><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/6920d0469bdd18745b1ef197_solutions-hero--m.avif" loading="lazy" width="563" height="1418" alt="" class="img-full-cover mob-on"/></div></section><section class="proposition"><div class="page-padding mob-0"><div class="container"><div class="wrap proposition__wrap"><div class="heading proposition__heading"><div class="caption"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2065 <path d="M18.9963 13.54L12.8403 16.4216C12.1644 16.738 11.8264 16.8962 11.4732 16.9586C11.1603 17.0138 10.8397 17.0138 10.5268 16.9586C10.1736 16.8962 9.83563 16.738 9.1597 16.4216L3.00374 13.54M12.8569 12.0407L16.7593 10.1937C18.0309 9.59185 18.6667 9.29091 18.8684 8.8803C19.0439 8.52316 19.0439 8.10734 18.8684 7.7502C18.6667 7.33959 18.0309 7.03866 16.7592 6.43679L12.8569 4.5898C12.1751 4.26713 11.8343 4.1058 11.4777 4.04223C11.1618 3.98592 10.8382 3.98592 10.5223 4.04223C10.1657 4.1058 9.82485 4.26713 9.14311 4.5898L5.24075 6.4368C3.96912 7.03866 3.33331 7.33959 3.13159 7.7502C2.95614 8.10734 2.95614 8.52316 3.13159 8.8803C3.33331 9.29091 3.96912 9.59185 5.24075 10.1937L9.14311 12.0407C9.82485 12.3634 10.1657 12.5247 10.5223 12.5883C10.8382 12.6446 11.1618 12.6446 11.4777 12.5883C11.8343 12.5247 12.1752 12.3634 12.8569 12.0407Z" stroke="#FCFCFC" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2066</svg></div><p class="caption-l">Unified value proposition</p></div><div class="spacer-16 mob-10"></div><h2 class="header-h2">Weâre all about <span data-title-anim-gr="">optimizing system</span> losses component â¨to <span data-title-anim-gr="">system integration</span></h2></div><div class="spacer-60 mob-40"></div><div class="p-chart"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/69257ba9fb9ffcf4e3974a7b_Chart%20v5.svg" loading="lazy" width="1280" height="658" alt="" class="p-chart__img-d"/><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/692448a149d84875b774df80_Chart%20v3%20mob.svg" loading="lazy" width="663" height="527" alt="" class="p-chart__img-m"/></div></div></div></div></section><section class="concept"><div class="page-padding"><div class="container"><div class="wrap concept__wrap"><div class="heading concept__heading"><div class="caption"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewB
2066ox="0 0 22 22" fill="none"> 2067 <path d="M18.1027 11.0111C18.1027 6.86282 14.7935 3.5 10.7113 3.5C8.37713 3.5 6.29565 4.5995 4.94106 6.31665M16.0857 10.7077L18.1473 12.5904L20 10.4953M3.86754 11.028C3.86754 15.1547 7.15956 18.5 11.2205 18.5C13.2512 18.5 15.0896 17.6635 16.4202 16.3111M5.8774 11.8647L3.73151 10.1052L2 12.2858" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2068</svg></div><p class="caption-l">The concept phase</p></div><div class="spacer-16 mob-10"></div><h2 class="header-h2"><span data-title-anim-gr="">Use ePOP in engineering</span> - from concept exploration to <span data-title-anim-gr="">component specification</span></h2></div><div class="spacer-60 mob-40"></div><div class="diagram-track"><div class="diagram-scroll-triggers"><div data-scroll-trigger="1" class="diagram-scroll-trigger"></div><div data-scroll-trigger="2" class="diagram-scroll-trigger"></div><div data-scroll-trigger="3" class="diagram-scroll-trigger"></div><div data-scroll-trigger="4" class="diagram-scroll-trigger"></div></div><div class="diagram"><div data-diagram-mobile-nav="" class="diagram-mobile-nav"><button data-diagram-nav="prev" type="button" aria-label="prev" class="btn-min"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2069 <path d="M17 11H5.12061M11 17L5 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2070</svg></div></button><div data-diagram-counter="" class="caption-l">1-4</div><button data-diagram-nav="next" type="button" aria-label="next" class="btn-min"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2071 <path d="M5 11H16.8794M11 17L17 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2072</svg></div></button></div><div class="diagram-box"><div data-diagram-panel="1" class="diagram-box__content active"><img width="60" height="60" alt="" src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abda_Market%20study.svg" loading="lazy" class="diagram-box__icon"/><p class="body-l">ePOP can display data from benchmark measurements side-by-side with the concepts being explored, allowing teams to easily compare performance metrics.</p></div><div data-diagram-panel="2" class="diagram-box__content"><img width="60" height="60" alt="" src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abdb_System%20specification.svg" loading="lazy" class="diagram-box__icon"/><p class="body-l">ePOP has frequently used system level architectures built-in to allow rapid investigations without the need to build models from scratch.</p></div><div data-diagram-panel="3" class="diagram-box__content"><img width="60" height="60" alt="" src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abdd_Component%20specification.svg" loading="lazy" class="diagram-box__icon"/><p class="body-l">ePOP enables creating, importing, and viewing components in isolation â and combining many into system-level solutions for design exploration.</p></div><div data-diagram-panel="4" class="diagram-box__content"><img width="60" height="60" alt="" src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abf4_Detailed%20design.svg" loading="lazy" class="diagram-box__icon"/><p class="body-l">In its component models, ePOP allows higher fidelity to include detailed design choices (such as material selection) very early in the concepting phase.</p></div></div><div class="diagram-cells"><div class="diagram-row"><div class="diagram-row__box"><button type="button" data-diagram-btn="1" class="cell-wrap is-right-shift active"><div class="cell"><div class="cell-border"></div><div class="cell-text"><div class="caption-m--s">Market study</div></div></div></button><div class="cell-wrap"><div class="diagram-line w-embed"><svg width="100%" height="100%" viewBox="0 0 168 441" fill="none" xmlns="http://www.w3.org/2000/svg"> 2073 <path d="M157 0.5H5.82968C3.02105 0.5 1.087 3.31871 2.09758 5.93924L72.5 188.5L130.6 349.5L160.6 433" stroke="url
2073(#paint0_linear_703_13895)" /> 2074 <rect x="161.657" y="429.5" width="8" height="8" rx="1" transform="rotate(45 161.657 429.5)" fill="#02F2AA" /> 2075 <defs> 2076 <linearGradient id="paint0_linear_703_13895" x1="71.5" y1="160" x2="168" y2="-7.14288" gradientUnits="userSpaceOnUse"> 2077 <stop stop-color="#02F2AA" /> 2078 <stop offset="0.293269" stop-color="#26D2E2" /> 2079 <stop offset="0.576923" stop-color="#26D2E2" stop-opacity="0.5" /> 2080 <stop offset="1" stop-color="#3D4341" /> 2081 </linearGradient> 2082 </defs> 2083</svg></div><div class="diagram-line-mob w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 58 237" fill="none"> 2084 <path d="M5.00544 0.101134L18.0055 65.6011L29.5055 120.601L39.5054 167.601L41.2994 175.601L46.9525 202.601L52.6057 230.601" stroke="url(#paint0_linear_941_46418)"/> 2085 <rect width="5.94972" height="5.94972" rx="1" transform="matrix(0.701081 0.713082 -0.701081 0.713082 52.1763 227.601)" fill="#02F2AA"/> 2086 <defs> 2087 <linearGradient id="paint0_linear_941_46418" x1="52.6057" y1="230.601" x2="4.41981" y2="-1.54935" gradientUnits="userSpaceOnUse"> 2088 <stop stop-color="#0EDEA1"/> 2089 <stop offset="0.432692" stop-color="#26BFCB"/> 2090 <stop offset="0.586939" stop-color="#2AC2C5"/> 2091 <stop offset="0.691134" stop-color="#18CEC0"/> 2092 <stop offset="0.73008" stop-color="#25DBC6"/> 2093 <stop offset="0.922509" stop-color="#3D4341" stop-opacity="0.8"/> 2094 <stop offset="0.986994" stop-color="#3D4341"/> 2095 </linearGradient> 2096 </defs> 2097</svg></div><div class="cell"><div class="cell-border is-concept"></div><div class="cell-text"><div class="caption-m--s">Concept exploration</div></div></div></div></div><div class="diagram-row__box"><div class="cell-wrap is-right"><div class="cell"><div class="cell-border is-right-disabled"></div><div class="cell-text is-right-disabled-15"><div class="caption-m--s">Acceptance test</div></div></div></div><div class="cell-wrap is-left-shift"><div class="cell"><div class="cell-border is-right-disabled"></div><div class="cell-text is-right-disabled-15"><div class="caption-m--s">Product maintenance</div></div></div></div></div></div><div class="diagram-row-2"><button type="button" data-diagram-btn="2" class="cell-wrap"><div class="cell"><div class="cell-border"></div><div class="cell-text"><div class="caption-m--s">System specification</div></div></div></button><div class="cell-wrap is-right"><div class="cell"><div class="cell-border is-right-disabled"></div><div class="cell-text is-right-disabled-15"><div class="caption-m--s">System verification</div></div></div></div></div><div class="diagram-row-3"><button type="button" data-diagram-btn="3" class="cell-wrap"><div class="cell"><div class="cell-border"></div><div class="cell-text"><div class="caption-m--s">Component specification</div></div></div></button><div class="cell-wrap is-right"><div class="cell"><div class="cell-border is-right-disabled"></div><div class="cell-text is-right-disabled-15"><div class="caption-m--s">Component integration</div></div></div></div></div><div class="diagram-row-4"><button type="button" data-diagram-btn="4" class="cell-wrap is-bottom"><div class="cell is-bottom"><div class="cell-border is-bottom"></div><div class="cell-text"><div class="caption-m--s">Detailed design</div></div></div></button></div></div></div></div></div></div></div></section><section id="product-suite" data-tabs-container="" class="suite"><div class="page-padding v2"><div class="container v2"><div class="wrap suite__wrap"><div class="heading suite__heading"><div class="caption onlight"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="none"> 2098 <path d="M11 11L11 19.3401M11 11L3.44444 6.82994M11 11L18.5556 6.82994M12.3814 19.4667L17.5369 16.4808C18.0694 16.1724 18.3357 16.0182 18.5295 15.7988C18.7011 15.6048 18.8308 15.3748 18.9102 15.1243C19 14.8411 19 14.5236 19 13.8886V8.11143C19 7.47639 19 7.15887 18.9102 6.87568C18.8308 6.62515 18.7011 6.39518 18.5295 6.20115C18.3357 5.98183 18.0694 5.82763 17.5369 5.51923L12.3814 2.53326C11.8772 2.24124 11.6251 2.09524 11.3581 2.038C11.1219 1.98733 10.8781 1.98733 10.6419 2.038C10.3749 2.09524 10.1228 2.24124 9.61861 2.53326L4.46306 5.51923C3.93057 5.82763 3.66433 5.98183 3.47046 6.20115C3.29895 6.39518 3.16915 6.62515 3.08975 6.87568C3 7.15887 3 7.47639 3 8.11143V13.8886C3 14.5236 3 14.8411 3.08975 15.1243C3.16915 15.3748 3.29895 15.6048 3.47046 15.7988C3.66433 16.0182 3.93057 16.1724 4.46306 16.4808L9.61862 19.4667C10.1228 19.7588 10.3749 19.9048 10.6419 19.962C10.8781 20.0127 11.1219 20.0127 11.3581 19.962C11.6251 19.9048 11.8772 19.7588 12.3814 19.4667Z" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round"/> 2099</svg></div><p class="caption-l">Product suite</p></div><div class="spacer-16 mob-10"></div><h2 class="header-h2"><span data-title-anim-gr-onLight="">All-in-one product</span> - three ways â¨to power your work</h2></div><div class="spacer-60 mob-40"></div><div data-pinned-toc="all" class="toc in-suite"><div class="toc__box"><div class="toc-wrap"><div class="toc-select-wrap in-suite"><div class="epop-tabs-wrap w-dyn-list"><div role="list" class="epop-tabs w-dyn-items"><div role="listitem" class="epop-tabs-item w-dyn-item"><a id="epop-concept" data-tab-btn="epop-concept" href="#" class="epop-tab w-inline-block"><div class="epop-tab__number"><div class="caption-l">0</div><div class="caption-l">1</div></div><div class="epop-tab__name"><div class="caption-l">/</div><div class="caption-l">ePOP Concept</div></div></a></div><div role="listitem" class="epop-tabs-item w-dyn-item"><a id="epop-pro" data-tab-btn="epop-pro" href="#" class="epop-tab w-inline-block"><div class="epop-tab__number"><div class="caption-l">0</div><div class="caption-l">2</div></div><div class="epop-tab__name"><div class="caption-l">/</div><div class="caption-l">ePOP Pro</div></div></a></div><div role="listitem" class="epop-tabs-item w-dyn-item"><a id="benchmarking" data-tab-btn="benchmarking" href="#" class="epop-tab w-inline-block"><div class="epop-tab__number"><div class="caption-l">0</div><div class="caption-l">3</div></div><div class="epop-tab__name"><div class="caption-l">/</div><div class="caption-l">Benchmarking</div></div></a></div></div></div></div></div></div></div><div class="epop-col-wrap w-dyn-list"><div role="list" class="epop-col-list w-dyn-items"><div data-tab-panel="epop-concept" role="listitem" class="epop-col-item w-dyn-item"><div class="epop-item"><div class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">01</div></div><div class="caption-l">Overview</div></div></div><div class="epop-content"><div class="epop-top"><h3 class="header-h3 is-epop-title">Get to application answers at surprising speed</h3><div class="epop-top__descr"><p class="body-l text-secondary-onlight">Build credible electrification cases in under a day with ePOPâs intuitive, physics-based platform. Explore all power generation, transfer, and delivery options.
2099</p></div></div><div class="epop-body"><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f5478d2-3ad15797" class="epop-video-wrap"><div class="epop-video-border"><video src="https://www.dropbox.com/scl/fi/dbku7i7uypuzsmoswpfcl/ePOP-Arial-Work-Platform-Power-System-Answers-1.mp4?rlkey=cgz3olzlvr74ua5ol91ud8clb&st=m2817zxy&raw=1" playsinline="true" loop="" controls="" data-start-time="332" loading="lazy" preload="metadata" class="epop-video"></video></div></div><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f5478d5-3ad15797" class="epop-right"><div class="epop-rich-text w-richtext"><ul role="list"><li>Fast setup - under a day</li><li>Physics-based accuracy</li><li>Exploring all power options</li></ul></div></div><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f547909-3ad15797" class="epop-actions"><a data-wf--button--variant="mob-size-m" href="/book-a-demo" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Request a Demo</div></a></div></div></div></div><div data-slider-wrap="" class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">02</div></div><div class="caption-l">Workflow</div></div><h3 class="header-h3">How it works - key steps</h3></div><div data-workflows-slider="1" class="splide workflows-slider"><div class="splide__track workflows-track w-dyn-list"><div role="list" class="splide__list workflows-list w-dyn-items"><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Individual Function Cycle</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Load in different functional cycles (with millisecond resolution)</li><li>Tag each segment as Electrical direct, Hydraulic direct, or Mechanical</li><li>Combine cycles into a single consolidated duty profile</li><li>Browse power delivery scenarios</li><li>Import cycles from a spreadsheet</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923661f96bf689ce2788473_Individual%20Function%20Cycle.avif" loading="lazy" alt="Individual Function Cycle" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923661f96bf689ce2788473_Individual%20Function%20Cycle-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923661f96bf689ce2788473_Individual%20Function%20Cycle.avif 810w" class="workflows-item__img"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Library</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Use a baseline component library (inverters, motors, ICEs, fuel systems, batteries, chargers, transmissions, hydraulic pumps/motors)</li><li>Define and load your own custom components (beyond the built-in ones)</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923663eef27bc15ca608f8c_Library.avif" loading="lazy" alt="Library" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923663eef27bc15ca608f8c_Library-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923663eef27bc15ca608f8c_Library.avif 810w" class="workflows-item__img"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Configuration</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Select components from the library</li><li>Build and compare two powertrain scenarios</li><li>Choose the architecture (parallel, series, etc.) and power sources</li><li>Perform sweeps to find optimal architecture</li><li>Set operation parameters: number of cycles, years, cost assumptions</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923664b3c0eb0b468ed04ef_Configuration.avif" loading="lazy" alt="Configuration" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923664b3c0eb0b468ed04ef_Configuration-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923664b3c0eb0b468ed04ef_Configuration.avif 810w" class="workflows-item__img"/>
2099</div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Results</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Determine the optimal level of electrification based on the cycle, budget, and horizon</li><li>Detailed KPI breakdowns by component (cost, mass, etc.)</li><li>Compare lifetime fuel usage (ICE vs hybrid vs fully electric)</li><li>Export a âshopping listâ specification for the optimal powertrain setup</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692366746cec67374a428811_Results.avif" loading="lazy" alt="Results" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692366746cec67374a428811_Results-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692366746cec67374a428811_Results.avif 810w" class="workflows-item__img"/></div></div></div></div></div></div><div class="slider-nav"><div class="splide__pagination slider-pagination"></div><button data-slider-btn-prev="" type="button" aria-label="prev" class="btn-min on-light"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2100 <path d="M17 11H5.12061M11 17L5 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2101</svg></div></button><button data-slider-btn-next="" type="button" aria-label="next" class="btn-min on-light"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2102 <path d="M5 11H16.8794M11 17L17 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2103</svg></div></button></div></div></div><div class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">03</div></div><div class="caption-l">Key capabilities</div></div><h3 class="header-h3">Behind the solution - main functions</h3></div><div class="epop-item__cards"><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923571d05f83c411c6e2de2_bar-chart-circle.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">High-fidelity cycle modelling</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235721a49bacc9bb384361_layout-top.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Comprehensive component and architecture library</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692357250cea84442b8aa079_shuffle.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Architecture comparison & optimization</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235728e9fa2376c4a6eef5_database.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Insightful output and decision support</p></div></div></div><div class="epop-item__box is-cases"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">04</div></div><div class="caption-l">Case studies</div></div><h3 class="header-h3">Practical examples and proven results</h3></div><div id="w-node-_6e436e62-0f6e-ddaa-5a4c-d7abbb8dafb2-3ad15797" class="cases-col-wrap w-dyn-list"><div role="list" class="cases-col-list w-dyn-items"><div role="listitem" class="cases-col-item w-dyn-item"><div class="case-item"><div class="case-item__img-wrap"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/691fe9a45470bd6d1697ade5_General%20Service%204x4%20vehicles%20M.svg" loading="lazy" alt="" class="case-item__img"/>
2103</div><div class="case-item__info"><div><div class="tags"><div class="tag is-product-tag w-condition-invisible"><div class="caption-xs-upp w-dyn-bind-empty"></div></div><div style="color:#b973ff;background-color:rgba(185, 115, 255, 0.1)" class="tag"><div class="case-item__icon w-richtext"><div class="w-embed"><svg width="100%" height="100%" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2104<path d="M13.2715 4C13.6027 4 13.9125 4.16449 14.0986 4.43848L16.8271 8.45703C16.9959 8.70552 17.0438 9.01687 16.958 9.30469L16.1289 12.0859C16.0025 12.5095 15.6128 12.7996 15.1709 12.7998H15.0527C15.0527 14.0127 14.154 14.9999 13.0498 15C11.9456 15 11.0469 14.0127 11.0469 12.7998H10.0459C10.0459 14.0127 9.14721 15 8.04297 15C6.93904 14.9998 6.04102 14.0126 6.04102 12.7998H5.04004C5.04004 14.0127 4.14122 15 3.03711 15C1.93289 15 1.03418 14.0127 1.03418 12.7998H1C0.447715 12.7998 0 12.3521 0 11.7998V5C0.000176614 4.44787 0.447824 4 1 4H13.2715ZM3.03711 11.7002C2.48511 11.7002 2.03618 12.1933 2.03613 12.7998C2.03613 13.4063 2.48508 13.8994 3.03711 13.8994C3.58917 13.8994 4.03809 13.4063 4.03809 12.7998C4.03804 12.1932 3.58914 11.7002 3.03711 11.7002ZM8.04297 11.7002C7.49112 11.7004 7.04204 12.1934 7.04199 12.7998C7.04199 13.4061 7.49109 13.8992 8.04297 13.8994C8.59516 13.8994 9.04492 13.4063 9.04492 12.7998C9.04487 12.1932 8.59513 11.7002 8.04297 11.7002ZM13.0498 11.7002C12.4978 11.7002 12.0489 12.1932 12.0488 12.7998C12.0488 13.4063 12.4977 13.8994 13.0498 13.8994C13.6018 13.8994 14.0508 13.4062 14.0508 12.7998C14.0507 12.1933 13.6018 11.7003 13.0498 11.7002ZM1.30078 9.5C1.13539 9.50023 1.00113 9.63439 1.00098 9.7998V11.3994C1.00098 11.565 1.13817 11.7 1.30371 11.7002C1.65048 11.0433 2.29753 10.5996 3.03711 10.5996C3.77671 10.5996 4.42373 11.0433 4.77051 11.7002H6.31055C6.65726 11.0434 7.30367 10.5998 8.04297 10.5996C8.78257 10.5996 9.42959 11.0433 9.77637 11.7002H11.3164C11.6632 11.0433 12.3102 10.5996 13.0498 10.5996C13.7894 10.5997 14.4364 11.0433 14.7832 11.7002H14.9668C15.0993 11.7001 15.216 11.6124 15.2539 11.4854L15.7314 9.88574C15.7887 9.69353 15.6448 9.50027 15.4443 9.5H1.30078ZM1.30078 5.10059C1.1353 5.10082 1.00098 5.23485 1.00098 5.40039V8.09961C1.00098 8.26515 1.13529 8.40016 1.30078 8.40039H14.9736C15.2141 8.40008 15.3566 8.13069 15.2217 7.93164L13.3887 5.23145C13.3329 5.14935 13.2399 5.10071 13.1406 5.10059H1.30078ZM3.99023 6.2002C4.29416 6.2002 4.54102 6.44705 4.54102 6.75098C4.54076 7.05468 4.294 7.30078 3.99023 7.30078H3.08691C2.78315 7.30078 2.53639 7.05468 2.53613 6.75098C2.53613 6.44705 2.78299 6.2002 3.08691 6.2002H3.99023ZM7.99609 6.2002C8.29997 6.20025 8.5459 6.44709 8.5459 6.75098C8.54564 7.05464 8.29981 7.30072 7.99609 7.30078H7.0918C6.78811 7.30069 6.54225 7.05462 6.54199 6.75098C6.54199 6.44711 6.78795 6.20028 7.0918 6.2002H7.99609ZM12.001 6.2002C12.3049 6.20024 12.5508 6.44708 12.5508 6.75098C12.5505 7.05465 12.3047 7.30074 12.001 7.30078H11.0967C10.7931 7.30061 10.5471 7.05457 10.5469 6.75098C10.5469 6.44716 10.7929 6.20037 11.0967 6.2002H12.001Z" fill="currentcolor"/> 2105</svg></div></div><div fs-list-field="tag" class="caption-xs-upp in-industry-tag">Defense</div></div></div><div class="spacer-16 mob-12"></div><h3 data-text-style-2lines="" fs-list-field="name" class="header-h5 mob-h4">Assessing Hybridisation Pathways for Legacy Fleet of General Service 4x4 vehicles</h3></div><div class="spacer-32 mob-24"></div><a data-link-gr="" href="/case-studies/assessing-hybridisation-pathways-for-legacy-fleet-of-general-service-4x4-vehicles" class="btn-text w-inline-block"><div data-btn-text-gr="" class="control-l">Read case study</div><div class="btn-text__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2106 <path d="M5 12H18.8593M12 19L19 12L12 5" stroke="url(#paint0_linear_2018_16755)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2107 <defs> 2108 <linearGradient id="paint0_linear_2018_16755" x1="19" y1="13.645" x2="5" y2="13.645" gradientUnits="userSpaceOnUse"> 2109 <stop stop-color="#02F2AA" /> 2110 <stop offset="1" stop-color="#26D2E2" /> 2111 </linearGradient> 2112 </defs> 2113</svg></div></a></div></div></div><div role="listitem" class="cases-col-item w-dyn-item"><div class="case-item"><div class="case-item__img-wrap"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/691fe9a45470bd6d1697adeb_Double%20the%20flight%20duration%20of%20a%20battery%20powered%20eVTOL%20M.svg" loading="lazy" alt="" class="case-item__img"/>
2113</div><div class="case-item__info"><div><div class="tags"><div class="tag is-product-tag w-condition-invisible"><div class="caption-xs-upp w-dyn-bind-empty"></div></div><div style="color:#ff739e;background-color:rgba(255, 115, 158, 0.1)" class="tag"><div class="case-item__icon w-dyn-bind-empty w-richtext"></div><div fs-list-field="tag" class="caption-xs-upp in-industry-tag">Aerospace</div></div></div><div class="spacer-16 mob-12"></div><h3 data-text-style-2lines="" fs-list-field="name" class="header-h5 mob-h4">Double the flight duration of a battery powered eVTOL </h3></div><div class="spacer-32 mob-24"></div><a data-link-gr="" href="/case-studies/double-the-flight-duration-of-a-battery-powered-evtol" class="btn-text w-inline-block"><div data-btn-text-gr="" class="control-l">Read case study</div><div class="btn-text__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2114 <path d="M5 12H18.8593M12 19L19 12L12 5" stroke="url(#paint0_linear_2018_16755)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2115 <defs> 2116 <linearGradient id="paint0_linear_2018_16755" x1="19" y1="13.645" x2="5" y2="13.645" gradientUnits="userSpaceOnUse"> 2117 <stop stop-color="#02F2AA" /> 2118 <stop offset="1" stop-color="#26D2E2" /> 2119 </linearGradient> 2120 </defs> 2121</svg></div></a></div></div></div><div role="listitem" class="cases-col-item w-dyn-item"><div class="case-item"><div class="case-item__img-wrap"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/691fe9a45470bd6d1697adea_Hybridisation%20and%20Battery%20Sizing%20Study%20for%20a%20Reach%20stacker%20M.svg" loading="lazy" alt="" class="case-item__img"/></div><div class="case-item__info"><div><div class="tags"><div class="tag is-product-tag w-condition-invisible"><div class="caption-xs-upp w-dyn-bind-empty"></div></div><div style="color:#ff822f;background-color:rgba(255, 130, 47, 0.1)" class="tag"><div class="case-item__icon w-richtext"><div class="w-embed"><svg width="100%" height="100%" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2122<path d="M11.5 3C11.7759 3 11.9999 3.2241 12 3.5V12.667H16.5C16.776 12.667 17 12.891 17 13.167C16.9999 13.4429 16.776 13.667 16.5 13.667H10.2998C10.145 14.4265 9.47195 14.9998 8.66699 15C7.86194 15 7.1891 14.4265 7.03418 13.667H5.63281C5.47792 14.4265 4.80508 15 4 15C3.19492 15 2.52208 14.4265 2.36719 13.667H2.16699C1.52366 13.667 1 13.1433 1 12.5V9.5C1.00012 8.48887 1.8219 7.66717 2.83301 7.66699H4.33301V4.16699C4.33301 3.8911 4.55716 3.66717 4.83301 3.66699H7.01758C7.79348 3.6671 8.48812 4.1587 8.74609 4.89062L10.3145 9.33398H11V3.5C11.0001 3.2241 11.2241 3 11.5 3ZM4 12.667C3.632 12.667 3.33301 12.9667 3.33301 13.334C3.33324 13.7011 3.63214 14 4 14C4.36786 14 4.66676 13.7011 4.66699 13.334C4.66699 12.9667 4.368 12.667 4 12.667ZM8.66699 12.667C8.29899 12.667 8 12.9667 8 13.334C8.00024 13.7011 8.29914 14 8.66699 14C9.0347 13.9998 9.33277 13.701 9.33301 13.334C9.33301 12.9668 9.03484 12.6672 8.66699 12.667ZM2.83301 8.66699C2.3739 8.66717 2.00012 9.04087 2 9.5V12.5C2 12.5907 2.07633 12.667 2.16699 12.667H2.47363C2.73133 12.0792 3.31783 11.667 4 11.667C4.68217 11.667 5.26867 12.0792 5.52637 12.667H7.13965C7.3973 12.079 7.98473 11.667 8.66699 11.667C9.34907 11.6671 9.93573 12.0792 10.1934 12.667H11V10.334H6.16699C6.10514 10.334 6.04369 10.3302 5.9834 10.3242C5.96267 10.3222 5.94239 10.3172 5.92188 10.3145C5.88312 10.3093 5.8446 10.3045 5.80664 10.2969C5.78691 10.2929 5.76754 10.2878 5.74805 10.2832C5.70917 10.2741 5.67069 10.2645 5.63281 10.2529C5.60742 10.2452 5.58253 10.2363 5.55762 10.2275C5.53045 10.2179 5.50313 10.2091 5.47656 10.1982C5.44368 10.1848 5.41178 10.1695 5.37988 10.1543C5.35987 10.1447 5.33992 10.1352 5.32031 10.125C5.29402 10.1113 5.26869 10.096 5.24316 10.0811C5.21652 10.0654 5.18983 10.0501 5.16406 10.0332C5.14372 10.0199 5.12427 10.0053 5.10449 9.99121C5.07737 9.97184 5.05041 9.95243 5.02441 9.93164C5.00652 9.91734 4.98902 9.90265 4.97168 9.8877C4.94548 9.86509 4.92039 9.84141 4.89551 9.81738C4.87694 9.79946 4.85862 9.78138 4.84082 9.7627C4.8227 9.74367 4.80441 9.72487 4.78711 9.70508C4.76488 9.67965 4.74348 9.65358 4.72266 9.62695C4.70762 9.60771 4.69298 9.5882 4.67871 9.56836C4.66052 9.54308 4.64289 9.51743 4.62598 9.49121C4.60992 9.4663 4.59494 9.44075 4.58008 9.41504C4.56644 9.39146 4.55265 9.36798 4.54004 9.34375C4.52461 9.31407 4.5109 9.28353 4.49707 9.25293C4.48753 9.23183 4.47751 9.21096 4.46875 9.18945C4.45636 9.15898 4.44534 9.12794 4.43457 9.09668C4.42686 9.07433 4.41897 9.05203 4.41211 9.0293C4.40041 8.99049 4.39098 8.95097 4.38184 8.91113C4.37756 8.89255 4.37187 8.87426 4.36816 8.85547C4.36122 8.82011 4.35742 8.7841 4.35254 8.74805C4.34888 8.72112 4.34427 8.69427 4.3418 8.66699H2.83301ZM5.33301 8.5C5.33301 8.95933 5.70766 9.33398 6.16699 9.33398H9.25391L7.80371 5.22266C7.68638 4.89011 7.37078 4.6671 7.01758 4.66699H5.33301V8.5Z" fill="currentcolor"/> 2123</svg></div></div><div fs-list-field="tag" class="caption-xs-upp in-industry-tag">Material handling</div></div></div><div class="spacer-16 mob-12"></div><h3 data-text-style-2lines="" fs-list-field="name" class="header-h5 mob-h4">Hybridisation and Battery Sizing Study for a Reach stacker</h3></div><div class="spacer-32 mob-24"></div><a data-link-gr="" href="/case-studies/hybridisation-and-battery-sizing-study-for-a-reach-stacker" class="btn-text w-inline-block"><div data-btn-text-gr="" class="control-l">Read case study</div><div class="btn-text__arrow w-embed">
2123<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2124 <path d="M5 12H18.8593M12 19L19 12L12 5" stroke="url(#paint0_linear_2018_16755)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2125 <defs> 2126 <linearGradient id="paint0_linear_2018_16755" x1="19" y1="13.645" x2="5" y2="13.645" gradientUnits="userSpaceOnUse"> 2127 <stop stop-color="#02F2AA" /> 2128 <stop offset="1" stop-color="#26D2E2" /> 2129 </linearGradient> 2130 </defs> 2131</svg></div></a></div></div></div></div></div><div id="w-node-_205d52e0-5d3b-d624-6e64-5f5cdd88082c-3ad15797" class="view-all-cases-btn"><a data-onLight="True" data-wf--button-secondary--variant="base" href="/case-studies" class="btn-secondary w-inline-block"><div class="control-l">View all case studies</div></a></div></div></div></div><div data-tab-panel="epop-pro" role="listitem" class="epop-col-item w-dyn-item"><div class="epop-item"><div class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">01</div></div><div class="caption-l">Overview</div></div></div><div class="epop-content"><div class="epop-top"><h3 class="header-h3 is-epop-title">Consider the full solution space</h3><div class="epop-top__descr"><p class="body-l text-secondary-onlight">ePOP maps the entire power system end-to-end with modular tools, helping identify the best fit through detailed models and real-time insights.</p></div></div><div class="epop-body"><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f5478d2-3ad15797" class="epop-video-wrap"><div class="epop-video-border"><video src="https://www.dropbox.com/scl/fi/gn9auurcagvhlbork0ta8/ePOP-Desktop-Designing-a-hybrid-powertrain-for-a-C-segment-passenger-vehicle-1-1.mp4?rlkey=bht2zs0gd1u41jvnzf0l3emwb&st=218n4rds&raw=1" playsinline="true" loop="" controls="" data-start-time="587" loading="lazy" preload="metadata" class="epop-video"></video></div></div><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f5478d5-3ad15797" class="epop-right"><div class="epop-rich-text w-richtext"><ul role="list"><li>Power architecture analysis</li><li>Motor and power technology comparison</li><li>Intelligent component sizing</li></ul></div></div><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f547909-3ad15797" class="epop-actions"><a data-wf--button--variant="mob-size-m" href="/book-a-demo" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Request a Demo</div></a></div></div></div></div><div data-slider-wrap="" class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">02</div></div><div class="caption-l">Workflow</div></div><h3 class="header-h3">How it works - key steps</h3></div><div data-workflows-slider="2" class="splide workflows-slider"><div class="splide__track workflows-track w-dyn-list"><div role="list" class="splide__list workflows-list w-dyn-items"><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Setup component library</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Import or select components: motors, engines, transmissions, inverters, batteries</li><li>Add or generate custom component definitions</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Setup component library" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Requirements analysis</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Define system-level requirements: torque, speed, vehicle specs</li><li>Input duty cycles, speed profiles, power & packaging constraints</li><li>Include attributes such as emissions, sustainability goals</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Requirements analysis" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Powertrain configuration</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Select powertrain architecture: BEV, HEV (parallel/series), ICE hybrid</li><li>
2131Choose drivetrain layouts: RWD, AWD, FWD, dual/single motor</li><li>Configure component combinations</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Powertrain configuration" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Design space exploration</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Generate many candidate configurations</li><li>Vary parameters, combine architectures & components</li><li>Evaluate across metrics and KPIs</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Design space exploration" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Shortlisting & decision</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Rank and compare configurations</li><li>Identify the optimal design(s) that best meet performance, cost, sustainability</li><li>Select the winner(s) for further development</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Shortlisting & decision" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div></div></div><div class="slider-nav"><div class="splide__pagination slider-pagination"></div><button data-slider-btn-prev="" type="button" aria-label="prev" class="btn-min on-light"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2132 <path d="M17 11H5.12061M11 17L5 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2133</svg></div></button><button data-slider-btn-next="" type="button" aria-label="next" class="btn-min on-light"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2134 <path d="M5 11H16.8794M11 17L17 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2135</svg></div></button></div></div></div><div class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">03</div></div><div class="caption-l">Key capabilities</div></div><h3 class="header-h3">Behind the solution - main functions</h3></div><div class="epop-item__cards"><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235721a49bacc9bb384361_layout-top.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Component generation library</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923571d05f83c411c6e2de2_bar-chart-circle.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">System-level loss & efficiency modelling</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235741c89775bca25706fb_sliders.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Trade-off exploration</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235744663e77e15e169c90_compass.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Custom powertrain configuration</p></div></div></div><div class="epop-item__box is-cases"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">04</div></div><div class="caption-l">Case studies</div></div><h3 class="header-h3">Practical examples and proven results</h3></div><div id="w-node-_6e436e62-0f6e-ddaa-5a4c-d7abbb8dafb2-3ad15797" class="cases-col-wrap w-dyn-list"><div role="list" class="cases-col-list w-dyn-items"><div role="listitem" class="cases-col-item w-dyn-item"><div class="case-item"><div class="case-item__img-wrap"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/691fe9a45470bd6d1697ade4_Serial%20Hybrid%20for%20a%20Tracked%20Vehicle%20M.svg" loading="lazy" alt="" class="case-item__img"/>
2135</div><div class="case-item__info"><div><div class="tags"><div class="tag is-product-tag w-condition-invisible"><div class="caption-xs-upp w-dyn-bind-empty"></div></div><div style="color:#b973ff;background-color:rgba(185, 115, 255, 0.1)" class="tag"><div class="case-item__icon w-richtext"><div class="w-embed"><svg width="100%" height="100%" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2136<path d="M13.2715 4C13.6027 4 13.9125 4.16449 14.0986 4.43848L16.8271 8.45703C16.9959 8.70552 17.0438 9.01687 16.958 9.30469L16.1289 12.0859C16.0025 12.5095 15.6128 12.7996 15.1709 12.7998H15.0527C15.0527 14.0127 14.154 14.9999 13.0498 15C11.9456 15 11.0469 14.0127 11.0469 12.7998H10.0459C10.0459 14.0127 9.14721 15 8.04297 15C6.93904 14.9998 6.04102 14.0126 6.04102 12.7998H5.04004C5.04004 14.0127 4.14122 15 3.03711 15C1.93289 15 1.03418 14.0127 1.03418 12.7998H1C0.447715 12.7998 0 12.3521 0 11.7998V5C0.000176614 4.44787 0.447824 4 1 4H13.2715ZM3.03711 11.7002C2.48511 11.7002 2.03618 12.1933 2.03613 12.7998C2.03613 13.4063 2.48508 13.8994 3.03711 13.8994C3.58917 13.8994 4.03809 13.4063 4.03809 12.7998C4.03804 12.1932 3.58914 11.7002 3.03711 11.7002ZM8.04297 11.7002C7.49112 11.7004 7.04204 12.1934 7.04199 12.7998C7.04199 13.4061 7.49109 13.8992 8.04297 13.8994C8.59516 13.8994 9.04492 13.4063 9.04492 12.7998C9.04487 12.1932 8.59513 11.7002 8.04297 11.7002ZM13.0498 11.7002C12.4978 11.7002 12.0489 12.1932 12.0488 12.7998C12.0488 13.4063 12.4977 13.8994 13.0498 13.8994C13.6018 13.8994 14.0508 13.4062 14.0508 12.7998C14.0507 12.1933 13.6018 11.7003 13.0498 11.7002ZM1.30078 9.5C1.13539 9.50023 1.00113 9.63439 1.00098 9.7998V11.3994C1.00098 11.565 1.13817 11.7 1.30371 11.7002C1.65048 11.0433 2.29753 10.5996 3.03711 10.5996C3.77671 10.5996 4.42373 11.0433 4.77051 11.7002H6.31055C6.65726 11.0434 7.30367 10.5998 8.04297 10.5996C8.78257 10.5996 9.42959 11.0433 9.77637 11.7002H11.3164C11.6632 11.0433 12.3102 10.5996 13.0498 10.5996C13.7894 10.5997 14.4364 11.0433 14.7832 11.7002H14.9668C15.0993 11.7001 15.216 11.6124 15.2539 11.4854L15.7314 9.88574C15.7887 9.69353 15.6448 9.50027 15.4443 9.5H1.30078ZM1.30078 5.10059C1.1353 5.10082 1.00098 5.23485 1.00098 5.40039V8.09961C1.00098 8.26515 1.13529 8.40016 1.30078 8.40039H14.9736C15.2141 8.40008 15.3566 8.13069 15.2217 7.93164L13.3887 5.23145C13.3329 5.14935 13.2399 5.10071 13.1406 5.10059H1.30078ZM3.99023 6.2002C4.29416 6.2002 4.54102 6.44705 4.54102 6.75098C4.54076 7.05468 4.294 7.30078 3.99023 7.30078H3.08691C2.78315 7.30078 2.53639 7.05468 2.53613 6.75098C2.53613 6.44705 2.78299 6.2002 3.08691 6.2002H3.99023ZM7.99609 6.2002C8.29997 6.20025 8.5459 6.44709 8.5459 6.75098C8.54564 7.05464 8.29981 7.30072 7.99609 7.30078H7.0918C6.78811 7.30069 6.54225 7.05462 6.54199 6.75098C6.54199 6.44711 6.78795 6.20028 7.0918 6.2002H7.99609ZM12.001 6.2002C12.3049 6.20024 12.5508 6.44708 12.5508 6.75098C12.5505 7.05465 12.3047 7.30074 12.001 7.30078H11.0967C10.7931 7.30061 10.5471 7.05457 10.5469 6.75098C10.5469 6.44716 10.7929 6.20037 11.0967 6.2002H12.001Z" fill="currentcolor"/> 2137</svg></div></div><div fs-list-field="tag" class="caption-xs-upp in-industry-tag">Defense</div></div></div><div class="spacer-16 mob-12"></div><h3 data-text-style-2lines="" fs-list-field="name" class="header-h5 mob-h4">Serial Hybrid for a Tracked Vehicle</h3></div><div class="spacer-32 mob-24"></div><a data-link-gr="" href="/case-studies/serial-hybrid-for-a-tracked-vehicle" class="btn-text w-inline-block"><div data-btn-text-gr="" class="control-l">Read case study</div><div class="btn-text__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2138 <path d="M5 12H18.8593M12 19L19 12L12 5" stroke="url(#paint0_linear_2018_16755)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2139 <defs> 2140 <linearGradient id="paint0_linear_2018_16755" x1="19" y1="13.645" x2="5" y2="13.645" gradientUnits="userSpaceOnUse"> 2141 <stop stop-color="#02F2AA" /> 2142 <stop offset="1" stop-color="#26D2E2" /> 2143 </linearGradient> 2144 </defs> 2145</svg></div></a></div></div></div><div role="listitem" class="cases-col-item w-dyn-item"><div class="case-item"><div class="case-item__img-wrap"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/691fe9a45470bd6d1697addb_Hybrid%20Scenarios%20for%208%C3%978%20Vehicle%20M.svg" loading="lazy" alt="" class="case-item__img"/>
2145</div><div class="case-item__info"><div><div class="tags"><div class="tag is-product-tag w-condition-invisible"><div class="caption-xs-upp w-dyn-bind-empty"></div></div><div style="color:#b973ff;background-color:rgba(185, 115, 255, 0.1)" class="tag"><div class="case-item__icon w-richtext"><div class="w-embed"><svg width="100%" height="100%" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2146<path d="M13.2715 4C13.6027 4 13.9125 4.16449 14.0986 4.43848L16.8271 8.45703C16.9959 8.70552 17.0438 9.01687 16.958 9.30469L16.1289 12.0859C16.0025 12.5095 15.6128 12.7996 15.1709 12.7998H15.0527C15.0527 14.0127 14.154 14.9999 13.0498 15C11.9456 15 11.0469 14.0127 11.0469 12.7998H10.0459C10.0459 14.0127 9.14721 15 8.04297 15C6.93904 14.9998 6.04102 14.0126 6.04102 12.7998H5.04004C5.04004 14.0127 4.14122 15 3.03711 15C1.93289 15 1.03418 14.0127 1.03418 12.7998H1C0.447715 12.7998 0 12.3521 0 11.7998V5C0.000176614 4.44787 0.447824 4 1 4H13.2715ZM3.03711 11.7002C2.48511 11.7002 2.03618 12.1933 2.03613 12.7998C2.03613 13.4063 2.48508 13.8994 3.03711 13.8994C3.58917 13.8994 4.03809 13.4063 4.03809 12.7998C4.03804 12.1932 3.58914 11.7002 3.03711 11.7002ZM8.04297 11.7002C7.49112 11.7004 7.04204 12.1934 7.04199 12.7998C7.04199 13.4061 7.49109 13.8992 8.04297 13.8994C8.59516 13.8994 9.04492 13.4063 9.04492 12.7998C9.04487 12.1932 8.59513 11.7002 8.04297 11.7002ZM13.0498 11.7002C12.4978 11.7002 12.0489 12.1932 12.0488 12.7998C12.0488 13.4063 12.4977 13.8994 13.0498 13.8994C13.6018 13.8994 14.0508 13.4062 14.0508 12.7998C14.0507 12.1933 13.6018 11.7003 13.0498 11.7002ZM1.30078 9.5C1.13539 9.50023 1.00113 9.63439 1.00098 9.7998V11.3994C1.00098 11.565 1.13817 11.7 1.30371 11.7002C1.65048 11.0433 2.29753 10.5996 3.03711 10.5996C3.77671 10.5996 4.42373 11.0433 4.77051 11.7002H6.31055C6.65726 11.0434 7.30367 10.5998 8.04297 10.5996C8.78257 10.5996 9.42959 11.0433 9.77637 11.7002H11.3164C11.6632 11.0433 12.3102 10.5996 13.0498 10.5996C13.7894 10.5997 14.4364 11.0433 14.7832 11.7002H14.9668C15.0993 11.7001 15.216 11.6124 15.2539 11.4854L15.7314 9.88574C15.7887 9.69353 15.6448 9.50027 15.4443 9.5H1.30078ZM1.30078 5.10059C1.1353 5.10082 1.00098 5.23485 1.00098 5.40039V8.09961C1.00098 8.26515 1.13529 8.40016 1.30078 8.40039H14.9736C15.2141 8.40008 15.3566 8.13069 15.2217 7.93164L13.3887 5.23145C13.3329 5.14935 13.2399 5.10071 13.1406 5.10059H1.30078ZM3.99023 6.2002C4.29416 6.2002 4.54102 6.44705 4.54102 6.75098C4.54076 7.05468 4.294 7.30078 3.99023 7.30078H3.08691C2.78315 7.30078 2.53639 7.05468 2.53613 6.75098C2.53613 6.44705 2.78299 6.2002 3.08691 6.2002H3.99023ZM7.99609 6.2002C8.29997 6.20025 8.5459 6.44709 8.5459 6.75098C8.54564 7.05464 8.29981 7.30072 7.99609 7.30078H7.0918C6.78811 7.30069 6.54225 7.05462 6.54199 6.75098C6.54199 6.44711 6.78795 6.20028 7.0918 6.2002H7.99609ZM12.001 6.2002C12.3049 6.20024 12.5508 6.44708 12.5508 6.75098C12.5505 7.05465 12.3047 7.30074 12.001 7.30078H11.0967C10.7931 7.30061 10.5471 7.05457 10.5469 6.75098C10.5469 6.44716 10.7929 6.20037 11.0967 6.2002H12.001Z" fill="currentcolor"/> 2147</svg></div></div><div fs-list-field="tag" class="caption-xs-upp in-industry-tag">Defense</div></div></div><div class="spacer-16 mob-12"></div><h3 data-text-style-2lines="" fs-list-field="name" class="header-h5 mob-h4">ICE / BEV / Hybrid Scenarios for 8Ã8 Vehicle</h3></div><div class="spacer-32 mob-24"></div><a data-link-gr="" href="/case-studies/ice-bev-hybrid-scenarios-for-8x8-vehicle" class="btn-text w-inline-block"><div data-btn-text-gr="" class="control-l">Read case study</div><div class="btn-text__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2148 <path d="M5 12H18.8593M12 19L19 12L12 5" stroke="url(#paint0_linear_2018_16755)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2149 <defs> 2150 <linearGradient id="paint0_linear_2018_16755" x1="19" y1="13.645" x2="5" y2="13.645" gradientUnits="userSpaceOnUse"> 2151 <stop stop-color="#02F2AA" /> 2152 <stop offset="1" stop-color="#26D2E2" /> 2153 </linearGradient> 2154 </defs> 2155</svg></div></a></div></div></div></div></div><div id="w-node-_205d52e0-5d3b-d624-6e64-5f5cdd88082c-3ad15797" class="view-all-cases-btn"><a data-onLight="True" data-wf--button-secondary--variant="base" href="/case-studies" class="btn-secondary w-inline-block"><div class="control-l">View all case studies</div></a></div></div></div></div><div data-tab-panel="benchmarking" role="listitem" class="epop-col-item w-dyn-item"><div class="epop-item"><div class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">01</div></div><div class="caption-l">Overview</div></div></div><div class="epop-content"><div class="epop-top"><h3 class="header-h3 is-epop-title">Deliver decision-ready insights for every stakeholder</h3><div class="epop-top__descr"><p class="body-l text-secondary-onlight">Turn complex simulations into clear visuals with ePOP. Results align with KPIs and connect design team
2155s with decision-makers.</p></div></div><div class="epop-body"><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f5478d2-3ad15797" class="epop-video-wrap"><div class="epop-video-border"><video src="https://www.dropbox.com/scl/fi/5aizivzg45fzsx0rvl4p5/EDU-Benchmarking-A2MAC1-min.mp4?rlkey=mjbm422jdoxqxo2eg6qvy1a16&raw=1" playsinline="true" loop="" controls="" data-start-time="90" loading="lazy" preload="metadata" class="epop-video"></video></div></div><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f5478d5-3ad15797" class="epop-right"><div class="epop-rich-text w-richtext"><ul role="list"><li>Visual clarity across outputs</li><li>KPI-aligned results</li><li>Shared understanding for all teams</li></ul></div></div><div id="w-node-_5c612c9d-e633-0d5d-f023-8c3c2f547909-3ad15797" class="epop-actions"><a data-wf--button--variant="mob-size-m" href="/book-a-demo" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Request a Demo</div></a></div></div></div></div><div data-slider-wrap="" class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">02</div></div><div class="caption-l">Workflow</div></div><h3 class="header-h3">How it works - key steps</h3></div><div data-workflows-slider="3" class="splide workflows-slider"><div class="splide__track workflows-track w-dyn-list"><div role="list" class="splide__list workflows-list w-dyn-items"><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Access powertrain & component database</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Leverage the xEV component library: motors, inverters, transmissions, batteries & EDUs drawn from ~150+ vehicles</li><li>Upload your own component data if needed</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Access powertrain & component database" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Simulate & benchmark virtually</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Use the ZeBeyond simulation engine to model performance & efficiency of powertrain(s) in a virtual environment</li><li>Compare your design against competitor data side-by-side</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Simulate & benchmark virtually" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Explore & analyze insights</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Visualize metrics: cost, COâ, efficiency, power density, torque density, etc.</li><li>Drill into component and system KPIs to see where improvements are possible</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Explore & analyze insights" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div><div role="listitem" class="splide__slide workflows-slide w-dyn-item"><div class="workflows-item"><div class="workflows-item__left"><h4 class="header-h4">Make data-driven decisions & export specs</h4><div class="epop-rich-text w-richtext"><ul role="list"><li>Identify gaps vs competition and optimize your architecture</li><li>Generate spec outputs or configurations ready for implementation</li></ul></div></div><div class="workflows-item__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="Make data-driven decisions & export specs" class="workflows-item__img w-dyn-bind-empty"/></div></div></div></div></div></div><div class="slider-nav"><div class="splide__pagination slider-pagination"></div>
2155<button data-slider-btn-prev="" type="button" aria-label="prev" class="btn-min on-light"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2156 <path d="M17 11H5.12061M11 17L5 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2157</svg></div></button><button data-slider-btn-next="" type="button" aria-label="next" class="btn-min on-light"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2158 <path d="M5 11H16.8794M11 17L17 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2159</svg></div></button></div></div></div><div class="epop-item__box"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">03</div></div><div class="caption-l">Key capabilities</div></div><h3 class="header-h3">Behind the solution - main functions</h3></div><div class="epop-item__cards"><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235721a49bacc9bb384361_layout-top.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Comprehensive xEV component library</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692357642c1d044b68283472_line%20chart.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Virtual competitive benchmarking</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69235768f7c23d3a16444421_radar.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Contextualized insights & metrics</p></div><div data-fadeIn="" class="s-card-v2"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923576d79ff39feeb1eee0e_shield.svg" loading="lazy" width="60" height="60" alt="" class="icon-60"/><p class="caption-l">Data-centric collaboration & access control</p></div></div></div><div class="epop-item__box is-cases"><div class="epop-item__box-heading"><div class="epop-item__box-title"><div class="epop-item__box-number"><div class="caption-m">04</div></div><div class="caption-l">Case studies</div></div><h3 class="header-h3">Practical examples and proven results</h3></div><div id="w-node-_6e436e62-0f6e-ddaa-5a4c-d7abbb8dafb2-3ad15797" class="cases-col-wrap w-dyn-list"><div role="list" class="cases-col-list w-dyn-items"><div role="listitem" class="cases-col-item w-dyn-item"><div class="case-item"><div class="case-item__img-wrap"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/691fe9a45470bd6d1697ade5_General%20Service%204x4%20vehicles%20M.svg" loading="lazy" alt="" class="case-item__img"/></div><div class="case-item__info"><div><div class="tags"><div class="tag is-product-tag w-condition-invisible"><div class="caption-xs-upp w-dyn-bind-empty"></div></div><div style="color:#b973ff;background-color:rgba(185, 115, 255, 0.1)" class="tag"><div class="case-item__icon w-richtext"><div class="w-embed"><svg width="100%" height="100%" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2160<path d="M13.2715 4C13.6027 4 13.9125 4.16449 14.0986 4.43848L16.8271 8.45703C16.9959 8.70552 17.0438 9.01687 16.958 9.30469L16.1289 12.0859C16.0025 12.5095 15.6128 12.7996 15.1709 12.7998H15.0527C15.0527 14.0127 14.154 14.9999 13.0498 15C11.9456 15 11.0469 14.0127 11.0469 12.7998H10.0459C10.0459 14.0127 9.14721 15 8.04297 15C6.93904 14.9998 6.04102 14.0126 6.04102 12.7998H5.04004C5.04004 14.0127 4.14122 15 3.03711 15C1.93289 15 1.03418 14.0127 1.03418 12.7998H1C0.447715 12.7998 0 12.3521 0 11.7998V5C0.000176614 4.44787 0.447824 4 1 4H13.2715ZM3.03711 11.7002C2.48511 11.7002 2.03618 12.1933 2.03613 12.7998C2.03613 13.4063 2.48508 13.8994 3.03711 13.8994C3.58917 13.8994 4.03809 13.4063 4.03809 12.7998C4.03804 12.1932 3.58914 11.7002 3.03711 11.7002ZM8.04297 11.7002C7.49112 11.7004 7.04204 12.1934 7.04199 12.7998C7.04199 13.4061 7.49109 13.8992 8.04297 13.8994C8.59516 13.8994 9.04492 13.4063 9.04492 12.7998C9.04487 12.1932 8.59513 11.7002 8.04297 11.7002ZM13.0498 11.7002C12.4978 11.7002 12.0489 12.1932 12.0488 12.7998C12.0488 13.4063 12.4977 13.8994 13.0498 13.8994C13.6018 13.8994 14.0508 13.4062 14.0508 12.7998C14.0507 12.1933 13.6018 11.7003 13.0498 11.7002ZM1.30078 9.5C1.13539 9.50023 1.00113 9.63439 1.00098 9.7998V11.3994C1.00098 11.565 1.13817 11.7 1.30371 11.7002C1.65048 11.0433 2.29753 10.5996 3.03711 10.5996C3.77671 10.5996 4.42373 11.0433 4.77051 11.7002H6.31055C6.65726 11.0434 7.30367 10.5998 8.04297 10.5996C8.78257 10.5996 9.42959 11.0433 9.77637 11.7002H11.3164C11.6632 11.0433 12.3102 10.5996 13.0498 10.5996C13.7894 10.5997 14.4364 11.0433 14.7832 11.7002H14.9668C15.0993 11.7001 15.216 11.6124 15.2539 11.4854L15.7314 9.88574C15.7887 9.69353 15.6448 9.50027 15.4443 9.5H1.300
216078ZM1.30078 5.10059C1.1353 5.10082 1.00098 5.23485 1.00098 5.40039V8.09961C1.00098 8.26515 1.13529 8.40016 1.30078 8.40039H14.9736C15.2141 8.40008 15.3566 8.13069 15.2217 7.93164L13.3887 5.23145C13.3329 5.14935 13.2399 5.10071 13.1406 5.10059H1.30078ZM3.99023 6.2002C4.29416 6.2002 4.54102 6.44705 4.54102 6.75098C4.54076 7.05468 4.294 7.30078 3.99023 7.30078H3.08691C2.78315 7.30078 2.53639 7.05468 2.53613 6.75098C2.53613 6.44705 2.78299 6.2002 3.08691 6.2002H3.99023ZM7.99609 6.2002C8.29997 6.20025 8.5459 6.44709 8.5459 6.75098C8.54564 7.05464 8.29981 7.30072 7.99609 7.30078H7.0918C6.78811 7.30069 6.54225 7.05462 6.54199 6.75098C6.54199 6.44711 6.78795 6.20028 7.0918 6.2002H7.99609ZM12.001 6.2002C12.3049 6.20024 12.5508 6.44708 12.5508 6.75098C12.5505 7.05465 12.3047 7.30074 12.001 7.30078H11.0967C10.7931 7.30061 10.5471 7.05457 10.5469 6.75098C10.5469 6.44716 10.7929 6.20037 11.0967 6.2002H12.001Z" fill="currentcolor"/> 2161</svg></div></div><div fs-list-field="tag" class="caption-xs-upp in-industry-tag">Defense</div></div></div><div class="spacer-16 mob-12"></div><h3 data-text-style-2lines="" fs-list-field="name" class="header-h5 mob-h4">Assessing Hybridisation Pathways for Legacy Fleet of General Service 4x4 vehicles</h3></div><div class="spacer-32 mob-24"></div><a data-link-gr="" href="/case-studies/assessing-hybridisation-pathways-for-legacy-fleet-of-general-service-4x4-vehicles" class="btn-text w-inline-block"><div data-btn-text-gr="" class="control-l">Read case study</div><div class="btn-text__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2162 <path d="M5 12H18.8593M12 19L19 12L12 5" stroke="url(#paint0_linear_2018_16755)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2163 <defs> 2164 <linearGradient id="paint0_linear_2018_16755" x1="19" y1="13.645" x2="5" y2="13.645" gradientUnits="userSpaceOnUse"> 2165 <stop stop-color="#02F2AA" /> 2166 <stop offset="1" stop-color="#26D2E2" /> 2167 </linearGradient> 2168 </defs> 2169</svg></div></a></div></div></div></div></div><div id="w-node-_205d52e0-5d3b-d624-6e64-5f5cdd88082c-3ad15797" class="view-all-cases-btn"><a data-onLight="True" data-wf--button-secondary--variant="base" href="/case-studies" class="btn-secondary w-inline-block"><div class="control-l">View all case studies</div></a></div></div></div></div></div></div></div></div></div></section><section data-tabs-container="" class="plans"><div class="page-padding"><div class="container"><div class="plans-upper"><div class="heading plans__heading"><div class="caption"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2170 <path d="M8.11143 19C7.47639 19 7.15887 19 6.87568 18.9102C6.62515 18.8308 6.39518 18.7011 6.20115 18.5295C5.98183 18.3357 5.82763 18.0694 5.51923 17.5369L2.53326 12.3814C2.24124 11.8772 2.09524 11.6251 2.038 11.3581C1.98733 11.1219 1.98733 10.8781 2.038 10.6419C2.09524 10.3749 2.24124 10.1228 2.53326 9.61862L5.51923 4.46306C5.82763 3.93057 5.98183 3.66433 6.20115 3.47046C6.39518 3.29895 6.62515 3.16915 6.87568 3.08975C7.15887 3 7.47639 3 8.11143 3L13.8886 3C14.5236 3 14.8411 3 15.1243 3.08975C15.3748 3.16915 15.6048 3.29895 15.7988 3.47046C16.0182 3.66433 16.1724 3.93057 16.4808 4.46306L19.4667 9.61861C19.7588 10.1228 19.9048 10.3749 19.962 10.6419C20.0127 10.8781 20.0127 11.1219 19.962 11.3581C19.9048 11.6251 19.7588 11.8772 19.4667 12.3814L16.4808 17.5369C16.1724 18.0694 16.0182 18.3357 15.7988 18.5295C15.6048 18.7011 15.3748 18.8308 15.1243 18.9102C14.8411 19 14.5236 19 13.8886 19H8.11143Z" stroke="currentcolor" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2171</svg></div><p class="caption-l">Plans</p></div><div class="spacer-16 mob-10"></div><h2 class="header-h2">Choose the <span data-title-anim-gr="">right plan</span>â¨for your setup</h2></div><div class="plans-tabs-menu"><button type="button" data-tab-btn="year" class="tab-link plans-tabs-link is-year"><div class="caption-l">Yearly</div><div class="plans-tabs-link__caption"><div class="caption-xs-upp">Save up to 25%</div></div></button><button type="button" data-tab-btn="month" class="tab-link plans-tabs-link"><div class="caption-l">Monthly</div></button></div></div><div class="spacer-60 mob-40"></div><div class="plans-tabs-panels">
2171<div data-slider-wrap="" data-tab-panel="year" class="plans-tabs-panel"><div id="plans-slider-1" class="splide plans-slider"><div class="splide__track plans-track w-dyn-list"><div role="list" class="splide__list plans-list w-dyn-items"><div role="listitem" class="splide__slide plans-slide w-dyn-item"><div class="plans-card__popular w-condition-invisible"><div class="caption-xs-upp">Most Popular</div></div><div class="plans-card"><div class="plans-card__upper"><div class="plans-card__upper-heading"><h3 class="header-h4">Concept</h3><p class="body-m text-secondary-onlight">Tool for early-stage exploration of electric, hybrid, and ICE architectures.</p></div><div class="plans-card__upper-price"><div class="header-h2">â¬600</div><p class="body-s text-secondary-onlight">user / month (billed yearly)</p></div></div><div class="plans-card__lower"><div class="plans-card__lower-btn"><a data-wf--button--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Try demo</div></a></div><div class="plans-card__lower-btn w-condition-invisible"><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="/book-a-demo" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Try demo</div></a></div><div class="plans-card__lower-list"><div class="header-h5">What's included</div><div class="case-rich-text in-plans-card w-richtext"><ul role="list"><li>Rapid comparison of electrified and ICE architectures</li><li>Exploration of power, energy, and delivery strategies</li><li>Fast insights to guide concept selection and business-case decisions</li></ul></div></div></div></div></div><div role="listitem" class="splide__slide plans-slide w-dyn-item"><div class="plans-card__popular"><div class="caption-xs-upp">Most Popular</div></div><div class="plans-card"><div class="plans-card__upper"><div class="plans-card__upper-heading"><h3 class="header-h4">Pro</h3><p class="body-m text-secondary-onlight">Advanced tool for detailed speed-torque analysis and architecture optimisation.</p></div><div class="plans-card__upper-price"><div class="header-h2">On request</div><p class="body-s text-secondary-onlight">Pricing available upon inquiry</p></div></div><div class="plans-card__lower"><div class="plans-card__lower-btn w-condition-invisible"><a data-wf--button--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-btn"><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="/book-a-demo" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-list"><div class="header-h5">Everything in Concept, plus</div><div class="case-rich-text in-plans-card w-richtext"><ul role="list"><li>Detailed speedâtorque modelling across operating conditions</li><li>Configurable component combinations with efficiency optimisation</li><li>System-to-component loss iteration to achieve >90% system efficiency</li></ul></div></div></div></div></div><div role="listitem" class="splide__slide plans-slide w-dyn-item"><div class="plans-card__popular w-condition-invisible"><div class="caption-xs-upp">Most Popular</div></div><div class="plans-card"><div class="plans-card__upper"><div class="plans-card__upper-heading"><h3 class="header-h4">Data library</h3><p class="body-m text-secondary-onlight">Comprehensive database of vehicles and components for engineering validation.</p></div><div class="plans-card__upper-price"><div class="header-h2">On request</div><p class="body-s text-secondary-onlight">Pricing available upon inquiry</p></div></div><div class="plans-card__lower"><div class="plans-card__lower-btn w-condition-invisible"><a data-wf--button--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn w-variant-b
217111c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-btn"><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="/book-a-demo" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-list"><div class="header-h5">Everything in Pro, plus</div><div class="case-rich-text in-plans-card w-richtext"><ul role="list"><li>Real-world vehicle performance and energy-density datasets</li><li>Verified component loss maps and CAD models</li><li>Accurate reference points to anchor simulations and supplier selections</li></ul></div></div></div></div></div></div></div><div class="plans-slider__btns"><div class="splide__pagination slider-pagination"></div><button data-slider-btn-prev="" type="button" aria-label="prev" class="btn-min"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2172 <path d="M17 11H5.12061M11 17L5 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2173</svg></div></button><button data-slider-btn-next="" type="button" aria-label="next" class="btn-min"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2174 <path d="M5 11H16.8794M11 17L17 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2175</svg></div></button></div></div></div><div data-slider-wrap="" data-tab-panel="month" class="plans-tabs-panel"><div id="plans-slider-2" class="splide plans-slider"><div class="splide__track plans-track w-dyn-list"><div role="list" class="splide__list plans-list w-dyn-items"><div role="listitem" class="splide__slide plans-slide w-dyn-item"><div class="plans-card__popular w-condition-invisible"><div class="caption-xs-upp">Most Popular</div></div><div class="plans-card"><div class="plans-card__upper"><div class="plans-card__upper-heading"><h3 class="header-h4">Concept</h3><p class="body-m text-secondary-onlight">Tool for early-stage exploration of electric, hybrid, and ICE architectures.</p></div><div class="plans-card__upper-price"><div class="header-h2">â¬800</div><p class="body-s text-secondary-onlight">user / month (billed yearly)</p></div></div><div class="plans-card__lower"><div class="plans-card__lower-btn"><a data-wf--button--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Try demo</div></a></div><div class="plans-card__lower-btn w-condition-invisible"><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="/book-a-demo" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Try demo</div></a></div><div class="plans-card__lower-list"><div class="header-h5">What's included</div><div class="case-rich-text in-plans-card w-richtext"><ul role="list"><li>Rapid comparison of electrified and ICE architectures</li><li>Exploration of power, energy, and delivery strategies</li><li>Fast insights to guide concept selection and business-case decisions</li></ul></div></div></div></div></div><div role="listitem" class="splide__slide plans-slide w-dyn-item"><div class="plans-card__popular"><div class="caption-xs-upp">Most Popular</div></div><div class="plans-card"><div class="plans-card__upper"><div class="plans-card__upper-heading"><h3 class="header-h4">Pro</h3><p class="body-m text-secondary-onlight">Advanced tool for detailed speed-torque analysis and architecture optimisation.</p></div><div class="plans-card__upper-price"><div class="header-h2">On request</div><p class="body-s text-secondary-onlight">Pricing available upon inquiry</p></div></div><div class="plans-card__lower"><div class="plans-card__lower-btn w-condition-invisible"><a data-wf--button--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn w-variant-b
217511c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-btn"><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="/book-a-demo" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-list"><div class="header-h5">Everything in Concept, plus</div><div class="case-rich-text in-plans-card w-richtext"><ul role="list"><li>Detailed speedâtorque modelling across operating conditions</li><li>Configurable component combinations with efficiency optimisation</li><li>System-to-component loss iteration to achieve >90% system efficiency</li></ul></div></div></div></div></div><div role="listitem" class="splide__slide plans-slide w-dyn-item"><div class="plans-card__popular w-condition-invisible"><div class="caption-xs-upp">Most Popular</div></div><div class="plans-card"><div class="plans-card__upper"><div class="plans-card__upper-heading"><h3 class="header-h4">Data library</h3><p class="body-m text-secondary-onlight">Comprehensive database of vehicles and components for engineering validation.</p></div><div class="plans-card__upper-price"><div class="header-h2">On request</div><p class="body-s text-secondary-onlight">Pricing available upon inquiry</p></div></div><div class="plans-card__lower"><div class="plans-card__lower-btn w-condition-invisible"><a data-wf--button--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-btn"><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="/book-a-demo" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Book a demo</div></a></div><div class="plans-card__lower-list"><div class="header-h5">Everything in Pro, plus</div><div class="case-rich-text in-plans-card w-richtext"><ul role="list"><li>Real-world vehicle performance and energy-density datasets</li><li>Verified component loss maps and CAD models</li><li>Accurate reference points to anchor simulations and supplier selections</li></ul></div></div></div></div></div></div></div><div class="plans-slider__btns"><div class="splide__pagination slider-pagination"></div><button data-slider-btn-prev="" type="button" aria-label="prev" class="btn-min"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2176 <path d="M17 11H5.12061M11 17L5 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2177</svg></div></button><button data-slider-btn-next="" type="button" aria-label="next" class="btn-min"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2178 <path d="M5 11H16.8794M11 17L17 11L11 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2179</svg></div></button></div></div></div></div></div></div></section><section class="releases"><div class="page-padding"><div class="container"><div class="wrap releases__wrap"><div class="releases-form-block w-form"><form method="get" name="email-form" data-simple-dropdown-wrap="" data-name="Email Form" id="email-form" data-no-auto-open="" class="form" data-wf-page-id="6920ceefd6e9590d3ad15797" data-wf-element-id="11010540-f1df-1a31-5154-ec49d40d1e1f"><div data-fadeIn="" class="heading releases__heading"><div class="caption"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2180 <path d="M5.6 3.8V2M16.4 3.8V2M9.2 3.8V2M12.8 3.8V2M5.6 20V18.2M16.4 20V18.2M9.2 20V18.2M12.8 20V18.2M3.8 16.4H2M3.8 5.6H2M3.8 12.8H2M3.8 9.2H2M20 16.4H18.2M20 5.6L18.2 5.6M20 12.8H18.2M20 9.2H18.2M8.12 18.2H13.88C15.3921 18.2 16.1482 18.2 16.7258 17.9057C17.2338 17.6469 17.6469 17.2338 17.9057 16.7258C18.2 16.1482 18.2 15.3921 18.2 13.88V8.12C18.2 6.60786 18.2 5.85179 17.9057 5.27423C17.6469 4.76619 17.2338 4.35314 16.7258 4.09428C16.1482 3.8 15.3921 3.8 13.88 3.8H8.12C6.60786 3.8 5.85179 3.8 5.27423 4.09428C4.76619 4.35314 4.35314 4.76619 4.09428 5.27423C3.8 5.85179 3.8 6.60
2180786 3.8 8.12V13.88C3.8 15.3921 3.8 16.1482 4.09428 16.7258C4.35314 17.2338 4.76619 17.6469 5.27423 17.9057C5.85179 18.2 6.60786 18.2 8.12 18.2Z" stroke="currentcolor" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2181</svg></div><p class="caption-l">System Overview</p></div><div class="spacer-16 mob-10"></div><h2 class="header-h2">ePOP <span data-title-anim-gr="">releases</span></h2></div><div data-simple-dropdown="" id="w-node-d5228544-4d86-d60a-38fe-3da4aa017d91-3ad15797" class="r-year-dropdown"><button data-simple-dropdown-toggle="" type="button" class="r-year-dropdown__toggle"><div class="r-year-dropdown__toggle-text"><div class="caption-l">Year:Â </div><div id="selected-year" class="caption-l">Dropdown</div></div><div data-dropdown-arrow="" class="r-year-dropdown__arrow w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2182 <path d="M5.5 8.5L11 13.5L16.5 8.5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2183</svg></div></button><div data-simple-dropdown-list="" class="r-year-dropdown__list"><div class="r-year-col-wrap w-dyn-list"><div role="list" class="r-year-col-list w-dyn-items"><div role="listitem" class="r-year-col-item w-dyn-item"><label class="r-year-radio"><input type="radio" name="year-radio" data-filter-year="2024" class="r-year-radio__input" value="2024"/><div class="r-year-radio__icon w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2184 <path d="M2 8L6 12L14 4" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2185</svg></div><div class="r-year-radio__label">2024</div></label></div><div role="listitem" class="r-year-col-item w-dyn-item"><label class="r-year-radio"><input type="radio" name="year-radio" data-filter-year="2025" class="r-year-radio__input" value="2025"/><div class="r-year-radio__icon w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2186 <path d="M2 8L6 12L14 4" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2187</svg></div><div class="r-year-radio__label">2025</div></label></div></div></div></div></div><div id="w-node-_8f135480-d7c9-67c2-a8fe-510468ddc543-3ad15797" class="quarter-col-wrap w-dyn-list"><div role="list" class="quarter-col-list w-dyn-items"><div data-year="2024" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q1" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q1</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2024</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923b457d6763c7467a82167_Efficient%20energy%20storage%20for%20stationary%20power%20systems.avif" loading="lazy" alt="" class="quarter-img"/></div></div><div data-year="2024" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q2" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q2</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2024</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923b48c22843d99678ac36e_ZeBeyond%20at%20Electric%20%26%20Hybrid%20Vehicle%20Technology%20Expo.avif" loading="lazy" alt="" class="quarter-img"/></div></div><div data-year="2024" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q3" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">
2187Q3</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2024</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923b4a44a459200fdb8f578_Energy%20Systems%20Innovation%20Summit%202025.avif" loading="lazy" alt="" class="quarter-img"/></div></div><div data-year="2024" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q4" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q4</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2024</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6923b457d6763c7467a82167_Efficient%20energy%20storage%20for%20stationary%20power%20systems.avif" loading="lazy" alt="" class="quarter-img"/></div></div><div data-year="2025" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q1" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q1</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2025</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1.avif" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1-p-800.avif 800w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1-p-1080.avif 1080w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1-p-1600.avif 1600w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1-p-2000.avif 2000w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692435ff7d4cec7bdc24dd09_q1.avif 2555w" class="quarter-img"/></div></div><div data-year="2025" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q2" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q2</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2025</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436082632ef318246d449_q2.avif" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436082632ef318246d449_q2-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436082632ef318246d449_q2-p-800.avif 800w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436082632ef318246d449_q2-p-1080.avif 1080w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436082632ef318246d449_q2-p-1600.avif 1600w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436082632ef318246d449_q2.avif 2560w" class="quarter-img"/></div></div><div data-year="2025" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q3" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q3</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2025</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436107319136b2a27f13b_q3.avif" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436107319136b2a27f13b_q3-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436107319136b2a27f13b_q3-p-800.avif 800w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436107319136b2a27f13b_q3-p-1080.avif 1080w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436107319136b2a27f13b_q3-p-1600.avif 1600w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436107319136b2a27f13b_q3.avif 2560w" class="quarter-img"/></div></div><div data-year="2025" role="listitem" class="quarter-col-item w-dyn-item"><label class="quarter-radio w-radio"><input type="radio" name="quarter-radio" id="radio-3" data-name="quarter-radio" data-filter-quarter="Q4" class="w-form-formradioinput quarter-radio__input w-radio-input" value=""/><span class="quarter-radio__label w-form-label" for="radio-3">Q4</span><div class="quarter-radio__year"><div class="caption-l">/</div><div class="caption-l">2025</div></div></label><div class="hidden"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436187d82619eb1b9848a_q4.avif" loading="lazy" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436187d82619eb1b9848a_q4-p-500.avif 500w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436187d82619eb1b9848a_q4-p-800.avif 800w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436187d82619eb1b9848a_q4-p-1080.avif 1080w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436187d82619eb1b9848a_q4-p-1600.avif 1600w, https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692436187d82619eb1b9848a_q4.avif 2560w" class="quarter-img"/></div></div></div></div></form></div><div data-no-auto-open="" class="quarter-content"><div class="quarter-content__left"><div class="quarter-header"><h3 id="quarter-title" class="header-h3">quarter-header</h3></div><div data-no-auto-open="" data-simple-dropdown-wrap="" class="quarter-filters"><div data-simple-dropdown="" class="filter-dropdown"><button data-simple-dropdown-toggle="" type="button" class="filter-dropdown__toggle"><div class="filter-dropdown__text"><div class="caption-s">Date:</div><div class="filter-dropdown__text-selected"><div id="selected-date" class="caption-s">select</div></div></div><div data-dropdown-arrow="" class="filter-dropdown__arrow w-embed">
2187<svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2188 <path d="M3 6L8 11L13 6" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2189</svg></div></button><div data-simple-dropdown-list="" class="filter-dropdown__list"><div id="date-options" class="filter-options"><a data-filter-value="All" data-filter-type="date" href="#" class="filter-option w-inline-block"><div class="caption-s">All</div><div class="filter-option__icon w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2190 <path d="M2 8L6 12L14 4" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2191</svg></div></a></div></div></div><div data-simple-dropdown="" class="filter-dropdown"><button data-simple-dropdown-toggle="" type="button" class="filter-dropdown__toggle"><div class="filter-dropdown__text"><div class="caption-s">Releases:</div><div class="filter-dropdown__text-selected"><div id="selected-version" class="caption-s">select</div></div></div><div data-dropdown-arrow="" class="filter-dropdown__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2192 <path d="M3 6L8 11L13 6" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2193</svg></div></button><div data-simple-dropdown-list="" class="filter-dropdown__list"><div id="version-options" class="filter-options"><a data-filter-value="All" data-filter-type="version" href="#" class="filter-option w-inline-block"><div class="caption-s">All</div><div class="filter-option__icon w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2194 <path d="M2 8L6 12L14 4" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2195</svg></div></a></div></div></div><div data-simple-dropdown="" id="w-node-_45acd71a-7216-01f8-ce5a-80b54870dca0-3ad15797" class="filter-dropdown"><button data-simple-dropdown-toggle="" type="button" class="filter-dropdown__toggle"><div class="filter-dropdown__text"><div class="caption-s">Categories:</div><div class="filter-dropdown__text-selected"><div id="selected-category" class="caption-s">select</div></div></div><div data-dropdown-arrow="" class="filter-dropdown__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2196 <path d="M3 6L8 11L13 6" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2197</svg></div></button><div data-simple-dropdown-list="" class="filter-dropdown__list"><div id="category-options" class="filter-options"><a data-filter-value="All categories" data-filter-type="category" href="#" class="filter-option w-inline-block"><div class="caption-s">All categories</div><div class="filter-option__icon w-embed"><svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2198 <path d="M2 8L6 12L14 4" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" /> 2199</svg></div></a></div></div></div></div><div class="releases-col-wrap w-dyn-list"><div fs-list-element="list" role="list" class="releases-col-list w-dyn-items"><div data-category="Pre-Processing" data-quarter="Q1" data-year="2024" data-date="13/3/2024" data-version="1.8.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">13/3/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.8.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">New powertrain layout Input Split Parallel Hybrid added for Toyota Prius-size traction applications (forward facing model only)</div></div><div class="hidden"><div>Q1</div><div>13/3/2024</div><div>2024</div></div></div></div><div data-category="Run Study" data-quarter="Q1" data-year="2024" data-date="13/3/2024" data-version="1.8.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">13/3/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.8.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Vehicle model now includes ICE BSFC calculations based on fuel enerev density value from ICE data</div></div><div class="hidden"><div>Q1</div><div>13/3/2024</div><div>2024</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q2" data-year="2024" data-date="2/4/2024" data-version="1.9.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">2/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.9.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Enabled functionality to define cycle as outout torque/speed instead of vehicle definition + resistance</div></div><div class="hidden"><div>Q2</div><div>2/4/2024</div><div>2024</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q2" data-year="2024" data-date="2/4/2024" data-version="1.9.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">2/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.9.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added first of many 4WD powertrain architectures: BEV Single Motor 4WD (identical EDUs)</div></div><div class="hidden"><div>Q2</div><div>2/4/2024</div><div>2024</div></div></div></div><div data-category="Run Study" data-quarter="Q2" data-year="2024" data-date="2/4/2024" data-version="1.9.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">2/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.9.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Input Split Parallel Hybrid controller now auto-configured by power source parameters</div></div><div class="hidden"><div>Q2</div><div>2/4/2024</div><div>2024</div></div></div></div><div data-category="Run Study" data-quarter="Q2" data-year="2024" data-date="2/4/2024" data-version="1.9.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">2/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.9.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Input Split Parallel Hybrid configurable parameters added: Final Drive ratio and MG2 to Ring Gear ratio</div></div><div class="hidden"><div>Q2</div><div>2/4/2024</div><div>2024</div></div></div></div><div data-category="Requirements Analysis" data-quarter="Q2" data-year="2024" data-date="2/4/2024" data-version="2.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">2/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924233cfc3a1ae1d34d1bc9_ct-icon-8.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Requirements Analysis</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Requirements Analysis Added</div></div><div class="hidden"><div>Q2</div><div>2/4/2024</div><div>2024</div></div></div></div><div data-category="Power Source Sizing" data-quarter="Q2" data-year="2024" data-date="2/4/2024" data-version="2.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">2/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423282b65b49850c6cda9_ct-icon-6.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Power Source Sizing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Core power source functionality added</div></div><div class="hidden"><div>Q2</div><div>2/4/2024</div><div>2024</div></div></div></div><div data-category="Component generation" data-quarter="Q2" data-year="2024" data-date="4/4/2024" data-version="1.9.1" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">4/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.9.1</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">All Excel import functions now support variable size lookup vectors and maps defined as input. (MGEN: 2-DI maps must have odd number of torque breakpoints, assuming a zero torque value in middle of map)</div></div><div class="hidden"><div>Q2</div><div>4/4/2024</div><div>2024</div></div></div></div><div data-category="Run Study" data-quarter="Q2" data-year="2024" data-date="4/4/2024" data-version="1.9.1" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">4/4/2024</div></div><div class="releases-item__tag"><div class="caption-s">1.9.1</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Series Hybrids: ICE Optimal Operating Line now auto-generates from BSFC map in pre-processing</div></div><div class="hidden"><div>Q2</div><div>4/4/2024</div><div>2024</div></div></div></div><div data-category="All" data-quarter="Q3" data-year="2024" data-date="1/7/2024" data-version="2.1.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">1/7/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.1.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421dc839f7fdc36326ef1_ct-icon-3.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">All</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Limited functionality, significant UI/UX updates, parallel execution, study config updates, run study generates v1.9.5 compatible outputs</div></div><div class="hidden"><div>Q3</div><div>1/7/2024</div><div>2024</div></div></div></div><div data-category="Data Library" data-quarter="Q4" data-year="2024" data-date="14/10/2024" data-version="2.3.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">14/10/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.3.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e2c42e7b86e24c47d5_ct-icon-2.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Data Library</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added new component type: Battery</div></div><div class="hidden"><div>Q4</div><div>14/10/2024</div><div>2024</div></div></div></div><div data-category="Data Library" data-quarter="Q4" data-year="2024" data-date="14/10/2024" data-version="2.3.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">14/10/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.3.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e2c42e7b86e24c47d5_ct-icon-2.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Data Library</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added new component type: Fuel</div></div><div class="hidden"><div>Q4</div><div>14/10/2024</div><div>2024</div></div></div></div><div data-category="Component generation" data-quarter="Q4" data-year="2024" data-date="14/10/2024" data-version="2.3.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">14/10/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.3.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">TGEN embedded NVH metric: Gear Contact Ratio</div></div><div class="hidden"><div>Q4</div><div>14/10/2024</div><div>2024</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q4" data-year="2024" data-date="14/10/2024" data-version="2.3.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">14/10/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.3.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">
2199Study cases UI overhaul</div></div><div class="hidden"><div>Q4</div><div>14/10/2024</div><div>2024</div></div></div></div><div data-category="Run Study" data-quarter="Q4" data-year="2024" data-date="25/10/2024" data-version="2.4.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">25/10/2024</div></div><div class="releases-item__tag"><div class="caption-s">2.4.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Series Hybrid control system embedded</div></div><div class="hidden"><div>Q4</div><div>25/10/2024</div><div>2024</div></div></div></div><div data-category="Sustainability" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924234b7319136b2a2202ce_ct-icon-10.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Sustainability</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added Toxicity KPI</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Sustainability" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924234b7319136b2a2202ce_ct-icon-10.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Sustainability</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added water use KPI</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Sustainability" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924234b7319136b2a2202ce_ct-icon-10.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Sustainability</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added application type to materials</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Animated recalculate button</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Add clone study case to context menu</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Study case - gray out cloned parts</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Pre-Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692423326de005096062d003_ct-icon-7.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Pre-Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Inclusion tree changes</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Run Study" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">PR 726: Motor & Inverter matching now done in runtime</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Run Study" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">PR 705: Inverter Loss calculations updated & correlated against Semikron Application Note</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Run Study" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/69242345d184397c608d7a13_ct-icon-9.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Run Study</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">PR 680: Add Output speed torque override to run study options</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Add signals into post processing for use of water and toxicity</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Viewer time view added under POI</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Viewer Output Torque Profile now has drop down selector for speed definition (kph/rpm)</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Allows user to adjust scatter plot limits manually</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Viewer updated to allow axis limits to be set to manual or auto</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">CO2 Contribution Analysis tab added in viewer</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">New calculated signals for edu1 mass and emissions. Split embedded and in-use co2e, added motor steel co2/kg input</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Post Processing" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231d401e2c1d20af5016_ct-icon-5.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Post Processing</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Spider plot legend at the bottom of viewer</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="All" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https:/
2199/cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421dc839f7fdc36326ef1_ct-icon-3.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">All</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Enable thread based parallel execution</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="All" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421dc839f7fdc36326ef1_ct-icon-3.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">All</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Power flow and study config images replaced</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Documentation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/6924231567adefd74b8dee6d_ct-icon-4.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Documentation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added Documentation Viewer and User Guides</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Data Library" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e2c42e7b86e24c47d5_ct-icon-2.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Data Library</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added ability to view Motor seeds</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Data Library" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e2c42e7b86e24c47d5_ct-icon-2.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Data Library</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">IGEN UI integrated</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">TGEN: Enable pinion tooth changing</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">TGEN: add single stage planetary and, enable pinion teeth editing, save some 1st stage data and display in UI</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">TGEN - Additional signals displaying in TGEN app</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Cloning parts handles multi-select</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Added Motor scaling UI (Active Length)</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Add properties to torque converter initialise and disable add new</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Excel import/export functionality added for Materials</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Drive Cycle excel import added</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Clone data library item added</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div><div data-category="Component generation" data-quarter="Q1" data-year="2025" data-date="28/3/2025" data-version="3.0.0" role="listitem" class="releases-col-item w-dyn-item"><div class="releases-item"><div class="releases-item__tags"><div class="releases-item__tag"><div class="caption-s">28/3/2025</div></div><div class="releases-item__tag"><div class="caption-s">3.0.0</div></div><div class="releases-item__tag"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697abe7/692421e9507203e308ed0e7c_ct-icon-1.svg" loading="lazy" alt="" class="icon-16"/><div class="caption-s">Component generation</div></div></div><div class="releases-item__title"><div class="body-s text-secondary-onlight">Xls imports of maps now support variable size data inputs</div></div><div class="hidden"><div>Q1</div><div>28/3/2025</div><div>2025</div></div></div></div></div></div><div class="releases-empty-state"><div class="releases-empty-state__upper"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/69244bc9a919459a0d35c3dd_file-x-v2.svg" loading="lazy" width="60" height="60" alt="" class="icon-48"/><div class="releases-empty-state__heading"><h3 class="header-h5">No releases found for the selected filters.</h3><p class="body-s text-secondary-onlight">
2199Try adjusting the date, release, or category options.</p></div></div><div class="releases-empty-state__lower"><a id="clear-all-filters" href="#" class="gr-text-link w-inline-block"><div><div class="control-m-s">Clear all filters</div></div><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abf0_arrow-right-gr.svg" loading="lazy" width="24" height="24" alt="arrow right" class="icon-20 mob-22"/></a></div></div></div><div id="w-node-ae2c251b-2e1d-1f01-c9cf-826af5aa410b-3ad15797" class="r-pagination"><button id="w-node-cfce2b84-0fa1-21eb-800f-7c4ea1baa8a2-3ad15797" type="button" class="r-pagination__btn r-pagination__prev"><div class="icon-20 w-embed"><svg width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2200 <path d="M15 10H5.10051M10 15L5 10L10 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2201</svg></div><div class="control-m">Previous</div></button><div id="w-node-_0322d391-cc17-5450-0063-76cd8e2d6e14-3ad15797" class="r-pagination__numbers"><button type="button" class="r-pagination__number is-active"><div class="control-s">1</div></button><button type="button" class="r-pagination__number"><div class="control-s">2</div></button><button type="button" class="r-pagination__number"><div class="control-s">3</div></button><div class="control-s r-pagination__dots">...</div><button type="button" class="r-pagination__number"><div class="control-s">11</div></button></div><button id="w-node-f5852fa7-7170-68d2-a561-c0f71a178c43-3ad15797" type="button" class="r-pagination__btn r-pagination__next"><div class="control-m">Next</div><div class="icon-20 w-embed"><svg width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2202 <path d="M5 10H14.8995M10 15L15 10L10 5" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2203</svg></div></button></div><div id="w-node-_39e563b7-d212-9914-9034-7b804adba693-3ad15797" class="quarter-content__right"><div class="quarter-content__img-border"><img src="https://cdn.prod.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg" loading="lazy" alt="" class="quarter-img"/></div></div></div></div></div></div></section><section class="s-faq"><div class="page-padding v2"><div class="container v2"><div class="wrap s-faq__wrap"><div class="s-faq-left"><div data-fadeIn="" class="heading s-faq__heading"><div class="caption"><div class="icon-22 w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 22 22" fill="none"> 2204 <path d="M14.7333 3H7.26667C5.77319 3 5.02646 3 4.45603 3.28664C3.95426 3.53877 3.54631 3.9411 3.29065 4.43594C3 4.9985 3 5.73493 3 7.2078V11.9416C3 13.4145 3 14.1509 3.29065 14.7135C3.54631 15.2083 3.95426 15.6106 4.45603 15.8627C4.6746 15.9726 4.91906 16.0403 5.2215 16.0821C5.56459 16.1295 5.73613 16.1532 5.83105 16.1849C6.23103 16.3185 6.45824 16.5762 6.53689 16.9854C6.55556 17.0825 6.55556 17.2103 6.55556 17.466C6.55556 17.8843 6.55556 18.0935 6.59571 18.2337C6.75378 18.7857 7.33112 19.1111 7.8936 18.9651C8.03646 18.9281 8.21921 18.8219 8.58466 18.6095L11.8155 16.732C12.1887 16.5151 12.3753 16.4066 12.5741 16.33C12.7506 16.2619 12.9339 16.2126 13.121 16.1829C13.3318 16.1494 13.5484 16.1494 13.9816 16.1494H14.7333C16.2268 16.1494 16.9735 16.1494 17.544 15.8627C18.0457 15.6106 18.4537 15.2083 18.7094 14.7135C19 14.1509 19 13.4145 19 11.9416V7.2078C19 5.73493 19 4.9985 18.7094 4.43594C18.4537 3.9411 18.0457 3.53877 17.544 3.28664C16.9735 3 16.2268 3 14.7333 3Z" stroke="currentcolor" stroke-opacity="0.6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2205</svg></div><p class="caption-l">FAQ</p></div><div class="spacer-16 mob-10"></div><h2 data-title-anim-gr="" class="header-h2">Learn more about ePOP</h2></div><div class="h-why-left__lower"><div class="h-why-left__lower-heading"><h3 class="header-h3">Still have questions?</h3><p class="body-m text-secondary-ondark">Still looking for answers? Explore the full FAQ to learn more about ePOP.</p></div><div class="spacer-32 mob-20"></div><a data-onLight="" data-wf--button-secondary--variant="mob-size-m" href="/faq" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Explore FAQ</div></a></div></div><div data-simple-dropdown-wrap="" class="s-faq-right"><div class="s-faq-col-wrap w-dyn-list"><div role="list" class="s-faq-col-list w-dyn-items"><div role="listitem" class="s-faq-col-item w-dyn-item"><div data-simple-dropdown="" class="s-faq-dropdown"><button type="button" data-simple-dropdown-toggle="" class="s-faq-dropdown__toggle"><h3 class="header-h5">What is ePOP?</h3><div data-dropdown-arrow="" class="s-faq-dropdown__arrow w-embed">
2205<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2206 <path d="M6 9L12 15L18 9" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2207</svg></div></button><div data-simple-dropdown-list="" class="s-faq-dropdown__list"><div class="s-faq-dropdown__list-inner"><div class="faq-rich-text on-light w-richtext"><p>ePOP (Electrified Propulsion Optimisation Process) is a simulation-based approach that helps identify the optimal powertrain architecture for a given vehicle.</p><p>It works by virtually screening a wide range of electrified powertrain combinations early in the development cycle, ensuring they meet vehicle-level requirements without the need for costly prototypes.</p><p>By using ePOP, customers can quickly understand trade-offs between key attributesâsuch as efficiency, mass, and costâfor a specific application or family of vehicles.</p></div></div></div></div></div><div role="listitem" class="s-faq-col-item w-dyn-item"><div data-simple-dropdown="" class="s-faq-dropdown"><button type="button" data-simple-dropdown-toggle="" class="s-faq-dropdown__toggle"><h3 class="header-h5">How does ePOP work?</h3><div data-dropdown-arrow="" class="s-faq-dropdown__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2208 <path d="M6 9L12 15L18 9" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2209</svg></div></button><div data-simple-dropdown-list="" class="s-faq-dropdown__list"><div class="s-faq-dropdown__list-inner"><div class="faq-rich-text on-light w-richtext"><p>ePOP (Electrified Propulsion Optimisation Process) is a simulation-based approach that helps identify the optimal powertrain architecture for a given vehicle.</p><p>It works by virtually screening a wide range of electrified powertrain combinations early in the development cycle, ensuring they meet vehicle-level requirements without the need for costly prototypes.</p><p>By using ePOP, customers can quickly understand trade-offs between key attributesâsuch as efficiency, mass, and costâfor a specific application or family of vehicles.</p></div></div></div></div></div><div role="listitem" class="s-faq-col-item w-dyn-item"><div data-simple-dropdown="" class="s-faq-dropdown"><button type="button" data-simple-dropdown-toggle="" class="s-faq-dropdown__toggle"><h3 class="header-h5">Which vehicle types or topologies does it support?</h3><div data-dropdown-arrow="" class="s-faq-dropdown__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2210 <path d="M6 9L12 15L18 9" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2211</svg></div></button><div data-simple-dropdown-list="" class="s-faq-dropdown__list"><div class="s-faq-dropdown__list-inner"><div class="faq-rich-text on-light w-richtext"><p>ePOP (Electrified Propulsion Optimisation Process) is a simulation-based approach that helps identify the optimal powertrain architecture for a given vehicle.</p><p>It works by virtually screening a wide range of electrified powertrain combinations early in the development cycle, ensuring they meet vehicle-level requirements without the need for costly prototypes.</p><p>By using ePOP, customers can quickly understand trade-offs between key attributesâsuch as efficiency, mass, and costâfor a specific application or family of vehicles.</p></div></div></div></div></div><div role="listitem" class="s-faq-col-item w-dyn-item"><div data-simple-dropdown="" class="s-faq-dropdown"><button type="button" data-simple-dropdown-toggle="" class="s-faq-dropdown__toggle"><h3 class="header-h5">What simulation techniques or physics does it use?</h3><div data-dropdown-arrow="" class="s-faq-dropdown__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2212 <path d="M6 9L12 15L18 9" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2213</svg></div></button><div data-simple-dropdown-list="" class="s-faq-dropdown__list"><div class="s-faq-dropdown__list-inner"><div class="faq-rich-text on-light w-richtext"><p>ePOP (Electrified Propulsion Optimisation Process) is a simulation-based approach that helps identify the optimal powertrain architecture for a given vehicle.</p><p>It works by virtually screening a wide range of electrified powertrain combinations early in the development cycle, ensuring they meet vehicle-level requirements without the need for costly prototypes.</p><p>By using ePOP, customers can quickly understand trade-offs between key attributesâsuch as efficie
2213ncy, mass, and costâfor a specific application or family of vehicles.</p></div></div></div></div></div></div></div></div></div></div></div></section><section class="banner"><div class="page-padding v2"><div class="container v2"><div class="wrap banner__wrap in-solutions"><div class="heading banner__heading"><h2 class="header-h2">Bridge physics and decisions with <span data-title-anim-gr-onLight="">ZeBeyond</span> tools</h2><div class="spacer-24 mob-16"></div><p data-fadeIn="" class="body-l">Accelerate efficient, sustainable mobility with our tools â ePOP Concept, ePOP Pro, and Benchmarking. ZeBeyond enables smarter, faster design decisions.</p><div class="spacer-40 mob-32"></div><div class="banner-btns"><a data-wf--button--variant="mob-size-m" href="/book-a-demo" class="btn w-variant-b11c26b3-d5de-4476-b4e0-e9f9e87bdc79 w-inline-block"><div class="control-l">Book a demo</div></a><a data-onLight="True" data-wf--button-secondary--variant="mob-size-m" href="https://account.epop.tech/Account/Login" class="btn-secondary w-variant-b4989365-c8a2-09b4-5c11-6f978c9c2015 w-inline-block"><div class="control-l">Try demo</div></a></div></div></div></div></div></section></main><footer class="footer"><div class="page-padding in-footer"><div class="container in-footer"><div id="w-node-_3b60abea-ec9b-d492-8c50-a45fff5e68a9-ff5e68a6" class="footer-top"><a data-btn-to-top="" aria-label="scroll top top" title="scroll to top" href="#" class="btn-min w-inline-block"><div class="btn-top__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"> 2214 <path d="M11 17V5.12061M17 11L11 5L5 11" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 2215</svg></div></a></div></div></div><div class="page-padding mob-0"><div class="container"><div class="wrap footer__wrap"><div id="w-node-_3b60abea-ec9b-d492-8c50-a45fff5e68af-ff5e68a6" class="footer-info"><div class="f-line is-top"></div><div class="f-line is-bottom"></div><a aria-label="zebeyond logo" href="/" class="footer-logo w-inline-block"><img src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/691fe9a45470bd6d1697abd6_Logo.svg" loading="lazy" width="136" height="26" alt="" class="img-full-contain"/></a><p class="body-s text-tertiary-ondark">Optimize electrified powertrains faster. ePOP turns complex physics into clear, actionable insights for smarter, sustainable design decisions.</p><div class="social"><a title="linkedin" aria-label="linkedin" href="https://www.linkedin.com/company/zebeyond-ltd/" target="_blank" class="btn-min w-inline-block"><div class="btn-top__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"> 2216 <path d="M6.61306 8.26149H3.26976V18.923H6.61306V8.26149Z" fill="currentcolor" /> 2217 <path d="M15.6568 8.03026C15.5335 8.01486 15.4025 8.00715 15.2716 7.99945C13.3997 7.92242 12.3443 9.03171 11.9745 9.50932C11.8744 9.64028 11.8281 9.71731 11.8281 9.71731V8.29218H8.63122V18.9537H11.9745C11.9745 17.8675 11.9745 16.7891 11.9745 15.7029C11.9745 15.1174 11.9745 14.532 11.9745 13.9465C11.9745 13.2224 11.9206 12.452 12.2827 11.7895C12.5908 11.2349 13.1454 10.9576 13.7694 10.9576C15.6182 10.9576 15.6568 12.6292 15.6568 12.7833C15.6568 12.791 15.6568 12.7987 15.6568 12.7987V18.9999H19.0001V12.0437C19.0001 9.66339 17.7906 8.26137 15.6568 8.03026Z" fill="currentcolor" /> 2218 <path d="M4.94127 6.88253C6.0134 6.88253 6.88254 6.01339 6.88254 4.94126C6.88254 3.86913 6.0134 3 4.94127 3C3.86913 3 3 3.86913 3 4.94126C3 6.01339 3.86913 6.88253 4.94127 6.88253Z" fill="currentcolor" /> 2219</svg></div></a><a title="youtube" aria-label="youtube" href="https://www.youtube.com/@ZeBeyond" target="_blank" class="btn-min w-inline-block"><div class="btn-top__arrow w-embed"><svg width="100%" height="100%" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"> 2220 <path d="M19.8207 7.30505C19.8207 7.30505 19.6449 6.03069 19.1035 5.47112C18.418 4.73466 17.6516 4.73105 17.3 4.68773C14.7828 4.5 11.0035 4.5 11.0035 4.5H10.9965C10.9965 4.5 7.21719 4.5 4.7 4.68773C4.34844 4.73105 3.58203 4.73466 2.89648 5.47112C2.35508 6.03069 2.18281 7.30505 2.18281 7.30505C2.18281 7.30505 2 8.80325 2 10.2978V11.6986C2 13.1931 2.1793 14.6913 2.1793 14.6913C2.1793 14.6913 2.35508 15.9657 2.89297 16.5253C3.57852 17.2617 4.47852 17.2365 4.8793 17.3159C6.3207 17.4567 11 17.5 11 17.5C11 17.5 14.7828 17.4928 17.3 17.3087C17.6516 17.2653 18.418 17.2617 19.1035 16.5253C19.6449 15.9657 19.8207 14.6913 19.8207 14.6913C19.8207 14.6913 20 13.1967 20 11.6986V10.2978C20 8.80325 19.8207 7.30505 19.8207 7.30505ZM9.14023 13.3989
2220V8.20397L14.0023 10.8105L9.14023 13.3989Z" fill="currentcolor" /> 2221</svg></div></a></div></div><div class="footer-links"><div class="footer-nav"><div class="header-h5">Solutions</div><ul role="list" class="footer-nav__list"><li class="footer-nav__list-item"><a data-tab-target="epop-concept" data-link-ondark="" href="/solutions#product-suite" class="footer-nav__link w-inline-block"><div class="control-m-s">ePOP Concept</div></a></li><li class="footer-nav__list-item"><a data-tab-target="epop-pro" data-link-ondark="" href="/solutions#product-suite" class="footer-nav__link w-inline-block"><div class="control-m-s">ePOP Pro</div></a></li><li class="footer-nav__list-item"><a data-tab-target="benchmarking" data-link-ondark="" href="/solutions#product-suite" class="footer-nav__link w-inline-block"><div class="control-m-s">Benchmarking</div></a></li><li class="footer-nav__list-item"><a data-link-ondark="" href="/case-studies" class="footer-nav__link w-inline-block"><div class="control-m-s">Case studies</div></a></li></ul></div><div class="footer-nav"><div class="header-h5">Company</div><ul role="list" class="footer-nav__list"><li class="footer-nav__list-item"><a data-link-ondark="" href="/about-us" class="footer-nav__link w-inline-block"><div class="control-m-s">About us</div></a></li><li class="footer-nav__list-item"><a data-link-ondark="" href="/careers" class="footer-nav__link w-inline-block"><div class="control-m-s">Careers</div></a></li><li class="footer-nav__list-item"><a data-link-ondark="" href="/newsroom" class="footer-nav__link w-inline-block"><div class="control-m-s">Newsroom</div></a></li><li class="footer-nav__list-item"><a data-link-ondark="" href="/faq" class="footer-nav__link w-inline-block"><div class="control-m-s">FAQ</div></a></li></ul></div><div class="footer-nav"><div class="header-h5">Connect</div><ul role="list" class="footer-nav__list"><li class="footer-nav__list-item"><a data-link-ondark="" href="https://account.epop.tech/Account/Login" class="footer-nav__link w-inline-block"><div class="control-m-s">Login</div></a></li><li class="footer-nav__list-item"><a data-link-ondark="" href="/contact-us" class="footer-nav__link w-inline-block"><div class="control-m-s">Contact us</div></a></li><li class="footer-nav__list-item"><a data-link-ondark="" href="/book-a-demo" class="footer-nav__link w-inline-block"><div class="control-m-s">Book a demo</div></a></li></ul></div></div><div id="w-node-_3b60abea-ec9b-d492-8c50-a45fff5e68f4-ff5e68a6" class="footer-offices"><address class="footer-office is-first"><div class="header-h5">UK Office (HQ)</div><p class="body-s text-tertiary-ondark">Unit B, Berrington Road<br/>Leamington Spa, CV31 1NB<br/>United Kingdom</p></address><address class="footer-office"><div class="header-h5">Sweden Office</div><p class="body-s text-tertiary-ondark">Redaregatan 48â¨<br/>25236 Helsingborgâ¨<br/>Sweden</p></address></div><div class="newsletter"><div class="f-line is-bottom"></div><div data-email-form="" class="f-form-block w-form"><form id="footer-form" name="email-form" data-name="Email Form" method="get" class="f-form" data-wf-page-id="6920ceefd6e9590d3ad15797" data-wf-element-id="3b60abea-ec9b-d492-8c50-a45fff5e690f"><div class="newsletter__heading"><div class="header-h5">Join our newsletter</div><p class="body-s text-tertiary-ondark">Subscribe for updates on new features, releases, and insights.</p></div><div class="f-form-field"><div class="input-wrap"><input class="input on-dark f-input w-input" maxlength="256" name="Email" data-name="Email" placeholder="Enter your email" type="email" id="Email" required=""/></div><button type="submit" class="btn form-btn"><div class="control-m">Subscribe</div></button></div><div class="body-xs text-tertiary-ondark">By clicking Subscribe you're confirming that you agree with our <a href="/privacy-policy" data-link-ondark="" class="text-link">Privacy Policy</a>.</div></form><div class="f-success-msg w-form-done"><div class="f-success-msg__inner"><div class="header-h5">Welcome to the ZeBeyond community!</div><div class="spacer-16 mob-12"></div><p class="body-s text-tertiary-ondark">Weâre excited to share the latest updates and ideas with you.</p><div class="spacer-32 mob-24"></div><button type="button" aria-label="back to form" data-onLight="True" data-back-to-form="" class="btn size-m"><div class="control-l">Back to form</div></button></div></div><div class="w-form-fail"><div class="text-base">Oops! Something went wrong while submitting the form.</div></div></div></div><div id="w-node-_3b60abea-ec9b-d492-8c50-a45fff5e6921-ff5e68a6" class="footer-lower"><div class="body-xs text-tertiary-ondark">© <span data-footer-year="">2025</span> ZeBeyond. All rights reserved.</div><ul id="w-node-_3b60abea-ec9b-d492-8c50-a45fff5e6927-ff5e68a6" role="list" class="legal-list"><li class="legal-list__item"><a data-link-ondark="" href="/privacy-policy" class="footer-nav__link w-inline-block"><div class="control-s">Privacy Policy</div></a></li><li class="legal-list__item"><a data-link-ondark="" href="/terms-of-service" class="footer-nav__link w-inline-block"><div class="control-s">Terms of Service</div></a></li><li id="w-node-_3b60abea-ec9b-d492-8c50-a45fff5e6930-ff5e68a6" class="legal-list__item"><a data-link-ondark="" href="/imprint" class="footer-nav__link w-inline-block"><div class="control-s">Imprint</div></a></li></ul></div></div></div></div></footer></div>
2221<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=691fe9a45470bd6d1697aba4" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
2221<script src="https://cdn.prod.website-files.com/691fe9a45470bd6d1697aba4/js/webflow.d5a4a26f.0f4301dffb2a26e8.js" type="text/javascript" integrity="sha384-vy8/cX2QS59//Ch4dIFw18Mtvo25Er+nFuF1/qryKvcDjPSmkfxdQ3TUDvTVL2nT" crossorigin="anonymous"></script>
2221<script src="https://cdn.prod.website-files.com/gsap/3.15.0/gsap.min.js" type="text/javascript"></script>
2221<script src="https://cdn.prod.website-files.com/gsap/3.15.0/ScrollTrigger.min.js" type="text/javascript"></script>
2221<script src="https://cdn.prod.website-files.com/gsap/3.15.0/ScrollToPlugin.min.js" type="text/javascript"></script>
2221<script src="https://cdn.prod.website-files.com/gsap/3.15.0/MotionPathPlugin.min.js" type="text/javascript"></script>
2221<script src="https://cdn.prod.website-files.com/gsap/3.15.0/DrawSVGPlugin.min.js" type="text/javascript"></script>
2221<script type="text/javascript">gsap.registerPlugin(ScrollTrigger,ScrollToPlugin,MotionPathPlugin,DrawSVGPlugin);</script>
2221<!-- JQ Validate Form -->
2222<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js" integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
2222 2223 2224<!-- Finsweet Attributes
2225<script async type="module" 2226 src="https://cdn.jsdelivr.net/npm/@finsweet/attributes@2/attributes.js" 2227 fs-scrolldisable 2228 ></script>
2228 2229 --> 2230 2231<!-- Base Code --> 2232<style> 2233 .c-form-field label { 2234 pointer-events: auto; 2235 } 2236</style>
2237<script> 2238 let mm = gsap.matchMedia(); 2239 2240 window.addEventListener("DOMContentLoaded", () => { 2241 2242 // Smart nav 2243 // Mirror click for close button 2244 $("[data-close-menu]").click(function() { 2245 $(".w-nav-button").click(); 2246 }); 2247 2248 // Mirror click for overlay 2249 $(".nav__menu-wrap").click(function(e) { 2250 // We check that the click is on the overlay, and not on the menu inside 2251 if (e.target === this) { 2252 const $navbar = document.querySelector('.w-nav-menu'); 2253 if ($navbar?.hasAttribute('data-nav-menu-open')) { 2254 $(".w-nav-button").click(); 2255 } 2256 } 2257 }); 2258 2259 // Smart nav 2260 (() => { 2261 const MOBILE_MAX = 479; 2262 const $header = document.querySelector('.header'); 2263 const $navbar = document.querySelector('.w-nav-menu'); 2264 const $body = document.querySelector('body'); 2265 2266 if (!$navbar) return; 2267 2268 const isBurger = () => window.innerWidth <= MOBILE_MAX; 2269 2270 const syncMenuState = () => { 2271 const isOpen = $navbar.hasAttribute('data-nav-menu-open'); 2272 const isMobile = isBurger(); 2273 2274 $body.style.overflow = isOpen ? "hidden" : ""; 2275 2276 if (isMobile) { 2277 $header?.classList.toggle('menu-open', isOpen); 2278 } else { 2279 $header?.classList.remove('menu-open'); 2280 // Close the menu when switching to the desktop 2281 const $btn = document.querySelector('.w-nav-button'); 2282 if ($btn?.classList.contains('w--open')) $btn.click(); 2283 } 2284 }; 2285 2286 // Observe menu state changes 2287 const observer = new MutationObserver(syncMenuState); 2288 observer.observe($navbar, { 2289 attributes: true, 2290 attributeFilter: ['data-nav-menu-open'], 2291 }); 2292 2293 // Resize handler with debouncing 2294 let resizeRAF; 2295 let lastIsBurger = isBurger(); 2296 2297 const onResize = () => { 2298 if (resizeRAF) return; 2299 resizeRAF = requestAnimationFrame(() => { 2300 resizeRAF = null; 2301 const currentIsBurger = isBurger(); 2302 if (currentIsBurger !== lastIsBurger) { 2303 lastIsBurger = currentIsBurger; 2304 syncMenuState(); 2305 } 2306 }); 2307 }; 2308 2309 window.addEventListener('resize', onResize, { passive: true }); 2310 window.addEventListener('orientationchange', onResize, { passive: true }); 2311 2312 // Initial sync 2313 syncMenuState(); 2314 })(); 2315 // END Smart nav 2316 2317 2318 // Get current year 2319 document.querySelectorAll('[data-footer-year]').forEach(div => { 2320 div.textContent = new Date().getFullYear(); 2321 }); 2322 // END Get current year --> 2323 2324 const btnToTop = document.querySelector('[data-btn-to-top]'); 2325 if (btnToTop) { 2326 btnToTop.addEventListener('click', (e) => { 2327 e.preventDefault(); 2328 window.scrollTo({ 2329 top: 0, 2330 behavior: 'smooth' 2331 }); 2332 }); 2333 } 2334 2335 }); 2336</script>
2336 2337
2338<script> 2339 function handleHeaderScroll() { 2340 const header = document.querySelector('.header'); 2341 2342 if (!header) return; 2343 2344 const toggleClass = () => { 2345 if (window.scrollY > 1) { 2346 header.classList.add('is-scrolled'); 2347 } else { 2348 header.classList.remove('is-scrolled'); 2349 } 2350 }; 2351 2352 toggleClass(); 2353 2354 ScrollTrigger.create({ 2355 start: 1, 2356 onUpdate: toggleClass, 2357 }); 2358 } 2359 handleHeaderScroll(); 2360 2361 window.addEventListener('load', function() { 2362 // Form Handler - Universal version for [data-email-form] 2363 function initForms() { 2364 // Checking for jQuery and jQuery Validate 2365 if (typeof jQuery === 'undefined' || typeof jQuery.fn.validate === 'undefined') { 2366 console.error('jQuery or jQuery Validate are not included.'); 2367 return; 2368 } 2369 const forms = document.querySelectorAll('[data-email-form] form'); 2370 forms.forEach(form => { 2371 const emailInput = form.querySelector('input[name="Email"]'); 2372 const submitBtn = form.querySelector('button[type="submit"]'); 2373 const formWrapper = form.closest('[data-email-form]'); 2374 const successMsg = formWrapper?.querySelector('.w-form-done'); 2375 if (!emailInput || !submitBtn || !successMsg || !formWrapper) return; 2376 const $form = $(form); 2377 2378 // Getting a scroll anchor from a form attribute 2379 const scrollToAnchor = formWrapper.getAttribute('data-scroll-to'); 2380 2381 // Ð¢Ð°Ð¹Ð¼ÐµÑ Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого ÑкÑÑÑÐ¸Ñ 2382 let autoHideTimer = null; 2383 2384 // Init jQuery Validate 2385 $form.validate({ 2386 rules: { 2387 Name: { 2388 required: true, 2389 minlength: 2, 2390 }, 2391 Email: { 2392 required: true, 2393 email: true, 2394 }, 2395 'Privacy-Policy': { 2396 required: true, 2397 }, 2398 }, 2399 messages: { 2400 name: { 2401 required: 'Please enter your full name', 2402 minlength: 'Name must be at least 2 characters', 2403 }, 2404 Email: { 2405 required: 'Please enter your email', 2406 email: 'Please enter a valid email address', 2407 }, 2408 'Privacy-Policy': { 2409 required: 'You must agree to continue', 2410 }, 2411 }, 2412 errorPlacement: function (error, element) { 2413 // Place errors after the field 2414 if (element.attr('type') === 'checkbox') { 2415 error.insertAfter(element.closest('.c-form-checkbox-field')); 2416 } else { 2417 error.insertAfter(element); 2418 } 2419 }, 2420 highlight: function (element) { 2421 $(element).addClass('error-input'); 2422 }, 2423 unhighlight: function (element) { 2424 $(element).removeClass('error-input'); 2425 }, 2426 }); 2427 2428 const clearForm = () => { 2429 form.querySelectorAll('input[type="text"], input[type="email"], input[type="number"], textarea, select').forEach(input => { 2430 input.value = ''; 2431 }); 2432 2433 // Clear the checkboxes and remove the Webflow class. 2434 form.querySelectorAll('input[type="checkbox"]').forEach((checkbox) => { 2435 checkbox.checked = false; 2436 // Removing the Webflow visual class from the checkbox 2437 const customCheckbox = checkbox.previousElementSibling; 2438 if (customCheckbox && customCheckbox.classList.contains('w-checkbox-input')) { 2439 customCheckbox.classList.remove('w--redirected-checked'); 2440 } 2441 }); 2442 2443 // Cleaning up validation errors 2444 $form.validate().resetForm(); 2445 form.querySelectorAll('.error-input').forEach((el) => { 2446 el.classList.remove('error-input'); 2447 }); 2448 }; 2449 2450 const hideSuccessMsg = () => { 2451 successMsg.style.display = 'none'; 2452 form.style.display = 'block'; 2453 }; 2454 2455 // Scroll to anchor function 2456 const scrollToTarget = () => { 2457 if (scrollToAnchor) { 2458 const targetElement = document.querySelector(`[data-anchor="${scrollToAnchor}"]`); 2459 2460 if (targetElement) { 2461 $('html, body').animate({ 2462 scrollTop: $(targetElement).offset().top - 0 2463 }, 300); 2464 } 2465 } 2466 }; 2467 2468 // Validate on submit 2469 form.addEventListener('submit', (e) => { 2470 if (!$form.valid()) { 2471 e.preventDefault(); 2472 console.log('ФоÑма ÑодеÑÐ¶Ð¸Ñ Ð¾Ñибки'); 2473 return false;
2474 } 2475 console.log('ФоÑма валидна, оÑпÑавлÑеÑÑÑ...'); 2476 // The form will be submitted automatically via Webflow. 2477 }); 2478 2479 // Back to form button 2480 const backBtn = successMsg.querySelector('[data-back-to-form]'); 2481 if (backBtn) { 2482 backBtn.addEventListener('click', () => { 2483 // ÐÑменÑем авÑомаÑиÑеÑкое ÑкÑÑÑие 2484 if (autoHideTimer) { 2485 clearTimeout(autoHideTimer); 2486 autoHideTimer = null; 2487 } 2488 hideSuccessMsg(); 2489 clearForm(); 2490 }); 2491 } 2492 2493 // Watch for Webflow success message 2494 const observer = new MutationObserver((mutations) => { 2495 mutations.forEach((mutation) => { 2496 if (successMsg.style.display === 'block') { 2497 // Scroll to the anchor after successful sending 2498 setTimeout(() => { 2499 scrollToTarget(); 2500 }, 300); 2501 2502 // УÑÑанавливаем ÑÐ°Ð¹Ð¼ÐµÑ Ð°Ð²ÑомаÑиÑеÑкого ÑкÑÑÑÐ¸Ñ 2503 autoHideTimer = setTimeout(() => { 2504 hideSuccessMsg(); 2505 clearForm(); 2506 }, 5000); 2507 } 2508 }); 2509 }); 2510 observer.observe(successMsg, { 2511 attributes: true, 2512 attributeFilter: ['style'] 2513 }); 2514 }); 2515 } 2516 initForms(); 2517 }); 2518 2519 function simpleFadeIn() { 2520 let targets = gsap.utils.toArray('[data-fadeIn]'); 2521 targets.forEach((item) => { 2522 let delayAnim = parseFloat(item.getAttribute('data-anim-delay')) || 0; 2523 2524 gsap.from(item, { 2525 scrollTrigger: { 2526 trigger: item, 2527 start: 'top 95%', 2528 //invalidateOnRefresh: true, 2529 //refreshPriority: -1, 2530 //end: 'bottom 95%', 2531 //scrub: true, 2532 //markers: true, 2533 }, 2534 opacity: 0, 2535 duration: 1, 2536 delay: delayAnim, 2537 }); 2538 }); 2539 } 2540 simpleFadeIn(); 2541 2542 function staggerFadeIn() { 2543 const sections = document.querySelectorAll('[data-stagger-fd-wrap]'); 2544 2545 sections.forEach((section) => { 2546 const cards = section.querySelectorAll('[data-stagger-fd-target]'); 2547 2548 if (cards.length === 0) return; 2549 2550 gsap.from(cards, { 2551 scrollTrigger: { 2552 trigger: section, 2553 start: 'top 85%', 2554 //invalidateOnRefresh: true, 2555 //refreshPriority: -1, 2556 // toggleActions: 'play none none none', 2557 }, 2558 opacity: 0, 2559 stagger: 0.15, 2560 duration: 0.8, 2561 ease: 'power2.out', 2562 }); 2563 }); 2564 } 2565 staggerFadeIn(); 2566 2567</script>
2567<!-- Splide JS -->
2568<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
2568 2569<!-- The main script for all odometers -->
2570<script src="https://github.hubspot.com/odometer/odometer.js"></script>
2570 2571
2572<script> 2573 // ---------------------------------------------------------------------------------------------------------- RELEASE ------------------------------------------------------------------------------------------------------------------------ 2574 (function () { 2575 'use strict'; 2576 2577 // 1ï¸â£ DOM Elements & Variables 2578 const yearRadios = document.querySelectorAll('[name="year-radio"]'); 2579 const quarterRadios = document.querySelectorAll('[name="quarter-radio"]'); 2580 const quarterItems = document.querySelectorAll('.quarter-col-item'); 2581 const releaseItems = document.querySelectorAll('.releases-col-item'); 2582 const selectedYearLabel = document.getElementById('selected-year'); 2583 const quarterTitle = document.getElementById('quarter-title'); 2584 const selectedDateLabel = document.getElementById('selected-date'); 2585 const selectedVersionLabel = document.getElementById('selected-version'); 2586 const selectedCategoryLabel = document.getElementById('selected-category'); 2587 2588 // 2ï¸â£ State 2589 let currentYear = null; 2590 let currentQuarter = null; 2591 let currentFilters = { date: '', version: '', category: '' }; 2592 2593 // 3ï¸â£ Pagination Settings 2594 const itemsPerPage = 4; 2595 let currentPage = 1; 2596 let totalPages = 1; 2597 const paginationContainer = document.querySelector('.r-pagination__numbers'); 2598 const prevBtn = document.querySelector('.r-pagination__prev'); 2599 const nextBtn = document.querySelector('.r-pagination__next'); 2600 2601 // 4ï¸â£ Helper Functions 2602 2603 // Helper: Parse date from DD/MM/YYYY format 2604 function parseDate(dateString) { 2605 const parts = dateString.split('/'); 2606 return new Date(parts[2], parts[1] - 1, parts[0]); 2607 } 2608 2609 // Helper: Compare version strings 2610 function compareVersions(a, b) { 2611 const partsA = a.split('.').map(Number); 2612 const partsB = b.split('.').map(Number); 2613 2614 for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) { 2615 const numA = partsA[i] || 0; 2616 const numB = partsB[i] || 0; 2617 2618 if (numA !== numB) { 2619 return numA - numB; 2620 } 2621 } 2622 2623 return 0; 2624 } 2625 2626 // Helper: Create filter option element by cloning template 2627 function createFilterOption(type, value, text) { 2628 // Determine which template to search for depending on the type 2629 let templateValue = 'All'; 2630 if (type === 'category') { 2631 templateValue = 'All categories'; 2632 } 2633 2634 // Find a template 2635 const template = document.querySelector( 2636 `[data-filter-type="${type}"][data-filter-value="${templateValue}"]` 2637 ); 2638 2639 if (!template) { 2640 // Fallback: If there is no template, create a simple link 2641 const link = document.createElement('a'); 2642 link.href = '#'; 2643 link.className = 'filter-option w-inline-block'; 2644 link.setAttribute('data-filter-type', type); 2645 link.setAttribute('data-filter-value', value); 2646 2647 // Create a structure as in the template 2648 const textDiv = document.createElement('div'); 2649 textDiv.className = 'caption-s'; 2650 textDiv.textContent = text; 2651 link.appendChild(textDiv); 2652 2653 const iconDiv = document.createElement('div'); 2654 iconDiv.className = 'filter-option__icon w-embed'; 2655 iconDiv.innerHTML = 2656 '<svg width="100%" height="100%" viewBox="0 0 16 16" fill="none"><path d="M2 8L6 12L14 4" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round"></path></svg>'; 2657 link.appendChild(iconDiv); 2658 2659 return link; 2660 } 2661 2662 // Clone template 2663 const clone = template.cloneNode(true); 2664 2665 // Remove the is-active class from the clone 2666 clone.classList.remove('is-active'); 2667 2668 // Update data attribute and text 2669 clone.setAttribute('data-filter-value', value); 2670 2671 // Update text inside 2672 const textElement = clone.querySelector('.caption-s') || clone; 2673 if (textElement.tagName === 'DIV') { 2674 textElement.textContent = text; 2675 } else { 2676 clone.childNodes[0].textContent = text; 2677 } 2678 2679 return clone; 2680 } 2681 2682 // 5ï¸â£ Filter Functions 2683 2684 // Helper: Get filtered releases 2685 function getFilteredReleases() { 2686 return Array.from(releaseItems).filter((item) => { 2687 const itemYear = item.getAttribute('data-year'); 2688 const itemQuarter = item.getAttribute('data-quarter'); 2689 const itemDate = item.getAttribute('data-date'); 2690 const itemVersion = item.getAttribute('data-version'); 2691 const itemCategory = item.getAttribute('data-category'); 2692 2693 let show = itemYear === currentYear && itemQuarter === currentQuarter; 2694 2695 if ( 2696 show && 2697 currentFilters.date && 2698 currentFilters.date !== 'All' && 2699 itemDate !== currentFilters.date 2700 ) { 2701 show = false;
2702 } 2703 2704 if ( 2705 show && 2706 currentFilters.version && 2707 currentFilters.version !== 'All' && 2708 itemVersion !== currentFilters.version 2709 ) { 2710 show = false; 2711 } 2712 2713 if ( 2714 show && 2715 currentFilters.category && 2716 currentFilters.category !== 'All categories' && 2717 itemCategory !== currentFilters.category 2718 ) { 2719 show = false; 2720 } 2721 2722 return show; 2723 }); 2724 } 2725 2726 // Populate filter options dynamically 2727 function populateFilters() { 2728 const dates = new Set(); 2729 const versions = new Set(); 2730 const categories = new Set(); 2731 2732 releaseItems.forEach((item) => { 2733 const itemYear = item.getAttribute('data-year'); 2734 const itemQuarter = item.getAttribute('data-quarter'); 2735 2736 if (itemYear === currentYear && itemQuarter === currentQuarter) { 2737 const date = item.getAttribute('data-date'); 2738 const version = item.getAttribute('data-version'); 2739 const category = item.getAttribute('data-category'); 2740 2741 if (date) dates.add(date); 2742 if (version) versions.add(version); 2743 if (category) categories.add(category); 2744 } 2745 }); 2746 2747 // Sort arrays 2748 const sortedDates = Array.from(dates).sort((a, b) => { 2749 const dateA = parseDate(a); 2750 const dateB = parseDate(b); 2751 return dateA - dateB; 2752 }); 2753 2754 const sortedVersions = Array.from(versions).sort(compareVersions); 2755 2756 const sortedCategories = Array.from(categories).sort((a, b) => { 2757 return a.localeCompare(b); 2758 }); 2759 2760 // Date options 2761 const dateContainer = document.getElementById('date-options'); 2762 if (dateContainer) { 2763 const staticAllOption = dateContainer.querySelector( 2764 '[data-filter-value="All"]' 2765 ); 2766 2767 // â Clone BEFORE cleaning 2768 const clonedAllOption = staticAllOption 2769 ? staticAllOption.cloneNode(true) 2770 : null; 2771 2772 dateContainer.innerHTML = ''; 2773 2774 if (clonedAllOption) dateContainer.appendChild(clonedAllOption); 2775 2776 sortedDates.forEach((date) => { 2777 dateContainer.appendChild(createFilterOption('date', date, date)); 2778 }); 2779 } 2780 2781 // Version options 2782 const versionContainer = document.getElementById('version-options'); 2783 if (versionContainer) { 2784 const staticAllOption = versionContainer.querySelector( 2785 '[data-filter-value="All"]' 2786 ); 2787 2788 // â Clone BEFORE cleaning 2789 const clonedAllOption = staticAllOption 2790 ? staticAllOption.cloneNode(true) 2791 : null; 2792 2793 versionContainer.innerHTML = ''; 2794 2795 if (clonedAllOption) versionContainer.appendChild(clonedAllOption); 2796 2797 sortedVersions.forEach((version) => { 2798 versionContainer.appendChild( 2799 createFilterOption('version', version, version) 2800 ); 2801 }); 2802 } 2803 2804 // Category options 2805 const categoryContainer = document.getElementById('category-options'); 2806 if (categoryContainer) { 2807 const staticAllOption = categoryContainer.querySelector( 2808 '[data-filter-value="All categories"]' 2809 ); 2810 2811 const clonedAllOption = staticAllOption 2812 ? staticAllOption.cloneNode(true) 2813 : null; 2814 2815 categoryContainer.innerHTML = ''; 2816 2817 if (clonedAllOption) categoryContainer.appendChild(clonedAllOption); 2818 2819 sortedCategories.forEach((category) => { 2820 categoryContainer.appendChild( 2821 createFilterOption('category', category, category) 2822 ); 2823 }); 2824 } 2825 2826 attachFilterHandlers(); 2827 } 2828 2829 // Attach click handlers to filter options 2830 function attachFilterHandlers() { 2831 const filterOptions = document.querySelectorAll('.filter-option'); 2832 2833 filterOptions.forEach((option) => { 2834 option.addEventListener('click', function (e) { 2835 e.preventDefault(); 2836 2837 const filterType = this.getAttribute('data-filter-type'); 2838 const filterValue = this.getAttribute('data-filter-value'); 2839 2840 // Remove the active class from all options of this type 2841 const sameTypeOptions = document.querySelectorAll( 2842 `[data-filter-type="${filterType}"]` 2843 ); 2844 sameTypeOptions.forEach((opt) => opt.classList.remove('is-active')); 2845 2846 // Add an active class to the selected option 2847 this.classList.add('is-active'); 2848 2849 // Update current filter 2850 currentFilters[filterType] = filterValue; 2851 2852 // Update label 2853 let labelText = filterValue; 2854 if ( 2855 filterType === 'category' && 2856 (!filterValue || filterValue === 'All categories') 2857 ) {
2858 labelText = 'All categories'; 2859 } else if (!filterValue || filterValue === 'All') { 2860 labelText = 'All'; 2861 } 2862 2863 if (filterType === 'date' && selectedDateLabel) { 2864 selectedDateLabel.textContent = labelText; 2865 } else if (filterType === 'version' && selectedVersionLabel) { 2866 selectedVersionLabel.textContent = labelText; 2867 } else if (filterType === 'category' && selectedCategoryLabel) { 2868 selectedCategoryLabel.textContent = labelText; 2869 } 2870 2871 const $parentDropdown = $(this).closest('[data-simple-dropdown]'); 2872 if ($parentDropdown.length) { 2873 const $dropdownList = $parentDropdown.find( 2874 '[data-simple-dropdown-list]' 2875 ); 2876 const $dropdownToggle = $parentDropdown.find( 2877 '[data-simple-dropdown-toggle]' 2878 ); 2879 2880 $parentDropdown.removeClass('active'); 2881 $dropdownToggle.attr('aria-expanded', 'false'); 2882 $dropdownList.attr('aria-hidden', 'true'); 2883 $dropdownList.slideUp('fast'); 2884 } 2885 2886 // Apply filters 2887 applyAllFilters(); 2888 }); 2889 }); 2890 } 2891 2892 // Apply all filters 2893 function applyAllFilters() { 2894 let visibleCount = 0; 2895 2896 releaseItems.forEach((item) => { 2897 const itemYear = item.getAttribute('data-year'); 2898 const itemQuarter = item.getAttribute('data-quarter'); 2899 const itemDate = item.getAttribute('data-date'); 2900 const itemVersion = item.getAttribute('data-version'); 2901 const itemCategory = item.getAttribute('data-category'); 2902 2903 let show = itemYear === currentYear && itemQuarter === currentQuarter; 2904 2905 if ( 2906 show && 2907 currentFilters.date && 2908 currentFilters.date !== 'All' && 2909 itemDate !== currentFilters.date 2910 ) { 2911 show = false; 2912 } 2913 2914 if ( 2915 show && 2916 currentFilters.version && 2917 currentFilters.version !== 'All' && 2918 itemVersion !== currentFilters.version 2919 ) { 2920 show = false; 2921 } 2922 2923 if ( 2924 show && 2925 currentFilters.category && 2926 currentFilters.category !== 'All categories' && 2927 itemCategory !== currentFilters.category 2928 ) { 2929 show = false; 2930 } 2931 2932 item.style.display = show ? 'block' : 'none'; 2933 if (show) visibleCount++; 2934 }); 2935 2936 console.log(`â Visible releases: ${visibleCount}`); 2937 2938 currentPage = 1; // Reset to first page when filtering 2939 updatePagination(); 2940 } 2941 2942 // 6ï¸â£ Pagination Functions 2943 // Calculate total pages and render pagination 2944 function updatePagination() { 2945 const visibleReleases = getFilteredReleases(); 2946 2947 totalPages = Math.ceil(visibleReleases.length / itemsPerPage); 2948 currentPage = Math.min(currentPage, totalPages || 1); 2949 2950 console.log( 2951 `ð Total: ${visibleReleases.length} releases, ${totalPages} pages` 2952 ); 2953 2954 renderPaginationNumbers(); 2955 showCurrentPage(); 2956 updatePaginationButtons(); 2957 } 2958 2959 // Render pagination numbers 2960 function renderPaginationNumbers() { 2961 if (!paginationContainer) return; 2962 2963 paginationContainer.innerHTML = ''; 2964 2965 if (totalPages <= 1) { 2966 // Hide pagination if there is only one page 2967 document 2968 .querySelector('.r-pagination') 2969 ?.style.setProperty('display', 'none'); 2970 return; 2971 } 2972 2973 document.querySelector('.r-pagination')?.style.removeProperty('display'); 2974 2975 const pagesToShow = []; 2976 2977 // Page display logic: 1 2 3 ... 11 2978 if (totalPages <= 7) { 2979 // Show all pages if there are few of them 2980 for (let i = 1; i <= totalPages; i++) { 2981 pagesToShow.push(i); 2982 } 2983 } else { 2984 // Ð£Ð¼Ð½Ð°Ñ Ð¿Ð°Ð³Ð¸Ð½Ð°ÑÐ¸Ñ 2985 if (currentPage <= 3) { 2986 // Start: 1 2 3 4 ... 11 2987 pagesToShow.push(1, 2, 3, 4, '...', totalPages); 2988 } else if (currentPage >= totalPages - 2) { 2989 // End: 1 ... 8 9 10 11 2990 pagesToShow.push( 2991 1, 2992 '...', 2993 totalPages - 3, 2994 totalPages - 2, 2995 totalPages - 1, 2996 totalPages 2997 ); 2998 } else { 2999 // Middle: 1 ... 5 6 7 ... 11 3000 pagesToShow.push( 3001 1, 3002 '...', 3003 currentPage - 1, 3004 currentPage, 3005 currentPage + 1, 3006 '...', 3007 totalPages 3008 ); 3009 } 3010 } 3011 3012 // Create buttons 3013 pagesToShow.forEach((page) => { 3014 if (page === '...') { 3015 const dots = document.createElement('span'); 3016 dots.className = 'r-pagination__dots'; 3017 dots.textContent = '...'; 3018 paginationContainer.appendChild(dots); 3019 } else { 3020 const btn = document.createElement('button'); 3021 btn.className = 'r-pagination__number'; 3022 btn.textContent = page; 3023 3024 if (page === currentPage) { 3025 btn.classList.add('is-active'); 3026 } 3027 3028 btn.addEventListener('click', () => { 3029 currentPage = page; 3030 showCurrentPage(); 3031 updatePaginationButtons(); 3032 renderPaginationNumbers(); 3033 scrollToReleases(); 3034 }); 3035 3036 paginationContainer.appendChild(btn); 3037 } 3038 }); 3039 } 3040 3041 // Show current page items 3042 function showCurrentPage() { 3043 const visibleReleases = getFilteredReleases(); 3044 3045 const startIndex = (currentPage - 1) * itemsPerPage; 3046 const endIndex = startIndex + itemsPerPage; 3047 3048 // Hide all
3049 releaseItems.forEach((item) => { 3050 item.style.display = 'none'; 3051 }); 3052 3053 // Show current page only 3054 visibleReleases.forEach((item, index) => { 3055 if (index >= startIndex && index < endIndex) { 3056 item.style.display = 'block'; 3057 } 3058 }); 3059 3060 /* 3061 console.log( 3062 `ð Page ${currentPage}: showing ${Math.min(itemsPerPage, visibleReleases.length - startIndex)} of ${visibleReleases.length} releases` 3063 ); 3064 */ 3065 } 3066 3067 // Update prev/next buttons 3068 function updatePaginationButtons() { 3069 if (prevBtn) { 3070 prevBtn.disabled = currentPage === 1; 3071 } 3072 3073 if (nextBtn) { 3074 nextBtn.disabled = currentPage === totalPages; 3075 } 3076 } 3077 3078 // Scroll to releases section 3079 function scrollToReleases() { 3080 const releasesSection = document.querySelector('.releases-col-wrap'); 3081 if (releasesSection) { 3082 releasesSection.scrollIntoView({ behavior: 'smooth', block: 'center' }); 3083 } 3084 } 3085 3086 // 7ï¸â£ Quarter Functions 3087 // Update quarter title 3088 function updateQuarterTitle(quarter, year) { 3089 if (quarterTitle) { 3090 quarterTitle.textContent = `${quarter} / ${year} releases`; 3091 } 3092 } 3093 3094 // Update quarter image 3095 function updateQuarterImage(year, quarter) { 3096 // Find the active quarter-col-item 3097 const activeQuarterItem = Array.from(quarterItems).find((item) => { 3098 const itemYear = item.getAttribute('data-year'); 3099 const radio = item.querySelector(`[data-filter-quarter="${quarter}"]`); 3100 return itemYear === year && radio; 3101 }); 3102 3103 if (!activeQuarterItem) { 3104 console.log('â ï¸ Active quarter item not found'); 3105 return; 3106 } 3107 3108 // Find the image inside the .hidden div 3109 const sourceImg = activeQuarterItem.querySelector('.hidden .quarter-img'); 3110 3111 // Find the target image 3112 const targetImg = document.querySelector( 3113 '.quarter-content__right .quarter-img' 3114 ); 3115 3116 if (sourceImg && targetImg) { 3117 //console.log('ð¼ï¸ Updating image:', sourceImg.src); 3118 3119 // Copy all attributes 3120 targetImg.src = sourceImg.src; 3121 targetImg.alt = sourceImg.alt || ''; 3122 targetImg.srcset = sourceImg.srcset || ''; 3123 targetImg.sizes = sourceImg.sizes || ''; 3124 targetImg.loading = sourceImg.loading || 'lazy'; 3125 3126 // Show image 3127 targetImg.style.display = 'block'; 3128 } else { 3129 console.log( 3130 'â ï¸ Image not found. sourceImg:', 3131 sourceImg, 3132 'targetImg:', 3133 targetImg 3134 ); 3135 } 3136 } 3137 3138 function filterQuarters(year) { 3139 let firstVisibleQuarter = null; 3140 3141 quarterItems.forEach((item) => { 3142 const itemYear = item.getAttribute('data-year'); 3143 3144 if (itemYear === year) { 3145 item.style.display = 'block'; 3146 if (!firstVisibleQuarter) { 3147 firstVisibleQuarter = item.querySelector('input[type="radio"][name="quarter-radio"]'); 3148 } 3149 } else { 3150 item.style.display = 'none'; 3151 } 3152 }); 3153 3154 if (firstVisibleQuarter && !firstVisibleQuarter.checked) { 3155 firstVisibleQuarter.checked = true; 3156 const quarter = firstVisibleQuarter.getAttribute('data-filter-quarter'); 3157 currentQuarter = quarter; 3158 //console.log('ð Initialized quarter:', quarter); 3159 3160 if (year && quarter) { 3161 updateQuarterTitle(quarter, year); 3162 filterReleases(year, quarter); 3163 } 3164 } 3165 } 3166 3167 // Filter releases by year and quarter 3168 function filterReleases(year, quarter) { 3169 currentYear = year; 3170 currentQuarter = quarter; 3171 3172 // Reset additional filters 3173 currentFilters = { date: '', version: '', category: '' }; 3174 if (selectedDateLabel) selectedDateLabel.textContent = 'All'; 3175 if (selectedVersionLabel) selectedVersionLabel.textContent = 'All'; 3176 if (selectedCategoryLabel) 3177 selectedCategoryLabel.textContent = 'All categories'; 3178 3179 populateFilters(); 3180 3181 document.querySelectorAll('.filter-option').forEach((opt) => { 3182 opt.classList.remove('is-active'); 3183 }); 3184 3185 // For date and version - "All" 3186 document 3187 .querySelectorAll( 3188 '.filter-option[data-filter-type="date"][data-filter-value="All"], .filter-option[data-filter-type="version"][data-filter-value="All"]' 3189 ) 3190 .forEach((opt) => { 3191 opt.classList.add('is-active'); 3192 }); 3193 3194 // For category - "All categories" 3195 document 3196 .querySelectorAll( 3197 '.filter-option[data-filter-type="category"][data-filter-value="All categories"]' 3198 ) 3199 .forEach((opt) => { 3200 opt.classList.add('is-active'); 3201 }); 3202 3203 applyAllFilters(); 3204 updateQuarterImage(year, quarter); 3205 } 3206 3207 // 8ï¸â£ Event Handlers 3208 // Year radio handlers 3209 yearRadios.forEach((radio) => { 3210 radio.addEventListener('change', function () { 3211 currentYear = this.getAttribute('data-filter-year'); 3212 //console.log('ð Year changed:', currentYear); 3213 3214 if (selectedYearLabel) { 3215 selectedYearLabel.textContent = currentYear; 3216 } 3217 3218 filterQuarters(currentYear); 3219 }); 3220 }); 3221 3222 // Quarter radio handlers 3223 quarterRadios.forEach((radio) => { 3224 radio.addEventListener('change', function () { 3225 currentQuarter = this.getAttribute('data-filter-quarter'); 3226 //console.log('ð Quarter changed:', currentQuarter); 3227 3228 if (currentYear && currentQuarter) { 3229 updateQuarterTitle(currentQuarter, currentYear); 3230 filterReleases(currentYear, currentQuarter); 3231 updateQuarterImage(currentYear, currentQuarter); 3232 } 3233 }); 3234 }); 3235 3236 // Clear all filters button 3237 const clearFiltersBtn = document.getElementById('clear-all-filters'); 3238 if (clearFiltersBtn) { 3239 clearFiltersBtn.addEventListener('click', function (e) { 3240 e.preventDefault(); 3241 3242 // Reset filters
3243 currentFilters = { date: '', version: '', category: '' }; 3244 if (selectedDateLabel) selectedDateLabel.textContent = 'All'; 3245 if (selectedVersionLabel) selectedVersionLabel.textContent = 'All'; 3246 if (selectedCategoryLabel) 3247 selectedCategoryLabel.textContent = 'All categories'; 3248 3249 // Remove active classes 3250 document.querySelectorAll('.filter-option').forEach((opt) => { 3251 opt.classList.remove('is-active'); 3252 }); 3253 3254 // For date and version - "All" 3255 document 3256 .querySelectorAll( 3257 '.filter-option[data-filter-type="date"][data-filter-value="All"], .filter-option[data-filter-type="version"][data-filter-value="All"]' 3258 ) 3259 .forEach((opt) => { 3260 opt.classList.add('is-active'); 3261 }); 3262 3263 // For category - "All categories" 3264 document 3265 .querySelectorAll( 3266 '.filter-option[data-filter-type="category"][data-filter-value="All categories"]' 3267 ) 3268 .forEach((opt) => { 3269 opt.classList.add('is-active'); 3270 }); 3271 3272 applyAllFilters(); 3273 3274 //console.log('ð Filters cleared'); 3275 }); 3276 } 3277 3278 // Prev/Next button handlers 3279 if (prevBtn) { 3280 prevBtn.addEventListener('click', () => { 3281 if (currentPage > 1) { 3282 currentPage--; 3283 showCurrentPage(); 3284 updatePaginationButtons(); 3285 renderPaginationNumbers(); 3286 scrollToReleases(); 3287 } 3288 }); 3289 } 3290 3291 if (nextBtn) { 3292 nextBtn.addEventListener('click', () => { 3293 if (currentPage < totalPages) { 3294 currentPage++; 3295 showCurrentPage(); 3296 updatePaginationButtons(); 3297 renderPaginationNumbers(); 3298 scrollToReleases(); 3299 } 3300 }); 3301 } 3302 3303 // 9ï¸â£ Initialize 3304 function init() { 3305 // â ÐайÑи вÑе года и оÑÑоÑÑиÑоваÑÑ Ð¿Ð¾ ÑбÑÐ²Ð°Ð½Ð¸Ñ (Ð¾Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ к ÑÑаÑомÑ) 3306 const sortedYearRadios = Array.from(yearRadios).sort((a, b) => { 3307 const yearA = parseInt(a.getAttribute('data-filter-year')); 3308 const yearB = parseInt(b.getAttribute('data-filter-year')); 3309 return yearB - yearA; // ÐÑ Ð±Ð¾Ð»ÑÑего к менÑÑемÑ: 2026, 2025, 2024... 3310 }); 3311 3312 // ÐзÑÑÑ Ð¿ÐµÑвÑй (ÑамÑй новÑй год) 3313 const selectedYearRadio = sortedYearRadios[0]; 3314 3315 if (selectedYearRadio) { 3316 // Set checked manually 3317 selectedYearRadio.checked = true; 3318 3319 // Get year 3320 currentYear = selectedYearRadio.getAttribute('data-filter-year'); 3321 3322 // Update label 3323 if (selectedYearLabel) { 3324 selectedYearLabel.textContent = currentYear; 3325 } 3326 3327 // Call filterQuarters directly 3328 filterQuarters(currentYear); 3329 } 3330 } 3331 3332 3333 init(); 3334 })(); 3335 3336 // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3337</script>
3337 3338 3339</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.