{"version":3,"file":"NulS67Ho8.DLfdcsmj.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","shaderConfig"],"sources":["https:/framerusercontent.com/modules/F3AbHG8IzbjCyYsGLzGh/ExkzTTLdF12yGifVNaSP/Chromatic.js","https:/framerusercontent.com/modules/DW6BmQNMlXfgIF2RZ30k/GbMKOi88n4LXXQsZM5JO/NulS67Ho8.js"],"sourcesContent":["import{defineShader,ControlType}from\"framer\";export default defineShader({title:\"Chromatic\",mouse:\"disabledByDefault\",buffers:[{name:\"mouseState\",resolutionScale:.1,format:\"rgba16f\",fragment:`\nvoid main(){\n    vec4 prev = texture(u_mouseState_buffer, vec2(0.5));\n    vec2 target = u_mousePosition.xy;\n\n    // first frame reads all zeros — seed at current cursor, hover 0\n    bool uninit = (prev == vec4(0.0));\n    vec2 pos   = uninit ? target : prev.xy;\n    float ease = uninit ? 0.0 : prev.z;\n\n    float r = min(u_deltaTime * 60.0, 3.0);          // fps-normalized, stall-clamped\n\n    // chase cursor only while hovering (position freezes when cursor leaves)\n    if (u_mouseHover > 0.5){\n        float k = 1.0 - pow(1.0 - 0.2, r);   // fixed follow — responsive with a hint of drag\n        pos += (target - pos) * k;\n    }\n\n    // eased hover fade in/out\n    float kH = 1.0 - pow(0.85, r);\n    ease += (u_mouseHover - ease) * kH;\n\n    fragColor = vec4(pos, ease, 1.0);                // w=1 keeps init sentinel valid\n}\n`}],fragment:`\nvec4 spectrum(float p){\n    return 2.6 * vec4(\n        smoothstep(0.54, 0.24, p),\n        smoothstep(0.38, 0.0, abs(p - 0.5)),\n        smoothstep(0.47, 0.82, p),\n        1.0);\n}\n\n// cover-fit (crop to fill, centered)\nvec2 coverFit(vec2 uv, vec2 res, vec2 texRes){\n    vec2 ratio = res / texRes;\n    float m = max(ratio.x, ratio.y);\n    uv = (uv - 0.5) * (ratio / m) + 0.5;\n    return vec2(uv.x, 1.0 - uv.y);\n}\n\n// premultiplied sample; clamp-to-edge — out-of-range taps smear the border\nvec4 sampleMedia(vec2 t){\n    vec4 s = texture(u_media, clamp(t, 0.0, 1.0));\n    return vec4(s.rgb * s.a, s.a);\n}\n\n// uv (0..1) -> centered, aspect-corrected space (same mapping for fragment, focus, mouse)\nvec2 toAspect(vec2 uv, float aspect){\n    return (uv*2.0 - 1.0) * vec2(aspect, 1.0) / max(aspect, 1.0);\n}\n\n// aspect-space delta -> uv-space delta (inverse scaling of toAspect)\nvec2 aspectToUv(vec2 d, float aspect){\n    return d * max(aspect, 1.0) / vec2(aspect, 1.0) * 0.5;\n}\n\nvec2 rot2(vec2 v, float a){\n    float c = cos(a), s = sin(a);\n    return mat2(c, -s, s, c) * v;\n}\n\n// rim bevel profile — Gaussian family: infinitely smooth, no clamp, no inner\n// boundary. t = distance from rim / band width (0 at rim, unbounded inward).\nfloat shape(float t, float f){\n    float x = max(t, 0.0) * 2.0;\n    return exp(-pow(x, f));\n}\n\nvoid main(){\n    vec2 res = u_resolution.xy / u_pixelRatio;\n    vec2 texRes = vec2(textureSize(u_media, 0));\n    float aspect = res.x / res.y;\n    vec2 uv = v_uv;\n\n    vec2 p_aspect = toAspect(uv, aspect);\n\n    // ===================== ANIMATION =====================\n    // smooth intensity breathing, shared by both strength props\n    float pulse = 1.0;\n    if (u_animate > 0.5){\n        pulse = 1.0 + u_amount * 0.01 * cos(u_time * u_speed);\n    }\n\n    // ===================== DISPLACEMENT FIELD =====================\n    vec2 uvW  = uv;         // warped base coordinate (identity except Edges)\n    vec2 disp = vec2(0.0);  // chromatic fringe direction+length in uv space\n\n    if (u_mode < 1.5){\n        // -------- Radial / Uniform --------\n        float rad = u_radius * pulse;\n\n        vec2 dir;\n        if (u_mode < 0.5){                       // Radial — radiates from focus\n            vec2 f_aspect = toAspect(vec2(u_focusX, 1.0 - u_focusY), aspect);   // focus Y: 0 = top\n            dir = (p_aspect - f_aspect) / max(u_size, 0.05);                    // field zoom\n        } else {                                 // Uniform — same direction everywhere\n            float a = radians(u_angle);\n            dir = vec2(cos(a), sin(a));\n        }\n        disp = dir * rad / 1600.0;\n\n    } else {\n        // -------- Edges — curled glass warp, LEFT/RIGHT rims only --------\n        vec2 he = vec2(aspect, 1.0) / max(aspect, 1.0);      // half-extents of aspect space\n\n        //float w = max(u_edge * he.x, 1e-3); // or aspect locked\n\n        float w = max(u_edge * min(he.x, he.y), 1e-3);\n        float f = max(u_falloff, 1.0);\n\n        float bendL = shape((p_aspect.x + he.x) / w, f);     // 0 rim -> inward\n        float bendR = shape((he.x - p_aspect.x) / w, f);\n\n        // Mirror symmetry flips the right rim's rotation handedness:\n        //   Point  — same handedness both sides -> point-symmetric S sweep\n        //   Mirror — opposite handedness -> both rims sweep the same direction\n        float handR = (u_symmetry > 0.5) ? -1.0 : 1.0;\n\n        // per-rim: inward pull rotated by a curl that ramps toward that rim\n        vec2 warpA = vec2(0.0);\n        warpA += rot2(vec2( bendL, 0.0), u_swirl * 0.5 * bendL);          // left rim\n        warpA += rot2(vec2(-bendR, 0.0), u_swirl * 0.5 * bendR * handR);  // right rim\n\n        // ---- fold ceiling ----\n        // peak slope of g(x) = exp(-x^f), closed form (f=1 -> 1 at x=0)\n        float gmax = 1.0;\n        if (f > 1.001){\n            float xs = pow((f - 1.0) / f, 1.0 / f);\n            gmax = f * pow(xs, f - 1.0) * exp(-pow(xs, f));\n        }\n\n        float ampMax = 0.95 * w / (2.0 * gmax * (1.0 + u_dispersion));\n\n        float s = (u_strength * pulse) / 120.0;\n        float amp = ampMax * s / pow(1.0 + s*s*s*s, 0.25);\n\n        vec2 warpUV = aspectToUv(warpA * amp, aspect);\n        uvW = uv + warpUV;\n\n        disp = warpUV * u_dispersion;\n    }\n\n    // ===================== MOUSE =====================\n    if (u_mouseStrength > 0.001){\n        vec4 ms = texture(u_mouseState_buffer, vec2(0.5));\n        float easeH = ms.z;                                  // smoothed hover 0..1\n        vec2 m_aspect = toAspect(ms.xy, aspect);             // smoothed cursor, same space\n        vec2 relM = p_aspect - m_aspect;\n        float sigma = max(u_mouseSize * 0.5, 0.02);\n        float fall = exp(-dot(relM, relM) / (2.0 * sigma * sigma));   // gaussian bell\n        disp += relM * fall * easeH * u_mouseStrength / 1600.0;\n    }\n\n    bool noFringe = (u_mode > 1.5) && (u_dispersion < 0.001) && (u_mouseStrength <= 0.001);\n    if (noFringe){\n        fragColor = sampleMedia(coverFit(uvW, res, texRes));\n        return;\n    }\n\n    // ===================== CHROMATIC ABERRATION =====================\n    float k = clamp(u_definition, 0.03, 0.2);\n    vec3 color = vec3(0.0);\n    vec3 wsum  = vec3(0.0);\n    float alphaAcc = 0.0;\n    float n = 0.0;\n    for (int j = 0; j < 34; j++){\n        float i = float(j) * k;\n        if (i >= 1.0) break;\n        vec4 s2 = sampleMedia(coverFit(uvW + disp * i, res, texRes));\n        vec3 wgt = spectrum(i).rgb;\n        color += s2.rgb * wgt;\n        wsum  += wgt;\n        alphaAcc += s2.a;\n        n += 1.0;\n    }\n    color /= max(wsum, vec3(1e-4));\n    float alpha = min(alphaAcc / max(n, 1.0), 1.0);\n\n    // premultiplied output\n    fragColor = vec4(clamp(color, 0.0, 1.0), alpha);\n}\n`,propertyControls:{// ════════════════════ SHARED (all modes) ════════════════════\nmedia:{type:ControlType.File,title:\"Media\",allowedFileTypes:[\"video/mp4\",\"image/*\"],defaultValue:\"data:framer/asset-reference,dzrLbein64j0aF5k0o7PUJjJTQ.mp4?originalFilename=LinkClipX.mp4\"},mode:{type:ControlType.Enum,title:\"Mode\",defaultValue:0,options:[0,1,2],optionTitles:[\"Radial\",\"Uniform\",\"Edges\"]},// ════════════════════ RADIAL only (mode 0) ════════════════════\nsize:{type:ControlType.Number,title:\"Zoom\",defaultValue:.5,min:.25,max:2,step:.01,hidden:props=>props.mode!==0},focusX:{type:ControlType.Number,title:\"Focus X\",defaultValue:.5,min:0,max:1,step:.01,hidden:props=>props.mode!==0},focusY:{type:ControlType.Number,title:\"Focus Y\",defaultValue:.5,min:0,max:1,step:.01,hidden:props=>props.mode!==0},// ════════════════ RADIAL + UNIFORM (modes 0, 1) ════════════════\nradius:{type:ControlType.Number,title:\"Radius\",defaultValue:60,min:0,max:200,step:.5,hidden:props=>props.mode===2},// ════════════════════ UNIFORM only (mode 1) ════════════════════\nangle:{type:ControlType.Number,title:\"Angle\",defaultValue:90,min:0,max:360,step:1,hidden:props=>props.mode!==1},// ════════════════════ EDGES only (mode 2) ════════════════════\nsymmetry:{type:ControlType.Enum,title:\"Symmetry\",defaultValue:1,options:[0,1],optionTitles:[\"Point\",\"Mirror\"],displaySegmentedControl:true,hidden:props=>props.mode!==2},strength:{type:ControlType.Number,title:\"Amount\",defaultValue:120,min:0,max:200,step:1,hidden:props=>props.mode!==2},edge:{type:ControlType.Number,title:\"Edges\",defaultValue:2,min:.05,max:2,step:.01,hidden:props=>props.mode!==2},falloff:{type:ControlType.Number,title:\"Falloff\",defaultValue:3,min:1,max:5,step:.1,hidden:props=>props.mode!==2},swirl:{type:ControlType.Number,title:\"Swirl\",defaultValue:3,min:-10,max:10,step:.1,hidden:props=>props.mode!==2},dispersion:{type:ControlType.Number,title:\"Dispersion\",defaultValue:.2,min:0,max:1,step:.01,hidden:props=>props.mode!==2},definition:{type:ControlType.Number,title:\"Definition\",defaultValue:.03,min:.03,max:.2,step:.005,hiddenWhenUnset:true},// ═══════════ ANIMATION (all modes) ═══════════\nanimate:{type:ControlType.Enum,title:\"Animate\",defaultValue:0,options:[0,1],optionTitles:[\"Off\",\"Pulse\"],displaySegmentedControl:true,hidden:props=>props.mode===2?props.strength===0:props.radius===0},amount:{type:ControlType.Number,title:\"Amount\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",hidden:props=>props.animate===0||(props.mode===2?props.strength===0:props.radius===0)},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.1,max:5,step:.01,hidden:props=>props.animate===0||(props.mode===2?props.strength===0:props.radius===0)},// ════════════════════ MOUSE (all modes) ════════════════════\nmouseStrength:{type:ControlType.Number,title:\"Strength\",defaultValue:100,min:50,max:200,step:1,section:\"Mouse\"},mouseSize:{type:ControlType.Number,title:\"Size\",defaultValue:1,min:.5,max:3,step:.01,section:\"Mouse\",hidden:props=>props.mouseStrength===0}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"shader\",\"name\":null,\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Chromatic.map","// Generated by Framer (8f5bcb6)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,Shader,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import shaderConfig from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/F3AbHG8IzbjCyYsGLzGh/ExkzTTLdF12yGifVNaSP/Chromatic.js\";const serializationHash=\"framer-ihkQg\";const variantClassNames={G5sx7Xep0:\"framer-v-1g9sgqo\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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,contentLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"G5sx7Xep0\",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-1g9sgqo\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"G5sx7Xep0\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(255, 255, 255, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(0, 0, 0)\",borderBottomLeftRadius:15,borderBottomRightRadius:15,borderTopLeftRadius:15,borderTopRightRadius:15,...style},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-pwvqzy\",layoutDependency:layoutDependency,layoutId:\"GjlEG8VJg\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ab7j6z-container\",layoutDependency:layoutDependency,layoutId:\"gQ_PTXMr4-container\",rendersWithMotion:true,children:/*#__PURE__*/_jsx(Shader,{__fromCanvasComponent:true,animated:shaderConfig.animated,buffers:shaderConfig.buffers,fallbackImage:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/images/XVvx07dTIQTR8V7PhekWreqHac.png?scale-down-to=800&width=1600&height=1040\",fragmentShader:shaderConfig.fragment,height:\"100%\",heightmapSource:shaderConfig.heightmapSource,mode:\"progressive\",mouse:shaderConfig.mouse&&{enabled:shaderConfig.mouse===\"enabledByDefault\"},resolutionScale:shaderConfig.resolutionScale,skipInitialFallback:true,uniforms:{u_amount:{type:\"number\",value:15},u_angle:{type:\"number\",value:301},u_animate:{type:\"enum\",value:0},u_definition:{type:\"number\",value:.03},u_dispersion:{type:\"number\",value:.31},u_edge:{type:\"number\",value:1.54},u_falloff:{type:\"number\",value:1},u_focusX:{type:\"number\",value:.5},u_focusY:{type:\"number\",value:0},u_media:{type:\"file\",value:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/Q9sLrxQFZOKRXhfZrBLFrv16uY.mp4\"},u_mode:{type:\"enum\",value:2},u_mouseSize:{type:\"number\",value:2},u_mouseStrength:{type:\"number\",value:100},u_radius:{type:\"number\",value:70},u_size:{type:\"number\",value:.59},u_speed:{type:\"number\",value:.11},u_strength:{type:\"number\",value:120},u_swirl:{type:\"number\",value:1.7},u_symmetry:{type:\"enum\",value:1}},vertexShader:shaderConfig.vertex,width:\"100%\"})})})})})})});});const css=[\".framer-ihkQg.framer-71m02r, .framer-ihkQg .framer-71m02r { display: block; }\",\".framer-ihkQg.framer-1g9sgqo { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 800px; will-change: var(--framer-will-change-override, transform); }\",\".framer-ihkQg .framer-pwvqzy { aspect-ratio: 1.7777777777777777 / 1; flex: 1 0 0px; height: auto; overflow: visible; position: relative; width: 1px; }\",\".framer-ihkQg .framer-ab7j6z-container { aspect-ratio: 1.5384615384615385 / 1; flex: none; height: auto; left: 0px; mix-blend-mode: plus-lighter; position: absolute; right: 0px; top: 0px; }\",'.framer-ihkQg[data-border=\"true\"]::after, .framer-ihkQg [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 450\n * @framerIntrinsicWidth 800\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerResolvesOwnDefaults true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerNulS67Ho8=withCSS(Component,css,\"framer-ihkQg\");export default FramerNulS67Ho8;FramerNulS67Ho8.displayName=\"Shaders/Shader 7\";FramerNulS67Ho8.defaultProps={height:450,width:800};addFonts(FramerNulS67Ho8,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerNulS67Ho8\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"800\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerResolvesOwnDefaults\":\"true\",\"framerIntrinsicHeight\":\"450\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NulS67Ho8.map"],"mappings":"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"}