{"version":3,"file":"FluidType.CXh2cEst.mjs","names":["useRef","Image1","React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","useRef"],"sources":["https:/framerusercontent.com/modules/xtvSQhEeClid6Tcq9dOj/zuRSXwa9WroCVLiIHorG/LoopVideo.js","https:/framerusercontent.com/modules/dZHi3ujqvaJ4v6edwubD/7cysAjlz7aDl9Uvt00p4/MvLpb_4vn.js","https:/framerusercontent.com/modules/ajdRsfW6iIPnUlwD7Uxs/l4MeFg9NIJVJaGACijP9/FluidType.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";/**\n * One load queue for the whole site.\n *\n * Three overrides create Vimeo players — the work rows, the chapter grids and\n * the full-bleed bands — and on /work that is one per project. Vimeo's\n * Cloudflare layer counts them as a single visitor, so throttling per file\n * achieves nothing: the queue has to be shared. Each player is handed its src\n * one at a time, spaced, no matter which override asked for it.\n */const VIMEO_QUEUE_KEY=\"__nsmVimeoQueue\";// Three players may start together, 150ms apart. Enough to stop a page of\n// twenty tiles hitting Vimeo as one burst, without the long serial wait a\n// single-file queue produced.\nconst VIMEO_GAP_MS=150;const VIMEO_CONCURRENCY=3;const enqueueVimeo=job=>{const w=window;const q=w[VIMEO_QUEUE_KEY]??={items:[],active:0};q.items.push(job);const pump=()=>{while(q.active<VIMEO_CONCURRENCY&&q.items.length){const fn=q.items.shift();if(!fn)break;q.active++;try{fn();}catch{}setTimeout(()=>{q.active--;pump();},VIMEO_GAP_MS);}};pump();};// Warm the connections every player needs before the first one asks: the\n// player page, its JS/CSS CDN, thumbnails, and the video edge. Each origin\n// otherwise costs DNS + TCP + TLS at the moment a tile scrolls into view.\nconst VIMEO_ORIGINS=[\"https://player.vimeo.com\",\"https://f.vimeocdn.com\",\"https://i.vimeocdn.com\",\"https://vod-adaptive-ak.vimeocdn.com\"];const preconnectVimeo=()=>{if(typeof document===\"undefined\")return;if(document.head.querySelector(\"[data-nsm-vimeo-preconnect]\"))return;for(const href of VIMEO_ORIGINS){const link=document.createElement(\"link\");link.rel=\"preconnect\";link.href=href;link.crossOrigin=\"anonymous\";link.setAttribute(\"data-nsm-vimeo-preconnect\",\"1\");document.head.appendChild(link);}};// module evaluation runs before any tile mounts — the earliest safe moment\npreconnectVimeo();// Vimeo is the only third party that sets cookies here. Until the visitor\n// accepts in the consent banner, every player runs in do-not-track mode.\nconst CONSENT_KEY=\"nsm-cookie-consent\";const trackingAllowed=()=>{try{return localStorage.getItem(CONSENT_KEY)===\"granted\";}catch{return false;}};const DNT=()=>trackingAllowed()?\"dnt=0\":\"dnt=1\";/**\n * Gives a Work Row a silent looping preview behind its thumbnail.\n *\n * Source order, first match wins:\n *   1. the row's own Clip control     — an .mp4/.webm uploaded to the CMS\n *   2. the row's own Loop Link control — a Vimeo URL, or a direct video URL\n *   3. LOOPS below — legacy fallback, kept so existing rows don't regress\n *\n * Adding a loop to a project is a CMS edit now: upload a clip, or paste a\n * link. No code change required.\n */// Rows that stay listed but do not open yet — the case study files are not\n// ready. The row keeps its loop and its place in the list; the link is\n// disarmed until the slug is removed from this set.\nexport const NOT_YET_LIVE=new Set([\"chanel-misia\"]);const LOOPS={// RUNRATE_1 — verified 1920x1080\n\"runrate\":{id:\"1226957759\",ar:16/9},// Digital Carousel — verified 3840x2160, a true 16:9\n\"product-motion\":{id:\"1226955118\",ar:16/9},// promo_ANNULI_01 — 1920x1080 confirmed from oEmbed, so a true 16:9\n\"annuli\":{id:\"1224713451\",ar:16/9},\"whoniverse\":{id:\"1222518949\",ar:1792/1280},\"fifa-26-opening-titles-pitch\":{id:\"1222669666\",ar:16/9},\"crystallum\":{id:\"1222664736\",ar:2560/1280},\"green-planet-ar\":{id:\"1215608136\",ar:1},// Ratios are declared so no player has to fetch oEmbed before it can size\n// itself — that round-trip was delaying every tile on the homepage.\n\"walking-with-dinosaurs\":{id:\"1215295792\",ar:16/9},\"bugatti-tourbillon\":{id:\"1215576479\",ar:426/214},\"rolex-oyster-perpetual-cosmograph\":{id:\"1216796335\",ar:5/3},// CHANEL EDIT 3 webhompage — player reports 2560x1280, so a true 2:1\n\"chanel-misia\":{id:\"1216950387\",ar:2},\"planet-earth-iii\":{id:\"1219362708\",ar:2},\"death-valley\":{id:\"1216086049\",ar:16/9},\"bbc-nl-rebrand\":{id:\"1216105986\",ar:16/9},\"dreamworks-channel-idents\":{id:\"1204508195\",ar:16/9},\"doctor-who\":{id:\"1215614845\",ar:2}};// background=1 gives autoplay, loop, muted and no chrome in one flag; the rest\n// are belt and braces for older players. Do-not-track stays on until the\n// visitor accepts cookies in the consent banner.\nconst VIMEO_PARAMS=()=>\"background=1&autoplay=1&loop=1&muted=1&autopause=0\"+\"&title=0&byline=0&portrait=0&badge=0&\"+DNT();// Framer hands a file control through as a URL string, but has used object\n// shapes before — accept either rather than depend on the current one.\nfunction toUrl(value){if(!value)return\"\";if(typeof value===\"string\")return value;const v=value;for(const key of[\"src\",\"url\",\"href\"]){if(typeof v[key]===\"string\")return v[key];}return\"\";}function vimeoIdFrom(url){const match=url.match(/vimeo\\.com\\/(?:video\\/)?(\\d+)/);return match?match[1]:null;}const isDirectVideo=url=>/\\.(mp4|webm|mov)(\\?|#|$)/i.test(url);export function withLoopVideo(Component){return props=>{const ref=useRef(null);const clip=toUrl(props?.clip);const link=toUrl(props?.loopLink??props?.link);const source=clip||link;useEffect(()=>{const root=ref.current;if(!root)return;const host=root.firstElementChild;if(!host)return;const slug=(host.closest(\"a\")?.pathname||\"\").split(\"/\").filter(Boolean).pop()||\"\";const legacy=LOOPS[slug];// not-yet-live rows keep their loop but lose the click-through.\n// This gate must run BEFORE the reduced-motion return below —\n// it is access control, not motion, and skipping it left the\n// tiles clickable for reduce-motion visitors (desktop Safari\n// with macOS \"Reduce motion\" on).\nif(NOT_YET_LIVE.has(slug)){const a=host.closest(\"a\");if(a){const strip=()=>{if(a.hasAttribute(\"href\"))a.removeAttribute(\"href\");};strip();a.style.cursor=\"default\";const block=e=>{e.preventDefault();e.stopPropagation();};for(const t of[\"click\",\"pointerup\",\"touchend\"])a.addEventListener(t,block,true);// React hydration re-writes href after this effect on slow\n// devices (seen on iOS) — keep stripping it\nconst mo=new MutationObserver(strip);mo.observe(a,{attributes:true,attributeFilter:[\"href\"]});}}// a still is the right answer when motion is unwelcome\nif(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const direct=source&&isDirectVideo(source)?source:\"\";const vimeoId=direct?null:source?vimeoIdFrom(source):legacy?.id??null;if(!direct&&!vimeoId)return;const frame=document.createElement(\"div\");Object.assign(frame.style,{position:\"absolute\",inset:\"0\",overflow:\"hidden\",background:\"#1A1916\",pointerEvents:\"none\",opacity:\"0\",transition:\"opacity .6s ease\"});let media;let fit=()=>{};// Only meaningful on the iframe path, but load() refits from here.\nlet ar=legacy?.ar??16/9;if(direct){// A real <video> can cover its own box, so no aspect-ratio maths.\nconst video=document.createElement(\"video\");video.muted=true;video.loop=true;video.autoplay=true;video.playsInline=true;video.preload=\"none\";video.setAttribute(\"muted\",\"\");video.setAttribute(\"playsinline\",\"\");video.setAttribute(\"aria-hidden\",\"true\");Object.assign(video.style,{position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\",pointerEvents:\"none\",border:\"0\"});media=video;}else{// An iframe can't object-fit, so oversize the axis that would\n// otherwise leave bars. Vimeo is asked for the true frame size\n// in load(); `ar` above is only the guess used until it answers.\nconst iframe=document.createElement(\"iframe\");iframe.title=\"\";iframe.setAttribute(\"frameborder\",\"0\");iframe.setAttribute(\"referrerpolicy\",\"strict-origin-when-cross-origin\");iframe.setAttribute(\"allow\",\"autoplay; picture-in-picture\");iframe.setAttribute(\"aria-hidden\",\"true\");iframe.setAttribute(\"tabindex\",\"-1\");Object.assign(iframe.style,{position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",pointerEvents:\"none\",border:\"0\"});media=iframe;fit=()=>{const w=host.clientWidth;const h=host.clientHeight;if(!w||!h)return;const over=w/h>ar;iframe.style.width=(over?w:Math.ceil(h*ar))+2+\"px\";iframe.style.height=(over?Math.ceil(w/ar):h)+2+\"px\";};}let loaded=false;const load=()=>{if(loaded)return;loaded=true;const reveal=()=>{frame.style.opacity=\"1\";};if(direct){const video=media;video.addEventListener(\"loadeddata\",reveal,{once:true});video.src=direct;video.load();const played=video.play();if(played&&typeof played.catch===\"function\")played.catch(()=>{});}else{const needsOembed=typeof legacy?.ar!==\"number\";let iframeLoaded=false;let oembedDone=!needsOembed;const revealWhenReady=()=>{if(!iframeLoaded||!oembedDone)return;fit();reveal();};// A wide cut letterboxes itself inside a 16:9 box, so ask\n// Vimeo for the real dimensions and refit once they land.\n// An ar set explicitly above wins — it was chosen against\n// the rendered tile, which Vimeo's numbers don't know about.\nif(needsOembed){fetch(`https://vimeo.com/api/oembed.json?url=https://vimeo.com/${vimeoId}`).then(res=>res.ok?res.json():null).then(data=>{if(data?.width&&data?.height){ar=data.width/data.height;fit();}oembedDone=true;revealWhenReady();}).catch(()=>{oembedDone=true;revealWhenReady();});}media.addEventListener(\"load\",()=>{iframeLoaded=true;revealWhenReady();},{once:true});enqueueVimeo(()=>{media.src=`https://player.vimeo.com/video/${vimeoId}?${VIMEO_PARAMS()}`;});}};if(getComputedStyle(host).position===\"static\")host.style.position=\"relative\";frame.appendChild(media);host.appendChild(frame);fit();preconnectVimeo();// several tiles on the homepage — only fetch the ones actually\n// reached. Keep the margin tight: a wider one boots several players\n// mid-scroll and the decode work makes the smooth scroll jerky.\nconst io=new IntersectionObserver(entries=>{for(const entry of entries)if(entry.isIntersecting){load();io.disconnect();}},{rootMargin:\"200px\"});io.observe(host);const ro=new ResizeObserver(fit);ro.observe(host);return()=>{io.disconnect();ro.disconnect();if(direct){const video=media;video.pause();video.removeAttribute(\"src\");video.load();}frame.remove();};},[clip,link]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withLoopVideo\":{\"type\":\"reactHoc\",\"name\":\"withLoopVideo\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NOT_YET_LIVE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoopVideo.map","// Generated by Framer (f0eed09)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Image as Image1,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withLoopVideo}from\"https://framerusercontent.com/modules/xtvSQhEeClid6Tcq9dOj/zuRSXwa9WroCVLiIHorG/LoopVideo.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/GdgSIhyykGhiq5U8ejoQ/j4KIptUii5PXVGIw2wep/PxCE07EKY.js\";const Image1WithLoopVideonfrlki=withCodeBoundaryForOverrides(Image1,{nodeId:\"q6r7jOYu4\",override:withLoopVideo,scopeId:\"MvLpb_4vn\"});const enabledGestures={N5ZsxX19s:{hover:true}};const serializationHash=\"framer-aihDP\";const variantClassNames={N5ZsxX19s:\"framer-v-oi2d0t\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const bwWb_v78n=undefined;const jfwiQLXZs=undefined;const id4ZkzkN2=undefined;const tur8byYgw=undefined;const transition1={delay:0,duration:.42,ease:[.19,1,.22,1],type:\"tween\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({client,height,id,meta,thumb,title,width,...props})=>{return{...props,bwWb_v78n:thumb??props.bwWb_v78n,id4ZkzkN2:client??props.id4ZkzkN2??\"Client\",jfwiQLXZs:title??props.jfwiQLXZs??\"Project Title\",tur8byYgw:meta??props.tur8byYgw??\"Client \\xb7 Discipline\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,jfwiQLXZs,tur8byYgw,bwWb_v78n,id4ZkzkN2,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"N5ZsxX19s\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-oi2d0t\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"N5ZsxX19s\",ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"var(--token-aa94b5d5-49ee-4009-a119-c7c63fb511df)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",...style},...addPropertyOverrides({\"N5ZsxX19s-hover\":{\"data-framer-name\":\"Hover\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Image1WithLoopVideonfrlki,{background:{alt:\"\",fit:\"fill\",sizes:componentViewport?.width||\"100vw\",...toResponsiveImage(bwWb_v78n)},className:\"framer-nfrlki\",\"data-border\":true,\"data-framer-name\":\"Media\",layoutDependency:layoutDependency,layoutId:\"q6r7jOYu4\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-aa94b5d5-49ee-4009-a119-c7c63fb511df)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:2,borderBottomRightRadius:2,borderTopLeftRadius:2,borderTopRightRadius:2}}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1pp2qhq\",\"data-framer-name\":\"Content\",layoutDependency:layoutDependency,layoutId:\"nSun0Ll9V\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-15erc9k\",layoutDependency:layoutDependency,layoutId:\"cnOCCWPkv\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNjAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.06em\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-a7dd3333-daef-4a66-a701-dae4015eb31e))\",\"--framer-text-transform\":\"uppercase\"},children:\"Project Title\"})}),className:\"framer-cq1d6c\",\"data-framer-name\":\"Title\",fonts:[\"GF;Geist-600\"],layoutDependency:layoutDependency,layoutId:\"pxz3Qifwt\",style:{\"--extracted-a0htzi\":\"var(--token-a7dd3333-daef-4a66-a701-dae4015eb31e)\"},text:jfwiQLXZs,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-n7vdek\",\"data-styles-preset\":\"PxCE07EKY\",dir:\"auto\",style:{\"--framer-text-alignment\":\"end\"},children:\"Client\"})}),className:\"framer-hwj7vk\",\"data-framer-name\":\"Client\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"UpBi2YOyc\",text:id4ZkzkN2,verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-p3m7bx\",layoutDependency:layoutDependency,layoutId:\"OwPFgHQN5\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-n7vdek\",\"data-styles-preset\":\"PxCE07EKY\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4f73f46c-a48a-4ec9-a35f-cee24428cd3d))\"},children:\"Meta\"})}),className:\"framer-71q4oy\",\"data-framer-name\":\"Tags\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ciSC2decE\",style:{\"--extracted-r6o4lv\":\"var(--token-4f73f46c-a48a-4ec9-a35f-cee24428cd3d)\"},text:tur8byYgw,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.14em\",\"--framer-text-alignment\":\"end\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-bfe9dde9-931c-42e9-b01d-a1b157b71ef9))\"},children:\"View project →\"})}),className:\"framer-1htndo4\",\"data-framer-name\":\"View\",fonts:[\"GF;Geist-500\"],layoutDependency:layoutDependency,layoutId:\"DI1dWSOz0\",style:{\"--extracted-r6o4lv\":\"var(--token-bfe9dde9-931c-42e9-b01d-a1b157b71ef9)\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})]})})})});});const css=[\".framer-aihDP.framer-1wffsno, .framer-aihDP .framer-1wffsno { display: block; }\",\".framer-aihDP.framer-oi2d0t { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px 0px 64px 0px; position: relative; width: 1120px; }\",\".framer-aihDP .framer-nfrlki { align-content: flex-start; align-items: flex-start; aspect-ratio: 1.7778 / 1; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: auto; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); z-index: 0; }\",\".framer-aihDP .framer-1pp2qhq { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; padding: 22px 0px 0px 0px; position: relative; width: 100%; z-index: 2; }\",\".framer-aihDP .framer-15erc9k, .framer-aihDP .framer-p3m7bx { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: wrap; height: min-content; justify-content: space-between; padding: 0px; position: relative; width: 100%; }\",\".framer-aihDP .framer-cq1d6c, .framer-aihDP .framer-hwj7vk, .framer-aihDP .framer-71q4oy, .framer-aihDP .framer-1htndo4 { flex: none; height: auto; max-width: 100%; position: relative; white-space: pre-wrap; width: auto; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css,'.framer-aihDP[data-border=\"true\"]::after, .framer-aihDP [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 788\n * @framerIntrinsicWidth 1120\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"b1pIoU7SR\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"jfwiQLXZs\":\"title\",\"tur8byYgw\":\"meta\",\"bwWb_v78n\":\"thumb\",\"id4ZkzkN2\":\"client\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerMvLpb_4vn=withCSS(Component,css,\"framer-aihDP\");export default FramerMvLpb_4vn;FramerMvLpb_4vn.displayName=\"Work Row\";FramerMvLpb_4vn.defaultProps={height:788,width:1120};addPropertyControls(FramerMvLpb_4vn,{jfwiQLXZs:{defaultValue:\"Project Title\",title:\"Title\",type:ControlType.String},onjfwiQLXZsChange:{changes:\"jfwiQLXZs\",type:ControlType.ChangeHandler},tur8byYgw:{defaultValue:\"Client \\xb7 Discipline\",title:\"Meta\",type:ControlType.String},ontur8byYgwChange:{changes:\"tur8byYgw\",type:ControlType.ChangeHandler},bwWb_v78n:{title:\"Thumb\",type:ControlType.ResponsiveImage},id4ZkzkN2:{defaultValue:\"Client\",title:\"Client\",type:ControlType.String},onid4ZkzkN2Change:{changes:\"id4ZkzkN2\",type:ControlType.ChangeHandler}});addFonts(FramerMvLpb_4vn,[{explicitInter:true,fonts:[{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v5/gyBhhwUxId8gMGYQMKR3pzfaWI_RQuQ4mJPby1QNtA.woff2\",weight:\"600\"},{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\"},{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v5/gyBhhwUxId8gMGYQMKR3pzfaWI_RruM4mJPby1QNtA.woff2\",weight:\"500\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerMvLpb_4vn\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1120\",\"framerIntrinsicHeight\":\"788\",\"framerVariables\":\"{\\\"jfwiQLXZs\\\":\\\"title\\\",\\\"tur8byYgw\\\":\\\"meta\\\",\\\"bwWb_v78n\\\":\\\"thumb\\\",\\\"id4ZkzkN2\\\":\\\"client\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"b1pIoU7SR\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";/**\n * Fluid type — scales text with the element's own width so a project block's\n * title and meta grow in step with its imagery. Framer's font sizes are fixed\n * px and it has no vw unit, so this measures and sets sizes directly.\n *\n * Ratios are taken from the 1120px design width, then clamped so the extremes\n * stay sane on very narrow and very wide screens.\n */export function withFluidType(Component){return props=>{const ref=useRef(null);useEffect(()=>{const root=ref.current;if(!root)return;const host=root.firstElementChild;if(!host)return;const BASE=1120;const rules=[{sel:\"h1, h2, h3\",px:24,min:16,max:44},{sel:\"p\",px:10,min:9,max:13}];const apply=()=>{const w=host.getBoundingClientRect().width;if(!w)return;const k=w/BASE;for(const r of rules){const size=Math.max(r.min,Math.min(r.max,r.px*k));host.querySelectorAll(r.sel).forEach(el=>{el.style.setProperty(\"font-size\",size.toFixed(2)+\"px\",\"important\");});}};apply();const ro=new ResizeObserver(apply);ro.observe(host);window.addEventListener(\"resize\",apply);const t=setTimeout(apply,300);return()=>{clearTimeout(t);ro.disconnect();window.removeEventListener(\"resize\",apply);};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withFluidType\":{\"type\":\"reactHoc\",\"name\":\"withFluidType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FluidType.map"],"mappings":"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"}