{"version":3,"file":"shared-lib.CB4f1SyM.mjs","names":["p","useRef","useState"],"sources":["https:/framerusercontent.com/modules/UL0CaaqZiHx5KIJhqCu9/ujkbH6lm5epGGM00SVEX/Navigation.js","https:/framerusercontent.com/modules/hNETH1lFrFXY5YP5yQoI/9WVz6lYYxrjSuJgkTWQX/siteMetadata.js"],"sourcesContent":["/**\n * NavMenu — Pill-shaped, hide-on-scroll nav with animated Lottie logo\n * hu-man.casa · Version 13.2\n *\n * LAYOUT (v12)\n *   Logo moves to far left. Three nav links (Work, Articles, About)\n *   sit right-aligned at the opposite end via flex space-between.\n *\n * MOBILE LOGO SCALE (v13.2)\n *   Mobile Logo Scale enlarges the logo on phones using a CSS transform on the\n *   logo wrapper. A transform changes only what is painted, not the layout box,\n *   so the pill height and the links stay exactly where they are. The logo\n *   grows from its left edge and stays vertically centered. Very large values\n *   can reach the pill's clipped edge, so the control is bounded.\n *\n * SSR-SAFE LOTTIE (v13.1)\n *   lottie-web reads navigator.userAgent when its module loads, which crashed\n *   Framer's server-side optimization pass on every page that mounts this nav.\n *   The library is now imported dynamically inside the effect that builds the\n *   animation, so it only loads in the browser. The visible animation behavior\n *   is unchanged.\n *\n * AUTO-HIDE (v13.0)\n *   Hide on Scroll controls whether the menu slides away on scroll-down. Turn\n *   it off to keep the menu pinned and always visible, for pages like the case\n *   studies index. When off, the menu holds at the top regardless of scroll,\n *   and the scroll handler does nothing.\n *\n * DEFINED HEIGHT (v12.9)\n *   The component root is a relatively-positioned box with an explicit height\n *   of Top Margin plus the measured nav height, so the layer reports a real\n *   size instead of 0px. The nav still floats absolutely inside it and slides\n *   on scroll, so nothing about the look changes. The root is click-through\n *   (pointer-events none) so only the pill itself is interactive. Layout\n *   height is auto, sized to this root.\n *\n * SELECTED STATE (v12.8)\n *   The Current Page control marks which item is active. The matching item\n *   switches to an on-state and stops behaving like a link:\n *     - A text link (Work, Articles, About) renders as an inert span with the\n *       plasma removed and a dark outline tracing its pill. The outline uses\n *       CSS outline, so it adds no layout and stays aligned with its siblings.\n *       pointer-events are off, so it does not navigate or react to the cursor.\n *     - Home renders the logo without the link wrapper and holds its final\n *       frame, so the mark sits static with no replay on hover or click.\n *\n * RESPONSIVE TYPE (v12.1)\n *   Mobile and tablet both floor at 11px — the desktop minimum — so text\n *   stays readable and meets finger-friendly tap-target standards.\n *   (Apple HIG: 44pt min. Material: 48dp min. Pill height: ~46px.)\n *\n * HOVER STATE (v12.6 — cursor-revealed plasma)\n *   At rest each link is plain static text. On hover or keyboard focus, a\n *   soft circle grows out from the cursor and tracks it. Inside is a live\n *   plasma: a small canvas driven by layered sine waves over time, scaled up\n *   and smoothed into a continuously morphing gradient mapped to the four\n *   brand colors.\n *\n *   On hover the text knocks out to the surface color (the Background value)\n *   and thickens to semi-bold, with a soft dark halo so it stays legible over\n *   the lighter passages of the field. The bold width is reserved at rest so\n *   the weight change does not shift layout.\n *\n *   The plasma loop only runs while a link is hovered or focused, so idle\n *   links cost nothing. Plasma Speed, Plasma Detail, Plasma Blur, Hover Grow\n *   Speed, Hover Spread, and Hover Chip Radius are all adjustable.\n *   prefers-reduced-motion users get a single frozen plasma frame revealed\n *   instantly, with no grow and no morph.\n *\n * COLOR BALANCE (v12.7)\n *   A sum of sine waves clusters around its midpoint, and the midpoint mapped\n *   to green, so green dominated. Two fixes: the field value is run through a\n *   logistic curve that flattens that central pile-up, so each color gets\n *   roughly equal screen time, and the green stop is given a narrower band in\n *   the ramp while blue runs wider. Same cloud motion, balanced color.\n *\n * BACKGROUND\n *   - Color tint: top-to-bottom linear gradient, Top Opacity and\n *     Bottom Opacity independently adjustable.\n *   - Glass blur: uniform across the whole pill, single Blur control.\n *\n * SLIDE ANIMATION\n *   Animates the `top` property using a pixel value measured via\n *   ResizeObserver. Avoids `transform` because that creates a stacking\n *   context which would break the backdrop-filter blur.\n *\n * SETUP IN FRAMER\n *   1. Drop component onto a page.\n *   2. Width: Fill.\n *   3. Pin position: Fixed, top edge.\n *   4. Component instance Fill: None.\n *   5. Upload your logo.json via the Lottie File control.\n *   6. Set Current Page per page to light the active item.\n *   7. Turn off Hide on Scroll where the menu should stay visible.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicHeight 76\n * @framerIntrinsicWidth 1440\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,useMotionValueEvent,useScroll}from\"framer-motion\";import{useEffect,useRef,useState}from\"react\";// ─── Plasma palette and lookup table (module scope, built once) ───────────\n// The four brand colors as positioned stops on a loop. Green is kept to a\n// narrow band and blue runs wider so green reads as an accent, not the base.\nconst PLASMA_STOPS=[{pos:0,rgb:[78,103,245]},{pos:.3,rgb:[246,80,54]},{pos:.5,rgb:[74,193,36]},{pos:.7,rgb:[255,179,0]},{pos:1,rgb:[78,103,245]}];const PLASMA_LUT=(()=>{const lut=new Uint8ClampedArray(256*3);for(let i=0;i<256;i++){const t=i/256;let k=0;while(k<PLASMA_STOPS.length-1&&t>PLASMA_STOPS[k+1].pos){k++;}const a=PLASMA_STOPS[k];const b=PLASMA_STOPS[Math.min(k+1,PLASMA_STOPS.length-1)];const span=b.pos-a.pos||1;const fr=(t-a.pos)/span;lut[i*3]=a.rgb[0]+(b.rgb[0]-a.rgb[0])*fr;lut[i*3+1]=a.rgb[1]+(b.rgb[1]-a.rgb[1])*fr;lut[i*3+2]=a.rgb[2]+(b.rgb[2]-a.rgb[2])*fr;}return lut;})();// Fills an ImageData buffer with one plasma frame at time t.\n// The raw field (a sum of sines) clusters around its middle, so it is passed\n// through a logistic curve that flattens the distribution before the color\n// lookup. That gives each color roughly equal presence instead of a green bias.\nfunction drawPlasma(data,W,H,t){const cx=W/2;const cy=H/2;let p=0;for(let y=0;y<H;y++){for(let x=0;x<W;x++){const v=Math.sin(x*.18+t)+Math.sin(y*.16-t*1.1)+Math.sin((x+y)*.12+t*.7)+Math.sin(Math.hypot(x-cx,y-cy)*.2-t*1.3);const u=1/(1+Math.exp(-1.2*v));let li=u*256|0;if(li<0)li=0;else if(li>255)li=255;const c=li*3;data[p++]=PLASMA_LUT[c];data[p++]=PLASMA_LUT[c+1];data[p++]=PLASMA_LUT[c+2];data[p++]=255;}}}// ─── Single nav link with its own cursor-revealed plasma ──────────────────\n// When `selected` is true the link is the current page: it renders as an inert\n// span with the plasma removed and a dark outline around its pill.\nfunction PlasmaNavLink(props){const{href,label,speed,resolution,vars,selected}=props;const res=Math.max(8,Math.round(resolution));const aRef=useRef(null);const canvasRef=useRef(null);const rafRef=useRef(null);const imgRef=useRef(null);const tRef=useRef(0);const reducedRef=useRef(false);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;reducedRef.current=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;},[]);function renderFrame(){const cv=canvasRef.current;if(!cv)return;const ctx=cv.getContext(\"2d\");if(!ctx)return;if(!imgRef.current||imgRef.current.width!==res||imgRef.current.height!==res){imgRef.current=ctx.createImageData(res,res);}drawPlasma(imgRef.current.data,res,res,tRef.current);ctx.putImageData(imgRef.current,0,0);}function loop(){tRef.current+=.045*speed;renderFrame();rafRef.current=requestAnimationFrame(loop);}function start(){if(rafRef.current!=null)return;if(reducedRef.current){renderFrame();return;}loop();}function stop(){if(rafRef.current!=null){cancelAnimationFrame(rafRef.current);rafRef.current=null;}}useEffect(()=>()=>stop(),[]);function move(e){const el=aRef.current;if(!el)return;const r=el.getBoundingClientRect();el.style.setProperty(\"--x\",`${e.clientX-r.left}px`);el.style.setProperty(\"--y\",`${e.clientY-r.top}px`);}// Current page: inert pill with a dark outline, no plasma, no navigation.\nif(selected){return /*#__PURE__*/_jsx(\"span\",{className:\"hm-navlink hm-navlink-on\",\"aria-current\":\"page\",style:vars,children:/*#__PURE__*/_jsx(\"span\",{className:\"hm-navlabel\",\"data-text\":label,children:label})});}return /*#__PURE__*/_jsxs(\"a\",{ref:aRef,href:href,className:\"hm-navlink\",style:vars,onMouseEnter:start,onMouseMove:move,onMouseLeave:stop,onFocus:start,onBlur:stop,children:[/*#__PURE__*/_jsx(\"span\",{className:\"hm-plasma\",children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,className:\"hm-plasma-canvas\",width:res,height:res})}),/*#__PURE__*/_jsx(\"span\",{className:\"hm-navlabel\",\"data-text\":label,children:label})]});}function withAlpha(color,alpha){const pct=Math.max(0,Math.min(1,alpha))*100;return`color-mix(in srgb, ${color} ${pct.toFixed(2)}%, transparent)`;}export default function NavMenu(props){const{selected=\"none\",autoHide=true,lottieFile=\"\",autoplayOnLoad=true,staticLogo,mobileLogoScale=1.4,homeLink=\"/\",workLabel=\"WORK\",workLink=\"/case-studies\",articlesLabel=\"ARTICLES\",articlesLink=\"/articles\",aboutLabel=\"ABOUT\",aboutLink=\"/about\",linkGap=32,background=\"#FDFBF5\",textColor=\"#1A1814\",topOpacity=1,bottomOpacity=0,glassBlur=18,cornerRadius=9999,topMargin=16,sideMargin=16,paddingY=12,paddingX=32,showBorder=false,borderColor=\"#E8E3DA\",scrollThreshold=1,plasmaSpeed=1,plasmaDetail=64,plasmaBlur=2,hoverCycleSpeed=350,hoverSpread=260,hoverChipRadius=9999,style}=props;const logoSelected=selected===\"home\";const target=RenderTarget.current();const isCanvas=target===RenderTarget.canvas;const isThumbnail=target===RenderTarget.thumbnail;const isStatic=isCanvas||isThumbnail;// ─── Window width for responsive type and spacing ─────────────────────\nconst[winW,setWinW]=useState(1440);useEffect(()=>{const update=()=>setWinW(window.innerWidth);update();window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);},[]);const isMobile=winW<640;const isTablet=winW>=640&&winW<1024;// Both mobile and tablet floor at 11px — the desktop minimum.\n// Dropping below that breaks readability and finger-target comfort.\nconst fontSize=isMobile||isTablet?\"11px\":\"clamp(11px, 1.05vw, 13px)\";const letterSpacing=isMobile?\"0.18em\":\"0.22em\";const effectiveLinkGap=isMobile?Math.min(linkGap,18):isTablet?Math.min(linkGap,24):linkGap;// ─── Hover chip sizing ────────────────────────────────────────────────\n// Chip padding is reserved at all times so hovering never reflows the row.\n// The container gap is reduced by the chip's horizontal padding so the\n// label-to-label rhythm stays close to the Link Gap you set, while the\n// color areas keep a little breathing room between each other.\nconst chipPadX=isMobile?9:isTablet?12:16;const chipPadY=isMobile?5:isTablet?6:8;const chipMinGap=isMobile?6:isTablet?8:10;const chipGap=Math.max(chipMinGap,effectiveLinkGap-chipPadX*2);// ─── Measured height for slide animation and the root box ─────────────\nconst navRef=useRef(null);const[navHeight,setNavHeight]=useState(48);useEffect(()=>{const node=navRef.current;if(!node)return;const update=()=>{const h=node.getBoundingClientRect().height;if(h>0)setNavHeight(h);};update();const observer=new ResizeObserver(update);observer.observe(node);return()=>observer.disconnect();},[]);// ─── Hide-on-scroll ───────────────────────────────────────────────────\nconst[hidden,setHidden]=useState(false);const{scrollY}=useScroll();useMotionValueEvent(scrollY,\"change\",latest=>{// When Hide on Scroll is off, the handler does nothing and the menu\n// stays pinned. isStatic guards the editor canvas.\nif(isStatic||!autoHide)return;const previous=scrollY.getPrevious()??0;const delta=latest-previous;if(latest<80){setHidden(false);return;}if(delta>scrollThreshold)setHidden(true);else if(delta<-scrollThreshold)setHidden(false);});// ─── Lottie ───────────────────────────────────────────────────────────\nconst lottieContainerRef=useRef(null);const lottieRef=useRef(null);const[lottieFailed,setLottieFailed]=useState(false);useEffect(()=>{if(!lottieFile||!lottieContainerRef.current)return;setLottieFailed(false);let mounted=true;let anim=null;// lottie-web touches navigator at module load, so it is imported here\n// inside the effect. Effects never run during server render, so the\n// library only loads in the browser and the optimization pass stays\n// clean.\nimport(\"lottie-web\").then(mod=>{if(!mounted||!lottieContainerRef.current)return;const lottie=mod.default;try{anim=lottie.loadAnimation({container:lottieContainerRef.current,renderer:\"svg\",loop:false,autoplay:false,path:lottieFile});const handleReady=()=>{if(!mounted||!anim)return;// On the home page the logo is held static, so it reads\n// as a plain mark rather than a play-on-load animation.\nif(autoplayOnLoad&&!isStatic&&!logoSelected){anim.goToAndPlay(0,true);}else{anim.goToAndStop(anim.totalFrames-1,true);}};anim.addEventListener(\"DOMLoaded\",handleReady);anim.addEventListener(\"data_failed\",()=>{if(mounted)setLottieFailed(true);});lottieRef.current=anim;}catch(e){if(mounted)setLottieFailed(true);}}).catch(()=>{if(mounted)setLottieFailed(true);});return()=>{mounted=false;if(anim)anim.destroy();lottieRef.current=null;};},[lottieFile,autoplayOnLoad,isStatic,logoSelected]);function replayLogo(){if(isStatic||logoSelected)return;if(lottieRef.current)lottieRef.current.goToAndPlay(0,true);}// ─── Static fallback resolution ───────────────────────────────────────\nconst staticSrc=typeof staticLogo===\"string\"?staticLogo:staticLogo&&typeof staticLogo===\"object\"?staticLogo.src:\"\";const staticSrcSet=staticLogo&&typeof staticLogo===\"object\"?staticLogo.srcSet:undefined;const useLottie=!!lottieFile&&!lottieFailed;const useStaticImg=!useLottie&&!!staticSrc;// ─── Background ───────────────────────────────────────────────────────\nconst hasGradient=topOpacity>0||bottomOpacity>0;const hasBlur=glassBlur>0;const gradientImage=hasGradient?`linear-gradient(to bottom, ${withAlpha(background,topOpacity)} 0%, ${withAlpha(background,bottomOpacity)} 100%)`:undefined;const linkBase={color:\"inherit\",textDecoration:\"none\",cursor:\"pointer\",outline:\"none\",userSelect:\"none\",transition:\"opacity 200ms ease\",whiteSpace:\"nowrap\"};// Per-link CSS variables. Padding is reserved here so hover never reflows.\nconst chipVars={[\"--hm-grow-dur\"]:`${hoverCycleSpeed}ms`,[\"--hm-spread\"]:`${hoverSpread}px`,[\"--hm-chip-radius\"]:`${hoverChipRadius}px`,[\"--hm-chip-pad-x\"]:`${chipPadX}px`,[\"--hm-chip-pad-y\"]:`${chipPadY}px`,[\"--hm-plasma-blur\"]:`${plasmaBlur}px`,[\"--hm-hover-text\"]:background,[\"--hm-selected-border\"]:textColor};const hiddenTop=-(navHeight+topMargin+16);// The root box gives the component a real, defined height instead of 0px.\n// The nav floats absolutely inside it. pointer-events are off here so the\n// empty band stays click-through and only the pill itself is interactive.\nconst rootStyle={...style,position:\"relative\",width:\"100%\",height:topMargin+navHeight,pointerEvents:\"none\"};// Logo artwork — shared by the linked and the selected (static) wrappers.\nconst logoInner=useLottie?/*#__PURE__*/_jsx(\"div\",{ref:lottieContainerRef,role:\"img\",\"aria-label\":\"hu__man\",style:{height:\"clamp(22px, 2.8vw, 36px)\",aspectRatio:\"814 / 448\",display:\"block\",pointerEvents:\"none\"}}):useStaticImg?/*#__PURE__*/_jsx(\"img\",{src:staticSrc,srcSet:staticSrcSet,alt:\"Home\",style:{height:\"clamp(18px, 2.2vw, 28px)\",width:\"auto\",display:\"block\",pointerEvents:\"none\"}}):/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 40 32\",xmlns:\"http://www.w3.org/2000/svg\",style:{height:\"clamp(18px, 2.2vw, 28px)\",width:\"auto\",display:\"block\",fill:textColor,pointerEvents:\"none\"},\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M0 32 V12 L20 0 L40 12 V32 Z\"})});// On phones the logo is scaled up with a transform. A transform paints the\n// logo larger without changing its layout box, so the pill height and the\n// links never move. It grows from the left edge so the mark stays aligned,\n// and stays vertically centered. Desktop and tablet are untouched.\nconst logoWrapperStyle={...linkBase,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,padding:\"4px 0\",cursor:logoSelected?\"default\":\"pointer\",transform:isMobile?`scale(${mobileLogoScale})`:undefined,transformOrigin:\"left center\"};return /*#__PURE__*/_jsxs(\"div\",{style:rootStyle,children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .hm-navlink {\n                    position: relative;\n                    overflow: hidden;\n                    display: inline-flex;\n                    align-items: center;\n                    color: inherit;\n                    text-decoration: none;\n                    cursor: pointer;\n                    outline: none;\n                    -webkit-user-select: none;\n                    user-select: none;\n                    white-space: nowrap;\n                    padding: var(--hm-chip-pad-y, 8px) var(--hm-chip-pad-x, 16px);\n                    border-radius: var(--hm-chip-radius, 9999px);\n                    background-color: transparent;\n                    -webkit-tap-highlight-color: transparent;\n                }\n                .hm-navlink-on {\n                    outline: 1.5px solid var(--hm-selected-border, #1A1814);\n                    outline-offset: 0;\n                    cursor: default;\n                    pointer-events: none;\n                }\n                .hm-plasma {\n                    position: absolute;\n                    left: var(--x, 50%);\n                    top: var(--y, 50%);\n                    width: 0;\n                    height: 0;\n                    transform: translate(-50%, -50%);\n                    border-radius: 50%;\n                    overflow: hidden;\n                    pointer-events: none;\n                    filter: blur(var(--hm-plasma-blur, 2px));\n                    transition: width var(--hm-grow-dur, 350ms) ease,\n                        height var(--hm-grow-dur, 350ms) ease;\n                }\n                .hm-plasma-canvas {\n                    position: absolute;\n                    left: 50%;\n                    top: 50%;\n                    width: 100%;\n                    height: 100%;\n                    transform: translate(-50%, -50%);\n                    display: block;\n                }\n                .hm-navlabel {\n                    position: relative;\n                    pointer-events: none;\n                    display: inline-flex;\n                    flex-direction: column;\n                    align-items: center;\n                }\n                .hm-navlabel::after {\n                    content: attr(data-text);\n                    font-weight: 600;\n                    height: 0;\n                    visibility: hidden;\n                    pointer-events: none;\n                }\n                .hm-navlink:not(.hm-navlink-on):hover,\n                .hm-navlink:not(.hm-navlink-on):focus-visible {\n                    color: var(--hm-hover-text, #FDFBF5);\n                    text-shadow: 0 0 1px rgba(26, 24, 20, 0.5),\n                        0 1px 8px rgba(26, 24, 20, 0.45);\n                }\n                .hm-navlink:not(.hm-navlink-on):hover .hm-navlabel,\n                .hm-navlink:not(.hm-navlink-on):focus-visible .hm-navlabel {\n                    font-weight: 600;\n                }\n                .hm-navlink:not(.hm-navlink-on):hover .hm-plasma,\n                .hm-navlink:not(.hm-navlink-on):focus-visible .hm-plasma {\n                    width: var(--hm-spread, 260px);\n                    height: var(--hm-spread, 260px);\n                }\n                @media (prefers-reduced-motion: reduce) {\n                    .hm-plasma {\n                        transition: none;\n                    }\n                }\n            `}),/*#__PURE__*/_jsxs(motion.nav,{ref:navRef,initial:{top:topMargin},animate:{top:!isStatic&&autoHide&&hidden?hiddenTop:topMargin},transition:{type:\"spring\",stiffness:320,damping:32,mass:.6},style:{position:\"absolute\",top:topMargin,left:0,right:0,width:`calc(100% - ${sideMargin*2}px)`,marginInline:\"auto\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",padding:`${paddingY}px ${paddingX}px`,color:textColor,fontFamily:\"'Ancizar Sans', sans-serif\",fontSize,letterSpacing,textTransform:\"uppercase\",boxSizing:\"border-box\",WebkitFontSmoothing:\"antialiased\",backgroundImage:gradientImage,backgroundColor:hasGradient?\"transparent\":background,backdropFilter:hasBlur?`blur(${glassBlur}px) saturate(140%)`:undefined,WebkitBackdropFilter:hasBlur?`blur(${glassBlur}px) saturate(140%)`:undefined,borderRadius:cornerRadius,border:showBorder?`1px solid ${borderColor}`:\"none\",overflow:\"hidden\",zIndex:9999,pointerEvents:\"auto\"},children:[logoSelected?/*#__PURE__*/_jsx(\"div\",{\"aria-current\":\"page\",style:logoWrapperStyle,children:logoInner}):/*#__PURE__*/_jsx(\"a\",{href:homeLink,\"aria-label\":\"Home\",onMouseEnter:replayLogo,onTouchStart:replayLogo,onClick:replayLogo,style:logoWrapperStyle,children:logoInner}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:chipGap,marginRight:-chipPadX},children:[/*#__PURE__*/_jsx(PlasmaNavLink,{href:workLink,label:workLabel,speed:plasmaSpeed,resolution:plasmaDetail,vars:chipVars,selected:selected===\"work\"}),/*#__PURE__*/_jsx(PlasmaNavLink,{href:articlesLink,label:articlesLabel,speed:plasmaSpeed,resolution:plasmaDetail,vars:chipVars,selected:selected===\"articles\"}),/*#__PURE__*/_jsx(PlasmaNavLink,{href:aboutLink,label:aboutLabel,speed:plasmaSpeed,resolution:plasmaDetail,vars:chipVars,selected:selected===\"about\"})]})]})]});}addPropertyControls(NavMenu,{selected:{type:ControlType.Enum,title:\"Current Page\",defaultValue:\"none\",options:[\"none\",\"home\",\"work\",\"articles\",\"about\"],optionTitles:[\"None\",\"Home\",\"Work\",\"Articles\",\"About\"],description:\"Marks the active page. That item shows its on-state and stops linking.\"},autoHide:{type:ControlType.Boolean,title:\"Hide on Scroll\",defaultValue:true,enabledTitle:\"Hide\",disabledTitle:\"Pinned\",description:\"Off keeps the menu visible at all times. Turn off on the case studies index.\"},lottieFile:{type:ControlType.File,title:\"Lottie File\",allowedFileTypes:[\"json\"],description:\"Upload your logo.json directly.\"},autoplayOnLoad:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:true,enabledTitle:\"On load\",disabledTitle:\"Hold final\",description:\"Per page. Plays once on mount. Hover and click always replay.\",hidden:({lottieFile})=>!lottieFile},staticLogo:{type:ControlType.ResponsiveImage,title:\"Static Logo\",description:\"Used when no Lottie file is set.\"},mobileLogoScale:{type:ControlType.Number,title:\"Mobile Logo Scale\",defaultValue:1.4,min:1,max:2,step:.05,description:\"Enlarges the logo on phones only, painting it larger without resizing the pill. Very large values can reach the pill's clipped edge.\"},homeLink:{type:ControlType.Link,title:\"Logo Link\"},workLabel:{type:ControlType.String,title:\"Work Label\",defaultValue:\"WORK\"},workLink:{type:ControlType.Link,title:\"Work Link\"},articlesLabel:{type:ControlType.String,title:\"Articles Label\",defaultValue:\"ARTICLES\"},articlesLink:{type:ControlType.Link,title:\"Articles Link\"},aboutLabel:{type:ControlType.String,title:\"About Label\",defaultValue:\"ABOUT\"},aboutLink:{type:ControlType.Link,title:\"About Link\"},linkGap:{type:ControlType.Number,title:\"Link Gap\",defaultValue:32,min:8,max:80,step:4,unit:\"px\",description:\"Spacing between nav links. Auto-tightens on smaller screens.\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FDFBF5\",description:\"Color of the gradient tint. Also the hover text color.\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#1A1814\"},topOpacity:{type:ControlType.Number,title:\"Top Opacity\",defaultValue:1,min:0,max:1,step:.02,description:\"Tint opacity at the top of the pill.\"},bottomOpacity:{type:ControlType.Number,title:\"Bottom Opacity\",defaultValue:0,min:0,max:1,step:.02,description:\"Tint opacity at the bottom of the pill.\"},glassBlur:{type:ControlType.Number,title:\"Blur\",defaultValue:18,min:0,max:40,step:1,unit:\"px\",description:\"Uniform backdrop blur strength.\"},cornerRadius:{type:ControlType.Number,title:\"Corner Radius\",defaultValue:9999,min:0,max:9999,step:1,unit:\"px\",description:\"9999 = full pill. Lower for softer rectangles.\"},topMargin:{type:ControlType.Number,title:\"Top Margin\",defaultValue:16,min:0,max:80,step:1,unit:\"px\",description:\"Gap between viewport top and the pill.\"},sideMargin:{type:ControlType.Number,title:\"Side Margin\",defaultValue:16,min:0,max:200,step:1,unit:\"px\",description:\"Gap on left and right of the pill.\"},paddingY:{type:ControlType.Number,title:\"Vertical Padding\",defaultValue:12,min:0,max:40,step:1,unit:\"px\"},paddingX:{type:ControlType.Number,title:\"Horizontal Padding\",defaultValue:32,min:0,max:80,step:1,unit:\"px\"},showBorder:{type:ControlType.Boolean,title:\"Border\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#E8E3DA\",hidden:({showBorder})=>!showBorder},scrollThreshold:{type:ControlType.Number,title:\"Scroll Sensitivity\",defaultValue:1,min:1,max:30,unit:\"px\",description:\"Pixels of scroll movement before the menu hides or shows.\",hidden:({autoHide})=>autoHide===false},plasmaSpeed:{type:ControlType.Number,title:\"Plasma Speed\",defaultValue:1,min:.2,max:3,step:.1,description:\"How fast the color field morphs while hovering.\"},plasmaDetail:{type:ControlType.Number,title:\"Plasma Detail\",defaultValue:64,min:16,max:128,step:4,description:\"Lower is a chunkier wash, higher is finer color.\"},plasmaBlur:{type:ControlType.Number,title:\"Plasma Blur\",defaultValue:2,min:0,max:12,step:.5,unit:\"px\",description:\"Softness of the plasma edge and texture.\"},hoverCycleSpeed:{type:ControlType.Number,title:\"Hover Grow Speed\",defaultValue:350,min:120,max:1200,step:10,unit:\"ms\",description:\"How fast the plasma floods in from the cursor.\"},hoverSpread:{type:ControlType.Number,title:\"Hover Spread\",defaultValue:260,min:80,max:600,step:10,unit:\"px\",description:\"How far the color reaches across the link.\"},hoverChipRadius:{type:ControlType.Number,title:\"Hover Chip Radius\",defaultValue:9999,min:0,max:9999,step:1,unit:\"px\",description:\"Rounding of the color area behind each link.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NavMenu\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Navigation.map","// Generated by Framer (b3492b4)\nexport default function metadata(params,activeLocale){return{description:\"Made with Framer\",robots:\"max-image-preview:large\",title:\"My Framer Site\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}