{"version":3,"file":"VortexText.CWH36wH0.mjs","names":["useRef","useRef","useState","getFontCSS","useState","useMemo","url","useId","getFontCSS","useRef","p","useRef","N","p","useRef","useState","useState","W","useRef","p"],"sources":["https:/framerusercontent.com/modules/SXoDO7EwYNFhpu1ON7Xg/QbSiYs7OTAywUGMWsnNt/ScrollIcon.js","https:/framerusercontent.com/modules/2mNHPnrC08P0hWBlACPa/LzHt3WU9Wsj4YS8nIfQ0/CustomCursorFollow.js","https:/framerusercontent.com/modules/5LMVi2gnOVW8w9VWIG6G/JTzusnS2ulVepVIChNcN/GateController.js","https:/framerusercontent.com/modules/taCb4irgLRJ9FQZFaKn2/KANZWU13IhgNM5L5qBFK/HelloHandwriting.js","https:/framerusercontent.com/modules/Jw4Ce04LrugXQxlBCM6J/uZfOeKmkdxpL1okLR9PE/LinkHover.js","https:/framerusercontent.com/modules/v3bd1Flc5sqYww2hSC7I/vTux0M9M48JzCabvFBKY/LiquidDIstortion.js","https:/framerusercontent.com/modules/tZSwZBQ2nS48S89EABOB/vHxQRbUKbDFDnJJlykIx/RevealText.js","https:/framerusercontent.com/modules/w9tsNu7KdAY8dHbuEl2p/14yrgr9QmNVLfwedmFgG/ScrollFramesWebGL_1.js","https:/framerusercontent.com/modules/9QtOQGR44n7kWge7rVv0/vkeJ2amZfSqnpD80b279/SectionIndicator.js","https:/framerusercontent.com/modules/CiYoBKMFItOiZR3nbK4M/DLcyhvPJQ7AKoLHJelgW/SmoothScroll.js","https:/framerusercontent.com/modules/HOXSa2XeI01iQm3a1jEN/PWXHts0IAZT35hY6gqnR/VortexText.js"],"sourcesContent":["// Slick scroll icon with animated bounce effect\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function ScrollCue(props){const{iconColor,backgroundColor,borderColor,borderWidth,borderRadius,animationSpeed,pauseDuration,mouseWidth,mouseHeight,dotSize,style}=props;const size=Math.min(mouseWidth,mouseHeight);const animationDistance=size*.25;return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:mouseWidth,height:mouseHeight,border:`${borderWidth}px solid ${borderColor}`,borderRadius:borderRadius,backgroundColor:backgroundColor,position:\"relative\",display:\"flex\",justifyContent:\"center\",paddingTop:size*.25},children:/*#__PURE__*/_jsx(motion.div,{style:{width:dotSize,height:dotSize,borderRadius:\"50%\",backgroundColor:iconColor},animate:{y:[0,animationDistance,0]},transition:{duration:animationSpeed,repeat:Infinity,ease:\"easeInOut\",repeatDelay:pauseDuration}})})});}addPropertyControls(ScrollCue,{mouseWidth:{type:ControlType.Number,title:\"Width\",defaultValue:30,min:10,max:100,step:1},mouseHeight:{type:ControlType.Number,title:\"Height\",defaultValue:50,min:20,max:150,step:1},dotSize:{type:ControlType.Number,title:\"Circle Size\",defaultValue:6,min:2,max:20,step:1},iconColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#000000\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#000000\"},borderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:2,min:1,max:5,step:1},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:20,min:0,max:50,step:1},animationSpeed:{type:ControlType.Number,title:\"Animation Speed\",defaultValue:1.5,min:.5,max:3,step:.1,unit:\"s\"},pauseDuration:{type:ControlType.Number,title:\"Pause Duration\",defaultValue:.5,min:0,max:3,step:.1,unit:\"s\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollCue\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollIcon.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{motion,useSpring,useMotionValue}from\"framer-motion\";import{RenderTarget,addPropertyControls}from\"framer\";// CustomCursorFollow V11 — Engraving-style hand cursors, 88×88px\nconst HAND_UP=\"data:image/png;base64,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\";const HAND_DOWN=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABYCAYAAABxlTA0AAAetElEQVR42u2daZBkV3Xnf/e+/WVm5Vr72tWqrl7UUreQtSLREjIIwtaGaeyJmJnw4BkvEdgzDg+LjUOMwzZf8CDwDIIwlhG2J3ALkACDWEx0I7SAHGqkltSrurqqqyqra8nKPfPl2+58yFK7Tdge2THdokSfiPxQryJfvvzneef8zzn/ex9ctst22S7bZfupNqWU+OdeF/7//vvvlxcev2z/IqAH9YMHDxqllPy3neN+ueH+86/u3/922Ov+Q4jXAVwphIh/7JhdLBaTTdEUKZESNm37mUwmBDwhRKiUck+fPp10HMd2HKeatp0XQnT+rZ/3hgX41S/7yitLffk++u52s7krUtF2GbMdITJhFAohIoUiIISQfhhGNUXUNgwjHwWqRyhlxEK0hBBVJeJZYnUkDCNPCHzHcWpCyLVO6PdYppYX6KurjfIXdo7sLCmlhBBCvaEB/p+j42vfAXbJHxkAAAAASUVORK5CYII=\";export default function CustomCursorFollow(){const mouseX=useMotionValue(-200);const mouseY=useMotionValue(-200);const springX=useSpring(mouseX,{stiffness:500,damping:28});const springY=useSpring(mouseY,{stiffness:500,damping:28});const wrapRef=useRef(null);const lensRef=useRef(null);const triRef=useRef(null);const ringRef=useRef(null);const dotRef=useRef(null);const handRef=useRef(null);const imgRef=useRef(null);const stateRef=useRef(\"PlayNormal\");const playingRef=useRef(false);const wheelTimer=useRef(0);const apply=s=>{stateRef.current=s;const lens=lensRef.current;const tri=triRef.current;const ring=ringRef.current;const dot=dotRef.current;const hand=handRef.current;const img=imgRef.current;if(!lens||!tri||!ring||!dot||!hand)return;const isPlay=s===\"PlayNormal\"||s===\"PlayClick\";const isHand=s===\"Up\"||s===\"Down\";lens.style.opacity=isPlay?\"1\":\"0\";tri.style.borderLeftColor=s===\"PlayClick\"?\"#fff\":\"#418B82\";ring.style.opacity=!isPlay&&!isHand?\"1\":\"0\";const rs=s===\"Hover\"?141:115;ring.style.width=rs+\"px\";ring.style.height=rs+\"px\";ring.style.marginLeft=-(rs/2)+\"px\";ring.style.marginTop=-(rs/2)+\"px\";dot.style.opacity=!isPlay&&!isHand?\"1\":\"0\";const ds=s===\"Hover\"?23:38;dot.style.width=ds+\"px\";dot.style.height=ds+\"px\";dot.style.marginLeft=-(ds/2)+\"px\";dot.style.marginTop=-(ds/2)+\"px\";hand.style.opacity=isHand?\"1\":\"0\";if(img)img.src=s===\"Down\"?HAND_DOWN:HAND_UP;};useEffect(()=>{if(typeof window===\"undefined\")return;if(RenderTarget.current()===RenderTarget.canvas)return;if(!document.getElementById(\"gg-cursor-css\")){const el=document.createElement(\"style\");el.id=\"gg-cursor-css\";el.textContent=[\"* { cursor: none !important; }\",\"html, body { scrollbar-width: none; -ms-overflow-style: none; }\",\"html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; }\"].join(\"\\n\");document.head.appendChild(el);}if(window.matchMedia(\"(pointer: coarse)\").matches){if(wrapRef.current)wrapRef.current.style.display=\"none\";return;}let skip=false;try{skip=!!sessionStorage.getItem(\"gg-loaded\");}catch(_){}if(skip){playingRef.current=true;if(wrapRef.current)wrapRef.current.style.opacity=\"1\";apply(\"Normal\");}const onMove=e=>{mouseX.set(e.clientX);mouseY.set(e.clientY);if(!playingRef.current)return;const hit=e.target?.closest?.(\"a, button, [role='button'], [data-hover='true']\");const cur=stateRef.current;if(cur!==\"Up\"&&cur!==\"Down\")apply(hit?\"Hover\":\"Normal\");};const onDown=()=>{if(!playingRef.current)apply(\"PlayClick\");};const onWheel=e=>{if(!playingRef.current)return;apply(e.deltaY<0?\"Up\":\"Down\");clearTimeout(wheelTimer.current);wheelTimer.current=setTimeout(()=>apply(\"Normal\"),600);};const onPlay=()=>{playingRef.current=true;apply(\"Normal\");if(wrapRef.current)wrapRef.current.style.opacity=\"1\";};let showPlayFn=null;let fallbackId=null;if(!skip){showPlayFn=()=>{if(wrapRef.current)wrapRef.current.style.opacity=\"1\";apply(\"PlayNormal\");};window.addEventListener(\"loaderComplete\",showPlayFn,{once:true});fallbackId=setTimeout(showPlayFn,5e3);}window.addEventListener(\"mousemove\",onMove);window.addEventListener(\"mousedown\",onDown);window.addEventListener(\"wheel\",onWheel,{passive:true});window.addEventListener(\"gg:play\",onPlay);return()=>{window.removeEventListener(\"mousemove\",onMove);window.removeEventListener(\"mousedown\",onDown);window.removeEventListener(\"wheel\",onWheel);window.removeEventListener(\"gg:play\",onPlay);clearTimeout(wheelTimer.current);if(showPlayFn)window.removeEventListener(\"loaderComplete\",showPlayFn);if(fallbackId)clearTimeout(fallbackId);const css=document.getElementById(\"gg-cursor-css\");if(css)css.remove();};},[]);if(RenderTarget.current()===RenderTarget.canvas)return null;return /*#__PURE__*/_jsx(\"div\",{ref:wrapRef,style:{position:\"fixed\",inset:0,pointerEvents:\"none\",zIndex:100001,opacity:0,transition:\"opacity 0.4s ease\"},children:/*#__PURE__*/_jsxs(motion.div,{style:{position:\"fixed\",left:0,top:0,x:springX,y:springY,pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:lensRef,style:{position:\"absolute\",width:147,height:147,marginLeft:-73.5,marginTop:-73.5,borderRadius:\"50%\",background:\"rgba(65,139,130,0.07)\",backdropFilter:\"blur(7.85px)\",WebkitBackdropFilter:\"blur(7.85px)\",border:\"1px solid rgba(65,139,130,0.15)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"opacity 0.25s ease\",opacity:0},children:/*#__PURE__*/_jsx(\"div\",{ref:triRef,style:{width:0,height:0,marginLeft:8,borderTop:\"14px solid transparent\",borderBottom:\"14px solid transparent\",borderLeft:\"24px solid #418B82\",transition:\"border-left-color 0.1s\"}})}),/*#__PURE__*/_jsx(\"div\",{ref:ringRef,style:{position:\"absolute\",width:115,height:115,marginLeft:-57.5,marginTop:-57.5,borderRadius:\"50%\",border:\"1.5px solid rgba(45,138,94,0.5)\",transition:\"opacity 0.2s ease, width 0.25s ease, height 0.25s ease, margin 0.25s ease\",opacity:0}}),/*#__PURE__*/_jsx(\"div\",{ref:dotRef,style:{position:\"absolute\",width:38,height:38,marginLeft:-19,marginTop:-19,borderRadius:\"50%\",backgroundColor:\"#40c387\",transition:\"opacity 0.15s ease, width 0.25s ease, height 0.25s ease, margin 0.25s ease\",opacity:0}}),/*#__PURE__*/_jsx(\"div\",{ref:handRef,style:{position:\"absolute\",width:88,height:88,marginLeft:-44,marginTop:-44,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"opacity 0.2s ease\",opacity:0},children:/*#__PURE__*/_jsx(\"img\",{ref:imgRef,src:HAND_UP,width:88,height:88,style:{objectFit:\"contain\",userSelect:\"none\",pointerEvents:\"none\",display:\"block\"},draggable:false})})]})});}addPropertyControls(CustomCursorFollow,{});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomCursorFollow\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CustomCursorFollow.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";/**\n * GateController V4 — No gate, no auto-play + mobile responsive CSS\n *\n * V4 additions:\n *   - Injects @media responsive CSS so mobile/tablet breakpoints look correct\n *     without needing empty Phone/Tablet frames populated in the Framer canvas\n *   - Section02 flips to vertical on phones\n *   - Section01 padding tightened on phones\n *   - Topo badge strip hidden on phones (saves header height)\n *   - Section08 bottom padding reduced on phones\n *\n * Gate/autoplay (unchanged from V3):\n *   Dispatches gg:play (autoplay: false) + gg:autoplayDone immediately after\n *   loaderComplete, with no click requirement or cinematic sequence.\n */const RESPONSIVE_CSS=`\n  @media (max-width: 809px) {\n\n    /* ── Topo: hide achievement badges row — keeps header lean on phone ─ */\n    [data-framer-name=\"Topo\"] > *:last-child {\n      display: none !important;\n    }\n\n    /* ── Section01: tighter horizontal padding so VortexText has room ── */\n    [data-framer-name=\"Section01\"] {\n      padding-left:  24px !important;\n      padding-right: 24px !important;\n    }\n\n    /* ── Section02: flip horizontal pair to vertical stack ─────────── */\n    [data-framer-name=\"Section02\"] {\n      flex-direction: column !important;\n      gap:            24px  !important;\n      align-items:    flex-start !important;\n    }\n    /* Each RevealText in Section02 should fill the full width */\n    [data-framer-name=\"Section02\"] > * {\n      width:     100% !important;\n      max-width: 100% !important;\n    }\n\n    /* ── Section08: reduce bottom padding so text stays in viewport ─── */\n    [data-framer-name=\"Section08\"] {\n      padding-bottom: 180px !important;\n    }\n\n    /* ── Section08 text stack: full width ──────────────────────────── */\n    [data-framer-name=\"Section08\"] > * {\n      width:     100% !important;\n      max-width: 100% !important;\n    }\n  }\n`;export default function GateController(){useEffect(()=>{if(typeof window===\"undefined\")return;// ── Inject responsive CSS (idempotent) ───────────────────────────\nif(!document.getElementById(\"gg-responsive-css\")){const style=document.createElement(\"style\");style.id=\"gg-responsive-css\";style.textContent=RESPONSIVE_CSS;document.head.appendChild(style);}window.__ggState={isPlaying:true,scrollVelocity:0,...window.__ggState};const dispatch=()=>{try{sessionStorage.setItem(\"gg-loaded\",\"1\");}catch(_){}window.__ggState.isPlaying=true;setTimeout(()=>{window.dispatchEvent(new CustomEvent(\"gg:play\",{detail:{autoplay:false}}));window.dispatchEvent(new CustomEvent(\"gg:autoplayDone\"));},100);};// Second visit: dispatch immediately\nlet skip=false;try{skip=!!sessionStorage.getItem(\"gg-loaded\");}catch(_){}if(skip){dispatch();return;}// First visit: wait for loader, dispatch after it completes\nwindow.addEventListener(\"loaderComplete\",dispatch,{once:true});const fallback=setTimeout(dispatch,6e3);return()=>{clearTimeout(fallback);window.removeEventListener(\"loaderComplete\",dispatch);};},[]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",width:0,height:0,pointerEvents:\"none\",opacity:0},\"aria-hidden\":\"true\"});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GateController\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GateController.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";/**\n * HelloHandwriting V2.4 — Play-on-settle\n *\n * Entry behaviour (refined):\n *   While scrolling into section (progress 0→1): canvas stays at frame 0\n *   Once section is fully settled (progress = 1): Lottie.play() at configured speed\n *   On complete: contemplation pause → erase → scrollToSection(next)\n *   On leave: stop, reset to frame 0, ready for re-entry\n *\n * No more scroll-driven frame — speed prop is respected.\n */const LOTTIE_CDN=\"https://cdnjs.cloudflare.com/ajax/libs/lottie-web/5.12.2/lottie.min.js\";const ANIMATION_URL=\"https://files.catbox.moe/ft0jws.json\";const CROPPED_VIEWBOX=\"60 170 380 150\";const SECTION_IDX=6// Section-07, 0-indexed\n;let lottieLoadPromise=null;function loadLottie(){if(window.lottie)return Promise.resolve(window.lottie);if(lottieLoadPromise)return lottieLoadPromise;lottieLoadPromise=new Promise((resolve,reject)=>{const script=document.createElement(\"script\");script.src=LOTTIE_CDN;script.async=true;script.onload=()=>resolve(window.lottie);script.onerror=reject;document.head.appendChild(script);});return lottieLoadPromise;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function HelloHandwriting(props){const{speed=1.3,pauseMs=1800,eraseMs=1e3}=props;const containerRef=useRef(null);const animRef=useRef(null);const[loaderDone,setLoaderDone]=useState(false);// State refs — no re-render needed\nconst drawnRef=useRef(false)// Lottie reached last frame\n;const playingRef=useRef(false)// Lottie.play() in progress\n;const contemplatedRef=useRef(false)// contemplation timer started\n;const autoEraseRef=useRef(false)// erase RAF active\n;const pauseTimerRef=useRef(null);const eraseRafRef=useRef(0);// ── Wait for LoadingScreen ────────────────────────────────────────────\nuseEffect(()=>{if(typeof window===\"undefined\")return;try{if(sessionStorage.getItem(\"gg-loaded\")){setLoaderDone(true);return;}}catch(_){}const onDone=()=>setLoaderDone(true);window.addEventListener(\"loaderComplete\",onDone);return()=>window.removeEventListener(\"loaderComplete\",onDone);},[]);// ── Load Lottie + wire DOMLoaded + complete ───────────────────────────\nuseEffect(()=>{if(!loaderDone||typeof window===\"undefined\")return;const container=containerRef.current;if(!container)return;let anim=null;let cancelled=false;loadLottie().then(lottie=>{if(cancelled||!container)return;if(animRef.current){animRef.current.destroy();animRef.current=null;}anim=lottie.loadAnimation({container,renderer:\"svg\",loop:false,autoplay:false,path:ANIMATION_URL,rendererSettings:{viewBoxSize:CROPPED_VIEWBOX,preserveAspectRatio:\"xMidYMid meet\"}});anim.setSpeed(speed);animRef.current=anim;// ── DOMLoaded: sync initial frame to current scroll state ──\nanim.addEventListener(\"DOMLoaded\",()=>{const api=window.__smoothScroll;if(!api){anim.goToAndStop(0,true);return;}if(api.currentSection===SECTION_IDX){// Hard refresh on this section — show fully drawn, skip draw\nanim.goToAndStop(anim.totalFrames-1,true);drawnRef.current=true;}else{anim.goToAndStop(0,true);}});// ── complete: Lottie finished drawing → start contemplation ──\nanim.addEventListener(\"complete\",()=>{if(!playingRef.current)return;playingRef.current=false;drawnRef.current=true;// trigger contemplation via the shared startContemplation fn\n// (dispatching a synthetic settled event is cleanest)\nwindow.dispatchEvent(new CustomEvent(\"gg:helloDrawn\"));});});return()=>{cancelled=true;if(anim)anim.destroy();animRef.current=null;};},[loaderDone,speed]);// ── Section tracking + contemplation choreography ─────────────────────\nuseEffect(()=>{if(typeof window===\"undefined\")return;let autoplayDone=false;try{if(sessionStorage.getItem(\"gg-loaded\"))autoplayDone=true;}catch(_){}const onAutoplayDone=()=>{autoplayDone=true;};window.addEventListener(\"gg:autoplayDone\",onAutoplayDone,{once:true});// ── Helpers ───────────────────────────────────────────────────────\nconst cancelAutonomous=()=>{if(pauseTimerRef.current){clearTimeout(pauseTimerRef.current);pauseTimerRef.current=null;}cancelAnimationFrame(eraseRafRef.current);autoEraseRef.current=false;contemplatedRef.current=false;};const startContemplation=()=>{if(!autoplayDone)return;if(contemplatedRef.current)return;// already counting\ncontemplatedRef.current=true;cancelAutonomous()// clear old timer first\n;contemplatedRef.current=true// re-set after cancel cleared it\n;pauseTimerRef.current=setTimeout(()=>{autoEraseRef.current=true;const anim=animRef.current;if(!anim)return;const lastFrame=anim.totalFrames-1;const t0=performance.now();const eraseStep=now=>{if(!autoEraseRef.current)return;const t=Math.min((now-t0)/eraseMs,1);const et=t*t// ease-in — feels intentional\n;const frame=Math.max(Math.floor((1-et)*lastFrame),0);anim.goToAndStop(frame,true);if(t<1){eraseRafRef.current=requestAnimationFrame(eraseStep);}else{autoEraseRef.current=false;drawnRef.current=false;contemplatedRef.current=false;const api=window.__smoothScroll;if(api)api.scrollToSection(SECTION_IDX+1);}};eraseRafRef.current=requestAnimationFrame(eraseStep);},pauseMs);};// Lottie signals it finished drawing\nconst onHelloDrawn=()=>startContemplation();window.addEventListener(\"gg:helloDrawn\",onHelloDrawn);// ── Main scroll handler ───────────────────────────────────────────\nconst onSectionChange=e=>{const{from,to,progress}=e.detail;const anim=animRef.current;if(to===SECTION_IDX){// Cancel any active erase if user scrolled back\nif(autoEraseRef.current){cancelAutonomous();if(anim)anim.goToAndStop(0,true);drawnRef.current=false;playingRef.current=false;}if(progress>=1){if(!anim)return;if(!drawnRef.current&&!playingRef.current){// Section fully settled and not yet drawn — start playing\nplayingRef.current=true;anim.goToAndStop(0,true);anim.play();}else if(drawnRef.current&&!contemplatedRef.current){// Already drawn (e.g. hard refresh) — jump to contemplation\nstartContemplation();}}// progress < 1: still scrolling in — stay at frame 0, wait for settle\n}else if(from===SECTION_IDX){// Leaving section — cancel everything and reset canvas\ncancelAutonomous();if(anim){if(playingRef.current)anim.stop();anim.goToAndStop(0,true);}drawnRef.current=false;playingRef.current=false;}};window.addEventListener(\"gg:sectionChange\",onSectionChange);return()=>{window.removeEventListener(\"gg:sectionChange\",onSectionChange);window.removeEventListener(\"gg:autoplayDone\",onAutoplayDone);window.removeEventListener(\"gg:helloDrawn\",onHelloDrawn);cancelAutonomous();};},[pauseMs,eraseMs]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...props.style,width:\"100%\",height:\"100%\",minHeight:80,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",contain:\"content\"}});}addPropertyControls(HelloHandwriting,{speed:{type:ControlType.Number,title:\"Draw Speed\",defaultValue:1.3,min:.1,max:5,step:.1},pauseMs:{type:ControlType.Number,title:\"Pause (ms)\",description:\"Contemplation time after fully drawn\",defaultValue:1800,min:500,max:8e3,step:100},eraseMs:{type:ControlType.Number,title:\"Erase (ms)\",description:\"Duration of autonomous erase animation\",defaultValue:1e3,min:300,max:3e3,step:100}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HelloHandwriting\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HelloHandwriting.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useMemo}from\"react\";function getFontCSS(font){if(!font){return{fontFamily:\"Inter, sans-serif\",fontSize:16,fontWeight:500,lineHeight:\"1.2em\",letterSpacing:\"0.05em\"};}const css={};if(font.fontFamily)css.fontFamily=font.fontFamily;if(font.fontSize)css.fontSize=font.fontSize;if(font.fontWeight)css.fontWeight=font.fontWeight;if(font.fontStyle)css.fontStyle=font.fontStyle;if(font.lineHeight)css.lineHeight=font.lineHeight;if(font.letterSpacing)css.letterSpacing=font.letterSpacing;return css;}export default function LinkHover(props){const{text=\"LINK\",font,color=\"#000000\",hoverColor=\"#BFE500\",url=\"#\",openInNewTab=false,staggerMs=20,duration=400}=props;const[hovered,setHovered]=useState(false);const fontCSS=getFontCSS(font);const EASING=\"cubic-bezier(0.8, 0, 0.1, 1)\";const chars=useMemo(()=>text.split(\"\"),[text]);return /*#__PURE__*/_jsx(\"a\",{href:url,target:openInNewTab?\"_blank\":\"_self\",rel:openInNewTab?\"noopener noreferrer\":undefined,onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),style:{...props.style,display:\"inline-flex\",alignItems:\"flex-start\",position:\"relative\",cursor:\"pointer\",whiteSpace:\"nowrap\",width:\"max-content\",userSelect:\"none\",textDecoration:\"none\",fontFamily:fontCSS.fontFamily,fontSize:fontCSS.fontSize,fontWeight:fontCSS.fontWeight,fontStyle:fontCSS.fontStyle,letterSpacing:fontCSS.letterSpacing,lineHeight:fontCSS.lineHeight,textAlign:\"left\"},children:chars.map((ch,i)=>{const delay=i*staggerMs;return /*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-block\",overflow:\"hidden\",verticalAlign:\"top\",lineHeight:\"1\",position:\"relative\",height:\"calc(1em + 0px)\",marginTop:0,marginBottom:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",paddingTop:0,paddingBottom:0,color:color,transform:hovered?\"translateY(-100%)\":\"translateY(0%)\",transition:`transform ${duration}ms ${EASING} ${delay}ms`},children:ch===\" \"?\"\\xa0\":ch}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"block\",position:\"absolute\",top:0,left:0,pointerEvents:\"none\",whiteSpace:\"pre\",paddingTop:0,paddingBottom:0,color:hoverColor,transform:hovered?\"translateY(0%)\":\"translateY(100%)\",transition:`transform ${duration}ms ${EASING} ${delay}ms`},children:ch===\" \"?\"\\xa0\":ch})]},i);})});}addPropertyControls(LinkHover,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"WEBSITE\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"},hoverColor:{type:ControlType.Color,title:\"Hover Color\",defaultValue:\"#40C387\"},url:{type:ControlType.String,title:\"URL\",defaultValue:\"#\"},openInNewTab:{type:ControlType.Boolean,title:\"New Tab\",defaultValue:false},staggerMs:{type:ControlType.Number,title:\"Stagger (ms)\",defaultValue:20,min:0,max:100,step:5},duration:{type:ControlType.Number,title:\"Duration (ms)\",defaultValue:400,min:100,max:1e3,step:50}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LinkHover\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LinkHover.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useId}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useScroll,useVelocity,useSpring,useTransform}from\"framer-motion\";export default function AdaptiveScrollLens(props){const{targetTension,targetClarity,targetPrism,targetBlur,borderRadius,sensitivity}=props;const id=useId().replace(/:/g,\"\");const{scrollY}=useScroll();const scrollVelocity=useVelocity(scrollY);// Mapeamento não-linear: cria um \"platô\" de efeito zero no início e fim do movimento\nconst velocityFactor=useTransform(scrollVelocity,[-sensitivity,-600,-150,0,150,600,sensitivity],[1,1,0,0,0,1,1]);const smoothFactor=useSpring(velocityFactor,{stiffness:80,damping:30});const activeTension=useTransform(smoothFactor,[0,1],[0,targetTension]);const activeClarity=useTransform(smoothFactor,[0,1],[0,targetClarity]);const activePrism=useTransform(smoothFactor,[0,1],[0,targetPrism]);const activeBlur=useTransform(smoothFactor,[0,1],[0,targetBlur]);return /*#__PURE__*/_jsx(motion.div,{style:{width:\"100%\",height:\"100%\",position:\"relative\",borderRadius:`${borderRadius}px`,overflow:\"visible\",backdropFilter:`url(#adaptive-lens-${id})`,WebkitBackdropFilter:`url(#adaptive-lens-${id})`,backgroundColor:\"rgba(255, 255, 255, 0.001)\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",width:0,height:0},children:/*#__PURE__*/_jsxs(\"filter\",{id:`adaptive-lens-${id}`,x:\"-100%\",y:\"-100%\",width:\"300%\",height:\"300%\",colorInterpolationFilters:\"sRGB\",children:[/*#__PURE__*/_jsxs(\"feRadialGradient\",{id:`grad-active-${id}`,children:[/*#__PURE__*/_jsx(motion.stop,{offset:useTransform(activeClarity,v=>`${v}%`),stopColor:\"black\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:\"white\"})]}),/*#__PURE__*/_jsx(\"feFlood\",{floodColor:`url(#grad-active-${id})`,result:\"mask\"}),/*#__PURE__*/_jsx(\"feTurbulence\",{type:\"fractalNoise\",baseFrequency:\"0.01\",numOctaves:\"1\",result:\"noise\"}),/*#__PURE__*/_jsx(\"feComposite\",{in:\"noise\",in2:\"mask\",operator:\"in\",result:\"forceField\"}),/*#__PURE__*/_jsx(motion.feDisplacementMap,{in:\"SourceGraphic\",in2:\"forceField\",scale:activeTension,xChannelSelector:\"R\",yChannelSelector:\"G\",result:\"geometry\"}),/*#__PURE__*/_jsx(motion.feGaussianBlur,{in:\"geometry\",stdDeviation:activeBlur,result:\"soft\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"soft\",type:\"matrix\",values:\"1 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0\",result:\"r\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"soft\",type:\"matrix\",values:\"0 0 0 0 0  0 1 0 0 0  0 0 0 0 0  0 0 0 1 0\",result:\"g\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"soft\",type:\"matrix\",values:\"0 0 0 0 0  0 0 0 0 0  0 0 1 0 0  0 0 0 1 0\",result:\"b\"}),/*#__PURE__*/_jsx(motion.feOffset,{in:\"r\",dx:activePrism,result:\"rS\"}),/*#__PURE__*/_jsx(motion.feOffset,{in:\"b\",dx:useTransform(activePrism,v=>-v),result:\"bS\"}),/*#__PURE__*/_jsx(\"feBlend\",{in:\"rS\",in2:\"g\",mode:\"screen\",result:\"rg\"}),/*#__PURE__*/_jsx(\"feBlend\",{in:\"rg\",in2:\"bS\",mode:\"screen\"})]})})});}addPropertyControls(AdaptiveScrollLens,{targetTension:{type:ControlType.Number,title:\"Suc\\xe7\\xe3o Ativa\",min:0,max:1e3,defaultValue:600},targetClarity:{type:ControlType.Number,title:\"Centro Intacto %\",min:0,max:98,defaultValue:95},targetPrism:{type:ControlType.Number,title:\"Prisma Ativo\",min:0,max:50,defaultValue:7},targetBlur:{type:ControlType.Number,title:\"Blur Ativo\",min:0,max:20,defaultValue:5},sensitivity:{type:ControlType.Number,title:\"Sensibilidade Scroll\",min:100,max:2e3,defaultValue:800},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:0}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AdaptiveScrollLens\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LiquidDIstortion.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef}from\"react\";function getFontCSS(font){if(!font){return{fontFamily:\"Inter, sans-serif\",fontSize:40,fontWeight:700,lineHeight:\"1.1em\",letterSpacing:\"-0.04em\"};}const css={};if(font.fontFamily)css.fontFamily=font.fontFamily;if(font.fontSize)css.fontSize=font.fontSize;if(font.fontWeight)css.fontWeight=font.fontWeight;if(font.fontStyle)css.fontStyle=font.fontStyle;if(font.lineHeight)css.lineHeight=font.lineHeight;if(font.letterSpacing)css.letterSpacing=font.letterSpacing;return css;}function getParentSectionIdx(el){let node=el?.parentElement??null;while(node&&node!==document.body){const name=node.getAttribute(\"data-framer-name\")||\"\";const m=name.match(/[Ss]ection[-]?0?(\\d+)$/);if(m)return parseInt(m[1],10)-1;node=node.parentElement;}return-1;}/**\n * Auto-detect which side of the viewport this element is on.\n * Left side  → negative spread (opens the gap by moving left)\n * Right side → positive spread (opens the gap by moving right)\n */function autoDetectSpread(el){if(!el)return-75;const rect=el.getBoundingClientRect();const elCenter=rect.left+rect.width/2;const viewCenter=(typeof window!==\"undefined\"?window.innerWidth:1200)/2;// Left of center → negative (spread left), right of center → positive (spread right)\nreturn elCenter<viewCenter?-75:75;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function RevealText(props){const{text=\"Hello World\",font,fontOverride=\"\",color=\"#FFFFFF\",textAlign=\"left\",maxWidth=0,spreadX=0,section=-1}=props;const wrapperRef=useRef(null);// Use ref for offset to avoid React re-render on every RAF tick\nconst offsetRef=useRef(0);const divRef=useRef(null);useEffect(()=>{if(typeof window===\"undefined\")return;const mySection=section>=0?section:getParentSectionIdx(wrapperRef.current);const isSection02=mySection===1;const hasSpread=spreadX!==0||isSection02;if(!hasSpread)return;function applyOffset(v){offsetRef.current=v;if(divRef.current){divRef.current.style.transform=v!==0?`translateX(${v}px)`:\"\";}}function getEffectiveSpread(){if(spreadX!==0)return spreadX;return autoDetectSpread(wrapperRef.current);}// Initial state: if already resting in this section, show open\nconst api=window.__smoothScroll;const current=api?.currentSection??0;if(current===mySection){applyOffset(getEffectiveSpread());}else{applyOffset(0);}function onSectionChange(e){const{from,to,progress}=e.detail;const idx=mySection>=0?mySection:getParentSectionIdx(wrapperRef.current);if(idx===-1)return;const sp=getEffectiveSpread();if(to===idx){// Entering: closed (0) → open (sp)\napplyOffset(sp*progress);}else if(from===idx){// Leaving: open (sp) → closed (0)\napplyOffset(sp*(1-progress));}else if(progress>=1&&idx!==to){applyOffset(0);}}window.addEventListener(\"gg:sectionChange\",onSectionChange);return()=>{window.removeEventListener(\"gg:sectionChange\",onSectionChange);applyOffset(0);};},[spreadX,section]);const fontCSS=getFontCSS(font);if(fontOverride)fontCSS.fontFamily=fontOverride;return /*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:{width:\"100%\",maxWidth:maxWidth>0?maxWidth:undefined,position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{ref:divRef,style:{...fontCSS,color,textAlign:textAlign,willChange:\"transform\"},children:text})});}addPropertyControls(RevealText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Hello World\",displayTextArea:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:40,lineHeight:\"1.1em\",letterSpacing:\"-0.04em\"}},fontOverride:{type:ControlType.String,title:\"Font Override\",defaultValue:\"\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"},textAlign:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},maxWidth:{type:ControlType.Number,title:\"Max Width\",defaultValue:0,min:0,max:2e3,step:10,unit:\"px\"},spreadX:{type:ControlType.Number,title:\"Spread X\",description:\"0 = auto (Section-02 detects left/right). Neg = left, pos = right.\",defaultValue:0,min:-500,max:500,step:5,unit:\"px\"},section:{type:ControlType.Number,title:\"Section (0-idx)\",description:\"-1 = auto-detect from parent name\",defaultValue:-1,min:-1,max:7,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RevealText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RevealText.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls}from\"framer\";/**\n * ScrollFramesWebGL_1 V2 — Sliding Window + Memory Safety\n *\n * Changes from V1:\n * - Cloudinary: q_auto:eco,f_auto,w_1600 (desktop) / q_auto:eco,f_auto,w_1080 (mobile)\n * - Initial buffer: frames 0-59 + all 8 FRAME_MAP keyframes (was 0-30)\n * - Sliding window: keeps ±100 frames around current, purges the rest\n *   (always preserves FRAME_MAP keyframes to allow instant section jumps)\n * - Readiness API: window.__scrollFrames.initialReady\n *   Set true when 80% of first 60 frames are decoded — gates SmoothScroll\n * - Phase 2: 60-300 in batches of 8 every 60ms (was 30-200 in 5s)\n */const S=\"frame_00000_jsjcmg,frame_00001_wbhxpn,frame_00002_aiupol,frame_00003_hxd72f,frame_00004_lsvjq9,frame_00005_vvaaei,frame_00006_wmm39o,frame_00007_jov62x,frame_00008_ejrsrj,frame_00009_h1tqry,frame_00010_de8b98,frame_00011_v4lhqq,frame_00012_v0zhpx,frame_00013_yzxdai,frame_00014_tqbeuf,frame_00015_g25tvu,frame_00016_kfrsn5,frame_00017_yi9v45,frame_00018_lgi3k6,frame_00019_zljacm,frame_00020_jofsmy,frame_00021_kno9ax,frame_00022_qky1ww,frame_00023_ljrxjg,frame_00024_f5ygfi,frame_00025_km4t4b,frame_00026_ktawqn,frame_00027_ywudqx,frame_00028_mvogas,frame_00029_wbt9x8,frame_00030_l6kovb,frame_00031_cbvwat,frame_00032_dqgjc8,frame_00033_hbzlcj,frame_00034_ilzvk9,frame_00035_p4i0oo,frame_00036_c43vgb,frame_00037_yzts14,frame_00038_gstklk,frame_00039_wurmws,frame_00040_auvev8,frame_00041_jbtern,frame_00042_jp8bve,frame_00043_ill3x8,frame_00044_khzfo0,frame_00045_ccpzsm,frame_00046_cnvtyj,frame_00047_ctshrv,frame_00048_sojimf,frame_00049_nfgpen,frame_00050_amqmoy,frame_00051_whq3mj,frame_00052_qa0idl,frame_00053_mllkcr,frame_00054_yy09cd,frame_00055_l1lpzj,frame_00056_nan7io,frame_00057_re5rj4,frame_00058_bbeekg,frame_00059_u9r6xp,frame_00060_phvyhf,frame_00061_qvdmes,frame_00062_wrccla,frame_00063_ji64gf,frame_00064_eqqvez,frame_00065_chlp2a,frame_00066_xhnqtf,frame_00067_wux2k4,frame_00068_cb7tld,frame_00069_thwsst,frame_00070_dyg29i,frame_00071_adczg1,frame_00072_nd7dwd,frame_00073_pwl9pj,frame_00074_iowodv,frame_00075_taastr,frame_00076_xemxyb,frame_00077_e9x4jm,frame_00078_lalfqy,frame_00079_t0ck41,frame_00080_f3cjdj,frame_00081_fjgzfn,frame_00082_xp8whh,frame_00083_dzqar3,frame_00084_xtljiz,frame_00085_kew5sw,frame_00086_gj9usw,frame_00087_dji9kw,frame_00088_qfwc1w,frame_00089_dthi0v,frame_00090_vwcnsp,frame_00091_dz8nuo,frame_00092_osrebd,frame_00093_ln5esg,frame_00094_u9yur0,frame_00095_jgxd34,frame_00096_qbmqzo,frame_00097_ichv8i,frame_00098_gjaxrg,frame_00099_cu02y8,frame_00100_rc4tyc,frame_00101_d8ug9b,frame_00102_d6smca,frame_00103_t50gqh,frame_00104_ojsbqe,frame_00105_jabeff,frame_00106_dazgqa,frame_00107_ur3k7v,frame_00108_eubwwk,frame_00109_fsaxtc,frame_00110_yzsxbz,frame_00111_do8rrz,frame_00112_lggnar,frame_00113_si8efz,frame_00114_g3bfnr,frame_00115_ahlzqc,frame_00116_ezu97s,frame_00117_kdhtyf,frame_00118_v8fw1y,frame_00119_bpddog,frame_00120_xcym8u,frame_00121_bravht,frame_00122_mhqx5z,frame_00123_sik74c,frame_00124_vlijva,frame_00125_lreqcv,frame_00126_aqkera,frame_00127_of5gq5,frame_00128_oa6qkr,frame_00129_taejzi,frame_00130_dnfv42,frame_00131_dscsqp,frame_00132_kwmohw,frame_00133_dvij4z,frame_00134_jjflmb,frame_00135_vypv6k,frame_00136_el67sn,frame_00137_ieloow,frame_00138_eai1oq,frame_00139_q0ytgi,frame_00140_ajwvfq,frame_00141_wmskf8,frame_00142_jfr7vp,frame_00143_xzs21r,frame_00144_rlcqwm,frame_00145_bvcq0a,frame_00146_batbjo,frame_00147_cufziw,frame_00148_evm4c2,frame_00149_ybunpx,frame_00150_utvaiq,frame_00151_tfywmt,frame_00152_yjohb3,frame_00153_sfjywn,frame_00154_uiljbi,frame_00155_qtuxrw,frame_00156_dfjfuv,frame_00157_oa2zxi,frame_00158_tac3zm,frame_00159_p10bbv,frame_00160_frsgv2,frame_00161_ttnmz5,frame_00162_doemvf,frame_00163_idhizz,frame_00164_msuew2,frame_00165_cvbs8k,frame_00166_dyhrol,frame_00167_c5idb7,frame_00168_ylgybq,frame_00169_viedgf,frame_00170_rfdwpg,frame_00171_fapmu3,frame_00172_mbltyx,frame_00173_fk1cqy,frame_00174_qcmqnb,frame_00175_ewvqnq,frame_00176_rql5gc,frame_00177_wn08xl,frame_00178_ix4noo,frame_00179_cixuj5,frame_00180_sz6a9o,frame_00181_qubxzx,frame_00182_dcbxef,frame_00183_ckevdu,frame_00184_iimadf,frame_00185_hjjuua,frame_00186_ulx68b,frame_00187_y9kblc,frame_00188_j2bbsb,frame_00189_zggq36,frame_00190_qk4yoi,frame_00191_exrqjs,frame_00192_lwsyfc,frame_00193_qxeq0r,frame_00194_ti74pq,frame_00195_runeyj,frame_00196_gfd1uu,frame_00197_ucwpaf,frame_00198_ownycq,frame_00199_sushgk,frame_00200_pgrhda,frame_00201_lb8pzn,frame_00202_euqbj7,frame_00203_st0gg6,frame_00204_n282q5,frame_00205_rxugcl,frame_00206_q3yzwt,frame_00207_fe1q8z,frame_00208_ipgi5c,frame_00209_iw4cqu,frame_00210_dyspnr,frame_00211_jr90iy,frame_00212_lkeqk6,frame_00213_nroy35,frame_00214_qcl8pi,frame_00215_xm2z6w,frame_00216_v6trys,frame_00217_ecvokk,frame_00218_c4w8cs,frame_00219_weo8l7,frame_00220_lro3q7,frame_00221_q3ammb,frame_00222_atm1tz,frame_00223_crs8dz,frame_00224_e8zdor,frame_00225_togbn4,frame_00226_jhcgz9,frame_00227_tbocqk,frame_00228_xpyn9d,frame_00229_jegcz7,frame_00230_k7f39n,frame_00231_i503iw,frame_00232_rtggji,frame_00233_e9zmzy,frame_00234_qzyogr,frame_00235_cymnoh,frame_00236_eaihjd,frame_00237_egpmg6,frame_00238_nxlrg3,frame_00239_pd3aoo,frame_00240_as44gn,frame_00241_qcs7ex,frame_00242_mwoujr,frame_00243_et7icl,frame_00244_xuqnkf,frame_00245_zzdnyl,frame_00246_p0ypo8,frame_00247_zcne5w,frame_00248_qnmihr,frame_00249_rczqzi,frame_00250_gnyj0l,frame_00251_yrvsrl,frame_00252_k4xzby,frame_00253_hv8gac,frame_00254_l4lp6h,frame_00255_nue1j8,frame_00256_vwui6j,frame_00257_zg7yng,frame_00258_hdzvi0,frame_00259_kfn05z,frame_00260_pvqzap,frame_00261_ymlnzj,frame_00262_rn7hzj,frame_00263_flkyna,frame_00264_lxdtit,frame_00265_fse9d5,frame_00266_thqzzy,frame_00267_f7fd1g,frame_00268_uosjfg,frame_00269_vax0ov,frame_00270_j1ees8,frame_00271_hvgonh,frame_00272_syschb,frame_00273_mxzfr4,frame_00274_d5zljh,frame_00275_rd4q8a,frame_00276_onxvzo,frame_00277_ntjhgm,frame_00278_zwsgnp,frame_00279_jaucjg,frame_00280_bwczmi,frame_00281_syxwnt,frame_00282_ihikf6,frame_00283_x9w3oq,frame_00284_qapbch,frame_00285_kvebvm,frame_00286_asjyop,frame_00287_fmvyqb,frame_00288_llzaba,frame_00289_uqiezu,frame_00290_omr6lw,frame_00291_ztetyv,frame_00292_pgczld,frame_00293_risf3x,frame_00294_kkjfcs,frame_00295_ejosbi,frame_00296_ppxwyq,frame_00297_ll4210,frame_00298_pbev2v,frame_00299_kiju26,frame_00300_xwe6qg,frame_00301_cg9ali,frame_00302_yjej5s,frame_00303_tzvlal,frame_00304_g9y3k9,frame_00305_bbjpfk,frame_00306_zoq2w6,frame_00307_nooj0k,frame_00308_e4mxok,frame_00309_kvoky5,frame_00310_jnihem,frame_00311_f8lm98,frame_00312_rk9wsz,frame_00313_igfztx,frame_00314_hpnex1,frame_00315_vie3s6,frame_00316_gwescu,frame_00317_k365it,frame_00318_jilhgu,frame_00319_yurbph,frame_00320_mgszeh,frame_00321_qtkmbu,frame_00322_efibkl,frame_00323_qrfex8,frame_00324_tlg2dd,frame_00325_odaqgq,frame_00326_ieqexx,frame_00327_hwulfh,frame_00328_y6cn2k,frame_00329_bwv25h,frame_00330_akhqg8,frame_00331_uysdtx,frame_00332_skx0pd,frame_00333_mmrlgm,frame_00334_h8vqff,frame_00335_djhjfw,frame_00336_m1neek,frame_00337_j5mvdg,frame_00338_bon6pi,frame_00339_tvvrli,frame_00340_cmtiyl,frame_00341_xuf9qj,frame_00342_bsr0eg,frame_00343_ew7wsn,frame_00344_stigcl,frame_00345_p0j0ti,frame_00346_v7s6tk,frame_00347_zbklqb,frame_00348_lkh9ht,frame_00349_sikejd,frame_00350_o733dy,frame_00351_egkalx,frame_00352_jtzeih,frame_00353_d81n50,frame_00354_xptubk,frame_00355_pnldyw,frame_00356_uc0zuk,frame_00357_ugljex,frame_00358_f1dmpx,frame_00359_stkmuw,frame_00360_jfaeyw,frame_00361_aaillx,frame_00362_phqgsr,frame_00363_qmyid8,frame_00364_rpkxtb,frame_00365_fkwzyn,frame_00366_f0mm8l,frame_00367_hrlbl2,frame_00368_yqwswl,frame_00369_zlyvs0,frame_00370_ko6ehx,frame_00371_rhlzn2,frame_00372_z14fey,frame_00373_dr8tkf,frame_00374_vhpsut,frame_00375_im2gyj,frame_00376_cnukuk,frame_00377_uwtzrp,frame_00378_wauozb,frame_00379_ij7wqs,frame_00380_wrms5i,frame_00381_cm5zxs,frame_00382_ak862q,frame_00383_pbj0xh,frame_00384_u4ipx6,frame_00385_eff6l4,frame_00386_ayjshv,frame_00387_zaxlhe,frame_00388_cz7wyw,frame_00389_fbhzf6,frame_00390_ib5flv,frame_00391_uv1zfz,frame_00392_sncr3f,frame_00393_zjqwan,frame_00394_yxcotr,frame_00395_kpyjnc,frame_00396_dnj007,frame_00397_lxy5gk,frame_00398_dgifgb,frame_00399_izlnph,frame_00400_bx7dv2,frame_00401_ccllsb,frame_00402_lveypz,frame_00403_k6pljw,frame_00404_aatmxq,frame_00405_iydrwr,frame_00406_qddqfd,frame_00407_pptnx2,frame_00408_xvqchr,frame_00409_uissps,frame_00410_sqpju9,frame_00411_mv2bel,frame_00412_pmca64,frame_00413_x7zyb2,frame_00414_uoxmkt,frame_00415_hj898y,frame_00416_yjgmzh,frame_00417_j58ine,frame_00418_zsxdt8,frame_00419_gpwcln,frame_00420_kxddiu,frame_00421_ppsdcx,frame_00422_y2yxlx,frame_00423_fnfftr,frame_00424_flx1e9,frame_00425_osrzhd,frame_00426_llblmi,frame_00427_jsur67,frame_00428_r2aogo,frame_00429_wv5hhh,frame_00430_aejem3,frame_00431_akouor,frame_00432_xwamam,frame_00433_uxonv7,frame_00434_xnmcos,frame_00435_elbxec,frame_00436_baibka,frame_00437_v2sxkn,frame_00438_kujv1j,frame_00439_pgrp8p,frame_00440_o4vdhy,frame_00441_uiyfh6,frame_00442_kzopaj,frame_00443_ne7bpz,frame_00444_eb5box,frame_00445_hny8f4,frame_00446_hupmzg,frame_00447_jcnu7o,frame_00448_i0wq2h,frame_00449_tajv1t,frame_00450_orwwdz,frame_00451_qg5wng,frame_00452_mrzc4h,frame_00453_fnroce,frame_00454_nku9ro,frame_00455_dytrnh,frame_00456_hapbng,frame_00457_pdqdfa,frame_00458_hqtyig,frame_00459_a1dp0q,frame_00460_jjcubr,frame_00461_ajokrt,frame_00462_dwsmfm,frame_00463_pgephc,frame_00464_jo4mk2,frame_00465_e6ee4v,frame_00466_gfd9pu,frame_00467_mjehmz,frame_00468_gg8ejv,frame_00469_g3qufj,frame_00470_d4vma2,frame_00471_ba5huq,frame_00472_xiuppg,frame_00473_gh5xi5,frame_00474_hleqh5,frame_00475_h3xxdq,frame_00476_uijdg7,frame_00477_ok12bi,frame_00478_qxssak,frame_00479_mhjp34,frame_00480_r8dvs6,frame_00481_z3lj9k,frame_00482_ngvcy9,frame_00483_kxhwlh,frame_00484_b9i2pz,frame_00485_ouohdv,frame_00486_ashmxu,frame_00487_ujfeuq,frame_00488_qwy06u,frame_00489_m26mei,frame_00490_fy8dwt,frame_00491_n4fwhu,frame_00492_x4cnn4,frame_00493_ntybjm,frame_00494_toix9t,frame_00495_ljko4t,frame_00496_jy2kq2,frame_00497_fkycz7,frame_00498_janghz,frame_00499_tz9eb9,frame_00500_jwzmkr,frame_00501_dijb4c,frame_00502_nshinv,frame_00503_jya6lg,frame_00504_ejalcj,frame_00505_p5wccx,frame_00506_wawoby,frame_00507_p5lw5w,frame_00508_wvozvs,frame_00509_ipduee,frame_00510_h8zlzf,frame_00511_darpnr,frame_00512_tkybt5,frame_00513_auykgz,frame_00514_kp28jp,frame_00515_vwzreu,frame_00516_azpxbj,frame_00517_gn6tyq,frame_00518_yzomee,frame_00519_tgowu4,frame_00520_ie1mbq,frame_00521_z7c3iq,frame_00522_pqqcaz,frame_00523_kvwnnj,frame_00524_pgdzbg,frame_00525_qdstzq,frame_00526_yqgirj,frame_00527_fzgikd,frame_00528_dvmema,frame_00529_zjptjv,frame_00530_a96xax,frame_00531_pem77y,frame_00532_dtnp8s,frame_00533_tvqyuc,frame_00534_asphi4,frame_00535_g0k0eg,frame_00536_kneti5,frame_00537_b0yktz,frame_00538_yfwxn3,frame_00539_iwtw1d,frame_00540_ofczve,frame_00541_ibbtug,frame_00542_gktrv1,frame_00543_aideqs,frame_00544_qcptq4,frame_00545_ewxvrn,frame_00546_pw5aul,frame_00547_fm3kbg,frame_00548_q084ev,frame_00549_keggf7,frame_00550_gbptre,frame_00551_qr1gap,frame_00552_ceafpk,frame_00553_wmjq2i,frame_00554_evfjrq,frame_00555_suwgda,frame_00556_mpgb6s,frame_00557_z6mpqt,frame_00558_ijnu9r,frame_00559_adolpz,frame_00560_c7knyl,frame_00561_l0g7jx,frame_00562_gk7wzw,frame_00563_x6k8ax,frame_00564_pctsnr,frame_00565_bzow0v,frame_00566_xbkiuf,frame_00567_kk8hhz,frame_00568_sydhwy,frame_00569_moxo2v,frame_00570_rdkqmj,frame_00571_d2uyl4,frame_00572_ypk4hv,frame_00573_liapbr,frame_00574_rye3b8,frame_00575_otvnzm,frame_00576_dxeq20,frame_00577_rul7m1,frame_00578_uppji1,frame_00579_wowrqm,frame_00580_jvhmie,frame_00581_caoo9b,frame_00582_uxuprk,frame_00583_zesooo,frame_00584_qr5mq4,frame_00585_uinpnm,frame_00586_rnceti,frame_00587_ug5ff1,frame_00588_mrxut9,frame_00589_el52by,frame_00590_jyjpyp,frame_00591_twxr1j,frame_00592_zltjtg,frame_00593_sxgzr6,frame_00594_jtgja6,frame_00595_ffwv0z,frame_00596_bdo9do,frame_00597_ownm67,frame_00598_flsjzr,frame_00599_ys7are,frame_00600_zutian,frame_00601_mgrmuu,frame_00602_usybb7,frame_00603_qhocue,frame_00604_gc8a7l,frame_00605_uoneyu,frame_00606_rvnius,frame_00607_ojxta0,frame_00608_vjdlbs,frame_00609_moertx,frame_00610_aivtxy,frame_00611_zjdbo3,frame_00612_jr0iex,frame_00613_xgjgmt,frame_00614_ifyegj,frame_00615_nyjssu,frame_00616_k2b9yz,frame_00617_dtueui,frame_00618_mlwvc3,frame_00619_fmha9q,frame_00620_iojrx4,frame_00621_r5lxr1,frame_00622_qo8cxp,frame_00623_v25nf7,frame_00624_yjxyqf,frame_00625_thc1fh,frame_00626_u81qwj,frame_00627_d5dbit,frame_00628_yygcgt,frame_00629_is5x86,frame_00630_bojlw3,frame_00631_ihc6nt,frame_00632_un8fs3,frame_00633_gjfxjk,frame_00634_scltak,frame_00635_gx0hky,frame_00636_wxyadt,frame_00637_in0rrf,frame_00638_ngg4nj,frame_00639_doa1ii,frame_00640_r1s8qe,frame_00641_z6bvzm,frame_00642_dox2x4,frame_00643_jfawty,frame_00644_codb6m,frame_00645_zlgwsg,frame_00646_o0ezzo,frame_00647_snc40z,frame_00648_dpgn9o,frame_00649_ajq3oz,frame_00650_o3r5sb,frame_00651_ltxfvb,frame_00652_r73aqz,frame_00653_jar2tn,frame_00654_phhetx,frame_00655_kmrm9o,frame_00656_ltjw32,frame_00657_uauko1,frame_00658_mfyivu,frame_00659_g2ai12,frame_00660_xusfyi,frame_00661_vfeaet,frame_00662_bq38tp,frame_00663_arltlr,frame_00664_jvoxbb,frame_00665_yyh7el,frame_00666_qtfpt5,frame_00667_kll1nt,frame_00668_emohc3,frame_00669_otjgn2,frame_00670_aamdj4,frame_00671_pmbsk3,frame_00672_mlvrf8,frame_00673_uhaa0m,frame_00674_p4upsl,frame_00675_xclzwy,frame_00676_lrhucv,frame_00677_kdtpka,frame_00678_owfulv,frame_00679_dfukvm,frame_00680_nz6l54,frame_00681_zucsap,frame_00682_zf7mb7,frame_00683_nvhltc,frame_00684_jzaseh,frame_00685_vuaznt,frame_00686_dejf7o,frame_00687_qeaksb,frame_00688_w0jt9v,frame_00689_fvcbuu,frame_00690_l7wmwm,frame_00691_bgahqp,frame_00692_xtziwx,frame_00693_xkd0en,frame_00694_oyd1jb,frame_00695_z57yvg,frame_00696_yktnve,frame_00697_ed0uhx,frame_00698_faotaw,frame_00699_tjt7pz,frame_00700_g2zwpt,frame_00701_ii98q9,frame_00702_saxt1b,frame_00703_rl1sit,frame_00704_djuts7,frame_00705_mko8c9,frame_00706_ygx1tt,frame_00707_n45hge,frame_00708_gt0o6k,frame_00709_wprokv,frame_00710_rh4rcq,frame_00711_xjdcn8,frame_00712_rauaab,frame_00713_aj4hrx,frame_00714_swbuwl,frame_00715_yoorpb,frame_00716_hgd8xo,frame_00717_uj6j6e,frame_00718_cgd8vn,frame_00719_cjhjn0,frame_00720_kam61d,frame_00721_pwkdbt,frame_00722_e6r1da,frame_00723_uwtusc,frame_00724_apn0oc,frame_00725_pzunlg,frame_00726_vcgk1f,frame_00727_hkoo1t,frame_00728_ctk8rg,frame_00729_ts4aoi,frame_00730_q4nz8b,frame_00731_xmn0cw,frame_00732_ipkrpl,frame_00733_cesmpw,frame_00734_qxe8ga,frame_00735_vxhhho,frame_00736_ufuzll,frame_00737_dmrih6,frame_00738_zyjipb,frame_00739_mfrp36,frame_00740_rchq3z,frame_00741_awag0j,frame_00742_kmc5hh,frame_00743_enkrqv,frame_00744_u5uumh,frame_00745_manqow,frame_00746_tcbyir,frame_00747_dn4lcj,frame_00748_i8ekcc,frame_00749_xxackh,frame_00750_jisbbh,frame_00751_ud9svk,frame_00752_kl5ipa,frame_00753_djy7zj,frame_00754_zbevod,frame_00755_zdbpse,frame_00756_qj8bsw,frame_00757_brm5gi,frame_00758_ft8fvh,frame_00759_o91ezm,frame_00760_zu4koe,frame_00761_rezfbl,frame_00762_egotmy,frame_00763_s2y3fi,frame_00764_x2soqf,frame_00765_gt4ufu,frame_00766_zluqvk,frame_00767_ymtpow,frame_00768_d7ahum,frame_00769_pbnepu,frame_00770_uvcahr,frame_00771_dmxzmi,frame_00772_ompnlc,frame_00773_chml1i,frame_00774_pzsajc,frame_00775_yultlb,frame_00776_ana485,frame_00777_w49shh,frame_00778_hiqs7r,frame_00779_bklleq,frame_00780_zigjwe,frame_00781_kltsqs,frame_00782_wgquvy,frame_00783_hqtxag,frame_00784_idzbpt,frame_00785_ecjoi2,frame_00786_ud8r2x,frame_00787_qrf8rc,frame_00788_dkgcfr,frame_00789_cvib0g,frame_00790_mtk5p8,frame_00791_bydyhm,frame_00792_cn4ptc,frame_00793_aqt150,frame_00794_j68fp9,frame_00795_zj1ut7,frame_00796_ddeiec,frame_00797_rntgge,frame_00798_ypvmbf,frame_00799_fureqm,frame_00800_smsziu,frame_00801_rfbbh5,frame_00802_sztpfp,frame_00803_leqeze,frame_00804_puys5d,frame_00805_aqa5mm,frame_00806_fkdjst,frame_00807_nubt2n,frame_00808_oqp0l3,frame_00809_ifn3ib,frame_00810_hjxjct,frame_00811_dcy1jz,frame_00812_gc4dvu,frame_00813_jwz6x8,frame_00814_jn0bf7,frame_00815_kd0qnk,frame_00816_x0f5ey,frame_00817_b0mfws,frame_00818_aagotf,frame_00819_nut9r3,frame_00820_lcyhqx,frame_00821_rzbz47,frame_00822_sifhag,frame_00823_vnjfcr,frame_00824_w7pcor,frame_00825_bglmuw,frame_00826_psgiiq,frame_00827_d9yr3y,frame_00828_souytv,frame_00829_uvzap3,frame_00830_cqfrnj,frame_00831_dk9fmy,frame_00832_gklngc,frame_00833_b8xwcz,frame_00834_ipxvmb,frame_00835_rsz7mh,frame_00836_rgmyhd,frame_00837_n0eius,frame_00838_utvwiy,frame_00839_jzjazd,frame_00840_baxuqa,frame_00841_hfjgvz,frame_00842_ccglfq,frame_00843_ifiuez,frame_00844_uml1tq,frame_00845_k8yxsf,frame_00846_lppakw,frame_00847_vftd4r,frame_00848_c5gt7s,frame_00849_bhzjgq,frame_00850_kshe4p,frame_00851_dmcvco,frame_00852_i7ymhf,frame_00853_dvcmsp,frame_00854_idcjpe,frame_00855_jetbdf,frame_00856_s4afcy,frame_00857_pb5ssl,frame_00858_aby2w5,frame_00859_zlybgu,frame_00860_ez4cqc,frame_00861_ctfvtx,frame_00862_mmy1ho,frame_00863_eiwrve,frame_00864_q5keuh,frame_00865_e3bx8n,frame_00866_tog1u3,frame_00867_qoupod,frame_00868_bnolsj,frame_00869_cpbnhj,frame_00870_c5fmlb,frame_00871_ewkpaj,frame_00872_vanpcs,frame_00873_xzwpj1,frame_00874_ulsffx,frame_00875_d6sn9w,frame_00876_tuzmmm,frame_00877_vbrxn0,frame_00878_us3fg1,frame_00879_rfrnwy,frame_00880_zdfyh7,frame_00881_ttbw0d,frame_00882_vi2vq9,frame_00883_nozxik,frame_00884_qfvl2j,frame_00885_y99jfo,frame_00886_vyirq6,frame_00887_uq4l8p,frame_00888_qdefuk,frame_00889_setc3h,frame_00890_vbem9e,frame_00891_zy1w3e,frame_00892_actxii,frame_00893_fexdro,frame_00894_al5qlc,frame_00895_jcnbgw,frame_00896_mnbuse,frame_00897_mmon3e,frame_00898_kdtp1w,frame_00899_jeok0g,frame_00900_egnhsc,frame_00901_qoelu2,frame_00902_iyllpe,frame_00903_ztftmf,frame_00904_gmvtwv,frame_00905_lziurb,frame_00906_efur4h,frame_00907_vdo7xw,frame_00908_bkaowr,frame_00909_lf4j2y,frame_00910_prtsnl,frame_00911_mjg79i,frame_00912_ru7cx5,frame_00913_au9qi1,frame_00914_ovil8a,frame_00915_ddnlzs,frame_00916_lhv8gg,frame_00917_uxripn,frame_00918_xckd7i,frame_00919_bohgdb,frame_00920_wsnxsp,frame_00921_py9khb,frame_00922_spo9is,frame_00923_diki9k,frame_00924_r66pbf,frame_00925_uus9xz,frame_00926_uevcau,frame_00927_sfoxca,frame_00928_n5he4s,frame_00929_k9327a,frame_00930_kllgjl,frame_00931_ixkfjy,frame_00932_tnbcry,frame_00933_ftv24v,frame_00934_uvgzty,frame_00935_waw3io,frame_00936_qhr31i,frame_00937_vsb4yv,frame_00938_xqdgdm,frame_00939_bt780c,frame_00940_e8gu2y,frame_00941_o4dzvo,frame_00942_byrcnd,frame_00943_ct1qni,frame_00944_xtxhqi,frame_00945_tpuefy,frame_00946_lpfxu1,frame_00947_vreusm,frame_00948_brg3u4,frame_00949_n29jdu,frame_00950_dkaqgo,frame_00951_edusgk,frame_00952_vjnvch,frame_00953_ay9l5h,frame_00954_l36074,frame_00955_cef99j,frame_00956_jpnzns,frame_00957_fxbdyh,frame_00958_yy2w0h,frame_00959_txawl3,frame_00960_lasfzq,frame_00961_frftey,frame_00962_lprazm,frame_00963_fuvme1,frame_00964_ylkpxo,frame_00965_mu5aff,frame_00966_lguvwd,frame_00967_ssmwjn,frame_00968_c01qrm,frame_00969_xxwkmh,frame_00970_ur0cmx,frame_00971_kgo4xm,frame_00972_snsibx,frame_00973_qcjnqg,frame_00974_u7cqaa,frame_00975_ylrr9r,frame_00976_tofcjw,frame_00977_oisgbz,frame_00978_gip1fz,frame_00979_jwuwpy,frame_00980_eydrlf,frame_00981_qw3p33,frame_00982_jdjtdh,frame_00983_zh52ix,frame_00984_c0ievb,frame_00985_fwdv1q,frame_00986_nkwsuj,frame_00987_a71kxy,frame_00988_zblahj,frame_00989_hrgo03,frame_00990_pwkp44,frame_00991_tdpszg,frame_00992_bt1ppj,frame_00993_dspmgv,frame_00994_yyy0ix,frame_00995_mdsnsv,frame_00996_dd9cgb,frame_00997_pagcuo,frame_00998_mj5f6o,frame_00999_ocztmn,frame_01000_ama3sw,frame_01001_cv1iu4,frame_01002_jpxtvv,frame_01003_kx94by,frame_01004_dmqawd,frame_01005_ef2s80,frame_01006_qbfrpk,frame_01007_p33hws,frame_01008_ishqbf,frame_01009_kmawqt,frame_01010_blfyry,frame_01011_gdigb4,frame_01012_phwyva,frame_01013_pdy8yj,frame_01014_hjqjrj,frame_01015_da30t6,frame_01016_nxnwy6,frame_01017_mxo01g,frame_01018_q6j1a9,frame_01019_aw3x6c\";const P=S.split(\",\");const C=\"de7lssqmg\";const N=P.length;const FRAME_MAP=[0,194,283,411,513,610,666,1019];const INITIAL_WINDOW=60// frames decoded before scroll is unlocked\n;const SLIDE_RADIUS=100// frames kept on each side of current position\n;// q_auto:eco = 30-40% smaller than q_auto with imperceptible quality difference\nfunction buildTransform(){if(typeof window===\"undefined\")return\"q_auto:eco,f_auto,w_1600\";return window.innerWidth<=768?\"q_auto:eco,f_auto,w_1080\":\"q_auto:eco,f_auto,w_1600\";}let _tx=null;function url(i){if(!_tx)_tx=buildTransform();return`https://res.cloudinary.com/${C}/image/upload/${_tx}/${P[i]}.jpg`;}function getFrameFromScroll(){const api=window.__smoothScroll;if(!api)return 0;const from=Math.min(api.isTransitioning?api.transitionFrom:api.currentSection,FRAME_MAP.length-1);const to=Math.min(api.isTransitioning?api.transitionTo:api.currentSection,FRAME_MAP.length-1);const p=api.isTransitioning?api.transitionProgress:0;return Math.round(FRAME_MAP[from]+(FRAME_MAP[to]-FRAME_MAP[from])*p);}export default function ScrollFramesWebGL(){const cr=useRef(null);const bm=useRef({});const ld=useRef(new Set);const cf=useRef(0);const cx=useRef(null);const rf=useRef(0);const dirty=useRef(false);const initCount=useRef(0);const initReady=useRef(false);const lastPruneAt=useRef(-999);useEffect(()=>{const c=cr.current;if(!c)return;const x=c.getContext(\"2d\",{alpha:false,desynchronized:true});if(!x)return;cx.current=x;const resize=()=>{_tx=null;const dpr=Math.min(window.devicePixelRatio||1,2);c.width=Math.round(window.innerWidth*dpr);c.height=Math.round(window.innerHeight*dpr);dirty.current=true;};resize();window.addEventListener(\"resize\",resize,{passive:true});// Cover-fit draw — GPU path via pre-decoded ImageBitmap\nfunction draw(i){const g=bm.current[i];if(!g||!c||!x)return;const cw=c.width,ch=c.height;const ia=g.width/g.height,ca=cw/ch;let dw=cw,dh=ch,dx=0,dy=0;if(ia>ca){dw=dh*ia;dx=(cw-dw)/2;}else{dh=dw/ia;dy=(ch-dh)/2;}x.drawImage(g,dx,dy,dw,dh);}// Sliding window — free decoded bitmaps outside ±SLIDE_RADIUS\n// Always keeps FRAME_MAP keyframes so section jumps are instant\nfunction pruneWindow(current){if(Math.abs(current-lastPruneAt.current)<20)return;lastPruneAt.current=current;const keepMin=Math.max(0,current-SLIDE_RADIUS);const keepMax=Math.min(N-1,current+SLIDE_RADIUS);for(const key of Object.keys(bm.current)){const i=parseInt(key,10);if(FRAME_MAP.includes(i))continue;// never evict keyframes\nif(i<keepMin||i>keepMax){bm.current[i]?.close();delete bm.current[i];ld.current.delete(i);}}}// Load: fetch → createImageBitmap (off-main-thread GPU decode) → cache\nfunction load(i){if(bm.current[i]||ld.current.has(i)||i<0||i>=N)return;ld.current.add(i);fetch(url(i)).then(r=>r.blob()).then(blob=>createImageBitmap(blob,{colorSpaceConversion:\"none\"})).then(bitmap=>{bm.current[i]=bitmap;ld.current.delete(i);if(i===cf.current)dirty.current=true;// Track initial window readiness for scroll gating\nif(i<INITIAL_WINDOW&&!initReady.current){initCount.current++;const pct=initCount.current/INITIAL_WINDOW;const api=window.__scrollFrames;if(api)api._progress=pct;if(initCount.current>=Math.ceil(INITIAL_WINDOW*.8)){initReady.current=true;if(api)api.initialReady=true;window.dispatchEvent(new CustomEvent(\"gg:framesReady\"));}}window.dispatchEvent(new CustomEvent(\"gg:frameReady\"));}).catch(()=>{ld.current.delete(i);window.dispatchEvent(new CustomEvent(\"gg:frameReady\"));});}// RAF loop — only draws when frame index changes (dirty flag prevents thrash)\nlet running=true;function loop(){if(!running)return;const frame=getFrameFromScroll();if(frame!==cf.current||dirty.current){cf.current=frame;dirty.current=false;if(bm.current[frame])draw(frame);// Preload ahead-of-play — favor forward direction\nfor(let j=Math.max(0,frame-5);j<=Math.min(N-1,frame+15);j++){load(j);}// Purge frames outside sliding window\npruneWindow(frame);}rf.current=requestAnimationFrame(loop);}window.__scrollFrames={initialReady:false,_progress:0,get progress(){return this._progress;},isSectionReady(idx){if(!this.initialReady)return false;return!!bm.current[FRAME_MAP[Math.min(idx,FRAME_MAP.length-1)]];}};// PHASE 1: Decode first 60 frames immediately (critical path)\nfor(let i=0;i<INITIAL_WINDOW;i++)load(i);// PHASE 1b: All 8 section keyframes (instant jumps without waiting)\nFRAME_MAP.forEach(f=>{if(f>=INITIAL_WINDOW)load(f);});let started=false;function start(){if(started)return;started=true;loop();// PHASE 2: Fill frames 60-300 in small batches — covers sections 1-3\nlet p2=INITIAL_WINDOW;function loadPhase2(){if(!running||p2>300){startPhase3();return;}for(let i=p2;i<Math.min(p2+8,301);i++)load(i);p2+=8;setTimeout(loadPhase2,60);}loadPhase2();}// PHASE 3: Idle-load remaining 301-1019 — never blocks UI thread\nfunction startPhase3(){let i=301;function idleLoad(deadline){if(!running)return;while(i<N&&(!deadline||deadline.timeRemaining()>4))load(i++);if(i<N){if(typeof requestIdleCallback!==\"undefined\"){requestIdleCallback(idleLoad,{timeout:2e3});}else{setTimeout(()=>idleLoad(),120);}}}if(typeof requestIdleCallback!==\"undefined\"){requestIdleCallback(idleLoad,{timeout:3e3});}else{setTimeout(()=>idleLoad(),600);}}try{if(sessionStorage.getItem(\"gg-loaded\"))start();}catch(e){}window.addEventListener(\"loaderComplete\",start);const fb=setTimeout(start,8e3);return()=>{running=false;cancelAnimationFrame(rf.current);window.removeEventListener(\"resize\",resize);window.removeEventListener(\"loaderComplete\",start);clearTimeout(fb);Object.values(bm.current).forEach(b=>b.close());bm.current={};delete window.__scrollFrames;};},[]);return /*#__PURE__*/_jsx(\"canvas\",{ref:cr,role:\"img\",\"aria-label\":\"Background animation\",style:{position:\"fixed\",top:0,left:0,width:\"100%\",height:\"100%\",zIndex:0,display:\"block\",pointerEvents:\"none\",backgroundColor:\"#050505\",contain:\"strict\"}});}addPropertyControls(ScrollFramesWebGL,{});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollFramesWebGL\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollFramesWebGL_1.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * SectionIndicator V5.0 — Cumulative Sequential Fill\n *\n * Figma ESPEC (node 4842-2029):\n *   8 segments, flex, 4px height, 4px gap, 999px border-radius (pill)\n *   Fill is CUMULATIVE: at section N all segments 0..N are solid green\n *   NEVER skips: 2→5 fills segments 3,4,5 one by one; 5→2 unfills 5,4,3\n *   Rolling-start: gradient #41c78a→transparent at beginning of fill\n *   Rolling-end: solid #41c78a when segment completes\n *\n * States:\n *   empty        rgba(255,255,255,0.10)  4px\n *   hover        rgba(255,255,255,0.40)  8px\n *   click flash  rgba(65,199,138,0.15)   1px  (100ms, then navigate)\n *   filling      #41c78a  width driven by RAF loop\n */const N=8;const ACTIVE=\"#41C78A\";const INACTIVE=\"rgba(255,255,255,0.10)\";const HOVER_BG=\"rgba(255,255,255,0.40)\";const CLICK_BG=\"rgba(65,199,138,0.15)\";const GAP=4;const RADIUS=9999;const MX=25;const BOTTOM=64;/**\n * Decompose a multi-section scroll progress into per-segment values.\n *\n * For from=2 → to=5 (3 steps):\n *   progress 0.00-0.33 → segment 3 filling   (filledUpTo=2, activeSegment=3)\n *   progress 0.33-0.66 → segment 4 filling   (filledUpTo=3, activeSegment=4)\n *   progress 0.66-1.00 → segment 5 filling   (filledUpTo=4, activeSegment=5)\n *\n * For from=5 → to=2 (3 steps):\n *   progress 0.00-0.33 → segment 5 unfilling (filledUpTo=4, activeSegment=5)\n *   progress 0.33-0.66 → segment 4 unfilling (filledUpTo=3, activeSegment=4)\n *   progress 0.66-1.00 → segment 3 unfilling (filledUpTo=2, activeSegment=3)\n */function decomposeProgress(from,to,progress){const totalSteps=Math.abs(to-from);if(totalSteps===0){return{activeSegment:-1,stepProgress:0,filledUpTo:from,forward:true};}const forward=to>from;const p=Math.min(progress,.9999);const step=Math.min(Math.floor(p*totalSteps),totalSteps-1);const stepPct=p*totalSteps-step;// Which segment is currently animating (0-indexed)?\nconst activeSegment=forward?from+step+1// filling:   segment right after the last completed one\n:from-step// unfilling: counting backward from 'from'\n;// Highest segment index that is fully filled (static)\nconst filledUpTo=forward?from+step// segments 0..from+step are done (inclusive)\n:from-step-1// segments 0..from-step-1 are done (inclusive)\n;return{activeSegment,stepProgress:stepPct,filledUpTo,forward};}/**\n * Returns the visual fill state for a single segment at a given scroll state.\n */function computeFill(segIdx,from,to,progress,isTransitioning,currentSection){// Static state: cumulative solid fill up to currentSection\nif(!isTransitioning){return{fillPct:segIdx<=currentSection?1:0,useGradient:false};}const{activeSegment,stepProgress,filledUpTo,forward}=decomposeProgress(from,to,progress);// Segments before the active one: fully filled (forward) or fully empty (backward handled below)\nif(segIdx<=filledUpTo)return{fillPct:1,useGradient:false};// The actively-animating segment\nif(segIdx===activeSegment){const pct=forward?stepProgress:1-stepProgress;return{fillPct:pct,// Gradient only at the very beginning of a new fill (rolling-start)\nuseGradient:forward&&pct<.08};}// Everything else: empty\nreturn{fillPct:0,useGradient:false};}export default function SectionIndicator({activeColor=ACTIVE,inactiveColor=INACTIVE}){const fillRefs=useRef(Array(N).fill(null));const rafRef=useRef(0);const initedRef=useRef(false);const[visible,setVisible]=useState(false);const[hovered,setHovered]=useState(null);const[clicked,setClicked]=useState(null);// RAF loop: reads __smoothScroll and updates fill widths directly in DOM\nuseEffect(()=>{if(typeof window===\"undefined\")return;const sync=()=>{const api=window.__smoothScroll;if(!api){rafRef.current=requestAnimationFrame(sync);return;}const{currentSection,isTransitioning,transitionProgress,transitionFrom,transitionTo}=api;for(let i=0;i<N;i++){const fill=fillRefs.current[i];if(!fill)continue;const{fillPct,useGradient}=computeFill(i,transitionFrom,transitionTo,transitionProgress,isTransitioning,currentSection);fill.style.width=`${fillPct*100}%`;fill.style.background=useGradient?`linear-gradient(to right, ${activeColor}, rgba(65,199,138,0.3))`:activeColor;}rafRef.current=requestAnimationFrame(sync);};const init=()=>{if(initedRef.current)return;initedRef.current=true;setVisible(true);rafRef.current=requestAnimationFrame(sync);};const t=setTimeout(init,300);window.addEventListener(\"loaderComplete\",init);return()=>{clearTimeout(t);cancelAnimationFrame(rafRef.current);window.removeEventListener(\"loaderComplete\",init);};},[activeColor,inactiveColor]);const handleClick=i=>{setClicked(i);setTimeout(()=>{setClicked(null);const api=window.__smoothScroll;api?.scrollToSection(i);},100);};return /*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",bottom:BOTTOM,left:MX,right:MX,zIndex:10,display:\"flex\",gap:GAP,alignItems:\"flex-end\",pointerEvents:\"none\",opacity:visible?1:0,transition:\"opacity 0.5s ease\"},children:Array.from({length:N},(_,i)=>{const isHov=hovered===i;const isClk=clicked===i;const segH=isClk?1:isHov?8:4;return /*#__PURE__*/_jsx(\"div\",{onMouseEnter:()=>setHovered(i),onMouseLeave:()=>setHovered(null),onClick:()=>handleClick(i),role:\"button\",tabIndex:0,\"aria-label\":`Section ${i+1}`,onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();handleClick(i);}},style:{flex:1,height:segH,borderRadius:RADIUS,// Hover changes base background; fill sits on top\nbackgroundColor:isHov?HOVER_BG:inactiveColor,cursor:\"pointer\",position:\"relative\",overflow:\"hidden\",pointerEvents:\"auto\",transition:\"height 0.15s ease\"},children:isClk?// 100ms click flash: full-width low-opacity green\n/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:CLICK_BG,borderRadius:RADIUS}}):// Fill bar: width driven by RAF loop (direct DOM write)\n/*#__PURE__*/_jsx(\"div\",{ref:el=>{fillRefs.current[i]=el;},style:{position:\"absolute\",top:0,left:0,width:\"0%\",height:\"100%\",background:activeColor,borderRadius:RADIUS,pointerEvents:\"none\",willChange:\"width\"}})},i);})});}addPropertyControls(SectionIndicator,{activeColor:{type:ControlType.Color,title:\"Active\",defaultValue:ACTIVE},inactiveColor:{type:ControlType.Color,title:\"Inactive\",defaultValue:INACTIVE}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SectionIndicator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SectionIndicator.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * SmoothScroll V8.2 — Mobile/Touch aware\n *\n * Added over V8.1:\n *   - isTouch detection via matchMedia(\"(hover:none) and (pointer:coarse)\")\n *   - Touch devices: lighter lerp, no smoothWheel, magnetic snap disabled\n *   - Desktop: unchanged behaviour (lerp 0.08, smoothWheel, magnetic snap)\n */const wait=ms=>new Promise(r=>setTimeout(r,ms));const W=window;const easeInOutCubic=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;const easeOutQuart=t=>1-Math.pow(1-t,4);export default function SmoothScroll(props){const{children,scrollDuration=1.5,pauseDuration=2}=props;const[ready,setReady]=useState(false);useEffect(()=>{if(W.Lenis){setReady(true);return;}const s=document.createElement(\"script\");s.src=\"https://cdn.jsdelivr.net/npm/@studio-freight/lenis@1.0.42/dist/lenis.min.js\";s.onload=()=>setReady(true);s.onerror=()=>setReady(true);document.head.appendChild(s);},[]);useEffect(()=>{if(!ready)return;const LenisClass=W.Lenis;if(!LenisClass){window.addEventListener(\"gg:play\",()=>window.dispatchEvent(new CustomEvent(\"gg:autoplayDone\")),{once:true});return;}// ── Touch detection ───────────────────────────────────────────────\nconst isTouch=window.matchMedia(\"(hover: none) and (pointer: coarse)\").matches;const lenis=new LenisClass(isTouch?{lerp:.12}// touch: minimal smoothing, native feel\n:{lerp:.08,smoothWheel:true}// desktop: full smooth wheel\n);W.__ggVelocity=0;W.__ggLenis=lenis;lenis.stop();// ── State flags ───────────────────────────────────────────────────\nlet isAutoPlaying=false;let isSnapping=false;// ── Pause API ─────────────────────────────────────────────────────\nlet isPaused=false;let scrollResolve=null;let resumeFn=null;const pauseAutoplay=()=>{if(isPaused)return;isPaused=true;W.__ggAutoplay.isPaused=true;lenis.stop();if(scrollResolve){scrollResolve();scrollResolve=null;}};const resumeAutoplay=()=>{if(!isPaused)return;isPaused=false;W.__ggAutoplay.isPaused=false;lenis.start();if(resumeFn){resumeFn();resumeFn=null;}};W.__ggAutoplay={pause:pauseAutoplay,resume:resumeAutoplay,isPaused:false};const waitForResume=()=>new Promise(r=>{resumeFn=r;});// ── Promisified scrollTo ──────────────────────────────────────────\nconst scrollTo=(target,dur)=>new Promise(resolve=>{scrollResolve=resolve;const fallback=setTimeout(()=>{scrollResolve=null;resolve();},(dur+1.5)*1e3);lenis.scrollTo(target,{duration:dur,easing:easeInOutCubic,onComplete:()=>{clearTimeout(fallback);scrollResolve=null;resolve();}});});// ── Cinematic auto-play sequence ──────────────────────────────────\nconst autoPlay=async()=>{isAutoPlaying=true;lenis.start();await wait(600);const vh=window.innerHeight;const totalScroll=document.documentElement.scrollHeight-vh;const numSteps=Math.max(1,Math.round(totalScroll/vh));for(let i=1;i<=numSteps;i++){if(isPaused)await waitForResume();await scrollTo(Math.min(i*vh,totalScroll),scrollDuration);if(i<numSteps){if(isPaused)await waitForResume();await wait(pauseDuration*1e3);}}await wait(pauseDuration*1e3);isPaused=false;isAutoPlaying=false;W.__ggAutoplay.isPaused=false;window.dispatchEvent(new CustomEvent(\"gg:autoplayDone\"));};const onPlay=e=>{const detail=e.detail;if(detail?.autoplay)autoPlay();else lenis.start();};try{if(sessionStorage.getItem(\"gg-loaded\"))lenis.start();}catch(_){}window.addEventListener(\"gg:play\",onPlay);// ── Magnetic snap — desktop only ──────────────────────────────────\nlet snapTimer=null;let prevAbsVel=0;const doSnap=()=>{if(isAutoPlaying||isPaused||isSnapping)return;const vh=window.innerHeight;const raw=lenis.scroll/vh;const target=Math.round(raw)*Math.max(vh,1);if(Math.abs(lenis.scroll-target)>2){isSnapping=true;lenis.scrollTo(target,{duration:.65,easing:easeOutQuart,onComplete:()=>{isSnapping=false;}});}};// ── RAF loop ──────────────────────────────────────────────────────\nlet rafId;let scrollDir=1;let lastEvFrom=-1;let lastEvTo=-1;let lastEvProgress=-1;const raf=time=>{lenis.raf(time);W.__ggVelocity=lenis.velocity;const absVel=Math.abs(lenis.velocity);if(absVel>.01)scrollDir=lenis.velocity>0?1:-1;// Magnetic snap — skip entirely on touch devices\nif(!isTouch&&!isAutoPlaying&&!isPaused){if(absVel>1){if(snapTimer){clearTimeout(snapTimer);snapTimer=null;}if(isSnapping)isSnapping=false;}else if(prevAbsVel>.5&&absVel<=.5&&!isSnapping){if(snapTimer)clearTimeout(snapTimer);snapTimer=setTimeout(()=>{snapTimer=null;doSnap();},120);}}prevAbsVel=absVel;// ── Section tracker ───────────────────────────────────────────\nconst vh=window.innerHeight;const raw=lenis.scroll/vh;const flr=Math.floor(raw);const frac=raw-flr;const isSettled=frac<.002||frac>.998;let from,to,progress;if(isSettled){const s=frac<.5?flr:flr+1;from=s;to=s;progress=1;}else if(scrollDir>0){from=flr;to=flr+1;progress=frac;}else{from=flr+1;to=flr;progress=1-frac;}W.__smoothScroll={currentSection:Math.round(raw),transitionProgress:progress,isTransitioning:!isSettled,transitionFrom:from,transitionTo:to,scrollToSection:i=>lenis.scrollTo(i*Math.max(window.innerHeight,1),{duration:scrollDuration,easing:easeInOutCubic})};if(from!==lastEvFrom||to!==lastEvTo||Math.abs(progress-lastEvProgress)>.002){lastEvFrom=from;lastEvTo=to;lastEvProgress=progress;window.dispatchEvent(new CustomEvent(\"gg:sectionChange\",{detail:{from,to,progress}}));}rafId=requestAnimationFrame(raf);};rafId=requestAnimationFrame(raf);return()=>{window.removeEventListener(\"gg:play\",onPlay);cancelAnimationFrame(rafId);if(snapTimer)clearTimeout(snapTimer);lenis.destroy();delete W.__ggLenis;delete W.__smoothScroll;delete W.__ggAutoplay;};},[ready,scrollDuration,pauseDuration]);return /*#__PURE__*/_jsx(\"div\",{style:{display:\"contents\"},children:children});}addPropertyControls(SmoothScroll,{scrollDuration:{title:\"Scroll Duration (s)\",type:ControlType.Number,defaultValue:1.5,min:.5,max:4,step:.1},pauseDuration:{title:\"Pause Duration (s)\",type:ControlType.Number,defaultValue:2,min:.5,max:5,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useAnimationFrame}from\"framer-motion\";/**\n * VortexText V3.5\n *\n * Fixes over V3.4:\n *  - Mobile responsive: font scales to ~60px on phone so text wraps word-by-word\n *  - overflow-wrap: break-word safety net on container\n *  - Space chars are regular spaces so word-wrap works naturally\n *  - Primary hidden with opacity:0 + translateY(-120%) after animation\n */const W=window;function getFontCSS(font){if(!font)return{};const css={};if(font.fontFamily)css.fontFamily=font.fontFamily;if(font.fontSize)css.fontSize=font.fontSize;if(font.fontWeight)css.fontWeight=font.fontWeight;if(font.fontStyle)css.fontStyle=font.fontStyle;if(font.lineHeight)css.lineHeight=font.lineHeight;if(font.letterSpacing)css.letterSpacing=font.letterSpacing;return css;}export default function VortexText({text=\"Hello World\",font,color=\"#FFFFFF\",accentColor=\"#40C387\",textAlign=\"left\",section=0,staggerMs=30,duration=600,skewIntensity=.15}){const containerRef=useRef(null);const entryDoneRef=useRef(false);const entryStartedRef=useRef(false);// ── Responsive CSS injection ──────────────────────────────────────────\nuseEffect(()=>{if(typeof window===\"undefined\")return;if(document.getElementById(\"gg-vortex-css\"))return;const s=document.createElement(\"style\");s.id=\"gg-vortex-css\";// ~60px on phone → \"Creativity\" (~330px) fits in 342px, text wraps word by word\n// ~100px on tablet → 2-line wrap, still readable\ns.textContent=`\n            @media (max-width: 809px) {\n                [data-framer-name=\"VortexText\"] {\n                    font-size: 58px !important;\n                    overflow-wrap: break-word !important;\n                    word-break: break-word !important;\n                }\n                [data-framer-name=\"VortexText\"] span {\n                    font-size: inherit !important;\n                }\n            }\n            @media (min-width: 810px) and (max-width: 1199px) {\n                [data-framer-name=\"VortexText\"] {\n                    font-size: clamp(80px, 10vw, 120px) !important;\n                }\n                [data-framer-name=\"VortexText\"] span {\n                    font-size: inherit !important;\n                }\n            }\n        `;document.head.appendChild(s);},[]);useAnimationFrame(()=>{if(!containerRef.current||!entryDoneRef.current)return;const velocity=W.__ggVelocity??0;const skew=Math.min(Math.max(velocity*skewIntensity,-14),14);containerRef.current.style.transform=`skewY(${skew}deg)`;});useEffect(()=>{const playEntry=()=>{if(entryStartedRef.current)return;entryStartedRef.current=true;const slots=containerRef.current?.querySelectorAll(\"[data-char-slot]\")||[];if(!slots.length)return;const EASING=\"cubic-bezier(0.34, 1.48, 0.64, 1)\";slots.forEach((slot,i)=>{const delay=i*staggerMs;const primary=slot.querySelector(\"[data-primary]\");if(primary){primary.style.transform=\"translateY(-100%)\";primary.style.opacity=\"1\";primary.style.transition=`transform ${duration}ms ${EASING} ${delay}ms, opacity ${duration*.6}ms ease-out ${delay}ms`;}const secondary=slot.querySelector(\"[data-secondary]\");if(secondary){secondary.style.transform=\"translateY(0%)\";secondary.style.transition=`transform ${duration}ms ${EASING} ${delay}ms`;}if(i===slots.length-1){setTimeout(()=>{entryDoneRef.current=true;slots.forEach(s=>{const p=s.querySelector(\"[data-primary]\");const sec=s.querySelector(\"[data-secondary]\");if(p){p.style.transition=\"\";p.style.transform=\"translateY(-120%)\";p.style.opacity=\"0\"// belt+suspenders: large fonts bleed through clip\n;}if(sec){sec.style.transition=\"\";sec.style.transform=\"none\";}});},delay+duration+50);}});};const onPlay=()=>{if(section===0)setTimeout(playEntry,200);};const onSectionChange=e=>{const{to,progress}=e.detail;if(to===section&&progress>.5)playEntry();};try{if(sessionStorage.getItem(\"gg-loaded\")&&section===0){setTimeout(playEntry,350);}}catch(_){}window.addEventListener(\"gg:play\",onPlay,{once:true});window.addEventListener(\"gg:sectionChange\",onSectionChange);return()=>{window.removeEventListener(\"gg:play\",onPlay);window.removeEventListener(\"gg:sectionChange\",onSectionChange);};},[section,text,staggerMs,duration]);const fontCSS=getFontCSS(font);const chars=text.split(\"\");return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{display:\"block\",textAlign,willChange:\"transform\",transformOrigin:\"center center\",overflowWrap:\"break-word\",...fontCSS},children:chars.map((char,i)=>/*#__PURE__*/_jsxs(\"span\",{\"data-char-slot\":\"\",style:{display:\"inline-block\",position:\"relative\",verticalAlign:\"bottom\",clipPath:\"inset(-0.3em 0 0.02em 0)\"},children:[/*#__PURE__*/_jsx(\"span\",{\"data-primary\":\"\",style:{display:\"block\",color,transform:\"translateY(0%)\",opacity:1,lineHeight:\"inherit\"},children:char===\" \"?\" \":char}),/*#__PURE__*/_jsx(\"span\",{\"data-secondary\":\"\",\"aria-hidden\":\"true\",style:{display:\"block\",position:\"absolute\",top:0,left:0,right:0,pointerEvents:\"none\",color:accentColor,transform:\"translateY(100%)\",lineHeight:\"inherit\"},children:char===\" \"?\" \":char})]},`${char}-${i}`))});}addPropertyControls(VortexText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Hello World\",displayTextArea:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\"},color:{type:ControlType.Color,title:\"Primary Color\",defaultValue:\"#FFFFFF\"},accentColor:{type:ControlType.Color,title:\"Accent Color\",defaultValue:\"#40C387\"},textAlign:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},section:{type:ControlType.Number,title:\"Section\",defaultValue:0,min:0,max:7,step:1},staggerMs:{type:ControlType.Number,title:\"Stagger (ms)\",defaultValue:30,min:0,max:100,step:5},duration:{type:ControlType.Number,title:\"Duration (ms)\",defaultValue:600,min:200,max:1200,step:100},skewIntensity:{type:ControlType.Number,title:\"Skew Intensity\",defaultValue:.15,min:0,max:.5,step:.01}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VortexText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VortexText.map"],"mappings":"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"}