Our Work

Experience Our Craftsmanship Firsthand

Discover our gallery of completed projects, highlighting the quality and attention to detail we bring to every job.

document.addEventListener("DOMContentLoaded", function () { gsap.registerPlugin(ScrollTrigger); // Debugging: Check if ScrollTrigger is registered console.log("ScrollTrigger registered:", ScrollTrigger); // Animate elements with data-waypoint="this" let waypointThisElements = gsap.utils.toArray('[waypoint="this"]'); // console.log("waypointThisElements:", waypointThisElements); waypointThisElements.forEach((element) => { console.log("Animating element:", element); gsap.from(element, { opacity: 0, y: 25, duration: 1, ease: "power3.inOut", scrollTrigger: { trigger: element, start: "top 80%", end: "bottom 50%", toggleActions: "play none none pause", // markers: true, }, }); }); // Animate children of elements with data-waypoint="these" let waypointTheseElements = gsap.utils.toArray('[waypoint="these"]'); // console.log("waypointTheseElements:", waypointTheseElements); waypointTheseElements.forEach((parentElement) => { let children = parentElement.children; console.log("Animating children of:", parentElement, "Children:", children); gsap.from(children, { opacity: 0, y: 25, duration: 1, ease: "power3.inOut", stagger: 0.2, scrollTrigger: { trigger: parentElement, start: "top 80%", end: "bottom 50%", toggleActions: "play none none pause", // markers: true, }, }); }); });