{"id":4919,"date":"2024-07-29T11:23:27","date_gmt":"2024-07-29T11:23:27","guid":{"rendered":"https:\/\/contester.net\/?page_id=4919"},"modified":"2026-06-29T10:55:49","modified_gmt":"2026-06-29T10:55:49","slug":"contester-video-commerce","status":"publish","type":"page","link":"https:\/\/contester.net\/","title":{"rendered":"Contester platform"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4919\" class=\"elementor elementor-4919\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7a08900 e-con-full e-flex e-con e-parent\" data-id=\"7a08900\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-45ffc5b elementor-widget elementor-widget-html\" data-id=\"45ffc5b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\n  Contester Hero + Solutions + Trusted - Elementor HTML Widget\n  Requirements:\n  - Site Motion plugin active.\n  - Paste this whole block into one Elementor HTML widget.\n  - Keep Elementor Motion Effects off for this widget\/container.\n-->\n\n<div class=\"ct-scroll-story-elementor\" id=\"ct-story\">\n  <span class=\"motion-reveal ct-motion-loader\" aria-hidden=\"true\"><\/span>\n\n  <header class=\"ct-floating-nav\" aria-label=\"Primary navigation\">\n    <a class=\"ct-wordmark\" href=\"#ct-hero\" aria-label=\"Contester home\">\n      <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2025\/08\/white-png-small.png\" alt=\"Contester\">\n    <\/a>\n\n    <nav aria-label=\"Primary\">\n      <a href=\"#solutions\">Solutions<\/a>\n      <a href=\"#features\">Features<\/a>\n      <a href=\"#strategy\">Strategy<\/a>\n    <\/nav>\n\n    <a class=\"ct-nav-cta\" href=\"#contester-wizard-modal\" data-ct-open-wizard aria-haspopup=\"dialog\">Work with us<\/a>\n  <\/header>\n\n  <section class=\"ct-hero-elementor\" id=\"ct-hero\">\n    <div class=\"ct-hero-stage\">\n      <div class=\"ct-hero-media\" aria-hidden=\"true\">\n        <video autoplay muted loop playsinline preload=\"metadata\">\n          <source src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/bg-video01.mp4\" type=\"video\/mp4\">\n        <\/video>\n        <div class=\"ct-hero-wash\"><\/div>\n      <\/div>\n\n      <h1 class=\"ct-hero-title\">\n        <span>Make Your<\/span>\n        <span class=\"ct-content-line\">\n          <span class=\"ct-word-slot\" aria-live=\"polite\">\n            <b class=\"ct-rotating-word\">Branded<\/b>\n          <\/span>\n          <span class=\"ct-content-word\">Content<\/span>\n        <\/span>\n        <span>Perform<\/span>\n      <\/h1>\n\n      <a class=\"ct-hero-learn\" href=\"#solutions\">\n        <span>Learn more<\/span>\n        <i><\/i>\n      <\/a>\n\n      <div class=\"ct-hero-proof\">\n        <p>Used by hundreds of top companies<\/p>\n        <p>Nike, Samsung, Awin, impact, Rakuten, Liz Earle, Uniqlo, SharkNinja<\/p>\n      <\/div>\n\n      <div class=\"ct-hero-handoff\" aria-hidden=\"true\">\n        <span>Solutions<\/span>\n        <span>Creator Native<\/span>\n        <span>Media Live<\/span>\n        <span>Publisher Share<\/span>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"ct-solutions-elementor\" id=\"solutions\">\n    <div class=\"ct-solutions-stage\">\n      <div class=\"ct-section-kicker\">Solutions<\/div>\n\n      <div class=\"ct-solution-tabs\" role=\"tablist\" aria-label=\"Solution categories\">\n        <button class=\"is-active\" type=\"button\" data-ct-solution-tab=\"0\" role=\"tab\" aria-selected=\"true\">Creator Native<\/button>\n        <button type=\"button\" data-ct-solution-tab=\"1\" role=\"tab\" aria-selected=\"false\">Media Live<\/button>\n        <button type=\"button\" data-ct-solution-tab=\"2\" role=\"tab\" aria-selected=\"false\">Publisher Share<\/button>\n      <\/div>\n\n      <div class=\"ct-solutions-window\">\n        <div class=\"ct-solutions-strip\">\n          <article class=\"ct-solution-card is-active\">\n            <div class=\"ct-solution-image ct-solution-image-creator\" aria-hidden=\"true\"><\/div>\n            <div class=\"ct-solution-tint ct-tint-blue\"><\/div>\n            <div class=\"ct-solution-copy\">\n              <h2>Empower your creator partnerships<br>with dynamic live commerce tools<\/h2>\n              <p>Up to 1000% higher performance<\/p>\n              <div class=\"ct-solution-meta\">\n                <span>Used by<\/span>\n                <b>Your Creators<\/b>\n              <\/div>\n              <a href=\"#trusted\">Learn more <span>+<\/span><\/a>\n            <\/div>\n          <\/article>\n\n          <article class=\"ct-solution-card\">\n            <div class=\"ct-solution-image ct-solution-image-media\" aria-hidden=\"true\"><\/div>\n            <div class=\"ct-solution-tint ct-tint-rose\"><\/div>\n            <div class=\"ct-solution-copy\">\n              <h2>Give your marketing team<br>the best social commerce tools<\/h2>\n              <p>Get up to 300% higher performance<\/p>\n              <div class=\"ct-solution-meta\">\n                <span>Used by<\/span>\n                <b>Your Marketing team<\/b>\n              <\/div>\n              <a href=\"#trusted\">Learn more <span>+<\/span><\/a>\n            <\/div>\n          <\/article>\n\n          <article class=\"ct-solution-card\">\n            <div class=\"ct-solution-image ct-solution-image-publisher\" aria-hidden=\"true\"><\/div>\n            <div class=\"ct-solution-tint ct-tint-sage\"><\/div>\n            <div class=\"ct-solution-copy\">\n              <h2>Give your website publishers<br>interactive assets instead of banners<\/h2>\n              <p>Empower your affiliate publishers<\/p>\n              <div class=\"ct-solution-meta\">\n                <span>Used by<\/span>\n                <b>Your affiliate publishers<\/b>\n              <\/div>\n              <a href=\"#trusted\">Learn more <span>+<\/span><\/a>\n            <\/div>\n          <\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"ct-solution-progress\" aria-hidden=\"true\">\n        <span class=\"is-active\"><\/span><span><\/span><span><\/span>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"ct-trusted-section\" id=\"trusted\">\n    <div class=\"ct-trusted-stage\">\n      <div class=\"ct-trusted-heading\">\n        <h2>Trusted by top brands, agencies and creators<\/h2>\n      <\/div>\n\n      <div class=\"ct-contester-marquee\">\n        <div class=\"ct-contester-track\">\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/The-Sole-Supplier.jpg\" alt=\"The Sole Supplier for Nike\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">The Sole Supplier<\/div>\n              <div class=\"ct-brand-pill\">Nike<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Marco.jpg\" alt=\"Marco for Samsung\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">Marco<\/div>\n              <div class=\"ct-brand-pill\">Samsung<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Ellie.jpg\" alt=\"Ellie Jackson for Liz Earle\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">Ellie Jackson<br>by Jaide Management<\/div>\n              <div class=\"ct-brand-pill\">Liz Earle<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Sneakerjagers.jpg\" alt=\"Sneakerjagers for Nike\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">Sneakerjagers<\/div>\n              <div class=\"ct-brand-pill\">Nike<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Kym.jpg\" alt=\"Kym by Vamp for Samsung\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">Kym<br>by Vamp<\/div>\n              <div class=\"ct-brand-pill\">Samsung<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Pedro.jpg\" alt=\"Pedro for Nike\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">Pedro<\/div>\n              <div class=\"ct-brand-pill\">Nike<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n\n          <article class=\"ct-contester-card\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Mishurba1.png\" alt=\"Mishurba by Notmanagement for Samsung\">\n            <div class=\"ct-card-overlay\"><\/div>\n            <div class=\"ct-card-copy\">\n              <div class=\"ct-creator-name\">Mishurba<br>by Notmanagement<\/div>\n              <div class=\"ct-brand-pill\">Samsung<\/div>\n            <\/div>\n            <div class=\"ct-solution-pill\">Creator Native<\/div>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"ct-features-story\" id=\"features\">\n    <div class=\"ct-features-stage\">\n      <div class=\"ct-feature-copy-window\">\n        <div class=\"ct-feature-copy-track\">\n          <button class=\"ct-feature-tab is-active\" type=\"button\" data-ct-feature-tab=\"0\" aria-pressed=\"true\">\n            <strong>Shoppable journeys<\/strong>\n            <span>Simple and effective solution<\/span>\n          <\/button>\n          <button class=\"ct-feature-tab\" type=\"button\" data-ct-feature-tab=\"1\" aria-pressed=\"false\">\n            <strong>Channel feed<\/strong>\n            <span>Engaging scrollable feeds<\/span>\n          <\/button>\n          <button class=\"ct-feature-tab\" type=\"button\" data-ct-feature-tab=\"2\" aria-pressed=\"false\">\n            <strong>DM automation<\/strong>\n            <span>Engage beyond bio and story link<\/span>\n          <\/button>\n          <button class=\"ct-feature-tab\" type=\"button\" data-ct-feature-tab=\"3\" aria-pressed=\"false\">\n            <strong>Live shopping features<\/strong>\n            <span>Both branded and creator led<\/span>\n          <\/button>\n          <div class=\"ct-feature-tab ct-feature-tab-end\" aria-hidden=\"true\">\n            <strong>Many more ...<\/strong>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"ct-feature-visual-window\" aria-live=\"polite\">\n        <div class=\"ct-feature-visual-track\">\n          <article class=\"ct-feature-card ct-feature-card-shop is-active\" data-ct-feature-card=\"0\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Shoppable-journeys01.jpg\" alt=\"Shoppable journeys\">\n          <\/article>\n          <article class=\"ct-feature-card ct-feature-card-feed\" data-ct-feature-card=\"1\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Channel01-scaled.jpg\" alt=\"Channel feed\">\n          <\/article>\n          <article class=\"ct-feature-card ct-feature-card-dm\" data-ct-feature-card=\"2\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/DM-automation.jpg\" alt=\"DM automation\">\n          <\/article>\n          <article class=\"ct-feature-card ct-feature-card-live\" data-ct-feature-card=\"3\">\n            <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Live-stream-features01.jpg\" alt=\"Live shopping features\">\n          <\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"ct-feature-counter\" aria-hidden=\"true\">\n        <span class=\"ct-feature-current\">01<\/span>\n        <i><\/i>\n        <span>04<\/span>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"ct-stand-story\" id=\"strategy\">\n    <div class=\"ct-stand-stage\">\n      <div class=\"ct-stand-intro\">\n        <h2>Stand Out<\/h2>\n        <p>Unique strategies that come with the technology<\/p>\n        <a href=\"#contact\">Learn more <span>+<\/span><\/a>\n      <\/div>\n\n      <div class=\"ct-strategy-rotator\" aria-live=\"polite\">\n        <h3>Watch and Engage CTA<\/h3>\n        <p>10x more engagement vs shop CTA<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"ct-footer-story\" id=\"contact\">\n    <div class=\"ct-footer-stage\">\n      <div class=\"ct-award-row\">\n        <p>Best Innovator<br>Awin Awards<br>2023<\/p>\n        <p>Global performance marketing award<br>Best use of social commerce<br>2024<\/p>\n        <p>Best tech partner nominee<br>Awin Awards<br>2024<\/p>\n      <\/div>\n\n      <div class=\"ct-footer-main\">\n        <div class=\"ct-footer-message\">\n          <h2>\n            <span>Make your<\/span>\n            <span class=\"ct-footer-content-line\"><span class=\"ct-footer-rotating-word\" aria-live=\"polite\">Branded<\/span><span class=\"ct-footer-content-word\">Content<\/span><\/span>\n            <span>Perform<\/span>\n          <\/h2>\n          <a class=\"ct-footer-cta\" href=\"#contester-wizard-modal\" data-ct-open-wizard aria-haspopup=\"dialog\">Contact us<\/a>\n        <\/div>\n\n        <div class=\"ct-footer-media\" data-replace=\"Replace with vertical image or video\">\n          <img decoding=\"async\" src=\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Ellie.jpg\" alt=\"Placeholder creator media\">\n          <span>Replace media<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"ct-footer-bottom\">\n        <p>Contester Inc. <span>All rights reserved 2026<\/span><\/p>\n        <a href=\"https:\/\/www.linkedin.com\/\" rel=\"noreferrer\">LinkedIn<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"ct-wizard-modal\" id=\"contester-wizard-modal\" aria-hidden=\"true\">\n    <button class=\"ct-wizard-backdrop\" type=\"button\" data-ct-close-wizard aria-label=\"Close wizard\"><\/button>\n    <div class=\"ct-wizard-dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Contester wizard\" tabindex=\"-1\">\n      <button class=\"ct-wizard-close\" type=\"button\" data-ct-close-wizard aria-label=\"Close wizard\">&times;<\/button>\n      <div class=\"ct-wizard-shortcode\">\n        <div id=\"contesterWizardFlow\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  html,\n  body {\n    max-width: 100%;\n    overflow-x: clip;\n  }\n\n  html.ct-wizard-lock,\n  body.ct-wizard-lock {\n    overflow: hidden;\n  }\n\n  html.ct-wizard-lock .ct-rotating-word-blend,\n  body.ct-wizard-lock .ct-rotating-word-blend {\n    opacity: 0 !important;\n    visibility: hidden !important;\n    pointer-events: none !important;\n  }\n\n  .ct-scroll-story-elementor,\n  .ct-scroll-story-elementor * {\n    box-sizing: border-box;\n  }\n\n  .ct-scroll-story-elementor {\n    position: relative;\n    isolation: isolate;\n    width: 100vw;\n    margin-left: calc(50% - 50vw);\n    max-width: 100vw;\n    overflow-x: clip;\n    background: #050505;\n    color: #fff;\n    font-family: \"Aptos Display\", \"Segoe UI Variable Display\", \"Segoe UI\", Inter, Arial, Helvetica, sans-serif;\n  }\n\n  @supports not (overflow: clip) {\n    html,\n    body,\n    .ct-scroll-story-elementor {\n      overflow-x: hidden;\n    }\n  }\n\n  .ct-scroll-story-elementor a {\n    color: inherit;\n  }\n\n  .ct-scroll-story-elementor h1::before,\n  .ct-scroll-story-elementor h1::after,\n  .ct-scroll-story-elementor h2::before,\n  .ct-scroll-story-elementor h2::after,\n  .ct-scroll-story-elementor strong::before,\n  .ct-scroll-story-elementor strong::after {\n    content: none !important;\n    display: none !important;\n  }\n\n  .ct-hero-elementor {\n    position: relative;\n    z-index: 3;\n    height: 350vh;\n    background: transparent;\n  }\n\n  .ct-hero-stage,\n  .ct-solutions-stage {\n    position: sticky;\n    top: 0;\n    width: 100%;\n    height: 100vh;\n    overflow: hidden;\n  }\n\n  .ct-hero-stage {\n    isolation: isolate;\n    background: transparent;\n  }\n\n  .ct-motion-loader {\n    position: fixed;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    opacity: 0;\n    pointer-events: none;\n  }\n\n  .ct-floating-nav {\n    position: fixed;\n    z-index: 1000;\n    top: 22px;\n    left: clamp(22px, 3.6vw, 58px);\n    right: clamp(22px, 3.6vw, 58px);\n    display: grid;\n    grid-template-columns: 1fr auto 1fr;\n    align-items: center;\n    gap: 28px;\n    min-height: 62px;\n    padding: 0 20px;\n    border-radius: 20px;\n    color: #fff;\n    background:\n      linear-gradient(115deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.035) 36%, rgba(255, 255, 255, 0.065)),\n      rgba(12, 12, 12, 0.46);\n    backdrop-filter: blur(26px) saturate(140%);\n    -webkit-backdrop-filter: blur(26px) saturate(140%);\n    box-shadow:\n      inset 1px 1px 1px rgba(255, 255, 255, 0.18),\n      inset -1px -1px 1px rgba(255, 255, 255, 0.04),\n      0 18px 58px rgba(0, 0, 0, 0.22);\n  }\n\n  .ct-floating-nav::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    border-radius: inherit;\n    padding: 1px;\n    background:\n      linear-gradient(135deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.09) 34%, rgba(255, 255, 255, 0.02) 68%, rgba(255, 255, 255, 0.12));\n    -webkit-mask:\n      linear-gradient(#000 0 0) content-box,\n      linear-gradient(#000 0 0);\n    -webkit-mask-composite: xor;\n    mask-composite: exclude;\n    pointer-events: none;\n  }\n\n  .ct-wordmark {\n    display: inline-flex;\n    width: max-content;\n    align-items: center;\n  }\n\n  .ct-wordmark img {\n    display: block;\n    width: auto;\n    height: 27px;\n    max-width: 150px;\n    filter: drop-shadow(0 2px 14px rgba(0, 0, 0, 0.25));\n  }\n\n  .ct-floating-nav nav {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: clamp(38px, 4.4vw, 78px);\n  }\n\n  .ct-floating-nav a {\n    color: #fff !important;\n    text-decoration: none !important;\n  }\n\n  .ct-floating-nav nav a,\n  .ct-nav-cta {\n    font-size: clamp(15px, 1vw, 18px);\n    font-weight: 500;\n    letter-spacing: -0.025em;\n    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.28);\n  }\n\n  .ct-nav-cta {\n    justify-self: end;\n    padding: 9px 20px;\n    border: 1.5px solid rgba(255, 255, 255, 0.52);\n    border-radius: 9px;\n    background: rgba(255, 255, 255, 0.035);\n    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);\n  }\n\n  .ct-hero-media {\n    position: absolute;\n    z-index: 0;\n    top: 50%;\n    left: 50%;\n    width: 100vw;\n    height: 100vh;\n    overflow: hidden;\n    background: #222;\n    border-radius: 0;\n    transform: translate(-50%, -50%);\n    will-change: width, height, left, top, border-radius, opacity;\n  }\n\n  .ct-hero-media video {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  .ct-hero-wash {\n    position: absolute;\n    inset: 0;\n    background:\n      linear-gradient(180deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.17)),\n      radial-gradient(circle at 52% 54%, transparent 0, rgba(0, 0, 0, 0.06) 72%);\n  }\n\n  .ct-hero-title {\n    position: absolute;\n    z-index: 5;\n    top: 50%;\n    left: 50%;\n    width: 100vw;\n    margin: 0;\n    transform: translate(-50%, -50%);\n    text-align: center;\n    color: #fff !important;\n    -webkit-text-fill-color: #fff;\n    font-size: clamp(60px, 6.2vw, 110px);\n    font-weight: 800;\n    line-height: 0.96;\n    letter-spacing: -0.06em;\n    text-transform: none !important;\n    pointer-events: none;\n  }\n\n  .ct-hero-title > span {\n    display: block;\n    white-space: nowrap;\n    color: #fff !important;\n    -webkit-text-fill-color: #fff;\n    text-transform: none !important;\n  }\n\n  .ct-content-line {\n    --ct-word-gap: 0.18em;\n    display: grid !important;\n    grid-template-columns: minmax(0, calc(50vw - var(--ct-word-gap))) max-content;\n    column-gap: var(--ct-word-gap);\n    align-items: baseline;\n    text-align: left;\n  }\n\n  .ct-word-slot {\n    position: relative;\n    display: inline-block;\n    justify-self: end;\n    min-width: 5.25em;\n    text-align: right;\n  }\n\n  .ct-rotating-word {\n    display: inline-block;\n    visibility: hidden;\n    color: #fff !important;\n    -webkit-text-fill-color: #fff;\n    text-transform: none !important;\n  }\n\n  .ct-rotating-word-blend {\n    position: fixed;\n    z-index: 999;\n    left: 0;\n    top: 0;\n    display: inline-block;\n    visibility: hidden;\n    opacity: 0;\n    color: #fff !important;\n    -webkit-text-fill-color: #fff;\n    text-align: right;\n    text-transform: none !important;\n    mix-blend-mode: difference;\n    text-shadow: none;\n    pointer-events: none;\n    transform-origin: top left;\n    will-change: left, top, width, opacity, filter, transform;\n  }\n\n  .ct-rotating-word-blend span {\n    display: inline-block;\n    width: 100%;\n  }\n\n  .ct-rotating-word-blend.is-ready {\n    visibility: visible;\n    opacity: 1;\n  }\n\n  .ct-rotating-word-blend.is-handoff-hidden {\n    display: none !important;\n    visibility: hidden !important;\n    opacity: 0 !important;\n  }\n\n  .ct-content-word {\n    justify-self: start;\n    color: #fff !important;\n    -webkit-text-fill-color: #fff;\n    text-transform: none !important;\n  }\n\n  .ct-hero-learn {\n    position: absolute;\n    z-index: 7;\n    left: 50%;\n    top: 71%;\n    display: grid;\n    justify-items: center;\n    gap: 10px;\n    transform: translateX(-50%);\n    color: #fff !important;\n    font-size: 18px;\n    text-decoration: none;\n  }\n\n  .ct-hero-learn i {\n    width: 12px;\n    height: 12px;\n    border-right: 3px solid #fff;\n    border-bottom: 3px solid #fff;\n    transform: rotate(45deg);\n  }\n\n  .ct-hero-proof {\n    position: absolute;\n    z-index: 7;\n    bottom: 38px;\n    left: 50%;\n    width: min(1220px, calc(100vw - 120px));\n    transform: translateX(-50%);\n    text-align: center;\n  }\n\n  .ct-hero-proof p {\n    margin: 0;\n    color: #fff !important;\n    text-transform: none !important;\n  }\n\n  .ct-hero-proof p:first-child {\n    margin-bottom: 18px;\n    color: rgba(255, 255, 255, 0.74);\n    font-size: 16px;\n  }\n\n  .ct-hero-proof p:last-child {\n    font-size: clamp(16px, 1.55vw, 27px);\n    letter-spacing: 0.32em;\n    word-spacing: 0.35em;\n  }\n\n  .ct-hero-handoff {\n    position: absolute;\n    top: 22%;\n    left: 50%;\n    z-index: 3;\n    width: min(1220px, calc(100vw - 80px));\n    display: grid;\n    grid-template-columns: 0.8fr repeat(3, 1fr);\n    gap: 30px;\n    transform: translateX(-50%);\n    color: rgba(255, 255, 255, 0.38);\n    font-size: clamp(18px, 1.45vw, 23px);\n    opacity: 0;\n    pointer-events: none;\n  }\n\n  .ct-hero-handoff span:nth-child(2) {\n    color: #fff;\n    text-align: center;\n  }\n\n  .ct-solutions-elementor {\n    position: relative;\n    z-index: 2;\n    height: 535vh;\n    margin-top: -195vh;\n    background: #000;\n  }\n\n  .ct-solutions-stage {\n    padding-top: 190px;\n    background: #000;\n  }\n\n  .ct-section-kicker {\n    position: absolute;\n    top: 197px;\n    left: 12vw;\n    color: rgba(255, 255, 255, 0.42);\n    font-size: clamp(20px, 1.45vw, 28px);\n    letter-spacing: -0.03em;\n  }\n\n  .ct-solution-tabs {\n    width: min(880px, 62vw);\n    margin: 0 auto 42px;\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 22px;\n  }\n\n  .ct-solution-tabs button {\n    --indicator-fill: 0;\n    position: relative;\n    padding: 0 0 17px;\n    border: 0;\n    background: none;\n    color: rgba(255, 255, 255, 0.32);\n    font: inherit;\n    font-size: clamp(20px, 1.45vw, 28px);\n    letter-spacing: -0.03em;\n    text-transform: none !important;\n    cursor: pointer;\n    transition: color 240ms ease;\n  }\n\n  .ct-solution-tabs button::before,\n  .ct-solution-tabs button::after {\n    content: \"\";\n    position: absolute;\n    left: calc(50% - 55px);\n    bottom: 0;\n    height: 2px;\n    opacity: 0;\n    transition: opacity 220ms ease;\n  }\n\n  .ct-solution-tabs button::after {\n    width: 110px;\n    background: rgba(255, 255, 255, 0.18);\n  }\n\n  .ct-solution-tabs button::before {\n    z-index: 1;\n    width: calc(110px * var(--indicator-fill));\n    background: #fff;\n    transition:\n      width 160ms linear,\n      opacity 220ms ease;\n  }\n\n  .ct-solution-tabs button.is-active {\n    color: #fff;\n  }\n\n  .ct-solution-tabs button.is-active::before,\n  .ct-solution-tabs button.is-active::after {\n    opacity: 1;\n  }\n\n  .ct-solutions-window {\n    width: 100%;\n    overflow: hidden;\n  }\n\n  .ct-solutions-strip {\n    display: flex;\n    align-items: stretch;\n    gap: 44px;\n    width: max-content;\n    padding-left: 12vw;\n    padding-right: 12vw;\n    will-change: transform;\n  }\n\n  .ct-solution-card {\n    position: relative;\n    width: 58vw;\n    height: 56vh;\n    flex: 0 0 auto;\n    overflow: hidden;\n    border: 1px solid rgba(255, 255, 255, 0.12);\n    border-radius: 18px;\n    background: #171717;\n    opacity: 0.28;\n    filter: saturate(0.68) brightness(0.64);\n    transition:\n      opacity 320ms ease,\n      filter 320ms ease;\n  }\n\n  .ct-solution-card.is-active {\n    opacity: 1;\n    filter: saturate(1) brightness(1);\n  }\n\n  .ct-solution-image {\n    position: absolute;\n    inset: 0;\n    opacity: 1;\n    transform: scale(1.02);\n    background:\n      radial-gradient(circle at 70% 25%, rgba(255, 255, 255, 0.24), transparent 22%),\n      linear-gradient(135deg, #2a2a2f, #6c5c72 52%, #1a1a1d);\n  }\n\n  .ct-solution-image::after {\n    content: \"Replace with image\";\n    position: absolute;\n    right: 34px;\n    top: 32px;\n    color: rgba(255, 255, 255, 0.42);\n    font-size: 13px;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n  }\n\n  .ct-solution-image-creator {\n    background: url(\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Creator-native01.jpg\") center \/ cover no-repeat;\n  }\n\n  .ct-solution-image-creator::after {\n    content: none;\n  }\n\n  .ct-solution-image-media {\n    background: url(\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Media-Live-01.jpg\") center \/ cover no-repeat;\n  }\n\n  .ct-solution-image-media::after {\n    content: none;\n  }\n\n  .ct-solution-image-publisher {\n    background: url(\"https:\/\/contester.net\/wp-content\/uploads\/2026\/06\/Publisher-share-01.jpg\") center \/ cover no-repeat;\n  }\n\n  .ct-solution-image-publisher::after {\n    content: none;\n  }\n\n  .ct-solution-tint {\n    position: absolute;\n    inset: 0;\n    background:\n      linear-gradient(180deg, rgba(0, 0, 0, 0.04) 0%, rgba(0, 0, 0, 0.1) 36%, rgba(0, 0, 0, 0.68) 100%),\n      radial-gradient(circle at 30% 95%, rgba(115, 219, 255, 0.38), transparent 34%);\n  }\n\n  .ct-tint-blue {\n    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.72) 100%);\n  }\n\n  .ct-tint-rose {\n    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.74) 100%);\n  }\n\n  .ct-tint-sage {\n    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.74) 100%);\n  }\n\n  .ct-solution-copy {\n    position: absolute;\n    z-index: 3;\n    left: 38px;\n    right: 38px;\n    bottom: 34px;\n  }\n\n  .ct-solution-copy h2 {\n    max-width: 650px;\n    margin: 0 0 16px;\n    color: #fff !important;\n    font-size: clamp(25px, 2vw, 34px);\n    line-height: 1.18;\n    letter-spacing: -0.03em;\n    text-transform: none !important;\n  }\n\n  .ct-solution-copy p {\n    max-width: 620px;\n    margin: 0;\n    color: rgba(255, 255, 255, 0.72) !important;\n    font-size: 17px;\n    line-height: 1.35;\n    text-transform: none !important;\n  }\n\n  .ct-solution-meta {\n    margin-top: 26px;\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    color: rgba(255, 255, 255, 0.64);\n    font-size: 16px;\n    text-transform: none !important;\n  }\n\n  .ct-solution-meta b {\n    padding: 8px 16px 9px;\n    border-radius: 12px;\n    background: rgba(255, 255, 255, 0.16);\n    color: #fff;\n    font-size: 15px;\n    font-weight: 650;\n    text-transform: none !important;\n  }\n\n  .ct-solution-copy a {\n    position: absolute;\n    right: 0;\n    bottom: 0;\n    color: #fff !important;\n    font-size: 21px;\n    font-weight: 650;\n    text-decoration: none !important;\n  }\n\n  .ct-solution-copy > * {\n    opacity: 0.18;\n    transition: opacity 320ms ease;\n  }\n\n  .ct-solution-card.is-active .ct-solution-copy h2 {\n    opacity: 1;\n    transition-delay: 70ms;\n  }\n\n  .ct-solution-card.is-active .ct-solution-copy p {\n    opacity: 1;\n    transition-delay: 190ms;\n  }\n\n  .ct-solution-card.is-active .ct-solution-meta {\n    opacity: 1;\n    transition-delay: 310ms;\n  }\n\n  .ct-solution-card.is-active .ct-solution-copy a {\n    opacity: 1;\n    transition-delay: 430ms;\n  }\n\n  .ct-solution-progress {\n    position: absolute;\n    bottom: 34px;\n    left: 50%;\n    display: flex;\n    gap: 10px;\n    transform: translateX(-50%);\n  }\n\n  .ct-solution-progress span {\n    width: 42px;\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n  }\n\n  .ct-solution-progress span.is-active {\n    background: #fff;\n  }\n\n  .ct-trusted-section {\n    position: relative;\n    z-index: 3;\n    height: 190vh;\n    background: #020202;\n  }\n\n  .ct-trusted-stage {\n    position: sticky;\n    top: 0;\n    width: 100%;\n    height: 100vh;\n    padding: 175px 0 60px;\n    overflow: hidden;\n    background: #020202;\n  }\n\n  .ct-trusted-heading {\n    margin: 0 auto 44px;\n    padding: 0 6vw;\n    text-align: center;\n  }\n\n  .ct-trusted-heading p {\n    margin: 0 0 15px;\n    color: rgba(255, 255, 255, 0.38) !important;\n    font-size: 13px;\n    line-height: 1.2;\n    letter-spacing: 0.12em;\n    text-transform: uppercase !important;\n  }\n\n  .ct-trusted-heading h2 {\n    margin: 0;\n    color: #fff !important;\n    font-size: clamp(28px, 3vw, 49px);\n    line-height: 1.08;\n    letter-spacing: -0.035em;\n    text-transform: none !important;\n  }\n\n  .ct-contester-marquee {\n    width: 100%;\n    overflow: hidden;\n    padding: 28px 0;\n  }\n\n  .ct-contester-track {\n    display: flex;\n    gap: 34px;\n    width: max-content;\n    padding: 0 17px;\n    will-change: transform;\n  }\n\n  .ct-contester-card {\n    position: relative;\n    width: 310px;\n    aspect-ratio: 4 \/ 5;\n    flex: 0 0 auto;\n    overflow: hidden;\n    border-radius: 15px;\n    background: #111;\n    color: #fff;\n    cursor: default;\n  }\n\n  .ct-contester-card img {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    transition: transform 260ms ease, filter 260ms ease;\n  }\n\n  .ct-card-overlay {\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.04) 75%);\n    transition: background 220ms ease;\n  }\n\n  .ct-card-copy {\n    position: absolute;\n    z-index: 2;\n    left: 24px;\n    right: 24px;\n    bottom: 20px;\n    transition: transform 240ms ease;\n  }\n\n  .ct-creator-name {\n    margin-bottom: 7px;\n    color: #fff !important;\n    font-size: 18px;\n    line-height: 1.15;\n    font-weight: 500;\n  }\n\n  .ct-brand-pill,\n  .ct-solution-pill {\n    display: inline-block;\n    width: fit-content;\n    border-radius: 5px;\n    color: #fff !important;\n    font-weight: 800;\n  }\n\n  .ct-brand-pill {\n    padding: 8px 14px 9px;\n    background: rgba(0, 0, 0, 0.78);\n    font-size: 20px;\n  }\n\n  .ct-solution-pill {\n    position: absolute;\n    z-index: 3;\n    left: 24px;\n    bottom: 18px;\n    padding: 8px 14px 9px;\n    background: #071c9c;\n    font-size: 15px;\n    opacity: 0;\n    transform: translateY(58px);\n    transition: transform 240ms ease, opacity 200ms ease;\n  }\n\n  .ct-contester-card:hover img {\n    transform: scale(1.035);\n    filter: brightness(0.82);\n  }\n\n  .ct-contester-card:hover .ct-card-copy {\n    transform: translateY(-42px);\n  }\n\n  .ct-contester-card:hover .ct-solution-pill {\n    opacity: 1;\n    transform: translateY(0);\n  }\n\n  .ct-features-story {\n    position: relative;\n    z-index: 3;\n    height: 500vh;\n    background: #020202;\n  }\n\n  .ct-features-stage {\n    position: sticky;\n    top: 0;\n    display: grid;\n    grid-template-columns: minmax(380px, 0.62fr) minmax(700px, 1.15fr);\n    gap: clamp(50px, 5.5vw, 90px);\n    align-items: center;\n    width: 100%;\n    height: 100vh;\n    padding: 0 max(5vw, calc((100vw - 1480px) \/ 2));\n    overflow: hidden;\n    background: #020202;\n  }\n\n  .ct-feature-copy-window,\n  .ct-feature-visual-window {\n    position: relative;\n    height: 100vh;\n    overflow: hidden;\n    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, transparent 7%, #000 22%, #000 78%, transparent 93%, transparent 100%);\n    mask-image: linear-gradient(to bottom, transparent 0%, transparent 7%, #000 22%, #000 78%, transparent 93%, transparent 100%);\n  }\n\n  .ct-feature-copy-track,\n  .ct-feature-visual-track {\n    position: absolute;\n    top: 50%;\n    left: 0;\n    width: 100%;\n    will-change: transform;\n  }\n\n  .ct-feature-tab {\n    width: 100%;\n    height: 150px;\n    padding: 18px 0;\n    border: 0;\n    background: transparent;\n    color: rgba(255, 255, 255, 0.15) !important;\n    text-align: center;\n    cursor: pointer;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    transition: color 240ms ease;\n    text-transform: none !important;\n  }\n\n  .ct-feature-tab-end {\n    pointer-events: none;\n    cursor: default;\n    color: rgba(255, 255, 255, 0.12) !important;\n  }\n\n  .ct-feature-tab strong {\n    color: inherit !important;\n    font-size: clamp(25px, 2.15vw, 38px);\n    line-height: 1.05;\n    font-weight: 500;\n    letter-spacing: -0.04em;\n    text-transform: none !important;\n  }\n\n  .ct-feature-tab span {\n    margin-top: 14px;\n    color: rgba(255, 255, 255, 0.12) !important;\n    font-size: clamp(16px, 1.28vw, 22px);\n    line-height: 1.25;\n    transition: color 240ms ease;\n    text-transform: none !important;\n  }\n\n  .ct-feature-tab.is-active {\n    color: #fff !important;\n  }\n\n  .ct-feature-tab.is-active span {\n    color: rgba(255, 255, 255, 0.52) !important;\n  }\n\n  .ct-feature-tab:focus-visible {\n    outline: 1px solid rgba(255, 255, 255, 0.62);\n    outline-offset: -8px;\n    border-radius: 12px;\n  }\n\n  .ct-feature-visual-track {\n    display: flex;\n    flex-direction: column;\n    gap: 60px;\n  }\n\n  .ct-feature-card {\n    position: relative;\n    height: min(59vh, 672px);\n    flex: 0 0 auto;\n    overflow: hidden;\n    border: 0;\n    border-radius: 14px;\n    outline: 0;\n    box-shadow: none;\n    background: transparent;\n    opacity: 0.38;\n    transform: scale(0.97);\n    transform-origin: center center;\n    transition: opacity 260ms ease;\n  }\n\n  .ct-feature-card img {\n    position: absolute;\n    inset: -4px;\n    z-index: 1;\n    display: block;\n    width: calc(100% + 8px);\n    max-width: none !important;\n    height: calc(100% + 8px);\n    object-fit: cover;\n  }\n\n  .ct-feature-card::before,\n  .ct-feature-card::after {\n    content: \"\";\n    position: absolute;\n    display: none;\n    z-index: 0;\n    border-radius: 50%;\n    filter: blur(70px);\n    opacity: 0.58;\n  }\n\n  .ct-feature-card::before {\n    top: -25%;\n    left: -10%;\n    width: 58%;\n    aspect-ratio: 1;\n    background: rgba(255, 255, 255, 0.2);\n  }\n\n  .ct-feature-card::after {\n    right: -14%;\n    bottom: -30%;\n    width: 54%;\n    aspect-ratio: 1;\n    background: rgba(0, 0, 0, 0.26);\n  }\n\n  .ct-feature-card > span {\n    position: absolute;\n    z-index: 2;\n    right: 20px;\n    bottom: 17px;\n    color: rgba(255, 255, 255, 0.48) !important;\n    font-size: 11px;\n    letter-spacing: 0.12em;\n    text-transform: none !important;\n  }\n\n  .ct-feature-card.is-active {\n    opacity: 1;\n  }\n\n  .ct-feature-card-live {\n    background: linear-gradient(135deg, #6b7cff 0%, #5266eb 62%, #455bd7 100%);\n  }\n\n  .ct-feature-card-shop {\n    background: linear-gradient(135deg, #6d5b5f 0%, #4b4144 48%, #292326 100%);\n  }\n\n  .ct-feature-card-feed {\n    background: linear-gradient(135deg, #263d6c 0%, #172238 52%, #0c111c 100%);\n  }\n\n  .ct-feature-card-dm {\n    background: linear-gradient(135deg, #244e49 0%, #172c29 52%, #0f1715 100%);\n  }\n\n  .ct-feature-card-autopilot {\n    background: linear-gradient(135deg, #372854 0%, #251b3b 52%, #121019 100%);\n  }\n\n  .ct-feature-card-multicast {\n    background: linear-gradient(135deg, #3d4b35 0%, #252d20 52%, #11150f 100%);\n  }\n\n  .ct-feature-card-raffle {\n    background: linear-gradient(135deg, #633147 0%, #321925 52%, #150b10 100%);\n  }\n\n  .ct-feature-counter {\n    position: absolute;\n    right: max(5vw, calc((100vw - 1480px) \/ 2));\n    bottom: 34px;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    color: rgba(255, 255, 255, 0.34) !important;\n    font-size: 11px;\n    letter-spacing: 0.14em;\n  }\n\n  .ct-feature-counter i {\n    width: 38px;\n    height: 1px;\n    background: rgba(255, 255, 255, 0.22);\n  }\n\n  .ct-feature-current {\n    color: #fff !important;\n  }\n\n  .ct-stand-story {\n    position: relative;\n    z-index: 3;\n    height: 320vh;\n    background: #000;\n  }\n\n  .ct-stand-stage {\n    --ct-stand-glow: 0;\n    position: sticky;\n    top: 0;\n    isolation: isolate;\n    width: 100%;\n    height: 100vh;\n    overflow: hidden;\n    background: #000;\n  }\n\n  .ct-stand-stage::before {\n    content: \"\";\n    position: absolute;\n    z-index: 0;\n    inset: -22%;\n    opacity: var(--ct-stand-glow);\n    background:\n      radial-gradient(circle at 32% 52%, rgba(0, 255, 255, 0.28), transparent 30%),\n      radial-gradient(circle at 43% 66%, rgba(255, 0, 130, 0.25), transparent 34%),\n      radial-gradient(circle at 69% 42%, rgba(82, 70, 255, 0.18), transparent 26%);\n    filter: blur(28px);\n    transform: scale(1.04);\n    pointer-events: none;\n  }\n\n  .ct-stand-intro {\n    position: absolute;\n    z-index: 2;\n    top: 50%;\n    left: 50%;\n    width: max-content;\n    max-width: 86vw;\n    transform: translateY(-50%);\n    will-change: left, transform;\n  }\n\n  .ct-stand-intro h2 {\n    margin: 0;\n    color: #fff !important;\n    font-size: clamp(74px, 7vw, 124px);\n    font-weight: 600;\n    line-height: 0.92;\n    letter-spacing: -0.065em;\n    text-transform: none !important;\n  }\n\n  .ct-stand-intro p {\n    position: absolute;\n    top: calc(100% + 28px);\n    left: 0;\n    width: min(560px, 45vw);\n    margin: 0;\n    color: rgba(255, 255, 255, 0.56) !important;\n    font-size: 20px;\n    line-height: 1.35;\n    opacity: 0;\n    transform: translateY(18px);\n    text-transform: none !important;\n  }\n\n  .ct-stand-intro a {\n    position: absolute;\n    top: calc(100% + 90px);\n    left: 0;\n    color: #fff !important;\n    font-size: 17px;\n    text-decoration: none !important;\n    opacity: 0;\n    transform: translateY(18px);\n    text-transform: none !important;\n  }\n\n  .ct-strategy-rotator {\n    position: absolute;\n    z-index: 2;\n    top: 50%;\n    left: min(58vw, calc(50vw + 120px));\n    width: min(560px, 35vw);\n    opacity: 0;\n    transform: translate(48px, -50%);\n  }\n\n  .ct-strategy-rotator h3,\n  .ct-strategy-rotator p {\n    margin: 0;\n    text-transform: none !important;\n  }\n\n  .ct-strategy-rotator h3 {\n    color: #fff !important;\n    font-size: clamp(31px, 2.5vw, 45px);\n    font-weight: 500;\n    line-height: 1.05;\n    letter-spacing: -0.04em;\n    text-shadow: 0 0 24px rgba(255, 255, 255, 0.13);\n  }\n\n  .ct-strategy-rotator p {\n    margin-top: 15px;\n    color: rgba(255, 255, 255, 0.58) !important;\n    font-size: clamp(20px, 1.75vw, 32px);\n    line-height: 1.18;\n    letter-spacing: -0.03em;\n  }\n\n  .ct-footer-story {\n    position: relative;\n    z-index: 5;\n    min-height: 100vh;\n    background: #000;\n  }\n\n  .ct-footer-stage {\n    position: relative;\n    min-height: 100vh;\n    padding: 150px max(7vw, calc((100vw - 1180px) \/ 2)) 86px;\n    background:\n      radial-gradient(circle at 49% 58%, rgba(20, 168, 169, 0.18), transparent 22%),\n      radial-gradient(circle at 55% 69%, rgba(255, 22, 118, 0.18), transparent 25%),\n      #000;\n  }\n\n  .ct-award-row {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 50px;\n    text-align: center;\n    font-size: 13px;\n    line-height: 1.35;\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .ct-award-row p {\n    margin: 0;\n  }\n\n  .ct-footer-main {\n    min-height: 50vh;\n    display: grid;\n    grid-template-columns: minmax(0, 620px) minmax(180px, 220px);\n    align-items: center;\n    gap: 46px;\n    max-width: 886px;\n    margin: 0 auto;\n    transform: translateX(-3vw);\n  }\n\n  .ct-footer-message {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n  }\n\n  .ct-footer-message h2 {\n    margin: 0 0 46px;\n    font-size: clamp(38px, 3.6vw, 64px);\n    line-height: 1.03;\n    letter-spacing: -0.05em;\n    font-weight: 400;\n    color: #fff;\n  }\n\n  .ct-footer-message h2 > span {\n    display: block;\n  }\n\n  .ct-footer-content-line {\n    position: relative;\n    display: block;\n    width: min(620px, 43vw);\n    height: 1.04em;\n    margin-inline: auto;\n  }\n\n  .ct-footer-rotating-word {\n    position: absolute;\n    top: 0;\n    right: 50%;\n    padding-right: 0.18em;\n    text-align: right;\n    white-space: nowrap;\n    background: linear-gradient(90deg, #ff21c7, #866dff, #24d9e7, #ff21c7);\n    background-size: 240% 100%;\n    -webkit-background-clip: text;\n    background-clip: text;\n    color: transparent;\n    animation: ctFooterWordGradient 6s ease-in-out infinite;\n    will-change: opacity, transform, background-position;\n  }\n\n  .ct-footer-content-word {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    text-align: left;\n    white-space: nowrap;\n  }\n\n  .ct-footer-cta {\n    position: relative;\n    isolation: isolate;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 176px;\n    padding: 18px 42px;\n    overflow: hidden;\n    border: 2px solid transparent;\n    border-radius: 999px;\n    background:\n      linear-gradient(#030305, #030305) padding-box,\n      linear-gradient(115deg, #24d9e7, rgba(255, 255, 255, 0.78), #ff58bd, #866dff, #24d9e7) border-box;\n    background-size: 100% 100%, 260% 100%;\n    color: #fff !important;\n    font-weight: 700;\n    text-decoration: none !important;\n    animation: ctFooterCtaFlow 7s linear infinite;\n    box-shadow:\n      0 0 26px rgba(67, 241, 231, 0.18),\n      0 0 34px rgba(241, 66, 201, 0.14),\n      0 22px 70px rgba(0, 0, 0, 0.38);\n  }\n\n  .ct-footer-cta::after {\n    content: \"\";\n    position: absolute;\n    inset: 2px;\n    z-index: -1;\n    border-radius: inherit;\n    background:\n      radial-gradient(circle at 20% 50%, rgba(44, 226, 221, 0.16), transparent 38%),\n      radial-gradient(circle at 84% 50%, rgba(255, 86, 190, 0.16), transparent 42%),\n      #030305;\n    pointer-events: none;\n  }\n\n  .ct-footer-media {\n    position: relative;\n    width: min(220px, 17vw);\n    aspect-ratio: 9 \/ 14;\n    justify-self: start;\n    overflow: hidden;\n    border-radius: 16px;\n    background: #222;\n  }\n\n  .ct-footer-media img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  .ct-footer-media span {\n    position: absolute;\n    bottom: 12px;\n    left: 50%;\n    padding: 7px 10px;\n    border-radius: 999px;\n    background: rgba(0, 0, 0, 0.66);\n    font-size: 10px;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    opacity: 0;\n    transform: translateX(-50%);\n    transition: opacity 180ms ease;\n  }\n\n  .ct-footer-media:hover span {\n    opacity: 1;\n  }\n\n  .ct-footer-bottom {\n    position: absolute;\n    right: max(7vw, calc((100vw - 1180px) \/ 2));\n    bottom: 38px;\n    left: max(7vw, calc((100vw - 1180px) \/ 2));\n    display: flex;\n    justify-content: space-between;\n    font-size: 14px;\n    color: #fff;\n  }\n\n  .ct-footer-bottom p {\n    margin: 0;\n  }\n\n  .ct-footer-bottom span {\n    margin-left: 26px;\n    color: rgba(255, 255, 255, 0.52);\n  }\n\n  .ct-footer-bottom a {\n    text-decoration: none !important;\n  }\n\n  .ct-wizard-modal {\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    isolation: isolate;\n    display: block;\n    padding: 0;\n    background: #000;\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n    transition: opacity 220ms ease, visibility 220ms ease;\n  }\n\n  .ct-wizard-modal.is-open {\n    opacity: 1;\n    visibility: visible;\n    pointer-events: auto;\n  }\n\n  .ct-wizard-backdrop {\n    position: absolute;\n    inset: 0;\n    border: 0;\n    background: rgba(0, 0, 0, 0.97);\n    cursor: pointer;\n  }\n\n  .ct-wizard-dialog {\n    position: relative;\n    z-index: 1;\n    width: 100vw;\n    min-height: 100vh;\n    min-height: 100dvh;\n    max-height: none;\n    overflow: auto;\n    border: 0;\n    border-radius: 0;\n    background: #000;\n    box-shadow: none;\n    color: #fff;\n    outline: none;\n    transform: none;\n    transition: none;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .ct-wizard-modal.is-open .ct-wizard-dialog {\n    transform: none;\n  }\n\n  .ct-wizard-shortcode {\n    width: min(100%, 1440px);\n    min-height: 100vh;\n    min-height: 100dvh;\n    margin: 0 auto;\n    padding: clamp(58px, 7vw, 88px) clamp(14px, 4vw, 44px) clamp(24px, 5vw, 56px);\n    color: #fff;\n  }\n\n  .ct-wizard-shortcode iframe,\n  .ct-wizard-shortcode form,\n  .ct-wizard-shortcode > * {\n    max-width: 100%;\n  }\n\n  .ct-wizard-close {\n    position: fixed;\n    top: max(18px, env(safe-area-inset-top));\n    right: max(18px, env(safe-area-inset-right));\n    z-index: 3;\n    width: clamp(48px, 7vw, 64px);\n    height: clamp(48px, 7vw, 64px);\n    border: 0;\n    border-radius: 0;\n    background: transparent;\n    box-shadow: none;\n    appearance: none;\n    -webkit-appearance: none;\n    padding: 0;\n    color: #fff;\n    font-size: 0;\n    line-height: 0;\n    cursor: pointer;\n    opacity: 0.92;\n    transition: opacity 180ms ease, transform 180ms ease;\n  }\n\n  .ct-wizard-close::before,\n  .ct-wizard-close::after {\n    content: \"\";\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: clamp(40px, 6vw, 58px);\n    height: 2px;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.92);\n    transform-origin: center;\n  }\n\n  .ct-wizard-close::before {\n    transform: translate(-50%, -50%) rotate(45deg);\n  }\n\n  .ct-wizard-close::after {\n    transform: translate(-50%, -50%) rotate(-45deg);\n  }\n\n  .ct-wizard-close:hover,\n  .ct-wizard-close:focus-visible {\n    opacity: 1;\n    transform: scale(1.04);\n  }\n\n  @media (max-width: 900px) {\n    html,\n    body {\n      overflow-x: hidden !important;\n    }\n\n    .ct-scroll-story-elementor {\n      width: 100%;\n      max-width: 100vw;\n      overflow-x: clip;\n      background: #000;\n    }\n\n    .ct-floating-nav {\n      top: 12px;\n      left: 14px;\n      right: 14px;\n      width: auto;\n      min-height: 54px;\n      padding: 0 10px 0 16px;\n      grid-template-columns: auto 1fr;\n      border-radius: 18px;\n    }\n\n    .ct-wordmark {\n      min-width: 0;\n    }\n\n    .ct-wordmark-logo-light {\n      width: 122px;\n    }\n\n    .ct-floating-nav nav {\n      display: none;\n    }\n\n    .ct-nav-cta {\n      justify-self: end;\n      padding: 9px 14px;\n      min-height: 34px;\n      font-size: 13px;\n      border-radius: 12px;\n    }\n\n    .ct-hero-elementor,\n    .ct-solutions-elementor,\n    .ct-trusted-section,\n    .ct-features-story,\n    .ct-stand-story,\n    .ct-footer-story {\n      height: auto;\n      min-height: 100svh;\n      margin-top: 0 !important;\n      overflow: visible;\n    }\n\n    .ct-hero-stage,\n    .ct-solutions-stage,\n    .ct-trusted-stage,\n    .ct-features-stage,\n    .ct-stand-stage,\n    .ct-footer-stage {\n      position: relative;\n      top: auto;\n      width: 100%;\n      min-height: 100svh;\n      height: auto;\n      overflow: hidden;\n    }\n\n    .ct-hero-stage {\n      display: grid;\n      place-items: center;\n      padding: 112px 16px 52px;\n    }\n\n    .ct-hero-media {\n      position: absolute;\n      inset: 0;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      border-radius: 0;\n      transform: none;\n    }\n\n    .ct-hero-title {\n      position: relative;\n      left: auto;\n      top: auto;\n      transform: none;\n      width: min(780px, calc(100vw - 28px));\n      font-size: clamp(44px, 15vw, 78px);\n      line-height: 0.92;\n      text-align: center;\n    }\n\n    .ct-content-line {\n      --ct-word-gap: 0.12em;\n      grid-template-columns: minmax(0, calc(50% - var(--ct-word-gap))) max-content;\n    }\n\n    .ct-hero-learn {\n      position: relative;\n      left: auto;\n      bottom: auto;\n      margin-top: 28px;\n      transform: none;\n    }\n\n    .ct-hero-proof {\n      left: 18px;\n      right: 18px;\n      bottom: 26px;\n      width: auto;\n      transform: none;\n    }\n\n    .ct-hero-proof p:first-child {\n      font-size: 13px;\n    }\n\n    .ct-hero-proof p:last-child {\n      font-size: 11px;\n      letter-spacing: 0.12em;\n      word-spacing: 0.12em;\n      white-space: normal;\n    }\n\n    .ct-hero-handoff {\n      display: none;\n    }\n\n    .ct-solutions-stage {\n      padding: 116px 0 70px;\n      background: #000;\n      opacity: 1 !important;\n      visibility: visible !important;\n    }\n\n    .ct-solutions-tabs {\n      position: sticky;\n      z-index: 6;\n      top: 78px;\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 14px;\n      padding: 0 18px 18px;\n      margin-bottom: 20px;\n      background: linear-gradient(#000 78%, rgba(0, 0, 0, 0));\n    }\n\n    .ct-solutions-label {\n      font-size: 22px;\n    }\n\n    .ct-solutions-tablist {\n      display: flex;\n      gap: 18px;\n      overflow-x: auto;\n      padding-bottom: 8px;\n      scrollbar-width: none;\n    }\n\n    .ct-solutions-tablist::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ct-solutions-tablist button {\n      flex: 0 0 auto;\n      font-size: 17px;\n      white-space: nowrap;\n    }\n\n    .ct-solutions-window {\n      overflow-x: auto;\n      overflow-y: visible;\n      scroll-snap-type: x mandatory;\n      -webkit-overflow-scrolling: touch;\n      padding: 0 18px 14px;\n    }\n\n    .ct-solutions-strip {\n      width: max-content;\n      gap: 16px;\n      padding: 0;\n      transform: none !important;\n    }\n\n    .ct-solution-card {\n      width: calc(100vw - 36px);\n      height: min(62svh, 560px);\n      scroll-snap-align: center;\n      opacity: 1 !important;\n      filter: none !important;\n      transform: none !important;\n    }\n\n    .ct-solution-card::before {\n      background: linear-gradient(0deg, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.08) 58%, transparent 100%);\n    }\n\n    .ct-solution-copy {\n      inset: auto 18px 22px 18px;\n    }\n\n    .ct-solution-copy h2 {\n      font-size: clamp(26px, 8vw, 42px);\n      line-height: 1.08;\n    }\n\n    .ct-solution-copy p,\n    .ct-solution-meta {\n      font-size: 16px;\n    }\n\n    .ct-solution-meta {\n      flex-wrap: wrap;\n      gap: 10px;\n    }\n\n    .ct-solution-copy a {\n      position: relative;\n      right: auto;\n      bottom: auto;\n      display: inline-block;\n      margin-top: 22px;\n      font-size: 18px;\n    }\n\n    .ct-solution-progress {\n      margin-top: 22px;\n    }\n\n    .ct-trusted-stage {\n      padding: 110px 0 78px;\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      gap: 48px;\n      min-height: 100svh;\n      overflow: hidden;\n    }\n\n    .ct-section-kicker {\n      display: none;\n    }\n\n    .ct-trusted-title {\n      width: min(720px, calc(100vw - 34px));\n      margin: 0 auto;\n      font-size: clamp(34px, 10vw, 56px);\n      line-height: 1.02;\n      text-align: center;\n      text-transform: none !important;\n    }\n\n    .ct-creator-marquee {\n      min-height: auto;\n      overflow: visible;\n    }\n\n    .ct-creator-track {\n      gap: 16px;\n      padding: 0 18px;\n      overflow-x: auto;\n      scroll-snap-type: x mandatory;\n      transform: none !important;\n      scrollbar-width: none;\n    }\n\n    .ct-creator-track::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ct-creator-card {\n      flex: 0 0 min(72vw, 290px);\n      width: min(72vw, 290px);\n      height: min(53svh, 460px);\n      scroll-snap-align: center;\n    }\n\n    .ct-features-stage {\n      display: block;\n      min-height: 100svh;\n      padding: 112px 16px 72px;\n      overflow: visible;\n    }\n\n    .ct-feature-copy-window,\n    .ct-feature-visual-window {\n      height: auto;\n      overflow: visible;\n      -webkit-mask-image: none;\n      mask-image: none;\n    }\n\n    .ct-feature-copy-track,\n    .ct-feature-visual-track {\n      position: relative;\n      top: auto;\n      left: auto;\n      transform: none !important;\n      width: 100%;\n    }\n\n    .ct-feature-copy-track {\n      display: grid;\n      gap: 10px;\n      margin-bottom: 28px;\n    }\n\n    .ct-feature-tab {\n      height: auto;\n      min-height: 84px;\n      padding: 14px 0;\n      text-align: left;\n      align-items: flex-start;\n      justify-content: center;\n    }\n\n    .ct-feature-tab strong {\n      font-size: clamp(27px, 8vw, 42px);\n    }\n\n    .ct-feature-tab span {\n      margin-top: 8px;\n      font-size: 17px;\n    }\n\n    .ct-feature-tab:not(.is-active) {\n      color: rgba(255, 255, 255, 0.22) !important;\n    }\n\n    .ct-feature-tab-end {\n      min-height: 58px;\n    }\n\n    .ct-feature-visual-track {\n      display: grid;\n      gap: 16px;\n    }\n\n    .ct-feature-card {\n      height: auto;\n      aspect-ratio: 16 \/ 11;\n      opacity: 1 !important;\n      transform: none !important;\n      border-radius: 16px;\n    }\n\n    .ct-feature-card img {\n      inset: 0;\n      width: 100%;\n      height: 100%;\n    }\n\n    .ct-feature-card > span,\n    .ct-feature-counter {\n      display: none;\n    }\n\n    .ct-stand-stage {\n      min-height: 100svh;\n      padding: 118px 22px 82px;\n      background: #000;\n      overflow: hidden;\n    }\n\n    .ct-stand-stage::before {\n      opacity: 1;\n      transform: scale(1);\n    }\n\n    .ct-stand-intro {\n      position: relative;\n      left: auto !important;\n      top: auto !important;\n      width: auto;\n      max-width: none;\n      transform: none !important;\n      opacity: 1 !important;\n      margin-top: 15vh;\n    }\n\n    .ct-stand-intro h2 {\n      font-size: clamp(58px, 18vw, 90px);\n      line-height: 0.92;\n    }\n\n    .ct-stand-intro p,\n    .ct-stand-intro a {\n      position: static;\n      width: auto;\n      max-width: 320px;\n      opacity: 1 !important;\n      transform: none !important;\n    }\n\n    .ct-strategy-rotator {\n      position: relative;\n      left: auto !important;\n      top: auto !important;\n      width: auto;\n      max-width: 420px;\n      margin-top: 72px;\n      transform: none !important;\n      opacity: 1 !important;\n    }\n\n    .ct-strategy-rotator h3 {\n      font-size: clamp(30px, 9vw, 45px);\n    }\n\n    .ct-strategy-rotator p {\n      font-size: clamp(19px, 5.8vw, 28px);\n    }\n\n    .ct-footer-stage {\n      min-height: 100svh;\n      padding: 112px 22px 30px;\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      gap: 30px;\n    }\n\n    .ct-award-row {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 12px;\n      position: relative;\n      left: auto;\n      right: auto;\n      top: auto;\n      text-align: center;\n    }\n\n    .ct-award-row p {\n      font-size: 13px;\n    }\n\n    .ct-footer-main {\n      grid-template-columns: 1fr;\n      gap: 26px;\n      width: 100%;\n      max-width: 520px;\n      margin: 0 auto;\n      transform: none;\n      text-align: center;\n    }\n\n    .ct-footer-message {\n      align-items: center;\n    }\n\n    .ct-footer-message h2 {\n      font-size: clamp(40px, 13vw, 64px);\n      line-height: 1.05;\n    }\n\n    .ct-footer-line {\n      justify-content: center;\n    }\n\n    .ct-footer-media {\n      justify-self: center;\n      width: min(260px, 58vw);\n    }\n\n    .ct-footer-cta {\n      width: min(260px, 70vw);\n    }\n\n    .ct-footer-bottom {\n      position: static;\n      display: flex;\n      justify-content: space-between;\n      gap: 18px;\n      width: 100%;\n      margin-top: auto;\n      font-size: 14px;\n    }\n\n    .ct-wizard-modal {\n      padding: 18px;\n    }\n\n    .ct-wizard-close {\n      top: 16px;\n      right: 16px;\n      width: 54px;\n      height: 54px;\n    }\n\n    .ct-wizard-dialog {\n      width: 100%;\n      height: calc(100svh - 36px);\n      padding: 76px 0 0;\n    }\n  }\n\n  @media (max-width: 900px) {\n    html,\n    body {\n      width: 100%;\n      max-width: 100%;\n      overflow-x: hidden !important;\n      background: #000 !important;\n    }\n\n    .ct-scroll-story-elementor,\n    .ct-scroll-story-elementor * {\n      box-sizing: border-box;\n    }\n\n    .ct-scroll-story-elementor {\n      width: 100%;\n      max-width: 100vw;\n      overflow-x: hidden !important;\n      background: #000 !important;\n    }\n\n    .ct-hero-elementor {\n      min-height: 100svh;\n      overflow: hidden;\n    }\n\n    .ct-hero-stage {\n      min-height: 100svh;\n      height: auto;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: flex-start;\n      gap: 16px;\n      padding: 104px 14px max(18px, env(safe-area-inset-bottom));\n      overflow: hidden;\n    }\n\n    .ct-hero-title {\n      width: min(100%, 348px);\n      font-size: clamp(32px, 10.4vw, 48px);\n      line-height: 0.98;\n      letter-spacing: -0.055em;\n      margin: clamp(44px, 10svh, 84px) 0 0;\n      text-align: center;\n      transform: none !important;\n    }\n\n    .ct-content-line {\n      --ct-word-gap: 0.11em;\n      width: 100%;\n      grid-template-columns: minmax(0, calc(50% - var(--ct-word-gap))) max-content;\n      column-gap: var(--ct-word-gap);\n    }\n\n    .ct-word-slot {\n      min-width: 0;\n      overflow: visible;\n    }\n\n    .ct-rotating-word {\n      max-width: 47vw;\n      font-size: inherit;\n      line-height: inherit;\n    }\n\n    .ct-content-word {\n      min-width: 0;\n    }\n\n    .ct-hero-proof {\n      position: relative;\n      left: auto;\n      right: auto;\n      bottom: auto;\n      width: min(100%, 360px);\n      margin: auto auto 0;\n      transform: none !important;\n    }\n\n    .ct-hero-proof p:first-child {\n      font-size: 12px;\n    }\n\n    .ct-hero-proof p:last-child {\n      font-size: 10px;\n      line-height: 1.65;\n      letter-spacing: 0.18em;\n    }\n\n    .ct-hero-learn {\n      position: relative;\n      left: auto;\n      bottom: auto;\n      margin: 2px 0 0;\n      transform: none !important;\n      font-size: 15px;\n    }\n\n    .ct-solutions-stage {\n      min-height: auto;\n      padding: 94px 0 46px;\n      overflow: visible;\n    }\n\n    .ct-section-kicker {\n      display: none !important;\n    }\n\n    .ct-solution-tabs {\n      position: sticky;\n      z-index: 8;\n      top: 76px;\n      display: grid !important;\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n      gap: 8px;\n      padding: 0 14px 14px;\n      margin: 0 0 14px;\n      background: linear-gradient(#000 72%, rgba(0, 0, 0, 0));\n    }\n\n    .ct-solution-tabs button {\n      min-width: 0;\n      padding: 0 0 13px;\n      font-size: clamp(11px, 3.1vw, 14px);\n      line-height: 1.05;\n      white-space: nowrap;\n      text-align: center;\n    }\n\n    .ct-solution-tabs button::before {\n      height: 3px;\n    }\n\n    .ct-solutions-window {\n      overflow-x: auto !important;\n      overflow-y: visible;\n      scroll-snap-type: x mandatory;\n      scroll-padding-inline: 16px;\n      touch-action: pan-x;\n      -webkit-overflow-scrolling: touch;\n      padding: 0 16px 12px;\n      scrollbar-width: none;\n    }\n\n    .ct-solutions-window::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ct-solutions-strip {\n      display: flex;\n      width: max-content;\n      gap: 16px;\n      padding: 0;\n      transform: none !important;\n    }\n\n    .ct-solution-card {\n      flex: 0 0 calc(100vw - 32px);\n      width: calc(100vw - 32px);\n      min-height: min(78svh, 690px);\n      height: auto;\n      display: flex;\n      flex-direction: column;\n      scroll-snap-align: center;\n      overflow: hidden;\n      opacity: 1 !important;\n      filter: none !important;\n      transform: none !important;\n      background: #030303;\n    }\n\n    .ct-solution-card::before,\n    .ct-solution-tint,\n    .ct-solution-image::after {\n      display: none !important;\n    }\n\n    .ct-solution-image {\n      position: relative;\n      inset: auto;\n      width: 100%;\n      min-height: clamp(255px, 43svh, 330px);\n      height: clamp(255px, 43svh, 330px);\n      flex: 0 0 clamp(255px, 43svh, 330px);\n      background-size: contain;\n      background-position: top right;\n      background-repeat: no-repeat;\n      opacity: 1 !important;\n      transform: none !important;\n    }\n\n    .ct-solution-copy {\n      position: relative;\n      inset: auto;\n      display: flex;\n      flex-direction: column;\n      gap: 8px;\n      min-height: 0;\n      margin: 0;\n      padding: 18px 22px 22px;\n      text-align: left;\n    }\n\n    .ct-solution-copy h2 {\n      max-width: 100%;\n      font-size: clamp(21px, 6vw, 28px);\n      line-height: 1.1;\n      letter-spacing: -0.035em;\n    }\n\n    .ct-solution-copy p {\n      margin-top: 0;\n      font-size: 14px;\n      line-height: 1.25;\n    }\n\n    .ct-solution-meta {\n      margin-top: 4px;\n      gap: 8px;\n      flex-wrap: wrap;\n      align-items: center;\n      font-size: 14px;\n    }\n\n    .ct-solution-meta b {\n      padding: 8px 12px;\n      border-radius: 12px;\n      font-size: 14px;\n    }\n\n    .ct-solution-copy a {\n      margin-top: 8px;\n      font-size: 17px;\n    }\n\n    .ct-solution-progress {\n      margin-top: 16px;\n    }\n\n    .ct-trusted-stage {\n      min-height: auto;\n      padding: 92px 0 42px;\n      justify-content: flex-start;\n      gap: 18px;\n      overflow: hidden;\n    }\n\n    .ct-trusted-heading {\n      width: min(100%, 390px);\n      margin: 0 auto;\n      padding: 0 22px;\n    }\n\n    .ct-trusted-heading p {\n      display: none !important;\n    }\n\n    .ct-trusted-heading h2 {\n      margin: 0;\n      font-size: clamp(28px, 7.7vw, 36px);\n      line-height: 1.08;\n      text-align: center;\n      text-transform: none !important;\n    }\n\n    .ct-contester-marquee {\n      min-height: auto;\n      overflow: visible;\n    }\n\n    .ct-contester-track {\n      display: flex;\n      gap: 16px;\n      padding: 0 20px 14px;\n      overflow-x: auto !important;\n      scroll-snap-type: x mandatory;\n      touch-action: pan-x;\n      transform: none !important;\n      animation: none !important;\n      -webkit-overflow-scrolling: touch;\n      scrollbar-width: none;\n    }\n\n    .ct-contester-track::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ct-contester-card {\n      flex: 0 0 min(80vw, 330px);\n      width: min(80vw, 330px);\n      height: min(54svh, 460px);\n      scroll-snap-align: center;\n    }\n\n    .ct-features-stage {\n      display: block;\n      min-height: auto;\n      padding: 94px 18px 50px;\n      overflow: visible;\n    }\n\n    .ct-feature-copy-window,\n    .ct-feature-visual-window,\n    .ct-feature-counter {\n      display: none !important;\n    }\n\n    .ct-mobile-feature-list {\n      display: grid;\n      gap: 30px;\n    }\n\n    .ct-mobile-feature-item {\n      display: grid;\n      gap: 14px;\n    }\n\n    .ct-mobile-feature-text strong {\n      display: block;\n      color: #fff;\n      font-size: clamp(28px, 8vw, 38px);\n      line-height: 1.05;\n      font-weight: 500;\n      letter-spacing: -0.045em;\n    }\n\n    .ct-mobile-feature-text span {\n      display: block;\n      margin-top: 8px;\n      color: rgba(255, 255, 255, 0.58);\n      font-size: clamp(16px, 4.6vw, 22px);\n      line-height: 1.25;\n      letter-spacing: 0.06em;\n    }\n\n    .ct-mobile-feature-card {\n      border: 0 !important;\n      outline: 0 !important;\n      border-radius: 18px;\n      overflow: hidden;\n      background: #030303;\n      box-shadow: none !important;\n    }\n\n    .ct-mobile-feature-card img {\n      display: block;\n      width: 100%;\n      height: auto;\n      border: 0 !important;\n      outline: 0 !important;\n      box-shadow: none !important;\n    }\n\n    .ct-mobile-feature-more {\n      color: rgba(255, 255, 255, 0.42);\n      font-size: clamp(32px, 9vw, 46px);\n      line-height: 1;\n      letter-spacing: -0.05em;\n    }\n\n    .ct-award-row {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 12px;\n      color: #fff;\n      opacity: 1;\n      width: 100%;\n      text-align: center;\n    }\n\n    .ct-award-row p {\n      color: rgba(255, 255, 255, 0.88) !important;\n      opacity: 1 !important;\n      font-size: 11px;\n      line-height: 1.3;\n    }\n\n    .ct-footer-stage {\n      min-height: auto;\n      height: auto !important;\n      padding: 92px 18px max(16px, env(safe-area-inset-bottom));\n      justify-content: flex-start;\n      gap: 18px;\n      overflow: hidden;\n    }\n\n    .ct-footer-main {\n      display: flex;\n      flex-direction: column;\n      gap: 18px;\n      width: 100%;\n      max-width: 420px;\n      align-items: center;\n      text-align: center;\n    }\n\n    .ct-footer-media {\n      order: 1;\n      width: min(70vw, 260px);\n      justify-self: center;\n    }\n\n    .ct-footer-media span {\n      display: none;\n    }\n\n    .ct-footer-message {\n      order: 2;\n      align-items: center;\n      width: 100%;\n    }\n\n    .ct-footer-message h2 {\n      font-size: clamp(26px, 8vw, 36px);\n      line-height: 1.08;\n      letter-spacing: -0.055em;\n    }\n\n    .ct-footer-line,\n    .ct-footer-content-line {\n      justify-content: center;\n    }\n\n    .ct-footer-content-line {\n      column-gap: 0.11em;\n    }\n\n    .ct-footer-rotating-word {\n      max-width: 48vw;\n    }\n\n    .ct-footer-cta {\n      width: min(280px, 80vw);\n      min-height: 50px;\n    }\n\n    .ct-footer-bottom {\n      position: static;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n      width: 100%;\n      margin-top: 0;\n      color: #fff;\n      opacity: 1;\n      font-size: 11px;\n      white-space: nowrap;\n    }\n\n    .ct-footer-bottom p {\n      display: flex;\n      gap: 8px;\n      margin: 0;\n      color: #fff !important;\n      opacity: 1 !important;\n    }\n\n    .ct-footer-bottom span,\n    .ct-footer-bottom a {\n      color: #fff !important;\n      opacity: 1 !important;\n      white-space: nowrap;\n    }\n  }\n\n  @keyframes ctFooterWordGradient {\n    0%,\n    100% {\n      background-position: 0% 50%;\n    }\n\n    50% {\n      background-position: 100% 50%;\n    }\n  }\n\n  @keyframes ctFooterCtaFlow {\n    to {\n      background-position: 0 0, 260% 0;\n    }\n  }\n  @media (max-width: 900px) {\n    html,\n    body,\n    .ct-scroll-story-elementor {\n      width: 100% !important;\n      max-width: 100vw !important;\n      overflow-x: hidden !important;\n      background: #000 !important;\n    }\n\n    .ct-hero-elementor,\n    .ct-solutions-elementor,\n    .ct-trusted-section,\n    .ct-features-story,\n    .ct-stand-story,\n    .ct-footer-story {\n      height: auto !important;\n      min-height: auto !important;\n      overflow: hidden !important;\n      background: #000 !important;\n    }\n\n    .ct-hero-stage {\n      min-height: 100dvh !important;\n      height: auto !important;\n      padding: 96px 14px 22px !important;\n      justify-content: flex-start !important;\n      gap: 12px !important;\n    }\n\n    .ct-hero-title {\n      width: min(100%, 330px) !important;\n      margin-top: clamp(30px, 7svh, 58px) !important;\n      font-size: clamp(29px, 8.9vw, 41px) !important;\n      line-height: 0.98 !important;\n      letter-spacing: -0.055em !important;\n      text-align: center !important;\n    }\n\n    .ct-content-line {\n      --ct-word-gap: 0.1em;\n      grid-template-columns: minmax(0, calc(50% - var(--ct-word-gap))) max-content !important;\n      column-gap: var(--ct-word-gap) !important;\n    }\n\n    .ct-rotating-word {\n      max-width: 45vw !important;\n    }\n\n    .ct-hero-proof {\n      width: min(100%, 330px) !important;\n      margin-top: auto !important;\n      margin-bottom: 4px !important;\n    }\n\n    .ct-hero-proof p:first-child {\n      font-size: 11px !important;\n    }\n\n    .ct-hero-proof p:last-child {\n      font-size: 9px !important;\n      line-height: 1.65 !important;\n      letter-spacing: 0.15em !important;\n    }\n\n    .ct-hero-learn {\n      margin-top: 0 !important;\n      font-size: 14px !important;\n    }\n\n    .ct-solutions-stage {\n      padding: 90px 0 44px !important;\n    }\n\n    .ct-solution-tabs {\n      top: 72px !important;\n      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\n      gap: 6px !important;\n      padding: 0 16px 12px !important;\n      margin-bottom: 12px !important;\n    }\n\n    .ct-solution-tabs button {\n      font-size: clamp(10px, 2.75vw, 12px) !important;\n      line-height: 1 !important;\n      white-space: nowrap !important;\n      text-align: center !important;\n    }\n\n    .ct-solutions-window {\n      display: block !important;\n      width: 100% !important;\n      max-width: 100vw !important;\n      overflow-x: auto !important;\n      overflow-y: hidden !important;\n      scroll-snap-type: x mandatory !important;\n      scroll-padding-inline: 16px !important;\n      touch-action: pan-x !important;\n      overscroll-behavior-inline: contain !important;\n      -webkit-overflow-scrolling: touch !important;\n    }\n\n    .ct-solutions-strip {\n      display: flex !important;\n      width: max-content !important;\n      gap: 16px !important;\n      transform: none !important;\n    }\n\n    .ct-solution-card {\n      flex: 0 0 calc(100vw - 32px) !important;\n      width: calc(100vw - 32px) !important;\n      min-height: min(82dvh, 710px) !important;\n      height: auto !important;\n      display: flex !important;\n      flex-direction: column !important;\n      scroll-snap-align: center !important;\n      scroll-snap-stop: always !important;\n      opacity: 1 !important;\n      filter: none !important;\n      transform: none !important;\n    }\n\n    .ct-solution-card::before,\n    .ct-solution-tint,\n    .ct-solution-image::after {\n      display: none !important;\n    }\n\n    .ct-solution-image {\n      position: relative !important;\n      inset: auto !important;\n      width: 100% !important;\n      min-height: clamp(250px, 42dvh, 340px) !important;\n      height: clamp(250px, 42dvh, 340px) !important;\n      flex: 0 0 clamp(250px, 42dvh, 340px) !important;\n      background-size: contain !important;\n      background-position: top right !important;\n      background-repeat: no-repeat !important;\n      opacity: 1 !important;\n      transform: none !important;\n    }\n\n    .ct-solution-copy {\n      position: relative !important;\n      inset: auto !important;\n      flex: 1 1 auto !important;\n      justify-content: flex-start !important;\n      gap: 7px !important;\n      padding: 16px 20px 20px !important;\n    }\n\n    .ct-solution-copy h2 {\n      font-size: clamp(20px, 5.7vw, 27px) !important;\n      line-height: 1.08 !important;\n      letter-spacing: -0.04em !important;\n    }\n\n    .ct-solution-copy p,\n    .ct-solution-meta {\n      font-size: 13px !important;\n      line-height: 1.22 !important;\n    }\n\n    .ct-solution-meta {\n      margin-top: 2px !important;\n      gap: 8px !important;\n    }\n\n    .ct-solution-meta b {\n      padding: 8px 11px !important;\n      font-size: 13px !important;\n    }\n\n    .ct-solution-copy a {\n      margin-top: auto !important;\n      font-size: 16px !important;\n    }\n\n    .ct-trusted-stage {\n      padding: 90px 0 38px !important;\n      gap: 18px !important;\n      justify-content: flex-start !important;\n    }\n\n    .ct-trusted-heading {\n      width: min(100%, 390px) !important;\n      padding: 0 24px !important;\n      margin: 0 auto !important;\n    }\n\n    .ct-trusted-heading h2 {\n      font-size: clamp(29px, 7.7vw, 36px) !important;\n      line-height: 1.1 !important;\n      text-align: left !important;\n      text-transform: none !important;\n    }\n\n    .ct-contester-marquee {\n      width: 100% !important;\n      min-height: auto !important;\n      overflow: visible !important;\n    }\n\n    .ct-contester-track {\n      display: flex !important;\n      width: auto !important;\n      gap: 16px !important;\n      padding: 0 20px 12px !important;\n      overflow-x: auto !important;\n      overflow-y: hidden !important;\n      scroll-snap-type: x mandatory !important;\n      touch-action: pan-x !important;\n      overscroll-behavior-inline: contain !important;\n      transform: none !important;\n      animation: none !important;\n      -webkit-overflow-scrolling: touch !important;\n    }\n\n    .ct-contester-card {\n      flex: 0 0 min(80vw, 330px) !important;\n      width: min(80vw, 330px) !important;\n      height: min(55dvh, 460px) !important;\n      scroll-snap-align: center !important;\n      scroll-snap-stop: always !important;\n    }\n\n    .ct-features-stage {\n      display: block !important;\n      min-height: auto !important;\n      padding: 90px 18px 46px !important;\n      overflow: visible !important;\n    }\n\n    .ct-feature-copy-window,\n    .ct-feature-visual-window,\n    .ct-feature-counter {\n      display: none !important;\n      visibility: hidden !important;\n    }\n\n    .ct-mobile-feature-list {\n      display: grid !important;\n      gap: 32px !important;\n    }\n\n    .ct-mobile-feature-item {\n      display: grid !important;\n      gap: 12px !important;\n    }\n\n    .ct-mobile-feature-card {\n      border: 0 !important;\n      outline: 0 !important;\n      box-shadow: none !important;\n      background: #000 !important;\n    }\n\n    .ct-mobile-feature-card img {\n      border: 0 !important;\n      outline: 0 !important;\n      box-shadow: none !important;\n    }\n\n    .ct-award-row,\n    .ct-award-row * {\n      color: #fff !important;\n      opacity: 1 !important;\n    }\n\n    .ct-footer-story {\n      height: auto !important;\n      min-height: auto !important;\n      overflow: hidden !important;\n      background: #000 !important;\n    }\n\n    .ct-footer-stage {\n      min-height: auto !important;\n      height: auto !important;\n      padding: 90px 18px 18px !important;\n      gap: 18px !important;\n      overflow: hidden !important;\n    }\n\n    .ct-footer-main {\n      display: flex !important;\n      flex-direction: column !important;\n      align-items: center !important;\n      text-align: center !important;\n      gap: 16px !important;\n      max-width: 420px !important;\n    }\n\n    .ct-footer-media {\n      order: 1 !important;\n      width: min(68vw, 250px) !important;\n    }\n\n    .ct-footer-message {\n      order: 2 !important;\n      width: 100% !important;\n      align-items: center !important;\n    }\n\n    .ct-footer-message h2 {\n      font-size: clamp(25px, 7.7vw, 34px) !important;\n      line-height: 1.08 !important;\n    }\n\n    .ct-footer-bottom {\n      display: flex !important;\n      flex-wrap: nowrap !important;\n      justify-content: center !important;\n      gap: 8px !important;\n      width: 100% !important;\n      color: #fff !important;\n      opacity: 1 !important;\n      font-size: 10px !important;\n      white-space: nowrap !important;\n    }\n\n    .ct-footer-bottom p,\n    .ct-footer-bottom span,\n    .ct-footer-bottom a {\n      color: #fff !important;\n      opacity: 1 !important;\n      white-space: nowrap !important;\n    }\n  }\n\n  @media (max-width: 900px) {\n    html,\n    body,\n    .ct-scroll-story-elementor {\n      overflow-x: clip !important;\n    }\n\n    .ct-hero-stage {\n      min-height: calc(100svh - env(safe-area-inset-bottom)) !important;\n      padding: 88px 14px 14px !important;\n      gap: 9px !important;\n    }\n\n    .ct-hero-title {\n      width: min(100%, 360px) !important;\n      margin-top: clamp(24px, 5svh, 44px) !important;\n      font-size: clamp(24px, 7.6vw, 34px) !important;\n      line-height: 1.02 !important;\n      letter-spacing: -0.055em !important;\n    }\n\n    .ct-content-line {\n      --ct-word-gap: 0.15em;\n      grid-template-columns: max-content max-content !important;\n      justify-content: center !important;\n      column-gap: var(--ct-word-gap) !important;\n    }\n\n    .ct-word-slot,\n    .ct-rotating-word {\n      max-width: 46vw !important;\n      white-space: nowrap !important;\n      overflow: visible !important;\n    }\n\n    .ct-hero-proof {\n      width: min(100%, 330px) !important;\n      margin-top: auto !important;\n      margin-bottom: 0 !important;\n    }\n\n    .ct-hero-proof p:first-child {\n      font-size: 10px !important;\n    }\n\n    .ct-hero-proof p:last-child {\n      font-size: 8.5px !important;\n      line-height: 1.55 !important;\n      letter-spacing: 0.13em !important;\n    }\n\n    .ct-hero-learn {\n      font-size: 13px !important;\n      transform: translateY(-2px) !important;\n    }\n\n    .ct-solutions-stage {\n      padding: 84px 0 34px !important;\n    }\n\n    .ct-solution-tabs {\n      top: 66px !important;\n      gap: 4px !important;\n      padding: 0 14px 10px !important;\n      margin-bottom: 8px !important;\n    }\n\n    .ct-solution-tabs button {\n      font-size: clamp(9px, 2.55vw, 11px) !important;\n      line-height: 1 !important;\n      letter-spacing: -0.02em !important;\n      white-space: nowrap !important;\n    }\n\n    .ct-solution-card {\n      min-height: min(88svh, 760px) !important;\n      border-radius: 22px !important;\n      justify-content: flex-start !important;\n      background: #030303 !important;\n    }\n\n    .ct-solution-image {\n      min-height: clamp(285px, 44svh, 370px) !important;\n      height: clamp(285px, 44svh, 370px) !important;\n      flex-basis: clamp(285px, 44svh, 370px) !important;\n      background-size: contain !important;\n      background-position: top right !important;\n      background-color: transparent !important;\n    }\n\n    .ct-solution-copy {\n      padding: 14px 20px 20px !important;\n      gap: 6px !important;\n    }\n\n    .ct-solution-copy h2 {\n      font-size: clamp(19px, 5.15vw, 24px) !important;\n      line-height: 1.08 !important;\n    }\n\n    .ct-solution-copy p,\n    .ct-solution-meta {\n      font-size: 12px !important;\n      line-height: 1.18 !important;\n    }\n\n    .ct-solution-meta b {\n      padding: 7px 10px !important;\n      font-size: 12px !important;\n    }\n\n    .ct-solution-copy a {\n      margin-top: auto !important;\n      font-size: 15px !important;\n    }\n\n    .ct-solution-progress {\n      margin-top: 12px !important;\n    }\n\n    .ct-trusted-stage {\n      padding: 84px 0 28px !important;\n      gap: 12px !important;\n    }\n\n    .ct-trusted-heading {\n      width: min(100%, 390px) !important;\n      padding: 0 28px !important;\n    }\n\n    .ct-trusted-heading h2 {\n      font-size: clamp(26px, 7vw, 32px) !important;\n      line-height: 1.1 !important;\n      text-align: left !important;\n    }\n\n    .ct-contester-track {\n      gap: 14px !important;\n      padding: 0 18px 8px !important;\n      overflow-x: auto !important;\n      touch-action: pan-x !important;\n      scroll-snap-type: x mandatory !important;\n      scroll-behavior: smooth !important;\n    }\n\n    .ct-contester-card {\n      flex-basis: min(82vw, 340px) !important;\n      width: min(82vw, 340px) !important;\n      height: min(52svh, 440px) !important;\n    }\n\n    .ct-features-stage {\n      padding: 86px 18px 38px !important;\n    }\n\n    .ct-mobile-feature-list {\n      gap: 24px !important;\n    }\n\n    .ct-mobile-feature-item {\n      gap: 10px !important;\n    }\n\n    .ct-mobile-feature-text strong {\n      font-size: clamp(26px, 7.4vw, 34px) !important;\n      line-height: 1.05 !important;\n      text-transform: none !important;\n      letter-spacing: -0.045em !important;\n    }\n\n    .ct-mobile-feature-text span {\n      margin-top: 6px !important;\n      font-size: clamp(15px, 4.2vw, 19px) !important;\n      line-height: 1.25 !important;\n      letter-spacing: 0.04em !important;\n    }\n\n    .ct-mobile-feature-card,\n    .ct-mobile-feature-card * {\n      border: 0 !important;\n      outline: 0 !important;\n      box-shadow: none !important;\n    }\n\n    .ct-mobile-feature-card {\n      overflow: hidden !important;\n      border-radius: 18px !important;\n      background: #000 !important;\n    }\n\n    .ct-mobile-feature-card img {\n      display: block !important;\n      width: 100% !important;\n      height: auto !important;\n    }\n\n    .ct-award-row {\n      gap: 10px !important;\n      padding: 0 28px !important;\n    }\n\n    .ct-award-row p {\n      font-size: 12px !important;\n      color: rgba(255, 255, 255, 0.92) !important;\n    }\n\n    .ct-footer-story {\n      height: auto !important;\n      min-height: auto !important;\n      margin-bottom: 0 !important;\n      padding-bottom: 0 !important;\n      overflow: hidden !important;\n    }\n\n    .ct-footer-stage {\n      min-height: auto !important;\n      padding: 84px 18px 14px !important;\n      gap: 14px !important;\n      overflow: hidden !important;\n    }\n\n    .ct-footer-main {\n      gap: 14px !important;\n    }\n\n    .ct-footer-media {\n      order: 1 !important;\n      width: min(62vw, 230px) !important;\n    }\n\n    .ct-footer-message {\n      order: 2 !important;\n    }\n\n    .ct-footer-message h2 {\n      font-size: clamp(24px, 7.1vw, 32px) !important;\n      line-height: 1.08 !important;\n    }\n\n    .ct-footer-message > a {\n      width: min(260px, 78vw) !important;\n      min-height: 48px !important;\n    }\n\n    .ct-footer-bottom {\n      gap: 7px !important;\n      padding: 0 !important;\n      margin: 0 !important;\n      font-size: 9px !important;\n    }\n  }\n\n  @media (max-width: 900px) {\n    html,\n    body,\n    .ct-scroll-story-elementor,\n    .ct-scroll-story-elementor * {\n      max-width: 100vw;\n    }\n\n    html,\n    body {\n      background: #000 !important;\n      overflow-x: hidden !important;\n    }\n\n    .ct-scroll-story-elementor {\n      background: #000 !important;\n      margin: 0 !important;\n      padding: 0 !important;\n      overflow-x: hidden !important;\n    }\n\n    .ct-floating-nav {\n      left: 14px !important;\n      right: 14px !important;\n      width: auto !important;\n      max-width: none !important;\n      top: max(18px, env(safe-area-inset-top)) !important;\n      padding: 12px 12px !important;\n      border-radius: 24px !important;\n    }\n\n    .ct-nav-links {\n      display: none !important;\n    }\n\n    .ct-wordmark img {\n      height: 31px !important;\n    }\n\n    .ct-nav-cta {\n      min-height: 44px !important;\n      padding: 0 16px !important;\n      font-size: 13px !important;\n      border-radius: 17px !important;\n    }\n\n    .ct-hero-stage {\n      min-height: 100svh !important;\n      padding: 92px 12px max(28px, env(safe-area-inset-bottom)) !important;\n      gap: 8px !important;\n      justify-content: flex-start !important;\n    }\n\n    .ct-hero-title {\n      order: 1 !important;\n      width: min(100%, 338px) !important;\n      margin: clamp(28px, 7svh, 54px) auto 0 !important;\n      font-size: clamp(21px, 6.8vw, 30px) !important;\n      line-height: 1.05 !important;\n      letter-spacing: -0.052em !important;\n      transform: none !important;\n    }\n\n    .ct-content-line {\n      --ct-word-gap: 0.12em;\n      grid-template-columns: minmax(0, max-content) minmax(0, max-content) !important;\n      column-gap: var(--ct-word-gap) !important;\n      max-width: 100% !important;\n      justify-content: center !important;\n    }\n\n    .ct-word-slot {\n      max-width: 43vw !important;\n      min-width: 0 !important;\n      overflow: visible !important;\n    }\n\n    .ct-rotating-word {\n      max-width: 43vw !important;\n      transform: none !important;\n      white-space: nowrap !important;\n    }\n\n    .ct-hero-proof {\n      order: 2 !important;\n      margin-top: auto !important;\n      width: min(100%, 326px) !important;\n    }\n\n    .ct-hero-proof p:first-child {\n      font-size: 10px !important;\n      line-height: 1.35 !important;\n    }\n\n    .ct-hero-proof p:last-child {\n      font-size: 8px !important;\n      line-height: 1.7 !important;\n      letter-spacing: 0.12em !important;\n    }\n\n    .ct-hero-learn {\n      order: 3 !important;\n      margin: 0 0 2px !important;\n      font-size: 13px !important;\n      line-height: 1 !important;\n      transform: none !important;\n    }\n\n    .ct-solutions-stage {\n      min-height: auto !important;\n      padding: 84px 0 30px !important;\n    }\n\n    .ct-solution-tabs {\n      position: sticky !important;\n      top: 72px !important;\n      display: grid !important;\n      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\n      gap: 8px !important;\n      padding: 0 18px 12px !important;\n      margin: 0 auto 10px !important;\n      width: 100% !important;\n    }\n\n    .ct-solution-tabs span:first-child {\n      display: none !important;\n    }\n\n    .ct-solution-tabs button {\n      min-width: 0 !important;\n      font-size: clamp(10px, 3.05vw, 13px) !important;\n      line-height: 1.08 !important;\n      letter-spacing: -0.035em !important;\n      white-space: normal !important;\n      text-align: center !important;\n    }\n\n    .ct-solutions-window {\n      overflow-x: auto !important;\n      overflow-y: hidden !important;\n      touch-action: pan-x !important;\n      scroll-snap-type: x mandatory !important;\n      scroll-padding-inline: 16px !important;\n      padding: 0 16px 8px !important;\n      -webkit-overflow-scrolling: touch !important;\n    }\n\n    .ct-solutions-window::-webkit-scrollbar,\n    .ct-contester-track::-webkit-scrollbar {\n      display: none !important;\n    }\n\n    .ct-solutions-strip {\n      gap: 14px !important;\n      padding: 0 !important;\n      align-items: stretch !important;\n    }\n\n    .ct-solution-card {\n      flex: 0 0 calc(100vw - 32px) !important;\n      width: calc(100vw - 32px) !important;\n      min-height: min(86svh, 710px) !important;\n      max-height: none !important;\n      display: flex !important;\n      flex-direction: column !important;\n      justify-content: flex-start !important;\n      scroll-snap-align: center !important;\n      scroll-snap-stop: always !important;\n      overflow: hidden !important;\n      background: #030303 !important;\n    }\n\n    .ct-solution-card::before {\n      background:\n        linear-gradient(180deg, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0.42) 70%, rgba(0, 0, 0, 0.78) 100%) !important;\n      opacity: 1 !important;\n    }\n\n    .ct-solution-image {\n      position: relative !important;\n      inset: auto !important;\n      order: 1 !important;\n      width: 100% !important;\n      min-height: clamp(300px, 47svh, 390px) !important;\n      height: clamp(300px, 47svh, 390px) !important;\n      flex: 0 0 clamp(300px, 47svh, 390px) !important;\n      background-size: contain !important;\n      background-repeat: no-repeat !important;\n      background-position: top right !important;\n      opacity: 1 !important;\n      filter: none !important;\n    }\n\n    .ct-solution-copy {\n      position: relative !important;\n      inset: auto !important;\n      z-index: 2 !important;\n      order: 2 !important;\n      flex: 1 1 auto !important;\n      min-height: 0 !important;\n      padding: 12px 22px 20px !important;\n      gap: 7px !important;\n      justify-content: flex-start !important;\n      color: #fff !important;\n    }\n\n    .ct-solution-copy h2 {\n      max-width: 10.5em !important;\n      font-size: clamp(20px, 5.6vw, 27px) !important;\n      line-height: 1.08 !important;\n      letter-spacing: -0.04em !important;\n    }\n\n    .ct-solution-copy p,\n    .ct-solution-meta {\n      font-size: clamp(12px, 3.35vw, 14px) !important;\n      line-height: 1.22 !important;\n      color: rgba(255, 255, 255, 0.74) !important;\n    }\n\n    .ct-solution-meta {\n      gap: 8px !important;\n      margin-top: 6px !important;\n    }\n\n    .ct-solution-meta b {\n      padding: 8px 12px !important;\n      font-size: clamp(12px, 3.25vw, 14px) !important;\n      border-radius: 13px !important;\n    }\n\n    .ct-solution-copy a {\n      margin-top: auto !important;\n      font-size: clamp(15px, 4vw, 18px) !important;\n      color: #fff !important;\n    }\n\n    .ct-solution-progress {\n      margin-top: 12px !important;\n      gap: 12px !important;\n    }\n\n    .ct-trusted-stage {\n      min-height: auto !important;\n      padding: 88px 0 34px !important;\n      gap: 18px !important;\n    }\n\n    .ct-trusted-heading {\n      width: 100% !important;\n      padding: 0 28px !important;\n      margin: 0 !important;\n    }\n\n    .ct-trusted-heading h2 {\n      max-width: 11em !important;\n      margin: 0 !important;\n      font-size: clamp(26px, 7.4vw, 34px) !important;\n      line-height: 1.12 !important;\n      letter-spacing: -0.05em !important;\n      text-align: left !important;\n    }\n\n    .ct-contester-track {\n      width: 100% !important;\n      gap: 16px !important;\n      padding: 0 18px 8px !important;\n      overflow-x: auto !important;\n      overflow-y: hidden !important;\n      touch-action: pan-x !important;\n      scroll-snap-type: x mandatory !important;\n      scroll-padding-inline: 18px !important;\n      -webkit-overflow-scrolling: touch !important;\n    }\n\n    .ct-contester-card {\n      flex: 0 0 min(82vw, 340px) !important;\n      width: min(82vw, 340px) !important;\n      height: min(55svh, 460px) !important;\n      scroll-snap-align: center !important;\n      scroll-snap-stop: always !important;\n    }\n\n    .ct-features-stage {\n      min-height: auto !important;\n      padding: 86px 18px 36px !important;\n      display: block !important;\n    }\n\n    .ct-feature-copy-window,\n    .ct-feature-media-window,\n    .ct-feature-current {\n      display: none !important;\n    }\n\n    .ct-mobile-feature-list {\n      display: grid !important;\n      gap: 28px !important;\n      width: 100% !important;\n      margin: 0 !important;\n    }\n\n    .ct-mobile-feature-item {\n      display: grid !important;\n      gap: 14px !important;\n    }\n\n    .ct-mobile-feature-text strong {\n      font-size: clamp(28px, 8vw, 37px) !important;\n      line-height: 1.04 !important;\n      letter-spacing: -0.055em !important;\n      color: #fff !important;\n    }\n\n    .ct-mobile-feature-text span {\n      margin-top: 5px !important;\n      font-size: clamp(15px, 4.2vw, 18px) !important;\n      line-height: 1.22 !important;\n      letter-spacing: 0.055em !important;\n      color: rgba(255, 255, 255, 0.52) !important;\n    }\n\n    .ct-mobile-feature-card {\n      width: 100% !important;\n      border: 0 !important;\n      outline: 0 !important;\n      box-shadow: none !important;\n      border-radius: 20px !important;\n      background: transparent !important;\n      overflow: hidden !important;\n    }\n\n    .ct-mobile-feature-card img {\n      width: 100% !important;\n      height: auto !important;\n      display: block !important;\n      border: 0 !important;\n      outline: 0 !important;\n      box-shadow: none !important;\n    }\n\n    .ct-mobile-feature-more {\n      font-size: clamp(28px, 7.8vw, 36px) !important;\n      line-height: 1.05 !important;\n      color: rgba(255, 255, 255, 0.38) !important;\n    }\n\n    .ct-awards-stage {\n      min-height: auto !important;\n      padding: 84px 24px 30px !important;\n    }\n\n    .ct-award-row {\n      display: grid !important;\n      gap: 20px !important;\n      padding: 0 !important;\n      text-align: center !important;\n    }\n\n    .ct-award-row p {\n      color: rgba(255, 255, 255, 0.84) !important;\n      font-size: clamp(12px, 3.35vw, 14px) !important;\n      line-height: 1.35 !important;\n    }\n\n    .ct-footer-story {\n      min-height: auto !important;\n      height: auto !important;\n      overflow: hidden !important;\n      background: #000 !important;\n    }\n\n    .ct-footer-stage {\n      min-height: auto !important;\n      height: auto !important;\n      padding: 84px 18px max(16px, env(safe-area-inset-bottom)) !important;\n      display: grid !important;\n      gap: 14px !important;\n      background: #000 !important;\n      overflow: hidden !important;\n    }\n\n    .ct-footer-main {\n      display: grid !important;\n      grid-template-columns: 1fr !important;\n      gap: 16px !important;\n      align-items: center !important;\n      justify-items: center !important;\n      width: 100% !important;\n    }\n\n    .ct-footer-media {\n      order: 1 !important;\n      width: min(68vw, 250px) !important;\n      margin: 0 auto !important;\n    }\n\n    .ct-footer-message {\n      order: 2 !important;\n      align-items: center !important;\n      text-align: center !important;\n      gap: 14px !important;\n      width: 100% !important;\n    }\n\n    .ct-footer-message h2 {\n      font-size: clamp(25px, 7.2vw, 33px) !important;\n      line-height: 1.08 !important;\n      letter-spacing: -0.055em !important;\n    }\n\n    .ct-footer-word-slot {\n      max-width: 48vw !important;\n    }\n\n    .ct-footer-message > a {\n      width: min(260px, 78vw) !important;\n      min-height: 48px !important;\n      font-size: 14px !important;\n    }\n\n    .ct-footer-bottom {\n      display: flex !important;\n      flex-wrap: nowrap !important;\n      justify-content: center !important;\n      align-items: center !important;\n      gap: 14px !important;\n      width: 100% !important;\n      padding: 0 !important;\n      margin: 4px 0 0 !important;\n      color: #fff !important;\n      font-size: clamp(10px, 2.75vw, 12px) !important;\n      line-height: 1.2 !important;\n      white-space: nowrap !important;\n    }\n\n    .ct-footer-bottom span,\n    .ct-footer-bottom a {\n      color: #fff !important;\n      opacity: 1 !important;\n    }\n  }\n\n  @media (max-width: 900px) {\n    .ct-floating-nav {\n      top: max(14px, env(safe-area-inset-top)) !important;\n      min-height: 68px !important;\n      padding: 10px 12px !important;\n      display: flex !important;\n      align-items: center !important;\n      justify-content: space-between !important;\n      z-index: 120 !important;\n    }\n\n    .ct-wordmark {\n      display: flex !important;\n      align-items: center !important;\n      min-width: 0 !important;\n    }\n\n    .ct-wordmark img {\n      height: 32px !important;\n      max-width: 46vw !important;\n      object-fit: contain !important;\n    }\n\n    .ct-nav-cta {\n      flex: 0 0 auto !important;\n      height: 48px !important;\n      min-height: 48px !important;\n      display: inline-flex !important;\n      align-items: center !important;\n      justify-content: center !important;\n      padding: 0 18px !important;\n      line-height: 1 !important;\n      white-space: nowrap !important;\n    }\n\n    .ct-hero-stage {\n      min-height: 100svh !important;\n      padding-top: 90px !important;\n      padding-bottom: max(22px, env(safe-area-inset-bottom)) !important;\n    }\n\n    .ct-hero-title {\n      width: min(100%, 370px) !important;\n      margin: clamp(38px, 10svh, 82px) auto 0 !important;\n      font-size: clamp(27px, 8.4vw, 38px) !important;\n    }\n\n    .ct-word-slot,\n    .ct-rotating-word {\n      max-width: 47vw !important;\n    }\n\n    .ct-rotating-word-blend {\n      z-index: 12 !important;\n      pointer-events: none !important;\n    }\n\n    .ct-hero-proof {\n      width: min(100%, 350px) !important;\n    }\n\n    .ct-hero-proof p:first-child {\n      font-size: 12px !important;\n    }\n\n    .ct-hero-proof p:last-child {\n      font-size: 10px !important;\n      letter-spacing: 0.09em !important;\n      line-height: 1.55 !important;\n    }\n\n    .ct-hero-learn {\n      font-size: 15px !important;\n      margin-top: 2px !important;\n    }\n\n    .ct-solutions-window,\n    .ct-contester-marquee,\n    .ct-contester-track {\n      touch-action: auto !important;\n      overscroll-behavior: auto !important;\n    }\n\n    .ct-solution-tabs {\n      top: 78px !important;\n      gap: 5px !important;\n      padding: 0 12px 12px !important;\n    }\n\n    .ct-solution-tabs button {\n      font-size: clamp(11px, 3.1vw, 14px) !important;\n      line-height: 1.12 !important;\n    }\n\n    .ct-solution-card {\n      min-height: min(82svh, 660px) !important;\n    }\n\n    .ct-solution-image {\n      min-height: clamp(260px, 37svh, 330px) !important;\n      height: clamp(260px, 37svh, 330px) !important;\n      flex-basis: clamp(260px, 37svh, 330px) !important;\n      background-size: cover !important;\n      background-position: top right !important;\n    }\n\n    .ct-solution-copy {\n      padding: 12px 20px 18px !important;\n      gap: 6px !important;\n    }\n\n    .ct-solution-copy h2 {\n      max-width: 100% !important;\n      font-size: clamp(22px, 6vw, 28px) !important;\n      line-height: 1.08 !important;\n    }\n\n    .ct-solution-copy h2 br {\n      display: none !important;\n    }\n\n    .ct-solution-copy p,\n    .ct-solution-meta {\n      font-size: clamp(12px, 3.35vw, 14px) !important;\n      line-height: 1.18 !important;\n    }\n\n    .ct-solution-copy a {\n      margin-top: 12px !important;\n    }\n\n    .ct-contester-track {\n      scroll-snap-type: none !important;\n      scroll-behavior: auto !important;\n      transform: none !important;\n    }\n\n    .ct-contester-card {\n      flex-basis: min(82vw, 330px) !important;\n      width: min(82vw, 330px) !important;\n      height: min(54svh, 430px) !important;\n    }\n\n    .ct-footer-stage {\n      padding: 96px 18px max(14px, env(safe-area-inset-bottom)) !important;\n      gap: 18px !important;\n    }\n\n    .ct-award-row {\n      margin: 0 0 38px !important;\n      gap: 18px !important;\n    }\n\n    .ct-footer-main {\n      gap: 12px !important;\n    }\n\n    .ct-footer-media {\n      width: min(58vw, 220px) !important;\n    }\n\n    .ct-footer-media span {\n      display: none !important;\n    }\n\n    .ct-footer-message {\n      gap: 10px !important;\n    }\n\n    .ct-footer-message h2 {\n      font-size: clamp(22px, 6.4vw, 30px) !important;\n      line-height: 1.12 !important;\n    }\n\n    .ct-footer-message > a {\n      width: min(250px, 76vw) !important;\n      min-height: 44px !important;\n    }\n\n    .ct-footer-bottom {\n      margin-top: 10px !important;\n      gap: 10px !important;\n      color: #fff !important;\n      font-size: clamp(9px, 2.55vw, 11px) !important;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    'use strict';\n\n    function initContesterStory() {\n      var root = document.querySelector('.ct-scroll-story-elementor');\n      if (!root || root.dataset.ctStoryReady === 'true') return;\n      root.dataset.ctStoryReady = 'true';\n\n      var word = root.querySelector('.ct-rotating-word');\n      var slot = root.querySelector('.ct-word-slot');\n      var title = root.querySelector('.ct-hero-title');\n      var words = ['Branded', 'Creator', 'Publisher'];\n      var index = 0;\n      var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n      var mobileQuery = window.matchMedia('(max-width: 900px)');\n      var blendWord = document.createElement('b');\n      var blendInner = document.createElement('span');\n      var syncFrame = null;\n      var blendSyncEnabled = true;\n      var blendLayerOpacity = 1;\n\n      blendWord.className = 'ct-rotating-word-blend';\n      blendWord.setAttribute('aria-hidden', 'true');\n      blendInner.textContent = word ? word.textContent : words[0];\n      blendWord.appendChild(blendInner);\n      document.body.appendChild(blendWord);\n\n      function syncBlendWord(show) {\n        if (!slot || !title || !blendWord) return;\n\n        if (!blendSyncEnabled) {\n          blendWord.classList.add('is-handoff-hidden');\n          blendWord.classList.remove('is-ready');\n          blendWord.style.opacity = '0';\n          blendWord.style.visibility = 'hidden';\n          return;\n        }\n\n        var rect = slot.getBoundingClientRect();\n        var titleStyle = window.getComputedStyle(title);\n        var wordStyle = word ? window.getComputedStyle(word) : titleStyle;\n        var slotWidth = Math.max(slot.offsetWidth, 1);\n        var slotHeight = Math.max(slot.offsetHeight, 1);\n        var scaleX = rect.width \/ slotWidth;\n        var scaleY = rect.height \/ slotHeight;\n\n        blendWord.style.left = rect.left + 'px';\n        blendWord.style.top = rect.top + 'px';\n        blendWord.style.width = slotWidth + 'px';\n        blendWord.style.height = slotHeight + 'px';\n        blendWord.style.fontSize = titleStyle.fontSize;\n        blendWord.style.fontWeight = titleStyle.fontWeight;\n        blendWord.style.fontFamily = titleStyle.fontFamily;\n        blendWord.style.lineHeight = titleStyle.lineHeight;\n        blendWord.style.letterSpacing = titleStyle.letterSpacing;\n        blendWord.style.textAlign = wordStyle.textAlign || 'right';\n        blendWord.style.transform = 'scale(' + scaleX + ', ' + scaleY + ')';\n\n        if (show) {\n          blendWord.classList.remove('is-handoff-hidden');\n          blendWord.classList.add('is-ready');\n          blendWord.style.opacity = String(blendLayerOpacity);\n          blendWord.style.visibility = 'visible';\n        }\n      }\n\n      function requestSync(show) {\n        if (syncFrame) window.cancelAnimationFrame(syncFrame);\n        syncFrame = window.requestAnimationFrame(function () {\n          syncFrame = null;\n          syncBlendWord(show);\n        });\n      }\n\n      function warmSync() {\n        var frames = 0;\n        function tick() {\n          syncBlendWord(frames > 1);\n          frames += 1;\n          if (frames < 16) {\n            window.requestAnimationFrame(tick);\n          }\n        }\n        window.requestAnimationFrame(tick);\n      }\n\n      if (window.ResizeObserver && slot) {\n        var observer = new ResizeObserver(function () {\n          requestSync(true);\n        });\n        observer.observe(slot);\n        if (title) observer.observe(title);\n        observer.observe(root);\n      }\n\n      window.addEventListener('resize', function () {\n        requestSync(true);\n      }, { passive: true });\n\n      window.addEventListener('scroll', function () {\n        requestSync(true);\n      }, { passive: true });\n\n      if (document.fonts && document.fonts.ready) {\n        document.fonts.ready.then(function () {\n          warmSync();\n        });\n      }\n\n      window.addEventListener('load', warmSync, { once: true });\n      warmSync();\n\n      function rotateWord() {\n        index = (index + 1) % words.length;\n        if (word) word.textContent = words[index];\n        blendInner.textContent = words[index];\n        syncBlendWord(true);\n      }\n\n      function initWizardModal() {\n        var modal = root.querySelector('.ct-wizard-modal');\n        if (!modal || modal.dataset.ctWizardReady === 'true') return;\n        modal.dataset.ctWizardReady = 'true';\n\n        var dialog = modal.querySelector('.ct-wizard-dialog');\n        var openers = root.querySelectorAll('[data-ct-open-wizard]');\n        var closers = modal.querySelectorAll('[data-ct-close-wizard]');\n        var lastFocused = null;\n\n        function getLenis() {\n          return window.SiteMotion && typeof window.SiteMotion.getLenis === 'function'\n            ? window.SiteMotion.getLenis()\n            : null;\n        }\n\n        function setScrollPaused(paused) {\n          var lenis = getLenis();\n          if (lenis && paused && typeof lenis.stop === 'function') lenis.stop();\n          if (lenis && !paused && typeof lenis.start === 'function') lenis.start();\n        }\n\n        function openWizard(event) {\n          if (event) event.preventDefault();\n          lastFocused = document.activeElement;\n          modal.classList.add('is-open');\n          modal.setAttribute('aria-hidden', 'false');\n          document.documentElement.classList.add('ct-wizard-lock');\n          document.body.classList.add('ct-wizard-lock');\n          setScrollPaused(true);\n          window.setTimeout(function () {\n            if (dialog) dialog.focus();\n          }, 30);\n        }\n\n        function closeWizard() {\n          if (!modal.classList.contains('is-open')) return;\n          modal.classList.remove('is-open');\n          modal.setAttribute('aria-hidden', 'true');\n          document.documentElement.classList.remove('ct-wizard-lock');\n          document.body.classList.remove('ct-wizard-lock');\n          setScrollPaused(false);\n          if (lastFocused && typeof lastFocused.focus === 'function') {\n            lastFocused.focus();\n          }\n        }\n\n        openers.forEach(function (opener) {\n          opener.addEventListener('click', openWizard);\n        });\n\n        closers.forEach(function (closer) {\n          closer.addEventListener('click', closeWizard);\n        });\n\n        document.addEventListener('keydown', function (event) {\n          if (event.key === 'Escape') closeWizard();\n        });\n      }\n\n      function waitForMotion(callback, attempt) {\n        attempt = attempt || 0;\n        if (window.gsap && window.ScrollTrigger) {\n          callback(window.gsap, window.ScrollTrigger);\n          return;\n        }\n\n        if (attempt < 140) {\n          window.setTimeout(function () {\n            waitForMotion(callback, attempt + 1);\n          }, 50);\n        }\n      }\n\n      function setSolutionState(activeIndex) {\n        root.querySelectorAll('[data-ct-solution-tab]').forEach(function (tab, tabIndex) {\n          var active = tabIndex === activeIndex;\n          tab.classList.toggle('is-active', active);\n          tab.setAttribute('aria-selected', String(active));\n        });\n\n        root.querySelectorAll('.ct-solution-card').forEach(function (card, cardIndex) {\n          card.classList.toggle('is-active', cardIndex === activeIndex);\n        });\n\n        root.querySelectorAll('.ct-solution-progress span').forEach(function (item, itemIndex) {\n          item.classList.toggle('is-active', itemIndex === activeIndex);\n        });\n      }\n\n      function setSolutionIndicator(gsap, activeIndex, progress) {\n        var amount = gsap.utils.clamp(0, 1, progress);\n        root.querySelectorAll('[data-ct-solution-tab]').forEach(function (tab, tabIndex) {\n          tab.style.setProperty('--indicator-fill', tabIndex === activeIndex ? amount.toFixed(3) : '0');\n        });\n      }\n\n      function isMobileLayout() {\n        return mobileQuery.matches;\n      }\n\n      function startMobileWordRotation(gsap) {\n        if (root.dataset.ctMobileWordsReady === 'true') return;\n        root.dataset.ctMobileWordsReady = 'true';\n\n        if (reduceMotion || !gsap || !blendInner) {\n          window.setInterval(rotateWord, 2200);\n          return;\n        }\n\n        window.setInterval(function () {\n          index = (index + 1) % words.length;\n          gsap.to(blendInner, {\n            yPercent: -35,\n            autoAlpha: 0,\n            filter: 'blur(7px)',\n            duration: 0.28,\n            ease: 'power2.in',\n            onComplete: function () {\n              if (word) word.textContent = words[index];\n              blendInner.textContent = words[index];\n              syncBlendWord(true);\n              gsap.fromTo(blendInner, {\n                yPercent: 35,\n                autoAlpha: 0,\n                filter: 'blur(7px)'\n              }, {\n                yPercent: 0,\n                autoAlpha: 1,\n                filter: 'blur(0px)',\n                duration: 0.42,\n                ease: 'power3.out'\n              });\n            }\n          });\n        }, 2200);\n      }\n\n      function startMobileStrategyRotation(gsap) {\n        if (root.dataset.ctMobileStrategyReady === 'true') return;\n        root.dataset.ctMobileStrategyReady = 'true';\n\n        var rotator = root.querySelector('.ct-strategy-rotator');\n        var heading = rotator ? rotator.querySelector('h3') : null;\n        var copy = rotator ? rotator.querySelector('p') : null;\n        var items = [\n          { title: 'Watch and Engage CTA', description: '10x more engagement vs shop CTA' },\n          { title: 'Enhanced shopping journeys', description: 'Connected, guided, and interactive' },\n          { title: 'Omnichannel', description: 'Longer campaign lifetime' }\n        ];\n        var activeIndex = 0;\n\n        if (!heading || !copy) return;\n\n        function setItem(index, animate) {\n          var item = items[index % items.length];\n          activeIndex = index % items.length;\n\n          if (!animate || !gsap || reduceMotion) {\n            heading.textContent = item.title;\n            copy.textContent = item.description;\n            return;\n          }\n\n          gsap.to([heading, copy], {\n            y: -12,\n            autoAlpha: 0,\n            filter: 'blur(7px)',\n            duration: 0.26,\n            ease: 'power2.in',\n            stagger: 0.035,\n            onComplete: function () {\n              heading.textContent = item.title;\n              copy.textContent = item.description;\n              gsap.fromTo([heading, copy], {\n                y: 14,\n                autoAlpha: 0,\n                filter: 'blur(7px)'\n              }, {\n                y: 0,\n                autoAlpha: 1,\n                filter: 'blur(0px)',\n                duration: 0.46,\n                ease: 'power3.out',\n                stagger: 0.04\n              });\n            }\n          });\n        }\n\n        setItem(0, false);\n        window.setInterval(function () {\n          setItem(activeIndex + 1, true);\n        }, 2000);\n      }\n\n      function startMobileFooterRotation(gsap) {\n        if (root.dataset.ctMobileFooterWordsReady === 'true') return;\n        root.dataset.ctMobileFooterWordsReady = 'true';\n\n        var footerWord = root.querySelector('.ct-footer-word');\n        var footerWords = ['Brand', 'Creator', 'Publisher'];\n        var footerIndex = 0;\n        if (!footerWord) return;\n\n        window.setInterval(function () {\n          footerIndex = (footerIndex + 1) % footerWords.length;\n          if (!gsap || reduceMotion) {\n            footerWord.textContent = footerWords[footerIndex];\n            return;\n          }\n\n          gsap.to(footerWord, {\n            yPercent: -22,\n            autoAlpha: 0,\n            filter: 'blur(7px)',\n            duration: 0.26,\n            ease: 'power2.in',\n            onComplete: function () {\n              footerWord.textContent = footerWords[footerIndex];\n              gsap.fromTo(footerWord, {\n                yPercent: 22,\n                autoAlpha: 0,\n                filter: 'blur(7px)'\n              }, {\n                yPercent: 0,\n                autoAlpha: 1,\n                filter: 'blur(0px)',\n                duration: 0.42,\n                ease: 'power3.out'\n              });\n            }\n          });\n        }, 2200);\n      }\n\n      function initMobileStory(gsap) {\n        if (root.dataset.ctMobileReady === 'true') return;\n        root.dataset.ctMobileReady = 'true';\n\n        blendSyncEnabled = true;\n        blendLayerOpacity = 1;\n        startMobileWordRotation(gsap);\n        startMobileStrategyRotation(gsap);\n        startMobileFooterRotation(gsap);\n        window.setTimeout(function () {\n          requestSync(true);\n        }, 80);\n\n        setSolutionState(0);\n        setSolutionIndicator(gsap, 0, 1);\n\n        var solutionCards = Array.prototype.slice.call(root.querySelectorAll('.ct-solution-card'));\n        var solutionTabs = Array.prototype.slice.call(root.querySelectorAll('[data-ct-solution-tab]'));\n        var solutionWindow = root.querySelector('.ct-solutions-window');\n        var solutionSyncFrame = 0;\n\n        function syncMobileSolutionFromScroll() {\n          if (!isMobileLayout() || !solutionWindow || !solutionCards.length || solutionSyncFrame) return;\n          solutionSyncFrame = window.requestAnimationFrame(function () {\n            solutionSyncFrame = 0;\n            var windowRect = solutionWindow.getBoundingClientRect();\n            var windowCenter = windowRect.left + (windowRect.width \/ 2);\n            var active = 0;\n            var closest = Infinity;\n\n            solutionCards.forEach(function (card, cardIndex) {\n              var cardRect = card.getBoundingClientRect();\n              var cardCenter = cardRect.left + (cardRect.width \/ 2);\n              var distance = Math.abs(cardCenter - windowCenter);\n              if (distance < closest) {\n                closest = distance;\n                active = cardIndex;\n              }\n            });\n\n            setSolutionState(active);\n            setSolutionIndicator(gsap, active, 1);\n          });\n        }\n\n        function getNearestMobileCardIndex(scroller, items) {\n          var scrollerRect = scroller.getBoundingClientRect();\n          var scrollerCenter = scrollerRect.left + (scrollerRect.width \/ 2);\n          var active = 0;\n          var closest = Infinity;\n\n          items.forEach(function (item, itemIndex) {\n            var itemRect = item.getBoundingClientRect();\n            var itemCenter = itemRect.left + (itemRect.width \/ 2);\n            var distance = Math.abs(itemCenter - scrollerCenter);\n            if (distance < closest) {\n              closest = distance;\n              active = itemIndex;\n            }\n          });\n\n          return active;\n        }\n\n        function enableMobileSnapScroller(scroller, items, onActive) {\n          if (!scroller || !items.length) return;\n\n          var snapTimer = 0;\n          var isSettling = false;\n          var touchStartX = 0;\n          var touchStartY = 0;\n          var gestureIntent = '';\n\n          function getGesturePoint(event) {\n            if (event.touches && event.touches.length) return event.touches[0];\n            if (event.changedTouches && event.changedTouches.length) return event.changedTouches[0];\n            return event;\n          }\n\n          function noteGestureStart(event) {\n            var point = getGesturePoint(event);\n            touchStartX = point.clientX || 0;\n            touchStartY = point.clientY || 0;\n            gestureIntent = '';\n          }\n\n          function noteGestureMove(event) {\n            if (gestureIntent) return;\n            var point = getGesturePoint(event);\n            var deltaX = Math.abs((point.clientX || 0) - touchStartX);\n            var deltaY = Math.abs((point.clientY || 0) - touchStartY);\n            if (Math.max(deltaX, deltaY) < 10) return;\n            gestureIntent = deltaX > deltaY ? 'horizontal' : 'vertical';\n          }\n\n          function canSettle() {\n            return !gestureIntent || gestureIntent === 'horizontal';\n          }\n\n          function applyActive() {\n            var active = getNearestMobileCardIndex(scroller, items);\n            if (onActive) onActive(active);\n            return active;\n          }\n\n          function settle() {\n            if (!isMobileLayout() || isSettling) return;\n            window.clearTimeout(snapTimer);\n\n            var active = applyActive();\n            var target = items[active];\n            if (!target || !target.scrollIntoView) return;\n\n            isSettling = true;\n            target.scrollIntoView({\n              behavior: reduceMotion ? 'auto' : 'smooth',\n              block: 'nearest',\n              inline: 'center'\n            });\n\n            window.setTimeout(function () {\n              isSettling = false;\n              applyActive();\n            }, reduceMotion ? 0 : 380);\n          }\n\n          function queueSettle() {\n            if (!isMobileLayout() || isSettling || !canSettle()) return;\n            window.clearTimeout(snapTimer);\n            snapTimer = window.setTimeout(settle, 150);\n          }\n\n          function releaseGesture() {\n            if (canSettle()) settle();\n            gestureIntent = '';\n          }\n\n          scroller.addEventListener('scroll', function () {\n            if (isSettling) return;\n            applyActive();\n            if (canSettle()) queueSettle();\n          }, { passive: true });\n\n          ['touchstart', 'pointerdown', 'mousedown'].forEach(function (eventName) {\n            scroller.addEventListener(eventName, noteGestureStart, { passive: true });\n          });\n\n          ['touchmove', 'pointermove', 'mousemove'].forEach(function (eventName) {\n            scroller.addEventListener(eventName, noteGestureMove, { passive: true });\n          });\n\n          ['touchend', 'pointerup', 'mouseup', 'scrollend'].forEach(function (eventName) {\n            scroller.addEventListener(eventName, releaseGesture, { passive: true });\n          });\n        }\n\n        function startMobileTrustedDrift(scroller) {\n          if (!scroller || scroller.dataset.ctMobileDriftReady === 'true') return;\n          scroller.dataset.ctMobileDriftReady = 'true';\n\n          var pauseUntil = Date.now() + 900;\n          var lastScrollLeft = scroller.scrollLeft || 0;\n\n          function resetTrustedTransform() {\n            scroller.style.transform = 'none';\n            if (gsap && gsap.set) {\n              gsap.set(scroller, { x: 0, xPercent: 0 });\n            }\n          }\n\n          function pause(duration) {\n            pauseUntil = Date.now() + (duration || 2200);\n          }\n\n          function onUserScroll() {\n            if (Math.abs((scroller.scrollLeft || 0) - lastScrollLeft) > 1) pause(1800);\n            lastScrollLeft = scroller.scrollLeft || 0;\n          }\n\n          ['touchstart', 'pointerdown', 'mousedown', 'wheel'].forEach(function (eventName) {\n            scroller.addEventListener(eventName, function () {\n              pause(2600);\n            }, { passive: true });\n          });\n\n          scroller.addEventListener('scroll', onUserScroll, { passive: true });\n\n          function tick() {\n            if (isMobileLayout()) {\n              resetTrustedTransform();\n\n              if (!reduceMotion && Date.now() > pauseUntil) {\n                var maxScroll = scroller.scrollWidth - scroller.clientWidth;\n                if (maxScroll > 2) {\n                  if (scroller.scrollLeft >= maxScroll - 1) {\n                    scroller.scrollLeft = 0;\n                  } else {\n                    scroller.scrollLeft += 0.25;\n                  }\n                  lastScrollLeft = scroller.scrollLeft || 0;\n                }\n              }\n            }\n\n            window.requestAnimationFrame(tick);\n          }\n\n          window.requestAnimationFrame(tick);\n        }\n\n        solutionTabs.forEach(function (tab) {\n          tab.addEventListener('click', function () {\n            var active = Math.max(0, Math.min(solutionCards.length - 1, Number(tab.dataset.ctSolutionTab) || 0));\n            setSolutionState(active);\n            setSolutionIndicator(gsap, active, 1);\n            if (solutionCards[active] && solutionCards[active].scrollIntoView) {\n              solutionCards[active].scrollIntoView({\n                behavior: reduceMotion ? 'auto' : 'smooth',\n                block: 'nearest',\n                inline: 'center'\n              });\n              window.setTimeout(syncMobileSolutionFromScroll, 320);\n            }\n          });\n        });\n\n        if (solutionWindow) {\n          solutionWindow.addEventListener('scroll', syncMobileSolutionFromScroll, { passive: true });\n          enableMobileSnapScroller(solutionWindow, solutionCards, function (active) {\n            setSolutionState(active);\n            setSolutionIndicator(gsap, active, 1);\n          });\n        }\n\n        startMobileTrustedDrift(root.querySelector('.ct-contester-track'));\n\n        var featureTabs = Array.prototype.slice.call(root.querySelectorAll('[data-ct-feature-tab]'));\n        var featureCards = Array.prototype.slice.call(root.querySelectorAll('[data-ct-feature-card]'));\n        var featureCurrent = root.querySelector('.ct-feature-current');\n\n        function buildMobileFeatureList() {\n          var stage = root.querySelector('.ct-features-stage');\n          if (!stage || stage.querySelector('.ct-mobile-feature-list')) return;\n\n          var list = document.createElement('div');\n          list.className = 'ct-mobile-feature-list';\n          var count = Math.min(4, featureTabs.length, featureCards.length);\n\n          for (var itemIndex = 0; itemIndex < count; itemIndex += 1) {\n            var tab = featureTabs[itemIndex];\n            var card = featureCards[itemIndex];\n            var strongSource = tab.querySelector('strong');\n            var spanSource = tab.querySelector('span');\n            var imgSource = card.querySelector('img');\n            var item = document.createElement('article');\n            var text = document.createElement('div');\n            var titleNode = document.createElement('strong');\n            var bodyNode = document.createElement('span');\n\n            item.className = 'ct-mobile-feature-item';\n            text.className = 'ct-mobile-feature-text';\n            titleNode.textContent = strongSource ? strongSource.textContent.trim() : '';\n            bodyNode.textContent = spanSource ? spanSource.textContent.trim() : '';\n\n            text.appendChild(titleNode);\n            text.appendChild(bodyNode);\n            item.appendChild(text);\n\n            if (imgSource) {\n              var media = document.createElement('div');\n              media.className = 'ct-mobile-feature-card';\n              media.appendChild(imgSource.cloneNode(true));\n              item.appendChild(media);\n            }\n\n            list.appendChild(item);\n          }\n\n          var moreSource = root.querySelector('.ct-feature-tab-end strong');\n          if (moreSource) {\n            var more = document.createElement('div');\n            more.className = 'ct-mobile-feature-more';\n            more.textContent = moreSource.textContent.trim();\n            list.appendChild(more);\n          }\n\n          stage.appendChild(list);\n        }\n\n        buildMobileFeatureList();\n\n        function setFeature(index, shouldScroll) {\n          var active = Math.max(0, Math.min(featureCards.length - 1, index));\n          featureTabs.forEach(function (tab, tabIndex) {\n            var isActive = tabIndex === active;\n            tab.classList.toggle('is-active', isActive);\n            tab.setAttribute('aria-pressed', String(isActive));\n          });\n          featureCards.forEach(function (card, cardIndex) {\n            card.classList.toggle('is-active', cardIndex === active);\n          });\n          if (featureCurrent) featureCurrent.textContent = String(active + 1).padStart(2, '0');\n          if (shouldScroll && featureCards[active] && featureCards[active].scrollIntoView) {\n            featureCards[active].scrollIntoView({\n              behavior: reduceMotion ? 'auto' : 'smooth',\n              block: 'nearest',\n              inline: 'nearest'\n            });\n          }\n        }\n\n        featureTabs.forEach(function (tab) {\n          tab.addEventListener('click', function () {\n            setFeature(Number(tab.dataset.ctFeatureTab) || 0, true);\n          });\n        });\n        setFeature(0, false);\n      }\n\n      function solutionOffset(index) {\n        var card = root.querySelector('.ct-solution-card');\n        if (!card) return 0;\n        return index * (card.getBoundingClientRect().width + 44);\n      }\n\n      function initMotion(gsap, ScrollTrigger) {\n        gsap.registerPlugin(ScrollTrigger);\n\n        var nav = root.querySelector('.ct-floating-nav');\n        var proof = root.querySelector('.ct-hero-proof');\n        var learn = root.querySelector('.ct-hero-learn');\n        var heroStory = root.querySelector('.ct-hero-elementor');\n        var heroStage = root.querySelector('.ct-hero-stage');\n        var heroMedia = root.querySelector('.ct-hero-media');\n        var solutionsStory = root.querySelector('.ct-solutions-elementor');\n        var solutionsStage = root.querySelector('.ct-solutions-stage');\n        var firstSolutionCard = root.querySelector('.ct-solution-card');\n        var strip = root.querySelector('.ct-solutions-strip');\n        var cards = Array.prototype.slice.call(root.querySelectorAll('.ct-solution-card'));\n\n        if (!heroStory || !heroStage || !heroMedia || !solutionsStory || !solutionsStage || !firstSolutionCard || !strip || !cards.length) {\n          return;\n        }\n\n        var animated = [blendInner].filter(Boolean);\n\n        if (isMobileLayout()) {\n          initMobileStory(gsap);\n          return;\n        }\n\n        if (!reduceMotion) {\n          gsap.from([nav, title, learn, proof].filter(Boolean), {\n            y: 16,\n            autoAlpha: 0,\n            duration: 0.8,\n            stagger: 0.08,\n            ease: 'power3.out',\n            delay: 0.12\n          });\n\n          window.setInterval(function () {\n            index = (index + 1) % words.length;\n            gsap.to(animated, {\n              yPercent: -45,\n              autoAlpha: 0,\n              filter: 'blur(8px)',\n              duration: 0.36,\n              ease: 'power2.in',\n              onComplete: function () {\n                if (word) word.textContent = words[index];\n                blendInner.textContent = words[index];\n                syncBlendWord(true);\n                gsap.fromTo(animated, {\n                  yPercent: 45,\n                  autoAlpha: 0,\n                  filter: 'blur(8px)'\n                }, {\n                  yPercent: 0,\n                  autoAlpha: 1,\n                  filter: 'blur(0px)',\n                  duration: 0.54,\n                  ease: 'power3.out'\n                });\n              }\n            });\n          }, 2200);\n        } else {\n          window.setInterval(rotateWord, 2200);\n        }\n\n        gsap.set(solutionsStage, { autoAlpha: 0 });\n        gsap.set(heroStage, { autoAlpha: 1 });\n        gsap.set(title, { xPercent: -50, yPercent: -50 });\n        setSolutionState(0);\n        setSolutionIndicator(gsap, 0, 0);\n\n        function updateHeroBlend(progress) {\n          blendLayerOpacity = gsap.utils.clamp(0, 1, 1 - ((progress - 0.52) \/ 0.2));\n          blendSyncEnabled = blendLayerOpacity > 0.01 && progress < 0.74;\n\n          if (!blendSyncEnabled) {\n            blendWord.classList.add('is-handoff-hidden');\n            blendWord.classList.remove('is-ready');\n            gsap.set(blendWord, { autoAlpha: 0 });\n          } else {\n            blendWord.classList.remove('is-handoff-hidden');\n            gsap.set(blendWord, { autoAlpha: blendLayerOpacity });\n            syncBlendWord(true);\n          }\n        }\n\n        function solutionCardTarget(axis) {\n          var stageRect = solutionsStage.getBoundingClientRect();\n          var cardRect = firstSolutionCard.getBoundingClientRect();\n          if (axis === 'left') return cardRect.left + (cardRect.width \/ 2);\n          if (axis === 'top') return (cardRect.top - stageRect.top) + (cardRect.height \/ 2);\n          return axis === 'width' ? cardRect.width : cardRect.height;\n        }\n\n        gsap.timeline({\n          scrollTrigger: {\n            trigger: heroStory,\n            start: 'top top',\n            end: 'bottom bottom',\n            scrub: true,\n            fastScrollEnd: true,\n            invalidateOnRefresh: true,\n            onUpdate: function (self) {\n              updateHeroBlend(self.progress);\n            },\n            onLeave: function () {\n              updateHeroBlend(1);\n            },\n            onEnterBack: function () {\n              updateHeroBlend(0);\n            },\n            onRefresh: function (self) {\n              updateHeroBlend(self.progress || 0);\n            }\n          }\n        })\n          .to([learn, proof].filter(Boolean), {\n            autoAlpha: 0,\n            y: 24,\n            duration: 0.16\n          }, 0.05)\n          .to(nav, {\n            autoAlpha: 0,\n            y: -24,\n            duration: 0.16\n          }, 0.05)\n          .to(heroMedia, {\n            width: '70vw',\n            height: '70vh',\n            borderRadius: 12,\n            duration: 0.44,\n            ease: 'power2.inOut'\n          }, 0.16)\n          .to(title, {\n            scale: 0.72,\n            duration: 0.44,\n            ease: 'power2.inOut'\n          }, 0.16)\n          .to(heroMedia, {\n            width: function () { return solutionCardTarget('width'); },\n            height: function () { return solutionCardTarget('height'); },\n            left: function () { return solutionCardTarget('left'); },\n            top: function () { return solutionCardTarget('top'); },\n            borderRadius: 18,\n            duration: 0.34,\n            ease: 'power3.inOut'\n          }, 0.62)\n          .to(title, {\n            left: function () { return solutionCardTarget('left'); },\n            top: function () { return solutionCardTarget('top'); },\n            scale: 0.48,\n            autoAlpha: 0,\n            duration: 0.34,\n            ease: 'power3.inOut'\n          }, 0.62)\n          .to(solutionsStage, {\n            autoAlpha: 1,\n            duration: 0.12\n          }, 0.76)\n          .to(nav, {\n            autoAlpha: 1,\n            y: 0,\n            duration: 0.18\n          }, 0.78)\n          .to(heroMedia, {\n            autoAlpha: 0,\n            duration: 0.1\n          }, 0.9)\n          .to(heroStage, {\n            autoAlpha: 0,\n            duration: 0.06\n          }, 0.96);\n\n        initSolutions(gsap, ScrollTrigger, solutionsStory, strip, cards);\n        initTrusted(gsap, ScrollTrigger);\n        initFeatures(gsap, ScrollTrigger);\n        initStandOut(gsap, ScrollTrigger);\n        initFooter(gsap, ScrollTrigger);\n        initSectionTransitions();\n        window.setTimeout(function () {\n          ScrollTrigger.refresh();\n        }, 250);\n      }\n\n      function initSectionTransitions() {\n        if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || root.dataset.ctSectionTransitionsReady === 'true') return;\n        root.dataset.ctSectionTransitionsReady = 'true';\n\n        var boundarySelectors = [\n          ['.ct-solutions-elementor', '.ct-trusted-section'],\n          ['.ct-trusted-section', '.ct-features-story'],\n          ['.ct-features-story', '.ct-stand-story'],\n          ['.ct-stand-story', '.ct-footer-story']\n        ];\n        var transitioning = false;\n\n        function getLenis() {\n          return window.SiteMotion && typeof window.SiteMotion.getLenis === 'function'\n            ? window.SiteMotion.getLenis()\n            : null;\n        }\n\n        function documentTop(element) {\n          return window.scrollY + element.getBoundingClientRect().top;\n        }\n\n        function getBoundaries() {\n          return boundarySelectors.map(function (pair) {\n            var from = root.querySelector(pair[0]);\n            var to = root.querySelector(pair[1]);\n            if (!from || !to) return null;\n\n            return {\n              exit: documentTop(from) + from.offsetHeight - window.innerHeight,\n              destination: documentTop(to)\n            };\n          }).filter(Boolean);\n        }\n\n        function releaseTransition() {\n          window.setTimeout(function () {\n            transitioning = false;\n          }, 90);\n        }\n\n        function animateTo(target) {\n          transitioning = true;\n          var lenis = getLenis();\n\n          if (lenis && lenis.scrollTo) {\n            lenis.scrollTo(target, {\n              duration: 0.9,\n              easing: function (time) { return 1 - Math.pow(1 - time, 4); },\n              force: true,\n              lock: true,\n              onComplete: releaseTransition\n            });\n            return;\n          }\n\n          var start = window.scrollY;\n          var distance = target - start;\n          var startedAt = performance.now();\n          var duration = 900;\n\n          function frame(now) {\n            var progress = Math.min((now - startedAt) \/ duration, 1);\n            var eased = 1 - Math.pow(1 - progress, 4);\n            window.scrollTo(0, start + (distance * eased));\n            if (progress < 1) {\n              requestAnimationFrame(frame);\n            } else {\n              releaseTransition();\n            }\n          }\n\n          requestAnimationFrame(frame);\n        }\n\n        function isInputTarget(target) {\n          return !!(target && target.closest && target.closest('input, textarea, select, [contenteditable=\"true\"]'));\n        }\n\n        function transitionForInput(direction, inputDistance) {\n          if (transitioning) return true;\n\n          var current = window.scrollY;\n          var projected = current + inputDistance;\n          var tolerance = 10;\n          var boundaries = getBoundaries();\n\n          for (var index = 0; index < boundaries.length; index += 1) {\n            var boundary = boundaries[index];\n\n            if (direction > 0) {\n              var reachesExit = current >= boundary.exit - tolerance || projected >= boundary.exit;\n              var beforeDestination = current < boundary.destination - tolerance;\n              if (reachesExit && beforeDestination) {\n                animateTo(boundary.destination);\n                return true;\n              }\n            } else {\n              var reachesDestination = current <= boundary.destination + tolerance || projected <= boundary.destination;\n              var afterExit = current > boundary.exit + tolerance;\n              if (reachesDestination && afterExit) {\n                animateTo(boundary.exit);\n                return true;\n              }\n            }\n          }\n\n          return false;\n        }\n\n        window.addEventListener('wheel', function (event) {\n          if (isInputTarget(event.target)) return;\n\n          var unit = event.deltaMode === 1\n            ? 40\n            : event.deltaMode === 2\n              ? window.innerHeight\n              : 1;\n          var distance = event.deltaY * unit;\n          if (!distance) return;\n\n          if (transitionForInput(Math.sign(distance), distance * 1.8)) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { passive: false, capture: true });\n\n        window.addEventListener('keydown', function (event) {\n          if (isInputTarget(event.target)) return;\n\n          var forwardKeys = ['ArrowDown', 'PageDown', 'End', ' '];\n          var backwardKeys = ['ArrowUp', 'PageUp', 'Home'];\n          var direction = 0;\n\n          if (forwardKeys.indexOf(event.key) !== -1 && !event.shiftKey) direction = 1;\n          if (backwardKeys.indexOf(event.key) !== -1 || (event.key === ' ' && event.shiftKey)) direction = -1;\n          if (!direction) return;\n\n          if (transitionForInput(direction, direction * window.innerHeight)) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { capture: true });\n      }\n\n      function initFeatures(gsap, ScrollTrigger) {\n        var story = root.querySelector('.ct-features-story');\n        var copyTrack = root.querySelector('.ct-feature-copy-track');\n        var visualTrack = root.querySelector('.ct-feature-visual-track');\n        var tabs = Array.prototype.slice.call(root.querySelectorAll('[data-ct-feature-tab]'));\n        var cards = Array.prototype.slice.call(root.querySelectorAll('[data-ct-feature-card]'));\n        var current = root.querySelector('.ct-feature-current');\n        if (!story || !copyTrack || !visualTrack || !tabs.length || !cards.length || story.dataset.ctFeaturesReady === 'true') return;\n\n        story.dataset.ctFeaturesReady = 'true';\n\n        var activeIndex = 0;\n        var maxIndex = Math.max(cards.length - 1, 1);\n\n        function getLenis() {\n          return window.SiteMotion && typeof window.SiteMotion.getLenis === 'function'\n            ? window.SiteMotion.getLenis()\n            : null;\n        }\n\n        function itemStep(items) {\n          if (items.length < 2) return 0;\n          return items[1].offsetTop - items[0].offsetTop;\n        }\n\n        function setFeatureState(index) {\n          var clampedIndex = Math.max(0, Math.min(maxIndex, index));\n          activeIndex = clampedIndex;\n\n          tabs.forEach(function (tab, tabIndex) {\n            var active = tabIndex === clampedIndex;\n            tab.classList.toggle('is-active', active);\n            tab.setAttribute('aria-pressed', String(active));\n          });\n\n          cards.forEach(function (card, cardIndex) {\n            card.classList.toggle('is-active', cardIndex === clampedIndex);\n          });\n\n          if (current) current.textContent = String(clampedIndex + 1).padStart(2, '0');\n        }\n\n        function positionTracks(floatIndex) {\n          var copyStep = itemStep(Array.prototype.slice.call(copyTrack.children));\n          var cardStep = itemStep(cards);\n          var activeCardHeight = cards[0].offsetHeight;\n\n          gsap.set(copyTrack, {\n            y: -(tabs[0].offsetHeight \/ 2) - (copyStep * floatIndex)\n          });\n\n          gsap.set(visualTrack, {\n            y: -(activeCardHeight \/ 2) - (cardStep * floatIndex)\n          });\n\n          cards.forEach(function (card, index) {\n            var distance = Math.abs(index - floatIndex);\n            gsap.set(card, {\n              scale: gsap.utils.clamp(0.965, 1, 1 - (distance * 0.025)),\n              opacity: gsap.utils.clamp(0.3, 1, 1 - (distance * 0.52))\n            });\n          });\n        }\n\n        var trigger = ScrollTrigger.create({\n          trigger: story,\n          start: 'top top',\n          end: 'bottom bottom',\n          scrub: 0.72,\n          invalidateOnRefresh: true,\n          onRefresh: function (self) {\n            positionTracks(self.progress * maxIndex);\n          },\n          onUpdate: function (self) {\n            var floatIndex = self.progress * maxIndex;\n            var nextIndex = Math.max(0, Math.min(maxIndex, Math.round(floatIndex)));\n            positionTracks(floatIndex);\n            if (nextIndex !== activeIndex) setFeatureState(nextIndex);\n          }\n        });\n\n        var featureTransitioning = false;\n        var featureTransitionTimer = 0;\n\n        function featureTargetScroll(index) {\n          var clampedIndex = Math.max(0, Math.min(maxIndex, index));\n          return trigger.start + ((trigger.end - trigger.start) * (clampedIndex \/ maxIndex));\n        }\n\n        function featureStepProgress() {\n          if (!trigger || trigger.end === trigger.start) return 0;\n          return gsap.utils.clamp(0, maxIndex, ((window.scrollY - trigger.start) \/ (trigger.end - trigger.start)) * maxIndex);\n        }\n\n        function isInsideFeatureStory() {\n          var current = window.scrollY;\n          return current >= trigger.start - 12 && current <= trigger.end + 12;\n        }\n\n        function releaseFeatureTransition(delay) {\n          window.clearTimeout(featureTransitionTimer);\n          featureTransitionTimer = window.setTimeout(function () {\n            featureTransitioning = false;\n          }, delay || 90);\n        }\n\n        function animateFeatureTo(index) {\n          var targetIndex = Math.max(0, Math.min(maxIndex, index));\n          var targetScroll = featureTargetScroll(targetIndex);\n          var lenis = getLenis();\n\n          featureTransitioning = true;\n          releaseFeatureTransition(1200);\n          setFeatureState(targetIndex);\n\n          if (lenis && lenis.scrollTo) {\n            lenis.scrollTo(targetScroll, {\n              duration: 0.9,\n              easing: function (time) { return 1 - Math.pow(1 - time, 4); },\n              force: true,\n              lock: true,\n              onComplete: function () { releaseFeatureTransition(90); }\n            });\n            return;\n          }\n\n          var start = window.scrollY;\n          var distance = targetScroll - start;\n          var startedAt = performance.now();\n          var duration = 900;\n\n          function frame(now) {\n            var progress = Math.min((now - startedAt) \/ duration, 1);\n            var eased = 1 - Math.pow(1 - progress, 4);\n            window.scrollTo(0, start + (distance * eased));\n            if (progress < 1) {\n              requestAnimationFrame(frame);\n            } else {\n              releaseFeatureTransition(90);\n            }\n          }\n\n          requestAnimationFrame(frame);\n        }\n\n        function featureStepForInput(direction) {\n          if (!isInsideFeatureStory()) return false;\n          if (featureTransitioning) return true;\n\n          var progress = featureStepProgress();\n          var nearest = Math.round(progress);\n\n          if (direction > 0) {\n            if (nearest >= maxIndex && progress > maxIndex - 0.04) return false;\n            animateFeatureTo(Math.min(maxIndex, nearest + 1));\n            return true;\n          }\n\n          if (direction < 0) {\n            if (nearest <= 0 && progress < 0.04) return false;\n            animateFeatureTo(Math.max(0, nearest - 1));\n            return true;\n          }\n\n          return false;\n        }\n\n        function isFeatureInputTarget(target) {\n          return !!(target && target.closest && target.closest('input, textarea, select, [contenteditable=\"true\"]'));\n        }\n\n        window.addEventListener('wheel', function (event) {\n          if (isFeatureInputTarget(event.target)) return;\n\n          var unit = event.deltaMode === 1\n            ? 40\n            : event.deltaMode === 2\n              ? window.innerHeight\n              : 1;\n          var distance = event.deltaY * unit;\n          if (!distance) return;\n\n          if (featureStepForInput(Math.sign(distance))) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { passive: false, capture: true });\n\n        window.addEventListener('keydown', function (event) {\n          if (isFeatureInputTarget(event.target)) return;\n\n          var forwardKeys = ['ArrowDown', 'PageDown', 'End', ' '];\n          var backwardKeys = ['ArrowUp', 'PageUp', 'Home'];\n          var direction = 0;\n\n          if (forwardKeys.indexOf(event.key) !== -1 && !event.shiftKey) direction = 1;\n          if (backwardKeys.indexOf(event.key) !== -1 || (event.key === ' ' && event.shiftKey)) direction = -1;\n          if (!direction) return;\n\n          if (featureStepForInput(direction)) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { capture: true });\n\n        tabs.forEach(function (tab) {\n          tab.addEventListener('click', function () {\n            var index = Math.max(0, Math.min(maxIndex, Number(tab.dataset.ctFeatureTab)));\n            animateFeatureTo(index);\n          });\n        });\n\n        setFeatureState(0);\n        positionTracks(0);\n      }\n\n      function initStandOut(gsap, ScrollTrigger) {\n        var story = root.querySelector('.ct-stand-story');\n        var stage = root.querySelector('.ct-stand-stage');\n        var intro = root.querySelector('.ct-stand-intro');\n        var introCopy = root.querySelector('.ct-stand-intro p');\n        var introLink = root.querySelector('.ct-stand-intro a');\n        var rotator = root.querySelector('.ct-strategy-rotator');\n        if (!story || !stage || !intro || !rotator || story.dataset.ctStandReady === 'true') return;\n\n        story.dataset.ctStandReady = 'true';\n\n        var strategyCopy = [\n          {\n            title: 'Watch and Engage CTA',\n            description: '10x more engagement vs shop CTA'\n          },\n          {\n            title: 'Enhanced shopping journeys',\n            description: 'Connected, guided, and interactive'\n          },\n          {\n            title: 'Omnichannel',\n            description: 'Longer campaign lifetime'\n          }\n        ];\n        var title = rotator.querySelector('h3');\n        var copy = rotator.querySelector('p');\n        var rotatorText = Array.prototype.slice.call(rotator.querySelectorAll('h3, p'));\n        var revealProgress = 0.46;\n        var activeIndex = 0;\n        var rotationCall = null;\n        var revealLocking = false;\n        var revealLockUntil = 0;\n        var revealUnlockTimer = 0;\n        var timeline;\n        var standSnapTween;\n\n        function getLenis() {\n          return window.SiteMotion && typeof window.SiteMotion.getLenis === 'function'\n            ? window.SiteMotion.getLenis()\n            : null;\n        }\n\n        function documentTop(element) {\n          return window.scrollY + element.getBoundingClientRect().top;\n        }\n\n        function introWidth() {\n          return intro.getBoundingClientRect().width || intro.offsetWidth || 0;\n        }\n\n        function centerIntroLeft() {\n          return Math.max(0, (window.innerWidth - introWidth()) \/ 2);\n        }\n\n        function standLeft() {\n          var width = introWidth();\n          var safeGutter = Math.max(56, Math.min(window.innerWidth * 0.12, 220));\n          return Math.min(safeGutter, Math.max(24, window.innerWidth - width - 32));\n        }\n\n        function setStrategy(index, animate) {\n          if (!title || !copy) return;\n\n          var normalized = ((index % strategyCopy.length) + strategyCopy.length) % strategyCopy.length;\n          var item = strategyCopy[normalized];\n          activeIndex = normalized;\n\n          if (!animate) {\n            title.textContent = item.title;\n            copy.textContent = item.description;\n            return;\n          }\n\n          gsap.killTweensOf([title, copy]);\n          gsap.timeline()\n            .to([title, copy], {\n              y: -14,\n              autoAlpha: 0,\n              filter: 'blur(6px)',\n              stagger: 0.03,\n              duration: 0.18,\n              ease: 'power2.in'\n            })\n            .add(function () {\n              title.textContent = item.title;\n              copy.textContent = item.description;\n            })\n            .fromTo([title, copy], {\n              y: 18,\n              autoAlpha: 0,\n              filter: 'blur(7px)'\n            }, {\n              y: 0,\n              autoAlpha: 1,\n              filter: 'blur(0px)',\n              stagger: 0.055,\n              duration: 0.46,\n              ease: 'power3.out',\n              clearProps: 'transform,filter'\n            });\n        }\n\n        function startRotation() {\n          if (rotationCall) rotationCall.kill();\n          if (reduceMotion || strategyCopy.length < 2) return;\n\n          function cycle() {\n            setStrategy(activeIndex + 1, true);\n            rotationCall = gsap.delayedCall(2, cycle);\n          }\n\n          rotationCall = gsap.delayedCall(2, cycle);\n        }\n\n        function getRevealTarget() {\n          var trigger = timeline && timeline.scrollTrigger;\n          if (!trigger) return 0;\n          return trigger.start + ((trigger.end - trigger.start) * revealProgress);\n        }\n\n        function getNextTarget() {\n          var nextSection = story.nextElementSibling;\n          if (nextSection) return documentTop(nextSection);\n\n          var trigger = timeline && timeline.scrollTrigger;\n          return trigger ? trigger.end : documentTop(story);\n        }\n\n        function unlockReveal() {\n          revealLockUntil = 0;\n          if (revealUnlockTimer) {\n            window.clearTimeout(revealUnlockTimer);\n            revealUnlockTimer = 0;\n          }\n          window.setTimeout(function () {\n            revealLocking = false;\n            var lenis = getLenis();\n            if (lenis && lenis.start) lenis.start();\n          }, 120);\n        }\n\n        function startRevealLock(timeout) {\n          var lockTime = timeout || 1600;\n          revealLocking = true;\n          revealLockUntil = performance.now() + lockTime;\n          if (revealUnlockTimer) window.clearTimeout(revealUnlockTimer);\n          revealUnlockTimer = window.setTimeout(function () {\n            revealUnlockTimer = 0;\n            revealLockUntil = 0;\n            revealLocking = false;\n            var lenis = getLenis();\n            if (lenis && lenis.start) lenis.start();\n          }, lockTime);\n        }\n\n        function isRevealLocked() {\n          if (!revealLocking) return false;\n          if (performance.now() <= revealLockUntil) return true;\n          revealLocking = false;\n          revealLockUntil = 0;\n          if (revealUnlockTimer) {\n            window.clearTimeout(revealUnlockTimer);\n            revealUnlockTimer = 0;\n          }\n          var lenis = getLenis();\n          if (lenis && lenis.start) lenis.start();\n          return false;\n        }\n\n        function jumpToStandProgress(progress) {\n          var trigger = timeline && timeline.scrollTrigger;\n          if (!trigger) return;\n          var target = trigger.start + ((trigger.end - trigger.start) * progress);\n          var lenis = getLenis();\n          if (lenis && lenis.scrollTo) {\n            lenis.scrollTo(target, {\n              force: true,\n              immediate: true\n            });\n          }\n          window.scrollTo(0, target);\n          ScrollTrigger.update();\n        }\n\n        function animateToY(target, duration) {\n          if (isRevealLocked()) return false;\n\n          var seconds = duration || 0.9;\n          var lenis = getLenis();\n          startRevealLock((seconds * 1000) + 420);\n          if (standSnapTween) standSnapTween.kill();\n\n          if (lenis && lenis.scrollTo) {\n            lenis.scrollTo(target, {\n              duration: seconds,\n              easing: function (time) { return 1 - Math.pow(1 - time, 4); },\n              force: true,\n              lock: true,\n              onComplete: unlockReveal\n            });\n            return true;\n          }\n\n          var start = window.scrollY;\n          var distance = target - start;\n          var startedAt = performance.now();\n          var durationMs = seconds * 1000;\n\n          function frame(now) {\n            var progress = Math.min((now - startedAt) \/ durationMs, 1);\n            var eased = 1 - Math.pow(1 - progress, 4);\n            window.scrollTo(0, start + (distance * eased));\n            ScrollTrigger.update();\n\n            if (progress < 1 && revealLocking) {\n              requestAnimationFrame(frame);\n            } else {\n              unlockReveal();\n            }\n          }\n\n          requestAnimationFrame(frame);\n          return true;\n        }\n\n        function scrollToStandProgress(progress, lockDuration) {\n          var trigger = timeline && timeline.scrollTrigger;\n          if (!trigger || isRevealLocked()) return false;\n\n          startRevealLock(lockDuration || 1600);\n          if (standSnapTween) standSnapTween.kill();\n\n          var isReveal = progress >= revealProgress;\n          var revealTargets = [introCopy, introLink, rotator].filter(Boolean);\n\n          gsap.killTweensOf([intro, introCopy, introLink, rotator, stage].concat(rotatorText));\n\n          if (isReveal) {\n            setStrategy(0, false);\n            gsap.set(intro, {\n              left: centerIntroLeft,\n              top: '50%',\n              xPercent: 0,\n              yPercent: -50\n            });\n            gsap.set(revealTargets, { autoAlpha: 0 });\n            gsap.set([introCopy, introLink].filter(Boolean), { y: 18 });\n            gsap.set(rotator, { x: 48 });\n            gsap.set(rotatorText, { y: 18, autoAlpha: 0, filter: 'blur(7px)' });\n            gsap.set(stage, { '--ct-stand-glow': 0 });\n\n            standSnapTween = gsap.timeline({\n              defaults: { ease: 'power3.inOut' },\n              onInterrupt: unlockReveal,\n              onComplete: function () {\n                jumpToStandProgress(revealProgress);\n                timeline.progress(revealProgress);\n                unlockReveal();\n              }\n            });\n\n            standSnapTween\n              .to(stage, {\n                '--ct-stand-glow': 1,\n                duration: 1.15,\n                ease: 'power2.out'\n              }, 0.04)\n              .to(intro, {\n                left: standLeft,\n                xPercent: 0,\n                duration: 0.76\n              }, 0.05)\n              .to([introCopy, introLink].filter(Boolean), {\n                y: 0,\n                autoAlpha: 1,\n                stagger: 0.05,\n                duration: 0.32,\n                ease: 'power2.out'\n              }, 0.44)\n              .to(rotator, {\n                x: 0,\n                autoAlpha: 1,\n                duration: 0.38,\n                ease: 'power2.out'\n              }, 0.48)\n              .to(rotatorText, {\n                y: 0,\n                autoAlpha: 1,\n                filter: 'blur(0px)',\n                stagger: 0.055,\n                duration: 0.4,\n                ease: 'power3.out',\n                clearProps: 'transform,filter'\n              }, 0.53);\n          } else {\n            gsap.set(intro, {\n              left: standLeft,\n              top: '50%',\n              xPercent: 0,\n              yPercent: -50\n            });\n            gsap.set(revealTargets.concat(rotatorText), { autoAlpha: 1 });\n            gsap.set([introCopy, introLink].filter(Boolean).concat(rotatorText), { y: 0 });\n            gsap.set(rotator, { x: 0 });\n\n            standSnapTween = gsap.timeline({\n              defaults: { ease: 'power3.inOut' },\n              onInterrupt: unlockReveal,\n              onComplete: function () {\n                setStrategy(0, false);\n                jumpToStandProgress(0);\n                timeline.progress(0);\n                unlockReveal();\n              }\n            });\n\n            standSnapTween\n              .to(revealTargets.concat(rotatorText), {\n                autoAlpha: 0,\n                duration: 0.24,\n                ease: 'power2.in'\n              }, 0)\n              .to(intro, {\n                left: centerIntroLeft,\n                xPercent: 0,\n                duration: 0.58\n              }, 0.08)\n              .to(stage, {\n                '--ct-stand-glow': 0,\n                duration: 0.72,\n                ease: 'power2.inOut'\n              }, 0.02);\n          }\n\n          return true;\n        }\n\n        setStrategy(0, false);\n        startRotation();\n        gsap.set(intro, {\n          left: centerIntroLeft,\n          top: '50%',\n          xPercent: 0,\n          yPercent: -50\n        });\n        gsap.set([introCopy, introLink, rotator].filter(Boolean), { autoAlpha: 0 });\n        gsap.set([introCopy, introLink].filter(Boolean), { y: 18 });\n        gsap.set(rotator, { x: 48 });\n        gsap.set(rotatorText, { y: 18, autoAlpha: 0 });\n\n        timeline = gsap.timeline({\n          scrollTrigger: {\n            trigger: story,\n            start: 'top top',\n            end: 'bottom bottom',\n            scrub: 0.72,\n            invalidateOnRefresh: true\n          }\n        });\n\n        timeline\n          .to(stage, {\n            '--ct-stand-glow': 1,\n            duration: 0.28,\n            ease: 'power2.out'\n          }, 0)\n          .to(intro, {\n            left: standLeft,\n            xPercent: 0,\n            duration: 0.2,\n            ease: 'power3.inOut'\n          }, 0.12)\n          .to([introCopy, introLink].filter(Boolean), {\n            y: 0,\n            autoAlpha: 1,\n            stagger: 0.04,\n            duration: 0.14,\n            ease: 'power2.out'\n          }, 0.24)\n          .to(rotator, {\n            x: 0,\n            autoAlpha: 1,\n            duration: 0.14,\n            ease: 'power2.out'\n          }, 0.25)\n          .to(rotatorText, {\n            y: 0,\n            autoAlpha: 1,\n            stagger: 0.045,\n            duration: 0.14,\n            ease: 'power2.out'\n          }, 0.28)\n          .to(stage, {\n            '--ct-stand-glow': 0,\n            duration: 0.26,\n            ease: 'power2.inOut'\n          }, 0.74);\n\n        function handleRevealInput(direction, inputDistance) {\n          var trigger = timeline && timeline.scrollTrigger;\n          if (!trigger) return false;\n          if (isRevealLocked()) return true;\n\n          var current = window.scrollY;\n          var projected = current + (inputDistance || 0);\n          var revealTarget = getRevealTarget();\n          var tolerance = 8;\n\n          if (\n            direction > 0 &&\n            current >= revealTarget - tolerance &&\n            current < trigger.end - tolerance &&\n            projected > revealTarget + 2\n          ) {\n            return animateToY(getNextTarget(), 0.9);\n          }\n\n          if (\n            direction > 0 &&\n            current >= trigger.start - tolerance &&\n            current < revealTarget - tolerance &&\n            projected > trigger.start + 2\n          ) {\n            return scrollToStandProgress(revealProgress);\n          }\n\n          if (\n            direction < 0 &&\n            current > trigger.start + tolerance &&\n            current <= revealTarget + tolerance &&\n            projected < revealTarget - 2\n          ) {\n            return scrollToStandProgress(0, 700);\n          }\n\n          return false;\n        }\n\n        function isStandInputTarget(target) {\n          return !!(target && target.closest && target.closest('input, textarea, select, [contenteditable=\"true\"]'));\n        }\n\n        window.addEventListener('wheel', function (event) {\n          if (isStandInputTarget(event.target)) return;\n\n          var unit = event.deltaMode === 1\n            ? 40\n            : event.deltaMode === 2\n              ? window.innerHeight\n              : 1;\n          var distance = event.deltaY * unit;\n          if (!distance) return;\n\n          if (handleRevealInput(Math.sign(distance), distance)) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { passive: false, capture: true });\n\n        window.addEventListener('keydown', function (event) {\n          if (isStandInputTarget(event.target)) return;\n\n          var forwardKeys = ['ArrowDown', 'PageDown', 'End', ' '];\n          var backwardKeys = ['ArrowUp', 'PageUp', 'Home'];\n          var direction = 0;\n\n          if (forwardKeys.indexOf(event.key) !== -1 && !event.shiftKey) direction = 1;\n          if (backwardKeys.indexOf(event.key) !== -1 || (event.key === ' ' && event.shiftKey)) direction = -1;\n          if (!direction) return;\n\n          if (handleRevealInput(direction, direction * window.innerHeight)) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { capture: true });\n      }\n\n      function initFooter(gsap, ScrollTrigger) {\n        var footer = root.querySelector('.ct-footer-story');\n        if (!footer) return;\n\n        var rotatingWord = footer.querySelector('.ct-footer-rotating-word');\n        var footerWords = ['Branded', 'Creator', 'Publisher'];\n        var footerIndex = 0;\n\n        if (rotatingWord && !reduceMotion) {\n          window.setInterval(function () {\n            footerIndex = (footerIndex + 1) % footerWords.length;\n            gsap.to(rotatingWord, {\n              yPercent: -35,\n              autoAlpha: 0,\n              filter: 'blur(8px)',\n              duration: 0.28,\n              ease: 'power2.in',\n              onComplete: function () {\n                rotatingWord.textContent = footerWords[footerIndex];\n                gsap.fromTo(rotatingWord, {\n                  yPercent: 35,\n                  autoAlpha: 0,\n                  filter: 'blur(8px)'\n                }, {\n                  yPercent: 0,\n                  autoAlpha: 1,\n                  filter: 'blur(0px)',\n                  duration: 0.44,\n                  ease: 'power3.out'\n                });\n              }\n            });\n          }, 2200);\n        }\n\n        if (reduceMotion) return;\n\n        gsap.fromTo(root.querySelectorAll('.ct-award-row p, .ct-footer-message, .ct-footer-media, .ct-footer-bottom'), {\n          y: 18,\n          autoAlpha: 0.68\n        }, {\n          y: 0,\n          autoAlpha: 1,\n          stagger: 0.04,\n          duration: 0.62,\n          ease: 'power3.out',\n          scrollTrigger: {\n            trigger: footer,\n            start: 'top 72%',\n            toggleActions: 'play none none reverse'\n          }\n        });\n      }\n\n      function initTrusted(gsap, ScrollTrigger) {\n        var section = root.querySelector('.ct-trusted-section');\n        var marqueeElement = root.querySelector('.ct-contester-marquee');\n        var track = root.querySelector('.ct-contester-track');\n        if (!section || !marqueeElement || !track || track.dataset.ctTrustedReady === 'true') return;\n\n        track.dataset.ctTrustedReady = 'true';\n\n        Array.prototype.slice.call(track.children).forEach(function (card) {\n          var clone = card.cloneNode(true);\n          clone.setAttribute('aria-hidden', 'true');\n          track.appendChild(clone);\n        });\n\n        if (reduceMotion) return;\n\n        var marquee = gsap.to(track, {\n          xPercent: -50,\n          duration: 48,\n          ease: 'none',\n          repeat: -1\n        });\n\n        marqueeElement.addEventListener('mouseenter', function () {\n          marquee.timeScale(0.15);\n        });\n\n        marqueeElement.addEventListener('mouseleave', function () {\n          marquee.timeScale(1);\n        });\n\n        ScrollTrigger.create({\n          trigger: section,\n          start: 'top bottom',\n          end: 'bottom top',\n          onUpdate: function (self) {\n            var velocity = Math.min(Math.abs(self.getVelocity()) \/ 1500, 2.4);\n            marquee.timeScale(1 + velocity);\n          }\n        });\n\n        gsap.from(root.querySelectorAll('.ct-contester-card'), {\n          y: 90,\n          autoAlpha: 0,\n          stagger: 0.06,\n          duration: 0.9,\n          ease: 'power3.out',\n          scrollTrigger: {\n            trigger: section,\n            start: 'top 68%'\n          }\n        });\n      }\n\n      function initSolutions(gsap, ScrollTrigger, solutionsStory, strip, cards) {\n        var cardCount = cards.length || 1;\n        var maxCardIndex = Math.max(cardCount - 1, 1);\n        var activeIndex = 0;\n        var scrollDirection = 1;\n        var lastCardHoldArmed = true;\n        var fillPortion = 0.7;\n        var motionEndProgress = 0.78;\n        var progressEpsilon = 0.001;\n        var holdLocking = false;\n        var holdTimer = 0;\n        var settleTimer = 0;\n\n        function solutionMotionProgress(progress) {\n          return gsap.utils.clamp(0, 1, progress \/ motionEndProgress);\n        }\n\n        function solutionCardProgress(cardIndex) {\n          return Math.min(1, (cardIndex \/ maxCardIndex) * motionEndProgress);\n        }\n\n        function solutionSnapTo(value) {\n          var progress = gsap.utils.clamp(0, 1, value);\n\n          if (scrollDirection < 0) {\n            lastCardHoldArmed = true;\n            return value;\n          }\n\n          if (progress >= motionEndProgress - progressEpsilon) {\n            if (lastCardHoldArmed) {\n              lastCardHoldArmed = false;\n              return motionEndProgress;\n            }\n            return value;\n          }\n\n          var sectionProgress = solutionMotionProgress(progress) * maxCardIndex;\n          var cardIndex = progress >= motionEndProgress - progressEpsilon\n            ? cardCount - 1\n            : Math.min(cardCount - 1, Math.floor(sectionProgress + progressEpsilon));\n          var localProgress = sectionProgress - cardIndex;\n\n          if (cardIndex >= cardCount - 1) return value;\n          if (localProgress < fillPortion) return value;\n\n          return solutionCardProgress(cardIndex + 1);\n        }\n\n        function solutionSettleTarget(progress) {\n          if (progress <= progressEpsilon || progress >= motionEndProgress - progressEpsilon) {\n            return progress;\n          }\n\n          var sectionProgress = solutionMotionProgress(progress) * maxCardIndex;\n          var cardIndex = Math.min(cardCount - 1, Math.floor(sectionProgress + progressEpsilon));\n          var localProgress = cardIndex >= cardCount - 1 ? 0 : sectionProgress - cardIndex;\n\n          if (cardIndex >= cardCount - 1) return progress;\n          return localProgress < fillPortion\n            ? progress\n            : solutionCardProgress(cardIndex + 1);\n        }\n\n        function scheduleSolutionSettle() {\n          if (holdLocking) return;\n          if (settleTimer) window.clearTimeout(settleTimer);\n\n          settleTimer = window.setTimeout(function () {\n            settleTimer = 0;\n            if (holdLocking) return;\n\n            var progress = gsap.utils.clamp(0, 1, (window.scrollY - trigger.start) \/ (trigger.end - trigger.start));\n            var targetProgress = solutionSettleTarget(progress);\n            if (Math.abs(targetProgress - progress) > 0.006) {\n              scrollToSolutionProgress(targetProgress);\n            }\n          }, 190);\n        }\n\n        var trigger = ScrollTrigger.create({\n          trigger: solutionsStory,\n          start: function () { return 'top+=' + (window.innerHeight * 1.18) + ' top'; },\n          end: 'bottom bottom',\n          scrub: 0.9,\n          invalidateOnRefresh: true,\n          snap: {\n            snapTo: solutionSnapTo,\n            duration: { min: 0.24, max: 0.62 },\n            delay: 0.04,\n            ease: 'power2.inOut'\n          },\n          onUpdate: function (self) {\n            scrollDirection = self.direction || scrollDirection;\n            var progress = gsap.utils.clamp(0, 1, self.progress);\n\n            if (progress < motionEndProgress - 0.08) {\n              lastCardHoldArmed = true;\n            }\n\n            var motionProgress = solutionMotionProgress(progress);\n            var sectionProgress = motionProgress * maxCardIndex;\n            var cardIndex = progress >= motionEndProgress - progressEpsilon\n              ? cardCount - 1\n              : Math.min(cardCount - 1, Math.floor(sectionProgress + progressEpsilon));\n            var lastCardReadProgress = gsap.utils.clamp(0, 1, (progress - motionEndProgress) \/ (1 - motionEndProgress));\n            var localProgress = cardIndex >= cardCount - 1 ? 0 : sectionProgress - cardIndex;\n            var fillProgress = cardIndex === cardCount - 1\n              ? lastCardReadProgress\n              : gsap.utils.clamp(0, 1, localProgress \/ fillPortion);\n            var moveProgress = cardIndex >= cardCount - 1\n              ? 0\n              : gsap.utils.clamp(0, 1, (localProgress - fillPortion) \/ (1 - fillPortion));\n            var horizontalProgress = gsap.utils.clamp(0, 1, (cardIndex + moveProgress) \/ maxCardIndex);\n\n            if (cardIndex !== activeIndex) {\n              activeIndex = cardIndex;\n              setSolutionState(cardIndex);\n            }\n\n            setSolutionIndicator(gsap, cardIndex, fillProgress);\n            gsap.set(strip, {\n              x: -solutionOffset(0) - (solutionOffset(maxCardIndex) * horizontalProgress)\n            });\n            scheduleSolutionSettle();\n          }\n        });\n\n        function getLenis() {\n          return window.SiteMotion && typeof window.SiteMotion.getLenis === 'function'\n            ? window.SiteMotion.getLenis()\n            : null;\n        }\n\n        function releaseHold() {\n          if (settleTimer) {\n            window.clearTimeout(settleTimer);\n            settleTimer = 0;\n          }\n          if (holdTimer) {\n            window.clearTimeout(holdTimer);\n            holdTimer = 0;\n          }\n          window.setTimeout(function () {\n            holdLocking = false;\n            var lenis = getLenis();\n            if (lenis && lenis.start) lenis.start();\n          }, 90);\n        }\n\n        function scrollToSolutionProgress(progress) {\n          holdLocking = true;\n          if (holdTimer) window.clearTimeout(holdTimer);\n          holdTimer = window.setTimeout(function () {\n            holdTimer = 0;\n            holdLocking = false;\n            var lenis = getLenis();\n            if (lenis && lenis.start) lenis.start();\n          }, 1200);\n\n          var targetScroll = trigger.start + ((trigger.end - trigger.start) * progress);\n          var lenis = getLenis();\n          if (lenis && lenis.scrollTo) {\n            lenis.scrollTo(targetScroll, {\n              duration: 0.62,\n              easing: function (time) { return 1 - Math.pow(1 - time, 3); },\n              force: true,\n              lock: true,\n              onComplete: releaseHold\n            });\n          } else {\n            window.scrollTo({ top: targetScroll, behavior: 'smooth' });\n            releaseHold();\n          }\n        }\n\n        function catchPublisherHold(direction, inputDistance) {\n          if (holdLocking) return true;\n          if (direction <= 0 || !lastCardHoldArmed) return false;\n\n          var current = window.scrollY;\n          var progress = gsap.utils.clamp(0, 1, (current - trigger.start) \/ (trigger.end - trigger.start));\n          if (progress < solutionCardProgress(1)) return false;\n\n          var projectedProgress = gsap.utils.clamp(0, 1, (current + inputDistance - trigger.start) \/ (trigger.end - trigger.start));\n          if (projectedProgress >= motionEndProgress - 0.02) {\n            lastCardHoldArmed = false;\n            scrollToSolutionProgress(motionEndProgress);\n            return true;\n          }\n\n          return false;\n        }\n\n        window.addEventListener('wheel', function (event) {\n          var unit = event.deltaMode === 1 ? 40 : event.deltaMode === 2 ? window.innerHeight : 1;\n          var distance = event.deltaY * unit;\n          if (!distance) return;\n\n          if (catchPublisherHold(Math.sign(distance), distance)) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n          }\n        }, { passive: false, capture: true });\n\n        root.querySelectorAll('[data-ct-solution-tab]').forEach(function (tab) {\n          tab.addEventListener('click', function () {\n            var cardIndex = Number(tab.dataset.ctSolutionTab);\n            var targetProgress = solutionCardProgress(cardIndex);\n            var targetScroll = trigger.start + ((trigger.end - trigger.start) * targetProgress);\n            var lenis = getLenis();\n            if (lenis && lenis.scrollTo) {\n              lenis.scrollTo(targetScroll, { duration: 1.05 });\n            } else {\n              window.scrollTo({ top: targetScroll, behavior: 'smooth' });\n            }\n          });\n        });\n\n        window.addEventListener('resize', function () {\n          ScrollTrigger.refresh();\n        }, { passive: true });\n      }\n\n      initWizardModal();\n      waitForMotion(initMotion);\n\n      if (!window.gsap || reduceMotion) {\n        window.setInterval(rotateWord, 2200);\n      }\n    }\n\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', function () {\n        initContesterStory();\n      }, { once: true });\n    } else {\n      initContesterStory();\n    }\n  })();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Solutions Features Strategy Work with us Make Your Branded Content Perform Learn more Used by hundreds of top companies Nike,&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"content-type":"","footnotes":""},"class_list":["post-4919","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Contester platform - Contester<\/title>\n<meta name=\"description\" content=\"Contester is a video commerce platform purpose built to enhance affiliate partnerships via dynamic shoppable videos and livestream\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/contester.net\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contester platform - Contester\" \/>\n<meta property=\"og:description\" content=\"Contester is a video commerce platform purpose built to enhance affiliate partnerships via dynamic shoppable videos and livestream\" \/>\n<meta property=\"og:url\" content=\"https:\/\/contester.net\/\" \/>\n<meta property=\"og:site_name\" content=\"Contester\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Contester.net\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-29T10:55:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/contester.net\/wp-content\/uploads\/2025\/08\/white-png-small.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Contest10545800\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/contester.net\\\/\",\"url\":\"https:\\\/\\\/contester.net\\\/\",\"name\":\"Contester platform - Contester\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/contester.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/contester.net\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/contester.net\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/contester.net\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/white-png-small.png\",\"datePublished\":\"2024-07-29T11:23:27+00:00\",\"dateModified\":\"2026-06-29T10:55:49+00:00\",\"description\":\"Contester is a video commerce platform purpose built to enhance affiliate partnerships via dynamic shoppable videos and livestream\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/contester.net\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/contester.net\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/contester.net\\\/#primaryimage\",\"url\":\"https:\\\/\\\/contester.net\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/white-png-small.png\",\"contentUrl\":\"https:\\\/\\\/contester.net\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/white-png-small.png\",\"width\":1000,\"height\":267},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/contester.net\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/contester.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contester platform\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/contester.net\\\/#website\",\"url\":\"https:\\\/\\\/contester.net\\\/\",\"name\":\"Contester\",\"description\":\"Video commerce \",\"publisher\":{\"@id\":\"https:\\\/\\\/contester.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/contester.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/contester.net\\\/#organization\",\"name\":\"Contester\",\"url\":\"https:\\\/\\\/contester.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/contester.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/contester.net\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Contester-text-alpha.png\",\"contentUrl\":\"https:\\\/\\\/contester.net\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Contester-text-alpha.png\",\"width\":1080,\"height\":525,\"caption\":\"Contester\"},\"image\":{\"@id\":\"https:\\\/\\\/contester.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Contester.net\",\"https:\\\/\\\/x.com\\\/Contest10545800\",\"https:\\\/\\\/www.instagram.com\\\/contester.official\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/contester\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC1pW4begugwoMvle96dxBBA\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contester platform - Contester","description":"Contester is a video commerce platform purpose built to enhance affiliate partnerships via dynamic shoppable videos and livestream","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/contester.net\/","og_locale":"en_US","og_type":"article","og_title":"Contester platform - Contester","og_description":"Contester is a video commerce platform purpose built to enhance affiliate partnerships via dynamic shoppable videos and livestream","og_url":"https:\/\/contester.net\/","og_site_name":"Contester","article_publisher":"https:\/\/www.facebook.com\/Contester.net","article_modified_time":"2026-06-29T10:55:49+00:00","og_image":[{"url":"https:\/\/contester.net\/wp-content\/uploads\/2025\/08\/white-png-small.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@Contest10545800","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/contester.net\/","url":"https:\/\/contester.net\/","name":"Contester platform - Contester","isPartOf":{"@id":"https:\/\/contester.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/contester.net\/#primaryimage"},"image":{"@id":"https:\/\/contester.net\/#primaryimage"},"thumbnailUrl":"https:\/\/contester.net\/wp-content\/uploads\/2025\/08\/white-png-small.png","datePublished":"2024-07-29T11:23:27+00:00","dateModified":"2026-06-29T10:55:49+00:00","description":"Contester is a video commerce platform purpose built to enhance affiliate partnerships via dynamic shoppable videos and livestream","breadcrumb":{"@id":"https:\/\/contester.net\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/contester.net\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/contester.net\/#primaryimage","url":"https:\/\/contester.net\/wp-content\/uploads\/2025\/08\/white-png-small.png","contentUrl":"https:\/\/contester.net\/wp-content\/uploads\/2025\/08\/white-png-small.png","width":1000,"height":267},{"@type":"BreadcrumbList","@id":"https:\/\/contester.net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/contester.net\/"},{"@type":"ListItem","position":2,"name":"Contester platform"}]},{"@type":"WebSite","@id":"https:\/\/contester.net\/#website","url":"https:\/\/contester.net\/","name":"Contester","description":"Video commerce ","publisher":{"@id":"https:\/\/contester.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/contester.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/contester.net\/#organization","name":"Contester","url":"https:\/\/contester.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/contester.net\/#\/schema\/logo\/image\/","url":"https:\/\/contester.net\/wp-content\/uploads\/2021\/01\/Contester-text-alpha.png","contentUrl":"https:\/\/contester.net\/wp-content\/uploads\/2021\/01\/Contester-text-alpha.png","width":1080,"height":525,"caption":"Contester"},"image":{"@id":"https:\/\/contester.net\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Contester.net","https:\/\/x.com\/Contest10545800","https:\/\/www.instagram.com\/contester.official\/","https:\/\/www.linkedin.com\/company\/contester\/","https:\/\/www.youtube.com\/channel\/UC1pW4begugwoMvle96dxBBA"]}]}},"_links":{"self":[{"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/pages\/4919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/comments?post=4919"}],"version-history":[{"count":175,"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/pages\/4919\/revisions"}],"predecessor-version":[{"id":6818,"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/pages\/4919\/revisions\/6818"}],"wp:attachment":[{"href":"https:\/\/contester.net\/index.php\/wp-json\/wp\/v2\/media?parent=4919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}