{"version":3,"file":"shared-lib.B5FSuAKF.mjs","names":["React.useContext","React.useMemo","React.Fragment","useRef","React.useId","RichText","cx","x","p","t2","useRef","useState","useId","useMemo","useCallback","fade","_Fragment","metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/framerusercontent.com/modules/PaErsqGYom4LepH8UK6h/9gdOsIgzLDW5ly3W6jcg/O7FSj7XoI.js","https:/framerusercontent.com/modules/HSD6u5SaseGEpPpar3r6/vH8QaWnYnz51WxNpSXQw/Gradient_Interactive_Grid.js","https:/framerusercontent.com/modules/kwmN8jMs2exK7Ui5yQjF/HRbuFjCLFpJzL20SXrGd/siteMetadata.js","https:/framerusercontent.com/modules/36jApeLUjFWLO45Kg4qZ/oAU6126pMh08ntv8KHC8/augiA20Il.js","https:/framerusercontent.com/modules/W0t6fYNGrMN0aD4Dum23/7phRVpLAZhB5iVqlu5IK/WotXdNKLe.js"],"sourcesContent":["// Generated by Framer (10141bf)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"BYOqKgnSa\",\"L6YXBWxjR\"];const serializationHash=\"framer-hR5xw\";const variantClassNames={BYOqKgnSa:\"framer-v-14tqpz7\",L6YXBWxjR:\"framer-v-hmk8wg\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const FtVQFcaSM=undefined;const zFe3K9O0L=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 humanReadableVariantMap={Dark:\"L6YXBWxjR\",Light:\"BYOqKgnSa\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,link,title,width,...props})=>{return{...props,FtVQFcaSM:link??props.FtVQFcaSM,variant:humanReadableVariantMap[props.variant]??props.variant??\"BYOqKgnSa\",zFe3K9O0L:title??props.zFe3K9O0L??\"Home \"};};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,zFe3K9O0L,FtVQFcaSM,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"BYOqKgnSa\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];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__*/_jsx(Link,{href:FtVQFcaSM,motionChild:true,nodeId:\"BYOqKgnSa\",openInNewTab:false,scopeId:\"O7FSj7XoI\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-14tqpz7\",className,classNames)} framer-1inhi1v`,\"data-border\":true,\"data-framer-name\":\"Light\",layoutDependency:layoutDependency,layoutId:\"BYOqKgnSa\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(255, 255, 255, 0.6)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backdropFilter:\"blur(10px)\",backgroundColor:\"rgba(255, 255, 255, 0.3)\",borderBottomLeftRadius:90,borderBottomRightRadius:90,borderTopLeftRadius:90,borderTopRightRadius:90,WebkitBackdropFilter:\"blur(10px)\",...style},variants:{L6YXBWxjR:{\"--border-color\":\"rgba(0, 0, 0, 0.5)\",backgroundColor:\"rgba(0, 0, 0, 0.3)\"}},...addPropertyOverrides({L6YXBWxjR:{\"data-framer-name\":\"Dark\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U3dpdHplci1tZWRpdW0=\",\"--framer-font-family\":'\"Switzer\", \"Switzer Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Home \"})}),className:\"framer-1dolowa\",fonts:[\"FS;Switzer-medium\"],layoutDependency:layoutDependency,layoutId:\"FTuFJzkkA\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:zFe3K9O0L,verticalAlignment:\"top\",withExternalLayout:true})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-hR5xw.framer-1inhi1v, .framer-hR5xw .framer-1inhi1v { display: block; }\",\".framer-hR5xw.framer-14tqpz7 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 12px 24px 12px 24px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-hR5xw .framer-1dolowa { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",'.framer-hR5xw[data-border=\"true\"]::after, .framer-hR5xw [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 43\n * @framerIntrinsicWidth 93\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"L6YXBWxjR\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"zFe3K9O0L\":\"title\",\"FtVQFcaSM\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerO7FSj7XoI=withCSS(Component,css,\"framer-hR5xw\");export default FramerO7FSj7XoI;FramerO7FSj7XoI.displayName=\"Button\";FramerO7FSj7XoI.defaultProps={height:43,width:93};addPropertyControls(FramerO7FSj7XoI,{variant:{options:[\"BYOqKgnSa\",\"L6YXBWxjR\"],optionTitles:[\"Light\",\"Dark\"],title:\"Variant\",type:ControlType.Enum},zFe3K9O0L:{defaultValue:\"Home \",displayTextArea:false,title:\"Title\",type:ControlType.String},onzFe3K9O0LChange:{changes:\"zFe3K9O0L\",type:ControlType.ChangeHandler},FtVQFcaSM:{title:\"Link\",type:ControlType.Link}});addFonts(FramerO7FSj7XoI,[{explicitInter:true,fonts:[{cssFamilyName:\"Switzer\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Switzer\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/OYB4CXKJQXKTNSLJMTDQOIVUL2V5EL7S/WYO2P7DQVV5RNXGMCUO2HL4RJP4VFUAS/6XPIMU23OJVRY676OG5YVJMWEHWICATX.woff2\",weight:\"500\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerO7FSj7XoI\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"43\",\"framerVariables\":\"{\\\"zFe3K9O0L\\\":\\\"title\\\",\\\"FtVQFcaSM\\\":\\\"link\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"L6YXBWxjR\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"93\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./O7FSj7XoI.map","/**\n *  46\n * #46 Dot Grid\n * Decorative dotted grid background with gradient coloring,\n * center vignette fade, appear animation, and mouse proximity effect.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 700\n */import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useId,useRef,useState,useCallback,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// ─── Helpers ────────────────────────────────────────────────\nfunction hexToRgb(hex){const c=hex.replace(\"#\",\"\");const full=c.length===3?c.split(\"\").map(ch=>ch+ch).join(\"\"):c;const num=parseInt(full,16);return[num>>16&255,num>>8&255,num&255];}function cssColorToRgb(color){if(color.startsWith(\"#\"))return hexToRgb(color);const match=color.match(/\\d+/g);if(match&&match.length>=3){return[parseInt(match[0]),parseInt(match[1]),parseInt(match[2])];}return[0,0,0];}function lerpColor(a,b,t){return[a[0]+(b[0]-a[0])*t,a[1]+(b[1]-a[1])*t,a[2]+(b[2]-a[2])*t];}/** Resolve 4 corner colors based on colorCount + direction */function resolveCornerColors(colorCount,colorDirection,c1,c2,c3,c4){if(colorCount===\"1\"){return[c1,c1,c1,c1];}if(colorCount===\"2\"){// c1 = start, c2 = end\nif(colorDirection===\"horizontal\"){// left = c1, right = c2\nreturn[c1,c1,c2,c2]// TL, BL, BR, TR\n;}if(colorDirection===\"vertical\"){// top = c1, bottom = c2\nreturn[c1,c2,c2,c1]// TL, BL, BR, TR\n;}// diagonal: TL = c1, BR = c2\nreturn[c1,lerpColor(c1,c2,.5),c2,lerpColor(c1,c2,.5)];}// 4 colors\nreturn[c1,c2,c3,c4];}/** Compute normalized stagger value (0–1) for a dot based on appear direction */function computeAppearIndex(row,col,rows,cols,direction,randomSeed){const totalDots=cols*rows;switch(direction){case\"top-left\":return(row*cols+col)/totalDots;case\"top-right\":return(row*cols+(cols-1-col))/totalDots;case\"bottom-left\":return((rows-1-row)*cols+col)/totalDots;case\"bottom-right\":return((rows-1-row)*cols+(cols-1-col))/totalDots;case\"center-out\":{const cx=(cols-1)/2;const cy=(rows-1)/2;const maxDist=Math.sqrt(cx*cx+cy*cy)||1;const dx=col-cx;const dy=row-cy;return Math.sqrt(dx*dx+dy*dy)/maxDist;}case\"edges-in\":{const cx=(cols-1)/2;const cy=(rows-1)/2;const maxDist=Math.sqrt(cx*cx+cy*cy)||1;const dx=col-cx;const dy=row-cy;return 1-Math.sqrt(dx*dx+dy*dy)/maxDist;}case\"random\":{const idx=row*cols+col;return idx<randomSeed.length?randomSeed[idx]:Math.random();}default:return(row*cols+col)/totalDots;}}/** Draw a dot shape into the canvas context at (x, y) with given radius */function drawDot(ctx,shape,x,y,r){switch(shape){case\"square\":ctx.rect(x-r,y-r,r*2,r*2);break;case\"diamond\":ctx.moveTo(x,y-r);ctx.lineTo(x+r,y);ctx.lineTo(x,y+r);ctx.lineTo(x-r,y);ctx.closePath();break;case\"triangle\":ctx.moveTo(x,y-r);ctx.lineTo(x+r*.866,y+r*.5);ctx.lineTo(x-r*.866,y+r*.5);ctx.closePath();break;case\"star\":{const spikes=5;const outerR=r;const innerR=r*.4;for(let i=0;i<spikes*2;i++){const rad=i*Math.PI/spikes-Math.PI/2;const sr=i%2===0?outerR:innerR;if(i===0)ctx.moveTo(x+sr*Math.cos(rad),y+sr*Math.sin(rad));else ctx.lineTo(x+sr*Math.cos(rad),y+sr*Math.sin(rad));}ctx.closePath();break;}case\"plus\":{const arm=r*.35;ctx.moveTo(x-arm,y-r);ctx.lineTo(x+arm,y-r);ctx.lineTo(x+arm,y-arm);ctx.lineTo(x+r,y-arm);ctx.lineTo(x+r,y+arm);ctx.lineTo(x+arm,y+arm);ctx.lineTo(x+arm,y+r);ctx.lineTo(x-arm,y+r);ctx.lineTo(x-arm,y+arm);ctx.lineTo(x-r,y+arm);ctx.lineTo(x-r,y-arm);ctx.lineTo(x-arm,y-arm);ctx.closePath();break;}case\"ring\":ctx.arc(x,y,r,0,Math.PI*2);ctx.moveTo(x+r*.55,y);ctx.arc(x,y,r*.55,0,Math.PI*2,true);break;default:ctx.arc(x,y,r,0,Math.PI*2);break;}}/** SVG path data for a dot shape centered at (cx, cy) with radius r */function dotShapeSVGPath(shape,cx,cy,r){switch(shape){case\"square\":return`M ${cx-r},${cy-r} h ${r*2} v ${r*2} h ${-r*2} Z`;case\"diamond\":return`M ${cx},${cy-r} L ${cx+r},${cy} L ${cx},${cy+r} L ${cx-r},${cy} Z`;case\"triangle\":return`M ${cx},${cy-r} L ${cx+r*.866},${cy+r*.5} L ${cx-r*.866},${cy+r*.5} Z`;case\"star\":{let p=\"\";for(let i=0;i<10;i++){const a=i*Math.PI/5-Math.PI/2;const sr=i%2===0?r:r*.4;p+=`${i===0?\"M\":\"L\"} ${cx+sr*Math.cos(a)},${cy+sr*Math.sin(a)} `;}return p+\"Z\";}case\"plus\":{const a=r*.35;return`M ${cx-a},${cy-r} L ${cx+a},${cy-r} L ${cx+a},${cy-a} L ${cx+r},${cy-a} L ${cx+r},${cy+a} L ${cx+a},${cy+a} L ${cx+a},${cy+r} L ${cx-a},${cy+r} L ${cx-a},${cy+a} L ${cx-r},${cy+a} L ${cx-r},${cy-a} L ${cx-a},${cy-a} Z`;}case\"ring\":return`M ${cx+r},${cy} A ${r},${r} 0 1,1 ${cx-r},${cy} A ${r},${r} 0 1,1 ${cx+r},${cy} Z M ${cx+r*.55},${cy} A ${r*.55},${r*.55} 0 1,0 ${cx-r*.55},${cy} A ${r*.55},${r*.55} 0 1,0 ${cx+r*.55},${cy} Z`;default:return`M ${cx+r},${cy} A ${r},${r} 0 1,1 ${cx-r},${cy} A ${r},${r} 0 1,1 ${cx+r},${cy} Z`;}}/** Apply easing to a 0–1 progress value */function applyEasing(t,easing){switch(easing){case\"linear\":return t;case\"ease-in-out\":return t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2;case\"spring\":return 1-Math.pow(Math.E,-6*t)*Math.cos(6*t);case\"bounce\":{if(t<1/2.75)return 7.5625*t*t;if(t<2/2.75){const t2=t-1.5/2.75;return 7.5625*t2*t2+.75;}if(t<2.5/2.75){const t2=t-2.25/2.75;return 7.5625*t2*t2+.9375;}const t2=t-2.625/2.75;return 7.5625*t2*t2+.984375;}default:return 1-Math.pow(1-t,3);}}// ─── Component ──────────────────────────────────────────────\n/**\n * @framerDisableUnlink\n */export default function DotGrid(props){const{grid={},colorCount=\"4\",colorDirection=\"diagonal\",color1=\"#F97316\",color2=\"#EC4899\",color3=\"#8B5CF6\",color4=\"#3B82F6\",backgroundColor=\"#FAF5F0\",fade={},mouse={},animation={},interaction={},style}=props;const{dotShape=\"circle\",dotSize=10,gap=28}=grid;const{shape:fadeShape=\"circle\",invert:fadeInvert=false,x:fadeX=50,y:fadeY=50,radiusX:fadeRadiusX=.35,radiusY:fadeRadiusY=.35,softness:fadeSoftness=.4,strength:fadeStrength=1}=fade;const{radius:mouseRadius=120,growth:mouseGrowth=1.8}=mouse;const{trigger:appearTrigger=\"mount\",easing:appearEasing=\"ease-out\",duration:appearDuration=1.2,stagger:appearStagger=.6,direction:appearDirection=\"top-left\"}=animation;const{style:interactionStyle=\"none\",radius:interactionRadius=200,duration:interactionDuration=.6}=interaction;const canvasRef=useRef(null);const containerRef=useRef(null);const mouseRef=useRef({x:-9999,y:-9999});const animProgress=useRef(0);const rafRef=useRef(0);const startTimeRef=useRef(0);const mouseScalesRef=useRef(new Float32Array(0));const[isClient,setIsClient]=useState(false);const isStatic=useIsStaticRenderer();const patternId=useId();const isInViewRef=useRef(appearTrigger===\"mount\");const interactionRef=useRef([]);useEffect(()=>{startTransition(()=>setIsClient(true));return()=>{};},[]);// IntersectionObserver for \"inView\" trigger\nuseEffect(()=>{if(appearTrigger!==\"inView\"||!isClient)return()=>{};const container=containerRef.current;if(!container)return()=>{};const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){isInViewRef.current=true;startTimeRef.current=performance.now();observer.disconnect();}},{threshold:.1});observer.observe(container);return()=>observer.disconnect();},[isClient,appearTrigger]);// Reduced motion: disable mouse grow effect\nconst reducedMotionRef=useRef(false);useEffect(()=>{if(typeof window===\"undefined\")return()=>{};const mq=window.matchMedia(\"(prefers-reduced-motion: reduce)\");reducedMotionRef.current=mq.matches;const handler=e=>{reducedMotionRef.current=e.matches;};mq.addEventListener(\"change\",handler);return()=>mq.removeEventListener(\"change\",handler);},[]);// Stable random seed for \"random\" appear direction\nconst randomSeedRef=useRef(new Float32Array(0));// Parse colors once\nconst colorsRef=useRef([]);const parsedC1=cssColorToRgb(color1);const parsedC2=cssColorToRgb(color2);const parsedC3=cssColorToRgb(color3);const parsedC4=cssColorToRgb(color4);const cornerColors=useMemo(()=>resolveCornerColors(colorCount,colorDirection,parsedC1,parsedC2,parsedC3,parsedC4),[colorCount,colorDirection,...parsedC1,...parsedC2,...parsedC3,...parsedC4]);colorsRef.current=cornerColors;const draw=useCallback(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const dpr=window.devicePixelRatio||1;const rect=canvas.getBoundingClientRect();const w=rect.width;const h=rect.height;if(canvas.width!==w*dpr||canvas.height!==h*dpr){canvas.width=w*dpr;canvas.height=h*dpr;}ctx.setTransform(dpr,0,0,dpr,0,0);// Clear with background\nconst bgRgb=cssColorToRgb(backgroundColor);ctx.fillStyle=`rgb(${bgRgb[0]},${bgRgb[1]},${bgRgb[2]})`;ctx.fillRect(0,0,w,h);const spacing=dotSize+gap;const cols=Math.ceil(w/spacing)+1;const rows=Math.ceil(h/spacing)+1;const offsetX=(w-(cols-1)*spacing)/2;const offsetY=(h-(rows-1)*spacing)/2;const mx=mouseRef.current.x;const my=mouseRef.current.y;const colors=colorsRef.current;const totalDots=cols*rows;const progress=animProgress.current;const motionReduced=reducedMotionRef.current;// Ensure random seed is large enough\nif(appearDirection===\"random\"&&randomSeedRef.current.length<totalDots){const seed=new Float32Array(totalDots);for(let i=0;i<totalDots;i++)seed[i]=Math.random();randomSeedRef.current=seed;}// Ensure per-dot mouse scale array is large enough\nif(mouseScalesRef.current.length<totalDots){const old=mouseScalesRef.current;const arr=new Float32Array(totalDots);// Fill with 1 (no scale), copy existing values\narr.fill(1);arr.set(old.subarray(0,Math.min(old.length,totalDots)));mouseScalesRef.current=arr;}const mouseScales=mouseScalesRef.current;const lerpFactor=.13;for(let row=0;row<rows;row++){for(let col=0;col<cols;col++){const x=offsetX+col*spacing;const y=offsetY+row*spacing;const dotIdx=row*cols+col;// Normalized position (0-1)\nconst nx=cols>1?col/(cols-1):.5;const ny=rows>1?row/(rows-1):.5;// Grid color: 4-corner gradient (TL=0, BL=1, BR=2, TR=3)\nconst topColor=lerpColor(colors[0],colors[3],nx);const bottomColor=lerpColor(colors[1],colors[2],nx);const dotColor=lerpColor(topColor,bottomColor,ny);// Vignette: normalized distance from fade center\n// d = 0 at center, d = 1 at radius boundary\nconst fdx=nx-fadeX/100;const fdy=ny-fadeY/100;const rx=fadeRadiusX+.001;const ry=fadeRadiusY+.001;let d;switch(fadeShape){case\"ellipse\":d=Math.sqrt(fdx*fdx/(rx*rx)+fdy*fdy/(ry*ry));break;case\"ellipse-vertical\":{const vrx=rx*.8;const vry=rx*2.5;d=Math.sqrt(fdx*fdx/(vrx*vrx)+fdy*fdy/(vry*vry));break;}case\"square\":d=Math.max(Math.abs(fdx)/rx,Math.abs(fdy)/ry);break;case\"diamond\":d=Math.abs(fdx)/rx+Math.abs(fdy)/ry;break;case\"horizontal-band\":d=Math.abs(fdy)/rx;break;case\"vertical-band\":d=Math.abs(fdx)/rx;break;default:d=Math.sqrt(fdx*fdx+fdy*fdy)/rx;break;}// Smoothstep transition: invisible inside, fades in outside\n// softness 0 = hard edge, 1 = very gradual fade\nconst spread=.1+fadeSoftness*1.4;const edge=1-spread;const t=Math.max(0,Math.min(1,(d-edge)/(spread+.001)));const vignette=t*t*(3-2*t);const rawAlpha=vignette*fadeStrength;const alpha=fadeInvert?fadeStrength-rawAlpha:rawAlpha;// Appear animation with directional wave\nconst appearActive=isInViewRef.current;let scale=1;if(appearActive){const normalizedIndex=computeAppearIndex(row,col,rows,cols,appearDirection,randomSeedRef.current);const staggerDelay=normalizedIndex*appearStagger;const dotProgress=Math.max(0,Math.min(1,(progress-staggerDelay)/(1-appearStagger+.001)));scale=applyEasing(dotProgress,appearEasing);}else{scale=0;}// Mouse proximity growth (disabled for reduced motion)\nlet targetMouseScale=1;if(!motionReduced&&mx>-999){const mdx=x-mx;const mdy=y-my;const mDist=Math.sqrt(mdx*mdx+mdy*mdy);if(mDist<mouseRadius){const proximity=1-mDist/mouseRadius;targetMouseScale=1+proximity*proximity*(mouseGrowth-1);}}// Lerp toward target for smooth transition\nconst current=mouseScales[dotIdx];const mouseScale=current+(targetMouseScale-current)*lerpFactor;mouseScales[dotIdx]=mouseScale;// Click/tap interaction effects\nlet interactionScale=0;const interactions=interactionRef.current;const now=performance.now();for(let k=0;k<interactions.length;k++){const ev=interactions[k];const elapsed=(now-ev.time)/1e3;if(elapsed>interactionDuration)continue;const wave=elapsed/interactionDuration;const waveRadius=interactionRadius*wave;const dx=x-ev.x;const dy=y-ev.y;const dist=Math.sqrt(dx*dx+dy*dy);const thickness=interactionRadius*.4;const proximity=1-Math.min(1,Math.abs(dist-waveRadius)/thickness);if(proximity>0){const fade=1-wave;if(interactionStyle===\"ripple\"){interactionScale+=proximity*fade*1.5;}else if(interactionStyle===\"repel\"){interactionScale-=proximity*fade*.8;}}}const finalScale=Math.max(0,scale*mouseScale+interactionScale);const radius=dotSize/2*finalScale;if(radius<.5)continue;ctx.beginPath();drawDot(ctx,dotShape,x,y,radius);ctx.fillStyle=`rgba(${dotColor[0]|0},${dotColor[1]|0},${dotColor[2]|0},${alpha.toFixed(3)})`;ctx.fill();}}},[dotShape,dotSize,gap,backgroundColor,fadeShape,fadeX,fadeY,fadeRadiusX,fadeRadiusY,fadeSoftness,fadeStrength,fadeInvert,mouseRadius,mouseGrowth,appearEasing,appearStagger,appearDirection,interactionStyle,interactionRadius,interactionDuration]);// Animation loop\nuseEffect(()=>{if(!isClient)return()=>{};if(appearTrigger===\"mount\"){startTimeRef.current=performance.now();isInViewRef.current=true;}const duration=appearDuration*1e3;const idleLoop=()=>{// Clean up expired interactions\nconst now=performance.now();const ints=interactionRef.current;while(ints.length>0&&(now-ints[0].time)/1e3>interactionDuration+.1){ints.shift();}draw();rafRef.current=requestAnimationFrame(idleLoop);};const appearLoop=()=>{if(!isInViewRef.current){rafRef.current=requestAnimationFrame(appearLoop);return;}const elapsed=performance.now()-startTimeRef.current;animProgress.current=Math.min(1,elapsed/duration);draw();if(animProgress.current<1){rafRef.current=requestAnimationFrame(appearLoop);}else{rafRef.current=requestAnimationFrame(idleLoop);}};rafRef.current=requestAnimationFrame(appearLoop);return()=>{cancelAnimationFrame(rafRef.current);};},[isClient,draw,appearDuration,appearTrigger,interactionDuration]);// Mouse tracking\nuseEffect(()=>{if(!isClient)return()=>{};const container=containerRef.current;if(!container)return()=>{};const onMove=e=>{const rect=container.getBoundingClientRect();mouseRef.current.x=e.clientX-rect.left;mouseRef.current.y=e.clientY-rect.top;};const onLeave=()=>{mouseRef.current.x=-9999;mouseRef.current.y=-9999;};const onClick=e=>{if(interactionStyle===\"none\")return;const rect=container.getBoundingClientRect();interactionRef.current.push({x:e.clientX-rect.left,y:e.clientY-rect.top,time:performance.now()});};container.addEventListener(\"mousemove\",onMove);container.addEventListener(\"mouseleave\",onLeave);container.addEventListener(\"click\",onClick);return()=>{container.removeEventListener(\"mousemove\",onMove);container.removeEventListener(\"mouseleave\",onLeave);container.removeEventListener(\"click\",onClick);};},[isClient,interactionStyle]);// Static / SSR fallback — layered CSS: gradient + dot mask + vignette\nif(isStatic||!isClient){const spacing=dotSize+gap;const r=dotSize/2;// Build gradient direction based on colorCount\nlet gradientCSS;if(colorCount===\"1\"){gradientCSS=color1;}else if(colorCount===\"2\"){const dir=colorDirection===\"horizontal\"?\"to right\":colorDirection===\"vertical\"?\"to bottom\":\"to bottom right\";gradientCSS=`linear-gradient(${dir}, ${color1}, ${color2})`;}else{// 4-corner: TL=c1, BL=c2, BR=c3, TR=c4\n// Approximate with two stacked gradients\ngradientCSS=`linear-gradient(to bottom, ${color1}, ${color2}), linear-gradient(to bottom, ${color4}, ${color3})`;}const isFourCorner=colorCount===\"4\";return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",minWidth:200,minHeight:200,backgroundColor,position:\"relative\",overflow:\"hidden\"},children:[isFourCorner?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",background:`linear-gradient(to bottom, ${color1}, ${color2})`}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",background:`linear-gradient(to right, transparent, ${color4})`}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",background:`linear-gradient(to bottom right, transparent 30%, ${color3})`,opacity:.5}})]}):/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",background:gradientCSS}}),/*#__PURE__*/_jsxs(\"svg\",{style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsx(\"pattern\",{id:`dot-mask-${patternId}`,width:spacing,height:spacing,patternUnits:\"userSpaceOnUse\",children:/*#__PURE__*/_jsx(\"path\",{fillRule:\"evenodd\",fill:backgroundColor,d:`M 0,0 H ${spacing} V ${spacing} H 0 Z ${dotShapeSVGPath(dotShape,spacing/2,spacing/2,r)}`})})}),/*#__PURE__*/_jsx(\"rect\",{width:\"100%\",height:\"100%\",fill:`url(#dot-mask-${patternId})`})]}),fadeStrength>0&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",opacity:fadeStrength,background:(()=>{const inner=fadeRadiusX*80;const softSpread=10+fadeSoftness*50;const outer=Math.min(100,inner+softSpread);const bg=backgroundColor;const[a,b]=fadeInvert?[\"transparent\",bg]:[bg,\"transparent\"];if(fadeShape===\"horizontal-band\"){return`linear-gradient(to bottom, ${b} 0%, ${a} ${inner/2}%, ${a} ${100-inner/2}%, ${b} 100%)`;}if(fadeShape===\"vertical-band\"){return`linear-gradient(to right, ${b} 0%, ${a} ${inner/2}%, ${a} ${100-inner/2}%, ${b} 100%)`;}const isEllipse=fadeShape===\"ellipse\"||fadeShape===\"ellipse-vertical\"||fadeShape===\"square\"||fadeShape===\"diamond\";const shape=isEllipse?\"ellipse\":\"circle\";// Vertical ellipse: swap the aspect ratio via explicit sizing\nconst sizing=fadeShape===\"ellipse-vertical\"?`${inner*.6}% ${outer*1.2}%`:undefined;return sizing?`radial-gradient(${sizing} at ${fadeX}% ${fadeY}%, ${a} 60%, ${b} 100%)`:`radial-gradient(${shape} at ${fadeX}% ${fadeY}%, ${a} ${inner}%, ${b} ${outer}%)`;})()}})]});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",minWidth:200,minHeight:200,position:\"relative\",overflow:\"hidden\",backgroundColor},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{display:\"block\",width:\"100%\",height:\"100%\"}})});}DotGrid.displayName=\"Dot Grid\";DotGrid.defaultProps={grid:{dotShape:\"circle\",dotSize:10,gap:28},colorCount:\"4\",colorDirection:\"diagonal\",color1:\"#F97316\",color2:\"#EC4899\",color3:\"#8B5CF6\",color4:\"#3B82F6\",backgroundColor:\"#FAF5F0\",fade:{shape:\"circle\",invert:false,x:50,y:50,radiusX:.35,radiusY:.35,softness:.4,strength:1},mouse:{radius:120,growth:1.8},animation:{trigger:\"mount\",easing:\"ease-out\",duration:1.2,stagger:.6,direction:\"top-left\"},interaction:{style:\"none\",radius:200,duration:.6}};addPropertyControls(DotGrid,{grid:{type:ControlType.Object,title:\"Grid\",controls:{dotShape:{type:ControlType.Enum,title:\"Shape\",options:[\"circle\",\"square\",\"diamond\",\"triangle\",\"star\",\"plus\",\"ring\"],optionTitles:[\"Circle\",\"Square\",\"Diamond\",\"Triangle\",\"Star\",\"Plus\",\"Ring\"],defaultValue:\"circle\"},dotSize:{type:ControlType.Number,title:\"Dot Size\",min:2,max:30,step:1,unit:\"px\",defaultValue:10},gap:{type:ControlType.Number,title:\"Gap\",min:4,max:60,step:1,unit:\"px\",defaultValue:28}}},colorCount:{type:ControlType.Enum,title:\"Colors\",options:[\"1\",\"2\",\"4\"],optionTitles:[\"Solid\",\"Two-tone\",\"Four-corner\"],defaultValue:\"4\"},colorDirection:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\",\"diagonal\"],optionTitles:[\"Horizontal\",\"Vertical\",\"Diagonal\"],defaultValue:\"diagonal\",hidden:props=>props.colorCount!==\"2\"},color1:{type:ControlType.Color,title:\"Top Left\",defaultValue:\"#F97316\"},color2:{type:ControlType.Color,title:\"Bottom Left\",defaultValue:\"#EC4899\",hidden:props=>props.colorCount===\"1\"},color3:{type:ControlType.Color,title:\"Bottom Right\",defaultValue:\"#8B5CF6\",hidden:props=>props.colorCount!==\"4\"},color4:{type:ControlType.Color,title:\"Top Right\",defaultValue:\"#3B82F6\",hidden:props=>props.colorCount!==\"4\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FAF5F0\"},fade:{type:ControlType.Object,title:\"Center Fade\",controls:{shape:{type:ControlType.Enum,title:\"Shape\",options:[\"circle\",\"ellipse\",\"ellipse-vertical\",\"square\",\"diamond\",\"horizontal-band\",\"vertical-band\"],optionTitles:[\"Circle\",\"Ellipse\",\"Vertical Ellipse\",\"Square\",\"Diamond\",\"Horizontal Band\",\"Vertical Band\"],defaultValue:\"circle\"},invert:{type:ControlType.Boolean,title:\"Invert\",defaultValue:false,enabledTitle:\"Edges\",disabledTitle:\"Center\"},x:{type:ControlType.Number,title:\"X Position\",min:0,max:100,step:1,unit:\"%\",defaultValue:50},y:{type:ControlType.Number,title:\"Y Position\",min:0,max:100,step:1,unit:\"%\",defaultValue:50},radiusX:{type:ControlType.Number,title:\"Radius X\",min:0,max:.7,step:.01,defaultValue:.35,description:\"Size of the fade area (0 = no fade, 0.7 = dots only at edges)\"},radiusY:{type:ControlType.Number,title:\"Radius Y\",min:0,max:.7,step:.01,defaultValue:.35,hidden:props=>{const shape=props.fade?.shape;return shape===\"circle\"||shape===\"horizontal-band\"||shape===\"vertical-band\";},description:\"Vertical extent of the fade — shown for ellipse, square, and diamond shapes\"},softness:{type:ControlType.Number,title:\"Softness\",min:0,max:1,step:.05,defaultValue:.4,description:\"How gradual the fade transition is (0 = sharp edge, 1 = very soft)\"},strength:{type:ControlType.Number,title:\"Strength\",min:0,max:1,step:.05,defaultValue:1}}},mouse:{type:ControlType.Object,title:\"Mouse Effect\",controls:{radius:{type:ControlType.Number,title:\"Radius\",min:30,max:400,step:10,unit:\"px\",defaultValue:120,description:\"Area of effect around cursor\"},growth:{type:ControlType.Number,title:\"Growth\",min:1,max:4,step:.1,defaultValue:1.8,description:\"Max scale multiplier for dots near cursor\"}}},animation:{type:ControlType.Object,title:\"Appear Animation\",controls:{trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"mount\",\"inView\"],optionTitles:[\"On Mount\",\"In View\"],defaultValue:\"mount\"},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"ease-out\",\"ease-in-out\",\"linear\",\"spring\",\"bounce\"],optionTitles:[\"Ease Out\",\"Ease In-Out\",\"Linear\",\"Spring\",\"Bounce\"],defaultValue:\"ease-out\"},duration:{type:ControlType.Number,title:\"Duration\",min:.2,max:4,step:.1,unit:\"s\",defaultValue:1.2},stagger:{type:ControlType.Number,title:\"Stagger\",min:0,max:.9,step:.05,defaultValue:.6,description:\"How much the wave is spread across dots (0 = all at once)\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\",\"center-out\",\"edges-in\",\"random\"],optionTitles:[\"Top Left\",\"Top Right\",\"Bottom Left\",\"Bottom Right\",\"Center Out\",\"Edges In\",\"Random\"],defaultValue:\"top-left\"}}},interaction:{type:ControlType.Object,title:\"Click Effect\",controls:{style:{type:ControlType.Enum,title:\"Style\",options:[\"none\",\"ripple\",\"repel\"],optionTitles:[\"None\",\"Ripple\",\"Repel\"],defaultValue:\"none\"},radius:{type:ControlType.Number,title:\"Radius\",min:50,max:500,step:10,unit:\"px\",defaultValue:200,hidden:props=>props.interaction?.style===\"none\",description:\"Size of the ripple/repel wave\"},duration:{type:ControlType.Number,title:\"Duration\",min:.2,max:2,step:.1,unit:\"s\",defaultValue:.6,hidden:props=>props.interaction?.style===\"none\",description:\"How long the effect lasts\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DotGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Gradient_Interactive_Grid.map","// Generated by Framer (3ad0d99)\nexport default function metadata(params,activeLocale){return{description:\"Made with Framer\",robots:\"max-image-preview:large\",title:\"My Framer Site\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0ea0c8c)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"jex3fd\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"1r4ckt6\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-Eveby\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (10141bf)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"erngei\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"1kn94g2\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"48srxb\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-fakqS\",title:siteMetadata(params,activeLocale).title||\"Inverted\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}