{"version":3,"file":"script_main.bDTMsIEq.mjs","names":["useState","Intro","CopyEmail","useRef","React.useId","React.createElement","MainLayout","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.LibraryFeaturesProvider","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","breakpoints","Framer.patchRoutesForABTesting","routeData","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/scv0p4gBq6LLhWyixvNc/GSN8UyTrn1rTRpJXHMWI/Index.js","https:/framerusercontent.com/modules/NXYfyFizDk2XRgNSMJ2n/JcbU3lvrojj4xLPVCtpE/HLYPzudsN.js","framer:toplevel/main"],"sourcesContent":["// Index component with multiple stacked text items with editable text style\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,startTransition,useEffect}from\"react\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function Index(props){const{items,font,textColor,hoverColor,gap,textAlign,underline,underlineOnHover,opacity,pillBackgroundColor,pillTextColor,pillVerticalPadding,pillLeftPadding,pillRightPadding,pillGap}=props;const[hoveredIndex,setHoveredIndex]=useState(null);const[currentPath,setCurrentPath]=useState(\"\");// Broadcast hover events for external components to listen to\nuseEffect(()=>{if(typeof window===\"undefined\")return;const event=new CustomEvent(\"indexHover\",{detail:{hoveredIndex}});window.dispatchEvent(event);},[hoveredIndex]);// Detect current page on mount and whenever URL changes\nuseEffect(()=>{if(typeof window===\"undefined\")return;// Update current path immediately\nconst updatePath=()=>{startTransition(()=>setCurrentPath(window.location.pathname));};// Set initial path\nupdatePath();// Listen for URL changes\nwindow.addEventListener(\"popstate\",updatePath);// Also check on interval as a fallback for SPA navigation\nconst interval=setInterval(updatePath,100);return()=>{window.removeEventListener(\"popstate\",updatePath);clearInterval(interval);};},[]);const pillStyle={...font,color:pillTextColor,backgroundColor:pillBackgroundColor,padding:`${pillVerticalPadding}px ${pillRightPadding}px ${pillVerticalPadding}px ${pillLeftPadding}px`,borderRadius:\"999px\",width:\"max-content\",whiteSpace:\"nowrap\",transition:\"color 0.15s ease, opacity 0.15s ease, background-color 0.15s ease\",userSelect:\"none\"};const containerStyle={display:\"flex\",flexDirection:\"row\",gap:`${pillGap}px`,alignItems:\"center\",textDecoration:\"none\",width:\"max-content\"};return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:`${gap}px`,width:textAlign===\"center\"||textAlign===\"right\"?\"100%\":\"max-content\",userSelect:\"none\"},children:items.map((item,index)=>{const isHovered=hoveredIndex===index;const isActive=currentPath===item.link;const hasActiveItem=items.some(i=>i.link===currentPath);const shouldDimOthers=hoveredIndex!==null&&!isHovered||hasActiveItem&&!isActive&&hoveredIndex===null;const showMainPill=isHovered||isActive;const showExtraPills=isHovered;// Calculate opacity: if anything is hovered, only the hovered item is full opacity\n// Otherwise, if there's an active item, only the active item is full opacity\nconst itemOpacity=hoveredIndex!==null?isHovered?opacity:.25:hasActiveItem?isActive?opacity:.25:opacity;return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"row\",gap:`${pillGap}px`,alignItems:\"center\",width:\"max-content\",paddingTop:`${gap/2}px`,paddingBottom:`${gap/2}px`,marginTop:index===0?\"0\":`-${gap/2}px`,marginBottom:index===items.length-1?\"0\":`-${gap/2}px`,position:\"relative\"},onMouseEnter:()=>{startTransition(()=>setHoveredIndex(index));},onMouseLeave:()=>{startTransition(()=>setHoveredIndex(null));},children:/*#__PURE__*/_jsxs(\"a\",{href:item.link||\"/\",style:{display:\"flex\",flexDirection:\"row\",gap:`${pillGap}px`,alignItems:\"center\",width:\"max-content\",textDecoration:\"none\",cursor:\"pointer\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...font,color:showMainPill?pillTextColor:textColor,width:\"max-content\",textAlign,textDecoration:underline?\"underline\":\"none\",opacity:itemOpacity,transition:isActive&&!isHovered?\"color 0.1s ease, opacity 0.1s ease\":\"color 0.1s ease, opacity 0.1s ease, background-color 0.1s ease\",cursor:\"pointer\",backgroundColor:showMainPill?pillBackgroundColor:\"transparent\",padding:`${pillVerticalPadding}px ${pillRightPadding}px ${pillVerticalPadding}px ${pillLeftPadding}px`,borderRadius:\"999px\",userSelect:\"none\"},children:item.text}),/*#__PURE__*/_jsx(\"div\",{style:{...pillStyle,opacity:showExtraPills?1:0,position:showExtraPills?\"relative\":\"absolute\",visibility:showExtraPills?\"visible\":\"hidden\"},children:item.pill1Text}),/*#__PURE__*/_jsx(\"div\",{style:{...pillStyle,opacity:showExtraPills?1:0,position:showExtraPills?\"relative\":\"absolute\",visibility:showExtraPills?\"visible\":\"hidden\"},children:item.pill2Text})]})},index);})});}addPropertyControls(Index,{items:{type:ControlType.Array,control:{type:ControlType.Object,controls:{text:{type:ControlType.String,defaultValue:\"Index Item\"},pill1Text:{type:ControlType.String,defaultValue:\"Action 1\",title:\"Pill 1 Text\"},pill2Text:{type:ControlType.String,defaultValue:\"Action 2\",title:\"Pill 2 Text\"},link:{type:ControlType.String,defaultValue:\"/\",title:\"Link\"}}},defaultValue:[{text:\"Introduction\",pill1Text:\"Read\",pill2Text:\"Share\",link:\"/\"},{text:\"Getting Started\",pill1Text:\"Learn\",pill2Text:\"Try\",link:\"/\"},{text:\"Features\",pill1Text:\"Explore\",pill2Text:\"Demo\",link:\"/\"},{text:\"Documentation\",pill1Text:\"View\",pill2Text:\"Download\",link:\"/\"},{text:\"Conclusion\",pill1Text:\"Summary\",pill2Text:\"Next\",link:\"/\"}]},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},hoverColor:{type:ControlType.Color,title:\"Hover Color\",defaultValue:\"#0099FF\"},pillBackgroundColor:{type:ControlType.Color,title:\"Pill Background\",defaultValue:\"#0099FF\"},pillTextColor:{type:ControlType.Color,title:\"Pill Text Color\",defaultValue:\"#000000\"},pillVerticalPadding:{type:ControlType.Number,title:\"Pill Height\",defaultValue:4,min:0,max:20,step:.5,unit:\"px\"},pillLeftPadding:{type:ControlType.Number,title:\"Pill Left\",defaultValue:12,min:0,max:40,step:.5,unit:\"px\"},pillRightPadding:{type:ControlType.Number,title:\"Pill Right\",defaultValue:12,min:0,max:40,step:.5,unit:\"px\"},pillGap:{type:ControlType.Number,title:\"Pill Gap\",defaultValue:8,min:0,max:32,step:1,unit:\"px\"},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},underline:{type:ControlType.Boolean,title:\"Underline\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},underlineOnHover:{type:ControlType.Boolean,title:\"Underline on Hover\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:1,min:0,max:1,step:.1},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:100,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Index\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Index.map","// Generated by Framer (b3492b4)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,RenderTarget,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import CopyEmail from\"#framer/local/canvasComponent/WMpeSoNct/WMpeSoNct.js\";import Intro from\"#framer/local/canvasComponent/YXK8VcpKd/YXK8VcpKd.js\";import Index from\"#framer/local/codeFile/oVHtXz_/Index.js\";const IndexFonts=getFonts(Index);const IntroFonts=getFonts(Intro);const CopyEmailFonts=getFonts(CopyEmail);const breakpoints={};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-PGKO5\";const variantClassNames={YNtud_BcO:\"framer-v-12cpype\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-PGKO5.framer-15wp15f, .framer-PGKO5 .framer-15wp15f { display: block; }\",\".framer-PGKO5.framer-12cpype { align-content: center; align-items: center; background-color: var(--token-abe374d7-ae78-4d4e-9234-1f60d78bcb22, #000000); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-PGKO5 .framer-1w50rlr-container { flex: none; height: auto; left: 15px; position: var(--framer-canvas-fixed-position, fixed); top: 30px; width: auto; z-index: 2; }\",\".framer-PGKO5 .framer-1elv14x-container { flex: none; height: calc(min(var(--framer-viewport-height, 100vh), 100%) * 1); left: calc(50.00000000000002% - 100% / 2); position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 100%; z-index: 1; }\",\".framer-PGKO5 .framer-m0lu8r-container { bottom: calc(calc(100% - min(var(--framer-viewport-height, 100%), 100%)) + 15px); flex: none; height: auto; position: var(--framer-canvas-fixed-position, fixed); right: 15px; width: auto; z-index: 1; }\",\".framer-PGKO5 .framer-7rgjy6 { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -20px; position: relative; width: 0px; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -20px; }'];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};};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=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,isLayoutTemplate:true,primaryVariantId:\"YNtud_BcO\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-abe374d7-ae78-4d4e-9234-1f60d78bcb22, rgb(0, 0, 0)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-12cpype\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1w50rlr-container\",\"data-code-component-plugin-id\":\"84d4c1\",isAuthoredByUser:true,layoutScroll:true,nodeId:\"LsBgrCqY5\",scopeId:\"HLYPzudsN\",children:/*#__PURE__*/_jsx(Index,{font:{fontFamily:'\"ABC Oracle Unlicensed Trial Regular\", \"ABC Oracle Unlicensed Trial Regular Placeholder\", sans-serif',fontSize:\"13px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},gap:0,height:\"100%\",hoverColor:\"rgb(0, 153, 255)\",id:\"LsBgrCqY5\",items:[{link:\"/page\",pill1Text:\"Case study\",pill2Text:\"Interaction + Industrial Design\",text:\"Musik-Making for kids\"},{link:\"/\",pill1Text:\"Action 1\",pill2Text:\"Action 2\",text:\"AI for police visual investigation\"},{link:\"/\",pill1Text:\"Action 1\",pill2Text:\"Action 2\",text:\"Navigating text Archives with AI\"},{link:\"/\",pill1Text:\"Action 1\",pill2Text:\"Action 2\",text:\"Sound Design for Immigrants\"},{link:\"/\",pill1Text:\"Action 1\",pill2Text:\"Action 2\",text:\"About me\"}],layoutId:\"LsBgrCqY5\",opacity:1,pillBackgroundColor:\"rgb(232, 232, 232)\",pillGap:8,pillLeftPadding:12,pillRightPadding:12,pillTextColor:\"rgb(0, 0, 0)\",pillVerticalPadding:2,textAlign:\"left\",textColor:\"var(--token-a8be8d09-7c88-44a7-b0de-3fac9bf8daa2, rgb(0, 0, 0))\",underline:false,underlineOnHover:true,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:1e3,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1elv14x-container\",layoutScroll:true,nodeId:\"MLademWcS\",scopeId:\"HLYPzudsN\",children:/*#__PURE__*/_jsx(Intro,{height:\"100%\",id:\"MLademWcS\",JAKNT3pg2:\"Summary\",layoutId:\"MLademWcS\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"I1fjVBZwj\"),width:\"100%\",YvhrDeF7N:\"In our bachelor's thesis, we addressed the question of how local communities can benefit from the expansion of renewable energies. For this purpose, we developed a digital platform for energy communities, with which citizens can promote regional expansion of renewable energies quickly and easily. Members of these communities can use the new.\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:961,children:/*#__PURE__*/_jsx(Container,{className:\"framer-m0lu8r-container\",layoutScroll:true,nodeId:\"oSN81aGin\",scopeId:\"HLYPzudsN\",children:/*#__PURE__*/_jsx(CopyEmail,{height:\"100%\",id:\"oSN81aGin\",layoutId:\"oSN81aGin\",LssD4r7tY:\"markvedberg@gmail.com\",variant:matchVariant(\"UoJ0VbX0g\"),width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-7rgjy6\"})]}),/*#__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=breakpointRules[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[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\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"YNtud_BcO\":[\".framer-1w50rlr-container\",\".framer-1elv14x-container\",\".framer-m0lu8r-container\"]}\n * @framerBreakpoints {\"YNtud_BcO\":{\"canvasClassName\":\"framer-12cpype-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16}}\n * @framerDefaultVariant YNtud_BcO\n * @framerLayoutTemplate true\n */const FramerHLYPzudsN=withCSS(Component,css,\"framer-PGKO5\");export default FramerHLYPzudsN;FramerHLYPzudsN.displayName=\"Main layout\";FramerHLYPzudsN.defaultProps={height:1e3,width:1200};addFonts(FramerHLYPzudsN,[{explicitInter:true,fonts:[{cssFamilyName:\"ABC Oracle Unlicensed Trial Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"ABC Oracle Unlicensed Trial\",url:\"https://framerusercontent.com/assets/YqHHPqwDphUgvqlLmNkPrt8z8.woff2\",weight:\"400\"}]},...IndexFonts,...IntroFonts,...CopyEmailFonts],{supportsExplicitInterCodegen:true});FramerHLYPzudsN.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Intro,{},context),forwardLoader(CopyEmail,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerHLYPzudsN\",\"slots\":[],\"annotations\":{\"framerDefaultVariant\":\"YNtud_BcO\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerBreakpoints\":\"{\\\"YNtud_BcO\\\":{\\\"canvasClassName\\\":\\\"framer-12cpype-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16}}\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"1000\",\"framerIntrinsicWidth\":\"1200\",\"framerHitTargets\":\"{\\\"YNtud_BcO\\\":[\\\".framer-1w50rlr-container\\\",\\\".framer-1elv14x-container\\\",\\\".framer-m0lu8r-container\\\"]}\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__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 MainLayout from \"https://framerusercontent.com/modules/NXYfyFizDk2XRgNSMJ2n/JcbU3lvrojj4xLPVCtpE/HLYPzudsN.js\";\r\n\r\n\t\tconst routes = {LDyAsdaCW: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/UfgkS6KdLi3PtlnscbEt/2YmJUkYfeq0KoRaEpVVE/LDyAsdaCW.js\")), path: \"/\"}, augiA20Il: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/szZDSrap5Ssefmy9QKVu/htX57gK3qLE60b3kIiDZ/augiA20Il.js\")), path: \"/alt-home\"}, JR59iuhxo: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/U4p3giix4G8lbhPm3Q79/pldMNCfoGeWCqtpWtFVT/JR59iuhxo.js\")), path: \"/page\"}, grpIWwM9J: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/2HIwZknaoSQGDgSUaeQ5/KvKTJzzLEvHFl9wTXdsT/grpIWwM9J.js\")), path: \"/homey\"}}\r\n\r\n\t\tconst locales = [{code: \"en-US\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {}\r\n\t\tconst framerSiteId = \"303d1b98c669eb06e016afc644b7c7ca64f2b3646579e73648fc4ff264c95422\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"JR59iuhxo\":\r\ncase \"grpIWwM9J\":\r\nreturn React.createElement(MainLayout, {...props, key: \"MainLayout\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"JR59iuhxo\":\r\ncase \"grpIWwM9J\":\r\nreturn [{hash: \"12cpype\"}]\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\texport async function getPageRoot({ routeId, pathVariables, localeId, collectionItemId }) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\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\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"__framer-not-found-page\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\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.markvedberg.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: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/qU4u7Il86r3tVtx1Imqs/6KfaI3222gYbxWS2Tl29/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithFeaturesContext = React.createElement(\r\n\t\t\t\tFramer.LibraryFeaturesProvider,\r\n\t\t\t\t{\r\n\t\t\t\t\tchildren: content,\r\n\t\t\t\t\tvalue: {autobahnNavigation: true, disableCustomCode: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, synchronousNavigationOnDesktop: false, yieldOnTap: false}\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: contentWithFeaturesContext\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: {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\r\n\t\tif (isBrowser) {\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\t\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\t// Fallback support for stack gaps\r\n\t\t\tFramer.installFlexboxGapWorkaroundIfNeeded()\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, pathVariables, 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\tpathVariables = routeData.pathVariables\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 serverRouteExperimentEnabled = true\r\n\t\t\t\t\tconst serverRoute = serverRouteExperimentEnabled && 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\tpathVariables,\r\n\t\t\t\t\tcollectionItemId: routeData?.collectionItemId,\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\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\t  const utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\t  const [slug] = Object.values(pathVariables)\r\n\t\t\t  if (utils && typeof slug === \"string\") {\r\n\t\t\t\t  collectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t  }\r\n\t\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: framerSiteId ?? null,\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\tif (true) Framer.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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"}