{"version":3,"file":"script_main.D09XHitJ.mjs","names":["useMemo","Fragment","getProps","React.forwardRef","serializationHash","variantClassNames","React.useContext","React.useMemo","React.Fragment","getProps","Shapes","React.forwardRef","useRef","React.useId","useMemo","useCallback","useState","useMemo","useCallback","useState","useRef","useState","forwardRef","useRef","useCallback","startTransition","useMemo","React.useState","React.useRef","React.useCallback","useState","startTransition","_Fragment","NavbarClean","useRef","React.useId","PropertyOverrides","RichText","React.Fragment","Phosphor","React.createElement","MenuFixed","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/sbWEZhpbWDNQ64mRZcmT/Tf0ECRTfyblFDXnVL11a/Background_Pattern.js","https:/framerusercontent.com/modules/vWEJE2AuOX7wzyt66Tfv/EvdzpPIGPwITgjmnpk3A/Overscroll_Preventer.js","https:/framerusercontent.com/modules/SUBEdtCFaOJwrjN2Inhk/bznEUerLEqVVXGfsDOYE/pKERsxd4H.js","https:/framerusercontent.com/modules/UETfCd0rvWb25BmjT6Ej/sXqBorHBapecq4QM645n/v3XTvAyuf.js","https:/framerusercontent.com/modules/uqIaRM5piozBvstSQamP/kOS9IsCEG0AMyCNedKm5/CursorMenuButton.js","https:/framerusercontent.com/modules/Z8F7TxvbscYUIkhFUftt/fUfrlE7NxZBHM32jVR2L/CursorMenuColorButton.js","https:/framerusercontent.com/modules/Xa1vArn9PI5TARPIQBnf/Tejti8bIZ1ra2tO3bCGV/CursorMenuMobileTap.js","https:/framerusercontent.com/modules/sRMYXeXxf6xUa0rvMUyQ/sztSdBetNCYLWJnZjA9v/GeistAnimated.js","https:/framerusercontent.com/modules/qIL11ueJqXbvH2tN4k8d/uIPXUlcNIq2fKf5LkM2i/SoundToggle.js","https:/framerusercontent.com/modules/UFD48b9o7XLvsqu4Luz7/Ll3SeNN3mh0dZGd93BVx/hIm7E8vu4.js","framer:toplevel/main"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{useMemo}from\"react\";// Check if we're in Canvas mode for static rendering\nconst renderContext=RenderTarget.current();const isCanvasMode=renderContext===RenderTarget.canvas;/**\n * BackgroundPattern Component\n * A comprehensive background pattern component supporting 21 different pattern types\n * with optional radial fade effect. Patterns are generated using SVG data URLs for optimal performance\n * All patterns sourced from Hero Patterns (heropatterns.com) by Steve Schoger\n * @framerDisableUnlink\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 600\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function BackgroundPattern(props){const{patternType=\"cross\",patternColor=\"#0540E3\",backgroundColor=\"transparent\",patternSize=40,patternOpacity=.4,strokeWidth=3,dotSize=1.2,gap=15,fade=true,fadeIntensity=90,fadeShape=\"circle\",style}=props;// Encode the color for use in SVG data URL\n// This ensures special characters in color values don't break the URL\nconst encodedPatternColor=useMemo(()=>encodeURIComponent(patternColor),[patternColor]);// Generate mask style for radial fade effect\n// Uses both standard and webkit prefixed properties for browser compatibility\nconst maskStyle=useMemo(()=>{if(!fade)return{};const gradientShape=fadeShape===\"ellipse\"?\"ellipse at top\":\"circle\";return{maskImage:`radial-gradient(${gradientShape}, white 10%, transparent ${fadeIntensity}%)`,WebkitMaskImage:`radial-gradient(${gradientShape}, white 10%, transparent ${fadeIntensity}%)`};},[fade,fadeIntensity,fadeShape]);// 1. Generate Cross pattern SVG\nconst crossPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 40 40'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M0 38.59l2.83-2.83 1.41 1.41L1.41 40H0v-1.41zM0 1.4l2.83 2.83 1.41-1.41L1.41 0H0v1.41zM38.59 40l-2.83-2.83 1.41-1.41L40 38.59V40h-1.41zM40 1.41l-2.83 2.83-1.41-1.41L38.59 0H40v1.41zM20 18.6l2.83-2.83 1.41 1.41L21.41 20l2.83 2.83-1.41 1.41L20 21.41l-2.83 2.83-1.41-1.41L18.59 20l-2.83-2.83 1.41-1.41L20 18.59z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 2. Generate Grid pattern SVG\nconst gridPatternSVG=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' stroke='${patternColor}' stroke-width='${strokeWidth}' fill-opacity='${patternOpacity}'><path d='M 100 0 L 100 200'/><path d='M 0 100 L 200 100'/></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternColor,strokeWidth,patternOpacity]);// 3. Generate Dots pattern SVG\nconst dotsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${gap}' height='${gap}' viewBox='0 0 ${gap} ${gap}' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='evenodd'%3E%3Ccircle cx='${dotSize}' cy='${dotSize}' r='${dotSize}'/%3E%3C/g%3E%3C/svg%3E\")`,[gap,dotSize,encodedPatternColor,patternOpacity]);// 4. Generate Plus pattern SVG\nconst plusPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize}' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 5. Generate Zigzag pattern SVG\nconst zigzagPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize/2}' viewBox='0 0 20 12'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='charlie-brown' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M9.8 12L0 2.2V.8l10 10 10-10v1.4L10.2 12h-.4zm-4 0L0 6.2V4.8L7.2 12H5.8zm8.4 0L20 6.2V4.8L12.8 12h1.4zM9.8 0l.2.2.2-.2h-.4zm-4 0L10 4.2 14.2 0h-1.4L10 2.8 7.2 0H5.8z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 6. Generate Waves pattern SVG\nconst wavesPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize/2}' viewBox='0 0 52 26'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M10 10c0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6h2c0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4v2c-3.314 0-6-2.686-6-6 0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6zm25.464-1.95l8.486 8.486-1.414 1.414-8.486-8.486 1.414-1.414z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 7. Generate Triangles pattern SVG\nconst trianglesPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize*.866}' viewBox='0 0 12 16'%3E%3Cpath fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' d='M4 .99L0 8h8l-4-7.01zM12 15L8 8h8l-4 7z'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 8. Generate Hexagons pattern SVG\nconst hexagonsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize*1.4}' height='${patternSize*1.4}' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 9. Generate Bricks pattern SVG (MOVED HERE after Hexagons)\nconst bricksPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize*1.05}' viewBox='0 0 42 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='Page-1' fill='none' fill-rule='evenodd'%3E%3Cg id='brick-wall' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M0 0h42v44H0V0zm1 1h40v20H1V1zM0 23h20v20H0V23zm22 0h20v20H22V23z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]// Add patternSize to dependencies\n);// 10. Generate Diagonal Grid Lines pattern SVG (WITH STROKE WIDTH CONTROL)\nconst diagonalGridPatternSVG=useMemo(()=>{const svg=`<svg width='${patternSize}' height='${patternSize}' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'><g fill='none' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'><path d='M0 40L40 0'/><path d='M0 0L40 40'/></g></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternSize,patternColor,strokeWidth,patternOpacity]);// 11. Generate Diagonal Line pattern SVG (NEW - Single diagonal with stroke width)\nconst diagonalPatternSVG=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 ${patternSize} ${patternSize}' fill='none'><line x1='0' y1='${patternSize}' x2='${patternSize}' y2='0' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'/><line x1='-${patternSize}' y1='${patternSize}' x2='0' y2='0' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'/><line x1='${patternSize}' y1='${patternSize}' x2='${patternSize*2}' y2='0' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'/></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternSize,patternColor,strokeWidth,patternOpacity]);// 12. Generate Diagonal Dots pattern SVG (NEW - Dotted diagonal effect)\nconst diagonalDotsPatternSVG=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' fill='none' overflow='visible'><path d='M 0 ${patternSize} L ${patternSize} 0' fill='transparent' stroke-width='${strokeWidth}' stroke='${patternColor}' stroke-linecap='square' stroke-miterlimit='10' stroke-opacity='${patternOpacity}' stroke-dasharray=''></path></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternSize,patternColor,strokeWidth,patternOpacity]);// 13. Generate Diamonds pattern SVG\nconst diamondsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 20 20'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M10 0l10 10-10 10L0 10 10 0zm0 2.828L2.828 10 10 17.172 17.172 10 10 2.828z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 14. Generate Circles pattern SVG\nconst circlesPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 80 80'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Ccircle cx='40' cy='40' r='20'/%3E%3Ccircle cx='0' cy='0' r='20'/%3E%3Ccircle cx='0' cy='80' r='20'/%3E%3Ccircle cx='80' cy='0' r='20'/%3E%3Ccircle cx='80' cy='80' r='20'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 15. Generate Overlapping Circles pattern SVG\nconst overlappingPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='${encodedPatternColor}' stroke-opacity='${patternOpacity}' stroke-width='${strokeWidth}'%3E%3Ccircle cx='40' cy='40' r='40'/%3E%3Ccircle cx='0' cy='40' r='40'/%3E%3Ccircle cx='80' cy='40' r='40'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity,strokeWidth]// Add strokeWidth to dependencies\n);// 16. Generate Signal pattern SVG\nconst signalPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize}' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h12v6H0V0zm28 8h12v6H28V8zm14-8h12v6H42V0zm14 0h12v6H56V0zm0 8h12v6H56V8zM42 8h12v6H42V8zm0 16h12v6H42v-6zm14-8h12v6H56v-6zm14 0h12v6H70v-6zm0-16h12v6H70V0zM28 32h12v6H28v-6zM14 16h12v6H14v-6zM0 24h12v6H0v-6zm0 8h12v6H0v-6zm14 0h12v6H14v-6zm14 8h12v6H28v-6zm-14 0h12v6H14v-6zm28 0h12v6H42v-6zm14-8h12v6H56v-6zm0-8h12v6H56v-6zm14 8h12v6H70v-6zm0 8h12v6H70v-6zM14 24h12v6H14v-6zm14-8h12v6H28v-6zM14 8h12v6H14V8zM0 8h12v6H0V8z' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='evenodd'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 17. Generate Architect pattern SVG\nconst architectPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 20 20'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M0 0h20L0 20z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 18. Generate Stars pattern SVG\nconst starsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 80 80'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M20 10l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zm40 0l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zM0 50l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zm40 0l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zm40 0l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 19. Generate XO pattern SVG (MOVED HERE after Stars)\nconst xoPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize}' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm33.414-6l5.95-5.95L45.95.636 40 6.586 34.05.636 32.636 2.05 38.586 8l-5.95 5.95 1.414 1.414L40 9.414l5.95 5.95 1.414-1.414L41.414 8zM40 48c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zM9.414 40l5.95-5.95-1.414-1.414L8 38.586l-5.95-5.95L.636 34.05 6.586 40l-5.95 5.95 1.414 1.414L8 41.414l5.95 5.95 1.414-1.414L9.414 40z' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='evenodd'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 20. Generate Texture pattern SVG\nconst texturePatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize/2}' height='${patternSize/2}' viewBox='0 0 4 4'%3E%3Cpath fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 21. Generate Checkerboard pattern SVG\nconst checkerboardPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 8 8'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath fill-rule='evenodd' d='M0 0h4v4H0V0zm4 4h4v4H4V4z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 22. Generate Hideout pattern SVG\nconst hideoutPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize*.866}' viewBox='0 0 12 16'%3E%3Cpath fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' d='M4 .99C4 .445 4.444 0 5 0c.552 0 1 .45 1 .99v4.02C6 5.555 5.556 6 5 6c-.552 0-1-.45-1-.99V.99zm6 8c0-.546.444-.99 1-.99.552 0 1 .45 1 .99v4.02c0 .546-.444.99-1 .99-.552 0-1-.45-1-.99V8.99z'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// Select the appropriate pattern based on patternType\nconst getPatternImage=useMemo(()=>{switch(patternType){case\"grid\":return gridPatternSVG;case\"dots\":return dotsPatternSVG;case\"bricks\":return bricksPatternSVG;case\"plus\":return plusPatternSVG;case\"xo\":return xoPatternSVG;case\"zigzag\":return zigzagPatternSVG;case\"waves\":return wavesPatternSVG;case\"triangles\":return trianglesPatternSVG;case\"hexagons\":return hexagonsPatternSVG;case\"diagonalGrid\":return diagonalGridPatternSVG;case\"diagonal\":return diagonalPatternSVG;case\"diagonalDots\":return diagonalDotsPatternSVG;case\"diamonds\":return diamondsPatternSVG;case\"circles\":return circlesPatternSVG;case\"overlapping\":return overlappingPatternSVG;case\"signal\":return signalPatternSVG;case\"architect\":return architectPatternSVG;case\"stars\":return starsPatternSVG;case\"texture\":return texturePatternSVG;case\"checkerboard\":return checkerboardPatternSVG;case\"hideout\":return hideoutPatternSVG;case\"cross\":default:return crossPatternSVG;}},[patternType,crossPatternSVG,gridPatternSVG,dotsPatternSVG,bricksPatternSVG,plusPatternSVG,xoPatternSVG,zigzagPatternSVG,wavesPatternSVG,trianglesPatternSVG,hexagonsPatternSVG,diagonalGridPatternSVG,diagonalPatternSVG,diamondsPatternSVG,circlesPatternSVG,overlappingPatternSVG,signalPatternSVG,architectPatternSVG,starsPatternSVG,texturePatternSVG,checkerboardPatternSVG,hideoutPatternSVG]);// Determine background size based on pattern type\nconst getBackgroundSize=useMemo(()=>{if(patternType===\"grid\"){return`${patternSize}px`;}return undefined;},[patternType,patternSize]);// Generate the complete background style with SVG pattern\nconst backgroundStyle=useMemo(()=>({backgroundColor,backgroundImage:getPatternImage,backgroundRepeat:\"repeat\",backgroundSize:getBackgroundSize,...maskStyle}),[backgroundColor,getPatternImage,getBackgroundSize,maskStyle,style]);// Render as a motion.div for potential animation support\nreturn /*#__PURE__*/_jsx(motion.div,{style:{position:\"relative\",inset:0,width:style?.width||600,height:style?.height||600,pointerEvents:\"none\",...backgroundStyle,...style}});}// Set display name for better debugging in React DevTools\nBackgroundPattern.displayName=\"Background Pattern\";// Default props ensure component works out of the box\nBackgroundPattern.defaultProps={patternType:\"cross\",patternColor:\"#0540E3\",backgroundColor:\"transparent\",patternSize:40,patternOpacity:.4,strokeWidth:3,dotSize:1.2,gap:15,fade:true,fadeIntensity:90,fadeShape:\"circle\"};/**\n * Property Controls define the UI in Framer's properties panel\n * Organized into logical groups for better UX\n */addPropertyControls(BackgroundPattern,{// Pattern type selection\npatternType:{type:ControlType.Enum,title:\"Pattern Type\",options:[\"cross\",\"grid\",\"dots\",\"plus\",\"zigzag\",\"waves\",\"triangles\",\"hexagons\",\"bricks\",\"diagonalGrid\",\"diagonal\",\"diagonalDots\",\"diamonds\",\"circles\",\"overlapping\",\"signal\",\"architect\",\"stars\",\"xo\",\"texture\",\"checkerboard\",\"hideout\"],optionTitles:[\"Cross\",\"Grid\",\"Dots\",\"Plus\",\"Zigzag\",\"Waves\",\"Triangles\",\"Hexagons\",\"Bricks\",\"Diagonal Grid\",\"Diagonal\",\"Diagonal Dots\",\"Diamonds\",\"Circles\",\"Overlapping\",\"Signal\",\"Architect\",\"Stars\",\"X & O\",\"Texture\",\"Checkerboard\",\"Hideout\"],defaultValue:\"cross\",displaySegmentedControl:false},// Pattern appearance controls\npatternColor:{type:ControlType.Color,title:\"Pattern Color\",defaultValue:\"#0540E3\"},patternOpacity:{type:ControlType.Number,title:\"Pattern Opacity\",defaultValue:.4,min:0,max:1,step:.05,displayStepper:true},patternSize:{type:ControlType.Number,title:\"Pattern Size\",defaultValue:40,min:10,max:200,step:5,unit:\"px\",displayStepper:true,description:\"Controls the overall size of the pattern\"},// Stroke width control for Grid, Diagonal Grid, and Diagonal patterns\nstrokeWidth:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:3,min:1,max:10,step:.5,unit:\"px\",displayStepper:true,hidden:props=>props.patternType!==\"grid\"&&props.patternType!==\"diagonalGrid\"&&props.patternType!==\"diagonal\"&&props.patternType!==\"diagonalDots\"&&props.patternType!==\"overlapping\",description:\"Controls the thickness of lines\"},// Dots-specific controls\ndotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:1.2,min:.5,max:10,step:.1,unit:\"px\",displayStepper:true,hidden:props=>props.patternType!==\"dots\",description:\"Controls the radius of each dot\"},gap:{type:ControlType.Number,title:\"Dot Gap\",defaultValue:15,min:5,max:50,step:1,unit:\"px\",displayStepper:true,hidden:props=>props.patternType!==\"dots\",description:\"Controls spacing between dots\"},// Background controls\nbackgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},// Fade effect controls\nfade:{type:ControlType.Boolean,title:\"Fade Effect\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Made with ❤️ by [Soyeb](https://framer.link/MBYIDPK)\"},fadeShape:{type:ControlType.Enum,title:\"Fade Shape\",options:[\"circle\",\"ellipse\"],optionTitles:[\"Circle\",\"Ellipse\"],defaultValue:\"circle\",displaySegmentedControl:true,hidden:props=>props.fade===false},fadeIntensity:{type:ControlType.Number,title:\"Fade Intensity\",defaultValue:90,min:50,max:100,step:5,unit:\"%\",displayStepper:true,hidden:props=>props.fade===false,description:\"Controls how far the fade extends from center.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BackgroundPattern\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"600\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 600\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Background_Pattern.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect}from\"react\";import{Fragment}from\"react\";/**\n * @framerDisableUnlink\n */export default function OverscrollBehavior(props){const{enabled=true}=props;useEffect(()=>{// Apply overscroll behavior fix when component mounts\nif(enabled){// Store original value for cleanup\nconst originalOverscrollBehavior=document.body.style.overscrollBehavior;// Apply the fix\ndocument.body.style.overscrollBehavior=\"none\";// Cleanup function - restore original behavior when component unmounts\nreturn()=>{document.body.style.overscrollBehavior=originalOverscrollBehavior;};}},[enabled]);// Return inline styles to ensure overscroll behavior is properly applied\nreturn /*#__PURE__*/_jsx(Fragment,{children:/*#__PURE__*/_jsx(\"style\",{children:`\n                    body {\n                        overscroll-behavior: ${enabled?\"none\":\"auto\"};\n                    }\n                    \n                    html {\n                        overscroll-behavior: ${enabled?\"none\":\"auto\"};\n                    }\n                    \n                    /* Additional iOS Safari specific fixes */\n                    body.no-overscroll {\n                        position: fixed;\n                        overflow: hidden;\n                        width: 100%;\n                        height: 100%;\n                    }\n                    \n                    /* Prevent rubber band scrolling on iOS */\n                    .no-bounce {\n                        -webkit-overflow-scrolling: touch;\n                        overscroll-behavior: none;\n                    }\n                `})});}OverscrollBehavior.displayName=\"Overscroll Behavior\";addPropertyControls(OverscrollBehavior,{enabled:{title:\"Enabled\",type:ControlType.Boolean,defaultValue:true,description:\"Enable/disable overscroll behavior prevention\\n\\nMade with ❤️ by [Nitso](https://dub.sh/nitso-framer)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"OverscrollBehavior\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Overscroll_Preventer.map","// 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 3.75 0 L 0 11.25 L 7.5 11.25 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"11.25px\" id=\"q_nKPtBGJ\" transform=\"translate(2.25 6)\" width=\"7.5px\"/><path d=\"M 0 4.125 C 0 1.847 1.847 0 4.125 0 C 6.403 0 8.25 1.847 8.25 4.125 C 8.25 6.403 6.403 8.25 4.125 8.25 C 1.847 8.25 0 6.403 0 4.125 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"8.25px\" id=\"MpPyBdaZ4\" transform=\"translate(10.5 3)\" width=\"8.25px\"/><path d=\"M 0 5.25 L 0 0 L 8.25 0 L 8.25 5.25 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"5.25px\" id=\"vndv5ExCK\" transform=\"translate(12.75 14.25)\" width=\"8.25px\"/><path d=\"M 3.75 0 L 0 11.25 L 7.5 11.25 Z\" fill=\"transparent\" height=\"11.25px\" id=\"vm9iwQat7\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(2.25 6)\" width=\"7.5px\"/><path d=\"M 0 4.125 C 0 1.847 1.847 0 4.125 0 C 6.403 0 8.25 1.847 8.25 4.125 C 8.25 6.403 6.403 8.25 4.125 8.25 C 1.847 8.25 0 6.403 0 4.125 Z\" fill=\"transparent\" height=\"8.25px\" id=\"ZJXViX94I\" 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 3)\" width=\"8.25px\"/><path d=\"M 0 5.25 L 0 0 L 8.25 0 L 8.25 5.25 Z\" fill=\"transparent\" height=\"5.25px\" id=\"sATOM9inG\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(12.75 14.25)\" width=\"8.25px\"/></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(\"3151112179\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-c2uAX\",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-c2uAX { -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\":\"Shapes\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-c2uAX\");Icon.displayName=\"Shapes\";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\":{\"framerVector\":\"{\\\"name\\\":\\\"Shapes\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerDisableUnlink\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b44fae2)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Instance,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Shapes from\"https://framerusercontent.com/modules/SUBEdtCFaOJwrjN2Inhk/bznEUerLEqVVXGfsDOYE/pKERsxd4H.js\";const serializationHash=\"framer-GDhCK\";const variantClassNames={YMQTpz9Mc:\"framer-v-1gus04n\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const I6tt1Cqyq=undefined;const OTsA7tSc_=undefined;const YlJHIWWNM=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=({color,height,icon,id,width,width1,...props})=>{return{...props,I6tt1Cqyq:color??props.I6tt1Cqyq??\"rgb(0, 0, 0)\",OTsA7tSc_:width1??props.OTsA7tSc_??.7,YlJHIWWNM:icon??props.YlJHIWWNM??Shapes};};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,YlJHIWWNM,I6tt1Cqyq,OTsA7tSc_,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"YMQTpz9Mc\",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(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1gus04n\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"YMQTpz9Mc\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(Instance,{animated:true,className:\"framer-xkab7o\",Component:YlJHIWWNM,layoutDependency:layoutDependency,layoutId:\"iIifnKs_j\",style:{\"--1m6trwb\":0,\"--21h8s6\":I6tt1Cqyq,\"--pgex8v\":OTsA7tSc_}})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-GDhCK.framer-1isqx60, .framer-GDhCK .framer-1isqx60 { display: block; }\",\".framer-GDhCK.framer-1gus04n { height: 24px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 24px; }\",\".framer-GDhCK .framer-xkab7o { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 24px); left: 0px; position: absolute; right: 0px; top: 0px; width: calc(100% - 0px); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 24\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"YlJHIWWNM\":\"icon\",\"I6tt1Cqyq\":\"color\",\"OTsA7tSc_\":\"width1\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerVectorSets [\"omX0gWFPqDwhaiWwf6ab\"]\n */const Framerv3XTvAyuf=withCSS(Component,css,\"framer-GDhCK\");export default Framerv3XTvAyuf;Framerv3XTvAyuf.displayName=\"Phosphor\";Framerv3XTvAyuf.defaultProps={height:24,width:24};addPropertyControls(Framerv3XTvAyuf,{YlJHIWWNM:{defaultValue:{identifier:\"module:SUBEdtCFaOJwrjN2Inhk/bznEUerLEqVVXGfsDOYE/pKERsxd4H.js:default\",moduleId:\"SUBEdtCFaOJwrjN2Inhk\"},setModuleId:\"omX0gWFPqDwhaiWwf6ab\",title:\"Icon\",type:ControlType.VectorSetItem},I6tt1Cqyq:{defaultValue:\"rgb(0, 0, 0)\",title:\"Color\",type:ControlType.Color},OTsA7tSc_:{defaultValue:.7,displayStepper:true,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},onOTsA7tSc_Change:{changes:\"OTsA7tSc_\",type:ControlType.ChangeHandler}});addFonts(Framerv3XTvAyuf,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerv3XTvAyuf\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"YlJHIWWNM\\\":\\\"icon\\\",\\\"I6tt1Cqyq\\\":\\\"color\\\",\\\"OTsA7tSc_\\\":\\\"width1\\\"}\",\"framerVectorSets\":\"[\\\"omX0gWFPqDwhaiWwf6ab\\\"]\",\"framerIntrinsicHeight\":\"24\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./v3XTvAyuf.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,useMemo,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CursorMenuButton(props){const{label=\"TRAIL TYPE\",states=\"PENCIL,PEN,BRUSH\",defaultIndex=0,elementId=\"trail-toggle\",textColor=\"rgba(0,0,0,1)\",hoverTextColor=\"rgba(0,0,0,0.4)\",stateColor=\"rgba(0,0,0,1)\",hoverStateColor=\"rgba(0,0,0,0.4)\",hoverBackgroundColor=\"rgba(0,0,0,0.06)\",font={},textShadow=\"0px 0.5px 0px rgba(255,255,255,0.8)\",hideState=false,paddingTop=0,paddingBottom=0}=props;const normalizedStates=useMemo(()=>{const stateOptions=states.split(\",\").map(s=>s.trim().toUpperCase());const safeStates=stateOptions.filter(Boolean);return safeStates.length>0?safeStates:[\"ON\"];},[states]);const getSafeIndex=useCallback(index=>{const length=normalizedStates.length;if(length<=0)return 0;const normalized=Math.floor(index);return(normalized%length+length)%length;},[normalizedStates.length]);const[currentIndex,setCurrentIndex]=useState(()=>getSafeIndex(defaultIndex));const[isHovered,setIsHovered]=useState(false);useEffect(()=>{startTransition(()=>{setCurrentIndex(getSafeIndex(defaultIndex));});},[defaultIndex,getSafeIndex]);const handleClick=useCallback(()=>{startTransition(()=>{setCurrentIndex(prev=>(prev+1)%normalizedStates.length);});},[normalizedStates.length]);const upperLabel=useMemo(()=>String(label).toUpperCase(),[label]);const currentState=normalizedStates[currentIndex]??normalizedStates[0]??\"ON\";return /*#__PURE__*/_jsxs(\"span\",{id:elementId,onClick:handleClick,onMouseEnter:()=>setIsHovered(true),onMouseLeave:()=>setIsHovered(false),style:{...font,...props.style,position:\"relative\",display:props.style?.display??\"inline-flex\",width:\"fit-content\",minWidth:\"max-content\",gap:0,paddingTop,paddingBottom,paddingLeft:0,paddingRight:0,margin:0,background:isHovered?hoverBackgroundColor:\"none\",border:\"none\",cursor:\"pointer\",userSelect:\"none\",textTransform:\"uppercase\",textShadow,whiteSpace:\"nowrap\"},role:\"button\",\"aria-label\":`${upperLabel} [${currentState}]`,children:[/*#__PURE__*/_jsx(\"span\",{style:{color:isHovered?hoverTextColor:textColor},children:hideState?upperLabel:`${upperLabel} [`}),!hideState&&/*#__PURE__*/_jsx(\"span\",{style:{color:isHovered?hoverStateColor:stateColor},children:currentState}),!hideState&&/*#__PURE__*/_jsx(\"span\",{style:{color:isHovered?hoverTextColor:textColor},children:\"]\"})]});}addPropertyControls(CursorMenuButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"TRAIL TYPE\"},states:{type:ControlType.String,title:\"States (comma-separated)\",defaultValue:\"PENCIL,PEN,BRUSH\"},defaultIndex:{type:ControlType.Number,title:\"Default Index\",defaultValue:0,min:0,max:10,step:1},elementId:{type:ControlType.String,title:\"Element ID\",defaultValue:\"trail-toggle\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"rgba(0,0,0,0.4)\"},stateColor:{type:ControlType.Color,title:\"State Color\",defaultValue:\"#000000\"},hoverStateColor:{type:ControlType.Color,title:\"Hover State\",defaultValue:\"rgba(0,0,0,0.4)\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"rgba(0,0,0,0.06)\"},font:{type:ControlType.Font,controls:\"extended\",defaultFontType:\"custom\",defaultValue:{fontFamily:\"Paper Mono\",fontWeight:400,fontSize:9,letterSpacing:\"0.02em\",lineHeight:\"1em\"}},textShadow:{type:ControlType.String,title:\"Text Shadow\",defaultValue:\"0px 0.5px 0px rgba(255,255,255,0.8)\"},hideState:{type:ControlType.Boolean,title:\"Hide State\",defaultValue:false},paddingTop:{type:ControlType.Number,title:\"Padding Top\",defaultValue:0,min:0,max:40,step:1,unit:\"px\"},paddingBottom:{type:ControlType.Number,title:\"Padding Bottom\",defaultValue:0,min:0,max:40,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorMenuButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CursorMenuButton.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType}from\"framer\";// name:hex pairs — matches the CursorTrail COLOR_PRESETS you want to expose\nconst DEFAULT_COLORS=\"Black:#0A0A0A,Charcoal:#4D4D4D,Graphite:#7A7A7A,Soft Gray:#D9D9D9,Vivid Red:#B3121B,Bic Blue:#1E3A8A,Marker Yellow:#FFE733\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CursorMenuColorButton(props){const{label=\"TRAIL COLOR\",colors=DEFAULT_COLORS,defaultIndex=0,elementId=\"trail-color-toggle\",textColor=\"rgba(0,0,0,1)\",hoverBackgroundColor=\"rgba(0,0,0,0.06)\",font={},textShadow=\"0px 0.5px 0px rgba(255,255,255,0.8)\",optionFont={},optionGap=13,columnGap=14,closedDotGap=6,closedDotOffsetY=-5,dotSize=11,dotShadow=\"0px 0.5px 0px rgba(255,255,255,0.6)\",dividerColor=\"rgba(0,0,0,0.15)\",panelBackgroundColor=\"#FFFFFF\",panelPaddingX=24,panelPaddingY=20,panelBorderRadius=4,panelShadow=\"0px 2px 12px rgba(0,0,0,0.08)\",panelMinWidth=0,panelOffsetX=8,panelOffsetY=0,paddingTop=0,paddingBottom=0}=props;const options=useMemo(()=>{const parsed=colors.split(\",\").map(entry=>{const[name,hex]=entry.split(\":\").map(s=>s.trim());return{name:name||\"\",hex:hex||name||\"#000000\"};}).filter(o=>o.name);return parsed.length>0?parsed:[{name:\"Black\",hex:\"#000000\"}];},[colors]);const getSafeIndex=useCallback(index=>{const length=options.length;if(length<=0)return 0;const normalized=Math.floor(index);return(normalized%length+length)%length;},[options.length]);const[currentIndex,setCurrentIndex]=useState(()=>getSafeIndex(defaultIndex));const[isHovered,setIsHovered]=useState(false);const[isOpen,setIsOpen]=useState(false);// mountedOpen stays true through the closing animation; isOpen flips first\nconst[mountedOpen,setMountedOpen]=useState(false);const[panelPos,setPanelPos]=useState({top:0,left:0});const rootRef=useRef(null);const triggerNameRef=useRef(null);const panelRef=useRef(null);const rowRefs=useRef([]);const closeTimerRef=useRef(null);// Last collapsed clip-path shape (the trigger row's slice), used both to\n// start the open animation and as the target of the close animation.\nconst collapsedClipRef=useRef(\"inset(0% 0% 0% 0%)\");const morphAnimRef=useRef(null);const cancelScheduledClose=useCallback(()=>{if(closeTimerRef.current){clearTimeout(closeTimerRef.current);closeTimerRef.current=null;}},[]);const scheduleClose=useCallback(()=>{cancelScheduledClose();closeTimerRef.current=setTimeout(()=>{startTransition(()=>setIsOpen(false));},150);},[cancelScheduledClose]);useEffect(()=>{startTransition(()=>{setCurrentIndex(getSafeIndex(defaultIndex));});},[defaultIndex,getSafeIndex]);// Publish the initial selection so CursorTrail can read it on mount\nuseEffect(()=>{rootRef.current?.setAttribute(\"data-color\",current.hex);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);// Anchors the panel by measuring the trigger's own name text against the\n// matching row's name text, then shifting the whole panel by the delta —\n// this keeps the two right-aligned text columns flush no matter what the\n// trailing content (bracket vs. divider/dot) looks like on each side.\n// The same measurement gives us the row's position within the panel as a\n// percentage, which becomes the clip-path shape used to morph the trigger\n// into the open panel instead of just popping it in.\nconst measureAnchor=useCallback(targetIndex=>{const panelEl=panelRef.current;const rowEl=rowRefs.current[targetIndex];const nameEl=triggerNameRef.current;if(!panelEl||!rowEl||!nameEl)return null;const panelRect=panelEl.getBoundingClientRect();const rowRect=rowEl.getBoundingClientRect();const nameRect=nameEl.getBoundingClientRect();const deltaX=nameRect.right-rowRect.right;const deltaY=nameRect.top+nameRect.height/2-(rowRect.top+rowRect.height/2);const panelHeight=panelRect.height||1;const insetTop=(rowRect.top-panelRect.top)/panelHeight*100;const insetBottom=(panelRect.bottom-rowRect.bottom)/panelHeight*100;return{left:panelRect.left+deltaX+panelOffsetX,top:panelRect.top+deltaY+panelOffsetY,clip:`inset(${insetTop}% 0% ${insetBottom}% 0%)`};},[panelOffsetX,panelOffsetY]);// Repositions the panel and refreshes the stored collapsed shape without\n// touching the clip-path animation — used for resize/scroll while open,\n// and to re-anchor onto a newly-picked row right before it closes.\nconst repositionOnly=useCallback((targetIndex=currentIndex)=>{const anchor=measureAnchor(targetIndex);if(!anchor)return;setPanelPos({left:anchor.left,top:anchor.top});collapsedClipRef.current=anchor.clip;},[measureAnchor,currentIndex]);const MORPH_EASING=\"cubic-bezier(0.23,1,0.32,1)\";// isOpen flips immediately (drives the trigger's own state). Opening is\n// handled by the layout effect below (needs the panel mounted first);\n// closing plays here, then unmounts once the reverse morph finishes.\nuseEffect(()=>{if(isOpen){setMountedOpen(true);return;}const panelEl=panelRef.current;if(!panelEl){setMountedOpen(false);return;}// Read wherever the open animation actually is (it may still be\n// mid-flight) and commit that to the base style before cancelling —\n// cancel() reverts to the base style, so if we cancel first the\n// element snaps to the stale pre-animation shape instead.\nconst startClip=getComputedStyle(panelEl).clipPath;panelEl.style.clipPath=startClip;morphAnimRef.current?.cancel();panelEl.style.pointerEvents=\"none\";const anim=panelEl.animate([{clipPath:startClip},{clipPath:collapsedClipRef.current}],{duration:150,easing:MORPH_EASING,fill:\"forwards\"});morphAnimRef.current=anim;anim.onfinish=()=>setMountedOpen(false);return()=>anim.cancel();},[isOpen]);useLayoutEffect(()=>{if(!mountedOpen)return;const panelEl=panelRef.current;const anchor=measureAnchor(currentIndex);if(panelEl&&anchor){setPanelPos({left:anchor.left,top:anchor.top});collapsedClipRef.current=anchor.clip;panelEl.style.clipPath=anchor.clip;panelEl.style.pointerEvents=\"none\";morphAnimRef.current?.cancel();const anim=panelEl.animate([{clipPath:anchor.clip},{clipPath:\"inset(0% 0% 0% 0%)\"}],{duration:220,easing:MORPH_EASING,fill:\"forwards\"});morphAnimRef.current=anim;anim.onfinish=()=>{panelEl.style.pointerEvents=\"auto\";};}const handleOutsideClick=e=>{const target=e.target;const insideRoot=rootRef.current?.contains(target);const insidePanel=panelRef.current?.contains(target);if(!insideRoot&&!insidePanel){startTransition(()=>setIsOpen(false));}};const handleReposition=()=>repositionOnly();document.addEventListener(\"pointerdown\",handleOutsideClick);window.addEventListener(\"resize\",handleReposition);window.addEventListener(\"scroll\",handleReposition,true);return()=>{document.removeEventListener(\"pointerdown\",handleOutsideClick);window.removeEventListener(\"resize\",handleReposition);window.removeEventListener(\"scroll\",handleReposition,true);cancelScheduledClose();};},[mountedOpen,currentIndex,measureAnchor,repositionOnly,cancelScheduledClose]);const toggleOpen=useCallback(()=>{startTransition(()=>setIsOpen(prev=>!prev));},[]);const selectIndex=useCallback(index=>{setCurrentIndex(index);const hex=options[index]?.hex;if(hex)rootRef.current?.setAttribute(\"data-color\",hex);// Re-anchor onto the newly picked row so the close animation\n// morphs back into *that* row, not the previously selected one.\nrepositionOnly(index);startTransition(()=>setIsOpen(false));},[options,repositionOnly]);const dividerSvgUrl=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' width='1' height='8'><path d='M0.5 0 L0.5 4' stroke='${dividerColor}' stroke-width='0.7'/></svg>`;return`url(\"data:image/svg+xml,${encodeURIComponent(svg)}\")`;},[dividerColor]);const upperLabel=useMemo(()=>String(label).toUpperCase(),[label]);const current=options[currentIndex]??options[0];const dotStyle=hex=>({display:\"inline-block\",width:dotSize,height:dotSize,borderRadius:\"50%\",backgroundColor:hex,boxShadow:dotShadow});return /*#__PURE__*/_jsxs(\"span\",{ref:rootRef,id:elementId,onClick:toggleOpen,onMouseEnter:()=>{setIsHovered(true);cancelScheduledClose();},onMouseLeave:()=>{setIsHovered(false);if(isOpen)scheduleClose();},style:{...font,...props.style,position:\"relative\",display:props.style?.display??\"inline-flex\",alignItems:\"center\",width:\"fit-content\",minWidth:\"max-content\",paddingTop,paddingBottom,margin:0,background:isHovered?hoverBackgroundColor:\"none\",border:\"none\",cursor:\"pointer\",userSelect:\"none\",textTransform:\"uppercase\",textShadow,whiteSpace:\"nowrap\"},role:\"button\",\"aria-label\":`${upperLabel} [${current.name}]`,\"aria-expanded\":isOpen,children:[/*#__PURE__*/_jsxs(\"span\",{style:{color:textColor},children:[upperLabel,\" [ \"]}),/*#__PURE__*/_jsx(\"span\",{ref:triggerNameRef,style:{color:current.hex},children:current.name}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"inline-flex\",alignItems:\"center\",height:\"1em\",marginLeft:closedDotGap,transform:`translateY(${closedDotOffsetY}px)`},children:/*#__PURE__*/_jsx(\"span\",{style:dotStyle(current.hex)})}),/*#__PURE__*/_jsx(\"span\",{style:{color:textColor},children:\" ]\"}),mountedOpen&&typeof document!==\"undefined\"&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{ref:panelRef,onMouseEnter:cancelScheduledClose,onMouseLeave:scheduleClose,style:{position:\"fixed\",top:panelPos.top,left:panelPos.left,display:\"grid\",gridTemplateColumns:\"max-content auto auto\",alignItems:\"center\",columnGap,rowGap:optionGap,minWidth:panelMinWidth||undefined,padding:`${panelPaddingY}px ${panelPaddingX}px`,backgroundColor:panelBackgroundColor,borderRadius:panelBorderRadius,boxShadow:panelShadow,// Above CursorMenuMobileTap's fixed panel (2147483646) — this\n// popover is triggered from inside that menu, so it must win.\nzIndex:2147483647,clipPath:collapsedClipRef.current},children:options.map((o,i)=>/*#__PURE__*/_jsxs(\"span\",{role:\"option\",\"aria-selected\":i===currentIndex,onClick:e=>{e.stopPropagation();selectIndex(i);},style:{display:\"contents\",cursor:\"pointer\"},children:[/*#__PURE__*/_jsx(\"span\",{ref:el=>{rowRefs.current[i]=el;},style:{...optionFont,color:o.hex,textAlign:\"right\",textTransform:\"uppercase\",whiteSpace:\"nowrap\"},children:o.name}),/*#__PURE__*/_jsx(\"span\",{style:{alignSelf:\"stretch\",width:1,backgroundImage:dividerSvgUrl,backgroundRepeat:\"repeat-y\",backgroundSize:\"1px 8px\"}}),/*#__PURE__*/_jsx(\"span\",{style:dotStyle(o.hex)})]},i))}),document.body)]});}addPropertyControls(CursorMenuColorButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"TRAIL COLOR\"},colors:{type:ControlType.String,title:\"Colors (Name:#hex, ...)\",defaultValue:DEFAULT_COLORS,displayTextArea:true},defaultIndex:{type:ControlType.Number,title:\"Default Index\",defaultValue:0,min:0,max:10,step:1},elementId:{type:ControlType.String,title:\"Element ID\",defaultValue:\"trail-color-toggle\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"rgba(0,0,0,0.06)\"},font:{type:ControlType.Font,controls:\"extended\",title:\"Label Font\",defaultFontType:\"custom\",defaultValue:{fontFamily:\"Paper Mono\",fontWeight:400,fontSize:9,letterSpacing:\"0.02em\",lineHeight:\"1em\"}},textShadow:{type:ControlType.String,title:\"Text Shadow\",defaultValue:\"0px 0.5px 0px rgba(255,255,255,0.8)\"},optionFont:{type:ControlType.Font,controls:\"extended\",title:\"Option Font\",defaultFontType:\"custom\",defaultValue:{fontFamily:\"Paper Mono\",fontWeight:400,fontSize:15,letterSpacing:\"0.02em\",lineHeight:\"1.2em\"}},optionGap:{type:ControlType.Number,title:\"Row Gap\",defaultValue:13,min:0,max:60,step:1,unit:\"px\"},columnGap:{type:ControlType.Number,title:\"Column Gap\",defaultValue:14,min:0,max:60,step:1,unit:\"px\"},closedDotGap:{type:ControlType.Number,title:\"Closed Dot Gap\",defaultValue:6,min:0,max:60,step:1,unit:\"px\"},closedDotOffsetY:{type:ControlType.Number,title:\"Closed Dot Offset Y\",defaultValue:-.5,min:-40,max:40,step:1,unit:\"px\"},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:11,min:4,max:60,step:1,unit:\"px\"},dotShadow:{type:ControlType.String,title:\"Dot Shadow\",defaultValue:\"0px 0.5px 0px rgba(255,255,255,0.6)\"},dividerColor:{type:ControlType.Color,title:\"Divider Color\",defaultValue:\"rgba(0,0,0,0.15)\"},panelBackgroundColor:{type:ControlType.Color,title:\"Panel Background\",defaultValue:\"#FFFFFF\"},panelPaddingX:{type:ControlType.Number,title:\"Panel Padding X\",defaultValue:24,min:0,max:100,step:1,unit:\"px\"},panelPaddingY:{type:ControlType.Number,title:\"Panel Padding Y\",defaultValue:20,min:0,max:100,step:1,unit:\"px\"},panelBorderRadius:{type:ControlType.Number,title:\"Panel Radius\",defaultValue:4,min:0,max:60,step:1,unit:\"px\"},panelShadow:{type:ControlType.String,title:\"Panel Shadow\",defaultValue:\"0px 2px 12px rgba(0,0,0,0.08)\"},panelMinWidth:{type:ControlType.Number,title:\"Panel Min Width\",defaultValue:0,min:0,max:800,step:1,unit:\"px\"},panelOffsetX:{type:ControlType.Number,title:\"Panel Offset X\",defaultValue:8,min:-200,max:400,step:1,unit:\"px\"},panelOffsetY:{type:ControlType.Number,title:\"Panel Offset Y\",defaultValue:0,min:-200,max:400,step:1,unit:\"px\"},paddingTop:{type:ControlType.Number,title:\"Padding Top\",defaultValue:0,min:0,max:40,step:1,unit:\"px\"},paddingBottom:{type:ControlType.Number,title:\"Padding Bottom\",defaultValue:0,min:0,max:40,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorMenuColorButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CursorMenuColorButton.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";// ── Config ───────────────────────────────────────────────────────────────\n// Framer shows no property panel for code overrides, so tune these here.\nconst MOBILE_PLACEMENT=\"bottom\";const MOBILE_OFFSET_X=0// px from the right edge\n;const MOBILE_OFFSET_Y=0// px from the bottom edge (\"bottom\") or top (\"top\")\n;const MOBILE_WIDTH=\"\"// any CSS width, e.g. \"100%\"; \"\" = use the layer's width\n;const TRIGGER_LABEL_CLOSED=\"CUSTOM SETTINGS\";const TRIGGER_LABEL_OPEN=\"CLOSE SETTINGS\";const MENU_OPEN_EVENT=\"cardstack:setMenuOpen\";// ─────────────────────────────────────────────────────────────────────────\n// Keep the menu hidden until the fake loader (PixelLines/PrintScanText)\n// finishes — same contract as withHeroReveal in loader-handoff-override.tsx.\nconst LOADER_COMPLETE_EVENT=\"framer:loader-complete\";const LOADER_FALLBACK_SECONDS=6;function useLoaderRevealed(){const[revealed,setRevealed]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;let done=false;const reveal=()=>{if(done)return;done=true;setRevealed(true);};window.addEventListener(LOADER_COMPLETE_EVENT,reveal);if(window.__framerLoaderComplete)reveal();const fallback=window.setTimeout(reveal,LOADER_FALLBACK_SECONDS*1e3);return()=>{window.removeEventListener(LOADER_COMPLETE_EVENT,reveal);window.clearTimeout(fallback);};},[]);return revealed;}// Apply to the CUSTOM SETTINGS layer. The menu container is pointer-events:none\n// while closed, so only this layer can open it — events still bubble up to the\n// container's onClick/onMouseEnter from here. The display:contents wrapper is\n// invisible to layout but gives the container a marker to match taps against.\nexport function withMenuTrigger(Component){const Wrapped=/*#__PURE__*/forwardRef(function Wrapped(props,ref){const[open,setOpen]=useState(false);useEffect(()=>{const onMenu=event=>setOpen(!!event.detail?.open);window.addEventListener(MENU_OPEN_EVENT,onMenu);return()=>window.removeEventListener(MENU_OPEN_EVENT,onMenu);},[]);return /*#__PURE__*/_jsx(\"div\",{\"data-menu-trigger\":\"true\",style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{ref:ref,...props,label:open?TRIGGER_LABEL_OPEN:TRIGGER_LABEL_CLOSED,style:{...props.style,pointerEvents:\"auto\"}})});});return Wrapped;}export function withMobileTapMenu(Component){const Wrapped=/*#__PURE__*/forwardRef(function Wrapped(props,ref){const{mobileBreakpoint=810,headerHeight=20,mobileHeaderHeight=36,openBackgroundColor=\"rgba(250, 250, 250,0.95)\",openBoxShadow=\"0 2px 4px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04)\",openTransition=\"transform 0.3s cubic-bezier(0.32,0.72,0.03,1), background-color 0.25s cubic-bezier(0.32,0.72,0.03,1), box-shadow 0.5s cubic-bezier(0.32,0.72,0.03,1), backdrop-filter 0.5s cubic-bezier(0.32,0.72,0.03,1)\",closeTransition=\"transform 0.35s cubic-bezier(0.32,0.72,0.03,1), background-color 0.35s cubic-bezier(0.32,0.72,0.03,1), box-shadow 0.35s cubic-bezier(0.32,0.72,0.03,1), backdrop-filter 0.35s cubic-bezier(0.32,0.72,0.03,1)\",forceOpen=false,backdropBlur=4}=props;const loaderRevealed=useLoaderRevealed();const localRef=useRef(null);const[isMobile,setIsMobile]=useState(false);const[isOpen,setIsOpen]=useState(false);const[isHovered,setIsHovered]=useState(false);const[componentHeight,setComponentHeight]=useState(null);const[ready,setReady]=useState(false);const setCombinedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);// Measure component height so the closed offset is always exact.\n// After first measurement, snap to correct hidden position (no transition),\n// then enable transitions on the next frame.\nuseEffect(()=>{const node=localRef.current;if(!node)return;let rafId;const ro=new ResizeObserver(()=>{setComponentHeight(node.offsetHeight);setReady(false);rafId=requestAnimationFrame(()=>setReady(true));});ro.observe(node);return()=>{ro.disconnect();cancelAnimationFrame(rafId);};},[]);useEffect(()=>{if(typeof window===\"undefined\")return;const query=`(max-width: ${mobileBreakpoint}px)`;const media=window.matchMedia(query);const update=()=>startTransition(()=>setIsMobile(media.matches));update();media.addEventListener(\"change\",update);return()=>media.removeEventListener(\"change\",update);},[mobileBreakpoint]);useEffect(()=>{if(!isMobile)startTransition(()=>setIsOpen(false));},[isMobile]);const outsideClickHandler=useCallback(event=>{if(!isMobile||!isOpen)return;const node=localRef.current;if(!node)return;const target=event.target;if(target&&!node.contains(target)){startTransition(()=>setIsOpen(false));}},[isMobile,isOpen]);useEffect(()=>{if(typeof document===\"undefined\")return;if(!isMobile||!isOpen)return;document.addEventListener(\"click\",outsideClickHandler);return()=>document.removeEventListener(\"click\",outsideClickHandler);},[isMobile,isOpen,outsideClickHandler]);// Only taps on the withMenuTrigger layer toggle the menu — taps on the\n// menu's own buttons must not close it.\nconst handleTap=useCallback(event=>{if(!isMobile)return;const target=event.target;if(!target?.closest?.(\"[data-menu-trigger]\"))return;event.stopPropagation();startTransition(()=>setIsOpen(prev=>!prev));},[isMobile]);const isVisible=forceOpen||(isMobile?isOpen:isHovered);// Tell the card-stack to stop reacting to pointer input while the menu\n// is open — it also listens on `window`, so CSS pointer-events alone\n// can't stop it. Mirrors the existing cardstack:setView precedent.\nuseEffect(()=>{window.dispatchEvent(new CustomEvent(\"cardstack:setMenuOpen\",{detail:{open:isVisible,source:\"settings-menu\"}}));},[isVisible]);const computedStyle=useMemo(()=>{// Before measurement: push fully off-screen above so no flash occurs.\n// After measurement: snap to correct position (transition: none via ready flag),\n// then enable transitions on the next frame.\nconst activeHeaderHeight=isMobile?mobileHeaderHeight:headerHeight;// Bottom placement is the mirror of the desktop behaviour: anchored to\n// the bottom edge, hidden by sliding *down*, so it opens upwards.\nconst openUpwards=isMobile&&MOBILE_PLACEMENT===\"bottom\";const offsetX=isMobile?MOBILE_OFFSET_X:0;const offsetY=isMobile?MOBILE_OFFSET_Y:0;const magnitude=componentHeight!==null?componentHeight-activeHeaderHeight:1e5;const hiddenOffset=openUpwards?magnitude:-magnitude;const translateY=isVisible?0:hiddenOffset;return{position:\"fixed\",top:openUpwards?undefined:offsetY,bottom:openUpwards?offsetY:undefined,right:offsetX,// One below int32 max so child popovers (e.g. CursorMenuColorButton's\n// dropdown, zIndex 2147483647) can render above this menu.\nzIndex:8,overflow:\"hidden\",// The override drives position/size itself, so the layer's canvas\n// width isn't reliable on mobile — Mobile Width is the escape hatch.\nwidth:isMobile&&MOBILE_WIDTH||props.style?.width,height:props.style?.height,transform:`translateY(${translateY}px)`,backgroundColor:isVisible?openBackgroundColor:\"rgba(255, 255, 255, 0)\",boxShadow:isVisible?openBoxShadow:\"none\",backdropFilter:isVisible?`blur(${backdropBlur}px)`:\"blur(0px)\",WebkitBackdropFilter:isVisible?`blur(${backdropBlur}px)`:\"blur(0px)\",// Hidden until the loader completes; fades in alongside the hero\nopacity:loaderRevealed?1:0,// Closed: only children marked with withMenuTrigger stay hittable,\n// so the container area itself never opens the menu.\npointerEvents:loaderRevealed&&isVisible?undefined:\"none\",// Disable transition while snapping to initial position after measurement\ntransition:ready?`${isVisible?openTransition:closeTransition}, opacity 0.5s ease`:\"none\",\"--framer-hover-background\":\"transparent\",\"--framer-hover-border-color\":\"transparent\",\"--framer-hover-box-shadow\":\"none\"};},[backdropBlur,closeTransition,loaderRevealed,componentHeight,forceOpen,headerHeight,mobileHeaderHeight,isHovered,isMobile,isOpen,openBackgroundColor,openBoxShadow,openTransition,props.style,ready]);return /*#__PURE__*/_jsx(Component,{ref:setCombinedRef,...props,style:computedStyle,onMouseEnter:!isMobile?()=>startTransition(()=>setIsHovered(true)):undefined,onMouseLeave:!isMobile?()=>startTransition(()=>setIsHovered(false)):undefined,onClick:isMobile?handleTap:undefined});});return Wrapped;}\nexport const __FramerMetadata__ = {\"exports\":{\"withMobileTapMenu\":{\"type\":\"reactHoc\",\"name\":\"withMobileTapMenu\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMenuTrigger\":{\"type\":\"reactHoc\",\"name\":\"withMenuTrigger\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CursorMenuMobileTap.map","// GeistPixelScan — generated from the Geist Pixel Animated app.\n// Paste into Framer: Assets -> Code -> New code file.\n//\n// The Geist Pixel font is NOT embedded. It has to exist in the Framer project\n// (Site Settings -> Fonts) under the family names below, or the reveal falls\n// back to whatever the browser picks.\n// NOTE: 2 keyframed control(s) included\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const BAKED={background:\"#F8F8F4\",durationSeconds:2.5,height:1080,timeline:{currentTimeSeconds:0,keyframeGroups:[{controlId:\"fx.blur\",keyframes:[{controlId:\"fx.blur\",controlLabel:\"Blur\",id:\"fx.blur::0\",timeSeconds:0,valueLabel:\"8px\",value:8},{controlId:\"fx.blur\",controlLabel:\"Blur\",id:\"fx.blur::1.87\",timeSeconds:1.87,valueLabel:\"0px\",value:0}],label:\"Blur\"},{controlId:\"fx.guitarAmplitude\",keyframes:[{controlId:\"fx.guitarAmplitude\",controlLabel:\"Amplitude\",id:\"fx.guitarAmplitude::0\",timeSeconds:0,valueLabel:\"20px\",value:20},{controlId:\"fx.guitarAmplitude\",controlLabel:\"Amplitude\",id:\"fx.guitarAmplitude::2.3\",timeSeconds:2.3,valueLabel:\"0px\",value:0}],label:\"Amplitude\"}]},values:{\"canvas.aspectRatio\":{height:9,mode:\"preset\",value:\"16:9\",width:16},\"canvas.size.width\":1920,\"canvas.size.height\":1080,\"canvas.renderScale\":2,\"templates.preset\":\"typewriter\",\"random.play\":{version:1,presetIds:[\"design\",\"builtin:classic-scan\",\"builtin:matrix-rain\",\"builtin:magnetic-assembly\",\"builtin:crt-power-on\",\"builtin:phosphor-warmup\"],seed:\"\"},\"text.content\":\"HI THERE, I'M\\nLUIS ACCORSI\",\"typography.face\":\"Line\",\"typography.align\":\"center\",\"typography.fontSize\":160,\"typography.lineHeight\":.95,\"typography.letterSpacing\":1,\"typography.color\":{hex:\"#111111\"},\"reveal.shape\":\"font\",\"reveal.order\":\"text\",\"reveal.direction\":\"right\",\"reveal.strokeHeight\":1.7,\"reveal.grouping\":\"individual\",\"reveal.unit\":\"cell\",\"reveal.cellSize\":7.5,\"reveal.threshold\":1,\"reveal.animateCellSize\":true,\"reveal.cellSizeFrom\":18,\"reveal.animateThreshold\":false,\"reveal.thresholdFrom\":1,\"motion.easingMode\":\"easeInOut\",\"motion.springStiffness\":20,\"motion.springDamping\":53,\"motion.springMass\":4,\"motion.customCurve\":{activeChannel:\"RGB\",points:{RGB:[{x:0,y:0},{x:.5,y:.5},{x:1,y:1}],R:[{x:0,y:0},{x:.5,y:.5},{x:1,y:1}],G:[{x:0,y:0},{x:.5,y:.5},{x:1,y:1}],B:[{x:0,y:0},{x:.5,y:.5},{x:1,y:1}]}},\"motion.jitter\":0,\"motion.flicker\":0,\"motion.scanGlow\":0,\"motion.ghost\":.34,\"fx.guitarEnabled\":true,\"fx.guitarAmplitude\":0,\"fx.guitarFrequency\":8,\"fx.guitarSpeed\":6,\"fx.repelEnabled\":true,\"fx.repelStrength\":25,\"fx.glyphSlideEnabled\":true,\"fx.glyphSlideY\":0,\"fx.glyphSlideX\":-3,\"fx.glyphSlideScale\":3,\"fx.morphEnabled\":false,\"fx.morphTo\":\"dots\",\"fx.morphAmount\":0,\"fx.blur\":8,\"fx.svgDistort\":0,\"fx.matrixScanEnabled\":false,\"fx.waveEnabled\":false,\"fx.shutterEnabled\":false,\"fx.dominoEnabled\":false,\"fx.magneticEnabled\":false,\"fx.sparkEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.glitchEnabled\":true,\"fx.crtEnabled\":false,\"fx.typewriterEnabled\":false,\"motion.duration\":1250,\"motion.stagger\":50,\"motion.delay\":120,\"motion.fade\":.1,\"motion.loop\":true,\"export.includeBackground\":true,\"appearance.background\":{hex:\"#F8F8F4\"},\"export.image.format\":\"png\",\"export.image.resolution\":\"4k\",\"export.video.format\":\"mp4\",\"export.video.resolution\":\"current\"},width:1920};const PRESETS={\"classic-scan\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":350,\"motion.stagger\":20,\"motion.flicker\":.18,\"motion.jitter\":.16,\"reveal.grouping\":\"individual\",\"reveal.order\":\"rows\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"matrix-rain\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":true,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":450,\"motion.stagger\":45,\"motion.flicker\":.18,\"motion.jitter\":.16,\"reveal.grouping\":\"individual\",\"reveal.order\":\"rows\",\"reveal.shape\":\"font\",\"reveal.direction\":\"top\",\"reveal.unit\":\"cell\"},\"magnetic-assembly\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":true,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":1200,\"motion.stagger\":30,\"motion.flicker\":.18,\"motion.jitter\":.16,\"reveal.grouping\":\"individual\",\"reveal.order\":\"radial\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"crt-power-on\":{\"fx.blur\":0,\"fx.crtEnabled\":true,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":true,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":500,\"motion.stagger\":25,\"motion.flicker\":.35,\"motion.jitter\":.16,\"reveal.grouping\":\"individual\",\"reveal.order\":\"random\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},typewriter:{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":true,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":300,\"motion.stagger\":55,\"motion.flicker\":.18,\"motion.jitter\":0,\"reveal.grouping\":\"individual\",\"reveal.order\":\"text\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"letter\"},\"wave-ripple\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":true,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":800,\"motion.stagger\":35,\"motion.flicker\":.18,\"motion.jitter\":.16,\"reveal.grouping\":\"individual\",\"reveal.order\":\"columns\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"hairline-sweep\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":520,\"motion.stagger\":16,\"motion.flicker\":.18,\"motion.jitter\":.16,\"reveal.grouping\":\"individual\",\"reveal.order\":\"diagonal\",\"reveal.shape\":\"lines\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"ink-wipe\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":420,\"motion.stagger\":18,\"motion.flicker\":.18,\"motion.jitter\":0,\"reveal.grouping\":\"individual\",\"reveal.order\":\"columns\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"press-strike\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":true,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":260,\"motion.stagger\":30,\"motion.flicker\":.18,\"motion.jitter\":0,\"reveal.grouping\":\"individual\",\"reveal.order\":\"columns\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"phosphor-warmup\":{\"fx.blur\":0,\"fx.crtEnabled\":true,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":420,\"motion.stagger\":22,\"motion.flicker\":.3,\"motion.jitter\":0,\"reveal.grouping\":\"individual\",\"reveal.order\":\"random\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"},\"word-cascade\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"bounce\",\"motion.duration\":520,\"motion.stagger\":60,\"motion.flicker\":.18,\"motion.jitter\":0,\"reveal.grouping\":\"individual\",\"reveal.order\":\"rows\",\"reveal.shape\":\"font\",\"reveal.direction\":\"left\",\"reveal.unit\":\"word\"},\"stencil-drop\":{\"fx.blur\":0,\"fx.crtEnabled\":false,\"fx.dominoEnabled\":false,\"fx.glitchEnabled\":false,\"fx.glyphSlideEnabled\":false,\"fx.guitarEnabled\":false,\"fx.inkBloomEnabled\":false,\"fx.magneticEnabled\":false,\"fx.matrixScanEnabled\":false,\"fx.morphEnabled\":false,\"fx.repelEnabled\":false,\"fx.shutterEnabled\":false,\"fx.sparkEnabled\":false,\"fx.svgDistort\":0,\"fx.typewriterEnabled\":false,\"fx.waveEnabled\":false,\"reveal.animateCellSize\":false,\"reveal.animateThreshold\":false,\"motion.easingMode\":\"easeOut\",\"motion.duration\":380,\"motion.stagger\":28,\"motion.flicker\":.18,\"motion.jitter\":.16,\"reveal.grouping\":\"row\",\"reveal.order\":\"rows\",\"reveal.shape\":\"blocks\",\"reveal.direction\":\"left\",\"reveal.unit\":\"cell\"}};const PRESET_NAMES=[\"Design\",...Object.keys(PRESETS),\"Random\"];const RANDOM_POOL=[\"Design\",\"classic-scan\",\"matrix-rain\",\"magnetic-assembly\",\"crt-power-on\",\"phosphor-warmup\"];const pixelScanFaceFamily={Line:'\"Geist Pixel Line\", monospace',Square:'\"Geist Pixel Square\", monospace',Grid:'\"Geist Pixel Grid\", monospace',Circle:'\"Geist Pixel Circle\", monospace',Triangle:'\"Geist Pixel Triangle\", monospace'};function clamp(value,min,max){return Math.min(max,Math.max(min,value));}function easeOutCubic(t){const u=1-clamp(t,0,1);return 1-u*u*u;}function easeInOutCubic(t){const c=clamp(t,0,1);return c<.5?4*c*c*c:1-(-2*c+2)**3/2;}// Standard \"back ease out\": overshoots past 1 then settles, giving a springy pop.\nfunction easeOutBack(t){const c1=1.70158;const c3=c1+1;const u=clamp(t,0,1)-1;return 1+c3*u*u*u+c1*u*u;}// Damped-harmonic spring settling from 0 to 1 over normalized time t. Ported\n// from the Codex prototype: under-damped (zeta < 1) overshoots and wobbles,\n// critically/over-damped eases in without overshoot.\nfunction evaluateSpring(t,stiffness,damping,mass){const x=clamp(t,0,1);const m=Math.max(.1,mass);const k=Math.max(1,stiffness);const omega0=Math.sqrt(k/m);const zeta=Math.max(.01,damping)/(2*Math.sqrt(k*m));if(zeta<1){const omegaD=omega0*Math.sqrt(1-zeta*zeta);const envelope=Math.exp(-zeta*omega0*x);return clamp(1-envelope*(Math.cos(omegaD*x)+zeta/Math.sqrt(1-zeta*zeta)*Math.sin(omegaD*x)),0,1.4);}return clamp(1-Math.exp(-omega0*x),0,1);}function hashUnit(value,seed){const x=Math.sin(value*12.9898+seed*78.233)*43758.5453;return x-Math.floor(x);}const seed=7;// ponytail: local monotone-cubic Hermite evaluator (Fritsch-Carlson tangents),\n// deliberately duplicated from toolcraft/ui's curve-geometry.ts rather than\n// imported, so this engine file stays framework-agnostic/portable. Keep in\n// sync by hand if the Toolcraft curve math ever changes.\nfunction evaluateCurve(points,t){const sorted=[...points].sort((a,b)=>a.x-b.x);if(sorted.length===0)return clamp(t,0,1);if(sorted.length===1)return clamp(sorted[0].y,0,1);const x=clamp(t,0,1);if(x<=sorted[0].x)return sorted[0].y;if(x>=sorted[sorted.length-1].x)return sorted[sorted.length-1].y;const secants=[];for(let i=0;i<sorted.length-1;i+=1){const dx=sorted[i+1].x-sorted[i].x;secants.push(dx>0?(sorted[i+1].y-sorted[i].y)/dx:0);}const tangents=sorted.map((_,i)=>{if(i===0)return secants[0]??0;if(i===sorted.length-1)return secants[secants.length-1]??0;const prev=secants[i-1]??0;const next=secants[i]??0;return prev*next<=0?0:(prev+next)/2;});let segment=0;while(segment<sorted.length-2&&x>sorted[segment+1].x)segment+=1;const p0=sorted[segment];const p1=sorted[segment+1];const h=p1.x-p0.x;const u=h>0?(x-p0.x)/h:0;const h00=2*u**3-3*u**2+1;const h10=u**3-2*u**2+u;const h01=-2*u**3+3*u**2;const h11=u**3-u**2;const d0=tangents[segment]??0;const d1=tangents[segment+1]??0;return h00*p0.y+h10*h*d0+h01*p1.y+h11*h*d1;}function evaluateEasing(settings,t){switch(settings.easingMode){case\"linear\":return clamp(t,0,1);case\"easeInOut\":return easeInOutCubic(t);case\"bounce\":return easeOutBack(t);case\"spring\":return evaluateSpring(t,settings.springStiffness,settings.springDamping,settings.springMass);case\"custom\":return evaluateCurve(settings.customCurve,t);case\"easeOut\":default:return easeOutCubic(t);}}// Single reader shared by the live renderer and the PNG export handler, so\n// new settings fields only need to be added in one place.\nfunction readPixelScanSettingsFromValues(values){const curveValue=values[\"motion.customCurve\"];return{text:String(values[\"text.content\"]??\"\"),face:values[\"typography.face\"]??\"Line\",align:values[\"typography.align\"]??\"center\",fontSize:Number(values[\"typography.fontSize\"]??116),lineHeight:Number(values[\"typography.lineHeight\"]??.92),letterSpacing:Number(values[\"typography.letterSpacing\"]??1),color:String(values[\"typography.color\"]?.hex??\"#111111\"),cellSize:Number(values[\"reveal.cellSize\"]??4),threshold:Number(values[\"reveal.threshold\"]??32),shape:values[\"reveal.shape\"]??\"lines\",order:values[\"reveal.order\"]??\"rows\",direction:values[\"reveal.direction\"]??\"left\",grouping:values[\"reveal.grouping\"]??\"individual\",unit:values[\"reveal.unit\"]??\"cell\",duration:Number(values[\"motion.duration\"]??500),stagger:Number(values[\"motion.stagger\"]??42),delay:Number(values[\"motion.delay\"]??120),fade:Number(values[\"motion.fade\"]??.45),strokeHeight:Number(values[\"reveal.strokeHeight\"]??1.7),jitter:Number(values[\"motion.jitter\"]??.16),flicker:Number(values[\"motion.flicker\"]??.18),scanGlow:Number(values[\"motion.scanGlow\"]??.18),ghost:Number(values[\"motion.ghost\"]??.34),easingMode:values[\"motion.easingMode\"]??\"easeOut\",springStiffness:Number(values[\"motion.springStiffness\"]??180),springDamping:Number(values[\"motion.springDamping\"]??18),springMass:Number(values[\"motion.springMass\"]??1),customCurve:curveValue?.points?.RGB??[{x:0,y:0},{x:1,y:1}],animateCellSize:Boolean(values[\"reveal.animateCellSize\"]??false),cellSizeFrom:Number(values[\"reveal.cellSizeFrom\"]??1),animateThreshold:Boolean(values[\"reveal.animateThreshold\"]??false),thresholdFrom:Number(values[\"reveal.thresholdFrom\"]??180),loop:Boolean(values[\"motion.loop\"]??true),fxGuitarEnabled:Boolean(values[\"fx.guitarEnabled\"]??false),fxGuitarAmplitude:Number(values[\"fx.guitarAmplitude\"]??6),fxGuitarFrequency:Number(values[\"fx.guitarFrequency\"]??2),fxGuitarSpeed:Number(values[\"fx.guitarSpeed\"]??1.5),fxRepelEnabled:Boolean(values[\"fx.repelEnabled\"]??false),fxRepelStrength:Number(values[\"fx.repelStrength\"]??60),fxBlur:Number(values[\"fx.blur\"]??0),fxMorphEnabled:Boolean(values[\"fx.morphEnabled\"]??false),fxMorphTo:values[\"fx.morphTo\"]??\"dots\",fxMorphAmount:Number(values[\"fx.morphAmount\"]??0),fxSvgDistort:Number(values[\"fx.svgDistort\"]??0),fxMatrixScanEnabled:Boolean(values[\"fx.matrixScanEnabled\"]??false),fxWaveEnabled:Boolean(values[\"fx.waveEnabled\"]??false),fxShutterEnabled:Boolean(values[\"fx.shutterEnabled\"]??false),fxDominoEnabled:Boolean(values[\"fx.dominoEnabled\"]??false),fxMagneticEnabled:Boolean(values[\"fx.magneticEnabled\"]??false),fxSparkEnabled:Boolean(values[\"fx.sparkEnabled\"]??false),fxInkBloomEnabled:Boolean(values[\"fx.inkBloomEnabled\"]??false),fxCrtEnabled:Boolean(values[\"fx.crtEnabled\"]??false),fxGlitchEnabled:Boolean(values[\"fx.glitchEnabled\"]??false),fxTypewriterEnabled:Boolean(values[\"fx.typewriterEnabled\"]??false),fxGlyphSlideEnabled:Boolean(values[\"fx.glyphSlideEnabled\"]??false),fxGlyphSlideX:Number(values[\"fx.glyphSlideX\"]??0),fxGlyphSlideY:Number(values[\"fx.glyphSlideY\"]??.9),fxGlyphSlideScale:Number(values[\"fx.glyphSlideScale\"]??1)};}/** One cache contract for preview, recording and the inlined Framer engine. */function getPixelScanPreparationKeys(s,width,height,rasterScale,fontRevision=0,vectorRevision=0){const layout=JSON.stringify([width,height,s.text,s.face,s.align,s.fontSize,s.lineHeight,s.letterSpacing,fontRevision,s.shape===\"vector\"?[s.fxSvgDistort,vectorRevision]:null]);const occupancy=JSON.stringify([layout,s.shape,s.cellSize,s.threshold,rasterScale]);return{layout,occupancy,timing:JSON.stringify([occupancy,s.order,s.grouping,s.unit,s.direction,s.stagger,s.delay]),raster:JSON.stringify([layout,s.shape,rasterScale])};}async function ensurePixelScanFontLoaded(settings){if(typeof document===\"undefined\"||!(\"fonts\"in document))return;const family=pixelScanFaceFamily[settings.face];await document.fonts.load(`${settings.fontSize}px ${family}`);await document.fonts.ready;}// Shared text layout used by both the coverage sampler and the faithful\n// (real-font) renderer, so the reveal mask always aligns with the glyphs.\n// Paints solid black (alpha = glyph coverage); callers tint as needed.\nfunction paintPixelScanText(ctx,width,height,settings,vectorSource){ctx.clearRect(0,0,width,height);if(settings.shape===\"vector\"){if(vectorSource?.raster){ctx.drawImage(vectorSource.raster,0,0,width,height);}else if(vectorSource?.pathData){ctx.fillStyle=\"#000\";ctx.fill(new Path2D(vectorSource.pathData));}return;}ctx.fillStyle=\"#000\";ctx.textBaseline=\"middle\";ctx.font=`${settings.fontSize}px ${pixelScanFaceFamily[settings.face]}`;if(\"letterSpacing\"in ctx){ctx.letterSpacing=`${settings.letterSpacing}px`;}const lines=settings.text.split(\"\\n\");const lineAdvance=settings.fontSize*settings.lineHeight;const totalHeight=Math.max(0,(lines.length-1)*lineAdvance);const startY=height/2-totalHeight/2;// `align` justifies each line left/center/right relative to the block's\n// OWN width, while the block itself always stays horizontally centered in\n// the canvas — matching a centered heading with ragged-left/right lines,\n// not shifting the whole block to the canvas edge.\nconst blockWidth=Math.max(1,...lines.map(line=>ctx.measureText(line).width));const blockLeft=width/2-blockWidth/2;const blockRight=width/2+blockWidth/2;ctx.textAlign=settings.align;const lineX=settings.align===\"left\"?blockLeft:settings.align===\"right\"?blockRight:width/2;lines.forEach((line,index)=>{ctx.fillText(line,lineX,startY+index*lineAdvance);});}// Per-character x-extents for `reveal.unit` grouping (letter/word/line), only\n// needed when unit !== \"cell\" — kept as a separate pass from paintPixelScanText\n// so the hot per-frame raster path never pays for this measurement in the\n// common case. Mirrors paintPixelScanText's line-splitting/centering exactly\n// so extents line up with the actual rendered glyphs.\nfunction measurePixelScanTextLayout(ctx,width,height,settings){ctx.font=`${settings.fontSize}px ${pixelScanFaceFamily[settings.face]}`;ctx.textAlign=\"left\";if(\"letterSpacing\"in ctx){ctx.letterSpacing=`${settings.letterSpacing}px`;}const lines=settings.text.split(\"\\n\");const lineAdvance=settings.fontSize*settings.lineHeight;const totalHeight=Math.max(0,(lines.length-1)*lineAdvance);const startY=height/2-totalHeight/2;const blockWidth=Math.max(1,...lines.map(line=>ctx.measureText(line).width));const blockLeft=width/2-blockWidth/2;const blockRight=width/2+blockWidth/2;const halfLine=settings.fontSize*.5;const extents=[];let charIndex=0;let wordIndex=0;lines.forEach((line,lineIndex)=>{const lineWidth=ctx.measureText(line).width;const leftEdge=settings.align===\"left\"?blockLeft:settings.align===\"right\"?blockRight-lineWidth:width/2-lineWidth/2;const y=startY+lineIndex*lineAdvance;let cursorX=leftEdge;for(const token of line.split(/(\\s+)/)){if(token===\"\")continue;if(/^\\s+$/.test(token)){cursorX+=ctx.measureText(token).width;continue;}for(const char of token){// measureText already includes ctx.letterSpacing in a single\n// character's advance (verified: 60px face measures 36.48 at 0px\n// spacing and 46.48 at 10px). Adding settings.letterSpacing on top\n// double-counted it, drifting the cursor one spacing unit per\n// character — so late characters in a line had extents sitting to the\n// right of the glyphs they described, and cells got tagged with the\n// neighbouring character. Invisible on short words, obvious by the\n// tenth character.\nconst charWidth=ctx.measureText(char).width;extents.push({charIndex,wordIndex,lineIndex,xStart:cursorX,xEnd:cursorX+charWidth,yTop:y-halfLine,yBottom:y+halfLine});cursorX+=charWidth;charIndex+=1;}wordIndex+=1;}});return extents;}// Rasterize the real Geist Pixel text at `scale`x device resolution so the\n// faithful reveal shows the font's actual crisp pixel shapes, not a resample.\nfunction renderPixelScanTextCanvas(width,height,settings,scale=2,vectorSource){const canvas=document.createElement(\"canvas\");canvas.width=Math.max(1,Math.floor(width*scale));canvas.height=Math.max(1,Math.floor(height*scale));const ctx=canvas.getContext(\"2d\");if(!ctx)return null;ctx.scale(scale,scale);paintPixelScanText(ctx,width,height,settings,vectorSource);return canvas;}// Remaps a normalized (0..1) delay-driver so `direction` picks which end of\n// the `order` axis reveals first, for letter/word/line units. left/top keep\n// the axis as-is (its start reveals first); right/bottom reverse it (its end\n// reveals first); center folds it so the middle reveals first.\nfunction applyPixelScanDirectionAnchor(normalized,direction){switch(direction){case\"right\":case\"bottom\":return 1-normalized;case\"center\":return 1-Math.abs(normalized-.5)*2;default:return normalized;}}// Tags each primitive with the character/word/line it belongs to.\n//\n// Resolved the way the text is read: nearest LINE first, then nearest\n// character WITHIN that line. Both stages matter, and an earlier version that\n// took the single nearest character by centre-to-centre distance got both\n// wrong:\n//\n//   - Horizontally, a wide glyph is wider than the gap between neighbours. A\n//     cell on the far edge of a \"G\" can sit closer to the CENTRE of the \"E\"\n//     beside it than to the centre of its own G, so it was handed to the E and\n//     revealed on the E's delay — a slice of one letter animating with the\n//     next one. That is the mid-glyph tearing this was reported for. Measuring\n//     distance to the character's x-INTERVAL instead of its centre removes the\n//     glyph-width bias entirely, and a cell actually inside the interval is\n//     never in doubt.\n//   - Vertically, character boxes are fontSize tall but lines advance by\n//     fontSize * lineHeight, and lineHeight defaults to 0.92 — so consecutive\n//     lines OVERLAP by 8%, and a single combined distance could pull a cell\n//     onto the line above or below. Picking the line first makes that\n//     impossible, which is what \"one line at a time\" requires.\n//\n// Character counts are small (the length of the on-screen text) and this runs\n// at sample time, never per frame.\nfunction assignPixelScanCharacterIndices(primitives,extents){if(extents.length===0)return;// Extents arrive in reading order, so grouping preserves it.\nconst lines=new Map;for(const extent of extents){const line=lines.get(extent.lineIndex);if(line)line.push(extent);else lines.set(extent.lineIndex,[extent]);}const lineRows=[...lines.values()].map(row=>({row,centerY:(row[0].yTop+row[0].yBottom)/2}));// Distance from a point to a closed interval — 0 anywhere inside it.\nconst intervalDistance=(value,start,end)=>value<start?start-value:value>end?value-end:0;for(const primitive of primitives){const centerX=primitive.x+primitive.width/2;const centerY=primitive.y+primitive.height/2;let bestRow=lineRows[0];let bestRowDistance=Infinity;for(const candidate of lineRows){const distance=Math.abs(centerY-candidate.centerY);if(distance<bestRowDistance){bestRowDistance=distance;bestRow=candidate;}}let best=bestRow.row[0];let bestDistance=Infinity;for(const extent of bestRow.row){const distance=intervalDistance(centerX,extent.xStart,extent.xEnd);if(distance<bestDistance){bestDistance=distance;best=extent;if(distance===0)break;}}primitive.charIndex=best.charIndex;primitive.wordIndex=best.wordIndex;primitive.lineIndex=best.lineIndex;}}function samplePixelScanPrimitives(width,height,settings,vectorSource,// Ceiling on the supersample factor. Defaults to the device ratio, which is\n// right when the artboard is drawn at its own size. A caller that renders the\n// artboard *smaller* than designed (the Framer component scales a 1920x1080\n// design down to a phone) passes its own scale: supersampling 4x past what\n// is ever displayed costs a 3840x2160 getImageData plus an 8M-pixel walk on\n// the very first frame, which is exactly the stall a loader must not have.\nmaxRasterScale=2){// Supersample the raster the same way the faithful/vector text canvas does\n// (renderPixelScanTextCanvas, pixel-scan-vector.ts's distorted raster) —\n// sampling ink coverage off a 1x raster anti-aliases away exactly the fine\n// glyph geometry Threshold is supposed to be gating, so no threshold value\n// can recover it. Never below 1: that is the floor where a cell still gets\n// its own pixel. `cell`/`rows`/`cols` below stay in logical (CSS) px,\n// matching every other coordinate in this function; only the ink-lookup\n// below reads the supersampled buffer.\nconst rasterScale=Math.max(1,Math.min(maxRasterScale,window.devicePixelRatio||1));const canvas=document.createElement(\"canvas\");canvas.width=Math.max(1,Math.floor(width*rasterScale));canvas.height=Math.max(1,Math.floor(height*rasterScale));const ctx=canvas.getContext(\"2d\",{willReadFrequently:true});if(!ctx)return[];ctx.scale(rasterScale,rasterScale);paintPixelScanText(ctx,width,height,settings,vectorSource);const image=ctx.getImageData(0,0,canvas.width,canvas.height).data;const cell=Math.max(1,settings.cellSize);const rows=Math.ceil(height/cell);const cols=Math.ceil(width/cell);const occupied=new Uint8Array(rows*cols);const intensityGrid=new Float32Array(rows*cols);let minRow=Infinity;let maxRow=-Infinity;let minCol=Infinity;let maxCol=-Infinity;// Ignore anti-aliasing noise below this alpha when counting a pixel as \"ink\" —\n// just enough to keep coverage a clean 0..1 fraction of actually-inked pixels.\nconst inkFloor=10;// Coverage fraction (0..1), not peak alpha: a cell that just grazes a glyph\n// edge should score low even if that one pixel is fully opaque, so Threshold\n// has a real, smooth effect across its range instead of an almost-binary one.\nconst step=cell*rasterScale;const inkCounts=new Float32Array(rows*cols);if(Number.isInteger(step)){// Cells tile the raster exactly, so one linear walk of the alpha channel\n// can bin every pixel into its cell. The general path below revisits the\n// image per cell — at cell size 1 on a large artboard that is two million\n// iterations of floor/ceil/divide, and it was the single most expensive\n// thing in the whole component (measured 134ms of a ~180ms sample).\nconst scanWidth=Math.min(canvas.width,cols*step);const scanHeight=Math.min(canvas.height,rows*step);for(let y=0;y<scanHeight;y+=1){const rowBase=(y/step|0)*cols;let index=y*canvas.width*4+3;for(let x=0;x<scanWidth;x+=1,index+=4){if(image[index]>inkFloor)inkCounts[rowBase+(x/step|0)]+=1;}}}else{// Non-integer step: cells can overlap or leave gaps, so they are not a\n// partition of the raster and each one has to be measured on its own.\nfor(let row=0;row<rows;row+=1){for(let col=0;col<cols;col+=1){const x0=Math.floor(col*step);const y0=Math.floor(row*step);const x1=Math.min(canvas.width,Math.ceil(x0+step));const y1=Math.min(canvas.height,Math.ceil(y0+step));let inkPixels=0;for(let y=y0;y<y1;y+=1){for(let x=x0;x<x1;x+=1){if(image[(y*canvas.width+x)*4+3]>inkFloor)inkPixels+=1;}}inkCounts[row*cols+col]=inkPixels;}}}// Each cell's pixel extent depends only on its row or its column, so the\n// widths are computed once instead of cols*rows times — at cell size 1 that\n// is two million floor/ceil/min triples removed from the normalize pass.\nconst colWidths=new Float32Array(cols);for(let col=0;col<cols;col+=1){const x0=Math.floor(col*step);colWidths[col]=Math.min(canvas.width,Math.ceil(x0+step))-x0;}for(let row=0;row<rows;row+=1){const y0=Math.floor(row*step);const rowHeight=Math.min(canvas.height,Math.ceil(y0+step))-y0;const rowBase=row*cols;for(let col=0;col<cols;col+=1){const totalPixels=Math.max(1,colWidths[col]*rowHeight);const coverage=inkCounts[rowBase+col]/totalPixels;intensityGrid[rowBase+col]=coverage;if(coverage*255>=settings.threshold){occupied[rowBase+col]=1;if(row<minRow)minRow=row;if(row>maxRow)maxRow=row;if(col<minCol)minCol=col;if(col>maxCol)maxCol=col;}}}if(!Number.isFinite(minRow))return[];const primitives=[];// Walk only the occupied bounding box. Everything outside it is unoccupied\n// by definition, and on a large artboard the empty margin is most of the\n// grid — scanning it was another two million iterations for nothing.\nconst lastCol=maxCol+1;for(let row=minRow;row<=maxRow;row+=1){let col=minCol;while(col<lastCol){if(!occupied[row*cols+col]){col+=1;continue;}const start=col;while(col<lastCol&&occupied[row*cols+col])col+=1;const length=col-start;if(settings.shape===\"lines\"){let sum=0;for(let part=0;part<length;part+=1)sum+=intensityGrid[row*cols+start+part];primitives.push({x:start*cell,y:row*cell,width:length*cell,height:cell,row,col:start,delay:0,hash:hashUnit(row*4096+start,seed),intensity:length>0?sum/length:1,charIndex:0,wordIndex:0,lineIndex:row,// Filled in by assignPixelScanUnitBounds once indices are known.\nunitCenterX:0,unitCenterY:0,unitWidth:0,unitHeight:0});}else{for(let part=0;part<length;part+=1){const cellCol=start+part;primitives.push({x:cellCol*cell,y:row*cell,width:cell,height:cell,row,col:cellCol,delay:0,hash:hashUnit(row*4096+cellCol,seed),charIndex:0,wordIndex:0,lineIndex:row,intensity:intensityGrid[row*cols+cellCol],unitCenterX:0,unitCenterY:0,unitWidth:0,unitHeight:0});}}}}// Only measure/assign character backreferences when actually needed — the\n// measurement pass (or reading vectorSource's) is pure overhead for the\n// common `unit === \"cell\"` case.\n// \"text\" order sequences by these indices, so it needs them even at\n// unit \"cell\" — without this every primitive keeps charIndex 0 and the whole\n// reveal fires on one frame.\n{const characterExtents=settings.shape===\"vector\"?vectorSource?.characterExtents??[]:measurePixelScanTextLayout(ctx,width,height,settings);assignPixelScanCharacterIndices(primitives,characterExtents);}return retimePixelScanPrimitives(primitives,settings);}/** Reuses sampled coverage; timing controls never read back the raster. */function retimePixelScanPrimitives(source,settings){const primitives=source.map(p=>({...p}));if(primitives.length===0)return primitives;let minRow=Infinity,maxRow=-Infinity,minCol=Infinity,maxCol=-Infinity;for(const p of primitives){minRow=Math.min(minRow,p.row);maxRow=Math.max(maxRow,p.row);minCol=Math.min(minCol,p.col);maxCol=Math.max(maxCol,p.col+Math.max(1,Math.round(p.width/Math.max(1,settings.cellSize)))-1);}// Normalize delay drivers against the OCCUPIED bounding box, not the full\n// sampled grid — the grid is padded with empty margin around centered\n// text, and normalizing against it front-loads dead delay and skews\n// diagonal/radial centers off the actual text.\nconst occRows=Math.max(1,maxRow-minRow);const occCols=Math.max(1,maxCol-minCol);const occDiag=Math.max(1,occRows+occCols);const centerRow=minRow+(maxRow-minRow)/2;const centerCol=minCol+(maxCol-minCol)/2;const maxRadius=Math.max(1,Math.hypot((maxRow-minRow)/2,(maxCol-minCol)/2));// The stagger SCALE must match whichever axis `normalized` is measured\n// against for that order, not the wider of the two — text is almost\n// always much wider than it is tall, so using the column extent for a\n// vertical \"rows\" sweep stretched the whole reveal to several extra\n// seconds of dead time.\n//\n// These extents are cell-GRID units, which scale inversely with cell\n// size — a 1px cell on a 1920px-wide canvas can span ~1900 \"columns\", so\n// at the default 14ms/unit stagger the sweep would take ~26 SECONDS to\n// finish (42ms/unit worst case: ~80s), making the reveal look frozen at\n// small cell sizes even though it's technically still progressing. Cap\n// the extent so the total sweep duration stays in a sane range (a few\n// seconds at most) regardless of how fine the sampling grid is.\n// Which semantic index \"text\" order counts in. Follows `unit` so the reveal\n// steps one word at a time when the unit is a word, and falls back to\n// characters for unit \"cell\"/\"element\" — letter-by-letter being what anyone\n// asking for reading order almost always means.\nconst textIndexOf=primitive=>settings.unit===\"word\"?primitive.wordIndex:settings.unit===\"line\"?primitive.lineIndex:primitive.charIndex;const maxTextIndex=settings.order===\"text\"?primitives.reduce((max,p)=>Math.max(max,textIndexOf(p)),0):0;const maxStaggerExtent=200;const staggerExtent=Math.min(maxStaggerExtent,settings.order===\"columns\"?occCols:settings.order===\"diagonal\"?occDiag:settings.order===\"radial\"?maxRadius:settings.order===\"random\"?Math.max(occRows,occCols,1):// stagger step per character/word/line, which is what makes the\n// interval even instead of proportional to glyph width.\nsettings.order===\"text\"?Math.max(1,maxTextIndex):occRows);const withDelay=primitives.map(primitive=>{const normalized=settings.order===\"columns\"?(primitive.col-minCol)/occCols:settings.order===\"diagonal\"?(primitive.row-minRow+(primitive.col-minCol))/occDiag:settings.order===\"radial\"?Math.hypot(primitive.row-centerRow,primitive.col-centerCol)/maxRadius:settings.order===\"random\"?primitive.hash:settings.order===\"text\"?textIndexOf(primitive)/Math.max(1,maxTextIndex):(primitive.row-minRow)/occRows;const clamped=clamp(normalized,0,1);// Direction only acts as a sequencing anchor for letter/word/line units —\n// which end of the `order` axis reveals first — leaving its existing\n// sole use (which edge a \"lines\" primitive grows from) untouched for\n// unit === \"cell\", so default behavior there doesn't change.\nconst anchored=settings.unit===\"cell\"?clamped:applyPixelScanDirectionAnchor(clamped,settings.direction);return{primitive,normalized:anchored};});// Grouping snaps each primitive's normalized delay-driver to a shared group\n// average, so every cell in that group animates together. `unit` (letter/\n// word/line) takes priority when set — it groups by the semantic index\n// stamped above instead of spatial row/col, and supersedes `grouping`\n// (which becomes meaningless once every cell in a word/line already shares\n// one delay; the schema hides that control when unit !== \"cell\"). Neither\n// is meaningful for \"lines\" shape's row/col grouping, whose runs are\n// already horizontal merges — a \"column\" run is geometrically undefined\n// there — but `unit` still applies since each \"lines\" run already carries\n// its nearest character's indices.\nconst unitGroupKey=settings.unit===\"letter\"?p=>p.charIndex:settings.unit===\"word\"?p=>p.wordIndex:settings.unit===\"line\"?p=>p.lineIndex:settings.unit===\"element\"?()=>0:null;// Unit bounding boxes, for effects that transform a whole glyph/word/line\n// rather than each cell. Deliberately keyed off `unitGroupKey` — that is\n// `reveal.unit` and nothing else, so a `unit: \"cell\"` + `order: \"text\"`\n// combination (which does populate charIndex) still gets per-cell boxes,\n// matching what the unit control says.\nassignPixelScanUnitBounds(primitives,unitGroupKey);const spatialGroupKey=settings.grouping!==\"individual\"&&settings.shape!==\"lines\"?p=>settings.grouping===\"row\"?p.row:p.col:null;const groupKey=unitGroupKey??spatialGroupKey;if(groupKey){const sums=new Map;for(const{primitive,normalized}of withDelay){const key=groupKey(primitive);const entry=sums.get(key)??{total:0,count:0};entry.total+=normalized;entry.count+=1;sums.set(key,entry);}for(const item of withDelay){const key=groupKey(item.primitive);const entry=sums.get(key);if(entry)item.normalized=entry.total/entry.count;}}return withDelay.map(({primitive,normalized})=>({...primitive,delay:settings.delay+normalized*settings.stagger*staggerExtent}));}// Stamps each primitive with the bounding box of the unit it belongs to. With\n// no unit key every primitive is its own unit, so a per-unit transform\n// degenerates to a per-cell one instead of silently doing nothing.\nfunction assignPixelScanUnitBounds(primitives,unitKey){if(!unitKey){for(const p of primitives){p.unitCenterX=p.x+p.width/2;p.unitCenterY=p.y+p.height/2;p.unitWidth=p.width;p.unitHeight=p.height;}return;}const boxes=new Map;for(const p of primitives){const key=unitKey(p);const box=boxes.get(key);if(!box){boxes.set(key,{left:p.x,right:p.x+p.width,top:p.y,bottom:p.y+p.height});continue;}if(p.x<box.left)box.left=p.x;if(p.x+p.width>box.right)box.right=p.x+p.width;if(p.y<box.top)box.top=p.y;if(p.y+p.height>box.bottom)box.bottom=p.y+p.height;}for(const p of primitives){const box=boxes.get(unitKey(p));if(!box)continue;p.unitCenterX=box.left+(box.right-box.left)/2;p.unitCenterY=box.top+(box.bottom-box.top)/2;p.unitWidth=box.right-box.left;p.unitHeight=box.bottom-box.top;}}function getOccupiedBounds(primitives){let top=Infinity;let bottom=-Infinity;for(const p of primitives){if(p.y<top)top=p.y;if(p.y+p.height>bottom)bottom=p.y+p.height;}return{top:Number.isFinite(top)?top:0,bottom:Number.isFinite(bottom)?bottom:0};}// Grid-unit center used as the repel-effect's burst origin.\nfunction getOccupiedCenter(primitives){let minRow=Infinity;let maxRow=-Infinity;let minCol=Infinity;let maxCol=-Infinity;for(const p of primitives){if(p.row<minRow)minRow=p.row;if(p.row>maxRow)maxRow=p.row;if(p.col<minCol)minCol=p.col;if(p.col>maxCol)maxCol=p.col;}if(!Number.isFinite(minRow))return{row:0,col:0};return{row:minRow+(maxRow-minRow)/2,col:minCol+(maxCol-minCol)/2};}const primitiveDelayCache=new WeakMap;function getPixelScanMaxDelay(primitives){let value=primitiveDelayCache.get(primitives);if(value===undefined){value=primitives.reduce((max,p)=>Math.max(max,p.delay),0);primitiveDelayCache.set(primitives,value);}return value;}function pixelScanTime(primitives,settings,elapsed){const maxDelay=getPixelScanMaxDelay(primitives);const cycle=maxDelay+settings.duration+300;return{time:settings.loop?elapsed%cycle:elapsed,maxDelay};}// Per-primitive reveal state shared by the abstract (shape) and faithful\n// (real-font) renderers. Returns null before the primitive starts revealing.\n// `growth` drives geometry and settles at exactly 1 (a fully revealed cell is\n// exactly cellSize — the old hardcoded 1.15 cap left every settled cell 15%\n// oversized whenever fade < 1, fattening the glyphs). Overshoot-as-style comes\n// only from easings that themselves exceed 1 (spring/bounce), transiently.\n// `alpha` is the final opacity.\nfunction computePixelScanReveal(primitive,settings,time){// Faint cells start slightly later than solid ones, so a per-cell reveal\n// grows from the middle of a stroke outwards instead of switching on flat.\n// That is only ever wanted when the cell IS the unit: once a letter/word/\n// line is the unit, every cell in it shares a delay precisely so the unit\n// lands whole, and this offset would fracture it again — measured at ~68ms\n// of spread inside one letter against a 300ms duration, which is what made\n// the typewriter look like a mask cutting through glyphs rather than\n// characters being struck.\nconst intensityDelayOffset=settings.unit===\"cell\"&&settings.order!==\"text\"?(1-primitive.intensity)*settings.stagger*2:0;const local=(time-primitive.delay-intensityDelayOffset)/settings.duration;if(local<=0)return null;const eased=evaluateEasing(settings,local);const growth=eased>1?eased:clamp(eased/Math.max(.05,settings.fade),0,1);const reveal=clamp(growth,0,1);const flicker=settings.flicker>0?1-settings.flicker*hashUnit(Math.floor(time/42)+primitive.hash*1e3,seed):1;// Ink-density ceiling only softens the reveal transient (faint edge cells\n// \"catch up\" to full ink last) — it must decay to 1 as reveal completes, or\n// settled text permanently renders below full opacity.\nconst intensityCeiling=1-(1-primitive.intensity)*(1-reveal)*.75;let thresholdGate=1;if(settings.animateThreshold){const th=settings.thresholdFrom+(settings.threshold-settings.thresholdFrom)*reveal;const raw=(reveal*255-th)/Math.max(1,255-th);// Steepen the ramp around its midpoint so the dissolve reads as a crisp\n// advancing edge instead of a soft, barely-visible fade on top of the\n// existing alpha reveal.\nthresholdGate=clamp((raw-.5)*3+.5,0,1);}// Matrix scan: a dot-matrix print head strikes a dot, it doesn't fade an\n// ink blot in — steepen the ramp into a near-binary step so each cell\n// snaps to full opacity instead of smoothly fading.\nconst strikeStep=settings.fxMatrixScanEnabled?clamp((reveal-.5)*8+.5,0,1):reveal;const alpha=clamp(strikeStep*flicker*intensityCeiling*thresholdGate,0,1);return{growth,reveal,alpha};}// \"Grow cells\" (animateCellSize): shape grows from cellSizeFrom -> cellSize over\n// the reveal. Returns an independent size multiplier (1 when disabled). Applies\n// in both abstract and faithful modes. Superseded by keyframing reveal.cellSize.\nfunction computeCellScale(settings,reveal){if(!settings.animateCellSize||settings.cellSize<=0)return 1;return clamp((settings.cellSizeFrom+(settings.cellSize-settings.cellSizeFrom)*reveal)/settings.cellSize,0,4);}function paintScanGlow(ctx,primitives,width,settings,time,maxDelay){if(settings.scanGlow<=0||primitives.length===0)return;const{top,bottom}=getOccupiedBounds(primitives);const span=Math.max(1,bottom-top);const progress=clamp((time-settings.delay)/Math.max(1,maxDelay+settings.duration-settings.delay),0,1);const y=top+progress*span;const band=Math.max(24,span*.08);const gradient=ctx.createLinearGradient(0,y-band,0,y+band);gradient.addColorStop(0,\"rgba(255,255,255,0)\");gradient.addColorStop(.5,`rgba(255,255,255,${settings.scanGlow*.5})`);gradient.addColorStop(1,\"rgba(255,255,255,0)\");ctx.save();ctx.fillStyle=gradient;ctx.fillRect(0,y-band,width,band*2);ctx.restore();}// Matrix scan: a visible \"print head\" marker at whichever primitive is\n// closest to striking right now (nearest `delay` to `time`) — works for any\n// `reveal.order` (rows/columns/diagonal/radial/random) without needing\n// order-specific math, since `delay` already encodes the sweep for all of\n// them. Drawn as a bar spanning the occupied bounds for rows/columns (reads\n// like a print head's travel rail); a small marker otherwise.\nfunction paintMatrixScanHead(ctx,primitives,width,height,settings,time){if(!settings.fxMatrixScanEnabled||primitives.length===0)return;let head=primitives[0];let bestDistance=Infinity;let left=Infinity;let right=-Infinity;let top=Infinity;let bottom=-Infinity;for(const primitive of primitives){const distance=Math.abs(time-primitive.delay);if(distance<bestDistance){bestDistance=distance;head=primitive;}if(primitive.x<left)left=primitive.x;if(primitive.x+primitive.width>right)right=primitive.x+primitive.width;if(primitive.y<top)top=primitive.y;if(primitive.y+primitive.height>bottom)bottom=primitive.y+primitive.height;}// Past the reveal's end there's no active strike left to show a head for.\nif(time-head.delay>settings.duration)return;ctx.save();ctx.fillStyle=settings.color;ctx.globalAlpha=.85;const barThickness=Math.max(2,settings.cellSize*.4);if(settings.order===\"columns\"){const x=head.x+head.width/2;ctx.fillRect(x-barThickness/2,Math.max(0,top-6),barThickness,Math.min(height,bottom+6)-Math.max(0,top-6));}else if(settings.order===\"rows\"){const y=head.y+head.height/2;ctx.fillRect(Math.max(0,left-6),y-barThickness/2,Math.min(width,right+6)-Math.max(0,left-6),barThickness);}else{ctx.beginPath();ctx.arc(head.x+head.width/2,head.y+head.height/2,Math.max(3,settings.cellSize*.7),0,Math.PI*2);ctx.fill();}ctx.restore();}// Per-primitive motion for one frame — the combined offset/rotation/scale/\n// alpha every motion effect contributes. Shared by the abstract renderer and\n// the faithful (real-font) per-cell path so effects move both identically.\nfunction computePrimitiveMotion(primitive,settings,time,center,state){const cellScale=computeCellScale(settings,state.growth);const shake=(primitive.hash-.5)*settings.jitter*(1-state.reveal);const guitarOffsetY=computeGuitarOffsetY(primitive,settings,time,state.reveal);const waveOffsetY=computeWaveOffsetY(settings,state.reveal);const shutterOffsetY=computeShutterOffsetY(primitive,settings,state.reveal);const repel=computeRepelOffset(primitive,settings,center.row,center.col,state.reveal);const magnetic=computeMagneticTransform(primitive,settings,state.growth);const glitch=computeGlitchJitter(primitive,settings,time,state.reveal);// Uses `growth` (uncapped past 1) not `reveal`, so a spring/bounce easing's\n// overshoot actually shows as the unit sailing past its mark and settling.\nconst glyphSlide=computeGlyphSlideTransform(primitive,settings,state.growth);return{alphaScale:glitch.alphaScale,cellScale:cellScale*glyphSlide.scale,fillOverride:computeSparkFillOverride(settings,state.reveal),offsetX:repel.dx+magnetic.dx+glitch.dx+glyphSlide.dx,offsetY:repel.dy+guitarOffsetY+waveOffsetY+magnetic.dy+shutterOffsetY+glitch.dy+glyphSlide.dy,rotation:computeDominoRotation(settings,state.reveal)+magnetic.rotation,shake};}// True when any effect displaces/rotates/scales cells — the faithful renderer\n// must switch from its cheap whole-mask composite to per-cell blitting for\n// these to be visible on the real font.\nfunction hasMotionFx(settings){return settings.fxGuitarEnabled||settings.fxRepelEnabled||settings.fxWaveEnabled||settings.fxShutterEnabled||settings.fxDominoEnabled||settings.fxMagneticEnabled||settings.fxGlitchEnabled||settings.fxGlyphSlideEnabled||settings.animateCellSize||settings.jitter>0;}// Reused across frames so blurred abstract-mode draws don't allocate a new\n// backing canvas every tick (same pattern as the faithful-mode scratch/mask\n// canvases in PixelScanRenderer).\nlet abstractBlurScratch=null;function drawPixelScanFrame(ctx,primitives,width,height,settings,elapsed){ctx.clearRect(0,0,width,height);const{time,maxDelay}=pixelScanTime(primitives,settings,elapsed);const center=settings.fxRepelEnabled?getOccupiedCenter(primitives):{row:0,col:0};// Blur must be applied once to the finished frame, not per primitive:\n// setting ctx.filter before drawing hundreds/thousands of individual cells\n// reruns the blur convolution on every single draw call, which can lock up\n// the tab (and the whole machine) at higher blur radii. Draw unblurred to a\n// scratch canvas and composite it once with the filter applied instead.\nconst hasBlur=settings.fxBlur>0;let drawCtx=ctx;if(hasBlur){abstractBlurScratch??=document.createElement(\"canvas\");if(abstractBlurScratch.width!==width||abstractBlurScratch.height!==height){abstractBlurScratch.width=width;abstractBlurScratch.height=height;}const scratchCtx=abstractBlurScratch.getContext(\"2d\");if(scratchCtx){scratchCtx.clearRect(0,0,width,height);drawCtx=scratchCtx;}}if(settings.ghost>0){drawCtx.save();drawCtx.fillStyle=settings.color;drawCtx.globalAlpha=settings.ghost*.15;primitives.forEach(primitive=>drawPrimitive(drawCtx,primitive,settings,1,0,1));drawCtx.restore();}drawCtx.fillStyle=settings.color;primitives.forEach(primitive=>{const state=computePixelScanReveal(primitive,settings,time);if(!state)return;// computePrimitiveMotion uses the uncapped `growth` (not the 0..1-clamped\n// `reveal`) so a spring easing's natural overshoot actually shows as cells\n// popping past full size before settling, instead of being clipped flat.\nconst motion=computePrimitiveMotion(primitive,settings,time,center,state);paintInkBloomGlow(drawCtx,primitive,settings,state.alpha,state.reveal,motion.offsetX,motion.offsetY);drawPrimitive(drawCtx,primitive,settings,state.alpha*motion.alphaScale,motion.shake,state.growth,motion.cellScale,motion.offsetX,motion.offsetY,motion.rotation,motion.fillOverride);});if(hasBlur&&drawCtx!==ctx){ctx.filter=`blur(${settings.fxBlur}px)`;ctx.drawImage(abstractBlurScratch,0,0);ctx.filter=\"none\";}paintScanGlow(ctx,primitives,width,settings,time,maxDelay);paintMatrixScanHead(ctx,primitives,width,height,settings,time);paintTypewriterCursor(ctx,primitives,settings,time);paintCrtPowerOn(ctx,width,height,settings,time);}// Which primitives needed their own blit last frame (see drawFaithfulMotionCells).\nlet movedFlags=null;// Writes one alpha run per primitive straight into a cached ImageData. Each\n// primitive covers a whole run of cell-resolution texels, so this is a plain\n// byte write — no per-primitive canvas call. `alphaFor` returns 0 to leave a\n// primitive out. The buffer rides on the mask canvas because reallocating a\n// full-size ImageData every frame is its own stall.\nfunction paintCellMask(maskCtx,mask,cols,rows,cell,primitives,alphaFor){const cache=mask;let image=cache.__pixelScanMask;if(!image||image.width!==cols||image.height!==rows){image=maskCtx.createImageData(cols,rows);cache.__pixelScanMask=image;}else{image.data.fill(0);}const data=image.data;primitives.forEach((primitive,primitiveIndex)=>{const alpha=Math.round(clamp(alphaFor(primitive,primitiveIndex),0,1)*255);if(alpha<=0)return;const row=Math.round(primitive.row);if(row<0||row>=rows)return;const from=Math.max(0,Math.round(primitive.col));const to=Math.min(cols,from+Math.max(1,Math.round(primitive.width/cell)));let index=(row*cols+from)*4;for(let col=from;col<to;col+=1){data[index]=255;data[index+1]=255;data[index+2]=255;data[index+3]=alpha;index+=4;}});maskCtx.putImageData(image,0,0);}function drawPixelScanFaithfulFrame(ctx,textCanvas,scratch,mask,primitives,width,height,settings,elapsed){ctx.clearRect(0,0,width,height);const{time,maxDelay}=pixelScanTime(primitives,settings,elapsed);const cell=Math.max(1,settings.cellSize);const cols=Math.max(1,Math.ceil(width/cell));const rows=Math.max(1,Math.ceil(height/cell));// Build a tiny per-cell reveal mask (1 texel per cell, alpha = reveal).\nif(mask.width!==cols||mask.height!==rows){mask.width=cols;mask.height=rows;}// Motion effects can't be expressed as a static reveal mask — they need\n// each cell's patch of the crisp raster to actually move. Blit per cell\n// with the exact same transforms the abstract renderer uses.\nif(hasMotionFx(settings)){drawFaithfulMotionCells(ctx,textCanvas,scratch,mask,primitives,width,height,cell,cols,rows,settings,time);paintScanGlow(ctx,primitives,width,settings,time,maxDelay);paintMatrixScanHead(ctx,primitives,width,height,settings,time);paintTypewriterCursor(ctx,primitives,settings,time);paintCrtPowerOn(ctx,width,height,settings,time);return;}const maskCtx=mask.getContext(\"2d\");if(!maskCtx)return;maskCtx.setTransform(1,0,0,1,0,0);// Without \"Grow cells\" every primitive covers a whole run of mask texels, so\n// the whole mask can be written as one ImageData instead of a fillRect per\n// primitive (~35k canvas calls per frame at cell size 1).\nif(!settings.animateCellSize){paintCellMask(maskCtx,mask,cols,rows,cell,primitives,primitive=>{const state=computePixelScanReveal(primitive,settings,time);if(!state)return 0;return state.alpha*computeGlitchJitter(primitive,settings,time,state.reveal).alphaScale;});maskComposite(ctx,textCanvas,scratch,mask,primitives,width,height,settings,time,maxDelay);return;}maskCtx.clearRect(0,0,cols,rows);maskCtx.fillStyle=\"#fff\";primitives.forEach(primitive=>{const state=computePixelScanReveal(primitive,settings,time);if(!state)return;// The mask can't displace cells, so motion FX don't move the crisp\n// raster — but glitch's alpha strobe still reads as the signal locking\n// in, so carry that part over.\nconst glitch=computeGlitchJitter(primitive,settings,time,state.reveal);maskCtx.globalAlpha=state.alpha*glitch.alphaScale;const span=Math.max(1,Math.round(primitive.width/cell));// \"Grow cells\" shrinks the mask window around each cell's center so the\n// crisp glyph grows in cell-by-cell during the reveal.\nconst cellScale=computeCellScale(settings,state.reveal);if(cellScale>=1){maskCtx.fillRect(primitive.col,primitive.row,span,1);}else{const insetX=span*(1-cellScale)/2;const insetY=(1-cellScale)/2;maskCtx.fillRect(primitive.col+insetX,primitive.row+insetY,span*cellScale,cellScale);}});maskCtx.globalAlpha=1;maskComposite(ctx,textCanvas,scratch,mask,primitives,width,height,settings,time,maxDelay);}// Shared tail of the faithful mask path: composite the crisp raster through\n// whichever way the mask was built, then paint the overlay effects.\nfunction maskComposite(ctx,textCanvas,scratch,mask,primitives,width,height,settings,time,maxDelay){// Composite: crisp text, kept only where the mask is opaque, then tinted.\nif(scratch.width!==textCanvas.width||scratch.height!==textCanvas.height){scratch.width=textCanvas.width;scratch.height=textCanvas.height;}const sctx=scratch.getContext(\"2d\");if(!sctx)return;sctx.setTransform(1,0,0,1,0,0);sctx.globalCompositeOperation=\"source-over\";sctx.clearRect(0,0,scratch.width,scratch.height);sctx.drawImage(textCanvas,0,0);sctx.globalCompositeOperation=\"destination-in\";sctx.imageSmoothingEnabled=false// hard cell edges, crisp font within\n;sctx.drawImage(mask,0,0,scratch.width,scratch.height);sctx.globalCompositeOperation=\"source-atop\";sctx.fillStyle=settings.color;sctx.fillRect(0,0,scratch.width,scratch.height);sctx.globalCompositeOperation=\"source-over\";ctx.filter=settings.fxBlur>0?`blur(${settings.fxBlur}px)`:\"none\";if(settings.ghost>0){ctx.save();ctx.globalAlpha=settings.ghost*.15;ctx.drawImage(textCanvas,0,0,width,height);ctx.restore();}ctx.drawImage(scratch,0,0,width,height);ctx.filter=\"none\";paintScanGlow(ctx,primitives,width,settings,time,maxDelay);paintMatrixScanHead(ctx,primitives,width,height,settings,time);paintTypewriterCursor(ctx,primitives,settings,time);paintCrtPowerOn(ctx,width,height,settings,time);}// Faithful-mode motion path: each primitive copies its own patch of the\n// rasterized text and draws it displaced/rotated/scaled, so motion effects\n// move the real font instead of being flattened by the reveal mask.\nfunction drawFaithfulMotionCells(ctx,textCanvas,scratch,mask,primitives,width,height,cell,cols,rows,settings,time){if(scratch.width!==textCanvas.width||scratch.height!==textCanvas.height){scratch.width=textCanvas.width;scratch.height=textCanvas.height;}const sctx=scratch.getContext(\"2d\");const maskCtx=mask.getContext(\"2d\");if(!sctx||!maskCtx)return;sctx.setTransform(1,0,0,1,0,0);sctx.globalCompositeOperation=\"source-over\";sctx.clearRect(0,0,scratch.width,scratch.height);// Blit in textCanvas resolution so the font stays as crisp as the mask path.\nconst ratio=textCanvas.width/width;const center=settings.fxRepelEnabled?getOccupiedCenter(primitives):{row:0,col:0};// Only a cell that is actually displaced needs its own drawImage. A cell\n// sitting at its own coordinates is the mask path's job even if its alpha is\n// still animating — flicker and fade ride in the mask texel. Jitter decays\n// with (1 - reveal), so the expensive set shrinks to the moving frontier\n// instead of staying flat at one canvas call per cell for the whole reveal.\n// Reused across frames: at cell size 1 this is a 35kB allocation, and one per\n// frame is pure GC churn for a value that never outlives the call.\n//\n// ponytail: glyph slide at unit \"element\" with no scaling displaces every\n// cell by the SAME vector for the whole reveal, so the moved set never\n// shrinks and this degrades to one drawImage per cell per frame. That case\n// could translate the finished mask composite once instead — worth building\n// only if a whole-heading slide is what ships and it actually stutters.\nif(!movedFlags||movedFlags.length<primitives.length){movedFlags=new Uint8Array(primitives.length);}else{movedFlags.fill(0,0,primitives.length);}const moved=movedFlags;let stillCount=0;paintCellMask(maskCtx,mask,cols,rows,cell,primitives,(primitive,index)=>{const state=computePixelScanReveal(primitive,settings,time);if(!state)return 0;const motion=computePrimitiveMotion(primitive,settings,time,center,state);if(motion.shake!==0||motion.offsetX!==0||motion.offsetY!==0||motion.rotation!==0||motion.cellScale!==1){moved[index]=1;return 0;}stillCount+=1;return state.alpha*motion.alphaScale;});// Order is load-bearing: destination-in wipes the scratch, so the still-cell\n// composite has to land before the per-cell blits below.\nif(stillCount>0){sctx.drawImage(textCanvas,0,0);sctx.globalCompositeOperation=\"destination-in\";sctx.imageSmoothingEnabled=false;sctx.drawImage(mask,0,0,scratch.width,scratch.height);sctx.globalCompositeOperation=\"source-over\";}primitives.forEach((primitive,index)=>{if(moved[index]===0)return;const state=computePixelScanReveal(primitive,settings,time);if(!state)return;const motion=computePrimitiveMotion(primitive,settings,time,center,state);const sx=primitive.x*ratio;const sy=primitive.y*ratio;const sw=primitive.width*ratio;const sh=primitive.height*ratio;const dx=(primitive.x+motion.shake+motion.offsetX)*ratio;const dy=(primitive.y+motion.offsetY)*ratio;const cx=dx+sw/2;const cy=dy+sh/2;sctx.save();sctx.globalAlpha=state.alpha*motion.alphaScale;if(motion.rotation!==0){// Same pivot rule as drawPrimitive: domino tips about the bottom edge.\nconst pivotY=settings.fxDominoEnabled?dy+sh:cy;sctx.translate(cx,pivotY);sctx.rotate(motion.rotation);sctx.translate(-cx,-pivotY);}if(motion.cellScale!==1){sctx.translate(cx,cy);sctx.scale(motion.cellScale,motion.cellScale);sctx.translate(-cx,-cy);}sctx.drawImage(textCanvas,sx,sy,sw,sh,dx,dy,sw,sh);sctx.restore();});// Tint once for the whole frame. ponytail: spark's per-cell white-hot\n// override can't survive a single global tint — per-cell tinting via an\n// extra scratch if spark-on-real-font ever matters.\nsctx.globalCompositeOperation=\"source-atop\";sctx.fillStyle=settings.color;sctx.fillRect(0,0,scratch.width,scratch.height);sctx.globalCompositeOperation=\"source-over\";ctx.filter=settings.fxBlur>0?`blur(${settings.fxBlur}px)`:\"none\";if(settings.ghost>0){ctx.save();ctx.globalAlpha=settings.ghost*.15;ctx.drawImage(textCanvas,0,0,width,height);ctx.restore();}ctx.drawImage(scratch,0,0,width,height);ctx.filter=\"none\";}// Guitar strings: a traveling sine wave, vertically displacing each primitive.\n// Amplitude ramps in with `reveal` (silent before a cell appears) and then\n// holds at full strength — a continuous ripple rather than a decaying pluck,\n// so the effect stays visible on settled text for a recorded take.\nfunction computeGuitarOffsetY(primitive,settings,elapsedMs,reveal){if(!settings.fxGuitarEnabled||settings.fxGuitarAmplitude<=0)return 0;const phase=primitive.col/12*settings.fxGuitarFrequency+elapsedMs/1e3*settings.fxGuitarSpeed;return settings.fxGuitarAmplitude*Math.sin(phase*Math.PI*2)*clamp(reveal,0,1);}// Repel/scatter: primitives fly in from a radial burst around the text center and\n// settle into place as their own reveal completes — magnitude decays with reveal,\n// so it never causes perpetual motion once text is fully revealed.\nfunction computeRepelOffset(primitive,settings,centerRow,centerCol,reveal){if(!settings.fxRepelEnabled||settings.fxRepelStrength<=0)return{dx:0,dy:0};const dRow=primitive.row-centerRow;const dCol=primitive.col-centerCol;const dist=Math.hypot(dRow,dCol)||1;const settle=(1-clamp(reveal,0,1))**2;const magnitude=settings.fxRepelStrength*settle*(.6+primitive.hash*.4);return{dx:dCol/dist*magnitude,dy:dRow/dist*magnitude};}// Wave ripple: a single bob that passes through each primitive as its own\n// reveal front arrives, then dies out — unlike guitar-string (which loops\n// forever after reveal), this settles flat so it reads as one ripple.\nfunction computeWaveOffsetY(settings,reveal){if(!settings.fxWaveEnabled)return 0;const front=clamp(reveal,0,1);const bump=Math.sin(front*Math.PI)*(1-front);// ~1.5 cells peak: the reference bobs cells by roughly one cell height —\n// the old 4x multiplier tossed them far above the text.\nreturn-bump*settings.cellSize*1.5;}// Shutter blinds: each column's own blind slat retracts upward as that\n// column reveals, so its cells slide down out from under it into place —\n// decaying to 0 as the column finishes revealing. A vertical lift, not a\n// horizontal slide, and every column lifts the same direction (no\n// alternating sign) since real blind slats don't alternate.\nfunction computeShutterOffsetY(primitive,settings,reveal){if(!settings.fxShutterEnabled)return 0;const remaining=1-easeOutCubic(clamp(reveal,0,1));return-remaining*settings.cellSize*30;}// Domino cascade: each cell rotates up from lying flat to standing upright —\n// the rotation IS the reveal, not an accent layered on top of it. easeOutBack\n// (not easeOutCubic) so each domino slightly over-rotates past upright and\n// settles back, like the reference; the pivot is the cell's BOTTOM edge (see\n// drawPrimitive) so it reads as tipping up, not spinning in place.\nfunction computeDominoRotation(settings,reveal){if(!settings.fxDominoEnabled)return 0;const remaining=1-easeOutBack(clamp(reveal,0,1));return remaining*(Math.PI/2.4);}// Magnetic snap: each cell starts tumbled at a random angle/offset (seeded by\n// its own stable hash) and snaps into place, riding the same overshoot\n// (`growth`, uncapped past 1) the spring pop-in effect uses for its settle.\nfunction computeMagneticTransform(primitive,settings,growth){if(!settings.fxMagneticEnabled)return{dx:0,dy:0,rotation:0};const settle=1-clamp(growth,0,1.15);const angle=(primitive.hash-.5)*Math.PI*1.4;const distance=(.4+primitive.hash*.6)*settings.cellSize*12;return{dx:Math.cos(angle)*distance*settle,dy:Math.sin(angle)*distance*settle,rotation:angle*settle};}// Glyph slide: moves and scales a whole reveal UNIT — a letter, word, line, or\n// the entire text — instead of each cell independently. Every cell in a unit\n// shares one delay (and, since the intensity offset is skipped for semantic\n// units, one reveal), so they share one transform and the glyph arrives\n// intact. This is the mechanism behind slide-in, fade-up and scale-pop looks.\n//\n// Two channels, both composing into offsets the renderers already apply:\n//   - translation: unit box fractions, so travel scales with the type\n//   - scale about the unit's centre: moving each cell toward that centre by\n//     (1 - scale) of its distance, while the cell itself scales by the same\n//     factor, is exactly a scale of the whole unit about that point\n//\n// The 1.15 ceiling matches computeMagneticTransform: a spring or bounce easing\n// pushes `growth` past 1, which drives `settle` slightly negative, so the unit\n// overshoots its resting place and settles back. Clamping at 1 instead would\n// kill the overshoot, which is most of what makes a pop read as a pop.\nfunction computeGlyphSlideTransform(primitive,settings,growth){if(!settings.fxGlyphSlideEnabled)return{dx:0,dy:0,scale:1};const settle=1-clamp(growth,0,1.15);const scale=1+(settings.fxGlyphSlideScale-1)*settle;const primitiveCenterX=primitive.x+primitive.width/2;const primitiveCenterY=primitive.y+primitive.height/2;return{dx:settings.fxGlyphSlideX*primitive.unitWidth*settle+(primitive.unitCenterX-primitiveCenterX)*(1-scale),dy:settings.fxGlyphSlideY*primitive.unitHeight*settle+(primitive.unitCenterY-primitiveCenterY)*(1-scale),scale};}// Glitch resolve: cells flicker through noisy, jittered positions before\n// snapping into their correct place — a signal locking in, not a fade.\n// Matches the reveal-candidates reference: position noise + alpha strobe,\n// time-quantized (55ms buckets) so it stutters rather than smears. Replaces\n// an earlier chromatic-fringe interpretation that wasn't in the reference.\nfunction computeGlitchJitter(primitive,settings,time,reveal){if(!settings.fxGlitchEnabled||reveal>=1)return{dx:0,dy:0,alphaScale:1};const noise=(1-reveal)*Math.max(2,settings.cellSize)*1.6;const bucket=Math.floor(time/55)+primitive.hash*997;return{dx:(hashUnit(bucket,seed)-.5)*noise,dy:(hashUnit(bucket+1,seed)-.5)*noise,alphaScale:.35+hashUnit(bucket+2,seed)*.5};}// Spark flash: each cell strikes white-hot then cools to the configured ink\n// color over its own reveal. Returns undefined once cooled so the shared\n// fillStyle (set once per frame) is left alone for the common case.\nfunction computeSparkFillOverride(settings,reveal){if(!settings.fxSparkEnabled)return undefined;const cool=easeOutCubic(clamp(reveal,0,1));if(cool>=1)return undefined;const hex=settings.color.replace(\"#\",\"\");const target=[0,2,4].map(i=>parseInt(hex.slice(i,i+2)||\"11\",16));const mix=to=>Math.round(255+(to-255)*cool);return`rgb(${mix(target[0])}, ${mix(target[1])}, ${mix(target[2])})`;}const CRT_POWER_ON_MS=900;// CRT power-on: a bright scanline sweeps down once; rows it hasn't reached\n// yet are still dim (not \"lit\"), rows it has already passed are at full\n// brightness, plus a brief random flicker across the whole frame — like an\n// old tube warming up. Painted as a single overlay pass AFTER everything\n// else for this frame (primitives/text already drawn to `ctx`), so it works\n// the same way for both the abstract and faithful renderers without needing\n// to touch their per-primitive draw loops.\nfunction paintCrtPowerOn(ctx,width,height,settings,time){if(!settings.fxCrtEnabled||time>CRT_POWER_ON_MS)return;const t=easeOutCubic(clamp(time/CRT_POWER_ON_MS,0,1));const scanY=height*t;// Dim whatever the scanline hasn't reached yet by partially erasing it\n// toward transparent — works regardless of the canvas's background color,\n// unlike painting an opaque dark rect over it.\nif(scanY<height){ctx.save();ctx.globalCompositeOperation=\"destination-out\";ctx.fillStyle=\"rgba(0,0,0,0.82)\";ctx.fillRect(0,scanY,width,height-scanY);ctx.restore();}// The bright scanline itself.\nconst band=Math.max(6,height*.015);ctx.save();const gradient=ctx.createLinearGradient(0,scanY-band,0,scanY+band);gradient.addColorStop(0,\"rgba(255,255,255,0)\");gradient.addColorStop(.5,\"rgba(255,255,255,0.9)\");gradient.addColorStop(1,\"rgba(255,255,255,0)\");ctx.globalCompositeOperation=\"lighter\";ctx.fillStyle=gradient;ctx.fillRect(0,scanY-band,width,band*2);ctx.restore();// Brief random flicker across the whole frame while powering on.\nconst flicker=.12*Math.sin(time*.6)*Math.sin(time*.13+1.7);if(Math.abs(flicker)>.03){ctx.save();ctx.globalCompositeOperation=flicker>0?\"destination-out\":\"lighter\";ctx.fillStyle=`rgba(255,255,255,${Math.abs(flicker)})`;ctx.fillRect(0,0,width,height);ctx.restore();}}// Typewriter cursor: a blinking caret parked at the reveal head — mirrors\n// paintMatrixScanHead's \"nearest primitive to strike\" lookup but draws a\n// simple blinking bar instead of a travel-rail.\nfunction paintTypewriterCursor(ctx,primitives,settings,time){if(!settings.fxTypewriterEnabled||primitives.length===0)return;let head=null;let bestDistance=Infinity;for(const primitive of primitives){const distance=time-primitive.delay;if(distance>=0&&distance<bestDistance){bestDistance=distance;head=primitive;}}if(!head||bestDistance>settings.duration)return;if(Math.floor(time/380)%2!==0)return;ctx.save();ctx.fillStyle=settings.color;ctx.globalAlpha=.9;// A solid block caret (like a terminal cursor), not a thin line — wide\n// enough to read as a cursor at normal zoom, not just a stray pixel.\nconst w=Math.max(settings.cellSize*3,8);ctx.fillRect(head.x+head.width+1,head.y,w,head.height);ctx.restore();}// Ink bloom: a soft glow around each cell as it strikes, fading as the cell\n// settles. Deliberately a radial gradient fill, NOT a per-primitive\n// `ctx.filter` blur — that reruns the blur convolution on every draw call and\n// can lock up the tab at higher radii/primitive counts (see the frame-level\n// blur composite in drawPixelScanFrame for the safe way to blur).\nfunction paintInkBloomGlow(ctx,primitive,settings,alpha,reveal,offsetX,offsetY){if(!settings.fxInkBloomEnabled)return;const bloom=(1-clamp(reveal,0,1))*alpha;if(bloom<=.01)return;const cx=primitive.x+offsetX+primitive.width/2;const cy=primitive.y+offsetY+primitive.height/2;const radius=Math.max(primitive.width,primitive.height)*1.8;const gradient=ctx.createRadialGradient(cx,cy,0,cx,cy,radius);gradient.addColorStop(0,settings.color);gradient.addColorStop(1,\"transparent\");ctx.save();ctx.globalAlpha*=bloom*.6;ctx.fillStyle=gradient;ctx.beginPath();ctx.arc(cx,cy,radius,0,Math.PI*2);ctx.fill();ctx.restore();}// Draws one of the three per-cell shape variants centered at (cx, cy) — shared\n// by the main shape dispatch and the morph overlay so both stay in sync.\nfunction drawShapeVariant(ctx,shape,primitive,cx,cy,reveal,sizeScale){if(shape===\"dots\"){const radius=Math.min(primitive.width,primitive.height)*.38*clamp(reveal,0,1)*sizeScale;ctx.beginPath();ctx.arc(cx,cy,Math.max(0,radius),0,Math.PI*2);ctx.fill();return;}if(shape===\"triangles\"){const size=Math.min(primitive.width,primitive.height)*clamp(reveal,0,1.15)*sizeScale;ctx.beginPath();ctx.moveTo(cx,cy-size/2);ctx.lineTo(cx+size/2,cy+size/2);ctx.lineTo(cx-size/2,cy+size/2);ctx.closePath();ctx.fill();return;}const size=Math.min(primitive.width,primitive.height)*clamp(reveal,0,1.15)*sizeScale;ctx.fillRect(cx-size/2,cy-size/2,Math.max(0,size),Math.max(0,size));}function drawPrimitive(ctx,primitive,settings,alpha,shake,reveal,// Independent size multiplier (the \"Grow cells\" / animateCellSize effect).\n// Kept separate from `reveal` so it scales the drawn geometry without also\n// driving opacity/position. 1 = no effect. Superseded by timeline keyframing\n// of reveal.cellSize, but left as a quick per-frame size control.\nsizeScale=1,offsetX=0,offsetY=0,rotation=0,fillOverride){ctx.save();ctx.globalAlpha*=alpha;shake+=offsetX;const cx=primitive.x+shake+primitive.width/2;const cy=primitive.y+offsetY+primitive.height/2;if(rotation!==0){// Domino tips about the cell's bottom edge (the reference look — a tile\n// standing up); every other rotation (magnetic snap) spins about center.\nconst pivotY=settings.fxDominoEnabled?primitive.y+offsetY+primitive.height:cy;ctx.translate(cx,pivotY);ctx.rotate(rotation);ctx.translate(-cx,-pivotY);}if(fillOverride)ctx.fillStyle=fillOverride;// Morph: cross-dissolve the current shape's rendering into another per-cell\n// shape (fxMorphTo). Only meaningful for the per-cell shapes (dots/blocks/\n// triangles) — \"lines\" merges cells into wide runs and \"font\" has its own\n// mask-based renderer, so both are excluded rather than special-cased.\n// Draws both variants at complementary alpha instead of interpolating\n// geometry, which keeps this simple and avoids path-interpolation edge cases.\nconst canMorph=settings.fxMorphEnabled&&settings.fxMorphAmount>0&&settings.shape!==\"font\"&&settings.shape!==\"lines\";if(canMorph&&settings.fxMorphTo!==settings.shape){const morphAlpha=ctx.globalAlpha*settings.fxMorphAmount;ctx.save();ctx.globalAlpha=morphAlpha;drawShapeVariant(ctx,settings.fxMorphTo,primitive,cx,cy,reveal,sizeScale);ctx.restore();ctx.globalAlpha*=1-settings.fxMorphAmount;}if(settings.shape===\"dots\"||settings.shape===\"triangles\"||settings.shape===\"blocks\"){drawShapeVariant(ctx,settings.shape,primitive,cx,cy,reveal,sizeScale);ctx.restore();return;}// \"lines\" shape: direction decides which edge each axis grows from.\n// left/right/center bias the X axis (width) and always vertically-center\n// the growing stroke height; top/bottom bias the Y axis (stroke height)\n// instead, since width-direction semantics don't map to a horizontal\n// run's height axis, and hold width at its full run length.\nconst hFull=clamp(settings.strokeHeight,.5,primitive.height)*sizeScale;const growReveal=clamp(reveal,0,1.15);if(settings.direction===\"top\"||settings.direction===\"bottom\"){const h=Math.max(.5,hFull*growReveal);const y=(settings.direction===\"top\"?primitive.y:primitive.y+primitive.height-h)+offsetY;ctx.fillRect(primitive.x+shake,y,primitive.width,h);ctx.restore();return;}const h=Math.max(.5,hFull*growReveal);const y=primitive.y+primitive.height/2-h/2+shake+offsetY;const w=Math.max(0,primitive.width*growReveal);const x=settings.direction===\"right\"?primitive.x+shake+(primitive.width-w):settings.direction===\"center\"?primitive.x+shake+(primitive.width-w)/2:primitive.x+shake;ctx.fillRect(x,y,w,h);ctx.restore();}const defaultTimelineKeyframeEasing={controlPoints:[.65,0,.35,1],type:\"bezier\"};function clampUnit(value){if(!Number.isFinite(value)){return 0;}return Math.max(0,Math.min(1,value));}function getBezierPoint(time,firstControlPoint,secondControlPoint){const inverseTime=1-time;return 3*inverseTime*inverseTime*time*firstControlPoint+3*inverseTime*time*time*secondControlPoint+time*time*time;}function getBezierYForX(progress,[x1,y1,x2,y2]){let min=0;let max=1;let time=progress;for(let index=0;index<30;index+=1){time=(min+max)/2;if(getBezierPoint(time,x1,x2)<progress){min=time;}else{max=time;}}return clampUnit(getBezierPoint(time,y1,y2));}function easeProgress(progress,easing){const clampedProgress=clampUnit(progress);const resolvedEasing=easing??defaultTimelineKeyframeEasing;if(resolvedEasing.type===\"step\"){return clampedProgress>=1?1:0;}return getBezierYForX(clampedProgress,resolvedEasing.controlPoints);}function isPlainRecord(value){if(typeof value!==\"object\"||value===null||Array.isArray(value)){return false;}const prototype=Object.getPrototypeOf(value);return prototype===Object.prototype||prototype===null;}function interpolateToolcraftValue(fromValue,toValue,progress){if(typeof fromValue===\"number\"&&typeof toValue===\"number\"){return fromValue+(toValue-fromValue)*progress;}if(Array.isArray(fromValue)&&Array.isArray(toValue)&&fromValue.length===toValue.length){return fromValue.map((item,index)=>interpolateToolcraftValue(item,toValue[index],progress));}if(isPlainRecord(fromValue)&&isPlainRecord(toValue)){const fromKeys=Object.keys(fromValue);const toKeys=Object.keys(toValue);if(fromKeys.length===toKeys.length&&fromKeys.every(key=>Object.prototype.hasOwnProperty.call(toValue,key))){return Object.fromEntries(fromKeys.map(key=>[key,interpolateToolcraftValue(fromValue[key],toValue[key],progress)]));}}return progress>=1?toValue:fromValue;}function getKeyframeRuntimeValue(keyframe){return\"value\"in keyframe?keyframe.value:undefined;}function getEvaluatedTimelineGroupValue(group,timeSeconds,fallbackValue){const keyframes=group.keyframes.filter(keyframe=>\"value\"in keyframe).sort((first,second)=>first.timeSeconds-second.timeSeconds);if(keyframes.length===0){return fallbackValue;}const firstKeyframe=keyframes[0];const lastKeyframe=keyframes[keyframes.length-1];if(!firstKeyframe||!lastKeyframe){return fallbackValue;}if(timeSeconds<=firstKeyframe.timeSeconds){return getKeyframeRuntimeValue(firstKeyframe);}if(timeSeconds>=lastKeyframe.timeSeconds){return getKeyframeRuntimeValue(lastKeyframe);}for(let index=0;index<keyframes.length-1;index+=1){const fromKeyframe=keyframes[index];const toKeyframe=keyframes[index+1];if(!fromKeyframe||!toKeyframe){continue;}if(timeSeconds<fromKeyframe.timeSeconds||timeSeconds>toKeyframe.timeSeconds){continue;}const durationSeconds=toKeyframe.timeSeconds-fromKeyframe.timeSeconds;const progress=durationSeconds<=0?1:(timeSeconds-fromKeyframe.timeSeconds)/durationSeconds;const easedProgress=easeProgress(progress,fromKeyframe.easing);return interpolateToolcraftValue(getKeyframeRuntimeValue(fromKeyframe),getKeyframeRuntimeValue(toKeyframe),easedProgress);}return fallbackValue;}function evaluateToolcraftTimelineValue(state,target,timeSeconds=state.timeline.currentTimeSeconds){const group=state.timeline.keyframeGroups.find(item=>item.controlId===target);if(!group){return state.values[target];}return getEvaluatedTimelineGroupValue(group,timeSeconds,state.values[target]);}function evaluateToolcraftTimelineValues(state,timeSeconds=state.timeline.currentTimeSeconds){const values={...state.values};for(const group of state.timeline.keyframeGroups){values[group.controlId]=getEvaluatedTimelineGroupValue(group,timeSeconds,state.values[group.controlId]);}return values;}/* ---------- component ---------- */// Diagnostic readout, drawn only when the Debug prop is on. It exists because\n// a phone is not a profiler: \"it feels slow\" cannot be acted on, but \"js 14ms,\n// fps 31, backing 1344x756\" names the culprit immediately. Drawn in artboard\n// units like everything else, scaled back up so it stays legible on a device\n// showing a 1920-wide design at 400 CSS px. Deliberately plain source-over\n// text after the frame is complete, so it can't change how the reveal itself\n// composites.\nfunction drawPixelScanDebug(ctx,width,height,uiScale,lines){const size=13*uiScale;const pad=8*uiScale;ctx.save();ctx.globalCompositeOperation=\"source-over\";ctx.globalAlpha=1;ctx.filter=\"none\";ctx.font=`${size}px ui-monospace, SFMono-Regular, Menlo, monospace`;ctx.textBaseline=\"top\";const widest=lines.reduce((max,line)=>Math.max(max,ctx.measureText(line).width),0);ctx.fillStyle=\"rgba(0,0,0,0.72)\";ctx.fillRect(pad,pad,widest+pad*2,lines.length*size*1.35+pad*2);ctx.fillStyle=\"#7CFFB2\";lines.forEach((line,index)=>{ctx.fillText(line,pad*2,pad*2+index*size*1.35);});ctx.restore();}export default function GeistPixelScan(props){const{text,loop,style,// Destructure defaults, not just defaultProps — React 19 ignores\n// defaultProps on function components.\nfontSize=BAKED.values[\"typography.fontSize\"],lineHeight=BAKED.values[\"typography.lineHeight\"],letterSpacing=BAKED.values[\"typography.letterSpacing\"],cellSize=BAKED.values[\"reveal.cellSize\"],preset=\"Design\",delay=0,duration=BAKED.durationSeconds,quality=1,background=true,backgroundColor=\"#F8F8F4\",autoHide=false,holdDuration=.5,fadeDuration=.4,unmountOnHide=true,headingTag=\"h1\",showOnce=false,sessionKey=\"framer:loader-shown\",emitCompleteEvent=true,completeEventName=\"framer:loader-complete\",debug=false,maxFps=60,matchApp=false,randomPresets=RANDOM_POOL,randomSeed=\"\",introMotion=false,introStartPercent=50,introDelay=.15,introDuration=1.2,introEasing=\"easeOut\"}=props;// Rolled once per mount, so \"Random\" gives a different look on every page\n// load without ever re-initialising the engine mid-life. A lazy initializer\n// is safe here even under SSR: nothing preset-dependent reaches the markup,\n// only the canvas, which is drawn after hydration either way.\nconst[rolled]=React.useState(()=>{const pool=Array.isArray(randomPresets)&&randomPresets.length>0?randomPresets:[\"Design\"];let hash=2166136261;for(const char of String(randomSeed))hash=Math.imul(hash^char.charCodeAt(0),16777619);if(!randomSeed)hash=Math.imul(hash^Date.now(),16777619);return pool[Math.abs(hash)%pool.length]??\"Design\";});const activePreset=preset===\"Random\"?rolled:preset;const canvasRef=React.useRef(null);// How wide the canvas actually is on screen, in 64px buckets. The artboard\n// is a design size, not a render size: rendering 1920x1080 at 2x to show it\n// 1200px wide burns ~5x the pixels for nothing, and the cost is invisible\n// to long-task profiling because it lands in the rasterizer, not in JS.\nconst[displayWidth,setDisplayWidth]=React.useState(0);const[isPageVisible,setIsPageVisible]=React.useState(true);const[isIntersecting,setIsIntersecting]=React.useState(true);React.useLayoutEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;if(typeof ResizeObserver===\"undefined\"){// No observer: fall back to the artboard size rather than never\n// rendering, since the engine waits for a non-zero width.\nsetDisplayWidth(BAKED.width);return;}const observer=new ResizeObserver(([entry])=>{const measured=entry?.contentRect.width??0;// Bucketed so a fluid layout can't re-init the engine every pixel.\nif(measured>0)setDisplayWidth(Math.ceil(measured/64)*64);});observer.observe(canvas);return()=>observer.disconnect();},[]);React.useEffect(()=>{const onVisibilityChange=()=>setIsPageVisible(!document.hidden);onVisibilityChange();document.addEventListener(\"visibilitychange\",onVisibilityChange);return()=>document.removeEventListener(\"visibilitychange\",onVisibilityChange);},[]);// Reduced motion: draw the finished frame once and never animate. Also the\n// cheapest path there is — one sample, one draw, and the rAF loop stops\n// immediately. Read post-hydration so SSR and the client agree.\nconst[still,setStill]=React.useState(false);React.useEffect(()=>{if(typeof matchMedia!==\"function\")return;const media=matchMedia(\"(prefers-reduced-motion: reduce)\");setStill(media.matches);const onChange=event=>setStill(event.matches);media.addEventListener(\"change\",onChange);return()=>media.removeEventListener(\"change\",onChange);},[]);// Dismiss timers must never run on the Framer editor canvas, or the\n// component unmounts itself while the designer is configuring it.\nconst autoHideActive=autoHide&&RenderTarget.current()!==RenderTarget.canvas;const[revealComplete,setRevealComplete]=React.useState(false);const[introStarted,setIntroStarted]=React.useState(!introMotion);const[hiding,setHiding]=React.useState(false);const[gone,setGone]=React.useState(false);const[collapsed,setCollapsed]=React.useState(false);// Resize is intentionally absent: a ResizeObserver redraws the current\n// run at a new backing size without restarting its reveal or dismissal.\nconst runKey=[text,loop,delay,duration,fontSize,lineHeight,letterSpacing,cellSize,activePreset,still].join(\"|\");const completedRunRef=React.useRef(null);React.useEffect(()=>{completedRunRef.current=null;setRevealComplete(false);setIntroStarted(!introMotion);setHiding(false);setGone(false);setCollapsed(false);},[runKey,introMotion]);// Keep the center-to-heading hand-off in this component instead of\n// stacking Framer's appearEffect on top of the canvas animation. A\n// transform moves the already-painted layer without reflow or another\n// canvas sample/draw pass, and starts only after the final reveal frame.\nReact.useEffect(()=>{if(!introMotion){setIntroStarted(true);return;}if(!revealComplete)return;let frame=0;const timer=window.setTimeout(()=>{frame=requestAnimationFrame(()=>setIntroStarted(true));},Math.max(0,introDelay)*1e3);return()=>{window.clearTimeout(timer);if(frame)cancelAnimationFrame(frame);};},[introMotion,revealComplete,introDelay]);React.useEffect(()=>{const canvas=canvasRef.current;if(!canvas||autoHideActive||typeof IntersectionObserver===\"undefined\")return;const observer=new IntersectionObserver(([entry])=>setIsIntersecting(!!entry?.isIntersecting),{threshold:0});observer.observe(canvas);return()=>observer.disconnect();},[autoHideActive]);// Hand-off: set the synchronous global flag FIRST, then dispatch, so a\n// listener that registered after us still sees the flag (order-independent).\nconst notifyComplete=React.useCallback(()=>{if(typeof window===\"undefined\")return;try{window.__framerLoaderComplete=true;}catch(_error){}if(emitCompleteEvent){try{window.dispatchEvent(new CustomEvent(completeEventName));}catch(_error){}}},[emitCompleteEvent,completeEventName]);React.useEffect(()=>{const canvas=canvasRef.current;// desynchronized lets the compositor skip a frame of buffering on a\n// canvas nobody reads back — measurably smoother, and this canvas is\n// write-only apart from the offscreen scratch surfaces.\nconst ctx=canvas?.getContext(\"2d\",{desynchronized:true});// Wait for the measurement: sampling before the real size is known\n// means doing the ~200ms sample twice, once at the wrong resolution.\nif(!canvas||!ctx||displayWidth<=0||gone||collapsed||!autoHideActive&&!isIntersecting)return;const{width,height}=BAKED;const dpr=Math.min(2,typeof devicePixelRatio===\"number\"&&devicePixelRatio||1);// Device pixels per artboard pixel, bounded by two independent things:\n// what the screen can actually show, and Quality. Quality 1 means the\n// artboard's own resolution — for a pixel design whose cells are one\n// artboard pixel, rendering above that supersamples a deliberately\n// blocky image and costs about double per frame. The engine keeps\n// drawing in artboard units either way, so every coordinate, font size\n// and cell stays exactly where it was designed; only the raster moves.\nconst render=Math.max(.1,Math.min(dpr*displayWidth/width,Math.max(.1,Math.min(2,quality))));canvas.width=Math.round(width*render);canvas.height=Math.round(height*render);ctx.setTransform(render,0,0,render,0,0);// Typography overrides are sample-time fields, so changing one costs a\n// full re-sample (~100ms on a large artboard). That's a per-page-load\n// cost, which is exactly how these are meant to be used.\nconst values={...BAKED.values,// A preset replaces the look (it carries its own clean slate, so\n// effects never stack); the explicit props below still win.\n...PRESETS[activePreset]??{},// The engine wraps its own clock when motion.loop is set, so a\n// baked-in loop kept modulo-ing the time this component hands it\n// even when Loop is off — the \"final\" frame it froze on was\n// whatever fell out of that modulo, which with keyframes (where\n// the cycle can't be derived from the primitives alone) was often\n// a blank pre-reveal frame. One clock, owned by the prop.\n\"motion.loop\":false,// Fast screen-sized sampling keeps the intro on the cheap mask\n// composite. Jitter is a per-cell transform and turns a 1px\n// mobile design into tens of thousands of drawImage calls; exact\n// editor matching remains available through Match App.\n\"motion.jitter\":matchApp?BAKED.values[\"motion.jitter\"]:0,\"text.content\":text,\"typography.fontSize\":fontSize,\"typography.lineHeight\":lineHeight,\"typography.letterSpacing\":letterSpacing,// A cell smaller than one device pixel cannot be drawn — the\n// reveal detail below that threshold is sampled, animated and\n// composited only to be thrown away by the rasterizer. Clamping to\n// the visible floor is free in appearance and cuts the primitive\n// count (and the first-frame sample) by 1/render squared.\n\"reveal.cellSize\":matchApp?cellSize:Math.max(cellSize,1/render)};const state={values,timeline:BAKED.timeline};const primitives={current:[]};const textCanvas={current:null};const scratch=document.createElement(\"canvas\");const mask=document.createElement(\"canvas\");let signature=\"\";let sampledWithFont=false;let frame=0;let cancelled=false;let fontLoadSettled=false;const start=performance.now();// Keyframe times are absolute seconds against the baked duration, so a\n// custom duration scales the clock rather than the engine's settings —\n// scaling settings would desync keyframes from stagger/delay.\n// How long the animation naturally runs. The engine's own loop cycle\n// is maxDelay + duration + 300ms, which depends on the primitives, so\n// it can only be known after the first sample — a preset with a slower\n// stagger would otherwise be cut off by the baked duration. Keyframes\n// are timed in baked seconds, so they pin the reference instead.\nlet cycle=BAKED.durationSeconds;// Without keyframes nothing in the settings changes over time, so the\n// whole evaluate + coerce + signature chain is loop-invariant. Hoisting\n// it out drops ~40 Number() coercions, an object build and a string\n// join from every single frame.\nconst animated=BAKED.timeline.keyframeGroups.length>0;const staticSettings=animated?null:readPixelScanSettingsFromValues(values);// When the font never arrives, sampledWithFont never flips, so the\n// fonts.check + signature join below would run at 60Hz forever waiting\n// for something that isn't coming. Once a fallback sample has landed,\n// look again twice a second instead. The keyframed case still checks\n// every frame: there, a sample-time field can change on any frame.\nlet fontCheckAt=0;// Debug readout state (see drawPixelScanDebug). Nothing here is touched\n// unless the Debug prop is on.\nlet fpsCount=0;let fpsSince=0;let jsTotal=0;let shownFps=0;let shownJs=0;const uiScale=width/Math.max(1,displayWidth);// Below 60 the canvas simply repaints less often. That is not about\n// this component's own cost — measured at 0.7ms a frame on an iPhone 14\n// — but about what a canvas repaint COSTS THE PAGE: if anything is\n// composited over it (a translucent overlay, a backdrop-filter), every\n// repaint can invalidate that layer across the whole viewport. Halving\n// the repaints halves that, and a blocky pixel reveal at 30 reads as\n// deliberate rather than dropped.\nconst throttleMs=maxFps>0&&maxFps<60?1e3/maxFps-1:0;let lastDraw=-1e9;const requestFont=()=>{if(typeof document===\"undefined\"||!(\"fonts\"in document))return;const settings=readPixelScanSettingsFromValues(values);void document.fonts.load(`${settings.fontSize}px ${pixelScanFaceFamily[settings.face]}`).catch(()=>undefined).finally(()=>{fontLoadSettled=true;if(!cancelled&&isPageVisible)frame=requestAnimationFrame(tick);});};const tick=()=>{const frameStart=debug?performance.now():0;// A backgrounded tab still runs rAF in some browsers, and a loader\n// nobody is looking at should not compete with the page's work.\n// Reduced motion is exempt: it has exactly one frame to draw, and\n// deferring that one would leave the loop running forever.\nif(!isPageVisible&&!still){return;}const nowMs=performance.now();const elapsed=(nowMs-start)/1e3;// Duration is the wall-clock target: the natural cycle is scaled\n// into it, rather than truncated at it.\nconst clock=()=>{const t=Math.max(0,(elapsed-Math.max(0,delay))*(cycle/Math.max(.05,duration)));return{done:still||!loop&&t>=cycle,// Stop just INSIDE the loop boundary: the engine's clock\n// wraps at exactly durationSeconds, so holding the final\n// frame at t == D freezes on the blank pre-reveal frame\n// instead of the finished one.\ntime:still||!loop?Math.min(still?cycle:t,cycle-.001):t%cycle};};let{done,time}=clock();const settings=staticSettings??readPixelScanSettingsFromValues(evaluateToolcraftTimelineValues(state,time));// Anti-lock: if Geist Pixel isn't installed in this Framer project\n// the font check never passes, so sample anyway after 1.2s rather\n// than render nothing forever (and never fire the complete event).\n// Once a sample has landed with the font present nothing can go\n// stale, so skip the whole check — fonts.check is not free at 60Hz.\nif(animated||!sampledWithFont&&elapsed>=fontCheckAt){if(!animated)fontCheckAt=signature===\"\"?0:elapsed+.5;const fontReady=document.fonts.check(`${settings.fontSize}px ${pixelScanFaceFamily[settings.face]}`);const next=JSON.stringify(getPixelScanPreparationKeys(settings,width,height,matchApp?2:render*2));// Re-sample on a settings change, and once more if the font\n// shows up after a fontless fallback sample (signature is same).\nconst stale=next!==signature||fontReady&&!sampledWithFont;// Never leave a first-visit loader blank while a custom font is\n// still resolving. A fallback sample at 350ms is replaced by the\n// real font when it arrives, but it keeps the page moving during\n// the font/network gap seen on mobile.\nif(stale&&(fontReady||fontLoadSettled||elapsed*1e3>350)){// Match App samples exactly like the editor does (2x the\n// artboard), so what you designed is what ships. Off\n// samples 2x what this component is actually DRAWN at,\n// which on a phone showing a 1920-wide design at 448 CSS px\n// turns a 3840x2160 first-frame sample into 1920x1080 —\n// roughly a third of the opening stall. It is not free:\n// sampling coarser moves which edge cells count as ink, so\n// strokes land slightly differently from the editor.\nprimitives.current=samplePixelScanPrimitives(width,height,settings,undefined,matchApp?2:render*2);textCanvas.current=settings.shape===\"font\"?renderPixelScanTextCanvas(width,height,settings,render):null;signature=next;sampledWithFont=fontReady;{const slowest=getPixelScanMaxDelay(primitives.current);const natural=Math.max(.05,(slowest+settings.duration+300)/1e3);// With keyframes the run isn't over until BOTH are:\n// the keyframes, which are timed in baked seconds, and\n// the reveal, whose length only the primitives know.\ncycle=animated?Math.max(BAKED.durationSeconds,natural):natural;({done,time}=clock());}}}// Throttle the DRAW, never the sample above and never the final\n// frame — a skipped last frame would leave the loader unfinished.\nif(throttleMs>0&&!done&&nowMs-lastDraw<throttleMs){frame=requestAnimationFrame(tick);return;}lastDraw=nowMs;if(settings.shape===\"font\"){if(textCanvas.current){drawPixelScanFaithfulFrame(ctx,textCanvas.current,scratch,mask,primitives.current,width,height,settings,time*1e3);}else{ctx.clearRect(0,0,width,height);}}else{drawPixelScanFrame(ctx,primitives.current,width,height,settings,time*1e3);}if(debug){// fps over a real second, not an instantaneous delta: the\n// number has to survive being read off a phone screen.\nconst now=performance.now();jsTotal+=now-frameStart;fpsCount+=1;if(fpsSince===0)fpsSince=now;if(now-fpsSince>=1e3){shownFps=Math.round(fpsCount*1e3/(now-fpsSince));shownJs=Math.round(jsTotal/fpsCount*10)/10;fpsCount=0;jsTotal=0;fpsSince=now;}drawPixelScanDebug(ctx,width,height,uiScale,[`fps ${shownFps}  js ${shownJs}ms`,`backing ${canvas.width}x${canvas.height}  render ${render.toFixed(2)}`,`cells ${Math.round(settings.cellSize*100)/100}  prims ${primitives.current.length}`,`preset ${activePreset}  ${settings.shape}${sampledWithFont?\"\":\"  NO FONT\"}`]);}// Stop scheduling once the final frame is painted: a loader that\n// keeps burning rAF during the page's first seconds is the whole\n// cost this component is supposed to avoid.\nconst validFinalFrame=settings.shape!==\"font\"||textCanvas.current!==null;if(done&&validFinalFrame&&completedRunRef.current!==runKey){completedRunRef.current=runKey;setRevealComplete(true);}if(!done&&isPageVisible)frame=requestAnimationFrame(tick);};requestFont();frame=requestAnimationFrame(tick);return()=>{cancelled=true;cancelAnimationFrame(frame);};},[text,loop,delay,duration,fontSize,lineHeight,letterSpacing,cellSize,displayWidth,quality,still,activePreset,debug,maxFps,matchApp,isPageVisible,isIntersecting,autoHideActive,gone,collapsed,runKey]);React.useEffect(()=>{if(typeof window===\"undefined\"||!autoHideActive||!revealComplete)return;const timer=window.setTimeout(()=>setHiding(true),Math.max(0,holdDuration)*1e3);return()=>window.clearTimeout(timer);},[autoHideActive,revealComplete,holdDuration]);React.useEffect(()=>{if(typeof window===\"undefined\"||!hiding)return;const timer=window.setTimeout(()=>{try{window.sessionStorage.setItem(sessionKey,\"1\");}catch(_error){}notifyComplete();if(unmountOnHide)setGone(true);else setCollapsed(true);},Math.max(0,fadeDuration)*1e3);return()=>window.clearTimeout(timer);},[hiding,fadeDuration,unmountOnHide,sessionKey,notifyComplete]);// \"Show once\" must be checked post-hydration, never in a useState\n// initializer: Framer published sites are server-rendered and reading\n// sessionStorage during render is a hydration mismatch.\nReact.useEffect(()=>{if(!showOnce||RenderTarget.current()===RenderTarget.canvas)return;if(typeof window===\"undefined\")return;let already=false;try{already=!!window.sessionStorage.getItem(sessionKey);}catch(_error){}if(!already)return;notifyComplete();setGone(true);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);// One h1 per page: a two-part loader should set the second one to h2 or\n// none rather than shipping two competing headings.\nconst Heading=headingTag===\"none\"?\"none\":headingTag;if(gone)return null;return /*#__PURE__*/_jsxs(\"div\",{style:{...style,alignItems:\"center\",background:background?backgroundColor:\"transparent\",// The clipped heading is absolutely positioned against this.\nposition:\"relative\",display:collapsed?\"none\":\"flex\",justifyContent:\"center\",overflow:\"hidden\",opacity:hiding?0:1,transform:introMotion?`translate3d(0, ${introStarted?0:Math.max(0,introStartPercent)}vh, 0)`:undefined,transition:[introMotion?`transform ${Math.max(0,introDuration)}s ${({linear:\"linear\",easeIn:\"cubic-bezier(0.42, 0, 1, 1)\",easeInOut:\"cubic-bezier(0.65, 0, 0.35, 1)\",easeOut:\"cubic-bezier(0.19, 1, 0.22, 1)\",spring:\"cubic-bezier(0.34, 1.56, 0.64, 1)\"})[introEasing]??\"cubic-bezier(0.19, 1, 0.22, 1)\"}`:\"\",autoHideActive?`opacity ${Math.max(0,fadeDuration)}s ease`:\"\"].filter(Boolean).join(\", \")||undefined,willChange:introMotion&&!introStarted?\"transform\":undefined,pointerEvents:hiding?\"none\":undefined},children:[Heading!==\"none\"&&// Canvas text is pixels: invisible to crawlers, to screen\n// readers, and to find-in-page. This is the real heading, put\n// in the document at full size but clipped away visually — NOT\n// display:none or visibility:hidden, both of which take it back\n// out of the accessibility tree and out of some crawlers.\n/*#__PURE__*/_jsx(Heading,{style:{position:\"absolute\",width:1,height:1,margin:-1,padding:0,border:0,overflow:\"hidden\",clip:\"rect(0 0 0 0)\",clipPath:\"inset(50%)\",whiteSpace:\"nowrap\"},children:String(text??\"\").replace(/\\n/g,\" \")}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,// The heading above already carries the text; without this the\n// same words are announced twice.\n\"aria-hidden\":\"true\",// NO transform/backface promotion here. Forcing this canvas\n// onto its own compositor layer looked like a free win against\n// full-viewport recompositing, but combined with the\n// desynchronized context it can leave the canvas showing its\n// FIRST frame forever in WebKit — which reads as \"only the\n// ghost renders\", since frame one is the ghost and almost no\n// reveal. Layer promotion is not worth a class of bug that\n// only appears on the device you can't debug on.\nstyle:{width:\"100%\",height:\"auto\",maxHeight:\"100%\"}})]});}GeistPixelScan.defaultProps={text:\"HI THERE, I'M\\nLUIS ACCORSI\",// Deliberately NOT baked from the app's Motion -> Loop. Looping is right\n// for the editor, where you are watching the reveal over and over; on a\n// published page it is a rAF loop that never stops, competing with\n// everything the page does after the loader has already said its piece.\nloop:false,fontSize:160,lineHeight:.95,letterSpacing:1,cellSize:7.5,preset:\"Design\",quality:1,headingTag:\"h1\",background:true,backgroundColor:\"#F8F8F4\",delay:0,duration:2.5,autoHide:false,holdDuration:.5,fadeDuration:.4,unmountOnHide:true,showOnce:false,sessionKey:\"framer:loader-shown\",emitCompleteEvent:true,completeEventName:\"framer:loader-complete\",debug:false,maxFps:60,matchApp:false,introMotion:false,introStartPercent:50,introDelay:.15,introDuration:1.2,introEasing:\"easeOut\",width:1920,height:1080};addPropertyControls(GeistPixelScan,{text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"HI THERE, I'M\\nLUIS ACCORSI\"},fontSize:{type:ControlType.Number,title:\"Font Size\",min:4,max:800,step:1,unit:\"px\",defaultValue:160},lineHeight:{type:ControlType.Number,title:\"Line Height\",min:.2,max:4,step:.01,defaultValue:.95,description:\"Multiplier of the font size, not pixels.\"},letterSpacing:{type:ControlType.Number,title:\"Tracking\",min:-4,max:10,step:.25,unit:\"px\",defaultValue:1},cellSize:{type:ControlType.Number,title:\"Cell Size\",min:1,max:24,step:.5,unit:\"px\",defaultValue:7.5,description:\"Reveal grain, and the biggest performance lever there is — cost scales with 1/cellSize squared. 1 is per-pixel.\"},preset:{type:ControlType.Enum,title:\"Preset\",options:PRESET_NAMES,defaultValue:\"Design\",description:\"Design is what you exported. Random picks a different preset on every page load. Only the selected one is ever rendered, so the others are free.\"},delay:{type:ControlType.Number,title:\"Delay\",min:0,max:10,step:.05,unit:\"s\",defaultValue:0},duration:{type:ControlType.Number,title:\"Duration\",min:.1,max:30,step:.1,unit:\"s\",defaultValue:2.5,description:\"Time-scales the whole animation, keyframes included.\"},headingTag:{type:ControlType.Enum,title:\"Heading\",options:[\"h1\",\"h2\",\"h3\",\"p\",\"none\"],defaultValue:\"h1\",description:\"The text as a real, screen-reader and crawler visible element behind the canvas. Use one h1 per page.\"},background:{type:ControlType.Boolean,title:\"Background\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:true,description:\"Off makes the frame transparent so the page shows through behind the text.\"},backgroundColor:{type:ControlType.Color,title:\"Fill\",hidden:p=>p.background===false,defaultValue:\"#F8F8F4\"},quality:{type:ControlType.Number,title:\"Quality\",min:.25,max:2,step:.05,defaultValue:1,description:\"Max render resolution relative to the artboard. 1 is the design's own resolution and the fast default; 2 supersamples on retina for softer edges at roughly double the per-frame cost. Never renders above what the screen shows.\"},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:false,description:\"Off (the default) stops the render loop on the final frame — a loader that keeps animating competes with the page for the whole visit.\"},randomPresets:{type:ControlType.Array,title:\"Random presets\",defaultValue:[\"Design\"],control:{type:ControlType.Enum,options:PRESET_NAMES.filter(name=>name!==\"Random\")},description:\"Choose exactly which exported looks Random may use. Design is your exported app configuration.\"},randomSeed:{type:ControlType.String,title:\"Random seed\",defaultValue:\"\",description:\"Optional seed for repeatable Random selections while testing.\"},introMotion:{type:ControlType.Boolean,title:\"Intro hand-off\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"After the pixel reveal settles, move this painted layer into its heading position. Disable Framer Appear on this instance when enabled.\"},introStartPercent:{type:ControlType.Number,title:\"Intro start\",min:0,max:100,step:1,unit:\"%\",defaultValue:50,hidden:p=>!p.introMotion,description:\"Starts around the center of the viewport, then settles into this instance's heading position. 50% is the default center offset.\"},introDelay:{type:ControlType.Number,title:\"Intro delay\",min:0,max:5,step:.05,unit:\"s\",defaultValue:.15,hidden:p=>!p.introMotion},introDuration:{type:ControlType.Number,title:\"Intro duration\",min:.1,max:4,step:.05,unit:\"s\",defaultValue:1.2,hidden:p=>!p.introMotion},introEasing:{type:ControlType.Enum,title:\"Intro easing\",options:[\"linear\",\"easeIn\",\"easeInOut\",\"easeOut\",\"spring\"],defaultValue:\"easeOut\",hidden:p=>!p.introMotion},autoHide:{type:ControlType.Boolean,title:\"Auto Hide\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:false,description:\"Dismiss after the reveal. On-screen time = Delay + Duration + Hold + Fade.\"},holdDuration:{type:ControlType.Number,title:\"Hold\",min:0,max:20,step:.1,unit:\"s\",defaultValue:.5,hidden:p=>!p.autoHide},fadeDuration:{type:ControlType.Number,title:\"Fade Out\",min:0,max:5,step:.1,unit:\"s\",defaultValue:.4,hidden:p=>!p.autoHide},unmountOnHide:{type:ControlType.Boolean,title:\"Remove From DOM\",defaultValue:true,enabledTitle:\"Unmount\",disabledTitle:\"Hide\",description:\"Fully remove the canvas after fading (frees RAM/GPU).\",hidden:p=>!p.autoHide},showOnce:{type:ControlType.Boolean,title:\"Show Once\",defaultValue:false,description:\"Skip instantly if already shown this browser session.\"},sessionKey:{type:ControlType.String,title:\"Session Key\",defaultValue:\"framer:loader-shown\",hidden:p=>!p.showOnce},emitCompleteEvent:{type:ControlType.Boolean,title:\"Emit Event\",defaultValue:true,description:\"Fire the hand-off event on dismiss. Enable on only ONE loader part.\"},completeEventName:{type:ControlType.String,title:\"Event Name\",defaultValue:\"framer:loader-complete\",description:\"Must match the Hero override's event name.\"},matchApp:{type:ControlType.Boolean,title:\"Sampling\",defaultValue:false,enabledTitle:\"Match App\",disabledTitle:\"Fast\",description:\"Fast samples at the size this actually renders, keeping mobile startup responsive. Enable Match App only when exact editor sampling matters more than loading speed.\"},maxFps:{type:ControlType.Number,title:\"Max FPS\",min:10,max:60,step:5,defaultValue:60,description:\"Repaint rate cap. The draw itself is under 1ms — this is for pages where each canvas repaint makes the browser re-composite an overlay above it. 30 often looks steadier than an uneven 60.\"},debug:{type:ControlType.Boolean,title:\"Debug\",defaultValue:false,description:\"Draws fps, JS ms per frame, and the real render resolution onto the canvas. Turn on with Loop to profile on a device, screenshot it, then turn off — it is never meant to ship.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GeistPixelScan\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GeistAnimated.map","// Sound toggle component that controls global sound state for the website\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,startTransition}from\"react\";const SOUND_STORAGE_KEY=\"framer:sound-enabled\";function readStoredSoundEnabled(){if(typeof window===\"undefined\")return null;try{const stored=window.localStorage.getItem(SOUND_STORAGE_KEY);return stored===null?null:stored===\"1\";}catch(_error){return null;}}function writeStoredSoundEnabled(enabled){if(typeof window===\"undefined\")return;try{window.localStorage.setItem(SOUND_STORAGE_KEY,enabled?\"1\":\"0\");}catch(_error){// ignore (e.g. storage disabled/full)\n}}// Retain the public soundState.enabled API, including direct writes, while\n// notifying subscribers synchronously instead of polling every 100 ms.\nconst soundListeners=new Set;let soundEnabled=readStoredSoundEnabled()??false;export const soundState={get enabled(){return soundEnabled;},set enabled(value){const changed=soundEnabled!==value;soundEnabled=value;if(typeof window!==\"undefined\")window.__soundEnabled=value;if(changed)soundListeners.forEach(listener=>listener());}};if(typeof window!==\"undefined\")window.__soundEnabled=soundEnabled;/**\n * Sound Toggle Component\n *\n * Controls global sound state for the website. Other components can check\n * soundState.enabled before playing sounds.\n *\n * @framerIntrinsicWidth auto\n * @framerIntrinsicHeight auto\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function SoundToggle(props){const{label,enabledLabel,disabledLabel,backgroundColor,activeColor,textColor,activeTextColor,stateColor,hoverTextColor,activeHoverTextColor,hoverBackgroundColor,activeHoverBackgroundColor,borderRadius,showIcon,font,defaultEnabled,paddingTop,paddingRight,paddingBottom,paddingLeft,iconType,phosphorIcon,iconPosition,iconGap,phosphorIconEnabled,phosphorIconDisabled,textShadow}=props;// Local state that tracks the global sound state\nconst[isEnabled,setIsEnabled]=useState(defaultEnabled);const[isHovered,setIsHovered]=useState(false);// Initialize sound state on mount: a stored user choice always wins;\n// otherwise fall back to this instance's Default State control.\nuseEffect(()=>{const stored=readStoredSoundEnabled();const resolved=stored??defaultEnabled;soundState.enabled=resolved;setIsEnabled(resolved);window.__soundEnabled=resolved;},[defaultEnabled]);// Subscribe to sound state changes\nuseEffect(()=>{const updateState=()=>{startTransition(()=>{setIsEnabled(soundState.enabled);});};soundListeners.add(updateState);updateState();const onStorage=event=>{if(event.key===SOUND_STORAGE_KEY||event.key===null){soundState.enabled=readStoredSoundEnabled()??false;}};window.addEventListener(\"storage\",onStorage);return()=>{soundListeners.delete(updateState);window.removeEventListener(\"storage\",onStorage);};},[]);// Control all audio elements on the page\nuseEffect(()=>{if(typeof window===\"undefined\")return;const controlAllAudio=()=>{const audioElements=document.querySelectorAll(\"audio, video\");audioElements.forEach(element=>{if(element instanceof HTMLMediaElement){element.muted=!isEnabled;}});};// Control existing audio elements\ncontrolAllAudio();// Watch for new audio elements being added to the page\nconst observer=new MutationObserver(records=>{for(const record of records)for(const node of record.addedNodes){if(!(node instanceof Element))continue;if(node instanceof HTMLMediaElement)node.muted=!isEnabled;node.querySelectorAll(\"audio, video\").forEach(media=>{media.muted=!isEnabled;});}});observer.observe(document.body,{childList:true,subtree:true});return()=>observer.disconnect();},[isEnabled]);const handleToggle=()=>{const newState=!soundState.enabled;soundState.enabled=newState;window.__soundEnabled=newState;writeStoredSoundEnabled(newState);startTransition(()=>{setIsEnabled(newState);});};const handleMouseEnter=()=>startTransition(()=>setIsHovered(true));const handleMouseLeave=()=>startTransition(()=>setIsHovered(false));const getBackgroundColor=()=>{if(isHovered&&isEnabled&&activeHoverBackgroundColor)return activeHoverBackgroundColor;if(isHovered&&!isEnabled&&hoverBackgroundColor)return hoverBackgroundColor;if(isEnabled)return activeColor;return backgroundColor;};const getTextColor=()=>{if(isHovered&&isEnabled&&activeHoverTextColor){return activeHoverTextColor;}if(isHovered&&!isEnabled&&hoverTextColor){return hoverTextColor;}return isEnabled?activeTextColor:textColor;};return /*#__PURE__*/_jsxs(\"button\",{onClick:handleToggle,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:iconGap,width:\"fit-content\",height:\"auto\",backgroundColor:getBackgroundColor(),color:isEnabled?activeTextColor:textColor,border:\"none\",borderRadius,cursor:\"pointer\",paddingTop,paddingRight,paddingBottom,paddingLeft,transition:\"all 0.3s ease\",flexDirection:iconPosition===\"right\"?\"row\":\"row\",...font},\"aria-label\":isEnabled?\"Disable sounds\":\"Enable sounds\",\"aria-pressed\":isEnabled,children:[showIcon&&iconPosition===\"left\"&&iconType===\"phosphor\"&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\"},children:isEnabled?phosphorIconEnabled:phosphorIconDisabled}),showIcon&&iconPosition===\"left\"&&iconType===\"built-in\"&&/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:isEnabled?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"polygon\",{points:\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M15.54 8.46a5 5 0 0 1 0 7.07\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M19.07 4.93a10 10 0 0 1 0 14.14\"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"polygon\",{points:\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"23\",y1:\"9\",x2:\"17\",y2:\"15\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"17\",y1:\"9\",x2:\"23\",y2:\"15\"})]})}),/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",whiteSpace:\"nowrap\",textShadow},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:isHovered?hoverTextColor:textColor,transition:\"color 0.3s ease\"},children:label?`${label} [`:\"[\"}),/*#__PURE__*/_jsx(\"span\",{style:{color:isHovered?isEnabled?activeHoverTextColor:hoverTextColor:stateColor,transition:\"color 0.3s ease\"},children:isEnabled?enabledLabel:disabledLabel}),/*#__PURE__*/_jsx(\"span\",{style:{color:isHovered?hoverTextColor:textColor,transition:\"color 0.3s ease\"},children:\"]\"})]}),showIcon&&iconPosition===\"right\"&&iconType===\"phosphor\"&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\"},children:isEnabled?phosphorIconEnabled:phosphorIconDisabled}),showIcon&&iconPosition===\"right\"&&iconType===\"built-in\"&&/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:isEnabled?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"polygon\",{points:\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M15.54 8.46a5 5 0 0 1 0 7.07\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M19.07 4.93a10 10 0 0 1 0 14.14\"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"polygon\",{points:\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"23\",y1:\"9\",x2:\"17\",y2:\"15\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"17\",y1:\"9\",x2:\"23\",y2:\"15\"})]})})]});}addPropertyControls(SoundToggle,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Sound\"},enabledLabel:{type:ControlType.String,title:\"Enabled Label\",defaultValue:\"Sound On\"},disabledLabel:{type:ControlType.String,title:\"Disabled Label\",defaultValue:\"Sound Off\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#EEEEEE\"},activeColor:{type:ControlType.Color,title:\"Active Color\",defaultValue:\"#000000\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},activeTextColor:{type:ControlType.Color,title:\"Active Text\",defaultValue:\"#FFFFFF\"},stateColor:{type:ControlType.Color,title:\"State Color\",defaultValue:\"#000000\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#666666\"},activeHoverTextColor:{type:ControlType.Color,title:\"Active Hover Text\",defaultValue:\"#CCCCCC\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"#DDDDDD\"},activeHoverBackgroundColor:{type:ControlType.Color,title:\"Active Hover BG\",defaultValue:\"#222222\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:50,step:1},paddingTop:{type:ControlType.Number,title:\"Padding Top\",defaultValue:12,min:0,max:100,step:1},paddingRight:{type:ControlType.Number,title:\"Padding Right\",defaultValue:20,min:0,max:100,step:1},paddingBottom:{type:ControlType.Number,title:\"Padding Bottom\",defaultValue:12,min:0,max:100,step:1},paddingLeft:{type:ControlType.Number,title:\"Padding Left\",defaultValue:20,min:0,max:100,step:1},showIcon:{type:ControlType.Boolean,title:\"Show Icon\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},iconType:{type:ControlType.Enum,title:\"Icon Type\",options:[\"phosphor\",\"built-in\"],optionTitles:[\"Phosphor\",\"Built-in\"],defaultValue:\"phosphor\",hidden:({showIcon})=>!showIcon},iconPosition:{type:ControlType.Enum,title:\"Icon Position\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true,hidden:({showIcon})=>!showIcon},iconGap:{type:ControlType.Number,title:\"Icon Gap\",defaultValue:8,min:0,max:32,step:1,hidden:({showIcon})=>!showIcon},phosphorIconEnabled:{type:ControlType.ComponentInstance,title:\"Icon (Enabled)\",hidden:({showIcon,iconType})=>!showIcon||iconType!==\"phosphor\"},phosphorIconDisabled:{type:ControlType.ComponentInstance,title:\"Icon (Disabled)\",hidden:({showIcon,iconType})=>!showIcon||iconType!==\"phosphor\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},defaultEnabled:{type:ControlType.Boolean,title:\"Default State\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},textShadow:{type:ControlType.String,title:\"Text Shadow\",defaultValue:\"0px 0.5px 0px rgba(255,255,255,0.8)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"soundState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"SoundToggle\",\"slots\":[\"phosphorIcon\",\"phosphorIconEnabled\",\"phosphorIconDisabled\"],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SoundToggle.map","// Generated by Framer (090ed9b)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,ControlType,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,RichText,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Noise from\"https://framerusercontent.com/modules/ag5xLZasGdszx17rMYjB/MJYQCu7vnz3hWPdcXeI4/Noise.js\";import BackgroundPattern from\"https://framerusercontent.com/modules/sbWEZhpbWDNQ64mRZcmT/Tf0ECRTfyblFDXnVL11a/Background_Pattern.js\";import OverscrollBehavior from\"https://framerusercontent.com/modules/vWEJE2AuOX7wzyt66Tfv/EvdzpPIGPwITgjmnpk3A/Overscroll_Preventer.js\";import NavbarClean from\"#framer/local/canvasComponent/TJl3szZ3j/TJl3szZ3j.js\";import Phosphor from\"#framer/local/canvasComponent/v3XTvAyuf/v3XTvAyuf.js\";import CursorMenuButton from\"#framer/local/codeFile/Yi34UWZ/CursorMenuButton.js\";import CursorMenuColorButton from\"#framer/local/codeFile/mn97qEP/CursorMenuColorButton.js\";import{withMenuTrigger,withMobileTapMenu}from\"#framer/local/codeFile/yuCxmDh/CursorMenuMobileTap.js\";import GeistPixelScan from\"#framer/local/codeFile/htrrHlN/GeistAnimated.js\";import{withGridToggle}from\"#framer/local/codeFile/dkODDh4/GridToggle.js\";import{withDynamicViewportHeight}from\"#framer/local/codeFile/ZoSr1NV/ViewportHeightOverride.js\";import CursorTrail from\"#framer/local/codeFile/vRNYpbI/CursorTrail.js\";import InteractiveDotGrid from\"#framer/local/codeFile/HM97_9l/InteractiveDotGrid_1.js\";import SoundToggle from\"#framer/local/codeFile/YkUmigf/SoundToggle.js\";const NoiseFonts=getFonts(Noise);const CursorTrailFonts=getFonts(CursorTrail);const OverscrollBehaviorFonts=getFonts(OverscrollBehavior);const NavbarCleanFonts=getFonts(NavbarClean);const GeistPixelScanFonts=getFonts(GeistPixelScan);const BackgroundPatternFonts=getFonts(BackgroundPattern);const InteractiveDotGridFonts=getFonts(InteractiveDotGrid);const InteractiveDotGridWithDynamicViewportHeight4brcu3=withCodeBoundaryForOverrides(InteractiveDotGrid,{nodeId:\"C4NTpIGGG\",override:withDynamicViewportHeight,scopeId:\"hIm7E8vu4\"});const SoundToggleFonts=getFonts(SoundToggle);const CursorMenuButtonFonts=getFonts(CursorMenuButton);const CursorMenuColorButtonFonts=getFonts(CursorMenuColorButton);const CursorMenuButtonWithGridToggle1f2jnh0=withCodeBoundaryForOverrides(CursorMenuButton,{nodeId:\"IvGwcCk1k\",override:withGridToggle,scopeId:\"hIm7E8vu4\"});const MotionDivWithMenuTriggerascu5m=withCodeBoundaryForOverrides(motion.div,{nodeId:\"d9VA4zcdV\",override:withMenuTrigger,scopeId:\"hIm7E8vu4\"});const MotionDivWithMobileTapMenub3ttvm=withCodeBoundaryForOverrides(motion.div,{nodeId:\"uE2JggaK0\",override:withMobileTapMenu,scopeId:\"hIm7E8vu4\"});const breakpoints={PmjeUfwxK:\"(max-width: 809.98px)\",qX01mUKmQ:\"(min-width: 1426px)\",wx1tFVYTy:\"(min-width: 1200px) and (max-width: 1425.98px)\",XwadJE8Dx:\"(min-width: 810px) and (max-width: 1199.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-0Usqp\";const variantClassNames={PmjeUfwxK:\"framer-v-8xgu8g\",qX01mUKmQ:\"framer-v-18b4s1w\",wx1tFVYTy:\"framer-v-1fqvb5s\",XwadJE8Dx:\"framer-v-92isz1\"};const KjwQs7k9H=undefined;const BuNE6lOHt=undefined;const ujUaPYjO7=undefined;const pyNEibYdN=undefined;const bVfAyvuEo=undefined;const EEMrKb_Ln=undefined;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={PmjeUfwxK:[\".framer-0Usqp.framer-18b4s1w { overflow: visible; }\",\".framer-0Usqp .framer-la3yiq-container { left: 29px; top: 29px; }\",\".framer-0Usqp .framer-omt5xa-container { height: 266px; left: calc(50.00000000000002% - min(1402px, 384px) / 2); order: 1006; top: -42px; transform: unset; width: 384px; z-index: 0; }\",\".framer-0Usqp .framer-1fblyum-container { height: 100vh; left: calc(50.00000000000002% - min(1402px, 384px) / 2); order: 1005; top: calc(50.00000000000002% - 100vh / 2); transform: unset; width: 384px; z-index: 0; }\",\".framer-0Usqp .framer-b3ttvm { bottom: -208px; gap: 8px 0px; padding: 4px 8px 8px 8px; top: unset; }\",\".framer-0Usqp .framer-1x35orv { align-content: flex-end; align-items: flex-end; gap: 1px; order: 1; padding: 0px 5px 0px 0px; }\",\".framer-0Usqp .framer-ascu5m { order: 0; padding: 7px 9px 7px 9px; }\"],wx1tFVYTy:[\".framer-0Usqp.framer-18b4s1w { background-color: #ededed; }\",\".framer-0Usqp .framer-omt5xa-container { order: 1005; top: -247px; width: 1200px; z-index: 0; }\",\".framer-0Usqp .framer-1fblyum-container { order: 1006; top: 50%; width: 1200px; z-index: 0; }\",\".framer-0Usqp .framer-1rals27-container, .framer-0Usqp .framer-5iihox-container, .framer-0Usqp .framer-yr0kli-container, .framer-0Usqp .framer-18spk0m-container, .framer-0Usqp .framer-80fm25-container, .framer-0Usqp .framer-1ub7j9e-container, .framer-0Usqp .framer-13hoa74-container, .framer-0Usqp .framer-yj499w-container, .framer-0Usqp .framer-1wvlml-container, .framer-0Usqp .framer-1f2jnh0-container, .framer-0Usqp .framer-ascu5m { cursor: pointer; }\"],XwadJE8Dx:[\".framer-0Usqp.framer-18b4s1w { background-color: #e3e3e3; }\",\".framer-0Usqp .framer-omt5xa-container { top: -155px; width: 810px; }\",\".framer-0Usqp .framer-1fblyum-container { top: 50%; width: 810px; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={PmjeUfwxK:\".framer-8xgu8g-override\",wx1tFVYTy:\".framer-1fqvb5s-override\",XwadJE8Dx:\".framer-92isz1-override\"};const rules=[\".framer-0Usqp.framer-1nuo531, .framer-0Usqp .framer-1nuo531 { display: block; }\",\".framer-0Usqp.framer-18b4s1w { align-content: center; align-items: center; background-color: #eef0f1; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-0Usqp .framer-1l79hn1-container { -webkit-user-select: none; bottom: calc(calc(100% - min(var(--framer-viewport-height, 100%), 100%)) + 0px); flex: none; left: 0px; order: -1000; pointer-events: none; position: var(--framer-canvas-fixed-position, fixed); right: 0px; top: 0px; user-select: none; z-index: 10; }\",\".framer-0Usqp .framer-58u6tz-container { flex: none; height: 24px; left: 0px; order: -999; position: absolute; top: 0px; width: 24px; z-index: 10; }\",\".framer-0Usqp .framer-q9ujz5-container { flex: none; height: auto; order: -998; position: relative; width: auto; }\",\".framer-0Usqp .framer-la3yiq-container { flex: none; height: auto; left: 40px; order: -997; position: var(--framer-canvas-fixed-position, fixed); top: 40px; width: auto; z-index: 10; }\",\".framer-0Usqp .framer-omt5xa-container { flex: none; height: auto; left: 50%; max-width: 1402px; opacity: 0.7; order: -996; position: absolute; top: -296px; transform: translateX(-50%); width: 1402px; z-index: 1; }\",\".framer-0Usqp .framer-1fblyum-container { flex: none; height: auto; left: 50%; max-width: 1402px; opacity: 0.7; order: -995; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 1402px; z-index: 1; }\",\".framer-0Usqp .framer-18vjydi { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-0Usqp .framer-1t1hqdm-container { bottom: calc(calc(100% - min(var(--framer-viewport-height, 100%), 100%)) + 0px); flex: none; left: 0px; order: 1007; position: var(--framer-canvas-fixed-position, fixed); right: 0px; top: 0px; z-index: 0; }\",\".framer-0Usqp .framer-4brcu3-container { flex: none; height: 800px; left: 0px; order: 1008; position: var(--framer-canvas-fixed-position, fixed); right: 0px; top: 0px; z-index: 0; }\",\".framer-0Usqp .framer-b3ttvm { -webkit-user-select: none; align-content: center; align-items: center; background-color: rgba(255, 255, 255, 0); display: flex; flex: none; flex-direction: row; flex-wrap: wrap; gap: 6px 0px; height: min-content; justify-content: flex-end; order: 1009; overflow: visible; padding: 4px 0px 4px 16px; position: absolute; right: 0px; top: -220px; user-select: none; width: 174px; z-index: 9; }\",\".framer-0Usqp .framer-1x35orv { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 150px; }\",\".framer-0Usqp .framer-1rals27-container { flex: none; height: auto; min-width: 48px; position: relative; width: auto; }\",\".framer-0Usqp .framer-5iihox-container, .framer-0Usqp .framer-yr0kli-container, .framer-0Usqp .framer-18spk0m-container, .framer-0Usqp .framer-80fm25-container, .framer-0Usqp .framer-1ub7j9e-container, .framer-0Usqp .framer-13hoa74-container, .framer-0Usqp .framer-yj499w-container, .framer-0Usqp .framer-1wvlml-container, .framer-0Usqp .framer-1f2jnh0-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-0Usqp .framer-ascu5m { align-content: flex-start; align-items: flex-start; background-color: rgba(247, 247, 247, 0.95); box-shadow: inset 0px 0.5px 0px 0.5px rgba(255, 255, 255, 0.3), 0px 0px 0px 0.5px rgba(0, 0, 0, 0.07), 0px 1px 0px 0px rgba(0, 0, 0, 0.05), 0px 0.30181326788806473px 0.30181326788806473px -1.25px rgba(0, 0, 0, 0.03), 0px 2.5px 2.5px -2.5px rgba(0, 0, 0, 0.03), 0px 0.24145061431045178px 0.19316049144836145px -0.625px rgba(61, 61, 61, 0.02), 0px 2px 1.6px -1.25px rgba(61, 61, 61, 0.04), 0px 0.5px 0.5px 0px rgba(0, 0, 0, 0.05), 0px 0.3010936508871964px 0.2709842857984768px -0.3333333333333333px rgba(0, 0, 0, 0.01), 0px 1.1442666516217286px 1.0298399864595558px -0.6666666666666666px rgba(0, 0, 0, 0.02), 0px 5px 4.5px -1px rgba(0, 0, 0, 0.04); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; overflow: visible; padding: 5px 7px 5px 7px; position: relative; width: min-content; }\",\".framer-0Usqp .framer-15yisfz { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={PmjeUfwxK:\"(max-width: 809.98px)\",qX01mUKmQ:\"(min-width: 1426px)\",wx1tFVYTy:\"(min-width: 1200px) and (max-width: 1425.98px)\",XwadJE8Dx:\"(min-width: 810px) and (max-width: 1199.98px)\"};const humanReadableVariantMap={\"Desktop S\":\"wx1tFVYTy\",Desktop:\"qX01mUKmQ\",Phone:\"PmjeUfwxK\",Tablet:\"XwadJE8Dx\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({bgPatternVisible,height,id,interactiveGridVisibility,loaderAppearVisibility,loaderCenterVisibility,menuVisible,text,width,...props})=>{return{...props,BuNE6lOHt:loaderAppearVisibility??props.BuNE6lOHt??true,bVfAyvuEo:bgPatternVisible??props.bVfAyvuEo??true,EEMrKb_Ln:interactiveGridVisibility??props.EEMrKb_Ln??false,KjwQs7k9H:menuVisible??props.KjwQs7k9H??true,pyNEibYdN:loaderCenterVisibility??props.pyNEibYdN??true,ujUaPYjO7:text??props.ujUaPYjO7??\"LUIS ACCORSI\",variant:humanReadableVariantMap[props.variant]??props.variant??\"qX01mUKmQ\"};};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{style,className,layoutId,variant,bVfAyvuEo,ujUaPYjO7,EEMrKb_Ln,KjwQs7k9H,BuNE6lOHt,pyNEibYdN,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"qX01mUKmQ\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: rgb(238, 240, 241); } @media (min-width: 1200px) and (max-width: 1425.98px) { :root body { background: rgb(237, 237, 237); } } @media (min-width: 810px) and (max-width: 1199.98px) { :root body { background: rgb(227, 227, 227); } }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-18b4s1w\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1l79hn1-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,isModuleExternal:true,layoutScroll:true,nodeId:\"nbtUy4lep\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(Noise,{blendMode:\"screen\",borderRadius:0,height:\"100%\",id:\"nbtUy4lep\",layoutId:\"nbtUy4lep\",patternAlpha:12,patternSize:100,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-58u6tz-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,nodeId:\"ppNiEiEtV\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorTrail,{alwaysShowHover:false,blendMode:\"normal\",brushOpacity:.85,brushSmoothing:20,brushWidth:12,colorShiftHue:360,colorShiftSpeed:.2,colorToggleSelector:\"#color-toggle\",cursorColor:\"rgb(0, 0, 0)\",cursorDamping:60,cursorDelay:0,cursorEasing:1,cursorMass:.5,cursorOffsetX:0,cursorOffsetY:0,cursorOpacity:.8,cursorSize:4,cursorStiffness:160,cursorToggleSelector:\"#cursor-toggle\",defaultShape:\"circle\",defaultText:\"\",enableColorShift:true,enableParticleBurst:false,font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"11px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.02em\",lineHeight:\"150%\",textAlign:\"center\"},height:\"100%\",hoverDuration:.8,hoverEasing:\"circInOut\",hoverStates:[{id:\"default-item-0\",scale:1.1,selector:\"#menu-icon\",shape:\"square\",text:\"MENU\"},{id:\"kVFzgnerB\",scale:1,selector:\"#stamp-me\",shape:\"square\",text:\"DRAG ME\"},{id:\"hqqz0jvyc\",scale:1,selector:\"#playreel\",shape:\"circle\",text:\"PLAY REEL\"},{id:\"Ypt4xF2bm\",scale:1,selector:\"#bookacall\",shape:\"square\",text:\"LET'S CHAT\"},{id:\"MEFHypr43\",scale:1,selector:\"#workwithme\",shape:\"circle\",text:\"LET'S BUILD\"},{id:\"ZegUxfSa8\",scale:1,selector:\".hover-element\",shape:\"circle\",text:\"CLICK\"},{id:\"fU0UgHZsA\",scale:1,selector:\"#stamp-fast\",shape:\"circle\",text:\"DRAG ME\"},{id:\"l5LgfCPwZ\",scale:1,selector:\"#stamp-150\",shape:\"circle\",text:\"DRAG ME\"},{id:\"h_5eASA2Q\",scale:1,selector:\"#flipcard\",shape:\"circle\",text:\"DRAG/ CLICK\"},{id:\"ybkG3c0zd\",scale:1,selector:\"#menu\",shape:\"circle\",text:\"COMING SOON\"},{id:\"obgLv8u3P\",scale:1,selector:\"#brand-ticker\",shape:\"circle\",text:\"DRAG ME\"}],id:\"ppNiEiEtV\",labelDamping:100,labelEasing:1,labelMass:1,labelOffsetX:0,labelOffsetY:-15,labelStiffness:200,layoutId:\"ppNiEiEtV\",maxTrailPoints:1e3,particleColor:\"rgba(0, 0, 0, 0.5)\",particleCount:100,particleLife:1e3,particleSize:1,particleSpeed:15,particlesToggleSelector:\"#particles-toggle\",pencilOpacity:.7,pencilSmoothing:1,pencilTexture:2,pencilWidth:.5,penColor:\"rgb(0, 0, 0)\",penOpacity:1,penSmoothing:4,penWidth:1.8,showArrowCursor:true,showCursorCircle:false,showTrail:true,style:{height:\"100%\",width:\"100%\"},syncCursorToggleSelector:\"#sync-cursor-toggle\",syncCursorWithTrail:true,textColor:\"rgb(255, 255, 255)\",textPadding:5,trailClearSelector:\"#trail-clear\",trailColor:\"rgb(28, 28, 28)\",trailColorPreset:\"Custom\",trailColorToggleSelector:\"#trail-color-toggle\",trailDuration:500,trailLifeToggleSelector:\"#trail-life-toggle\",trailOpacity:.9,trailSmoothing:2,trailToggleSelector:\"#trail-toggle\",trailTypeToggleSelector:\"#trail-type-toggle\",trailWidth:.7,userTrailStyle:\"pencil\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-q9ujz5-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"HkRx8loTi\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(OverscrollBehavior,{enabled:true,height:\"100%\",id:\"HkRx8loTi\",layoutId:\"HkRx8loTi\",width:\"100%\"})})}),KjwQs7k9H!==false&&/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{PmjeUfwxK:{y:29}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:401,y:40,children:/*#__PURE__*/_jsx(Container,{className:\"framer-la3yiq-container\",layoutScroll:true,nodeId:\"UpSMNOrx6\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(NavbarClean,{height:\"100%\",id:\"UpSMNOrx6\",layoutId:\"UpSMNOrx6\",variant:matchVariant(\"FcnGpHQwM\"),width:\"100%\"})})})}),BuNE6lOHt!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{PmjeUfwxK:{\"data-framer-layout-hint-center-x\":undefined}},children:/*#__PURE__*/_jsx(Container,{className:\"framer-omt5xa-container\",\"data-framer-layout-hint-center-x\":true,\"data-framer-name\":\"GeistPixelScanAppear\",isAuthoredByUser:true,name:\"GeistPixelScanAppear\",nodeId:\"wNAv_4xoE\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{PmjeUfwxK:{cellSize:6,delay:.3,fontSize:240,lineHeight:.9,matchApp:false,style:{height:\"100%\",maxWidth:\"100%\",width:\"100%\"}},wx1tFVYTy:{matchApp:false},XwadJE8Dx:{matchApp:false}},children:/*#__PURE__*/_jsx(GeistPixelScan,{autoHide:false,background:false,backgroundColor:\"rgb(248, 248, 244)\",cellSize:7.5,completeEventName:\"framer:loader-complete\",debug:false,delay:.5,duration:3,emitCompleteEvent:false,fadeDuration:.4,fontSize:184,headingTag:\"h1\",height:\"100%\",holdDuration:.5,id:\"wNAv_4xoE\",introDelay:.25,introDuration:1.4,introEasing:\"easeInOut\",introMotion:true,introStartPercent:50,layoutId:\"wNAv_4xoE\",letterSpacing:1,lineHeight:.97,loop:false,matchApp:true,maxFps:60,name:\"GeistPixelScanAppear\",preset:\"Design\",quality:1,randomPresets:[\"Design\",\"classic-scan\",\"matrix-rain\",\"magnetic-assembly\",\"crt-power-on\"],randomSeed:\"\",sessionKey:\"framer:loader-shown\",showOnce:false,style:{maxWidth:\"100%\",width:\"100%\"},text:ujUaPYjO7,unmountOnHide:true,width:\"100%\"})})})})}),pyNEibYdN!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{PmjeUfwxK:{\"data-framer-layout-hint-center-x\":undefined,\"data-framer-layout-hint-center-y\":undefined}},children:/*#__PURE__*/_jsx(Container,{className:\"framer-1fblyum-container\",\"data-framer-layout-hint-center-x\":true,\"data-framer-layout-hint-center-y\":true,\"data-framer-name\":\"GeistPixelScanCenter\",isAuthoredByUser:true,name:\"GeistPixelScanCenter\",nodeId:\"rXUs4xc2d\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{PmjeUfwxK:{cellSize:6,delay:.3,fontSize:240,lineHeight:.9,style:{height:\"100%\",maxWidth:\"100%\",width:\"100%\"}}},children:/*#__PURE__*/_jsx(GeistPixelScan,{autoHide:false,background:false,backgroundColor:\"rgb(248, 248, 244)\",cellSize:7.5,completeEventName:\"framer:loader-complete\",debug:false,delay:.5,duration:3,emitCompleteEvent:false,fadeDuration:.4,fontSize:184,headingTag:\"h1\",height:\"100%\",holdDuration:.5,id:\"rXUs4xc2d\",introDelay:.25,introDuration:1.4,introEasing:\"easeInOut\",introMotion:false,introStartPercent:0,layoutId:\"rXUs4xc2d\",letterSpacing:1,lineHeight:.97,loop:false,matchApp:true,maxFps:60,name:\"GeistPixelScanCenter\",preset:\"Design\",quality:1,randomPresets:[\"Design\",\"classic-scan\",\"matrix-rain\",\"magnetic-assembly\",\"crt-power-on\"],randomSeed:\"\",sessionKey:\"framer:loader-shown\",showOnce:false,style:{maxWidth:\"100%\",width:\"100%\"},text:ujUaPYjO7,unmountOnHide:true,width:\"100%\"})})})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-18vjydi\"}),bVfAyvuEo!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1t1hqdm-container\",isAuthoredByUser:true,isModuleExternal:true,layoutScroll:true,nodeId:\"YXck_wqef\",scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(BackgroundPattern,{backgroundColor:\"rgba(0, 0, 0, 0)\",dotSize:.7,fade:false,fadeIntensity:90,fadeShape:\"circle\",gap:10,height:\"100%\",id:\"YXck_wqef\",layoutId:\"YXck_wqef\",patternColor:\"rgb(196, 196, 196)\",patternOpacity:1,patternSize:150,patternType:\"dots\",strokeWidth:1,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),EEMrKb_Ln!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-4brcu3-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,layoutScroll:true,nodeId:\"C4NTpIGGG\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(InteractiveDotGridWithDynamicViewportHeight4brcu3,{animationSpeed:1,backgroundColor:\"rgba(0, 0, 0, 0)\",distortionMode:\"organized\",distortionRadius:300,distortionStrength:200,dotColor:\"rgba(179, 179, 179, 0.4)\",dotSize:.7,dotSpacing:10,easingFunction:\"bounce\",enableMobileTouch:true,falloffCurve:\"smooth\",height:\"100%\",id:\"C4NTpIGGG\",layoutId:\"C4NTpIGGG\",lineColor:\"rgb(255, 255, 255)\",lineWidth:1,perspectiveDepth:50,perspectiveRotationX:.858407346410207,perspectiveStrength:1,repelAcceleration:1,repelCircleExpansion:2,repelElasticity:.5,repelFriction:.83,repelGradientSmoothness:1,repelInterpolation:\"spring\",repelIntroDelay:2e3,repelMaxVelocity:6,repelSmoothness:.5,repelSpringDamping:.99,repelSpringStiffness:.44,repelVelocityDamping:.99,returnSpeed:.1,rotationEffect:0,scaleEffect:.1,scrollReplay:true,scrollThreshold:500,showContourLines:false,style:{height:\"100%\",width:\"100%\"},terrainAnimationSpeed:3e-4,terrainHeight:200,terrainNoiseScale:.01,terrainPeaks:3,terrainRoughness:.5,transitionDelay:1e3,transitionDuration:3300,transitionTrigger:\"scroll\",viewMode:\"flat\",waveEffect:20,width:\"100%\"})})}),/*#__PURE__*/_jsxs(MotionDivWithMobileTapMenub3ttvm,{className:\"framer-b3ttvm\",\"data-framer-name\":\"Cursor menu\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1x35orv\",\"data-framer-name\":\"controls\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1rals27-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,nodeId:\"weBWP7S7x\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(SoundToggle,{activeColor:\"rgba(0, 0, 0, 0)\",activeHoverBackgroundColor:\"rgba(0, 0, 0, 0)\",activeHoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",activeTextColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",backgroundColor:\"rgba(237, 237, 237, 0)\",borderRadius:0,defaultEnabled:true,disabledLabel:\"OFF\",enabledLabel:\"ON\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hoverBackgroundColor:\"rgba(222, 222, 222, 0)\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",iconGap:8,iconPosition:\"left\",iconType:\"phosphor\",id:\"weBWP7S7x\",label:\"SOUND EFFECTS\",layoutId:\"weBWP7S7x\",paddingBottom:6,paddingLeft:0,paddingRight:0,paddingTop:6,phosphorIconDisabled:[],phosphorIconEnabled:[],showIcon:false,stateColor:\"rgb(0, 0, 0)\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-5iihox-container\",isAuthoredByUser:true,nodeId:\"bBsNiTr9j\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:1,elementId:\"cursor-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"bBsNiTr9j\",label:\"Following cursor\",layoutId:\"bBsNiTr9j\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"ON,OFF\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95)\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-yr0kli-container\",isAuthoredByUser:true,nodeId:\"n1ivQUB8X\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:0,elementId:\"sync-cursor-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"n1ivQUB8X\",label:\"Cursor sync\",layoutId:\"n1ivQUB8X\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"ON,OFF\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-18spk0m-container\",isAuthoredByUser:true,nodeId:\"PgytnoPq3\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:0,elementId:\"trail-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"PgytnoPq3\",label:\"Cursor Trail\",layoutId:\"PgytnoPq3\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"ON,OFF\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-80fm25-container\",isAuthoredByUser:true,nodeId:\"Sa6x8wSM_\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:0,elementId:\"trail-type-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"Sa6x8wSM_\",label:\"Trail type\",layoutId:\"Sa6x8wSM_\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"PENCIL,PEN,BRUSH\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1ub7j9e-container\",isAuthoredByUser:true,nodeId:\"awl4NZqTP\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:0,elementId:\"trail-life-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"awl4NZqTP\",label:\"Trail life\",layoutId:\"awl4NZqTP\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"SHORT,MEDIUM,INFINITE\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-13hoa74-container\",isAuthoredByUser:true,nodeId:\"tbHuJBdK_\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuColorButton,{closedDotGap:3,closedDotOffsetY:-.5,colors:\"Black:#0A0A0A,Charcoal:#4D4D4D,Graphite:#7A7A7A,Light Gray:#C2C2C2,Red:#FF000D,Blue:#1E3A8A,Yellow:#FFE733\",columnGap:10,defaultIndex:2,dividerColor:\"rgba(0, 0, 0, 0.15)\",dotShadow:\"0px 0.5px 0px rgba(255,255,255,0.6)\",dotSize:8,elementId:\"trail-color-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.02em\",lineHeight:\"1em\"},height:\"100%\",hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",id:\"tbHuJBdK_\",label:\"TRAIL COLOR\",layoutId:\"tbHuJBdK_\",optionFont:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.02em\",lineHeight:\"1em\"},optionGap:10,paddingBottom:6,paddingTop:6,panelBackgroundColor:\"rgb(255, 255, 255)\",panelBorderRadius:4,panelMinWidth:0,panelOffsetX:0,panelOffsetY:0,panelPaddingX:10,panelPaddingY:10,panelShadow:\"0px 2px 12px rgba(0,0,0,0.08)\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-yj499w-container\",isAuthoredByUser:true,nodeId:\"rRZSGT9oW\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:1,elementId:\"color-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"rRZSGT9oW\",label:\"Color shift\",layoutId:\"rRZSGT9oW\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"ON,OFF\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1wvlml-container\",\"data-framer-name\":\"clear trail\",isAuthoredByUser:true,name:\"clear trail\",nodeId:\"OdkTNd7vb\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButton,{defaultIndex:0,elementId:\"trail-clear\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:true,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"OdkTNd7vb\",label:\"Clear Trail\",layoutId:\"OdkTNd7vb\",name:\"clear trail\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1f2jnh0-container\",isAuthoredByUser:true,nodeId:\"IvGwcCk1k\",rendersWithMotion:true,scopeId:\"hIm7E8vu4\",children:/*#__PURE__*/_jsx(CursorMenuButtonWithGridToggle1f2jnh0,{defaultIndex:0,elementId:\"grid-toggle\",font:{fontFamily:'\"Paper Mono Regular\", \"Paper Mono Regular Placeholder\", monospace',fontSize:\"9px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0.03em\",lineHeight:\"1em\"},height:\"100%\",hideState:false,hoverBackgroundColor:\"rgba(0, 0, 0, 0)\",hoverStateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",hoverTextColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",id:\"IvGwcCk1k\",label:\"Show Grid\",layoutId:\"IvGwcCk1k\",paddingBottom:6,paddingTop:6,stateColor:\"var(--token-4f60d97c-683f-4a2e-8fae-b5f2257039b4, rgba(0, 0, 0, 0.9))\",states:\"OFF,ON\",textColor:\"var(--token-225733d1-86f7-4fda-823a-3b62da352d95, rgba(0, 0, 0, 0.5))\",textShadow:\"0px 0.5px 0px rgba(255,255,255,0.8)\",width:\"100%\"})})})]}),/*#__PURE__*/_jsx(MotionDivWithMenuTriggerascu5m,{className:\"framer-ascu5m\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QgTW9uby0zMDA=\",\"--framer-font-family\":'\"Geist Mono\", \"Geist Mono Placeholder\", monospace',\"--framer-font-size\":\"9px\",\"--framer-font-weight\":\"300\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--token-208c73a4-0c47-46bf-80e5-6e1cfcaaa359, rgba(0, 0, 0, 0.7))\",\"--framer-text-transform\":\"uppercase\"},children:\"SETTINGS\"})}),className:\"framer-15yisfz\",fonts:[\"GF;Geist Mono-300\"],verticalAlignment:\"top\",withExternalLayout:true})})]})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=selectors[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 800\n * @framerIntrinsicWidth 1426\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"PmjeUfwxK\":{\"layout\":[\"fixed\",\"fixed\"]},\"wx1tFVYTy\":{\"layout\":[\"fixed\",\"fixed\"]},\"XwadJE8Dx\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"bVfAyvuEo\":\"bgPatternVisible\",\"ujUaPYjO7\":\"text\",\"EEMrKb_Ln\":\"interactiveGridVisibility\",\"KjwQs7k9H\":\"menuVisible\",\"BuNE6lOHt\":\"loaderAppearVisibility\",\"pyNEibYdN\":\"loaderCenterVisibility\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"qX01mUKmQ\":[\".framer-58u6tz-container\",\".framer-q9ujz5-container\",\".framer-la3yiq-container\",\".framer-omt5xa-container\",\".framer-1fblyum-container\",\".framer-4brcu3-container\",\".framer-b3ttvm\"],\"PmjeUfwxK\":[\".framer-58u6tz-container\",\".framer-q9ujz5-container\",\".framer-la3yiq-container\",\".framer-omt5xa-container\",\".framer-1fblyum-container\",\".framer-4brcu3-container\",\".framer-b3ttvm\"],\"wx1tFVYTy\":[\".framer-58u6tz-container\",\".framer-q9ujz5-container\",\".framer-la3yiq-container\",\".framer-omt5xa-container\",\".framer-1fblyum-container\",\".framer-4brcu3-container\",\".framer-b3ttvm\"],\"XwadJE8Dx\":[\".framer-58u6tz-container\",\".framer-q9ujz5-container\",\".framer-la3yiq-container\",\".framer-omt5xa-container\",\".framer-1fblyum-container\",\".framer-4brcu3-container\",\".framer-b3ttvm\"]}\n * @framerBreakpoints {\"qX01mUKmQ\":{\"min\":1426,\"canvasClassName\":\"framer-18b4s1w-override\",\"minHeight\":800,\"name\":\"Desktop\",\"width\":1426,\"rootFontSize\":16},\"wx1tFVYTy\":{\"min\":1200,\"max\":1425,\"canvasClassName\":\"framer-1fqvb5s-override\",\"minHeight\":800,\"viewportHeight\":847,\"name\":\"Desktop S\",\"width\":1200,\"rootFontSize\":16},\"XwadJE8Dx\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-92isz1-override\",\"minHeight\":1190,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"PmjeUfwxK\":{\"max\":809,\"canvasClassName\":\"framer-8xgu8g-override\",\"minHeight\":700,\"viewportHeight\":701,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant qX01mUKmQ\n * @framerLayoutTemplate true\n */const FramerhIm7E8vu4=withCSS(Component,css,\"framer-0Usqp\");export default FramerhIm7E8vu4;FramerhIm7E8vu4.displayName=\"menuFixed\";FramerhIm7E8vu4.defaultProps={height:800,width:1426};addPropertyControls(FramerhIm7E8vu4,{bVfAyvuEo:{defaultValue:true,title:\"BgPatternVisible\",type:ControlType.Boolean},ujUaPYjO7:{defaultValue:\"LUIS ACCORSI\",displayTextArea:true,placeholder:\"One line per row (up to 4)\",title:\"Text\",type:ControlType.String},EEMrKb_Ln:{defaultValue:false,title:\"InteractiveGridVisibility\",type:ControlType.Boolean},KjwQs7k9H:{defaultValue:true,title:\"MenuVisible\",type:ControlType.Boolean},BuNE6lOHt:{defaultValue:true,title:\"LoaderAppearVisibility\",type:ControlType.Boolean},pyNEibYdN:{defaultValue:true,title:\"LoaderCenterVisibility\",type:ControlType.Boolean}});addFonts(FramerhIm7E8vu4,[{explicitInter:true,fonts:[{cssFamilyName:\"Paper Mono Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Paper Mono\",url:\"https://framerusercontent.com/assets/KULdhteIf462UajwmB77XQFOFuw.woff2\",weight:\"400\"},{cssFamilyName:\"Geist Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist Mono\",url:\"https://fonts.gstatic.com/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeFjKJ5W7ihaO_CS.woff2\",weight:\"300\"}]},...NoiseFonts,...CursorTrailFonts,...OverscrollBehaviorFonts,...NavbarCleanFonts,...GeistPixelScanFonts,...BackgroundPatternFonts,...InteractiveDotGridFonts,...SoundToggleFonts,...CursorMenuButtonFonts,...CursorMenuColorButtonFonts],{supportsExplicitInterCodegen:true});FramerhIm7E8vu4.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(NavbarClean,{},context),()=>forwardLoader(Phosphor,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerhIm7E8vu4\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"PmjeUfwxK\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"wx1tFVYTy\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"XwadJE8Dx\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerBreakpoints\":\"{\\\"qX01mUKmQ\\\":{\\\"min\\\":1426,\\\"canvasClassName\\\":\\\"framer-18b4s1w-override\\\",\\\"minHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1426,\\\"rootFontSize\\\":16},\\\"wx1tFVYTy\\\":{\\\"min\\\":1200,\\\"max\\\":1425,\\\"canvasClassName\\\":\\\"framer-1fqvb5s-override\\\",\\\"minHeight\\\":800,\\\"viewportHeight\\\":847,\\\"name\\\":\\\"Desktop S\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"XwadJE8Dx\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-92isz1-override\\\",\\\"minHeight\\\":1190,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"PmjeUfwxK\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-8xgu8g-override\\\",\\\"minHeight\\\":700,\\\"viewportHeight\\\":701,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerVariables\":\"{\\\"bVfAyvuEo\\\":\\\"bgPatternVisible\\\",\\\"ujUaPYjO7\\\":\\\"text\\\",\\\"EEMrKb_Ln\\\":\\\"interactiveGridVisibility\\\",\\\"KjwQs7k9H\\\":\\\"menuVisible\\\",\\\"BuNE6lOHt\\\":\\\"loaderAppearVisibility\\\",\\\"pyNEibYdN\\\":\\\"loaderCenterVisibility\\\"}\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerHitTargets\":\"{\\\"qX01mUKmQ\\\":[\\\".framer-58u6tz-container\\\",\\\".framer-q9ujz5-container\\\",\\\".framer-la3yiq-container\\\",\\\".framer-omt5xa-container\\\",\\\".framer-1fblyum-container\\\",\\\".framer-4brcu3-container\\\",\\\".framer-b3ttvm\\\"],\\\"PmjeUfwxK\\\":[\\\".framer-58u6tz-container\\\",\\\".framer-q9ujz5-container\\\",\\\".framer-la3yiq-container\\\",\\\".framer-omt5xa-container\\\",\\\".framer-1fblyum-container\\\",\\\".framer-4brcu3-container\\\",\\\".framer-b3ttvm\\\"],\\\"wx1tFVYTy\\\":[\\\".framer-58u6tz-container\\\",\\\".framer-q9ujz5-container\\\",\\\".framer-la3yiq-container\\\",\\\".framer-omt5xa-container\\\",\\\".framer-1fblyum-container\\\",\\\".framer-4brcu3-container\\\",\\\".framer-b3ttvm\\\"],\\\"XwadJE8Dx\\\":[\\\".framer-58u6tz-container\\\",\\\".framer-q9ujz5-container\\\",\\\".framer-la3yiq-container\\\",\\\".framer-omt5xa-container\\\",\\\".framer-1fblyum-container\\\",\\\".framer-4brcu3-container\\\",\\\".framer-b3ttvm\\\"]}\",\"framerLayoutTemplate\":\"true\",\"framerIntrinsicHeight\":\"800\",\"framerDefaultVariant\":\"qX01mUKmQ\",\"framerIntrinsicWidth\":\"1426\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport MenuFixed from \"https://framerusercontent.com/modules/UFD48b9o7XLvsqu4Luz7/Ll3SeNN3mh0dZGd93BVx/hIm7E8vu4.js\";\r\n\r\n\t\tconst routes = {w8oKK59vI: {elements: {aLwBeFlwz: \"cursor-toggle\", bwEqCXlOF: \"cursor-controls\", FtTX8Va4p: \"bookacall\", FxzUWGeBO: \"trail-toggle\", IOR8Uu_yP: \"trail-life-toggle\", jZRt9Evgd: \"trail-clear\", KQOuLPi9l: \"overlay-bg\", L0bqeMP0m: \"stamp-me\", LND9K4Lf3: \"sync-cursor-toggle\", mltfPL_5Z: \"stamp-fast\", N5a8FFl7G: \"color-toggle\", OHckk4VMc: \"playreel\", PyWZ9_aUz: \"particles-toggle\", uSPHTPZ42: \"reel\", vk8wGqbYQ: \"stamp-150\", xDHCDjiyH: \"trail-type-toggle\", zeW5r3kR1: \"workwithme\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/X0p31LDCKarVS6tYUIQ0/hot4OsnGeVDuebLAu0mT/w8oKK59vI.js\")), path: \"/\"}, Oz6RQ07jv: {elements: {cThiAs4SU: \"brand-ticker\", LoDTxVYAy: \"flipcard\", oF6GP6Kbb: \"workwithme\", RUDfUY6Hl: \"stamp-me\", TaV9c3K1a: \"navbar\", vaoya59tE: \"bookacall\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ZRkpKzMjq5zDOZ5DlmcS/R4O6sbLkucOCQRbxjGlZ/Oz6RQ07jv.js\")), path: \"/home-v2\"}, gTzSiJltF: {elements: {Bb6XYKELJ: \"slide-02\", Ccyxf7L9o: \"slide-03\", D32WmOUgs: \"brand-ticker\", ElltHW0M3: \"stamp-fast\", Ny22ctLbc: \"slide-01\", Pa8wB2VKF: \"slide-04\", PCWBQi_Ld: \"stamp-150\", txPSiV1i9: \"slide-05\", XfusYylxW: \"bookacall\", ZizL_9cg8: \"brand-ticker-1\", zk3GLE48g: \"workwithme\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/O1EJ1DRprgo8DgJdJvmQ/VENhzwMOYqoNptapBRPk/gTzSiJltF.js\")), path: \"/about\"}, fuoiX2tSg: {elements: {AyvvKhVLw: \"bookacall\", bxg1vpK9x: \"workwithme\", fVsmhLpuw: \"stamp-fast\", ml8YT0Rl7: \"stamp-150\", REbnFn0sA: \"brand-ticker\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/zwOczONqWQQ9MNnizgH3/MrFXVffLLjJKMk6QdUtc/fuoiX2tSg.js\")), path: \"/services\"}, xXm_1F5qO: {elements: {BhlaRwDNx: \"bookacall\", UZEEsS6qb: \"stamp-me\", Ypupmgyzn: \"workwithme\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/4MHJZKgJAAV1CW3W1Q5m/NNjGr5qNDO1AOP49NVSL/xXm_1F5qO.js\")), path: \"/thank-you\"}, oukGfwNaK: {elements: {BHYHWBYGA: \"spacer-02\", cTyQJVlbp: \"stickers\", l2oKUWSD9: \"start\", mdzFFmLWV: \"works\", NAOQ1C10Q: \"hire-me\", OQuMp8lio: \"brief-story\", Q2J7txyG3: \"about\", xCRrpE_ZY: \"spacer-02-1\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/IxGUWuqBpmrgQeVHUKuX/XwbYVwSwqtysRqhSR1hg/oukGfwNaK.js\")), path: \"/2k24\"}, xu1evGQSA: {elements: {CwloShtyf: \"flipcard\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AqUBaP7MQ7Icw09gS8Gi/f3IMYdXYtJ2FVE5AyW9M/xu1evGQSA.js\")), path: \"/works-2\"}, gBLt9Xx7b: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/EBEQzO8TO9M0DvF2I7l2/p396XcO6vW3uI7fIbaTD/gBLt9Xx7b.js\")), path: \"/labs\"}, fB4WVPWzQ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/u8U3fGZnMSi7jQ8XcF08/TaUgbLVD0MwdGwbMRqSR/fB4WVPWzQ.js\")), path: \"/labs/cancel-button\"}, h2DaOujPX: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/SKkjQS0iP4GwIHBRwOjQ/YXFfxwZFmdcaTEKhHQPR/h2DaOujPX.js\")), path: \"/labs/aura-button\"}, Mt8Cw3jgX: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/DAPE1hUrz5Vb7qsBamyy/ZSSML1qz6RddVCM6C7mW/Mt8Cw3jgX.js\")), path: \"/labs/blinds-button\"}, YR7BmQfrn: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/oXxfeQLZ5TZZkeiCvT2c/LfefA0NxXIS9ndyIXMQV/YR7BmQfrn.js\")), path: \"/labs/play-button\"}, c0Etv7lbj: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/XblDdomUEqyc9MdEk1vI/Tv2cspHXXVFB9lRsWcKF/c0Etv7lbj.js\")), path: \"/labs/aqua-button\"}, MquRo5mur: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/0FYf66RsVs7lkUUdLT73/dkUlIWXMbJYZJzhhYOv9/MquRo5mur.js\")), path: \"/labs/light-button\"}, EFc7I3Cvm: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/JGE9gsmIs2wp5UI9QRo1/XsyEfimuJFO3abl4KH9f/EFc7I3Cvm.js\")), path: \"/labs/crazy-input\"}, F23R4vKFv: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/00KZ7nxbGlxFuxn2xfOP/5R7NAXdYpkbr49vYqcsO/F23R4vKFv.js\")), path: \"/acmelytics\"}, CSXXcyqkC: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/I6uBqgb0E3Muraw0qRFU/QIvPa0ip1mWIhq6YeE8a/CSXXcyqkC.js\")), path: \"/acmelytics-2\"}, D6ufkcHnW: {elements: {dB7w7bRYH: \"stamp-fast\", XkF9WOdvl: \"stamp-150\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/mHUmjDw3pYhtDJnBgruY/odl4Nwh8Nx4mx6UQSiPZ/D6ufkcHnW.js\")), path: \"/contact\"}, vSP157eM0: {elements: {i0tVQthTU: \"flipcard\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/cL4QV8X5WPghoaoey9sk/Hkio8uzUtCuQd6USOPox/vSP157eM0.js\")), path: \"/404\"}, QztUQf9Mk: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/gw32MMyxr83a0289ERpJ/gaST740YLt9HNfcBwtXP/QztUQf9Mk.js\")), path: \"/case-layout-example\"}, aaRwN7QSt: {collectionId: \"RUnyeiFSz\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/78qhx23a2Zix8GPmWoDQ/Cey6MvKGdogF8Hmb2ErV/aaRwN7QSt.js\")), path: \"/works/:PBeSeW6zx\"}, RxzINLHwP: {page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Fl8TldA0b2eKGI3EIh0D/LV2gaSs2wV7xMR6cF6tS/RxzINLHwP.js\"))}, W1RYTdlhZ: {page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/OfsO260mo3NRV05ot7Fc/BNvitmLxZDqfCQQWjbCK/W1RYTdlhZ.js\"))}, Gnvio0gMq: {page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/dzMQqt4Q8YCQOPAY5EdK/IJKdxX2thoqdDuOG9bkA/Gnvio0gMq.js\"))}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {RUnyeiFSz: async () => (await import(\"https://framerusercontent.com/modules/AS0kduVgKmsWRlVHEdm2/spAV8gKhbwVUC23nGXBY/RUnyeiFSz.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"6e39e7381b00ad4837d7276c1b83bee1d896a17889d4072ae21ccb8f6328e477\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const props1 = {BuNE6lOHt: false, bVfAyvuEo: true, EEMrKb_Ln: false, KjwQs7k9H: false, pyNEibYdN: true, ujUaPYjO7: \"HI THERE, I'M\\nLUIS ACCORSI\"}\r\nconst props2 = {...props1, BuNE6lOHt: true, KjwQs7k9H: true, pyNEibYdN: false, ujUaPYjO7: \"ABOUT ME\"}\r\nconst props3 = {...props1, BuNE6lOHt: true, KjwQs7k9H: true, pyNEibYdN: false, ujUaPYjO7: \"SERVICES\"}\r\nconst props4 = {...props1, BuNE6lOHt: true, KjwQs7k9H: true, pyNEibYdN: false, ujUaPYjO7: \"WORKS\"}\r\nconst props5 = {...props1, BuNE6lOHt: true, bVfAyvuEo: false, EEMrKb_Ln: true, KjwQs7k9H: true, ujUaPYjO7: \"LABS\"}\r\nconst props6 = {...props1, BuNE6lOHt: true, KjwQs7k9H: true, pyNEibYdN: false, ujUaPYjO7: \"CONTACT\"}\r\nconst props7 = {...props1, BuNE6lOHt: true, KjwQs7k9H: true, ujUaPYjO7: \"LUIS ACCORSI\"}\r\nconst props8 = {...props1, KjwQs7k9H: true, pyNEibYdN: false, ujUaPYjO7: \"LUIS ACCORSI\"}\r\nconst templateProps = {aaRwN7QSt: props8, D6ufkcHnW: props6, fuoiX2tSg: props3, gBLt9Xx7b: props5, gTzSiJltF: props2, Oz6RQ07jv: props1, vSP157eM0: props7, xu1evGQSA: props4}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"Oz6RQ07jv\":\r\ncase \"gTzSiJltF\":\r\ncase \"fuoiX2tSg\":\r\ncase \"xu1evGQSA\":\r\ncase \"gBLt9Xx7b\":\r\ncase \"D6ufkcHnW\":\r\ncase \"vSP157eM0\":\r\ncase \"aaRwN7QSt\":\r\nreturn React.createElement(MenuFixed, {...props, key: \"MenuFixed\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"Oz6RQ07jv\":\r\ncase \"gTzSiJltF\":\r\ncase \"fuoiX2tSg\":\r\ncase \"xu1evGQSA\":\r\ncase \"gBLt9Xx7b\":\r\ncase \"D6ufkcHnW\":\r\ncase \"vSP157eM0\":\r\ncase \"aaRwN7QSt\":\r\nreturn [{hash: \"18b4s1w\", mediaQuery: \"(min-width: 1426px)\"}, {hash: \"1fqvb5s\", mediaQuery: \"(min-width: 1200px) and (max-width: 1425.98px)\"}, {hash: \"92isz1\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"8xgu8g\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/cL4QV8X5WPghoaoey9sk/Hkio8uzUtCuQd6USOPox/vSP157eM0.js\")),\r\n\t\t\t\t\tisReducedMotion: true,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://www.accorsi.cc\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: false,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/8c1E0HFbwiiwtPwobouB/rtWvY0ZL0zgqwp8Eaptn/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\tconst effect = {enter: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 1.6, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"100%\"}, exit: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 1.6, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"-100%\"}}\r\nconst effect1 = {enter: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 1.6, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0%\", y: \"100%\"}, exit: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 1.6, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0%\", y: \"-100%\"}}\r\nconst effect2 = {enter: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {bounce: 0.2, damping: 30, delay: 0.1, duration: 1.6, durationBasedSpring: true, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0%\", y: \"-100%\"}, exit: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {bounce: 0.2, damping: 30, delay: 0.1, duration: 1.6, durationBasedSpring: true, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0%\", y: \"100%\"}}\r\nconst effect3 = {enter: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 1.6, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"-100%\"}, exit: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 1.6, ease: [0.7, 0, 0.43, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"100%\"}}\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {D6ufkcHnW: {fuoiX2tSg: effect1, gTzSiJltF: effect1, Oz6RQ07jv: effect3, xu1evGQSA: effect1}, fuoiX2tSg: {D6ufkcHnW: effect1, gTzSiJltF: effect1, Oz6RQ07jv: effect3, xu1evGQSA: effect1}, gTzSiJltF: {D6ufkcHnW: effect1, fuoiX2tSg: effect1, Oz6RQ07jv: effect2, xu1evGQSA: effect1}, Oz6RQ07jv: {D6ufkcHnW: effect, fuoiX2tSg: effect, gTzSiJltF: effect, xu1evGQSA: effect}, xu1evGQSA: {D6ufkcHnW: effect1, fuoiX2tSg: effect1, gTzSiJltF: effect1, Oz6RQ07jv: effect3}}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}