{"version":3,"file":"QEf5dUBut.Con-VasT.mjs","names":["getProps","React.forwardRef","useRef","React.useContext","React.useMemo","React.Fragment","Rocket","React.forwardRef","useRef","React.useId","sharedStyle.className","RichText","sharedStyle.css","sharedStyle.fonts","useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/6OfMMI77R5mpvsdFgMhv/kqcAHHsJzDbmM8DiZQ3u/N56HpYPBp.js","https:/framerusercontent.com/modules/aZv0IBlbtH8fqAvXTwno/s0RxNfCLzRyk5RgEeddt/Sparkles_prod.js","https:/framerusercontent.com/modules/QHsI70TDP6yXAGL4tn60/nuGVHF5qU5fhJg2q6KkD/Vnhg1XeHY.js","https:/framerusercontent.com/modules/cK97UFvPoHPdxCYUEGcM/GfaBKLHuRrjnvym1YHkp/SrollTextReveal.js","https:/framerusercontent.com/modules/e5BnJ8R0nWIEFvttdQmy/6XTPm4N23Z6Jh00NZkjC/QEf5dUBut.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0.174 3.406 C 0.025 3.585 -0.033 3.822 0.018 4.049 L 1.177 9.264 C 1.233 9.517 1.416 9.723 1.66 9.809 C 1.904 9.895 2.176 9.849 2.378 9.687 L 5.139 7.602 C 3.441 4.736 2.906 2.188 3.015 0 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"9.851753518036176px\" id=\"LpyAcAavm\" transform=\"translate(3.75 10.398)\" width=\"5.138616817656228px\"/><path d=\"M 2.123 0 C 2.237 2.188 1.698 4.736 0 7.602 L 2.761 9.687 C 2.963 9.849 3.234 9.895 3.479 9.809 C 3.723 9.723 3.906 9.517 3.962 9.264 L 5.121 4.049 C 5.171 3.822 5.114 3.585 4.965 3.406 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"9.851753518036148px\" id=\"hh6tvULoK\" transform=\"translate(15.112 10.398)\" width=\"5.138616817656214px\"/><path d=\"M 3 0 L 0 0\" fill=\"transparent\" height=\"1px\" id=\"gEgK2innK\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(10.5 21)\" width=\"3px\"/><path d=\"M 0 1.125 C 0 0.504 0.504 0 1.125 0 C 1.746 0 2.25 0.504 2.25 1.125 C 2.25 1.746 1.746 2.25 1.125 2.25 C 0.504 2.25 0 1.746 0 1.125 Z\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"2.25px\" id=\"SNGmkjRW2\" transform=\"translate(10.875 8.25)\" width=\"2.25px\"/><path d=\"M 2.139 16.5 C -3.232 7.437 2.988 1.55 4.79 0.158 C 5.061 -0.053 5.44 -0.053 5.711 0.158 C 7.512 1.55 13.733 7.437 8.362 16.5 Z\" fill=\"transparent\" height=\"16.500374673448476px\" id=\"QSMF4pk4Q\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(6.75 1.5)\" width=\"10.500538739026126px\"/><path d=\"M 2.123 0 L 4.965 3.409 C 5.114 3.587 5.171 3.825 5.121 4.052 L 3.962 9.267 C 3.906 9.52 3.723 9.726 3.479 9.812 C 3.234 9.898 2.963 9.852 2.761 9.69 L 0 7.605\" fill=\"transparent\" height=\"9.854566018036166px\" id=\"O1gf8wxq3\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(15.112 10.395)\" width=\"5.138616817656214px\"/><path d=\"M 3.015 0 L 0.174 3.409 C 0.025 3.587 -0.033 3.825 0.018 4.052 L 1.177 9.267 C 1.233 9.52 1.416 9.726 1.66 9.812 C 1.904 9.898 2.176 9.852 2.378 9.69 L 5.139 7.605\" fill=\"transparent\" height=\"9.854566018036166px\" id=\"XAS__TOwP\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3.75 10.395)\" width=\"5.138616817656228px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"3380339736\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-oHe2P\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-oHe2P { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Rocket\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-oHe2P\");Icon.displayName=\"Rocket\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"24\",\"framerVector\":\"{\\\"name\\\":\\\"Rocket\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"true\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// CSS variable token and color parsing (hex/rgba/var())\nconst cssVariableRegex=/var\\s*\\(\\s*(--[\\w-]+)(?:\\s*,\\s*((?:[^)(]+|\\((?:[^)(]+|\\([^)(]*\\))*\\))*))?\\s*\\)/;function extractDefaultValue(cssVar){if(!cssVar||!cssVar.startsWith(\"var(\"))return cssVar;const match=cssVariableRegex.exec(cssVar);if(!match)return cssVar;const fallback=(match[2]||\"\").trim();if(fallback.startsWith(\"var(\"))return extractDefaultValue(fallback);return fallback||cssVar;}function resolveTokenColor(input){if(!input||typeof input!==\"string\")return input||\"\";if(!input.startsWith(\"var(\"))return input;return extractDefaultValue(input);}function parseColorToRgba(input){if(!input)return{r:0,g:0,b:0,a:1};const str=input.trim();// Handle rgba() format\nconst rgbaMatch=str.match(/rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*(?:,\\s*([\\d.]+)\\s*)?\\)/i);if(rgbaMatch){const r=Math.max(0,Math.min(255,parseFloat(rgbaMatch[1])))/255;const g=Math.max(0,Math.min(255,parseFloat(rgbaMatch[2])))/255;const b=Math.max(0,Math.min(255,parseFloat(rgbaMatch[3])))/255;const a=rgbaMatch[4]!==undefined?Math.max(0,Math.min(1,parseFloat(rgbaMatch[4]))):1;return{r,g,b,a};}// Handle hex formats\nconst hex=str.replace(/^#/,\"\");if(hex.length===8){return{r:parseInt(hex.slice(0,2),16)/255,g:parseInt(hex.slice(2,4),16)/255,b:parseInt(hex.slice(4,6),16)/255,a:parseInt(hex.slice(6,8),16)/255};}if(hex.length===6){return{r:parseInt(hex.slice(0,2),16)/255,g:parseInt(hex.slice(2,4),16)/255,b:parseInt(hex.slice(4,6),16)/255,a:1};}if(hex.length===4){return{r:parseInt(hex[0]+hex[0],16)/255,g:parseInt(hex[1]+hex[1],16)/255,b:parseInt(hex[2]+hex[2],16)/255,a:parseInt(hex[3]+hex[3],16)/255};}if(hex.length===3){return{r:parseInt(hex[0]+hex[0],16)/255,g:parseInt(hex[1]+hex[1],16)/255,b:parseInt(hex[2]+hex[2],16)/255,a:1};}return{r:0,g:0,b:0,a:1};}function rgbaToCanvasColor(rgba){const r=Math.round(rgba.r*255);const g=Math.round(rgba.g*255);const b=Math.round(rgba.b*255);if(rgba.a===1){return`rgb(${r}, ${g}, ${b})`;}return`rgba(${r}, ${g}, ${b}, ${rgba.a})`;}const DEFAULTS={background:\"#000000\",particleColor:\"#ffffff\",particleDensity:.5,minSize:.5,maxSize:1,speed:.5,particleSpeed:.5};// Mapping function: UI 0.1..1 → internal 0.5..12\nfunction mapFlickerUiToInternal(ui){const clamped=Math.max(.1,Math.min(1,ui));const t=(clamped-.1)/.9;return .5+t*11.5// Maps to 0.5..12\n;}// Mapping function: UI 0.1..1 → internal 5..60\nfunction mapDensityUiToInternal(ui){const clamped=Math.max(.1,Math.min(1,ui));const t=(clamped-.1)/.9;return 5+t*55// Maps to 5..60\n;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n * @framerDisableUnlink\n */export default function Sparkles({preview=false,background=DEFAULTS.background,particleColor=DEFAULTS.particleColor,particleDensity=DEFAULTS.particleDensity,minSize=DEFAULTS.minSize,maxSize=DEFAULTS.maxSize,speed=DEFAULTS.speed,particleSpeed=DEFAULTS.particleSpeed,style}){const canvasRef=useRef(null);const containerRef=useRef(null);const zoomProbeRef=useRef(null);const particlesRef=useRef([]);const animationRef=useRef(null);const lastFrameTimeRef=useRef(0)// Track last frame time for delta-time\n;const lastRef=useRef({w:0,h:0,aspect:0,ts:0});// Initialize particles\nconst initParticles=(width,height)=>{const particles=[];const area=width*height;const mappedDensity=mapDensityUiToInternal(particleDensity);const count=Math.floor(area/1e4*mappedDensity);const velocityMultiplier=particleSpeed*.5// Maps 0-1 to 0-0.5\n;for(let i=0;i<count;i++){particles.push({x:Math.random()*width,y:Math.random()*height,vx:(Math.random()-.5)*velocityMultiplier,vy:(Math.random()-.5)*velocityMultiplier,size:minSize+Math.random()*(maxSize-minSize),opacity:Math.random(),opacityVel:(Math.random()-.5)*.04});}particlesRef.current=particles;};// Main canvas setup and animation\nuseEffect(()=>{const canvas=canvasRef.current;const container=containerRef.current;if(!canvas||!container)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const resize=()=>{const dpr=window.devicePixelRatio||1;const width=container.clientWidth||container.offsetWidth||1;const height=container.clientHeight||container.offsetHeight||1;canvas.width=width*dpr;canvas.height=height*dpr;canvas.style.width=`${width}px`;canvas.style.height=`${height}px`;ctx.scale(dpr,dpr);initParticles(width,height);};resize();const isCanvasMode=RenderTarget.current()===RenderTarget.canvas;const shouldAnimate=!isCanvasMode||preview;const mappedSpeed=mapFlickerUiToInternal(speed);// Parse colors with token and opacity support\nconst resolvedBackground=resolveTokenColor(background);const backgroundRgba=parseColorToRgba(resolvedBackground);const backgroundColor=rgbaToCanvasColor(backgroundRgba);const resolvedParticleColor=resolveTokenColor(particleColor);const particleColorRgba=parseColorToRgba(resolvedParticleColor);const particleColorBase=rgbaToCanvasColor({...particleColorRgba,a:1})// Base color without alpha\n;const animate=currentTime=>{if(!canvas||!ctx)return;// Calculate delta time (time since last frame) for frame-rate independent animation\n// Target 60fps (16.67ms) as baseline\nconst deltaTime=lastFrameTimeRef.current===0?1:Math.min((currentTime-lastFrameTimeRef.current)/16.67,3)// Cap at 3x to prevent huge jumps\n;lastFrameTimeRef.current=currentTime;const width=canvas.width/(window.devicePixelRatio||1);const height=canvas.height/(window.devicePixelRatio||1);// Clear canvas completely first, then draw background\nctx.clearRect(0,0,width,height);ctx.fillStyle=backgroundColor;ctx.fillRect(0,0,width,height);// Update and draw particles\nconst particles=particlesRef.current;const particleCount=particles.length;const baseAlpha=particleColorRgba.a;// Set fill style once for all particles (performance optimization)\nctx.fillStyle=particleColorBase;for(let i=0;i<particleCount;i++){const particle=particles[i];// Update position\nif(shouldAnimate){particle.x+=particle.vx*deltaTime;particle.y+=particle.vy*deltaTime;// Wrap around edges\nif(particle.x<0)particle.x=width;if(particle.x>width)particle.x=0;if(particle.y<0)particle.y=height;if(particle.y>height)particle.y=0;// Update opacity (flicker effect) - frame-rate independent\nparticle.opacity+=particle.opacityVel*mappedSpeed*.5*deltaTime;// Bounce opacity at boundaries and clamp\nif(particle.opacity<=.1){particle.opacity=.1;particle.opacityVel=Math.abs(particle.opacityVel)// Make positive\n;}else if(particle.opacity>=1){particle.opacity=1;particle.opacityVel=-Math.abs(particle.opacityVel)// Make negative\n;}}// Draw particle with combined opacity (particleColor alpha * particle opacity)\nctx.globalAlpha=baseAlpha*particle.opacity;ctx.beginPath();ctx.arc(particle.x,particle.y,particle.size,0,Math.PI*2);ctx.fill();}ctx.globalAlpha=1;if(shouldAnimate){animationRef.current=requestAnimationFrame(animate);}};// Reset frame time and start animation\nlastFrameTimeRef.current=0;animationRef.current=requestAnimationFrame(animate);// Canvas resize detection for Framer Canvas\nlet resizeRafId=0;if(RenderTarget.current()===RenderTarget.canvas){const TICK_MS=250;const EPSPECT=.001;const tick=now=>{const container=containerRef.current;if(container){const cw=container.clientWidth||container.offsetWidth||1;const ch=container.clientHeight||container.offsetHeight||1;const aspect=cw/ch;const timeOk=!lastRef.current.ts||(now||performance.now())-lastRef.current.ts>=TICK_MS;const aspectChanged=Math.abs(aspect-lastRef.current.aspect)>EPSPECT;const sizeChanged=Math.abs(cw-lastRef.current.w)>1||Math.abs(ch-lastRef.current.h)>1;if(timeOk&&(aspectChanged||sizeChanged)){lastRef.current={w:cw,h:ch,aspect,ts:now||performance.now()};resize();if(!shouldAnimate){// Render one frame in canvas mode when preview is off\nconst particles=particlesRef.current;const particleCount=particles.length;const baseAlpha=particleColorRgba.a;ctx.clearRect(0,0,cw,ch);ctx.fillStyle=backgroundColor;ctx.fillRect(0,0,cw,ch);ctx.fillStyle=particleColorBase;for(let i=0;i<particleCount;i++){const particle=particles[i];ctx.globalAlpha=baseAlpha*particle.opacity;ctx.beginPath();ctx.arc(particle.x,particle.y,particle.size,0,Math.PI*2);ctx.fill();}ctx.globalAlpha=1;}}}resizeRafId=requestAnimationFrame(tick);};resizeRafId=requestAnimationFrame(tick);}else{window.addEventListener(\"resize\",resize);}return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}if(resizeRafId){cancelAnimationFrame(resizeRafId);}window.removeEventListener(\"resize\",resize);};},[background,particleColor,particleDensity,minSize,maxSize,speed,particleSpeed,preview]);// Force render when colors change in canvas mode\nuseEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;const isCanvasMode=RenderTarget.current()===RenderTarget.canvas;const shouldAnimate=!isCanvasMode||preview;if(isCanvasMode&&!shouldAnimate){const ctx=canvas.getContext(\"2d\");if(!ctx)return;// Parse colors\nconst resolvedBackground=resolveTokenColor(background);const backgroundRgba=parseColorToRgba(resolvedBackground);const backgroundColor=rgbaToCanvasColor(backgroundRgba);const resolvedParticleColor=resolveTokenColor(particleColor);const particleColorRgba=parseColorToRgba(resolvedParticleColor);const particleColorBase=rgbaToCanvasColor({...particleColorRgba,a:1});const width=canvas.width/(window.devicePixelRatio||1);const height=canvas.height/(window.devicePixelRatio||1);// Force render with new colors\nconst particles=particlesRef.current;const particleCount=particles.length;const baseAlpha=particleColorRgba.a;ctx.clearRect(0,0,width,height);ctx.fillStyle=backgroundColor;ctx.fillRect(0,0,width,height);ctx.fillStyle=particleColorBase;for(let i=0;i<particleCount;i++){const particle=particles[i];ctx.globalAlpha=baseAlpha*particle.opacity;ctx.beginPath();ctx.arc(particle.x,particle.y,particle.size,0,Math.PI*2);ctx.fill();}ctx.globalAlpha=1;}},[background,particleColor,preview]);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:zoomProbeRef,style:{position:\"absolute\",width:20,height:20,opacity:0,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\"}})]});}addPropertyControls(Sparkles,{preview:{type:ControlType.Boolean,title:\"Preview\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},particleDensity:{type:ControlType.Number,title:\"Density\",min:.1,max:1,step:.05,defaultValue:DEFAULTS.particleDensity},minSize:{type:ControlType.Number,title:\"Min Size\",min:.5,max:10,step:.5,defaultValue:DEFAULTS.minSize,unit:\"px\"},maxSize:{type:ControlType.Number,title:\"Max Size\",min:.5,max:15,step:.5,defaultValue:DEFAULTS.maxSize,unit:\"px\"},speed:{type:ControlType.Number,title:\"Flicker\",min:.1,max:1,step:.05,defaultValue:DEFAULTS.speed},particleSpeed:{type:ControlType.Number,title:\"Speed\",min:0,max:1,step:.1,defaultValue:DEFAULTS.particleSpeed},particleColor:{type:ControlType.Color,title:\"Sparkle\",defaultValue:DEFAULTS.particleColor},background:{type:ControlType.Color,title:\"Background\",defaultValue:DEFAULTS.background,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});Sparkles.displayName=\"Sparkles\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Sparkles\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"400\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Sparkles_prod.map","// Generated by Framer (7175f5c)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Instance,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Rocket from\"https://framerusercontent.com/modules/6OfMMI77R5mpvsdFgMhv/kqcAHHsJzDbmM8DiZQ3u/N56HpYPBp.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/JniNLJoQXyyTfRBcK9QU/KGSwDtymY7hcdeWebGF2/RWfc7vDR6.js\";const serializationHash=\"framer-MkYkV\";const variantClassNames={cZ2WKltwO:\"framer-v-fg1d2g\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const xSRnbPCyq=undefined;const u97BDJ5GZ=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,icon,id,label,width,...props})=>{return{...props,u97BDJ5GZ:label??props.u97BDJ5GZ??\"Set up in under 5 minutes\",xSRnbPCyq:icon??props.xSRnbPCyq??Rocket};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,xSRnbPCyq,u97BDJ5GZ,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"cZ2WKltwO\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-fg1d2g\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"cZ2WKltwO\",ref:refBinding,style:{backdropFilter:\"blur(10px)\",backgroundColor:\"var(--token-a96a290f-eab5-4140-957e-df78151c8367, rgba(255, 255, 255, 0.2))\",borderBottomLeftRadius:12,borderBottomRightRadius:12,borderTopLeftRadius:12,borderTopRightRadius:12,WebkitBackdropFilter:\"blur(10px)\",...style},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-d7dpfp\",\"data-framer-name\":\"rocket-line\",layoutDependency:layoutDependency,layoutId:\"Sq4mBU_5R\",children:/*#__PURE__*/_jsx(Instance,{animated:true,className:\"framer-rijgdr\",Component:xSRnbPCyq,layoutDependency:layoutDependency,layoutId:\"zdumnOunL\",style:{\"--1m6trwb\":0,\"--21h8s6\":\"var(--token-70d09b1f-cae2-4be1-afe4-f4517f7d7e20, rgb(255, 255, 255))\",\"--pgex8v\":1.5}})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mxgywa\",\"data-styles-preset\":\"RWfc7vDR6\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-70d09b1f-cae2-4be1-afe4-f4517f7d7e20, rgb(255, 255, 255)))\"},children:\"Set up in under 5 minutes\"})}),className:\"framer-1pzvsjd\",\"data-framer-name\":\"Set up in under 5 minutes\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"pYZHitgwE\",style:{\"--extracted-r6o4lv\":\"var(--token-70d09b1f-cae2-4be1-afe4-f4517f7d7e20, rgb(255, 255, 255))\",\"--framer-paragraph-spacing\":\"0px\"},text:u97BDJ5GZ,verticalAlignment:\"top\",withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-MkYkV.framer-14zrnyp, .framer-MkYkV .framer-14zrnyp { display: block; }\",\".framer-MkYkV.framer-fg1d2g { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 10px 13px 10px 12px; position: relative; width: min-content; }\",\".framer-MkYkV .framer-d7dpfp { aspect-ratio: 1 / 1; flex: none; gap: 0px; height: var(--framer-aspect-ratio-supported, 14px); overflow: var(--overflow-clip-fallback, clip); position: relative; width: 14px; }\",\".framer-MkYkV .framer-rijgdr { flex: none; height: var(--framer-aspect-ratio-supported, 14px); position: absolute; right: 0px; top: 0px; width: 14px; }\",\".framer-MkYkV .framer-1pzvsjd { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 34\n * @framerIntrinsicWidth 199\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"xSRnbPCyq\":\"icon\",\"u97BDJ5GZ\":\"label\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerVectorSets [\"omX0gWFPqDwhaiWwf6ab\"]\n */const FramerVnhg1XeHY=withCSS(Component,css,\"framer-MkYkV\");export default FramerVnhg1XeHY;FramerVnhg1XeHY.displayName=\"Badge\";FramerVnhg1XeHY.defaultProps={height:34,width:199};addPropertyControls(FramerVnhg1XeHY,{xSRnbPCyq:{defaultValue:{identifier:\"module:6OfMMI77R5mpvsdFgMhv/kqcAHHsJzDbmM8DiZQ3u/N56HpYPBp.js:default\",moduleId:\"6OfMMI77R5mpvsdFgMhv\"},setModuleId:\"omX0gWFPqDwhaiWwf6ab\",title:\"Icon\",type:ControlType.VectorSetItem},u97BDJ5GZ:{defaultValue:\"Set up in under 5 minutes\",displayTextArea:false,title:\"Label\",type:ControlType.String},onu97BDJ5GZChange:{changes:\"u97BDJ5GZ\",type:ControlType.ChangeHandler}});addFonts(FramerVnhg1XeHY,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerVnhg1XeHY\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"34\",\"framerIntrinsicWidth\":\"199\",\"framerVariables\":\"{\\\"xSRnbPCyq\\\":\\\"icon\\\",\\\"u97BDJ5GZ\\\":\\\"label\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerVectorSets\":\"[\\\"omX0gWFPqDwhaiWwf6ab\\\"]\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState,useMemo}from\"react\";/**\n * SCROLL REVEAL TEXT\n *\n * Text fills from a light color into a darker color — or a custom multi-stop\n * gradient — as the user scrolls. Supports multiple paragraphs inside one\n * component (so the animation stays in sync). Each paragraph is its own text\n * field added via the \"+\" button in the Paragraphs array.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 240\n */export default function ScrollRevealText(props){const{paragraphs,paragraphGap,sequence,animationStyle,intensity,startTrigger,endTrigger,defaultColor,fillType,scrollColor,gradientColors,gradientAngle,font,textAlign,direction,htmlTag,backgroundColor,borderRadius,paddingTop,paddingRight,paddingBottom,paddingLeft}=props;const containerRef=useRef(null);// Per-segment progress array — each segment tracks its own scroll position\nconst[segmentProgress,setSegmentProgress]=useState([]);// Scroll progress — calculated PER SEGMENT, not for the whole container.\n//\n// Each segment's vertical position is tracked independently. As that\n// segment crosses the trigger lines (defined as % from top of viewport),\n// its individual progress goes from 0 → 1.\n//\n//   startTrigger = 80 → segment starts filling when its top hits 80% from\n//                       top of viewport (i.e., bottom of the screen)\n//   endTrigger   = 20 → segment is fully filled when it reaches 20% from top\n//\n// This means the LAST line of text will animate when it personally crosses\n// the trigger zone, regardless of where the container's top is.\n// (Scroll listener is set up alongside position measurement below)\n// Build block list from paragraphs array\n// Each entry in `paragraphs` is { text: \"...\" }\nconst blocks=useMemo(()=>{if(!Array.isArray(paragraphs))return[];return paragraphs.map(p=>(p?.text||\"\").trim()).filter(t=>t.length>0).map(rawText=>{const segments=[];// Within a paragraph, treat \\n as line break\nconst lines=rawText.split(\"\\n\");lines.forEach((line,lineIdx)=>{if(sequence===\"line\"){if(line.length>0)segments.push({chars:line});}else if(sequence===\"word\"){const words=line.split(/(\\s+)/);words.forEach(w=>{if(w.length>0)segments.push({chars:w});});}else{for(const ch of line){segments.push({chars:ch});}}if(lineIdx<lines.length-1){segments.push({isBreak:true});}});return{segments};});},[paragraphs,sequence]);const totalVisible=useMemo(()=>{let n=0;blocks.forEach(b=>{b.segments.forEach(s=>{if(!s.isBreak)n++;});});return Math.max(1,n);},[blocks]);const safeIntensity=Math.max(1,Math.min(10,intensity));const overlap=.8-(safeIntensity-1)*(.75/9);const alignMap={left:\"left\",center:\"center\",right:\"right\"};// Spatial positioning via DOM measurement\nconst segRefs=useRef([]);// Cache positional t-values (0..1 along chosen direction) so wave/stagger know order\nconst tValuesRef=useRef([]);// Cache positional t-values (0..1 along the gradient angle) so gradient fill\n// can be sampled per-segment — independent of the reveal direction above.\nconst gradientTValuesRef=useRef([]);useEffect(()=>{if(typeof window===\"undefined\")return;let raf=0;// Measure positions of each segment (for direction-aware ordering).\n// Runs on resize/layout — NOT on every scroll, since positions in the\n// document don't change as you scroll (only relative to viewport).\nconst measure=()=>{const container=containerRef.current;if(!container)return;const cRect=container.getBoundingClientRect();const visible=segRefs.current.filter(Boolean);if(visible.length===0){tValuesRef.current=[];gradientTValuesRef.current=[];return;}const rects=visible.map(s=>s.getBoundingClientRect());const xs=rects.map(r=>r.left+r.width/2-cRect.left);const ys=rects.map(r=>r.top+r.height/2-cRect.top);const minX=Math.min(...xs);const maxX=Math.max(...xs);const minY=Math.min(...ys);const maxY=Math.max(...ys);const rangeX=Math.max(1,maxX-minX);const rangeY=Math.max(1,maxY-minY);tValuesRef.current=rects.map(r=>{const xCenter=r.left+r.width/2-cRect.left;const yCenter=r.top+r.height/2-cRect.top;switch(direction){case\"top-bottom\":return(yCenter-minY)/rangeY;case\"bottom-top\":return 1-(yCenter-minY)/rangeY;case\"left-right\":return(xCenter-minX)/rangeX;case\"right-left\":return 1-(xCenter-minX)/rangeX;default:return(yCenter-minY)/rangeY;}});// Gradient projection — independent of reveal direction. Each\n// segment's center is projected onto the gradient angle vector,\n// then normalized 0..1 across the full text block so the\n// gradient stretches edge-to-edge regardless of angle.\nif(fillType===\"gradient\"){const{x:dirX,y:dirY}=angleToVector(gradientAngle||0);const projections=xs.map((x,i)=>x*dirX+ys[i]*dirY);const minP=Math.min(...projections);const maxP=Math.max(...projections);const rangeP=Math.max(1e-4,maxP-minP);gradientTValuesRef.current=projections.map(p=>(p-minP)/rangeP);}else{gradientTValuesRef.current=[];}};// Per-segment scroll progress — runs on every scroll.\n// For each segment, compute progress based on where IT sits in the\n// viewport relative to the trigger lines.\nconst updateProgress=()=>{const visible=segRefs.current.filter(Boolean);if(visible.length===0){setSegmentProgress([]);return;}const vh=window.innerHeight||document.documentElement.clientHeight;const startY=Math.max(0,Math.min(100,startTrigger))/100*vh;const endY=Math.max(0,Math.min(100,endTrigger))/100*vh;const span=startY-endY;const next=visible.map(el=>{const r=el.getBoundingClientRect();// Use center of the segment as its reference point\nconst refY=r.top+r.height/2;if(Math.abs(span)<.5){return refY<=endY?1:0;}const p=(startY-refY)/span;return Math.max(0,Math.min(1,p));});setSegmentProgress(next);};const onScroll=()=>{cancelAnimationFrame(raf);raf=requestAnimationFrame(updateProgress);};const onLayoutChange=()=>{measure();updateProgress();};// Initial pass — measure layout, then a couple of follow-up frames\n// to catch font-loading reflow\nonLayoutChange();const raf1=requestAnimationFrame(onLayoutChange);const raf2=requestAnimationFrame(()=>requestAnimationFrame(onLayoutChange));const ro=new ResizeObserver(onLayoutChange);if(containerRef.current)ro.observe(containerRef.current);window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onLayoutChange);return()=>{cancelAnimationFrame(raf);cancelAnimationFrame(raf1);cancelAnimationFrame(raf2);ro.disconnect();window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",onLayoutChange);};},[paragraphs,sequence,direction,font,textAlign,paragraphGap,startTrigger,endTrigger,fillType,gradientAngle,gradientColors]);// Reset refs on each render\nsegRefs.current=[];let visibleIndex=-1;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...font,width:\"100%\",height:\"100%\",textAlign:alignMap[textAlign]||\"left\",color:defaultColor,wordBreak:\"break-word\",display:\"flex\",flexDirection:\"column\",gap:`${paragraphGap}px`,background:backgroundColor,borderRadius:`${borderRadius}px`,padding:`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`,boxSizing:\"border-box\"},children:blocks.map((block,bIdx)=>{const Tag=htmlTag||\"p\";return /*#__PURE__*/_jsx(Tag,{style:{margin:0},children:block.segments.map((seg,sIdx)=>{if(seg.isBreak){return /*#__PURE__*/_jsx(\"br\",{},`br-${bIdx}-${sIdx}`);}visibleIndex+=1;const idx=visibleIndex;const t=tValuesRef.current[idx]??idx/totalVisible;const segProgress=segmentProgress[idx]??0;const colorMix=computeFill(segProgress,t,overlap,animationStyle,idx);// Fill target: either the flat scrollColor, or a\n// color sampled from the gradient at this\n// segment's position along gradientAngle.\nconst targetColor=fillType===\"gradient\"?sampleGradient(gradientColors||[],gradientTValuesRef.current[idx]??t):scrollColor;const color=blendColors(defaultColor,targetColor,colorMix);const isSpace=seg.chars===\" \";const display=sequence===\"letter\"&&isSpace?\"inline\":\"inline-block\";return /*#__PURE__*/_jsx(\"span\",{ref:el=>{segRefs.current[idx]=el;},style:{color,display,transition:\"color 80ms linear\",transform:animationStyle===\"wave\"&&colorMix>0&&colorMix<1?`translateY(${Math.sin(idx*.6)*(1-Math.abs(colorMix-.5)*2)*2}px)`:undefined,whiteSpace:sequence===\"line\"?\"pre-wrap\":undefined},children:isSpace?\"\\xa0\":seg.chars},`s-${bIdx}-${sIdx}`);})},`b-${bIdx}`);})});}/* ---------- Fill computation ----------\n   Each segment gets its own progress (0..1) from scroll position.\n   For simple styles (linear/fade), we just apply easing to the segment's own progress.\n   For staggered styles, the segment's positional `t` decides whether/when it\n   participates relative to siblings — we use a derived \"global progress\" by\n   shifting each segment's threshold based on `t`.\n*/function computeFill(segProgress,t,overlap,style,idx){// Simple styles — each segment animates independently with its own progress\nif(style===\"linear\"){return segProgress;}if(style===\"fade\"){// smoothstep easing\nconst x=segProgress;return x*x*(3-2*x);}if(style===\"wave\"){// Add a sine-based offset so neighbors animate slightly out of phase\nconst phase=(Math.sin(idx*.55)+1)*.5// 0..1\n;// Compress segment's progress into a window offset by phase\n// Higher overlap = more synchronized; lower = more wavey separation\nconst window1=Math.max(.2,overlap);const shifted=(segProgress-phase*(1-window1))/window1;return Math.max(0,Math.min(1,shifted));}if(style===\"honey\"){// Slow-finishing ease-out cubic — feels viscous\nconst x=Math.max(0,Math.min(1,segProgress));return 1-Math.pow(1-x,3);}// ---- Stagger variants: binary fill based on a per-segment threshold ----\n// Each segment gets a threshold derived from its `t` (or random/center/etc).\n// When the segment's own progress crosses that threshold, it flips on.\n// We treat `t` as the global ordering and `segProgress` as how far this\n// segment has traveled.\n//\n// For staggers we use the segment progress directly compared to its order:\n// a segment \"later\" in the sequence needs higher progress to flip on.\n// The overlap controls how tight the stagger is.\nconst tightness=Math.max(.05,1-overlap)// 0.05..0.95\n;if(style===\"stagger\"){const threshold=t*tightness;return segProgress>threshold?1:0;}if(style===\"stagger-reverse\"){const threshold=(1-t)*tightness;return segProgress>threshold?1:0;}if(style===\"stagger-random\"){const seed=pseudoRandom(idx);const threshold=seed*tightness;return segProgress>threshold?1:0;}if(style===\"stagger-center\"){const centerT=Math.abs(t-.5)*2;const threshold=centerT*tightness;return segProgress>threshold?1:0;}if(style===\"stagger-edges\"){const edgeT=1-Math.abs(t-.5)*2;const threshold=edgeT*tightness;return segProgress>threshold?1:0;}if(style===\"stagger-alternate\"){const altT=idx%2===0?t*.5+.5:t*.5;const threshold=altT*tightness;return segProgress>threshold?1:0;}return segProgress;}// Tiny deterministic hash → 0..1 for stagger-random\nfunction pseudoRandom(n){const x=Math.sin(n*12.9898+78.233)*43758.5453;return x-Math.floor(x);}/* ---------- Gradient helpers ---------- */// Converts a CSS-style gradient angle (0deg = to top, increases clockwise,\n// 90deg = to right) into a unit direction vector in screen space (y-down).\nfunction angleToVector(angleDeg){const rad=angleDeg*Math.PI/180;return{x:Math.sin(rad),y:-Math.cos(rad)};}// Samples a color from an ordered list of color stops at position t (0..1).\n// Stops are assumed evenly spaced along the gradient. Falls back gracefully\n// for 0 or 1 stop.\nfunction sampleGradient(colors,t){if(!Array.isArray(colors)||colors.length===0)return\"#000000\";if(colors.length===1)return colors[0];const clamped=Math.max(0,Math.min(1,t));const stepCount=colors.length-1;const segment=1/stepCount;let idx=Math.floor(clamped/segment);if(idx>=stepCount)idx=stepCount-1;if(idx<0)idx=0;const localT=(clamped-idx*segment)/segment;return blendColors(colors[idx],colors[idx+1],localT);}/* ---------- Color blending ---------- */function blendColors(a,b,t){const ca=parseColor(a);const cb=parseColor(b);if(!ca||!cb)return t>.5?b:a;const r=Math.round(ca.r+(cb.r-ca.r)*t);const g=Math.round(ca.g+(cb.g-ca.g)*t);const bl=Math.round(ca.b+(cb.b-ca.b)*t);const al=ca.a+(cb.a-ca.a)*t;return`rgba(${r},${g},${bl},${al})`;}function parseColor(c){if(!c)return null;if(c.startsWith(\"#\")){let hex=c.slice(1);if(hex.length===3)hex=hex.split(\"\").map(x=>x+x).join(\"\");if(hex.length!==6&&hex.length!==8)return null;const r=parseInt(hex.slice(0,2),16);const g=parseInt(hex.slice(2,4),16);const b=parseInt(hex.slice(4,6),16);const a=hex.length===8?parseInt(hex.slice(6,8),16)/255:1;return{r,g,b,a};}const m=c.match(/rgba?\\(([^)]+)\\)/);if(m){const parts=m[1].split(\",\").map(p=>parseFloat(p.trim()));return{r:parts[0]||0,g:parts[1]||0,b:parts[2]||0,a:parts[3]!==undefined?parts[3]:1};}return null;}/* ---------- Property Controls ---------- */addPropertyControls(ScrollRevealText,{paragraphs:{type:ControlType.Array,title:\"Paragraphs\",control:{type:ControlType.Object,controls:{text:{type:ControlType.String,title:\"Text\",defaultValue:\"\",displayTextArea:true}}},defaultValue:[{text:\"We turn complex problems into simple, scroll-stopping experiences.\"},{text:\"Our team works at the intersection of design, engineering, and brand to build products that people remember.\"}]},paragraphGap:{type:ControlType.Number,title:\"Paragraph Gap\",defaultValue:24,min:0,max:200,step:1,unit:\"px\"},sequence:{type:ControlType.Enum,title:\"Sequence\",options:[\"letter\",\"word\",\"line\"],optionTitles:[\"Per Letter\",\"Per Word\",\"Per Line\"],defaultValue:\"word\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"top-bottom\",\"bottom-top\",\"left-right\",\"right-left\"],optionTitles:[\"Top → Bottom\",\"Bottom → Top\",\"Left → Right\",\"Right → Left\"],defaultValue:\"left-right\"},animationStyle:{type:ControlType.Enum,title:\"Animation\",options:[\"linear\",\"fade\",\"wave\",\"honey\",\"stagger\",\"stagger-reverse\",\"stagger-random\",\"stagger-center\",\"stagger-edges\",\"stagger-alternate\"],optionTitles:[\"Linear\",\"Fade\",\"Wave\",\"Honey Drip\",\"Stagger\",\"Stagger Reverse\",\"Stagger Random\",\"Stagger Center Out\",\"Stagger Edges In\",\"Stagger Alternate\"],defaultValue:\"fade\"},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:5,min:1,max:10,step:1,displayStepper:true},startTrigger:{type:ControlType.Number,title:\"Start\",defaultValue:80,min:0,max:100,step:1,unit:\"%\",description:\"Animation begins when top of component reaches this % from top of viewport. Higher = starts later.\"},endTrigger:{type:ControlType.Number,title:\"End\",defaultValue:20,min:0,max:100,step:1,unit:\"%\",description:\"Animation completes when top of component reaches this % from top of viewport. Lower = ends later.\"},defaultColor:{type:ControlType.Color,title:\"Default Color\",defaultValue:\"#D6D3D1\"},fillType:{type:ControlType.Enum,title:\"Fill Type\",options:[\"solid\",\"gradient\"],optionTitles:[\"Solid\",\"Gradient\"],defaultValue:\"solid\"},scrollColor:{type:ControlType.Color,title:\"Scroll Color\",defaultValue:\"#0A0A0A\",hidden(props){return props.fillType===\"gradient\";}},gradientColors:{type:ControlType.Array,title:\"Gradient Colors\",control:{type:ControlType.Color},defaultValue:[\"#7C3AED\",\"#EC4899\"],hidden(props){return props.fillType!==\"gradient\";}},gradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",defaultValue:90,min:0,max:360,step:1,unit:\"\\xb0\",description:\"0\\xb0 = bottom-to-top, 90\\xb0 = left-to-right, matching standard CSS gradient angles.\",hidden(props){return props.fillType!==\"gradient\";}},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:40,variant:\"Semibold\",lineHeight:1.2,letterSpacing:\"-0.01em\"}},textAlign:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},htmlTag:{type:ControlType.Enum,title:\"HTML Tag\",options:[\"p\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"div\",\"span\"],optionTitles:[\"p\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"div\",\"span\"],defaultValue:\"p\",description:\"Applied to each paragraph. Use h2/h3 for headings to improve SEO.\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:999,step:1,unit:\"px\"},paddingTop:{type:ControlType.Number,title:\"Padding Top\",defaultValue:0,min:0,max:400,step:1,unit:\"px\"},paddingRight:{type:ControlType.Number,title:\"Padding Right\",defaultValue:0,min:0,max:400,step:1,unit:\"px\"},paddingBottom:{type:ControlType.Number,title:\"Padding Bottom\",defaultValue:0,min:0,max:400,step:1,unit:\"px\"},paddingLeft:{type:ControlType.Number,title:\"Padding Left\",defaultValue:0,min:0,max:400,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollRevealText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"600\",\"framerIntrinsicHeight\":\"240\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SrollTextReveal.map","// Generated by Framer (7788242)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Plus Jakarta Sans-medium\",\"FS;Plus Jakarta Sans-bold\",\"FS;Plus Jakarta Sans-bold italic\",\"FS;Plus Jakarta Sans-medium italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Plus Jakarta Sans\",openType:true,source:\"fontshare\",style:\"normal\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/3U7D2WJULAFN5UCDE2DSKFPDTJNUSRPY/XTZGHUDFURQVBRVTOPX7XHP5YBIQJL2U/FVNNCZHGTHUOM3RCJDOO45QMBIJISVEG.woff2\",weight:\"500\"},{cssFamilyName:\"Plus Jakarta Sans\",openType:true,source:\"fontshare\",style:\"normal\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{cssFamilyName:\"Plus Jakarta Sans\",openType:true,source:\"fontshare\",style:\"italic\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/57U2OK2BISA74Z4RT4CRD5GR4O3PNVPY/K4TDAPUNBYK24HOCNW4JIOTEXSAE2BEF/GV5XODI2YD2DJA5RVTMJOSDHYESL7IYT.woff2\",weight:\"700\"},{cssFamilyName:\"Plus Jakarta Sans\",openType:true,source:\"fontshare\",style:\"italic\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/UABF25CCX23LBLOOMOCUSPFEXYUNKOIQ/NGF5IU7BZUA2FUOVWECHGUFSHNEIX4YK/QDINYT7WQXBD2IDFQGGJ74DWIUFHOOZD.woff2\",weight:\"500\"}]}];export const css=['.framer-yYKU7 .framer-styles-preset-snyqtc:not(.rich-text-wrapper), .framer-yYKU7 .framer-styles-preset-snyqtc.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 60px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -1.2px; --framer-line-height: 110%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-70d09b1f-cae2-4be1-afe4-f4517f7d7e20, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 500px) { .framer-yYKU7 .framer-styles-preset-snyqtc:not(.rich-text-wrapper), .framer-yYKU7 .framer-styles-preset-snyqtc.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 44px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -1.2px; --framer-line-height: 110%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-70d09b1f-cae2-4be1-afe4-f4517f7d7e20, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 499px) and (min-width: 0px) { .framer-yYKU7 .framer-styles-preset-snyqtc:not(.rich-text-wrapper), .framer-yYKU7 .framer-styles-preset-snyqtc.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 30px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -1.2px; --framer-line-height: 110%; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-70d09b1f-cae2-4be1-afe4-f4517f7d7e20, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-yYKU7\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}