{"version":3,"file":"ActiveNav.Din-E7sN.mjs","names":["useState","useRef","_Fragment","useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/xqWDVu6ck4fIcadSmcZQ/H3Wj8nxaeGsYVlojE7l3/ActiveNav.js"],"sourcesContent":["import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{createElement as _createElement}from\"react\";import{forwardRef,useEffect,useLayoutEffect,useRef,useState}from\"react\";import{motion}from\"framer-motion\";import{useCurrentRouteId,useRouter}from\"framer\";// Persistent current-page state for navigation buttons.\n//\n// Apply \"withCurrentPage\" to a nav component instance that has an\n// \"Active\" variant. The instance stays on that variant for as long as the\n// page it links to is the page being viewed: after a click, after the page\n// transition finishes, after a refresh, on a direct URL visit, and on\n// browser back / forward.\n//\n// Framer's own Hover and Pressed states are left untouched, so hover keeps\n// working normally on every button that is not the current page.\nconst ACTIVE_VARIANT=\"Active\";const FOOTER_ACTIVE_VARIANT=\"Footer active pressed\";// --- mobile menu -----------------------------------------------------------\n//\n// The mobile menu is a panel that is always on the page (no overlay), so it\n// answers a tap at once and is never affected by the header blend mode.\n//\n// \"withMenuButton\" goes on the phone header. Tapping the word Menu opens it.\n// \"withMobileMenuPanel\" goes on the menu itself. It slides down from the top,\n// and closes on any tap inside it (links, Close) and whenever the page changes.\nlet menuOpen=false,menuEverOpened=false;const menuListeners=new Set;function setMenuOpen(next){if(next===menuOpen)return;menuOpen=next;if(next)menuEverOpened=true;menuListeners.forEach(listener=>listener());}function useMenuOpen(){const[value,setValue]=useState(menuOpen);useEffect(()=>{const update=()=>setValue(menuOpen);menuListeners.add(update);update();return()=>{menuListeners.delete(update);};},[]);return value;}export function withMenuButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const open=event=>{const hit=event.target;const group=hit?.closest?.('[data-framer-name=\"Container\"]>[data-framer-name=\"Logo\"]')?.lastElementChild;if(hit?.closest?.('[data-framer-name=\"Menu open/close\"]')||group&&group.contains(hit)&&group.firstElementChild!==group.lastElementChild&&!group.firstElementChild?.contains(hit)){setMenuOpen(!menuOpen);return;}if(menuOpen&&hit?.closest?.(\"a\"))setMenuOpen(false);let element=event.target;for(let depth=0;element&&depth<5;depth++){const word=element.textContent?.trim().toLowerCase();if(word===\"close\"){setMenuOpen(false);return;}if(word===\"menu\"){setMenuOpen(true);return;}element=element.parentElement;}};return /*#__PURE__*/_jsx(\"span\",{onClickCapture:open,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props,ref:ref})});});}function staggerItems(root,open){if(!root||typeof root.animate!==\"function\")return;if(open){const fill=Array.from(root.querySelectorAll(\"*\")).find(el=>{const c=getComputedStyle(el).backgroundColor;return c!==\"rgba(0, 0, 0, 0)\"&&c!==\"transparent\";});if(fill)root.style.backgroundColor=getComputedStyle(fill).backgroundColor;}const items=[]// text motion is handled in Framer, not here\n;items.forEach((item,index)=>{if(item.__menuAnim)item.__menuAnim.cancel();item.__menuAnim=item.animate(open?[{opacity:0,transform:\"translateY(28px)\"},{opacity:1,transform:\"translateY(0px)\"}]:[{opacity:1,transform:\"translateY(0px)\"},{opacity:1,transform:\"translateY(0px)\"}],{duration:open?800:650,delay:open?260+index*55:index*40,easing:open?\"cubic-bezier(0.22, 1, 0.36, 1)\":\"cubic-bezier(0.45, 0, 0.55, 1)\",fill:\"both\"});});}const KO_MENU_CSS=`[data-framer-name=\"Mobile Nav\"]{transition:translate .6s cubic-bezier(.65,0,.35,1),z-index 0s .6s}[data-framer-name=\"Mobile Nav\"] [data-framer-name=\"Container\"]>[data-framer-name=\"Logo\"]>*{transition:translate .6s cubic-bezier(.65,0,.35,1)}[data-framer-name=\"Mobile Nav\"] [data-framer-name=\"Container\"]>[data-framer-name=\"Logo\"]>:last-child>:first-child{transition:opacity .3s ease}.ko-menu-open [data-framer-name=\"Mobile Nav\"]{z-index:100000!important;transition:translate .8s cubic-bezier(.22,1,.36,1),z-index 0s}.ko-menu-open [data-framer-name=\"Mobile Nav\"] [data-framer-name=\"Container\"]>[data-framer-name=\"Logo\"]>*{transition:translate .8s cubic-bezier(.22,1,.36,1)}.ko-menu-open [data-framer-name=\"Mobile Nav\"] [data-framer-name=\"Container\"]>[data-framer-name=\"Logo\"]>:last-child>:first-child{opacity:0!important;pointer-events:none}[data-ko-menu]{background-color:transparent!important}[data-ko-menu] [data-framer-name=\"Logo\"]{opacity:0!important;pointer-events:none!important}[data-ko-menu] [data-framer-name=\"Background Fill\"]::after{content:\"\";position:absolute;left:0;right:0;top:100%;height:200px;background:inherit}`;function menuStyles(){if(typeof document===\"undefined\"||document.getElementById(\"ko-menu-css\"))return;const s=document.createElement(\"style\");s.id=\"ko-menu-css\";s.textContent=KO_MENU_CSS;document.head.appendChild(s);}function menuClip(open){if(open||typeof window===\"undefined\")return\"inset(48px 20px 20px 20px round 24px)\";const w=window.innerWidth,h=window.innerHeight;return\"inset(48px 20px \"+(h-92)+\"px \"+(w-120)+\"px round 24px)\";}export function withMobileMenuPanel(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const open=useMenuOpen();const path=useCurrentPath();const holder=useRef(null);const cycle=useRef(0);const wasOpen=useRef(false);if(open&&!wasOpen.current)cycle.current+=1;wasOpen.current=open;// The layer is kept invisible and click-through in the editor, the\n// panel takes over from here.\nuseIsomorphicLayoutEffect(()=>{const box=holder.current?.parentElement;if(!box)return;box.style.opacity=\"1\";box.style.overflow=\"visible\";box.style.pointerEvents=\"none\";box.style.zIndex=\"99999\";},[]);useEffect(()=>{if(typeof document===\"undefined\")return;menuStyles();document.documentElement.classList.toggle(\"ko-menu-open\",open);const label=document.querySelector('[data-framer-name=\"Mobile Nav\"] [data-framer-name=\"Menu open/close\"] p');if(!label)return;const next=open?\"Close\":\"Menu\";if(label.textContent?.trim()===next){label.style.opacity=\"1\";return;}label.style.transition=\"opacity 0.15s\";label.style.opacity=\"0\";const timer=window.setTimeout(()=>{label.textContent=next;label.style.opacity=\"1\";},150);return()=>window.clearTimeout(timer);},[open]);// Close when the page changes.\nuseEffect(()=>{setMenuOpen(false);},[path]);// No page scroll behind the open menu, and Escape closes it.\nuseEffect(()=>{staggerItems(holder.current,open);if(!open||typeof document===\"undefined\")return;const root=document.documentElement;const previous=root.style.overflow;holder.current?.style.setProperty(\"touch-action\",\"none\");const onKey=event=>{if(event.key===\"Escape\")setMenuOpen(false);};const block=event=>event.preventDefault();window.addEventListener(\"touchmove\",block,{passive:false});window.addEventListener(\"wheel\",block,{passive:false});window.addEventListener(\"keydown\",onKey);return()=>{window.removeEventListener(\"touchmove\",block);window.removeEventListener(\"wheel\",block);document.documentElement.classList.remove(\"ko-menu-open\");window.removeEventListener(\"keydown\",onKey);};},[open]);return /*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(motion.div,{ref:holder,onClick:()=>setMenuOpen(false),initial:{y:\"-100%\",opacity:0,visibility:\"hidden\"},animate:open?{y:\"0%\",opacity:1,visibility:\"visible\"}:{opacity:0,transitionEnd:{visibility:\"hidden\",y:\"-100%\"}},transition:{...open?{duration:.9,opacity:{duration:.6,ease:\"easeOut\"},ease:[.22,1,.36,1]}:{duration:.6,ease:[.4,0,.2,1]}},\"data-ko-menu\":\"\",\"aria-hidden\":!open,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"calc(100dvh + 240px)\",pointerEvents:open?\"auto\":\"none\",willChange:\"transform\"},children:/*#__PURE__*/_createElement(Component,{...props,ref:ref,key:cycle.current,style:{...props.style,width:\"100%\",height:\"100dvh\",opacity:1}})})});});}// --- work categories -----------------------------------------------------\n//\n// \"withWorkCategoryLink\" goes on each footer category link (linked to /work-3).\n// It remembers which category was clicked, and while /work-3 is open it shows\n// the link of the selected category in the footer active variant (dark in\n// light mode, light in dark mode).\n//\n// \"withCategoryFromURL\" goes on the work grid on /work-3. When the grid shows\n// up it selects the remembered category (or ?category= from the address),\n// exactly as if the visitor had clicked that filter. If the visitor is already\n// on /work-3, the filter switches straight away.\nconst CATEGORY_KEY=\"work-category\";const WORK_PATH=\"/work-3\";const tapState={x:0,y:0,clicked:false};const CATEGORY_LABELS={all:\"All\",branding:\"Branding\",photography:\"Photography\",ai:\"Ai Visual\",\"ai-visual\":\"Ai Visual\",\"ai-visuals\":\"Ai Visual\",strategy:\"Strategy\",motion:\"Motion\"};function toLabel(value){if(!value)return undefined;const key=value.trim().toLowerCase().split(\" \").join(\"-\");return CATEGORY_LABELS[key];}// The category shown on /work-3 right now, shared with the footer links.\nlet currentCategory=null;const categoryListeners=new Set;function setCurrentCategory(label){if(label===currentCategory)return;currentCategory=label;categoryListeners.forEach(listener=>listener());}function useCurrentCategory(){const[value,setValue]=useState(currentCategory);useEffect(()=>{const update=()=>setValue(currentCategory);categoryListeners.add(update);update();return()=>{categoryListeners.delete(update);};},[]);return value;}function pressElement(element){const rect=element.getBoundingClientRect();const pointer={bubbles:true,cancelable:true,isPrimary:true,pointerId:1,pointerType:\"mouse\",button:0,clientX:rect.left+rect.width/2,clientY:rect.top+rect.height/2};element.dispatchEvent(new PointerEvent(\"pointerdown\",{...pointer,buttons:1}));window.requestAnimationFrame(()=>{element.dispatchEvent(new PointerEvent(\"pointerup\",{...pointer,buttons:0}));element.dispatchEvent(new MouseEvent(\"click\",{...pointer,buttons:0}));});}function selectCategory(root,label){if(!root)return false;const wanted=label.toLowerCase();const button=Array.from(root.querySelectorAll(\"[data-highlight]\")).find(b=>b.textContent?.trim().toLowerCase()===wanted&&/^(default|active)$/i.test(b.getAttribute(\"data-framer-name\")||\"\"));if(button){if(/^active$/i.test(button.getAttribute(\"data-framer-name\")||\"\"))return true;pressElement(button);return false;}const target=Array.from(root.querySelectorAll(\"p, span, h1, h2, h3, a, div\")).find(element=>element.childElementCount===0&&element.textContent?.trim().toLowerCase()===wanted);if(!target)return false;pressElement(target);return true;}export function withWorkCategoryLink(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const path=useCurrentPath();const current=useCurrentCategory();const holder=useRef(null);const[label,setLabel]=useState(undefined);useIsomorphicLayoutEffect(()=>{const next=toLabel(holder.current?.textContent);if(next!==label)setLabel(next);});const remember=()=>{if(!label||typeof window===\"undefined\")return;try{window.sessionStorage.setItem(CATEGORY_KEY,label);}catch(error){}setCurrentCategory(label);window.dispatchEvent(new CustomEvent(CATEGORY_KEY,{detail:label}));};const isActive=!!label&&label===current;return /*#__PURE__*/_jsx(\"span\",{ref:holder,onClickCapture:()=>{tapState.clicked=true;remember();},onPointerDownCapture:e=>{tapState.x=e.clientX;tapState.y=e.clientY;tapState.clicked=false;},onPointerUpCapture:e=>{if(e.pointerType===\"mouse\"||Math.abs(e.clientX-tapState.x)>10||Math.abs(e.clientY-tapState.y)>10)return;window.setTimeout(()=>{if(!tapState.clicked)holder.current?.querySelector(\"a\")?.click();},120);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props,ref:ref,variant:isActive?FOOTER_ACTIVE_VARIANT:props.variant})});});}const WORK_LIST_KEY=\"ko-work-view\";const WORK_LIST_CSS='[data-ko-view=\"list\"]>:not(:first-child):not([data-ko-list]){display:none!important}[data-ko-list]{grid-column:1/-1;display:none;flex-direction:column;gap:70px;padding-top:10px}[data-ko-view=\"list\"]>[data-ko-list]{display:flex}.ko-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,10fr);gap:10px;cursor:pointer}.ko-row-text{display:flex;flex-direction:column;gap:6px;padding-right:20px}.ko-row-text>*{position:relative!important;transform:none!important;width:auto!important;height:auto!important;inset:auto!important;opacity:1!important}.ko-row-media{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:10px;align-items:start}.ko-row-media>*{width:100%;height:auto;display:block;background:rgba(128,128,128,.12);object-fit:cover}.ko-row-media>:nth-child(n+11){display:none}.ko-list-toggle{cursor:pointer;margin-right:14px;opacity:.4;transition:opacity .2s;user-select:none;white-space:nowrap;align-self:center;font-size:14px;line-height:25px;color:#fff;mix-blend-mode:difference}.ko-list-toggle[data-on=\"true\"]{opacity:1}@media(max-width:1199px){.ko-row-media{grid-template-columns:repeat(6,minmax(0,1fr))}.ko-row-media>:nth-child(n+7){display:none}}@media(max-width:809px){.ko-row{grid-template-columns:minmax(0,1fr);gap:14px}.ko-row-media{display:flex;overflow-x:auto;scrollbar-width:none}.ko-row-media>*{flex:0 0 38%;width:38%}.ko-row-media>:nth-child(n+7){display:block}}';const workMedia={};let workListOn=false;const workListeners=new Set;function setWorkList(next){workListOn=next;try{window.sessionStorage.setItem(WORK_LIST_KEY,next?\"list\":\"grid\");}catch(error){}workListeners.forEach(listener=>listener());}function workThumb(src){if(src.indexOf(\"framerusercontent.com/images\")===-1)return src;return src.split(\"?\")[0]+\"?scale-down-to=512\";}function loadWorkMedia(href){if(!workMedia[href])workMedia[href]=fetch(href).then(response=>response.text()).then(html=>{const doc=new DOMParser().parseFromString(html,\"text/html\");const seen={};const out=[];doc.querySelectorAll(\"img, video\").forEach(el=>{if(el.closest('nav, footer, [data-framer-name=\"Footer\"]'))return;const source=el.querySelector(\"source\");const raw=el.getAttribute(\"src\")||(source?source.getAttribute(\"src\"):\"\");if(!raw||raw.indexOf(\"data:\")===0||raw.indexOf(\".svg\")>-1)return;const key=raw.split(\"?\")[0];if(seen[key])return;const w=parseInt(el.getAttribute(\"width\")||\"0\",10);const h=parseInt(el.getAttribute(\"height\")||\"0\",10);if(el.tagName===\"IMG\"&&w&&w<200)return;seen[key]=true;out.push({video:el.tagName===\"VIDEO\",src:raw,poster:el.getAttribute(\"poster\")||\"\",ratio:w&&h?w/h:0});});return out;}).catch(()=>[]);return workMedia[href];}function buildWorkList(root){let list=null;Array.from(root.children).forEach(child=>{if(child.hasAttribute(\"data-ko-list\"))list=child;});if(!list){list=document.createElement(\"div\");list.setAttribute(\"data-ko-list\",\"\");root.appendChild(list);}const cards=Array.from(root.children).slice(1).filter(child=>child!==list);const sig=cards.map(card=>(card.textContent||\"\").slice(0,40)).join(\"|\");if(list.getAttribute(\"data-sig\")===sig)return;list.setAttribute(\"data-sig\",sig);list.textContent=\"\";cards.forEach(card=>{const anchor=card.querySelector(\"a\");const texts=Array.from(card.querySelectorAll('[data-framer-component-type=\"RichTextContainer\"]'));const row=document.createElement(\"div\");row.className=\"ko-row\";const text=document.createElement(\"div\");text.className=\"ko-row-text\";texts.slice(0,2).forEach(item=>{const copy=item.cloneNode(true);const from=[item].concat(Array.from(item.querySelectorAll(\"*\")));const to=[copy].concat(Array.from(copy.querySelectorAll(\"*\")));from.forEach((node,index)=>{const target=to[index];if(!target||node.children.length)return;const keep=(target.getAttribute(\"style\")||\"\").indexOf(\"--framer-text-color\")>-1;const cs=getComputedStyle(node);target.style.fontFamily=cs.fontFamily;target.style.fontSize=cs.fontSize;target.style.lineHeight=cs.lineHeight;target.style.letterSpacing=cs.letterSpacing;target.style.fontWeight=cs.fontWeight;if(!keep)target.style.color=cs.color;});text.appendChild(copy);});const media=document.createElement(\"div\");media.className=\"ko-row-media\";row.appendChild(text);row.appendChild(media);row.addEventListener(\"click\",()=>{if(anchor)anchor.click();});list.appendChild(row);const fill=items=>{items.slice(0,10).forEach(item=>{let el;if(item.video){el=document.createElement(\"video\");el.muted=true;el.loop=true;el.playsInline=true;el.autoplay=true;el.preload=\"metadata\";if(item.poster)el.poster=item.poster;el.src=item.src;}else{el=document.createElement(\"img\");el.loading=\"lazy\";el.decoding=\"async\";el.alt=\"\";el.src=workThumb(item.src);}if(item.ratio)el.style.aspectRatio=String(item.ratio);media.appendChild(el);});};const href=anchor?anchor.getAttribute(\"href\"):\"\";if(href)loadWorkMedia(new URL(href,window.location.href).href).then(fill);else fill(Array.from(card.querySelectorAll(\"img\")).map(img=>({video:false,src:img.getAttribute(\"src\")||\"\",poster:\"\",ratio:0})).filter(item=>item.src));});}function syncWorkList(wrapper,on){if(!document.getElementById(\"ko-work-css\")){const style=document.createElement(\"style\");style.id=\"ko-work-css\";style.textContent=WORK_LIST_CSS;document.head.appendChild(style);}const root=wrapper?wrapper.firstElementChild:null;if(!root)return;const header=root.firstElementChild;const slot=header?header.lastElementChild:null;if(slot){let toggle=slot.querySelector(\".ko-list-toggle\");if(!toggle){toggle=document.createElement(\"span\");toggle.className=\"ko-list-toggle\";toggle.textContent=\"List\";const sample=root.querySelector(\"p\");if(sample)toggle.style.fontFamily=getComputedStyle(sample).fontFamily;toggle.addEventListener(\"click\",event=>{event.stopPropagation();setWorkList(!workListOn);});slot.insertBefore(toggle,slot.firstChild);slot.addEventListener(\"click\",event=>{if(workListOn&&!event.target.closest(\".ko-list-toggle\"))setWorkList(false);});}toggle.setAttribute(\"data-on\",on?\"true\":\"false\");}if(on){root.setAttribute(\"data-ko-view\",\"list\");buildWorkList(root);}else root.removeAttribute(\"data-ko-view\");}function useWorkList(holder){const[on,setOn]=useState(false);useEffect(()=>{const update=()=>setOn(workListOn);workListeners.add(update);let saved=null;try{saved=window.sessionStorage.getItem(WORK_LIST_KEY);}catch(error){}if(saved===\"list\"&&!workListOn)setWorkList(true);else update();return()=>{workListeners.delete(update);};},[]);useEffect(()=>{if(typeof document===\"undefined\")return;const run=()=>syncWorkList(holder.current,on);run();const target=holder.current;if(!target)return;const observer=new MutationObserver(run);observer.observe(target,{childList:true,subtree:true});return()=>observer.disconnect();},[on]);}export function withCategoryFromURL(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const holder=useRef(null);useEffect(()=>{if(typeof window===\"undefined\")return;let timer=0;const apply=label=>{window.clearInterval(timer);if(!label)return;setCurrentCategory(label);let tries=0;timer=window.setInterval(()=>{tries++;const selected=selectCategory(holder.current,label);if(selected||tries>80){window.clearInterval(timer);}},100);};let stored=null;try{stored=window.sessionStorage.getItem(CATEGORY_KEY);}catch(error){}const fromAddress=new URLSearchParams(window.location.search).get(\"category\");const first=toLabel(fromAddress)??toLabel(stored);if(first)apply(first);else setCurrentCategory(\"All\");// Forget the choice once it has been used, so a later plain visit\n// to /work-3 opens on All again.\nconst forget=window.setTimeout(()=>{try{window.sessionStorage.removeItem(CATEGORY_KEY);}catch(error){}},2e3);const onPick=event=>{apply(toLabel(event.detail));window.scrollTo(0,0);// Already applied here, so clear the saved choice too.\nwindow.setTimeout(()=>{try{window.sessionStorage.removeItem(CATEGORY_KEY);}catch(error){}},2e3);};window.addEventListener(CATEGORY_KEY,onPick);// Keep the footer in step when a filter is clicked on the page itself.\nconst onFilterClick=event=>{if(!event.isTrusted)return;window.clearInterval(timer);const label=toLabel(event.target?.textContent);if(label)setCurrentCategory(label);};const root=holder.current;root?.addEventListener(\"click\",onFilterClick,true);return()=>{window.clearInterval(timer);window.clearTimeout(forget);window.removeEventListener(CATEGORY_KEY,onPick);root?.removeEventListener(\"click\",onFilterClick,true);// Leaving /work-3: no footer category is highlighted any more.\nsetCurrentCategory(null);};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:holder,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props,ref:ref})});});}const listeners=new Set;let historyPatched=false;function readPath(){if(typeof window===\"undefined\")return\"/\";return window.location.pathname;}function emit(){listeners.forEach(listener=>listener());}// Framer navigates client side, which fires no event of its own, so the\n// two history methods it uses are wrapped once per page load.\nfunction patchHistory(){if(historyPatched||typeof window===\"undefined\")return;historyPatched=true;const history=window.history;for(const method of[\"pushState\",\"replaceState\"]){const original=history[method];if(typeof original!==\"function\"||original.__currentPagePatched)continue;const wrapped=function(...args){const result=original.apply(this,args);emit();return result;};wrapped.__currentPagePatched=true;history[method]=wrapped;}window.addEventListener(\"popstate\",emit);window.addEventListener(\"hashchange\",emit);}function useCurrentPath(){const[path,setPath]=useState(readPath);useEffect(()=>{patchHistory();const update=()=>setPath(readPath());listeners.add(update);update();// Framer swaps the page a tick after pushState, so look again.\nconst frame=requestAnimationFrame(update);const timer=setTimeout(update,150);return()=>{listeners.delete(update);cancelAnimationFrame(frame);clearTimeout(timer);};},[]);return path;}// --- path handling ------------------------------------------------------\nfunction normalize(value){if(typeof value!==\"string\")return null;let path=value.trim();if(!path)return null;if(/^https?:\\/\\//i.test(path)){try{const url=new URL(path);if(typeof window!==\"undefined\"&&url.origin!==window.location.origin)return null;path=url.pathname;}catch{return null;}}path=path.split(\"#\")[0].split(\"?\")[0];if(!path.startsWith(\"/\"))path=typeof window!==\"undefined\"?new URL(path,window.location.href).pathname:\"/\"+path;if(path.length>1)path=path.replace(/\\/+$/,\"\");try{path=decodeURIComponent(path);}catch{}return path.toLowerCase()||\"/\";}function looksLikeLink(value){return/^(\\.{0,2}\\/|https?:\\/\\/)/i.test(value);}// A Link control that holds a plain path hands the path straight down as a\n// prop. One that points at a Framer page does not, and is read from the\n// rendered anchor instead (see below).\nfunction readLink(props){if(!props)return null;for(const key of Object.keys(props)){const value=props[key];if(typeof value===\"string\"){if(!looksLikeLink(value))continue;const path=normalize(value);if(path)return path;continue;}if(value&&typeof value===\"object\"){const href=value.href;if(typeof href===\"string\"&&looksLikeLink(href)){const path=normalize(href);if(path)return path;}}}return null;}// Runs before paint on the client so the active button never flashes its\n// default state, and stays a plain effect during prerendering.\nconst useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;// --- the override -------------------------------------------------------\nexport function withCurrentPage(Component){return makeCurrentPage(Component,ACTIVE_VARIANT);}// Footer links: same behaviour, but switches to the footer's own active\n// variant, which is dark in light mode and light in dark mode.\nexport function withCurrentPageFooter(Component){return makeCurrentPage(Component,FOOTER_ACTIVE_VARIANT);}function makeCurrentPage(Component,activeVariant){return /*#__PURE__*/forwardRef((props,ref)=>{const path=useCurrentPath();const fromProps=readLink(props);const holder=useRef(null);const[fromAnchor,setFromAnchor]=useState(null);useIsomorphicLayoutEffect(()=>{if(fromProps)return;const anchor=holder.current?.querySelector(\"a\")??holder.current?.closest(\"a\");const next=normalize(anchor?.getAttribute(\"href\"));setFromAnchor(previous=>previous===next?previous:next);});const target=fromProps??fromAnchor;const routePath=useRouter()?.routes?.[useCurrentRouteId()]?.path;const isCurrent=target!==null&&target===(routePath&&!routePath.includes(\":\")?normalize(routePath):normalize(path));const element=/*#__PURE__*/_jsx(Component,{...props,ref:ref,variant:isCurrent?activeVariant:props.variant});// The wrapper is only there to find the anchor, and \"display:\n// contents\" keeps it out of the layout entirely.\nif(fromProps)return element;return /*#__PURE__*/_jsx(\"span\",{ref:holder,style:{display:\"contents\"},children:element});});}// Cookie banner built from native layers. Apply these overrides to your own layers.\nconst COOKIE_KEY=\"ko-cookie-consent\";const cookieDraft={preferences:false,analytics:false,marketing:false};const cookieListeners=new Set;const cookieState={open:false,ready:false};function cookieEmit(){cookieListeners.forEach(listener=>listener());}function cookieInit(){if(cookieState.ready||typeof window===\"undefined\")return;cookieState.ready=true;try{const saved=window.localStorage.getItem(COOKIE_KEY);if(saved)Object.assign(cookieDraft,JSON.parse(saved));else cookieState.open=true;}catch(error){cookieState.open=true;}}function cookieSave(all){if(all!==undefined){cookieDraft.preferences=all;cookieDraft.analytics=all;cookieDraft.marketing=all;}try{window.localStorage.setItem(COOKIE_KEY,JSON.stringify(cookieDraft));}catch(error){}cookieState.open=false;window.dispatchEvent(new CustomEvent(\"ko-cookie-consent\",{detail:{...cookieDraft}}));cookieEmit();}function useCookieState(){const[,force]=useState(0);useEffect(()=>{cookieInit();const listener=()=>force(count=>count+1);cookieListeners.add(listener);listener();return()=>{cookieListeners.delete(listener);};},[]);}const KO_NOISE=`url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/></svg>\")`;const KO_FROST=\"blur(30px) grayscale(1)\";export function withCookieBanner(Component){return props=>{useCookieState();if(!cookieState.open)return null;return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,backdropFilter:KO_FROST,WebkitBackdropFilter:KO_FROST,backgroundImage:KO_NOISE,zIndex:1e3}});};}function makeCookieToggle(Component,key){return props=>{useCookieState();const locked=key===\"necessary\";const on=locked||!!cookieDraft[key];return /*#__PURE__*/_jsx(Component,{...props,variant:on?\"On\":\"Off\",\"data-on\":on,onClick:()=>{if(locked)return;cookieDraft[key]=!on;cookieEmit();},style:{...props.style,cursor:locked?\"default\":\"pointer\",justifyContent:on?\"flex-end\":\"flex-start\",opacity:on?1:.4}});};}export function withCookieNecessary(Component){return makeCookieToggle(Component,\"necessary\");}export function withCookiePreferences(Component){return makeCookieToggle(Component,\"preferences\");}export function withCookieAnalytics(Component){return makeCookieToggle(Component,\"analytics\");}export function withCookieMarketing(Component){return makeCookieToggle(Component,\"marketing\");}function makeCookieButton(Component,action){return props=>/*#__PURE__*/_jsx(Component,{...props,onClick:action,style:{...props.style,cursor:\"pointer\"}});}export function withCookieAccept(Component){return makeCookieButton(Component,()=>cookieSave(true));}export function withCookieReject(Component){return makeCookieButton(Component,()=>cookieSave(false));}export function withCookieSave(Component){return makeCookieButton(Component,()=>cookieSave());}export function withCookieSettings(Component){return makeCookieButton(Component,()=>{cookieState.open=true;cookieEmit();});}\nexport const __FramerMetadata__ = {\"exports\":{\"withMenuButton\":{\"type\":\"reactHoc\",\"name\":\"withMenuButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieSettings\":{\"type\":\"reactHoc\",\"name\":\"withCookieSettings\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieMarketing\":{\"type\":\"reactHoc\",\"name\":\"withCookieMarketing\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieNecessary\":{\"type\":\"reactHoc\",\"name\":\"withCookieNecessary\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookiePreferences\":{\"type\":\"reactHoc\",\"name\":\"withCookiePreferences\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieAnalytics\":{\"type\":\"reactHoc\",\"name\":\"withCookieAnalytics\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieReject\":{\"type\":\"reactHoc\",\"name\":\"withCookieReject\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMobileMenuPanel\":{\"type\":\"reactHoc\",\"name\":\"withMobileMenuPanel\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieSave\":{\"type\":\"reactHoc\",\"name\":\"withCookieSave\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCurrentPageFooter\":{\"type\":\"reactHoc\",\"name\":\"withCurrentPageFooter\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCurrentPage\":{\"type\":\"reactHoc\",\"name\":\"withCurrentPage\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieBanner\":{\"type\":\"reactHoc\",\"name\":\"withCookieBanner\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCategoryFromURL\":{\"type\":\"reactHoc\",\"name\":\"withCategoryFromURL\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withWorkCategoryLink\":{\"type\":\"reactHoc\",\"name\":\"withWorkCategoryLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCookieAccept\":{\"type\":\"reactHoc\",\"name\":\"withCookieAccept\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ActiveNav.map"],"mappings":"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"}