yazı

1I am a Single Heading That Reveals by rotating on X from left

2I am a Single Heading That Reveals by rotating on X from left

3I am a Single Heading That Reveals by rotating on X from left

4I am a Single Heading That Reveals by rotating on X from left

5I am a Single Heading

6 I am a Single Heading That Reveals by rotating on X from left

7 I am a Single Heading

8 I am a Single Heading That Reveals by rotating on X from left

9 I am a Single Heading That Reveals by rotating on X from left

10 I am a Single Heading That Reveals by rotating on X from left

11 I am a Single Heading That Reveals by rotating on X from left

12 I am a Single Heading That Reveals by rotating on X from left

112 I am a Single Heading That Reveals by rotating on X from left

13 I am a Single Heading That Reveals by rotating on X from left

14 I am a Single Heading That Reveals by rotating on X from left

15 I am a Single Heading That Reveals by rotating on X from left

16 I am a Single Heading That Reveals by rotating on X from left

17 I am a Single Heading That Reveals by rotating on X from left

18 I am a Single Heading That Reveals by rotating on X from left

19 I am a Single Heading That Reveals by rotating on X from left

20 I am a Single Heading That Reveals by rotating on X from left

21 I am a Single Heading That Reveals by rotating on X from left

22 I am a Single Heading That Reveals by rotating on X from left

23 I am a Single Heading That Reveals by rotating on X from left

24 I am a Single Heading That Reveals by rotating on X from left

25 I am a Single Heading That Reveals by rotating on X from left

26 I am a Single Heading That Reveals by rotating on X from left

27 I am a Single Heading That Reveals by rotating on X from left

28 I am a Single Heading That Reveals by rotating on X from left

29 I am a Single Heading That Reveals by rotating on X from left

30 I am a Single Heading That Reveals by rotating on X from left

31 I am a Single Heading That Reveals by rotating on X from left

32 I am a Single Heading That Reveals by rotating on X from left

33 I am a Single Heading That Reveals by rotating on X from left

34 I am a Single Heading That Reveals by rotating on X from left

35 I am a Single Heading That Reveals by rotating on X from left

36 I am a Single Heading That Reveals by rotating on X from left

37 I am a Single Heading That Reveals by rotating on X from left

38 I am a Single Heading That Reveals by rotating on X from left

39 I am a Single Heading That Reveals by rotating on X from left

40 I am a Single Heading That Reveals by rotating on X from left

41 I am a Single Heading That Reveals by rotating on X from left

<style>
.yazi-1{
  perspective: 400px;
}
 
