{"version":3,"file":"PageAnimations.BqGUIK1b.mjs","names":[],"sources":["https:/framerusercontent.com/modules/2XBAhQNbdqRrVx0xkaks/kjo4h1rr5qOLDTZYvaJG/PageAnimations.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls}from\"framer\";import{useEffect}from\"react\";/**\n * PageAnimations — Apple-style scroll-reveal with staggered children.\n * Uses IntersectionObserver only (no scroll listeners).\n *\n * Sections get a fade-up reveal when they enter the viewport.\n * Direct children of each section get staggered delays (80ms apart)\n * for the Apple cascading entrance effect.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function PageAnimations({style}){useEffect(()=>{const styleId=\"page-animations-css\";if(document.getElementById(styleId))return;const css=document.createElement(\"style\");css.id=styleId;css.textContent=`\n            .sr-hidden {\n                opacity: 0 !important;\n                transform: translateY(20px) !important;\n            }\n            .sr-visible {\n                opacity: 1 !important;\n                transform: translateY(0) !important;\n                transition: opacity 600ms cubic-bezier(0.33, 1, 0.68, 1),\n                            transform 600ms cubic-bezier(0.33, 1, 0.68, 1) !important;\n            }\n            .sr-visible-d1 {\n                opacity: 1 !important;\n                transform: translateY(0) !important;\n                transition: opacity 600ms cubic-bezier(0.33, 1, 0.68, 1) 80ms,\n                            transform 600ms cubic-bezier(0.33, 1, 0.68, 1) 80ms !important;\n            }\n            .sr-visible-d2 {\n                opacity: 1 !important;\n                transform: translateY(0) !important;\n                transition: opacity 600ms cubic-bezier(0.33, 1, 0.68, 1) 160ms,\n                            transform 600ms cubic-bezier(0.33, 1, 0.68, 1) 160ms !important;\n            }\n            .sr-visible-d3 {\n                opacity: 1 !important;\n                transform: translateY(0) !important;\n                transition: opacity 600ms cubic-bezier(0.33, 1, 0.68, 1) 240ms,\n                            transform 600ms cubic-bezier(0.33, 1, 0.68, 1) 240ms !important;\n            }\n            .sr-visible-d4 {\n                opacity: 1 !important;\n                transform: translateY(0) !important;\n                transition: opacity 600ms cubic-bezier(0.33, 1, 0.68, 1) 320ms,\n                            transform 600ms cubic-bezier(0.33, 1, 0.68, 1) 320ms !important;\n            }\n        `;document.head.appendChild(css);const heroEl=document.querySelector('[data-framer-name=\"hero\"]');if(!heroEl)return;const pageWrapper=heroEl.parentElement;if(!pageWrapper)return;// Hero entrance — staggered fade-in on mount\nconst heroInner=heroEl.querySelector(\":scope > div > div\");if(heroInner){const items=Array.from(heroInner.children);items.forEach(item=>{item.style.opacity=\"0\";item.style.transform=\"translateY(20px)\";});requestAnimationFrame(()=>{items.forEach((item,i)=>{item.style.transition=`opacity 600ms cubic-bezier(0.33,1,0.68,1) ${i*120}ms, transform 600ms cubic-bezier(0.33,1,0.68,1) ${i*120}ms`;item.style.opacity=\"1\";item.style.transform=\"translateY(0)\";});});}// Collect all sections after the hero\nconst allChildren=Array.from(pageWrapper.children);const delayClasses=[\"sr-visible\",\"sr-visible-d1\",\"sr-visible-d2\",\"sr-visible-d3\",\"sr-visible-d4\"];// Map from section element to its direct children for staggering\nconst sectionChildren=new Map;for(let i=2;i<allChildren.length;i++){const section=allChildren[i];if(section.offsetHeight<10)continue;// Skip the hero\nif(section.getAttribute(\"data-framer-name\")===\"hero\")continue;// Use the section's own direct children (Framer renders them directly)\nconst children=Array.from(section.children).filter(child=>child instanceof HTMLElement&&child.offsetHeight>0);if(children.length>1){// Multiple children — stagger them individually\nsectionChildren.set(section,children);children.forEach(child=>child.classList.add(\"sr-hidden\"));}else{// Single child — animate the section as a whole\nsection.classList.add(\"sr-hidden\");}}const observer=new IntersectionObserver(entries=>{for(const entry of entries){if(!entry.isIntersecting)continue;const el=entry.target;// Check if this is a section with staggered children\nconst children=sectionChildren.get(el);if(children){children.forEach((child,i)=>{child.classList.remove(\"sr-hidden\");child.classList.add(delayClasses[Math.min(i,delayClasses.length-1)]);});}else{el.classList.remove(\"sr-hidden\");el.classList.add(\"sr-visible\");}observer.unobserve(el);}},{threshold:.05,rootMargin:\"-10px 0px\"});// Observe all sections\nfor(let i=2;i<allChildren.length;i++){const section=allChildren[i];if(section.offsetHeight<10)continue;if(section.getAttribute(\"data-framer-name\")===\"hero\")continue;observer.observe(section);}return()=>{observer.disconnect();const el=document.getElementById(styleId);if(el)el.remove();};},[]);return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:1,height:1,position:\"absolute\",pointerEvents:\"none\",opacity:0}});}addPropertyControls(PageAnimations,{});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PageAnimations\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageAnimations.map"],"mappings":"mKAUG,SAAwB,EAAe,CAAC,SAAO,CA4CmP,OA5ClP,MAAc,CAAC,IAAM,EAAQ,sBAAsB,GAAG,SAAS,eAAe,EAAQ,CAAC,OAAO,IAAM,EAAI,SAAS,cAAc,QAAQ,CAAC,EAAI,GAAG,EAAQ,EAAI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmChN,SAAS,KAAK,YAAY,EAAI,CAAC,IAAM,EAAO,SAAS,cAAc,4BAA4B,CAAC,GAAG,CAAC,EAAO,OAAO,IAAM,EAAY,EAAO,cAAc,GAAG,CAAC,EAAY,OACnL,IAAM,EAAU,EAAO,cAAc,qBAAqB,CAAC,GAAG,EAAU,CAAC,IAAM,EAAM,MAAM,KAAK,EAAU,SAAS,CAAC,EAAM,QAAQ,GAAM,CAAC,EAAK,MAAM,QAAQ,IAAI,EAAK,MAAM,UAAU,oBAAqB,CAAC,0BAA0B,CAAC,EAAM,SAAS,EAAK,IAAI,CAAC,EAAK,MAAM,WAAW,6CAA6C,EAAE,IAAI,kDAAkD,EAAE,IAAI,IAAI,EAAK,MAAM,QAAQ,IAAI,EAAK,MAAM,UAAU,iBAAkB,EAAG,CACrc,IAAM,EAAY,MAAM,KAAK,EAAY,SAAS,CAAO,EAAa,CAAC,aAAa,gBAAgB,gBAAgB,gBAAgB,gBAAgB,CAC9I,EAAgB,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAY,OAAO,IAAI,CAAC,IAAM,EAAQ,EAAY,GAC9F,GADoG,EAAQ,aAAa,IACtH,EAAQ,aAAa,mBAAmB,GAAG,OAAO,SACrD,IAAM,EAAS,MAAM,KAAK,EAAQ,SAAS,CAAC,OAAO,GAAO,aAAiB,aAAa,EAAM,aAAa,EAAE,CAAI,EAAS,OAAO,GACjI,EAAgB,IAAI,EAAQ,EAAS,CAAC,EAAS,QAAQ,GAAO,EAAM,UAAU,IAAI,YAAY,CAAC,EAC/F,EAAQ,UAAU,IAAI,YAAY,CAAG,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,IAAI,IAAM,KAAS,EAAQ,CAAC,GAAG,CAAC,EAAM,eAAe,SAAS,IAAM,EAAG,EAAM,OAC9J,EAAS,EAAgB,IAAI,EAAG,CAAI,EAAU,EAAS,SAAS,EAAM,IAAI,CAAC,EAAM,UAAU,OAAO,YAAY,CAAC,EAAM,UAAU,IAAI,EAAa,KAAK,IAAI,EAAE,EAAa,OAAO,EAAE,EAAE,EAAG,EAAO,EAAG,UAAU,OAAO,YAAY,CAAC,EAAG,UAAU,IAAI,aAAa,EAAE,EAAS,UAAU,EAAG,GAAI,CAAC,UAAU,IAAI,WAAW,YAAY,CAAC,CACrU,IAAI,IAAI,EAAE,EAAE,EAAE,EAAY,OAAO,IAAI,CAAC,IAAM,EAAQ,EAAY,GAAM,EAAQ,aAAa,IAAe,EAAQ,aAAa,mBAAmB,GAAG,QAAgB,EAAS,QAAQ,EAAQ,CAAE,UAAU,CAAC,EAAS,YAAY,CAAC,IAAM,EAAG,SAAS,eAAe,EAAQ,CAAI,GAAG,EAAG,QAAQ,GAAK,EAAE,CAAC,CAAqB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,EAAE,OAAO,EAAE,SAAS,WAAW,cAAc,OAAO,QAAQ,EAAE,CAAC,CAAC,kBAtDhX,IAAwC,IAA6B,CAsD6S,EAAoB,EAAe,EAAE,CAAC"}