{"version":3,"file":"studio-BuU05kRD.js","sources":["../../src/javascripts/studio.js"],"sourcesContent":["document.addEventListener(\"DOMContentLoaded\", () => {\n gsap.registerPlugin(ScrollToPlugin);\n gsap.registerPlugin(TextPlugin);\n // Initialize Lenis\n function smoothScroll() {\n const lenis = new Lenis({\n duration: 2,\n smooth: true,\n autoRaf: true,\n easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t))\n });\n\n // Call scrollTo once\n lenis.scrollTo(0);\n\n // Define the RAF loop\n function raf(time) {\n lenis.raf(time);\n requestAnimationFrame(raf);\n }\n\n // Start the animation frame loop\n requestAnimationFrame(raf);\n }\n\n smoothScroll();\n\n\n\n const clientData = [\n {\n \"name\": \"THR India\",\n \"logo\": \"/Logos/thr_logo.webp\",\n \"image\": \"/brands/thr_our_studio.webp\"\n },\n {\n \"name\": \"Esquire India\",\n \"logo\": \"/Logos/esquire_logo.webp\",\n \"image\": \"/brands/esquire_our_studio.webp\"\n },\n {\n \"name\": \"Manifest\",\n \"logo\": \"/Logos/manifest.webp\",\n \"image\": \"/brands/manifest_our_studio.webp\"\n },\n {\n \"name\": \"RPSG Group\",\n \"logo\": \"/Logos/RPSG_group_logo.webp\",\n \"image\": \"/brands/rpsg_group_our_studio.webp\"\n },\n {\n \"name\": \"RPSG Lifestyle Media\",\n \"logo\": \"/Logos/RPSG_media_logo.webp\",\n \"image\": \"/brands/rpsg_media_our_studio.webp\"\n },\n {\n \"name\": \"Point Of\",\n \"logo\": \"/Logos/point.png\",\n \"image\": \"/brands/po_our_studio.webp\"\n },\n {\n \"name\": \"Wealth Fusion\",\n \"logo\": \"/Logos/wf_logo.webp\",\n \"image\": \"/brands/wealth_fusion_our_studio.webp\"\n },\n {\n \"name\": \"Casa Carigar\",\n \"logo\": \"/Logos/cc_logo_2.webp\",\n \"image\": \"/brands/cc_our_studio.webp\"\n },\n {\n \"name\": \"WineeMedia\",\n \"logo\": \"/Logos/wineemedia_logo_2.webp\",\n \"image\": \"/brands/wineemedia_our_studio.webp\"\n },\n {\n \"name\": \"JustNosh\",\n \"logo\": \"/Logos/justnosh_logo.webp\",\n \"image\": \"/brands/just_nosh_our_studio.webp\"\n },\n {\n \"name\": \"Hefty Art\",\n \"logo\": \"/Logos/hefty_art_logo.webp\",\n \"image\": \"/brands/hefty_art_our_studio.webp\"\n },\n {\n \"name\": \"Khelo Esports\",\n \"logo\": \"/Logos/khelo_esport_logo_2.webp\",\n \"image\": \"/brands/khelo_esports_our_studio.webp\"\n },\n {\n \"name\": \"The Senseis Store\",\n \"logo\": \"/Logos/sensei_store_logo.webp\",\n \"image\": \"/brands/sensei_store_our_studio.webp\"\n },\n {\n \"name\": \"Mr. & Mrs.\",\n \"logo\": \"/Logos/mr_and_mrs_films_logo.webp\",\n \"image\": \"/brands/mr_and_mrs_our_studio.webp\"\n },\n {\n \"name\": \"Rage\",\n \"logo\": \"/Logos/rage_media_logo_2.webp\",\n \"image\": \"/brands/rage_our_studio.webp\"\n },\n {\n \"name\": \"Dhamaka\",\n \"logo\": \"/Logos/dhamaka_record_logo.webp\",\n \"image\": \"/brands/dhamaka_records_our_studio.webp\"\n },\n {\n \"name\": \"Indian Gaming League\",\n \"logo\": \"/Logos/the_greek_life_logo_2.webp\",\n \"image\": \"/brands/IGL_our_studio.webp\"\n },\n {\n \"name\": \"The Greek Life\",\n \"logo\": \"/Logos/the_greek_life_logo_2.webp\",\n \"image\": \"/brands/greek_life_our_studio.webp\"\n },\n {\n \"name\": \"I White Korea\",\n \"logo\": \"/Logos/i_white_korea_logo.webp\",\n \"image\": \"/brands/iWhiteKorea_our_studio.webp\"\n },\n {\n \"name\": \"ResideInBeing\",\n \"logo\": \"/Logos/rib.avif\",\n \"image\": \"/brands/reside_in_being_our_studio.webp\"\n },\n ]\n\n function homeLoader() {\n var loader = gsap.timeline()\n loader\n .from(\".upper\", {\n opacity: 0,\n duration: .8,\n ease: \"ease-in-out\",\n delay: 2,\n stagger: {\n from: \"center\",\n amount: .2\n }\n }, \"a\")\n\n .from(\".lower\", {\n opacity: 0,\n duration: .8,\n ease: \"ease-in-out\",\n stagger: {\n amount: .2\n },\n delay: 2.1,\n }, \"a\")\n\n .from(\"#toph\", {\n top: \"50%\",\n duration: .8,\n ease: \"power3.out\",\n }, \"b\")\n .from(\".banner-studio\", {\n opacity: 0,\n duration: 1,\n delay: -.5,\n ease: \"power3.out\",\n }, \"c\")\n .from(\"nav\", {\n opacity: 0,\n duration: 1,\n delay: -.5,\n ease: \"power3.out\",\n }, \"c\")\n .to(\".btmwrap\", {\n opacity: 1,\n duration: 1,\n delay: -.5,\n ease: \"power3.out\",\n }, \"c\")\n }\n homeLoader()\n\n\n function textEffectAnimation() {\n document.querySelectorAll(\".text-effect .effect\").forEach(function (element) {\n var clutter2 = \"\"\n element.textContent.split(\"\").forEach(function (letter) {\n if (letter === \" \") {\n clutter2 += \" \"\n } else {\n clutter2 += `${letter}`\n }\n })\n element.innerHTML = clutter2\n })\n\n document.querySelectorAll(\".text-effect\").forEach(function (elem) {\n elem.addEventListener(\"mouseenter\", function (e) {\n gsap.fromTo(e.currentTarget.children[0].querySelectorAll(\"span\"), {\n y: \"0%\",\n }, {\n y: \"-100%\",\n // duration: .8,\n stagger: {\n amount: .2\n },\n })\n gsap.fromTo(e.currentTarget.children[1].querySelectorAll(\"span\"), {\n y: \"0%\",\n }, {\n y: \"-100%\",\n // duration: .8,\n stagger: {\n amount: .2\n },\n })\n })\n })\n }\n textEffectAnimation()\n\n function serviceListingAnimation() {\n const serviceDets = [\n \"Digging deep to define your audience, vision, and what sets you apart.\",\n \"Positioning your brand with a clear mission and a bold identity.\",\n \"Crafting a voice and visual language that actually speaks to people.\",\n \"Designing logos, color palettes, and typography that make you instantly recognizable.\",\n \"Creating high-impact visuals that bring your brand to life.\",\n \"Writing words that don’t just fill space but make people feel something.\",\n \"Designing everything from business cards to billboards—cohesive, striking, and unforgettable.\",\n \"Designing experiences that feel intuitive, effortless, and built for engagement.\",\n \"Crafting sleek, high-end visuals that make your brand look like a million bucks.\",\n \"Fast, fluid, and pixel-perfect—our websites don’t just work; they impress.\",\n \"This is our playground. We craft mind-blowing GSAP animations that make websites feel alive.\",\n \"Powering your site with solid, scalable, and headache-free architecture.\",\n \"From technical SEO to on-page magic, we help you rank higher and get seen by the right people.\",\n \"Rock-solid hosting that keeps your website lightning-fast and always online.\",\n \"No compromises—enterprise-grade security to keep your data locked down.\",\n \"Because the internet never sleeps, and neither do we when it comes to keeping your site running.\",\n \"Powering high-performance Shopify stores with custom design, seamless UX, and rock-solid scalability.\",\n \"Ditch the templates—our tailor-made GSAP-enhanced stores deliver next-level design, freedom, and immersive shopping experiences.\",\n \"Building dynamic platforms where multiple vendors, customers, and cutting-edge features come together for a seamless ecosystem.\",\n \"Fine-tuning online stores with intuitive UX, frictionless checkouts, and data-driven strategies to boost conversions.\",\n \"Designing and developing sleek, high-performance apps that people actually love using.\",\n \"We don’t do cookie-cutter solutions—we build CMS platforms tailored to your needs.\",\n \"Whether it's niche or mass-market, we build digital marketplaces that stand out and scale up.\",\n \"High-traffic, high-functionality platforms designed for brands that want to be heard.\",\n \"Analyzing speed, security, and infrastructure to keep your platform fast, safe, and ahead of the game.\",\n \"Expert guidance on bespoke digital solutions, from choosing the right tech stack to building scalable, future-ready systems.\",\n \"A squad of elite developers, designers, and strategists working as an extension of your in-house team.\"\n ]\n\n document.querySelectorAll(\".service-wrap .text-effect\").forEach(function (textEffect) {\n textEffect.addEventListener(\"mouseenter\", function (e) {\n const text = serviceDets[e.target.dataset.index]\n\n gsap.to(document.querySelector(\"#about-service-text\"), {\n text: text,\n duration: 1,\n ease: \"power3.out\",\n overwrite: \"auto\"\n })\n })\n textEffect.addEventListener(\"mouseleave\", function () {\n gsap.to(document.querySelector(\"#about-service-text\"), {\n text: \"\",\n duration: 1,\n ease: \"power3.out\",\n overwrite: \"auto\"\n })\n })\n })\n }\n serviceListingAnimation()\n var isMenuService = false;\n var isService = false;\n function serviceAnimation() {\n var previousLink = \"\"\n\n document.querySelectorAll(\".service-open-btn\").forEach(function (btn) {\n btn.addEventListener(\"click\", function (e) {\n document.querySelector(\"#nav-service\").classList.add(\"active\");\n document.querySelector(\"#studio-btn\").classList.remove(\"active\");\n isService = !isService;\n openService()\n })\n })\n document.querySelector(\"#closeService\").addEventListener(\"click\", function () {\n isService = !isService;\n openService()\n document.querySelector(\"#menu-button\").textContent = \"close\"\n isMenuService = false;\n this.classList.remove(\"active\");\n document.querySelector(\"#studio-btn\").classList.add(\"active\");\n })\n\n\n }\n function openService() {\n if (isService) {\n gsap.set(\"nav\", { backgroundColor: \"#fff\" })\n gsap.to(\"#main\", {\n top: \"calc(100% - 40px)\",\n ease: \"power3.out\",\n duration: 1.2\n })\n gsap.to(\"#service-page\", {\n top: \"-40px\",\n ease: \"power3.out\",\n duration: 1.2,\n onComplete: () => {\n gsap.set(\"body\", { overflow: \"hidden\" })\n }\n })\n } else {\n document.querySelector(\"#nav-service\").classList.remove(\"active\")\n gsap.set(\"nav\", { backgroundColor: \"transparent\" })\n gsap.to(\"#main\", {\n top: \"0%\",\n ease: \"power3.out\",\n duration: 1.2\n })\n gsap.to(\"#service-page\", {\n top: \"-100%\",\n ease: \"power3.out\",\n duration: 1.2,\n onComplete: () => {\n gsap.set(\"body\", { overflow: \"auto\" })\n // setTimeout(() => {\n // ScrollTrigger.refresh();\n // }, 200);\n }\n })\n }\n }\n serviceAnimation()\n\n function studioSection1Animation() {\n var tlh = gsap.timeline({\n scrollTrigger: {\n trigger: \"#section1-studio\",\n scroller: \"body\",\n start: \"top top\",\n end: \"top -100%\",\n pin: true,\n scrub: 1\n }\n })\n tlh\n .to(\".banner-studio\", {\n clipPath: \"polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)\"\n }, \"a\")\n .to(\".banner-studio img\", {\n objectPosition: \"50% 10%\"\n }, \"a\")\n .to(\"#toph\", {\n y: -70,\n opacity: 0,\n duration: .3\n }, \"a\")\n .to(\"#btmh\", {\n y: 70,\n opacity: 0,\n duration: .3\n }, \"a\")\n }\n studioSection1Animation()\n\n function brandListingAnimtion() {\n var clutter = \"\"\n clientData.forEach(function (data, i) {\n clutter += `
\n

${i + 1 > 9 ? i + 1 : `0${i + 1}`}.

\n

${data.name}

\n
`\n })\n document.querySelector(\"#brand-list\").innerHTML = clutter\n\n var showcaseImg = document.querySelector(\"#brand-showcase-img\")\n var brandLogo = document.querySelector(\"#brand-logo img\")\n document.querySelectorAll(\"#brand-listing .client\").forEach(function (client) {\n client.addEventListener(\"mouseenter\", function (e) {\n if (e.target.dataset.index) {\n var client = clientData[e.target.dataset.index];\n showcaseImg.src = client.image;\n brandLogo.src = client.logo;\n\n gsap.set(showcaseImg, { scale: 1 });\n\n gsap.fromTo(\n showcaseImg,\n { scale: 1.08, opacity: 0 },\n {\n scale: 1,\n opacity: 1,\n duration: 0.6,\n ease: \"power2.out\"\n }\n );\n }\n });\n\n client.addEventListener(\"mouseleave\", function (e) {\n gsap.to(showcaseImg, {\n opacity: 0,\n duration: 0.4,\n ease: \"power2.out\",\n });\n showcaseImg.src = \"/images/blank.png\";\n });\n });\n document.querySelector(\"#brand-listing\").addEventListener(\"mousemove\", function (e) {\n const scrollPosition = e.clientY - document.querySelector(\"#brand-listing\").getBoundingClientRect().top\n gsap.to(document.querySelector(\"#brand-logo\"), {\n top: scrollPosition,\n })\n })\n document.querySelector(\"#brand-list\").addEventListener(\"mouseenter\", function () {\n gsap.to(document.querySelector(\"#brand-logo\"), {\n opacity: 1,\n })\n })\n document.querySelector(\"#brand-list\").addEventListener(\"mouseleave\", function () {\n gsap.to(document.querySelector(\"#brand-logo\"), {\n opacity: 0,\n })\n })\n\n\n gsap.to(\"#brand-showcase\", {\n scrollTrigger: {\n trigger: \"#studio-brand\",\n scroller: \"body\",\n start: \"top top\",\n end: \"bottom bottom\",\n scrub: true,\n pin: \"#brand-showcase\",\n anticipatePin: 1, // Helps smoother transition\ninvalidateOnRefresh: true // Recalculates values on resize\n }\n });\n\n }\n brandListingAnimtion()\n\n function clientAnimeMobile() {\n var clientList = document.querySelectorAll(\".client\");\n var logoContainerImg = document.querySelector(\"#client-logo img\");\n\n function updateClientOpacity() {\n let closest = null;\n let closestDistance = Infinity;\n\n clientList.forEach((client, index) => {\n let rect = client.getBoundingClientRect();\n let distance = Math.abs(rect.top - window.innerHeight / 2); // Exactly center\n\n if (distance < closestDistance) {\n closestDistance = distance;\n closest = client;\n }\n });\n\n clientList.forEach((client) => {\n gsap.to(client, { opacity: client === closest ? 1 : 0.5, duration: 0.3 });\n });\n\n let closestIndex = Array.from(clientList).indexOf(closest);\n if (closestIndex !== -1) {\n logoContainerImg.src = clientData[closestIndex].logo;\n }\n }\n\n clientList.forEach((c, index) => {\n gsap.to(c, {\n scrollTrigger: {\n trigger: c,\n scroller: \"body\",\n start: \"top 50%\",\n end: \"top 40%\",\n scrub: 1,\n // markers: true, \n onUpdate: updateClientOpacity,\n }\n });\n });\n\n // Handle fading last client\n gsap.to(clientList[clientList.length - 1], {\n scrollTrigger: {\n trigger: clientList[clientList.length - 1],\n scroller: \"body\",\n start: \"bottom 90%\",\n end: \"bottom 20%\",\n scrub: 1,\n onLeave: () => gsap.to(clientList[clientList.length - 1], { opacity: 0.5, duration: 0.3 }),\n onLeaveBack: () => gsap.to(clientList[clientList.length - 1], { opacity: 0.5, duration: 0.3 }),\n }\n });\n\n ScrollTrigger.refresh(); // Ensures positioning is updated\n }\n\n\n\n if (window.innerWidth < 575) {\n clientAnimeMobile()\n }\n\n function memberAnimation() {\n gsap.from(\".m1\", {\n opacity: 1,\n y: 400,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top 45%\",\n end: \"top 35%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m2\", {\n opacity: 1,\n y: 600,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top 22%\",\n end: \"top 8%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m3\", {\n opacity: 1,\n y: 600,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top 30%\",\n end: \"top 20%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m4\", {\n opacity: 1,\n y: 1000,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top -45%\",\n end: \"top -55%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m5\", {\n opacity: 1,\n y: 600,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top -15%\",\n end: \"top -35%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m6\", {\n opacity: 1,\n y: 800,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top -30%\",\n end: \"top -40%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m7\", {\n opacity: 1,\n y: 800,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top -70%\",\n end: \"top -85%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m8\", {\n opacity: 1,\n y: 800,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top -105%\",\n end: \"top -120%\",\n scrub: 1,\n }\n });\n\n gsap.from(\".m9\", {\n opacity: 1,\n y: 600,\n duration: 2,\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top -85%\",\n end: \"top -100%\",\n scrub: 1,\n }\n });\n\n // gsap.from(\".m10\", {\n // opacity: 1,\n // y: 1000,\n // duration: 2,\n // scrollTrigger: {\n // trigger: \"#studio-2\",\n // scroller: \"body\",\n // start: \"top -160%\",\n // end: \"top -175%\",\n // scrub: 1,\n // }\n // });\n\n // gsap.from(\".m11\", {\n // opacity: 1,\n // y: 600,\n // duration: 2,\n // scrollTrigger: {\n // trigger: \"#studio-2\",\n // scroller: \"body\",\n // start: \"top -125%\",\n // end: \"top -140%\",\n // scrub: 1,\n // }\n // });\n\n // gsap.from(\".m12\", {\n // opacity: 1,\n // y: 800,\n // duration: 2,\n // scrollTrigger: {\n // trigger: \"#studio-2\",\n // scroller: \"body\",\n // start: \"top -170%\",\n // end: \"top -185%\",\n // scrub: 1,\n // }\n // });\n\n // gsap.from(\".m13\", {\n // opacity: 1,\n // y: 600,\n // duration: 2,\n // scrollTrigger: {\n // trigger: \"#studio-2\",\n // scroller: \"body\",\n // start: \"top -210%\",\n // end: \"top -230%\",\n // scrub: 1,\n // }\n // });\n\n gsap.to(\"#studio-contact\", {\n opacity: 1,\n duration: 1,\n scrollTrigger: {\n trigger: \"#studio-contact\",\n scroller: \"body\",\n start: \"top 30%\",\n end: \"top 5%\",\n scrub: true,\n }\n });\n\n gsap.to(\"#studio-contact\", {\n scrollTrigger: {\n trigger: \"#studio-2\",\n scroller: \"body\",\n start: \"top top\",\n end: \"100% 40%\",\n scrub: true,\n pin: \"#studio-contact\",\n anticipatePin: 1, // Helps smoother transition\n invalidateOnRefresh: true // Recalculates values on resize\n }\n });\n\n\n\n\n }\n\n if (window.innerWidth > 991) {\n memberAnimation()\n }\n\n\n function footerAnimation() {\n\n const updateTime = () => {\n const date = new Date();\n let hours = date.getHours();\n let minutes = date.getMinutes();\n const ampm = hours >= 12 ? 'PM' : 'AM';\n\n hours = hours % 12 || 12; // Convert 24-hour to 12-hour format\n minutes = minutes.toString().padStart(2, '0'); // Ensure two-digit minutes\n\n const timeString = `${hours}:${minutes} ${ampm}`;\n\n document.querySelector(\"#time\").textContent = timeString; // Update the DOM\n\n return timeString; // Return the formatted time string\n };\n updateTime();\n setInterval(updateTime, 60000);\n\n if (window.innerWidth > 991) {\n var ft = gsap.timeline({\n scrollTrigger: {\n trigger: \"footer\",\n scroller: \"body\",\n start: \"top 0%\",\n end: \"top -80%\",\n scrub: 1,\n pin: true,\n anticipatePin: 1, // Helps smoother transition\n invalidateOnRefresh: true // Recalculates values on resize\n }\n })\n\n ft\n .to(\".footer-layer\", {\n opacity: .9,\n }, \"a\")\n .to(\"#footer-content\", {\n transform: \"translateY(0%)\",\n delay: .5\n }, \"a\")\n }\n\n\n\n }\n footerAnimation()\n\n\n\n\n\n\n var isMenu = false;\n document.querySelector(\"#menu-button\").addEventListener(\"click\", function () {\n if (isMenuService) {\n isService = false;\n openService()\n document.querySelector(\"#menu-button\").textContent = \"close\"\n isMenuService = false;\n return;\n }\n if (!isMenu) {\n gsap.set(\"#menu-container\", { display: \"flex\" })\n document.querySelector(\"#menu-button\").textContent = \"close\"\n var tl = gsap.timeline()\n tl\n .to(\"#menu-container\", {\n opacity: 1,\n duration: 0.5\n })\n .from(\".menu-top, .menu-btm\", {\n y: \"30\",\n opacity: 0,\n duration: 0.3,\n stagger: 0.1\n })\n isMenu = true;\n }\n else {\n gsap.to(\"#menu-container\", {\n opacity: 0,\n duration: 0.5,\n onComplete: function () {\n gsap.set(\"#menu-container\", { display: \"none\" })\n document.querySelector(\"#menu-button\").textContent = \"menu\"\n }\n })\n isMenu = false;\n }\n })\n\n document.querySelector(\"#menu-service\").addEventListener(\"click\", function () {\n if (!isMenuService) {\n document.querySelector(\"#menu-button\").textContent = \"menu\"\n isMenuService = true;\n }\n })\n\n\n})"],"names":["smoothScroll","lenis","t","raf","time","clientData","homeLoader","loader","textEffectAnimation","element","clutter2","letter","elem","e","serviceListingAnimation","serviceDets","textEffect","text","isMenuService","isService","serviceAnimation","btn","openService","studioSection1Animation","tlh","brandListingAnimtion","clutter","data","i","showcaseImg","brandLogo","client","scrollPosition","clientAnimeMobile","clientList","logoContainerImg","updateClientOpacity","closest","closestDistance","index","rect","distance","closestIndex","c","memberAnimation","footerAnimation","updateTime","date","hours","minutes","ampm","timeString","ft","isMenu","tl"],"mappings":"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"}