window.__STYLEGALLERY_ASSETS__={}; gsap.registerPlugin(SplitText); console.clear(); const container = document.querySelector(".container"); gsap.set(container, { visibility: "visible" }); const lines = document.querySelectorAll(".line"); const splitLines = Array.from(lines).map( (line) => new SplitText(line, { type: "chars", charsClass: "char" }) ); const width = window.innerWidth; const height = window.innerHeight; const depth = -width / 8; const transformOrigin = `50% 50% ${depth}`; gsap.set(lines, { perspective: 700, transformStyle: "preserve-3d" }); const animTime = 0.9; const tl = gsap.timeline({ repeat: -1 }); splitLines.forEach((split, index) => { tl.fromTo( split.chars, { rotationX: -90 }, { rotationX: 90, stagger: 0.08, duration: animTime, ease: "none", transformOrigin }, index * 0.45 // stagger between lines ); });