.yazi-1 .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-1{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-1”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi1 === “1”) return;
      target.dataset.doneYazi1 = “1”;
 
      const split = new SplitType(target, {
        types: “chars”,
        charClass: “char”,
        wordClass: “word”,
        lineClass: “line”
      });
 
      if (!split.chars || !split.chars.length) return;
 
      if (isEditor) {
        gsap.set(split.chars, {
          x: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.from(split.chars, {
        autoAlpha: 0,
        duration: 1,
        delay: 0.15,
        stagger: 0.02,
        x: -40,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-1 BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.yazi-2{
  perspective: 400px;
}
 
.yazi-2 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-2{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-2”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi2 === “1”) return;
      target.dataset.doneYazi2 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          rotationX: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(target, { perspective: 400 });
 
      gsap.from(split.lines, {
        duration: 1,
        delay: 0.15,
        opacity: 0,
        force3D: true,
        transformOrigin: “top center”,
        stagger: 0.02,
        rotationX: -80,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-2 BİTİŞ
========================================================= */
</script>
 
 
<style>
.yazi-3{
  perspective: 400px;
}
 
.anim-reveal-line{
  display: block;
  overflow: hidden;
}
 
.yazi-3 .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-3{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-3”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi3 === “1”) return;
      target.dataset.doneYazi3 = “1”;
 
      const split = new SplitType(target, {
        types: “lines,words,chars”,
        lineClass: “anim-reveal-line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.chars || !split.chars.length) return;
 
      if (isEditor) {
        gsap.set(split.chars, {
          y: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(split.chars, {
        y: 80,
        opacity: 0
      });
 
      const tween = gsap.to(split.chars, {
        duration: 1,
        delay: 0.15,
        ease: “circ.out”,
        y: 0,
        opacity: 1,
        stagger: 0.02,
        paused: true,
        overwrite: “auto”
      });
 
      ScrollTrigger.create({
        trigger: target,
        start: “top 85%”,
        end: “bottom 15%”,
        invalidateOnRefresh: true,
        onEnter: function(){
          tween.restart();
        },
        onEnterBack: function(){
          gsap.set(split.chars, {
            y: 80,
            opacity: 0
          });
          tween.restart();
        },
        onLeaveBack: function(){
          gsap.set(split.chars, {
            y: 80,
            opacity: 0
          });
          tween.pause(0);
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-3 BİTİŞ
========================================================= */
</script>
 
 
<style>
.yazi-4{
  perspective: 400px;
}
 
.anim-reveal-line{
  display: block;
  overflow: hidden;
}
 
.yazi-4 .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-4{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-4”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi4 === “1”) return;
      target.dataset.doneYazi4 = “1”;
 
      const split = new SplitType(target, {
        types: “lines,words,chars”,
        lineClass: “anim-reveal-line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.chars || !split.chars.length) return;
 
      if (isEditor) {
        gsap.set(split.chars, {
          y: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.fromTo(
        split.chars,
        {
          y: 80,
          opacity: 0
        },
        {
          duration: 1,
          delay: 0.15,
          ease: “none”,
          y: 0,
          opacity: 1,
          stagger: 0.02,
          scrollTrigger: {
            trigger: target,
            start: “top 99%”,
            end: “top 15%”,
            scrub: 1.2,
            invalidateOnRefresh: true
          }
        }
      );
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-4 BİTİŞ
========================================================= */
</script>
 
<style>
.yazi-5{
  perspective: 400px;
}
 
.yazi-5 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-5{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-5”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi5 === “1”) return;
      target.dataset.doneYazi5 = “1”;
 
      const split = new SplitType(target, {
        types: “lines,words,chars”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          scale: 1,
          autoAlpha: 1
        });
        return;
      }
 
      gsap.from(split.lines, {
        duration: 1,
        autoAlpha: 0,
        scale: 1.5,
        stagger: 0.02,
        transformOrigin: “50% 0%”,
        ease: “power2.out”,
        delay: 0.15,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-5 BİTİŞ
========================================================= */
</script>
 
<style>
.yazi-6{
  perspective: 400px;
}
 
.yazi-6 .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-6{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-6”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi6 === “1”) return;
      target.dataset.doneYazi6 = “1”;
 
      const split = new SplitType(target, {
        types: “lines,words,chars”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.chars || !split.chars.length) return;
 
      if (isEditor) {
        gsap.set(split.chars, {
          scale: 1,
          autoAlpha: 1
        });
        return;
      }
 
      gsap.from(split.chars, {
        duration: 1,
        autoAlpha: 0,
        scale: 1.5,
        stagger: 0.02,
        transformOrigin: “50% 0%”,
        ease: “power2.out”,
        delay: 0.15,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-6 BİTİŞ
========================================================= */
</script>
 
<style>
.yazi-7 .line{
  display: block;
  overflow: hidden;
}
 
.invert-line{
  display: block;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 200% 100%;
  background-position-x: 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}
 
body.elementor-editor-active .yazi-7{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  function setInvertGradient(el){
    var color = window.getComputedStyle(el).color || “rgb(255,255,255)”;
    var faded = color.replace(“rgb(“, “rgba(“).replace(“)”, “,0.28)”);
    el.style.setProperty(“–yazi-full-color”, color);
    el.style.setProperty(“–yazi-fade-color”, faded);
  }
 
  document.querySelectorAll(“.yazi-7”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi7 === “1”) return;
      target.dataset.doneYazi7 = “1”;
 
      setInvertGradient(target);
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “invert-line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        split.lines.forEach(function(line){
          line.style.backgroundImage =
            “linear-gradient(90deg, var(–yazi-full-color) 0%, var(–yazi-full-color) 50%, var(–yazi-fade-color) 50%, var(–yazi-fade-color) 100%)”;
          line.style.backgroundPositionX = “0%”;
        });
        return;
      }
 
      split.lines.forEach(function(line){
        line.style.backgroundImage =
          “linear-gradient(90deg, var(–yazi-full-color) 0%, var(–yazi-full-color) 50%, var(–yazi-fade-color) 50%, var(–yazi-fade-color) 100%)”;
 
        gsap.to(line, {
          backgroundPositionX: 0,
          ease: “none”,
          scrollTrigger: {
            trigger: line,
            scrub: 1,
            start: “top 85%”,
            end: “bottom center”,
            invalidateOnRefresh: true
          }
        });
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-7 BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.yazi-8{
  perspective: 400px;
}
 
.yazi-8 .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-8{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-8”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi8 === “1”) return;
      target.dataset.doneYazi8 = “1”;
 
      const split = new SplitType(target, {
        types: “chars”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.chars || !split.chars.length) return;
 
      if (isEditor) {
        gsap.set(split.chars, {
          x: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(split.chars, {
        x: 35,
        opacity: 0
      });
 
      gsap.to(split.chars, {
        x: 0,
        opacity: 1,
        ease: “none”,
        stagger: 0.02,
        scrollTrigger: {
          trigger: target,
          start: “top 90%”,
          end: “top 30%”,
          scrub: 1.2,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-8 BİTİŞ
========================================================= */
</script>
 
 
<style>
.yazi-9{
  perspective: 1000px;
}
 
.yazi-9 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-9{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-9”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi9 === “1”) return;
      target.dataset.doneYazi9 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          rotationY: 0,
          scaleX: 1,
          z: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(target, { perspective: 1000 });
 
      gsap.from(split.lines, {
        duration: 1,
        delay: 0.15,
        opacity: 0,
        force3D: true,
        transformOrigin: “center center”,
        stagger: 0.03,
        rotationY: -70,
        scaleX: 0.82,
        z: -80,
        ease: “power3.out”,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-9 BİTİŞ
========================================================= */
</script>
 
 
<style>
.yazi-10{
  perspective: 1000px;
}
 
.yazi-10 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-10{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-10”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi10 === “1”) return;
      target.dataset.doneYazi10 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          rotationY: 0,
          scaleX: 1,
          z: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(target, { perspective: 1000 });
 
      gsap.fromTo(
        split.lines,
        {
          opacity: 0,
          force3D: true,
          transformOrigin: “center center”,
          rotationY: -70,
          scaleX: 0.82,
          z: -80
        },
        {
          opacity: 1,
          rotationY: 0,
          scaleX: 1,
          z: 0,
          ease: “none”,
          stagger: 0.03,
          scrollTrigger: {
            trigger: target,
            start: “top 85%”,
            end: “top 20%”,
            scrub: 1.2,
            invalidateOnRefresh: true
          }
        }
      );
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-10 BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.yazi-11{
  perspective: 400px;
}
 
.yazi-11 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-11{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-11”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi11 === “1”) return;
      target.dataset.doneYazi11 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          rotationX: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(target, { perspective: 400 });
 
      gsap.fromTo(
        split.lines,
        {
          opacity: 0,
          force3D: true,
          transformOrigin: “top center”,
          rotationX: -80
        },
        {
          opacity: 1,
          rotationX: 0,
          ease: “none”,
          stagger: 0.02,
          scrollTrigger: {
            trigger: target,
            start: “top 85%”,
            end: “top 20%”,
            scrub: 1.2,
            invalidateOnRefresh: true
          }
        }
      );
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-11 BİTİŞ
========================================================= */
</script>
 
<style>
.yazi-13{
  perspective: 400px;
}
 
.yazi-13 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-13{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-13”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi13 === “1”) return;
      target.dataset.doneYazi13 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          y: 0,
          scale: 1,
          opacity: 1
        });
        return;
      }
 
      gsap.from(split.lines, {
        duration: 1,
        delay: 0.15,
        opacity: 0,
        scale: 1.4,
        y: 60,
        transformOrigin: “50% 100%”,
        stagger: 0.06,
        ease: “power3.out”,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-13 BİTİŞ
========================================================= */
</script>
 
<style>
.yazi-14{
  perspective: 400px;
}
 
.yazi-14 .word{
  display: inline-block;
  white-space: nowrap;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-14{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-14”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi14 === “1”) return;
      target.dataset.doneYazi14 = “1”;
 
      const split = new SplitType(target, {
        types: “words”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.words || !split.words.length) return;
 
      if (isEditor) {
        gsap.set(split.words, {
          x: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.fromTo(
        split.words,
        {
          x: 60,
          opacity: 0
        },
        {
          x: 0,
          opacity: 1,
          ease: “none”,
          stagger: 0.04,
          scrollTrigger: {
            trigger: target,
            start: “top 85%”,
            end: “top 20%”,
            scrub: 1.2,
            invalidateOnRefresh: true
          }
        }
      );
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-14 BİTİŞ
========================================================= */
</script>
 
<style>
.yazi-15{
  perspective: 400px;
}
 
.yazi-15 .word{
  display: inline-block;
  white-space: nowrap;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-15{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-15”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi15 === “1”) return;
      target.dataset.doneYazi15 = “1”;
 
      const split = new SplitType(target, {
        types: “words”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.words || !split.words.length) return;
 
      if (isEditor) {
        gsap.set(split.words, {
          x: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.from(split.words, {
        duration: 0.9,
        delay: 0.1,
        x: 60,
        opacity: 0,
        stagger: 0.04,
        ease: “power3.out”,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          end: “bottom 15%”,
          toggleActions: “restart none restart reset”,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   YAZI-15 BİTİŞ
========================================================= */
</script>
 
<style>
/* Başlangıç durumu */
.Scale-Up{
  transform: scale(0);
  opacity: 0;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
/* Elementor editörde görünür kalsın */
body.elementor-editor-active .Scale-Up{
  transform: none !important;
  opacity: 1 !important;
}
</style>
 
<style>
.Scale-Up{
  opacity: 0;
  transform: scale(0.86);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .Scale-Up{
  opacity: 1 !important;
  transform: none !important;
}
</style>
 
<style>
 
.Scale-Up{
  transform: scale(0);
  opacity: 0;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
/* Elementor editörde görünür kalsın */
body.elementor-editor-active .Scale-Up{
  transform: none !important;
  opacity: 1 !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
  if (isEditor) return;
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined”) {
    console.warn(“GSAP veya ScrollTrigger yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  gsap.utils.toArray(“.Scale-Up”).forEach((el) => {
    gsap.set(el, {
      scale: 0,
      opacity: 0,
      transformOrigin: “center center”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      onEnter: () => {
        gsap.to(el, {
          scale: 1,
          opacity: 1,
          duration: 0.8,
          ease: “back.out(1.7)”,
          overwrite: “auto”
        });
      },
      onLeaveBack: () => {
        gsap.set(el, {
          scale: 0,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   Scale-Up BİTİŞ
========================================================= */
</script>
 
<style>
.char-rise{
  visibility: hidden;
}
 
.char-rise.char-rise-ready{
  visibility: visible;
}
 
.char-rise .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .char-rise{
  visibility: visible !important;
}
</style>
 
 
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined” || typeof SplitText === “undefined”) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.char-rise”).forEach((el) => {
    const text = el.textContent.trim();
    if (!text) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“char-rise-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, { y: 0, opacity: 1 });
      return;
    }
 
    gsap.set(split.chars, {
      y: 50,
      opacity: 0,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      y: 0,
      opacity: 1,
      stagger: 0.03,
      duration: 0.6,
      ease: “back.out(1.7)”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          y: 50,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   char-rise BİTİŞ
========================================================= */
</script>
 
<style>
.bounce-chars{
  visibility: hidden;
}
 
.bounce-chars.bounce-chars-ready{
  visibility: visible;
}
 
.bounce-chars .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .bounce-chars{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.bounce-chars”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“bounce-chars-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, { y: 0, opacity: 1 });
      return;
    }
 
    gsap.set(split.chars, {
      y: -300,
      opacity: 0,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      y: 0,
      opacity: 1,
      stagger: 0.05,
      duration: 0.8,
      ease: “bounce.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          y: -300,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   bounce-chars BİTİŞ
========================================================= */
</script>
 
 
<style>
.scatter-chars{
  visibility: hidden;
}
 
.scatter-chars.scatter-chars-ready{
  visibility: visible;
}
 
.scatter-chars .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .scatter-chars{
  visibility: visible !important;
}
</style>
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.scatter-chars”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“scatter-chars-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        x: 0,
        y: 0,
        rotation: 0,
        opacity: 1
      });
      return;
    }
 
    const randomState = split.chars.map(() => ({
      x: gsap.utils.random(-200, 200),
      y: gsap.utils.random(-200, 200),
      rotation: gsap.utils.random(-90, 90)
    }));
 
    gsap.set(split.chars, {
      opacity: 0
    });
 
    split.chars.forEach((char, i) => {
      gsap.set(char, {
        x: randomState[i].x,
        y: randomState[i].y,
        rotation: randomState[i].rotation,
        force3D: true
      });
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      x: 0,
      y: 0,
      rotation: 0,
      opacity: 1,
      stagger: 0.02,
      duration: 1,
      ease: “power3.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        split.chars.forEach((char, i) => {
          gsap.set(char, {
            x: randomState[i].x,
            y: randomState[i].y,
            rotation: randomState[i].rotation,
            opacity: 0
          });
        });
      }
    });
  });
});
/* =========================================================
   scatter-chars BİTİŞ
========================================================= */
</script>
 
 
<style>
.spin-scale{
  opacity: 0;
  transform: scale(0) rotate(720deg);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .spin-scale{
  opacity: 1 !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined”) {
    console.warn(“GSAP veya ScrollTrigger yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  document.querySelectorAll(“.spin-scale”).forEach((el) => {
    if (isEditor) {
      gsap.set(el, {
        rotation: 0,
        scale: 1,
        opacity: 1
      });
      return;
    }
 
    gsap.set(el, {
      rotation: 720,
      scale: 0,
      opacity: 0,
      transformOrigin: “center center”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(el, {
      rotation: 0,
      scale: 1,
      opacity: 1,
      duration: 1.2,
      ease: “power4.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(el, {
          rotation: 720,
          scale: 0,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   spin-scale BİTİŞ
========================================================= */
</script>
 
 
<style>
.random-rise{
  visibility: hidden;
}
 
.random-rise.random-rise-ready{
  visibility: visible;
}
 
.random-rise .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .random-rise{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.random-rise”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“random-rise-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        y: 0,
        opacity: 1
      });
      return;
    }
 
    gsap.set(split.chars, {
      y: -100,
      opacity: 0,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      y: 0,
      opacity: 1,
      stagger: {
        each: 0.05,
        from: “random”
      },
      duration: 0.5,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          y: -100,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   random-rise BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.tilt-rise{
  visibility: hidden;
}
 
.tilt-rise.tilt-rise-ready{
  visibility: visible;
}
 
.tilt-rise .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .tilt-rise{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.tilt-rise”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“tilt-rise-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        y: 0,
        rotation: 0,
        opacity: 1
      });
      return;
    }
 
    gsap.set(split.chars, {
      y: -80,
      rotation: -15,
      opacity: 0,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      y: 0,
      rotation: 0,
      opacity: 1,
      stagger: {
        each: 0.04,
        from: “start”
      },
      duration: 0.5,
      ease: “back.out(1.4)”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          y: -80,
          rotation: -15,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   tilt-rise BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.blur-center{
  visibility: hidden;
}
 
.blur-center.blur-center-ready{
  visibility: visible;
}
 
.blur-center .char{
  display: inline-block;
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .blur-center{
  visibility: visible !important;
}
</style>
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.blur-center”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“blur-center-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        opacity: 1,
        scale: 1,
        filter: “blur(0px)”
      });
      return;
    }
 
    gsap.set(split.chars, {
      opacity: 0.1,
      scale: 0.8,
      filter: “blur(4px)”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      opacity: 1,
      scale: 1,
      filter: “blur(0px)”,
      stagger: {
        each: 0.06,
        from: “center”
      },
      duration: 0.4,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          opacity: 0.1,
          scale: 0.8,
          filter: “blur(4px)”
        });
      }
    });
  });
});
/* =========================================================
   blur-center BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.swing-chars{
  visibility: hidden;
}
 
.swing-chars.swing-chars-ready{
  visibility: visible;
}
 
.swing-chars .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-origin: bottom left;
}
 
body.elementor-editor-active .swing-chars{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.swing-chars”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“swing-chars-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        rotationZ: 0,
        opacity: 1,
        transformOrigin: “bottom left”
      });
      return;
    }
 
    gsap.set(split.chars, {
      rotationZ: -90,
      opacity: 0,
      transformOrigin: “bottom left”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      rotationZ: 0,
      opacity: 1,
      transformOrigin: “bottom left”,
      stagger: 0.06,
      duration: 0.5,
      ease: “power3.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          rotationZ: -90,
          opacity: 0,
          transformOrigin: “bottom left”
        });
      }
    });
  });
});
 
/* =========================================================
   swing-chars BİTİŞ
========================================================= */
</script>
 
 
<style>
.elastic-tilt{
  visibility: hidden;
}
 
.elastic-tilt.elastic-tilt-ready{
  visibility: visible;
}
 
.elastic-tilt .char{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-origin: top center;
}
 
body.elementor-editor-active .elastic-tilt{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.elastic-tilt”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“elastic-tilt-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        rotation: 0,
        opacity: 1,
        transformOrigin: “top center”
      });
      return;
    }
 
    gsap.set(split.chars, {
      rotation: 90,
      opacity: 0,
      transformOrigin: “top center”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      rotation: 0,
      opacity: 1,
      transformOrigin: “top center”,
      stagger: 0.05,
      duration: 1,
      ease: “elastic.out(1, 0.5)”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          rotation: 90,
          opacity: 0,
          transformOrigin: “top center”
        });
      }
    });
  });
});
 
/* =========================================================
   elastic-tilt BİTİŞ
========================================================= */
</script>
 
 
<style>
.wave-chars{
  visibility: hidden;
}
 
.wave-chars.wave-chars-ready{
  visibility: visible;
}
 
.wave-chars .char{
  display: inline-block;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .wave-chars{
  visibility: visible !important;
}
</style>
 
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  if (typeof gsap === “undefined” || typeof SplitText === “undefined”) {
    console.warn(“GSAP veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(SplitText);
 
  document.querySelectorAll(“.wave-chars”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“wave-chars-ready”);
 
    if (document.body.classList.contains(“elementor-editor-active”)) {
      gsap.set(split.chars, { y: 0 });
      return;
    }
 
    gsap.to(split.chars, {
      y: -20,
      stagger: {
        each: 0.06,
        from: “start”,
        repeat: -1,
        yoyo: true
      },
      duration: 0.4,
      ease: “sine.inOut”
    });
  });
});
/* =========================================================
   wave-chars BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.blur-zoom{
  opacity: 0;
  filter: blur(20px);
  transform: scale(0.9);
  transform-origin: center center;
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .blur-zoom{
  opacity: 1 !important;
  filter: blur(0px) !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined”) {
    console.warn(“GSAP veya ScrollTrigger yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  document.querySelectorAll(“.blur-zoom”).forEach((el) => {
    if (isEditor) {
      gsap.set(el, {
        filter: “blur(0px)”,
        opacity: 1,
        scale: 1
      });
      return;
    }
 
    gsap.set(el, {
      filter: “blur(20px)”,
      opacity: 0,
      scale: 0.9,
      transformOrigin: “center center”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(el, {
      filter: “blur(0px)”,
      opacity: 1,
      scale: 1,
      duration: 1.5,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(el, {
          filter: “blur(20px)”,
          opacity: 0,
          scale: 0.9
        });
      }
    });
  });
});
/* =========================================================
   blur-zoom BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.clip-reveal{
  clip-path: inset(0 100% 0 0);
  -webkit-clip-path: inset(0 100% 0 0);
  will-change: clip-path;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .clip-reveal{
  clip-path: inset(0 0 0 0) !important;
  -webkit-clip-path: inset(0 0 0 0) !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined”) {
    console.warn(“GSAP veya ScrollTrigger yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  document.querySelectorAll(“.clip-reveal”).forEach((el) => {
    if (isEditor) {
      gsap.set(el, {
        clipPath: “inset(0 0% 0 0)”,
        WebkitClipPath: “inset(0 0% 0 0)”
      });
      return;
    }
 
    gsap.set(el, {
      clipPath: “inset(0 100% 0 0)”,
      WebkitClipPath: “inset(0 100% 0 0)”
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(el, {
      clipPath: “inset(0 0% 0 0)”,
      WebkitClipPath: “inset(0 0% 0 0)”,
      duration: 1.2,
      ease: “power3.inOut”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(el, {
          clipPath: “inset(0 100% 0 0)”,
          WebkitClipPath: “inset(0 100% 0 0)”
        });
      }
    });
  });
});
/* =========================================================
   clip-reveal BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.scatter-words{
  visibility: hidden;
}
 
.scatter-words.scatter-words-ready{
  visibility: visible;
}
 
.scatter-words .word{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .scatter-words{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.scatter-words”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “words” });
    el.classList.add(“scatter-words-ready”);
 
    if (isEditor) {
      gsap.set(split.words, {
        x: 0,
        y: 0,
        rotation: 0,
        opacity: 1
      });
      return;
    }
 
    const randomState = split.words.map(() => ({
      x: gsap.utils.random(-100, 100),
      y: gsap.utils.random(-50, 50),
      rotation: gsap.utils.random(-15, 15)
    }));
 
    split.words.forEach((word, i) => {
      gsap.set(word, {
        x: randomState[i].x,
        y: randomState[i].y,
        rotation: randomState[i].rotation,
        opacity: 0,
        force3D: true
      });
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.words, {
      x: 0,
      y: 0,
      rotation: 0,
      opacity: 1,
      stagger: 0.1,
      duration: 0.8,
      ease: “power3.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        split.words.forEach((word, i) => {
          gsap.set(word, {
            x: randomState[i].x,
            y: randomState[i].y,
            rotation: randomState[i].rotation,
            opacity: 0
          });
        });
      }
    });
  });
});
/* =========================================================
   scatter-words BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.word-rise{
  visibility: hidden;
}
 
.word-rise.word-rise-ready{
  visibility: visible;
}
 
.word-rise .word{
  display: inline-block;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .word-rise{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.word-rise”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “words” });
    el.classList.add(“word-rise-ready”);
 
    if (isEditor) {
      gsap.set(split.words, {
        y: 0,
        opacity: 1
      });
      return;
    }
 
    gsap.set(split.words, {
      y: 40,
      opacity: 0,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.words, {
      y: 0,
      opacity: 1,
      stagger: 0.15,
      duration: 0.8,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.words, {
          y: 40,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   word-rise BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.slide-right-in{
  opacity: 0;
  transform: translateX(200px);
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .slide-right-in{
  opacity: 1 !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined”) {
    console.warn(“GSAP veya ScrollTrigger yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  document.querySelectorAll(“.slide-right-in”).forEach((el) => {
    if (isEditor) {
      gsap.set(el, {
        x: 0,
        opacity: 1
      });
      return;
    }
 
    gsap.set(el, {
      x: 200,
      opacity: 0,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(el, {
      x: 0,
      opacity: 1,
      duration: 1,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(el, {
          x: 200,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   slide-right-in BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.soft-blur-in{
  opacity: 0;
  filter: blur(8px);
  transform: scale(0.95);
  transform-origin: center center;
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .soft-blur-in{
  opacity: 1 !important;
  filter: blur(0px) !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (typeof gsap === “undefined” || typeof ScrollTrigger === “undefined”) {
    console.warn(“GSAP veya ScrollTrigger yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  document.querySelectorAll(“.soft-blur-in”).forEach((el) => {
    if (isEditor) {
      gsap.set(el, {
        opacity: 1,
        scale: 1,
        filter: “blur(0px)”
      });
      return;
    }
 
    gsap.set(el, {
      opacity: 0,
      scale: 0.95,
      filter: “blur(8px)”,
      transformOrigin: “center center”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(el, {
      opacity: 1,
      scale: 1,
      filter: “blur(0px)”,
      duration: 1.2,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(el, {
          opacity: 0,
          scale: 0.95,
          filter: “blur(8px)”
        });
      }
    });
  });
});
/* =========================================================
   soft-blur-in BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.flip-chars-top{
  visibility: hidden;
  perspective: 800px;
  transform-style: preserve-3d;
}
 
.flip-chars-top.flip-chars-top-ready{
  visibility: visible;
}
 
.flip-chars-top .char{
  display: inline-block;
  will-change: transform, opacity;
  transform-origin: 50% 0%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .flip-chars-top{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.flip-chars-top”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“flip-chars-top-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        rotationX: 0,
        opacity: 1,
        transformOrigin: “50% 0%”
      });
      return;
    }
 
    gsap.set(split.chars, {
      rotationX: -90,
      opacity: 0,
      transformOrigin: “50% 0%”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      rotationX: 0,
      opacity: 1,
      transformOrigin: “50% 0%”,
      stagger: {
        each: 0.1,
        from: “start”
      },
      duration: 0.3,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          rotationX: -90,
          opacity: 0,
          transformOrigin: “50% 0%”
        });
      }
    });
  });
});
/* =========================================================
   flip-chars-top BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.edge-scale-chars{
  visibility: hidden;
}
 
.edge-scale-chars.edge-scale-chars-ready{
  visibility: visible;
}
 
.edge-scale-chars .char{
  display: inline-block;
  will-change: transform, opacity;
  transform-origin: center center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
 
body.elementor-editor-active .edge-scale-chars{
  visibility: visible !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.edge-scale-chars”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
    el.classList.add(“edge-scale-chars-ready”);
 
    if (isEditor) {
      gsap.set(split.chars, {
        scaleX: 1,
        opacity: 1
      });
      return;
    }
 
    gsap.set(split.chars, {
      scaleX: 0,
      opacity: 0,
      transformOrigin: “center center”,
      force3D: true
    });
 
    const tl = gsap.timeline({ paused: true });
 
    tl.to(split.chars, {
      scaleX: 1,
      opacity: 1,
      stagger: {
        each: 0.04,
        from: “edges”
      },
      duration: 0.4,
      ease: “power2.out”,
      overwrite: “auto”
    });
 
    ScrollTrigger.create({
      trigger: el,
      start: “top 85%”,
      end: “bottom 15%”,
      invalidateOnRefresh: true,
      onEnter: () => tl.play(),
      onEnterBack: () => tl.play(),
      onLeaveBack: () => {
        tl.pause(0);
        gsap.set(split.chars, {
          scaleX: 0,
          opacity: 0
        });
      }
    });
  });
});
/* =========================================================
   edge-scale-chars BİTİŞ
========================================================= */
</script>
 
 
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitText === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitText yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger, SplitText);
 
  document.querySelectorAll(“.flip-chars-left-3d”).forEach((el) => {
    if (!el.textContent.trim()) return;
 
    const split = SplitText.create(el, { type: “chars” });
 
    if (isEditor) {
      gsap.set(split.chars, {
        rotationY: 0,
        rotationX: 0,
        opacity: 1
      });
      return;
    }
 
    gsap.fromTo(
      split.chars,
      {
        rotationY: -90,
        rotationX: 45,
        transformOrigin: “left center”,
        opacity: 0
      },
      {
        rotationY: 0,
        rotationX: 0,
        transformOrigin: “left center”,
        opacity: 1,
        stagger: 0.05,
        duration: 0.8,
        ease: “power3.out”,
        scrollTrigger: {
          trigger: el,
          start: “top 85%”,
          toggleActions: “play none none reset”
        }
      }
    );
  });
});
/* =========================================================
   flip-chars-left-3d BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.yazi-12{
  perspective: 400px;
}
 
.yazi-12 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-12{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-12”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi12 === “1”) return;
      target.dataset.doneYazi12 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          rotationX: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(target, { perspective: 400 });
 
      gsap.set(split.lines, {
        opacity: 0,
        rotationX: -80,
        transformOrigin: “top center”,
        force3D: true
      });
 
      gsap.to(split.lines, {
        opacity: 1,
        rotationX: 0,
        duration: 0.9,
        ease: “power3.out”,
        stagger: 0.06,
        scrollTrigger: {
          trigger: target,
          start: “top 85%”,
          toggleActions: “play none none none”,
          once: true,
          invalidateOnRefresh: true
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   yazi-12 BİTİŞ
========================================================= */
</script>
 
 
 
<style>
.yazi-112{
  perspective: 400px;
}
 
.yazi-112 .line{
  display: block;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}
 
body.elementor-editor-active .yazi-112{
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
</style>
 
<script>
document.addEventListener(“DOMContentLoaded”, function () {
  const isEditor = document.body.classList.contains(“elementor-editor-active”);
 
  if (
    typeof gsap === “undefined” ||
    typeof ScrollTrigger === “undefined” ||
    typeof SplitType === “undefined”
  ) {
    console.warn(“GSAP, ScrollTrigger veya SplitType yüklenmemiş.”);
    return;
  }
 
  gsap.registerPlugin(ScrollTrigger);
 
  function resolveTargets(scope){
    if (scope.matches(“h1,h2,h3,h4,h5,h6,p,span”)) {
      return [scope];
    }
 
    return Array.from(
      scope.querySelectorAll(“h1,h2,h3,h4,h5,h6,p,span”)
    ).filter(function(el){
      return el.textContent.trim().length > 0;
    });
  }
 
  document.querySelectorAll(“.yazi-112”).forEach(function(scope){
    resolveTargets(scope).forEach(function(target){
      if (target.dataset.doneYazi112 === “1”) return;
      target.dataset.doneYazi112 = “1”;
 
      const split = new SplitType(target, {
        types: “lines”,
        lineClass: “line”,
        wordClass: “word”,
        charClass: “char”
      });
 
      if (!split.lines || !split.lines.length) return;
 
      if (isEditor) {
        gsap.set(split.lines, {
          rotationX: 0,
          opacity: 1
        });
        return;
      }
 
      gsap.set(target, { perspective: 400 });
 
      const anim = gsap.fromTo(
        split.lines,
        {
          opacity: 0,
          rotationX: -80,
          transformOrigin: “top center”,
          force3D: true
        },
        {
          opacity: 1,
          rotationX: 0,
          duration: 1,
  delay: 0.15,
          ease: “power3.out”,
          stagger: 0.02,
          paused: true
        }
      );
 
      ScrollTrigger.create({
        trigger: target,
        start: “top 85%”,
        end: “bottom 15%”,
        invalidateOnRefresh: true,
 
        onEnter: function(){
          anim.restart();
        },
 
        onEnterBack: function(){
          anim.restart();
        },
 
        onLeave: function(){
          anim.pause(0);
        },
 
        onLeaveBack: function(){
          anim.pause(0);
        }
      });
    });
  });
 
  ScrollTrigger.refresh();
});
/* =========================================================
   yazi-112 BİTİŞ
========================================================= */
</script>