{"version":3,"file":"script_main.Bo0oY2oz.mjs","names":["React.useState","React.useRef","React.useCallback","_Fragment","css","sharedStyle.css","sharedStyle1.css","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","RichText","React.Fragment","sharedStyle.fonts","sharedStyle1.fonts","React.createElement","SiteLayout","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/5vE0hktN5IpFAL822zac/eMB0ydyJzmQS7WFE3rUT/GalleryRouteTransition.js","https:/framerusercontent.com/modules/TjLjgEJmWtBwxziG35mU/WIu2EH8OfrpmavcIRenU/uU6S0d1dC.js","https:/framerusercontent.com/modules/S3LZd8xUIRJCOVu9hkxQ/uoKDRUIqlLU82f3F7fXg/s0mvJDjkS.js","framer:toplevel/main"],"sourcesContent":["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,RenderTarget,useRouter}from\"framer\";const STYLE_ID=\"gallery-route-view-transition-styles\";const RUNTIME_LAYER_ID=\"gallery-route-transition-runtime\";const RUNTIME_LAYER_SELECTOR=\"[data-gallery-transition-runtime]\";const EASING=\"cubic-bezier(0.76, 0, 0.24, 1)\";const CLEAR_BACKDROP_FILTER=\"blur(0px) saturate(1) contrast(1)\";const clamp=(value,minimum,maximum)=>Math.min(maximum,Math.max(minimum,value));const nextPaint=()=>new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(()=>resolve())));const wait=milliseconds=>new Promise(resolve=>window.setTimeout(resolve,milliseconds));function findTouch(touches,identifier){for(let index=0;index<touches.length;index+=1){const touch=touches.item(index);if(touch?.identifier===identifier)return touch;}return null;}function getRuntimeLayer(overscan){let layer=document.getElementById(RUNTIME_LAYER_ID);// Clean up duplicate layers from earlier hot reloads while preserving one\n// stable element for Safari to reuse across every route change.\ndocument.querySelectorAll(RUNTIME_LAYER_SELECTOR).forEach(candidate=>{if(candidate!==layer)candidate.remove();});if(!layer){layer=document.createElement(\"div\");layer.id=RUNTIME_LAYER_ID;layer.dataset.galleryTransitionUi=\"\";layer.dataset.galleryTransitionRuntime=\"\";document.body.appendChild(layer);}Object.assign(layer.style,{position:\"fixed\",top:`${-overscan}px`,right:`${-overscan}px`,bottom:`${-overscan}px`,left:`${-overscan}px`,zIndex:\"2147483645\",pointerEvents:\"none\",transformOrigin:\"50% 50%\",webkitBackfaceVisibility:\"hidden\",backfaceVisibility:\"hidden\"});return layer;}function resetRuntimeLayer(layer){const runtimeLayer=layer??document.getElementById(RUNTIME_LAYER_ID);if(!runtimeLayer)return;runtimeLayer.style.transition=\"none\";// Keep one imperceptible backdrop-filter surface promoted between route\n// changes. Mobile Safari can stop repainting the effect after repeatedly\n// creating, destroying, or de-promoting the compositing layer.\nruntimeLayer.style.backgroundColor=\"rgba(11, 11, 11, 0.001)\";runtimeLayer.style.transform=\"translate3d(0, 0, 0) scale(1)\";runtimeLayer.style.opacity=\"1\";runtimeLayer.style.willChange=\"backdrop-filter, -webkit-backdrop-filter, transform\";setBackdropFilter(runtimeLayer,CLEAR_BACKDROP_FILTER);}function supportsBackdropBlur(){if(typeof CSS===\"undefined\"||!CSS.supports)return false;return CSS.supports(\"backdrop-filter\",\"blur(1px)\")||CSS.supports(\"-webkit-backdrop-filter\",\"blur(1px)\");}function setBackdropFilter(element,value){element.style.backdropFilter=value;element.style.setProperty(\"-webkit-backdrop-filter\",value);}function normalizePath(path){const withoutQuery=path.split(\"?\")[0].split(\"#\")[0];const withLeadingSlash=withoutQuery.startsWith(\"/\")?withoutQuery:`/${withoutQuery}`;return withLeadingSlash.length>1?withLeadingSlash.replace(/\\/+$/,\"\"):\"/\";}function findAnchor(event){for(const node of event.composedPath()){if(node instanceof HTMLAnchorElement&&node.href)return node;}const target=event.target;if(!(target instanceof Element))return null;return target.closest(\"a[href]\");}function getEligibleLinkFromEvent(event){const anchor=findAnchor(event);if(!anchor)return null;if(anchor.dataset.galleryTransition===\"off\")return null;if(anchor.hasAttribute(\"download\"))return null;if(anchor.target&&anchor.target.toLowerCase()!==\"_self\")return null;const rawHref=anchor.getAttribute(\"href\")?.trim();if(!rawHref||rawHref.startsWith(\"#\"))return null;let destination;try{destination=new URL(rawHref,window.location.href);}catch{return null;}if(!/^https?:$/.test(destination.protocol))return null;if(destination.origin!==window.location.origin)return null;// Framer commonly renders internal links as \"./euda-project\". Resolve\n// those from the site root instead of the editor Preview URL.\nconst assignedPath=rawHref.startsWith(\"./\")?normalizePath(`/${rawHref.slice(2)}`):normalizePath(destination.pathname);const current=new URL(window.location.href);const samePage=!rawHref.startsWith(\"./\")&&destination.pathname===current.pathname&&destination.search===current.search;// Leave same-page anchors to Framer's normal scroll behavior.\nif(samePage)return null;return{destination,assignedPath};}function getEligibleMouseLink(event){if(event.button!==0||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey){return null;}return getEligibleLinkFromEvent(event);}function findFramerRouteId(routes,destinationPath){if(!routes)return null;const target=normalizePath(destinationPath);for(const[routeId,route]of Object.entries(routes)){const possiblePaths=[route.path,...Object.values(route.pathLocalized??{})];const matches=possiblePaths.some(path=>typeof path===\"string\"&&normalizePath(path)===target);if(matches)return routeId;}return null;}function transitionCSS({morphDuration,gradientBlur,gradientDrift,gradientZoom}){const durationMs=Math.round(clamp(morphDuration,.5,2.2)*1e3);const blurPx=clamp(gradientBlur,24,160);const driftPx=clamp(gradientDrift,0,80);const zoomScale=1+clamp(gradientZoom,5,30)/100;const peakScale=zoomScale+.025;return`\n/* Keep Framer elements inside one unified full-page snapshot. */\nbody * {\n    view-transition-name: none !important;\n}\n\n@keyframes gallery-gradient-out {\n    0% {\n        opacity: 1;\n        filter: blur(0px) saturate(1) contrast(1);\n        transform: translate3d(0, 0, 0) scale(1);\n    }\n    36% {\n        opacity: 1;\n        filter: blur(${blurPx}px) saturate(1.08) contrast(0.94);\n        transform: translate3d(-${driftPx*.45}px, -${driftPx*.2}px, 0) scale(${zoomScale});\n    }\n    64% {\n        opacity: 0;\n        filter: blur(${blurPx}px) saturate(1.08) contrast(0.94);\n        transform: translate3d(-${driftPx}px, -${driftPx*.45}px, 0) scale(${peakScale});\n    }\n    100% {\n        opacity: 0;\n        filter: blur(${blurPx}px) saturate(1.08) contrast(0.94);\n        transform: translate3d(-${driftPx}px, -${driftPx*.45}px, 0) scale(${peakScale});\n    }\n}\n\n@keyframes gallery-gradient-in {\n    0% {\n        opacity: 1;\n        filter: blur(${blurPx}px) saturate(1.08) contrast(0.94);\n        transform: translate3d(${driftPx}px, ${driftPx*.45}px, 0) scale(${peakScale});\n    }\n    36% {\n        opacity: 1;\n        filter: blur(${blurPx}px) saturate(1.08) contrast(0.94);\n        transform: translate3d(${driftPx}px, ${driftPx*.45}px, 0) scale(${peakScale});\n    }\n    64% {\n        opacity: 1;\n        filter: blur(${blurPx}px) saturate(1.08) contrast(0.94);\n        transform: translate3d(${driftPx*.45}px, ${driftPx*.2}px, 0) scale(${zoomScale});\n    }\n    100% {\n        opacity: 1;\n        filter: blur(0px) saturate(1) contrast(1);\n        transform: translate3d(0, 0, 0) scale(1);\n    }\n}\n\n:root::view-transition {\n    overflow: clip;\n}\n\n:root::view-transition-group(root) {\n    animation-duration: ${durationMs}ms !important;\n    animation-timing-function: ${EASING} !important;\n}\n\n:root::view-transition-image-pair(root) {\n    isolation: isolate;\n}\n\n:root::view-transition-old(root),\n:root::view-transition-new(root) {\n    backface-visibility: hidden;\n    mix-blend-mode: normal;\n    transform-origin: 50% 50%;\n    will-change: opacity, filter, transform;\n}\n\n:root::view-transition-old(root) {\n    z-index: 2;\n    animation: gallery-gradient-out ${durationMs}ms ${EASING} both !important;\n}\n\n:root::view-transition-new(root) {\n    z-index: 1;\n    animation: gallery-gradient-in ${durationMs}ms ${EASING} both !important;\n}\n\n@media (prefers-reduced-motion: reduce) {\n    :root::view-transition-old(root),\n    :root::view-transition-new(root) {\n        animation-duration: 600ms !important;\n    }\n}\n`;}function installTransitionStyles(settings){if(typeof document===\"undefined\")return;let style=document.getElementById(STYLE_ID);if(!style){style=document.createElement(\"style\");style.id=STYLE_ID;document.head.appendChild(style);}style.textContent=transitionCSS(settings);}async function fallbackTransition(updateRoute,morphDuration,gradientBlur,gradientDrift,gradientZoom){// On very old browsers, prefer a clean route change over retaining a\n// heavyweight DOM snapshot that can corrupt the mobile compositor.\nif(!supportsBackdropBlur()){await updateRoute();return;}const durationMs=clamp(morphDuration,.5,2.2)*1e3;const phaseDurationMs=durationMs/2;const blurPx=clamp(gradientBlur,24,160);const driftPx=clamp(gradientDrift,0,80);const zoomScale=1+clamp(gradientZoom,5,30)/100;const overscan=Math.ceil(blurPx*2.25+driftPx+24);const peakFilter=`blur(${blurPx}px) saturate(1.08) contrast(0.94)`;const clearFilter=CLEAR_BACKDROP_FILTER;const transition=[`backdrop-filter ${phaseDurationMs}ms ${EASING}`,`-webkit-backdrop-filter ${phaseDurationMs}ms ${EASING}`,`transform ${phaseDurationMs}ms ${EASING}`,`background-color ${phaseDurationMs}ms ${EASING}`].join(\", \");// Reuse one persistent compositing surface. Repeatedly constructing and\n// destroying backdrop-filter layers can cause Mobile Safari to stop\n// promoting them after several navigations.\nconst viewportVeil=getRuntimeLayer(overscan);resetRuntimeLayer(viewportVeil);Object.assign(viewportVeil.style,{backgroundColor:\"rgba(11, 11, 11, 0.001)\",transform:\"translate3d(0, 0, 0) scale(1)\",willChange:\"backdrop-filter, transform, background-color\"});setBackdropFilter(viewportVeil,clearFilter);let cleaned=false;let watchdog=0;function cleanup(){if(cleaned)return;cleaned=true;window.clearTimeout(watchdog);window.removeEventListener(\"pagehide\",cleanup);document.removeEventListener(\"visibilitychange\",handleVisibility);resetRuntimeLayer(viewportVeil);}function handleVisibility(){if(document.visibilityState===\"hidden\")cleanup();}window.addEventListener(\"pagehide\",cleanup);document.addEventListener(\"visibilitychange\",handleVisibility);// A final safety net prevents WebKit timer/animation interruption from\n// ever leaving a blurred or cropped layer over the destination page.\nwatchdog=window.setTimeout(cleanup,Math.max(6e3,durationMs*4));try{// Outgoing page: sharp -> defocused color field.\nawait nextPaint();viewportVeil.style.transition=transition;setBackdropFilter(viewportVeil,peakFilter);viewportVeil.style.backgroundColor=\"rgba(11, 11, 11, 0.018)\";viewportVeil.style.transform=`translate3d(-${driftPx}px, -${driftPx*.45}px, 0) scale(${zoomScale})`;await wait(phaseDurationMs+34);// The real Framer route changes while the viewport is fully blurred.\nawait updateRoute();if(cleaned||!viewportVeil.isConnected)return;// Rebase the color field on the destination palette without exposing\n// a sharp frame, then bring the new page into focus.\nviewportVeil.style.transition=\"none\";setBackdropFilter(viewportVeil,peakFilter);viewportVeil.style.transform=`translate3d(${driftPx}px, ${driftPx*.45}px, 0) scale(${zoomScale})`;void viewportVeil.getBoundingClientRect();await nextPaint();viewportVeil.style.transition=transition;setBackdropFilter(viewportVeil,clearFilter);viewportVeil.style.backgroundColor=\"rgba(11, 11, 11, 0.001)\";viewportVeil.style.transform=\"translate3d(0, 0, 0) scale(1)\";await wait(phaseDurationMs+80);}finally{cleanup();}}/**\n * A Framer route transition that morphs two page snapshots through a shared\n * field of heavily defocused color.\n *\n * Place one instance in the Site Layout, outside the Content Slot. The browser\n * keeps the outgoing page visible while Framer commits the destination. The\n * old page first becomes an abstract gradient, that gradient blends into the\n * destination palette, and the destination then returns to sharp focus.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function GalleryRouteTransition(props){const{enabled=true,debug=false,morphDuration=1.1,gradientBlur=82,gradientDrift=28,gradientZoom=18}=props;const router=useRouter();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const runtimeMode=\"UNIFIED TOUCH-GUARDED\";const[portalHost,setPortalHost]=React.useState(null);const[isBlocking,setIsBlocking]=React.useState(false);const busyRef=React.useRef(false);const mountedRef=React.useRef(true);const runtimeWindow=typeof window===\"undefined\"?null:window;const routesRef=React.useRef(router.routes&&Object.keys(router.routes).length>0?router.routes:runtimeWindow?.__galleryRouteTransitionRoutes);React.useEffect(()=>{mountedRef.current=true;return()=>{mountedRef.current=false;};},[]);React.useEffect(()=>{if(router.routes&&Object.keys(router.routes).length>0){// Framer can briefly expose an empty route map while a Site\n// Layout remounts, and some builds expose only the currently\n// hydrated subset. Accumulate every known route outside React so\n// a fourth, fifth, or fiftieth navigation still resolves.\nconst globalRuntime=window;const accumulatedRoutes={...globalRuntime.__galleryRouteTransitionRoutes??{},...routesRef.current??{},...router.routes};routesRef.current=accumulatedRoutes;globalRuntime.__galleryRouteTransitionRoutes=accumulatedRoutes;}},[router.routes]);React.useEffect(()=>{if(isCanvas||typeof document===\"undefined\")return;setPortalHost(document.body);document.getElementById(STYLE_ID)?.remove();},[isCanvas]);const transitionTo=React.useCallback(async(routeId,destination)=>{const runtimeWindow=window;if(busyRef.current||runtimeWindow.__galleryRouteTransitionBusy||!router.navigate){return;}busyRef.current=true;runtimeWindow.__galleryRouteTransitionBusy=true;setIsBlocking(true);let routeUpdateStarted=false;const updateRoute=async()=>{if(routeUpdateStarted||!router.navigate)return;routeUpdateStarted=true;await router.navigate(routeId,destination.hash||undefined);// Framer's navigate call may resolve before React has painted\n// the destination. Two frames ensure the new snapshot contains\n// the assigned page rather than the outgoing page.\nawait nextPaint();};try{// Use the same persistent renderer at every breakpoint. This\n// avoids desktop relying on the browser's separate native\n// View Transition lifecycle while mobile uses our blur veil.\nawait fallbackTransition(updateRoute,morphDuration,gradientBlur,gradientDrift,gradientZoom);}catch{// If the browser aborts the visual transition before invoking\n// the callback, navigation must still reach the assigned page.\nif(!routeUpdateStarted)await updateRoute();}finally{resetRuntimeLayer();runtimeWindow.__galleryRouteTransitionBusy=false;if(mountedRef.current){busyRef.current=false;setIsBlocking(false);}}},[gradientBlur,gradientDrift,gradientZoom,morphDuration,router]);React.useEffect(()=>{if(!enabled||isCanvas||!portalHost)return;const globalRuntime=window;let pendingTouch=null;let pendingPointer=null;const activateLink=(event,link)=>{const availableRoutes={...globalRuntime.__galleryRouteTransitionRoutes??{},...routesRef.current??{},...router.routes??{}};const routeId=findFramerRouteId(availableRoutes,link.assignedPath);// If Framer does not expose this route, leave the event untouched\n// so its native link handler can follow the assigned URL.\nif(!routeId||!router.navigate)return false;if(routeId===router.currentRouteId&&!link.destination.hash){return false;}if(event.cancelable)event.preventDefault();event.stopImmediatePropagation();void transitionTo(routeId,link.destination);return true;};const controller={handleClick:event=>{const link=getEligibleMouseLink(event);if(!link)return;// A handled touchend normally suppresses Safari's synthetic\n// click. Block it here as a second line of defense so Framer\n// cannot navigate the destination before our blur begins.\nconst lastHandledTouch=globalRuntime.__galleryRouteTransitionLastHandledTouch??0;if(Date.now()-lastHandledTouch<1e3){if(event.cancelable)event.preventDefault();event.stopImmediatePropagation();return;}activateLink(event,link);},handleTouchStart:event=>{if(event.touches.length!==1){pendingTouch=null;return;}const link=getEligibleLinkFromEvent(event);const touch=event.touches.item(0);if(!link||!touch){pendingTouch=null;return;}pendingTouch={identifier:touch.identifier,startX:touch.clientX,startY:touch.clientY,link,moved:false};},handleTouchMove:event=>{if(!pendingTouch||pendingTouch.moved)return;const touch=findTouch(event.touches,pendingTouch.identifier);if(!touch){pendingTouch.moved=true;return;}const distance=Math.hypot(touch.clientX-pendingTouch.startX,touch.clientY-pendingTouch.startY);// Preserve normal page scrolling when a gesture begins over\n// a linked project card. Only a deliberate tap navigates.\nif(distance>14)pendingTouch.moved=true;},handleTouchEnd:event=>{const completed=pendingTouch;pendingTouch=null;if(!completed||completed.moved)return;// Pointer Events fire first on current iOS versions. If that\n// path already began the transition, consume touchend without\n// attempting a second navigation.\nconst lastHandledPointer=globalRuntime.__galleryRouteTransitionLastHandledTouch??0;if(Date.now()-lastHandledPointer<1e3){if(event.cancelable)event.preventDefault();event.stopImmediatePropagation();return;}const touch=findTouch(event.changedTouches,completed.identifier);if(!touch)return;const distance=Math.hypot(touch.clientX-completed.startX,touch.clientY-completed.startY);if(distance>14)return;if(activateLink(event,completed.link)){globalRuntime.__galleryRouteTransitionLastHandledTouch=Date.now();}},handleTouchCancel:()=>{pendingTouch=null;},handlePointerDown:event=>{if(!event.isPrimary||event.pointerType!==\"touch\"&&event.pointerType!==\"pen\"){pendingPointer=null;return;}const link=getEligibleLinkFromEvent(event);if(!link){pendingPointer=null;return;}pendingPointer={pointerId:event.pointerId,startX:event.clientX,startY:event.clientY,link,moved:false};},handlePointerMove:event=>{if(!pendingPointer||pendingPointer.moved||event.pointerId!==pendingPointer.pointerId){return;}const distance=Math.hypot(event.clientX-pendingPointer.startX,event.clientY-pendingPointer.startY);if(distance>14)pendingPointer.moved=true;},handlePointerUp:event=>{const completed=pendingPointer;pendingPointer=null;if(!completed||completed.moved||event.pointerId!==completed.pointerId){return;}const distance=Math.hypot(event.clientX-completed.startX,event.clientY-completed.startY);if(distance>14)return;if(activateLink(event,completed.link)){globalRuntime.__galleryRouteTransitionLastHandledTouch=Date.now();}},handlePointerCancel:()=>{pendingPointer=null;}};if(globalRuntime.__galleryRouteTransitionControllerCleanup){window.clearTimeout(globalRuntime.__galleryRouteTransitionControllerCleanup);globalRuntime.__galleryRouteTransitionControllerCleanup=undefined;}globalRuntime.__galleryRouteTransitionController=controller;// Install one capture listener for the lifetime of the document. The\n// active controller can change as Framer remounts Site Layouts, but\n// the listener itself never develops a between-pages dead zone.\nif(!globalRuntime.__galleryRouteTransitionListener){const listener=event=>{globalRuntime.__galleryRouteTransitionController?.handleClick(event);};globalRuntime.__galleryRouteTransitionListener=listener;window.addEventListener(\"click\",listener,true);}if(!globalRuntime.__galleryRouteTransitionTouchListenersInstalled){const touchStartListener=event=>{globalRuntime.__galleryRouteTransitionController?.handleTouchStart(event);};const touchMoveListener=event=>{globalRuntime.__galleryRouteTransitionController?.handleTouchMove(event);};const touchEndListener=event=>{globalRuntime.__galleryRouteTransitionController?.handleTouchEnd(event);};const touchCancelListener=()=>{globalRuntime.__galleryRouteTransitionController?.handleTouchCancel();};window.addEventListener(\"touchstart\",touchStartListener,{capture:true,passive:true});window.addEventListener(\"touchmove\",touchMoveListener,{capture:true,passive:true});window.addEventListener(\"touchend\",touchEndListener,{capture:true,passive:false});window.addEventListener(\"touchcancel\",touchCancelListener,{capture:true,passive:true});globalRuntime.__galleryRouteTransitionTouchListenersInstalled=true;}if(!globalRuntime.__galleryRouteTransitionPointerListenersInstalled){const pointerDownListener=event=>{globalRuntime.__galleryRouteTransitionController?.handlePointerDown(event);};const pointerMoveListener=event=>{globalRuntime.__galleryRouteTransitionController?.handlePointerMove(event);};const pointerUpListener=event=>{globalRuntime.__galleryRouteTransitionController?.handlePointerUp(event);};const pointerCancelListener=()=>{globalRuntime.__galleryRouteTransitionController?.handlePointerCancel();};window.addEventListener(\"pointerdown\",pointerDownListener,{capture:true,passive:true});window.addEventListener(\"pointermove\",pointerMoveListener,{capture:true,passive:true});window.addEventListener(\"pointerup\",pointerUpListener,{capture:true,passive:false});window.addEventListener(\"pointercancel\",pointerCancelListener,{capture:true,passive:true});globalRuntime.__galleryRouteTransitionPointerListenersInstalled=true;}return()=>{// Defer retirement for one task. A destination Site Layout mounts\n// its replacement controller during this window, preventing a\n// tap immediately after navigation from bypassing the transition.\nglobalRuntime.__galleryRouteTransitionControllerCleanup=window.setTimeout(()=>{if(globalRuntime.__galleryRouteTransitionController===controller){globalRuntime.__galleryRouteTransitionController=undefined;}},0);};},[enabled,isCanvas,portalHost,router,transitionTo]);if(isCanvas){return /*#__PURE__*/_jsx(\"div\",{\"aria-label\":\"Gallery route transition\",style:{width:\"100%\",height:\"100%\",minWidth:24,minHeight:24,border:\"1px dashed rgba(11,11,11,0.2)\",borderRadius:4,boxSizing:\"border-box\",pointerEvents:\"none\"}});}if(!portalHost)return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",\"data-gallery-transition-ui\":\"\",style:{position:\"fixed\",inset:0,zIndex:2147483646,background:\"transparent\",pointerEvents:isBlocking?\"auto\":\"none\",touchAction:\"none\"}}),debug&&/*#__PURE__*/_jsxs(\"div\",{\"data-gallery-transition-ui\":\"\",style:{position:\"fixed\",top:12,left:12,zIndex:2147483647,padding:\"6px 8px\",borderRadius:4,background:\"#0B0B0B\",color:\"#FFFFFF\",font:\"600 10px/1.2 Arial, sans-serif\",letterSpacing:\"0.12em\",pointerEvents:\"none\"},children:[\"GRADIENT MORPH \\xb7 \",runtimeMode]})]}),portalHost);}GalleryRouteTransition.defaultProps={width:32,height:32,enabled:true,debug:false,morphDuration:1.1,gradientBlur:82,gradientDrift:28,gradientZoom:18};addPropertyControls(GalleryRouteTransition,{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},debug:{type:ControlType.Boolean,title:\"Debug Badge\",defaultValue:false},morphDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:1.1,min:.5,max:2.2,step:.01,unit:\"s\"},gradientBlur:{type:ControlType.Number,title:\"Gradient Blur\",defaultValue:82,min:24,max:160,step:1,unit:\"px\"},gradientDrift:{type:ControlType.Number,title:\"Color Drift\",defaultValue:28,min:0,max:80,step:1,unit:\"px\"},gradientZoom:{type:ControlType.Number,title:\"Edge Zoom\",defaultValue:18,min:5,max:30,step:1,unit:\"%\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GalleryRouteTransition\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GalleryRouteTransition.map","// Generated by Framer (e0809aa)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;General Sans-regular\",\"FS;General Sans-bold\",\"FS;General Sans-bold italic\",\"FS;General Sans-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"General Sans\",openType:true,source:\"fontshare\",style:\"normal\",uiFamilyName:\"General Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/MFQT7HFGCR2L5ULQTW6YXYZXXHMPKLJ3/YWQ244D6TACUX5JBKATPOW5I5MGJ3G73/7YY3ZAAE3TRV2LANYOLXNHTPHLXVWTKH.woff2\",weight:\"400\"},{cssFamilyName:\"General Sans\",openType:true,source:\"fontshare\",style:\"normal\",uiFamilyName:\"General Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/KWXO5X3YW4X7OLUMPO4X24HQJGJU7E2Q/VOWUQZS3YLP66ZHPTXAFSH6YACY4WJHT/NIQ54PVBBIWVK3PFSOIOUJSXIJ5WTNDP.woff2\",weight:\"700\"},{cssFamilyName:\"General Sans\",openType:true,source:\"fontshare\",style:\"italic\",uiFamilyName:\"General Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/IZAMKIKJNFHYAA4XTXOGUSQUJWNXQHPE/2S5HU7TKNAV6MHTRNU2NPZD7U4OT6VKE/HCZ5OQRTYQOAVSHRS6UOFWUZ5CGI6JRO.woff2\",weight:\"700\"},{cssFamilyName:\"General Sans\",openType:true,source:\"fontshare\",style:\"italic\",uiFamilyName:\"General Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/GQOITZI54NH6HDBP26XAMQYTXB4JQ3NQ/VY7SXNCPHYFLQTOFY72GM4OZTBH62U2D/AHPLTG2YASI4OYLGJV4CF3P25VBHPK5X.woff2\",weight:\"400\"}]}];export const css=['.framer-6phRc .framer-styles-preset-x9zyr0:not(.rich-text-wrapper), .framer-6phRc .framer-styles-preset-x9zyr0.rich-text-wrapper h3 { --framer-font-family: \"General Sans\", \"General Sans Placeholder\", sans-serif; --framer-font-family-bold: \"General Sans\", \"General Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"General Sans\", \"General Sans Placeholder\", sans-serif; --framer-font-family-italic: \"General Sans\", \"General Sans Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 11px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.14em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-2f3694e7-e7fc-420b-ac21-ce0ac018f124, #e6ded8); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-6phRc\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (560da95)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,getFontsFromSharedStyle,Link,RenderTarget,RichText,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import GalleryRouteTransition from\"#framer/local/codeFile/e8rSXCF/GalleryRouteTransition.js\";import*as sharedStyle from\"#framer/local/css/uU6S0d1dC/uU6S0d1dC.js\";import*as sharedStyle1 from\"#framer/local/css/wLnlYgLMT/wLnlYgLMT.js\";const GalleryRouteTransitionFonts=getFonts(GalleryRouteTransition);const breakpoints={MlAHcdTnV:\"(max-width: 809.98px)\",o0Gv4L4Bc:\"(min-width: 810px) and (max-width: 1199.98px)\",YJMCMVxqX:\"(min-width: 1200px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-IPLgl\";const variantClassNames={MlAHcdTnV:\"framer-v-11va5s5\",o0Gv4L4Bc:\"framer-v-5aqz45\",YJMCMVxqX:\"framer-v-1q0uxsk\"};const breakpointRules={MlAHcdTnV:[\".framer-IPLgl .framer-caxv6d { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 24px; justify-content: flex-start; padding: 28px 20px 28px 20px; }\",\".framer-IPLgl .framer-r7ho5d { gap: 22px; }\"],o0Gv4L4Bc:[\".framer-IPLgl .framer-caxv6d { padding: 24px 28px 24px 28px; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={MlAHcdTnV:\".framer-11va5s5-override\",o0Gv4L4Bc:\".framer-5aqz45-override\"};const rules=[\".framer-IPLgl.framer-stfqay, .framer-IPLgl .framer-stfqay { display: block; }\",\".framer-IPLgl.framer-1q0uxsk { align-content: center; align-items: center; background-color: var(--token-2f3694e7-e7fc-420b-ac21-ce0ac018f124); 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-IPLgl .framer-12rr2fv { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-IPLgl .framer-caxv6d { align-content: center; align-items: center; background-color: var(--token-7b22a87f-9047-49f0-ac0d-7ce049f2b718, #0b0b0b); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; order: 1001; overflow: var(--overflow-clip-fallback, clip); padding: 28px 32px 28px 32px; position: relative; width: 100%; }\",\".framer-IPLgl .framer-sq8pee, .framer-IPLgl .framer-q2utor, .framer-IPLgl .framer-14ld2py { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-IPLgl .framer-r7ho5d { 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-IPLgl .framer-rly06e-container { flex: none; height: 32px; left: 0px; order: 1002; position: absolute; top: 0px; width: 32px; z-index: 1; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }',...sharedStyle.css,...sharedStyle1.css];const mediaQueries={MlAHcdTnV:\"(max-width: 809.98px)\",o0Gv4L4Bc:\"(min-width: 810px) and (max-width: 1199.98px)\",YJMCMVxqX:\"(min-width: 1200px)\"};const humanReadableVariantMap={Desktop:\"YJMCMVxqX\",Phone:\"MlAHcdTnV\",Tablet:\"o0Gv4L4Bc\"};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??\"YJMCMVxqX\"};};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];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"YJMCMVxqX\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-2f3694e7-e7fc-420b-ac21-ce0ac018f124); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1q0uxsk\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-12rr2fv\"}),/*#__PURE__*/_jsxs(motion.footer,{className:\"framer-caxv6d\",\"data-framer-name\":\"Site Footer\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-x9zyr0\",\"data-styles-preset\":\"uU6S0d1dC\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"CSk4oGAoD\",openInNewTab:false,relValues:[],scopeId:\"s0mvJDjkS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1t53mff\",\"data-styles-preset\":\"wLnlYgLMT\",children:\"DANIEL LUJAN\"})})})}),className:\"framer-sq8pee\",\"data-framer-name\":\"Footer Mark\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-r7ho5d\",\"data-framer-name\":\"Footer Links\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-x9zyr0\",\"data-styles-preset\":\"uU6S0d1dC\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{hash:\":O2A31gnQA\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"dM4Ii2B8v\",openInNewTab:false,relValues:[],scopeId:\"s0mvJDjkS\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1t53mff\",\"data-styles-preset\":\"wLnlYgLMT\",children:\"WORK\"})})})}),className:\"framer-q2utor\",\"data-framer-name\":\"Work Link\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-x9zyr0\",\"data-styles-preset\":\"uU6S0d1dC\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"kfDEjm8dP\"},motionChild:true,nodeId:\"w309YEmyK\",openInNewTab:false,relValues:[],scopeId:\"s0mvJDjkS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1t53mff\",\"data-styles-preset\":\"wLnlYgLMT\",children:\"INFO\"})})})}),className:\"framer-14ld2py\",\"data-framer-name\":\"Info Link\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-rly06e-container\",isAuthoredByUser:true,nodeId:\"XAA8NErL1\",scopeId:\"s0mvJDjkS\",children:/*#__PURE__*/_jsx(GalleryRouteTransition,{debug:false,enabled:true,gradientBlur:123,gradientDrift:26,gradientZoom:18,height:\"100%\",id:\"XAA8NErL1\",layoutId:\"XAA8NErL1\",morphDuration:.5,style:{height:\"100%\",width:\"100%\"},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\"]},\"o0Gv4L4Bc\":{\"layout\":[\"fixed\",\"fixed\"]},\"MlAHcdTnV\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"YJMCMVxqX\":[\".framer-caxv6d\",\".framer-rly06e-container\"],\"o0Gv4L4Bc\":[\".framer-caxv6d\",\".framer-rly06e-container\"],\"MlAHcdTnV\":[\".framer-caxv6d\",\".framer-rly06e-container\"]}\n * @framerBreakpoints {\"YJMCMVxqX\":{\"min\":1200,\"canvasClassName\":\"framer-1q0uxsk-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"o0Gv4L4Bc\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-5aqz45-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"MlAHcdTnV\":{\"max\":809,\"canvasClassName\":\"framer-11va5s5-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant YJMCMVxqX\n * @framerLayoutTemplate true\n */const Framers0mvJDjkS=withCSS(Component,css,\"framer-IPLgl\");export default Framers0mvJDjkS;Framers0mvJDjkS.displayName=\"Site Layout\";Framers0mvJDjkS.defaultProps={height:1e3,width:1200};addFonts(Framers0mvJDjkS,[{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\"}]},...GalleryRouteTransitionFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framers0mvJDjkS\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerImmutableVariables\":\"true\",\"framerDefaultVariant\":\"YJMCMVxqX\",\"framerAutoSizeImages\":\"true\",\"framerBreakpoints\":\"{\\\"YJMCMVxqX\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1q0uxsk-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"o0Gv4L4Bc\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-5aqz45-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"MlAHcdTnV\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-11va5s5-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"1000\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerHitTargets\":\"{\\\"YJMCMVxqX\\\":[\\\".framer-caxv6d\\\",\\\".framer-rly06e-container\\\"],\\\"o0Gv4L4Bc\\\":[\\\".framer-caxv6d\\\",\\\".framer-rly06e-container\\\"],\\\"MlAHcdTnV\\\":[\\\".framer-caxv6d\\\",\\\".framer-rly06e-container\\\"]}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"o0Gv4L4Bc\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"MlAHcdTnV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"__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 SiteLayout from \"https://framerusercontent.com/modules/S3LZd8xUIRJCOVu9hkxQ/uoKDRUIqlLU82f3F7fXg/s0mvJDjkS.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {O2A31gnQA: \"work\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/9Cird5AxBtYrFh2Iv7Cx/gnNfc1vMhwEOWrbduu4R/augiA20Il.js\")), path: \"/\"}, kfDEjm8dP: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/RpZF8kuAgxqQrAkrBnfC/rztA5U6KZEeTRBxNfu8v/kfDEjm8dP.js\")), path: \"/info\"}, U2PLLq9d2: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/t5LjPaz1CwEFHd2nIkVE/TA9qIHKS8kZ9Cr9jP481/U2PLLq9d2.js\")), path: \"/euda-project\"}, FU7ZgJPsG: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/mbGP4edcWmdws3pbbC8C/RHEeM43D6e2umTkhPjQY/FU7ZgJPsG.js\")), path: \"/lunar-grove-project\"}, lnq69i4VF: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/L53qIs3GVhx7wQ6Vx18j/KLrLcm9AnfENdG9TexY0/lnq69i4VF.js\")), path: \"/something-more-project\"}, nyMWVjrvJ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pWPrX5k6aPoT4UwyiXx1/I8AEujsD2gB2KNJmk0B2/nyMWVjrvJ.js\")), path: \"/one-last-dance-project\"}, xA5AYunAp: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/A8qgVsjrwSMzTWJdl43f/M45pcfnrOvyBnzlI962y/xA5AYunAp.js\")), path: \"/fairweather-project\"}}\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 serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"e8ee477de991c090af41347b9cd9648c5f687701800a840aa3732f0bb355b688\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"kfDEjm8dP\":\r\ncase \"U2PLLq9d2\":\r\ncase \"FU7ZgJPsG\":\r\ncase \"lnq69i4VF\":\r\ncase \"nyMWVjrvJ\":\r\ncase \"xA5AYunAp\":\r\nreturn React.createElement(SiteLayout, {...props, key: \"SiteLayout\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"kfDEjm8dP\":\r\ncase \"U2PLLq9d2\":\r\ncase \"FU7ZgJPsG\":\r\ncase \"lnq69i4VF\":\r\ncase \"nyMWVjrvJ\":\r\ncase \"xA5AYunAp\":\r\nreturn [{hash: \"11va5s5\", mediaQuery: \"(max-width: 809.98px)\"}, {hash: \"5aqz45\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1q0uxsk\", 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, 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(\"__framer-not-found-page\")),\r\n\t\t\t\t\tisReducedMotion: false,\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://daniellujan.studio\",\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/qQDTYYQ2ravefo6vEVhM/mdRovGokT170F9HI9ePb/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: {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\t\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\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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"}