1<!DOCTYPE html><!-- Last Published: Thu Oct 01 2026 07:22:54 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="stackoptimise-stage.webflow.io" data-wf-page="67c1c88568f2e51a9197a785" data-wf-site="67a3b299626c1a7afb14beb6" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Login</title><meta content="Log in to access the GTM Engineer course. Unlock 7+ hours of outbound training, 30+ lessons, sales tech tutorials, and downloadable playbooks." name="description"/><meta content="Login" property="og:title"/><meta content="Log in to access the GTM Engineer course. Unlock 7+ hours of outbound training, 30+ lessons, sales tech tutorials, and downloadable playbooks." property="og:description"/><meta content="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67d968f28892a5cadfc418fd_Open%20Graph%20Image.png" property="og:image"/><meta content="Login" name="twitter:title"/><meta content="Log in to access the GTM Engineer course. Unlock 7+ hours of outbound training, 30+ lessons, sales tech tutorials, and downloadable playbooks." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67d968f28892a5cadfc418fd_Open%20Graph%20Image.png" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/css/stackoptimise-stage.webflow.shared.ee9d34b4c.min.css" rel="stylesheet" type="text/css" integrity="sha384-7p00tMMvzki6A2wIC5Rq6LsSdnZTzGkVXw7FDJLgl4nEjIoA43ggltAaC7XHsmFI" 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/67a3b299626c1a7afb14beb6/67b31b76cd1899124200429a_favico.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67b31b9e216874fa03b0e5e5_favico2.png" rel="apple-touch-icon"/><link href="https://www.stackoptimise.com/login" rel="canonical"/><meta name="google-site-verification" content="S28f9qSoG1VgbcfJuSBSVl5Asb-uY415nVrSbYkhqbg" /> 2<!-- Google Tag Manager -->
3<script>
vendor: 393 bytes, lines 3-10
3(function (w, d, s, l, i) { 4 w[l] = w[l] || []; w[l].push({ 5 'gtm.start': 6 new Date().getTime(), event: 'gtm.js' 7 }); var f = d.getElementsByTagName(s)[0], 8 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 9 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 10 })(window, document, 'script', 'dataLayer', '
10GTM-5549VDLV
vendor: 3 bytes, line 10
10');
10</script>
10 11<!-- End Google Tag Manager --> 12 13<!-- Memberstack webflow package -->
14<script data-memberstack-app="app_cm82i2ui0001z0trn2u62a1g5" 15 src="https://static.memberstack.com/scripts/v1/memberstack.js" type="text/javascript"></script>
15 16 17<style> 18 .header_nav::-webkit-scrollbar { 19 display: none; 20 /* Chrome, Safari */ 21 } 22 23 /* ---------- GLOBAL ---------- */ 24 * { 25 user-select: none; 26 } 27 28 body._lock { 29 overflow: hidden; 30 } 31 32 /* ---------- SCROLLBAR ---------- */ 33 ::-webkit-scrollbar { 34 height: 10px; 35 width: 5px; 36 background: transparent; 37 } 38 39 ::-webkit-scrollbar-thumb { 40 background: #fff; 41 border-radius: 1ex; 42 } 43 44 ::-webkit-scrollbar-corner { 45 background: #fff; 46 } 47 48 /* ---------- FAQ ---------- */ 49 .item-faq_panel { 50 max-height: 0; 51 overflow: hidden; 52 } 53 54 .item-faq_panel.active { 55 padding-top: 21px; 56 } 57 58 .item-faq.active { 59 background-color: #fff; 60 } 61 62 .item-faq.active .item-faq_overley { 63 opacity: 0; 64 } 65 66 .item-faq.active .item-faq_title { 67 color: #333242; 68 } 69 70 .item-faq.active .item-faq_icon-close { 71 display: block; 72 } 73 74 .item-faq.active .item-faq_icon-open { 75 display: none; 76 } 77 78 /* ---------- TESTIMONIALS ---------- */ 79 .item-testimonials { 80 display: none; 81 } 82 83 @media (min-width: 767px) { 84 .item-testimonials:nth-child(-n+13) { 85 display: block; 86 } 87 } 88 89 @media (max-width: 767px) { 90 .item-testimonials:nth-child(-n+4) { 91 display: block; 92 } 93 94 .item-testimonials { 95 position: static !important; 96 order: 2; 97 } 98 99 [data-order="true"] { 100 order: 1; 101 display: block; 102 } 103 104 .testimonials_list-inner { 105 height: auto !important; 106 } 107 } 108 109 .testimonials_wrapper.visible .item-testimonials, 110 .testimonials_wrapper.visible .item-users-email { 111 display: block; 112 } 113 114 .testimonials_wrapper.visible .users-email_load-text.users-email_load-text-1 { 115 display: none; 116 } 117 118 .testimonials_wrapper.visible .users-email_load-text.users-email_load-text-2 { 119 display: block; 120 } 121 122 /* ---------- MENU ICON ---------- */ 123 .menu_icon { 124 position: relative; 125 z-index: 5; 126 width: 20px; 127 height: 12px; 128 cursor: pointer; 129 display: none; 130 } 131 132 @media (max-width: 991px) { 133 .menu_icon { 134 display: block; 135 } 136 } 137 138 .menu_icon div, 139 .menu_icon::before, 140 .menu_icon::after { 141 position: absolute; 142 left: 0; 143 width: 100%; 144 height: 2px; 145 background-color: #fff; 146 border-radius: 100px; 147 transition: all 0.3s ease; 148 } 149 150 .menu_icon::before, 151 .menu_icon::after { 152 content: ""; 153 } 154 155 .menu_icon::before { 156 top: 0; 157 } 158 159 .menu_icon::after { 160 bottom: 0; 161 } 162 163 .menu_icon div { 164 top: 50%; 165 transform: translateY(-50%); 166 } 167 168 .menu_icon._active div { 169 transform: scale(0) translateY(-50%); 170 } 171 172 .menu_icon._active::before { 173 top: 50%; 174 transform: rotate(-45deg) translateY(-50%); 175 } 176 177 .menu_icon._active::after { 178 bottom: 50%; 179 transform: rotate(45deg) translateY(50%); 180 } 181 182 /* ---------- HEADER NAV ---------- */ 183 @media (max-width: 991px) { 184 .header_nav { 185 overflow: auto; 186 } 187 188 .header_nav._active { 189 transform: translate(-50%, 68px); 190 } 191 192 .header_menu-item.header_menu-item-drop-down.active .header_menu-arrow { 193 transform: rotate(180deg); 194 } 195 } 196 197 @media (min-width: 991px) { 198 .header_menu-item-drop-down:hover .sub-menu { 199 opacity: 1; 200 visibility: visible; 201 pointer-events: auto; 202 } 203 } 204 205 /* ---------- SWIPER ---------- */ 206 #team_swiper .swiper-wrapper { 207 transition-timing-function: linear; 208 } 209 210 .linkedin_pag .swiper-pagination-bullet, 211 .swiperfooter-pag .swiper-pagination-bullet { 212 background-color: #fff; 213 opacity: 0.6; 214 transition: all 0.4s; 215 } 216 217 .linkedin_pag .swiper-pagination-bullet-active, 218 .swiperfooter-pag .swiper-pagination-bullet-active { 219 opacity: 1; 220 } 221 222 .swiperfooter-pag .swiper-pagination-bullet { 223 width: 5px; 224 height: 5px; 225 } 226 227 .swiperfooter-pag .swiper-pagination-bullet-active { 228 width: 8px; 229 height: 8px; 230 } 231 232 /* ---------- NEWSLETTER MODAL ---------- */ 233 .newsletter-modal.visible .newsletter-modal_content { 234 transform: rotateY(0); 235 } 236 237 /* ---------- PLYR VIDEO ---------- */ 238 html { 239 --plyr-color-main: #fff; 240 --plyr-tab-focus-color: transparent; 241 --plyr-video-control-color-hover: #000; 242 --plyr-control-icon-size: 1.5em; 243 --plyr-range-thumb-height: 0; 244 --plyr-range-track-height: 0.6em; 245 } 246 247 .plyr { 248 width: 100%; 249 height: 100%; 250 } 251 252 .plyr video { 253 object-fit: cover; 254 } 255 256 .contain-video video { 257 object-fit: contain; 258 } 259 260 .plyr__control--overlaid { 261 color: #000; 262 } 263 264 .plyr__volume { 265 width: auto; 266 min-width: auto; 267 max-width: auto; 268 } 269 270 .hide-cover .plyr_cover { 271 opacity: 0; 272 pointer-events: none; 273 } 274 275 .hide-cover .plyr_cover-img { 276 transform: scale(1.4); 277 } 278 279 .sub-menu::before { 280 content: ""; 281 position: absolute; 282 top: -20px; 283 left: 0; 284 width: 100%; 285 height: 30px; 286 } 287</style> 288 289<link rel="stylesheet" href="https://cdn.plyr.io/3.7.2/plyr.css" /> 290<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css" /><style> 291 .complete-checkout + div { 292 display: none; 293 } 294</style>
294<script src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6%2F652d31f3dc22d7b4ee708e44%2F67e39c4768abbca6ac9822a4%2Fclarity_script-0.2.5.js" type="text/javascript"></script>
294</head><body class="body"><div class="global-styles w-embed"><style> 295 body { 296 -webkit-font-smoothing: antialiased; 297 -moz-osx-font-smoothing: grayscale; 298 font-smoothing: antialiased; 299 text-rendering: optimizeLegibility; 300 } 301 302 *[tabindex]:focus-visible, 303 input[type="file"]:focus-visible { 304 outline: 0.125rem solid #4d65ff; 305 outline-offset: 0.125rem; 306 } 307 308 .inherit-color * { 309 color: inherit; 310 } 311 312 .w-richtext> :not(div):first-child, 313 .w-richtext>div:first-child> :first-child { 314 margin-top: 0 !important; 315 } 316 317 .w-richtext>:last-child, 318 .w-richtext ol li:last-child, 319 .w-richtext ul li:last-child { 320 margin-bottom: 0 !important; 321 } 322 323 .container-medium, 324 .container-small, 325 .container-large { 326 margin-right: auto !important; 327 margin-left: auto !important; 328 } 329 330 .text-style-3lines { 331 display: -webkit-box; 332 overflow: hidden; 333 -webkit-line-clamp: 3; 334 -webkit-box-orient: vertical; 335 } 336 337 /* Apply "..." after 2 lines of text */ 338 .text-style-2lines { 339 display: -webkit-box; 340 overflow: hidden; 341 -webkit-line-clamp: 2; 342 -webkit-box-orient: vertical; 343 } 344 345 /* These classes are never overwritten */ 346 .hide { 347 display: none !important; 348 } 349 350 @media screen and (max-width: 991px) { 351 352 .hide, 353 .hide-tablet { 354 display: none !important; 355 } 356 } 357 358 @media screen and (max-width: 767px) { 359 .hide-mobile-landscape { 360 display: none !important; 361 } 362 } 363 364 @media screen and (max-width: 479px) { 365 .hide-mobile { 366 display: none !important; 367 } 368 } 369 370 .margin-0 { 371 margin: 0rem !important; 372 } 373 374 .padding-0 { 375 padding: 0rem !important; 376 } 377 378 .spacing-clean { 379 padding: 0rem !important; 380 margin: 0rem !important; 381 } 382 383 .margin-top { 384 margin-right: 0rem !important; 385 margin-bottom: 0rem !important; 386 margin-left: 0rem !important; 387 } 388 389 .padding-top { 390 padding-right: 0rem !important; 391 padding-bottom: 0rem !important; 392 padding-left: 0rem !important; 393 } 394 395 .margin-right { 396 margin-top: 0rem !important; 397 margin-bottom: 0rem !important; 398 margin-left: 0rem !important; 399 } 400 401 .padding-right { 402 padding-top: 0rem !important; 403 padding-bottom: 0rem !important; 404 padding-left: 0rem !important; 405 } 406 407 .margin-bottom { 408 margin-top: 0rem !important; 409 margin-right: 0rem !important; 410 margin-left: 0rem !important; 411 } 412 413 .padding-bottom { 414 padding-top: 0rem !important; 415 padding-right: 0rem !important; 416 padding-left: 0rem !important; 417 } 418 419 .margin-left { 420 margin-top: 0rem !important; 421 margin-right: 0rem !important; 422 margin-bottom: 0rem !important; 423 } 424 425 .padding-left { 426 padding-top: 0rem !important; 427 padding-right: 0rem !important; 428 padding-bottom: 0rem !important; 429 } 430 431 .margin-horizontal { 432 margin-top: 0rem !important; 433 margin-bottom: 0rem !important; 434 } 435 436 .padding-horizontal { 437 padding-top: 0rem !important; 438 padding-bottom: 0rem !important; 439 } 440 441 .margin-vertical { 442 margin-right: 0rem !important; 443 margin-left: 0rem !important; 444 } 445 446 .padding-vertical { 447 padding-right: 0rem !important; 448 padding-left: 0rem !important; 449 } 450 451 .body { 452 background-color: #201e29; 453 background-image: linear-gradient(-180deg, #0e0d1600 34%, #0e0d16 100%), linear-gradient(-180deg, #0e0d1600 34%, #0e0d16 100%), linear-gradient(-180deg, #0e0d1600 34%, #0e0d16 100%); 454 } 455 456 .page-wrapper { 457 background-image: linear-gradient(235deg, #160144, #6035ba 165%); 458 } 459 460 .hero_title, 461 .title-h2, 462 .positive-replies_subtitle_gradient, 463 .item-reasons-2_title, 464 .calculator__title, 465 .login_title { 466 background: linear-gradient(90deg, #FFFFFF 0%, #A58FFF 165%); 467 -webkit-background-clip: text; 468 -webkit-text-fill-color: transparent; 469 padding-bottom: 5px; 470 } 471 472 .condition-hero_title, 473 .gradient-title-h1, 474 .article_title { 475 background: linear-gradient(90deg, #333242 0%, #3C1BBF 100%); 476 -webkit-background-clip: text; 477 -webkit-text-fill-color: transparent; 478 padding-bottom: 5px; 479 } 480 481 .hero_embed { 482 background-image: linear-gradient(-180deg, #ffffff29 0, #ffffff00 100%), linear-gradient(-180deg, #ffffff29 0, #ffffff00 100%); 483 } 484 485 .table-cases_row:nth-child(odd) { 486 background-color: #ffffff08; 487 } 488 489 .table-cases_row:first-child { 490 background-color: transparent; 491 } 492 493 .item-faq_icon-close { 494 display: none; 495 } 496 497 .header_logo-img_light { 498 display: none; 499 } 500 501 @keyframes bouncy { 502 503 0%, 504 100% { 505 transform: translateY(0); 506 } 507 508 20% { 509 transform: translateY(-10px); 510 } 511 512 40% { 513 transform: translateY(0); 514 } 515 516 60% { 517 transform: translateY(-5px); 518 } 519 520 80% { 521 transform: translateY(0); 522 } 523 } 524 525 .title-image_img { 526 animation: bouncy 3.5s ease-in-out infinite; 527 } 528 529 .item-diy_overley-1 { 530 background-image: linear-gradient(-180deg, #ffffff29 0, #ffffff14 100%), linear-gradient(-180deg, #ffffff29 0, #ffffff14 100%), linear-gradient(-180deg, #ffffff29 0, #ffffff14 100%); 531 } 532
533 .item-controls-calculator__handle { 534 background: conic-gradient(#F0F5F2 9%, 535 #CBCBCB 21%, 536 #CBCBCB 31%, 537 #CBCBCB 42%, 538 #F0F5F2 54%, 539 #CBCBCB 66%, 540 #CBCBCB 76%, 541 #F0F5F2 98%); 542 } 543 544 .banner_content .hero_form-wrapper, 545 .exit-popup_inner .hero_form-wrapper { 546 margin-left: 0; 547 margin-right: 0; 548 } 549 550 .custom-modal.visible .modal_content { 551 transform: translateY(0px); 552 } 553 554 .item-plan_item:nth-child(even) { 555 background-color: #fff; 556 box-shadow: unset; 557 border: 1px solid rgba(60, 27, 191, 0.12); 558 } 559 560 .item-plan_domain-item:nth-child(odd) { 561 border-right: 1px solid #E0E7EC; 562 } 563 564 .item-plan_domain-item:nth-last-of-type(-n+2) { 565 border-bottom: 1px solid transparent; 566 } 567 568 .action-plan-hero_logos, 569 .item-positive-replies, 570 .steps_left, 571 .item-faq, 572 .item-replies, 573 .item-replies_cta, 574 .item-plans, 575 .item-diy, 576 .letter_wrapper, 577 .plan_author, 578 .item-different, 579 .time-banner_wrapper, 580 .item-reasons-1, 581 .course-desk_list, 582 .item-testimonials-course { 583 box-shadow: 584 inset 0px 0.43px 0.43px rgba(255, 255, 255, 0.16), 585 inset 0px 0.86px 2.57px rgba(255, 255, 255, 0.12), 586 inset 0px 1.71px 6.86px rgba(255, 255, 255, 0.05), 587 0px 0.43px 0.43px rgba(7, 1, 19, 0.04), 588 0px 0.86px 0.86px rgba(7, 1, 19, 0.04), 589 0px 1.71px 1.71px rgba(7, 1, 19, 0.04); 590 } 591 592 593 .item-positive-replies { 594 position: relative; 595 } 596 597 .item-positive-replies::before { 598 content: ""; 599 position: absolute; 600 top: 0; 601 left: 0; 602 right: 0; 603 bottom: 0; 604 background: linear-gradient(180deg, #FFFFFF, #A58FFF); 605 border-radius: inherit; 606 padding: 0.5px; 607 -webkit-mask: 608 linear-gradient(white, white) content-box, 609 linear-gradient(white, white); 610 -webkit-mask-composite: destination-out; 611 mask-composite: exclude; 612 opacity: 0.2; 613 } 614 615 .gradient-border { 616 position: relative; 617 } 618 619 .gradient-border::before { 620 content: ""; 621 position: absolute; 622 top: 0; 623 left: 0; 624 right: 0; 625 bottom: 0; 626 background: linear-gradient(180deg, #FFFFFF, #A58FFF); 627 border-radius: inherit; 628 padding: 0.5px; 629 -webkit-mask: 630 linear-gradient(white, white) content-box, 631 linear-gradient(white, white); 632 -webkit-mask-composite: destination-out; 633 mask-composite: exclude; 634 opacity: 0.2; 635 } 636 637 .install_wrapper { 638 position: relative; 639 } 640 641 .install_wrapper::before { 642 content: ""; 643 position: absolute; 644 top: 0; 645 left: 0; 646 right: 0; 647 bottom: 0; 648 background: linear-gradient(180deg, #FFFFFF, #A58FFF); 649 border-radius: inherit; 650 padding: 0.5px; 651 -webkit-mask: 652 linear-gradient(white, white) content-box, 653 linear-gradient(white, white); 654 -webkit-mask-composite: destination-out; 655 mask-composite: exclude; 656 opacity: 0.2; 657 } 658 659 .page-tools .banner { 660 background-color: #F8F5FB; 661 } 662 663 .tools-filter_radio::before { 664 display: none; 665 } 666 667 .tools-filter_radio::after { 668 display: none; 669 } 670 671 .tools-filter_acc-head.active svg path { 672 fill: #fff; 673 } 674 675 .tools-filter_radio-label { 676 position: relative; 677 } 678 679 .tools-filter_radio-label::before { 680 content: ""; 681 position: absolute; 682 top: 50%; 683 left: 4px; 684 transform: translateY(-50%); 685 width: 13px; 686 height: 13px; 687 border-radius: 100px; 688 border: 1px solid #525252; 689 flex-shrink: 0; 690 } 691 692 693 .tools-filter_radio-label::after { 694 content: ""; 695 position: absolute; 696 top: 50%; 697 left: 8px; 698 transform: translateY(-50%); 699 width: 7px; 700 height: 7px; 701 border-radius: 100px; 702 background-color: rgba(24, 28, 54, 0.7); 703 transition: all .4s; 704 opacity: 0; 705 } 706 707 .tools-filter_radio:has(input:checked) .tools-filter_radio-label::after { 708 opacity: 1; 709 } 710 711 .tools-filter_acc-close { 712 display: none; 713 } 714 715 .tools-filter_acc-head.active .tools-filter_acc-close { 716 display: block; 717 } 718 719 .tools-filter_acc-head.active .tools-filter_acc-open { 720 display: none; 721 } 722 723 .cta { 724 position: relative; 725 overflow: hidden; 726 } 727 728 .cta_icon { 729 position: relative; 730 transition: transform 0.3s ease-in-out; 731 } 732 733 .cta_icon svg { 734 transition: transform 0.3s ease-in-out; 735 } 736 737 .cta:hover .cta_icon svg { 738 transform: translateY(-60px); 739 } 740 741 .cta_icon::after { 742 content: ""; 743 position: absolute; 744 left: 0; 745 top: 100%; 746 width: 100%; 747 height: 100%; 748 background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAyOCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjUgMTQuNDI3N0MzLjUgMTUuMTUyNiA0LjA4NzYzIDE1Ljc0MDIgNC44MTI1IDE1Ljc0MDJMMjAuMDE4OCAxNS43NDAyTDE3Ljg4NDQgMTcuODc0N0M
748xNy4zNzE5IDE4LjM4NzIgMTcuMzcxOSAxOS4yMTgyIDE3Ljg4NDQgMTkuNzMwOEMxOC4zOTY5IDIwLjI0MzQgMTkuMjI4IDIwLjI0MzQgMTkuNzQwNiAxOS43MzA4TDI0LjExNTYgMTUuMzU1OEMyNC42MjgxIDE0Ljg0MzIgMjQuNjI4MSAxNC4wMTIyIDI0LjExNTYgMTMuNDk5N0wxOS43NDA2IDkuMTI0NjZDMTkuMjI4IDguNjEyMDkgMTguMzk2OSA4LjYxMjA5IDE3Ljg4NDQgOS4xMjQ2NkMxNy4zNzE5IDkuNjM3MjIgMTcuMzcxOSAxMC40NjgyIDE3Ljg4NDQgMTAuOTgwOEwyMC4wMTg4IDEzLjExNTJMNC44MTI1IDEzLjExNTJDNCAxMy4xMTUyIDMuNSAxMy43MDI5IDMuNSAxNC40Mjc3WiIgZmlsbD0id2hpdGUiPjwvcGF0aD4KPC9zdmc+') no-repeat center; 749 background-size: contain; 750 transition: top 0.3s ease-in-out, opacity 0.3s ease-in-out; 751 opacity: 0; 752 } 753 754 .cta:hover .cta_icon::after { 755 top: 0; 756 opacity: 1; 757 } 758 759 @media(max-width: 767px) { 760 .tools_left.visible .tools-filter { 761 transform: translateY(0); 762 } 763 764 .tools-filter::-webkit-scrollbar-thumb { 765 background: #160144; 766 } 767 } 768 769 .login_submit { 770 background-image: linear-gradient(#8f78ff, #523dbc); 771 } 772 773 @keyframes glow { 774 0% { 775 box-shadow: 0 0 0px 3px rgba(52, 199, 89, 0.0); 776 } 777 778 50% { 779 box-shadow: 0 0 0px 6px rgba(52, 199, 89, 0.3); 780 } 781 782 100% { 783 box-shadow: 0 0 0px 3px rgba(52, 199, 89, 0.0); 784 } 785 } 786 787 .demo-hero_clients-head-icon { 788 animation: glow 1.5s infinite ease-in-out; 789 } 790 791 .item-case-studies_link { 792 position: relative; 793 overflow: hidden; 794 } 795 796 .item-case-studies_link-icon { 797 position: relative; 798 transition: transform 0.3s ease-in-out; 799 } 800 801 .item-case-studies_link-icon svg { 802 transition: transform 0.3s ease-in-out; 803 } 804 805 .item-case-studies_link:hover .item-case-studies_link-icon svg { 806 transform: translateY(-60px); 807 } 808 809 .item-case-studies_link-icon::after { 810 content: ""; 811 position: absolute; 812 left: 0; 813 top: 100%; 814 width: 100%; 815 height: 100%; 816 background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNiAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjgxMjUgMTMuMDEzN0MzLjgxMjUgMTMuNjQ3OSA0LjMyNjY3IDE0LjE2MjEgNC45NjA5NCAxNC4xNjIxTDE4LjI2NjUgMTQuMTYyMUwxNi4zOTg5IDE2LjAyOTdDMTUuOTUwNCAxNi40NzgyIDE1Ljk1MDQgMTcuMjA1NCAxNi4zOTg5IDE3LjY1MzlDMTYuODQ3NCAxOC4xMDI0IDE3LjU3NDUgMTguMTAyNCAxOC4wMjMgMTcuNjUzOUwyMS44NTExIDEzLjgyNTdDMjIuMjk5NiAxMy4zNzcyIDIyLjI5OTYgMTIuNjUwMSAyMS44NTExIDEyLjIwMTZMMTguMDIzIDguMzczNDhDMTcuNTc0NSA3LjkyNDk5IDE2Ljg0NzQgNy45MjQ5OSAxNi4zOTg5IDguMzczNDhDMTUuOTUwNCA4LjgyMTk3IDE1Ljk1MDQgOS41NDkxMiAxNi4zOTg5IDkuOTk3NjFMMTguMjY2NSAxMS44NjUyTDQuOTYwOTQgMTEuODY1MkM0LjMyNjY3IDExLjg2NTIgMy44MTI1IDEyLjM3OTQgMy44MTI1IDEzLjAxMzdaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=') no-repeat center; 817 background-size: contain; 818 transition: top 0.3s ease-in-out, opacity 0.3s ease-in-out; 819 opacity: 0; 820 } 821 822 .item-case-studies_link:hover .item-case-studies_link-icon::after { 823 top: 0; 824 opacity: 1; 825 } 826 827 .item-replies_cta { 828 position: relative; 829 overflow: hidden; 830 } 831 832 .item-replies_cta-icon { 833 position: relative; 834 transition: transform 0.3s ease-in-out; 835 } 836 837 .item-replies_cta-icon svg { 838 transition: transform 0.3s ease-in-out; 839 } 840 841 .item-replies_cta:hover .item-replies_cta-icon svg { 842 transform: translateY(-60px); 843 } 844 845 .item-replies_cta-icon::after { 846 content: ""; 847 position: absolute; 848 left: 0; 849 top: 100%; 850 width: 100%; 851 height: 100%; 852 background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNCAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjMyNjEgMC4zNTA1ODZIMTAuMTczMUM5LjgwMDA1IDAuMzUwNTg2IDkuNDk3NCAwLjY1MzIzNSA5LjQ5NzQgMS4wMjYyNEM5LjQ5NzQgMS4zOTkyNSA5LjgwMDA1IDEuNzAxOSAxMC4xNzMxIDEuNzAxOUgxMS42OTVMNi45NTU3NiA2LjQ0MTE3QzYuNjkxODMgNi43MDUxMSA2LjY5MTgzIDcuMTMyNjYgNi45NTU3NiA3LjM5NjZDNy4wODc3MyA3LjUyODU2IDcuMjYwMTcgNy41OTQ1NCA3LjQzMzQ3IDcuNTk0NTRDNy42MDY3OCA3LjU5NDU0IDcuNzc5MjMgNy41Mjg1NiA3LjkxMTE5IDcuMzk2NkwxMi42NTA1IDIuNjU3MzJWNC4xNzkzQzEyLjY1MDUgNC41NTIzMSAxMi45NTMxIDQuODU0OTYgMTMuMzI2MSA0Ljg1NDk2QzEzLjY5OTEgNC44NTQ5NiAxNC4wMDE4IDQuNTUyMzEgMTQuMDAxOCA0LjE3OTNWMS4wMjYyNEMxNC4wMDE4IDAuNjUzMjM1IDEzLjY5OTEgMC4zNTA1ODYgMTMuMzI2MSAwLjM1MDU4NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMi4zODcgMTQuMzQ5OEMxMi43NiAxNC4zNDk4IDEzLjA2MjcgMTQuMDQ3MSAxMy4wNjI3IDEzLjY3NDFWNy44MTg0NUMxMy4wNjI3IDcuNDQ1NDQgMTIuNzYgNy4xNDI3OSAxMi4zODcgNy4xNDI3OUMxMi4wMTQgNy4xNDI3OSAxMS43MTE0IDcuNDQ1NDQgMTEuNzExNCA3LjgxODQ1VjEyLjk5ODVIMS4zNTEzMVYyLjYzODQySDYuOTgxNzhDNy4zNTQ3OSAyLjYzODQyIDcuNjU3NDMgMi4zMzU3NyA3LjY1NzQzIDEuOTYyNzdDNy42NTc0MyAxLjU4OTc2IDcuMzU0NzkgMS4yODcxMSA2Ljk4MTc4IDEuMjg3MTFIMC42NzU2NTZDMC4zMDI2NDkgMS4yODcxMSAwIDEuNTg5NzYgMCAxLjk2Mjc3VjEzLjY3NDFDMCAxNC4wNDcxIDAuMzAyNjQ5IDE0LjM0OTggMC42NzU2NTYgMTQuMzQ5OEgxMi4zODdaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=') no-repeat center; 853 background-size: contain; 854 transition: top 0.3s ease-in-out, opacity 0.3s ease-in-out; 855 opacity: 0; 856 } 857 858 .item-replies_cta:hover .item-replies_cta-icon::after { 859 top: 0; 860 opacity: 1; 861 } 862 863 .demo-hero_head-updated-icon { 864 animation: glow 1.5s infinite ease-in-out; 865 } 866 867 .article_share-icon-check { 868 display: none; 869 } 870 871 .article_share.copied .article_share-icon-check { 872 display: block; 873 } 874 875 .article_share.copied .article_share-icon-uncheck { 876 display: none; 877 } 878 879 .item-different.item-different-2 { 880 box-shadow: 881 inset 0px 0.5px 0.5px rgba(255, 255, 255, 0.16), 882 inset 0px 1px 3px rgba(255, 255, 255, 0.12), 883 inset 0px 2px 8px rgba(255, 255, 255, 0.05); 884 } 885 886 .cta { 887 position: relative; 888 overflow: hidden; 889 transition: 0.3s ease; 890 } 891 892 .cta::before { 893 content: ""; 894 position: absolute; 895 top: -212%; 896 left: -20%; 897 width: 30%; 898 height: 500%; 899 background: rgba(255, 255, 255, 0.4); 900 filter: blur(4px); 901 transform: skewX(-25deg); 902 transition: transform 1s linear; 903 opacity: 0; 904 } 905 906 .cta.animate::before { 907 transform: translateX(400%) rotate(30deg); 908 opacity: 1; 909 } 910 911 @keyframes running-light { 912 0% { 913 transform: translateX(-150%) rotate(30deg); 914 } 915 916 100% { 917 transform: translateX(300%) rotate(30deg); 918 } 919 } 920 921 .download-cta { 922 position: relative; 923 overflow: hidden; 924 transition: 0.3s ease; 925 } 926 927 .download-cta::before { 928 content: ""; 929 position: absolute; 930 top: -212%; 931 left: -20%; 932 width: 30%; 933 height: 500%; 934 background: rgba(255, 255, 255, 0.4); 935 filter: blur(4px); 936 transform: skewX(-25deg); 937 transition: transform 1s linear; 938 opacity: 0; 939 } 940 941 942 .download-cta.animate::before { 943 transform: translateX(400%) rotate(30deg); 944 opacity: 1; 945 } 946 947 .users-email_load-text-icon-close { 948 display: none; 949 } 950 951 .users-email_wrapper.visible .users-email_load-text-icon-close, 952 .testimonials_wrapper.visible .users-email_load-text-icon-close { 953 display: block; 954 } 955 956 .users-email_wrapper.visible .users-email_load-text-icon-open, 957 .testimonials_wrapper.visible .users-email_load-text-icon-open { 958 display: none; 959 } 960 961 .ebook_checkbox-field::after { 962 content: ""; 963 width: 17px; 964 height: 17px; 965 border: 2px solid rgba(82, 82, 82, 0.3); 966 border-radius: 50%; 967 flex-shrink: 0; 968 transition: all .4s; 969 } 970 971 .ebook_checkbox-field::before { 972 content: ""; 973 width: 7px; 974 height: 7px; 975 background-color: rgba(82, 82, 82, 0.5); 976 border-radius: 50%; 977 position: absolute; 978 top: 50%; 979 right: 7px; 980 transform: translateY(-50%); 981 transition: all .4s; 982 opacity: 0; 983 } 984 985 .ebook_checkbox-field:has(input:checked)::before { 986 opacity: 1; 987 } 988 989 .ebook_checkbox-field:has(input:checked)::after { 990 border: 2px solid rgba(82, 82, 82, 0.5); 991 } 992 993 .ebook-inside_content li::before { 994 content: ""; 995 width: 27px; 996 height: 27px; 997 background-image: url("https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/6849ac58905ea00873dea3d8_Frame%202147206717.png"); 998 background-size: contain; 999 background-position: center; 1000 background-repeat: no-repeat; 1001 position: absolute; 1002 top: 0; 1003 left: 0; 1004 } 1005 1006 .header.header_bg .header_overlay { 1007 opacity: 1; 1008 } 1009 1010 /* .item-sub-menu:hover .item-sub-menu_title { 1011 opacity: 0.6; 1012 } 1013 1014 .item-sub-menu:hover .item-sub-menu_text { 1015 opacity: 0.6; 1016 } */ 1017 1018 .footer_overlay { 1019 background-image: 1020 radial-gradient(circle at left, #8566ff0a 0%, #8566ff00 100%), 1021 radial-gradient(circle at right, #8566ff0a 0%, #8566ff00 100%); 1022 } 1023 1024 .sub-menu::before { 1025 content: ""; 1026 position: absolute; 1027 top: -20px; 1028 left: 0; 1029 width: 100%; 1030 height: 30px; 1031 } 1032 1033 .cta-yellow:hover { 1034 box-shadow: 0 0 15px rgba(255, 203, 60, 0.6), 1035 0 0 25px rgba(218, 130, 7, 0.4), 1036 0 0 35px rgba(221, 147, 24, 0.3); 1037 color: #16043c; 1038 text-decoration: none; 1039 1040 } 1041 1042 .steps-3_cta::before { 1043 content: ""; 1044 position: absolute; 1045 inset: 0; 1046 padding: 1.6px; 1047 border-radius: 999px; 1048 background: linear-gradient(to bottom, #8558F2 0%, #8558F2 83%, #B699FE 100%); 1049 -webkit-mask: 1050 linear-gradient(#fff 0 0) content-box, 1051 linear-gradient(#fff 0 0); 1052 -webkit-mask-composite: xor; 1053 mask-composite: exclude; 1054 z-index: -1; 1055 } 1056 1057 .steps-3_cta:hover { 1058 box-shadow: 1059 0 0 15px rgba(99, 46, 228, 0.6), 1060 0 0 25px rgba(99, 46, 228, 0.4), 1061 0 0 35px rgba(99, 46, 228, 0.3); 1062 transform: scale(1.05); 1063 } 1064 1065 @keyframes glow1 { 1066 0% { 1067 box-shadow: 0 0 0px 6px rgba(255, 255, 255, 0.0); 1068 } 1069 1070 50% { 1071 box-shadow: 0 0 0px 6px rgba(255, 255, 255, 0.3); 1072 } 1073 1074 100% { 1075 box-shadow: 0 0 0px 6px rgba(255, 255, 255, 0.0); 1076 } 1077 } 1078 1079 .follow_strapline-icon-wrap { 1080 animation: glow1 1.5s infinite ease-in-out; 1081 } 1082 1083 .loading-meter { 1084 height: 30px; 1085 position: relative; 1086 background: #014343; 1087 border-radius: 25px; 1088 padding: 6px; 1089 box-shadow: inset 0 -1px 1px rgba(255, 255, 255, 0.45); 1090 width: 100%; 1091 margin-left: auto; 1092 margin-right: auto; 1093 margin-bottom: 30px; 1094 } 1095 1096 .loading-meter>.loading-span { 1097 text-align: center; 1098 color: #fff; 1099 line-height: 24px; 1100 display: block; 1101 height: 100%; 1102 border-top-right-radius: 8px; 1103 border-bottom-right-radius: 8px; 1104 border-top-left-radius: 20px; 1105 border-bottom-left-radius: 20px; 1106 background-color: #00AD0C; 1107 position: relative; 1108 overflow: hidden; 1109 } 1110 1111 .loading-meter>.loading-span:after { 1112 content: " "; 1113 position: absolute; 1114 top: 0; 1115 left: 0; 1116 bottom: 0; 1117 right: 0; 1118 background: linear-gradient(-45deg, rgba(0, 0, 0, .05) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, .05) 50%, rgba(0, 0, 0, .05) 75%, transparent 75%, transparent); 1119 z-index: 1; 1120 background-size: 50px 50px; 1121 animation: move 2s linear infinite; 1122 border-top-right-radius: 8px; 1123 border-bottom-right-radius: 8px; 1124 border-top-left-radius: 20px; 1125 border-bottom-left-radius: 20px; 1126 overflow: hidden; 1127 } 1128 1129 @keyframes move { 1130 0% { 1131 background-position: 0 0; 1132 } 1133 1134 100% { 1135 background-position: 50px 50px; 1136 } 1137 } 1138 1139 1140 .cta-green_overlay::before { 1141 content: ''; 1142 position: absolute; 1143 top: 0; 1144 left: -75%; 1145 width: 50%; 1146 height: 100%; 1147 background: linear-gradient(120deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100%); 1148 transform: skewX(-20deg); 1149 animation: shine 2.5s infinite; 1150 pointer-events: none; 1151 } 1152 1153 @keyframes shine { 1154 0% { 1155 left: -75%; 1156 } 1157 1158 100% { 1159 left: 125%; 1160 } 1161 } 1162 1163 .cta-green_icon-wrap { 1164 position: relative; 1165 overflow: hidden; 1166 } 1167 1168 .cta-green_icon { 1169 position: relative; 1170 } 1171 1172 .cta-green_icon .icon { 1173 position: absolute; 1174 transition: transform 0.35s ease; 1175 } 1176 1177 .icon--top { 1178 top: 50%; 1179 left: 50%; 1180 transform: translate(-50%, -50%); 1181 } 1182 1183 .icon--bottom { 1184 top: 50%; 1185 left: 50%; 1186 transform: translate(-50%, 100%); 1187 } 1188 1189 /* HOVER */ 1190 .cta-green:hover .icon--top { 1191 transform: translate(-50%, -200%); 1192 } 1193 1194 .cta-green:hover .icon--bottom { 1195 transform: translate(-50%, -55%); 1196 } 1197 1198 .engineering-title-gradient { 1199 color: transparent; 1200 -webkit-text-fill-color: transparent; 1201 background-image: linear-gradient(135deg, #fff, #c2a4ff); 1202 -webkit-background-clip: text; 1203 background-clip: text; 1204 } 1205 1206 .item-tools-hero_text { 1207 display: -webkit-box; 1208 -webkit-line-clamp: 2; 1209 /* кÑлÑкÑÑÑÑ ÑÑдкÑв */ 1210 -webkit-box-orient: vertical; 1211 overflow: hidden; 1212 text-overflow: ellipsis; 1213 } 1214 1215 1216 /* Flash icon base */
1217 .social-cta-block_flash-icon { 1218 1219 animation: flashPulse 1.5s infinite ease-in-out; 1220 } 1221 1222 /* Purple pulse animation */ 1223 @keyframes flashPulse { 1224 0% { 1225 box-shadow: 0 0 0px 3px rgba(139, 25, 243, 0); 1226 } 1227 1228 50% { 1229 box-shadow: 0 0 0px 6px rgba(139, 25, 243, 0.35); 1230 } 1231 1232 100% { 1233 box-shadow: 0 0 0px 3px rgba(139, 25, 243, 0); 1234 } 1235 } 1236 1237 1238 .social-form_checbox-label::before { 1239 content: ""; 1240 display: block; 1241 width: 18px; 1242 height: 18px; 1243 border-radius: 50%; 1244 border: 1px solid #CED0CE; 1245 flex-shrink: 0; 1246 } 1247 1248 .social-form_checbox-label::after { 1249 content: ""; 1250 display: block; 1251 width: 8px; 1252 height: 8px; 1253 border-radius: 50%; 1254 background: #000; 1255 position: absolute; 1256 top: 50%; 1257 left: 6px; 1258 transform: translateY(-50%); 1259 opacity: 0; 1260 transition: all .4s; 1261 } 1262 1263 .social-form_checbox-wrap:has(input:checked) { 1264 color: #000; 1265 } 1266 1267 .social-form_checbox-wrap:has(input:checked) .social-form_checbox-label::after { 1268 opacity: 1; 1269 } 1270 1271 .title-split-blue { 1272 padding: 2px 0px 1273 } 1274 1275 1276</style></div><div class="page-wrapper"><div class="page-wrapper-overlay"><header class="header"><div class="header_overlay"></div><div class="padding-global"><div class="container-large"><div class="header_wrapper header_wrapper_center"><a href="/thank-you-page" target="_blank" class="header_logo w-inline-block"><img width="170" height="32" alt="Stack Optimise logo with a stylized purple S icon and white text." src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67a4b0de8c572bff612d91d1_stack-optimize-logo.avif" loading="lazy" class="header_logo-img header_logo-img_dark full-size"/><img loading="lazy" src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67ab306923bc3b1503dfc1a9_logo-dark.avif" alt="StackOptimise company logo with stylized 'S' icon." class="header_logo-img header_logo-img_light"/></a></div></div></div></header><main class="main-wrapper"><div class="login"><div class="padding-global"><div class="container-large"><div class="login_wrapper"><div class="login_form-block w-form"><form id="wf-form-login" name="email-form" data-name="Email Form" method="get" data-ms-form="login" class="login_form" data-wf-page-id="67c1c88568f2e51a9197a785" data-wf-element-id="e8ec9a1a-9255-9184-a586-5cddf30cba81" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><div class="login_title">Welcome Back! <br/>Login to Your Account<br/></div><div data-ms-content="members" class="complete-checkout"><a data-ms-content="!paid-plans" data-ms-price:add="prc_gtme-course-tjyz0gt3" href="#" class="message-box w-inline-block"><div class="message-content"><div class="message-icon w-embed"><svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1277<path d="M10 0C4.48 0 0 4.48 0 10C0 15.52 4.48 20 10 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 10 0ZM8 15L3 10L4.41 8.59L8 12.17L15.59 4.58L17 6L8 15Z" fill="currentColor"/> 1278</svg></div><div class="message-text">You already have an account<br/>Click here to <strong>complete checkout. </strong></div></div><div none="" class="message-arrow"><div class="w-embed"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42.39.39 1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1z"/></svg></div></div></a></div><div><div class="login_inputs"><div class="login_input-wrapper"><div class="login_input-label">Email</div><input class="login_input w-input" maxlength="256" name="Email" data-name="Email" placeholder="[email protected]" type="email" id="Email" data-ms-member="email" required=""/></div><div class="login_input-wrapper"><div class="login_input-label">Password</div><input data-show="true" class="login_input w-input" maxlength="256" name="password" data-name="password" placeholder="8+ characters" type="password" id="password" data-ms-member="password" required=""/><a href="/forgot-password" class="login_input-link">Forgot Password</a></div></div><input type="submit" data-wait="Please wait..." id="login-form-btn" class="login_submit w-button" value="Login"/><div class="login_form-text">Don't have an account? <a href="/sign-up" class="login_form-text-link">Sign up</a></div></div><div data-ms-content="members" class="login-complete-wrap"><div data-ms-content="paid-plans" class="login-complete"><h2 class="login_title login-complete_title">You're already logged in</h2><a href="/profile/course" class="cta w-inline-block"><div class="cta_content"><div class="cta_title cta_title-2">Go to the course</div></div><div class="cta_icon w-embed"><svg width="28" height="29" viewBox="0 0 28 29" fill="none" xmlns="http://www.w3.org/2000/svg"> 1279<path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 14.4277C3.5 15.1526 4.08763 15.7402 4.8125 15.7402L20.0188 15.7402L17.8844 17.8747C17.3719 18.3872 17.3719 19.2182 17.8844 19.7308C18.397 20.2434 19.228 20.2434 19.7406 19.7308L24.1156 15.3558C24.6281 14.8432 24.6281 14.0122 24.1156 13.4997L19.7406 9.12466C19.228 8.61209 18.397 8.61209 17.8844 9.12466C17.3719 9.63722
127917.3719 10.4682 17.8844 10.9808L20.0188 13.1152L4.8125 13.1152C4.08763 13.1152 3.5 13.7029 3.5 14.4277Z" fill="white"/> 1280</svg></div></a></div></div></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div></div></div></div></div></main><footer class="footer"><div class="padding-global"><div class="container-large"><div class="footer_wrapper footer_wrapper_center"><div class="footer_top footer_top_center"><div class="footer_content footer_content_center"><a href="/thank-you-page" target="_blank" class="footer_logo w-inline-block"><img width="204" height="37" alt="StackOptimise company logo with stylized S icon." src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67aa00617745b5c1cb58b017_footer-logo.avif" loading="lazy" class="footer_logo-img full-size"/></a><div class="footer_text footer_text_center">StackOptimise is a leading outbound agency helping B2B businesses achieve predictable revenue growth. We use signal-based outreach to deliver personalised outreach at scale and book more meetings with quality leads.</div><div class="footer_parthners"><img width="322" height="115" alt="Three certification badges labeled Clay Expert, Smartlead.ai Certified Partner, and GetSales Certified Expert." src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/67d96686753e517f08699b98_Frame%202147205899%20(1).webp" loading="lazy" class="footer_parthners-img full-size"/></div></div></div><div class="footer_bottom footer_bottom_center"><div class="footer_bottom-left"><a href="https://links.landingpagelabs.co/stackoptimise" target="_blank" class="footer_bottom-text footer_bottom-text_12">Built by Landing Page Labs</a></div><div class="footer_bottom-right"><div class="footer_bottom-text footer_bottom-text_12">Copyright © StackOptimise <span id="footer-year">[year]</span>. All rights reserved.â</div></div></div></div></div></div></footer></div></div>
1280<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=67a3b299626c1a7afb14beb6" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
1280<script src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/js/webflow.schunk.46ec95b3fe36cd24.js" type="text/javascript" integrity="sha384-iyufNF3f7Iiwig21ooQbHpX5Lfjozyv/S+7gyAL8t7DHmOhpLqXKZl2KdFrTMuTF" crossorigin="anonymous"></script>
1280<script src="https://cdn.prod.website-files.com/67a3b299626c1a7afb14beb6/js/webflow.a6cb2761.289b03e25c4760dc.js" type="text/javascript" integrity="sha384-kfZKUcKORw8aAEfXTb8eGxkTK98ngxy8FmmeIIDB41WeGeB8+T474i913jj3GRtT" crossorigin="anonymous"></script>
1280<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
vendor: 1 bytes, line 1280
1280
1281<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
vendor: 1 bytes, line 1281
1281
1282<script type="text/javascript" async src="https://embeds.beehiiv.com/attribution.js"></script>
vendor: 1 bytes, line 1282
1282
1283<script src="https://cdn.jsdelivr.net/npm/@tsparticles/[email protected]/tsparticles.confetti.bundle.min.js"></script>
1283 1284
1285<script> 1286 const iconMenu = document.querySelector('.menu_icon'); 1287 const menuBody = document.querySelector('.header_nav'); 1288 if (iconMenu) { 1289 iconMenu.addEventListener('click', function (e) { 1290 document.body.classList.toggle('_lock'); 1291 iconMenu.classList.toggle('_active'); 1292 menuBody.classList.toggle('_active'); 1293 }) 1294 } 1295 1296 const acc = document.querySelectorAll(".item-faq"); 1297 1298 acc.forEach((accItem) => { 1299 accItem.addEventListener("click", function () { 1300 this.classList.toggle("active"); 1301 const head = this.querySelector('.item-faq_head'); 1302 const panel = this.querySelector('.item-faq_panel'); 1303 panel.classList.toggle("active"); 1304 head.classList.toggle("active"); 1305 if (panel.style.maxHeight) { 1306 panel.style.maxHeight = null; 1307 } else { 1308 panel.style.maxHeight = panel.scrollHeight + 21 + "px"; 1309 } 1310 }); 1311 }); 1312 1313 1314</script>
vendor: 1 bytes, line 1314
1314
1315<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
vendor: 1 bytes, line 1315
1315
1316<script> 1317 var grid = document.querySelector('.testimonials_list-inner'); 1318 var msnry = new Masonry(grid, { 1319 itemSelector: '.item-testimonials', 1320 columnWidth: 380, 1321 gutter: 20, 1322 horizontalOrder: true 1323 }); 1324 1325 const testimonialsLoad = document.querySelector("#testimonials-load"); 1326 const testimonialsContainer = document.querySelector(".testimonials_wrapper"); 1327 1328 if (testimonialsLoad) { 1329 testimonialsLoad.addEventListener("click", function (e) { 1330 testimonialsContainer.classList.toggle("visible"); 1331 setTimeout(() => { 1332 msnry.reloadItems(); 1333 msnry.layout(); 1334 }, 300); 1335 }); 1336 } 1337 1338 const team_swiper = new Swiper("#team_swiper", { 1339 slidesPerView: "auto", 1340 spaceBetween: 30, 1341 loop: true, 1342 loopAdditionalSlides: 60, 1343 autoplay: { 1344 delay: 0, 1345 disableOnInteraction: false, 1346 }, 1347 speed: 10000, 1348 }); 1349 1350 1351 const linkedin_swiper = new Swiper("#linkedin-swiper", { 1352 slidesPerView: 1, 1353 spaceBetween: 0, 1354 navigation: { 1355 nextEl: "#linkedin_next", 1356 prevEl: "#linkedin_prev", 1357 }, 1358 pagination: { 1359 el: "#linkedin_pag", 1360 }, 1361 breakpoints: { 1362 640: { 1363 slidesPerView: 3, 1364 spaceBetween: 14, 1365 }, 1366 }, 1367 }); 1368 1369</script>
1369 1370
1371<script> 1372 document.addEventListener("DOMContentLoaded", function () { 1373 const wrappers = document.querySelectorAll('.w-form[data-confetti="true"]'); 1374 1375 if (!wrappers.length) return; 1376 1377 wrappers.forEach((wrapper) => { 1378 const form = wrapper.querySelector("form"); 1379 const successEl = wrapper.querySelector(".w-form-done"); 1380 1381 if (!form || !successEl) return; 1382 1383 let confettiFired = false; 1384 1385 function triggerConfettiOnce() { 1386 if (confettiFired) return; 1387 confettiFired = true; 1388 1389 1390 startConfetti(wrapper); 1391 } 1392 1393 form.addEventListener("submit", function () { 1394 confettiFired = false; 1395 }); 1396 1397 const observer = new MutationObserver((mutations) => { 1398 mutations.forEach((mutation) => { 1399 if (mutation.type === "attributes" && mutation.attributeName === "style") { 1400 const isVisible = window.getComputedStyle(successEl).display !== "none"; 1401 if (isVisible) { 1402 triggerConfettiOnce(); 1403 } 1404 } 1405 }); 1406 }); 1407 1408 observer.observe(successEl, { 1409 attributes: true, 1410 attributeFilter: ["style"], 1411 }); 1412 }); 1413 1414 1415 function startConfetti(form) { 1416 const duration = 2 * 1000; 1417 const animationEnd = Date.now() + duration; 1418 const defaults = { startVelocity: 30, spread: 360, ticks: 20, zIndex: 1000 }; 1419 1420 function randomInRange(min, max) { 1421 return Math.random() * (max - min) + min; 1422 } 1423 1424 const interval = setInterval(function () { 1425 const timeLeft = animationEnd - Date.now(); 1426 1427 if (timeLeft <= 0) { 1428 return clearInterval(interval); 1429 } 1430 1431 const particleCount = 20 * (timeLeft / duration); 1432 1433 const rect = form.getBoundingClientRect(); 1434 const xPos = (rect.left + rect.right) / 2 / window.innerWidth; 1435 1436 confetti(Object.assign({}, defaults, { 1437 particleCount, 1438 origin: { x: xPos - 0.1, y: 0.3 } 1439 })); 1440 confetti(Object.assign({}, defaults, { 1441 particleCount, 1442 origin: { x: xPos + 0.1, y: 0.3 } 1443 })); 1444 }, 250); 1445 } 1446 }); 1447</script>
1447 1448 1449
1450<script> 1451 function setCookie(name, value, days) { 1452 let date = new Date(); 1453 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 1454 let expires = "expires=" + date.toUTCString(); 1455 document.cookie = name + "=" + value + ";" + expires + ";path=/"; 1456 } 1457 1458 function getCookie(name) { 1459 let nameEQ = name + "="; 1460 let ca = document.cookie.split(';'); 1461 for (let i = 0; i < ca.length; i++) { 1462 let c = ca[i].trim(); 1463 if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); 1464 } 1465 return null; 1466 } 1467 1468 function hideConsentBanner() { 1469 const consentBanner = document.querySelector('.fs-consent_component'); 1470 if (consentBanner) { 1471 consentBanner.style.display = 'none'; 1472 } 1473 } 1474 1475 if (getCookie('cookieConsent') === 'true') { 1476 hideConsentBanner(); 1477 } 1478 1479 const allowButton = document.querySelector('.fs-consent_allow'); 1480 if (allowButton) { 1481 allowButton.addEventListener('click', function (e) { 1482 e.preventDefault(); 1483 setCookie('cookieConsent', 'true', 30); 1484 hideConsentBanner(); 1485 }); 1486 } 1487 1488 const closeButton = document.querySelector('.f
1488s-consent_close'); 1489 if (closeButton) { 1490 closeButton.addEventListener('click', function (e) { 1491 e.preventDefault(); 1492 hideConsentBanner(); 1493 }); 1494 } 1495 1496 document.addEventListener("scroll", function () { 1497 const header = document.querySelector(".header"); 1498 if (header) { 1499 if (window.scrollY > 100) { 1500 header.classList.add("header_bg"); 1501 } else { 1502 header.classList.remove("header_bg"); 1503 } 1504 } 1505 }); 1506 1507 document.addEventListener("DOMContentLoaded", function () { 1508 document.querySelectorAll(".item-replies_cta").forEach(function (cta) { 1509 cta.addEventListener("click", function (event) { 1510 event.preventDefault(); 1511 const parent = this.closest(".item-replies_right"); 1512 if (!parent) return; 1513 const imageLink = parent.querySelector(".item-replies_image"); 1514 if (imageLink) imageLink.click(); 1515 }); 1516 }); 1517 }); 1518 1519</script>
1519 1520
1521<script> 1522 // Function to get URL parameters 1523 function getUrlParameter(name) { 1524 name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); 1525 var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); 1526 var results = regex.exec(location.search); 1527 return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); 1528 } 1529 1530 // Store UTM parameters in session storage 1531 if (getUrlParameter('utm_source')) { 1532 sessionStorage.setItem('utm_source', getUrlParameter('utm_source')); 1533 sessionStorage.setItem('utm_medium', getUrlParameter('utm_medium')); 1534 sessionStorage.setItem('utm_campaign', getUrlParameter('utm_campaign')); 1535 sessionStorage.setItem('utm_term', getUrlParameter('utm_term')); 1536 sessionStorage.setItem('utm_content', getUrlParameter('utm_content')); 1537 } 1538 1539 // Append UTM parameters to all internal links 1540 document.querySelectorAll('a').forEach(function (anchor) { 1541 anchor.addEventListener('click', function (event) { 1542 var utmParams = [ 1543 sessionStorage.getItem('utm_source') ? 'utm_source=' + sessionStorage.getItem('utm_source') : '', 1544 sessionStorage.getItem('utm_medium') ? 'utm_medium=' + sessionStorage.getItem('utm_medium') : '', 1545 sessionStorage.getItem('utm_campaign') ? 'utm_campaign=' + sessionStorage.getItem('utm_campaign') : '', 1546 sessionStorage.getItem('utm_term') ? 'utm_term=' + sessionStorage.getItem('utm_term') : '', 1547 sessionStorage.getItem('utm_content') ? 'utm_content=' + sessionStorage.getItem('utm_content') : '' 1548 ].filter(Boolean).join('&'); 1549 1550 if (utmParams) { 1551 var href = anchor.getAttribute('href'); 1552 if (href.indexOf('?') > -1) { 1553 anchor.setAttribute('href', href + '&' + utmParams); 1554 } else { 1555 anchor.setAttribute('href', href + '?' + utmParams); 1556 } 1557 } 1558 }); 1559 }); 1560 document.addEventListener("DOMContentLoaded", function (e) { 1561 const newslettersModal = document.querySelector(".newsletter-modal"); 1562 const newslettersModalOpen = document.querySelectorAll("#modal-open-newsletters"); 1563 const newslettersModalClose = document.querySelector(".newsletter-modal_close"); 1564 const newslettersModalOverlay = document.querySelector(".newsletter-modal_overlay"); 1565 1566 function openModal() { 1567 newslettersModal.classList.add("visible"); 1568 document.body.classList.add("_lock"); 1569 } 1570 1571 function closeModal() { 1572 newslettersModal.classList.remove("visible"); 1573 document.body.classList.remove("_lock"); 1574 } 1575 1576 newslettersModalOpen.forEach(el => { 1577 el.addEventListener("click", openModal); 1578 }); 1579 1580 newslettersModalClose.addEventListener("click", closeModal); 1581 newslettersModalOverlay.addEventListener("click", closeModal); 1582 }) 1583 1584 document.addEventListener('DOMContentLoaded', function () { 1585 const yearElement = document.getElementById('footer-year'); 1586 if (yearElement) { 1587 yearElement.textContent = new Date().getFullYear(); 1588 } 1589 }); 1590 1591 1592 1593 1594 const courseMenu = document.querySelector(".course_nav"); 1595 const courseIcon = document.querySelector(".course-header_icon"); 1596 const courseOverlay = document.querySelector(".course_mobile-overlay"); 1597 1598 courseIcon.addEventListener("click", function (e) { 1599 courseMenu.classList.toggle("visible"); 1600 courseIcon.classList.toggle("active"); 1601 courseOverlay.classList.toggle("visible"); 1602 }) 1603 1604 courseOverlay.addEventListener("click", function (e) { 1605 courseMenu.classList.remove("visible"); 1606 courseIcon.classList.remove("active"); 1607 courseOverlay.classList.remove("visible"); 1608 }) 1609 1610</script>
1610 1611
1612<script> 1613 var Webflow = Webflow || []; 1614 Webflow.push(function () { 1615 //DISABLE WEBFLOW SMOOTH SCROLL 1616 $(function () { 1617 $(document).off('click.wf-scroll'); 1618 }); 1619 }); 1620 1621 1622 function toggleAnimation() { 1623 document.querySelectorAll('.cta').forEach(button => { 1624 button.classList.add('animate'); 1625 setTimeout(() => { 1626 button.classList.remove('animate'); 1627 }, 1000); 1628 }); 1629 } 1630 1631 setInterval(toggleAnimation, 4500); 1632 1633 function toggleAnimation2() { 1634 document.querySelectorAll('.download-cta').forEach(button => { 1635 button.classList.add('animate'); 1636 setTimeout(() => { 1637 button.classList.remove('animate'); 1638 }, 1000); 1639 }); 1640 } 1641 1642 setInterval(toggleAnimation2, 4500); 1643 1644</script>
1644 1645<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1645-1646
1645 1646<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1646GTM-5549VDLV
vendor: 85 bytes, lines 1646-1647
1646" height="0" width="0" 1647 style="display:none;visibility:hidden"></iframe></noscript>
1648<!-- End Google Tag Manager (noscript) --> 1649
1650<script> 1651const tutorialModal = document.getElementById('tutorial-modal'); 1652const tutorialOpenBtn = document.getElementById('open-tutoriald-video'); 1653const tutorialOpenBtn2 = document.getElementById('open-tutoriald-video-2'); 1654const tutorialOpenBtn3 = document.getElementById('open-tutoriald-video-3'); 1655const tutorialOpenBtn4 = document.getElementById('open-tutoriald-video-4'); 1656const tutorialCloseBtn = document.getElementById('tutorial-modal_close'); 1657const tutorialOverlay = document.getElementById('tutorial-modal_overlay'); 1658 1659// ÐлобалÑна змÑнна Ð´Ð»Ñ Plyr плеÑÑа модалки 1660let tutorialPlayer; 1661 1662function showTutorialModal() { 1663 if (!tutorialModal) return; 1664 1665 tutorialModal.classList.add('visible'); 1666 1667 if (tutorialPlayer) { 1668 tutorialPlayer.play(); 1669 } 1670} 1671 1672function hideTutorialModal() { 1673 if (!tutorialModal) return; 1674 1675 tutorialModal.classList.remove('visible'); 1676 1677 if (tutorialPlayer) { 1678 tutorialPlayer.pause(); 1679 tutorialPlayer.currentTime = 0; 1680 } 1681} 1682 1683// OPEN BUTTONS 1684tutorialOpenBtn?.addEventListener('click', showTutorialModal); 1685tutorialOpenBtn2?.addEventListener('click', showTutorialModal); 1686tutorialOpenBtn3?.addEventListener('click', showTutorialModal); 1687tutorialOpenBtn4?.addEventListener('click', showTutorialModal); 1688 1689// CLOSE 1690tutorialCloseBtn?.addEventListener('click', hideTutorialModal); 1691tutorialOverlay?.addEventListener('click', hideTutorialModal); 1692 1693// ESC 1694document.addEventListener('keydown', function (event) { 1695 if (event.key === 'Escape' && tutorialModal?.classList.contains('visible')) { 1696 hideTutorialModal(); 1697 } 1698}); 1699</script>
1699 1700
1701<script src="https://cdn.plyr.io/3.7.2/plyr.js"></script>
vendor: 1 bytes, line 1701
1701
1702<script> 1703 $(".plyr_component").each(function (index) { 1704 let thisComponent = $(this); 1705 1706 // ÑÑвоÑÑÑмо плеÑÑ 1707 let player = new Plyr(thisComponent.find(".plyr_video")[0], { 1708 controls: ["play", "progress", "current-time", "mute", "fullscreen"], 1709 resetOnEnd: true 1710 }); 1711 1712 // ÑкÑо Ñе плеÑÑ Ð· модалки â збеÑÑгаÑмо 1713 if (thisComponent.closest('#tutorial-modal').length) { 1714 tutorialPlayer = player; 1715 } 1716 1717 thisComponent.find(".plyr_cover").on("click", function () { 1718 player.play(); 1719 }); 1720 1721 player.on("ended", () => { 1722 thisComponent.removeClass("hide-cover"); 1723 }); 1724 1725 player.on("play", () => { 1726 $(".plyr_component").removeClass("hide-cover"); 1727 thisComponent.addClass("hide-cover"); 1728 let prevPlayingComponent = $(".plyr--playing").closest(".plyr_component").not(thisComponent); 1729 if (prevPlayingComponent.length > 0) { 1730 prevPlayingComponent.find(".plyr_pause-trigger")[0].click(); 1731 } 1732 }); 1733 1734 thisComponent.find(".plyr_pause-trigger").on("click", function () { 1735 player.pause(); 1736 }); 1737 1738 player.on("ended", () => { 1739 if (player.fullscreen.active) { 1740 player.fullscreen.exit(); 1741 } 1742 }); 1743 1744 player.on("enterfullscreen", () => { 1745 thisComponent.addClass("contain-video"); 1746 }); 1747 1748 player.on("exitfullscreen", () => { 1749 thisComponent.removeClass("contain-video"); 1750 }); 1751 }); 1752 1753 document.addEventListener('DOMContentLoaded', function () { 1754 // ФÑнкÑÑÑ Ð´Ð»Ñ Ð¿ÐµÑевÑÑки ÑиÑини екÑÐ°Ð½Ñ 1755 function isMobile() { 1756 return window.innerWidth < 991; 1757 } 1758 1759 // ÐбÑобник клÑÐºÑ 1760 function handleDropdownClick() { 1761 if (!isMobile()) return; // ÐиконÑÑмо ÑÑлÑки Ð´Ð»Ñ Ð¼Ð¾Ð±ÑлÑÐ½Ð¸Ñ Ð¿ÑиÑÑÑоÑв 1762 1763 const subMenu = this.querySelector('.sub-menu'); 1764 if (subMenu) { 1765 subMenu.classList.toggle('visible'); 1766 this.classList.toggle('active'); 1767 } 1768 } 1769 1770 // ÐодаÑмо обÑобники клÑÐºÑ Ð´Ð»Ñ Ð²ÑÑÑ dropdown елеменÑÑв 1771 const dropdownItems = document.querySelectorAll('.header_menu-item-drop-down'); 1772 dropdownItems.forEach(item => { 1773 item.addEventListener('click', handleDropdownClick); 1774 }); 1775 1776 // ÐодаÑкова пеÑевÑÑка пÑи змÑÐ½Ñ ÑозмÑÑÑ Ð²Ñкна 1777 window.addEventListener('resize', function () { 1778 if (!isMobile()) { 1779 // ÐидалÑÑмо клаÑи, ÑкÑо ÑозмÑÑ ÐµÐºÑÐ°Ð½Ñ ÑÑав бÑлÑÑе 991px 1780 dropdownItems.forEach(item => { 1781 item.classList.remove('active'); 1782 const subMenu = item.querySelector('.sub-menu'); 1783 if (subMenu) subMenu.classList.remove('visible'); 1784 }); 1785 } 1786 }); 1787 }); 1788 1789 const swiperFooter = new Swiper("#swiperFooter", { 1790 loop: true, 1791 pagination: { 1792 el: ".swiperfooter-pag", 1793 }, 1794 autoplay: { 1795 delay: 20000, 1796 disableOnInteraction: false, // autoplay continues after user swipe 1797 }, 1798 }); 1799 document.getElementById('go-to-reviews').addEventListener('click', function (e) { 1800 e.preventDefault(); 1801 const section = document.getElementById('section-review'); 1802 1803 if (section) { 1804 section.scrollIntoView({ behavior: 'smooth' }); 1805 } else { 1806 window.location.href = '/#section-review'; 1807 } 1808 }); 1809 1810</script>
1810 1811
1812<script> 1813 document.addEventListener("DOMContentLoaded", function () { 1814 const forms = document.querySelectorAll("form[data-email-validate]"); 1815 1816 if (!forms.length) return; 1817 1818 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 1819 1820 forms.forEach((form) => { 1821 const emailInputs = form.querySelectorAll('input[type="email"]'); 1822 const errorEl = form.querySelector(".hero_form-error"); 1823 1824 if (!emailInputs.length) return; 1825 1826 // ÐÑи Ð²Ð²Ð¾Ð´Ñ Ñ Ð¾Ð²Ð°Ñмо Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ 1827 emailInputs.forEach((input) => { 1828 input.addEventListener("input", () => { 1829 if (!errorEl) return; 1830 1831 const value = input.value.trim(); 1832 if (emailRegex.test(value)) { 1833 errorEl.classList.remove("visible"); 1834 } 1835 }); 1836 }); 1837 1838 form.addEventListener("submit", function (e) { 1839 let hasError = false; 1840 1841 if (errorEl) { 1842 errorEl.classList.remove("visible"); 1843 } 1844 1845 emailInputs.forEach((input) => { 1846 const value = input.value.trim(); 1847 if (!emailRegex.test(value)) { 1848 hasError = true; 1849 } 1850 }); 1851 1852 if (hasError) { 1853 e.preventDefault(); 1854 e.stopPropagation(); 1855 1856 // ÑокÑÑ Ð½Ð° пеÑÑий невалÑдний email 1857 const firstInvalid = Array.from(emailInputs).find( 1858 (input) => !emailRegex.test(input.value.trim()) 1859 ); 1860 if (firstInvalid) firstInvalid.focus(); 1861 1862 if (errorEl) { 1863 errorEl.classList.add("visible"); 1864 } 1865 1866 return false; 1867 } 1868 }); 1869 }); 1870 }); 1871</script>
vendor: 1 bytes, line 1871
1871
1872<script> 1873 document.addEventListener("DOMContentLoaded", () => { 1874 const forms = document.querySelectorAll("form"); 1875 1876 forms.forEach((form) => { 1877 const submittingEl = form.querySelector("[submitting-text]"); 1878 if (!submittingEl) return; 1879 1880 const getText = (el) => { 1881 // ÑкÑо Ñе input/textarea 1882 if ("value" in el) return el.value; 1883 return (el.textContent || "").trim(); 1884 }; 1885 1886 const setText = (el, text) => { 1887 if ("value" in el) el.value = text; 1888 else el.textContent = text; 1889 }; 1890 1891 // запамâÑÑовÑÑмо оÑигÑналÑний ÑекÑÑ 1 Ñаз 1892 if (!submittingEl.dataset.originalText) { 1893 submittingEl.dataset.originalText = getText(submittingEl); 1894 } 1895 1896 const submitBtn = form.querySelector("[type='submit']"); 1897 const submittingText = submittingEl.getAttribute("submitting-text"); 1898 1899 form.addEventListener("submit", () => { 1900 // мÑнÑÑмо ÑекÑÑ 1901 if (submittingText) setText(submittingEl, submittingText); 1902 1903 // опÑÑйно: блокÑÑмо ÑабмÑÑ, Ñоб не бÑло дабл-клÑкÑв 1904 if (submitBtn) { 1905 submitBtn.disabled = true; 1906 submitBtn.style.pointerEvents = "none"; 1907 } 1908 1909 form.classList.add("is-submitting"); 1910 }); 1911 1912 // ÑкÑо Webflow показав Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ (.w-form-fail) â повеÑÑаÑмо вÑе назад 1913 const wrapper = form.closest(".w-form"); 1914 const failBox = wrapper ? wrapper.querySelector(".w-form-fail") : null; 1915 1916 if (failBox) { 1917 const mo = new MutationObserver(() => { 1918 const isVisible = failBox.offsetParent !== null; // видимий в DOM 1919 if (isVisible) { 1920 setText(submittingEl, submittingEl.dataset.originalText || ""); 1921 if (submitBtn) { 1922 submitBtn.disabled = false; 1923 submitBtn.style.pointerEvents = ""; 1924 } 1925 form.classList.remove("is-submitting"); 1926 } 1927 }); 1928 1929 mo.observe(failBox, { attributes: true, attributeFilter: ["class", "style"] }); 1930 } 1931 }); 1932 }); 1933</script>
1933 1934</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.