{"version":3,"file":"Shuffle.CKGSwALA.mjs","names":["Children","useMemo","useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/M40u1ieC3pDn0LyNdPOn/WCBJ31HaH2rZjhCECzj3/Shuffle.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{createPortal}from\"react-dom\";import{useState,useEffect,useLayoutEffect,useMemo,startTransition,Children,forwardRef,useRef,useCallback}from\"react\";// @ts-ignore\nimport{useQueryData,RenderTarget}from\"framer\";function shuffleArray(array){for(let i=array.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[array[i],array[j]]=[array[j],array[i]];}return array;}function extractQueryItems(collectionData){if(!collectionData)return[];if(Array.isArray(collectionData))return collectionData;if(Array.isArray(collectionData?.items))return collectionData.items;if(Array.isArray(collectionData?.data))return collectionData.data;return[];}function readFieldValue(item,keys){if(!item)return undefined;const sources=[item,item?.fields,item?.fieldData,item?.data];for(const source of sources){if(!source)continue;for(const key of keys){if(source[key]!==undefined)return source[key];}}return undefined;}function toBoolean(value){if(typeof value===\"boolean\")return value;if(typeof value===\"string\")return value.trim().toLowerCase()===\"true\";return Boolean(value);}function hashString(value){let hash=0;for(let i=0;i<value.length;i++){hash=(hash<<5)-hash+value.charCodeAt(i);hash|=0;}return Math.abs(hash);}function normalizeSlugFromPath(pathname){const safePath=(pathname||\"\").split(\"?\")[0].split(\"#\")[0];const parts=safePath.split(\"/\").filter(Boolean);const rawSlug=parts.length>0?parts[parts.length-1]:\"\";try{return decodeURIComponent(rawSlug);}catch(_error){return rawSlug;}}function isPresentAtHome(item){const directBoolean=readFieldValue(item,[\"MH7EllWrG\",\"$control__present_at_home\",\"presentAtHome\",\"present_at_home\",\"isPresentAtHome\"]);if(directBoolean!==undefined)return toBoolean(directBoolean);const labels=readFieldValue(item,[\"category\",\"categories\",\"tag\",\"tags\",\"type\",\"projectType\"]);if(Array.isArray(labels)){return labels.some(entry=>String(entry).toLowerCase().includes(\"present at home\"));}if(typeof labels===\"string\"){return labels.toLowerCase().includes(\"present at home\");}return false;}function readItemSlug(item){const slug=readFieldValue(item,[\"TNKGhpdHo\",\"$control__slug\",\"slug\",\"Slug\",\"path\",\"Path\"]);return slug?String(slug):\"\";}function readItemTitle(item){const title=readFieldValue(item,[\"dH5PZF9U9\",\"$control__title\",\"title\",\"Title\",\"name\",\"Name\"]);return title?String(title):\"\";}// Shuffle the children of a stack or grid layout\nexport function Shuffle(Component){return props=>{const{children,...otherProps}=props;const childrenArray=Children.toArray(children);const[shuffledChildren,setShuffledChildren]=useState([]);useEffect(()=>{setShuffledChildren(shuffleArray(childrenArray));},[]);return /*#__PURE__*/_jsx(Component,{...otherProps,children:shuffledChildren});};}// Shuffle the children of a CMS Collection List\nexport function ShuffleCMSCollectionList(Component){return props=>{const query=props.children?.props?.query;const queryData=query?.from?.data;const collectionData=queryData?.read?queryData.read():queryData;const[currentSlug,setCurrentSlug]=useState(\"\");useEffect(()=>{if(typeof window===\"undefined\")return;const readSlug=()=>normalizeSlugFromPath(window.location.pathname);let latestSlug=readSlug();startTransition(()=>setCurrentSlug(latestSlug));const intervalId=window.setInterval(()=>{const nextSlug=readSlug();if(nextSlug!==latestSlug){latestSlug=nextSlug;startTransition(()=>setCurrentSlug(nextSlug));}},300);return()=>window.clearInterval(intervalId);},[]);if(!query){return /*#__PURE__*/_jsx(Component,{...props});}const shuffledData=useMemo(()=>{const items=extractQueryItems(collectionData);if(items.length===0)return collectionData??[];const currentItem=currentSlug&&items.length>0?items.find(item=>readItemSlug(item)===currentSlug):undefined;const currentTitle=readItemTitle(currentItem);const filteredPresentAtHome=items.filter(item=>isPresentAtHome(item));const withoutCurrent=filteredPresentAtHome.filter(item=>{if(!currentSlug)return true;const itemSlug=readItemSlug(item);const itemTitle=readItemTitle(item);if(itemSlug===currentSlug)return false;if(currentTitle&&itemTitle&&itemTitle===currentTitle)return false;return true;});const seedSource=currentSlug||\"initial\";const stableSort=list=>[...list].sort((a,b)=>{const aSlug=readItemSlug(a);const bSlug=readItemSlug(b);const aScore=hashString(`${seedSource}:${aSlug}`);const bScore=hashString(`${seedSource}:${bSlug}`);return aScore-bScore;});const selected=stableSort(withoutCurrent).slice(0,2);if(selected.length<2){const alreadySelected=new Set(selected.map(item=>readItemSlug(item)));const fallbackPool=items.filter(item=>{const slug=readItemSlug(item);const title=readItemTitle(item);if(currentSlug&&slug===currentSlug)return false;if(currentTitle&&title&&title===currentTitle)return false;return!alreadySelected.has(slug);});const fallbackItems=stableSort(fallbackPool).slice(0,2-selected.length);return[...selected,...fallbackItems];}return selected;},[collectionData,currentSlug]);return /*#__PURE__*/_jsx(Component,{...props,children:props.children?.props?.children(useQueryData({...query,limit:2,from:{...query?.from,data:shuffledData}}))});};}function readCurrentPathname(){if(typeof window===\"undefined\")return\"\";return window.location.pathname||\"\";}function normalizePathname(pathname){const normalized=normalizeSlugFromPath(pathname);return normalized?`/work/${normalized}`:\"\";}function normalizeWorkPathFromHref(href){if(!href)return\"\";const base=typeof window!==\"undefined\"&&window.location?.origin?window.location.origin:\"https://framer.com\";try{const parsed=new URL(href,base);const cleanPath=parsed.pathname.replace(/\\/+$/,\"\");const parts=cleanPath.split(\"/\").filter(Boolean);if(parts.length>=2&&parts[0].toLowerCase()===\"work\"){const slug=decodeURIComponent(parts[1]||\"\");return slug?`/work/${slug}`:\"\";}return\"\";}catch(_error){return\"\";}}function buildPairKey(a,b){const first=a<=b?a:b;const second=a<=b?b:a;return`${first}||${second}`;}function readSessionValue(key){if(typeof window===\"undefined\")return\"\";try{return window.sessionStorage.getItem(key)||\"\";}catch(_error){return\"\";}}function writeSessionValue(key,value){if(typeof window===\"undefined\")return;try{window.sessionStorage.setItem(key,value);}catch(_error){}}const WORK_RECOMMENDATIONS_BAG_KEY=\"work-recommendations:work-bag:v1\";const WORK_RECOMMENDATIONS_LAST_GLOBAL_KEY=\"work-recommendations:last-global\";function uniqueStrings(values){const out=[];const seen=new Set;for(const value of values){if(typeof value!==\"string\"||!value)continue;if(seen.has(value))continue;seen.add(value);out.push(value);}return out;}function randomizeArray(values){return shuffleArray([...values]);}function chooseTwoPaths(paths,blockedKeys){if(paths.length<2)return null;const allPairs=[];for(let i=0;i<paths.length;i++){for(let j=i+1;j<paths.length;j++){allPairs.push([paths[i],paths[j]]);}}const candidates=allPairs.filter(([a,b])=>!blockedKeys.has(buildPairKey(a,b)));const source=candidates.length>0?candidates:allPairs;const randomPair=source[Math.floor(Math.random()*source.length)];if(!randomPair)return null;return randomPair;}function hasKnownQueryShape(payload){return Array.isArray(payload)||Array.isArray(payload?.items)||Array.isArray(payload?.data);}function replaceQueryItemsShape(payload,selectedItems){if(Array.isArray(payload))return selectedItems;if(payload&&Array.isArray(payload.items)){return{...payload,items:selectedItems};}if(payload&&Array.isArray(payload.data)){return{...payload,data:selectedItems};}return null;}function pickRandomPairFromSlugs(available,previousPairKey){if(available.length<2)return null;const allPairs=[];for(let i=0;i<available.length;i++){for(let j=i+1;j<available.length;j++){allPairs.push([available[i],available[j]]);}}if(allPairs.length===0)return null;const nonRepeating=previousPairKey?allPairs.filter(([a,b])=>buildPairKey(a,b)!==previousPairKey):allPairs;const source=nonRepeating.length>0?nonRepeating:allPairs;const picked=source[Math.floor(Math.random()*source.length)];return picked||null;}// User request: add a dedicated override for native Work CMS list navigation to show exactly 2 random cards excluding current slug, vary across reloads/navigation, avoid repeating the same unordered pair when possible, and keep native canvas structure/styling.\nexport function WorkCMSRandomPairList(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(WorkCMSRandomPairListInner,{Component:Component,props:props,forwardedRef:ref});});}function WorkCMSRandomPairListInner({Component,props,forwardedRef}){const localRef=useRef(null);const originalDisplayMapRef=useRef(new Map);const latestSelectionRef=useRef({signature:\"\",paths:[]});const[ready,setReady]=useState(false);const isCanvas=useMemo(()=>RenderTarget.current()===RenderTarget.canvas,[]);const setMergedRef=useCallback(node=>{localRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);return;}if(forwardedRef&&typeof forwardedRef===\"object\"){forwardedRef.current=node;}},[forwardedRef]);useLayoutEffect(()=>{if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;const restoreAll=()=>{originalDisplayMapRef.current.forEach((display,element)=>{if(!element.isConnected)return;if(display){element.style.display=display;}else{element.style.removeProperty(\"display\");}});originalDisplayMapRef.current.clear();};const chooseCardElement=anchor=>{const parent=anchor.parentElement;if(!parent||parent===root)return anchor;if(parent.parentElement!==root)return anchor;const anchoredCards=parent.querySelectorAll('a[href*=\"/work/\"]').length;return anchoredCards<=1?parent:anchor;};const applySelection=()=>{const currentPath=normalizePathname(readCurrentPathname());const anchors=Array.from(root.querySelectorAll(\"a[href]\"));const cardEntries=[];const uniquePathOrder=[];const seenPath=new Set;for(const anchor of anchors){const hrefPath=normalizeWorkPathFromHref(anchor.getAttribute(\"href\")||\"\");if(!hrefPath)continue;cardEntries.push({path:hrefPath,element:chooseCardElement(anchor)});if(!seenPath.has(hrefPath)){seenPath.add(hrefPath);uniquePathOrder.push(hrefPath);}}const eligiblePaths=uniquePathOrder.filter(path=>path!==currentPath);const signature=`${currentPath}|${eligiblePaths.slice().sort().join(\"|\")}`;const latest=latestSelectionRef.current;let chosenPaths=latest.signature===signature?latest.paths:[];if(chosenPaths.length===0||latest.signature!==signature){if(eligiblePaths.length<=2){chosenPaths=eligiblePaths.slice(0,2);}else if(isCanvas){chosenPaths=eligiblePaths.slice(0,2);}else{const globalKey=readSessionValue(\"work-cms-random-pair:last-global\");const pathKey=readSessionValue(`work-cms-random-pair:last-path:${currentPath||\"root\"}`);const blockedKeys=new Set([globalKey,pathKey].filter(Boolean));const pair=chooseTwoPaths(eligiblePaths,blockedKeys);chosenPaths=pair?[pair[0],pair[1]]:eligiblePaths.slice(0,2);if(chosenPaths.length===2){const chosenKey=buildPairKey(chosenPaths[0],chosenPaths[1]);writeSessionValue(\"work-cms-random-pair:last-global\",chosenKey);writeSessionValue(`work-cms-random-pair:last-path:${currentPath||\"root\"}`,chosenKey);}}latestSelectionRef.current={signature,paths:chosenPaths};}const chosenSet=new Set(chosenPaths);const shownForPath=new Set;cardEntries.forEach(({element,path})=>{if(!originalDisplayMapRef.current.has(element)){originalDisplayMapRef.current.set(element,element.style.display||\"\");}const shouldShow=chosenSet.has(path)&&!shownForPath.has(path);if(shouldShow){shownForPath.add(path);const originalDisplay=originalDisplayMapRef.current.get(element)||\"\";if(originalDisplay){element.style.display=originalDisplay;}else{element.style.removeProperty(\"display\");}}else{element.style.display=\"none\";}});startTransition(()=>setReady(true));};applySelection();const observer=new MutationObserver(mutations=>{for(const mutation of mutations){if(mutation.type===\"childList\"){applySelection();return;}if(mutation.type===\"attributes\"&&mutation.attributeName===\"href\"){applySelection();return;}}});observer.observe(root,{childList:true,subtree:true,attributes:true,attributeFilter:[\"href\"]});let lastPath=readCurrentPathname();const intervalId=window.setInterval(()=>{const nextPath=readCurrentPathname();if(nextPath!==lastPath){lastPath=nextPath;applySelection();}},150);return()=>{window.clearInterval(intervalId);observer.disconnect();restoreAll();};},[isCanvas]);const mergedStyle=useMemo(()=>({...props.style||{},visibility:isCanvas||ready?props.style?.visibility:\"hidden\"}),[isCanvas,props.style,ready]);return /*#__PURE__*/_jsx(Component,{...props,ref:setMergedRef,style:mergedStyle});}export function WorkRecommendations(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const query=props?.children?.props?.query;const renderFn=props?.children?.props?.children;const isCanvas=RenderTarget.current()===RenderTarget.canvas;if(isCanvas||!query||typeof renderFn!==\"function\"){return /*#__PURE__*/_jsx(Component,{...props,ref:ref});}return /*#__PURE__*/_jsx(WorkRecommendationsRuntime,{Component:Component,props:props,forwardedRef:ref,query:query,renderFn:renderFn});});}function WorkRecommendationsRuntime({Component,props,forwardedRef,query,renderFn}){const stableQuery=useMemo(()=>({...query,limit:undefined,offset:undefined}),[query]);const allFilteredResult=useQueryData(stableQuery);const[currentPathname,setCurrentPathname]=useState(\"\");const[pathnameReady,setPathnameReady]=useState(false);const[selectedState,setSelectedState]=useState({signature:\"\",slugs:null});const lastComputedSignatureRef=useRef(\"\");useEffect(()=>{if(typeof window===\"undefined\")return;const readPath=()=>window.location.pathname||\"\";let lastPath=readPath();if(lastPath){startTransition(()=>{setCurrentPathname(lastPath);setPathnameReady(true);});}const intervalId=window.setInterval(()=>{const nextPath=readPath();if(nextPath!==lastPath){lastPath=nextPath;startTransition(()=>{setCurrentPathname(nextPath);if(nextPath)setPathnameReady(true);});}},200);return()=>window.clearInterval(intervalId);},[]);const selectionContext=useMemo(()=>{if(!hasKnownQueryShape(allFilteredResult)){return{canRender:false,payloadShape:null,signature:\"\",currentSlug:\"\",eligibleSlugs:[],allPoolSlugs:[],bySlug:new Map};}const allItems=extractQueryItems(allFilteredResult);const currentSlug=normalizeSlugFromPath(currentPathname);const currentPath=normalizePathname(currentPathname);const bySlug=new Map;const allPoolSlugs=[];for(const item of allItems){const slug=readItemSlug(item);if(!slug)continue;if(!allPoolSlugs.includes(slug))allPoolSlugs.push(slug);if(!bySlug.has(slug))bySlug.set(slug,item);}const eligibleSlugs=allPoolSlugs.filter(slug=>{if(currentSlug&&slug===currentSlug)return false;if(currentPath&&normalizeWorkPathFromHref(`/work/${slug}`)===currentPath){return false;}return true;});return{canRender:true,payloadShape:allFilteredResult,signature:`${currentSlug}|${eligibleSlugs.slice().sort().join(\"|\")}`,currentSlug,eligibleSlugs,allPoolSlugs,bySlug};},[allFilteredResult,currentPathname]);useEffect(()=>{if(!pathnameReady)return;if(!selectionContext.canRender){startTransition(()=>setSelectedState({signature:selectionContext.signature,slugs:[]}));return;}if(lastComputedSignatureRef.current===selectionContext.signature)return;lastComputedSignatureRef.current=selectionContext.signature;if(typeof window===\"undefined\")return;const pathKey=`work-recommendations:last-path:${selectionContext.currentSlug||\"root\"}`;const rawBag=readSessionValue(WORK_RECOMMENDATIONS_BAG_KEY);let order=[];let knownSeen=[];let deferredCurrent=[];try{const parsed=rawBag?JSON.parse(rawBag):null;order=uniqueStrings(Array.isArray(parsed?.order)?parsed.order:[]);knownSeen=uniqueStrings(Array.isArray(parsed?.knownSeen)?parsed.knownSeen:[]);deferredCurrent=uniqueStrings(Array.isArray(parsed?.deferredCurrent)?parsed.deferredCurrent:[]);}catch(_error){}const previousKnownSeen=new Set(knownSeen);const poolSet=new Set(selectionContext.allPoolSlugs);const preservedCurrentSlug=selectionContext.currentSlug;knownSeen=uniqueStrings([...knownSeen.filter(slug=>poolSet.has(slug)||preservedCurrentSlug&&slug===preservedCurrentSlug),...selectionContext.allPoolSlugs]);order=uniqueStrings(order.filter(slug=>poolSet.has(slug)||preservedCurrentSlug&&slug===preservedCurrentSlug));deferredCurrent=uniqueStrings(deferredCurrent.filter(slug=>poolSet.has(slug)||preservedCurrentSlug&&slug===preservedCurrentSlug));if(selectionContext.currentSlug&&poolSet.has(selectionContext.currentSlug)&&!deferredCurrent.includes(selectionContext.currentSlug)){deferredCurrent.push(selectionContext.currentSlug);}const eligibleSet=new Set(selectionContext.eligibleSlugs);const restoredDeferred=deferredCurrent.filter(slug=>slug!==selectionContext.currentSlug&&eligibleSet.has(slug)&&!order.includes(slug));if(restoredDeferred.length>0){order=[...order,...restoredDeferred];deferredCurrent=deferredCurrent.filter(slug=>!restoredDeferred.includes(slug));}const newlyEligible=selectionContext.eligibleSlugs.filter(slug=>!previousKnownSeen.has(slug)&&!order.includes(slug));if(newlyEligible.length>0){order=[...order,...randomizeArray(newlyEligible)];}const missingEligible=selectionContext.eligibleSlugs.filter(slug=>!order.includes(slug)&&!deferredCurrent.includes(slug));if(order.filter(slug=>eligibleSet.has(slug)).length===0&&missingEligible.length>0){order=[...order,...randomizeArray(missingEligible)];}const previousGlobalPair=readSessionValue(WORK_RECOMMENDATIONS_LAST_GLOBAL_KEY);const previousPathPair=readSessionValue(pathKey);const blocked=new Set([previousGlobalPair,previousPathPair].filter(Boolean));const chooseFromOrder=source=>{const chosen=[];const remaining=[];let first=\"\";for(const slug of source){if(!eligibleSet.has(slug)){remaining.push(slug);continue;}if(slug===selectionContext.currentSlug){if(!deferredCurrent.includes(slug))deferredCurrent.push(slug);continue;}first=slug;break;}if(!first){return{chosen,remaining:source.slice()};}chosen.push(first);let second=\"\";for(const slug of source){if(slug===first)continue;if(!eligibleSet.has(slug)||slug===selectionContext.currentSlug)continue;const key=buildPairKey(first,slug);if(blocked.has(key))continue;second=slug;break;}if(!second){for(const slug of source){if(slug===first)continue;if(!eligibleSet.has(slug)||slug===selectionContext.currentSlug)continue;second=slug;break;}}if(second&&second!==first)chosen.push(second);const consumed=new Set(chosen);for(const slug of source){if(consumed.has(slug))continue;remaining.push(slug);}return{chosen,remaining:uniqueStrings(remaining)};};let picked=chooseFromOrder(order);if(picked.chosen.length===0&&selectionContext.eligibleSlugs.length>0){order=[...order,...randomizeArray(selectionContext.eligibleSlugs)];picked=chooseFromOrder(order);}else if(picked.chosen.length===1){const first=picked.chosen[0];const refillCandidates=randomizeArray(selectionContext.eligibleSlugs.filter(slug=>slug!==first&&slug!==selectionContext.currentSlug&&!picked.remaining.includes(slug)));if(refillCandidates.length>0){const nonBlocked=refillCandidates.filter(slug=>!blocked.has(buildPairKey(first,slug)));const second=(nonBlocked.length>0?nonBlocked[0]:refillCandidates[0])||\"\";if(second){picked={chosen:[first,second],remaining:uniqueStrings([...picked.remaining,...refillCandidates.filter(slug=>slug!==second),...deferredCurrent])};}}}const chosenKey=picked.chosen.length===2?buildPairKey(picked.chosen[0],picked.chosen[1]):\"\";writeSessionValue(WORK_RECOMMENDATIONS_BAG_KEY,JSON.stringify({order:picked.remaining,knownSeen,deferredCurrent:uniqueStrings(deferredCurrent)}));if(chosenKey){writeSessionValue(WORK_RECOMMENDATIONS_LAST_GLOBAL_KEY,chosenKey);writeSessionValue(pathKey,chosenKey);}startTransition(()=>setSelectedState({signature:selectionContext.signature,slugs:picked.chosen}));},[pathnameReady,selectionContext.canRender,selectionContext.signature]);if(!selectionContext.canRender){return /*#__PURE__*/_jsx(Component,{...props,ref:forwardedRef});}const safeSelectedSlugs=selectedState.signature===selectionContext.signature?selectedState.slugs:null;const selectedItems=safeSelectedSlugs&&selectionContext.bySlug?safeSelectedSlugs.map(slug=>selectionContext.bySlug.get(slug)).filter(item=>Boolean(item)):[];const resultForRender=replaceQueryItemsShape(selectionContext.payloadShape,selectedItems);if(!resultForRender){return /*#__PURE__*/_jsx(Component,{...props,ref:forwardedRef});}if(typeof window===\"undefined\"||!safeSelectedSlugs){const emptyResult=replaceQueryItemsShape(selectionContext.payloadShape,[]);return /*#__PURE__*/_jsx(Component,{...props,ref:forwardedRef,children:emptyResult?renderFn(emptyResult):null});}return /*#__PURE__*/_jsx(Component,{...props,ref:forwardedRef,children:renderFn(resultForRender)});}// Shared work-page dock. Uses home-page CMS thumbnails and never includes this project.\nexport function AdjacentWork(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const findCollection=(node,depth=0)=>{if(!node||depth>8)return null;if(node.props?.query&&typeof node.props.children===\"function\")return node;const children=Array.isArray(node)?node:node.props?.children;if(typeof children===\"function\")return null;for(const child of Children.toArray(children)){const found=findCollection(child,depth+1);if(found)return found;}return null;};const collection=findCollection(props.children);const query=collection?.props?.query;return query?/*#__PURE__*/_jsx(WorkProjectDock,{originalProps:props,forwardedRef:ref,query:query,renderItems:collection.props.children}):/*#__PURE__*/_jsx(Component,{...props,ref:ref});});}function WorkProjectDock({originalProps,forwardedRef,query,renderItems}){const expandedQuery=useMemo(()=>({...query,limit:undefined,offset:undefined,select:[...(query.select||[]).filter(field=>![\"MH7EllWrG\",\"TNKGhpdHo\",\"dH5PZF9U9\",\"f4XMcLDap\"].includes(field.name)),...[\"MH7EllWrG\",\"TNKGhpdHo\",\"dH5PZF9U9\",\"f4XMcLDap\"].map(name=>({collection:query.from.alias,name,type:\"Identifier\"}))]}),[query]);const items=extractQueryItems(useQueryData(expandedQuery));const canvas=RenderTarget.current()===RenderTarget.canvas;const[page,setPage]=useState({slug:\"\",title:\"\",seed:\"\",locked:true});const root=useRef(null);const[active,setActive]=useState(-1);const[footerEngaged,setFooterEngaged]=useState(false);const[projectCount,setProjectCount]=useState(5);useEffect(()=>{// Homepage columns: 6 / 5 / 4 / 3 / 2, plus two footer projects.\nconst resize=()=>{const width=window.innerWidth;setProjectCount(width>=1956?8:width>=1728?7:width>=1200?6:width>=810?5:4);setActive(-1);};resize();window.addEventListener(\"resize\",resize);return()=>window.removeEventListener(\"resize\",resize);},[]);useEffect(()=>{const read=()=>{const slug=normalizeSlugFromPath(window.location.pathname);const title=(document.querySelector(\"h1\")?.textContent||document.title.split(\" — \")[0]).trim();const locked=!!document.querySelector('[data-work-media] [data-framer-name=\"Locked (Content)\"]');setPage(old=>old.slug===slug&&old.title===title&&old.locked===locked?old:{slug,title,locked,seed:Math.random().toString(36).slice(2)});};read();const timer=window.setInterval(read,300);return()=>window.clearInterval(timer);},[]);const eligible=items.filter(item=>isPresentAtHome(item)&&readItemSlug(item)!==page.slug&&(!page.title||readItemTitle(item).trim()!==page.title)).filter((item,index,all)=>all.findIndex(other=>readItemSlug(other)===readItemSlug(item))===index);const eligibleKey=eligible.map(readItemSlug).join(\"|\");const randomOrder=useMemo(()=>{const slugs=eligible.map(readItemSlug);return canvas?slugs:shuffleArray(slugs);},[eligibleKey,page.seed,canvas]);const selected=randomOrder.slice(0,projectCount).map(slug=>eligible.find(item=>readItemSlug(item)===slug)).filter(Boolean);const signature=selected.map(readItemSlug).join(\"|\");useLayoutEffect(()=>{const node=root.current;if(!node)return;const measure=()=>{const nav=node.querySelector(\"nav\");const track=node.querySelector(\".work-dock-track\");if(!nav||!track)return;const gap=parseFloat(getComputedStyle(track).columnGap)||0;const size=(node.clientWidth-(selected.length-1)*gap)/selected.length;node.style.setProperty(\"--dock-recess\",nav.clientHeight-size+\"px\");};measure();const observer=new ResizeObserver(measure);observer.observe(node);return()=>observer.disconnect();},[signature]);useLayoutEffect(()=>{const cards=Array.from(root.current?.querySelectorAll('[data-framer-name=\"Project\"]')||[]);const weights=cards.map((_,index)=>index===active?1.05:active>=0&&Math.abs(index-active)===1?1.015:1);const total=weights.reduce((sum,weight)=>sum+weight,0)||1;cards.forEach((card,index)=>{card.setAttribute(\"aria-label\",readItemTitle(selected[index]));card.setAttribute(\"title\",readItemTitle(selected[index]));// Redistribute actual square widths, preserving both row endpoints.\ncard.style.setProperty(\"--dock-share\",String(weights[index]*cards.length/total));card.style.setProperty(\"--dock-lift\",index===active?\"-12px\":active>=0&&Math.abs(index-active)===1?\"-6px\":\"0px\");card.style.zIndex=index===active?\"3\":\"1\";});},[signature,active]);useLayoutEffect(()=>{const node=root.current;const content=node?.parentElement?.parentElement?.previousElementSibling;if(!node||!content)return;const update=()=>{const nav=node.querySelector(\"nav\");const track=node.querySelector(\".work-dock-track\");if(!nav||!track)return;const n=selected.length;const gap=parseFloat(getComputedStyle(track).columnGap)||0;const size=(node.clientWidth-(n-1)*gap)/n;const navBottom=nav.getBoundingClientRect().bottom;const top=footerEngaged?navBottom-12-size*(1.05*n/(n+.05+(n>2?.015:0))):navBottom-size;const currentY=parseFloat(getComputedStyle(content).translate.split(\" \")[1])||0;const naturalBottom=content.getBoundingClientRect().bottom-currentY;content.style.transition=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches?\"none\":\"translate 260ms cubic-bezier(.2,.75,.2,1)\";content.style.translate=\"0 \"+(top-20-naturalBottom)+\"px\";};const previousTranslate=content.style.translate;const previousTransition=content.style.transition;update();const resizeObserver=new ResizeObserver(update);resizeObserver.observe(node);resizeObserver.observe(content);window.addEventListener(\"resize\",update);return()=>{resizeObserver.disconnect();window.removeEventListener(\"resize\",update);content.style.translate=previousTranslate;content.style.transition=previousTransition;};},[signature,footerEngaged]);const activate=event=>{if(event.pointerType===\"touch\")return;const card=event.target.closest?.('[data-framer-name=\"Project\"]');const cards=Array.from(root.current?.querySelectorAll('[data-framer-name=\"Project\"]')||[]);if(card){setActive(cards.indexOf(card));return;}if(typeof event.clientX===\"number\"){let nearest=-1,distance=Infinity;cards.forEach((node,index)=>{const bounds=node.getBoundingClientRect();const delta=Math.abs(event.clientX-(bounds.left+bounds.width/2));if(delta<distance&&delta<bounds.width*.65){nearest=index;distance=delta;}});setActive(nearest);}};if(!canvas&&!page.seed)return /*#__PURE__*/_jsx(\"div\",{style:{...originalProps.style,width:\"100%\",height:200}});if(!selected.length)return null;return /*#__PURE__*/_jsxs(\"div\",{ref:node=>{root.current=node;if(typeof forwardedRef===\"function\")forwardedRef(node);else if(forwardedRef)forwardedRef.current=node;},\"data-work-project-dock\":\"\",style:{\"--dock-count\":selected.length,...originalProps.style,display:\"block\",width:\"100%\",height:\"auto\",minWidth:0},children:[!canvas&&!page.locked&&/^IN\\s*SUBSTANCE/i.test(page.title)&&/*#__PURE__*/_jsx(InSubstanceProcessOverlay,{},page.title),/*#__PURE__*/_jsx(\"style\",{children:dockStyles+projectLockCursorStyles(items)}),/*#__PURE__*/_jsx(ProjectLockCursor,{}),/*#__PURE__*/_jsx(\"nav\",{className:\"work-dock-window\",\"aria-label\":\"Explore more projects\",onPointerEnter:event=>{if(event.pointerType!==\"touch\")setFooterEngaged(true);},onPointerMove:activate,onPointerLeave:()=>{setActive(-1);setFooterEngaged(false);},onFocusCapture:event=>{setFooterEngaged(true);activate(event);},onBlurCapture:event=>{if(!event.currentTarget.contains(event.relatedTarget)){setActive(-1);setFooterEngaged(false);}},children:/*#__PURE__*/_jsx(\"div\",{className:\"work-dock-track\",children:renderItems(selected)})})]});}const dockStyles=`\n[data-work-project-dock] { container-type:inline-size; --dock-gap:clamp(12px,1cqw,20px); --dock-size:calc((100cqw - (var(--dock-count,8) - 1) * var(--dock-gap)) / var(--dock-count,8)); }\n[data-work-project-dock] { margin-top:calc(20px - var(--dock-recess,0px)); padding-bottom:20px; }\ndiv:has(> div > [data-work-project-dock]) { padding:0!important; }\ndiv:has(> [data-work-project-dock]), div:has(> div > [data-work-project-dock]) { overflow:visible!important; }\n[data-work-project-dock] .work-dock-window { width:100%; height:calc(var(--dock-size) * 1.05 + 12px); overflow:hidden; scrollbar-width:none; overscroll-behavior-x:contain; }\n[data-work-project-dock] .work-dock-window::-webkit-scrollbar { display:none; }\n[data-work-project-dock] .work-dock-track { display:flex; flex-flow:row nowrap; align-items:flex-end; justify-content:flex-start; gap:var(--dock-gap); min-width:100%; width:calc(var(--dock-size) * var(--dock-count,8) + (var(--dock-count,8) - 1) * var(--dock-gap)); height:100%; box-sizing:border-box; padding:0; }\n[data-work-project-dock] [data-framer-name=\"Project\"] { --dock-card-size:calc(var(--dock-size) * var(--dock-share,1)); width:var(--dock-card-size)!important; height:var(--dock-card-size)!important; min-width:0!important; max-width:none!important; flex:0 0 auto!important; padding:0!important; margin:0!important; gap:0!important; display:block!important; position:relative!important; border-radius:16px!important; background:#f7f7f7!important; overflow:hidden!important; cursor:pointer; transform:translateY(var(--dock-lift,0px))!important; transition:width 260ms cubic-bezier(.2,.75,.2,1),height 260ms cubic-bezier(.2,.75,.2,1),transform 260ms cubic-bezier(.2,.75,.2,1)!important; }\n[data-work-project-dock] [data-framer-name=\"Photo\"] { position:absolute!important; inset:0!important; width:100%!important; height:100%!important; border-radius:inherit!important; margin:0!important; }\n[data-work-project-dock] [data-framer-name=\"Photo\"] img { width:100%!important; height:100%!important; object-fit:cover!important; }\n[data-work-project-dock] [data-framer-name=\"Title and Subtext\"] { display:none!important; }\n[data-work-project-dock] [data-framer-name=\"Project\"]:focus-visible { --dock-lift:-12px!important; outline:2px solid #555; outline-offset:-3px; }\n@media(max-width:809px) { [data-work-project-dock] { --dock-gap:8px; margin-top:calc(20px - var(--dock-recess,0px)); } [data-work-project-dock] [data-framer-name=\"Project\"] { border-radius:10px!important; } }\n@media(hover:none) { [data-work-project-dock] [data-framer-name=\"Project\"] { --dock-lift:0px!important; --dock-share:1!important; } }\n@media(prefers-reduced-motion:reduce) { [data-work-project-dock] [data-framer-name=\"Project\"] { transition:none!important; } }\n`;// IN SUBSTANCE experiment: the existing CMS gallery remains the content source.\n// The portal avoids clipping by Framer's animated/translated page frames.\nfunction InSubstanceProcessOverlay(){const[columns,setColumns]=useState([]);const[open,setOpen]=useState(false);const[progress,setProgress]=useState(0);const dialog=useRef(null);const trigger=useRef(null);const wheel=useRef(null);const ring=useRef(null);const sourceRef=useRef(null);const count=columns.reduce((total,col)=>total+col.length,0);useEffect(()=>{let signature=\"\";let frame=0;let hiddenWrapper=null;const read=()=>{const source=document.querySelector('[data-framer-name=\"Process\"]');sourceRef.current=source;const grid=source&&Array.from(source.children).find(el=>el.querySelector(\"img\"));const groups=grid?Array.from(grid.children).map(col=>Array.from(col.querySelectorAll(\"img\")).map(img=>({src:img.getAttribute(\"src\")||\"\",srcSet:img.getAttribute(\"srcset\")||\"\",width:Number(img.getAttribute(\"width\"))||img.naturalWidth||1,height:Number(img.getAttribute(\"height\"))||img.naturalHeight||1,alt:img.alt||\"IN SUBSTANCE — process study\"})).filter(img=>img.src)):[];const nextSignature=JSON.stringify(groups);if(signature!==nextSignature){signature=nextSignature;setColumns(groups);}const wrapper=source?.parentElement;// Hide only the single-purpose process wrapper, never the work content stack.\nconst target=wrapper?.children.length===1?wrapper:source;if(hiddenWrapper!==target){hiddenWrapper?.removeAttribute(\"data-ek-process-source\");hiddenWrapper=target||null;}if(groups.some(col=>col.length))hiddenWrapper?.setAttribute(\"data-ek-process-source\",\"\");else hiddenWrapper?.removeAttribute(\"data-ek-process-source\");};const schedule=()=>{cancelAnimationFrame(frame);frame=requestAnimationFrame(read);};read();const observer=new MutationObserver(schedule);observer.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"src\",\"srcset\"]});window.addEventListener(\"resize\",schedule);return()=>{observer.disconnect();cancelAnimationFrame(frame);window.removeEventListener(\"resize\",schedule);hiddenWrapper?.removeAttribute(\"data-ek-process-source\");};},[]);useEffect(()=>{if(!count)return;let frame=0;const reduced=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const update=()=>{const extent=document.documentElement.scrollHeight-window.innerHeight;const value=Math.max(0,Math.min(1,window.scrollY/Math.max(1,extent)));if(wheel.current)wheel.current.style.transform=reduced.matches?\"none\":`rotate(${value*360}deg)`;if(ring.current)ring.current.style.strokeDashoffset=String(302*(1-value));};const scroll=()=>{cancelAnimationFrame(frame);frame=requestAnimationFrame(update);};update();window.addEventListener(\"scroll\",scroll,{passive:true});window.addEventListener(\"resize\",scroll);reduced.addEventListener(\"change\",scroll);const observer=new ResizeObserver(scroll);observer.observe(document.body);return()=>{cancelAnimationFrame(frame);observer.disconnect();window.removeEventListener(\"scroll\",scroll);window.removeEventListener(\"resize\",scroll);reduced.removeEventListener(\"change\",scroll);};},[count]);useEffect(()=>{const modal=dialog.current;if(!open||!modal||!count)return;const bodyOverflow=document.body.style.overflow;const rootOverflow=document.documentElement.style.overflow;const bodyPadding=document.body.style.paddingRight;const scrollbar=window.innerWidth-document.documentElement.clientWidth;if(scrollbar)document.body.style.paddingRight=`${(parseFloat(getComputedStyle(document.body).paddingRight)||0)+scrollbar}px`;document.body.style.overflow=\"hidden\";document.documentElement.style.overflow=\"hidden\";const escape=event=>{if(event.key!==\"Escape\")return;event.preventDefault();event.stopImmediatePropagation();setOpen(false);};window.addEventListener(\"keydown\",escape,true);modal.showModal();modal.scrollTop=0;setProgress(0);modal.querySelector(\"button\")?.focus();return()=>{window.removeEventListener(\"keydown\",escape,true);modal.close();document.body.style.overflow=bodyOverflow;document.documentElement.style.overflow=rootOverflow;document.body.style.paddingRight=bodyPadding;trigger.current?.focus({preventScroll:true});};},[open,count]);if(!count||typeof document===\"undefined\")return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:processOverlayStyles}),/*#__PURE__*/_jsxs(\"button\",{ref:trigger,className:\"ek-process-trigger\",\"aria-label\":\"Explore IN SUBSTANCE process\",\"aria-haspopup\":\"dialog\",\"aria-expanded\":open,onClick:()=>setOpen(true),children:[/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 112 112\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"linearGradient\",{id:\"ek-metal\",x1:\"0\",y1:\"0\",x2:\".9\",y2:\"1\",children:[/*#__PURE__*/_jsx(\"stop\",{stopColor:\"#fafaf8\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\".35\",stopColor:\"#d8d8d4\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\".7\",stopColor:\"#949691\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"1\",stopColor:\"#ecece8\"})]}),/*#__PURE__*/_jsxs(\"radialGradient\",{id:\"ek-hub\",cx:\".35\",cy:\".25\",r:\".85\",children:[/*#__PURE__*/_jsx(\"stop\",{stopColor:\"#fff\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\".65\",stopColor:\"#d6d7d2\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"1\",stopColor:\"#a7a9a2\"})]})]}),/*#__PURE__*/_jsx(\"circle\",{cx:\"56\",cy:\"56\",r:\"48\",fill:\"#f6f6f3\",stroke:\"#d1d2cd\",strokeWidth:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{ref:ring,cx:\"56\",cy:\"56\",r:\"48\",fill:\"none\",stroke:\"#545951\",strokeWidth:\"2\",strokeDasharray:\"302\",strokeDashoffset:\"302\",transform:\"rotate(-90 56 56)\"}),/*#__PURE__*/_jsxs(\"g\",{ref:wheel,style:{transformOrigin:\"56px 56px\"},children:[Array.from({length:32},(_,i)=>/*#__PURE__*/_jsx(\"rect\",{x:\"52.5\",y:\"11\",width:\"7\",height:\"15\",rx:\"1.6\",fill:\"url(#ek-metal)\",stroke:\"#92968b\",strokeWidth:\".45\",transform:`rotate(${i*11.25} 56 56)`},i)),/*#__PURE__*/_jsx(\"circle\",{cx:\"56\",cy:\"56\",r:\"35\",fill:\"url(#ek-metal)\",stroke:\"#a0a499\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"56\",cy:\"56\",r:\"28\",fill:\"url(#ek-hub)\",stroke:\"#f5f5f1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"56\",cy:\"29\",r:\"1.7\",fill:\"#656d5d\"})]}),/*#__PURE__*/_jsx(\"path\",{d:\"M48 56h16m-8-8v16\",stroke:\"#42493c\",strokeWidth:\"2\",strokeLinecap:\"round\"})]}),/*#__PURE__*/_jsx(\"span\",{children:\"PROCESS\"})]}),/*#__PURE__*/_jsxs(\"dialog\",{ref:dialog,className:\"ek-process-dialog\",\"aria-labelledby\":\"ek-process-title\",onCancel:event=>{event.preventDefault();setOpen(false);},onClick:event=>{if(event.target!==event.currentTarget)return;const rect=event.currentTarget.getBoundingClientRect();if(event.clientX<rect.left||event.clientX>rect.right||event.clientY<rect.top||event.clientY>rect.bottom)setOpen(false);},onScroll:event=>{const el=event.currentTarget;setProgress(Math.min(1,el.scrollTop/Math.max(1,el.scrollHeight-el.clientHeight)));},children:[/*#__PURE__*/_jsxs(\"header\",{className:\"ek-process-header\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{children:\"IN SUBSTANCE\"}),/*#__PURE__*/_jsx(\"h2\",{id:\"ek-process-title\",children:\"Behind the process\"})]}),/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Close process\",onClick:()=>setOpen(false),children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"m6 6 12 12M18 6 6 18\"})})}),/*#__PURE__*/_jsx(\"div\",{className:\"ek-process-reading\",style:{transform:`scaleX(${progress})`}})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"ek-process-intro\",children:[/*#__PURE__*/_jsx(\"p\",{children:\"From first thoughts to the daily ritual.\"}),/*#__PURE__*/_jsxs(\"span\",{children:[String(count).padStart(2,\"0\"),\" process images\"]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"ek-process-grid\",children:columns.map((col,index)=>/*#__PURE__*/_jsx(\"div\",{className:\"ek-process-column\",children:col.map((image,i)=>/*#__PURE__*/_jsx(\"figure\",{children:/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet||undefined,sizes:\"(max-width: 600px) 45vw, 400px\",width:image.width,height:image.height,alt:image.alt,loading:i<2?\"eager\":\"lazy\",decoding:\"async\"})},image.src+i))},index))}),/*#__PURE__*/_jsx(\"footer\",{className:\"ek-process-end\",children:\"An exploration of material, proportion and ritual.\"})]})]}),document.body);}const processOverlayStyles=`\n[data-ek-process-source] { display:none!important; }\n.ek-process-trigger { position:fixed; right:28px; bottom:28px; z-index:99990; display:flex; flex-direction:column; align-items:center; gap:3px; width:94px; padding:0; background:none; border:0; color:#454940; cursor:pointer; -webkit-tap-highlight-color:transparent; }\n.ek-process-trigger svg { width:94px; height:94px; overflow:visible; filter:drop-shadow(0 3px 3px #0002); transition:filter .2s; }\n.ek-process-trigger:hover svg { filter:drop-shadow(0 5px 5px #0003); }\n.ek-process-trigger span { background:#f5f5f0ed; border:1px solid #dedfd9; padding:5px 9px; border-radius:20px; font:10px/1.2 'APK Protocol Regular',Arial,sans-serif; letter-spacing:1.1px; }\n.ek-process-trigger:focus-visible { outline:2px solid #646b59; outline-offset:5px; border-radius:48px; }\n.ek-process-dialog { box-sizing:border-box; position:fixed; inset:0; width:min(880px,calc(100vw - 64px)); max-width:none; height:calc(100dvh - 64px); max-height:none; margin:auto; padding:0; border:1px solid #ffffff70; border-radius:22px; background:#fafaf8; color:#393d35; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; box-shadow:0 32px 100px #0003; font-family:'APK Protocol Regular',Arial,sans-serif; }\n.ek-process-dialog[open] { animation:ek-process-enter .24s ease-out; }\n.ek-process-dialog::backdrop { background:#20251fcc; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }\n.ek-process-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; padding:26px 30px 23px; background:#fafaf8f5; backdrop-filter:blur(12px); border-bottom:1px solid #e1e3dc; }\n.ek-process-header p { margin:0 0 8px; font-size:10px; letter-spacing:1.3px; }\n.ek-process-header h2 { margin:0; font:500 24px/1.15 'APK Protocol Medium Trial','APK Protocol Regular',Arial,sans-serif; letter-spacing:-.5px; }\n.ek-process-header button { display:grid; place-items:center; width:42px; height:42px; padding:11px; border:1px solid #daddd4; border-radius:50%; background:#f0f1eb; cursor:pointer; }\n.ek-process-header button svg { width:20px; height:20px; fill:none; stroke:#394033; stroke-width:1.6; }\n.ek-process-header button:focus-visible { outline:2px solid #646b59; outline-offset:3px; }\n.ek-process-reading { position:absolute; bottom:-1px; left:0; width:100%; height:2px; background:#757e63; transform-origin:left; }\n.ek-process-intro { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:24px 30px; font-size:13px; line-height:1.5; }\n.ek-process-intro p { margin:0; }.ek-process-intro span { color:#757c6b; font-size:11px; flex-shrink:0; }\n.ek-process-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:0 30px 30px; }\n.ek-process-column { display:flex; flex-direction:column; gap:12px; min-width:0; }\n.ek-process-dialog figure { margin:0; min-width:0; }\n.ek-process-dialog figure img { display:block; width:100%; height:auto; max-width:100%; object-fit:contain; border-radius:8px; background:#efefea; }\n.ek-process-end { padding:0 30px 30px; text-align:center; font-size:11px; color:#777e6e; }\n@keyframes ek-process-enter { from { opacity:0; transform:translateY(12px) scale(.99); } to { opacity:1; transform:none; } }\n@media(max-width:809px) { .ek-process-trigger { right:18px; bottom:max(18px,env(safe-area-inset-bottom)); width:76px; }.ek-process-trigger svg { width:76px; height:76px; }.ek-process-dialog { width:calc(100vw - 24px); height:calc(100dvh - 32px); border-radius:16px; }.ek-process-header { padding:20px 18px; }.ek-process-header h2 { font-size:21px; }.ek-process-intro { padding:18px; flex-wrap:wrap; gap:5px; }.ek-process-grid { padding:0 18px 24px; gap:8px; }.ek-process-column { gap:8px; }.ek-process-dialog figure img { border-radius:6px; } }\n@media(prefers-reduced-motion:reduce) { .ek-process-dialog[open] { animation:none; }.ek-process-trigger svg { transition:none; } }\n`;// CMS Status: Locked = KsoUCkOy8, Finished = Kh_dUfz2W.\nfunction projectLockCursorStyles(items){return items.filter(item=>String(item.f4XMcLDap??item.fields?.f4XMcLDap??\"\")===\"KsoUCkOy8\").map(item=>{const slug=item.TNKGhpdHo??item.fields?.TNKGhpdHo;if(!slug)return\"\";const card=`a:is([data-framer-name=\"Project Cards\"],[data-framer-name=\"Project\"]):is([href$=${JSON.stringify(\"/\"+slug)}],[href*=${JSON.stringify(\"/\"+slug+\"?\")}],[href*=${JSON.stringify(\"/\"+slug+\"#\")}])`;return`${card} { --ek-project-locked:1; } @media (any-hover:hover) { ${card}, ${card} * { cursor:none!important; } }`;}).join(\"\\n\");}// One visible cursor: replace Framer's eyes while over CMS-locked work.\nexport function ProjectLockCursor(){const[pointer,setPointer]=useState(null);const last=useRef(null);useEffect(()=>{if(RenderTarget.current()===RenderTarget.canvas)return;const update=(target,x,y)=>{const card=target instanceof Element?target.closest('a[data-framer-name=\"Project Cards\"],a[data-framer-name=\"Project\"]'):null;const locked=card&&getComputedStyle(card).getPropertyValue(\"--ek-project-locked\").trim()===\"1\";setPointer(locked?{x,y}:null);};const move=event=>{if(event.pointerType===\"touch\"){setPointer(null);return;}last.current={x:event.clientX,y:event.clientY};update(event.target,event.clientX,event.clientY);};const out=event=>update(event.relatedTarget,event.clientX,event.clientY);const clear=()=>{last.current=null;setPointer(null);};const scroll=()=>{const point=last.current;if(point)update(document.elementFromPoint(point.x,point.y),point.x,point.y);};document.addEventListener(\"pointermove\",move,{passive:true});document.addEventListener(\"pointerover\",move,{passive:true});document.addEventListener(\"pointerout\",out,{passive:true});document.addEventListener(\"scroll\",scroll,{passive:true,capture:true});window.addEventListener(\"blur\",clear);return()=>{document.removeEventListener(\"pointermove\",move);document.removeEventListener(\"pointerover\",move);document.removeEventListener(\"pointerout\",out);document.removeEventListener(\"scroll\",scroll,true);window.removeEventListener(\"blur\",clear);};},[]);if(!pointer||typeof document===\"undefined\")return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`.framer-TiOOt { visibility:hidden!important; }`}),/*#__PURE__*/_jsx(\"div\",{\"data-ek-lock-cursor\":\"\",\"aria-hidden\":\"true\",style:{position:\"fixed\",left:pointer.x,top:pointer.y,transform:\"translate(-50%,-50%)\",width:30,height:30,display:\"grid\",placeItems:\"center\",fontFamily:'\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Noto Color Emoji\", sans-serif',fontSize:26,lineHeight:1,pointerEvents:\"none\",userSelect:\"none\",zIndex:2147483647},children:\"🔒\"})]}),document.body);}\nexport const __FramerMetadata__ = {\"exports\":{\"WorkCMSRandomPairList\":{\"type\":\"reactHoc\",\"name\":\"WorkCMSRandomPairList\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AdjacentWork\":{\"type\":\"reactHoc\",\"name\":\"AdjacentWork\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShuffleCMSCollectionList\":{\"type\":\"reactHoc\",\"name\":\"ShuffleCMSCollectionList\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ProjectLockCursor\":{\"type\":\"reactComponent\",\"name\":\"ProjectLockCursor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"WorkRecommendations\":{\"type\":\"reactHoc\",\"name\":\"WorkRecommendations\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Shuffle\":{\"type\":\"reactHoc\",\"name\":\"Shuffle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shuffle.map"],"mappings":"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"}