1. Open Site Settings → Custom Code →  before </body> tag.
2. Paste the code bellow:

<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.20/dist/lenis.css">

<script src="https://unpkg.com/lenis@1.3.1/dist/lenis.min.js"></script>

<script>
(function () {
  var POLL_INTERVAL = 100;
  var MAX_POLLS = 50;
  var polls = 0;

  function registerAndRun() {
    if (polls++ > MAX_POLLS) return;

    if (
      typeof gsap === "undefined" ||
      typeof SplitText === "undefined" ||
      typeof ScrollTrigger === "undefined"
    ) {
      setTimeout(registerAndRun, POLL_INTERVAL);
      return;
    }

    gsap.registerPlugin(SplitText, ScrollTrigger);

    document.querySelectorAll(".title-reveal").forEach(function (el) {

      var split = new SplitText(el, {
        type: "chars",
        charsClass: "char"
      });

      gsap.set(split.chars, {
        yPercent: 110,
        opacity: 0,
        display: "inline-block",
        force3D: true
      });

      gsap.to(split.chars, {
        yPercent: 0,
        opacity: 1,
        duration: 0.55,
        ease: "power3.out",
        stagger: { each: 0.015 },
        scrollTrigger: {
          trigger: el,
          start: "top 85%",
          once: true
        }
      });

    });

    document.querySelectorAll('[class*="wf-counter"]').forEach(function (counter) {
      var textEl = counter.querySelector("*") || counter;
      var original = textEl.textContent.trim();
      var match = original.match(/^([^0-9]*)([0-9.,]+)(.*)$/);
      if (!match) return;

      var prefix = match[1];
      var numberPart = match[2].replace(/,/g, "");
      var suffix = match[3];
      var hasDecimal = numberPart.indexOf(".") !== -1;
      var target = parseFloat(numberPart);
      if (isNaN(target)) return;

      var obj = { val: 0 };

      gsap.to(obj, {
        val: target,
        duration: 1.2,
        ease: "power1.out",
        scrollTrigger: {
          trigger: counter,
          start: "top 85%",
          once: true
        },
        onUpdate: function () {
          var value = hasDecimal
            ? obj.val.toFixed(1)
            : Math.floor(obj.val).toLocaleString();
          textEl.textContent = prefix + value + suffix;
        }
      });
    });

  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", registerAndRun);
  } else {
    registerAndRun();
  }
})();
</script>

<script>
window.Webflow = window.Webflow || [];
window.Webflow.push(function () {
  if (window.matchMedia("(min-width:768px)").matches) {
    const lenis = new Lenis({
      duration: 0.8,
      easing: function (t) { return 1 - Math.pow(1 - t, 3); },
      smoothWheel: true,
      smoothTouch: false,
      allowNestedScroll: true
    });

    function raf(time) {
      lenis.raf(time);
      requestAnimationFrame(raf);
    }

    requestAnimationFrame(raf);
  }
});
</script>