{"version":3,"file":"script_main.GyNQFwlC.mjs","names":["mask","Base","MotionSVG","SVG","svg","getProps","Icon","React.forwardRef","getProps","React.forwardRef","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","transition3","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","RichText","ANavName","serializationHash","variantClassNames","matchVariant","React.useContext","React.useMemo","humanReadableVariantMap","React.Fragment","getProps","React.forwardRef","useRef","React.useId","RichText","ChevronDown","X","React.useState","React.useRef","React.useMemo","_Fragment","useRef","useId","useState","useMemo","useCallback","startTransition","_Fragment","useRef","useState","useCallback","MONO","cue","React.useState","React.useRef","React.useReducer","React.useRef","React.useState","_Fragment","PortfolioOSIsland","PortfolioOSIslandInfo","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","className","PropertyOverrides","RichText","React.Fragment","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","React.createElement","Template1","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/N337XogaeeiHiht2ZN9f/pwB48zFyU8FvNKh5lIfY/ZodASoCsI.js","https:/framerusercontent.com/modules/s9ICNln7If6dbx787s8J/bsSFrd6i3uQgWvg7HD50/gpufTpA3b.js","https:/framerusercontent.com/modules/elL93DMb3d9MmTdkWhLp/e4EvKRFEyQWhoyHegmR4/bNQCYH51z.js","https:/framerusercontent.com/modules/vrvWNVJUDdFnMNcfTR4S/FpW19s9E1Vd0j6wVniXR/oAGKuZ5Pq.js","https:/framerusercontent.com/modules/buOYZDWkwEXGKGV81qIr/oNLqsKSmxZRp89kE4GRu/GrainLayer.js","https:/framerusercontent.com/modules/OUgbJWuCdjmD3eMfBBxK/TUXr5dVCsGmGhbRi2rFO/PortfolioContextIsland_v3.js","https:/framerusercontent.com/modules/7feFfjx0bwva9yQClmdZ/2Rkgp1UmG4RUZN9d8qO6/Preloader.js","https:/framerusercontent.com/modules/HaxUFukcO4X7ixVvsA7D/OTyaSGDKKIBMyvvCDkx5/SensoryLayer.js","https:/framerusercontent.com/modules/kWp6IvEgo6DhDOj3zIsi/bmEgjQaiP8o9T0t1V3Qx/SiteSound.js","https:/framerusercontent.com/modules/F18ToHdjEwVy7DWgSqJo/urCkGJhLadnp7NkMWWn2/dWAd2Wq3O.js","framer:toplevel/main"],"sourcesContent":["// Generated by Framer (85eaff3)\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 0 0 L 6 6 L 12 0\" fill=\"transparent\" height=\"6px\" id=\"HLE2KBXxw\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--js9iwy, 2)\" stroke=\"var(--1m973uw, rgb(0,0,0))\" transform=\"translate(6 9)\" width=\"12px\"/></svg>';const getProps=({color,height,id,width,width1,...props})=>{return{...props,JEeZYcamG:width1??props.JEeZYcamG??2,P_DcoRcrY:color??props.P_DcoRcrY??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,P_DcoRcrY,JEeZYcamG,...restProps}=getProps(props);const href=useSVGTemplate(\"4024583230\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-rjFuH\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m973uw\":P_DcoRcrY,\"--js9iwy\":JEeZYcamG,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-rjFuH { -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 {\"P_DcoRcrY\":\"color\",\"JEeZYcamG\":\"width1\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Chevron Down\",\"color\":{\"type\":\"variable\",\"value\":\"1m973uw\"},\"set\":{\"localId\":\"vectorSet/ZsiCCGPvG\",\"id\":\"ZsiCCGPvG\",\"moduleId\":\"Y7SpbVH16cWqMhj75z1M\"}}\n */const Icon=withCSS(Component,css,\"framer-rjFuH\");Icon.displayName=\"Chevron Down\";export default Icon;addPropertyControls(Icon,{P_DcoRcrY:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},JEeZYcamG:{defaultValue:2,displayStepper:true,hidden:false,max:16,min:1,title:\"Width\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Chevron Down\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1m973uw\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/ZsiCCGPvG\\\",\\\"id\\\":\\\"ZsiCCGPvG\\\",\\\"moduleId\\\":\\\"Y7SpbVH16cWqMhj75z1M\\\"}}\",\"framerVariables\":\"{\\\"P_DcoRcrY\\\":\\\"color\\\",\\\"JEeZYcamG\\\":\\\"width1\\\"}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (85eaff3)\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 12 0 L 0 12\" fill=\"transparent\" height=\"12px\" id=\"qMvRy61Gj\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--js9iwy, 2)\" stroke=\"var(--1m973uw, rgb(0,0,0))\" transform=\"translate(6 6)\" width=\"12px\"/><path d=\"M 0 0 L 12 12\" fill=\"transparent\" height=\"12px\" id=\"YX0AMSC6b\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--js9iwy, 2)\" stroke=\"var(--1m973uw, rgb(0,0,0))\" transform=\"translate(6 6)\" width=\"12px\"/></svg>';const getProps=({color,height,id,width,width1,...props})=>{return{...props,JEeZYcamG:width1??props.JEeZYcamG??2,P_DcoRcrY:color??props.P_DcoRcrY??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,P_DcoRcrY,JEeZYcamG,...restProps}=getProps(props);const href=useSVGTemplate(\"2710857035\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-RiU4T\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m973uw\":P_DcoRcrY,\"--js9iwy\":JEeZYcamG,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-RiU4T { -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 {\"P_DcoRcrY\":\"color\",\"JEeZYcamG\":\"width1\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"X\",\"color\":{\"type\":\"variable\",\"value\":\"1m973uw\"},\"set\":{\"localId\":\"vectorSet/ZsiCCGPvG\",\"id\":\"ZsiCCGPvG\",\"moduleId\":\"Y7SpbVH16cWqMhj75z1M\"}}\n */const Icon=withCSS(Component,css,\"framer-RiU4T\");Icon.displayName=\"X\";export default Icon;addPropertyControls(Icon,{P_DcoRcrY:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},JEeZYcamG:{defaultValue:2,displayStepper:true,hidden:false,max:16,min:1,title:\"Width\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"X\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1m973uw\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/ZsiCCGPvG\\\",\\\"id\\\":\\\"ZsiCCGPvG\\\",\\\"moduleId\\\":\\\"Y7SpbVH16cWqMhj75z1M\\\"}}\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"P_DcoRcrY\\\":\\\"color\\\",\\\"JEeZYcamG\\\":\\\"width1\\\"}\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (719f2c1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={nvHWytKzF:{hover:true}};const cycleOrder=[\"yl0eJmA6m\",\"jDpaVxkR5\",\"nvHWytKzF\"];const serializationHash=\"framer-YgqmO\";const variantClassNames={jDpaVxkR5:\"framer-v-a6f0au\",nvHWytKzF:\"framer-v-1fkml64\",yl0eJmA6m:\"framer-v-1v5l59e\"};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 transition2={bounce:.14,delay:0,duration:.48,type:\"spring\"};const transition3={bounce:.1,delay:0,duration:.64,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Variant 1\":\"yl0eJmA6m\",\"Variant 2\":\"jDpaVxkR5\",\"Variant 3\":\"nvHWytKzF\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"yl0eJmA6m\"};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"yl0eJmA6m\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"nvHWytKzF-hover\")return true;if(baseVariant===\"nvHWytKzF\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({\"nvHWytKzF-hover\":{value:transition3},nvHWytKzF:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"ExfZwNtMV\"},motionChild:true,nodeId:\"yl0eJmA6m\",openInNewTab:false,scopeId:\"bNQCYH51z\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1v5l59e\",className,classNames)} framer-c3w5ks`,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"yl0eJmA6m\",ref:refBinding,style:{...style},...addPropertyOverrides({jDpaVxkR5:{\"data-framer-name\":\"Variant 2\"},nvHWytKzF:{\"data-framer-name\":\"Variant 3\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1f8bwzq\",\"data-framer-name\":\"Pierre\",layoutDependency:layoutDependency,layoutId:\"vrQdhLPQC\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7TmV1ZSBNYWNoaW5hIFVsdHJhYm9sZA==\",\"--framer-font-family\":'\"Neue Machina Ultrabold\", \"Neue Machina Ultrabold Placeholder\", sans-serif',\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.48px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-58792ef7-322d-4215-8bf4-27afb8abed08))\"},children:\"Pierre\"})}),className:\"framer-ytdvfm\",\"data-framer-name\":\"Pierre\",fonts:[\"CUSTOMV2;Neue Machina Ultrabold\"],layoutDependency:layoutDependency,layoutId:\"ZDVpEcZRq\",style:{\"--extracted-r6o4lv\":\"var(--token-58792ef7-322d-4215-8bf4-27afb8abed08)\",\"--framer-paragraph-spacing\":\"0px\"},variants:{jDpaVxkR5:{\"--extracted-r6o4lv\":\"var(--token-209b4a09-d830-494c-91a4-728ba6613c92)\"},nvHWytKzF:{\"--extracted-r6o4lv\":\"var(--token-209b4a09-d830-494c-91a4-728ba6613c92)\"}},verticalAlignment:\"center\",withExternalLayout:true,...addPropertyOverrides({\"nvHWytKzF-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7TmV1ZSBNYWNoaW5hIFVsdHJhYm9sZA==\",\"--framer-font-family\":'\"Neue Machina Ultrabold\", \"Neue Machina Ultrabold Placeholder\", sans-serif',\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.48px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-209b4a09-d830-494c-91a4-728ba6613c92))\"},children:\"Pierre\"})})},jDpaVxkR5:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7TmV1ZSBNYWNoaW5hIFVsdHJhYm9sZA==\",\"--framer-font-family\":'\"Neue Machina Ultrabold\", \"Neue Machina Ultrabold Placeholder\", sans-serif',\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.48px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-209b4a09-d830-494c-91a4-728ba6613c92))\"},children:\"Pierre\"})})},nvHWytKzF:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7TmV1ZSBNYWNoaW5hIFVsdHJhYm9sZA==\",\"--framer-font-family\":'\"Neue Machina Ultrabold\", \"Neue Machina Ultrabold Placeholder\", sans-serif',\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.48px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-209b4a09-d830-494c-91a4-728ba6613c92))\"},children:\"PB\"})})}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-7qr0hn\",\"data-framer-name\":\"div.dot-pb\",layoutDependency:layoutDependency,layoutId:\"sidc1487l\",style:{backgroundColor:\"var(--token-4cf795c3-6881-49a1-840d-4f49cd146df9, rgb(183, 255, 60))\",borderBottomLeftRadius:7.5,borderBottomRightRadius:7.5,borderTopLeftRadius:7.5,borderTopRightRadius:7.5}}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-19e7f7w\",\"data-framer-name\":\"Byrne\",layoutDependency:layoutDependency,layoutId:\"ftZoRegnI\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7TmV1ZSBNYWNoaW5hIFVsdHJhYm9sZA==\",\"--framer-font-family\":'\"Neue Machina Ultrabold\", \"Neue Machina Ultrabold Placeholder\", sans-serif',\"--framer-font-size\":\"17px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.48px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-58792ef7-322d-4215-8bf4-27afb8abed08))\"},children:\"Byrne\"})}),className:\"framer-15il2h0\",\"data-framer-name\":\"Byrne\",fonts:[\"CUSTOMV2;Neue Machina Ultrabold\"],layoutDependency:layoutDependency,layoutId:\"w5hWwLcas\",style:{\"--extracted-r6o4lv\":\"var(--token-58792ef7-322d-4215-8bf4-27afb8abed08)\",\"--framer-paragraph-spacing\":\"0px\"},variants:{jDpaVxkR5:{\"--extracted-r6o4lv\":\"var(--token-209b4a09-d830-494c-91a4-728ba6613c92)\"}},verticalAlignment:\"center\",withExternalLayout:true,...addPropertyOverrides({jDpaVxkR5:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7TmV1ZSBNYWNoaW5hIFVsdHJhYm9sZA==\",\"--framer-font-family\":'\"Neue Machina Ultrabold\", \"Neue Machina Ultrabold Placeholder\", sans-serif',\"--framer-font-size\":\"17px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.48px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-209b4a09-d830-494c-91a4-728ba6613c92))\"},children:\"Byrne\"})})}},baseVariant,gestureVariant)})})]})})})})});});const css=[\".framer-YgqmO.framer-c3w5ks, .framer-YgqmO .framer-c3w5ks { display: block; }\",\".framer-YgqmO.framer-1v5l59e { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 3.6px; height: min-content; justify-content: flex-start; overflow: visible; padding: 6px 6px 6px 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-YgqmO .framer-1f8bwzq, .framer-YgqmO .framer-19e7f7w { 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: min-content; }\",\".framer-YgqmO .framer-ytdvfm, .framer-YgqmO .framer-15il2h0 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-YgqmO .framer-7qr0hn { flex: none; height: 5px; position: relative; width: 5px; }\",\".framer-YgqmO.framer-v-1fkml64.framer-1v5l59e { cursor: pointer; justify-content: center; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 27\n * @framerIntrinsicWidth 103\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"jDpaVxkR5\":{\"layout\":[\"auto\",\"auto\"]},\"nvHWytKzF\":{\"layout\":[\"auto\",\"auto\"]},\"om31VlGaf\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerbNQCYH51z=withCSS(Component,css,\"framer-YgqmO\");export default FramerbNQCYH51z;FramerbNQCYH51z.displayName=\"a.nav-name\";FramerbNQCYH51z.defaultProps={height:27,width:103};addPropertyControls(FramerbNQCYH51z,{variant:{options:[\"yl0eJmA6m\",\"jDpaVxkR5\",\"nvHWytKzF\"],optionTitles:[\"Variant 1\",\"Variant 2\",\"Variant 3\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerbNQCYH51z,[{explicitInter:true,fonts:[{cssFamilyName:\"Neue Machina Ultrabold\",source:\"custom\",style:\"normal\",uiFamilyName:\"Neue Machina\",url:\"https://framerusercontent.com/assets/imEtCatqt2GDeP4pZqUZxictts.woff2\",weight:\"800\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerbNQCYH51z\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"103\",\"framerIntrinsicHeight\":\"27\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"jDpaVxkR5\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"nvHWytKzF\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"om31VlGaf\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./bNQCYH51z.map","// Generated by Framer (a050651)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,Instance,Link,RichText,runTasksWithYield,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import ChevronDown from\"https://framerusercontent.com/modules/N337XogaeeiHiht2ZN9f/pwB48zFyU8FvNKh5lIfY/ZodASoCsI.js\";import X from\"https://framerusercontent.com/modules/s9ICNln7If6dbx787s8J/bsSFrd6i3uQgWvg7HD50/gpufTpA3b.js\";import ANavName from\"https://framerusercontent.com/modules/elL93DMb3d9MmTdkWhLp/e4EvKRFEyQWhoyHegmR4/bNQCYH51z.js\";const ANavNameFonts=getFonts(ANavName);const MotionNavWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.nav));const cycleOrder=[\"MTcWbwqd9\",\"c_fm1f6k3\",\"SvAJn9sIh\",\"BULDizivv\",\"KhcE52E1Q\"];const serializationHash=\"framer-gyy9K\";const variantClassNames={BULDizivv:\"framer-v-ss5k5q\",c_fm1f6k3:\"framer-v-hhf0pt\",KhcE52E1Q:\"framer-v-1mwz3g0\",MTcWbwqd9:\"framer-v-2hrod6\",SvAJn9sIh:\"framer-v-557oid\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const sdYwioINx=undefined;const transition1={bounce:.18,delay:0,duration:.32,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const transition2={delay:0,duration:.14,ease:[.22,.61,.36,1],type:\"tween\"};const animation={backgroundColor:\"rgba(255, 255, 255, 0.06)\",opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2};const transition3={delay:0,duration:.1,ease:[.22,.61,.36,1],type:\"tween\"};const animation1={backgroundColor:\"rgba(255, 255, 255, 0.1)\",opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition3};const transition4={delay:0,duration:.18,ease:[.22,.61,.36,1],type:\"tween\"};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 transition5={delay:0,duration:.26,ease:[.22,1,.36,1],type:\"tween\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition5,x:0,y:0};const animation3={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:-8};const animation4={backgroundColor:\"rgba(255, 255, 255, 0.09)\",boxShadow:\"inset 0px 0px 0px 1px rgba(255, 255, 255, 0.06)\",opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition3};const humanReadableVariantMap={Completion:\"KhcE52E1Q\",Idle:\"MTcWbwqd9\",Open:\"c_fm1f6k3\",Page:\"SvAJn9sIh\",Section:\"BULDizivv\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,meta,width,...props})=>{return{...props,sdYwioINx:meta??props.sdYwioINx??\"Scroll to explore\",variant:humanReadableVariantMap[props.variant]??props.variant??\"MTcWbwqd9\"};};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,sdYwioINx,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"MTcWbwqd9\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"c_fm1f6k3\")return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"c_fm1f6k3\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-2hrod6\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Idle\",layoutDependency:layoutDependency,layoutId:\"MTcWbwqd9\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(255, 255, 255, 0.12)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backdropFilter:\"blur(16px)\",background:\"linear-gradient(180deg, var(--token-cdd6fd48-d19a-4dc1-82de-ecd4e918c773, rgba(255, 255, 255, 0.06)) 0%, var(--token-a01f5cdf-3733-4f8f-afaa-27e60af05aab, rgba(255, 255, 255, 0.04)) 52%, var(--token-b9c9d69d-ecfe-4c1f-bdef-034fb8876781, rgba(255, 255, 255, 0.1)) 100%)\",borderBottomLeftRadius:999,borderBottomRightRadius:999,borderTopLeftRadius:999,borderTopRightRadius:999,boxShadow:\"inset 0px 1px 0px 0px rgba(255, 255, 255, 0.06), 0px 2px 8px 0px rgba(0, 0, 0, 0.18), 0px 12px 32px 0px rgba(0, 0, 0, 0.3)\",WebkitBackdropFilter:\"blur(16px)\",...style},variants:{c_fm1f6k3:{borderBottomLeftRadius:20,borderBottomRightRadius:20,borderTopLeftRadius:20,borderTopRightRadius:20,boxShadow:\"inset 0px 1px 0px 0px rgba(255, 255, 255, 0.06), 0px 2px 8px 0px rgba(0, 0, 0, 0.18), 0px 18px 46px 0px rgba(0, 0, 0, 0.34)\"}},...addPropertyOverrides({BULDizivv:{\"data-framer-name\":\"Section\"},c_fm1f6k3:{\"data-framer-name\":\"Open\"},KhcE52E1Q:{\"data-framer-name\":\"Completion\"},SvAJn9sIh:{\"data-framer-name\":\"Page\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-apr1ud\",\"data-framer-name\":\"Navigation Row\",layoutDependency:layoutDependency,layoutId:\"ZPIWWAUmb\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:27,y:(componentViewport?.y||0)+0+0+34.25,...addPropertyOverrides({c_fm1f6k3:{y:(componentViewport?.y||0)+0+0+8.5}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-wilbcq-container\",layoutDependency:layoutDependency,layoutId:\"sPCoUc_8z-container\",nodeId:\"sPCoUc_8z\",rendersWithMotion:true,scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsx(ANavName,{height:\"100%\",id:\"sPCoUc_8z\",layoutId:\"sPCoUc_8z\",variant:matchVariant(\"nvHWytKzF\"),width:\"100%\"})})}),/*#__PURE__*/_jsx(Link,{motionChild:true,nodeId:\"RnrcADWVm\",scopeId:\"oAGKuZ5Pq\",...addPropertyOverrides({KhcE52E1Q:{href:{webPageId:\"cB5FSLTUm\"}}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1xtdflm framer-1tkwms0\",\"data-framer-name\":\"Status Copy\",layoutDependency:layoutDependency,layoutId:\"RnrcADWVm\",...addPropertyOverrides({KhcE52E1Q:{\"aria-label\":\"Next project\"}},baseVariant,gestureVariant),children:isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U3BhY2UgR3JvdGVzay1yZWd1bGFy\",\"--framer-font-family\":'\"Space Grotesk\", \"Space Grotesk Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.25em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215,217,221,0.58))\"},children:\"Scroll to explore\"})}),className:\"framer-z6aub3\",\"data-framer-name\":\"Meta\",fonts:[\"FS;Space Grotesk-regular\"],layoutDependency:layoutDependency,layoutId:\"LFQCvnBSU\",style:{\"--extracted-r6o4lv\":\"rgba(215,217,221,0.58)\"},text:sdYwioINx,variants:{BULDizivv:{\"--extracted-r6o4lv\":\"rgba(235,236,240,0.84)\"},KhcE52E1Q:{\"--extracted-r6o4lv\":\"rgba(243,245,247,0.90)\"},SvAJn9sIh:{\"--extracted-r6o4lv\":\"rgba(215,217,221,0.70)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({BULDizivv:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U3BhY2UgR3JvdGVzay1yZWd1bGFy\",\"--framer-font-family\":'\"Space Grotesk\", \"Space Grotesk Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.25em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(235,236,240,0.84))\"},children:\"Scroll to explore\"})})},KhcE52E1Q:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U3BhY2UgR3JvdGVzay1yZWd1bGFy\",\"--framer-font-family\":'\"Space Grotesk\", \"Space Grotesk Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.25em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(243,245,247,0.90))\"},children:\"Scroll to explore\"})})},SvAJn9sIh:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U3BhY2UgR3JvdGVzay1yZWd1bGFy\",\"--framer-font-family\":'\"Space Grotesk\", \"Space Grotesk Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.25em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215,217,221,0.70))\"},children:\"Scroll to explore\"})})}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(motion.button,{\"aria-label\":\"Open portfolio menu\",className:\"framer-1ow41zw\",\"data-framer-name\":\"Open Menu\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"SeW7r8mKD\",style:{borderBottomLeftRadius:\"50%\",borderBottomRightRadius:\"50%\",borderTopLeftRadius:\"50%\",borderTopRightRadius:\"50%\"},whileHover:animation,whileTap:animation1,...addPropertyOverrides({c_fm1f6k3:{\"aria-label\":\"Close portfolio menu\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Transition,{...addPropertyOverrides({c_fm1f6k3:{value:transition4}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Instance,{animated:true,className:\"framer-b9rkj8\",Component:ChevronDown,layoutDependency:layoutDependency,layoutId:\"WeevjmyiR\",style:{\"--1m973uw\":\"rgba(215, 217, 221, 0.9)\",\"--js9iwy\":2,rotate:0},variants:{BULDizivv:{rotate:0},c_fm1f6k3:{rotate:180},KhcE52E1Q:{rotate:0},SvAJn9sIh:{rotate:0}},...addPropertyOverrides({c_fm1f6k3:{Component:X}},baseVariant,gestureVariant)})})})]}),isDisplayed1()&&/*#__PURE__*/_jsxs(MotionNavWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation2,\"aria-label\":\"Portfolio navigation\",className:\"framer-1ksyk97\",\"data-border\":true,\"data-framer-appear-id\":\"1ksyk97\",\"data-framer-name\":\"Menu\",initial:animation3,layoutDependency:layoutDependency,layoutId:\"BXpf0XE6_\",optimized:true,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(255, 255, 255, 0.1)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-296edbd2-e744-40d6-bbc6-526b9f7afc2e, rgba(255, 255, 255, 0.04))\"},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"vnYCqMKa5\"},motionChild:true,nodeId:\"bb7WGs6CJ\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-pfp0zn framer-1tkwms0\",\"data-framer-name\":\"Work\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"bb7WGs6CJ\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, #D7D9DD)\"},children:\"Work\"})}),className:\"framer-1q21zon\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"JQOB_EAlV\",style:{\"--extracted-r6o4lv\":\"#D7D9DD\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", \"Space Mono Placeholder\", monospace',\"--framer-font-size\":\"11px\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"end\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215,217,221,0.60))\"},children:\"⌘ 1\"})}),className:\"framer-zi0xn9\",\"data-framer-name\":\"Quick Key\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"sn0ROdDV3\",style:{\"--extracted-r6o4lv\":\"rgba(215,217,221,0.60)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"f_jnX514d\",openInNewTab:false,scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-zdb98q framer-1tkwms0\",\"data-framer-name\":\"About\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"f_jnX514d\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, #D7D9DD)\"},children:\"About\"})}),className:\"framer-lq9vwt\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"YnucJxKFK\",style:{\"--extracted-r6o4lv\":\"#D7D9DD\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", \"Space Mono Placeholder\", monospace',\"--framer-font-size\":\"11px\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"end\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215,217,221,0.60))\"},children:\"⌘ 2\"})}),className:\"framer-1gwapc1\",\"data-framer-name\":\"Quick Key\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"PIDMhAcRV\",style:{\"--extracted-r6o4lv\":\"rgba(215,217,221,0.60)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"S7KUpVW4p\"},motionChild:true,nodeId:\"f36yx3D0W\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-sj5qa7 framer-1tkwms0\",\"data-framer-name\":\"Writing\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"f36yx3D0W\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, #D7D9DD)\"},children:\"Writing\"})}),className:\"framer-1boy60y\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"V0suBULXT\",style:{\"--extracted-r6o4lv\":\"#D7D9DD\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", \"Space Mono Placeholder\", monospace',\"--framer-font-size\":\"11px\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"end\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215,217,221,0.60))\"},children:\"⌘ 3\"})}),className:\"framer-12ho5ub\",\"data-framer-name\":\"Quick Key\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"Cg_BHNez8\",style:{\"--extracted-r6o4lv\":\"rgba(215,217,221,0.60)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsx(motion.button,{className:\"framer-vzj5ht\",\"data-framer-name\":\"Featured Header\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"rsrMRaFUN\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215, 217, 221, 0.45))\"},children:\"Featured work\"})}),className:\"framer-ync6kd\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"QQRr2i8xd\",style:{\"--extracted-r6o4lv\":\"rgba(215, 217, 221, 0.45)\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"K1rCBvBs5\"},motionChild:true,nodeId:\"cjX6Yp9Qn\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1trma4v framer-1tkwms0\",\"data-framer-name\":\"Lacrosse 26\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"cjX6Yp9Qn\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(215, 217, 221))\"},children:\"Lacrosse 26\"})}),className:\"framer-190yt7f\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"HqrTcoQP7\",style:{\"--extracted-r6o4lv\":\"rgb(215, 217, 221)\"},verticalAlignment:\"top\",withExternalLayout:true})})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"cB5FSLTUm\"},motionChild:true,nodeId:\"VcuuSzjXI\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-v032sh framer-1tkwms0\",\"data-framer-name\":\"Galaxy Hubble\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"VcuuSzjXI\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(215, 217, 221))\"},children:\"Galaxy / Hubble\"})}),className:\"framer-1medh6n\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"vDde_mSiJ\",style:{\"--extracted-r6o4lv\":\"rgb(215, 217, 221)\"},verticalAlignment:\"top\",withExternalLayout:true})})}),isDisplayed()&&/*#__PURE__*/_jsx(Link,{href:{webPageId:\"vim0yFvhh\"},motionChild:true,nodeId:\"HMdPao6kJ\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1j7ciso framer-1tkwms0\",\"data-framer-name\":\"Healthcare DI\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"HMdPao6kJ\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(215, 217, 221))\"},children:\"Healthcare Decision Intelligence\"})}),className:\"framer-dh6ofn\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"QhRG2QCI9\",style:{\"--extracted-r6o4lv\":\"rgb(215, 217, 221)\"},verticalAlignment:\"top\",withExternalLayout:true})})}),isDisplayed()&&/*#__PURE__*/_jsx(Link,{href:{webPageId:\"oLBihwyrT\"},motionChild:true,nodeId:\"hHX_mHdVK\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-6grq96 framer-1tkwms0\",\"data-framer-name\":\"Byrne Method\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"hHX_mHdVK\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(215, 217, 221))\"},children:\"Byrne Method\"})}),className:\"framer-u0c6a9\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"tWdp_I6nu\",style:{\"--extracted-r6o4lv\":\"rgb(215, 217, 221)\"},verticalAlignment:\"top\",withExternalLayout:true})})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"SzdFBxQGC\"},motionChild:true,nodeId:\"SPqUKdFp9\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-6ld6bf framer-1tkwms0\",\"data-framer-name\":\"Figma to Tableau\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"SPqUKdFp9\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(215, 217, 221))\"},children:\"Figma to Tableau\"})}),className:\"framer-g2f38j\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"A_2YKhmiy\",style:{\"--extracted-r6o4lv\":\"rgb(215, 217, 221)\"},verticalAlignment:\"top\",withExternalLayout:true})})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"bR4mRY_2N\"},motionChild:true,nodeId:\"DK9Pf27Z9\",scopeId:\"oAGKuZ5Pq\",...addPropertyOverrides({c_fm1f6k3:{href:{webPageId:\"vnYCqMKa5\"}}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1ultw0w framer-1tkwms0\",\"data-framer-name\":\"StringLabs\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"DK9Pf27Z9\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,...addPropertyOverrides({c_fm1f6k3:{\"data-framer-name\":\"View All\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(215, 217, 221))\"},children:\"View all work →\"})}),className:\"framer-1quctcf\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"I1svkoqk8\",style:{\"--extracted-r6o4lv\":\"rgb(215, 217, 221)\"},verticalAlignment:\"top\",withExternalLayout:true})})}),/*#__PURE__*/_jsx(Link,{href:\"mailto:design@pierrebyrnecreatives.com\",motionChild:true,nodeId:\"ly4xhPelF\",scopeId:\"oAGKuZ5Pq\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-1px6nje framer-1tkwms0\",\"data-framer-name\":\"Contact\",\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"ly4xhPelF\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},whileHover:animation,whileTap:animation4,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, #D7D9DD)\"},children:\"Contact\"})}),className:\"framer-2e0iam\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"t_gDxgPTo\",style:{\"--extracted-r6o4lv\":\"#D7D9DD\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U3BhY2UgTW9uby1yZWd1bGFy\",\"--framer-font-family\":'\"Space Mono\", \"Space Mono Placeholder\", monospace',\"--framer-font-size\":\"11px\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"end\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(215,217,221,0.60))\"},children:\"⌘ 4\"})}),className:\"framer-1el04nh\",\"data-framer-name\":\"Quick Key\",fonts:[\"GF;Space Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"q85h60030\",style:{\"--extracted-r6o4lv\":\"rgba(215,217,221,0.60)\"},verticalAlignment:\"top\",withExternalLayout:true})]})})]}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-ed2btp\",\"data-framer-name\":\"Progress Rail\",layoutDependency:layoutDependency,layoutId:\"bt11wcsBt\",style:{backgroundColor:\"rgba(255, 255, 255, 0.04)\"},variants:{BULDizivv:{backgroundColor:\"rgba(255, 255, 255, 0.06)\"},KhcE52E1Q:{backgroundColor:\"rgba(255, 255, 255, 0.06)\"},SvAJn9sIh:{backgroundColor:\"rgba(255, 255, 255, 0.06)\"}},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-19c94do\",\"data-framer-name\":\"Progress\",layoutDependency:layoutDependency,layoutId:\"Jw4_Ava8E\",style:{background:\"linear-gradient(0deg, var(--token-c75989d9-9812-4335-b69f-1cba2f63917e, rgb(167, 155, 255)) 0%, var(--token-5bb834cc-b836-4d34-9f16-d986cf272c88, rgb(243, 245, 247)) 148%)\",boxShadow:\"none\",opacity:0},variants:{BULDizivv:{boxShadow:\"0px 0px 7px 0px rgba(167, 155, 255, 0.2)\",opacity:.92},KhcE52E1Q:{boxShadow:\"0px 0px 9px 0px rgba(167, 155, 255, 0.26)\",opacity:1},SvAJn9sIh:{opacity:.82}}})})]})})})});});const css=[\".framer-gyy9K.framer-1tkwms0, .framer-gyy9K .framer-1tkwms0 { display: block; }\",\".framer-gyy9K.framer-2hrod6 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 344px; will-change: var(--framer-will-change-override, transform); }\",\".framer-gyy9K .framer-apr1ud { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 3px 16px 3px 16px; position: relative; width: 100%; }\",\".framer-gyy9K .framer-wilbcq-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-gyy9K .framer-1xtdflm { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: center; overflow: visible; padding: 2px 0px 0px 0px; position: relative; width: 1px; }\",'.framer-gyy9K .framer-z6aub3 { --text-truncation-display-inline-for-safari-16: inline; --text-truncation-display-none-for-safari-16: none; --text-truncation-line-break-for-safari-16: \"\\\\A\"; -webkit-box-orient: vertical; -webkit-line-clamp: 1; display: -webkit-box; flex: none; height: auto; overflow: var(--overflow-clip-fallback, clip); position: relative; white-space: pre-line; width: 100%; word-break: break-word; word-wrap: break-word; }',\".framer-gyy9K .framer-1ow41zw { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: 36px; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 36px; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-gyy9K .framer-b9rkj8 { flex: none; height: auto; position: relative; width: 16px; }\",\".framer-gyy9K .framer-1ksyk97 { 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: var(--overflow-clip-fallback, clip); padding: 8px; position: relative; width: 100%; }\",\".framer-gyy9K .framer-pfp0zn, .framer-gyy9K .framer-zdb98q, .framer-gyy9K .framer-sj5qa7, .framer-gyy9K .framer-1trma4v, .framer-gyy9K .framer-v032sh, .framer-gyy9K .framer-1j7ciso, .framer-gyy9K .framer-6grq96, .framer-gyy9K .framer-6ld6bf, .framer-gyy9K .framer-1ultw0w, .framer-gyy9K .framer-1px6nje { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; min-height: 44px; overflow: var(--overflow-clip-fallback, clip); padding: 12px; position: relative; text-decoration: none; width: 100%; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-gyy9K .framer-1q21zon, .framer-gyy9K .framer-zi0xn9, .framer-gyy9K .framer-lq9vwt, .framer-gyy9K .framer-1gwapc1, .framer-gyy9K .framer-1boy60y, .framer-gyy9K .framer-12ho5ub, .framer-gyy9K .framer-ync6kd, .framer-gyy9K .framer-190yt7f, .framer-gyy9K .framer-1medh6n, .framer-gyy9K .framer-dh6ofn, .framer-gyy9K .framer-u0c6a9, .framer-gyy9K .framer-g2f38j, .framer-gyy9K .framer-1quctcf, .framer-gyy9K .framer-2e0iam, .framer-gyy9K .framer-1el04nh { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-gyy9K .framer-vzj5ht { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; min-height: 44px; overflow: var(--overflow-clip-fallback, clip); padding: 16px 12px 6px 12px; position: relative; width: 100%; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-gyy9K .framer-ed2btp { flex: none; height: 2px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 100%; }\",\".framer-gyy9K .framer-19c94do { bottom: 0px; flex: none; left: 0px; position: absolute; top: 0px; width: 38%; }\",\".framer-gyy9K.framer-v-hhf0pt.framer-2hrod6 { width: 399px; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-apr1ud { height: 44px; padding: 3px 8px 3px 16px; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-1xtdflm { height: 1px; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-pfp0zn { order: 0; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-zdb98q { order: 1; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-sj5qa7 { order: 2; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-vzj5ht { order: 4; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-1trma4v { order: 5; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-v032sh { order: 6; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-6ld6bf { order: 9; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-1ultw0w { order: 10; }\",\".framer-gyy9K.framer-v-hhf0pt .framer-1px6nje { order: 3; }\",\".framer-gyy9K.framer-v-1mwz3g0 .framer-1xtdflm { cursor: pointer; text-decoration: none; }\",\".framer-gyy9K.framer-v-1mwz3g0 .framer-19c94do { width: 100%; }\",'.framer-gyy9K[data-border=\"true\"]::after, .framer-gyy9K [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 44\n * @framerIntrinsicWidth 344\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"c_fm1f6k3\":{\"layout\":[\"fixed\",\"auto\"]},\"SvAJn9sIh\":{\"layout\":[\"fixed\",\"auto\"]},\"BULDizivv\":{\"layout\":[\"fixed\",\"auto\"]},\"KhcE52E1Q\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"sdYwioINx\":\"meta\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FrameroAGKuZ5Pq=withCSS(Component,css,\"framer-gyy9K\");export default FrameroAGKuZ5Pq;FrameroAGKuZ5Pq.displayName=\"Portfolio OS Island\";FrameroAGKuZ5Pq.defaultProps={height:44,width:344};addPropertyControls(FrameroAGKuZ5Pq,{variant:{options:[\"MTcWbwqd9\",\"c_fm1f6k3\",\"SvAJn9sIh\",\"BULDizivv\",\"KhcE52E1Q\"],optionTitles:[\"Idle\",\"Open\",\"Page\",\"Section\",\"Completion\"],title:\"Variant\",type:ControlType.Enum},sdYwioINx:{defaultValue:\"Scroll to explore\",title:\"Meta\",type:ControlType.String},onsdYwioINxChange:{changes:\"sdYwioINx\",type:ControlType.ChangeHandler}});addFonts(FrameroAGKuZ5Pq,[{explicitInter:true,fonts:[{cssFamilyName:\"Space Grotesk\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Space Grotesk\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/6DG6HUOGHOB35UGAANBDBVY77OCFNQOA/MX56D7EXTFRCL3EZPNM332VF6D5TDENT/2MGP255ZY2RSFHKW6LNN6W6BWQGC2LUO.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{cssFamilyName:\"Space Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Space Mono\",url:\"https://fonts.gstatic.com/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRUEN2RFq7AwU.woff2\",weight:\"400\"}]},...ANavNameFonts],{supportsExplicitInterCodegen:true});FrameroAGKuZ5Pq.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(ANavName,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FrameroAGKuZ5Pq\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"sdYwioINx\\\":\\\"meta\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"c_fm1f6k3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"SvAJn9sIh\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"BULDizivv\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"KhcE52E1Q\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"344\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"44\",\"framerAutoSizeImages\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * GrainLayer\n *\n * Texture direction A's grain (Pierre, 2026-10-05), as a site-wide base layer under the\n * Horizon & Floor work. It lives once in the layout template, so every page gets the same\n * fine film grain over its flat surfaces.\n *\n * Cost is kept near zero:\n *  - The grain is one small SVG noise tile (about 1 KB) that the browser rasterises once and\n *    repeats; no image request, no canvas, no script per frame.\n *  - Normal blending by default. A fixed layer with plain alpha is composited on the GPU\n *    and never forces the page under it to repaint on scroll; blend modes would.\n *  - Optional flicker shifts the tile a few times a second (off by default) and is skipped\n *    entirely under reduced motion or when the tab is hidden.\n *  - Rendered through a portal into <body>, pointer-events none, below the island.\n */function num(v,f){const n=typeof v===\"number\"?v:parseFloat(String(v));return Number.isFinite(n)?n:f;}function tile(size,frequency){const svg=\"<svg xmlns='http://www.w3.org/2000/svg' width='\"+size+\"' height='\"+size+\"'>\"+\"<filter id='g' x='0' y='0'><feTurbulence type='fractalNoise' baseFrequency='\"+frequency+\"' numOctaves='3' stitchTiles='stitch'/>\"+\"<feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1.6 -0.55'/></filter>\"+\"<rect width='100%' height='100%' filter='url(%23g)'/></svg>\";return'url(\"data:image/svg+xml;utf8,'+svg.replace(/\"/g,\"'\").replace(/#/g,\"%23\").replace(/</g,\"%3C\").replace(/>/g,\"%3E\")+'\")';}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function GrainLayer(props){const isStatic=useIsStaticRenderer();const strength=Math.max(0,Math.min(.3,num(props.strength,.07)));const size=Math.max(64,Math.min(400,num(props.size,160)));const fineness=Math.max(.3,Math.min(1.6,num(props.fineness,.85)));const zIndex=Math.round(num(props.zIndex,90));const flicker=!!props.flicker;const[mounted,setMounted]=React.useState(false);const ref=React.useRef(null);React.useEffect(()=>setMounted(true),[]);React.useEffect(()=>{if(!mounted||!flicker||typeof window===\"undefined\")return;const reduce=window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(reduce)return;let id=0;const step=()=>{const el=ref.current;if(el&&!document.hidden)el.style.backgroundPosition=Math.round(Math.random()*size)+\"px \"+Math.round(Math.random()*size)+\"px\";};id=window.setInterval(step,110);return()=>window.clearInterval(id);},[mounted,flicker,size]);const image=React.useMemo(()=>tile(size,fineness),[size,fineness]);// the canvas gets a small swatch so the layer can be found and tuned in the template\nif(isStatic)return /*#__PURE__*/_jsx(\"div\",{style:{...props.style,width:120,height:40,borderRadius:6,background:\"#07080B\",position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,backgroundImage:image,backgroundSize:size+\"px \"+size+\"px\",opacity:Math.min(1,strength*4)}})});if(!mounted||typeof document===\"undefined\")return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{...props.style,width:1,height:1}});return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{...props.style,width:1,height:1,pointerEvents:\"none\"}}),/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{ref:ref,\"aria-hidden\":true,\"data-grain-layer\":\"\",style:{position:\"fixed\",inset:0,zIndex,pointerEvents:\"none\",backgroundImage:image,backgroundSize:size+\"px \"+size+\"px\",opacity:strength,transform:\"translateZ(0)\"}}),document.body)]});}addPropertyControls(GrainLayer,{strength:{type:ControlType.Number,title:\"Strength\",defaultValue:.07,min:0,max:.3,step:.01},size:{type:ControlType.Number,title:\"Tile\",defaultValue:160,min:64,max:400,step:8,unit:\"px\"},fineness:{type:ControlType.Number,title:\"Fineness\",defaultValue:.85,min:.3,max:1.6,step:.05},flicker:{type:ControlType.Boolean,title:\"Flicker\",defaultValue:false},zIndex:{type:ControlType.Number,title:\"Layer\",defaultValue:90,min:1,max:99,step:1,displayStepper:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GrainLayer\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GrainLayer.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{forwardRef,startTransition,useCallback,useEffect,useMemo,useRef,useState,useId}from\"react\";const PROJECT_DEFINITIONS=[{path:\"/work/lacrosse-26/details\",pageLabel:\"Lacrosse 26\",openingId:\"lacrosse-opening\",openingName:\"Lacrosse 26 Opening\",completionId:\"related-project\",completionName:\"Related Project\",nextProjectLabel:\"StringLab\",nextProjectPath:\"/work/stringlabs/details\",sections:[{id:\"inherited\",previewName:\"Inherited Experience\",label:\"01 / Inherited Experience\"},{id:\"evidence-approach\",previewName:\"Evidence and Approach\",label:\"02 / Evidence & Approach\"},{id:\"system\",previewName:\"Experience System\",label:\"03 / Experience System\"},{id:\"interaction\",previewName:\"Interaction Showcase\",label:\"04 / Interaction Showcase\"},{id:\"design-system-motion\",previewName:\"Design System Motion Accessibility\",label:\"05 / Design, Motion & Access\"},{id:\"evidence\",previewName:\"Evidence and Reflection\",label:\"06 / Evidence & Reflection\"}]},{path:\"/work/galaxy-hubble/details\",pageLabel:\"Galaxy / Hubble\",openingId:\"hubble-opening\",openingName:\"Hubble Opening\",completionId:\"hubble-related-work\",completionName:\"Related Work\",nextProjectLabel:\"The Byrne Method\",nextProjectPath:\"/work/byrne-method/details\",sections:[{id:\"gh-problem\",previewName:\"The problem\",label:\"01 / The Problem\"},{id:\"gh-solution\",previewName:\"The solution\",label:\"02 / The Solution\"},{id:\"hubble-reference-prototype\",previewName:\"Reference Prototype\",label:\"03 / How It Works\"},{id:\"gh-two-audiences\",previewName:\"One report, two audiences\",label:\"04 / Two Audiences\"},{id:\"hubble-quality-release\",previewName:\"Quality and Release System\",label:\"05 / Testing\"}]},{path:\"/work/figma-to-tableau/details\",pageLabel:\"Space Design System\",openingId:\"figma-tableau-opening\",openingName:\"Space Design System Opening\",completionId:\"figma-tableau-related-work\",completionName:\"Related Work\",nextProjectLabel:\"Energy Dashboard\",nextProjectPath:\"/work/energy-dashboard/details\",sections:[{id:\"figma-tableau-prototype\",previewName:\"01 Prototype\",label:\"01 / Prototype\"},{id:\"figma-tableau-system\",previewName:\"02 System\",label:\"02 / System\"},{id:\"figma-tableau-proof\",previewName:\"03 Public Proof\",label:\"03 / Public Proof\"},{id:\"figma-tableau-experiments\",previewName:\"04 Related Experiments\",label:\"04 / Related Experiments\"}]},{path:\"/work/energy-dashboard/details\",pageLabel:\"Energy Dashboard\",openingId:\"energy-opening\",openingName:\"Energy Dashboard Opening\",completionId:\"energy-related-work\",completionName:\"Related Work\",nextProjectLabel:\"My Top Dogs\",nextProjectPath:\"/work/my-top-dogs/details\",sections:[]},{path:\"/work/my-top-dogs/details\",pageLabel:\"My Top Dogs\",openingId:\"my-top-dogs-opening\",openingName:\"My Top Dogs Opening\",completionId:\"my-top-dogs-related-work\",completionName:\"Related Work\",nextProjectLabel:\"Galaxy / Hubble\",nextProjectPath:\"/work/galaxy-hubble/details\",sections:[]},{path:\"/work/healthcare-decision-intelligence/details\",pageLabel:\"Healthcare Intelligence\",openingId:\"healthcare-opening\",openingName:\"Healthcare Decision Intelligence Opening\",completionId:\"healthcare-related-work\",completionName:\"Related Work\",nextProjectLabel:\"DNA Viz\",nextProjectPath:\"/work/dna-viz/details\",sections:[{id:\"first-fill-workflow\",previewName:\"Stakeholder Approved First Fill Workflow\",label:\"01 / First Fill Workflow\"},{id:\"synthetic-decision-workspace\",previewName:\"Synthetic Decision Workspace\",label:\"02 / Decision Workspace\"},{id:\"healthcare-product-suite\",previewName:\"Healthcare Product Suite\",label:\"03 / Product Suite\"}]},{path:\"/work/dna-viz/details\",pageLabel:\"DNA Viz\",openingId:\"dna-opening\",openingName:\"DNA Viz Opening\",completionId:\"dna-related\",completionName:\"Related Work\",nextProjectLabel:\"Lacrosse 26\",nextProjectPath:\"/work/lacrosse-26/details\",sections:[{id:\"dna-system\",previewName:\"The system\",label:\"01 / The System\"},{id:\"dna-architecture\",previewName:\"Architecture\",label:\"02 / Architecture\"},{id:\"dna-foundations\",previewName:\"Color and grammar\",label:\"03 / Color & Grammar\"},{id:\"dna-components\",previewName:\"Components\",label:\"04 / Components\"},{id:\"dna-applied\",previewName:\"Applied\",label:\"05 / Applied\"}]},{path:\"/work/byrne-method/details\",pageLabel:\"Byrne Method\",openingId:\"byrne-method-opening\",openingName:\"Byrne Method Opening\",completionId:\"byrne-related-project\",completionName:\"Related Project\",nextProjectLabel:\"Analytics Study\",nextProjectPath:\"/work/analytics-design-delivery\",sections:[{id:\"byrne-hierarchy\",previewName:\"01 Hierarchy Before Hype\",label:\"01 / Hierarchy Before Hype\"},{id:\"byrne-journey\",previewName:\"02 Journey Architecture\",label:\"02 / Journey Architecture\"},{id:\"byrne-system\",previewName:\"03 System Not Flyer\",label:\"03 / System, Not Flyer\"},{id:\"byrne-prototype\",previewName:\"04 Prototype Evidence\",label:\"04 / Prototype Evidence\"}]},{path:\"/work/stringlabs/details\",pageLabel:\"StringLab\",openingId:\"stringlabs-opening\",openingName:\"StringLab Opening\",completionId:\"stringlabs-related-project\",completionName:\"Next Project\",nextProjectLabel:\"Space Design System\",nextProjectPath:\"/work/figma-to-tableau/details\",sections:[{id:\"stringlab-service\",previewName:\"01 Service\",label:\"01 / Service\"},{id:\"stringlab-profile\",previewName:\"02 Profile\",label:\"02 / Profile\"},{id:\"stringlab-record\",previewName:\"03 On Record\",label:\"03 / On Record\"},{id:\"stringlab-identity\",previewName:\"04 Identity\",label:\"04 / Identity\"},{id:\"stringlab-next\",previewName:\"05 Next\",label:\"05 / Next\"}]},{path:\"/work/analytics-design-delivery\",pageLabel:\"Analytics Study\",openingId:\"ads-hero\",openingName:\"Analytics Study Opening\",completionId:\"ads-related\",completionName:\"Next Project\",nextProjectLabel:\"Healthcare\",nextProjectPath:\"/work/healthcare-decision-intelligence/details\",sections:[{id:\"ads-vitacore\",previewName:\"01 Diagnostics Dashboard\",label:\"01 / Diagnostics Dashboard\"},{id:\"ads-responsive\",previewName:\"02 Delivery\",label:\"02 / Delivery\"}]}];/* Pierre, 2026-10-07: featured pages now run intro → project details → gallery, and the old\n   chapters are hidden, so their section tags (the island's \"01 / The Problem\" status line while\n   scrolling, and the chips in the open menu) are no longer wanted. The lists above are kept for\n   reference only; with them empty the island shows \"<Project> · Case study\" and the progress rail. */for(const project of PROJECT_DEFINITIONS)project.sections=[];const STATIC_PAGE_DEFINITIONS=[{path:\"/work\",markerId:\"portfolio-work-page\",markerName:\"DCI Work Context Marker\",meta:\"Work \\xb7 Selected projects\"},{path:\"/about\",markerId:\"portfolio-about-page\",markerName:\"DCI About Context Marker\",meta:\"About \\xb7 Profile & experience\"},{path:\"/blog\",markerId:\"portfolio-writing-page\",markerName:\"DCI Writing Context Marker\",meta:\"Writing \\xb7 Notes & essays\"}];/* Sampled from the Figma \"State=Completion\" frames — the same lime the rest of the\n   portfolio already uses. Only the new completion affordances use it; the island's\n   existing glass styling is deliberately untouched. */const ACCENT=\"rgba(183, 255, 71, 1)\";const ACCENT_DIM=\"rgba(183, 255, 71, 0.42)\";const ACCENT_SOFT=\"rgba(183, 255, 71, 0.30)\";/** Diameter of the travelling light. Blurred 15px, so it reads far softer than this. *//* The bloom is ambient, not a highlight. These were 0.30/54px and 0.22/16px with a\n   0.45->1 pulse, which glared on an OLED phone in a dark room. */const BLOOM_OUTER=\"0 0 34px 0 rgba(183, 255, 71, 0.15)\";const BLOOM_INNER=\"0 0 12px 0 rgba(183, 255, 71, 0.10)\";/** Width of the lit border band. *//* ── visitor memory ───────────────────────────────────────────────────────────\n   Everything the island remembers goes through this one module. The UI never\n   touches storage directly, so swapping localStorage for a backend later is a\n   change to four functions and nothing else.\n\n   Deliberate choices:\n   - localStorage, not sessionStorage (must survive a tab close) and not cookies\n     (they ride every request and drag in consent obligations for no benefit).\n   - The key is namespaced AND versioned. A future schema change bumps the version\n     and migrates, rather than reading someone's stale shape and crashing.\n   - No identifiers and no personal data — a project slug, a label, an accent, a\n     timestamp, a percentage. First-party and functional; nothing cross-site.\n   - Capped, so it cannot grow without bound.\n   - Every access is wrapped: Safari private mode and disabled-storage browsers\n     THROW on access rather than returning null, which is a classic way to take a\n     whole component down. */const MEMORY_KEY=\"pos.memory.v1\";const MEMORY_LIMIT=8;function readMemory(){if(typeof window===\"undefined\")return[];try{const raw=window.localStorage.getItem(MEMORY_KEY);if(!raw)return[];const parsed=JSON.parse(raw);if(!Array.isArray(parsed))return[];return parsed.filter(e=>e&&typeof e.path===\"string\"&&typeof e.label===\"string\"&&typeof e.at===\"number\").slice(0,MEMORY_LIMIT);}catch{return[];}}function writeMemory(entries){if(typeof window===\"undefined\")return;try{window.localStorage.setItem(MEMORY_KEY,JSON.stringify(entries.slice(0,MEMORY_LIMIT)));}catch{/* private mode, quota, or storage disabled — memory is a nicety, never a\n           dependency, so failing to persist must be silent and harmless */}}function rememberVisit(entry){const next=[{...entry,at:Date.now()},...readMemory().filter(e=>e.path!==entry.path)].slice(0,MEMORY_LIMIT);writeMemory(next);return next;}function clearMemory(){if(typeof window===\"undefined\")return;try{window.localStorage.removeItem(MEMORY_KEY);}catch{/* nothing to do — see writeMemory */}}/** Accent per project, for the Memory Mode swatches. Matches the site's own hues. */const PROJECT_ACCENTS={\"/work/healthcare-decision-intelligence/details\":\"rgb(94, 226, 203)\",\"/work/lacrosse-26/details\":\"rgb(183, 255, 60)\",\"/work/stringlabs/details\":\"rgb(255, 122, 215)\",\"/work/figma-to-tableau/details\":\"rgb(167, 155, 255)\",\"/work/galaxy-hubble/details\":\"rgb(122, 178, 255)\",\"/work/byrne-method/details\":\"rgb(229, 83, 61)\",\"/work/analytics-design-delivery\":\"rgb(255, 168, 92)\",\"/work/dna-viz/details\":\"rgb(186, 206, 232)\",\"/work/energy-dashboard/details\":\"rgb(191, 240, 186)\",\"/work/my-top-dogs/details\":\"rgb(24, 89, 255)\"};const IDLE_CONTEXT={variant:\"Idle\",meta:\"Scroll to explore\",progress:null,nextLabel:null,nextHref:null};function isEditableTarget(target){if(!(target instanceof HTMLElement))return false;const tag=target.tagName.toLowerCase();if(tag===\"input\"||tag===\"textarea\"||tag===\"select\")return true;if(target.isContentEditable)return true;return target.closest('[contenteditable]:not([contenteditable=\"false\"])')!==null;}function normalizePath(pathname){const normalized=pathname.replace(/\\/+$/,\"\");return normalized||\"/\";}function siteHref(href){if(!href||href===\"#\")return href;if(/^([a-z][a-z0-9+.-]*:|\\/\\/|#|\\?)/i.test(href))return href;return href;}function navigateTo(href){if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const normalized=siteHref(href);if(!normalized||normalized===\"#\")return;const a=document.createElement(\"a\");a.href=normalized;a.style.display=\"none\";document.body.appendChild(a);a.click();a.remove();}function clamp(value,minimum,maximum){return Math.min(maximum,Math.max(minimum,value));}function contextsMatch(a,b){return a.variant===b.variant&&a.meta===b.meta&&a.progress===b.progress&&(a.nextLabel??null)===(b.nextLabel??null)&&(a.nextHref??null)===(b.nextHref??null)&&(a.projectPath??null)===(b.projectPath??null)&&(a.sectionId??null)===(b.sectionId??null);}function findContextElement(id,previewName){if(typeof document===\"undefined\")return null;return document.getElementById(id)||document.querySelector(`[data-framer-name=\"${previewName}\"]`);}function findActiveProjectDefinition(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return null;const path=normalizePath(window.location.pathname);return PROJECT_DEFINITIONS.find(project=>normalizePath(project.path)===path)||PROJECT_DEFINITIONS.find(project=>findContextElement(project.openingId,project.openingName))||PROJECT_DEFINITIONS.find(project=>document.querySelector(`[data-framer-name=\"${project.openingName}\"]`))||null;}function findActiveStaticPageDefinition(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return null;const path=normalizePath(window.location.pathname);return STATIC_PAGE_DEFINITIONS.find(page=>normalizePath(page.path)===path)||STATIC_PAGE_DEFINITIONS.find(page=>document.getElementById(page.markerId))||STATIC_PAGE_DEFINITIONS.find(page=>document.querySelector(`[data-framer-name=\"${page.markerName}\"]`))||null;}/* Home has no case-study markers, so completion is keyed off the ShowcaseRoom\n   itself: once the room's own section has scrolled past, the reader has seen all\n   six projects and About is the next thing worth doing. The room is found via its\n   semantic <nav>, which is stable regardless of the WebGL inside it. */function readHomeCompletion(){if(normalizePath(window.location.pathname)!==\"/\")return null;const nav=document.querySelector('nav[aria-label=\"Selected work\"]');const room=(nav?.parentElement)||null;if(!room)return null;const rect=room.getBoundingClientRect();const viewportHeight=Math.max(window.innerHeight||0,1);if(rect.bottom>viewportHeight*.75)return null;return{variant:\"Completion\",meta:\"Selected work complete\",progress:100,nextLabel:\"About\",nextHref:\"/about\"};}function readPortfolioContext(){if(typeof window===\"undefined\"||typeof document===\"undefined\"){return IDLE_CONTEXT;}const project=findActiveProjectDefinition();if(!project){const homeDone=readHomeCompletion();if(homeDone)return homeDone;const staticPage=findActiveStaticPageDefinition();return staticPage?{variant:\"Page\",meta:staticPage.meta,progress:null}:IDLE_CONTEXT;}const viewportHeight=Math.max(window.innerHeight||0,1);const activationLine=viewportHeight*.35;const completion=findContextElement(project.completionId,project.completionName);const opening=findContextElement(project.openingId,project.openingName);let progress=0;if(opening&&completion){const scrollY=window.scrollY||window.pageYOffset||0;const start=scrollY+opening.getBoundingClientRect().top;const end=scrollY+completion.getBoundingClientRect().top;const distance=Math.max(end-start,1);progress=Math.round(clamp((scrollY+activationLine-start)/distance,0,1)*1e3)/10;}if(completion&&completion.getBoundingClientRect().top<=viewportHeight*.65){return{variant:\"Completion\",meta:\"Page complete\",progress:100,nextLabel:project.nextProjectLabel,nextHref:project.nextProjectPath,projectPath:project.path,projectLabel:project.pageLabel,sectionId:null,sections:project.sections};}let activeSection=null;for(const section of project.sections){const element=findContextElement(section.id,section.previewName);if(!element)continue;const rect=element.getBoundingClientRect();if(rect.top<=activationLine)activeSection=section;}if(activeSection){return{variant:\"Section\",meta:activeSection.label,progress,projectPath:project.path,projectLabel:project.pageLabel,sectionId:activeSection.id,sections:project.sections};}return{variant:\"Page\",meta:`${project.pageLabel} \\xb7 Case study`,progress,projectPath:project.path,projectLabel:project.pageLabel,sectionId:null,sections:project.sections};}const PORTFOLIO_ISLAND_CSS=`\n                    [data-portfolio-island-toggle],\n                    [data-portfolio-menu-row] {\n                        outline: none;\n                        -webkit-tap-highlight-color: transparent;\n                    }\n                    [data-portfolio-island-toggle]:focus-visible {\n                        background: rgba(255,255,255,0.06) !important;\n                        box-shadow: inset 0 0 0 2px rgba(167,155,255,0.78) !important;\n                    }\n                    [data-portfolio-menu-row] {\n                        transition: background-color 140ms ease, box-shadow 140ms ease;\n                    }\n                    [data-portfolio-menu-row]:focus-visible {\n                        background: rgba(255,255,255,0.06) !important;\n                        box-shadow: inset 0 0 0 2px rgba(167,155,255,0.78) !important;\n                    }\n                    [data-portfolio-island-active]::before {\n                        content: \"\";\n                        position: absolute;\n                        left: 4px;\n                        top: 50%;\n                        width: 2px;\n                        height: 16px;\n                        border-radius: 999px;\n                        background: rgba(167,155,255,0.62);\n                        transform: translateY(-50%);\n                    }\n                    @media (max-width: 1199px) {\n                        [data-portfolio-island-toggle]::after {\n                            content: \"\";\n                            position: absolute;\n                            inset: -4px;\n                            border-radius: 999px;\n                        }\n                        [data-framer-name=\"Quick Key\"] {\n                            display: none !important;\n                        }\n                    }\n                    @media (prefers-reduced-motion: reduce) {\n                        [data-portfolio-island-toggle],\n                        [data-portfolio-menu-row],\n                        [data-framer-name=\"Progress\"] {\n                            transition: none !important;\n                        }\n                    }\n                    [data-portfolio-island-state=\"open\"] > * {\n                        scrollbar-width: none;\n                    }\n                    /* Optical alignment (Pierre, 2026-10-07): the PB mark's caps sat 2px above the\n                       status copy's baseline (and so did \"Byrne\" when the mark expands on hover), and the dot and arrow\n                       1px above the bar's midline.\n                       \\`translate\\` composes with any transform Framer applies, so nothing else moves. */\n                    [data-framer-name=\"Navigation Row\"] [data-pos-island-mark],\n                    [data-framer-name=\"Navigation Row\"] [data-framer-name=\"Byrne\"] p {\n                        translate: 0 2px;\n                    }\n                    [data-framer-name=\"Navigation Row\"] [data-framer-name=\"div.dot-pb\"],\n                    [data-framer-name=\"Navigation Row\"] [data-framer-name=\"Open Menu\"] svg {\n                        translate: 0 1px;\n                    }\n                    /* The whole bar opens the menu, not only the arrow (Pierre, 2026-10-07). */\n                    [data-portfolio-island-state] [data-framer-name=\"Navigation Row\"] {\n                        cursor: pointer;\n                    }\n                    [data-portfolio-island-state=\"open\"] > *::-webkit-scrollbar {\n                        display: none;\n                    }\n                    @media (min-width: 1200px) {\n                        [data-portfolio-island-state=\"open\"] [data-framer-name=\"Status Copy\"] {\n                            height: auto !important;\n                        }\n                        [data-portfolio-island-state=\"open\"] [data-framer-name=\"Meta\"] {\n                            display: block !important;\n                            visibility: visible !important;\n                        }\n                        [data-portfolio-island-state=\"open\"][data-portfolio-island-has-progress=\"true\"]:not([data-pos-island-completion=\"true\"]) [data-framer-name=\"Progress Rail\"] {\n                            display: block !important;\n                            visibility: visible !important;\n                            height: 2px !important;\n                        }\n                        [data-portfolio-island-state=\"open\"][data-portfolio-island-has-progress=\"true\"]:not([data-pos-island-completion=\"true\"]) [data-framer-name=\"Progress\"] {\n                            opacity: 1 !important;\n                        }\n                    }\n\n                    /* At completion the running light travels the island's bottom edge and\n                       the read-progress rail sits exactly there, so the light passes behind it\n                       and drops out for part of its lap. The rail has also stopped saying\n                       anything by then — completion pins progress at 100 — so retire it and\n                       let the light close the loop. The desktop rule above carries a :not()\n                       for the same reason; without it its higher specificity would win here. */\n                    [data-pos-island-completion=\"true\"] [data-framer-name=\"Progress Rail\"],\n                    [data-pos-island-completion=\"true\"] [data-framer-name=\"Progress\"] {\n                        opacity: 0 !important;\n                        visibility: hidden !important;\n                    }\n\n                    /* hover delight — movement only; row styling is left as designed */\n                    [data-portfolio-island-state=\"open\"] [data-framer-name=\"Menu\"] a {\n                        transition: transform 200ms cubic-bezier(0.22, 0.61, 0.36, 1);\n                        will-change: transform;\n                    }\n                    [data-portfolio-island-state=\"open\"] [data-framer-name=\"Menu\"] a:hover,\n                    [data-portfolio-island-state=\"open\"] [data-framer-name=\"Menu\"] a:focus-visible {\n                        transform: translateX(4px);\n                    }\n                    /* The idle row breathe — a 4px translateX loop staggered down the rows —\n                       is deliberately gone. Pierre, 2026-08-29: it read as too much motion for\n                       a menu you are trying to read. The hover response above stays; that one\n                       answers the pointer instead of moving on its own. The idleNudge state still\n                       drives the next-step pill glow, which pulses light rather than type. */\n\n                    @keyframes pos-island-next-pulse {\n                        0%, 100% { box-shadow: 0 10px 26px rgba(0,0,0,.34), 0 0 18px rgba(183,255,71,.30); }\n                        50%      { box-shadow: 0 10px 26px rgba(0,0,0,.34), 0 0 30px rgba(183,255,71,.60); }\n                    }\n                    [data-pos-island-idle=\"true\"] [data-pos-island-next] {\n                        animation: pos-island-next-pulse 2000ms ease-in-out infinite;\n                    }\n\n                    /* Keep the last row clear of whatever is docked at the bottom.\n                       This was a flat 46px keyed on three state attributes, which went\n                       wrong in both directions: the read-progress readout was deleted but\n                       its 46px reserve stayed, leaving dead space under Featured work; and\n                       at completion 46px was less than the Next pill actually occupies\n                       (12 inset + ~35 tall), so the last row sat right on top of it.\n                       Now measured from the docked blocks themselves — 0 when nothing is\n                       docked. See the --pos-dock-h effect. */\n                    [data-portfolio-island-state=\"open\"] [data-framer-name=\"Menu\"] {\n                        padding-bottom: var(--pos-dock-h, 0px);\n                    }\n                    /* Room for the Command Center breadcrumb + section chips. The\n                       chips wrap, so the height is measured at runtime into\n                       --pos-command-h; 74px is only the one-row fallback. */\n                    [data-pos-island-command=\"true\"][data-portfolio-island-state=\"open\"] [data-framer-name=\"Menu\"] {\n                        padding-top: var(--pos-command-h, 74px);\n                    }\n\n                    @keyframes pos-island-bloom {\n                        0%, 100% { opacity: 0.35; }\n                        50%      { opacity: 0.7; }\n                    }\n                    /* Opacity only. The rows already own transform for their hover\n                       response, and an animation on transform would stamp on it.\n                       (No backticks in here — they close the template literal.) */\n                    @keyframes pos-island-featured-in {\n                        from { opacity: 0; }\n                        to   { opacity: 1; }\n                    }\n                    [data-pos-island-featured=\"in\"] {\n                        animation: pos-island-featured-in 200ms ease both;\n                    }\n\n                    @keyframes pos-island-next-in {\n                        from { opacity: 0; transform: translateY(6px) scale(0.97); }\n                        to   { opacity: 1; transform: translateY(0) scale(1); }\n                    }\n                    @media (prefers-reduced-motion: reduce) {\n                        [data-pos-island-bloom], [data-pos-island-next],\n                        [data-pos-island-featured=\"in\"] {\n                            animation: none !important;\n                        }\n                    }\n                `;export function PortfolioMenuShortcuts(Component){return /*#__PURE__*/forwardRef(function PortfolioContextIslandOverride(props,ref){const hostRef=useRef(null);const menuId=`portfolio-island-navigation-${useId().replace(/:/g,\"\")}`;const[context,setContext]=useState(IDLE_CONTEXT);const[isOpen,setIsOpen]=useState(false);const[isPastFirstViewport,setIsPastFirstViewport]=useState(false);const[holdOpenWhilePastFirst,setHoldOpenWhilePastFirst]=useState(false);const[nearTopCenter,setNearTopCenter]=useState(false);const[microHover,setMicroHover]=useState(false);const[microFocus,setMicroFocus]=useState(false);const[touchPriority,setTouchPriority]=useState(false);const[reduceMotion,setReduceMotion]=useState(false);/* Featured work folds away by default: nine flat rows was more list than anyone\n           reads. Collapsed it is four destinations plus one group. */const[featuredOpen,setFeaturedOpen]=useState(false);const[viewportWidth,setViewportWidth]=useState(1440);const[displayedMeta,setDisplayedMeta]=useState(IDLE_CONTEXT.meta);const renderedVariant=isOpen?\"Open\":context.variant;const atCompletion=context.variant===\"Completion\";/* The running light follows the island's real border, so it needs the live\n           box. Measured rather than assumed: the island changes width by breakpoint\n           and height by variant. */const islandBoxRef=useRef(null);const[islandBox,setIslandBox]=useState({w:0,h:0,r:22});useEffect(()=>{const el=islandBoxRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;/* Measure the island itself, not this wrapper. The wrapper carries no\n               border-radius of its own, so `|| 22` silently won every time — which\n               drew a 22px-radius rectangle around a collapsed pill whose real radius\n               is 999px, leaving its corners sticking out past the pill's round ends. */const box=el.querySelector(\"[data-framer-name]\")??el;const measure=()=>{const rect=box.getBoundingClientRect();const radius=parseFloat(getComputedStyle(box).borderTopLeftRadius)||22;setIslandBox(prev=>Math.abs(prev.w-rect.width)<1&&Math.abs(prev.h-rect.height)<1&&Math.abs(prev.r-radius)<1?prev:{w:rect.width,h:rect.height,r:radius});};measure();const ro=new ResizeObserver(measure);ro.observe(el);if(box!==el)ro.observe(box);return()=>ro.disconnect();// ResizeObserver already catches breakpoint changes, so `mode` is not a dep\n},[atCompletion,renderedVariant]);/* Six chips at laptop width wrap to three rows. A fixed padding-top cannot\n           know that, which is why the chips sat on top of the menu rows. Measure the\n           block and reserve exactly what it occupies. */const commandRef=useRef(null);useEffect(()=>{const host=hostRef.current;if(!host)return;const el=commandRef.current;if(!el){host.style.removeProperty(\"--pos-command-h\");return;}const measure=()=>{/* This reserve is applied as padding-top on the Menu, but the chips are\n                   positioned against the island wrapper — and the Menu already starts\n                   below the nav row (offsetTop 44). The old formula was\n                   `52 + height + 12` measured from the island's top, so it paid for the\n                   nav row twice: 89px of reserve for a block that ends 33px into the\n                   Menu. Subtract where the Menu actually begins.\n                   offsetTop, not getBoundingClientRect: the Menu scrolls inside the\n                   island, so its rect.top moves and rects would make this jitter. */const menu=host.querySelector('[data-framer-name=\"Menu\"]');const island=menu?.offsetParent;const menuStart=(menu?.offsetTop??0)+(island?.offsetTop??0);const chipsEnd=el.offsetTop+el.offsetHeight;host.style.setProperty(\"--pos-command-h\",Math.max(0,Math.ceil(chipsEnd-menuStart+12))+\"px\");};measure();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(measure);ro.observe(el);return()=>ro.disconnect();// 'mode' is deliberately not a dep: it is declared further down the\n// component, so naming it here was a temporal-dead-zone error. The\n// ResizeObserver already catches breakpoint changes anyway — the same\n// reasoning as the islandBox effect above.\n},[isOpen,context.sectionId,context.sections?context.sections.length:0]);/* At the end of a section the island should hand the reader onward, not sit\n           there closed. Auto-open once per completion episode — a ref, so a deliberate\n           close stays closed until they leave completion and come back. *//* Record the visit. Written on arrival and whenever the section changes —\n           not on every scroll tick, which would hammer localStorage for no gain. */const[memory,setMemory]=useState([]);useEffect(()=>{setMemory(readMemory());},[]);useEffect(()=>{if(!context.projectPath||!context.projectLabel)return;setMemory(rememberVisit({path:context.projectPath,label:context.projectLabel,accent:PROJECT_ACCENTS[context.projectPath]??null,progress:typeof context.progress===\"number\"?Math.round(context.progress):0}));},[context.projectPath,context.sectionId,context.variant]);const resumeTarget=useMemo(()=>memory.find(e=>e.path!==context.projectPath&&e.progress>4&&e.progress<96)||null,[memory,context.projectPath]);const scrollToSection=useCallback((id,previewName)=>{const el=findContextElement(id,previewName);if(!el)return;el.scrollIntoView({behavior:reduceMotion?\"auto\":\"smooth\",block:\"start\"});},[reduceMotion]);const autoOpenedRef=useRef(false);useEffect(()=>{if(!atCompletion){autoOpenedRef.current=false;return;}if(autoOpenedRef.current)return;autoOpenedRef.current=true;const timer=window.setTimeout(()=>startTransition(()=>setIsOpen(true)),260);return()=>window.clearTimeout(timer);},[atCompletion]);/* Delight, and a nudge. If the menu sits open untouched, the rows breathe and the\n           next-step pill pulses. Any interaction resets it. */const[idleNudge,setIdleNudge]=useState(false);useEffect(()=>{if(!isOpen||reduceMotion){setIdleNudge(false);return;}let timer=0;const arm=()=>{setIdleNudge(false);window.clearTimeout(timer);timer=window.setTimeout(()=>setIdleNudge(true),5500);};arm();const host=hostRef.current;const events=[\"pointermove\",\"pointerdown\",\"keydown\",\"wheel\"];events.forEach(e=>window.addEventListener(e,arm,{passive:true}));host?.addEventListener(\"focusin\",arm);return()=>{window.clearTimeout(timer);events.forEach(e=>window.removeEventListener(e,arm));host?.removeEventListener(\"focusin\",arm);};},[isOpen,reduceMotion]);/* The island is a stadium when collapsed (border-radius: 999px) and a rounded\n           rect when open. Clamping to half the shorter side turns that 999 into the\n           real corner, so nothing ever draws a rectangle around a pill. One value,\n           shared by the stroke path, its clip and the bloom — they cannot drift apart. */const cornerRadius=useMemo(()=>Math.max(0,Math.min(islandBox.r,islandBox.w/2,islandBox.h/2)),[islandBox]);const collapsed=useMemo(()=>!isOpen&&isPastFirstViewport&&!holdOpenWhilePastFirst&&// the end of a case study is the one moment the island must not hide:\n    // it is where the reader is handed the next project\n    !atCompletion,[atCompletion,holdOpenWhilePastFirst,isOpen,isPastFirstViewport]);const mode=useMemo(()=>{if(viewportWidth<768)return\"phone\";if(viewportWidth<1200)return\"tablet\";return\"desktop\";},[viewportWidth]);const microWidth=mode===\"phone\"?68:mode===\"tablet\"?60:52;const microVisualWidth=microWidth;const microVisualHeight=mode===\"phone\"?26:mode===\"tablet\"?22:18;/* Phone: edge-to-edge read as a bar, not an island. The resting pill sits a little\n           narrower than the open panel so opening is a visible expansion — that difference\n           is where the \"dynamic\" comes from. The min() caps stop it stretching on a tablet-\n           sized phone; the floors are what the longest row needs to stay on one line. */const restingWidth=mode===\"phone\"?\"min(76vw, 320px)\":mode===\"tablet\"?316:344;const openWidth=mode===\"phone\"?\"min(80vw, 340px)\":mode===\"tablet\"?376:399;const islandWidth=renderedVariant===\"Open\"?openWidth:restingWidth;const openMaxHeight=mode===\"phone\"?\"calc(100dvh - 16px)\":\"calc(100dvh - 24px)\";const microShouldRender=useMemo(()=>collapsed&&(touchPriority||nearTopCenter||microHover||microFocus),[collapsed,microFocus,microHover,nearTopCenter,touchPriority]);const microInteractive=microShouldRender&&collapsed;const focusToggle=useCallback(()=>{if(typeof window===\"undefined\")return;window.setTimeout(()=>{hostRef.current?.querySelector(\"button\")?.focus();},reduceMotion?0:60);},[reduceMotion]);const closeMenu=useCallback(restoreFocus=>{startTransition(()=>setIsOpen(false));if(restoreFocus)focusToggle();},[focusToggle]);const restoreIsland=useCallback(()=>{startTransition(()=>setHoldOpenWhilePastFirst(true));},[]);const handleIslandClickCapture=useCallback(event=>{const target=event.target;if(!(target instanceof Element))return;const clickedButton=target.closest(\"button\");/* The Featured disclosure is a <button> that is not the island toggle, so\n                   the rule below was closing the whole menu on every tap of the caret.\n                   It is the one button in here that acts *within* the open panel. */if(clickedButton?.hasAttribute(\"data-pos-island-featured-toggle\"))return;const toggleButton=hostRef.current?.querySelector(\"button\");/* Pierre, 2026-10-07: a click anywhere on the island opens the menu, not only the\n                   arrow. While open, a click on the top bar closes it again. Links (menu rows, the\n                   Next pill) and in-panel buttons keep their own behaviour, so the rules below still\n                   apply to them. Keyboard users keep the arrow, which stays the real toggle. */if(!clickedButton&&!target.closest(\"a, input, textarea, select\")){const bar=hostRef.current?.querySelector('[data-framer-name=\"Navigation Row\"]');const onBar=!!bar&&bar.contains(target);if(!isOpen||onBar){event.preventDefault();event.stopPropagation();if(isOpen)closeMenu(true);else startTransition(()=>setIsOpen(true));return;}}if(!clickedButton||clickedButton!==toggleButton){if(isOpen&&clickedButton)startTransition(()=>setIsOpen(false));return;}event.preventDefault();event.stopPropagation();if(isOpen){closeMenu(true);}else{startTransition(()=>setIsOpen(true));}},[closeMenu,isOpen]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const motionQuery=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const coarseQuery=window.matchMedia(\"(pointer: coarse)\");const hoverQuery=window.matchMedia(\"(hover: hover)\");let animationFrame=0;const applyMedia=()=>{startTransition(()=>{setReduceMotion(motionQuery.matches);setTouchPriority(coarseQuery.matches&&!hoverQuery.matches);});};const applyScrollSizeAndContext=()=>{animationFrame=0;const height=Math.max(window.innerHeight||0,1);const y=window.scrollY||window.pageYOffset||0;const nextContext=readPortfolioContext();startTransition(()=>{setViewportWidth(window.innerWidth||1440);setIsPastFirstViewport(y>height);if(y<=height)setHoldOpenWhilePastFirst(false);setContext(current=>contextsMatch(current,nextContext)?current:nextContext);});};const scheduleUpdate=()=>{if(animationFrame)return;animationFrame=window.requestAnimationFrame(applyScrollSizeAndContext);};const topInset=()=>Math.max(8,window.visualViewport?.offsetTop||0);const onPointerMove=event=>{if(!hoverQuery.matches)return;const cx=window.innerWidth/2;const topThreshold=mode===\"phone\"?topInset()+56:mode===\"tablet\"?topInset()+68:topInset()+84;const halfWidth=mode===\"phone\"?Math.max(74,Math.min(112,window.innerWidth*.14)):mode===\"tablet\"?Math.max(98,Math.min(146,window.innerWidth*.16)):Math.max(132,Math.min(188,window.innerWidth*.2));const nearTop=event.clientY<=topThreshold;const nearCenter=Math.abs(event.clientX-cx)<=halfWidth;startTransition(()=>setNearTopCenter(nearTop&&nearCenter));};const sectionObserver=new IntersectionObserver(scheduleUpdate,{rootMargin:\"-35% 0px -55% 0px\",threshold:[0,.01,.5,1]});const resizeObserver=new ResizeObserver(scheduleUpdate);resizeObserver.observe(document.body);const observedElements=new Set;const refreshObservedElements=()=>{const project=findActiveProjectDefinition();const candidates=project?[findContextElement(project.openingId,project.openingName),...project.sections.map(section=>findContextElement(section.id,section.previewName)),findContextElement(project.completionId,project.completionName)].filter(element=>element instanceof HTMLElement):[];candidates.forEach(element=>{if(observedElements.has(element))return;observedElements.add(element);sectionObserver.observe(element);resizeObserver.observe(element);});};applyMedia();refreshObservedElements();applyScrollSizeAndContext();const hydrationTimeouts=[100,350,900,1800].map(delay=>window.setTimeout(()=>{refreshObservedElements();scheduleUpdate();},delay));motionQuery.addEventListener(\"change\",applyMedia);coarseQuery.addEventListener(\"change\",applyMedia);hoverQuery.addEventListener(\"change\",applyMedia);window.addEventListener(\"scroll\",scheduleUpdate,{passive:true});window.addEventListener(\"resize\",scheduleUpdate,{passive:true});window.addEventListener(\"pointermove\",onPointerMove,{passive:true});window.addEventListener(\"popstate\",scheduleUpdate);window.addEventListener(\"hashchange\",scheduleUpdate);return()=>{if(animationFrame)window.cancelAnimationFrame(animationFrame);hydrationTimeouts.forEach(timeout=>window.clearTimeout(timeout));sectionObserver.disconnect();resizeObserver.disconnect();motionQuery.removeEventListener(\"change\",applyMedia);coarseQuery.removeEventListener(\"change\",applyMedia);hoverQuery.removeEventListener(\"change\",applyMedia);window.removeEventListener(\"scroll\",scheduleUpdate);window.removeEventListener(\"resize\",scheduleUpdate);window.removeEventListener(\"pointermove\",onPointerMove);window.removeEventListener(\"popstate\",scheduleUpdate);window.removeEventListener(\"hashchange\",scheduleUpdate);};},[mode]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const routeByKey={\"1\":\"/work\",\"2\":\"/about\",\"3\":\"/blog\",\"4\":\"mailto:design@pierrebyrnecreatives.com\"};const onKeyDown=event=>{if(event.key===\"Escape\"&&isOpen){event.preventDefault();closeMenu(true);return;}if(isOpen&&mode===\"desktop\"&&[\"ArrowDown\",\"ArrowUp\",\"Home\",\"End\"].includes(event.key)){const menu=hostRef.current?.querySelector('[data-framer-name=\"Menu\"]');const interactiveElements=Array.from(menu?.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])')||[]).filter(element=>element.getClientRects().length>0);if(!interactiveElements.length)return;const activeIndex=interactiveElements.indexOf(document.activeElement);const nextIndex=event.key===\"Home\"?0:event.key===\"End\"?interactiveElements.length-1:event.key===\"ArrowUp\"?(activeIndex<=0?interactiveElements.length:activeIndex)-1:(activeIndex+1)%interactiveElements.length;event.preventDefault();interactiveElements[nextIndex]?.focus();return;}if(event.repeat)return;if(!event.metaKey&&!event.ctrlKey)return;if(isEditableTarget(event.target))return;const destination=routeByKey[event.key];if(!destination)return;event.preventDefault();navigateTo(destination);};const onPointerDown=event=>{if(!isOpen)return;if(hostRef.current?.contains(event.target))return;closeMenu(false);};window.addEventListener(\"keydown\",onKeyDown);document.addEventListener(\"pointerdown\",onPointerDown,true);return()=>{window.removeEventListener(\"keydown\",onKeyDown);document.removeEventListener(\"pointerdown\",onPointerDown,true);};},[closeMenu,isOpen,mode]);useEffect(()=>{if(!isOpen||typeof window===\"undefined\")return;const timeout=window.setTimeout(()=>{const host=hostRef.current;const menu=host?.querySelector('[data-framer-name=\"Menu\"]');const toggle=host?.querySelector(\"button\");const interactiveElements=Array.from((menu||host)?.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])')||[]);const firstMenuItem=interactiveElements.find(element=>element!==toggle);firstMenuItem?.focus();},reduceMotion?0:340);return()=>window.clearTimeout(timeout);},[isOpen,reduceMotion]);useEffect(()=>{if(displayedMeta===context.meta)return;if(reduceMotion||typeof window===\"undefined\"){setDisplayedMeta(context.meta);return;}const currentMeta=hostRef.current?.querySelector('[data-framer-name=\"Meta\"]');if(!currentMeta||typeof currentMeta.animate!==\"function\"){setDisplayedMeta(context.meta);return;}const outgoing=currentMeta.animate([{opacity:1,transform:\"translateY(0px)\"},{opacity:0,transform:\"translateY(-3px)\"}],{duration:70,easing:\"ease-out\",fill:\"forwards\"});let incoming=null;let frame=0;const timeout=window.setTimeout(()=>{setDisplayedMeta(context.meta);frame=window.requestAnimationFrame(()=>{const nextMeta=hostRef.current?.querySelector('[data-framer-name=\"Meta\"]');if(!nextMeta||typeof nextMeta.animate!==\"function\")return;incoming=nextMeta.animate([{opacity:0,transform:\"translateY(3px)\"},{opacity:1,transform:\"translateY(0px)\"}],{duration:90,easing:\"ease-out\",fill:\"both\"});});},70);return()=>{outgoing.cancel();incoming?.cancel();window.clearTimeout(timeout);if(frame)window.cancelAnimationFrame(frame);};},[context.meta,reduceMotion,renderedVariant]);useEffect(()=>{if(typeof window===\"undefined\")return;const applyRuntimeContent=()=>{const host=hostRef.current;if(!host)return;const meta=host.querySelector('[data-framer-name=\"Meta\"]');if(meta&&meta.textContent!==displayedMeta)meta.textContent=displayedMeta;meta?.setAttribute(\"aria-live\",\"polite\");const menu=host.querySelector('[data-framer-name=\"Menu\"]');const toggle=host.querySelector(\"button\");const mark=Array.from(host.querySelectorAll('[data-framer-name=\"Navigation Row\"] p')).find(p=>p.textContent?.trim()===\"PB\");if(mark&&!mark.hasAttribute(\"data-pos-island-mark\"))mark.setAttribute(\"data-pos-island-mark\",\"\");if(menu)menu.id=menuId;if(toggle){toggle.setAttribute(\"aria-expanded\",String(isOpen));toggle.setAttribute(\"aria-haspopup\",\"menu\");toggle.setAttribute(\"data-portfolio-island-toggle\",\"\");toggle.style.overflow=\"visible\";if(menu)toggle.setAttribute(\"aria-controls\",menuId);}const path=normalizePath(window.location.pathname);const activeProject=findActiveProjectDefinition();const activeStaticPage=findActiveStaticPageDefinition();const activeMenuName=activeProject||path.startsWith(\"/work\")||activeStaticPage?.path===\"/work\"?\"Work\":path.startsWith(\"/about\")||activeStaticPage?.path.startsWith(\"/about\")?\"About\":path.startsWith(\"/blog\")||activeStaticPage?.path===\"/blog\"?\"Writing\":null;const menuRows=Array.from(host.querySelectorAll('[data-framer-name=\"Work\"], [data-framer-name=\"About\"], [data-framer-name=\"Writing\"], [data-framer-name=\"Contact\"]'));menuRows.forEach(row=>{row.setAttribute(\"data-portfolio-menu-row\",\"\");if(activeMenuName&&row.getAttribute(\"data-framer-name\")===activeMenuName){row.setAttribute(\"aria-current\",\"page\");row.setAttribute(\"data-portfolio-island-active\",\"\");}else{row.removeAttribute(\"aria-current\");row.removeAttribute(\"data-portfolio-island-active\");}});host.querySelectorAll('[data-framer-name=\"Quick Key\"]').forEach(key=>{key.style.display=mode===\"desktop\"?\"\":\"none\";});if(context.variant===\"Completion\"){const nextProjectPath=findActiveProjectDefinition()?.nextProjectPath;const statusCopy=host.querySelector('[data-framer-name=\"Status Copy\"]');const statusLink=statusCopy?.closest(\"a\");if(statusLink&&nextProjectPath)statusLink.href=siteHref(nextProjectPath);}const progress=host.querySelector('[data-framer-name=\"Progress\"]');if(typeof context.progress===\"number\"){if(progress){progress.style.transition=reduceMotion?\"none\":\"width 180ms cubic-bezier(0.22, 0.61, 0.36, 1)\";progress.style.width=`${context.progress}%`;progress.setAttribute(\"role\",\"progressbar\");progress.setAttribute(\"aria-label\",\"Case study reading progress\");progress.setAttribute(\"aria-valuemin\",\"0\");progress.setAttribute(\"aria-valuemax\",\"100\");progress.setAttribute(\"aria-valuenow\",String(Math.round(context.progress)));}}else if(progress){progress.style.transition=\"none\";progress.style.width=\"0%\";progress.removeAttribute(\"role\");progress.removeAttribute(\"aria-label\");progress.removeAttribute(\"aria-valuemin\");progress.removeAttribute(\"aria-valuemax\");progress.removeAttribute(\"aria-valuenow\");}};const frame=window.requestAnimationFrame(applyRuntimeContent);const timeout=window.setTimeout(applyRuntimeContent,reduceMotion?0:340);return()=>{window.cancelAnimationFrame(frame);window.clearTimeout(timeout);};},[context,displayedMeta,isOpen,menuId,mode,reduceMotion,renderedVariant]);// Keep the first server render identical to the first client render. A <style>\n// child here made Framer abandon hydration and briefly reveal its fallback route.\nuseEffect(()=>{if(typeof document===\"undefined\")return;const id=\"pb-portfolio-context-island-styles\";let tag=document.getElementById(id);if(!tag){tag=document.createElement(\"style\");tag.id=id;document.head.appendChild(tag);}if(tag.textContent!==PORTFOLIO_ISLAND_CSS)tag.textContent=PORTFOLIO_ISLAND_CSS;/* Deliberately no cleanup.\n               This used to reference-count instances and remove the tag at zero. On a\n               client-side route change React mounts the incoming island before unmounting\n               the outgoing one, so the order ran: new instance increments -> old instance\n               decrements to zero -> tag removed. The surviving instance then had no\n               stylesheet at all, and every CSS-driven behaviour here died silently after\n               the first in-app navigation: the Command Center chip reserve, the Memory Mode\n               bottom reserve (which is why Memory Mode sat on top of \"View all work\"), the\n               row hover transform, and the running-stroke keyframes. A hard reload always\n               looked fine, which is what made it hard to see.\n               One shared <style> in <head> costs nothing and outliving the component is the\n               correct behaviour, not a leak. */},[]);/* Featured work as a disclosure.\n           The rows are canvas nodes, flat siblings inside Menu, and \"Featured Header\" is\n           already a <button> in the component — so this adds semantics and visibility, and\n           restyles nothing. Tap/click only: hover-to-open cannot be operated on a phone,\n           which is where this menu is mostly read, and on a pointer device it fires on\n           every pass of the cursor. The caret is the affordance for both.\n           display:none rather than height/opacity so the folded rows leave the tab order\n           and the accessibility tree outright, which is what \"collapsed\" should mean. */const FEATURED_ROWS=[\"Lacrosse 26\",\"Galaxy Hubble\",\"Figma to Tableau\",\"View All\"];useEffect(()=>{const host=hostRef.current;if(!host)return;const header=host.querySelector('[data-framer-name=\"Featured Header\"]');const rows=FEATURED_ROWS.map(n=>host.querySelector(`[data-framer-name=\"${n}\"]`)).filter(el=>!!el);if(!header||!rows.length)return;const ids=rows.map((row,i)=>{const id=`${menuId}-featured-${i}`;row.id=id;return id;});header.type=\"button\";header.setAttribute(\"data-pos-island-featured-toggle\",\"\");header.setAttribute(\"aria-expanded\",String(featuredOpen));header.setAttribute(\"aria-controls\",ids.join(\" \"));let caret=header.querySelector(\"[data-pos-island-caret]\");if(!caret){caret=document.createElement(\"span\");caret.setAttribute(\"data-pos-island-caret\",\"\");caret.setAttribute(\"aria-hidden\",\"true\");caret.style.cssText=\"margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:none;\";caret.innerHTML='<svg width=\"10\" height=\"6\" viewBox=\"0 0 10 6\" fill=\"none\"><path d=\"M1 1L5 5L9 1\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>';header.appendChild(caret);}/* Not currentColor: the label's grey lives on a child element, so the\n               button's own colour resolves to black — measured rgb(0,0,0) — and the\n               caret rendered as a dark smudge on dark glass. Borrow the label's actual\n               colour so the caret is the same weight as the words beside it. */const labelEl=Array.from(header.querySelectorAll(\"*\")).find(el=>!el.querySelector(\"*\")&&(el.textContent||\"\").trim().length>0);caret.style.color=labelEl?getComputedStyle(labelEl).color:\"rgba(215, 217, 221, 0.45)\";caret.style.transition=reduceMotion?\"none\":\"transform 200ms cubic-bezier(0.22, 0.61, 0.36, 1)\";caret.style.transform=featuredOpen?\"rotate(180deg)\":\"rotate(0deg)\";rows.forEach(row=>{row.style.display=featuredOpen?\"\":\"none\";if(featuredOpen)row.setAttribute(\"data-pos-island-featured\",\"in\");else row.removeAttribute(\"data-pos-island-featured\");});const onToggle=e=>{e.preventDefault();setFeaturedOpen(v=>!v);};header.addEventListener(\"click\",onToggle);return()=>header.removeEventListener(\"click\",onToggle);},[isOpen,featuredOpen,menuId,reduceMotion]);/* How much room the docked bottom block actually needs.\n           Measured from the block's own inset + height rather than from the Menu, so\n           adding the padding cannot feed back into the measurement and oscillate: these\n           blocks are absolutely positioned, so their size does not depend on it. */useEffect(()=>{const host=hostRef.current;if(!host)return;const measure=()=>{const docks=Array.from(host.querySelectorAll('[data-pos-island-dock=\"bottom\"]'));const needed=docks.reduce((most,d)=>{const inset=parseFloat(getComputedStyle(d).bottom)||0;return Math.max(most,inset+d.offsetHeight+14);},0);host.style.setProperty(\"--pos-dock-h\",Math.ceil(needed)+\"px\");};measure();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(measure);host.querySelectorAll('[data-pos-island-dock=\"bottom\"]').forEach(d=>ro.observe(d));return()=>ro.disconnect();// 'mode' is not a dep — this effect sits below its declaration, but the\n// ResizeObserver catches breakpoint changes anyway, same as islandBox.\n},[isOpen,atCompletion,context.nextHref,resumeTarget,context.sections]);/* Reopening the menu always starts folded — \"by default\" should mean every time,\n           not \"until you once expanded it\". */useEffect(()=>{if(!isOpen)setFeaturedOpen(false);},[isOpen]);const durationFast=reduceMotion?\"0ms\":\"180ms\";const durationSlow=reduceMotion?\"0ms\":\"260ms\";const transformDuration=durationFast;// The descent is deliberately slower than any other move here: it is the one moment\n// the island is leaving rather than responding.\nconst collapseFall=reduceMotion?\"0ms\":\"380ms\";const collapseFade=reduceMotion?\"0ms\":\"240ms\";const collapseFadeDelay=reduceMotion?\"0ms\":\"120ms\";const runtimeProps={...props,variant:renderedVariant,meta:displayedMeta,\"$control__variant\":renderedVariant,\"$control__meta\":displayedMeta};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{ref:hostRef,onClickCapture:handleIslandClickCapture,\"data-portfolio-island-state\":renderedVariant.toLowerCase(),\"data-pos-island-idle\":idleNudge?\"true\":\"false\",\"data-pos-island-completion\":atCompletion?\"true\":\"false\",\"data-pos-island-command\":isOpen&&context.sections&&context.sections.length>0&&mode!==\"phone\"?\"true\":\"false\",\"data-pos-island-memory\":isOpen&&!atCompletion&&!context.sections&&memory.length>=2?\"true\":\"false\",\"data-portfolio-island-has-progress\":typeof context.progress===\"number\"?\"true\":\"false\",style:{position:\"relative\",opacity:collapsed?0:1,/* Top-centred on every breakpoint. A phone bottom sheet was tried and\n                           pulled: travelling the panel the height of the viewport read as more\n                           motion than the moment deserved.\n\n                           Collapsing now descends instead of retracting upward. Three things\n                           make it read as falling away rather than being switched off:\n                           it moves down, not up; the curve accelerates (ease-in) so it gathers\n                           speed like something released; and the fade starts 120ms late and\n                           finishes first, so you see it travel before you see it go. Visibility\n                           is held until the move completes or it would cut the fade short. */transform:collapsed?\"translateY(18px)\":\"translateY(0px)\",pointerEvents:collapsed?\"none\":\"auto\",visibility:collapsed?\"hidden\":\"visible\",transition:collapsed?`transform ${collapseFall} cubic-bezier(0.32, 0, 0.67, 0), opacity ${collapseFade} ease ${collapseFadeDelay}, visibility 0ms linear ${collapseFall}`:`transform ${transformDuration} cubic-bezier(0.22, 0.61, 0.36, 1), opacity ${durationSlow} ease, visibility 0ms linear 0ms`,...mode===\"phone\"?{width:\"100%\",maxWidth:\"100vw\",paddingLeft:12,paddingRight:12,boxSizing:\"border-box\",display:\"flex\",justifyContent:\"center\",/* `overflow-x: hidden` forces the other axis to compute\n                                     to `auto` (CSS Overflow 3), making this host a scroll\n                                     container exactly the island's height — so the completion\n                                     glow was cut flat at top and bottom while the 12px of side\n                                     padding let it show horizontally. Nothing here overflows\n                                     (maxWidth 100vw, border-box, centred) and a box-shadow is\n                                     ink, never scrollable overflow, so the guard cost more\n                                     than it protected. Measured after removing it:\n                                     scrollWidth 375 on a 375 viewport, unchanged.\n                                     NB: the island's own Open-variant overflow below is a\n                                     real scroll container for long menus — leave it be. */overflowX:\"visible\",overflowY:\"visible\"}:null},children:/*#__PURE__*/_jsxs(\"div\",{ref:islandBoxRef,style:{position:\"relative\",display:\"flex\",...mode===\"phone\"?{width:\"100%\",maxWidth:\"none\"}:{width:\"auto\"}},children:[atCompletion?/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",\"data-pos-island-bloom\":true,style:{position:\"absolute\",/* Hug the island's own edge. At inset -10 with a 10px shadow\n                                   spread this was a hard-edged lime rectangle floating 10px\n                                   off the panel — it read as a second, misaligned border\n                                   rather than as a glow. No offset and no spread: the halo\n                                   falls off from the real edge. */inset:0,borderRadius:cornerRadius,pointerEvents:\"none\",boxShadow:`${BLOOM_OUTER}, ${BLOOM_INNER}`,animation:reduceMotion?\"none\":\"pos-island-bloom 2600ms ease-in-out infinite\",zIndex:0}}):null,/*#__PURE__*/_jsx(Component,{ref:ref,...runtimeProps,style:{...props.style,// Phone used to take 100% of a parent that hugs, which resolved\n// to whatever the content wanted — 288px in a 375px screen. Use\n// the real token instead: calc(100vw - 24px). The container is\n// still centred on its 50% anchor, so it grows out from the\n// middle rather than pinning to one edge.\nwidth:islandWidth,// The blur needs something dark to sit on. A 6% white tint over\n// backdrop-blur(16px) sampled the light Figma-to-Tableau card and\n// went milky, killing text contrast. This base keeps the glass and\n// guarantees legibility on any background; the value matches the\n// micro pill's own rgba(13,15,21,0.76), a shade lighter to stay glassy.\nbackgroundColor:\"rgba(13, 15, 21, 0.66)\",border:\"1px solid rgba(255,255,255,0.12)\",boxSizing:\"border-box\",...renderedVariant===\"Open\"?{maxHeight:openMaxHeight,overflowX:\"hidden\",overflowY:\"auto\",overscrollBehavior:\"contain\",WebkitOverflowScrolling:\"touch\"}:null,...mode===\"phone\"?{maxWidth:\"none\"}:null}}),isOpen&&context.sections&&context.sections.length>0&&mode!==\"phone\"?/*#__PURE__*/_jsx(\"div\",{ref:commandRef,style:{position:\"absolute\",top:52,left:14,right:14,pointerEvents:\"auto\",zIndex:3},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:6},children:context.sections.map(sec=>{const active=sec.id===context.sectionId;// \"01 / Inherited Experience\" -> \"Inherited Experience\"\nconst short=sec.label.replace(/^\\s*\\d+\\s*\\/\\s*/,\"\");return /*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>scrollToSection(sec.id,sec.previewName),style:{appearance:\"none\",cursor:\"pointer\",padding:\"5px 10px\",borderRadius:999,fontSize:11,whiteSpace:\"nowrap\",color:active?ACCENT:\"rgba(232,236,242,0.70)\",background:active?\"rgba(183,255,71,0.10)\":\"rgba(255,255,255,0.05)\",border:`1px solid ${active?ACCENT_DIM:\"rgba(255,255,255,0.10)\"}`,transition:\"color 160ms ease, background 160ms ease, border-color 160ms ease\"},children:short},sec.id);})})}):null,isOpen&&atCompletion&&mode!==\"phone\"?/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",\"data-pos-island-dock\":\"bottom\",style:{position:\"absolute\",bottom:12,left:16,display:\"flex\",alignItems:\"center\",gap:9,pointerEvents:\"none\",zIndex:3},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:20,height:20,borderRadius:\"50%\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",border:`1px solid ${ACCENT_DIM}`,background:\"rgba(183,255,71,0.10)\",color:ACCENT,fontSize:11,lineHeight:1},children:\"✓\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,color:\"rgba(232,236,242,0.92)\",lineHeight:1.25},children:\"Page complete\"})]}):null,isOpen&&!atCompletion&&!context.sections&&resumeTarget?/*#__PURE__*/_jsxs(\"div\",{\"data-pos-island-dock\":\"bottom\",style:{position:\"absolute\",bottom:12,left:16,right:16,display:\"flex\",alignItems:\"center\",gap:10,zIndex:3},children:[/*#__PURE__*/_jsxs(\"a\",{href:siteHref(resumeTarget.path),style:{display:\"inline-flex\",alignItems:\"center\",gap:7,padding:\"6px 11px\",borderRadius:999,fontSize:11,whiteSpace:\"nowrap\",textDecoration:\"none\",color:\"rgba(167,155,255,0.95)\",background:\"rgba(167,155,255,0.10)\",border:\"1px solid rgba(167,155,255,0.30)\"},children:[\"Resume \\xb7 \",resumeTarget.label,/*#__PURE__*/_jsxs(\"span\",{\"aria-hidden\":\"true\",style:{opacity:.6},children:[Math.round(resumeTarget.progress),\"%\"]})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>{clearMemory();setMemory([]);},title:\"Clear browsing memory\",style:{marginLeft:\"auto\",appearance:\"none\",background:\"transparent\",border:0,cursor:\"pointer\",padding:4,fontSize:10,letterSpacing:\"0.08em\",textTransform:\"uppercase\",color:\"rgba(232,236,242,0.34)\"},children:\"Clear\"})]}):null,isOpen&&atCompletion&&context.nextHref?/*#__PURE__*/_jsxs(\"a\",{\"data-pos-island-next\":true,\"data-pos-island-dock\":\"bottom\",href:siteHref(context.nextHref),style:{position:\"absolute\",bottom:12,right:12,// full-width row on phone, where the status block stands down\n...mode===\"phone\"?{left:12,justifyContent:\"center\"}:null,display:mode===\"phone\"?\"flex\":\"inline-flex\",alignItems:\"center\",gap:8,padding:\"9px 14px\",borderRadius:999,textDecoration:\"none\",whiteSpace:\"nowrap\",fontSize:12,letterSpacing:\"0.01em\",color:ACCENT,background:\"rgba(34, 43, 43, 0.82)\",border:`1px solid ${ACCENT_DIM}`,backdropFilter:\"blur(16px)\",WebkitBackdropFilter:\"blur(16px)\",boxShadow:`0 10px 26px rgba(0,0,0,0.34), 0 0 18px ${ACCENT_SOFT}`,animation:reduceMotion?\"none\":\"pos-island-next-in 320ms cubic-bezier(0.22, 0.61, 0.36, 1) both\",zIndex:3},children:[/*#__PURE__*/_jsx(\"span\",{style:{opacity:.68},children:\"Next\"}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{opacity:.38},children:\"\\xb7\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:500},children:context.nextLabel}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"→\"})]}):null]})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Restore portfolio island\",onClick:restoreIsland,onMouseEnter:()=>startTransition(()=>setMicroHover(true)),onMouseLeave:()=>startTransition(()=>setMicroHover(false)),onFocus:()=>startTransition(()=>setMicroFocus(true)),onBlur:()=>startTransition(()=>setMicroFocus(false)),tabIndex:microInteractive?0:-1,\"aria-hidden\":!microInteractive,style:{position:\"fixed\",top:mode===\"phone\"?\"calc(max(8px, env(safe-area-inset-top)) - 9px)\":mode===\"tablet\"?\"calc(max(8px, env(safe-area-inset-top)) - 11px)\":\"calc(max(8px, env(safe-area-inset-top)) - 13px)\",left:\"50%\",transform:microShouldRender?\"translate(-50%, 0px)\":\"translate(-50%, -9px)\",width:microWidth,height:44,borderRadius:999,background:\"transparent\",border:0,padding:0,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",cursor:collapsed?\"pointer\":\"default\",pointerEvents:microInteractive?\"auto\":\"none\",opacity:microShouldRender?1:0,visibility:microShouldRender?\"visible\":\"hidden\",zIndex:13,touchAction:\"manipulation\",transition:reduceMotion?\"none\":\"opacity 180ms ease, transform 220ms cubic-bezier(0.22, 0.61, 0.36, 1), background 200ms ease, color 200ms ease, box-shadow 200ms ease\"},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:microVisualWidth,height:microVisualHeight,borderRadius:999,background:\"rgba(13,15,21,0.76)\",border:\"1px solid rgba(255,255,255,0.12)\",boxShadow:microFocus?\"inset 0 0 0 2px rgba(167,155,255,0.78), inset 0 1px 0 rgba(255,255,255,0.05), 0 8px 22px rgba(0,0,0,0.28)\":\"inset 0 1px 0 rgba(255,255,255,0.05), 0 8px 22px rgba(0,0,0,0.28)\",backdropFilter:mode===\"phone\"?\"blur(14px)\":\"blur(16px)\",WebkitBackdropFilter:mode===\"phone\"?\"blur(14px)\":\"blur(16px)\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",transition:reduceMotion?\"none\":\"background 180ms ease, box-shadow 180ms ease\"},children:/*#__PURE__*/_jsx(\"span\",{style:{width:mode===\"phone\"?18:mode===\"tablet\"?16:14,height:2,borderRadius:999,background:microHover||microFocus?\"rgba(167,155,255,0.88)\":\"rgba(167,155,255,0.62)\",display:\"block\"}})})})]});});}\nexport const __FramerMetadata__ = {\"exports\":{\"PortfolioMenuShortcuts\":{\"type\":\"reactHoc\",\"name\":\"PortfolioMenuShortcuts\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PortfolioContextIsland_v3.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,addFonts,ControlType,useIsStaticRenderer}from\"framer\";import{startTransition,useCallback,useEffect,useRef,useState}from\"react\";const DISPLAY=\"'Neue Machina Light', 'Neue Machina', 'Space Grotesk', system-ui, sans-serif\";const MONO=\"'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace\";/** the loader's digits are Neue Machina Light, under the family name Framer registers */const FONTS=[{family:\"Neue Machina Light\",url:\"https://framerusercontent.com/assets/kHy2ZL66IfNAeSPsogdDz0PL1sI.woff2\",weight:\"300\",style:\"normal\"}];/** Neue Machina has no tabular figures, so each digit sits in a fixed cell and the count never shifts */const DIGIT_CELL='<span style=\"display:inline-block;width:.67em;text-align:center\">';function digitCells(n){return String(n).split(\"\").map(d=>DIGIT_CELL+d+\"</span>\").join(\"\");}// Every value crossing the Framer boundary arrives as a string often enough\n// that trusting it is a bug waiting to happen — \"false\" is truthy.\nfunction toBool(v,fallback){if(typeof v===\"boolean\")return v;if(v===\"true\")return true;if(v===\"false\")return false;return fallback;}function toNum(v,fallback){const n=typeof v===\"number\"?v:Number(v);return Number.isFinite(n)?n:fallback;}// Framer hands colour tokens across as the literal string `var(--token-…)`,\n// which no parser can read. Resolve it against the live DOM first.\nfunction resolveColor(value,host){if(typeof value!==\"string\"||!value.includes(\"var(\"))return value;if(typeof document===\"undefined\"||!host)return value;const probe=document.createElement(\"span\");probe.style.cssText=\"display:none;color:\"+value;host.appendChild(probe);const out=getComputedStyle(probe).color;host.removeChild(probe);return out||value;}function toRgb(value){const hex=value.trim().match(/^#?([0-9a-f]{6})$/i);if(hex){const n=parseInt(hex[1],16);return[n>>16&255,n>>8&255,n&255];}const m=value.match(/rgba?\\(([^)]+)\\)/i);if(m){const p=m[1].split(\",\").map(s=>parseFloat(s));if(p.length>=3)return[p[0],p[1],p[2]];}return[183,255,60];}const ASSEMBLE=1200;/**\n * Preloader — Instrument\n *\n * A particle field with real depth passing behind a glass lens. Progress is\n * measured from actual asset load, floored so it cannot flash on a warm\n * cache and capped so a stalled asset can never trap anyone.\n *\n * Place as the first child of the page or layout template and set the Framer\n * node to `position: fixed`, full size, a high zIndex, and — this part is not\n * optional — **pointerEvents: none**. The component returns null when it\n * finishes, and Framer's wrapper node survives that; without it an invisible\n * full-viewport div swallows every tap on the site.\n *\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 800\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function Preloader(props){const{accent=\"#B7FF3C\",wordmark=\"Pierre Byrne\"}=props;const intensity=Math.min(Math.max(toNum(props.intensity,30),0),100)/100;const showWordmark=toBool(props.showWordmark,true);const minHold=toNum(props.minHold,.6)*1e3;// never longer than 2.4s: the page underneath is ready long before every image has landed\nconst maxHold=Math.min(toNum(props.maxHold,6),2.4)*1e3;const oncePerSession=toBool(props.oncePerSession,true);const isStatic=useIsStaticRenderer();const hostRef=useRef(null);const canvasRef=useRef(null);const numRef=useRef(null);const[gone,setGone]=useState(false);const[lifting,setLifting]=useState(false);const dismissStartedRef=useRef(false);const hideTimerRef=useRef(null);const goneTimerRef=useRef(null);const dismiss=useCallback(goneDelayMs=>{if(typeof window===\"undefined\"||dismissStartedRef.current)return;dismissStartedRef.current=true;startTransition(()=>setLifting(true));try{sessionStorage.setItem(\"pb-preloader\",\"1\");localStorage.setItem(\"pb-preloader-seen\",String(Date.now()));}catch(e){}hideTimerRef.current=window.setTimeout(()=>{startTransition(()=>setLifting(true));},760);goneTimerRef.current=window.setTimeout(()=>{startTransition(()=>setGone(true));},Math.max(0,goneDelayMs));},[]);// Session gate + reduced motion resolve before the field is built, so a\n// returning visitor never sees a frame of it.\nconst[skipAll,setSkipAll]=useState(false);useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;try{// first visit only: once per session, and not again for 30 days on this device\nconst seen=Number(localStorage.getItem(\"pb-preloader-seen\")||0);const recent=seen>0&&Date.now()-seen<30*864e5;if(oncePerSession&&sessionStorage.getItem(\"pb-preloader\")===\"1\"||recent){startTransition(()=>{setSkipAll(true);setGone(true);});}}catch(e){// private mode — just show it\n}},[isStatic,oncePerSession]);// Safety net. The curtain must always leave. Its progress loop can stall\n// (observed live: counter stuck at 0 with readyState already \"complete\"),\n// and because this layer covers the viewport at z-index 10 a stalled loop\n// used to leave the whole site untappable. This timer is independent of\n// the loop and of measured progress.\nuseEffect(()=>{if(typeof window===\"undefined\"||isStatic||gone||skipAll)return;const bail=window.setTimeout(()=>{dismiss(420);},maxHold+1500);return()=>window.clearTimeout(bail);},[isStatic,gone,skipAll,maxHold,dismiss]);useEffect(()=>{if(isStatic||gone||skipAll)return;if(typeof window===\"undefined\")return;const host=hostRef.current;const canvas=canvasRef.current;if(!host||!canvas)return;const el=host;const cv=canvas;const ctx=cv.getContext(\"2d\");if(!ctx)return;// non-null alias, so the hoisted build/frame closures type-check\nconst g2d=ctx;const reduced=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const A=toRgb(resolveColor(accent,el));const DIM=[138,176,74];const C=DIM.map((c,i)=>Math.round(c+(A[i]-c)*intensity));let W=0,H=0,R=0;let parts=[];function build(){const r=el.getBoundingClientRect();const dpr=Math.min(window.devicePixelRatio||1,2);W=Math.max(1,Math.round(r.width));H=Math.max(1,Math.round(r.height));cv.width=W*dpr;cv.height=H*dpr;g2d.setTransform(dpr,0,0,dpr,0,0);R=Math.min(W,H)*.29;let s=9;const rnd=()=>(s=(s*1664525+1013904223)%4294967296)/4294967296;const bands=[{r:R,n:210},{r:R*.8,n:150},{r:R*.6,n:100},{r:R*1.16,n:80}];parts=[];bands.forEach((b,bi)=>{for(let i=0;i<b.n;i++){const a=(i+(rnd()-.5)*.9)/b.n*Math.PI*2;const rr=b.r*(1+(rnd()-.5)*.14);const z=rnd();const sc=1.5+rnd()*2.4;parts.push({a,rr,z,band:bi,size:(.5+z*1.5)*(.7+rnd()*.6),sx:Math.cos(a)*rr*sc+(rnd()-.5)*W*.6,sy:Math.sin(a)*rr*sc+(rnd()-.5)*H*.6,d:rnd()*.5,j:rnd(),wob:2+rnd()*7,ph:rnd()*Math.PI*2,sp:15e-5+rnd()*4e-4,dir:bi%2?-1:1});}});}const ease=t=>t<0?0:t>1?1:1-Math.pow(1-t,3);// ── real progress, not a timer ──────────────────────────────────\nfunction measure(){let p=.06;if(document.readyState===\"interactive\")p=Math.max(p,.35);if(document.readyState===\"complete\")return 1;// what the reader sees first is ready once the document is parsed and the fonts are in;\n// images further down the page keep loading behind the open curtain\nif(document.readyState!==\"loading\"&&fontsDone)return 1;const imgs=Array.from(document.images);if(imgs.length){const done=imgs.filter(i=>i.complete).length;p=Math.max(p,.1+done/imgs.length*.7);}return Math.min(p,.97);}let fontsDone=false;if(document.fonts?.ready){document.fonts.ready.then(()=>{fontsDone=true;});}build();const ro=new ResizeObserver(()=>build());ro.observe(el);let raf=0;const t0=performance.now();let shown=0,target=0,burst=0,burstT=0,finished=false,alive=true;let count=-1;function frame(now){if(!alive)return;raf=requestAnimationFrame(frame);const elapsed=now-t0;target=Math.max(target,measure(),fontsDone?.8:0);const goal=Math.max(target,elapsed>maxHold?1:0);shown+=(goal-shown)*(reduced?.5:.15);if(goal-shown<.002)shown=goal;if(shown>.999&&elapsed>minHold&&!finished){finished=true;burstT=now;dismiss(reduced?260:800);}if(finished&&!reduced)burst=Math.min(1,(now-burstT)/620);const next=Math.round(shown*100);if(next!==count&&numRef.current){count=next;numRef.current.innerHTML=digitCells(next);}// ── paint ──\nconst cx=W/2,cy=H/2;g2d.clearRect(0,0,W,H);const breathe=reduced?.5:.5+.5*Math.sin(now*35e-5);const g=g2d.createRadialGradient(cx,cy,0,cx,cy,R*2.5);g.addColorStop(0,`rgba(${C},${.05+breathe*.03})`);g.addColorStop(.45,`rgba(${C},${.014+breathe*.01})`);g.addColorStop(1,\"rgba(0,0,0,0)\");g2d.fillStyle=g;g2d.fillRect(0,0,W,H);const camX=reduced?0:Math.sin(now*11e-5)*14;const camY=reduced?0:Math.cos(now*9e-5)*10;g2d.strokeStyle=`rgba(${C},${.55+intensity*.3})`;g2d.lineWidth=1.4;g2d.lineCap=\"round\";g2d.beginPath();g2d.arc(cx,cy,R*1.3,-Math.PI/2,-Math.PI/2+shown*Math.PI*2);g2d.stroke();const gg=Math.min(1,elapsed/ASSEMBLE);for(const v of parts){const local=ease((gg-v.d)/(1-v.d));const rot=reduced?0:now*35e-6*v.dir*(1+v.band*.3);const a=v.a+rot;const wob=reduced?0:Math.sin(now*v.sp+v.ph)*v.wob;let tx=Math.cos(a)*(v.rr+wob);let ty=Math.sin(a)*(v.rr+wob);tx+=camX*(.25+v.z);ty+=camY*(.25+v.z);if(burst>0){const k=burst*burst*(2.4+v.j*5)*(.5+v.z);tx*=1+k;ty*=1+k;}const x=cx+(reduced?tx:v.sx+(tx-v.sx)*local);const y=cy+(reduced?ty:v.sy+(ty-v.sy)*local);const ang=(Math.atan2(y-cy,x-cx)+Math.PI*2.5)%(Math.PI*2);const lit=ang<=shown*Math.PI*2;const base=.1+v.z*.42;const alpha=(lit?base*1.5:base*.62)*(1-burst);g2d.fillStyle=lit?`rgba(${C},${alpha})`:`rgba(198,204,212,${alpha})`;const sz=v.size*(lit?1.12:1);g2d.fillRect(x-sz/2,y-sz/2,sz,sz);}}raf=requestAnimationFrame(frame);const onKey=e=>{if(e.key===\"Escape\")target=1;};const onTap=()=>{target=1;};document.addEventListener(\"keydown\",onKey);el.addEventListener(\"click\",onTap);return()=>{alive=false;cancelAnimationFrame(raf);ro.disconnect();document.removeEventListener(\"keydown\",onKey);el.removeEventListener(\"click\",onTap);};},[isStatic,gone,skipAll,accent,intensity,minHold,maxHold]);useEffect(()=>{return()=>{if(hideTimerRef.current!==null)window.clearTimeout(hideTimerRef.current);if(goneTimerRef.current!==null)window.clearTimeout(goneTimerRef.current);};},[]);if(isStatic||gone)return null;const root={...props.style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",background:\"#07080B\",opacity:lifting?0:1,transition:\"opacity .72s cubic-bezier(.4,0,.2,1)\",// The Framer node is pointerEvents:none so that nothing is left\n// swallowing taps once this returns null. A child may still opt back\n// in, which is how click-to-skip survives — and it drops itself the\n// instant the curtain starts lifting.\n// Never intercept pointer events. This layer sits at z-index 10 over the\n// whole site; if the lift ever fails to run it would otherwise swallow\n// every tap underneath it permanently (which is exactly what happened).\npointerEvents:\"none\",fontFamily:DISPLAY};const lens={position:\"absolute\",left:\"50%\",top:\"50%\",translate:\"-50% -50%\",width:\"min(38vh,30%)\",aspectRatio:\"1\",borderRadius:\"50%\",zIndex:2,background:\"linear-gradient(152deg, rgba(255,255,255,.062), rgba(255,255,255,.014) 48%, rgba(255,255,255,.03))\",backdropFilter:\"blur(13px) saturate(118%)\",WebkitBackdropFilter:\"blur(13px) saturate(118%)\",border:\"1px solid rgba(255,255,255,.10)\",boxShadow:\"inset 0 1px 0 rgba(255,255,255,.16), inset 0 -18px 34px rgba(0,0,0,.30), 0 34px 90px rgba(0,0,0,.55)\"};return /*#__PURE__*/_jsxs(\"div\",{ref:hostRef,style:root,children:[/*#__PURE__*/_jsx(\"link\",{rel:\"preload\",as:\"font\",type:\"font/woff2\",crossOrigin:\"anonymous\",href:\"https://framerusercontent.com/assets/kHy2ZL66IfNAeSPsogdDz0PL1sI.woff2\"}),/*#__PURE__*/_jsx(\"link\",{rel:\"preload\",as:\"font\",type:\"font/woff2\",crossOrigin:\"anonymous\",href:\"https://framerusercontent.com/assets/imEtCatqt2GDeP4pZqUZxictts.woff2\"}),/*#__PURE__*/_jsx(\"link\",{rel:\"preload\",as:\"font\",type:\"font/woff2\",crossOrigin:\"anonymous\",href:\"https://framerusercontent.com/third-party-assets/fontshare/wf/6DG6HUOGHOB35UGAANBDBVY77OCFNQOA/MX56D7EXTFRCL3EZPNM332VF6D5TDENT/2MGP255ZY2RSFHKW6LNN6W6BWQGC2LUO.woff2\"}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\",pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{style:lens,\"aria-hidden\":\"true\"}),showWordmark&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:22,left:24,zIndex:4,fontFamily:MONO,fontSize:10,letterSpacing:\".22em\",textTransform:\"uppercase\",color:\"#7C848E\"},children:wordmark}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"grid\",placeItems:\"center\",zIndex:4,pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{ref:numRef,role:\"status\",\"aria-live\":\"polite\",\"aria-label\":\"Loading\",style:{fontSize:\"clamp(34px,5.6vw,62px)\",fontWeight:300,letterSpacing:\"-0.05em\",color:\"#F3F5F7\",fontVariantNumeric:\"tabular-nums\",lineHeight:1,// Fixed width so the count never shifts as it goes from 1 digit to 3.\nminWidth:\"3ch\",textAlign:\"center\"},children:\"0\"})})]});}addPropertyControls(Preloader,{accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#B7FF3C\"},intensity:{type:ControlType.Number,title:\"Accent level\",defaultValue:30,min:0,max:100,step:1,description:\"0 keeps the dimmed sibling, 100 is full brand lime.\"},wordmark:{type:ControlType.String,title:\"Wordmark\",defaultValue:\"Pierre Byrne\"},showWordmark:{type:ControlType.Boolean,title:\"Show wordmark\",defaultValue:true},minHold:{type:ControlType.Number,title:\"Floor\",defaultValue:.6,min:0,max:3,step:.1,unit:\"s\",description:\"Stops it flashing on a warm cache.\"},maxHold:{type:ControlType.Number,title:\"Ceiling\",defaultValue:6,min:2,max:15,step:.5,unit:\"s\",description:\"A stalled asset can never trap anyone.\"},oncePerSession:{type:ControlType.Boolean,title:\"Once per session\",defaultValue:true}});addFonts(Preloader,FONTS);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Preloader\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"800\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Preloader.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer,Link}from\"framer\";/**\n * SensoryLayer\n *\n * Design pass 2, the sensory pass (Pierre, 2026-10-08): the parts of the site people feel but\n * rarely see. One invisible instance in the layout template installs all of it once per page\n * load; nothing here renders into the page or changes layout.\n *\n *  E1  Text selection takes the page's color (lime on Lacrosse, magenta on StringLab, …).\n *  E2  Keyboard focus is a 2 px ring in the page's color, 3 px off the edge, following the\n *      element's shape; raised keys and cards lift as they do on hover. Mouse and touch never\n *      show it. The Portfolio OS Island and the home gate keep their own focus styles.\n *  E3  The site declares itself dark, so the browser draws a dark scrollbar, dark form\n *      controls and a dark overscroll.\n *  E4  Story links (\"Read the full story →\", \"See it live ↗\") draw an underline left to right\n *      in the page's color and the arrow steps forward (ProjectDetails tags them pb-link).\n *  B1  Lights down, color up: a /work card click dims the page while the project's color\n *      rises from the floor, and the case study opens inside that light. It plays while the\n *      next page loads and never delays the navigation. Home-room hand-offs keep their own.\n *  C1  The email link copies the address on the first click and reads \"Copied\"; a second\n *      click (or a modified click) still opens the mail app.\n *  C3  Try first: case studies a visitor has opened get a small \"Read\" mark on their card.\n *      Stored only in that visitor's browser. The mark is its own small element, because\n *      Framer draws card borders with ::after.\n *  C4  One styled line in the console for people who open DevTools.\n *  L2  Try first: the neutral horizon light warms after sunset in the visitor's own time and\n *      cools a little in the morning (galleries read --pb-horizon; project colors never move).\n *  Soft links (2026-10-08 fix): some code components (the home room's panels, the story links,\n *      the 404's keys) render plain <a href>, which made the browser reload the whole page and\n *      stopped the music. A same-site plain link is now handed to a hidden Framer Link (the\n *      pattern ProjectGallery's hand-off uses), so the page changes in place like every Framer\n *      link and the sound carries on. If the address hasn't changed 2 s later, it falls back to\n *      a normal page load, so no click is ever lost.\n *\n * Cheap and safe: one stylesheet and a handful of passive listeners, installed once and never\n * removed (a ref-counted tag dies on client-side navigation). Reduced motion keeps the colors\n * and drops the movement. Every storage access is guarded.\n */const STYLE_ID=\"pb-sensory-css\";const READ_KEY=\"pb-read-v1\";const SITE=\"183, 255, 60\";/** one color per project (memory: portfolio-project-colors); blog posts follow their project */const ACCENTS=[[/healthcare/,\"94, 226, 203\"],[/lacrosse/,\"183, 255, 60\"],[/figma-to-tableau|space-design|tableau/,\"167, 155, 255\"],[/galaxy/,\"122, 178, 255\"],[/stringlab/,\"255, 122, 215\"],[/byrne-method/,\"229, 83, 61\"],[/analytics/,\"255, 168, 92\"],[/dna-viz/,\"186, 206, 232\"]];function accentFor(path){const p=(path||\"\").toLowerCase();for(const[re,c]of ACCENTS)if(re.test(p))return c;return SITE;}const EASE=\"cubic-bezier(.22,1,.36,1)\";/** the island and the gate keep their own focus styles; containers focused by script (tabindex -1) get none */const NOT_OWN=':not([data-framer-name=\"Portfolio OS Island\"] *):not(.pb-gate):not(.pb-gate *):not([tabindex=\"-1\"])';const CSS=`\n:root{color-scheme:dark;scrollbar-color:rgba(255,255,255,.18) transparent;--pb-accent:${SITE}}\nhtml{background-color:#07080B}\n::selection{background:color-mix(in srgb,rgb(var(--pb-accent)) 42%,#07080B);color:#fff}\n:where(a,button,summary,[role=\"button\"],[role=\"link\"],[role=\"tab\"],[tabindex]):focus-visible${NOT_OWN}{outline:2px solid rgb(var(--pb-accent))!important;outline-offset:3px!important}\n.pb-tk-key:focus-visible{translate:0 -1px}\n.pb-tk-card:focus-visible{translate:0 -3px}\n.pb-link{background:linear-gradient(rgb(var(--pb-accent)),rgb(var(--pb-accent))) 0 100%/0% 1px no-repeat;padding-bottom:3px;transition:background-size .45s ${EASE}}\n.pb-link>span[aria-hidden]{display:inline-block;transition:translate .35s ${EASE}}\n.pb-link:focus-visible{background-size:100% 1px}\n.pb-link:active>span[aria-hidden]{translate:5px 0;transition-duration:.08s}\n@media (hover:hover){.pb-link:hover{background-size:100% 1px}.pb-link:hover>span[aria-hidden]{translate:3px 0}}\na[data-pb-copied]:not([data-border]){position:relative;color:transparent!important}\na[data-pb-copied]:not([data-border]) *{visibility:hidden}\na[data-pb-copied]:not([data-border])::after{content:\"Copied\";visibility:visible;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;white-space:nowrap;color:rgb(var(--pb-accent));font:inherit;letter-spacing:inherit;text-transform:inherit}\n.pb-read-mark{position:absolute;right:14px;top:14px;z-index:2;padding:5px 8px 5px 18px;border-radius:999px;pointer-events:none;\n  font:500 9px/1 \"Geist Mono\",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--pb-read,183,255,60));\n  background:radial-gradient(circle at 9px 50%,rgb(var(--pb-read,183,255,60)) 0 2.5px,transparent 3px),rgba(7,8,11,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}\n.pb-veil{position:fixed;inset:0;z-index:2147482000;pointer-events:none;display:none}\n.pb-veil i{position:absolute;inset:0;display:block}\n.pb-veil .pb-veil-dim{background:#07080B;opacity:0}\n.pb-veil .pb-veil-rise{opacity:0;background:radial-gradient(80% 70% at 50% 100%,rgba(var(--pb-veil),.34),rgba(var(--pb-veil),.06) 55%,transparent 75%)}\n.pb-veil[data-state=\"down\"],.pb-veil[data-state=\"up\"]{display:block}\n.pb-veil[data-state=\"down\"] .pb-veil-dim{animation:pb-veil-dim-in .22s ease-out forwards}\n.pb-veil[data-state=\"down\"] .pb-veil-rise{animation:pb-veil-rise-in .42s ${EASE} forwards}\n.pb-veil[data-state=\"up\"] .pb-veil-dim{opacity:.92;animation:pb-veil-dim-out .42s ease-out forwards}\n.pb-veil[data-state=\"up\"] .pb-veil-rise{opacity:1;animation:pb-veil-rise-out .9s ${EASE} forwards}\n@keyframes pb-veil-dim-in{from{opacity:0}to{opacity:.92}}\n@keyframes pb-veil-dim-out{from{opacity:.92}to{opacity:0}}\n@keyframes pb-veil-rise-in{from{opacity:0;transform:translate3d(0,30%,0)}to{opacity:1;transform:none}}\n@keyframes pb-veil-rise-out{from{opacity:1;transform:none}to{opacity:0;transform:translate3d(0,-10%,0)}}\n.pb-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n@media (prefers-reduced-motion:reduce){.pb-link,.pb-link>span[aria-hidden]{transition:none}.pb-link:hover>span[aria-hidden],.pb-link:active>span[aria-hidden],.pb-tk-key:focus-visible,.pb-tk-card:focus-visible{translate:none}}\n`;let installed=false;const opts={softLinks:true,transition:true,copyEmail:true,readMarks:true,eveningLight:true,consoleNote:true};function cue(name){try{document.dispatchEvent(new CustomEvent(\"pb:cue\",{detail:{name}}));}catch(e){}}/* ---------------------------------------------------------------- routes */let lastPath=\"\";const routeSubs=[];function onRoute(f){routeSubs.push(f);}function checkRoute(){const p=window.location.pathname;if(p===lastPath)return;lastPath=p;routeSubs.forEach(f=>{try{f(p);}catch(e){}});}function watchRoutes(){// Framer navigates with the History API; wrap it so a page change is heard at once\nfor(const m of[\"pushState\",\"replaceState\"]){const orig=history[m];history[m]=function(...args){const r=orig.apply(this,args);window.setTimeout(checkRoute,0);return r;};}window.addEventListener(\"popstate\",()=>window.setTimeout(checkRoute,0));checkRoute();}/* ---------------------------------------------------------------- soft links *//** set by the mounted instance: points its hidden Framer Link at a path and clicks it */let softNav=null;function installSoftLinks(){// bubble phase on window: every Framer Link has already handled (and cancelled) its own\n// click by now, so only plain anchors that would reload the page get here\nwindow.addEventListener(\"click\",e=>{if(!opts.softLinks||e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=e.target?.closest?.(\"a[href]\");if(!a||a.hasAttribute(\"data-pb-soft\")||a.target&&a.target!==\"_self\"||a.hasAttribute(\"download\"))return;let url;try{url=new URL(a.href,window.location.href);}catch(err){return;}if(url.origin!==window.location.origin||url.search)return;if(url.pathname===window.location.pathname)return;// a jump within the page\nif(!softNav)return;e.preventDefault();const from=window.location.pathname;try{softNav(url.pathname+url.hash);}catch(err){window.location.assign(url.href);return;}// never strand a click: if the address didn't change, load the page the old way\nwindow.setTimeout(()=>{if(window.location.pathname===from)window.location.assign(url.href);},2e3);});}/* ---------------------------------------------------------------- B1 */function installVeil(){const veil=document.createElement(\"div\");veil.className=\"pb-veil\";veil.setAttribute(\"aria-hidden\",\"true\");veil.innerHTML='<i class=\"pb-veil-dim\"></i><i class=\"pb-veil-rise\"></i>';document.body.appendChild(veil);let token=0;const reduce=()=>!!window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const lift=t=>{if(t!==token)return;veil.dataset.state=\"up\";window.setTimeout(()=>{if(t===token)veil.dataset.state=\"\";},950);};// capture phase: Framer's link handler cancels the click, so this has to see it first\nwindow.addEventListener(\"click\",e=>{if(!opts.transition||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||reduce())return;const a=e.target?.closest?.(\"a.pb-tk-card\");if(!a||a.target===\"_blank\"||!a.href)return;let url;try{url=new URL(a.href,window.location.href);}catch(err){return;}if(url.origin!==window.location.origin||url.pathname===window.location.pathname||!/^\\/work\\//.test(url.pathname))return;const t=++token;const fromPath=window.location.pathname;const fromTitle=document.title;veil.style.setProperty(\"--pb-veil\",accentFor(url.pathname));veil.dataset.state=\"\";void veil.offsetWidth;veil.dataset.state=\"down\";// lift once the new page is in: the path changes, then the title, then two frames\nconst start=performance.now();const wait=()=>{if(t!==token)return;const el=performance.now()-start;const moved=window.location.pathname!==fromPath;if(moved&&(document.title!==fromTitle||el>900)||el>2600){window.requestAnimationFrame(()=>window.requestAnimationFrame(()=>window.setTimeout(()=>lift(t),Math.max(0,260-el))));return;}window.requestAnimationFrame(wait);};window.requestAnimationFrame(wait);},{capture:true});// a page restored from the back-forward cache never shows a stale veil\nwindow.addEventListener(\"pageshow\",()=>{token++;veil.dataset.state=\"\";});}/* ---------------------------------------------------------------- C1 */function installCopyEmail(){const live=document.createElement(\"div\");live.className=\"pb-sr\";live.setAttribute(\"aria-live\",\"polite\");document.body.appendChild(live);const recent=new WeakMap;window.addEventListener(\"click\",e=>{if(!opts.copyEmail||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=e.target?.closest?.('a[href^=\"mailto:\"]');if(!a)return;const clip=navigator.clipboard;if(!clip||typeof clip.writeText!==\"function\")return;// a second click within a few seconds opens the mail app, as before\nconst prev=recent.get(a)||0;if(performance.now()-prev<4e3)return;const addr=decodeURIComponent((a.getAttribute(\"href\")||\"\").replace(/^mailto:/i,\"\").split(\"?\")[0]);if(!addr)return;e.preventDefault();e.stopPropagation();const href=a.href;clip.writeText(addr).then(()=>{recent.set(a,performance.now());a.setAttribute(\"data-pb-copied\",\"\");a.title=\"Copied. Click again to open your mail app.\";live.textContent=\"Email address copied: \"+addr;cue(\"seat\");window.setTimeout(()=>a.removeAttribute(\"data-pb-copied\"),1600);},()=>{window.location.href=href;});},{capture:true});}/* ---------------------------------------------------------------- C3 */function readSet(){try{return new Set((localStorage.getItem(READ_KEY)||\"\").split(\",\").filter(Boolean));}catch(e){return new Set;}}function slugOf(path){const m=(path||\"\").match(/^\\/work\\/([^/?#]+)/);return m?m[1]:\"\";}function installReadMarks(){let raf=0;const mark=()=>{raf=0;if(!opts.readMarks)return;const read=readSet();document.querySelectorAll(\"a.pb-tk-card[href]\").forEach(a=>{let slug=\"\";try{const u=new URL(a.href,window.location.href);if(!u.hash)slug=slugOf(u.pathname);}catch(e){}const on=!!slug&&read.has(slug)&&slug!==slugOf(window.location.pathname);let m=a.querySelector(\":scope > .pb-read-mark\");if(on&&!m){m=document.createElement(\"span\");m.className=\"pb-read-mark\";m.textContent=\"Read\";m.style.setProperty(\"--pb-read\",accentFor(\"/work/\"+slug));a.appendChild(m);}else if(!on&&m)m.remove();});};const soon=()=>{if(!raf)raf=window.requestAnimationFrame(mark);};onRoute(path=>{const slug=slugOf(path);if(slug&&opts.readMarks){const s=readSet();if(!s.has(slug)){s.add(slug);try{localStorage.setItem(READ_KEY,[...s].join(\",\"));}catch(e){}}}soon();});// cards render after hydration and after each in-site navigation\nnew MutationObserver(soon).observe(document.body,{childList:true,subtree:true});soon();}/* ---------------------------------------------------------------- L2 *//** warmth by local hour: 1 evening and night, 0 daytime, −0.6 early morning */const WK=[[0,1],[4.5,1],[6.5,-.6],[9.5,-.6],[11.5,0],[16.5,0],[19.5,1],[24,1]];function warmth(h){for(let i=1;i<WK.length;i++)if(h<=WK[i][0]){const[a,va]=WK[i-1];const[b,vb]=WK[i];let t=(h-a)/(b-a);t=t*t*(3-2*t);return va+(vb-va)*t;}return 1;}function installEveningLight(){const set=()=>{const root=document.documentElement;if(!opts.eveningLight){root.style.removeProperty(\"--pb-horizon\");return;}const d=new Date;const w=warmth(d.getHours()+d.getMinutes()/60);const mix=(a,b,t)=>a.map((v,i)=>Math.round(v+(b[i]-v)*t));const c=w>=0?mix([255,255,255],[255,228,196],w):mix([255,255,255],[222,236,255],-w);root.style.setProperty(\"--pb-horizon\",c.join(\", \"));};set();window.setInterval(set,10*60*1e3);}/* ---------------------------------------------------------------- install */function install(){if(installed||typeof document===\"undefined\")return;installed=true;let tag=document.getElementById(STYLE_ID);if(!tag){tag=document.createElement(\"style\");tag.id=STYLE_ID;document.head.appendChild(tag);}if(tag.textContent!==CSS)tag.textContent=CSS;onRoute(path=>document.documentElement.style.setProperty(\"--pb-accent\",accentFor(path)));installSoftLinks();installVeil();installCopyEmail();installReadMarks();installEveningLight();watchRoutes();if(opts.consoleNote){try{console.log(\"%cPB•%c Designed and built by Pierre Byrne, in Framer.\\nSay hello: design@pierrebyrnecreatives.com\",\"background:#B7FF3C;color:#07080B;padding:2px 6px;border-radius:3px;font-weight:600\",\"padding-left:6px\");}catch(e){}}}/** Who Pierre is, for search engines: a Person and the WebSite, in the server HTML of every page (the layer sits\n *  in the site template). Facts only from the live site and résumé; sameAs lists the profiles the site links to. */const JSON_LD='{\"@context\": \"https://schema.org\", \"@graph\": [{\"@type\": \"Person\", \"@id\": \"https://www.pierrebyrne.com/#pierre\", \"name\": \"Pierre Byrne\", \"url\": \"https://www.pierrebyrne.com/\", \"jobTitle\": \"Product Designer\", \"description\": \"Product designer who turns complex data into clear, usable products.\", \"image\": \"https://framerusercontent.com/assets/wbe0YGPC6A8IXYh6culwOdGFBU.jpg\", \"address\": {\"@type\": \"PostalAddress\", \"addressLocality\": \"Phoenix\", \"addressRegion\": \"AZ\", \"addressCountry\": \"US\"}, \"alumniOf\": {\"@type\": \"CollegeOrUniversity\", \"name\": \"University of Notre Dame\"}, \"knowsAbout\": [\"Product design\", \"Data visualization\", \"Design systems\", \"Healthcare analytics\", \"Enterprise analytics\", \"Figma\", \"React\", \"Tableau\"], \"sameAs\": [\"https://www.linkedin.com/in/pierre-byrne\", \"https://public.tableau.com/app/profile/pierre.byrne\"]}, {\"@type\": \"WebSite\", \"@id\": \"https://www.pierrebyrne.com/#website\", \"url\": \"https://www.pierrebyrne.com/\", \"name\": \"Pierre Byrne\", \"inLanguage\": \"en\", \"publisher\": {\"@id\": \"https://www.pierrebyrne.com/#pierre\"}}]}';/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function SensoryLayer(props){const isStatic=useIsStaticRenderer();const[target,setTarget]=React.useState(null);const holder=React.useRef(null);React.useEffect(()=>{if(isStatic)return;softNav=path=>setTarget({path,n:Date.now()});return()=>{softNav=null;};},[isStatic]);// once the hidden Link points at the new path, click it: Framer navigates in place\nReact.useEffect(()=>{const a=target&&holder.current?holder.current.querySelector(\"a[data-pb-soft]\"):null;if(a)a.click();},[target]);opts.softLinks=props.softLinks!==false;opts.transition=props.transition!==false;opts.copyEmail=props.copyEmail!==false;opts.readMarks=props.readMarks!==false;opts.eveningLight=props.eveningLight!==false;opts.consoleNote=props.consoleNote!==false;// installed once the page is idle, so none of this competes with the first paint\nReact.useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const ric=window.requestIdleCallback;if(typeof ric===\"function\")ric(install,{timeout:1500});else window.setTimeout(install,600);},[isStatic]);if(isStatic)return /*#__PURE__*/_jsx(\"div\",{style:{...props.style,display:\"inline-flex\",alignItems:\"center\",height:28,padding:\"0 10px\",borderRadius:14,background:\"#07080B\",color:\"rgba(205, 209, 214, 0.62)\",fontFamily:\"'Geist Mono', ui-monospace, monospace\",fontSize:10,letterSpacing:\"0.14em\",textTransform:\"uppercase\"},children:\"Sensory layer\"});return /*#__PURE__*/_jsxs(\"div\",{ref:holder,\"aria-hidden\":true,style:{...props.style,width:1,height:1,pointerEvents:\"none\"},children:[props.structuredData!==false?/*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:JSON_LD}}):null,target?/*#__PURE__*/_jsx(Link,{href:target.path,children:/*#__PURE__*/_jsx(\"a\",{href:target.path,\"data-pb-soft\":\"\",tabIndex:-1,style:{display:\"none\"}})},target.n):null]});}addPropertyControls(SensoryLayer,{softLinks:{type:ControlType.Boolean,title:\"Soft links\",defaultValue:true,description:\"Plain links change page in place, so music keeps playing.\"},transition:{type:ControlType.Boolean,title:\"Card transition\",defaultValue:true,description:\"Lights down, color up, from /work cards.\"},copyEmail:{type:ControlType.Boolean,title:\"Copy email\",defaultValue:true},readMarks:{type:ControlType.Boolean,title:\"Read marks\",defaultValue:true,description:\"Try first.\"},eveningLight:{type:ControlType.Boolean,title:\"Evening light\",defaultValue:true,description:\"Try first.\"},consoleNote:{type:ControlType.Boolean,title:\"Console note\",defaultValue:true},structuredData:{type:ControlType.Boolean,title:\"Search profile\",defaultValue:true,description:\"Person + WebSite structured data for search engines.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SensoryLayer\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SensoryLayer.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * SiteSound (was PBSound)\n *\n * The site's sound (Pierre, 2026-10-07): a light house groove by default (\"more lighthearted\n * and house vibes\"), three ambient beds as alternatives, and light click haptics on the things you press, rounding out the tactile pass.\n * Modelled on StringLab's sound.js (the Arsenal page): procedural Web Audio, no files.\n *\n *  - Off by default. Nothing is built, fetched or played until a visitor turns it on; the\n *    AudioContext is only ever created inside that click, so browsers never warn.\n *  - The choice is remembered on this device (localStorage \"pb-sound-v1\", guarded). On a\n *    return visit with sound on, the music resumes on the first click or key press.\n *  - The music is composed in code: a slow pad of extended chords, a soft sub, sparse glass\n *    notes through a delay and a generated reverb, and a faint air texture. It never loops\n *    and downloads nothing. Original work, no licence to track (recorded in tactile/BRIEF.md).\n *  - Click haptics are a two-part key: a soft \"down\" on press, a lighter \"up\" on release,\n *    on links, buttons and cards only (never on hover). Android also gets a 6 ms buzz.\n *  - Components announce moments without importing anything:\n *        document.dispatchEvent(new CustomEvent(\"pb:cue\", { detail: { name: \"seat\" } }))\n *    and this module decides whether they are heard (tick, seat, open, close, land).\n *  - One engine per page load, so the music carries across in-site page changes.\n *  - On iOS the session is \"ambient\": it obeys the silent switch and mixes with the\n *    visitor's own audio. It suspends when the tab is hidden.\n *  - The toggle is a small unboxed equaliser, fixed top right; its bars follow the actual\n *    output level. Rendered through a portal, so it never affects layout.\n *\n * Sensory pass (Pierre, 2026-10-08):\n *  - S1 The home gate's \"Enter with sound\" dispatches pb:sound inside its own click, so the\n *    groove can start with a long fade as the room lifts. Plain Enter stays silent.\n *  - S4 Clicks are panned toward where they happen; galleries send a tick when a frame settles.\n *  - C2 The M key turns sound on and off, like a video player (ignored while typing).\n *  - Try first, each behind its own control:\n *    S2 the groove takes each project's scene (Lacrosse busier and brighter, StringLab plucked\n *       with an echo, Galaxy without the kick and wide open, Analytics warmer); a change lands\n *       on the next bar, never mid-beat.\n *    S3 near the end of a long page (the hand-off into the next project, \"Let's work\n *       together\") the groove resolves home to C for a bar while the filter opens.\n *    H1 iPhones get the system tick on key and card presses, through a hidden native switch\n *       (Safari has no vibration API); Android keeps its 6 ms buzz. Only while sound is on.\n */const KEY=\"pb-sound-v1\";const CUE=\"pb:cue\";const MONO=\"'Geist Mono', 'Space Mono', ui-monospace, SFMono-Regular, Menlo, monospace\";const INK=\"#F3F5F8\";const MUTED=\"rgba(205, 209, 214, 0.62)\";const FAINT=\"rgba(205, 209, 214, 0.38)\";const MOODS={// A · light, a little moody: D minor ninths, glass notes over a soft tape air\nnight:{chords:[[50,57,60,64,65],[46,53,57,60,62],[48,53,57,60,64],[43,50,53,57,58]],bar:13,scale:[62,65,67,69,72,74,76,77,81],gap:[3.2,7.5],cutoff:980,pad:.03,sub:.05,glass:.05,air:.01,wet:.55},// B · warmer and lighter: F lydian, brighter glass\nlow:{chords:[[41,48,52,55,57],[45,52,55,59,60],[38,45,53,57,60],[46,53,57,60,64]],bar:12,scale:[65,67,69,71,72,76,79,81,84],gap:[2.8,6.4],cutoff:1350,pad:.028,sub:.04,glass:.052,air:.007,wet:.5},// C · darker and sparser: a low D drone that barely moves\ndeep:{chords:[[38,45,50,52,57],[34,46,50,53,57],[36,43,50,51,55],[38,45,48,53,57]],bar:18,scale:[57,60,62,65,69,72],gap:[6,13],cutoff:720,pad:.034,sub:.06,glass:.046,air:.014,wet:.65}};const hz=m=>440*Math.pow(2,(m-69)/12);function rng(seed){let s=seed>>>0||1;return()=>{s^=s<<13;s^=s>>>17;s^=s<<5;return(s>>>0)/4294967296;};}/** Builds the mix on any BaseAudioContext: the live page and the offline audition renders\n *  share exactly this code. */function createRig(ctx,seed){const rand=rng(seed);const rate=ctx.sampleRate;// noise, once\nconst noise=ctx.createBuffer(1,rate*2,rate);const nd=noise.getChannelData(0);for(let i=0;i<nd.length;i++)nd[i]=rand()*2-1;// a generated room: decaying stereo noise, darkened toward the tail\nconst len=Math.floor(rate*3.6);const ir=ctx.createBuffer(2,len,rate);for(let c=0;c<2;c++){const d=ir.getChannelData(c);let lp=0;for(let i=0;i<len;i++){const t=i/len;const k=.35+.6*t// more smoothing (darker) as it decays\n;lp=lp+(1-k)*(rand()*2-1-lp);d[i]=lp*Math.pow(1-t,3.1)*(i<rate*.012?i/(rate*.012):1);}}// master: a gentle glue compressor, then a safety limiter, then the analyser\nconst master=ctx.createGain();const glue=ctx.createDynamicsCompressor();glue.threshold.value=-22;glue.knee.value=12;glue.ratio.value=2.5;glue.attack.value=.02;glue.release.value=.4;const limiter=ctx.createDynamicsCompressor();limiter.threshold.value=-3;limiter.knee.value=0;limiter.ratio.value=20;limiter.attack.value=.002;limiter.release.value=.12;const analyser=ctx.createAnalyser();analyser.fftSize=64;analyser.smoothingTimeConstant=.82;master.connect(glue);glue.connect(limiter);limiter.connect(analyser);analyser.connect(ctx.destination);// buses\nconst music=ctx.createGain()// the music fader\n;music.gain.value=0;// the bed sits well under the clicks: about -30 dBFS RMS at the default fader\nconst trim=ctx.createGain();trim.gain.value=.4;const lowcut=ctx.createBiquadFilter();lowcut.type=\"highpass\";lowcut.frequency.value=38;music.connect(trim);trim.connect(lowcut);lowcut.connect(master);const ui=ctx.createGain();ui.connect(master);const verb=ctx.createConvolver();verb.buffer=ir;const wet=ctx.createGain();verb.connect(wet);wet.connect(music);const dry=ctx.createGain();dry.connect(music);// a soft ping-pong-ish delay for the glass\nconst delay=ctx.createDelay(2);delay.delayTime.value=.43;const fb=ctx.createGain();fb.gain.value=.36;const dtone=ctx.createBiquadFilter();dtone.type=\"lowpass\";dtone.frequency.value=2600;delay.connect(dtone);dtone.connect(fb);fb.connect(delay);const dout=ctx.createGain();dout.gain.value=.42;dtone.connect(dout);dout.connect(dry);dout.connect(verb);// the pad's timbre: a softened saw\nconst h=14;const real=new Float32Array(h+1);const imag=new Float32Array(h+1);for(let n=1;n<=h;n++)imag[n]=1/Math.pow(n,1.55);const warm=ctx.createPeriodicWave(real,imag);// one slow LFO breathes every pad filter\nconst lfo=ctx.createOscillator();lfo.frequency.value=.045;const lfoAmt=ctx.createGain();lfo.connect(lfoAmt);lfo.start();return{ctx,rand,noise,master,music,ui,verb,wet,dry,delay,warm,lfo,lfoAmt,analyser};}/** The generative score. fill(t) schedules everything up to time t; the live page calls it\n *  on a timer, an offline render calls it once. */function createScore(rig,moodName){const{ctx,rand}=rig;let def=MOODS[moodName]||MOODS.night;let chordAt=ctx.currentTime+.05;let glassAt=chordAt+2.5;let index=0;let air=null;const live=new Set;function track(n){live.add(n);n.onended=()=>live.delete(n);}function setMood(m){def=MOODS[m]||MOODS.night;rig.delay.delayTime.setTargetAtTime(.43,ctx.currentTime,.2);rig.wet.gain.setTargetAtTime(def.wet,ctx.currentTime,2);rig.dry.gain.setTargetAtTime(1-def.wet*.45,ctx.currentTime,2);rig.lfoAmt.gain.setTargetAtTime(def.cutoff*.28,ctx.currentTime,2);}setMood(moodName);function chord(at,notes,first){const attack=first?4.5:def.bar*.42;const hold=def.bar;const release=def.bar*.62;const env=ctx.createGain();env.gain.setValueAtTime(1e-4,at);env.gain.linearRampToValueAtTime(1,at+attack);env.gain.setValueAtTime(1,at+hold);env.gain.linearRampToValueAtTime(1e-4,at+hold+release);const lp=ctx.createBiquadFilter();lp.type=\"lowpass\";lp.frequency.value=def.cutoff*(.85+.3*rand());lp.Q.value=.35;rig.lfoAmt.connect(lp.frequency);lp.connect(env);env.connect(rig.dry);env.connect(rig.verb);const end=at+hold+release+.1;notes.forEach((m,i)=>{for(let k=0;k<2;k++){const o=ctx.createOscillator();o.setPeriodicWave(rig.warm);o.frequency.value=hz(m);o.detune.value=(k?1:-1)*(5+3*rand());const g=ctx.createGain();g.gain.value=def.pad*(i===0?.8:1)*(k?.85:1);const p=ctx.createStereoPanner?ctx.createStereoPanner():null;o.connect(g);if(p){p.pan.value=(i/(notes.length-1)*2-1)*.55*(k?-1:1);g.connect(p);p.connect(lp);}else g.connect(lp);o.start(at);o.stop(end);track(o);}});// the sub: the root an octave down, a sine\nconst s=ctx.createOscillator();s.type=\"sine\";s.frequency.value=hz(notes[0]-12);const sg=ctx.createGain();sg.gain.value=def.sub;s.connect(sg);sg.connect(env);s.start(at);s.stop(end);track(s);}function glass(at){const m=def.scale[Math.floor(rand()*def.scale.length)];const notes=rand()<.28?[m,def.scale[Math.floor(rand()*def.scale.length)]]:[m];notes.forEach((n,j)=>{const t=at+j*(.18+rand()*.22);const env=ctx.createGain();const peak=def.glass*(.6+.4*rand())*(j?.7:1);env.gain.setValueAtTime(1e-4,t);env.gain.exponentialRampToValueAtTime(peak,t+.008);env.gain.exponentialRampToValueAtTime(1e-4,t+2.6+rand()*1.4);const p=ctx.createStereoPanner?ctx.createStereoPanner():null;const a=ctx.createOscillator();a.type=\"sine\";a.frequency.value=hz(n);const b=ctx.createOscillator();b.type=\"sine\";b.frequency.value=hz(n)*2.997;const bg=ctx.createGain();bg.gain.value=.16;a.connect(env);b.connect(bg);bg.connect(env);const out=p||env;if(p){p.pan.value=(rand()*2-1)*.6;env.connect(p);}out.connect(rig.dry);out.connect(rig.verb);out.connect(rig.delay);const stop=t+4.2;a.start(t);b.start(t);a.stop(stop);b.stop(stop);track(a);track(b);});}function startAir(at){if(air)return;const src=ctx.createBufferSource();src.buffer=rig.noise;src.loop=true;const bp=ctx.createBiquadFilter();bp.type=\"bandpass\";bp.frequency.value=2800;bp.Q.value=.45;const g=ctx.createGain();g.gain.value=def.air;src.connect(bp);bp.connect(g);g.connect(rig.dry);g.connect(rig.verb);src.start(at);air=src;}function fill(until){startAir(Math.max(ctx.currentTime,chordAt-.05));while(chordAt<until){const notes=def.chords[index%def.chords.length];chord(chordAt,notes,index===0);index++;chordAt+=def.bar*(index===1?.8:1);}while(glassAt<until){glass(glassAt);glassAt+=def.gap[0]+rand()*(def.gap[1]-def.gap[0]);}}function stop(at){live.forEach(n=>{try{n.stop(at);}catch(e){}});live.clear();if(air){try{air.stop(at);}catch(e){}air=null;}}function restart(at){chordAt=at;glassAt=at+2.5;index=0;}return{kind:\"ambient\",fill,stop,setMood,restart};}/* ------------------------------------------------------------- the house groove *//** A · House (Pierre, 2026-10-07: \"more lighthearted and house vibes\"). A light deep-house\n *  groove composed in code like the rest: four-on-the-floor kick, clap on two and four,\n *  offbeat hats, a bouncy offbeat bass, warm major-seventh stabs that duck under the kick,\n *  and a bell motif now and then. IV–V–iii–vi in C, 120 bpm, sixteen-bar phrases with a\n *  small lift at the end of each; seeded variation, so it never plays the same way twice. */const HOUSE={bpm:120,swing:.012,// two bars per chord: Fmaj9, G6/9, Em7, Am9 (voicing, then the bass root)\nchords:[{notes:[57,60,64,67],root:41},{notes:[59,62,64,69],root:43},{notes:[55,59,62,64],root:40},{notes:[55,60,64,71],root:45}],bells:[72,74,76,79,81,84],kick:.25,clap:.075,openHat:.04,closedHat:.02,bass:.11,stab:.042,pad:.016,bell:.036,wet:.22};const SCENES={home:{hats16:false,kick:true,clap:true,pluck:false,stabHi:2600,stabLo:820,stab:1,hat:1,bass:1,pad:1,wet:0,send:.22},lacrosse:{hats16:true,kick:true,clap:true,pluck:false,stabHi:3600,stabLo:1100,stab:1,hat:1.1,bass:1,pad:.9,wet:.06,send:.2},stringlab:{hats16:false,kick:true,clap:true,pluck:true,stabHi:3400,stabLo:1300,stab:1.15,hat:.9,bass:.9,pad:.8,wet:0,send:.44},galaxy:{hats16:false,kick:false,clap:false,pluck:false,stabHi:1500,stabLo:520,stab:.55,hat:.5,bass:.6,pad:1.9,wet:.16,send:.3},analytics:{hats16:false,kick:true,clap:true,pluck:false,stabHi:2e3,stabLo:640,stab:.9,hat:.9,bass:1,pad:1.25,wet:.03,send:.22}};function sceneFor(path){const p=(path||\"\").toLowerCase();if(/lacrosse/.test(p))return\"lacrosse\";if(/stringlab/.test(p))return\"stringlab\";if(/galaxy/.test(p))return\"galaxy\";if(/analytics/.test(p))return\"analytics\";return\"home\";}/** S3 · the arrival: home, a Cmaj9 */const HOME_CHORD={notes:[60,64,67,71,74],root:36};function createHouseScore(rig){const{ctx,rand}=rig;const six=60/HOUSE.bpm/4;let origin=ctx.currentTime+.05;let step=0;let motif=[];const live=new Set;const track=n=>{live.add(n);n.onended=()=>live.delete(n);};// the groove's own buses: drums and bass through a small bus compressor (it keeps the\n// offbeat bass-and-hat hits under the click sounds), harmony through a duck the kick pumps\nconst bus=ctx.createDynamicsCompressor();bus.threshold.value=-28;bus.knee.value=6;bus.ratio.value=4;bus.attack.value=.003;bus.release.value=.14;// Web Audio's compressor adds its own make-up gain, so this trims back down\nconst makeup=ctx.createGain();makeup.gain.value=.56;bus.connect(makeup);makeup.connect(rig.dry);const drums=ctx.createGain();drums.connect(bus);const duck=ctx.createGain();duck.connect(rig.dry);duck.connect(rig.verb);const send=ctx.createGain();send.gain.value=.22;duck.connect(send);send.connect(rig.delay);let scene=SCENES.home;let pending=null;let arriveQ=false;let arriveBar=-1;function setMood(){const now=ctx.currentTime;const w=HOUSE.wet+scene.wet;rig.wet.gain.setTargetAtTime(w,now,.5);rig.dry.gain.setTargetAtTime(1-w*.45,now,.5);rig.lfoAmt.gain.setTargetAtTime(0,now,.5);rig.delay.delayTime.setTargetAtTime(six*3,now,.2)// a dotted eighth\n;send.gain.setTargetAtTime(scene.send,now,.4);}setMood();const timeOf=s=>origin+s*six+(s%2?HOUSE.swing:0);function noise(at,dur,out){const src=ctx.createBufferSource();src.buffer=rig.noise;src.connect(out);src.start(at,rand()*1.5,dur+.02);track(src);}function kick(at){const o=ctx.createOscillator();o.type=\"sine\";o.frequency.setValueAtTime(128,at);o.frequency.exponentialRampToValueAtTime(47,at+.09);const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.exponentialRampToValueAtTime(HOUSE.kick,at+.004);g.gain.exponentialRampToValueAtTime(1e-4,at+.34);o.connect(g);g.connect(drums);o.start(at);o.stop(at+.36);track(o);// the pump: harmony dips under each kick and swells back\nduck.gain.setValueAtTime(.42,at);duck.gain.linearRampToValueAtTime(1,at+.26);}function clap(at){const bp=ctx.createBiquadFilter();bp.type=\"bandpass\";bp.frequency.value=1150;bp.Q.value=.9;const g=ctx.createGain();const v=HOUSE.clap*(.85+.15*rand());g.gain.setValueAtTime(1e-4,at);for(const k of[0,.011,.022]){g.gain.setValueAtTime(v,at+k);g.gain.exponentialRampToValueAtTime(v*.22,at+k+.009);}g.gain.setValueAtTime(v*.75,at+.033);g.gain.exponentialRampToValueAtTime(1e-4,at+.2);bp.connect(g);g.connect(drums);g.connect(rig.verb);noise(at,.22,bp);}function hat(at,open){const hp=ctx.createBiquadFilter();hp.type=\"highpass\";hp.frequency.value=open?7200:9e3;const g=ctx.createGain();const v=(open?HOUSE.openHat:HOUSE.closedHat)*scene.hat*(.7+.3*rand());const decay=open?.09:.03;g.gain.setValueAtTime(1e-4,at);g.gain.exponentialRampToValueAtTime(v,at+.003);g.gain.exponentialRampToValueAtTime(1e-4,at+decay);const p=ctx.createStereoPanner?ctx.createStereoPanner():null;hp.connect(g);if(p){p.pan.value=open?.18:-.22;g.connect(p);p.connect(drums);}else g.connect(drums);noise(at,decay+.01,hp);}function bass(at,midi,len,v=1){const lp=ctx.createBiquadFilter();lp.type=\"lowpass\";lp.Q.value=1.4;lp.frequency.setValueAtTime(1300,at);lp.frequency.exponentialRampToValueAtTime(380,at+len);const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.exponentialRampToValueAtTime(HOUSE.bass*scene.bass*v,at+.006);g.gain.exponentialRampToValueAtTime(1e-4,at+len);lp.connect(g);g.connect(bus);for(const[type,mul,lvl]of[[\"sine\",1,1],[\"triangle\",2,.35]]){const o=ctx.createOscillator();o.type=type;o.frequency.value=hz(midi)*mul;const og=ctx.createGain();og.gain.value=lvl;o.connect(og);og.connect(lp);o.start(at);o.stop(at+len+.02);track(o);}}function stab(at,notes,len){const lp=ctx.createBiquadFilter();lp.type=\"lowpass\";lp.Q.value=.8;lp.frequency.setValueAtTime(scene.stabHi,at);lp.frequency.exponentialRampToValueAtTime(scene.stabLo,at+len);const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.exponentialRampToValueAtTime(1,at+.005);g.gain.exponentialRampToValueAtTime(1e-4,at+len);lp.connect(g);g.connect(duck);notes.forEach((m,i)=>{for(let k=0;k<2;k++){const o=ctx.createOscillator();o.setPeriodicWave(rig.warm);o.frequency.value=hz(m);o.detune.value=(k?1:-1)*(4+3*rand());const og=ctx.createGain();og.gain.value=HOUSE.stab*scene.stab*(k?.8:1);const p=ctx.createStereoPanner?ctx.createStereoPanner():null;o.connect(og);if(p){p.pan.value=(i/(notes.length-1)*2-1)*.45*(k?-1:1);og.connect(p);p.connect(lp);}else og.connect(lp);o.start(at);o.stop(at+len+.02);track(o);}});}function pad(at,notes,dur){const lp=ctx.createBiquadFilter();lp.type=\"lowpass\";lp.frequency.value=1100;const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.linearRampToValueAtTime(1,at+.6);g.gain.setValueAtTime(1,at+dur-.3);g.gain.linearRampToValueAtTime(1e-4,at+dur+.5);lp.connect(g);g.connect(duck);notes.forEach(m=>{const o=ctx.createOscillator();o.setPeriodicWave(rig.warm);o.frequency.value=hz(m+12);const og=ctx.createGain();og.gain.value=HOUSE.pad*scene.pad;o.connect(og);og.connect(lp);o.start(at);o.stop(at+dur+.6);track(o);});}function bell(at,midi,v){const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.exponentialRampToValueAtTime(HOUSE.bell*v,at+.006);g.gain.exponentialRampToValueAtTime(1e-4,at+1.3);const p=ctx.createStereoPanner?ctx.createStereoPanner():null;const out=p||g;if(p){p.pan.value=(rand()*2-1)*.5;g.connect(p);}out.connect(rig.dry);out.connect(rig.verb);out.connect(rig.delay);for(const[mul,lvl]of[[1,1],[3.01,.12],[4.2,.05]]){const o=ctx.createOscillator();o.type=\"sine\";o.frequency.value=hz(midi)*mul;const og=ctx.createGain();og.gain.value=lvl;o.connect(og);og.connect(g);o.start(at);o.stop(at+1.35);track(o);}}/** S3: one bar of the home chord while the filter opens all the way */function swell(at,notes,dur){const lp=ctx.createBiquadFilter();lp.type=\"lowpass\";lp.Q.value=2.2;lp.frequency.setValueAtTime(480,at);lp.frequency.exponentialRampToValueAtTime(5200,at+dur*.85);const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.linearRampToValueAtTime(1,at+.25);g.gain.setValueAtTime(1,at+dur-.2);g.gain.linearRampToValueAtTime(1e-4,at+dur+.6);lp.connect(g);g.connect(duck);notes.forEach((m,i)=>{for(let k=0;k<2;k++){const o=ctx.createOscillator();o.setPeriodicWave(rig.warm);o.frequency.value=hz(m);o.detune.value=(k?1:-1)*(5+2*rand());const og=ctx.createGain();og.gain.value=HOUSE.stab*.55;const p=ctx.createStereoPanner?ctx.createStereoPanner():null;o.connect(og);if(p){p.pan.value=(i/(notes.length-1)*2-1)*.5*(k?-1:1);og.connect(p);p.connect(lp);}else og.connect(lp);o.start(at);o.stop(at+dur+.7);track(o);}});}// stab rhythms, alternating bar to bar (sixteenth positions, length in sixteenths)\nconst STABS=[[[3,2],[6,3],[10,2]],[[2,2],[6,2],[11,2],[14,2]]];function play(s){const at=timeOf(s);const pos=s%16;const bar=Math.floor(s/16);const phrase=bar%16;const intro=bar<2;if(pos===0){if(pending){scene=pending;pending=null;setMood();}if(arriveQ){arriveQ=false;arriveBar=bar;}}// after an arrival the progression starts again from the top\nconst cb=arriveBar>=0&&bar>arriveBar?bar-arriveBar-1:bar;if(bar===arriveBar){if(pos===0){swell(at,HOME_CHORD.notes,six*16);bass(at,HOME_CHORD.root,six*6);bell(at+six*2,84,.8);}if(pos===8)bass(at,HOME_CHORD.root+12,six*3,.6);if(pos===10)bell(at,79,.6);if(pos%4===2)hat(at,true);return;}const chord=HOUSE.chords[Math.floor(cb/2)%HOUSE.chords.length];const lift=phrase===15&&pos>=12// the last beat of a phrase drops out\n;if(pos%4===0&&!intro&&!lift&&scene.kick)kick(at);if((pos===4||pos===12)&&bar>=4&&!lift&&scene.clap)clap(at);if(pos%4===2&&bar>=1)hat(at,true);if(pos%2===1&&bar>=6&&(scene.hats16||phrase!==12&&phrase!==13&&rand()<.72))hat(at,false);if(!intro&&pos%4===2){const up=pos===14&&bar%2===1;bass(at,chord.root+(up?12:0),six*1.7,up?.7:1);}if(!intro&&pos===11&&rand()<.35)bass(at,chord.root+7,six*.9);for(const[p,len]of STABS[cb%2])if(p===pos)stab(at,chord.notes,scene.pluck?six*1.1:six*len+.05);if(pos===0&&cb%2===0)pad(at,chord.notes,six*32);// a short bell motif every fourth bar once the groove is in\nif(bar>=4&&bar%4===0&&pos===0){motif=[0,1,2,3].map(()=>HOUSE.bells[Math.floor(rand()*HOUSE.bells.length)]);}if(bar>=4&&bar%4===0){const i=[0,3,6,10].indexOf(pos);if(i>=0&&motif[i])bell(at,motif[i],i===3?.7:1);}}function fill(until){while(timeOf(step)<until){play(step);step++;}}function stop(at){live.forEach(n=>{try{n.stop(at);}catch(e){}});live.clear();}function restart(at){origin=at;step=0;arriveBar=-1;}function setScene(name){const next=SCENES[name]||SCENES.home;pending=next===scene?null:next;}function arrive(){if(arriveBar<0||Math.floor(step/16)>arriveBar+2)arriveQ=true;}return{kind:\"house\",fill,stop,setMood,restart,setScene,arrive};}/** the score for a mood: the groove for house, the generative bed for the rest */function makeScore(r,m){return m===\"house\"?createHouseScore(r):createScore(r,m);}/* ------------------------------------------------------------------ the haptics */function createKit(rig){const{ctx,rand}=rig;let voices=0;function start(n,at,offset,dur){voices++;n.onended=()=>{voices--;};if(offset===undefined)n.start(at);else n.start(at,offset,dur);}function env(p,at,peak,attack,decay){p.setValueAtTime(1e-4,at);p.exponentialRampToValueAtTime(Math.max(2e-4,peak),at+attack);p.exponentialRampToValueAtTime(1e-4,at+attack+decay);}/** a click: a filtered noise transient, with an optional body under it */function click(at,o){const src=ctx.createBufferSource();src.buffer=rig.noise;const bp=ctx.createBiquadFilter();bp.type=\"bandpass\";bp.frequency.value=o.f*(.94+.12*rand());bp.Q.value=o.q||1.5;const g=ctx.createGain();env(g.gain,at,o.gain*(.9+.2*rand()),8e-4,o.decay);src.connect(bp);bp.connect(g);let tail=g;if(o.pan&&ctx.createStereoPanner){const p=ctx.createStereoPanner();p.pan.value=o.pan;g.connect(p);tail=p;}tail.connect(rig.ui);start(src,at,rand()*1.5,o.decay+.03);if(o.body){const b=ctx.createOscillator();b.type=\"sine\";const f=o.bodyF||160;b.frequency.setValueAtTime(f,at);b.frequency.exponentialRampToValueAtTime(f*.68,at+.045);const bg=ctx.createGain();env(bg.gain,at,o.body,.002,.05);b.connect(bg);bg.connect(rig.ui);start(b,at);b.stop(at+.08);}}function thump(at,gain){const src=ctx.createBufferSource();src.buffer=rig.noise;const lp=ctx.createBiquadFilter();lp.type=\"lowpass\";lp.frequency.value=360;const g=ctx.createGain();env(g.gain,at,gain,.003,.12);src.connect(lp);lp.connect(g);g.connect(rig.ui);start(src,at,rand(),.16);}function air(at,rise,gain,dur){const src=ctx.createBufferSource();src.buffer=rig.noise;const bp=ctx.createBiquadFilter();bp.type=\"bandpass\";bp.Q.value=.8;bp.frequency.setValueAtTime(rise?500:2400,at);bp.frequency.exponentialRampToValueAtTime(rise?2600:420,at+dur);const g=ctx.createGain();g.gain.setValueAtTime(1e-4,at);g.gain.exponentialRampToValueAtTime(gain,at+dur*(rise?.6:.25));g.gain.exponentialRampToValueAtTime(1e-4,at+dur);src.connect(bp);bp.connect(g);g.connect(rig.ui);start(src,at,rand(),dur+.02);}function chime(at,m,gain){const o=ctx.createOscillator();o.type=\"sine\";o.frequency.value=hz(m);const g=ctx.createGain();env(g.gain,at,gain,.006,.9);o.connect(g);g.connect(rig.ui);g.connect(rig.verb);start(o,at);o.stop(at+1);}const cues={// the key: a soft press and a lighter release\ndown:(at,d)=>click(at,{f:2300,gain:.12,decay:.016,body:.085,bodyF:175,pan:Number(d&&d.pan)||0}),up:(at,d)=>click(at,{f:3700,q:2,gain:.06,decay:.011,pan:Number(d&&d.pan)||0}),// a detent: steps, tabs, a stage changing chapter\ntick:(at,d)=>click(at,{f:2900+140*(Number(d&&d.degree)||0),gain:.065,decay:.013,pan:Number(d&&d.pan)||0}),// something landing in place: a card docking, a plate dropping onto the stack\nseat:(at,d)=>{thump(at,.11*(Number(d&&d.weight)||1));click(at+.012,{f:2100,gain:.05,decay:.014,pan:Number(d&&d.pan)||0});},open:at=>{air(at,true,.05,.18);click(at+.12,{f:3e3,gain:.04,decay:.012});},close:at=>air(at,false,.045,.16),enable:at=>{chime(at,81,.05);chime(at+.09,88,.035);thump(at,.07);},disable:at=>click(at,{f:1700,gain:.07,decay:.02,body:.05,bodyF:140})};return{get voices(){return voices;},play(name,at,d){const f=cues[name];if(!f)return false;f(at,d);return true;}};}/* ------------------------------------------------------------------ the engine */const S={want:false,running:false,mood:\"house\",music:.6,ui:.8,follow:true,arrival:true,taps:true};let scenePlaying=\"\";let arrivedAt=\"\";let rig=null;let score=null;let kit=null;let timer=0;let sleepTimer=0;let wired=false;const subs=new Set;const emit=()=>subs.forEach(f=>f());const last=new Map;const GAP={down:24,up:24,tick:30,seat:60,open:120,close:120};function readPref(){try{return localStorage.getItem(KEY)===\"on\";}catch(e){return false;}}function writePref(on){try{localStorage.setItem(KEY,on?\"on\":\"off\");}catch(e){}}/** only ever called from inside a user gesture */function build(){if(rig)return true;const AC=window.AudioContext||window.webkitAudioContext;if(!AC)return false;try{const nav=navigator;if(nav.audioSession)nav.audioSession.type=\"ambient\";}catch(e){}try{const ctx=new AC({latencyHint:\"interactive\"});rig=createRig(ctx,(Date.now()&16777215)+7);kit=createKit(rig);rig.ui.gain.value=S.ui;// iOS only wakes its output for a sound started inside the gesture\nconst wake=ctx.createBufferSource();wake.buffer=ctx.createBuffer(1,1,ctx.sampleRate);wake.connect(ctx.destination);wake.start(0);return true;}catch(e){rig=null;kit=null;return false;}}function followPage(){const sc=S.follow?sceneFor(window.location.pathname):\"home\";if(sc===scenePlaying||!score)return;scenePlaying=sc;const f=score.setScene;if(typeof f===\"function\")f(sc);}function startMusic(fade=4){if(!rig)return;const ctx=rig.ctx;if(ctx.state!==\"running\")ctx.resume().catch(()=>{});window.clearTimeout(sleepTimer);const now=ctx.currentTime;if(!score)score=makeScore(rig,S.mood);else score.restart(now+.05);scenePlaying=\"\";followPage();score.fill(now+3);const g=rig.music.gain;g.cancelScheduledValues(now);g.setValueAtTime(Math.max(1e-4,g.value),now);g.linearRampToValueAtTime(S.music,now+fade);window.clearInterval(timer);timer=window.setInterval(()=>{if(!rig||!score||!S.running)return;followPage();if(rig.ctx.state===\"running\")score.fill(rig.ctx.currentTime+3);},400);S.running=true;emit();}function stopMusic(){if(!rig)return;const ctx=rig.ctx;const now=ctx.currentTime;const g=rig.music.gain;g.cancelScheduledValues(now);g.setValueAtTime(Math.max(1e-4,g.value),now);g.linearRampToValueAtTime(1e-4,now+1.5);window.clearInterval(timer);if(score)score.stop(now+1.6);score=null;S.running=false;emit();window.clearTimeout(sleepTimer);sleepTimer=window.setTimeout(()=>{if(!S.running&&rig&&rig.ctx.state===\"running\")rig.ctx.suspend().catch(()=>{});},2200);}function cue(name,detail){if(!S.want||!rig||!kit)return;const ctx=rig.ctx;if(ctx.state===\"closed\")return;const now=performance.now();if(now-(last.get(name)||-1e9)<(GAP[name]||40))return;if(kit.voices>26)return;last.set(name,now);if(ctx.state!==\"running\")ctx.resume().catch(()=>{});try{kit.play(name,ctx.currentTime+.004,detail||{});}catch(e){}}function setOn(next,fade){if(next){S.want=true;writePref(true);if(build()){startMusic(fade);cue(\"enable\");}}else{cue(\"disable\");S.want=false;writePref(false);stopMusic();}emit();}const PRESSABLE='a[href], button, [role=\"button\"], [role=\"tab\"], [role=\"switch\"], [role=\"menuitem\"], summary, label, select, input[type=\"checkbox\"], input[type=\"radio\"], [data-cue]';function pressable(t){const el=t&&t.closest?t.closest(PRESSABLE):null;if(!el||el.closest(\"[data-pb-sound-toggle]\"))return null;if(el.dataset&&el.dataset.cue===\"none\")return null;return el;}/** S4: a click sounds from where it happens, a little left or right of centre */function panAt(x){const w=typeof window!==\"undefined\"?window.innerWidth||1:1;return Math.max(-1,Math.min(1,x/w*2-1))*.5;}function panOf(el){if(!el||!el.getBoundingClientRect)return 0;const r=el.getBoundingClientRect();return panAt(r.left+r.width/2);}function typing(t){const el=t;if(!el||!el.tagName)return false;if(el.isContentEditable)return true;if(el.tagName===\"TEXTAREA\"||el.tagName===\"SELECT\")return true;return el.tagName===\"INPUT\"&&!/^(checkbox|radio|range|button|submit|reset)$/i.test(el.type);}/** H1: iOS has no vibration API, but toggling a native switch inside a tap gives the system\n *  tick. One hidden switch, reused. A no-op anywhere else, and if Apple ever closes it. */const TAP_SEL=\".pb-tk-card, .pb-tk-key, .pb-gate-enter, .pb-gate-sound\";let tapLabel=null;function isIOS(){const nav=navigator;return/iP(hone|ad|od)/.test(nav.userAgent||\"\")||nav.platform===\"MacIntel\"&&nav.maxTouchPoints>1;}function tap(){if(!S.want||!S.taps||!isIOS())return;try{if(!tapLabel){const l=document.createElement(\"label\");l.setAttribute(\"aria-hidden\",\"true\");l.style.cssText=\"position:fixed;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none\";const i=document.createElement(\"input\");i.type=\"checkbox\";i.setAttribute(\"switch\",\"\");i.tabIndex=-1;l.appendChild(i);document.body.appendChild(l);tapLabel=l;}tapLabel.click();}catch(e){}}/** S3: near the end of a long page the groove comes home, once per visit to that page */function arriveIfDone(){if(!S.running||!S.arrival||!score)return;const de=document.documentElement;const vh=window.innerHeight||800;const h=de.scrollHeight;const path=window.location.pathname;if(arrivedAt&&arrivedAt!==path)arrivedAt=\"\";if(h<vh*3)return;const fromEnd=h-(window.scrollY+vh);if(arrivedAt===path){if(fromEnd>vh*2)arrivedAt=\"\"// went back up: it can arrive again\n;return;}if(fromEnd<=vh*.6){arrivedAt=path;const f=score.arrive;if(typeof f===\"function\")f();}}/** document listeners, once per page load */function wire(){if(wired||typeof window===\"undefined\")return;wired=true;S.want=readPref();// a returning visitor who chose sound: resume on the first gesture, never on load\nconst resume=()=>{if(!S.want||S.running)return;// while the home gate is open it decides: Enter is quiet, Enter with sound is not\nif(document.querySelector(\".pb-gate\"))return;const ua=navigator.userActivation;if(ua&&!ua.isActive)return;if(build())startMusic();};let pressed=null;window.addEventListener(\"pointerdown\",e=>{resume();const el=pressable(e.target);pressed=el;if(!el||!S.want)return;cue(\"down\",{pan:panAt(e.clientX)});if(e.pointerType===\"touch\"){try{const nav=navigator;if(nav.vibrate)nav.vibrate(6);}catch(err){}}},{capture:true,passive:true});window.addEventListener(\"pointerup\",e=>{// touch only grants activation on release, so a phone resumes here\nresume();if(pressed&&S.want&&pressable(e.target)===pressed){cue(\"up\",{pan:panAt(e.clientX)});if(e.pointerType===\"touch\"&&pressed.closest(TAP_SEL))tap();}pressed=null;},{capture:true,passive:true});window.addEventListener(\"click\",resume,{capture:true,passive:true});window.addEventListener(\"keydown\",e=>{if(e.repeat||e.key===\"Escape\")return;// C2: M turns sound on and off, like a video player\nif((e.key===\"m\"||e.key===\"M\")&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&!typing(e.target)){setOn(!S.want);return;}resume();if((e.key===\"Enter\"||e.key===\" \")&&pressable(document.activeElement))cue(\"down\",{pan:panOf(document.activeElement)});},{capture:true});window.addEventListener(\"keyup\",e=>{if((e.key===\"Enter\"||e.key===\" \")&&pressable(document.activeElement))cue(\"up\",{pan:panOf(document.activeElement)});},{capture:true});document.addEventListener(CUE,e=>{const d=e.detail||{};if(d&&typeof d.name===\"string\")cue(d.name,d);});// S1: another component (the home gate) asks for sound inside its own click\ndocument.addEventListener(\"pb:sound\",e=>{const d=e.detail||{};if(d.on===true&&!S.want)setOn(true,Number(d.fade)||4);else if(d.on===true&&S.want&&!S.running&&build())startMusic(Number(d.fade)||4);else if(d.on===false&&S.want)setOn(false);});let arriveRaf=0;window.addEventListener(\"scroll\",()=>{if(arriveRaf||!S.running)return;arriveRaf=window.requestAnimationFrame(()=>{arriveRaf=0;arriveIfDone();});},{passive:true});document.addEventListener(\"visibilitychange\",()=>{if(!rig)return;const ctx=rig.ctx;if(document.hidden){if(ctx.state===\"running\")ctx.suspend().catch(()=>{});}else if(S.running)ctx.resume().catch(()=>{});});// a choice made in another tab applies here too\nwindow.addEventListener(\"storage\",e=>{if(e.key!==KEY)return;const on=e.newValue===\"on\";if(on===S.want)return;S.want=on;if(!on)stopMusic();emit();});emit();}// a hook for the audition page (?pbsound-test), never used by the site itself\nif(typeof window!==\"undefined\"&&/[?&]pbsound-test/.test(window.location.search)){window.__pbSound={createRig,createScore:makeScore,createKit,MOODS,HOUSE,SCENES};}/* ------------------------------------------------------------------ the toggle */const owners=[];function useEngine(){const[,force]=React.useReducer(x=>x+1,0);React.useEffect(()=>{subs.add(force);return()=>{subs.delete(force);};},[]);return S;}function Bars(props){const{on,still,size}=props;const refs=React.useRef([]);React.useEffect(()=>{if(!on||still||typeof window===\"undefined\")return;let raf=0;const data=new Uint8Array(32);const level=[0,0,0,0];const bands=[[1,3],[3,6],[6,11],[11,20]];const loop=()=>{raf=window.requestAnimationFrame(loop);if(document.hidden||!rig)return;rig.analyser.getByteFrequencyData(data);bands.forEach(([a,b],i)=>{let s=0;for(let k=a;k<b;k++)s+=data[k];const v=Math.min(1,s/(b-a)/255*(1.6+i*.5));level[i]+=(v-level[i])*.25;const el=refs.current[i];if(el)el.style.transform=\"scaleY(\"+(.18+.82*level[i]).toFixed(3)+\")\";});};loop();return()=>window.cancelAnimationFrame(raf);},[on,still]);const rest=[.45,.8,.6,.35];return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{display:\"inline-flex\",alignItems:\"center\",gap:Math.round(size*.16),height:size},children:rest.map((r,i)=>/*#__PURE__*/_jsx(\"span\",{ref:el=>{refs.current[i]=el;},style:{display:\"block\",width:2,height:size,borderRadius:1,background:on?INK:MUTED,transformOrigin:\"50% 50%\",transform:\"scaleY(\"+(on?still?r:.18:.14).toFixed(2)+\")\",transition:on&&!still?\"background .3s ease\":\"transform .45s cubic-bezier(.22,1,.36,1), background .3s ease\"}},i))});}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function PBSound(props){const isStatic=useIsStaticRenderer();const mood=props.mood===\"night\"||props.mood===\"low\"||props.mood===\"deep\"?props.mood:\"house\";const num=(v,f)=>Number.isFinite(Number(v))?Number(v):f;const music=Math.max(0,Math.min(1,num(props.musicVolume,.6)));const uiv=Math.max(0,Math.min(1,num(props.uiVolume,.8)));const top=num(props.top,15);const right=num(props.right,0);const zIndex=Math.round(num(props.zIndex,99));const showLabel=props.showLabel!==false;const follow=props.followPages!==false;const arrival=props.arrival!==false;const taps=props.iosTaps!==false;const s=useEngine();const[mounted,setMounted]=React.useState(false);const[phone,setPhone]=React.useState(false);const[still,setStill]=React.useState(false);const me=React.useRef({});const[owner,setOwner]=React.useState(false);React.useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;owners.push(me.current);const claim=()=>setOwner(owners[0]===me.current);subs.add(claim);claim();wire();emit();setMounted(true);const mq=window.matchMedia?window.matchMedia(\"(max-width: 599px)\"):null;const rm=window.matchMedia?window.matchMedia(\"(prefers-reduced-motion: reduce)\"):null;const sync=()=>{setPhone(!!(mq&&mq.matches));setStill(!!(rm&&rm.matches));};sync();if(mq&&mq.addEventListener)mq.addEventListener(\"change\",sync);return()=>{const i=owners.indexOf(me.current);if(i>=0)owners.splice(i,1);subs.delete(claim);if(mq&&mq.removeEventListener)mq.removeEventListener(\"change\",sync);emit();};},[isStatic]);// the instance's settings drive the shared engine\nReact.useEffect(()=>{if(!owner)return;const moodChanged=S.mood!==mood;S.mood=mood;S.music=music;S.ui=uiv;S.follow=follow;S.arrival=arrival;S.taps=taps;if(rig){rig.ui.gain.setTargetAtTime(uiv,rig.ctx.currentTime,.1);if(S.running)rig.music.gain.setTargetAtTime(music,rig.ctx.currentTime,.5);if(moodChanged&&score){// the groove and the bed are different scores: swap rather than retune\nif(mood===\"house\"!==(score.kind===\"house\")){const now=rig.ctx.currentTime;score.stop(now+.4);score=makeScore(rig,mood);score.restart(now+.45);if(S.running)score.fill(now+3);}else score.setMood(mood);}}},[owner,mood,music,uiv,follow,arrival,taps]);const on=s.want;const playing=s.running;const button=/*#__PURE__*/_jsxs(\"button\",{type:\"button\",\"data-pb-sound-toggle\":\"\",\"aria-pressed\":on,\"aria-label\":on?\"Sound on. Turn off music and interface sounds\":\"Sound off. Turn on ambient music and interface sounds\",title:(on?\"Sound on\":\"Sound off\")+\" (M)\",\"aria-keyshortcuts\":\"M\",onClick:()=>{setOn(!S.want);tap();},style:{display:\"inline-flex\",alignItems:\"center\",gap:10,height:40,minWidth:40,padding:phone||!showLabel?\"0 11px\":\"0 6px 0 10px\",justifyContent:\"center\",margin:0,border:\"none\",borderRadius:20,background:\"transparent\",color:on?INK:MUTED,cursor:\"pointer\",WebkitTapHighlightColor:\"transparent\",filter:\"drop-shadow(0 1px 2px rgba(0,0,0,0.65))\"},children:[/*#__PURE__*/_jsx(Bars,{on:on,still:still||on&&!playing,size:13}),showLabel&&!phone&&/*#__PURE__*/_jsxs(\"span\",{style:{fontFamily:MONO,fontSize:10,letterSpacing:\"0.16em\",textTransform:\"uppercase\",whiteSpace:\"nowrap\"},children:[\"Sound \",/*#__PURE__*/_jsx(\"span\",{style:{color:on?INK:FAINT},children:on?\"on\":\"off\"})]})]});// the canvas shows the toggle in place, so it can be found and tuned in the template\nif(isStatic)return /*#__PURE__*/_jsxs(\"div\",{style:{...props.style,display:\"inline-flex\",alignItems:\"center\",gap:10,padding:\"0 10px\",height:40,background:\"#07080B\",borderRadius:20,color:MUTED},children:[/*#__PURE__*/_jsx(Bars,{on:false,still:true,size:13}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:MONO,fontSize:10,letterSpacing:\"0.16em\"},children:\"SOUND OFF\"})]});if(!mounted||!owner||typeof document===\"undefined\")return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{...props.style,width:1,height:1}});return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{...props.style,width:1,height:1,pointerEvents:\"none\"}}),/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",// centred on the island: it sits at 12px (8px on phones) and is 46px tall\ntop:\"calc(env(safe-area-inset-top, 0px) + \"+(phone?top-4:top)+\"px)\",right:phone?4+right:\"calc(clamp(14px, 2.4vw, 36px) + \"+right+\"px)\",zIndex},children:button}),document.body)]});}addPropertyControls(PBSound,{mood:{type:ControlType.Enum,title:\"Music\",options:[\"house\",\"night\",\"low\",\"deep\"],optionTitles:[\"A \\xb7 House\",\"B \\xb7 Night shift\",\"C \\xb7 Low light\",\"D \\xb7 Deep field\"],defaultValue:\"house\"},musicVolume:{type:ControlType.Number,title:\"Music vol\",defaultValue:.6,min:0,max:1,step:.05},uiVolume:{type:ControlType.Number,title:\"Clicks vol\",defaultValue:.8,min:0,max:1,step:.05},showLabel:{type:ControlType.Boolean,title:\"Label\",defaultValue:true},top:{type:ControlType.Number,title:\"Top\",defaultValue:15,min:0,max:80,step:1,unit:\"px\"},right:{type:ControlType.Number,title:\"Right +\",defaultValue:0,min:-40,max:80,step:1,unit:\"px\"},zIndex:{type:ControlType.Number,title:\"Layer\",defaultValue:99,min:1,max:999,step:1,displayStepper:true},followPages:{type:ControlType.Boolean,title:\"Follow pages\",defaultValue:true,description:\"Try first: the groove takes each project's scene.\"},arrival:{type:ControlType.Boolean,title:\"Arrival\",defaultValue:true,description:\"Try first: resolves home near the end of a page.\"},iosTaps:{type:ControlType.Boolean,title:\"iPhone taps\",defaultValue:true,description:\"Try first: system tick on presses, sound on only.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PBSound\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteSound.map","// Generated by Framer (af78293)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,getFontsFromSharedStyle,Link,PropertyOverrides,RenderTarget,RichText,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCodeBoundaryForOverrides,withCSS,withMappedReactProps}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import PortfolioOSIsland,*as PortfolioOSIslandInfo from\"#framer/local/canvasComponent/oAGKuZ5Pq/oAGKuZ5Pq.js\";import GrainLayer from\"#framer/local/codeFile/ztlMUNU/GrainLayer.js\";import{PortfolioMenuShortcuts}from\"#framer/local/codeFile/rZxmiZz/PortfolioContextIsland_v3.js\";import Preloader from\"#framer/local/codeFile/I2ZZuMo/Preloader.js\";import SensoryLayer from\"#framer/local/codeFile/YY_q9xf/SensoryLayer.js\";import PBSound from\"#framer/local/codeFile/J22XVXq/SiteSound.js\";import*as sharedStyle from\"#framer/local/css/JNWC6ecGA/JNWC6ecGA.js\";import*as sharedStyle1 from\"#framer/local/css/lZ_ggw_cO/lZ_ggw_cO.js\";import*as sharedStyle2 from\"#framer/local/css/m5MLneckd/m5MLneckd.js\";const PortfolioOSIslandFonts=getFonts(PortfolioOSIsland);const PortfolioOSIslandPortfolioMenuShortcutspuw6nzWithMappedReactPropstpxsrn=withMappedReactProps(withCodeBoundaryForOverrides(PortfolioOSIsland,{nodeId:\"U87xiJB2G\",override:PortfolioMenuShortcuts,scopeId:\"dWAd2Wq3O\"}),PortfolioOSIslandInfo);const PreloaderFonts=getFonts(Preloader);const GrainLayerFonts=getFonts(GrainLayer);const PBSoundFonts=getFonts(PBSound);const SensoryLayerFonts=getFonts(SensoryLayer);const breakpoints={bfyc7K_Vq:\"(max-width: 767.98px)\",sfCYm2MF9:\"(min-width: 768px) and (max-width: 1199.98px)\",vMMju7jYS:\"(min-width: 1200px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-KIDr3\";const variantClassNames={bfyc7K_Vq:\"framer-v-1fppd06\",sfCYm2MF9:\"framer-v-1muc3pp\",vMMju7jYS:\"framer-v-vqxego\"};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={bfyc7K_Vq:[\".framer-KIDr3 .framer-puw6nz-container { top: 8px; }\",\".framer-KIDr3 .framer-1ikure4 { padding: 48px 24px 32px 24px; }\",\".framer-KIDr3 .framer-9rdx1w { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 20px; justify-content: flex-start; }\",\".framer-KIDr3 .framer-178290v { flex-wrap: wrap; gap: 14px 24px; width: 100%; }\"],sfCYm2MF9:[\".framer-KIDr3 .framer-1ikure4 { padding: 56px 40px 36px 40px; }\",\".framer-KIDr3 .framer-9rdx1w { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 20px; justify-content: flex-start; }\",\".framer-KIDr3 .framer-178290v { flex-wrap: wrap; gap: 14px 28px; width: 100%; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={bfyc7K_Vq:\".framer-1fppd06-override\",sfCYm2MF9:\".framer-1muc3pp-override\"};const rules=[\".framer-KIDr3.framer-1tqirub, .framer-KIDr3 .framer-1tqirub { display: block; }\",\".framer-KIDr3.framer-vqxego { align-content: center; align-items: center; background-color: var(--token-d023281c-3445-441f-931a-745714894ceb, #07080b); 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-KIDr3 .framer-puw6nz-container { flex: none; height: auto; left: 50%; order: -1000; position: var(--framer-canvas-fixed-position, fixed); top: 12px; width: auto; z-index: 100; }\",\".framer-KIDr3 .framer-1sakwia { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-KIDr3 .framer-1ikure4 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; order: 1002; overflow: var(--overflow-clip-fallback, clip); padding: 64px 40px 40px 40px; position: relative; width: 100%; }\",\".framer-KIDr3 .framer-9rdx1w { --border-bottom-width: 0px; --border-color: var(--token-4084b3c6-e1f9-48ff-8c0d-6b177201dc25); --border-left-width: 0px; --border-right-width: 0px; --border-style: solid; --border-top-width: 1px; align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; max-width: 1200px; padding: 28px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-KIDr3 .framer-hibyl2 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: min-content; }\",\".framer-KIDr3 .framer-fjh96s, .framer-KIDr3 .framer-1bxk0en, .framer-KIDr3 .framer-1ybpzq1, .framer-KIDr3 .framer-11gdkps, .framer-KIDr3 .framer-1mpn3yj, .framer-KIDr3 .framer-jtq3ac, .framer-KIDr3 .framer-iapxbl, .framer-KIDr3 .framer-1xuozo5 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-KIDr3 .framer-178290v { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 28px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: min-content; }\",\".framer-KIDr3 .framer-1v9aa9l-container { flex: none; height: calc(min(var(--framer-viewport-height, 100vh), 100%) * 1); left: 0px; order: 1003; pointer-events: none; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 100%; z-index: 10; }\",\".framer-KIDr3 .framer-tg9fc5-container { flex: none; height: auto; left: 0px; order: 1004; pointer-events: none; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: auto; }\",\".framer-KIDr3 .framer-1hvax8s-container { flex: none; height: auto; left: -100px; order: 1005; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 200px; }\",\".framer-KIDr3 .framer-1fx47r1-container { flex: none; height: auto; left: -100px; order: 1006; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: auto; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }',...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,'.framer-KIDr3[data-border=\"true\"]::after, .framer-KIDr3 [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; }'];const mediaQueries={bfyc7K_Vq:\"(max-width: 767.98px)\",sfCYm2MF9:\"(min-width: 768px) and (max-width: 1199.98px)\",vMMju7jYS:\"(min-width: 1200px)\"};const humanReadableVariantMap={Desktop:\"vMMju7jYS\",Phone:\"bfyc7K_Vq\",Tablet:\"sfCYm2MF9\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"vMMju7jYS\"};};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,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"vMMju7jYS\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-d023281c-3445-441f-931a-745714894ceb, rgb(7, 8, 11)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-vqxego\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{bfyc7K_Vq:{y:8}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:44,y:12,children:/*#__PURE__*/_jsx(Container,{className:\"framer-puw6nz-container\",\"data-framer-layout-hint-center-x\":true,\"data-framer-name\":\"Portfolio OS Island\",layoutScroll:true,name:\"Portfolio OS Island\",nodeId:\"U87xiJB2G\",rendersWithMotion:true,scopeId:\"dWAd2Wq3O\",transformTemplate:transformTemplate1,children:/*#__PURE__*/_jsx(PortfolioOSIslandPortfolioMenuShortcutspuw6nzWithMappedReactPropstpxsrn,{height:\"100%\",id:\"U87xiJB2G\",layoutId:\"U87xiJB2G\",name:\"Portfolio OS Island\",sdYwioINx:\"Scroll to explore\",variant:matchVariant(\"MTcWbwqd9\"),width:\"100%\"})})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-1sakwia\"}),/*#__PURE__*/_jsx(motion.footer,{className:\"framer-1ikure4\",\"data-framer-name\":\"Site Footer\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-9rdx1w\",\"data-border\":true,\"data-framer-name\":\"Footer Row\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-hibyl2\",\"data-framer-name\":\"Identity\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-195yjoj\",\"data-styles-preset\":\"JNWC6ecGA\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--token-5bb834cc-b836-4d34-9f16-d986cf272c88)\"},children:\"Pierre Byrne\"})}),className:\"framer-fjh96s\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:\"Product designer \\xb7 Phoenix, AZ\"})}),className:\"framer-1bxk0en\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":\"Footer\",className:\"framer-178290v\",\"data-framer-name\":\"Footer Links\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"vnYCqMKa5\"},motionChild:true,nodeId:\"yAYuvPzuI\",openInNewTab:false,relValues:[],scopeId:\"dWAd2Wq3O\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1x8z4uc\",\"data-styles-preset\":\"m5MLneckd\",children:\"Work\"})})})}),className:\"framer-1ybpzq1\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"FwE6v1I74\",openInNewTab:false,relValues:[],scopeId:\"dWAd2Wq3O\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1x8z4uc\",\"data-styles-preset\":\"m5MLneckd\",children:\"About\"})})})}),className:\"framer-11gdkps\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"S7KUpVW4p\"},motionChild:true,nodeId:\"EvvfVjlKt\",openInNewTab:false,relValues:[],scopeId:\"dWAd2Wq3O\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1x8z4uc\",\"data-styles-preset\":\"m5MLneckd\",children:\"Writing\"})})})}),className:\"framer-1mpn3yj\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:\"mailto:design@pierrebyrnecreatives.com\",motionChild:true,nodeId:\"kE62zfIhp\",openInNewTab:false,relValues:[],scopeId:\"dWAd2Wq3O\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1x8z4uc\",\"data-styles-preset\":\"m5MLneckd\",children:\"Email\"})})})}),className:\"framer-jtq3ac\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:\"https://www.linkedin.com/in/pierre-byrne\",motionChild:true,nodeId:\"LC5n_b1MS\",openInNewTab:true,relValues:[],scopeId:\"dWAd2Wq3O\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1x8z4uc\",\"data-styles-preset\":\"m5MLneckd\",children:\"LinkedIn ↗\"})})})}),className:\"framer-iapxbl\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-14qv60m\",\"data-styles-preset\":\"lZ_ggw_cO\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:\"https://public.tableau.com/app/profile/pierre.byrne\",motionChild:true,nodeId:\"KHsSCezSv\",openInNewTab:true,relValues:[],scopeId:\"dWAd2Wq3O\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1x8z4uc\",\"data-styles-preset\":\"m5MLneckd\",children:\"Tableau Public ↗\"})})})}),className:\"framer-1xuozo5\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1v9aa9l-container\",\"data-code-component-plugin-id\":\"api\",isAuthoredByUser:true,layoutScroll:true,nodeId:\"XiBQyfsxq\",scopeId:\"dWAd2Wq3O\",children:/*#__PURE__*/_jsx(Preloader,{accent:\"rgb(183, 255, 60)\",height:\"100%\",id:\"XiBQyfsxq\",intensity:30,layoutId:\"XiBQyfsxq\",maxHold:6,minHold:.6,oncePerSession:true,showWordmark:false,style:{height:\"100%\",width:\"100%\"},width:\"100%\",wordmark:\"Pierre Byrne\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-tg9fc5-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Grain layer\",isAuthoredByUser:true,layoutScroll:true,name:\"Grain layer\",nodeId:\"LYvbICxjA\",scopeId:\"dWAd2Wq3O\",children:/*#__PURE__*/_jsx(GrainLayer,{fineness:.85,flicker:false,height:\"100%\",id:\"LYvbICxjA\",layoutId:\"LYvbICxjA\",name:\"Grain layer\",size:160,strength:.07,width:\"100%\",zIndex:90})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1hvax8s-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Sound\",isAuthoredByUser:true,layoutScroll:true,name:\"Sound\",nodeId:\"scgNTwuZZ\",scopeId:\"dWAd2Wq3O\",children:/*#__PURE__*/_jsx(PBSound,{arrival:true,followPages:true,height:\"100%\",id:\"scgNTwuZZ\",iosTaps:true,layoutId:\"scgNTwuZZ\",mood:\"house\",musicVolume:.6,name:\"Sound\",right:0,showLabel:true,top:15,uiVolume:.8,width:\"100%\",zIndex:99})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1fx47r1-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Sensory layer\",isAuthoredByUser:true,layoutScroll:true,name:\"Sensory layer\",nodeId:\"zL6klOzcf\",scopeId:\"dWAd2Wq3O\",children:/*#__PURE__*/_jsx(SensoryLayer,{consoleNote:true,copyEmail:true,eveningLight:true,height:\"100%\",id:\"zL6klOzcf\",layoutId:\"zL6klOzcf\",name:\"Sensory layer\",readMarks:true,transition:true,width:\"100%\"})})})]}),/*#__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 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"sfCYm2MF9\":{\"layout\":[\"fixed\",\"fixed\"]},\"bfyc7K_Vq\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"vMMju7jYS\":[\".framer-puw6nz-container\",\".framer-1ikure4\",\".framer-1v9aa9l-container\",\".framer-tg9fc5-container\",\".framer-1hvax8s-container\",\".framer-1fx47r1-container\"],\"sfCYm2MF9\":[\".framer-puw6nz-container\",\".framer-1ikure4\",\".framer-1v9aa9l-container\",\".framer-tg9fc5-container\",\".framer-1hvax8s-container\",\".framer-1fx47r1-container\"],\"bfyc7K_Vq\":[\".framer-puw6nz-container\",\".framer-1ikure4\",\".framer-1v9aa9l-container\",\".framer-tg9fc5-container\",\".framer-1hvax8s-container\",\".framer-1fx47r1-container\"]}\n * @framerBreakpoints {\"vMMju7jYS\":{\"min\":1200,\"canvasClassName\":\"framer-vqxego-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"sfCYm2MF9\":{\"min\":768,\"max\":1199,\"canvasClassName\":\"framer-1muc3pp-override\",\"minHeight\":1000,\"name\":\"Tablet\",\"width\":768,\"rootFontSize\":16},\"bfyc7K_Vq\":{\"max\":767,\"canvasClassName\":\"framer-1fppd06-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant vMMju7jYS\n * @framerLayoutTemplate true\n */const FramerdWAd2Wq3O=withCSS(Component,css,\"framer-KIDr3\");export default FramerdWAd2Wq3O;FramerdWAd2Wq3O.displayName=\"Template\";FramerdWAd2Wq3O.defaultProps={height:1e3,width:1200};addFonts(FramerdWAd2Wq3O,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PortfolioOSIslandFonts,...PreloaderFonts,...GrainLayerFonts,...PBSoundFonts,...SensoryLayerFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});FramerdWAd2Wq3O.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(PortfolioOSIsland,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerdWAd2Wq3O\",\"slots\":[],\"annotations\":{\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerDefaultVariant\":\"vMMju7jYS\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"sfCYm2MF9\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"bfyc7K_Vq\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerBreakpoints\":\"{\\\"vMMju7jYS\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-vqxego-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"sfCYm2MF9\\\":{\\\"min\\\":768,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-1muc3pp-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":768,\\\"rootFontSize\\\":16},\\\"bfyc7K_Vq\\\":{\\\"max\\\":767,\\\"canvasClassName\\\":\\\"framer-1fppd06-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerIntrinsicHeight\":\"1000\",\"framerHitTargets\":\"{\\\"vMMju7jYS\\\":[\\\".framer-puw6nz-container\\\",\\\".framer-1ikure4\\\",\\\".framer-1v9aa9l-container\\\",\\\".framer-tg9fc5-container\\\",\\\".framer-1hvax8s-container\\\",\\\".framer-1fx47r1-container\\\"],\\\"sfCYm2MF9\\\":[\\\".framer-puw6nz-container\\\",\\\".framer-1ikure4\\\",\\\".framer-1v9aa9l-container\\\",\\\".framer-tg9fc5-container\\\",\\\".framer-1hvax8s-container\\\",\\\".framer-1fx47r1-container\\\"],\\\"bfyc7K_Vq\\\":[\\\".framer-puw6nz-container\\\",\\\".framer-1ikure4\\\",\\\".framer-1v9aa9l-container\\\",\\\".framer-tg9fc5-container\\\",\\\".framer-1hvax8s-container\\\",\\\".framer-1fx47r1-container\\\"]}\",\"framerImmutableVariables\":\"true\"}},\"__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 Template1 from \"https://framerusercontent.com/modules/F18ToHdjEwVy7DWgSqJo/urCkGJhLadnp7NkMWWn2/dWAd2Wq3O.js\";\r\n\r\n\t\tconst routes = {ExfZwNtMV: {elements: {N4W_j4j6r: \"about\", RnlukYh4G: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/NO2wfJ7D3DW1VBvE3F9w/1uNqpKv23nU0dHS1tkox/ExfZwNtMV.js\")), path: \"/\"}, augiA20Il: {elements: {A2ButQeq1: \"gallery\", dKsITWIZr: \"02-halfturn-1\", dTGp6EQAN: \"what-i-do\", EliuHcoin: \"design-lead-3\", H74ZSeIV0: \"variant-switch-2\", kBAGc0R2n: \"busimess-analyst\", kjL1E2bTa: \"variant-switch-3\", koP1Gv68n: \"design-lead-2\", l8m66Gmu2: \"design-lead-4\", LU02PHIn5: \"work-history\", Mg7A0lNvY: \"portfolio-about-page\", nexmRjrym: \"contact\", nIcgwjTqe: \"design-analyst\", NyZ4zPRmF: \"reviews\", q0_iK20t2: \"my-experience\", QKryOyDsX: \"data-analyst\", qUjFqEbnu: \"expeience\", Re12jKHQl: \"design-lead-1\", RQn6l5hu3: \"design-lead-6\", rtaphlX0w: \"design-lead-5\", sETGgHPy4: \"design-lead\", TosJi3iTg: \"variant-switch-1\", TupDfBKP2: \"03-halfturn-2\", VmQRxdsJ7: \"01-halfturn-1\", WAKEqGW3o: \"projects\", wRidcDvpi: \"01-halfturn-2\", WUdzdR2wq: \"03-halfturn-1\", WWO35IBcw: \"aboutme\", YZvYHN_v3: \"02-halfturn-2\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/xE3TQ2pqyNLbbvlJWZUf/OcSj9fnbudLu6X7yLH1w/augiA20Il.js\")), path: \"/about\"}, vnYCqMKa5: {elements: {imQ98xWVJ: \"work-related\", NGayszKB_: \"work\", pe8TTR0YE: \"portfolio-work-page\", S7PQfaKdp: \"experiments\", STXeTxmbt: \"lacrosse\", yWlRg0UAR: \"passion\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/IyoWp7Y9G3k7n2YgM742/ypF50Ccso0Hj9ihAeOGa/vnYCqMKa5.js\")), path: \"/work\"}, K1rCBvBs5: {elements: {AhG2Tj1FR: \"lacrosse-proof\", dOy6mCwpT: \"design-system-motion\", DwlpWPlXg: \"evidence-approach\", N1Wwm674D: \"related-project\", oui6NnsIq: \"interaction\", oWBatKxgw: \"lacrosse-shell\", ua6EqBkxd: \"lacrosse-opening\", vgVdmnBey: \"system\", weZtjcSp5: \"evidence\", wtcHzUJH4: \"inherited\", xeQmFzK_0: \"project-gallery\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/sqoJkC3x2NkSSxEptys1/ElBd8uaNARc2jySje8qV/K1rCBvBs5.js\")), path: \"/work/lacrosse-26/details\"}, cB5FSLTUm: {elements: {Ala_CFUYT: \"gh-mission\", dTIgIcj_7: \"hubble-reference-prototype\", Jb6qSdNPE: \"galaxy-discovery-stage\", joqHtZb2q: \"gh-solution\", JVs9nl6eh: \"hubble-related-work\", mabJzMJaq: \"hubble-opening\", ojyh5KfJf: \"gh-faq\", qCjpZZp4d: \"hubble-quality-release\", qTbO6S0nr: \"gh-gallery\", TEwsN1bZM: \"gh-hubble\", w3ZgGpRy7: \"gh-two-audiences\", yRx7Cbw4S: \"gh-problem\", zY_C5yn7K: \"gh-top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/FnU5zNYhcJEytwWM1Rg7/2SJhWQVdEwK5W5yk0C4i/cB5FSLTUm.js\")), path: \"/work/galaxy-hubble/details\"}, Dn0ntZ2iD: {elements: {BOTEzSRf8: \"dna-architecture\", gx4pVNOi9: \"project-gallery\", H9XAQezi6: \"dna-components\", L9QGXTpxN: \"dna-related\", nhMYKIT82: \"dna-system\", nR9_2jLw7: \"dna-opening\", s6_m9icdD: \"dna-foundations\", tCZbCgwdu: \"dna-hero\", zZhPtaEeR: \"dna-applied\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/DlalXCXbdubhXVI16zcF/E5AOZcYv1fRMFGFD2JlH/Dn0ntZ2iD.js\")), path: \"/work/dna-viz/details\"}, SzdFBxQGC: {elements: {avcdGuQbp: \"figma-tableau-related-work\", B4ey6Vufu: \"project-gallery\", c_BCvK1gz: \"figma-tableau-system\", ccoqeGqRz: \"figma-tableau-experiments\", D0RZLamBp: \"figma-tableau-proof\", qAxzpjGdw: \"figma-tableau-prototype\", vPpIfwxj9: \"figma-tableau-anatomy\", wXgCLXFcV: \"figma-tableau-opening\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/A5hlNQUDF3Z8YFH5OvUr/nEglHkdFn54HDdEM9prl/SzdFBxQGC.js\")), path: \"/work/figma-to-tableau/details\"}, dyzGONL35: {elements: {BPgYhMla4: \"my-top-dogs-opening\", U4aZHyOAH: \"project-gallery\", yWSXPnbAB: \"my-top-dogs-related-work\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8lN8oQrMgVo9eUDzMWXz/JBd5DCqscsXSJNVhMPQ9/dyzGONL35.js\")), path: \"/work/my-top-dogs/details\"}, kMIe3Rzmz: {elements: {NrIvrgFa6: \"energy-opening\", QSkWH3KFt: \"energy-hero\", uFyi1ibie: \"project-gallery\", zoqhvSspD: \"energy-related-work\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/KDlaeultmKOSquOcu05S/SEbZGyaEschdOicygobj/kMIe3Rzmz.js\")), path: \"/work/energy-dashboard/details\"}, vim0yFvhh: {elements: {AmZBAHPvW: \"healthcare-related-work\", GKkmSWwnh: \"healthcare-opening\", mSz0E1_fb: \"healthcare-decision-stage\", NGuv6AkLw: \"healthcare-proof\", Sgq_JiGzB: \"healthcare-product-suite\", wpx9Ak2Gm: \"project-gallery\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/IH776FZjJ3eZJUw3C3X6/UxWUzCv1K14hK2oZKJHc/vim0yFvhh.js\")), path: \"/work/healthcare-decision-intelligence/details\"}, bR4mRY_2N: {elements: {EQGmgRuLK: \"project-gallery\", evBd3WHUq: \"stringlabs-prototype\", fCpEoc9tB: \"stringlab-arsenal\", KsqFraXgN: \"stringlab-identity\", kt4xjmEPi: \"stringlab-service\", qdCIAShbW: \"stringlabs-opening\", QJgtAczpO: \"stringlabs-thread\", rko8_lsB4: \"stringlab-profile\", rq7MkWpvz: \"stringlabs-related-project\", t8LEno2gT: \"stringlab-record\", wOnYrn3ad: \"stringlab-next\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/eMFacKD9aqRg4yC8tChf/XKO5CqCk0iF4IuFT8yF2/bR4mRY_2N.js\")), path: \"/work/stringlabs/details\"}, oLBihwyrT: {elements: {jNUHS3cR8: \"byrne-method-opening\", lWya_9yg4: \"byrne-prototype\", pm1qcY4lo: \"byrne-journey\", qj8XkRdri: \"byrne-related-project\", r4WKqOXkD: \"project-gallery\", rG1o1IlId: \"byrne-hierarchy\", UDHRAP_Fn: \"byrne-system\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ieewZMwOhsZiXlgM6ROp/Nshwc1hW8oveWGCZjmVd/oLBihwyrT.js\")), path: \"/work/byrne-method/details\"}, S7KUpVW4p: {elements: {E3FNrQ9VZ: \"portfolio-writing-page\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/BdIh63PdvFvnnVt3FQ4s/6bIzcbE0fmLce36KRyME/S7KUpVW4p.js\")), path: \"/blog\"}, Wh5j1shFS: {elements: {GdSYergCx: \"ads-related\", lC5W4Yu6j: \"ads-vitacore\", MU9hyJSff: \"ads-panels\", qSWJbevtT: \"ads-hero\", Tg2egkBbH: \"ads-idea\", vLn0dkiRh: \"ads-responsive\", VyZWrRtoL: \"project-gallery\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/KYonquptnjyjAl6ZoSOc/FUGfpkdwp1iatNuuLykv/Wh5j1shFS.js\")), path: \"/work/analytics-design-delivery\"}, ZLwEjtMZ3: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/IuFtBCMjEcivXzHCCZnW/BaIXAM3kXPvNyuTp4GTC/ZLwEjtMZ3.js\")), path: \"/404\"}, J_Beyat51: {collectionId: \"QOPHvkouU\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/K8WvyDe7gLXiTHZ579Wf/Hx0XegdZW1FKOR9wkTGy/J_Beyat51.js\")), path: \"/blog/:rJRhSb_B8\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {QOPHvkouU: async () => (await import(\"https://framerusercontent.com/modules/r56iqs1YQTQSiXcDoE0f/ckR9IvVznhBA76SkmGmz/QOPHvkouU.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"9dd4f341f6a5c3650f8c1d5126b23e9da4acc7c561e93759353e31488f758c94\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"ExfZwNtMV\":\r\ncase \"augiA20Il\":\r\ncase \"vnYCqMKa5\":\r\ncase \"K1rCBvBs5\":\r\ncase \"cB5FSLTUm\":\r\ncase \"Dn0ntZ2iD\":\r\ncase \"SzdFBxQGC\":\r\ncase \"dyzGONL35\":\r\ncase \"kMIe3Rzmz\":\r\ncase \"eoSLwt1yl\":\r\ncase \"vim0yFvhh\":\r\ncase \"vBJPCsNc8\":\r\ncase \"bR4mRY_2N\":\r\ncase \"oLBihwyrT\":\r\ncase \"GRVjnOdvy\":\r\ncase \"g8rcNpuB7\":\r\ncase \"yGYJfr123\":\r\ncase \"C4JSAl8EV\":\r\ncase \"X48tct7Az\":\r\ncase \"AdaiaiswD\":\r\ncase \"WMq00mVDK\":\r\ncase \"IrFN2PWeb\":\r\ncase \"VAYIymtBI\":\r\ncase \"Pn0tbVyrB\":\r\ncase \"fX6tcuDDT\":\r\ncase \"S7KUpVW4p\":\r\ncase \"Gat3pC5rS\":\r\ncase \"fm93nlvuU\":\r\ncase \"corKLOakl\":\r\ncase \"GpcP3kIdx\":\r\ncase \"rVU2tU6Wb\":\r\ncase \"Wh5j1shFS\":\r\ncase \"fhtO7B07C\":\r\ncase \"ZLwEjtMZ3\":\r\ncase \"J_Beyat51\":\r\nreturn React.createElement(Template1, {...props, key: \"Template1\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"ExfZwNtMV\":\r\ncase \"augiA20Il\":\r\ncase \"vnYCqMKa5\":\r\ncase \"K1rCBvBs5\":\r\ncase \"cB5FSLTUm\":\r\ncase \"Dn0ntZ2iD\":\r\ncase \"SzdFBxQGC\":\r\ncase \"dyzGONL35\":\r\ncase \"kMIe3Rzmz\":\r\ncase \"eoSLwt1yl\":\r\ncase \"vim0yFvhh\":\r\ncase \"vBJPCsNc8\":\r\ncase \"bR4mRY_2N\":\r\ncase \"oLBihwyrT\":\r\ncase \"GRVjnOdvy\":\r\ncase \"g8rcNpuB7\":\r\ncase \"yGYJfr123\":\r\ncase \"C4JSAl8EV\":\r\ncase \"X48tct7Az\":\r\ncase \"AdaiaiswD\":\r\ncase \"WMq00mVDK\":\r\ncase \"IrFN2PWeb\":\r\ncase \"VAYIymtBI\":\r\ncase \"Pn0tbVyrB\":\r\ncase \"fX6tcuDDT\":\r\ncase \"S7KUpVW4p\":\r\ncase \"Gat3pC5rS\":\r\ncase \"fm93nlvuU\":\r\ncase \"corKLOakl\":\r\ncase \"GpcP3kIdx\":\r\ncase \"rVU2tU6Wb\":\r\ncase \"Wh5j1shFS\":\r\ncase \"fhtO7B07C\":\r\ncase \"ZLwEjtMZ3\":\r\ncase \"J_Beyat51\":\r\nreturn [{hash: \"1fppd06\", mediaQuery: \"(max-width: 767.98px)\"}, {hash: \"1muc3pp\", mediaQuery: \"(min-width: 768px) and (max-width: 1199.98px)\"}, {hash: \"vqxego\", mediaQuery: \"(min-width: 1200px)\"}]\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, onPageLocalizationSupport: true, onPageMoveTool: true, 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/IuFtBCMjEcivXzHCCZnW/BaIXAM3kXPvNyuTp4GTC/ZLwEjtMZ3.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.pierrebyrne.com\",\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/ZRkUk3QORFjlhqyHghUx/hkd8uLY6iNCmjVFLkuWC/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\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {global: {enter: {opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.04, duration: 0.34, ease: [0.22, 0.61, 0.36, 1], mass: 1, stagger: 0, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"8px\"}}, routes: {}}\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\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\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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"}