{"version":3,"file":"shared-lib.DwPDQfR7.mjs","names":["mask","SVG","getProps","Icon","className","className"],"sources":["https:/framerusercontent.com/modules/JqXiZSi9xrTgpUlA8JlZ/YxizRJ4v2Q7L21s1M4XY/htbLOFlIc.js","https:/framerusercontent.com/modules/QL65NekRyGlej8APmFiL/EfJhiBMusrx6SCmF9LfF/aE7ozwXux.js","https:/framerusercontent.com/modules/VHx6h9GDKMSkp9munUQE/WkfqDlgOscoCUsXhBk4G/LogoGradient.js","https:/framerusercontent.com/modules/Z92YaxrunDtjtwR8u6Rd/Ks7WrASxb7AMJZ6iWihY/GpeI2CQe0.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 2 18 C 0.895 18 0 17.105 0 16 L 0 2 C 0 0.895 0.895 0 2 0 L 16 0 C 17.105 0 18 0.895 18 2 L 18 16 C 18 17.105 17.105 18 16 18 Z\" fill=\"transparent\" height=\"18px\" id=\"ejTUGlX1X\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(3 4)\" width=\"18px\"/><path d=\"M 0 0 L 0 4\" fill=\"transparent\" height=\"4px\" id=\"Mp4HF7xiZ\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(16 2)\" width=\"1px\"/><path d=\"M 0 0 L 0 4\" fill=\"transparent\" height=\"4px\" id=\"QnG9jZcT9\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(8 2)\" width=\"1px\"/><path d=\"M 0 0 L 18 0\" fill=\"transparent\" height=\"1px\" id=\"yteBeEvfh\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(3 10)\" width=\"18px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,UO5clYVeQ:stroke??props.UO5clYVeQ??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,UO5clYVeQ,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-YVnZO\",className),layoutId:layoutId,ref:ref,style:{\"--43q7um\":UO5clYVeQ,...style}});});const css=[`.framer-YVnZO { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--43q7um); 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 {\"UO5clYVeQ\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Calendar\",\"color\":{\"type\":\"variable\",\"value\":\"43q7um\"},\"set\":{\"localId\":\"vectorSet/T8qKXkLfy\",\"id\":\"T8qKXkLfy\",\"moduleId\":\"fiHEoJwBMFnT6QLOcpPz\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-YVnZO\");Icon.displayName=\"Calendar\";export default Icon;addPropertyControls(Icon,{UO5clYVeQ:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"UO5clYVeQ\\\":\\\"stroke\\\"}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Calendar\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"43q7um\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/T8qKXkLfy\\\",\\\"id\\\":\\\"T8qKXkLfy\\\",\\\"moduleId\\\":\\\"fiHEoJwBMFnT6QLOcpPz\\\"}}\",\"framerDisableUnlink\":\"true\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 2 0 L 18 0 C 19.1 0 20 0.9 20 2 L 20 14 C 20 15.1 19.1 16 18 16 L 2 16 C 0.9 16 0 15.1 0 14 L 0 2 C 0 0.9 0.9 0 2 0 Z\" fill=\"transparent\" height=\"16px\" id=\"NvQOXSS14\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(2 4)\" width=\"20px\"/><path d=\"M 20 0 L 10 7 L 0 0\" fill=\"transparent\" height=\"7px\" id=\"XYqf_BtA8\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(2 6)\" width=\"20px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,UO5clYVeQ:stroke??props.UO5clYVeQ??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,UO5clYVeQ,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-erqbn\",className),layoutId:layoutId,ref:ref,style:{\"--43q7um\":UO5clYVeQ,...style}});});const css=[`.framer-erqbn { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--43q7um); 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 {\"UO5clYVeQ\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Mail\",\"color\":{\"type\":\"variable\",\"value\":\"43q7um\"},\"set\":{\"localId\":\"vectorSet/T8qKXkLfy\",\"id\":\"T8qKXkLfy\",\"moduleId\":\"fiHEoJwBMFnT6QLOcpPz\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-erqbn\");Icon.displayName=\"Mail\";export default Icon;addPropertyControls(Icon,{UO5clYVeQ:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"UO5clYVeQ\\\":\\\"stroke\\\"}\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Mail\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"43q7um\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/T8qKXkLfy\\\",\\\"id\\\":\\\"T8qKXkLfy\\\",\\\"moduleId\\\":\\\"fiHEoJwBMFnT6QLOcpPz\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerDisableUnlink\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{defineShader,ControlType}from\"framer\";export default defineShader({title:\"Logo Gradient\",heightmapSource:\"image\",mouse:\"enabledByDefault\",fragment:`\n// === CONSTANTS ===\nconst float GOLDEN_ANGLE = 2.3999632;\nconst float TAU = 6.28318530;\n\n// === PCG hash ===\nuvec3 hash3(uvec3 v) {\n    v = v * 1664525u + 1013904223u;\n    v.x += v.y * v.z;\n    v.y += v.z * v.x;\n    v.z += v.x * v.y;\n    v ^= v >> 16u;\n    v.x += v.y * v.z;\n    v.y += v.z * v.x;\n    v.z += v.x * v.y;\n    return v;\n}\n\nvec3 seedRandom(float seedVal) {\n    uvec3 s = uvec3(\n        floatBitsToUint(seedVal),\n        floatBitsToUint(seedVal * 1.5 + 7.31),\n        floatBitsToUint(seedVal * 2.7 + 13.37)\n    );\n    s = hash3(s);\n    return vec3(s) / float(0xFFFFFFFFu);\n}\n\n// === COLOR SPACE (Oklab/LCH) ===\n\nvec3 toLinear(vec3 c) {\n    return pow(c, vec3(2.2));\n}\n\nvec3 toSrgb(vec3 c) {\n    return pow(clamp(c, 0.0, 1.0), vec3(0.4545));\n}\n\nvec3 linearToOklab(vec3 c) {\n    float l = 0.4122214708 * c.r + 0.5363325363 * c.g + 0.0514459929 * c.b;\n    float m = 0.2119034982 * c.r + 0.6806995451 * c.g + 0.1073969566 * c.b;\n    float s = 0.0883024619 * c.r + 0.2817188376 * c.g + 0.6299787005 * c.b;\n\n    l = pow(max(l, 0.0), 1.0 / 3.0);\n    m = pow(max(m, 0.0), 1.0 / 3.0);\n    s = pow(max(s, 0.0), 1.0 / 3.0);\n\n    return vec3(\n        0.2104542553 * l + 0.7936177850 * m - 0.0040720468 * s,\n        1.9779984951 * l - 2.4285922050 * m + 0.4505937099 * s,\n        0.0259040371 * l + 0.7827717662 * m - 0.8086757660 * s\n    );\n}\n\nvec3 oklabToLinear(vec3 c) {\n    float l = c.x + 0.3963377774 * c.y + 0.2158037573 * c.z;\n    float m = c.x - 0.1055613458 * c.y - 0.0638541728 * c.z;\n    float s = c.x - 0.0894841775 * c.y - 1.2914855480 * c.z;\n\n    l = l * l * l;\n    m = m * m * m;\n    s = s * s * s;\n\n    return vec3(\n        +4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,\n        -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,\n        -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s\n    );\n}\n\nvec3 oklabToLch(vec3 lab) {\n    return vec3(lab.x, length(lab.yz), atan(lab.z, lab.y));\n}\n\nvec3 lchToOklab(vec3 lch) {\n    return vec3(lch.x, lch.y * cos(lch.z), lch.y * sin(lch.z));\n}\n\nvec3 mixLch(vec3 lab0, vec3 lab1, float t) {\n    vec3 lch0 = oklabToLch(lab0);\n    vec3 lch1 = oklabToLch(lab1);\n\n    if (lch0.y < 0.05) lch0.z = lch1.z;\n    if (lch1.y < 0.05) lch1.z = lch0.z;\n\n    float dh = lch1.z - lch0.z;\n    if (dh > 3.14159265) dh -= 6.28318530;\n    if (dh < -3.14159265) dh += 6.28318530;\n\n    return lchToOklab(vec3(\n        mix(lch0.x, lch1.x, t),\n        mix(lch0.y, lch1.y, t),\n        lch0.z + dh * t\n    ));\n}\n\n// === PALETTE ===\n\nvec3 getColor(int idx) {\n    if (u_colors_length < 1) return vec3(0.0);\n    int safeIdx = clamp(idx, 0, u_colors_length - 1);\n    return u_colors[safeIdx].rgb;\n}\n\nvec3 paletteN(float t, int count) {\n    if (count < 1) return vec3(0.0);\n    if (count < 2) return toLinear(getColor(0));\n\n    float segmentSize = 1.0 / float(count - 1);\n    t = clamp(t, 0.0, 1.0);\n    int idx = min(int(floor(t / segmentSize)), count - 2);\n    float localT = clamp((t - float(idx) * segmentSize) / segmentSize, 0.0, 1.0);\n\n    vec3 lab0 = linearToOklab(toLinear(getColor(idx)));\n    vec3 lab1 = linearToOklab(toLinear(getColor(idx + 1)));\n\n    return oklabToLinear(mixLch(lab0, lab1, localT));\n}\n\n// === POST-PROCESS ===\n\nvec3 softGamutMap(vec3 linearRgb) {\n    float maxC = max(linearRgb.r, max(linearRgb.g, linearRgb.b));\n    float minC = min(linearRgb.r, min(linearRgb.g, linearRgb.b));\n\n    if (minC >= 0.0 && maxC <= 1.0) return linearRgb;\n\n    vec3 lab = linearToOklab(max(linearRgb, 0.0));\n    float L = clamp(lab.x, 0.0, 1.0);\n    float C = length(lab.yz);\n    float h = atan(lab.z, lab.y);\n\n    float maxChroma = 0.4 * (1.0 - pow(abs(2.0 * L - 1.0), 2.0));\n\n    if (C > maxChroma * 0.7) {\n        float knee = maxChroma * 0.7;\n        C = knee + (maxChroma - knee) * tanh((C - knee) / (maxChroma - knee + 0.001));\n    }\n\n    return clamp(oklabToLinear(vec3(L, C * cos(h), C * sin(h))), 0.0, 1.0);\n}\n\n// === HEIGHTMAP HELPERS ===\n\nfloat blurDepth3x3(vec2 uv, vec2 dudx, vec2 dudy, vec2 texel, float radius) {\n    vec2 r = radius * texel;\n\n    float sum = 4.0 * textureGrad(u_image_heightmap, uv, dudx, dudy).r;\n\n    sum += 2.0 * textureGrad(u_image_heightmap, uv + vec2(0.0, -r.y), dudx, dudy).r;\n    sum += 2.0 * textureGrad(u_image_heightmap, uv + vec2(0.0,  r.y), dudx, dudy).r;\n    sum += 2.0 * textureGrad(u_image_heightmap, uv + vec2(-r.x, 0.0), dudx, dudy).r;\n    sum += 2.0 * textureGrad(u_image_heightmap, uv + vec2( r.x, 0.0), dudx, dudy).r;\n\n    sum += textureGrad(u_image_heightmap, uv + vec2(-r.x, -r.y), dudx, dudy).r;\n    sum += textureGrad(u_image_heightmap, uv + vec2( r.x, -r.y), dudx, dudy).r;\n    sum += textureGrad(u_image_heightmap, uv + vec2(-r.x,  r.y), dudx, dudy).r;\n    sum += textureGrad(u_image_heightmap, uv + vec2( r.x,  r.y), dudx, dudy).r;\n\n    return sum / 16.0;\n}\n\nvec2 heightGrad(vec2 uv, vec2 dudx, vec2 dudy, vec2 texel, float blurRadius) {\n    float eps = 4.0;\n    float dR = blurDepth3x3(uv + vec2(eps * texel.x, 0.0), dudx, dudy, texel, blurRadius);\n    float dL = blurDepth3x3(uv - vec2(eps * texel.x, 0.0), dudx, dudy, texel, blurRadius);\n    float dU = blurDepth3x3(uv + vec2(0.0, eps * texel.y), dudx, dudy, texel, blurRadius);\n    float dD = blurDepth3x3(uv - vec2(0.0, eps * texel.y), dudx, dudy, texel, blurRadius);\n    return vec2(dR - dL, dU - dD) / (2.0 * eps * texel);\n}\n\n// === MAIN ===\n\nvoid main() {\n    vec2 uv = vec2(v_uv.x, 1.0 - v_uv.y);\n    vec2 texSize = vec2(textureSize(u_image_heightmap, 0));\n    float imgAspect = texSize.x / texSize.y;\n    float canvasAspect = u_resolution.x / u_resolution.y;\n\n    if (canvasAspect > imgAspect) {\n        uv.x = (uv.x - 0.5) * (canvasAspect / imgAspect) + 0.5;\n    } else {\n        uv.y = (uv.y - 0.5) * (imgAspect / canvasAspect) + 0.5;\n    }\n\n    /*\n    if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {\n        fragColor = vec4(u_colorBack.rgb * u_colorBack.a, u_colorBack.a);\n        return;\n    }\n    */\n\n    // 1.0 on DPR 2+, up to 2.0 on DPR 1\n    float aaScale = max(1.0, 2.0 / u_pixelRatio);\n\n    vec2 dudx = dFdx(uv);\n    vec2 dudy = dFdy(uv);\n\n    vec4 hm = textureGrad(u_image_heightmap, uv, dudx, dudy);\n    float fw_b = 0.5 * fwidth(hm.b);\n    float hardMask = smoothstep(0.5 - fw_b, 0.5 + fw_b, hm.b);\n    float opacity = hardMask * (1.0 - hm.g);\n\n    // Only fade at the letterbox boundary, not on the axis the image fills\n    float edgeDist;\n    if (canvasAspect > imgAspect) {\n        // Letterbox bars are left/right → only fade X edges\n        edgeDist = min(uv.x, 1.0 - uv.x);\n    } else if (canvasAspect < imgAspect) {\n        // Letterbox bars are top/bottom → only fade Y edges\n        edgeDist = min(uv.y, 1.0 - uv.y);\n    } else {\n        // Aspects match — no letterboxing, no seam, no fade needed\n        edgeDist = 1.0;\n    }\n    opacity *= smoothstep(0.0, 1.0 * fwidth(edgeDist), edgeDist);\n\n    if (opacity < 0.001) {\n        fragColor = vec4(u_colorBack.rgb * u_colorBack.a, u_colorBack.a);\n        return;\n    }\n\n    vec2 texel = 1.0 / texSize;\n    int colorCount = u_colors_length;\n\n    if (colorCount < 1) {\n        fragColor = vec4(u_colorBack.rgb * u_colorBack.a, u_colorBack.a);\n        return;\n    }\n\n    float rawDepth = blurDepth3x3(uv, dudx, dudy, texel, 6.0);\n    float depth = max(rawDepth, 0.001);\n\n    vec2 grad = heightGrad(uv, dudx, dudy, texel, 6.0);\n    float gradMag = min(length(grad), 5.0);\n    vec2 gradDir = gradMag > 0.001 ? normalize(grad) : vec2(0.0);\n    vec2 contourDir = vec2(-gradDir.y, gradDir.x);\n\n    float t = mod(u_time * u_speed, 3600.0);\n\n    // Motion mode: 0 = Random, 1 = Melt\n    float isMelt = step(0.5, u_motionMode);\n\n    // Seed\n    vec3 seedOffset = seedRandom(u_seed);\n    vec3 seedOffset2 = seedRandom(u_seed + 100.0);\n    float seedAngle = u_seed * GOLDEN_ANGLE;\n    vec2 seedPhase = (seedOffset2.xy - 0.5) * TAU;\n\n    // World-space coordinates anchored to the image\n    vec2 p = (uv - 0.5) * 2.0;\n    p.x *= imgAspect;\n\n    // Seed-based rotation\n    float cs = cos(seedAngle);\n    float sn = sin(seedAngle);\n    p = mat2(cs, -sn, sn, cs) * p;\n\n    // Angle — rotates the gradient flow direction\n    float ang = u_angle * 3.14159 / 180.0;\n    float cosA = cos(ang);\n    float sinA = sin(ang);\n    p = vec2(p.x * cosA - p.y * sinA, p.x * sinA + p.y * cosA);\n\n    // === MOUSE ===\n    vec2 mouseRaw = u_mousePosition.xy;\n    vec2 mouseVel = u_mousePosition.zw;\n    float hover   = u_mouseHover;\n    float clicked = u_mousePointerDown;\n    // Flip Y to match this shader's top-left UV convention\n    vec2 mouseUV = vec2(mouseRaw.x, 1.0 - mouseRaw.y);\n\n    // Apply the same letterbox transform as uv\n    if (canvasAspect > imgAspect) {\n        mouseUV.x = (mouseUV.x - 0.5) * (canvasAspect / imgAspect) + 0.5;\n    } else {\n        mouseUV.y = (mouseUV.y - 0.5) * (imgAspect / canvasAspect) + 0.5;\n    }\n\n    // Mouse as centered, aspect-corrected, scaled offset\n    vec2 mOffset = (mouseUV - 0.5) * vec2(imgAspect, 1.0) * u_pushAmount * hover;\n\n    // Distance in image-space (both uv and mouseUV are now in the same space)\n    float mouseDist = length((uv - mouseUV) * vec2(imgAspect, 1.0));\n    float mouseInfluence = smoothstep(u_pushRadius, 0.0, mouseDist);\n    vec2 mFinal = mOffset * mouseInfluence;\n\n    // Turbulence time\n    float tTurb = t * mix(1.0, 0.4, isMelt);\n\n    // Melt flow offset applied to q inside turbulence, not to p\n    vec2 meltOffset = vec2(1.0, 0.0) * t * 0.4 * isMelt;\n\n    // === SHAPE-AWARE COORDINATE WARPING ===\n    float edgeProximity = 1.0 - smoothstep(0.0, 0.8, depth);\n\n    float coordScale = max(0.4, 0.1 + depth * 1.0);\n    p *= coordScale;\n\n    p += contourDir * edgeProximity * u_bend * 2.0;\n    p -= gradDir * edgeProximity * u_bend * 0.5;\n    p *= max(0.5, mix(1.0, 0.4 + 0.6 * smoothstep(0.0, 0.5, depth), u_contour));\n\n    // === TURBULENCE ===\n    int turbIter = int(u_turbIter);\n    float freq = 1.0 / max(u_turbFreq, 0.01);\n\n    vec2 q = p * u_scale + meltOffset;\n    // Small directional nudge — slides the pattern toward the cursor\n    q += (mouseUV - uv) * mouseInfluence * 2.0 * hover;\n\n    float a = seedPhase.x;\n    float d = seedPhase.y;\n\n    for (int j = 2; j < 10; j++) {\n        if (j >= turbIter) break;\n        float fj = float(j);\n        q += u_turbAmp * sin(length(q) / freq * fj + tTurb + vec2(a, d) + seedOffset.xy * fj) / fj;\n        a += cos(fj + d * 1.2 + mFinal.x + q.x * 2.0 - tTurb + seedOffset2.z);\n        d += sin(fj * q.y + a + mFinal.y * 0.7 + seedOffset.z + tTurb + seedOffset2.y);\n    }\n\n    float base = length(q.yx + vec2(a, d) * 0.2) * u_waveFreq + seedOffset.x;\n    float val = 0.5 + 0.125 * sin(base + 1.0) + 0.25 * sin(base + 4.0) + 0.125 * sin(base + 9.0);\n    val = clamp((val - 0.3) / 0.4, 0.0, 1.0);\n\n    // Depth-based intensity modulation\n    float innerIntensity = smoothstep(0.0, 0.4, depth);\n    float contourHeat = (1.0 - innerIntensity) * u_contour;\n    val = mix(val, val * innerIntensity + contourHeat, 0.5 + 0.5 * u_contour);\n\n    vec3 col = paletteN(val, colorCount);\n    col = softGamutMap(col);\n    col = toSrgb(col);\n\n    /*\n    // Silhouette AA — hardMask + clamped fwidth\n    float fw = fwidth(depth);\n    float effectMask = hardMask * smoothstep(0.0, max(fw, min(2.0 * fw, 0.1)), depth);\n    opacity *= effectMask;\n    */\n\n    // Alpha compositing\n    col *= opacity;\n    vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n    col = col + bgColor * (1.0 - opacity);\n    float finalAlpha = opacity + u_colorBack.a * (1.0 - opacity);\n\n    fragColor = vec4(col, finalAlpha);\n}\n`,propertyControls:{image:{type:ControlType.ResponsiveImage,title:\"Image\",defaultValue:\"data:framer/asset-reference,7XHsXmlUUmdQM95fkSvi3LRCuSk.svg?originalFilename=Path.svg&width=32&height=48\"},colors:{type:ControlType.Array,title:\"Colors\",control:{type:ControlType.Color},maxCount:8,defaultValue:[\"#000000\",\"#0051FF\",\"#0DAAFF\",\"#BDE4FF\"]},colorBack:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},seed:{type:ControlType.Number,title:\"Seed\",defaultValue:6,min:0,max:1e3,step:1,section:\"Motion\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:.6,min:0,max:2,step:.01,section:\"Motion\"},motionMode:{type:ControlType.Enum,title:\"Motion\",options:[0,1],optionTitles:[\"Random\",\"Directional\"],defaultValue:0,section:\"Motion\"},angle:{type:ControlType.Number,title:\"Angle\",defaultValue:20,min:0,max:360,step:1,section:\"Motion\"},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1.2,min:.1,max:2,step:.01,section:\"Motion\"},turbAmp:{type:ControlType.Number,title:\"Amplitude\",defaultValue:.21,min:0,max:1,step:.01,section:\"Motion\"},turbFreq:{type:ControlType.Number,title:\"Frequency\",defaultValue:1.15,min:.1,max:2,step:.01,section:\"Motion\"},turbIter:{type:ControlType.Number,title:\"Definition\",defaultValue:7,min:3,max:8,step:1,displayStepper:true,section:\"Motion\"},waveFreq:{type:ControlType.Number,title:\"Bands\",defaultValue:2.4,min:.1,max:5,step:.1,section:\"Motion\"},bend:{type:ControlType.Number,title:\"Bevel\",defaultValue:.24,min:0,max:1,step:.01,section:\"Shape\",hiddenWhenUnset:true},contour:{type:ControlType.Number,title:\"Contour\",defaultValue:.8,min:0,max:1,step:.1,section:\"Shape\",hiddenWhenUnset:true},pushRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:1.5,min:.2,max:4,step:.1,section:\"Interaction\"},pushAmount:{type:ControlType.Number,title:\"Strength\",defaultValue:8,min:0,max:20,step:.5,section:\"Interaction\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"shader\",\"name\":null,\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LogoGradient.map","// Generated by Framer (c9c30df)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Instrument Sans-500\",\"GF;Instrument Sans-700\",\"GF;Instrument Sans-700italic\",\"GF;Instrument Sans-500italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Instrument Sans\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Instrument Sans\",url:\"https://fonts.gstatic.com/s/instrumentsans/v4/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npST3-QfwmS0v3_7Y.woff2\",weight:\"500\"},{cssFamilyName:\"Instrument Sans\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Instrument Sans\",url:\"https://fonts.gstatic.com/s/instrumentsans/v4/pximypc9vsFDm051Uf6KVwgkfoSxQ0GsQv8ToedPibnr-yp2JGEJOH9npSQi_gfwmS0v3_7Y.woff2\",weight:\"700\"},{cssFamilyName:\"Instrument Sans\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Instrument Sans\",url:\"https://fonts.gstatic.com/s/instrumentsans/v4/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENugixkywN2u7YUwU.woff2\",weight:\"700\"},{cssFamilyName:\"Instrument Sans\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Instrument Sans\",url:\"https://fonts.gstatic.com/s/instrumentsans/v4/pxigypc9vsFDm051Uf6KVwgkfoSbSnNPooZAN0lInHGpCWNE27lgU-XJojENut22kywN2u7YUwU.woff2\",weight:\"500\"}]}];export const css=['.framer-oXApc .framer-styles-preset-1hxupvw:not(.rich-text-wrapper), .framer-oXApc .framer-styles-preset-1hxupvw.rich-text-wrapper p { --framer-font-family: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Instrument Sans\", \"Instrument Sans Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.02em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-oXApc\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"4QAC2C,IAAsE,IAA4B,CAAoCA,EAAK,8uCAAsvCC,EAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAOC,GAAU,CAAC,SAAO,KAAG,SAAO,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAQ,EAAM,WAAW,eAAe,EAUpvDC,EAAK,EAV+wD,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,GAAG,GAAWD,EAAS,EAAM,CAAC,OAAoB,EAAKD,EAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAeG,EAAU,CAAU,WAAa,MAAI,MAAM,CAAC,WAAW,EAAU,GAAG,EAAM,CAAC,CAAC,EAAG,CAAW,CAAC,iCAAiCJ,EAAK,4DAA4DA,EAAK,kBAAkB,CAUxoE,eAAe,CAAC,EAAK,YAAY,aAA0BG,EAAK,EAAoBA,EAAK,CAAC,UAAU,CAAC,aAAa,eAAe,OAAO,GAAM,MAAM,SAAS,KAAK,EAAY,MAAM,CAAC,CAAC,2BCV/K,IAAsE,IAA4B,CAAoC,EAAK,iyBAAyyB,EAAiB,GAAY,EAAM,IAAM,CAAC,GAAK,CAAC,WAAS,WAAS,WAAS,GAAG,GAAM,EAAM,OAAO,EAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAc,WAAa,MAAI,CAAC,CAAc,EAAK,MAAM,CAAC,GAAG,EAAS,MAAI,CAAC,EAAG,CAAO,GAAU,CAAC,SAAO,KAAG,SAAO,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAQ,EAAM,WAAW,eAAe,EAUvyC,EAAK,EAVk0C,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,GAAG,GAAW,EAAS,EAAM,CAAC,OAAoB,EAAK,EAAI,CAAC,GAAG,EAAU,UAAU,EAAG,eAAeE,EAAU,CAAU,WAAa,MAAI,MAAM,CAAC,WAAW,EAAU,GAAG,EAAM,CAAC,CAAC,EAAG,CAAW,CAAC,iCAAiC,EAAK,4DAA4D,EAAK,kBAAkB,CAU3rD,eAAe,CAAC,EAAK,YAAY,SAAsB,EAAK,EAAoB,EAAK,CAAC,UAAU,CAAC,aAAa,eAAe,OAAO,GAAM,MAAM,SAAS,KAAK,EAAY,MAAM,CAAC,CAAC,mBCXzK,GAAe,EAAa,CAAC,MAAM,gBAAgB,gBAAgB,QAAQ,MAAM,mBAAmB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8VxJ,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAY,gBAAgB,MAAM,QAAQ,aAAa,2GAA2G,CAAC,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,QAAQ,CAAC,KAAK,EAAY,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,UAAU,UAAU,UAAU,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,QAAQ,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,SAAS,CAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,cAAc,CAAC,aAAa,EAAE,QAAQ,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,QAAQ,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,QAAQ,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,KAAK,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,QAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,GAAK,QAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,QAAQ,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,QAAQ,gBAAgB,GAAK,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,QAAQ,gBAAgB,GAAK,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,QAAQ,cAAc,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,cAAc,CAAC,CAAC,CAAC,uBC7V5yD,GAAU,UAAU,CAAC,yBAAyB,yBAAyB,+BAA+B,+BAA+B,CAAC,CAAc,EAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,kBAAkB,SAAS,GAAK,OAAO,SAAS,MAAM,SAAS,aAAa,kBAAkB,IAAI,+HAA+H,OAAO,MAAM,CAAC,CAAC,cAAc,kBAAkB,SAAS,GAAK,OAAO,SAAS,MAAM,SAAS,aAAa,kBAAkB,IAAI,+HAA+H,OAAO,MAAM,CAAC,CAAC,cAAc,kBAAkB,SAAS,GAAK,OAAO,SAAS,MAAM,SAAS,aAAa,kBAAkB,IAAI,kIAAkI,OAAO,MAAM,CAAC,CAAC,cAAc,kBAAkB,SAAS,GAAK,OAAO,SAAS,MAAM,SAAS,aAAa,kBAAkB,IAAI,kIAAkI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAc,EAAI,CAAC,osCAA8sC,CAAc,EAAU"}