{"version":3,"file":"script_main.BrW2QQTO.mjs","names":["N","useFonts","FONTS","useStill","useLive","useState","onTick","fontsOf","stack","wOf","useReduced","useRef","clamp01","readCMS","useCMS","SW_BUILD","useSite","SEED","colorsOf","W","linkList","cssVars","CSS_BASE","siteFontCss","IcoArrow","famOf","famCss","DEF","COLOR_CONTROLS","FONT_CONTROLS","BP_CONTROL","_Fragment","useIso","useEffect","useLayoutEffect","useFonts","FONTS","useStill","useLive","useState","onTick","fontsOf","stack","wOf","readCMS","useCMS","useRef","SW_BUILD","useSite","SEED","colorsOf","cssVars","_Fragment","siteFontCss","famOf","famCss","DEF","COLOR_CONTROLS","FONT_CONTROLS","BP_CONTROL","useIso","useEffect","useLayoutEffect","useFonts","FONTS","useStill","useLive","useState","fontsOf","stack","wOf","useRef","colorsOf","cssVars","siteFontCss","famOf","famCss","DEF","COLOR_CONTROLS","FONT_CONTROLS","BP_CONTROL","useEffect","useLayoutEffect","useLive","useState","useRef","DEF","useState","t","v","p","y","m","I","B","E","_","j","D","C","J","r","W","$","z","K","G","V","H","X","Q","Y","Z","tt","te","tr","ti","tn","ts","to","ta","tu","tl","th","tc","tf","td","tg","tv","ty","tp","tm","tw","tb","tI","tS","tU","tk","tL","tB","tF","tP","tN","tO","tx","tA","tq","tj","tD","i","n","s","o","a","u","l","h","c","d","w","b","e","T","x","F","N","A","R","tM","tT","tR","g","tC","p","l","d","x","T","g","s","n","t","r","o","y","a","h","f","t","v","p","y","m","I","B","E","_","j","D","C","J","r","W","$","z","K","G","V","H","X","Q","Y","Z","tt","te","tr","ti","tn","ts","to","ta","tu","tl","th","tc","tf","td","tg","tv","ty","tp","tm","tw","tb","tI","tS","tU","tk","tL","tB","tF","tP","tN","tO","tx","tA","tq","tj","tD","i","n","s","o","a","u","l","h","c","d","w","b","e","T","x","F","N","A","R","tM","tT","tR","g","tC","p","l","d","x","T","g","s","n","t","r","o","y","a","h","f","p","y","r","n","a","u","l","h","d","T","x","g","p","d","s","n","t","r","o","y","Posts","Lab","Reviews","Experience","Services","Projects","Site","useRef","React.useId","PropertyOverrides","_Fragment","React.createElement","SiteLayout","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/aZwnu4rqtGXaa4ub7MWM/uIYej7Iwptg0PSbE9pjP/MvCmsRow.js","https:/framerusercontent.com/modules/3dB6jtQziXMJ3HdfNAcV/J45g2TI8KjFbwwdhqVvt/MvFooter.js","https:/framerusercontent.com/modules/ul41LSw1Y3XXVvStP64N/t4qeNMXnQrlkKzJlDHvo/MvHeader.js","https:/framerusercontent.com/modules/iwdiJdRTo9t5HBPrtYjJ/liNb6hOZhnmyViPkCGUU/MvLoader.js","https:/framerusercontent.com/modules/8AQ1T5cB6W9hgi8QGWYV/CuS43y23BjfZS91FhTxX/MvPageTrans.js","https:/framerusercontent.com/modules/rd19ZSAIE1sxUlSMz8ib/I2LApsADdhpYSGS4GvwR/MvSmooth.js","https:/framerusercontent.com/modules/3V2aKPmox2TmhWEnEV4i/agc7xyf0ez5AF5IJdbwM/OaLSV9F7x-0.js","https:/framerusercontent.com/modules/3V2aKPmox2TmhWEnEV4i/agc7xyf0ez5AF5IJdbwM/OaLSV9F7x-1.js","https:/framerusercontent.com/modules/3V2aKPmox2TmhWEnEV4i/agc7xyf0ez5AF5IJdbwM/OaLSV9F7x.js","https:/framerusercontent.com/modules/zttvdHp9PyrXXKiDkuT4/HFtPqAcBMm639DixT3Aq/RQxFoK7j3-0.js","https:/framerusercontent.com/modules/zttvdHp9PyrXXKiDkuT4/HFtPqAcBMm639DixT3Aq/RQxFoK7j3-1.js","https:/framerusercontent.com/modules/zttvdHp9PyrXXKiDkuT4/HFtPqAcBMm639DixT3Aq/RQxFoK7j3.js","https:/framerusercontent.com/modules/yqwAZjS4Ttm966U8rhXa/0ORwZX8hjmzdv2Cwlyes/xuYgat4_a-0.js","https:/framerusercontent.com/modules/yqwAZjS4Ttm966U8rhXa/0ORwZX8hjmzdv2Cwlyes/xuYgat4_a-1.js","https:/framerusercontent.com/modules/yqwAZjS4Ttm966U8rhXa/0ORwZX8hjmzdv2Cwlyes/xuYgat4_a.js","https:/framerusercontent.com/modules/pzUPHK6N305tt1eGLs17/ovGlijJ6Ies2Cl5XNgE8/lUD7mtnUj.js","framer:toplevel/main"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";const src=v=>v&&typeof v===\"object\"?String(v.src||\"\"):typeof v===\"string\"?v:\"\";/**\n * JOSH BARNES — CMS bridge row. One renders per CMS item inside a hidden Collection List in the Site Layout, so every page carries the live CMS and the sections read these rows. Do not place it by hand or delete the \"CMS Bridge\" layers.\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1\n * @framerIntrinsicHeight 1\n */export default function MvCmsRow(props){const{kind=\"\",slug=\"\",f1=\"\",f2=\"\",f3=\"\",f4=\"\",f5=\"\",f6=\"\",f7=\"\",f8=\"\",f9=\"\",f10=\"\",f11=\"\",f12=\"\",f13=\"\",f14=\"\",f15=\"\",f16=\"\",n1=0,n2=0,img,img2}=props;return /*#__PURE__*/_jsx(\"span\",{\"data-mv-row\":kind,\"data-slug\":slug,\"data-f1\":f1,\"data-f2\":f2,\"data-f3\":f3,\"data-f4\":f4,\"data-f5\":f5,\"data-f6\":f6,\"data-f7\":f7,\"data-f8\":f8,\"data-f9\":f9,\"data-f10\":f10,\"data-f11\":f11,\"data-f12\":f12,\"data-f13\":f13,\"data-f14\":f14,\"data-f15\":f15,\"data-f16\":f16,\"data-n1\":String(n1),\"data-n2\":String(n2),\"data-img\":src(img),\"data-img2\":src(img2),\"aria-hidden\":true,style:{...props.style,display:\"block\",width:1,height:1,overflow:\"hidden\",opacity:0,pointerEvents:\"none\"}});}const N=t=>({type:ControlType.Number,title:t,defaultValue:0,min:-1e6,max:1e6,step:.01});const F_=t=>({type:ControlType.String,title:t,defaultValue:\"\"});addPropertyControls(MvCmsRow,{kind:F_(\"Kind\"),slug:F_(\"Slug\"),f1:F_(\"F1\"),f2:F_(\"F2\"),f3:F_(\"F3\"),f4:F_(\"F4\"),f5:F_(\"F5\"),f6:F_(\"F6\"),f7:F_(\"F7\"),f8:F_(\"F8\"),f9:F_(\"F9\"),f10:F_(\"F10\"),f11:F_(\"F11\"),f12:F_(\"F12\"),f13:F_(\"F13\"),f14:F_(\"F14\"),f15:F_(\"F15\"),f16:F_(\"F16\"),n1:N(\"N1\"),n2:N(\"N2\"),img:{type:ControlType.ResponsiveImage,title:\"Img\"},img2:{type:ControlType.ResponsiveImage,title:\"Img2\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MvCmsRow\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MvCmsRow.map","// ===== JOSH BARNES shared scaffold (THE CANVAS: graphite design-tool canvas, paper sections, selection-cyan, SELECTION buttons) (inlined by mk.py; each Framer code file must be self-contained) =====\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const FONTS=\"https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,75..125,200..900;1,75..125,200..900&family=Chivo+Mono:ital,wght@0,300..600;1,300..600&display=swap\";// Token-safe alpha: Styles-bound colours arrive as var(--token-…) so hex-alpha breaks; color-mix keeps a palette flip working. Never 0% (hue drops) — floor at 0.4%.\nconst A=(c,a)=>`color-mix(in srgb, ${c} ${Math.max(.4,Math.round(a*1e3)/10)}%, transparent)`;const MIX=(a,b,t)=>`color-mix(in srgb, ${a} ${Math.round((1-t)*100)}%, ${b})`;const srcOf=(v,fallback)=>v&&typeof v===\"object\"&&v.src?String(v.src).split(\"?\")[0]:typeof v===\"string\"&&v.trim()?v.trim().split(\"?\")[0]:fallback;const T=(s,fb)=>s&&s.trim()?s.trim():fb;// ink or white text on a CMS brand colour (luminance test; the brand colour is data, not a palette token)\nconst onBrand=hex=>{const m=String(hex||\"\").replace(\"#\",\"\").match(/^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(!m)return\"var(--mv-cloud)\";const[r,g,b]=[m[1],m[2],m[3]].map(x=>{const v=parseInt(x,16)/255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);});const L=.2126*r+.7152*g+.0722*b;return L>.2?\"var(--mv-ink)\":\"var(--mv-cloud)\";};const cleanTel=s=>s.replace(/[^\\d+]/g,\"\");// Premium layout band (measured 09-13): container 1340 @1440 / 1520 @1920, body 16, button label 12–13.\nconst MAXW=\"clamp(1280px, 92vw, 1520px)\";// Responsive delivery: Framer's resizer serves any upload at ?scale-down-to=N (longest side). The query is stripped first so one file never downloads twice.\n// Responsive delivery. Framer uploads: the resizer serves ?scale-down-to=N. Unsplash stand-ins: ?w=N. The src is already the smallest width that covers the slot (a 52px avatar never pulls a 1600px photo), so a big image is never decoded for a small box — decode is what stalls scrolling.\nconst RS_W=[160,320,480,800,1200,1600];const rsTarget=sizes=>{const t=String(sizes||\"\").trim().split(\",\").pop()||\"\";const px=t.match(/(\\d+(?:\\.\\d+)?)px/);const vw=t.match(/(\\d+(?:\\.\\d+)?)vw/);const want=px?parseFloat(px[1])*2:vw?parseFloat(vw[1])/100*1600*1.25:1600;return RS_W.find(w=>w>=want)||1600;};const RS=(u,sizes)=>{const s=String(u||\"\");const b=s.split(\"?\")[0];if(/framerusercontent\\.com\\/images\\//.test(s)){const w=rsTarget(sizes);const d=w<=512?512:w<=1024?1024:2048;return{src:`${b}?scale-down-to=${d}`,srcSet:`${b}?scale-down-to=512 512w, ${b}?scale-down-to=1024 1024w, ${b}?scale-down-to=2048 2048w`,sizes};}if(/images\\.unsplash\\.com\\//.test(s)){const w=rsTarget(sizes);const q=n=>`${b}?w=${n}&q=70&fm=jpg&auto=format`;return{src:q(w),srcSet:RS_W.filter(n=>n<=Math.max(w*2,480)).map(n=>`${q(n)} ${n}w`).join(\", \"),sizes};}return{src:s};};// A Framer Font control stores a selector (GF;Family-700), not a CSS family — derive one, reject anything with ';'\nconst famOf=f=>{if(!f)return\"\";if(typeof f===\"string\")return f.includes(\";\")?\"\":f;if(f.fontFamily&&!String(f.fontFamily).includes(\";\"))return String(f.fontFamily);const sel=String(f.fontSelector||\"\");if(!sel)return\"\";const n=sel.split(\";\").pop()||\"\";return n.replace(/-(regular|italic|bold|\\d{3}(italic)?)$/i,\"\").replace(/-/g,\" \");};const wOf=(f,fb)=>{if(!f)return fb;if(f.fontWeight)return Number(f.fontWeight)||fb;const m=String(f.fontSelector||\"\").match(/-(\\d{3})/);return m?Number(m[1]):fb;};// famCss: Framer's Font `fontFamily` is ALREADY a stack — never wrap it in quotes (one fake family → fallback renders). A bare name gets quoted.\nconst famCss=f=>{const fa=famOf(f).replace(/\"/g,\"'\").trim();if(!fa)return\"\";return fa.includes(\",\")||fa.startsWith(\"'\")?fa:`'${fa}'`;};const stack=(custom,f,fb,tail)=>{const fam=custom?famCss(f):\"\";return`${fam?`${fam}, `:\"\"}${fb}, ${tail}`;};function useFonts(){useEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"mv-fonts\"))return;const l=document.createElement(\"link\");l.id=\"mv-fonts\";l.rel=\"stylesheet\";l.href=FONTS;document.head.appendChild(l);},[]);}// live = client after hydration and not on the canvas. SSR and the first client render share the same markup.\n// TRUE on the Framer canvas AND in its export / thumbnail / screenshot renderers (anything that is not the running preview): no scroll and no hydration there, so every reveal / pinned stage must draw its FINAL state or the editor shows empty blocks.\nfunction useStill(){const isStatic=useIsStaticRenderer();let t=null;try{t=RenderTarget.current();}catch(e){}return isStatic||t!==null&&t!==RenderTarget.preview;}function useLive(){const isStatic=useIsStaticRenderer();const[live,setLive]=useState(false);useEffect(()=>{if(!isStatic&&RenderTarget.current()!==RenderTarget.canvas&&typeof window!==\"undefined\")setLive(true);},[isStatic]);return live;}// Width/height of the root + viewport height. SSR starts from the breakpoint hint (Framer renders the Tablet/Phone copies with the same code and no width).\nfunction useSize(root,hint){const ov=String(hint||\"\").toLowerCase();const[w,setW]=useState(ov===\"phone\"?390:ov===\"tablet\"?810:1440),[vh,setVh]=useState(ov===\"phone\"?844:ov===\"tablet\"?1080:900);useLayoutEffect(()=>{const el=root.current;if(!el)return;const ro=new ResizeObserver(([e])=>{const x=Math.round((e.borderBoxSize&&e.borderBoxSize[0]?e.borderBoxSize[0].inlineSize:0)||el.offsetWidth);if(x>0)setW(x);});ro.observe(el);const vv=()=>setVh(window.innerHeight);vv();const read=()=>{const x=Math.round(el.offsetWidth);if(x>0)setW(x);};const t1=window.setTimeout(read,150),t2=window.setTimeout(read,700),t3=window.setTimeout(read,1600);window.addEventListener(\"resize\",vv);window.addEventListener(\"load\",read);return()=>{ro.disconnect();window.clearTimeout(t1);window.clearTimeout(t2);window.clearTimeout(t3);window.removeEventListener(\"resize\",vv);window.removeEventListener(\"load\",read);};},[]);return{w,vh};}const useReduced=()=>{const[rm,setRm]=useState(false);useLayoutEffect(()=>{setRm(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);},[]);return rm;};// One shared rAF for every section. Each frame runs ALL reads first (layout reads: getBoundingClientRect, offsetHeight), then ALL writes (CSS vars, transforms).\n// Interleaving read → write → read made the browser recalc the whole page's style once per section per frame (layout thrashing: 20+ recalcs a frame).\nfunction onTick(fn,read,pre){if(typeof window===\"undefined\")return()=>{};const w=window;if(!w.__nuTick){w.__nuTick={pre:new Set,subs:new Set,reads:new Set,raf:0};const loop=t=>{const T=w.__nuTick;T.pre.forEach(r=>r(t));T.reads.forEach(r=>r(t));T.subs.forEach(s=>s(t));T.raf=requestAnimationFrame(loop);};w.__nuTick.raf=requestAnimationFrame(loop);}w.__nuTick.subs.add(fn);if(read)w.__nuTick.reads.add(read);if(pre)w.__nuTick.pre.add(pre);return()=>{w.__nuTick.subs.delete(fn);if(read)w.__nuTick.reads.delete(read);if(pre)w.__nuTick.pre.delete(pre);};}const clamp01=v=>Math.min(1,Math.max(0,v));const easeIO=t=>{const x=clamp01(t);return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;};const DEF={bone:\"#F1ECE4\",ink:\"#141210\",brass:\"#4D9FFF\",pine:\"#231D19\",fog:\"#DDD4C8\",stone:\"#857B70\",cloud:\"#FFFFFF\",night:\"#171311\"};// collaborator cursor colours (constants, not tokens): the client and the developer on the canvas\nconst AMBER=\"#FFB224\",VIOLET=\"#A58BFF\";const colorsOf=p=>({bone:p.bone||DEF.bone,ink:p.ink||DEF.ink,brass:p.brass||DEF.brass,pine:p.pine||DEF.pine,fog:p.fog||DEF.fog,stone:p.stone||DEF.stone,cloud:p.cloud||DEF.cloud,night:p.night||DEF.night});// a Style-bound colour arrives as var(--token-…, #hex): let the browser resolve it to r,g,b for canvas drawing\nconst cssRgb=(el,col,fb)=>{if(!el||typeof window===\"undefined\")return fb;const p=document.createElement(\"i\");p.style.display=\"none\";p.style.color=col;el.appendChild(p);const v=getComputedStyle(p).color;p.remove();const m=v.match(/(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?)/);return m?`${Math.round(+m[1])},${Math.round(+m[2])},${Math.round(+m[3])}`:fb;};const cssVars=c=>({\"--mv-bone\":c.bone,\"--mv-ink\":c.ink,\"--mv-brass\":c.brass,\"--mv-pine\":c.pine,\"--mv-fog\":c.fog,\"--mv-stone\":c.stone,\"--mv-cloud\":c.cloud,\"--mv-night\":c.night});const COLOR_CONTROLS={bone:{type:ControlType.Color,title:\"Paper\",defaultValue:DEF.bone},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:DEF.ink},brass:{type:ControlType.Color,title:\"Accent\",defaultValue:DEF.brass},pine:{type:ControlType.Color,title:\"Deep\",defaultValue:DEF.pine},fog:{type:ControlType.Color,title:\"Line\",defaultValue:DEF.fog},stone:{type:ControlType.Color,title:\"Muted\",defaultValue:DEF.stone},cloud:{type:ControlType.Color,title:\"White\",defaultValue:DEF.cloud},night:{type:ControlType.Color,title:\"Dark\",defaultValue:DEF.night}};// ---- Fonts: Custom Fonts toggle → Font controls; off = Mona Sans (wide display) / Mona Sans / Chivo Mono ----\nconst FONT_CONTROLS={customFonts:{type:ControlType.Boolean,title:\"Custom Fonts\",description:\"Off = the site fonts (set once on the Header in the Site Layout). On = different fonts for this section only\",defaultValue:false},displayFont:{type:ControlType.Font,title:\"Display Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},bodyFont:{type:ControlType.Font,title:\"Body Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},monoFont:{type:ControlType.Font,title:\"Mono Font\",defaultFontType:\"monospace\",hidden:p=>!p.customFonts}};const NUMF=\"var(--mv-font-m, 'Chivo Mono'), ui-monospace, monospace\";// Site-wide fonts: the Header (Site Layout, every page) writes --mv-font-d/b/m (+ weights) on :root when its Custom Fonts is on. A section uses them unless its own Custom Fonts is on.\nconst siteFontCss=p=>{if(!p||!p.customFonts)return\"\";const v=[];const put=(k,f,w)=>{const fam=famCss(f);if(fam){v.push(`--mv-font-${k}:${fam}`);v.push(`--mv-font-${k}w:${wOf(f,w)}`);}};put(\"d\",p.displayFont,600);put(\"b\",p.bodyFont,400);put(\"m\",p.monoFont,400);put(\"a\",p.accentFont,400);return v.length?`:root{${v.join(\";\")}}`:\"\";};function fontsOf(p){const on=!!p.customFonts;const D={fontFamily:stack(on,p.displayFont,\"var(--mv-font-d, 'Mona Sans')\",\"Inter, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.displayFont,600):\"var(--mv-font-dw, 600)\",fontStyle:on&&p.displayFont&&p.displayFont.fontStyle?p.displayFont.fontStyle:\"normal\"};const B={fontFamily:stack(on,p.bodyFont,\"var(--mv-font-b, 'Mona Sans')\",\"Inter, system-ui, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.bodyFont,400):\"var(--mv-font-bw, 400)\"};const M={fontFamily:stack(on,p.monoFont,\"var(--mv-font-m, 'Chivo Mono')\",\"ui-monospace, SFMono-Regular, Menlo, monospace\"),fontWeight:on?wOf(p.monoFont,400):\"var(--mv-font-mw, 400)\"};return{D,B,M};}const BP_CONTROL={bpHint:{type:ControlType.Enum,title:\"Breakpoint Hint\",description:\"Set per breakpoint copy so the server render starts at the right width\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\",hidden:()=>true}};// ---- Button system: THE PING — a pill. On hover a pink notification dot pops on its right edge with a rolling \"+1\", a lime ring pings out of the dot, the accent fill sweeps in from the left and the label rolls up. Magnetic on desktop, squish on press. Solid = ink (fill lime), ghost = glass/hairline (fill paper), quiet = small nav pill. ----\nconst Glyph=({k})=>k===\"mail\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"5\",width:\"18\",height:\"14\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 7l8 6 8-6\"})]}):k===\"cal\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\"})]}):k===\"play\"?/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M8 5.5v13l10.5-6.5z\"})}):/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 17L17 7M9 7h8v8\"})});// In-page CTA jumps (\"#download\", \"/#download\"): scroll to the section when it is on this page, otherwise go to it on the home page.\nfunction jumpTo(e,href){try{const m=String(href||\"\").match(/^\\/?#([\\w-]+)$/);if(!m)return;const el=document.getElementById(m[1]);if(el){e.preventDefault();const W=window;const L=W.__ltLenis||W.__vcLenis||W.lenis;if(L&&L.scrollTo)L.scrollTo(el,{offset:-20});else el.scrollIntoView({behavior:\"smooth\",block:\"start\"});try{history.replaceState(null,\"\",\"#\"+m[1]);}catch(x){}}else if(href.startsWith(\"#\")){e.preventDefault();window.location.href=\"/\"+href;}}catch(x){}}const Btn=({href,label,kind=\"solid\",arrow=true,style,className,onClick,ariaLabel,cur,icon,sub})=>/*#__PURE__*/_jsxs(\"a\",{className:`mv-btn mv-${kind}${arrow?\"\":\" mv-noarr\"}${className?\" \"+className:\"\"}`,\"data-mag\":true,\"data-cur\":cur||\"go\",href:href,target:/^https?:\\/\\//.test(href||\"\")?\"_blank\":undefined,rel:/^https?:\\/\\//.test(href||\"\")?\"noopener\":undefined,onClick:onClick||(e=>jumpTo(e,href)),\"aria-label\":ariaLabel||(sub?`${sub} ${label}`:undefined),style:style,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"mv-face\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-fill\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-lbl\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"mv-roll\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-l1\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-l2\",\"aria-hidden\":true,children:label})]})}),arrow&&/*#__PURE__*/_jsxs(\"span\",{className:\"mv-arr\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-a1\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-a2\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})})]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"mv-selb\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]}),/*#__PURE__*/_jsx(\"b\",{className:\"mv-dim\",\"aria-hidden\":true})]});function useNearFocus(root,live){useEffect(()=>{if(!live||!root.current)return;const el=root.current;const f=e=>{const t=e.target;const sc=t.closest?.(\".mv-inring\");if(!sc)return;try{t.scrollIntoView({block:\"nearest\",inline:\"nearest\"});}catch(x){}};el.addEventListener(\"focusin\",f);return()=>el.removeEventListener(\"focusin\",f);},[live]);}function useMagnet(root,live){useEffect(()=>{if(!live||!root.current||!window.matchMedia(\"(hover:hover) and (pointer:fine)\").matches)return;const r=root.current;const btns=()=>Array.from(r.querySelectorAll(\"[data-mag]\"));const en=e=>{const b=e.target.closest?.(\"[data-mag]\");if(b){const d=b.querySelector(\".mv-dim\");if(d)d.textContent=`${Math.round(b.offsetWidth)} \\xd7 ${Math.round(b.offsetHeight)}`;}};const mv=e=>{for(const b of btns()){const rc=b.getBoundingClientRect();const dx=e.clientX-(rc.left+rc.width/2),dy=e.clientY-(rc.top+rc.height/2);const d=Math.hypot(dx,dy);const pull=d<150?(1-d/150)*8:0;b.style.setProperty(\"--mx\",`${dx/(d||1)*pull}px`);b.style.setProperty(\"--my\",`${dy/(d||1)*pull}px`);}};const lv=()=>{for(const b of btns()){b.style.setProperty(\"--mx\",\"0px\");b.style.setProperty(\"--my\",\"0px\");}};r.addEventListener(\"pointermove\",mv);r.addEventListener(\"pointerleave\",lv);r.addEventListener(\"pointerover\",en);r.addEventListener(\"focusin\",en);return()=>{r.removeEventListener(\"pointermove\",mv);r.removeEventListener(\"pointerleave\",lv);r.removeEventListener(\"pointerover\",en);r.removeEventListener(\"focusin\",en);};},[live]);}const CSS_BASE=`\n:where(.mv){position:relative;z-index:10} .mv,.mv *{box-sizing:border-box;min-width:0} .mv-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;padding:0!important;margin:-1px!important;border:0!important} :where(.mv) a{color:inherit} html,body{overflow-x:clip}\n:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"]),[role=\"button\"]):focus-visible{outline:3px solid var(--mv-ink,#0D0E10)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--mv-bone,#EEEEE8)!important} :where(.mv-dark) :where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"])):focus-visible{outline-color:var(--mv-cloud,#FFFFFF)!important;box-shadow:0 0 0 2px var(--mv-night,#08090A)!important} :where(.mv-inring) :where(a[href],button):focus-visible{outline-offset:-4px!important;box-shadow:none!important} :where(.mv) :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select):focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important;box-shadow:none!important} :where(.mv) textarea{resize:none} .mv-inring:focus-visible{outline-offset:-3px!important;box-shadow:none!important} html{scroll-padding-top:96px;scroll-padding-bottom:88px}\n/* THE SELECTION button: a 10px-radius block. Hover/focus = the design-tool selection snaps around it (cyan outline 5px outside, four white handles, live W \\xd7 H badge underneath), the fill sweeps in from the left and the label rolls up. Magnetic on desktop. */\n.mv-btn{position:relative;display:inline-flex;padding:0;min-height:54px;border-radius:10px;text-decoration:none;cursor:pointer;isolation:isolate;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.005em;border:0;color:var(--fg);transition:color .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-face{position:relative;z-index:1;display:inline-flex;align-items:center;gap:14px;width:100%;min-height:inherit;padding:0 8px 0 22px;border-radius:inherit;background:var(--face);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:inset 0 0 0 1px var(--rim);overflow:hidden;isolation:isolate}\n.mv-fill{position:absolute;z-index:0;inset:0;background:var(--fill);border-radius:inherit;clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-fill,.mv-btn:focus-visible .mv-fill{clip-path:inset(0 0 0 0)}\n.mv-lbl{position:relative;z-index:1;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.15}\n.mv-roll{display:block;height:1.2em;overflow:hidden;line-height:1.2} .mv-l1,.mv-l2{display:block;transition:translate .5s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-l1,.mv-btn:hover .mv-l2,.mv-btn:focus-visible .mv-l1,.mv-btn:focus-visible .mv-l2{translate:0 -100%}\n.mv-arr{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:6px;background:var(--chip);color:var(--chipfg);overflow:hidden;transition:background .4s,color .4s} .mv-arr>span{grid-area:1/1;display:grid;place-items:center;transition:transform .55s cubic-bezier(.7,0,.2,1)} .mv-arr svg{width:15px;height:15px} .mv-a2{transform:translate(-160%,160%)}\n.mv-btn:hover .mv-a1,.mv-btn:focus-visible .mv-a1{transform:translate(160%,-160%)} .mv-btn:hover .mv-a2,.mv-btn:focus-visible .mv-a2{transform:none} .mv-btn:hover .mv-arr,.mv-btn:focus-visible .mv-arr{background:var(--chip2);color:var(--chipfg2)}\n.mv-selb{position:absolute;z-index:2;inset:-5px;border-radius:13px;box-shadow:0 0 0 1.5px var(--mv-brass);pointer-events:none;opacity:0;scale:1.06;transition:opacity .25s,scale .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-selb i{position:absolute;width:7px;height:7px;background:var(--mv-cloud);box-shadow:0 0 0 1.5px var(--mv-brass);translate:-50% -50%} .mv-selb i:nth-child(1){left:0;top:0} .mv-selb i:nth-child(2){left:100%;top:0} .mv-selb i:nth-child(3){left:0;top:100%} .mv-selb i:nth-child(4){left:100%;top:100%}\n.mv-btn:hover .mv-selb,.mv-btn:focus-visible .mv-selb{opacity:1;scale:1}\n.mv-dim{position:absolute;z-index:3;left:50%;top:calc(100% + 11px);translate:-50% -4px;padding:2px 6px;border-radius:4px;background:var(--mv-brass);color:var(--mv-ink);font:500 10px/1.4 var(--mv-font-m,'Chivo Mono'),ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s,translate .35s}\n.mv-btn:hover .mv-dim,.mv-btn:focus-visible .mv-dim{opacity:1;translate:-50% 0}\n.mv-btn:hover,.mv-btn:focus-visible{color:var(--fg2)}\n.mv-btn.mv-noarr .mv-face{padding-right:22px}\n.mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-quiet{min-height:40px;font-size:13px;border-radius:8px;--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)} .mv-btn.mv-quiet .mv-arr{width:28px;height:28px;border-radius:5px} .mv-btn.mv-quiet .mv-face{padding-left:16px;gap:10px;padding-right:6px} .mv-btn.mv-quiet .mv-selb{inset:-4px;border-radius:11px}\n/* on paper grounds: solid = ink face (cyan fill), ghost = ink hairline */\n.mv:not(.mv-dark) .mv-btn.mv-solid,.mv-lt .mv-btn.mv-solid{--face:var(--mv-ink);--fill:var(--mv-brass);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:var(--mv-brass);--chipfg:var(--mv-ink);--chip2:var(--mv-ink);--chipfg2:var(--mv-brass)}\n.mv:not(.mv-dark) .mv-btn.mv-ghost,.mv-lt .mv-btn.mv-ghost{--face:transparent;--rim:color-mix(in srgb,var(--mv-ink) 28%,transparent);--fill:var(--mv-ink);--fg:var(--mv-ink);--fg2:var(--mv-cloud);--chip:color-mix(in srgb,var(--mv-ink) 7%,transparent);--chipfg:var(--mv-ink);--chip2:var(--mv-brass);--chipfg2:var(--mv-ink)}\n.mv:not(.mv-dark) .mv-selb i,.mv-lt .mv-selb i{background:var(--mv-cloud)}\n/* a DARK band nested inside a paper section (case next-project, service film band): dark button faces again. Higher specificity than the paper rule above, so the result no longer depends on which component's <style> tag comes last in the page */\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n@media (max-width:600px),(hover:none){.mv .mv-btn{white-space:normal;text-align:left;line-height:1.25;min-height:54px;max-width:100%} .mv .mv-btn.mv-quiet{min-height:40px;white-space:nowrap} .mv .mv-btn .mv-face{justify-content:space-between} .mv .mv-roll{height:auto} .mv .mv-l2{display:none} .mv .mv-btn .mv-l1{translate:none!important} .mv .mv-selb,.mv .mv-dim{display:none}}\n.mv-btn:hover{transform:translate(var(--mx,0px),var(--my,0px))} .mv-btn:active{transform:translate(var(--mx,0px),var(--my,0px)) scale(.97)!important;transition-duration:.12s}\n/* TEXT-SAFE accents: cyan is a SURFACE colour on paper (selections, fills, chips) — accent text on paper is ink; on graphite grounds the cyan itself reads */\n.mv{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink));--mv-acc-d:var(--mv-brass)}\n.mv-lt,.mv .mv-lt{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink))}\n.mv-dark,.mv.mv-dark{--mv-acc:var(--mv-brass);--mv-acc-lg:var(--mv-brass);--mv-hl:transparent;--mv-mut:color-mix(in srgb,var(--mv-stone) 40%,var(--mv-cloud))}\n.mv-port{width:7px;height:7px;flex:none;border-radius:50%;background:#3DDC84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:mv-live 1.8s infinite} @keyframes mv-live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}100%{box-shadow:0 0 0 9px rgba(61,220,132,0)}}\n@media (prefers-reduced-motion:reduce){.mv *,.sth *{animation-duration:.01ms!important;transition-duration:.01ms!important}}`;const IcoArrow=({s=15})=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\"})});const Stars=({v=5,s=13})=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-stars\",\"aria-hidden\":true,children:[0,1,2,3,4].map(i=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",style:{opacity:i<Math.round(v)?1:.28},children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M12 2.6l2.9 6.1 6.7.9-4.9 4.6 1.2 6.6L12 17.6 6.1 20.8l1.2-6.6L2.4 9.6l6.7-.9z\"})},i))});// ===== JOSH BARNES motion layer (THE FLOW) (composed by mk.py after _common) =====\n// One shared rAF (onTick). Sections write --sp (0 = top edge enters the viewport bottom → 1 = bottom edge leaves the top) and,\n// for tall pinned wrappers, --pp (0 = wrapper top hits the viewport top → 1 = wrapper bottom hits the viewport bottom). IO-gated.\nconst SCRUB_K=.18;// Decode a section's photos while it is still a screen and a half away, so the first frame it is on screen never waits for a decode.\nfunction usePre(el){try{const io=new IntersectionObserver(es=>{if(!es[0].isIntersecting)return;io.disconnect();el.querySelectorAll(\"img\").forEach(im=>{try{im.loading=\"eager\";im.decode().catch(()=>{});}catch(e){}});},{rootMargin:\"150% 0px 150% 0px\"});io.observe(el);}catch(e){}}function focusTo(el,frac){if(!el||typeof window===\"undefined\")return;if(window.innerWidth<810)return;const r=el.getBoundingClientRect();const vh=window.innerHeight;if(r.height<=vh*1.05)return;const y=r.top+window.scrollY+(r.height-vh)*Math.min(1,Math.max(0,frac));if(Math.abs(window.scrollY-y)<8)return;const w=window;if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}function useScrollVars(ref,live,rm,cb){useEffect(()=>{if(!live||rm||!ref.current)return;const el=ref.current;let vis=true,last=-9,cs=-1,cp=-1,settled=false;usePre(el);const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"25% 0px 25% 0px\"});io.observe(el);// eased scrub: the values glide toward the true scroll position (K per frame), so wheel steps never jump a pinned scene\nlet rt=0,rh=0,vh=1,fresh=false;const read=()=>{if(!vis&&settled){fresh=false;return;}const r=el.getBoundingClientRect();rt=r.top;rh=r.height;vh=window.innerHeight||1;fresh=true;};const off=onTick(()=>{if(!fresh)return;const sp=clamp01((vh-rt)/(vh+rh));const pp=rh>vh*1.05?clamp01(-rt/(rh-vh)):sp;if(cs<0){cs=sp;cp=pp;}else{cs+=(sp-cs)*SCRUB_K;cp+=(pp-cp)*SCRUB_K;if(Math.abs(sp-cs)<5e-4)cs=sp;if(Math.abs(pp-cp)<5e-4)cp=pp;}settled=cs===sp&&cp===pp;if(Math.abs(cs+cp-last)<3e-4)return;last=cs+cp;el.style.setProperty(\"--sp\",cs.toFixed(4));el.style.setProperty(\"--pp\",cp.toFixed(4));if(cb)cb(cs,cp);},read);return()=>{off();io.disconnect();};},[live,rm]);}// STAGE — false while the loader or the page-transition cover is on screen (html.mv-hold-*), so first-screen intros play AFTER the cover lifts, never under it. 9 s safety.\nfunction useStage(live){const[r,setR]=useState(false);useEffect(()=>{if(!live)return;const h=document.documentElement;const ok=()=>!/(^|\\s)mv-hold/.test(h.className);if(ok()){setR(true);return;}const mo=new MutationObserver(()=>{if(ok()){mo.disconnect();setR(true);}});mo.observe(h,{attributes:true,attributeFilter:[\"class\"]});const t=window.setTimeout(()=>{mo.disconnect();setR(true);},9e3);return()=>{mo.disconnect();window.clearTimeout(t);};},[live]);return r;}// true once the element has entered the viewport (stays true) — and only once the stage is clear. Reduced motion = true at once.\nfunction useOn(ref,live,rm,amount=.16){const[on,setOn]=useState(false);const still=useStill();const ready=useStage(live);useEffect(()=>{if(!live)return;if(rm){setOn(true);return;}if(!ready)return;const el=ref.current;if(!el)return;let off=()=>{};// keyboard focus: mark the section FIRST and flush styles, so the reveal that follows runs with instant transitions (a transition keeps the timing it started with)\nconst fin=e=>{try{if(e.target.matches(\":focus-visible\")){el.setAttribute(\"data-kb\",\"\");void el.offsetWidth;}}catch(x){}setOn(true);};const fout=e=>{if(!el.contains(e.relatedTarget))el.removeAttribute(\"data-kb\");};el.addEventListener(\"focusin\",fin);el.addEventListener(\"focusout\",fout);const io=new IntersectionObserver(es=>{for(const e of es)if(e.isIntersecting){io.disconnect();// IO ignores occlusion: under a curtain (Reveal) wait until about a quarter of it is uncovered\noff=onTick(()=>{const rev=el.closest(\".mv-rev.is-act\");const rv=rev?parseFloat(rev.style.getPropertyValue(\"--rv\")||\"0\"):1;if(rv>.24){setOn(true);off();}});}},{threshold:Math.min(amount,Math.max(.005,window.innerHeight*.3/Math.max(1,el.offsetHeight))),rootMargin:\"0px 0px -6% 0px\"});io.observe(el);return()=>{io.disconnect();off();el.removeEventListener(\"focusin\",fin);el.removeEventListener(\"focusout\",fout);};},[live,rm,ready]);return on||still;}// CURTAIN REVEAL — the section is pinned BEHIND the one above it and is uncovered as that one lifts away (the footer movement, for any section).\n// Wrapper = section + a spacer of T, pulled up by T (page length unchanged); the section is sticky for exactly T of scroll. T = min(section height, 100svh):\n// a tall section pins at the top, a short one sits on the bottom edge of the viewport. The section ABOVE needs a higher Layer (z-index).\nfunction Reveal({on,layer=9,style,children}){const live=useLive();const rm=useReduced();const wrap=useRef(null);const inner=useRef(null);const sp=useRef(null);const[h,setH]=useState(0);const act=on&&live&&!rm&&h>0&&typeof window!==\"undefined\"&&window.innerWidth>=810;useEffect(()=>{if(!on||!live||rm||!inner.current)return;const el=inner.current;const m=()=>setH(el.offsetHeight);m();const ro=new ResizeObserver(m);ro.observe(el);return()=>ro.disconnect();},[on,live,rm]);useEffect(()=>{if(!act||!wrap.current)return;const el=wrap.current;let vis=true,last=-1;const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"30% 0px 30% 0px\"});io.observe(el);let cur=-1,T=0,vh=1,top=0,fresh=false;const read=()=>{if(!vis){fresh=false;return;}T=sp.current?sp.current.offsetHeight:0;vh=window.innerHeight;top=el.getBoundingClientRect().top;fresh=true;};const off=onTick(()=>{if(!fresh||!T)return;const rv=clamp01((vh-T-top)/T);if(cur<0)cur=rv;else{cur+=(rv-cur)*SCRUB_K;if(Math.abs(rv-cur)<5e-4)cur=rv;}if(Math.abs(cur-last)<4e-4)return;last=cur;el.style.setProperty(\"--rv\",cur.toFixed(4));},read);return()=>{off();io.disconnect();};},[act]);return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,className:`mv-rev${act?\" is-act\":\"\"}`,style:{...style||{},[\"--h\"]:`${h}px`,[\"--layer\"]:layer},onFocusCapture:e=>{if(!act||!wrap.current)return;const t=e.target;const w=window;const r=wrap.current.getBoundingClientRect();const T=sp.current?sp.current.offsetHeight:0;const y=Math.max(0,Math.min(document.documentElement.scrollHeight-window.innerHeight,r.top+window.scrollY-window.innerHeight+2*T));if(Math.abs(window.scrollY-y)>4){if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}requestAnimationFrame(()=>{try{t.scrollIntoView({block:\"nearest\"});}catch(x){}});},children:[/*#__PURE__*/_jsx(\"div\",{ref:inner,className:\"mv-rev-in\",children:children}),/*#__PURE__*/_jsx(\"div\",{ref:sp,className:\"mv-rev-sp\",\"aria-hidden\":true})]});}const REVEAL_CONTROLS={reveal:{type:ControlType.Boolean,title:\"Reveal\",description:\"Curtain: this section waits behind the one above and is uncovered as that one lifts away\",enabledTitle:\"Curtain\",disabledTitle:\"Off\",defaultValue:true},layer:{type:ControlType.Number,title:\"Layer\",description:\"Stacking order. Must be LOWER than the section above (sections default to 10)\",min:0,max:20,step:1,displayStepper:true,defaultValue:9,hidden:p=>p.reveal===false}};const splitWords=s=>String(s||\"\").replace(/\\*([^*]+)\\*/g,(_m,g)=>g.trim().split(/\\s+/).map(w=>{const m=w.match(/^(.*?)([.,!?;:’']*)$/);return m&&m[1]?`*${m[1]}*${m[2]}`:w;}).join(\" \")).split(/\\s+/).filter(Boolean).map(t=>{const m=t.match(/^\\*(.+?)\\*([.,!?;:’']*)$/);return m?{t:m[1],tail:m[2],acc:true}:{t:t.replace(/\\*/g,\"\"),tail:\"\",acc:false};});const plainOf=s=>String(s||\"\").replace(/\\*/g,\"\").replace(/\\s*\\|\\s*/g,\" \").replace(/\\s+/g,\" \").trim();// Heading whose words rise out of masks. \"|\" forces a line break, *word* = the accent: light-weight coral (deep coral mix on paper).\nconst Head=({text,on,D,tag=\"h2\",size=\"clamp(40px,4.8vw,72px)\",lh=.92,delay=0,step=55,style,className})=>{const Tag=tag;let k=0;return /*#__PURE__*/_jsx(Tag,{className:`mv-hd${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,\"aria-label\":plainOf(text),style:{...D,fontSize:size,lineHeight:lh,...style||{}},children:String(text).split(\"|\").map((line,li)=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-hd-l\",\"aria-hidden\":true,children:splitWords(line).map((w,i)=>{const d=delay+k++*step;return /*#__PURE__*/_jsxs(\"span\",{className:`mv-hd-w${w.acc?\" is-accw\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:`mv-hd-i${w.acc?\" is-acc\":\"\"}`,style:{transitionDelay:`${d}ms`,[\"--pd\"]:`${d+500}ms`},children:w.acc?/*#__PURE__*/_jsxs(\"span\",{className:\"mv-it\",children:[w.t,w.tail,/*#__PURE__*/_jsx(\"svg\",{className:\"mv-spark\",viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 1.5C12.9 8 16 11.1 22.5 12 16 12.9 12.9 16 12 22.5 11.1 16 8 12.9 1.5 12 8 11.1 11.1 8 12 1.5Z\"})})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[w.t,w.tail]})}),\" \"]},i);})},li))});};const Eyebrow=({text,on,M,delay=0,style})=>text?/*#__PURE__*/_jsxs(\"p\",{className:`mv-eb${on?\" is-on\":\"\"}`,style:{...M,transitionDelay:`${delay}ms`,...style||{}},children:[/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true}),text]}):null;// one-shot rise for copy / rows\nconst rise=(on,d=0,y=22)=>({opacity:on?1:0,translate:on?\"0 0\":`0 ${y}px`,transition:`opacity .9s ease ${d}ms, translate 1s cubic-bezier(.2,.8,.2,1) ${d}ms`});// Image that UNMASKS through a shape as it enters, settles from a zoom, then drifts with scroll (needs --sp on an ancestor).\nconst SHAPES={up:[\"inset(100% 0 0 0)\",\"inset(0 0 0 0)\"],down:[\"inset(0 0 100% 0)\",\"inset(0 0 0 0)\"],left:[\"inset(0 100% 0 0)\",\"inset(0 0 0 0)\"],right:[\"inset(0 0 0 100%)\",\"inset(0 0 0 0)\"],diag:[\"polygon(0 100%,0 100%,0 100%,0 100%)\",\"polygon(0 -160%,260% 100%,0 100%,0 100%)\"],iris:[\"circle(0% at 50% 55%)\",\"circle(85% at 50% 55%)\"],arch:[\"inset(100% 0 0 0 round 999px 999px 0 0)\",\"inset(0 0 0 0 round 999px 999px 0 0)\"],slit:[\"inset(0 50% 0 50%)\",\"inset(0 0 0 0)\"]};const Um=({src,alt=\"\",on,shape=\"up\",ratio=\"4/5\",delay=0,par=1,focus=\"50% 40%\",radius=4,sizes=\"(max-width: 809px) 100vw, 50vw\",style,className,eager=false})=>{const sh=SHAPES[shape]||SHAPES.up;const im=RS(src,sizes);return /*#__PURE__*/_jsx(\"div\",{className:`mv-um${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,style:{aspectRatio:ratio,borderRadius:radius,clipPath:on?sh[1]:sh[0],WebkitClipPath:on?sh[1]:sh[0],transitionDelay:`${delay}ms`,[\"--par\"]:par,...style||{}},children:/*#__PURE__*/_jsx(\"img\",{src:im.src,srcSet:im.srcSet,sizes:im.sizes,alt:alt,loading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:false,style:{objectPosition:focus,transitionDelay:`${delay}ms`}})});};const CSS_MOTION=`\n[data-kb] *,[data-kb] *::before,[data-kb] *::after{transition:none!important}\n.mv-sec{position:relative;z-index:10;display:block;width:100%;--sp:.5;--pp:0}\n.mv-rev{position:relative;width:100%;--rv:1} .mv-rev-in{position:relative} .mv-rev-sp{height:0}\n.mv-rev.is-act{--rv:0;--t:min(var(--h),100vh);--t:min(var(--h),100svh);z-index:var(--layer,9);margin-top:calc(var(--t)*-1)}\n.mv-rev.is-act>.mv-rev-in{position:sticky;top:calc(100vh - var(--t));top:calc(100svh - var(--t))} .mv-rev.is-act>.mv-rev-sp{height:var(--t)}\n/* the lifting edge throws a shadow on the section beneath, and that section comes out of the dark as it is uncovered */\n.mv-rev.is-act>.mv-rev-in::before{content:\"\";position:absolute;z-index:40;left:0;right:0;top:0;height:120px;translate:0 calc((1 - var(--rv))*var(--t));background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,0));opacity:min(1,calc(var(--rv)*(1 - var(--rv))*9));pointer-events:none}\n.mv-rev.is-act>.mv-rev-in::after{content:\"\";position:absolute;z-index:39;left:0;right:0;top:0;height:var(--t);background:#000;opacity:calc((1 - var(--rv))*.16);pointer-events:none}\n.mv-wrap{--pad:56px;width:100%;max-width:calc(${MAXW} + var(--pad)*2);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}\n.mv-eb{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;margin:0;padding:7px 13px 7px 11px;border-radius:6px;background:color-mix(in srgb,var(--mv-ink) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-ink) 12%,transparent);color:var(--mv-ink);font-size:11.5px;font-weight:500;letter-spacing:.06em;opacity:0;translate:0 10px;transition:opacity .8s ease,translate .9s cubic-bezier(.2,.8,.2,1)} .mv-eb.is-on{opacity:1;translate:0 0}\n.mv-eb i{display:block;flex:none;order:-1;width:7px;height:7px;border-radius:50%;background:var(--mv-brass)}\n.mv-dark .mv-eb{color:var(--mv-cloud);background:color-mix(in srgb,var(--mv-cloud) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-cloud) 18%,transparent)}\n.mv-hd{margin:0;letter-spacing:-.042em;text-wrap:balance;font-weight:var(--mv-font-dw,600)} .mv-hd-l{display:block}\n.mv-hd-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .12em;margin:0 -.04em -.12em;white-space:pre}\n.mv-hd-i{position:relative;display:inline-block;translate:0 108%;transition:translate 1.05s cubic-bezier(.2,.85,.15,1)}\n.mv-hd.is-on .mv-hd-i{translate:0 0}\n.mv-hd-w.is-accw{overflow:hidden}\n.mv-it{position:relative;color:var(--mv-acc);font-weight:inherit} .mv-dark .mv-it{color:var(--mv-brass)}\n.mv-spark{display:none}\n\n.mv-um{position:relative;overflow:hidden;transition:clip-path 1.35s cubic-bezier(.7,0,.2,1);background:color-mix(in srgb,var(--mv-stone) 22%,transparent)}\n.mv-um img{position:absolute;left:0;top:-9%;width:100%;height:118%;display:block;object-fit:cover;scale:1.28;translate:0 calc((var(--sp,.5) - .5)*var(--par,1)*-7%);transition:scale 1.9s cubic-bezier(.16,.84,.24,1);user-select:none}\n.mv-um.is-on img{scale:1}\n/* diagonal cuts: the section hangs over its neighbour and is cut on a slope (clip-path, so the neighbour shows through) */\n.mv-cut-t{margin-top:calc(var(--cut,7vw)*-1);clip-path:polygon(0 var(--cut,7vw),100% 0,100% 100%,0 100%);padding-top:var(--cut,7vw)}\n.mv-cut-b{margin-bottom:calc(var(--cut,7vw)*-1);padding-bottom:var(--cut,7vw)}\n.mv-cut-t.mv-cut-b{clip-path:polygon(0 var(--cut,7vw),100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n.mv-cut-b:not(.mv-cut-t){clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n@media (max-width:1099px){.mv-wrap{--pad:32px}}\n@media (max-width:699px){.mv-wrap{--pad:20px}}\n@media (prefers-reduced-motion:reduce){.mv-hd-i{translate:0 0!important} .mv-spark{scale:1!important;rotate:0deg!important;animation:none!important} .mv-um{clip-path:none!important} .mv-um img{scale:1!important;translate:0 0!important}}\n`;const SEED={site:[{\"slug\":\"site\",\"f1\":\"Josh Barnes\",\"f2\":\"Product designer & developer\",\"f3\":\"I design digital products and build them in code, from the first sketch to the shipped release.\",\"f4\":\"hello@maravoss.design\",\"f5\":\"Berlin\",\"f6\":\"Europe/Berlin\",\"f7\":\"Available for work \\xb7 Nov 2026\",\"f8\":\"/resume\",\"f9\":\"Dribbble:https://dribbble.com,GitHub:https://github.com,LinkedIn:https://linkedin.com,Read.cv:https://read.cv\",\"f10\":\"9\",\"f11\":\"/contact\",\"n1\":\"1\"}],projects:[{\"slug\":\"sole-campaign\",\"f1\":\"Sole\",\"f2\":\"Sole Supply\",\"f3\":\"Brand \\xb7 Campaign\",\"f4\":\"2026\",\"f5\":\"Launch campaign and product pages for a sneaker drop.\",\"img\":\"https://framerusercontent.com/images/RQkpkpcrQxhlTtR8Pr6HgCXqSI8.webp\",\"f6\":\"photo\",\"f7\":\"#FFB224\",\"f8\":\"Art direction, web\",\"f9\":\"3 people\",\"f10\":\"+64% launch-week sales\",\"n1\":\"1\"},{\"slug\":\"rouge-packaging\",\"f1\":\"Rouge\",\"f2\":\"Maison Rouge\",\"f3\":\"Brand \\xb7 Packaging\",\"f4\":\"2025\",\"f5\":\"Packaging and a product configurator for a lipstick line.\",\"img\":\"https://framerusercontent.com/images/V6F6MmOz0yYocntSYdagH0c6yk.webp\",\"f6\":\"photo\",\"f7\":\"#E0435B\",\"f8\":\"Packaging, 3D configurator\",\"f9\":\"4 people\",\"f10\":\"1 in 5 visitors used the configurator\",\"n1\":\"2\"},{\"slug\":\"nord-brand-identity\",\"f1\":\"Nord\",\"f2\":\"Nord Coffee\",\"f3\":\"Brand \\xb7 Identity\",\"f4\":\"2025\",\"f5\":\"Identity, packaging and type system for a Nordic roaster.\",\"img\":\"https://framerusercontent.com/images/0xS7DiKB6Qv3iIrl5djSaB9cfA.webp\",\"f6\":\"brand\",\"f7\":\"#E8583A\",\"f8\":\"Identity, packaging, type\",\"f9\":\"2 people\",\"f10\":\"Stocked in 40 caf\\xe9s in year one\",\"n1\":\"3\"},{\"slug\":\"atlas-dev-platform\",\"f1\":\"Atlas\",\"f2\":\"Atlas Cloud\",\"f3\":\"Web \\xb7 Front-end\",\"f4\":\"2024\",\"f5\":\"Marketing site and docs built in Next.js with a live code playground.\",\"img\":\"https://framerusercontent.com/images/HCyXSnJj8tsOubkimG9feSzY.webp\",\"f6\":\"code\",\"f7\":\"#3DDC84\",\"f8\":\"Front-end lead\",\"f9\":\"5 people\",\"f10\":\"Docs load 3\\xd7 faster\",\"n1\":\"4\"},{\"slug\":\"print-colour-system\",\"f1\":\"Chroma\",\"f2\":\"Studio Chroma\",\"f3\":\"Brand \\xb7 Colour system\",\"f4\":\"2024\",\"f5\":\"A colour system that works on screen and on paper.\",\"img\":\"https://framerusercontent.com/images/ExoxWkFXM2Zkwx5XnEk8MdUY59w.webp\",\"f6\":\"photo\",\"f7\":\"#FFB224\",\"f8\":\"Colour system\",\"f9\":\"1 designer\",\"f10\":\"One palette for screen and print\",\"n1\":\"5\"},{\"slug\":\"type-poster-series\",\"f1\":\"Violet\",\"f2\":\"Violet Magazine\",\"f3\":\"Editorial \\xb7 Art direction\",\"f4\":\"2024\",\"f5\":\"Art direction and layouts for a fashion quarterly.\",\"img\":\"https://framerusercontent.com/images/ogU1zLwwfiOf77V1AWCdup1V0.webp\",\"f6\":\"poster\",\"f7\":\"#22C3EE\",\"f8\":\"Art direction, layout\",\"f9\":\"2 people\",\"f10\":\"Issue 12 sold out\",\"n1\":\"6\"},{\"slug\":\"loop-banking-app\",\"f1\":\"Loop\",\"f2\":\"Loop Bank\",\"f3\":\"Product \\xb7 Mobile app\",\"f4\":\"2026\",\"f5\":\"A banking app that turns spending into a weekly story.\",\"img\":\"https://framerusercontent.com/images/aCXktoLBfWbawiZ7GZnH7tUqE.webp\",\"f6\":\"app\",\"f7\":\"#22C3EE\",\"f8\":\"Product design, prototyping\",\"f9\":\"6 people\",\"f10\":\"4.8★ on the App Store\",\"n1\":\"7\"},{\"slug\":\"pulse-dashboard\",\"f1\":\"Pulse\",\"f2\":\"Pulse Analytics\",\"f3\":\"Product \\xb7 Design system\",\"f4\":\"2025\",\"f5\":\"A dashboard and 140-component design system in Figma and React.\",\"img\":\"https://framerusercontent.com/images/VJUprwfcrDZhu5hrAX7RykPiVU.webp\",\"f6\":\"dash\",\"f7\":\"#A58BFF\",\"f8\":\"Design system, React\",\"f9\":\"4 people\",\"f10\":\"140 components, 1 source\",\"n1\":\"8\"}]};const SW_BUILD=\"MvFooter@cms1\";// An override control wins only when it holds real text; empty (or a single space) inherits from the CMS.\nconst pick=(o,fb)=>o!==undefined&&o!==null&&String(o).trim()?String(o).trim():fb;const imgOf=(r,k=\"img\")=>String(r&&r[k]||\"\").split(\"?\")[0];// A cleared CMS image draws this quiet placeholder — never a stock photo, and list positions stay aligned with their rows.\nconst EMPTY_IMG=\"data:image/svg+xml;utf8,\"+encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='xMidYMid slice'><rect width='400' height='500' fill='#D3D8E2'/><rect x='120' y='170' width='160' height='160' rx='8' fill='none' stroke='#AEB6C6' stroke-width='1.5'/><rect x='100' y='150' width='200' height='200' rx='10' fill='none' stroke='#C3CAD8' stroke-width='1' stroke-dasharray='2 6'/></svg>\");const imgOr=(r,k=\"img\")=>imgOf(r,k)||EMPTY_IMG;const cmsNum=(r,k,fb=0)=>{const v=parseFloat(String((r&&r[k])??\"\"));return isFinite(v)?v:fb;};const useIso=typeof window===\"undefined\"?useEffect:useLayoutEffect;function readCMS(kind){if(typeof document===\"undefined\")return null;if(!document.querySelector('[data-mv-row=\"bridge\"]'))return null;const seen=new Set;const out=[];document.querySelectorAll(`[data-mv-row=\"${kind}\"]`).forEach(el=>{const o={};for(const a of Array.from(el.attributes))if(a.name.startsWith(\"data-\"))o[a.name.slice(5)]=a.value;const key=o.slug||JSON.stringify(o);if(seen.has(key))return;seen.add(key);out.push(o);});return out.sort((a,b)=>(parseFloat(a.n1)||0)-(parseFloat(b.n1)||0));}function useCMS(kind,fallback){const[rows,setRows]=useState(fallback);const sig=useRef(\"\");useIso(()=>{let n=0,t=0,ok=0;try{const w=window;if(!w.__ltCms||typeof w.__ltCms!==\"object\")w.__ltCms={};w.__ltCms[SW_BUILD]=1;}catch(e){}const pull=()=>{const r=readCMS(kind);if(!r)return false;const s=JSON.stringify(r);if(s!==sig.current){sig.current=s;setRows(r);}return true;};const mo=new MutationObserver(()=>{if(pull()){ok++;if(ok>2)mo.disconnect();}});mo.observe(document.body,{childList:true,subtree:true});if(pull())ok++;const poll=()=>{if(n++<30){pull();t=window.setTimeout(poll,150);}};t=window.setTimeout(poll,150);return()=>{mo.disconnect();window.clearTimeout(t);};},[kind]);return rows;}// The one-row Site collection holds every site-wide fact (name, role, contact, availability, resume link). A section's \"… Override\" control only replaces it on that one section.\nfunction useSite(){const r=useCMS(\"site\",SEED.site||[]);const s=r[0]||(SEED.site||[])[0]||{};const g=k=>String(s[k]??\"\").trim();return{name:g(\"f1\")||\"Josh Barnes\",role:g(\"f2\"),tagline:g(\"f3\"),email:g(\"f4\"),city:g(\"f5\"),tz:g(\"f6\")||\"Europe/Berlin\",avail:g(\"f7\"),resume:g(\"f8\")||\"/resume\",socials:g(\"f9\"),years:g(\"f10\"),book:g(\"f11\")||\"/contact\"};}const linkList=s=>String(s||\"\").split(\",\").map(x=>x.trim()).filter(Boolean).map(x=>{const i=x.indexOf(\":\");return{l:i<0?x:x.slice(0,i).trim(),h:i<0?\"/\":x.slice(i+1).trim()};});const listOf=s=>String(s||\"\").split(\";\").map(x=>x.trim()).filter(Boolean);// The row a CMS detail page is about: the bound Slug control wins (server render included), else the last URL segment, else the first row.\nfunction useRow(kind,fallback,slug){const rows=useCMS(kind,fallback);const[path,setPath]=useState(\"\");useEffect(()=>{try{setPath(decodeURIComponent(window.location.pathname.split(\"/\").filter(Boolean).pop()||\"\"));}catch(e){}},[]);const want=String(slug||\"\").trim()||path;const row=rows.find(r=>r.slug===want)||rows[0]||{};return{row,rows};}const crumbs=s=>linkList(s);// Open now? Open Hours = \"1-6 07:00-19:00\" (weekday numbers, Mon = 1 … Sun = 7) evaluated in the Site Time Zone.\nfunction openState(spec,tz){try{const m=String(spec||\"\").match(/(\\d)\\s*-\\s*(\\d)\\s+(\\d{1,2}):(\\d{2})\\s*-\\s*(\\d{1,2}):(\\d{2})/);if(!m)return null;const parts=new Intl.DateTimeFormat(\"en-US\",{timeZone:tz||\"UTC\",weekday:\"short\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).formatToParts(new Date);const g=t=>(parts.find(p=>p.type===t)||{value:\"\"}).value;const wd=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"].indexOf(g(\"weekday\"))+1;const mins=Number(g(\"hour\"))%24*60+Number(g(\"minute\"));const d1=Number(m[1]),d2=Number(m[2]),a=Number(m[3])*60+Number(m[4]),b=Number(m[5])*60+Number(m[6]);const open=wd>=d1&&wd<=d2&&mins>=a&&mins<b;return{open,label:open?`Open \\xb7 till ${m[5].padStart(2,\"0\")}:${m[6]}`:`Closed \\xb7 opens ${m[3].padStart(2,\"0\")}:${m[4]}`};}catch(e){return null;}}// ---- THE WRAP: the footer waits behind the CTA (Reveal curtain) and a production SLATE is uncovered with it. While the curtain lifts the\n// clapper arm opens wider (--rv); once the footer is almost fully uncovered the arm SNAPS shut with a small white flash and the take number\n// counts up (scroll back up and it re-arms for the next take). Hover the slate: the arm lifts a little. Still / reduced motion = clapped. ----\nexport default function MvFooter(props){const{reveal=true,layer=9,heading=\"That's a *wrap*.\",lead=\"Thanks for watching to the end. Say hello, I read every message and reply within a day.\",emailLabel=\"Write to me\",prodLabel=\"Prod.\",prod=\"Portfolio 2026\",sceneLabel=\"Scene\",scene=\"Footer\",takeLabel=\"Take\",take=\"1\",rollLabel=\"Roll\",roll=\"A-09\",directorLabel=\"Director\",dateLabel=\"Date\",buildLabel=\"Build\",build=\"main \\xb7 9f3c1a\",workTitle=\"Work\",pagesTitle=\"Pages\",pages=\"About:/about, R\\xe9sum\\xe9:/resume, Lab:/lab, Writing:/writing, Contact:/contact\",elsewhereTitle=\"Elsewhere\",legal=\"Privacy:/privacy, Terms:/terms\",timeLabel=\"Local time\",topLabel=\"Back to top\",bpHint=\"auto\"}=props;const c=colorsOf(props);const{D,B,M}=fontsOf(props);useFonts();const live=useLive();const rm=useReduced();const still=useStill();const site=useSite();const Dh={...D,fontWeight:props.customFonts?D.fontWeight:\"var(--mv-font-dw, 740)\"};const root=useRef(null);const slate=useRef(null);const{w}=useSize(root,bpHint);const phone=w<810,tab=w>=810&&w<1100;useMagnet(root,live);const on=useOn(root,live,rm,.05);const projects=useCMS(\"projects\",SEED.projects||[]);const anim=live&&!rm&&!still;const t0=Math.max(1,parseInt(take,10)||1);const[clap,setClap]=useState(false);const[tk,setTk]=useState(t0);const[flash,setFlash]=useState(0);useEffect(()=>{setTk(t0);},[t0]);// the clap: fires once the curtain has (almost) fully lifted; re-arms when the footer is covered again\nuseEffect(()=>{if(!anim||!slate.current||!root.current)return;const sl=slate.current,el=root.current;let st=false,gate=0,open=0,since=0;const read=()=>{const rev=el.closest(\".mv-rev\");const act=!!(rev&&rev.classList.contains(\"is-act\"));const r=sl.getBoundingClientRect();const vh=window.innerHeight||1;const vis=clamp01((vh-r.top)/Math.max(1,r.height));if(act&&rev){const rv=parseFloat(rev.style.getPropertyValue(\"--rv\")||\"0\");gate=rv>.985&&vis>.9?1:0;open=rv<.5||vis<.1?1:0;}else{gate=vis>.85?1:0;open=vis<.08?1:0;}};const off=onTick(t=>{if(!gate)since=0;else if(!since)since=t;if(!st&&gate&&t-since>260){st=true;setClap(true);setFlash(f=>f+1);}else if(st&&open){st=false;setClap(false);setTk(n=>n+1);}},read);return()=>off();},[anim]);const shut=clap||!anim;const[year,setYear]=useState(\"2026\");const[now,setNow]=useState(\"--:--\");const[today,setToday]=useState(\"\");useEffect(()=>{if(!live)return;const d=new Date;setYear(String(d.getFullYear()));try{setToday(new Intl.DateTimeFormat(\"en-GB\",{day:\"2-digit\",month:\"2-digit\",year:\"2-digit\"}).format(d).replace(/\\//g,\".\"));}catch(e){}const f=()=>{try{setNow(new Intl.DateTimeFormat(\"en-GB\",{timeZone:site.tz||\"Europe/Berlin\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).format(new Date));}catch(e){}};f();const id=window.setInterval(f,15e3);return()=>window.clearInterval(id);},[live,site.tz]);const toTop=e=>{e.preventDefault();const W=window;const L=W.__ltLenis;if(L&&L.scrollTo)L.scrollTo(0);else window.scrollTo({top:0,behavior:rm?\"auto\":\"smooth\"});try{(document.querySelector(\".mvhd-logo\")||document.querySelector(\"a[href]:not(.mvhd-skip),button\"))?.focus({preventScroll:true});}catch(x){}};const socials=linkList(site.socials);const cols=[{t:workTitle,l:projects.slice(0,5).map(p=>({l:p.f1,h:`/work/${p.slug}`,s:p.f3})),ext:false},{t:pagesTitle,l:linkList(pages).map(x=>({...x,s:\"\"})),ext:false},{t:elsewhereTitle,l:socials.map(x=>({...x,s:\"\"})),ext:true}].filter(x=>x.t&&x.l.length);const F=({k,v,cls})=>/*#__PURE__*/_jsxs(\"div\",{className:`mvft-f${cls?\" \"+cls:\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{style:M,children:k}),/*#__PURE__*/_jsx(\"b\",{style:Dh,children:v})]});const body=/*#__PURE__*/_jsxs(\"section\",{ref:root,className:`mv mv-sec mv-dark mvft${phone?\" is-ph\":tab?\" is-tab\":\"\"}${on?\" is-on\":\"\"}${anim?\" is-anim\":\"\"}${shut?\" is-clap\":\"\"}`,style:{...cssVars(c),...B,...props.style||{}},children:[/*#__PURE__*/_jsx(\"link\",{rel:\"stylesheet\",href:FONTS}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS_BASE+CSS_MOTION+CSS_FOOTER+siteFontCss(props)}}),/*#__PURE__*/_jsxs(\"div\",{className:\"mv-wrap\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-top\",children:[/*#__PURE__*/_jsxs(\"div\",{ref:slate,className:\"mvft-slate\",style:rise(on,0,18),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-sticks\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{className:\"mvft-arm\",children:/*#__PURE__*/_jsx(\"b\",{})}),/*#__PURE__*/_jsx(\"i\",{className:\"mvft-base\",children:/*#__PURE__*/_jsx(\"b\",{})}),/*#__PURE__*/_jsx(\"i\",{className:\"mvft-hinge\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-board\",children:[/*#__PURE__*/_jsx(F,{k:prodLabel,v:prod,cls:\"is-wide\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-row3\",children:[/*#__PURE__*/_jsx(F,{k:sceneLabel,v:scene}),/*#__PURE__*/_jsx(F,{k:takeLabel,v:/*#__PURE__*/_jsx(\"span\",{className:\"mvft-tk\",children:tk},tk)}),/*#__PURE__*/_jsx(F,{k:rollLabel,v:roll})]}),/*#__PURE__*/_jsx(F,{k:directorLabel,v:site.name,cls:\"is-wide\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-row2\",children:[/*#__PURE__*/_jsx(F,{k:dateLabel,v:today||\"\\xa0\"}),/*#__PURE__*/_jsx(F,{k:buildLabel,v:/*#__PURE__*/_jsx(\"span\",{className:\"mvft-code\",style:M,children:build})})]})]}),/*#__PURE__*/_jsx(\"i\",{className:`mvft-flash${flash?\" is-go\":\"\"}`,\"aria-hidden\":true},flash)]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-say\",children:[/*#__PURE__*/_jsx(Head,{text:heading,on:on,D:Dh,size:\"clamp(40px,4.3vw,64px)\",lh:.95,delay:120}),lead&&/*#__PURE__*/_jsx(\"p\",{className:\"mvft-lead\",style:rise(on,260),children:lead}),site.email&&/*#__PURE__*/_jsxs(\"p\",{className:\"mvft-mailw\",style:rise(on,340),children:[/*#__PURE__*/_jsx(\"span\",{style:M,children:emailLabel}),/*#__PURE__*/_jsxs(\"a\",{className:\"mvft-mail\",href:`mailto:${site.email}`,style:Dh,children:[site.email,/*#__PURE__*/_jsx(IcoArrow,{s:20})]})]})]})]}),/*#__PURE__*/_jsx(\"nav\",{className:\"mvft-cols\",\"aria-label\":\"Footer\",children:cols.map((col,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-col\",style:rise(on,380+i*80),children:[/*#__PURE__*/_jsx(\"h3\",{className:\"mvft-ct\",style:M,children:col.t}),/*#__PURE__*/_jsx(\"ul\",{children:col.l.map((l,j)=>/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsxs(\"a\",{href:l.h,target:col.ext?\"_blank\":undefined,rel:col.ext?\"noopener\":undefined,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mvft-ll\",children:l.l}),l.s?/*#__PURE__*/_jsx(\"em\",{style:M,children:l.s}):null,/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true,children:col.ext?\"↗\":\"→\"})]})},j))})]},i))}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvft-legal\",style:M,children:[/*#__PURE__*/_jsxs(\"span\",{children:[\"\\xa9 \",year,\" \",site.name]}),/*#__PURE__*/_jsx(\"ul\",{children:linkList(legal).map((l,i)=>/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"a\",{href:l.h,children:l.l})},i))}),/*#__PURE__*/_jsxs(\"span\",{className:\"mvft-time\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"mv-port\",\"aria-hidden\":true}),timeLabel,\" \",now,site.city?` \\xb7 ${site.city}`:\"\"]}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"mvft-top-btn\",onClick:toTop,children:[topLabel,\" \",/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,children:\"↑\"})]})]})]})]});return reveal?/*#__PURE__*/_jsx(Reveal,{on:reveal,layer:layer,children:body}):body;}const CSS_FOOTER=`\n.mvft{background:var(--mv-night);color:var(--mv-cloud);padding:clamp(88px,8vw,128px) 0 26px;overflow:clip;--line:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chalk:color-mix(in srgb,var(--mv-cloud) 82%,transparent)}\n.mvft .mv-hd{font-stretch:115%;letter-spacing:-.04em}\n.mvft .mv-it{font-weight:inherit}\n.mvft-top{display:grid;grid-template-columns:clamp(340px,34vw,500px) minmax(0,1fr);gap:clamp(40px,6vw,120px);align-items:end;padding-bottom:clamp(56px,6vw,96px);border-bottom:1px solid var(--line)}\n/* THE SLATE */\n.mvft-slate{position:relative;padding-top:clamp(52px,5vw,70px)}\n.mvft-sticks{position:absolute;left:0;right:0;top:0;height:clamp(52px,5vw,70px)}\n.mvft-arm,.mvft-base{position:absolute;left:0;right:0;height:calc(50% - 2px);border-radius:4px 4px 2px 2px;overflow:hidden;background:var(--mv-ink);box-shadow:inset 0 0 0 1.5px var(--chalk)}\n.mvft-arm b,.mvft-base b{position:absolute;inset:0;background:repeating-linear-gradient(118deg,var(--mv-cloud) 0 28px,var(--mv-ink) 28px 56px)}\n.mvft-base{bottom:0} .mvft-base b{background-position:-14px 0}\n.mvft-arm{top:2px;transform-origin:14px 100%;rotate:-24deg;box-shadow:inset 0 0 0 1.5px var(--chalk),0 10px 18px -8px rgba(0,0,0,.6)}\n/* live: the arm opens wider as the curtain lifts (--rv from Reveal), then snaps shut */\n.mvft.is-anim .mvft-arm{rotate:calc(-12deg - var(--rv,1)*12deg);transition:rotate .5s cubic-bezier(.2,.8,.2,1)}\n.mvft.is-clap .mvft-arm{rotate:0deg;transition:rotate .16s cubic-bezier(.7,0,1,.6)}\n.mvft.is-clap .mvft-slate:hover .mvft-arm{rotate:-7deg;transition:rotate .45s cubic-bezier(.34,1.56,.64,1)}\n.mvft-hinge{position:absolute;left:6px;top:calc(50% - 7px);width:14px;height:14px;border-radius:50%;background:var(--mv-cloud);box-shadow:0 0 0 3px var(--mv-ink),inset 0 0 0 3px color-mix(in srgb,var(--mv-stone) 70%,var(--mv-ink))}\n.mvft-board{position:relative;display:flex;flex-direction:column;border-radius:4px 4px 8px 8px;background:color-mix(in srgb,var(--mv-ink) 88%,#000);box-shadow:inset 0 0 0 1.5px var(--chalk),0 30px 60px -30px rgba(0,0,0,.8);overflow:hidden}\n.mvft.is-clap.is-anim .mvft-board{animation:mvft-hit .32s cubic-bezier(.3,0,.2,1) .12s}\n@keyframes mvft-hit{0%{translate:0 0}35%{translate:0 3px}100%{translate:0 0}}\n.mvft-board::before{content:\"\";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 70% at 20% 0%,rgba(255,241,218,.07),transparent 60%);mix-blend-mode:screen}\n.mvft-f{display:flex;flex-direction:column;gap:6px;padding:12px 16px 14px;min-width:0}\n.mvft-f>span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--mv-cloud) 62%,transparent)}\n.mvft-f b{font-size:clamp(20px,1.7vw,28px);line-height:1.05;letter-spacing:-.02em;font-stretch:110%;color:var(--chalk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.mvft-f.is-wide+.mvft-row3,.mvft-row3+.mvft-f,.mvft-f.is-wide+.mvft-row2{border-top:1.5px solid var(--chalk)}\n.mvft-row3,.mvft-row2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))} .mvft-row2{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}\n.mvft-row3>.mvft-f+.mvft-f,.mvft-row2>.mvft-f+.mvft-f{border-left:1.5px solid var(--chalk)}\n.mvft-row3 .mvft-f b{font-size:clamp(24px,2.2vw,36px)}\n.mvft-tk{display:inline-block;color:var(--mv-brass);animation:mvft-tk .5s cubic-bezier(.2,.8,.2,1)} @keyframes mvft-tk{from{translate:0 60%;opacity:0}}\n.mvft-code{font-size:13px;letter-spacing:.02em;color:var(--mv-brass)}\n.mvft-flash{position:absolute;inset:-14px;z-index:3;border-radius:14px;pointer-events:none;background:radial-gradient(closest-side,#FFFFFF,rgba(255,241,218,.7) 45%,transparent);opacity:0}\n.mvft-flash.is-go{animation:mvft-fl .5s ease-out .12s}\n@keyframes mvft-fl{0%{opacity:.75}100%{opacity:0}}\n/* the words */\n.mvft-say{display:flex;flex-direction:column;gap:22px;padding-bottom:6px}\n.mvft-lead{margin:0;max-width:44ch;font-size:17px;line-height:1.55;color:color-mix(in srgb,var(--mv-cloud) 78%,transparent)}\n.mvft-mailw{display:flex;flex-direction:column;gap:8px;margin:6px 0 0} .mvft-mailw>span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--mv-cloud) 62%,transparent)}\n.mvft-mail{align-self:flex-start;display:inline-flex;align-items:center;gap:12px;max-width:100%;font-size:clamp(22px,2.2vw,34px);letter-spacing:-.025em;font-stretch:110%;text-decoration:none;background:linear-gradient(var(--mv-brass),var(--mv-brass)) 0 100%/0% 2px no-repeat;padding-bottom:4px;transition:background-size .5s steps(8,end),color .3s;overflow-wrap:anywhere}\n.mvft-mail svg{flex:none;transition:transform .45s cubic-bezier(.34,1.56,.64,1)} .mvft-mail:hover,.mvft-mail:focus-visible{background-size:100% 2px;color:var(--mv-brass)} .mvft-mail:hover svg{transform:rotate(-45deg)}\n/* columns */\n.mvft-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);padding:clamp(48px,5vw,72px) 0}\n.mvft-ct{margin:0 0 18px;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--mv-cloud) 62%,transparent)}\n.mvft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}\n.mvft-col a{position:relative;display:flex;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:16px;transition:color .3s}\n.mvft-ll{position:relative;padding:0 .12em;margin:0 -.12em;background:linear-gradient(var(--mv-brass),var(--mv-brass)) 0 0/0% 100% no-repeat;transition:background-size .4s steps(6,end),color .25s}\n.mvft-col a:hover .mvft-ll,.mvft-col a:focus-visible .mvft-ll{background-size:100% 100%;color:var(--mv-ink)}\n.mvft-col em{font-style:normal;font-size:11px;letter-spacing:.06em;color:color-mix(in srgb,var(--mv-cloud) 55%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.mvft-col i{margin-left:auto;font-style:normal;opacity:0;translate:-6px 0;transition:opacity .3s,translate .3s} .mvft-col a:hover i,.mvft-col a:focus-visible i{opacity:1;translate:0 0}\n/* legal */\n.mvft-legal{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;padding-top:22px;border-top:1px solid var(--line);font-size:11.5px;letter-spacing:.06em;color:color-mix(in srgb,var(--mv-cloud) 70%,transparent)}\n.mvft-legal ul{display:flex;gap:22px;list-style:none;margin:0;padding:0} .mvft-legal a{text-decoration:none} .mvft-legal a:hover{color:var(--mv-cloud);text-decoration:underline;text-underline-offset:3px}\n.mvft-time{display:inline-flex;align-items:center;gap:8px;margin-left:auto}\n.mvft-top-btn{appearance:none;border:0;font:inherit;letter-spacing:inherit;color:var(--mv-cloud);display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:10px;background:color-mix(in srgb,var(--mv-cloud) 8%,transparent);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;transition:background .3s,color .3s}\n.mvft-top-btn:hover{background:var(--mv-brass);color:var(--mv-ink)} .mvft-top-btn span{transition:translate .35s cubic-bezier(.34,1.56,.64,1)} .mvft-top-btn:hover span{translate:0 -3px}\n/* tablet + phone */\n.mvft.is-tab .mvft-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}\n.mvft.is-ph{padding:72px 0 22px}\n.mvft.is-ph .mvft-top{grid-template-columns:minmax(0,1fr);gap:44px}\n.mvft.is-ph .mvft-say{order:-1}\n.mvft.is-ph .mvft-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px 20px} .mvft.is-ph .mvft-col:first-child{grid-column:1/-1}\n.mvft.is-ph .mvft-f{padding:10px 12px 12px} .mvft.is-ph .mvft-f b{font-size:20px} .mvft.is-ph .mvft-row3 .mvft-f b{font-size:24px}\n/* the Framer badge (free-plan publish only) sits bottom-right over the legal row: lift the row clear of it so \"Back to top\" is never covered */\nbody:has(#__framer-badge-container) .mvft:not(.is-ph){padding-bottom:72px}\n.mvft.is-ph .mvft-legal{gap:12px 20px} .mvft.is-ph .mvft-time{margin-left:0;width:100%}\n`;addPropertyControls(MvFooter,{...COLOR_CONTROLS,...FONT_CONTROLS,...BP_CONTROL,...REVEAL_CONTROLS,heading:{type:ControlType.String,title:\"Heading\",description:\"| = line break, *word* = accent\",defaultValue:\"That's a *wrap*.\"},lead:{type:ControlType.String,title:\"Lead\",displayTextArea:true,defaultValue:\"Thanks for watching to the end. Say hello, I read every message and reply within a day.\"},emailLabel:{type:ControlType.String,title:\"Email label\",defaultValue:\"Write to me\"},prodLabel:{type:ControlType.String,title:\"Slate: prod label\",defaultValue:\"Prod.\"},prod:{type:ControlType.String,title:\"Slate: production\",defaultValue:\"Portfolio 2026\"},sceneLabel:{type:ControlType.String,title:\"Slate: scene label\",defaultValue:\"Scene\"},scene:{type:ControlType.String,title:\"Slate: scene\",defaultValue:\"Footer\"},takeLabel:{type:ControlType.String,title:\"Slate: take label\",defaultValue:\"Take\"},take:{type:ControlType.String,title:\"Slate: first take\",description:\"Counts up each time the slate claps\",defaultValue:\"1\"},rollLabel:{type:ControlType.String,title:\"Slate: roll label\",defaultValue:\"Roll\"},roll:{type:ControlType.String,title:\"Slate: roll\",defaultValue:\"A-09\"},directorLabel:{type:ControlType.String,title:\"Slate: director label\",description:\"The name comes from the Site CMS row\",defaultValue:\"Director\"},dateLabel:{type:ControlType.String,title:\"Slate: date label\",description:\"Shows today's date\",defaultValue:\"Date\"},buildLabel:{type:ControlType.String,title:\"Slate: build label\",defaultValue:\"Build\"},build:{type:ControlType.String,title:\"Slate: build\",defaultValue:\"main \\xb7 9f3c1a\"},workTitle:{type:ControlType.String,title:\"Work title\",description:\"Lists the first 5 Projects\",defaultValue:\"Work\"},pagesTitle:{type:ControlType.String,title:\"Pages title\",defaultValue:\"Pages\"},pages:{type:ControlType.String,title:\"Pages\",description:\"Label:/path, …\",defaultValue:\"About:/about, R\\xe9sum\\xe9:/resume, Lab:/lab, Writing:/writing, Contact:/contact\"},elsewhereTitle:{type:ControlType.String,title:\"Elsewhere title\",description:\"Lists the Socials on the Site CMS row\",defaultValue:\"Elsewhere\"},legal:{type:ControlType.String,title:\"Legal links\",description:\"Label:/path, …\",defaultValue:\"Privacy:/privacy, Terms:/terms\"},timeLabel:{type:ControlType.String,title:\"Time label\",defaultValue:\"Local time\"},topLabel:{type:ControlType.String,title:\"Top button\",defaultValue:\"Back to top\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MvFooter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MvFooter.map","// ===== JOSH BARNES shared scaffold (THE CANVAS: graphite design-tool canvas, paper sections, selection-cyan, SELECTION buttons) (inlined by mk.py; each Framer code file must be self-contained) =====\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const FONTS=\"https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,75..125,200..900;1,75..125,200..900&family=Chivo+Mono:ital,wght@0,300..600;1,300..600&display=swap\";// Token-safe alpha: Styles-bound colours arrive as var(--token-…) so hex-alpha breaks; color-mix keeps a palette flip working. Never 0% (hue drops) — floor at 0.4%.\nconst A=(c,a)=>`color-mix(in srgb, ${c} ${Math.max(.4,Math.round(a*1e3)/10)}%, transparent)`;const MIX=(a,b,t)=>`color-mix(in srgb, ${a} ${Math.round((1-t)*100)}%, ${b})`;const srcOf=(v,fallback)=>v&&typeof v===\"object\"&&v.src?String(v.src).split(\"?\")[0]:typeof v===\"string\"&&v.trim()?v.trim().split(\"?\")[0]:fallback;const T=(s,fb)=>s&&s.trim()?s.trim():fb;// ink or white text on a CMS brand colour (luminance test; the brand colour is data, not a palette token)\nconst onBrand=hex=>{const m=String(hex||\"\").replace(\"#\",\"\").match(/^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(!m)return\"var(--mv-cloud)\";const[r,g,b]=[m[1],m[2],m[3]].map(x=>{const v=parseInt(x,16)/255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);});const L=.2126*r+.7152*g+.0722*b;return L>.2?\"var(--mv-ink)\":\"var(--mv-cloud)\";};const cleanTel=s=>s.replace(/[^\\d+]/g,\"\");// Premium layout band (measured 09-13): container 1340 @1440 / 1520 @1920, body 16, button label 12–13.\nconst MAXW=\"clamp(1280px, 92vw, 1520px)\";// Responsive delivery: Framer's resizer serves any upload at ?scale-down-to=N (longest side). The query is stripped first so one file never downloads twice.\n// Responsive delivery. Framer uploads: the resizer serves ?scale-down-to=N. Unsplash stand-ins: ?w=N. The src is already the smallest width that covers the slot (a 52px avatar never pulls a 1600px photo), so a big image is never decoded for a small box — decode is what stalls scrolling.\nconst RS_W=[160,320,480,800,1200,1600];const rsTarget=sizes=>{const t=String(sizes||\"\").trim().split(\",\").pop()||\"\";const px=t.match(/(\\d+(?:\\.\\d+)?)px/);const vw=t.match(/(\\d+(?:\\.\\d+)?)vw/);const want=px?parseFloat(px[1])*2:vw?parseFloat(vw[1])/100*1600*1.25:1600;return RS_W.find(w=>w>=want)||1600;};const RS=(u,sizes)=>{const s=String(u||\"\");const b=s.split(\"?\")[0];if(/framerusercontent\\.com\\/images\\//.test(s)){const w=rsTarget(sizes);const d=w<=512?512:w<=1024?1024:2048;return{src:`${b}?scale-down-to=${d}`,srcSet:`${b}?scale-down-to=512 512w, ${b}?scale-down-to=1024 1024w, ${b}?scale-down-to=2048 2048w`,sizes};}if(/images\\.unsplash\\.com\\//.test(s)){const w=rsTarget(sizes);const q=n=>`${b}?w=${n}&q=70&fm=jpg&auto=format`;return{src:q(w),srcSet:RS_W.filter(n=>n<=Math.max(w*2,480)).map(n=>`${q(n)} ${n}w`).join(\", \"),sizes};}return{src:s};};// A Framer Font control stores a selector (GF;Family-700), not a CSS family — derive one, reject anything with ';'\nconst famOf=f=>{if(!f)return\"\";if(typeof f===\"string\")return f.includes(\";\")?\"\":f;if(f.fontFamily&&!String(f.fontFamily).includes(\";\"))return String(f.fontFamily);const sel=String(f.fontSelector||\"\");if(!sel)return\"\";const n=sel.split(\";\").pop()||\"\";return n.replace(/-(regular|italic|bold|\\d{3}(italic)?)$/i,\"\").replace(/-/g,\" \");};const wOf=(f,fb)=>{if(!f)return fb;if(f.fontWeight)return Number(f.fontWeight)||fb;const m=String(f.fontSelector||\"\").match(/-(\\d{3})/);return m?Number(m[1]):fb;};// famCss: Framer's Font `fontFamily` is ALREADY a stack — never wrap it in quotes (one fake family → fallback renders). A bare name gets quoted.\nconst famCss=f=>{const fa=famOf(f).replace(/\"/g,\"'\").trim();if(!fa)return\"\";return fa.includes(\",\")||fa.startsWith(\"'\")?fa:`'${fa}'`;};const stack=(custom,f,fb,tail)=>{const fam=custom?famCss(f):\"\";return`${fam?`${fam}, `:\"\"}${fb}, ${tail}`;};function useFonts(){useEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"mv-fonts\"))return;const l=document.createElement(\"link\");l.id=\"mv-fonts\";l.rel=\"stylesheet\";l.href=FONTS;document.head.appendChild(l);},[]);}// live = client after hydration and not on the canvas. SSR and the first client render share the same markup.\n// TRUE on the Framer canvas AND in its export / thumbnail / screenshot renderers (anything that is not the running preview): no scroll and no hydration there, so every reveal / pinned stage must draw its FINAL state or the editor shows empty blocks.\nfunction useStill(){const isStatic=useIsStaticRenderer();let t=null;try{t=RenderTarget.current();}catch(e){}return isStatic||t!==null&&t!==RenderTarget.preview;}function useLive(){const isStatic=useIsStaticRenderer();const[live,setLive]=useState(false);useEffect(()=>{if(!isStatic&&RenderTarget.current()!==RenderTarget.canvas&&typeof window!==\"undefined\")setLive(true);},[isStatic]);return live;}// Width/height of the root + viewport height. SSR starts from the breakpoint hint (Framer renders the Tablet/Phone copies with the same code and no width).\nfunction useSize(root,hint){const ov=String(hint||\"\").toLowerCase();const[w,setW]=useState(ov===\"phone\"?390:ov===\"tablet\"?810:1440),[vh,setVh]=useState(ov===\"phone\"?844:ov===\"tablet\"?1080:900);useLayoutEffect(()=>{const el=root.current;if(!el)return;const ro=new ResizeObserver(([e])=>{const x=Math.round((e.borderBoxSize&&e.borderBoxSize[0]?e.borderBoxSize[0].inlineSize:0)||el.offsetWidth);if(x>0)setW(x);});ro.observe(el);const vv=()=>setVh(window.innerHeight);vv();const read=()=>{const x=Math.round(el.offsetWidth);if(x>0)setW(x);};const t1=window.setTimeout(read,150),t2=window.setTimeout(read,700),t3=window.setTimeout(read,1600);window.addEventListener(\"resize\",vv);window.addEventListener(\"load\",read);return()=>{ro.disconnect();window.clearTimeout(t1);window.clearTimeout(t2);window.clearTimeout(t3);window.removeEventListener(\"resize\",vv);window.removeEventListener(\"load\",read);};},[]);return{w,vh};}const useReduced=()=>{const[rm,setRm]=useState(false);useLayoutEffect(()=>{setRm(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);},[]);return rm;};// One shared rAF for every section. Each frame runs ALL reads first (layout reads: getBoundingClientRect, offsetHeight), then ALL writes (CSS vars, transforms).\n// Interleaving read → write → read made the browser recalc the whole page's style once per section per frame (layout thrashing: 20+ recalcs a frame).\nfunction onTick(fn,read,pre){if(typeof window===\"undefined\")return()=>{};const w=window;if(!w.__nuTick){w.__nuTick={pre:new Set,subs:new Set,reads:new Set,raf:0};const loop=t=>{const T=w.__nuTick;T.pre.forEach(r=>r(t));T.reads.forEach(r=>r(t));T.subs.forEach(s=>s(t));T.raf=requestAnimationFrame(loop);};w.__nuTick.raf=requestAnimationFrame(loop);}w.__nuTick.subs.add(fn);if(read)w.__nuTick.reads.add(read);if(pre)w.__nuTick.pre.add(pre);return()=>{w.__nuTick.subs.delete(fn);if(read)w.__nuTick.reads.delete(read);if(pre)w.__nuTick.pre.delete(pre);};}const clamp01=v=>Math.min(1,Math.max(0,v));const easeIO=t=>{const x=clamp01(t);return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;};const DEF={bone:\"#F1ECE4\",ink:\"#141210\",brass:\"#4D9FFF\",pine:\"#231D19\",fog:\"#DDD4C8\",stone:\"#857B70\",cloud:\"#FFFFFF\",night:\"#171311\"};// collaborator cursor colours (constants, not tokens): the client and the developer on the canvas\nconst AMBER=\"#FFB224\",VIOLET=\"#A58BFF\";const colorsOf=p=>({bone:p.bone||DEF.bone,ink:p.ink||DEF.ink,brass:p.brass||DEF.brass,pine:p.pine||DEF.pine,fog:p.fog||DEF.fog,stone:p.stone||DEF.stone,cloud:p.cloud||DEF.cloud,night:p.night||DEF.night});// a Style-bound colour arrives as var(--token-…, #hex): let the browser resolve it to r,g,b for canvas drawing\nconst cssRgb=(el,col,fb)=>{if(!el||typeof window===\"undefined\")return fb;const p=document.createElement(\"i\");p.style.display=\"none\";p.style.color=col;el.appendChild(p);const v=getComputedStyle(p).color;p.remove();const m=v.match(/(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?)/);return m?`${Math.round(+m[1])},${Math.round(+m[2])},${Math.round(+m[3])}`:fb;};const cssVars=c=>({\"--mv-bone\":c.bone,\"--mv-ink\":c.ink,\"--mv-brass\":c.brass,\"--mv-pine\":c.pine,\"--mv-fog\":c.fog,\"--mv-stone\":c.stone,\"--mv-cloud\":c.cloud,\"--mv-night\":c.night});const COLOR_CONTROLS={bone:{type:ControlType.Color,title:\"Paper\",defaultValue:DEF.bone},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:DEF.ink},brass:{type:ControlType.Color,title:\"Accent\",defaultValue:DEF.brass},pine:{type:ControlType.Color,title:\"Deep\",defaultValue:DEF.pine},fog:{type:ControlType.Color,title:\"Line\",defaultValue:DEF.fog},stone:{type:ControlType.Color,title:\"Muted\",defaultValue:DEF.stone},cloud:{type:ControlType.Color,title:\"White\",defaultValue:DEF.cloud},night:{type:ControlType.Color,title:\"Dark\",defaultValue:DEF.night}};// ---- Fonts: Custom Fonts toggle → Font controls; off = Mona Sans (wide display) / Mona Sans / Chivo Mono ----\nconst FONT_CONTROLS={customFonts:{type:ControlType.Boolean,title:\"Custom Fonts\",description:\"Off = the site fonts (set once on the Header in the Site Layout). On = different fonts for this section only\",defaultValue:false},displayFont:{type:ControlType.Font,title:\"Display Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},bodyFont:{type:ControlType.Font,title:\"Body Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},monoFont:{type:ControlType.Font,title:\"Mono Font\",defaultFontType:\"monospace\",hidden:p=>!p.customFonts}};const NUMF=\"var(--mv-font-m, 'Chivo Mono'), ui-monospace, monospace\";// Site-wide fonts: the Header (Site Layout, every page) writes --mv-font-d/b/m (+ weights) on :root when its Custom Fonts is on. A section uses them unless its own Custom Fonts is on.\nconst siteFontCss=p=>{if(!p||!p.customFonts)return\"\";const v=[];const put=(k,f,w)=>{const fam=famCss(f);if(fam){v.push(`--mv-font-${k}:${fam}`);v.push(`--mv-font-${k}w:${wOf(f,w)}`);}};put(\"d\",p.displayFont,600);put(\"b\",p.bodyFont,400);put(\"m\",p.monoFont,400);put(\"a\",p.accentFont,400);return v.length?`:root{${v.join(\";\")}}`:\"\";};function fontsOf(p){const on=!!p.customFonts;const D={fontFamily:stack(on,p.displayFont,\"var(--mv-font-d, 'Mona Sans')\",\"Inter, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.displayFont,600):\"var(--mv-font-dw, 600)\",fontStyle:on&&p.displayFont&&p.displayFont.fontStyle?p.displayFont.fontStyle:\"normal\"};const B={fontFamily:stack(on,p.bodyFont,\"var(--mv-font-b, 'Mona Sans')\",\"Inter, system-ui, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.bodyFont,400):\"var(--mv-font-bw, 400)\"};const M={fontFamily:stack(on,p.monoFont,\"var(--mv-font-m, 'Chivo Mono')\",\"ui-monospace, SFMono-Regular, Menlo, monospace\"),fontWeight:on?wOf(p.monoFont,400):\"var(--mv-font-mw, 400)\"};return{D,B,M};}const BP_CONTROL={bpHint:{type:ControlType.Enum,title:\"Breakpoint Hint\",description:\"Set per breakpoint copy so the server render starts at the right width\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\",hidden:()=>true}};// ---- Button system: THE PING — a pill. On hover a pink notification dot pops on its right edge with a rolling \"+1\", a lime ring pings out of the dot, the accent fill sweeps in from the left and the label rolls up. Magnetic on desktop, squish on press. Solid = ink (fill lime), ghost = glass/hairline (fill paper), quiet = small nav pill. ----\nconst Glyph=({k})=>k===\"mail\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"5\",width:\"18\",height:\"14\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 7l8 6 8-6\"})]}):k===\"cal\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\"})]}):k===\"play\"?/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M8 5.5v13l10.5-6.5z\"})}):/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 17L17 7M9 7h8v8\"})});// In-page CTA jumps (\"#download\", \"/#download\"): scroll to the section when it is on this page, otherwise go to it on the home page.\nfunction jumpTo(e,href){try{const m=String(href||\"\").match(/^\\/?#([\\w-]+)$/);if(!m)return;const el=document.getElementById(m[1]);if(el){e.preventDefault();const W=window;const L=W.__ltLenis||W.__vcLenis||W.lenis;if(L&&L.scrollTo)L.scrollTo(el,{offset:-20});else el.scrollIntoView({behavior:\"smooth\",block:\"start\"});try{history.replaceState(null,\"\",\"#\"+m[1]);}catch(x){}}else if(href.startsWith(\"#\")){e.preventDefault();window.location.href=\"/\"+href;}}catch(x){}}const Btn=({href,label,kind=\"solid\",arrow=true,style,className,onClick,ariaLabel,cur,icon,sub})=>/*#__PURE__*/_jsxs(\"a\",{className:`mv-btn mv-${kind}${arrow?\"\":\" mv-noarr\"}${className?\" \"+className:\"\"}`,\"data-mag\":true,\"data-cur\":cur||\"go\",href:href,target:/^https?:\\/\\//.test(href||\"\")?\"_blank\":undefined,rel:/^https?:\\/\\//.test(href||\"\")?\"noopener\":undefined,onClick:onClick||(e=>jumpTo(e,href)),\"aria-label\":ariaLabel||(sub?`${sub} ${label}`:undefined),style:style,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"mv-face\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-fill\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-lbl\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"mv-roll\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-l1\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-l2\",\"aria-hidden\":true,children:label})]})}),arrow&&/*#__PURE__*/_jsxs(\"span\",{className:\"mv-arr\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-a1\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-a2\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})})]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"mv-selb\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]}),/*#__PURE__*/_jsx(\"b\",{className:\"mv-dim\",\"aria-hidden\":true})]});function useNearFocus(root,live){useEffect(()=>{if(!live||!root.current)return;const el=root.current;const f=e=>{const t=e.target;const sc=t.closest?.(\".mv-inring\");if(!sc)return;try{t.scrollIntoView({block:\"nearest\",inline:\"nearest\"});}catch(x){}};el.addEventListener(\"focusin\",f);return()=>el.removeEventListener(\"focusin\",f);},[live]);}function useMagnet(root,live){useEffect(()=>{if(!live||!root.current||!window.matchMedia(\"(hover:hover) and (pointer:fine)\").matches)return;const r=root.current;const btns=()=>Array.from(r.querySelectorAll(\"[data-mag]\"));const en=e=>{const b=e.target.closest?.(\"[data-mag]\");if(b){const d=b.querySelector(\".mv-dim\");if(d)d.textContent=`${Math.round(b.offsetWidth)} \\xd7 ${Math.round(b.offsetHeight)}`;}};const mv=e=>{for(const b of btns()){const rc=b.getBoundingClientRect();const dx=e.clientX-(rc.left+rc.width/2),dy=e.clientY-(rc.top+rc.height/2);const d=Math.hypot(dx,dy);const pull=d<150?(1-d/150)*8:0;b.style.setProperty(\"--mx\",`${dx/(d||1)*pull}px`);b.style.setProperty(\"--my\",`${dy/(d||1)*pull}px`);}};const lv=()=>{for(const b of btns()){b.style.setProperty(\"--mx\",\"0px\");b.style.setProperty(\"--my\",\"0px\");}};r.addEventListener(\"pointermove\",mv);r.addEventListener(\"pointerleave\",lv);r.addEventListener(\"pointerover\",en);r.addEventListener(\"focusin\",en);return()=>{r.removeEventListener(\"pointermove\",mv);r.removeEventListener(\"pointerleave\",lv);r.removeEventListener(\"pointerover\",en);r.removeEventListener(\"focusin\",en);};},[live]);}const CSS_BASE=`\n:where(.mv){position:relative;z-index:10} .mv,.mv *{box-sizing:border-box;min-width:0} .mv-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;padding:0!important;margin:-1px!important;border:0!important} :where(.mv) a{color:inherit} html,body{overflow-x:clip}\n:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"]),[role=\"button\"]):focus-visible{outline:3px solid var(--mv-ink,#0D0E10)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--mv-bone,#EEEEE8)!important} :where(.mv-dark) :where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"])):focus-visible{outline-color:var(--mv-cloud,#FFFFFF)!important;box-shadow:0 0 0 2px var(--mv-night,#08090A)!important} :where(.mv-inring) :where(a[href],button):focus-visible{outline-offset:-4px!important;box-shadow:none!important} :where(.mv) :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select):focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important;box-shadow:none!important} :where(.mv) textarea{resize:none} .mv-inring:focus-visible{outline-offset:-3px!important;box-shadow:none!important} html{scroll-padding-top:96px;scroll-padding-bottom:88px}\n/* THE SELECTION button: a 10px-radius block. Hover/focus = the design-tool selection snaps around it (cyan outline 5px outside, four white handles, live W \\xd7 H badge underneath), the fill sweeps in from the left and the label rolls up. Magnetic on desktop. */\n.mv-btn{position:relative;display:inline-flex;padding:0;min-height:54px;border-radius:10px;text-decoration:none;cursor:pointer;isolation:isolate;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.005em;border:0;color:var(--fg);transition:color .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-face{position:relative;z-index:1;display:inline-flex;align-items:center;gap:14px;width:100%;min-height:inherit;padding:0 8px 0 22px;border-radius:inherit;background:var(--face);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:inset 0 0 0 1px var(--rim);overflow:hidden;isolation:isolate}\n.mv-fill{position:absolute;z-index:0;inset:0;background:var(--fill);border-radius:inherit;clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-fill,.mv-btn:focus-visible .mv-fill{clip-path:inset(0 0 0 0)}\n.mv-lbl{position:relative;z-index:1;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.15}\n.mv-roll{display:block;height:1.2em;overflow:hidden;line-height:1.2} .mv-l1,.mv-l2{display:block;transition:translate .5s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-l1,.mv-btn:hover .mv-l2,.mv-btn:focus-visible .mv-l1,.mv-btn:focus-visible .mv-l2{translate:0 -100%}\n.mv-arr{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:6px;background:var(--chip);color:var(--chipfg);overflow:hidden;transition:background .4s,color .4s} .mv-arr>span{grid-area:1/1;display:grid;place-items:center;transition:transform .55s cubic-bezier(.7,0,.2,1)} .mv-arr svg{width:15px;height:15px} .mv-a2{transform:translate(-160%,160%)}\n.mv-btn:hover .mv-a1,.mv-btn:focus-visible .mv-a1{transform:translate(160%,-160%)} .mv-btn:hover .mv-a2,.mv-btn:focus-visible .mv-a2{transform:none} .mv-btn:hover .mv-arr,.mv-btn:focus-visible .mv-arr{background:var(--chip2);color:var(--chipfg2)}\n.mv-selb{position:absolute;z-index:2;inset:-5px;border-radius:13px;box-shadow:0 0 0 1.5px var(--mv-brass);pointer-events:none;opacity:0;scale:1.06;transition:opacity .25s,scale .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-selb i{position:absolute;width:7px;height:7px;background:var(--mv-cloud);box-shadow:0 0 0 1.5px var(--mv-brass);translate:-50% -50%} .mv-selb i:nth-child(1){left:0;top:0} .mv-selb i:nth-child(2){left:100%;top:0} .mv-selb i:nth-child(3){left:0;top:100%} .mv-selb i:nth-child(4){left:100%;top:100%}\n.mv-btn:hover .mv-selb,.mv-btn:focus-visible .mv-selb{opacity:1;scale:1}\n.mv-dim{position:absolute;z-index:3;left:50%;top:calc(100% + 11px);translate:-50% -4px;padding:2px 6px;border-radius:4px;background:var(--mv-brass);color:var(--mv-ink);font:500 10px/1.4 var(--mv-font-m,'Chivo Mono'),ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s,translate .35s}\n.mv-btn:hover .mv-dim,.mv-btn:focus-visible .mv-dim{opacity:1;translate:-50% 0}\n.mv-btn:hover,.mv-btn:focus-visible{color:var(--fg2)}\n.mv-btn.mv-noarr .mv-face{padding-right:22px}\n.mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-quiet{min-height:40px;font-size:13px;border-radius:8px;--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)} .mv-btn.mv-quiet .mv-arr{width:28px;height:28px;border-radius:5px} .mv-btn.mv-quiet .mv-face{padding-left:16px;gap:10px;padding-right:6px} .mv-btn.mv-quiet .mv-selb{inset:-4px;border-radius:11px}\n/* on paper grounds: solid = ink face (cyan fill), ghost = ink hairline */\n.mv:not(.mv-dark) .mv-btn.mv-solid,.mv-lt .mv-btn.mv-solid{--face:var(--mv-ink);--fill:var(--mv-brass);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:var(--mv-brass);--chipfg:var(--mv-ink);--chip2:var(--mv-ink);--chipfg2:var(--mv-brass)}\n.mv:not(.mv-dark) .mv-btn.mv-ghost,.mv-lt .mv-btn.mv-ghost{--face:transparent;--rim:color-mix(in srgb,var(--mv-ink) 28%,transparent);--fill:var(--mv-ink);--fg:var(--mv-ink);--fg2:var(--mv-cloud);--chip:color-mix(in srgb,var(--mv-ink) 7%,transparent);--chipfg:var(--mv-ink);--chip2:var(--mv-brass);--chipfg2:var(--mv-ink)}\n.mv:not(.mv-dark) .mv-selb i,.mv-lt .mv-selb i{background:var(--mv-cloud)}\n/* a DARK band nested inside a paper section (case next-project, service film band): dark button faces again. Higher specificity than the paper rule above, so the result no longer depends on which component's <style> tag comes last in the page */\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n@media (max-width:600px),(hover:none){.mv .mv-btn{white-space:normal;text-align:left;line-height:1.25;min-height:54px;max-width:100%} .mv .mv-btn.mv-quiet{min-height:40px;white-space:nowrap} .mv .mv-btn .mv-face{justify-content:space-between} .mv .mv-roll{height:auto} .mv .mv-l2{display:none} .mv .mv-btn .mv-l1{translate:none!important} .mv .mv-selb,.mv .mv-dim{display:none}}\n.mv-btn:hover{transform:translate(var(--mx,0px),var(--my,0px))} .mv-btn:active{transform:translate(var(--mx,0px),var(--my,0px)) scale(.97)!important;transition-duration:.12s}\n/* TEXT-SAFE accents: cyan is a SURFACE colour on paper (selections, fills, chips) — accent text on paper is ink; on graphite grounds the cyan itself reads */\n.mv{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink));--mv-acc-d:var(--mv-brass)}\n.mv-lt,.mv .mv-lt{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink))}\n.mv-dark,.mv.mv-dark{--mv-acc:var(--mv-brass);--mv-acc-lg:var(--mv-brass);--mv-hl:transparent;--mv-mut:color-mix(in srgb,var(--mv-stone) 40%,var(--mv-cloud))}\n.mv-port{width:7px;height:7px;flex:none;border-radius:50%;background:#3DDC84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:mv-live 1.8s infinite} @keyframes mv-live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}100%{box-shadow:0 0 0 9px rgba(61,220,132,0)}}\n@media (prefers-reduced-motion:reduce){.mv *,.sth *{animation-duration:.01ms!important;transition-duration:.01ms!important}}`;const IcoArrow=({s=15})=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\"})});const Stars=({v=5,s=13})=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-stars\",\"aria-hidden\":true,children:[0,1,2,3,4].map(i=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",style:{opacity:i<Math.round(v)?1:.28},children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M12 2.6l2.9 6.1 6.7.9-4.9 4.6 1.2 6.6L12 17.6 6.1 20.8l1.2-6.6L2.4 9.6l6.7-.9z\"})},i))});// ===== JOSH BARNES motion layer (THE FLOW) (composed by mk.py after _common) =====\n// One shared rAF (onTick). Sections write --sp (0 = top edge enters the viewport bottom → 1 = bottom edge leaves the top) and,\n// for tall pinned wrappers, --pp (0 = wrapper top hits the viewport top → 1 = wrapper bottom hits the viewport bottom). IO-gated.\nconst SCRUB_K=.18;// Decode a section's photos while it is still a screen and a half away, so the first frame it is on screen never waits for a decode.\nfunction usePre(el){try{const io=new IntersectionObserver(es=>{if(!es[0].isIntersecting)return;io.disconnect();el.querySelectorAll(\"img\").forEach(im=>{try{im.loading=\"eager\";im.decode().catch(()=>{});}catch(e){}});},{rootMargin:\"150% 0px 150% 0px\"});io.observe(el);}catch(e){}}function focusTo(el,frac){if(!el||typeof window===\"undefined\")return;if(window.innerWidth<810)return;const r=el.getBoundingClientRect();const vh=window.innerHeight;if(r.height<=vh*1.05)return;const y=r.top+window.scrollY+(r.height-vh)*Math.min(1,Math.max(0,frac));if(Math.abs(window.scrollY-y)<8)return;const w=window;if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}function useScrollVars(ref,live,rm,cb){useEffect(()=>{if(!live||rm||!ref.current)return;const el=ref.current;let vis=true,last=-9,cs=-1,cp=-1,settled=false;usePre(el);const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"25% 0px 25% 0px\"});io.observe(el);// eased scrub: the values glide toward the true scroll position (K per frame), so wheel steps never jump a pinned scene\nlet rt=0,rh=0,vh=1,fresh=false;const read=()=>{if(!vis&&settled){fresh=false;return;}const r=el.getBoundingClientRect();rt=r.top;rh=r.height;vh=window.innerHeight||1;fresh=true;};const off=onTick(()=>{if(!fresh)return;const sp=clamp01((vh-rt)/(vh+rh));const pp=rh>vh*1.05?clamp01(-rt/(rh-vh)):sp;if(cs<0){cs=sp;cp=pp;}else{cs+=(sp-cs)*SCRUB_K;cp+=(pp-cp)*SCRUB_K;if(Math.abs(sp-cs)<5e-4)cs=sp;if(Math.abs(pp-cp)<5e-4)cp=pp;}settled=cs===sp&&cp===pp;if(Math.abs(cs+cp-last)<3e-4)return;last=cs+cp;el.style.setProperty(\"--sp\",cs.toFixed(4));el.style.setProperty(\"--pp\",cp.toFixed(4));if(cb)cb(cs,cp);},read);return()=>{off();io.disconnect();};},[live,rm]);}// STAGE — false while the loader or the page-transition cover is on screen (html.mv-hold-*), so first-screen intros play AFTER the cover lifts, never under it. 9 s safety.\nfunction useStage(live){const[r,setR]=useState(false);useEffect(()=>{if(!live)return;const h=document.documentElement;const ok=()=>!/(^|\\s)mv-hold/.test(h.className);if(ok()){setR(true);return;}const mo=new MutationObserver(()=>{if(ok()){mo.disconnect();setR(true);}});mo.observe(h,{attributes:true,attributeFilter:[\"class\"]});const t=window.setTimeout(()=>{mo.disconnect();setR(true);},9e3);return()=>{mo.disconnect();window.clearTimeout(t);};},[live]);return r;}// true once the element has entered the viewport (stays true) — and only once the stage is clear. Reduced motion = true at once.\nfunction useOn(ref,live,rm,amount=.16){const[on,setOn]=useState(false);const still=useStill();const ready=useStage(live);useEffect(()=>{if(!live)return;if(rm){setOn(true);return;}if(!ready)return;const el=ref.current;if(!el)return;let off=()=>{};// keyboard focus: mark the section FIRST and flush styles, so the reveal that follows runs with instant transitions (a transition keeps the timing it started with)\nconst fin=e=>{try{if(e.target.matches(\":focus-visible\")){el.setAttribute(\"data-kb\",\"\");void el.offsetWidth;}}catch(x){}setOn(true);};const fout=e=>{if(!el.contains(e.relatedTarget))el.removeAttribute(\"data-kb\");};el.addEventListener(\"focusin\",fin);el.addEventListener(\"focusout\",fout);const io=new IntersectionObserver(es=>{for(const e of es)if(e.isIntersecting){io.disconnect();// IO ignores occlusion: under a curtain (Reveal) wait until about a quarter of it is uncovered\noff=onTick(()=>{const rev=el.closest(\".mv-rev.is-act\");const rv=rev?parseFloat(rev.style.getPropertyValue(\"--rv\")||\"0\"):1;if(rv>.24){setOn(true);off();}});}},{threshold:Math.min(amount,Math.max(.005,window.innerHeight*.3/Math.max(1,el.offsetHeight))),rootMargin:\"0px 0px -6% 0px\"});io.observe(el);return()=>{io.disconnect();off();el.removeEventListener(\"focusin\",fin);el.removeEventListener(\"focusout\",fout);};},[live,rm,ready]);return on||still;}// CURTAIN REVEAL — the section is pinned BEHIND the one above it and is uncovered as that one lifts away (the footer movement, for any section).\n// Wrapper = section + a spacer of T, pulled up by T (page length unchanged); the section is sticky for exactly T of scroll. T = min(section height, 100svh):\n// a tall section pins at the top, a short one sits on the bottom edge of the viewport. The section ABOVE needs a higher Layer (z-index).\nfunction Reveal({on,layer=9,style,children}){const live=useLive();const rm=useReduced();const wrap=useRef(null);const inner=useRef(null);const sp=useRef(null);const[h,setH]=useState(0);const act=on&&live&&!rm&&h>0&&typeof window!==\"undefined\"&&window.innerWidth>=810;useEffect(()=>{if(!on||!live||rm||!inner.current)return;const el=inner.current;const m=()=>setH(el.offsetHeight);m();const ro=new ResizeObserver(m);ro.observe(el);return()=>ro.disconnect();},[on,live,rm]);useEffect(()=>{if(!act||!wrap.current)return;const el=wrap.current;let vis=true,last=-1;const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"30% 0px 30% 0px\"});io.observe(el);let cur=-1,T=0,vh=1,top=0,fresh=false;const read=()=>{if(!vis){fresh=false;return;}T=sp.current?sp.current.offsetHeight:0;vh=window.innerHeight;top=el.getBoundingClientRect().top;fresh=true;};const off=onTick(()=>{if(!fresh||!T)return;const rv=clamp01((vh-T-top)/T);if(cur<0)cur=rv;else{cur+=(rv-cur)*SCRUB_K;if(Math.abs(rv-cur)<5e-4)cur=rv;}if(Math.abs(cur-last)<4e-4)return;last=cur;el.style.setProperty(\"--rv\",cur.toFixed(4));},read);return()=>{off();io.disconnect();};},[act]);return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,className:`mv-rev${act?\" is-act\":\"\"}`,style:{...style||{},[\"--h\"]:`${h}px`,[\"--layer\"]:layer},onFocusCapture:e=>{if(!act||!wrap.current)return;const t=e.target;const w=window;const r=wrap.current.getBoundingClientRect();const T=sp.current?sp.current.offsetHeight:0;const y=Math.max(0,Math.min(document.documentElement.scrollHeight-window.innerHeight,r.top+window.scrollY-window.innerHeight+2*T));if(Math.abs(window.scrollY-y)>4){if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}requestAnimationFrame(()=>{try{t.scrollIntoView({block:\"nearest\"});}catch(x){}});},children:[/*#__PURE__*/_jsx(\"div\",{ref:inner,className:\"mv-rev-in\",children:children}),/*#__PURE__*/_jsx(\"div\",{ref:sp,className:\"mv-rev-sp\",\"aria-hidden\":true})]});}const REVEAL_CONTROLS={reveal:{type:ControlType.Boolean,title:\"Reveal\",description:\"Curtain: this section waits behind the one above and is uncovered as that one lifts away\",enabledTitle:\"Curtain\",disabledTitle:\"Off\",defaultValue:true},layer:{type:ControlType.Number,title:\"Layer\",description:\"Stacking order. Must be LOWER than the section above (sections default to 10)\",min:0,max:20,step:1,displayStepper:true,defaultValue:9,hidden:p=>p.reveal===false}};const splitWords=s=>String(s||\"\").replace(/\\*([^*]+)\\*/g,(_m,g)=>g.trim().split(/\\s+/).map(w=>{const m=w.match(/^(.*?)([.,!?;:’']*)$/);return m&&m[1]?`*${m[1]}*${m[2]}`:w;}).join(\" \")).split(/\\s+/).filter(Boolean).map(t=>{const m=t.match(/^\\*(.+?)\\*([.,!?;:’']*)$/);return m?{t:m[1],tail:m[2],acc:true}:{t:t.replace(/\\*/g,\"\"),tail:\"\",acc:false};});const plainOf=s=>String(s||\"\").replace(/\\*/g,\"\").replace(/\\s*\\|\\s*/g,\" \").replace(/\\s+/g,\" \").trim();// Heading whose words rise out of masks. \"|\" forces a line break, *word* = the accent: light-weight coral (deep coral mix on paper).\nconst Head=({text,on,D,tag=\"h2\",size=\"clamp(40px,4.8vw,72px)\",lh=.92,delay=0,step=55,style,className})=>{const Tag=tag;let k=0;return /*#__PURE__*/_jsx(Tag,{className:`mv-hd${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,\"aria-label\":plainOf(text),style:{...D,fontSize:size,lineHeight:lh,...style||{}},children:String(text).split(\"|\").map((line,li)=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-hd-l\",\"aria-hidden\":true,children:splitWords(line).map((w,i)=>{const d=delay+k++*step;return /*#__PURE__*/_jsxs(\"span\",{className:`mv-hd-w${w.acc?\" is-accw\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:`mv-hd-i${w.acc?\" is-acc\":\"\"}`,style:{transitionDelay:`${d}ms`,[\"--pd\"]:`${d+500}ms`},children:w.acc?/*#__PURE__*/_jsxs(\"span\",{className:\"mv-it\",children:[w.t,w.tail,/*#__PURE__*/_jsx(\"svg\",{className:\"mv-spark\",viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 1.5C12.9 8 16 11.1 22.5 12 16 12.9 12.9 16 12 22.5 11.1 16 8 12.9 1.5 12 8 11.1 11.1 8 12 1.5Z\"})})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[w.t,w.tail]})}),\" \"]},i);})},li))});};const Eyebrow=({text,on,M,delay=0,style})=>text?/*#__PURE__*/_jsxs(\"p\",{className:`mv-eb${on?\" is-on\":\"\"}`,style:{...M,transitionDelay:`${delay}ms`,...style||{}},children:[/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true}),text]}):null;// one-shot rise for copy / rows\nconst rise=(on,d=0,y=22)=>({opacity:on?1:0,translate:on?\"0 0\":`0 ${y}px`,transition:`opacity .9s ease ${d}ms, translate 1s cubic-bezier(.2,.8,.2,1) ${d}ms`});// Image that UNMASKS through a shape as it enters, settles from a zoom, then drifts with scroll (needs --sp on an ancestor).\nconst SHAPES={up:[\"inset(100% 0 0 0)\",\"inset(0 0 0 0)\"],down:[\"inset(0 0 100% 0)\",\"inset(0 0 0 0)\"],left:[\"inset(0 100% 0 0)\",\"inset(0 0 0 0)\"],right:[\"inset(0 0 0 100%)\",\"inset(0 0 0 0)\"],diag:[\"polygon(0 100%,0 100%,0 100%,0 100%)\",\"polygon(0 -160%,260% 100%,0 100%,0 100%)\"],iris:[\"circle(0% at 50% 55%)\",\"circle(85% at 50% 55%)\"],arch:[\"inset(100% 0 0 0 round 999px 999px 0 0)\",\"inset(0 0 0 0 round 999px 999px 0 0)\"],slit:[\"inset(0 50% 0 50%)\",\"inset(0 0 0 0)\"]};const Um=({src,alt=\"\",on,shape=\"up\",ratio=\"4/5\",delay=0,par=1,focus=\"50% 40%\",radius=4,sizes=\"(max-width: 809px) 100vw, 50vw\",style,className,eager=false})=>{const sh=SHAPES[shape]||SHAPES.up;const im=RS(src,sizes);return /*#__PURE__*/_jsx(\"div\",{className:`mv-um${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,style:{aspectRatio:ratio,borderRadius:radius,clipPath:on?sh[1]:sh[0],WebkitClipPath:on?sh[1]:sh[0],transitionDelay:`${delay}ms`,[\"--par\"]:par,...style||{}},children:/*#__PURE__*/_jsx(\"img\",{src:im.src,srcSet:im.srcSet,sizes:im.sizes,alt:alt,loading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:false,style:{objectPosition:focus,transitionDelay:`${delay}ms`}})});};const CSS_MOTION=`\n[data-kb] *,[data-kb] *::before,[data-kb] *::after{transition:none!important}\n.mv-sec{position:relative;z-index:10;display:block;width:100%;--sp:.5;--pp:0}\n.mv-rev{position:relative;width:100%;--rv:1} .mv-rev-in{position:relative} .mv-rev-sp{height:0}\n.mv-rev.is-act{--rv:0;--t:min(var(--h),100vh);--t:min(var(--h),100svh);z-index:var(--layer,9);margin-top:calc(var(--t)*-1)}\n.mv-rev.is-act>.mv-rev-in{position:sticky;top:calc(100vh - var(--t));top:calc(100svh - var(--t))} .mv-rev.is-act>.mv-rev-sp{height:var(--t)}\n/* the lifting edge throws a shadow on the section beneath, and that section comes out of the dark as it is uncovered */\n.mv-rev.is-act>.mv-rev-in::before{content:\"\";position:absolute;z-index:40;left:0;right:0;top:0;height:120px;translate:0 calc((1 - var(--rv))*var(--t));background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,0));opacity:min(1,calc(var(--rv)*(1 - var(--rv))*9));pointer-events:none}\n.mv-rev.is-act>.mv-rev-in::after{content:\"\";position:absolute;z-index:39;left:0;right:0;top:0;height:var(--t);background:#000;opacity:calc((1 - var(--rv))*.16);pointer-events:none}\n.mv-wrap{--pad:56px;width:100%;max-width:calc(${MAXW} + var(--pad)*2);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}\n.mv-eb{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;margin:0;padding:7px 13px 7px 11px;border-radius:6px;background:color-mix(in srgb,var(--mv-ink) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-ink) 12%,transparent);color:var(--mv-ink);font-size:11.5px;font-weight:500;letter-spacing:.06em;opacity:0;translate:0 10px;transition:opacity .8s ease,translate .9s cubic-bezier(.2,.8,.2,1)} .mv-eb.is-on{opacity:1;translate:0 0}\n.mv-eb i{display:block;flex:none;order:-1;width:7px;height:7px;border-radius:50%;background:var(--mv-brass)}\n.mv-dark .mv-eb{color:var(--mv-cloud);background:color-mix(in srgb,var(--mv-cloud) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-cloud) 18%,transparent)}\n.mv-hd{margin:0;letter-spacing:-.042em;text-wrap:balance;font-weight:var(--mv-font-dw,600)} .mv-hd-l{display:block}\n.mv-hd-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .12em;margin:0 -.04em -.12em;white-space:pre}\n.mv-hd-i{position:relative;display:inline-block;translate:0 108%;transition:translate 1.05s cubic-bezier(.2,.85,.15,1)}\n.mv-hd.is-on .mv-hd-i{translate:0 0}\n.mv-hd-w.is-accw{overflow:hidden}\n.mv-it{position:relative;color:var(--mv-acc);font-weight:inherit} .mv-dark .mv-it{color:var(--mv-brass)}\n.mv-spark{display:none}\n\n.mv-um{position:relative;overflow:hidden;transition:clip-path 1.35s cubic-bezier(.7,0,.2,1);background:color-mix(in srgb,var(--mv-stone) 22%,transparent)}\n.mv-um img{position:absolute;left:0;top:-9%;width:100%;height:118%;display:block;object-fit:cover;scale:1.28;translate:0 calc((var(--sp,.5) - .5)*var(--par,1)*-7%);transition:scale 1.9s cubic-bezier(.16,.84,.24,1);user-select:none}\n.mv-um.is-on img{scale:1}\n/* diagonal cuts: the section hangs over its neighbour and is cut on a slope (clip-path, so the neighbour shows through) */\n.mv-cut-t{margin-top:calc(var(--cut,7vw)*-1);clip-path:polygon(0 var(--cut,7vw),100% 0,100% 100%,0 100%);padding-top:var(--cut,7vw)}\n.mv-cut-b{margin-bottom:calc(var(--cut,7vw)*-1);padding-bottom:var(--cut,7vw)}\n.mv-cut-t.mv-cut-b{clip-path:polygon(0 var(--cut,7vw),100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n.mv-cut-b:not(.mv-cut-t){clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n@media (max-width:1099px){.mv-wrap{--pad:32px}}\n@media (max-width:699px){.mv-wrap{--pad:20px}}\n@media (prefers-reduced-motion:reduce){.mv-hd-i{translate:0 0!important} .mv-spark{scale:1!important;rotate:0deg!important;animation:none!important} .mv-um{clip-path:none!important} .mv-um img{scale:1!important;translate:0 0!important}}\n`;const SEED={site:[{\"slug\":\"site\",\"f1\":\"Josh Barnes\",\"f2\":\"Product designer & developer\",\"f3\":\"I design digital products and build them in code, from the first sketch to the shipped release.\",\"f4\":\"hello@maravoss.design\",\"f5\":\"Berlin\",\"f6\":\"Europe/Berlin\",\"f7\":\"Available for work \\xb7 Nov 2026\",\"f8\":\"/resume\",\"f9\":\"Dribbble:https://dribbble.com,GitHub:https://github.com,LinkedIn:https://linkedin.com,Read.cv:https://read.cv\",\"f10\":\"9\",\"f11\":\"/contact\",\"n1\":\"1\"}]};const SW_BUILD=\"MvHeader@cms1\";// An override control wins only when it holds real text; empty (or a single space) inherits from the CMS.\nconst pick=(o,fb)=>o!==undefined&&o!==null&&String(o).trim()?String(o).trim():fb;const imgOf=(r,k=\"img\")=>String(r&&r[k]||\"\").split(\"?\")[0];// A cleared CMS image draws this quiet placeholder — never a stock photo, and list positions stay aligned with their rows.\nconst EMPTY_IMG=\"data:image/svg+xml;utf8,\"+encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='xMidYMid slice'><rect width='400' height='500' fill='#D3D8E2'/><rect x='120' y='170' width='160' height='160' rx='8' fill='none' stroke='#AEB6C6' stroke-width='1.5'/><rect x='100' y='150' width='200' height='200' rx='10' fill='none' stroke='#C3CAD8' stroke-width='1' stroke-dasharray='2 6'/></svg>\");const imgOr=(r,k=\"img\")=>imgOf(r,k)||EMPTY_IMG;const cmsNum=(r,k,fb=0)=>{const v=parseFloat(String((r&&r[k])??\"\"));return isFinite(v)?v:fb;};const useIso=typeof window===\"undefined\"?useEffect:useLayoutEffect;function readCMS(kind){if(typeof document===\"undefined\")return null;if(!document.querySelector('[data-mv-row=\"bridge\"]'))return null;const seen=new Set;const out=[];document.querySelectorAll(`[data-mv-row=\"${kind}\"]`).forEach(el=>{const o={};for(const a of Array.from(el.attributes))if(a.name.startsWith(\"data-\"))o[a.name.slice(5)]=a.value;const key=o.slug||JSON.stringify(o);if(seen.has(key))return;seen.add(key);out.push(o);});return out.sort((a,b)=>(parseFloat(a.n1)||0)-(parseFloat(b.n1)||0));}function useCMS(kind,fallback){const[rows,setRows]=useState(fallback);const sig=useRef(\"\");useIso(()=>{let n=0,t=0,ok=0;try{const w=window;if(!w.__ltCms||typeof w.__ltCms!==\"object\")w.__ltCms={};w.__ltCms[SW_BUILD]=1;}catch(e){}const pull=()=>{const r=readCMS(kind);if(!r)return false;const s=JSON.stringify(r);if(s!==sig.current){sig.current=s;setRows(r);}return true;};const mo=new MutationObserver(()=>{if(pull()){ok++;if(ok>2)mo.disconnect();}});mo.observe(document.body,{childList:true,subtree:true});if(pull())ok++;const poll=()=>{if(n++<30){pull();t=window.setTimeout(poll,150);}};t=window.setTimeout(poll,150);return()=>{mo.disconnect();window.clearTimeout(t);};},[kind]);return rows;}// The one-row Site collection holds every site-wide fact (name, role, contact, availability, resume link). A section's \"… Override\" control only replaces it on that one section.\nfunction useSite(){const r=useCMS(\"site\",SEED.site||[]);const s=r[0]||(SEED.site||[])[0]||{};const g=k=>String(s[k]??\"\").trim();return{name:g(\"f1\")||\"Josh Barnes\",role:g(\"f2\"),tagline:g(\"f3\"),email:g(\"f4\"),city:g(\"f5\"),tz:g(\"f6\")||\"Europe/Berlin\",avail:g(\"f7\"),resume:g(\"f8\")||\"/resume\",socials:g(\"f9\"),years:g(\"f10\"),book:g(\"f11\")||\"/contact\"};}const linkList=s=>String(s||\"\").split(\",\").map(x=>x.trim()).filter(Boolean).map(x=>{const i=x.indexOf(\":\");return{l:i<0?x:x.slice(0,i).trim(),h:i<0?\"/\":x.slice(i+1).trim()};});const listOf=s=>String(s||\"\").split(\";\").map(x=>x.trim()).filter(Boolean);// The row a CMS detail page is about: the bound Slug control wins (server render included), else the last URL segment, else the first row.\nfunction useRow(kind,fallback,slug){const rows=useCMS(kind,fallback);const[path,setPath]=useState(\"\");useEffect(()=>{try{setPath(decodeURIComponent(window.location.pathname.split(\"/\").filter(Boolean).pop()||\"\"));}catch(e){}},[]);const want=String(slug||\"\").trim()||path;const row=rows.find(r=>r.slug===want)||rows[0]||{};return{row,rows};}const crumbs=s=>linkList(s);// Open now? Open Hours = \"1-6 07:00-19:00\" (weekday numbers, Mon = 1 … Sun = 7) evaluated in the Site Time Zone.\nfunction openState(spec,tz){try{const m=String(spec||\"\").match(/(\\d)\\s*-\\s*(\\d)\\s+(\\d{1,2}):(\\d{2})\\s*-\\s*(\\d{1,2}):(\\d{2})/);if(!m)return null;const parts=new Intl.DateTimeFormat(\"en-US\",{timeZone:tz||\"UTC\",weekday:\"short\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).formatToParts(new Date);const g=t=>(parts.find(p=>p.type===t)||{value:\"\"}).value;const wd=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"].indexOf(g(\"weekday\"))+1;const mins=Number(g(\"hour\"))%24*60+Number(g(\"minute\"));const d1=Number(m[1]),d2=Number(m[2]),a=Number(m[3])*60+Number(m[4]),b=Number(m[5])*60+Number(m[6]);const open=wd>=d1&&wd<=d2&&mins>=a&&mins<b;return{open,label:open?`Open \\xb7 till ${m[5].padStart(2,\"0\")}:${m[6]}`:`Closed \\xb7 opens ${m[3].padStart(2,\"0\")}:${m[4]}`};}catch(e){return null;}}// ---- THE HEADER: the hero nav, lifted out of the page. A position:fixed bar portalled to <body> (the 0px layout frame stays transform-free).\n// Over the page top it is transparent; after 40px it condenses into a floating glass bar. A GROUND PROBE reads what is under the bar\n// (elementsFromPoint → first opaque background → luminance) and flips ink/paper type. Scroll down hides it, scroll up brings it back.\n// Under 1100px: a burger that morphs to ✕ and opens a full-screen CALL SHEET drawer (portal, scroll lock, focus trap, Esc). ----\nconst MvhdMark=({s=26})=>/*#__PURE__*/_jsxs(\"svg\",{width:s,height:s,viewBox:\"0 0 32 32\",\"aria-hidden\":true,className:\"mvhd-mark\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"1\",y:\"1\",width:\"30\",height:\"30\",rx:\"8\",fill:\"var(--mv-brass)\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M8 23V9l8 9 8-9v14\",fill:\"none\",stroke:\"var(--mv-ink)\",strokeWidth:\"2.6\",strokeLinejoin:\"round\",strokeLinecap:\"round\"})]});// computed colour → [r,g,b,a] 0..1 (rgb(), rgba(), color(srgb …)); null = unknown\nconst mvhdRgba=s=>{if(!s)return null;let m=s.match(/^rgba?\\(([^)]+)\\)/);if(m){const p=m[1].split(/[\\s,\\/]+/).filter(Boolean).map(parseFloat);return[p[0]/255,p[1]/255,p[2]/255,p.length>3?p[3]:1];}m=s.match(/^color\\(srgb\\s+([^)]+)\\)/);if(m){const p=m[1].split(/[\\s\\/]+/).filter(Boolean).map(parseFloat);return[p[0],p[1],p[2],p.length>3?p[3]:1];}return null;};const mvhdLum=c=>{const f=v=>v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);return .2126*f(c[0])+.7152*f(c[1])+.0722*f(c[2]);};// the ground under one point: first element (below our own UI) with an opaque background colour; photos/video count as dark\nfunction mvhdGround(x,y){let els=[];try{els=document.elementsFromPoint(x,y);}catch(e){return null;}for(const el of els){if(el.closest(\"[data-mvhd]\"))continue;const tg=el.tagName;if(tg===\"IMG\"||tg===\"VIDEO\"||tg===\"CANVAS\")return .08;const c=mvhdRgba(getComputedStyle(el).backgroundColor);if(c&&c[3]>.5)return mvhdLum(c);}return null;}/**\n * JOSH BARNES — Header. Put once in the Site Layout as a 0px-high frame: it draws a fixed bar over every page + the phone drawer.\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 1\n */export default function MvHeader(props){const{links=\"Work:/work, About:/about, R\\xe9sum\\xe9:/resume, Writing:/writing, Contact:/contact\",ctaLabel=\"Hire me\",ctaLink=\"\",homeLabel=\"home\",skipLabel=\"Skip to content\",availLabel=\"\",menuLabel=\"Menu\",closeLabel=\"Close\",sheetTitle=\"Call sheet\",sheetRoll=\"Roll MV-26\",sheetScene=\"Scene: Menu\",sheetTake=\"Take 01\",emailLabel=\"Email\",socialsLabel=\"Elsewhere\",timeLabel=\"Local time\",probe=true,hideOnScroll=true,bpHint=\"auto\"}=props;const c=colorsOf(props);const{D,B,M}=fontsOf(props);useFonts();const live=useLive();const rm=useReduced();const still=useStill();const site=useSite();const Dh={...D,fontWeight:props.customFonts?D.fontWeight:\"var(--mv-font-dw, 720)\"};const anchor=useRef(null);const barEl=useRef(null);const drawer=useRef(null);const burger=useRef(null);// width = the viewport (the anchor frame can be any width in the layout)\nconst hintW=String(bpHint).toLowerCase()===\"phone\"?390:String(bpHint).toLowerCase()===\"tablet\"?810:1440;const[vw,setVw]=useState(hintW);useLayoutEffect(()=>{const f=()=>setVw(window.innerWidth||hintW);f();window.addEventListener(\"resize\",f);return()=>window.removeEventListener(\"resize\",f);},[]);const phone=vw<810,compact=vw<1100;// portal HOST = the FIRST child of <body>: a portal appended at the end of body put the skip link + nav LAST in the tab order (after the footer)\nconst[host,setHost]=useState(null);const mounted=!!host;useEffect(()=>{if(typeof document===\"undefined\")return;const h=document.createElement(\"div\");h.setAttribute(\"data-mvhd-host\",\"\");h.style.display=\"contents\";document.body.insertBefore(h,document.body.firstChild);setHost(h);return()=>{try{h.remove();}catch(e){}};},[]);const[lt,setLt]=useState(false);const[top,setTop]=useState(true);const[hid,setHid]=useState(false);const[open,setOpen]=useState(false);const[theme,setTheme]=useState(\"light\");useEffect(()=>{if(still)return;const media=window.matchMedia(\"(prefers-color-scheme: dark)\");const apply=()=>{let saved=\"\";try{saved=localStorage.getItem(\"mv-theme\")||\"\";}catch{}const next=saved===\"light\"||saved===\"dark\"?saved:media.matches?\"dark\":\"light\";document.documentElement.setAttribute(\"data-mv-theme\",next);document.documentElement.style.colorScheme=next;setTheme(next);};apply();media.addEventListener(\"change\",apply);window.addEventListener(\"storage\",apply);window.addEventListener(\"mv-theme-change\",apply);return()=>{media.removeEventListener(\"change\",apply);window.removeEventListener(\"storage\",apply);window.removeEventListener(\"mv-theme-change\",apply);};},[still]);const toggleTheme=()=>{const next=theme===\"dark\"?\"light\":\"dark\";try{localStorage.setItem(\"mv-theme\",next);}catch{}document.documentElement.setAttribute(\"data-mv-theme\",next);document.documentElement.style.colorScheme=next;setTheme(next);window.dispatchEvent(new Event(\"mv-theme-change\"));};const[path,setPath]=useState(\"\");useEffect(()=>{try{setPath(window.location.pathname.replace(/\\/+$/,\"\")||\"/\");}catch(e){}},[]);const L=linkList(links);const isAct=h=>{const p=(h||\"\").replace(/\\/+$/,\"\")||\"/\";if(!path||/^https?:|^#|^mailto:/.test(h))return false;return p===\"/\"?path===\"/\":path===p||path.startsWith(p+\"/\");};const book=pick(ctaLink,site.book||\"/contact\");const avail=pick(availLabel,site.avail||\"Available for work\");// scroll: top state, hide on down / show on up, ground probe (reads only in the read phase, ~6×/s, and at once on scroll)\nconst st=useRef({y:0,lastY:0,acc:0,t:0,lt:false,top:true,hid:false,open:false,force:true});st.current.open=open;useEffect(()=>{if(!live)return;const S=st.current;let probeV=null,y=0;const onS=()=>{S.force=true;};window.addEventListener(\"scroll\",onS,{passive:true});const read=t=>{y=window.scrollY||document.documentElement.scrollTop||0;if(!probe||S.open)return;if(!S.force&&t-S.t<160)return;S.t=t;S.force=false;const bar=barEl.current;const bh=bar?bar.getBoundingClientRect():null;const yy=bh?Math.max(4,Math.min(bh.bottom-8,bh.top+bh.height/2)):36;const W=window.innerWidth;const vals=[.18,.5,.82].map(f=>mvhdGround(W*f,yy)).filter(v=>v!==null);probeV=vals.length?vals.reduce((a,b)=>a+b,0)/vals.length:null;};const off=onTick(()=>{const tp=y<40;if(tp!==S.top){S.top=tp;setTop(tp);}if(probeV!==null){const l=probeV>.45;if(l!==S.lt){S.lt=l;setLt(l);}}const d=y-S.lastY;S.lastY=y;let h=S.hid;if(!hideOnScroll||window.innerWidth<1100||rm||S.open||tp)h=false;else{if(d>0!==S.acc>0)S.acc=0;S.acc+=d;if(S.acc>12)h=true;else if(S.acc<-8)h=false;}if(h&&barEl.current&&barEl.current.contains(document.activeElement))h=false;if(h!==S.hid){S.hid=h;setHid(h);}},read);return()=>{off();window.removeEventListener(\"scroll\",onS);};},[live,probe,hideOnScroll,rm]);// keyboard: focus entering the bar (skip link, logo, links) brings a hidden bar back at once\nuseEffect(()=>{if(!host)return;const f=e=>{const t=e.target;if(t&&t.closest&&t.closest(\"[data-mvhd]\")&&st.current.hid){st.current.hid=false;st.current.acc=0;setHid(false);}};host.addEventListener(\"focusin\",f);return()=>host.removeEventListener(\"focusin\",f);},[host]);// drawer: scroll lock (html+body, Lenis paused), focus trap over [bar logo, burger, drawer], Esc closes, focus returns to the burger\nconst close=(back=true)=>{setOpen(false);if(back)window.setTimeout(()=>{try{burger.current?.focus({preventScroll:true});}catch(e){}},30);};useEffect(()=>{if(!open)return;const h=document.documentElement,b=document.body;const ph=h.style.overflow,pb=b.style.overflow,pp=b.style.paddingRight;const sbw=window.innerWidth-h.clientWidth;h.style.overflow=\"hidden\";b.style.overflow=\"hidden\";if(sbw>0)b.style.paddingRight=`${sbw}px`;h.setAttribute(\"data-mvhd-lock\",\"\");const W=window;try{W.__ltLenis&&W.__ltLenis.stop&&W.__ltLenis.stop();}catch(e){}const focusables=()=>{const out=[];const lg=barEl.current?.querySelector(\".mvhd-logo\");if(lg)out.push(lg);const th=barEl.current?.querySelector(\".mvhd-theme\");if(th)out.push(th);if(burger.current)out.push(burger.current);drawer.current?.querySelectorAll(\"a[href],button:not([disabled])\").forEach(e=>out.push(e));return out;};const kd=e=>{if(e.key===\"Escape\"){e.preventDefault();close(true);return;}if(e.key!==\"Tab\")return;const f=focusables();if(!f.length)return;const i=f.indexOf(document.activeElement);e.preventDefault();const n=e.shiftKey?i<=0?f.length-1:i-1:i<0||i>=f.length-1?0:i+1;f[n].focus();};document.addEventListener(\"keydown\",kd,true);const t=window.setTimeout(()=>{try{drawer.current?.querySelector(\".mvhd-dl a\")?.focus({preventScroll:true});}catch(e){}},60);return()=>{document.removeEventListener(\"keydown\",kd,true);window.clearTimeout(t);h.style.overflow=ph;b.style.overflow=pb;b.style.paddingRight=pp;h.removeAttribute(\"data-mvhd-lock\");try{W.__ltLenis&&W.__ltLenis.start&&W.__ltLenis.start();}catch(e){}};},[open]);useEffect(()=>{if(!compact&&open)setOpen(false);},[compact]);const[clock,setClock]=useState(\"--:--\");useEffect(()=>{if(!live)return;const f=()=>{try{setClock(new Intl.DateTimeFormat(\"en-GB\",{timeZone:site.tz||\"Europe/Berlin\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).format(new Date));}catch(e){}};f();const id=window.setInterval(f,15e3);return()=>window.clearInterval(id);},[live,site.tz]);const skip=e=>{e.preventDefault();const els=Array.from(document.querySelectorAll(\"main, section.mv, section\")).filter(x=>!x.closest(\"[data-mvhd]\"));const t=els[0];if(!t)return;if(!t.hasAttribute(\"tabindex\"))t.setAttribute(\"tabindex\",\"-1\");t.focus({preventScroll:true});t.scrollIntoView({block:\"start\"});};const socials=linkList(site.socials);const pad2=n=>String(n).padStart(2,\"0\");const cls=`mv mvhd${lt&&!open?\" mv-lt is-lt\":\" mv-dark\"}${top&&!open?\" is-top\":\" is-glass\"}${hid&&!open?\" is-hid\":\"\"}${open?\" is-open\":\"\"}${phone?\" is-ph\":compact?\" is-tab\":\"\"}${still?\" is-still\":\"\"}${rm?\" is-rm\":\"\"}`;const vars={...cssVars(c),...B};const bar=/*#__PURE__*/_jsxs(\"div\",{\"data-mvhd\":\"\",className:cls,style:vars,children:[/*#__PURE__*/_jsx(\"a\",{className:\"mvhd-skip\",href:\"#main\",onClick:skip,style:M,children:skipLabel}),/*#__PURE__*/_jsx(\"div\",{ref:barEl,className:\"mvhd-bar\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"mvhd-in\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"mvhd-logo\",href:\"/\",\"aria-label\":`${site.name} ${homeLabel}`,onClick:()=>open&&close(false),children:[/*#__PURE__*/_jsx(MvhdMark,{}),/*#__PURE__*/_jsx(\"span\",{style:Dh,children:site.name})]}),!compact&&/*#__PURE__*/_jsx(\"nav\",{className:\"mvhd-nav\",\"aria-label\":\"Main\",children:/*#__PURE__*/_jsx(\"ul\",{className:\"mvhd-links\",children:L.map((l,i)=>/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsxs(\"a\",{href:l.h,\"aria-current\":isAct(l.h)?\"page\":undefined,className:isAct(l.h)?\"is-act\":\"\",children:[/*#__PURE__*/_jsx(\"span\",{children:l.l}),/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true})]})},i))})}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvhd-r\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"mvhd-theme\",onClick:toggleTheme,\"aria-label\":theme===\"dark\"?\"Switch to light mode\":\"Switch to dark mode\",title:theme===\"dark\"?\"Switch to light mode\":\"Switch to dark mode\",\"aria-pressed\":theme===\"dark\",children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.7\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:theme===\"dark\"?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 2v2m0 16v2M2 12h2m16 0h2M4.93 4.93l1.42 1.42m11.3 11.3 1.42 1.42M4.93 19.07l1.42-1.42m11.3-11.3 1.42-1.42\"})]}):/*#__PURE__*/_jsx(\"path\",{d:\"M20.9 13.1A9 9 0 0 1 10.9 3.1a9 9 0 1 0 10 10Z\"})})}),/*#__PURE__*/_jsxs(\"span\",{className:\"mvhd-av\",tabIndex:0,role:\"note\",\"aria-label\":avail,title:avail,children:[/*#__PURE__*/_jsx(\"i\",{className:\"mv-port\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"em\",{style:M,children:avail})]}),!phone&&ctaLabel&&/*#__PURE__*/_jsx(Btn,{href:book,label:ctaLabel,kind:\"quiet\",className:\"mvhd-cta\"}),compact&&/*#__PURE__*/_jsx(\"button\",{ref:burger,type:\"button\",className:\"mvhd-bg\",\"aria-expanded\":open,\"aria-controls\":\"mvhd-drawer\",\"aria-label\":open?closeLabel:menuLabel,onClick:()=>setOpen(o=>!o),children:/*#__PURE__*/_jsxs(\"span\",{className:\"mvhd-bgl\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]})})]})]})})]});const drawerEl=compact?/*#__PURE__*/_jsx(\"div\",{\"data-mvhd\":\"\",ref:drawer,id:\"mvhd-drawer\",className:`mv mv-dark mvhd-dr${open?\" is-open\":\"\"}${phone?\" is-ph\":\"\"}`,style:vars,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":menuLabel,\"aria-hidden\":!open,...!open?{inert:\"\"}:{},children:/*#__PURE__*/_jsxs(\"div\",{className:\"mvhd-dsc\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mvhd-dhead\",style:M,children:[/*#__PURE__*/_jsx(\"i\",{className:\"mvhd-stripes\",\"aria-hidden\":true}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvhd-dmeta\",children:[/*#__PURE__*/_jsx(\"b\",{children:sheetTitle}),/*#__PURE__*/_jsx(\"span\",{children:sheetRoll}),/*#__PURE__*/_jsx(\"span\",{children:sheetScene}),/*#__PURE__*/_jsx(\"span\",{children:sheetTake})]})]}),/*#__PURE__*/_jsx(\"nav\",{\"aria-label\":menuLabel,children:/*#__PURE__*/_jsx(\"ol\",{className:\"mvhd-dl\",children:L.map((l,i)=>/*#__PURE__*/_jsx(\"li\",{style:{[\"--i\"]:i},children:/*#__PURE__*/_jsxs(\"a\",{href:l.h,\"aria-current\":isAct(l.h)?\"page\":undefined,className:isAct(l.h)?\"is-act\":\"\",onClick:()=>close(false),children:[/*#__PURE__*/_jsx(\"em\",{style:M,children:pad2(i+1)}),/*#__PURE__*/_jsx(\"span\",{style:Dh,children:l.l}),/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true,children:/*#__PURE__*/_jsx(IcoArrow,{s:20})})]})},i))})}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvhd-dfoot\",style:{[\"--i\"]:L.length},children:[ctaLabel&&/*#__PURE__*/_jsx(Btn,{href:book,label:ctaLabel,kind:\"solid\",onClick:()=>close(false)}),/*#__PURE__*/_jsxs(\"dl\",{className:\"mvhd-dgrid\",children:[site.email&&/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"dt\",{style:M,children:emailLabel}),/*#__PURE__*/_jsx(\"dd\",{children:/*#__PURE__*/_jsx(\"a\",{href:`mailto:${site.email}`,children:site.email})})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"dt\",{style:M,children:timeLabel}),/*#__PURE__*/_jsxs(\"dd\",{style:M,children:[/*#__PURE__*/_jsx(\"i\",{className:\"mv-port\",\"aria-hidden\":true}),clock,site.city?` \\xb7 ${site.city}`:\"\"]})]}),socials.length>0&&/*#__PURE__*/_jsxs(\"div\",{className:\"is-wide\",children:[/*#__PURE__*/_jsx(\"dt\",{style:M,children:socialsLabel}),/*#__PURE__*/_jsx(\"dd\",{className:\"mvhd-soc\",children:socials.map((s,i)=>/*#__PURE__*/_jsxs(\"a\",{href:s.h,target:\"_blank\",rel:\"noopener\",children:[s.l,/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,children:\" ↗\"})]},i))})]})]})]})]})}):null;const portal=mounted&&!still&&typeof document!==\"undefined\";return /*#__PURE__*/_jsxs(\"div\",{ref:anchor,className:\"mvhd-anchor\",style:{width:\"100%\",height:0,...props.style||{},position:\"relative\"},children:[/*#__PURE__*/_jsx(\"link\",{rel:\"stylesheet\",href:FONTS}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS_BASE+CSS_MVHD+siteFontCss(props)}}),portal&&host?/*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[bar,drawerEl]}),host):bar]});}const CSS_MVHD=`\n@media(min-width:1100px){\n.mv.mvhd,.mv.mvhd.is-lt{color:var(--mv-ink);--glass:var(--mv-bone);--rim:color-mix(in srgb,var(--mv-ink) 16%,transparent)}\n.mvhd .mvhd-in{background:var(--mv-bone)}\n}\nhtml[data-mv-theme=\"dark\"] .mvhd{--mv-bone:#171311!important;--mv-ink:#F1ECE4!important}\n\n.mvhd-theme{appearance:none;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:10px;border:1px solid var(--rim);border-radius:10px;background:var(--glass);color:inherit;cursor:pointer;transition:background .2s,transform .2s}\n.mvhd-theme:hover{background:color-mix(in srgb,currentColor 16%,transparent)}\n.mvhd-theme:active{transform:scale(.94)}\n.mvhd.is-ph .mvhd-av{display:none}\nhtml[data-mv-theme=\"dark\"] .mv:not(.mv-dark):not(.mvhd):not(.mvhd-dr){--mv-bone:#171311!important;--mv-ink:#F1ECE4!important;--mv-fog:#39332E!important;--mv-stone:#AEA69B!important;--mv-cloud:#231D19!important}\nhtml[data-mv-theme=\"light\"] .mv.mv-dark:not(.mvhd):not(.mvhd-dr){--mv-night:#F1ECE4!important;--mv-pine:#DDD4C8!important;--mv-cloud:#141210!important;--mv-ink:#F1ECE4!important;--mv-stone:#857B70!important}\nhtml[data-mv-theme=\"dark\"] .mvp{--bd:#171311!important;color:#F1ECE4!important;--nm-dim:#4C4843!important;--nm-lit:#F1ECE4!important}\nhtml[data-mv-theme=\"light\"] .mvp{--bd:#F1ECE4!important;color:#141210!important;--nm-dim:#8B877F!important;--nm-lit:#141210!important}\n\n.mvhd{position:fixed;z-index:1001;left:0;right:0;top:0;height:0;color:var(--mv-cloud);font-size:13px;--pad:clamp(20px,3.4vw,56px);--glass:color-mix(in srgb,var(--mv-night) 62%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 16%,transparent)}\n.mvhd.is-lt{color:var(--mv-ink);--glass:color-mix(in srgb,var(--mv-bone) 72%,transparent);--rim:color-mix(in srgb,var(--mv-ink) 13%,transparent)}\n.mvhd.is-still{position:absolute}\n.mvhd-bar{position:absolute;left:0;right:0;top:0;padding:0;transition:translate .55s cubic-bezier(.7,0,.2,1)}\n.mvhd.is-hid .mvhd-bar{translate:0 calc(-100% - 12px)} .mvhd.is-hid:focus-within .mvhd-bar{translate:0 0;transition-duration:0s}\n.mvhd-in{display:flex;align-items:center;gap:24px;margin:0 auto;padding:18px var(--pad);border-radius:0;background:transparent;box-shadow:inset 0 0 0 1px transparent;transition:background-color .45s,box-shadow .45s,padding .5s cubic-bezier(.2,.8,.2,1),margin .5s cubic-bezier(.2,.8,.2,1),border-radius .5s,color .3s}\n.mvhd.is-glass:not(.is-open) .mvhd-in{margin:10px calc(var(--pad) - 14px) 0;padding:8px 8px 8px 14px;border-radius:12px;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);box-shadow:inset 0 0 0 1px var(--rim),0 12px 34px -18px rgba(0,0,0,.45)}\n.mvhd-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-size:17px;letter-spacing:-.02em;font-stretch:112%;white-space:nowrap;border-radius:8px}\n.mvhd-mark{flex:none;transition:rotate .6s cubic-bezier(.34,1.56,.64,1)} .mvhd-logo:hover .mvhd-mark{rotate:-8deg}\n/* centre: the glass link bar (the hero nav) with a selection underline */\n.mvhd-nav{margin:0 auto}\n.mvhd-links{display:flex;gap:2px;list-style:none;margin:0;padding:4px;border-radius:10px;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--rim);transition:background-color .45s,box-shadow .45s}\n.mvhd.is-glass .mvhd-links{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}\n.mvhd-links a{position:relative;display:block;padding:8px 14px;border-radius:7px;color:inherit;text-decoration:none;transition:background .25s}\n.mvhd-links a:hover{background:color-mix(in srgb,currentColor 12%,transparent)}\n.mvhd-links a>i{position:absolute;left:14px;right:14px;bottom:3px;height:2px;background:var(--mv-brass);clip-path:inset(0 100% 0 0);transition:clip-path .45s steps(8,end)}\n.mvhd-links a>i::before,.mvhd-links a>i::after{content:\"\";position:absolute;top:-1.5px;width:5px;height:5px;background:var(--mv-cloud);box-shadow:0 0 0 1.2px var(--mv-brass)} .mvhd-links a>i::before{left:-3px} .mvhd-links a>i::after{right:-3px}\n.mvhd-links a:hover>i{clip-path:inset(0 0 0 0)} .mvhd-links a:hover>i::before,.mvhd-links a:hover>i::after{opacity:0}\n.mvhd-links a.is-act>i{clip-path:inset(0 0 0 0)} .mvhd-links a.is-act>i::before,.mvhd-links a.is-act>i::after{opacity:1}\n.mvhd-r{display:flex;align-items:center;gap:12px;margin-left:auto}\n.mvhd-nav+.mvhd-r{margin-left:0}\n/* availability dot + tooltip */\n.mvhd-av{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;cursor:help}\n.mvhd-av em{position:absolute;right:-6px;top:calc(100% + 10px);padding:6px 9px;border-radius:6px;background:var(--mv-ink);color:var(--mv-cloud);font-style:normal;font-size:11px;letter-spacing:.06em;white-space:nowrap;opacity:0;translate:0 -4px;pointer-events:none;transition:opacity .25s,translate .3s;box-shadow:0 10px 24px -12px rgba(0,0,0,.5)}\n.mvhd.is-lt .mvhd-av em{background:var(--mv-ink)}\n.mvhd-av:hover em,.mvhd-av:focus-visible em{opacity:1;translate:0 0}\n/* burger → ✕ */\n.mvhd-bg{appearance:none;border:0;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px 0 12px;border-radius:10px;color:inherit;background:color-mix(in srgb,currentColor 10%,transparent);box-shadow:inset 0 0 0 1px var(--rim);cursor:pointer;font:inherit;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}\n.mvhd-bgl{position:relative;width:20px;height:12px} .mvhd-bgl i{position:absolute;left:0;right:0;height:2px;border-radius:1px;background:currentColor;transition:top .35s cubic-bezier(.7,0,.2,1),rotate .45s cubic-bezier(.7,0,.2,1) .1s}\n.mvhd-bgl i:first-child{top:1px} .mvhd-bgl i:last-child{top:9px}\n.mvhd.is-open .mvhd-bgl i{top:5px} .mvhd.is-open .mvhd-bgl i:first-child{rotate:45deg} .mvhd.is-open .mvhd-bgl i:last-child{rotate:-45deg}\n.mvhd-bgt{font-size:11px;letter-spacing:.12em;text-transform:uppercase}\n.mvhd.is-open{color:var(--mv-cloud)} .mvhd.is-open .mvhd-bg{background:var(--mv-brass);color:var(--mv-ink);box-shadow:none}\n.mvhd.is-open .mvhd-av,.mvhd.is-open .mvhd-cta{opacity:0;pointer-events:none;visibility:hidden}\n.mvhd.is-ph .mvhd-in{padding:12px 16px;gap:12px} .mvhd.is-ph.is-glass:not(.is-open) .mvhd-in{margin:8px 8px 0;padding:6px 6px 6px 10px}\n.mvhd.is-ph .mvhd-logo{font-size:16px}\n@media (max-width:359px){.mvhd .mvhd-bgt{display:none} .mvhd .mvhd-bg{padding:0 12px}}\n/* skip link */\n.mvhd-skip{position:absolute;left:12px;top:-60px;z-index:3;padding:10px 14px;border-radius:8px;background:var(--mv-brass);color:var(--mv-ink);font-size:12px;letter-spacing:.06em;text-decoration:none}\n.mvhd-skip:focus{top:10px}\n/* THE DRAWER — a call sheet on the night ground */\n.mvhd-dr{position:fixed;z-index:1000;inset:0;background:var(--mv-night);color:var(--mv-cloud);visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.7,0,.2,1),visibility 0s linear .7s;--line:color-mix(in srgb,var(--mv-cloud) 14%,transparent)}\n.mvhd-dr.is-open{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .7s cubic-bezier(.7,0,.2,1),visibility 0s}\n.mvhd-dr::before{content:\"\";position:absolute;inset:0;pointer-events:none;background:radial-gradient(90% 60% at 85% 0%,rgba(255,226,180,.10),transparent 60%)}\n.mvhd-dsc{position:relative;height:100%;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:clamp(20px,4vh,40px);padding:clamp(84px,12vh,112px) clamp(20px,5vw,48px) 28px}\n.mvhd-dhead{display:flex;flex-direction:column;gap:12px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}\n.mvhd-stripes{display:block;height:14px;border-radius:3px;background:repeating-linear-gradient(118deg,var(--mv-cloud) 0 18px,var(--mv-ink) 18px 36px);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--mv-cloud) 70%,transparent);transform-origin:0 100%;rotate:-6deg;transition:rotate .35s cubic-bezier(.7,0,1,.6) .5s}\n.mvhd-dr.is-open .mvhd-stripes{rotate:0deg}\n.mvhd-dmeta{display:flex;flex-wrap:wrap;gap:6px 18px;padding-bottom:12px;border-bottom:1.5px solid color-mix(in srgb,var(--mv-cloud) 70%,transparent);color:color-mix(in srgb,var(--mv-cloud) 66%,transparent)} .mvhd-dmeta b{font-weight:500;color:var(--mv-brass)}\n.mvhd-dl{list-style:none;margin:0;padding:0}\n.mvhd-dl li{border-bottom:1px solid var(--line);overflow:hidden}\n.mvhd-dl a{display:flex;align-items:baseline;gap:clamp(12px,3vw,24px);padding:clamp(8px,1.6vh,14px) 0;color:inherit;text-decoration:none;opacity:0;translate:0 70%;transition:opacity .5s ease,translate .7s cubic-bezier(.2,.85,.15,1),color .25s}\n.mvhd-dr.is-open .mvhd-dl a{opacity:1;translate:0 0;transition-delay:calc(.28s + var(--i)*.06s),calc(.28s + var(--i)*.06s),0s}\n.mvhd-dl em{flex:none;width:2.2em;font-style:normal;font-size:12px;letter-spacing:.1em;color:color-mix(in srgb,var(--mv-cloud) 55%,transparent)}\n.mvhd-dl span{font-size:clamp(34px,10vw,64px);line-height:1;letter-spacing:-.045em;font-stretch:115%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.mvhd-dl i{margin-left:auto;align-self:center;opacity:.4;transition:opacity .3s,rotate .45s cubic-bezier(.34,1.56,.64,1)}\n.mvhd-dl a:hover i,.mvhd-dl a:focus-visible i{opacity:1;rotate:-45deg}\n.mvhd-dl a.is-act{color:var(--mv-brass)} .mvhd-dl a.is-act em{color:var(--mv-brass)}\n.mvhd-dfoot{display:flex;flex-direction:column;gap:22px;opacity:0;translate:0 16px;transition:opacity .5s ease,translate .7s cubic-bezier(.2,.85,.15,1)}\n.mvhd-dr.is-open .mvhd-dfoot{opacity:1;translate:0 0;transition-delay:calc(.34s + var(--i)*.06s)}\n.mvhd-dfoot .mv-btn{align-self:flex-start}\n.mvhd-dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;margin:0} .mvhd-dgrid .is-wide{grid-column:1/-1}\n.mvhd-dgrid dt{margin:0 0 6px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--mv-cloud) 58%,transparent)}\n.mvhd-dgrid dd{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;overflow-wrap:anywhere} .mvhd-dgrid a{color:inherit;text-underline-offset:3px}\n.mvhd-soc{flex-wrap:wrap;gap:8px 18px!important} .mvhd-soc a{text-decoration:none;padding:4px 0} .mvhd-soc a:hover{color:var(--mv-brass)}\n.mvhd-dr.is-ph .mvhd-dgrid{grid-template-columns:minmax(0,1fr)}\n\n/* Compact navigation: stable, high-contrast bar and generous tap targets. */\n@media(max-width:1099px){\n.mvhd,.mvhd.is-lt,.mvhd.is-open{color:var(--mv-ink);--glass:var(--mv-bone);--rim:color-mix(in srgb,var(--mv-ink) 14%,transparent)}\n.mvhd .mvhd-in,.mvhd.is-ph .mvhd-in,.mvhd.is-glass:not(.is-open) .mvhd-in,.mvhd.is-ph.is-glass:not(.is-open) .mvhd-in{margin:0;padding:calc(10px + env(safe-area-inset-top,0px)) 20px 10px;gap:16px;min-height:64px;background:var(--mv-bone);border-radius:0;box-shadow:0 1px 0 var(--rim);backdrop-filter:none}\n.mvhd-logo{flex:1;min-width:0;gap:8px}\n.mvhd-logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.mvhd .mvhd-r{flex:none;gap:8px;margin-left:auto}\n.mvhd .mvhd-av,.mvhd .mvhd-cta{display:none}\n.mvhd .mvhd-theme,.mvhd .mvhd-bg{width:44px;height:44px;min-height:44px;flex:none;display:grid;place-items:center;padding:12px;border-radius:10px;background:transparent;color:inherit;border:1px solid var(--rim);box-shadow:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}\n.mvhd .mvhd-bg:active,.mvhd .mvhd-theme:active{background:color-mix(in srgb,var(--mv-ink) 10%,transparent)}\n.mvhd-bgl{height:16px;width:20px}\n.mvhd .mvhd-bgl i:nth-child(1){top:1px}\n.mvhd .mvhd-bgl i:nth-child(2){top:7px;transition:opacity .2s}\n.mvhd .mvhd-bgl i:nth-child(3){top:13px}\n.mvhd.is-open .mvhd-bgl i:nth-child(1){top:7px;rotate:45deg}\n.mvhd.is-open .mvhd-bgl i:nth-child(2){opacity:0}\n.mvhd.is-open .mvhd-bgl i:nth-child(3){top:7px;rotate:-45deg}\n.mvhd-dr{top:calc(64px + env(safe-area-inset-top,0px));height:calc(100dvh - 64px - env(safe-area-inset-top,0px));bottom:auto;transition:clip-path .35s cubic-bezier(.2,.8,.2,1),visibility 0s linear .35s;background:var(--mv-bone);color:var(--mv-ink);--line:color-mix(in srgb,var(--mv-ink) 16%,transparent)}\n.mvhd-dr.is-open{transition:clip-path .35s cubic-bezier(.2,.8,.2,1),visibility 0s}\n.mvhd-dr::before,.mvhd-dhead{display:none}\n.mvhd-dr .mvhd-dsc{padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));gap:24px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}\n.mvhd-dr .mvhd-dl a{align-items:center;gap:16px;padding:18px 0;min-height:64px;translate:0 -8px;transition:opacity .25s,translate .3s,color .2s}\n.mvhd-dr.is-open .mvhd-dl a{translate:0 0;transition-delay:calc(var(--i)*.035s)}\n.mvhd-dr .mvhd-dl span{font-size:clamp(26px,7vw,40px);line-height:1.15;white-space:normal;overflow-wrap:anywhere}\n.mvhd-dr .mvhd-dl em{font-size:11px;width:24px;color:var(--mv-stone)}\n.mvhd-dr .mvhd-dl i{flex:none}\n.mvhd-dr .mvhd-dfoot{gap:24px;translate:0 0;transition:opacity .25s}\n.mvhd-dr.is-open .mvhd-dfoot{transition-delay:.15s}\n.mvhd-dr .mvhd-dfoot>.mv-btn{width:100%;background:var(--mv-ink);color:var(--mv-bone)}\n.mvhd-dr .mvhd-dgrid{grid-template-columns:minmax(0,1fr);gap:20px}\n.mvhd-dr .mvhd-dgrid dt{color:var(--mv-stone)}\n.mvhd-dr .mvhd-dgrid dd{font-size:15px;line-height:1.5;flex-wrap:wrap}\n.mvhd-dr .mvhd-soc{gap:4px 20px!important}\n.mvhd-dr .mvhd-soc a{min-height:44px;display:inline-flex;align-items:center;gap:8px}\nhtml[data-mv-theme=\"dark\"] .mvhd,html[data-mv-theme=\"dark\"] .mvhd-dr{--mv-bone:#171311!important;--mv-ink:#F1ECE4!important;--mv-stone:#AEA69B!important}\nhtml[data-mv-theme=\"light\"] .mvhd,html[data-mv-theme=\"light\"] .mvhd-dr{--mv-bone:#F1ECE4!important;--mv-ink:#141210!important;--mv-stone:#857B70!important}\n}\n\n\n@media(max-width:1099px){\n.mvhd .mvhd-logo,.mvhd .mvhd-r,.mvhd .mvhd-bg,.mvhd .mvhd-theme{color:var(--mv-ink)}\n.mvhd-dr .mvhd-dl a,.mvhd-dr .mvhd-dgrid dd,.mvhd-dr .mvhd-dgrid a{color:var(--mv-ink)}\n.mvhd-dr .mvhd-dl a[aria-current=\"page\"] span{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}\n.mvhd-dr .mvhd-dfoot>.mv-btn{--face:var(--mv-ink);--fg:var(--mv-bone);--fg2:var(--mv-ink);--fill:var(--mv-brass)}\n.mvhd-dr .mvhd-dgrid a{min-height:44px;display:inline-flex;align-items:center}\n.mvhd-dr .mvhd-dsc{overscroll-behavior:contain;touch-action:pan-y}\n}\n@media(max-width:809px){\n.mv :is(input,textarea,select){font-size:16px}\n.mv :is(input:not([type=\"checkbox\"]):not([type=\"radio\"]),select){min-height:44px}\n.mv textarea{min-height:120px}\n.mv img{max-width:100%}\n.mv :is(button,a){touch-action:manipulation}\n.mv-wrap{--pad:20px}\n}\n\n@media (prefers-reduced-motion:reduce){.mvhd-bar,.mvhd-in,.mvhd-dr,.mvhd-dl a,.mvhd-dfoot,.mvhd-stripes,.mvhd-bgl i{transition:none!important}}\n`;addPropertyControls(MvHeader,{...COLOR_CONTROLS,...FONT_CONTROLS,...BP_CONTROL,links:{type:ControlType.String,title:\"Links\",description:\"Label:/path, … (the current page gets the selection underline)\",defaultValue:\"Work:/work, About:/about, R\\xe9sum\\xe9:/resume, Writing:/writing, Contact:/contact\"},ctaLabel:{type:ControlType.String,title:\"Button\",defaultValue:\"Hire me\"},ctaLink:{type:ControlType.Link,title:\"Button link\",description:\"Empty = Booking Link on the Site CMS row\"},availLabel:{type:ControlType.String,title:\"Availability\",description:\"Tooltip on the green dot. Empty = Availability on the Site CMS row\",defaultValue:\"\"},homeLabel:{type:ControlType.String,title:\"Logo label\",description:\"Read by screen readers after the name\",defaultValue:\"home\"},skipLabel:{type:ControlType.String,title:\"Skip link\",defaultValue:\"Skip to content\"},menuLabel:{type:ControlType.String,title:\"Menu label\",defaultValue:\"Menu\"},closeLabel:{type:ControlType.String,title:\"Close label\",defaultValue:\"Close\"},sheetTitle:{type:ControlType.String,title:\"Menu: title\",defaultValue:\"Call sheet\"},sheetRoll:{type:ControlType.String,title:\"Menu: roll\",defaultValue:\"Roll MV-26\"},sheetScene:{type:ControlType.String,title:\"Menu: scene\",defaultValue:\"Scene: Menu\"},sheetTake:{type:ControlType.String,title:\"Menu: take\",defaultValue:\"Take 01\"},emailLabel:{type:ControlType.String,title:\"Menu: email label\",defaultValue:\"Email\"},timeLabel:{type:ControlType.String,title:\"Menu: time label\",defaultValue:\"Local time\"},socialsLabel:{type:ControlType.String,title:\"Menu: socials label\",defaultValue:\"Elsewhere\"},probe:{type:ControlType.Boolean,title:\"Match ground\",description:\"Reads the colour under the bar and switches between light and dark type\",defaultValue:true},hideOnScroll:{type:ControlType.Boolean,title:\"Hide on scroll\",description:\"Hides while scrolling down, comes back on scroll up\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MvHeader\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MvHeader.map","// ===== JOSH BARNES shared scaffold (THE CANVAS: graphite design-tool canvas, paper sections, selection-cyan, SELECTION buttons) (inlined by mk.py; each Framer code file must be self-contained) =====\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const FONTS=\"https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,75..125,200..900;1,75..125,200..900&family=Chivo+Mono:ital,wght@0,300..600;1,300..600&display=swap\";// Token-safe alpha: Styles-bound colours arrive as var(--token-…) so hex-alpha breaks; color-mix keeps a palette flip working. Never 0% (hue drops) — floor at 0.4%.\nconst A=(c,a)=>`color-mix(in srgb, ${c} ${Math.max(.4,Math.round(a*1e3)/10)}%, transparent)`;const MIX=(a,b,t)=>`color-mix(in srgb, ${a} ${Math.round((1-t)*100)}%, ${b})`;const srcOf=(v,fallback)=>v&&typeof v===\"object\"&&v.src?String(v.src).split(\"?\")[0]:typeof v===\"string\"&&v.trim()?v.trim().split(\"?\")[0]:fallback;const T=(s,fb)=>s&&s.trim()?s.trim():fb;// ink or white text on a CMS brand colour (luminance test; the brand colour is data, not a palette token)\nconst onBrand=hex=>{const m=String(hex||\"\").replace(\"#\",\"\").match(/^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(!m)return\"var(--mv-cloud)\";const[r,g,b]=[m[1],m[2],m[3]].map(x=>{const v=parseInt(x,16)/255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);});const L=.2126*r+.7152*g+.0722*b;return L>.2?\"var(--mv-ink)\":\"var(--mv-cloud)\";};const cleanTel=s=>s.replace(/[^\\d+]/g,\"\");// Premium layout band (measured 09-13): container 1340 @1440 / 1520 @1920, body 16, button label 12–13.\nconst MAXW=\"clamp(1280px, 92vw, 1520px)\";// Responsive delivery: Framer's resizer serves any upload at ?scale-down-to=N (longest side). The query is stripped first so one file never downloads twice.\n// Responsive delivery. Framer uploads: the resizer serves ?scale-down-to=N. Unsplash stand-ins: ?w=N. The src is already the smallest width that covers the slot (a 52px avatar never pulls a 1600px photo), so a big image is never decoded for a small box — decode is what stalls scrolling.\nconst RS_W=[160,320,480,800,1200,1600];const rsTarget=sizes=>{const t=String(sizes||\"\").trim().split(\",\").pop()||\"\";const px=t.match(/(\\d+(?:\\.\\d+)?)px/);const vw=t.match(/(\\d+(?:\\.\\d+)?)vw/);const want=px?parseFloat(px[1])*2:vw?parseFloat(vw[1])/100*1600*1.25:1600;return RS_W.find(w=>w>=want)||1600;};const RS=(u,sizes)=>{const s=String(u||\"\");const b=s.split(\"?\")[0];if(/framerusercontent\\.com\\/images\\//.test(s)){const w=rsTarget(sizes);const d=w<=512?512:w<=1024?1024:2048;return{src:`${b}?scale-down-to=${d}`,srcSet:`${b}?scale-down-to=512 512w, ${b}?scale-down-to=1024 1024w, ${b}?scale-down-to=2048 2048w`,sizes};}if(/images\\.unsplash\\.com\\//.test(s)){const w=rsTarget(sizes);const q=n=>`${b}?w=${n}&q=70&fm=jpg&auto=format`;return{src:q(w),srcSet:RS_W.filter(n=>n<=Math.max(w*2,480)).map(n=>`${q(n)} ${n}w`).join(\", \"),sizes};}return{src:s};};// A Framer Font control stores a selector (GF;Family-700), not a CSS family — derive one, reject anything with ';'\nconst famOf=f=>{if(!f)return\"\";if(typeof f===\"string\")return f.includes(\";\")?\"\":f;if(f.fontFamily&&!String(f.fontFamily).includes(\";\"))return String(f.fontFamily);const sel=String(f.fontSelector||\"\");if(!sel)return\"\";const n=sel.split(\";\").pop()||\"\";return n.replace(/-(regular|italic|bold|\\d{3}(italic)?)$/i,\"\").replace(/-/g,\" \");};const wOf=(f,fb)=>{if(!f)return fb;if(f.fontWeight)return Number(f.fontWeight)||fb;const m=String(f.fontSelector||\"\").match(/-(\\d{3})/);return m?Number(m[1]):fb;};// famCss: Framer's Font `fontFamily` is ALREADY a stack — never wrap it in quotes (one fake family → fallback renders). A bare name gets quoted.\nconst famCss=f=>{const fa=famOf(f).replace(/\"/g,\"'\").trim();if(!fa)return\"\";return fa.includes(\",\")||fa.startsWith(\"'\")?fa:`'${fa}'`;};const stack=(custom,f,fb,tail)=>{const fam=custom?famCss(f):\"\";return`${fam?`${fam}, `:\"\"}${fb}, ${tail}`;};function useFonts(){useEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"mv-fonts\"))return;const l=document.createElement(\"link\");l.id=\"mv-fonts\";l.rel=\"stylesheet\";l.href=FONTS;document.head.appendChild(l);},[]);}// live = client after hydration and not on the canvas. SSR and the first client render share the same markup.\n// TRUE on the Framer canvas AND in its export / thumbnail / screenshot renderers (anything that is not the running preview): no scroll and no hydration there, so every reveal / pinned stage must draw its FINAL state or the editor shows empty blocks.\nfunction useStill(){const isStatic=useIsStaticRenderer();let t=null;try{t=RenderTarget.current();}catch(e){}return isStatic||t!==null&&t!==RenderTarget.preview;}function useLive(){const isStatic=useIsStaticRenderer();const[live,setLive]=useState(false);useEffect(()=>{if(!isStatic&&RenderTarget.current()!==RenderTarget.canvas&&typeof window!==\"undefined\")setLive(true);},[isStatic]);return live;}// Width/height of the root + viewport height. SSR starts from the breakpoint hint (Framer renders the Tablet/Phone copies with the same code and no width).\nfunction useSize(root,hint){const ov=String(hint||\"\").toLowerCase();const[w,setW]=useState(ov===\"phone\"?390:ov===\"tablet\"?810:1440),[vh,setVh]=useState(ov===\"phone\"?844:ov===\"tablet\"?1080:900);useLayoutEffect(()=>{const el=root.current;if(!el)return;const ro=new ResizeObserver(([e])=>{const x=Math.round((e.borderBoxSize&&e.borderBoxSize[0]?e.borderBoxSize[0].inlineSize:0)||el.offsetWidth);if(x>0)setW(x);});ro.observe(el);const vv=()=>setVh(window.innerHeight);vv();const read=()=>{const x=Math.round(el.offsetWidth);if(x>0)setW(x);};const t1=window.setTimeout(read,150),t2=window.setTimeout(read,700),t3=window.setTimeout(read,1600);window.addEventListener(\"resize\",vv);window.addEventListener(\"load\",read);return()=>{ro.disconnect();window.clearTimeout(t1);window.clearTimeout(t2);window.clearTimeout(t3);window.removeEventListener(\"resize\",vv);window.removeEventListener(\"load\",read);};},[]);return{w,vh};}const useReduced=()=>{const[rm,setRm]=useState(false);useLayoutEffect(()=>{setRm(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);},[]);return rm;};// One shared rAF for every section. Each frame runs ALL reads first (layout reads: getBoundingClientRect, offsetHeight), then ALL writes (CSS vars, transforms).\n// Interleaving read → write → read made the browser recalc the whole page's style once per section per frame (layout thrashing: 20+ recalcs a frame).\nfunction onTick(fn,read,pre){if(typeof window===\"undefined\")return()=>{};const w=window;if(!w.__nuTick){w.__nuTick={pre:new Set,subs:new Set,reads:new Set,raf:0};const loop=t=>{const T=w.__nuTick;T.pre.forEach(r=>r(t));T.reads.forEach(r=>r(t));T.subs.forEach(s=>s(t));T.raf=requestAnimationFrame(loop);};w.__nuTick.raf=requestAnimationFrame(loop);}w.__nuTick.subs.add(fn);if(read)w.__nuTick.reads.add(read);if(pre)w.__nuTick.pre.add(pre);return()=>{w.__nuTick.subs.delete(fn);if(read)w.__nuTick.reads.delete(read);if(pre)w.__nuTick.pre.delete(pre);};}const clamp01=v=>Math.min(1,Math.max(0,v));const easeIO=t=>{const x=clamp01(t);return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;};const DEF={bone:\"#F1ECE4\",ink:\"#141210\",brass:\"#4D9FFF\",pine:\"#231D19\",fog:\"#DDD4C8\",stone:\"#857B70\",cloud:\"#FFFFFF\",night:\"#171311\"};// collaborator cursor colours (constants, not tokens): the client and the developer on the canvas\nconst AMBER=\"#FFB224\",VIOLET=\"#A58BFF\";const colorsOf=p=>({bone:p.bone||DEF.bone,ink:p.ink||DEF.ink,brass:p.brass||DEF.brass,pine:p.pine||DEF.pine,fog:p.fog||DEF.fog,stone:p.stone||DEF.stone,cloud:p.cloud||DEF.cloud,night:p.night||DEF.night});// a Style-bound colour arrives as var(--token-…, #hex): let the browser resolve it to r,g,b for canvas drawing\nconst cssRgb=(el,col,fb)=>{if(!el||typeof window===\"undefined\")return fb;const p=document.createElement(\"i\");p.style.display=\"none\";p.style.color=col;el.appendChild(p);const v=getComputedStyle(p).color;p.remove();const m=v.match(/(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?)/);return m?`${Math.round(+m[1])},${Math.round(+m[2])},${Math.round(+m[3])}`:fb;};const cssVars=c=>({\"--mv-bone\":c.bone,\"--mv-ink\":c.ink,\"--mv-brass\":c.brass,\"--mv-pine\":c.pine,\"--mv-fog\":c.fog,\"--mv-stone\":c.stone,\"--mv-cloud\":c.cloud,\"--mv-night\":c.night});const COLOR_CONTROLS={bone:{type:ControlType.Color,title:\"Paper\",defaultValue:DEF.bone},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:DEF.ink},brass:{type:ControlType.Color,title:\"Accent\",defaultValue:DEF.brass},pine:{type:ControlType.Color,title:\"Deep\",defaultValue:DEF.pine},fog:{type:ControlType.Color,title:\"Line\",defaultValue:DEF.fog},stone:{type:ControlType.Color,title:\"Muted\",defaultValue:DEF.stone},cloud:{type:ControlType.Color,title:\"White\",defaultValue:DEF.cloud},night:{type:ControlType.Color,title:\"Dark\",defaultValue:DEF.night}};// ---- Fonts: Custom Fonts toggle → Font controls; off = Mona Sans (wide display) / Mona Sans / Chivo Mono ----\nconst FONT_CONTROLS={customFonts:{type:ControlType.Boolean,title:\"Custom Fonts\",description:\"Off = the site fonts (set once on the Header in the Site Layout). On = different fonts for this section only\",defaultValue:false},displayFont:{type:ControlType.Font,title:\"Display Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},bodyFont:{type:ControlType.Font,title:\"Body Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},monoFont:{type:ControlType.Font,title:\"Mono Font\",defaultFontType:\"monospace\",hidden:p=>!p.customFonts}};const NUMF=\"var(--mv-font-m, 'Chivo Mono'), ui-monospace, monospace\";// Site-wide fonts: the Header (Site Layout, every page) writes --mv-font-d/b/m (+ weights) on :root when its Custom Fonts is on. A section uses them unless its own Custom Fonts is on.\nconst siteFontCss=p=>{if(!p||!p.customFonts)return\"\";const v=[];const put=(k,f,w)=>{const fam=famCss(f);if(fam){v.push(`--mv-font-${k}:${fam}`);v.push(`--mv-font-${k}w:${wOf(f,w)}`);}};put(\"d\",p.displayFont,600);put(\"b\",p.bodyFont,400);put(\"m\",p.monoFont,400);put(\"a\",p.accentFont,400);return v.length?`:root{${v.join(\";\")}}`:\"\";};function fontsOf(p){const on=!!p.customFonts;const D={fontFamily:stack(on,p.displayFont,\"var(--mv-font-d, 'Mona Sans')\",\"Inter, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.displayFont,600):\"var(--mv-font-dw, 600)\",fontStyle:on&&p.displayFont&&p.displayFont.fontStyle?p.displayFont.fontStyle:\"normal\"};const B={fontFamily:stack(on,p.bodyFont,\"var(--mv-font-b, 'Mona Sans')\",\"Inter, system-ui, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.bodyFont,400):\"var(--mv-font-bw, 400)\"};const M={fontFamily:stack(on,p.monoFont,\"var(--mv-font-m, 'Chivo Mono')\",\"ui-monospace, SFMono-Regular, Menlo, monospace\"),fontWeight:on?wOf(p.monoFont,400):\"var(--mv-font-mw, 400)\"};return{D,B,M};}const BP_CONTROL={bpHint:{type:ControlType.Enum,title:\"Breakpoint Hint\",description:\"Set per breakpoint copy so the server render starts at the right width\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\",hidden:()=>true}};// ---- Button system: THE PING — a pill. On hover a pink notification dot pops on its right edge with a rolling \"+1\", a lime ring pings out of the dot, the accent fill sweeps in from the left and the label rolls up. Magnetic on desktop, squish on press. Solid = ink (fill lime), ghost = glass/hairline (fill paper), quiet = small nav pill. ----\nconst Glyph=({k})=>k===\"mail\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"5\",width:\"18\",height:\"14\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 7l8 6 8-6\"})]}):k===\"cal\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\"})]}):k===\"play\"?/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M8 5.5v13l10.5-6.5z\"})}):/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 17L17 7M9 7h8v8\"})});// In-page CTA jumps (\"#download\", \"/#download\"): scroll to the section when it is on this page, otherwise go to it on the home page.\nfunction jumpTo(e,href){try{const m=String(href||\"\").match(/^\\/?#([\\w-]+)$/);if(!m)return;const el=document.getElementById(m[1]);if(el){e.preventDefault();const W=window;const L=W.__ltLenis||W.__vcLenis||W.lenis;if(L&&L.scrollTo)L.scrollTo(el,{offset:-20});else el.scrollIntoView({behavior:\"smooth\",block:\"start\"});try{history.replaceState(null,\"\",\"#\"+m[1]);}catch(x){}}else if(href.startsWith(\"#\")){e.preventDefault();window.location.href=\"/\"+href;}}catch(x){}}const Btn=({href,label,kind=\"solid\",arrow=true,style,className,onClick,ariaLabel,cur,icon,sub})=>/*#__PURE__*/_jsxs(\"a\",{className:`mv-btn mv-${kind}${arrow?\"\":\" mv-noarr\"}${className?\" \"+className:\"\"}`,\"data-mag\":true,\"data-cur\":cur||\"go\",href:href,target:/^https?:\\/\\//.test(href||\"\")?\"_blank\":undefined,rel:/^https?:\\/\\//.test(href||\"\")?\"noopener\":undefined,onClick:onClick||(e=>jumpTo(e,href)),\"aria-label\":ariaLabel||(sub?`${sub} ${label}`:undefined),style:style,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"mv-face\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-fill\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-lbl\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"mv-roll\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-l1\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-l2\",\"aria-hidden\":true,children:label})]})}),arrow&&/*#__PURE__*/_jsxs(\"span\",{className:\"mv-arr\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-a1\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-a2\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})})]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"mv-selb\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]}),/*#__PURE__*/_jsx(\"b\",{className:\"mv-dim\",\"aria-hidden\":true})]});function useNearFocus(root,live){useEffect(()=>{if(!live||!root.current)return;const el=root.current;const f=e=>{const t=e.target;const sc=t.closest?.(\".mv-inring\");if(!sc)return;try{t.scrollIntoView({block:\"nearest\",inline:\"nearest\"});}catch(x){}};el.addEventListener(\"focusin\",f);return()=>el.removeEventListener(\"focusin\",f);},[live]);}function useMagnet(root,live){useEffect(()=>{if(!live||!root.current||!window.matchMedia(\"(hover:hover) and (pointer:fine)\").matches)return;const r=root.current;const btns=()=>Array.from(r.querySelectorAll(\"[data-mag]\"));const en=e=>{const b=e.target.closest?.(\"[data-mag]\");if(b){const d=b.querySelector(\".mv-dim\");if(d)d.textContent=`${Math.round(b.offsetWidth)} \\xd7 ${Math.round(b.offsetHeight)}`;}};const mv=e=>{for(const b of btns()){const rc=b.getBoundingClientRect();const dx=e.clientX-(rc.left+rc.width/2),dy=e.clientY-(rc.top+rc.height/2);const d=Math.hypot(dx,dy);const pull=d<150?(1-d/150)*8:0;b.style.setProperty(\"--mx\",`${dx/(d||1)*pull}px`);b.style.setProperty(\"--my\",`${dy/(d||1)*pull}px`);}};const lv=()=>{for(const b of btns()){b.style.setProperty(\"--mx\",\"0px\");b.style.setProperty(\"--my\",\"0px\");}};r.addEventListener(\"pointermove\",mv);r.addEventListener(\"pointerleave\",lv);r.addEventListener(\"pointerover\",en);r.addEventListener(\"focusin\",en);return()=>{r.removeEventListener(\"pointermove\",mv);r.removeEventListener(\"pointerleave\",lv);r.removeEventListener(\"pointerover\",en);r.removeEventListener(\"focusin\",en);};},[live]);}const CSS_BASE=`\n:where(.mv){position:relative;z-index:10} .mv,.mv *{box-sizing:border-box;min-width:0} .mv-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;padding:0!important;margin:-1px!important;border:0!important} :where(.mv) a{color:inherit} html,body{overflow-x:clip}\n:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"]),[role=\"button\"]):focus-visible{outline:3px solid var(--mv-ink,#0D0E10)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--mv-bone,#EEEEE8)!important} :where(.mv-dark) :where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"])):focus-visible{outline-color:var(--mv-cloud,#FFFFFF)!important;box-shadow:0 0 0 2px var(--mv-night,#08090A)!important} :where(.mv-inring) :where(a[href],button):focus-visible{outline-offset:-4px!important;box-shadow:none!important} :where(.mv) :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select):focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important;box-shadow:none!important} :where(.mv) textarea{resize:none} .mv-inring:focus-visible{outline-offset:-3px!important;box-shadow:none!important} html{scroll-padding-top:96px;scroll-padding-bottom:88px}\n/* THE SELECTION button: a 10px-radius block. Hover/focus = the design-tool selection snaps around it (cyan outline 5px outside, four white handles, live W \\xd7 H badge underneath), the fill sweeps in from the left and the label rolls up. Magnetic on desktop. */\n.mv-btn{position:relative;display:inline-flex;padding:0;min-height:54px;border-radius:10px;text-decoration:none;cursor:pointer;isolation:isolate;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.005em;border:0;color:var(--fg);transition:color .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-face{position:relative;z-index:1;display:inline-flex;align-items:center;gap:14px;width:100%;min-height:inherit;padding:0 8px 0 22px;border-radius:inherit;background:var(--face);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:inset 0 0 0 1px var(--rim);overflow:hidden;isolation:isolate}\n.mv-fill{position:absolute;z-index:0;inset:0;background:var(--fill);border-radius:inherit;clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-fill,.mv-btn:focus-visible .mv-fill{clip-path:inset(0 0 0 0)}\n.mv-lbl{position:relative;z-index:1;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.15}\n.mv-roll{display:block;height:1.2em;overflow:hidden;line-height:1.2} .mv-l1,.mv-l2{display:block;transition:translate .5s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-l1,.mv-btn:hover .mv-l2,.mv-btn:focus-visible .mv-l1,.mv-btn:focus-visible .mv-l2{translate:0 -100%}\n.mv-arr{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:6px;background:var(--chip);color:var(--chipfg);overflow:hidden;transition:background .4s,color .4s} .mv-arr>span{grid-area:1/1;display:grid;place-items:center;transition:transform .55s cubic-bezier(.7,0,.2,1)} .mv-arr svg{width:15px;height:15px} .mv-a2{transform:translate(-160%,160%)}\n.mv-btn:hover .mv-a1,.mv-btn:focus-visible .mv-a1{transform:translate(160%,-160%)} .mv-btn:hover .mv-a2,.mv-btn:focus-visible .mv-a2{transform:none} .mv-btn:hover .mv-arr,.mv-btn:focus-visible .mv-arr{background:var(--chip2);color:var(--chipfg2)}\n.mv-selb{position:absolute;z-index:2;inset:-5px;border-radius:13px;box-shadow:0 0 0 1.5px var(--mv-brass);pointer-events:none;opacity:0;scale:1.06;transition:opacity .25s,scale .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-selb i{position:absolute;width:7px;height:7px;background:var(--mv-cloud);box-shadow:0 0 0 1.5px var(--mv-brass);translate:-50% -50%} .mv-selb i:nth-child(1){left:0;top:0} .mv-selb i:nth-child(2){left:100%;top:0} .mv-selb i:nth-child(3){left:0;top:100%} .mv-selb i:nth-child(4){left:100%;top:100%}\n.mv-btn:hover .mv-selb,.mv-btn:focus-visible .mv-selb{opacity:1;scale:1}\n.mv-dim{position:absolute;z-index:3;left:50%;top:calc(100% + 11px);translate:-50% -4px;padding:2px 6px;border-radius:4px;background:var(--mv-brass);color:var(--mv-ink);font:500 10px/1.4 var(--mv-font-m,'Chivo Mono'),ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s,translate .35s}\n.mv-btn:hover .mv-dim,.mv-btn:focus-visible .mv-dim{opacity:1;translate:-50% 0}\n.mv-btn:hover,.mv-btn:focus-visible{color:var(--fg2)}\n.mv-btn.mv-noarr .mv-face{padding-right:22px}\n.mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-quiet{min-height:40px;font-size:13px;border-radius:8px;--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)} .mv-btn.mv-quiet .mv-arr{width:28px;height:28px;border-radius:5px} .mv-btn.mv-quiet .mv-face{padding-left:16px;gap:10px;padding-right:6px} .mv-btn.mv-quiet .mv-selb{inset:-4px;border-radius:11px}\n/* on paper grounds: solid = ink face (cyan fill), ghost = ink hairline */\n.mv:not(.mv-dark) .mv-btn.mv-solid,.mv-lt .mv-btn.mv-solid{--face:var(--mv-ink);--fill:var(--mv-brass);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:var(--mv-brass);--chipfg:var(--mv-ink);--chip2:var(--mv-ink);--chipfg2:var(--mv-brass)}\n.mv:not(.mv-dark) .mv-btn.mv-ghost,.mv-lt .mv-btn.mv-ghost{--face:transparent;--rim:color-mix(in srgb,var(--mv-ink) 28%,transparent);--fill:var(--mv-ink);--fg:var(--mv-ink);--fg2:var(--mv-cloud);--chip:color-mix(in srgb,var(--mv-ink) 7%,transparent);--chipfg:var(--mv-ink);--chip2:var(--mv-brass);--chipfg2:var(--mv-ink)}\n.mv:not(.mv-dark) .mv-selb i,.mv-lt .mv-selb i{background:var(--mv-cloud)}\n/* a DARK band nested inside a paper section (case next-project, service film band): dark button faces again. Higher specificity than the paper rule above, so the result no longer depends on which component's <style> tag comes last in the page */\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n@media (max-width:600px),(hover:none){.mv .mv-btn{white-space:normal;text-align:left;line-height:1.25;min-height:54px;max-width:100%} .mv .mv-btn.mv-quiet{min-height:40px;white-space:nowrap} .mv .mv-btn .mv-face{justify-content:space-between} .mv .mv-roll{height:auto} .mv .mv-l2{display:none} .mv .mv-btn .mv-l1{translate:none!important} .mv .mv-selb,.mv .mv-dim{display:none}}\n.mv-btn:hover{transform:translate(var(--mx,0px),var(--my,0px))} .mv-btn:active{transform:translate(var(--mx,0px),var(--my,0px)) scale(.97)!important;transition-duration:.12s}\n/* TEXT-SAFE accents: cyan is a SURFACE colour on paper (selections, fills, chips) — accent text on paper is ink; on graphite grounds the cyan itself reads */\n.mv{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink));--mv-acc-d:var(--mv-brass)}\n.mv-lt,.mv .mv-lt{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink))}\n.mv-dark,.mv.mv-dark{--mv-acc:var(--mv-brass);--mv-acc-lg:var(--mv-brass);--mv-hl:transparent;--mv-mut:color-mix(in srgb,var(--mv-stone) 40%,var(--mv-cloud))}\n.mv-port{width:7px;height:7px;flex:none;border-radius:50%;background:#3DDC84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:mv-live 1.8s infinite} @keyframes mv-live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}100%{box-shadow:0 0 0 9px rgba(61,220,132,0)}}\n@media (prefers-reduced-motion:reduce){.mv *,.sth *{animation-duration:.01ms!important;transition-duration:.01ms!important}}`;const IcoArrow=({s=15})=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\"})});const Stars=({v=5,s=13})=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-stars\",\"aria-hidden\":true,children:[0,1,2,3,4].map(i=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",style:{opacity:i<Math.round(v)?1:.28},children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M12 2.6l2.9 6.1 6.7.9-4.9 4.6 1.2 6.6L12 17.6 6.1 20.8l1.2-6.6L2.4 9.6l6.7-.9z\"})},i))});// ===== JOSH BARNES motion layer (THE FLOW) (composed by mk.py after _common) =====\n// One shared rAF (onTick). Sections write --sp (0 = top edge enters the viewport bottom → 1 = bottom edge leaves the top) and,\n// for tall pinned wrappers, --pp (0 = wrapper top hits the viewport top → 1 = wrapper bottom hits the viewport bottom). IO-gated.\nconst SCRUB_K=.18;// Decode a section's photos while it is still a screen and a half away, so the first frame it is on screen never waits for a decode.\nfunction usePre(el){try{const io=new IntersectionObserver(es=>{if(!es[0].isIntersecting)return;io.disconnect();el.querySelectorAll(\"img\").forEach(im=>{try{im.loading=\"eager\";im.decode().catch(()=>{});}catch(e){}});},{rootMargin:\"150% 0px 150% 0px\"});io.observe(el);}catch(e){}}function focusTo(el,frac){if(!el||typeof window===\"undefined\")return;if(window.innerWidth<810)return;const r=el.getBoundingClientRect();const vh=window.innerHeight;if(r.height<=vh*1.05)return;const y=r.top+window.scrollY+(r.height-vh)*Math.min(1,Math.max(0,frac));if(Math.abs(window.scrollY-y)<8)return;const w=window;if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}function useScrollVars(ref,live,rm,cb){useEffect(()=>{if(!live||rm||!ref.current)return;const el=ref.current;let vis=true,last=-9,cs=-1,cp=-1,settled=false;usePre(el);const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"25% 0px 25% 0px\"});io.observe(el);// eased scrub: the values glide toward the true scroll position (K per frame), so wheel steps never jump a pinned scene\nlet rt=0,rh=0,vh=1,fresh=false;const read=()=>{if(!vis&&settled){fresh=false;return;}const r=el.getBoundingClientRect();rt=r.top;rh=r.height;vh=window.innerHeight||1;fresh=true;};const off=onTick(()=>{if(!fresh)return;const sp=clamp01((vh-rt)/(vh+rh));const pp=rh>vh*1.05?clamp01(-rt/(rh-vh)):sp;if(cs<0){cs=sp;cp=pp;}else{cs+=(sp-cs)*SCRUB_K;cp+=(pp-cp)*SCRUB_K;if(Math.abs(sp-cs)<5e-4)cs=sp;if(Math.abs(pp-cp)<5e-4)cp=pp;}settled=cs===sp&&cp===pp;if(Math.abs(cs+cp-last)<3e-4)return;last=cs+cp;el.style.setProperty(\"--sp\",cs.toFixed(4));el.style.setProperty(\"--pp\",cp.toFixed(4));if(cb)cb(cs,cp);},read);return()=>{off();io.disconnect();};},[live,rm]);}// STAGE — false while the loader or the page-transition cover is on screen (html.mv-hold-*), so first-screen intros play AFTER the cover lifts, never under it. 9 s safety.\nfunction useStage(live){const[r,setR]=useState(false);useEffect(()=>{if(!live)return;const h=document.documentElement;const ok=()=>!/(^|\\s)mv-hold/.test(h.className);if(ok()){setR(true);return;}const mo=new MutationObserver(()=>{if(ok()){mo.disconnect();setR(true);}});mo.observe(h,{attributes:true,attributeFilter:[\"class\"]});const t=window.setTimeout(()=>{mo.disconnect();setR(true);},9e3);return()=>{mo.disconnect();window.clearTimeout(t);};},[live]);return r;}// true once the element has entered the viewport (stays true) — and only once the stage is clear. Reduced motion = true at once.\nfunction useOn(ref,live,rm,amount=.16){const[on,setOn]=useState(false);const still=useStill();const ready=useStage(live);useEffect(()=>{if(!live)return;if(rm){setOn(true);return;}if(!ready)return;const el=ref.current;if(!el)return;let off=()=>{};// keyboard focus: mark the section FIRST and flush styles, so the reveal that follows runs with instant transitions (a transition keeps the timing it started with)\nconst fin=e=>{try{if(e.target.matches(\":focus-visible\")){el.setAttribute(\"data-kb\",\"\");void el.offsetWidth;}}catch(x){}setOn(true);};const fout=e=>{if(!el.contains(e.relatedTarget))el.removeAttribute(\"data-kb\");};el.addEventListener(\"focusin\",fin);el.addEventListener(\"focusout\",fout);const io=new IntersectionObserver(es=>{for(const e of es)if(e.isIntersecting){io.disconnect();// IO ignores occlusion: under a curtain (Reveal) wait until about a quarter of it is uncovered\noff=onTick(()=>{const rev=el.closest(\".mv-rev.is-act\");const rv=rev?parseFloat(rev.style.getPropertyValue(\"--rv\")||\"0\"):1;if(rv>.24){setOn(true);off();}});}},{threshold:Math.min(amount,Math.max(.005,window.innerHeight*.3/Math.max(1,el.offsetHeight))),rootMargin:\"0px 0px -6% 0px\"});io.observe(el);return()=>{io.disconnect();off();el.removeEventListener(\"focusin\",fin);el.removeEventListener(\"focusout\",fout);};},[live,rm,ready]);return on||still;}// CURTAIN REVEAL — the section is pinned BEHIND the one above it and is uncovered as that one lifts away (the footer movement, for any section).\n// Wrapper = section + a spacer of T, pulled up by T (page length unchanged); the section is sticky for exactly T of scroll. T = min(section height, 100svh):\n// a tall section pins at the top, a short one sits on the bottom edge of the viewport. The section ABOVE needs a higher Layer (z-index).\nfunction Reveal({on,layer=9,style,children}){const live=useLive();const rm=useReduced();const wrap=useRef(null);const inner=useRef(null);const sp=useRef(null);const[h,setH]=useState(0);const act=on&&live&&!rm&&h>0&&typeof window!==\"undefined\"&&window.innerWidth>=810;useEffect(()=>{if(!on||!live||rm||!inner.current)return;const el=inner.current;const m=()=>setH(el.offsetHeight);m();const ro=new ResizeObserver(m);ro.observe(el);return()=>ro.disconnect();},[on,live,rm]);useEffect(()=>{if(!act||!wrap.current)return;const el=wrap.current;let vis=true,last=-1;const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"30% 0px 30% 0px\"});io.observe(el);let cur=-1,T=0,vh=1,top=0,fresh=false;const read=()=>{if(!vis){fresh=false;return;}T=sp.current?sp.current.offsetHeight:0;vh=window.innerHeight;top=el.getBoundingClientRect().top;fresh=true;};const off=onTick(()=>{if(!fresh||!T)return;const rv=clamp01((vh-T-top)/T);if(cur<0)cur=rv;else{cur+=(rv-cur)*SCRUB_K;if(Math.abs(rv-cur)<5e-4)cur=rv;}if(Math.abs(cur-last)<4e-4)return;last=cur;el.style.setProperty(\"--rv\",cur.toFixed(4));},read);return()=>{off();io.disconnect();};},[act]);return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,className:`mv-rev${act?\" is-act\":\"\"}`,style:{...style||{},[\"--h\"]:`${h}px`,[\"--layer\"]:layer},onFocusCapture:e=>{if(!act||!wrap.current)return;const t=e.target;const w=window;const r=wrap.current.getBoundingClientRect();const T=sp.current?sp.current.offsetHeight:0;const y=Math.max(0,Math.min(document.documentElement.scrollHeight-window.innerHeight,r.top+window.scrollY-window.innerHeight+2*T));if(Math.abs(window.scrollY-y)>4){if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}requestAnimationFrame(()=>{try{t.scrollIntoView({block:\"nearest\"});}catch(x){}});},children:[/*#__PURE__*/_jsx(\"div\",{ref:inner,className:\"mv-rev-in\",children:children}),/*#__PURE__*/_jsx(\"div\",{ref:sp,className:\"mv-rev-sp\",\"aria-hidden\":true})]});}const REVEAL_CONTROLS={reveal:{type:ControlType.Boolean,title:\"Reveal\",description:\"Curtain: this section waits behind the one above and is uncovered as that one lifts away\",enabledTitle:\"Curtain\",disabledTitle:\"Off\",defaultValue:true},layer:{type:ControlType.Number,title:\"Layer\",description:\"Stacking order. Must be LOWER than the section above (sections default to 10)\",min:0,max:20,step:1,displayStepper:true,defaultValue:9,hidden:p=>p.reveal===false}};const splitWords=s=>String(s||\"\").replace(/\\*([^*]+)\\*/g,(_m,g)=>g.trim().split(/\\s+/).map(w=>{const m=w.match(/^(.*?)([.,!?;:’']*)$/);return m&&m[1]?`*${m[1]}*${m[2]}`:w;}).join(\" \")).split(/\\s+/).filter(Boolean).map(t=>{const m=t.match(/^\\*(.+?)\\*([.,!?;:’']*)$/);return m?{t:m[1],tail:m[2],acc:true}:{t:t.replace(/\\*/g,\"\"),tail:\"\",acc:false};});const plainOf=s=>String(s||\"\").replace(/\\*/g,\"\").replace(/\\s*\\|\\s*/g,\" \").replace(/\\s+/g,\" \").trim();// Heading whose words rise out of masks. \"|\" forces a line break, *word* = the accent: light-weight coral (deep coral mix on paper).\nconst Head=({text,on,D,tag=\"h2\",size=\"clamp(40px,4.8vw,72px)\",lh=.92,delay=0,step=55,style,className})=>{const Tag=tag;let k=0;return /*#__PURE__*/_jsx(Tag,{className:`mv-hd${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,\"aria-label\":plainOf(text),style:{...D,fontSize:size,lineHeight:lh,...style||{}},children:String(text).split(\"|\").map((line,li)=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-hd-l\",\"aria-hidden\":true,children:splitWords(line).map((w,i)=>{const d=delay+k++*step;return /*#__PURE__*/_jsxs(\"span\",{className:`mv-hd-w${w.acc?\" is-accw\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:`mv-hd-i${w.acc?\" is-acc\":\"\"}`,style:{transitionDelay:`${d}ms`,[\"--pd\"]:`${d+500}ms`},children:w.acc?/*#__PURE__*/_jsxs(\"span\",{className:\"mv-it\",children:[w.t,w.tail,/*#__PURE__*/_jsx(\"svg\",{className:\"mv-spark\",viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 1.5C12.9 8 16 11.1 22.5 12 16 12.9 12.9 16 12 22.5 11.1 16 8 12.9 1.5 12 8 11.1 11.1 8 12 1.5Z\"})})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[w.t,w.tail]})}),\" \"]},i);})},li))});};const Eyebrow=({text,on,M,delay=0,style})=>text?/*#__PURE__*/_jsxs(\"p\",{className:`mv-eb${on?\" is-on\":\"\"}`,style:{...M,transitionDelay:`${delay}ms`,...style||{}},children:[/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true}),text]}):null;// one-shot rise for copy / rows\nconst rise=(on,d=0,y=22)=>({opacity:on?1:0,translate:on?\"0 0\":`0 ${y}px`,transition:`opacity .9s ease ${d}ms, translate 1s cubic-bezier(.2,.8,.2,1) ${d}ms`});// Image that UNMASKS through a shape as it enters, settles from a zoom, then drifts with scroll (needs --sp on an ancestor).\nconst SHAPES={up:[\"inset(100% 0 0 0)\",\"inset(0 0 0 0)\"],down:[\"inset(0 0 100% 0)\",\"inset(0 0 0 0)\"],left:[\"inset(0 100% 0 0)\",\"inset(0 0 0 0)\"],right:[\"inset(0 0 0 100%)\",\"inset(0 0 0 0)\"],diag:[\"polygon(0 100%,0 100%,0 100%,0 100%)\",\"polygon(0 -160%,260% 100%,0 100%,0 100%)\"],iris:[\"circle(0% at 50% 55%)\",\"circle(85% at 50% 55%)\"],arch:[\"inset(100% 0 0 0 round 999px 999px 0 0)\",\"inset(0 0 0 0 round 999px 999px 0 0)\"],slit:[\"inset(0 50% 0 50%)\",\"inset(0 0 0 0)\"]};const Um=({src,alt=\"\",on,shape=\"up\",ratio=\"4/5\",delay=0,par=1,focus=\"50% 40%\",radius=4,sizes=\"(max-width: 809px) 100vw, 50vw\",style,className,eager=false})=>{const sh=SHAPES[shape]||SHAPES.up;const im=RS(src,sizes);return /*#__PURE__*/_jsx(\"div\",{className:`mv-um${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,style:{aspectRatio:ratio,borderRadius:radius,clipPath:on?sh[1]:sh[0],WebkitClipPath:on?sh[1]:sh[0],transitionDelay:`${delay}ms`,[\"--par\"]:par,...style||{}},children:/*#__PURE__*/_jsx(\"img\",{src:im.src,srcSet:im.srcSet,sizes:im.sizes,alt:alt,loading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:false,style:{objectPosition:focus,transitionDelay:`${delay}ms`}})});};const CSS_MOTION=`\n[data-kb] *,[data-kb] *::before,[data-kb] *::after{transition:none!important}\n.mv-sec{position:relative;z-index:10;display:block;width:100%;--sp:.5;--pp:0}\n.mv-rev{position:relative;width:100%;--rv:1} .mv-rev-in{position:relative} .mv-rev-sp{height:0}\n.mv-rev.is-act{--rv:0;--t:min(var(--h),100vh);--t:min(var(--h),100svh);z-index:var(--layer,9);margin-top:calc(var(--t)*-1)}\n.mv-rev.is-act>.mv-rev-in{position:sticky;top:calc(100vh - var(--t));top:calc(100svh - var(--t))} .mv-rev.is-act>.mv-rev-sp{height:var(--t)}\n/* the lifting edge throws a shadow on the section beneath, and that section comes out of the dark as it is uncovered */\n.mv-rev.is-act>.mv-rev-in::before{content:\"\";position:absolute;z-index:40;left:0;right:0;top:0;height:120px;translate:0 calc((1 - var(--rv))*var(--t));background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,0));opacity:min(1,calc(var(--rv)*(1 - var(--rv))*9));pointer-events:none}\n.mv-rev.is-act>.mv-rev-in::after{content:\"\";position:absolute;z-index:39;left:0;right:0;top:0;height:var(--t);background:#000;opacity:calc((1 - var(--rv))*.16);pointer-events:none}\n.mv-wrap{--pad:56px;width:100%;max-width:calc(${MAXW} + var(--pad)*2);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}\n.mv-eb{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;margin:0;padding:7px 13px 7px 11px;border-radius:6px;background:color-mix(in srgb,var(--mv-ink) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-ink) 12%,transparent);color:var(--mv-ink);font-size:11.5px;font-weight:500;letter-spacing:.06em;opacity:0;translate:0 10px;transition:opacity .8s ease,translate .9s cubic-bezier(.2,.8,.2,1)} .mv-eb.is-on{opacity:1;translate:0 0}\n.mv-eb i{display:block;flex:none;order:-1;width:7px;height:7px;border-radius:50%;background:var(--mv-brass)}\n.mv-dark .mv-eb{color:var(--mv-cloud);background:color-mix(in srgb,var(--mv-cloud) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-cloud) 18%,transparent)}\n.mv-hd{margin:0;letter-spacing:-.042em;text-wrap:balance;font-weight:var(--mv-font-dw,600)} .mv-hd-l{display:block}\n.mv-hd-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .12em;margin:0 -.04em -.12em;white-space:pre}\n.mv-hd-i{position:relative;display:inline-block;translate:0 108%;transition:translate 1.05s cubic-bezier(.2,.85,.15,1)}\n.mv-hd.is-on .mv-hd-i{translate:0 0}\n.mv-hd-w.is-accw{overflow:hidden}\n.mv-it{position:relative;color:var(--mv-acc);font-weight:inherit} .mv-dark .mv-it{color:var(--mv-brass)}\n.mv-spark{display:none}\n\n.mv-um{position:relative;overflow:hidden;transition:clip-path 1.35s cubic-bezier(.7,0,.2,1);background:color-mix(in srgb,var(--mv-stone) 22%,transparent)}\n.mv-um img{position:absolute;left:0;top:-9%;width:100%;height:118%;display:block;object-fit:cover;scale:1.28;translate:0 calc((var(--sp,.5) - .5)*var(--par,1)*-7%);transition:scale 1.9s cubic-bezier(.16,.84,.24,1);user-select:none}\n.mv-um.is-on img{scale:1}\n/* diagonal cuts: the section hangs over its neighbour and is cut on a slope (clip-path, so the neighbour shows through) */\n.mv-cut-t{margin-top:calc(var(--cut,7vw)*-1);clip-path:polygon(0 var(--cut,7vw),100% 0,100% 100%,0 100%);padding-top:var(--cut,7vw)}\n.mv-cut-b{margin-bottom:calc(var(--cut,7vw)*-1);padding-bottom:var(--cut,7vw)}\n.mv-cut-t.mv-cut-b{clip-path:polygon(0 var(--cut,7vw),100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n.mv-cut-b:not(.mv-cut-t){clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n@media (max-width:1099px){.mv-wrap{--pad:32px}}\n@media (max-width:699px){.mv-wrap{--pad:20px}}\n@media (prefers-reduced-motion:reduce){.mv-hd-i{translate:0 0!important} .mv-spark{scale:1!important;rotate:0deg!important;animation:none!important} .mv-um{clip-path:none!important} .mv-um img{scale:1!important;translate:0 0!important}}\n`;const SEED={site:[{\"slug\":\"site\",\"f1\":\"Josh Barnes\",\"f2\":\"Product designer & developer\",\"f3\":\"I design digital products and build them in code, from the first sketch to the shipped release.\",\"f4\":\"hello@maravoss.design\",\"f5\":\"Berlin\",\"f6\":\"Europe/Berlin\",\"f7\":\"Available for work \\xb7 Nov 2026\",\"f8\":\"/resume\",\"f9\":\"Dribbble:https://dribbble.com,GitHub:https://github.com,LinkedIn:https://linkedin.com,Read.cv:https://read.cv\",\"f10\":\"9\",\"f11\":\"/contact\",\"n1\":\"1\"}]};const SW_BUILD=\"MvLoader@cms1\";// An override control wins only when it holds real text; empty (or a single space) inherits from the CMS.\nconst pick=(o,fb)=>o!==undefined&&o!==null&&String(o).trim()?String(o).trim():fb;const imgOf=(r,k=\"img\")=>String(r&&r[k]||\"\").split(\"?\")[0];// A cleared CMS image draws this quiet placeholder — never a stock photo, and list positions stay aligned with their rows.\nconst EMPTY_IMG=\"data:image/svg+xml;utf8,\"+encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='xMidYMid slice'><rect width='400' height='500' fill='#D3D8E2'/><rect x='120' y='170' width='160' height='160' rx='8' fill='none' stroke='#AEB6C6' stroke-width='1.5'/><rect x='100' y='150' width='200' height='200' rx='10' fill='none' stroke='#C3CAD8' stroke-width='1' stroke-dasharray='2 6'/></svg>\");const imgOr=(r,k=\"img\")=>imgOf(r,k)||EMPTY_IMG;const cmsNum=(r,k,fb=0)=>{const v=parseFloat(String((r&&r[k])??\"\"));return isFinite(v)?v:fb;};const useIso=typeof window===\"undefined\"?useEffect:useLayoutEffect;function readCMS(kind){if(typeof document===\"undefined\")return null;if(!document.querySelector('[data-mv-row=\"bridge\"]'))return null;const seen=new Set;const out=[];document.querySelectorAll(`[data-mv-row=\"${kind}\"]`).forEach(el=>{const o={};for(const a of Array.from(el.attributes))if(a.name.startsWith(\"data-\"))o[a.name.slice(5)]=a.value;const key=o.slug||JSON.stringify(o);if(seen.has(key))return;seen.add(key);out.push(o);});return out.sort((a,b)=>(parseFloat(a.n1)||0)-(parseFloat(b.n1)||0));}function useCMS(kind,fallback){const[rows,setRows]=useState(fallback);const sig=useRef(\"\");useIso(()=>{let n=0,t=0,ok=0;try{const w=window;if(!w.__ltCms||typeof w.__ltCms!==\"object\")w.__ltCms={};w.__ltCms[SW_BUILD]=1;}catch(e){}const pull=()=>{const r=readCMS(kind);if(!r)return false;const s=JSON.stringify(r);if(s!==sig.current){sig.current=s;setRows(r);}return true;};const mo=new MutationObserver(()=>{if(pull()){ok++;if(ok>2)mo.disconnect();}});mo.observe(document.body,{childList:true,subtree:true});if(pull())ok++;const poll=()=>{if(n++<30){pull();t=window.setTimeout(poll,150);}};t=window.setTimeout(poll,150);return()=>{mo.disconnect();window.clearTimeout(t);};},[kind]);return rows;}// The one-row Site collection holds every site-wide fact (name, role, contact, availability, resume link). A section's \"… Override\" control only replaces it on that one section.\nfunction useSite(){const r=useCMS(\"site\",SEED.site||[]);const s=r[0]||(SEED.site||[])[0]||{};const g=k=>String(s[k]??\"\").trim();return{name:g(\"f1\")||\"Josh Barnes\",role:g(\"f2\"),tagline:g(\"f3\"),email:g(\"f4\"),city:g(\"f5\"),tz:g(\"f6\")||\"Europe/Berlin\",avail:g(\"f7\"),resume:g(\"f8\")||\"/resume\",socials:g(\"f9\"),years:g(\"f10\"),book:g(\"f11\")||\"/contact\"};}const linkList=s=>String(s||\"\").split(\",\").map(x=>x.trim()).filter(Boolean).map(x=>{const i=x.indexOf(\":\");return{l:i<0?x:x.slice(0,i).trim(),h:i<0?\"/\":x.slice(i+1).trim()};});const listOf=s=>String(s||\"\").split(\";\").map(x=>x.trim()).filter(Boolean);// The row a CMS detail page is about: the bound Slug control wins (server render included), else the last URL segment, else the first row.\nfunction useRow(kind,fallback,slug){const rows=useCMS(kind,fallback);const[path,setPath]=useState(\"\");useEffect(()=>{try{setPath(decodeURIComponent(window.location.pathname.split(\"/\").filter(Boolean).pop()||\"\"));}catch(e){}},[]);const want=String(slug||\"\").trim()||path;const row=rows.find(r=>r.slug===want)||rows[0]||{};return{row,rows};}const crumbs=s=>linkList(s);// Open now? Open Hours = \"1-6 07:00-19:00\" (weekday numbers, Mon = 1 … Sun = 7) evaluated in the Site Time Zone.\nfunction openState(spec,tz){try{const m=String(spec||\"\").match(/(\\d)\\s*-\\s*(\\d)\\s+(\\d{1,2}):(\\d{2})\\s*-\\s*(\\d{1,2}):(\\d{2})/);if(!m)return null;const parts=new Intl.DateTimeFormat(\"en-US\",{timeZone:tz||\"UTC\",weekday:\"short\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).formatToParts(new Date);const g=t=>(parts.find(p=>p.type===t)||{value:\"\"}).value;const wd=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"].indexOf(g(\"weekday\"))+1;const mins=Number(g(\"hour\"))%24*60+Number(g(\"minute\"));const d1=Number(m[1]),d2=Number(m[2]),a=Number(m[3])*60+Number(m[4]),b=Number(m[5])*60+Number(m[6]);const open=wd>=d1&&wd<=d2&&mins>=a&&mins<b;return{open,label:open?`Open \\xb7 till ${m[5].padStart(2,\"0\")}:${m[6]}`:`Closed \\xb7 opens ${m[3].padStart(2,\"0\")}:${m[4]}`};}catch(e){return null;}}// ===== MvLoader =====\n/**\n * JOSH BARNES — LOADER «THE SLATE». First visit of a session: a film-leader countdown on the night ground. Sprocket edges run past both sides,\n * a crosshair and two rings frame a sweep hand that turns once per number (3 · 2 · 1) while a warm wedge fills behind it, a mono slate line\n * names the production (PORTFOLIO 2026 · SCENE 01 · TAKE 1 · {name}) and a timecode runs at 24 fps. On the last number a clapper arm drops in\n * and CLAPS shut — a white flash — and the leader runs out of the gate upward, revealing the page (html.mv-hold-ld lifts as it starts, so the\n * hero intro plays while it is uncovered). Once per session; click / tap / any key skips; ≤ 2.4 s; reduced motion = the \"1\" frame, then a fade.\n * JS off = never shows; JS late or broken = it never covers the page for more than ~2.6 s. Put it once, in the Site Layout (0px frame).\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1440\n * @framerIntrinsicHeight 1\n */const MVLD_KEY=\"mv-loaded\";const MVLD_CAP=2600// ms: hard ceiling from page parse to page uncovered\n;const mvldTc=ms=>{const f=Math.floor(ms/(1e3/24));const s=Math.floor(f/24);const p=n=>String(n).padStart(2,\"0\");return`00:00:${p(s%60)}:${p(f%24)}`;};export default function MvLoader(props){const{enabled=true,slate=\"Portfolio 2026 \\xb7 Scene 01 \\xb7 Take 1 \\xb7 {name}\",rolling=\"Rolling\",numbers=\"3;2;1\",skipLabel=\"Click or press any key to skip\",skipLabelTouch=\"Tap to skip\",duration=2.2,once=true,respectRm=true,bpHint=\"auto\"}=props;const c=colorsOf(props);const{D,M}=fontsOf(props);useFonts();const live=useLive();const still=useStill();const site=useSite();const root=useRef(null);const num=useRef(null);const tc=useRef(null);const[ph,setPh]=useState(\"shell\");const[touch,setTouch]=useState(false);const T=Math.min(2.4,Math.max(1.4,Number(duration)||2.2))*1e3;const NUMS=listOf(numbers).slice(0,5);const nums=NUMS.length?NUMS:[\"3\",\"2\",\"1\"];const line=String(slate||\"\").replace(/\\{name\\}/gi,site.name||\"Josh Barnes\");useEffect(()=>{if(!live)return;const W0=window;W0.__mvldLive=true;const html=document.documentElement;const tm=[];let raf=0;let dead=false;const mark=()=>{if(once){try{sessionStorage.setItem(MVLD_KEY,\"1\");}catch(_){}}};const release=()=>html.classList.remove(\"mv-hold-ld\");const finish=()=>{dead=true;cancelAnimationFrame(raf);mark();html.classList.remove(\"mvld-go\",\"mv-hold-ld\",\"mvld-rm\");setPh(\"gone\");};if(!enabled||!html.classList.contains(\"mvld-go\")){finish();return;}setTouch(!window.matchMedia(\"(hover:hover) and (pointer:fine)\").matches);const T0=typeof W0.__mvld0===\"number\"?W0.__mvld0:performance.now();const now=()=>performance.now()-T0;let skipped=false;const skip=()=>{skipped=true;};const key=()=>skip();document.addEventListener(\"keydown\",key);document.addEventListener(\"pointerdown\",key);const cleanup=()=>{dead=true;tm.forEach(x=>window.clearTimeout(x));cancelAnimationFrame(raf);document.removeEventListener(\"keydown\",key);document.removeEventListener(\"pointerdown\",key);};setPh(\"run\");// ---- reduced motion: the last number, still; then a short fade ----\nif(html.classList.contains(\"mvld-rm\")){const el0=()=>root.current;const wait=Math.max(0,Math.min(380,MVLD_CAP-420-now()));const out=()=>{mark();release();const el=el0();if(el)el.classList.add(\"is-fade\");tm.push(window.setTimeout(finish,400));};tm.push(window.setTimeout(out,wait));const sk=()=>{tm.forEach(x=>window.clearTimeout(x));out();};document.addEventListener(\"keydown\",sk,{once:true});document.addEventListener(\"pointerdown\",sk,{once:true});return cleanup;}// ---- the timeline (origin = the boot script's timestamp, i.e. page parse) ----\nconst n=nums.length;const C0=.05*T,C1=.66*T,SLOT=(C1-C0)/n// countdown window, one sweep per number\n;const ARM=.58*T,CLAP=.72*T,EXIT=Math.min(520,.24*T);let tExit=Math.min(Math.max(T-EXIT,now()+180),MVLD_CAP-EXIT);let exiting=false,lastN=\"\",lastTc=\"\";const frame=()=>{if(dead)return;const el=root.current;if(!el){raf=requestAnimationFrame(frame);return;}let t=now();if(skipped&&!exiting){tExit=Math.min(tExit,t);el.classList.add(\"is-skip\");}if(!exiting&&t>=tExit){exiting=true;release();el.classList.add(\"is-exit\");}// countdown\nconst ct=Math.min(t,C1-1);const k=Math.max(0,Math.min(n-1,Math.floor((ct-C0)/SLOT)));const u=clamp01((ct-C0-k*SLOT)/SLOT);const lbl=nums[k];if(lbl!==lastN&&num.current){lastN=lbl;num.current.textContent=lbl;}el.style.setProperty(\"--a\",`${(t<C0?0:t>=C1?360:u*360).toFixed(1)}deg`);// clapper: in from ARM, snaps shut at CLAP; flash after it\nconst armIn=clamp01((t-ARM)/(.1*T));const shut=t>=CLAP?1:0;el.style.setProperty(\"--arm\",(1-Math.pow(1-armIn,3)).toFixed(3));el.style.setProperty(\"--shut\",String(shut));const fl=t>=CLAP?Math.max(0,1-(t-CLAP)/200):0;el.style.setProperty(\"--flash\",(fl*fl*.9).toFixed(3));// film running: sprockets + flicker\nel.style.setProperty(\"--run\",`${(t*.9%96).toFixed(1)}px`);el.style.setProperty(\"--flk\",(.94+Math.random()*.06).toFixed(3));const tcs=mvldTc(Math.max(0,t));if(tcs!==lastTc&&tc.current){lastTc=tcs;tc.current.textContent=tcs;}// exit: the leader runs out of the gate, upward\nif(exiting){const e=clamp01((t-tExit)/EXIT);const ee=e*e*(3-2*e);el.style.setProperty(\"--out\",ee.toFixed(4));if(e>=1){finish();return;}}raf=requestAnimationFrame(frame);};raf=requestAnimationFrame(frame);return cleanup;},[live]);if(still||!enabled||ph===\"gone\")return null;const boot=`(function(){try{var h=document.documentElement,w=window;${once?`if(sessionStorage.getItem('${MVLD_KEY}'))return;`:\"\"}w.__mvld0=performance.now();h.classList.add('mvld-go','mv-hold-ld');${respectRm?\"if(matchMedia('(prefers-reduced-motion: reduce)').matches)h.classList.add('mvld-rm');\":\"\"}setTimeout(function(){if(!w.__mvldLive)h.classList.remove('mvld-go','mv-hold-ld','mvld-rm')},${MVLD_CAP})}catch(e){}})()`;const ticks=Array.from({length:12},(_,i)=>i*30);const sprockets=Array.from({length:16},(_,i)=>i);const overlay=/*#__PURE__*/_jsxs(\"div\",{ref:root,className:`mvld is-${ph}${live?\" is-js\":\"\"}`,\"aria-hidden\":true,style:{...cssVars(c),...props.style||{}},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mvld-sheet\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mvld-film\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mvld-sp mvld-sp-l\",children:sprockets.map(i=>/*#__PURE__*/_jsx(\"i\",{},i))}),/*#__PURE__*/_jsx(\"span\",{className:\"mvld-sp mvld-sp-r\",children:sprockets.map(i=>/*#__PURE__*/_jsx(\"i\",{},i))}),/*#__PURE__*/_jsx(\"i\",{className:\"mvld-hx\"}),/*#__PURE__*/_jsx(\"i\",{className:\"mvld-vx\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvld-lead\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mvld-wedge\"}),/*#__PURE__*/_jsxs(\"svg\",{className:\"mvld-rings\",viewBox:\"0 0 400 400\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"200\",cy:\"200\",r:\"196\",className:\"mvld-r1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"200\",cy:\"200\",r:\"160\",className:\"mvld-r2\"}),ticks.map(a=>/*#__PURE__*/_jsx(\"line\",{x1:\"200\",y1:\"4\",x2:\"200\",y2:a%90?\"16\":\"28\",transform:`rotate(${a} 200 200)`},a))]}),/*#__PURE__*/_jsx(\"span\",{className:\"mvld-hand\"}),/*#__PURE__*/_jsx(\"span\",{ref:num,className:\"mvld-n\",style:D,children:nums[0]}),/*#__PURE__*/_jsx(\"span\",{className:\"mvld-arm\",children:/*#__PURE__*/_jsx(\"span\",{className:\"mvld-arm-b\"})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvld-top\",style:M,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mvld-slate\",children:line}),/*#__PURE__*/_jsxs(\"span\",{className:\"mvld-rec\",children:[/*#__PURE__*/_jsx(\"i\",{}),rolling]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvld-bot\",style:M,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mvld-sk\",children:touch?skipLabelTouch:skipLabel}),/*#__PURE__*/_jsx(\"span\",{ref:tc,className:\"mvld-tc\",children:\"00:00:00:00\"})]}),/*#__PURE__*/_jsx(\"i\",{className:\"mvld-scr mvld-scr1\"}),/*#__PURE__*/_jsx(\"i\",{className:\"mvld-scr mvld-scr2\"})]}),/*#__PURE__*/_jsx(\"i\",{className:\"mvld-tail\"})]}),/*#__PURE__*/_jsx(\"i\",{className:\"mvld-flash\"})]});const portal=live&&typeof document!==\"undefined\";return /*#__PURE__*/_jsxs(\"div\",{className:\"mvld-anchor\",style:{width:\"100%\",height:0,position:\"relative\",...props.style||{}},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS_MVLD+siteFontCss(props)}}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:boot}}),portal?/*#__PURE__*/createPortal(overlay,document.body):overlay]});}const CSS_MVLD=`\n.mvld{display:none}html.mvld-go{overflow:hidden!important}html.mvld-go .mvld{display:block}\n/* failsafe: without the script taking over, the leader fades by itself before the ceiling */\nhtml.mvld-go .mvld:not(.is-js){animation:mvld-fb .3s ease 2.2s both}@keyframes mvld-fb{to{opacity:0;visibility:hidden}}\n.mvld{position:fixed;inset:0;z-index:9999;overflow:hidden;cursor:pointer;color:var(--mv-cloud);-webkit-tap-highlight-color:transparent;--a:0deg;--arm:0;--shut:0;--flash:0;--out:0;--run:0px;--flk:1;--warm:#FFF1DA}\n.mvld *{box-sizing:border-box}\n.mvld-sheet{position:absolute;inset:0;translate:0 calc(var(--out)*-104%);will-change:translate}\n.mvld-film{position:absolute;inset:0;overflow:hidden;background:var(--mv-night);opacity:var(--flk)}\n.mvld-film::before{content:\"\";position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 50% 48%,color-mix(in srgb,var(--mv-cloud) 7%,transparent),transparent 70%),radial-gradient(ellipse 120% 100% at 50% 50%,transparent 55%,rgba(0,0,0,.45))}\n/* the tail of the leader: a warm light leak on the edge that runs out of the gate */\n.mvld-tail{position:absolute;left:0;right:0;top:100%;height:90px;background:linear-gradient(180deg,var(--mv-night),color-mix(in srgb,var(--mv-night) 60%,transparent) 30%,rgba(255,226,180,.35) 62%,transparent);opacity:min(1,calc(var(--out)*6))}\n/* sprocket edges running past */\n.mvld-sp{position:absolute;top:-96px;bottom:-96px;width:clamp(18px,2.2vw,30px);display:flex;flex-direction:column;justify-content:space-between;padding:0 clamp(6px,.7vw,10px);translate:0 var(--run);border-color:color-mix(in srgb,var(--mv-cloud) 10%,transparent)}\n.mvld-sp-l{left:0;border-right:1px solid color-mix(in srgb,var(--mv-cloud) 10%,transparent)} .mvld-sp-r{right:0;border-left:1px solid color-mix(in srgb,var(--mv-cloud) 10%,transparent)}\n.mvld-sp i{display:block;height:34px;border-radius:3px;background:color-mix(in srgb,var(--mv-cloud) 11%,transparent)}\n/* crosshair */\n.mvld-hx,.mvld-vx{position:absolute;background:color-mix(in srgb,var(--mv-cloud) 16%,transparent)} .mvld-hx{left:0;right:0;top:50%;height:1px} .mvld-vx{top:0;bottom:0;left:50%;width:1px}\n/* the leader dial */\n.mvld-lead{position:absolute;left:50%;top:53%;width:min(56vmin,500px);aspect-ratio:1;translate:-50% -50%}\n.mvld-wedge{position:absolute;inset:2%;border-radius:50%;background:conic-gradient(from 0deg,color-mix(in srgb,var(--warm) 16%,transparent) 0deg,color-mix(in srgb,var(--warm) 26%,transparent) var(--a),transparent var(--a))}\n.mvld-rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible} .mvld-rings circle{fill:none;stroke:color-mix(in srgb,var(--mv-cloud) 72%,transparent);stroke-width:1.5} .mvld-rings .mvld-r2{stroke:color-mix(in srgb,var(--mv-cloud) 38%,transparent);stroke-width:1} .mvld-rings line{stroke:color-mix(in srgb,var(--mv-cloud) 55%,transparent);stroke-width:1.5}\n.mvld-hand{position:absolute;left:50%;top:2%;bottom:50%;width:2px;margin-left:-1px;background:linear-gradient(180deg,var(--warm),color-mix(in srgb,var(--warm) 30%,transparent));transform-origin:50% 100%;rotate:var(--a);box-shadow:0 0 14px rgba(255,226,180,.55)}\n.mvld-n{position:absolute;inset:0;display:grid;place-items:center;font-size:min(31vmin,280px);line-height:1;letter-spacing:-.05em;font-stretch:112%;font-weight:var(--mv-font-dw,700);color:var(--mv-cloud);font-variant-numeric:tabular-nums;padding-bottom:.04em}\n/* the clapper arm: drops in on the last number and snaps shut */\n.mvld-arm{position:absolute;left:9%;right:9%;top:-17%;height:11%;opacity:var(--arm);translate:0 calc((1 - var(--arm))*-40px)}\n.mvld-arm-b{position:absolute;inset:0;border-radius:4px;background:repeating-linear-gradient(-58deg,var(--mv-cloud) 0 26px,var(--mv-night) 26px 52px);box-shadow:inset 0 0 0 2px var(--mv-cloud),0 12px 30px -10px rgba(0,0,0,.6);transform-origin:3% 100%;rotate:calc((1 - var(--shut))*-17deg);transition:rotate .09s cubic-bezier(.6,0,1,1)}\n.mvld-arm::after{content:\"\";position:absolute;left:0;right:0;top:100%;height:10px;margin-top:4px;border-radius:3px;background:repeating-linear-gradient(-58deg,var(--mv-night) 0 26px,var(--mv-cloud) 26px 52px);box-shadow:inset 0 0 0 2px var(--mv-cloud)}\n/* frame rows */\n.mvld-top,.mvld-bot{position:absolute;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 calc(clamp(18px,2.2vw,30px) + clamp(16px,2.4vw,40px));font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;line-height:1.4}\n.mvld-top{top:clamp(20px,3vw,34px)} .mvld-bot{bottom:clamp(20px,3vw,34px)}\n.mvld-slate{padding:6px 10px;border-radius:4px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-cloud) 30%,transparent);color:var(--mv-cloud)}\n.mvld-rec{display:inline-flex;align-items:center;gap:9px;flex:none;color:color-mix(in srgb,var(--mv-cloud) 70%,transparent)} .mvld-rec i{width:8px;height:8px;border-radius:50%;background:#FF4D3D;box-shadow:0 0 10px #FF4D3D;animation:mvld-blink 1s steps(2,end) infinite} @keyframes mvld-blink{50%{opacity:.25}}\n.mvld-sk{color:color-mix(in srgb,var(--mv-cloud) 50%,transparent)} .mvld-tc{flex:none;color:var(--mv-cloud);font-variant-numeric:tabular-nums}\n/* scratches */\n.mvld-scr{position:absolute;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--mv-cloud) 22%,transparent);opacity:.7} .mvld-scr1{left:31%;animation:mvld-scr .9s steps(3,end) infinite} .mvld-scr2{left:74%;height:40%;top:30%;animation:mvld-scr 1.3s steps(4,end) infinite reverse}\n@keyframes mvld-scr{0%{translate:0 0;opacity:.6}33%{translate:9vw 0;opacity:0}66%{translate:-6vw 0;opacity:.5}100%{translate:3vw 0;opacity:.2}}\n.mvld-flash{position:absolute;inset:0;background:var(--mv-cloud);opacity:var(--flash);pointer-events:none}\n.mvld.is-exit{pointer-events:none;cursor:default}\n.mvld.is-exit .mvld-top,.mvld.is-exit .mvld-bot{opacity:0;transition:opacity .2s}\n.mvld.is-skip .mvld-arm-b{rotate:0deg}\n/* reduced motion: the \"1\" frame, still, then a fade */\nhtml.mvld-rm .mvld *{animation:none!important;transition:none!important} html.mvld-rm .mvld{--a:360deg;--arm:1;--shut:1}\n.mvld.is-fade{opacity:0;transition:opacity .38s ease}\n@media (max-width:809px){.mvld-lead{width:min(74vw,420px)} .mvld-n{font-size:min(40vw,230px)} .mvld-top,.mvld-bot{flex-direction:column;align-items:flex-start;gap:10px;font-size:10.5px;letter-spacing:.1em} .mvld-bot{flex-direction:column-reverse} .mvld-slate{max-width:100%}}\n`;addPropertyControls(MvLoader,{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},slate:{type:ControlType.String,title:\"Slate line\",description:\"{name} = the Name on the Site CMS row\",defaultValue:\"Portfolio 2026 \\xb7 Scene 01 \\xb7 Take 1 \\xb7 {name}\"},rolling:{type:ControlType.String,title:\"Rolling label\",defaultValue:\"Rolling\"},numbers:{type:ControlType.String,title:\"Countdown\",description:\"Numbers separated by ; (one sweep each)\",defaultValue:\"3;2;1\"},skipLabel:{type:ControlType.String,title:\"Skip hint\",defaultValue:\"Click or press any key to skip\"},skipLabelTouch:{type:ControlType.String,title:\"Skip hint (touch)\",defaultValue:\"Tap to skip\"},duration:{type:ControlType.Number,title:\"Duration\",min:1.4,max:2.4,step:.1,unit:\"s\",defaultValue:2.2},once:{type:ControlType.Boolean,title:\"Once per session\",defaultValue:true},respectRm:{type:ControlType.Boolean,title:\"Respect reduced motion\",description:\"On = the last frame and a short fade instead of the countdown\",defaultValue:true},...BP_CONTROL,...COLOR_CONTROLS,...FONT_CONTROLS});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MvLoader\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MvLoader.map","// ===== JOSH BARNES shared scaffold (THE CANVAS: graphite design-tool canvas, paper sections, selection-cyan, SELECTION buttons) (inlined by mk.py; each Framer code file must be self-contained) =====\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const FONTS=\"https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,75..125,200..900;1,75..125,200..900&family=Chivo+Mono:ital,wght@0,300..600;1,300..600&display=swap\";// Token-safe alpha: Styles-bound colours arrive as var(--token-…) so hex-alpha breaks; color-mix keeps a palette flip working. Never 0% (hue drops) — floor at 0.4%.\nconst A=(c,a)=>`color-mix(in srgb, ${c} ${Math.max(.4,Math.round(a*1e3)/10)}%, transparent)`;const MIX=(a,b,t)=>`color-mix(in srgb, ${a} ${Math.round((1-t)*100)}%, ${b})`;const srcOf=(v,fallback)=>v&&typeof v===\"object\"&&v.src?String(v.src).split(\"?\")[0]:typeof v===\"string\"&&v.trim()?v.trim().split(\"?\")[0]:fallback;const T=(s,fb)=>s&&s.trim()?s.trim():fb;// ink or white text on a CMS brand colour (luminance test; the brand colour is data, not a palette token)\nconst onBrand=hex=>{const m=String(hex||\"\").replace(\"#\",\"\").match(/^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(!m)return\"var(--mv-cloud)\";const[r,g,b]=[m[1],m[2],m[3]].map(x=>{const v=parseInt(x,16)/255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);});const L=.2126*r+.7152*g+.0722*b;return L>.2?\"var(--mv-ink)\":\"var(--mv-cloud)\";};const cleanTel=s=>s.replace(/[^\\d+]/g,\"\");// Premium layout band (measured 09-13): container 1340 @1440 / 1520 @1920, body 16, button label 12–13.\nconst MAXW=\"clamp(1280px, 92vw, 1520px)\";// Responsive delivery: Framer's resizer serves any upload at ?scale-down-to=N (longest side). The query is stripped first so one file never downloads twice.\n// Responsive delivery. Framer uploads: the resizer serves ?scale-down-to=N. Unsplash stand-ins: ?w=N. The src is already the smallest width that covers the slot (a 52px avatar never pulls a 1600px photo), so a big image is never decoded for a small box — decode is what stalls scrolling.\nconst RS_W=[160,320,480,800,1200,1600];const rsTarget=sizes=>{const t=String(sizes||\"\").trim().split(\",\").pop()||\"\";const px=t.match(/(\\d+(?:\\.\\d+)?)px/);const vw=t.match(/(\\d+(?:\\.\\d+)?)vw/);const want=px?parseFloat(px[1])*2:vw?parseFloat(vw[1])/100*1600*1.25:1600;return RS_W.find(w=>w>=want)||1600;};const RS=(u,sizes)=>{const s=String(u||\"\");const b=s.split(\"?\")[0];if(/framerusercontent\\.com\\/images\\//.test(s)){const w=rsTarget(sizes);const d=w<=512?512:w<=1024?1024:2048;return{src:`${b}?scale-down-to=${d}`,srcSet:`${b}?scale-down-to=512 512w, ${b}?scale-down-to=1024 1024w, ${b}?scale-down-to=2048 2048w`,sizes};}if(/images\\.unsplash\\.com\\//.test(s)){const w=rsTarget(sizes);const q=n=>`${b}?w=${n}&q=70&fm=jpg&auto=format`;return{src:q(w),srcSet:RS_W.filter(n=>n<=Math.max(w*2,480)).map(n=>`${q(n)} ${n}w`).join(\", \"),sizes};}return{src:s};};// A Framer Font control stores a selector (GF;Family-700), not a CSS family — derive one, reject anything with ';'\nconst famOf=f=>{if(!f)return\"\";if(typeof f===\"string\")return f.includes(\";\")?\"\":f;if(f.fontFamily&&!String(f.fontFamily).includes(\";\"))return String(f.fontFamily);const sel=String(f.fontSelector||\"\");if(!sel)return\"\";const n=sel.split(\";\").pop()||\"\";return n.replace(/-(regular|italic|bold|\\d{3}(italic)?)$/i,\"\").replace(/-/g,\" \");};const wOf=(f,fb)=>{if(!f)return fb;if(f.fontWeight)return Number(f.fontWeight)||fb;const m=String(f.fontSelector||\"\").match(/-(\\d{3})/);return m?Number(m[1]):fb;};// famCss: Framer's Font `fontFamily` is ALREADY a stack — never wrap it in quotes (one fake family → fallback renders). A bare name gets quoted.\nconst famCss=f=>{const fa=famOf(f).replace(/\"/g,\"'\").trim();if(!fa)return\"\";return fa.includes(\",\")||fa.startsWith(\"'\")?fa:`'${fa}'`;};const stack=(custom,f,fb,tail)=>{const fam=custom?famCss(f):\"\";return`${fam?`${fam}, `:\"\"}${fb}, ${tail}`;};function useFonts(){useEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"mv-fonts\"))return;const l=document.createElement(\"link\");l.id=\"mv-fonts\";l.rel=\"stylesheet\";l.href=FONTS;document.head.appendChild(l);},[]);}// live = client after hydration and not on the canvas. SSR and the first client render share the same markup.\n// TRUE on the Framer canvas AND in its export / thumbnail / screenshot renderers (anything that is not the running preview): no scroll and no hydration there, so every reveal / pinned stage must draw its FINAL state or the editor shows empty blocks.\nfunction useStill(){const isStatic=useIsStaticRenderer();let t=null;try{t=RenderTarget.current();}catch(e){}return isStatic||t!==null&&t!==RenderTarget.preview;}function useLive(){const isStatic=useIsStaticRenderer();const[live,setLive]=useState(false);useEffect(()=>{if(!isStatic&&RenderTarget.current()!==RenderTarget.canvas&&typeof window!==\"undefined\")setLive(true);},[isStatic]);return live;}// Width/height of the root + viewport height. SSR starts from the breakpoint hint (Framer renders the Tablet/Phone copies with the same code and no width).\nfunction useSize(root,hint){const ov=String(hint||\"\").toLowerCase();const[w,setW]=useState(ov===\"phone\"?390:ov===\"tablet\"?810:1440),[vh,setVh]=useState(ov===\"phone\"?844:ov===\"tablet\"?1080:900);useLayoutEffect(()=>{const el=root.current;if(!el)return;const ro=new ResizeObserver(([e])=>{const x=Math.round((e.borderBoxSize&&e.borderBoxSize[0]?e.borderBoxSize[0].inlineSize:0)||el.offsetWidth);if(x>0)setW(x);});ro.observe(el);const vv=()=>setVh(window.innerHeight);vv();const read=()=>{const x=Math.round(el.offsetWidth);if(x>0)setW(x);};const t1=window.setTimeout(read,150),t2=window.setTimeout(read,700),t3=window.setTimeout(read,1600);window.addEventListener(\"resize\",vv);window.addEventListener(\"load\",read);return()=>{ro.disconnect();window.clearTimeout(t1);window.clearTimeout(t2);window.clearTimeout(t3);window.removeEventListener(\"resize\",vv);window.removeEventListener(\"load\",read);};},[]);return{w,vh};}const useReduced=()=>{const[rm,setRm]=useState(false);useLayoutEffect(()=>{setRm(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);},[]);return rm;};// One shared rAF for every section. Each frame runs ALL reads first (layout reads: getBoundingClientRect, offsetHeight), then ALL writes (CSS vars, transforms).\n// Interleaving read → write → read made the browser recalc the whole page's style once per section per frame (layout thrashing: 20+ recalcs a frame).\nfunction onTick(fn,read,pre){if(typeof window===\"undefined\")return()=>{};const w=window;if(!w.__nuTick){w.__nuTick={pre:new Set,subs:new Set,reads:new Set,raf:0};const loop=t=>{const T=w.__nuTick;T.pre.forEach(r=>r(t));T.reads.forEach(r=>r(t));T.subs.forEach(s=>s(t));T.raf=requestAnimationFrame(loop);};w.__nuTick.raf=requestAnimationFrame(loop);}w.__nuTick.subs.add(fn);if(read)w.__nuTick.reads.add(read);if(pre)w.__nuTick.pre.add(pre);return()=>{w.__nuTick.subs.delete(fn);if(read)w.__nuTick.reads.delete(read);if(pre)w.__nuTick.pre.delete(pre);};}const clamp01=v=>Math.min(1,Math.max(0,v));const easeIO=t=>{const x=clamp01(t);return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;};const DEF={bone:\"#F1ECE4\",ink:\"#141210\",brass:\"#4D9FFF\",pine:\"#231D19\",fog:\"#DDD4C8\",stone:\"#857B70\",cloud:\"#FFFFFF\",night:\"#171311\"};// collaborator cursor colours (constants, not tokens): the client and the developer on the canvas\nconst AMBER=\"#FFB224\",VIOLET=\"#A58BFF\";const colorsOf=p=>({bone:p.bone||DEF.bone,ink:p.ink||DEF.ink,brass:p.brass||DEF.brass,pine:p.pine||DEF.pine,fog:p.fog||DEF.fog,stone:p.stone||DEF.stone,cloud:p.cloud||DEF.cloud,night:p.night||DEF.night});// a Style-bound colour arrives as var(--token-…, #hex): let the browser resolve it to r,g,b for canvas drawing\nconst cssRgb=(el,col,fb)=>{if(!el||typeof window===\"undefined\")return fb;const p=document.createElement(\"i\");p.style.display=\"none\";p.style.color=col;el.appendChild(p);const v=getComputedStyle(p).color;p.remove();const m=v.match(/(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?)/);return m?`${Math.round(+m[1])},${Math.round(+m[2])},${Math.round(+m[3])}`:fb;};const cssVars=c=>({\"--mv-bone\":c.bone,\"--mv-ink\":c.ink,\"--mv-brass\":c.brass,\"--mv-pine\":c.pine,\"--mv-fog\":c.fog,\"--mv-stone\":c.stone,\"--mv-cloud\":c.cloud,\"--mv-night\":c.night});const COLOR_CONTROLS={bone:{type:ControlType.Color,title:\"Paper\",defaultValue:DEF.bone},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:DEF.ink},brass:{type:ControlType.Color,title:\"Accent\",defaultValue:DEF.brass},pine:{type:ControlType.Color,title:\"Deep\",defaultValue:DEF.pine},fog:{type:ControlType.Color,title:\"Line\",defaultValue:DEF.fog},stone:{type:ControlType.Color,title:\"Muted\",defaultValue:DEF.stone},cloud:{type:ControlType.Color,title:\"White\",defaultValue:DEF.cloud},night:{type:ControlType.Color,title:\"Dark\",defaultValue:DEF.night}};// ---- Fonts: Custom Fonts toggle → Font controls; off = Mona Sans (wide display) / Mona Sans / Chivo Mono ----\nconst FONT_CONTROLS={customFonts:{type:ControlType.Boolean,title:\"Custom Fonts\",description:\"Off = the site fonts (set once on the Header in the Site Layout). On = different fonts for this section only\",defaultValue:false},displayFont:{type:ControlType.Font,title:\"Display Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},bodyFont:{type:ControlType.Font,title:\"Body Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},monoFont:{type:ControlType.Font,title:\"Mono Font\",defaultFontType:\"monospace\",hidden:p=>!p.customFonts}};const NUMF=\"var(--mv-font-m, 'Chivo Mono'), ui-monospace, monospace\";// Site-wide fonts: the Header (Site Layout, every page) writes --mv-font-d/b/m (+ weights) on :root when its Custom Fonts is on. A section uses them unless its own Custom Fonts is on.\nconst siteFontCss=p=>{if(!p||!p.customFonts)return\"\";const v=[];const put=(k,f,w)=>{const fam=famCss(f);if(fam){v.push(`--mv-font-${k}:${fam}`);v.push(`--mv-font-${k}w:${wOf(f,w)}`);}};put(\"d\",p.displayFont,600);put(\"b\",p.bodyFont,400);put(\"m\",p.monoFont,400);put(\"a\",p.accentFont,400);return v.length?`:root{${v.join(\";\")}}`:\"\";};function fontsOf(p){const on=!!p.customFonts;const D={fontFamily:stack(on,p.displayFont,\"var(--mv-font-d, 'Mona Sans')\",\"Inter, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.displayFont,600):\"var(--mv-font-dw, 600)\",fontStyle:on&&p.displayFont&&p.displayFont.fontStyle?p.displayFont.fontStyle:\"normal\"};const B={fontFamily:stack(on,p.bodyFont,\"var(--mv-font-b, 'Mona Sans')\",\"Inter, system-ui, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.bodyFont,400):\"var(--mv-font-bw, 400)\"};const M={fontFamily:stack(on,p.monoFont,\"var(--mv-font-m, 'Chivo Mono')\",\"ui-monospace, SFMono-Regular, Menlo, monospace\"),fontWeight:on?wOf(p.monoFont,400):\"var(--mv-font-mw, 400)\"};return{D,B,M};}const BP_CONTROL={bpHint:{type:ControlType.Enum,title:\"Breakpoint Hint\",description:\"Set per breakpoint copy so the server render starts at the right width\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\",hidden:()=>true}};// ---- Button system: THE PING — a pill. On hover a pink notification dot pops on its right edge with a rolling \"+1\", a lime ring pings out of the dot, the accent fill sweeps in from the left and the label rolls up. Magnetic on desktop, squish on press. Solid = ink (fill lime), ghost = glass/hairline (fill paper), quiet = small nav pill. ----\nconst Glyph=({k})=>k===\"mail\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"5\",width:\"18\",height:\"14\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 7l8 6 8-6\"})]}):k===\"cal\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\"})]}):k===\"play\"?/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M8 5.5v13l10.5-6.5z\"})}):/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 17L17 7M9 7h8v8\"})});// In-page CTA jumps (\"#download\", \"/#download\"): scroll to the section when it is on this page, otherwise go to it on the home page.\nfunction jumpTo(e,href){try{const m=String(href||\"\").match(/^\\/?#([\\w-]+)$/);if(!m)return;const el=document.getElementById(m[1]);if(el){e.preventDefault();const W=window;const L=W.__ltLenis||W.__vcLenis||W.lenis;if(L&&L.scrollTo)L.scrollTo(el,{offset:-20});else el.scrollIntoView({behavior:\"smooth\",block:\"start\"});try{history.replaceState(null,\"\",\"#\"+m[1]);}catch(x){}}else if(href.startsWith(\"#\")){e.preventDefault();window.location.href=\"/\"+href;}}catch(x){}}const Btn=({href,label,kind=\"solid\",arrow=true,style,className,onClick,ariaLabel,cur,icon,sub})=>/*#__PURE__*/_jsxs(\"a\",{className:`mv-btn mv-${kind}${arrow?\"\":\" mv-noarr\"}${className?\" \"+className:\"\"}`,\"data-mag\":true,\"data-cur\":cur||\"go\",href:href,target:/^https?:\\/\\//.test(href||\"\")?\"_blank\":undefined,rel:/^https?:\\/\\//.test(href||\"\")?\"noopener\":undefined,onClick:onClick||(e=>jumpTo(e,href)),\"aria-label\":ariaLabel||(sub?`${sub} ${label}`:undefined),style:style,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"mv-face\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-fill\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-lbl\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"mv-roll\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-l1\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-l2\",\"aria-hidden\":true,children:label})]})}),arrow&&/*#__PURE__*/_jsxs(\"span\",{className:\"mv-arr\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-a1\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-a2\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})})]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"mv-selb\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]}),/*#__PURE__*/_jsx(\"b\",{className:\"mv-dim\",\"aria-hidden\":true})]});function useNearFocus(root,live){useEffect(()=>{if(!live||!root.current)return;const el=root.current;const f=e=>{const t=e.target;const sc=t.closest?.(\".mv-inring\");if(!sc)return;try{t.scrollIntoView({block:\"nearest\",inline:\"nearest\"});}catch(x){}};el.addEventListener(\"focusin\",f);return()=>el.removeEventListener(\"focusin\",f);},[live]);}function useMagnet(root,live){useEffect(()=>{if(!live||!root.current||!window.matchMedia(\"(hover:hover) and (pointer:fine)\").matches)return;const r=root.current;const btns=()=>Array.from(r.querySelectorAll(\"[data-mag]\"));const en=e=>{const b=e.target.closest?.(\"[data-mag]\");if(b){const d=b.querySelector(\".mv-dim\");if(d)d.textContent=`${Math.round(b.offsetWidth)} \\xd7 ${Math.round(b.offsetHeight)}`;}};const mv=e=>{for(const b of btns()){const rc=b.getBoundingClientRect();const dx=e.clientX-(rc.left+rc.width/2),dy=e.clientY-(rc.top+rc.height/2);const d=Math.hypot(dx,dy);const pull=d<150?(1-d/150)*8:0;b.style.setProperty(\"--mx\",`${dx/(d||1)*pull}px`);b.style.setProperty(\"--my\",`${dy/(d||1)*pull}px`);}};const lv=()=>{for(const b of btns()){b.style.setProperty(\"--mx\",\"0px\");b.style.setProperty(\"--my\",\"0px\");}};r.addEventListener(\"pointermove\",mv);r.addEventListener(\"pointerleave\",lv);r.addEventListener(\"pointerover\",en);r.addEventListener(\"focusin\",en);return()=>{r.removeEventListener(\"pointermove\",mv);r.removeEventListener(\"pointerleave\",lv);r.removeEventListener(\"pointerover\",en);r.removeEventListener(\"focusin\",en);};},[live]);}const CSS_BASE=`\n:where(.mv){position:relative;z-index:10} .mv,.mv *{box-sizing:border-box;min-width:0} .mv-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;padding:0!important;margin:-1px!important;border:0!important} :where(.mv) a{color:inherit} html,body{overflow-x:clip}\n:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"]),[role=\"button\"]):focus-visible{outline:3px solid var(--mv-ink,#0D0E10)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--mv-bone,#EEEEE8)!important} :where(.mv-dark) :where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"])):focus-visible{outline-color:var(--mv-cloud,#FFFFFF)!important;box-shadow:0 0 0 2px var(--mv-night,#08090A)!important} :where(.mv-inring) :where(a[href],button):focus-visible{outline-offset:-4px!important;box-shadow:none!important} :where(.mv) :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select):focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important;box-shadow:none!important} :where(.mv) textarea{resize:none} .mv-inring:focus-visible{outline-offset:-3px!important;box-shadow:none!important} html{scroll-padding-top:96px;scroll-padding-bottom:88px}\n/* THE SELECTION button: a 10px-radius block. Hover/focus = the design-tool selection snaps around it (cyan outline 5px outside, four white handles, live W \\xd7 H badge underneath), the fill sweeps in from the left and the label rolls up. Magnetic on desktop. */\n.mv-btn{position:relative;display:inline-flex;padding:0;min-height:54px;border-radius:10px;text-decoration:none;cursor:pointer;isolation:isolate;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.005em;border:0;color:var(--fg);transition:color .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-face{position:relative;z-index:1;display:inline-flex;align-items:center;gap:14px;width:100%;min-height:inherit;padding:0 8px 0 22px;border-radius:inherit;background:var(--face);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:inset 0 0 0 1px var(--rim);overflow:hidden;isolation:isolate}\n.mv-fill{position:absolute;z-index:0;inset:0;background:var(--fill);border-radius:inherit;clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-fill,.mv-btn:focus-visible .mv-fill{clip-path:inset(0 0 0 0)}\n.mv-lbl{position:relative;z-index:1;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.15}\n.mv-roll{display:block;height:1.2em;overflow:hidden;line-height:1.2} .mv-l1,.mv-l2{display:block;transition:translate .5s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-l1,.mv-btn:hover .mv-l2,.mv-btn:focus-visible .mv-l1,.mv-btn:focus-visible .mv-l2{translate:0 -100%}\n.mv-arr{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:6px;background:var(--chip);color:var(--chipfg);overflow:hidden;transition:background .4s,color .4s} .mv-arr>span{grid-area:1/1;display:grid;place-items:center;transition:transform .55s cubic-bezier(.7,0,.2,1)} .mv-arr svg{width:15px;height:15px} .mv-a2{transform:translate(-160%,160%)}\n.mv-btn:hover .mv-a1,.mv-btn:focus-visible .mv-a1{transform:translate(160%,-160%)} .mv-btn:hover .mv-a2,.mv-btn:focus-visible .mv-a2{transform:none} .mv-btn:hover .mv-arr,.mv-btn:focus-visible .mv-arr{background:var(--chip2);color:var(--chipfg2)}\n.mv-selb{position:absolute;z-index:2;inset:-5px;border-radius:13px;box-shadow:0 0 0 1.5px var(--mv-brass);pointer-events:none;opacity:0;scale:1.06;transition:opacity .25s,scale .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-selb i{position:absolute;width:7px;height:7px;background:var(--mv-cloud);box-shadow:0 0 0 1.5px var(--mv-brass);translate:-50% -50%} .mv-selb i:nth-child(1){left:0;top:0} .mv-selb i:nth-child(2){left:100%;top:0} .mv-selb i:nth-child(3){left:0;top:100%} .mv-selb i:nth-child(4){left:100%;top:100%}\n.mv-btn:hover .mv-selb,.mv-btn:focus-visible .mv-selb{opacity:1;scale:1}\n.mv-dim{position:absolute;z-index:3;left:50%;top:calc(100% + 11px);translate:-50% -4px;padding:2px 6px;border-radius:4px;background:var(--mv-brass);color:var(--mv-ink);font:500 10px/1.4 var(--mv-font-m,'Chivo Mono'),ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s,translate .35s}\n.mv-btn:hover .mv-dim,.mv-btn:focus-visible .mv-dim{opacity:1;translate:-50% 0}\n.mv-btn:hover,.mv-btn:focus-visible{color:var(--fg2)}\n.mv-btn.mv-noarr .mv-face{padding-right:22px}\n.mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-quiet{min-height:40px;font-size:13px;border-radius:8px;--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)} .mv-btn.mv-quiet .mv-arr{width:28px;height:28px;border-radius:5px} .mv-btn.mv-quiet .mv-face{padding-left:16px;gap:10px;padding-right:6px} .mv-btn.mv-quiet .mv-selb{inset:-4px;border-radius:11px}\n/* on paper grounds: solid = ink face (cyan fill), ghost = ink hairline */\n.mv:not(.mv-dark) .mv-btn.mv-solid,.mv-lt .mv-btn.mv-solid{--face:var(--mv-ink);--fill:var(--mv-brass);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:var(--mv-brass);--chipfg:var(--mv-ink);--chip2:var(--mv-ink);--chipfg2:var(--mv-brass)}\n.mv:not(.mv-dark) .mv-btn.mv-ghost,.mv-lt .mv-btn.mv-ghost{--face:transparent;--rim:color-mix(in srgb,var(--mv-ink) 28%,transparent);--fill:var(--mv-ink);--fg:var(--mv-ink);--fg2:var(--mv-cloud);--chip:color-mix(in srgb,var(--mv-ink) 7%,transparent);--chipfg:var(--mv-ink);--chip2:var(--mv-brass);--chipfg2:var(--mv-ink)}\n.mv:not(.mv-dark) .mv-selb i,.mv-lt .mv-selb i{background:var(--mv-cloud)}\n/* a DARK band nested inside a paper section (case next-project, service film band): dark button faces again. Higher specificity than the paper rule above, so the result no longer depends on which component's <style> tag comes last in the page */\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n@media (max-width:600px),(hover:none){.mv .mv-btn{white-space:normal;text-align:left;line-height:1.25;min-height:54px;max-width:100%} .mv .mv-btn.mv-quiet{min-height:40px;white-space:nowrap} .mv .mv-btn .mv-face{justify-content:space-between} .mv .mv-roll{height:auto} .mv .mv-l2{display:none} .mv .mv-btn .mv-l1{translate:none!important} .mv .mv-selb,.mv .mv-dim{display:none}}\n.mv-btn:hover{transform:translate(var(--mx,0px),var(--my,0px))} .mv-btn:active{transform:translate(var(--mx,0px),var(--my,0px)) scale(.97)!important;transition-duration:.12s}\n/* TEXT-SAFE accents: cyan is a SURFACE colour on paper (selections, fills, chips) — accent text on paper is ink; on graphite grounds the cyan itself reads */\n.mv{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink));--mv-acc-d:var(--mv-brass)}\n.mv-lt,.mv .mv-lt{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink))}\n.mv-dark,.mv.mv-dark{--mv-acc:var(--mv-brass);--mv-acc-lg:var(--mv-brass);--mv-hl:transparent;--mv-mut:color-mix(in srgb,var(--mv-stone) 40%,var(--mv-cloud))}\n.mv-port{width:7px;height:7px;flex:none;border-radius:50%;background:#3DDC84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:mv-live 1.8s infinite} @keyframes mv-live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}100%{box-shadow:0 0 0 9px rgba(61,220,132,0)}}\n@media (prefers-reduced-motion:reduce){.mv *,.sth *{animation-duration:.01ms!important;transition-duration:.01ms!important}}`;const IcoArrow=({s=15})=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\"})});const Stars=({v=5,s=13})=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-stars\",\"aria-hidden\":true,children:[0,1,2,3,4].map(i=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",style:{opacity:i<Math.round(v)?1:.28},children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M12 2.6l2.9 6.1 6.7.9-4.9 4.6 1.2 6.6L12 17.6 6.1 20.8l1.2-6.6L2.4 9.6l6.7-.9z\"})},i))});// ===== JOSH BARNES motion layer (THE FLOW) (composed by mk.py after _common) =====\n// One shared rAF (onTick). Sections write --sp (0 = top edge enters the viewport bottom → 1 = bottom edge leaves the top) and,\n// for tall pinned wrappers, --pp (0 = wrapper top hits the viewport top → 1 = wrapper bottom hits the viewport bottom). IO-gated.\nconst SCRUB_K=.18;// Decode a section's photos while it is still a screen and a half away, so the first frame it is on screen never waits for a decode.\nfunction usePre(el){try{const io=new IntersectionObserver(es=>{if(!es[0].isIntersecting)return;io.disconnect();el.querySelectorAll(\"img\").forEach(im=>{try{im.loading=\"eager\";im.decode().catch(()=>{});}catch(e){}});},{rootMargin:\"150% 0px 150% 0px\"});io.observe(el);}catch(e){}}function focusTo(el,frac){if(!el||typeof window===\"undefined\")return;if(window.innerWidth<810)return;const r=el.getBoundingClientRect();const vh=window.innerHeight;if(r.height<=vh*1.05)return;const y=r.top+window.scrollY+(r.height-vh)*Math.min(1,Math.max(0,frac));if(Math.abs(window.scrollY-y)<8)return;const w=window;if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}function useScrollVars(ref,live,rm,cb){useEffect(()=>{if(!live||rm||!ref.current)return;const el=ref.current;let vis=true,last=-9,cs=-1,cp=-1,settled=false;usePre(el);const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"25% 0px 25% 0px\"});io.observe(el);// eased scrub: the values glide toward the true scroll position (K per frame), so wheel steps never jump a pinned scene\nlet rt=0,rh=0,vh=1,fresh=false;const read=()=>{if(!vis&&settled){fresh=false;return;}const r=el.getBoundingClientRect();rt=r.top;rh=r.height;vh=window.innerHeight||1;fresh=true;};const off=onTick(()=>{if(!fresh)return;const sp=clamp01((vh-rt)/(vh+rh));const pp=rh>vh*1.05?clamp01(-rt/(rh-vh)):sp;if(cs<0){cs=sp;cp=pp;}else{cs+=(sp-cs)*SCRUB_K;cp+=(pp-cp)*SCRUB_K;if(Math.abs(sp-cs)<5e-4)cs=sp;if(Math.abs(pp-cp)<5e-4)cp=pp;}settled=cs===sp&&cp===pp;if(Math.abs(cs+cp-last)<3e-4)return;last=cs+cp;el.style.setProperty(\"--sp\",cs.toFixed(4));el.style.setProperty(\"--pp\",cp.toFixed(4));if(cb)cb(cs,cp);},read);return()=>{off();io.disconnect();};},[live,rm]);}// STAGE — false while the loader or the page-transition cover is on screen (html.mv-hold-*), so first-screen intros play AFTER the cover lifts, never under it. 9 s safety.\nfunction useStage(live){const[r,setR]=useState(false);useEffect(()=>{if(!live)return;const h=document.documentElement;const ok=()=>!/(^|\\s)mv-hold/.test(h.className);if(ok()){setR(true);return;}const mo=new MutationObserver(()=>{if(ok()){mo.disconnect();setR(true);}});mo.observe(h,{attributes:true,attributeFilter:[\"class\"]});const t=window.setTimeout(()=>{mo.disconnect();setR(true);},9e3);return()=>{mo.disconnect();window.clearTimeout(t);};},[live]);return r;}// true once the element has entered the viewport (stays true) — and only once the stage is clear. Reduced motion = true at once.\nfunction useOn(ref,live,rm,amount=.16){const[on,setOn]=useState(false);const still=useStill();const ready=useStage(live);useEffect(()=>{if(!live)return;if(rm){setOn(true);return;}if(!ready)return;const el=ref.current;if(!el)return;let off=()=>{};// keyboard focus: mark the section FIRST and flush styles, so the reveal that follows runs with instant transitions (a transition keeps the timing it started with)\nconst fin=e=>{try{if(e.target.matches(\":focus-visible\")){el.setAttribute(\"data-kb\",\"\");void el.offsetWidth;}}catch(x){}setOn(true);};const fout=e=>{if(!el.contains(e.relatedTarget))el.removeAttribute(\"data-kb\");};el.addEventListener(\"focusin\",fin);el.addEventListener(\"focusout\",fout);const io=new IntersectionObserver(es=>{for(const e of es)if(e.isIntersecting){io.disconnect();// IO ignores occlusion: under a curtain (Reveal) wait until about a quarter of it is uncovered\noff=onTick(()=>{const rev=el.closest(\".mv-rev.is-act\");const rv=rev?parseFloat(rev.style.getPropertyValue(\"--rv\")||\"0\"):1;if(rv>.24){setOn(true);off();}});}},{threshold:Math.min(amount,Math.max(.005,window.innerHeight*.3/Math.max(1,el.offsetHeight))),rootMargin:\"0px 0px -6% 0px\"});io.observe(el);return()=>{io.disconnect();off();el.removeEventListener(\"focusin\",fin);el.removeEventListener(\"focusout\",fout);};},[live,rm,ready]);return on||still;}// CURTAIN REVEAL — the section is pinned BEHIND the one above it and is uncovered as that one lifts away (the footer movement, for any section).\n// Wrapper = section + a spacer of T, pulled up by T (page length unchanged); the section is sticky for exactly T of scroll. T = min(section height, 100svh):\n// a tall section pins at the top, a short one sits on the bottom edge of the viewport. The section ABOVE needs a higher Layer (z-index).\nfunction Reveal({on,layer=9,style,children}){const live=useLive();const rm=useReduced();const wrap=useRef(null);const inner=useRef(null);const sp=useRef(null);const[h,setH]=useState(0);const act=on&&live&&!rm&&h>0&&typeof window!==\"undefined\"&&window.innerWidth>=810;useEffect(()=>{if(!on||!live||rm||!inner.current)return;const el=inner.current;const m=()=>setH(el.offsetHeight);m();const ro=new ResizeObserver(m);ro.observe(el);return()=>ro.disconnect();},[on,live,rm]);useEffect(()=>{if(!act||!wrap.current)return;const el=wrap.current;let vis=true,last=-1;const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"30% 0px 30% 0px\"});io.observe(el);let cur=-1,T=0,vh=1,top=0,fresh=false;const read=()=>{if(!vis){fresh=false;return;}T=sp.current?sp.current.offsetHeight:0;vh=window.innerHeight;top=el.getBoundingClientRect().top;fresh=true;};const off=onTick(()=>{if(!fresh||!T)return;const rv=clamp01((vh-T-top)/T);if(cur<0)cur=rv;else{cur+=(rv-cur)*SCRUB_K;if(Math.abs(rv-cur)<5e-4)cur=rv;}if(Math.abs(cur-last)<4e-4)return;last=cur;el.style.setProperty(\"--rv\",cur.toFixed(4));},read);return()=>{off();io.disconnect();};},[act]);return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,className:`mv-rev${act?\" is-act\":\"\"}`,style:{...style||{},[\"--h\"]:`${h}px`,[\"--layer\"]:layer},onFocusCapture:e=>{if(!act||!wrap.current)return;const t=e.target;const w=window;const r=wrap.current.getBoundingClientRect();const T=sp.current?sp.current.offsetHeight:0;const y=Math.max(0,Math.min(document.documentElement.scrollHeight-window.innerHeight,r.top+window.scrollY-window.innerHeight+2*T));if(Math.abs(window.scrollY-y)>4){if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}requestAnimationFrame(()=>{try{t.scrollIntoView({block:\"nearest\"});}catch(x){}});},children:[/*#__PURE__*/_jsx(\"div\",{ref:inner,className:\"mv-rev-in\",children:children}),/*#__PURE__*/_jsx(\"div\",{ref:sp,className:\"mv-rev-sp\",\"aria-hidden\":true})]});}const REVEAL_CONTROLS={reveal:{type:ControlType.Boolean,title:\"Reveal\",description:\"Curtain: this section waits behind the one above and is uncovered as that one lifts away\",enabledTitle:\"Curtain\",disabledTitle:\"Off\",defaultValue:true},layer:{type:ControlType.Number,title:\"Layer\",description:\"Stacking order. Must be LOWER than the section above (sections default to 10)\",min:0,max:20,step:1,displayStepper:true,defaultValue:9,hidden:p=>p.reveal===false}};const splitWords=s=>String(s||\"\").replace(/\\*([^*]+)\\*/g,(_m,g)=>g.trim().split(/\\s+/).map(w=>{const m=w.match(/^(.*?)([.,!?;:’']*)$/);return m&&m[1]?`*${m[1]}*${m[2]}`:w;}).join(\" \")).split(/\\s+/).filter(Boolean).map(t=>{const m=t.match(/^\\*(.+?)\\*([.,!?;:’']*)$/);return m?{t:m[1],tail:m[2],acc:true}:{t:t.replace(/\\*/g,\"\"),tail:\"\",acc:false};});const plainOf=s=>String(s||\"\").replace(/\\*/g,\"\").replace(/\\s*\\|\\s*/g,\" \").replace(/\\s+/g,\" \").trim();// Heading whose words rise out of masks. \"|\" forces a line break, *word* = the accent: light-weight coral (deep coral mix on paper).\nconst Head=({text,on,D,tag=\"h2\",size=\"clamp(40px,4.8vw,72px)\",lh=.92,delay=0,step=55,style,className})=>{const Tag=tag;let k=0;return /*#__PURE__*/_jsx(Tag,{className:`mv-hd${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,\"aria-label\":plainOf(text),style:{...D,fontSize:size,lineHeight:lh,...style||{}},children:String(text).split(\"|\").map((line,li)=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-hd-l\",\"aria-hidden\":true,children:splitWords(line).map((w,i)=>{const d=delay+k++*step;return /*#__PURE__*/_jsxs(\"span\",{className:`mv-hd-w${w.acc?\" is-accw\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:`mv-hd-i${w.acc?\" is-acc\":\"\"}`,style:{transitionDelay:`${d}ms`,[\"--pd\"]:`${d+500}ms`},children:w.acc?/*#__PURE__*/_jsxs(\"span\",{className:\"mv-it\",children:[w.t,w.tail,/*#__PURE__*/_jsx(\"svg\",{className:\"mv-spark\",viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 1.5C12.9 8 16 11.1 22.5 12 16 12.9 12.9 16 12 22.5 11.1 16 8 12.9 1.5 12 8 11.1 11.1 8 12 1.5Z\"})})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[w.t,w.tail]})}),\" \"]},i);})},li))});};const Eyebrow=({text,on,M,delay=0,style})=>text?/*#__PURE__*/_jsxs(\"p\",{className:`mv-eb${on?\" is-on\":\"\"}`,style:{...M,transitionDelay:`${delay}ms`,...style||{}},children:[/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true}),text]}):null;// one-shot rise for copy / rows\nconst rise=(on,d=0,y=22)=>({opacity:on?1:0,translate:on?\"0 0\":`0 ${y}px`,transition:`opacity .9s ease ${d}ms, translate 1s cubic-bezier(.2,.8,.2,1) ${d}ms`});// Image that UNMASKS through a shape as it enters, settles from a zoom, then drifts with scroll (needs --sp on an ancestor).\nconst SHAPES={up:[\"inset(100% 0 0 0)\",\"inset(0 0 0 0)\"],down:[\"inset(0 0 100% 0)\",\"inset(0 0 0 0)\"],left:[\"inset(0 100% 0 0)\",\"inset(0 0 0 0)\"],right:[\"inset(0 0 0 100%)\",\"inset(0 0 0 0)\"],diag:[\"polygon(0 100%,0 100%,0 100%,0 100%)\",\"polygon(0 -160%,260% 100%,0 100%,0 100%)\"],iris:[\"circle(0% at 50% 55%)\",\"circle(85% at 50% 55%)\"],arch:[\"inset(100% 0 0 0 round 999px 999px 0 0)\",\"inset(0 0 0 0 round 999px 999px 0 0)\"],slit:[\"inset(0 50% 0 50%)\",\"inset(0 0 0 0)\"]};const Um=({src,alt=\"\",on,shape=\"up\",ratio=\"4/5\",delay=0,par=1,focus=\"50% 40%\",radius=4,sizes=\"(max-width: 809px) 100vw, 50vw\",style,className,eager=false})=>{const sh=SHAPES[shape]||SHAPES.up;const im=RS(src,sizes);return /*#__PURE__*/_jsx(\"div\",{className:`mv-um${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,style:{aspectRatio:ratio,borderRadius:radius,clipPath:on?sh[1]:sh[0],WebkitClipPath:on?sh[1]:sh[0],transitionDelay:`${delay}ms`,[\"--par\"]:par,...style||{}},children:/*#__PURE__*/_jsx(\"img\",{src:im.src,srcSet:im.srcSet,sizes:im.sizes,alt:alt,loading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:false,style:{objectPosition:focus,transitionDelay:`${delay}ms`}})});};const CSS_MOTION=`\n[data-kb] *,[data-kb] *::before,[data-kb] *::after{transition:none!important}\n.mv-sec{position:relative;z-index:10;display:block;width:100%;--sp:.5;--pp:0}\n.mv-rev{position:relative;width:100%;--rv:1} .mv-rev-in{position:relative} .mv-rev-sp{height:0}\n.mv-rev.is-act{--rv:0;--t:min(var(--h),100vh);--t:min(var(--h),100svh);z-index:var(--layer,9);margin-top:calc(var(--t)*-1)}\n.mv-rev.is-act>.mv-rev-in{position:sticky;top:calc(100vh - var(--t));top:calc(100svh - var(--t))} .mv-rev.is-act>.mv-rev-sp{height:var(--t)}\n/* the lifting edge throws a shadow on the section beneath, and that section comes out of the dark as it is uncovered */\n.mv-rev.is-act>.mv-rev-in::before{content:\"\";position:absolute;z-index:40;left:0;right:0;top:0;height:120px;translate:0 calc((1 - var(--rv))*var(--t));background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,0));opacity:min(1,calc(var(--rv)*(1 - var(--rv))*9));pointer-events:none}\n.mv-rev.is-act>.mv-rev-in::after{content:\"\";position:absolute;z-index:39;left:0;right:0;top:0;height:var(--t);background:#000;opacity:calc((1 - var(--rv))*.16);pointer-events:none}\n.mv-wrap{--pad:56px;width:100%;max-width:calc(${MAXW} + var(--pad)*2);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}\n.mv-eb{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;margin:0;padding:7px 13px 7px 11px;border-radius:6px;background:color-mix(in srgb,var(--mv-ink) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-ink) 12%,transparent);color:var(--mv-ink);font-size:11.5px;font-weight:500;letter-spacing:.06em;opacity:0;translate:0 10px;transition:opacity .8s ease,translate .9s cubic-bezier(.2,.8,.2,1)} .mv-eb.is-on{opacity:1;translate:0 0}\n.mv-eb i{display:block;flex:none;order:-1;width:7px;height:7px;border-radius:50%;background:var(--mv-brass)}\n.mv-dark .mv-eb{color:var(--mv-cloud);background:color-mix(in srgb,var(--mv-cloud) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-cloud) 18%,transparent)}\n.mv-hd{margin:0;letter-spacing:-.042em;text-wrap:balance;font-weight:var(--mv-font-dw,600)} .mv-hd-l{display:block}\n.mv-hd-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .12em;margin:0 -.04em -.12em;white-space:pre}\n.mv-hd-i{position:relative;display:inline-block;translate:0 108%;transition:translate 1.05s cubic-bezier(.2,.85,.15,1)}\n.mv-hd.is-on .mv-hd-i{translate:0 0}\n.mv-hd-w.is-accw{overflow:hidden}\n.mv-it{position:relative;color:var(--mv-acc);font-weight:inherit} .mv-dark .mv-it{color:var(--mv-brass)}\n.mv-spark{display:none}\n\n.mv-um{position:relative;overflow:hidden;transition:clip-path 1.35s cubic-bezier(.7,0,.2,1);background:color-mix(in srgb,var(--mv-stone) 22%,transparent)}\n.mv-um img{position:absolute;left:0;top:-9%;width:100%;height:118%;display:block;object-fit:cover;scale:1.28;translate:0 calc((var(--sp,.5) - .5)*var(--par,1)*-7%);transition:scale 1.9s cubic-bezier(.16,.84,.24,1);user-select:none}\n.mv-um.is-on img{scale:1}\n/* diagonal cuts: the section hangs over its neighbour and is cut on a slope (clip-path, so the neighbour shows through) */\n.mv-cut-t{margin-top:calc(var(--cut,7vw)*-1);clip-path:polygon(0 var(--cut,7vw),100% 0,100% 100%,0 100%);padding-top:var(--cut,7vw)}\n.mv-cut-b{margin-bottom:calc(var(--cut,7vw)*-1);padding-bottom:var(--cut,7vw)}\n.mv-cut-t.mv-cut-b{clip-path:polygon(0 var(--cut,7vw),100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n.mv-cut-b:not(.mv-cut-t){clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n@media (max-width:1099px){.mv-wrap{--pad:32px}}\n@media (max-width:699px){.mv-wrap{--pad:20px}}\n@media (prefers-reduced-motion:reduce){.mv-hd-i{translate:0 0!important} .mv-spark{scale:1!important;rotate:0deg!important;animation:none!important} .mv-um{clip-path:none!important} .mv-um img{scale:1!important;translate:0 0!important}}\n`;const SEED={site:[{\"slug\":\"site\",\"f1\":\"Josh Barnes\",\"f2\":\"Product designer & developer\",\"f3\":\"I design digital products and build them in code, from the first sketch to the shipped release.\",\"f4\":\"hello@maravoss.design\",\"f5\":\"Berlin\",\"f6\":\"Europe/Berlin\",\"f7\":\"Available for work \\xb7 Nov 2026\",\"f8\":\"/resume\",\"f9\":\"Dribbble:https://dribbble.com,GitHub:https://github.com,LinkedIn:https://linkedin.com,Read.cv:https://read.cv\",\"f10\":\"9\",\"f11\":\"/contact\",\"n1\":\"1\"}]};const SW_BUILD=\"MvPageTrans@cms1\";// An override control wins only when it holds real text; empty (or a single space) inherits from the CMS.\nconst pick=(o,fb)=>o!==undefined&&o!==null&&String(o).trim()?String(o).trim():fb;const imgOf=(r,k=\"img\")=>String(r&&r[k]||\"\").split(\"?\")[0];// A cleared CMS image draws this quiet placeholder — never a stock photo, and list positions stay aligned with their rows.\nconst EMPTY_IMG=\"data:image/svg+xml;utf8,\"+encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='xMidYMid slice'><rect width='400' height='500' fill='#D3D8E2'/><rect x='120' y='170' width='160' height='160' rx='8' fill='none' stroke='#AEB6C6' stroke-width='1.5'/><rect x='100' y='150' width='200' height='200' rx='10' fill='none' stroke='#C3CAD8' stroke-width='1' stroke-dasharray='2 6'/></svg>\");const imgOr=(r,k=\"img\")=>imgOf(r,k)||EMPTY_IMG;const cmsNum=(r,k,fb=0)=>{const v=parseFloat(String((r&&r[k])??\"\"));return isFinite(v)?v:fb;};const useIso=typeof window===\"undefined\"?useEffect:useLayoutEffect;function readCMS(kind){if(typeof document===\"undefined\")return null;if(!document.querySelector('[data-mv-row=\"bridge\"]'))return null;const seen=new Set;const out=[];document.querySelectorAll(`[data-mv-row=\"${kind}\"]`).forEach(el=>{const o={};for(const a of Array.from(el.attributes))if(a.name.startsWith(\"data-\"))o[a.name.slice(5)]=a.value;const key=o.slug||JSON.stringify(o);if(seen.has(key))return;seen.add(key);out.push(o);});return out.sort((a,b)=>(parseFloat(a.n1)||0)-(parseFloat(b.n1)||0));}function useCMS(kind,fallback){const[rows,setRows]=useState(fallback);const sig=useRef(\"\");useIso(()=>{let n=0,t=0,ok=0;try{const w=window;if(!w.__ltCms||typeof w.__ltCms!==\"object\")w.__ltCms={};w.__ltCms[SW_BUILD]=1;}catch(e){}const pull=()=>{const r=readCMS(kind);if(!r)return false;const s=JSON.stringify(r);if(s!==sig.current){sig.current=s;setRows(r);}return true;};const mo=new MutationObserver(()=>{if(pull()){ok++;if(ok>2)mo.disconnect();}});mo.observe(document.body,{childList:true,subtree:true});if(pull())ok++;const poll=()=>{if(n++<30){pull();t=window.setTimeout(poll,150);}};t=window.setTimeout(poll,150);return()=>{mo.disconnect();window.clearTimeout(t);};},[kind]);return rows;}// The one-row Site collection holds every site-wide fact (name, role, contact, availability, resume link). A section's \"… Override\" control only replaces it on that one section.\nfunction useSite(){const r=useCMS(\"site\",SEED.site||[]);const s=r[0]||(SEED.site||[])[0]||{};const g=k=>String(s[k]??\"\").trim();return{name:g(\"f1\")||\"Josh Barnes\",role:g(\"f2\"),tagline:g(\"f3\"),email:g(\"f4\"),city:g(\"f5\"),tz:g(\"f6\")||\"Europe/Berlin\",avail:g(\"f7\"),resume:g(\"f8\")||\"/resume\",socials:g(\"f9\"),years:g(\"f10\"),book:g(\"f11\")||\"/contact\"};}const linkList=s=>String(s||\"\").split(\",\").map(x=>x.trim()).filter(Boolean).map(x=>{const i=x.indexOf(\":\");return{l:i<0?x:x.slice(0,i).trim(),h:i<0?\"/\":x.slice(i+1).trim()};});const listOf=s=>String(s||\"\").split(\";\").map(x=>x.trim()).filter(Boolean);// The row a CMS detail page is about: the bound Slug control wins (server render included), else the last URL segment, else the first row.\nfunction useRow(kind,fallback,slug){const rows=useCMS(kind,fallback);const[path,setPath]=useState(\"\");useEffect(()=>{try{setPath(decodeURIComponent(window.location.pathname.split(\"/\").filter(Boolean).pop()||\"\"));}catch(e){}},[]);const want=String(slug||\"\").trim()||path;const row=rows.find(r=>r.slug===want)||rows[0]||{};return{row,rows};}const crumbs=s=>linkList(s);// Open now? Open Hours = \"1-6 07:00-19:00\" (weekday numbers, Mon = 1 … Sun = 7) evaluated in the Site Time Zone.\nfunction openState(spec,tz){try{const m=String(spec||\"\").match(/(\\d)\\s*-\\s*(\\d)\\s+(\\d{1,2}):(\\d{2})\\s*-\\s*(\\d{1,2}):(\\d{2})/);if(!m)return null;const parts=new Intl.DateTimeFormat(\"en-US\",{timeZone:tz||\"UTC\",weekday:\"short\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).formatToParts(new Date);const g=t=>(parts.find(p=>p.type===t)||{value:\"\"}).value;const wd=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"].indexOf(g(\"weekday\"))+1;const mins=Number(g(\"hour\"))%24*60+Number(g(\"minute\"));const d1=Number(m[1]),d2=Number(m[2]),a=Number(m[3])*60+Number(m[4]),b=Number(m[5])*60+Number(m[6]);const open=wd>=d1&&wd<=d2&&mins>=a&&mins<b;return{open,label:open?`Open \\xb7 till ${m[5].padStart(2,\"0\")}:${m[6]}`:`Closed \\xb7 opens ${m[3].padStart(2,\"0\")}:${m[4]}`};}catch(e){return null;}}// ===== MvPageTrans =====\n/**\n * JOSH BARNES — PAGE TRANSITION «THE CUT». Click an internal link: the film gate shuts. Two dark shutter blades close from above and below and\n * meet on the line you clicked, a warm light slit riding their edges; once shut, a mono frame counter \"FRAME 03 → 04\" and the destination\n * name (from the link text) show for a beat, then the browser goes. The next page arrives shut (the cover is in the server HTML when the\n * session flag is set) and the blades open from the same line, top up and bottom down; first-screen intros wait for it (html.mv-hold-pt).\n * Works with plain links (full load) and Framer's client-side routing (URL change without a reload). Skips outside links, mail/phone links,\n * new-tab, download, modifier-key, same-page and #hash links, /start-here and [data-no-trans]. Back/forward from the cache clears any cover.\n * Reduced motion = no transition at all. Put it once, in the Site Layout (0px frame).\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1440\n * @framerIntrinsicHeight 1\n */const MVTR_KEY=\"mv-pt\",MVTR_FRAME=\"mv-frame\";const MVTR_OPEN=560// ms the blades take to open on arrival\n;export default function MvPageTrans(props){const{enabled=true,tone=\"night\",frameLabel=\"Frame\",kicker=\"Cut to\",homeLabel=\"Home\",speed=.4,respectRm=true,bpHint=\"auto\"}=props;const c=colorsOf(props);const{D,M}=fontsOf(props);useFonts();const live=useLive();const still=useStill();const[name,setName]=useState(\"\");const[fr,setFr]=useState([3,4]);const[mode,setMode]=useState(\"boot\");const[gen,setGen]=useState(0);const S=useRef({mode:\"boot\",t:0,href:\"\",busy:false,bypass:false,unloading:false});const Dm=Math.max(.25,Math.min(.45,Number(speed)||.4))*1e3;useEffect(()=>{if(!live||!enabled)return;const html=document.documentElement;const tm=[];const BEAT=170;const set=m=>{S.current.mode=m;S.current.t=performance.now();setMode(m);if(m===\"arrive\")setGen(g=>g+1);};const clearHold=()=>html.classList.remove(\"mv-hold-pt\",\"mvtr-arrive\");const at=y=>{html.style.setProperty(\"--mvtr-y\",`${Math.round(Math.max(0,Math.min(window.innerHeight,y)))}px`);};// the hold lifts while the blades are still opening, so the page's intro plays as it is uncovered\nconst arrive=()=>{set(\"arrive\");S.current.busy=false;tm.push(window.setTimeout(clearHold,60+MVTR_OPEN*.35));tm.push(window.setTimeout(()=>{if(S.current.mode===\"arrive\")set(\"idle\");},MVTR_OPEN+300));};const readFlag=()=>{let f=null;try{f=JSON.parse(sessionStorage.getItem(MVTR_KEY)||\"null\");sessionStorage.removeItem(MVTR_KEY);}catch(_){}return f&&Date.now()-(Number(f.t)||0)<8e3?f:null;};const frameNo=()=>{try{return Math.max(1,parseInt(sessionStorage.getItem(MVTR_FRAME)||\"1\",10)||1);}catch(_){return 1;}};const rm=respectRm&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;S.current.href=location.href;const flag=readFlag();if(flag&&!rm&&(html.classList.contains(\"mvtr-arrive\")||html.classList.contains(\"mv-hold-pt\"))){at((Number(flag.y)||.5)*window.innerHeight);arrive();}else{clearHold();set(\"idle\");}const titleOf=(u,a)=>{const segs=u.pathname.split(\"/\").filter(Boolean);if(!segs.length)return homeLabel;const txt=String(a.getAttribute(\"aria-label\")||String(a.innerText||\"\").split(\"\\n\").map(x=>x.trim()).filter(Boolean)[0]||\"\").replace(/[↗→↑]/g,\"\").replace(/\\s+/g,\" \").trim();if(txt&&txt.length<=28&&!/^(read|learn more|open|more|view|see|details|all)\\b/i.test(txt)&&!/\\d{2}:\\d{2}/.test(txt))return txt;return decodeURIComponent(segs[segs.length-1]).replace(/\\.html?$/,\"\").replace(/[-_]+/g,\" \").replace(/\\b\\w/g,m=>m.toUpperCase());};const click=e=>{if(S.current.bypass||rm||S.current.busy||e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=e.target?.closest?.(\"a[href]\");if(!a||a.target&&a.target!==\"_self\"||a.hasAttribute(\"download\")||a.closest(\"[data-no-trans]\"))return;const raw=a.getAttribute(\"href\")||\"\";if(!raw||/^(mailto|tel|sms|javascript):/i.test(raw)||raw.startsWith(\"#\"))return;let u;try{u=new URL(a.href,location.href);}catch(_){return;}if(u.origin!==location.origin)return;if(/^\\/start-here\\/?$/.test(u.pathname)||/^\\/start-here\\/?$/.test(location.pathname))return;if(u.pathname===location.pathname&&u.search===location.search)return;// same page (incl. /#section) — the in-page jump handles it\ne.preventDefault();e.stopPropagation();S.current.busy=true;S.current.href=location.href;// the blades meet on the line that was clicked (keyboard: the middle of the link)\nlet y=e.clientY;if(!e.detail||e.clientX===0&&y===0){const r=a.getBoundingClientRect();y=r.top+r.height/2;}at(y);const f0=frameNo();try{sessionStorage.setItem(MVTR_FRAME,String(f0+1));}catch(_){}setFr([f0,f0+1]);setName(titleOf(u,a));set(\"leave\");html.classList.add(\"mv-hold-pt\");try{sessionStorage.setItem(MVTR_KEY,JSON.stringify({y:y/window.innerHeight,t:Date.now()}));}catch(_){}tm.push(window.setTimeout(()=>{if(S.current.mode!==\"leave\")return;// hand the click back to the page: Framer's router takes it client-side, a plain link loads the page\nS.current.bypass=true;try{a.click();}catch(_){}S.current.bypass=false;tm.push(window.setTimeout(()=>{if(!S.current.unloading&&S.current.mode===\"leave\"&&location.href!==u.href)location.href=u.href;},1400));},Dm+BEAT));};// route watcher: a URL change without a reload (client routing) opens the gate once the new page has rendered; never shut > 3.5 s\nconst watch=window.setInterval(()=>{const st=S.current;const t=performance.now();if(location.href!==st.href){st.href=location.href;if(st.mode===\"leave\"){try{sessionStorage.removeItem(MVTR_KEY);}catch(_){}tm.push(window.setTimeout(()=>{requestAnimationFrame(()=>requestAnimationFrame(()=>{if(S.current.mode===\"leave\")arrive();}));},120));}}if(st.mode===\"leave\"&&t-st.t>3500&&!st.unloading)arrive();if(st.mode===\"arrive\"&&t-st.t>2500){clearHold();set(\"idle\");}},100);const show=e=>{if(e.persisted){clearHold();set(\"idle\");S.current.busy=false;S.current.unloading=false;}};const unload=()=>{S.current.unloading=true;};const pop=()=>{S.current.href=location.href;};document.addEventListener(\"click\",click,true);window.addEventListener(\"pageshow\",show);window.addEventListener(\"beforeunload\",unload);window.addEventListener(\"popstate\",pop);return()=>{window.clearInterval(watch);tm.forEach(x=>window.clearTimeout(x));document.removeEventListener(\"click\",click,true);window.removeEventListener(\"pageshow\",show);window.removeEventListener(\"beforeunload\",unload);window.removeEventListener(\"popstate\",pop);};},[live,enabled,respectRm,Dm,homeLabel]);if(still||!enabled)return null;const boot=`(function(){try{${respectRm?\"if(matchMedia('(prefers-reduced-motion: reduce)').matches)return;\":\"\"}if(/^\\\\/start-here\\\\/?$/.test(location.pathname))return;var f=JSON.parse(sessionStorage.getItem('${MVTR_KEY}')||'null');if(!f||Date.now()-(+f.t||0)>8000)return;var h=document.documentElement;h.style.setProperty('--mvtr-y',Math.round((+f.y||.5)*innerHeight)+'px');h.classList.add('mvtr-arrive','mv-hold-pt');setTimeout(function(){h.classList.remove('mvtr-arrive','mv-hold-pt')},4000)}catch(e){}})()`;const cls=mode===\"leave\"?\"mvtr mvtr-on mvtr-leave\":mode===\"arrive\"?\"mvtr mvtr-on mvtr-enter\":mode===\"idle\"?\"mvtr mvtr-idle\":\"mvtr mvtr-ssr\";const p2=n=>String(n).padStart(2,\"0\");const blade=tone===\"deep\"?\"var(--mv-pine)\":tone===\"accent\"?\"var(--mv-brass)\":\"var(--mv-night)\";const fg=tone===\"accent\"?\"var(--mv-ink)\":\"var(--mv-cloud)\";const overlay=/*#__PURE__*/_jsxs(\"div\",{className:cls+(tone===\"accent\"?\" is-acc\":\"\"),\"aria-hidden\":true,style:{...cssVars(c),[\"--d\"]:`${Dm}ms`,[\"--o\"]:`${MVTR_OPEN}ms`,[\"--blade\"]:blade,[\"--fg\"]:fg,pointerEvents:mode===\"leave\"?\"auto\":\"none\"},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mvtr-b mvtr-t\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"mvtr-edge\"}),/*#__PURE__*/_jsx(\"span\",{className:\"mvtr-sp\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvtr-b mvtr-u\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"mvtr-edge\"}),/*#__PURE__*/_jsx(\"span\",{className:\"mvtr-sp\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"mvtr-mid\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"mvtr-k\",style:M,children:[kicker?/*#__PURE__*/_jsx(\"em\",{children:kicker}):null,/*#__PURE__*/_jsxs(\"span\",{children:[frameLabel,\" \",p2(fr[0])]}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"span\",{className:\"mvtr-to\",children:p2(fr[1])})]}),/*#__PURE__*/_jsx(\"p\",{className:\"mvtr-name\",style:D,children:name||homeLabel})]}),/*#__PURE__*/_jsx(\"i\",{className:\"mvtr-c mvtr-c1\"}),/*#__PURE__*/_jsx(\"i\",{className:\"mvtr-c mvtr-c2\"}),/*#__PURE__*/_jsx(\"i\",{className:\"mvtr-c mvtr-c3\"}),/*#__PURE__*/_jsx(\"i\",{className:\"mvtr-c mvtr-c4\"})]},mode===\"arrive\"?\"a\"+gen:mode);const portal=live&&typeof document!==\"undefined\";return /*#__PURE__*/_jsxs(\"div\",{className:\"mvtr-anchor\",style:{width:\"100%\",height:0,position:\"relative\",...props.style||{}},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS_MVTR+siteFontCss(props)+(respectRm?\"@media (prefers-reduced-motion:reduce){.mvtr{display:none!important}}\":\"\")}}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:boot}}),portal?/*#__PURE__*/createPortal(overlay,document.body):overlay]});}const CSS_MVTR=`\n.mvtr{position:fixed;inset:0;z-index:9998;pointer-events:none;overflow:hidden;color:var(--fg);display:none;--y:var(--mvtr-y,50vh);--warm:#FFF1DA}\n.mvtr *{box-sizing:border-box}\n.mvtr-on{display:block} html.mvtr-arrive .mvtr-ssr{display:block;animation:mvtr-fb .3s ease 3.4s both} @keyframes mvtr-fb{to{opacity:0;visibility:hidden}}\n.mvtr-idle{display:none!important}\n/* the blades: top covers 0 → y, bottom covers y → 100%; closed = each reaches the click line */\n.mvtr-b{position:absolute;left:0;right:0;background:var(--blade);will-change:transform}\n.mvtr-t{top:0;height:calc(var(--y) + 1px);transform-origin:50% 0} .mvtr-u{top:var(--y);bottom:0;transform-origin:50% 100%}\n.mvtr-b::before{content:\"\";position:absolute;inset:0;background:radial-gradient(ellipse 70% 120% at 50% var(--gy,100%),color-mix(in srgb,var(--mv-cloud) 6%,transparent),transparent 70%)} .mvtr-u::before{--gy:0%}\n/* the light slit on each blade's leading edge */\n.mvtr-edge{position:absolute;left:0;right:0;height:2px;background:var(--warm);box-shadow:0 0 18px 3px rgba(255,226,180,.55),0 0 60px 8px rgba(255,226,180,.18)} .mvtr-t .mvtr-edge{bottom:0} .mvtr-u .mvtr-edge{top:0}\n/* sprocket hint along the blades' outer sides */\n.mvtr-sp{position:absolute;top:0;bottom:0;left:clamp(8px,1vw,14px);width:clamp(10px,1.1vw,16px);background:repeating-linear-gradient(180deg,color-mix(in srgb,var(--fg) 12%,transparent) 0 22px,transparent 22px 44px);border-radius:3px}\n.mvtr-u .mvtr-sp{left:auto;right:clamp(8px,1vw,14px)}\n.mvtr-ssr .mvtr-mid,.mvtr-enter .mvtr-mid{display:none}\n/* leaving: blades close onto the line */\n.mvtr-leave .mvtr-t{animation:mvtr-shutT var(--d) cubic-bezier(.7,0,.25,1) both} .mvtr-leave .mvtr-u{animation:mvtr-shutU var(--d) cubic-bezier(.7,0,.25,1) both}\n@keyframes mvtr-shutT{from{transform:translateY(calc(-100% - 40px))}to{transform:translateY(0)}} @keyframes mvtr-shutU{from{transform:translateY(calc(100% + 40px))}to{transform:translateY(0)}}\n.mvtr-leave .mvtr-edge{animation:mvtr-edge var(--d) linear both} @keyframes mvtr-edge{0%{opacity:0}20%{opacity:1}85%{opacity:1}100%{opacity:.25}}\n/* arriving: blades open from the same line */\n.mvtr-enter .mvtr-t{animation:mvtr-openT var(--o) cubic-bezier(.7,0,.2,1) both} .mvtr-enter .mvtr-u{animation:mvtr-openU var(--o) cubic-bezier(.7,0,.2,1) both}\n@keyframes mvtr-openT{from{transform:translateY(0)}to{transform:translateY(calc(-100% - 40px))}} @keyframes mvtr-openU{from{transform:translateY(0)}to{transform:translateY(calc(100% + 40px))}}\n.mvtr-enter .mvtr-edge{animation:mvtr-flare var(--o) ease-out both} @keyframes mvtr-flare{0%{opacity:1;transform:scaleY(2.5)}100%{opacity:.2;transform:scaleY(1)}}\n/* the frame card */\n/* the kicker sits above the shut line, the page name below it */\n.mvtr-mid{position:absolute;left:0;right:0;top:clamp(80px,var(--y),calc(100% - 180px));translate:0 -34px;padding:0 clamp(24px,5vw,80px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:40px}\n.mvtr-k{display:inline-flex;align-items:center;gap:10px;margin:0;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--fg) 72%,transparent);font-variant-numeric:tabular-nums;white-space:nowrap}\n.mvtr-k i{width:22px;height:1px;background:currentColor;position:relative} .mvtr-k i::after{content:\"\";position:absolute;right:0;top:-3px;border:3.5px solid transparent;border-left:5px solid currentColor;border-right:0}\n.mvtr-to{color:var(--fg);padding:2px 6px;border-radius:3px;background:color-mix(in srgb,var(--fg) 12%,transparent)} .mvtr-k em{font-style:normal;margin-right:10px;padding-right:12px;border-right:1px solid color-mix(in srgb,var(--fg) 30%,transparent);color:var(--fg)}\n.mvtr-name{margin:0;max-width:100%;font-size:clamp(40px,6.4vw,96px);line-height:.95;letter-spacing:-.045em;font-stretch:112%;font-weight:var(--mv-font-dw,700);color:var(--fg);overflow-wrap:anywhere}\n.mvtr-leave .mvtr-k{animation:mvtr-in .26s cubic-bezier(.2,.8,.2,1) calc(var(--d)*.4) both} .mvtr-leave .mvtr-name{animation:mvtr-clip .26s steps(8,end) calc(var(--d)*.5) both}\n@keyframes mvtr-in{from{opacity:0;translate:0 10px}} @keyframes mvtr-clip{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}\n/* gate corners, visible while shut */\n.mvtr-c{position:absolute;width:22px;height:22px;border:0 solid color-mix(in srgb,var(--fg) 45%,transparent);opacity:0}\n.mvtr-c1{left:clamp(16px,2.4vw,36px);top:clamp(16px,2.4vw,36px);border-left-width:1.5px;border-top-width:1.5px} .mvtr-c2{right:clamp(16px,2.4vw,36px);top:clamp(16px,2.4vw,36px);border-right-width:1.5px;border-top-width:1.5px}\n.mvtr-c3{left:clamp(16px,2.4vw,36px);bottom:clamp(16px,2.4vw,36px);border-left-width:1.5px;border-bottom-width:1.5px} .mvtr-c4{right:clamp(16px,2.4vw,36px);bottom:clamp(16px,2.4vw,36px);border-right-width:1.5px;border-bottom-width:1.5px}\n.mvtr-leave .mvtr-c{animation:mvtr-in .25s ease calc(var(--d)*.7) both;opacity:1}\n@media (max-width:809px){.mvtr-name{font-size:clamp(36px,11vw,60px)} .mvtr-k{font-size:10.5px;letter-spacing:.1em} .mvtr-k em{display:none}}\n`;addPropertyControls(MvPageTrans,{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},tone:{type:ControlType.Enum,title:\"Shutter colour\",options:[\"night\",\"deep\",\"accent\"],optionTitles:[\"Dark\",\"Deep\",\"Accent\"],defaultValue:\"night\"},frameLabel:{type:ControlType.String,title:\"Frame label\",defaultValue:\"Frame\"},kicker:{type:ControlType.String,title:\"Kicker\",defaultValue:\"Cut to\"},homeLabel:{type:ControlType.String,title:\"Home label\",description:\"Shown when the link goes to the home page\",defaultValue:\"Home\"},speed:{type:ControlType.Number,title:\"Close time\",min:.25,max:.45,step:.01,unit:\"s\",defaultValue:.4},respectRm:{type:ControlType.Boolean,title:\"Respect reduced motion\",description:\"On = no transition for visitors who ask for less motion\",defaultValue:true},...BP_CONTROL,...COLOR_CONTROLS,...FONT_CONTROLS});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MvPageTrans\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MvPageTrans.map","// ===== JOSH BARNES shared scaffold (THE CANVAS: graphite design-tool canvas, paper sections, selection-cyan, SELECTION buttons) (inlined by mk.py; each Framer code file must be self-contained) =====\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const FONTS=\"https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,75..125,200..900;1,75..125,200..900&family=Chivo+Mono:ital,wght@0,300..600;1,300..600&display=swap\";// Token-safe alpha: Styles-bound colours arrive as var(--token-…) so hex-alpha breaks; color-mix keeps a palette flip working. Never 0% (hue drops) — floor at 0.4%.\nconst A=(c,a)=>`color-mix(in srgb, ${c} ${Math.max(.4,Math.round(a*1e3)/10)}%, transparent)`;const MIX=(a,b,t)=>`color-mix(in srgb, ${a} ${Math.round((1-t)*100)}%, ${b})`;const srcOf=(v,fallback)=>v&&typeof v===\"object\"&&v.src?String(v.src).split(\"?\")[0]:typeof v===\"string\"&&v.trim()?v.trim().split(\"?\")[0]:fallback;const T=(s,fb)=>s&&s.trim()?s.trim():fb;// ink or white text on a CMS brand colour (luminance test; the brand colour is data, not a palette token)\nconst onBrand=hex=>{const m=String(hex||\"\").replace(\"#\",\"\").match(/^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(!m)return\"var(--mv-cloud)\";const[r,g,b]=[m[1],m[2],m[3]].map(x=>{const v=parseInt(x,16)/255;return v<=.03928?v/12.92:Math.pow((v+.055)/1.055,2.4);});const L=.2126*r+.7152*g+.0722*b;return L>.2?\"var(--mv-ink)\":\"var(--mv-cloud)\";};const cleanTel=s=>s.replace(/[^\\d+]/g,\"\");// Premium layout band (measured 09-13): container 1340 @1440 / 1520 @1920, body 16, button label 12–13.\nconst MAXW=\"clamp(1280px, 92vw, 1520px)\";// Responsive delivery: Framer's resizer serves any upload at ?scale-down-to=N (longest side). The query is stripped first so one file never downloads twice.\n// Responsive delivery. Framer uploads: the resizer serves ?scale-down-to=N. Unsplash stand-ins: ?w=N. The src is already the smallest width that covers the slot (a 52px avatar never pulls a 1600px photo), so a big image is never decoded for a small box — decode is what stalls scrolling.\nconst RS_W=[160,320,480,800,1200,1600];const rsTarget=sizes=>{const t=String(sizes||\"\").trim().split(\",\").pop()||\"\";const px=t.match(/(\\d+(?:\\.\\d+)?)px/);const vw=t.match(/(\\d+(?:\\.\\d+)?)vw/);const want=px?parseFloat(px[1])*2:vw?parseFloat(vw[1])/100*1600*1.25:1600;return RS_W.find(w=>w>=want)||1600;};const RS=(u,sizes)=>{const s=String(u||\"\");const b=s.split(\"?\")[0];if(/framerusercontent\\.com\\/images\\//.test(s)){const w=rsTarget(sizes);const d=w<=512?512:w<=1024?1024:2048;return{src:`${b}?scale-down-to=${d}`,srcSet:`${b}?scale-down-to=512 512w, ${b}?scale-down-to=1024 1024w, ${b}?scale-down-to=2048 2048w`,sizes};}if(/images\\.unsplash\\.com\\//.test(s)){const w=rsTarget(sizes);const q=n=>`${b}?w=${n}&q=70&fm=jpg&auto=format`;return{src:q(w),srcSet:RS_W.filter(n=>n<=Math.max(w*2,480)).map(n=>`${q(n)} ${n}w`).join(\", \"),sizes};}return{src:s};};// A Framer Font control stores a selector (GF;Family-700), not a CSS family — derive one, reject anything with ';'\nconst famOf=f=>{if(!f)return\"\";if(typeof f===\"string\")return f.includes(\";\")?\"\":f;if(f.fontFamily&&!String(f.fontFamily).includes(\";\"))return String(f.fontFamily);const sel=String(f.fontSelector||\"\");if(!sel)return\"\";const n=sel.split(\";\").pop()||\"\";return n.replace(/-(regular|italic|bold|\\d{3}(italic)?)$/i,\"\").replace(/-/g,\" \");};const wOf=(f,fb)=>{if(!f)return fb;if(f.fontWeight)return Number(f.fontWeight)||fb;const m=String(f.fontSelector||\"\").match(/-(\\d{3})/);return m?Number(m[1]):fb;};// famCss: Framer's Font `fontFamily` is ALREADY a stack — never wrap it in quotes (one fake family → fallback renders). A bare name gets quoted.\nconst famCss=f=>{const fa=famOf(f).replace(/\"/g,\"'\").trim();if(!fa)return\"\";return fa.includes(\",\")||fa.startsWith(\"'\")?fa:`'${fa}'`;};const stack=(custom,f,fb,tail)=>{const fam=custom?famCss(f):\"\";return`${fam?`${fam}, `:\"\"}${fb}, ${tail}`;};function useFonts(){useEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"mv-fonts\"))return;const l=document.createElement(\"link\");l.id=\"mv-fonts\";l.rel=\"stylesheet\";l.href=FONTS;document.head.appendChild(l);},[]);}// live = client after hydration and not on the canvas. SSR and the first client render share the same markup.\n// TRUE on the Framer canvas AND in its export / thumbnail / screenshot renderers (anything that is not the running preview): no scroll and no hydration there, so every reveal / pinned stage must draw its FINAL state or the editor shows empty blocks.\nfunction useStill(){const isStatic=useIsStaticRenderer();let t=null;try{t=RenderTarget.current();}catch(e){}return isStatic||t!==null&&t!==RenderTarget.preview;}function useLive(){const isStatic=useIsStaticRenderer();const[live,setLive]=useState(false);useEffect(()=>{if(!isStatic&&RenderTarget.current()!==RenderTarget.canvas&&typeof window!==\"undefined\")setLive(true);},[isStatic]);return live;}// Width/height of the root + viewport height. SSR starts from the breakpoint hint (Framer renders the Tablet/Phone copies with the same code and no width).\nfunction useSize(root,hint){const ov=String(hint||\"\").toLowerCase();const[w,setW]=useState(ov===\"phone\"?390:ov===\"tablet\"?810:1440),[vh,setVh]=useState(ov===\"phone\"?844:ov===\"tablet\"?1080:900);useLayoutEffect(()=>{const el=root.current;if(!el)return;const ro=new ResizeObserver(([e])=>{const x=Math.round((e.borderBoxSize&&e.borderBoxSize[0]?e.borderBoxSize[0].inlineSize:0)||el.offsetWidth);if(x>0)setW(x);});ro.observe(el);const vv=()=>setVh(window.innerHeight);vv();const read=()=>{const x=Math.round(el.offsetWidth);if(x>0)setW(x);};const t1=window.setTimeout(read,150),t2=window.setTimeout(read,700),t3=window.setTimeout(read,1600);window.addEventListener(\"resize\",vv);window.addEventListener(\"load\",read);return()=>{ro.disconnect();window.clearTimeout(t1);window.clearTimeout(t2);window.clearTimeout(t3);window.removeEventListener(\"resize\",vv);window.removeEventListener(\"load\",read);};},[]);return{w,vh};}const useReduced=()=>{const[rm,setRm]=useState(false);useLayoutEffect(()=>{setRm(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);},[]);return rm;};// One shared rAF for every section. Each frame runs ALL reads first (layout reads: getBoundingClientRect, offsetHeight), then ALL writes (CSS vars, transforms).\n// Interleaving read → write → read made the browser recalc the whole page's style once per section per frame (layout thrashing: 20+ recalcs a frame).\nfunction onTick(fn,read,pre){if(typeof window===\"undefined\")return()=>{};const w=window;if(!w.__nuTick){w.__nuTick={pre:new Set,subs:new Set,reads:new Set,raf:0};const loop=t=>{const T=w.__nuTick;T.pre.forEach(r=>r(t));T.reads.forEach(r=>r(t));T.subs.forEach(s=>s(t));T.raf=requestAnimationFrame(loop);};w.__nuTick.raf=requestAnimationFrame(loop);}w.__nuTick.subs.add(fn);if(read)w.__nuTick.reads.add(read);if(pre)w.__nuTick.pre.add(pre);return()=>{w.__nuTick.subs.delete(fn);if(read)w.__nuTick.reads.delete(read);if(pre)w.__nuTick.pre.delete(pre);};}const clamp01=v=>Math.min(1,Math.max(0,v));const easeIO=t=>{const x=clamp01(t);return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;};const DEF={bone:\"#F1ECE4\",ink:\"#141210\",brass:\"#4D9FFF\",pine:\"#231D19\",fog:\"#DDD4C8\",stone:\"#857B70\",cloud:\"#FFFFFF\",night:\"#171311\"};// collaborator cursor colours (constants, not tokens): the client and the developer on the canvas\nconst AMBER=\"#FFB224\",VIOLET=\"#A58BFF\";const colorsOf=p=>({bone:p.bone||DEF.bone,ink:p.ink||DEF.ink,brass:p.brass||DEF.brass,pine:p.pine||DEF.pine,fog:p.fog||DEF.fog,stone:p.stone||DEF.stone,cloud:p.cloud||DEF.cloud,night:p.night||DEF.night});// a Style-bound colour arrives as var(--token-…, #hex): let the browser resolve it to r,g,b for canvas drawing\nconst cssRgb=(el,col,fb)=>{if(!el||typeof window===\"undefined\")return fb;const p=document.createElement(\"i\");p.style.display=\"none\";p.style.color=col;el.appendChild(p);const v=getComputedStyle(p).color;p.remove();const m=v.match(/(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?),\\s*(\\d+(?:\\.\\d+)?)/);return m?`${Math.round(+m[1])},${Math.round(+m[2])},${Math.round(+m[3])}`:fb;};const cssVars=c=>({\"--mv-bone\":c.bone,\"--mv-ink\":c.ink,\"--mv-brass\":c.brass,\"--mv-pine\":c.pine,\"--mv-fog\":c.fog,\"--mv-stone\":c.stone,\"--mv-cloud\":c.cloud,\"--mv-night\":c.night});const COLOR_CONTROLS={bone:{type:ControlType.Color,title:\"Paper\",defaultValue:DEF.bone},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:DEF.ink},brass:{type:ControlType.Color,title:\"Accent\",defaultValue:DEF.brass},pine:{type:ControlType.Color,title:\"Deep\",defaultValue:DEF.pine},fog:{type:ControlType.Color,title:\"Line\",defaultValue:DEF.fog},stone:{type:ControlType.Color,title:\"Muted\",defaultValue:DEF.stone},cloud:{type:ControlType.Color,title:\"White\",defaultValue:DEF.cloud},night:{type:ControlType.Color,title:\"Dark\",defaultValue:DEF.night}};// ---- Fonts: Custom Fonts toggle → Font controls; off = Mona Sans (wide display) / Mona Sans / Chivo Mono ----\nconst FONT_CONTROLS={customFonts:{type:ControlType.Boolean,title:\"Custom Fonts\",description:\"Off = the site fonts (set once on the Header in the Site Layout). On = different fonts for this section only\",defaultValue:false},displayFont:{type:ControlType.Font,title:\"Display Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},bodyFont:{type:ControlType.Font,title:\"Body Font\",defaultFontType:\"sans-serif\",hidden:p=>!p.customFonts},monoFont:{type:ControlType.Font,title:\"Mono Font\",defaultFontType:\"monospace\",hidden:p=>!p.customFonts}};const NUMF=\"var(--mv-font-m, 'Chivo Mono'), ui-monospace, monospace\";// Site-wide fonts: the Header (Site Layout, every page) writes --mv-font-d/b/m (+ weights) on :root when its Custom Fonts is on. A section uses them unless its own Custom Fonts is on.\nconst siteFontCss=p=>{if(!p||!p.customFonts)return\"\";const v=[];const put=(k,f,w)=>{const fam=famCss(f);if(fam){v.push(`--mv-font-${k}:${fam}`);v.push(`--mv-font-${k}w:${wOf(f,w)}`);}};put(\"d\",p.displayFont,600);put(\"b\",p.bodyFont,400);put(\"m\",p.monoFont,400);put(\"a\",p.accentFont,400);return v.length?`:root{${v.join(\";\")}}`:\"\";};function fontsOf(p){const on=!!p.customFonts;const D={fontFamily:stack(on,p.displayFont,\"var(--mv-font-d, 'Mona Sans')\",\"Inter, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.displayFont,600):\"var(--mv-font-dw, 600)\",fontStyle:on&&p.displayFont&&p.displayFont.fontStyle?p.displayFont.fontStyle:\"normal\"};const B={fontFamily:stack(on,p.bodyFont,\"var(--mv-font-b, 'Mona Sans')\",\"Inter, system-ui, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.bodyFont,400):\"var(--mv-font-bw, 400)\"};const M={fontFamily:stack(on,p.monoFont,\"var(--mv-font-m, 'Chivo Mono')\",\"ui-monospace, SFMono-Regular, Menlo, monospace\"),fontWeight:on?wOf(p.monoFont,400):\"var(--mv-font-mw, 400)\"};return{D,B,M};}const BP_CONTROL={bpHint:{type:ControlType.Enum,title:\"Breakpoint Hint\",description:\"Set per breakpoint copy so the server render starts at the right width\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\",hidden:()=>true}};// ---- Button system: THE PING — a pill. On hover a pink notification dot pops on its right edge with a rolling \"+1\", a lime ring pings out of the dot, the accent fill sweeps in from the left and the label rolls up. Magnetic on desktop, squish on press. Solid = ink (fill lime), ghost = glass/hairline (fill paper), quiet = small nav pill. ----\nconst Glyph=({k})=>k===\"mail\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"5\",width:\"18\",height:\"14\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 7l8 6 8-6\"})]}):k===\"cal\"?/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\"})]}):k===\"play\"?/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M8 5.5v13l10.5-6.5z\"})}):/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":true,fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 17L17 7M9 7h8v8\"})});// In-page CTA jumps (\"#download\", \"/#download\"): scroll to the section when it is on this page, otherwise go to it on the home page.\nfunction jumpTo(e,href){try{const m=String(href||\"\").match(/^\\/?#([\\w-]+)$/);if(!m)return;const el=document.getElementById(m[1]);if(el){e.preventDefault();const W=window;const L=W.__ltLenis||W.__vcLenis||W.lenis;if(L&&L.scrollTo)L.scrollTo(el,{offset:-20});else el.scrollIntoView({behavior:\"smooth\",block:\"start\"});try{history.replaceState(null,\"\",\"#\"+m[1]);}catch(x){}}else if(href.startsWith(\"#\")){e.preventDefault();window.location.href=\"/\"+href;}}catch(x){}}const Btn=({href,label,kind=\"solid\",arrow=true,style,className,onClick,ariaLabel,cur,icon,sub})=>/*#__PURE__*/_jsxs(\"a\",{className:`mv-btn mv-${kind}${arrow?\"\":\" mv-noarr\"}${className?\" \"+className:\"\"}`,\"data-mag\":true,\"data-cur\":cur||\"go\",href:href,target:/^https?:\\/\\//.test(href||\"\")?\"_blank\":undefined,rel:/^https?:\\/\\//.test(href||\"\")?\"noopener\":undefined,onClick:onClick||(e=>jumpTo(e,href)),\"aria-label\":ariaLabel||(sub?`${sub} ${label}`:undefined),style:style,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"mv-face\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-fill\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-lbl\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"mv-roll\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-l1\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-l2\",\"aria-hidden\":true,children:label})]})}),arrow&&/*#__PURE__*/_jsxs(\"span\",{className:\"mv-arr\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"span\",{className:\"mv-a1\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})}),/*#__PURE__*/_jsx(\"span\",{className:\"mv-a2\",children:/*#__PURE__*/_jsx(Glyph,{k:icon})})]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"mv-selb\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]}),/*#__PURE__*/_jsx(\"b\",{className:\"mv-dim\",\"aria-hidden\":true})]});function useNearFocus(root,live){useEffect(()=>{if(!live||!root.current)return;const el=root.current;const f=e=>{const t=e.target;const sc=t.closest?.(\".mv-inring\");if(!sc)return;try{t.scrollIntoView({block:\"nearest\",inline:\"nearest\"});}catch(x){}};el.addEventListener(\"focusin\",f);return()=>el.removeEventListener(\"focusin\",f);},[live]);}function useMagnet(root,live){useEffect(()=>{if(!live||!root.current||!window.matchMedia(\"(hover:hover) and (pointer:fine)\").matches)return;const r=root.current;const btns=()=>Array.from(r.querySelectorAll(\"[data-mag]\"));const en=e=>{const b=e.target.closest?.(\"[data-mag]\");if(b){const d=b.querySelector(\".mv-dim\");if(d)d.textContent=`${Math.round(b.offsetWidth)} \\xd7 ${Math.round(b.offsetHeight)}`;}};const mv=e=>{for(const b of btns()){const rc=b.getBoundingClientRect();const dx=e.clientX-(rc.left+rc.width/2),dy=e.clientY-(rc.top+rc.height/2);const d=Math.hypot(dx,dy);const pull=d<150?(1-d/150)*8:0;b.style.setProperty(\"--mx\",`${dx/(d||1)*pull}px`);b.style.setProperty(\"--my\",`${dy/(d||1)*pull}px`);}};const lv=()=>{for(const b of btns()){b.style.setProperty(\"--mx\",\"0px\");b.style.setProperty(\"--my\",\"0px\");}};r.addEventListener(\"pointermove\",mv);r.addEventListener(\"pointerleave\",lv);r.addEventListener(\"pointerover\",en);r.addEventListener(\"focusin\",en);return()=>{r.removeEventListener(\"pointermove\",mv);r.removeEventListener(\"pointerleave\",lv);r.removeEventListener(\"pointerover\",en);r.removeEventListener(\"focusin\",en);};},[live]);}const CSS_BASE=`\n:where(.mv){position:relative;z-index:10} .mv,.mv *{box-sizing:border-box;min-width:0} .mv-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;padding:0!important;margin:-1px!important;border:0!important} :where(.mv) a{color:inherit} html,body{overflow-x:clip}\n:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"]),[role=\"button\"]):focus-visible{outline:3px solid var(--mv-ink,#0D0E10)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--mv-bone,#EEEEE8)!important} :where(.mv-dark) :where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"])):focus-visible{outline-color:var(--mv-cloud,#FFFFFF)!important;box-shadow:0 0 0 2px var(--mv-night,#08090A)!important} :where(.mv-inring) :where(a[href],button):focus-visible{outline-offset:-4px!important;box-shadow:none!important} :where(.mv) :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select):focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important;box-shadow:none!important} :where(.mv) textarea{resize:none} .mv-inring:focus-visible{outline-offset:-3px!important;box-shadow:none!important} html{scroll-padding-top:96px;scroll-padding-bottom:88px}\n/* THE SELECTION button: a 10px-radius block. Hover/focus = the design-tool selection snaps around it (cyan outline 5px outside, four white handles, live W \\xd7 H badge underneath), the fill sweeps in from the left and the label rolls up. Magnetic on desktop. */\n.mv-btn{position:relative;display:inline-flex;padding:0;min-height:54px;border-radius:10px;text-decoration:none;cursor:pointer;isolation:isolate;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.005em;border:0;color:var(--fg);transition:color .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-face{position:relative;z-index:1;display:inline-flex;align-items:center;gap:14px;width:100%;min-height:inherit;padding:0 8px 0 22px;border-radius:inherit;background:var(--face);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:inset 0 0 0 1px var(--rim);overflow:hidden;isolation:isolate}\n.mv-fill{position:absolute;z-index:0;inset:0;background:var(--fill);border-radius:inherit;clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-fill,.mv-btn:focus-visible .mv-fill{clip-path:inset(0 0 0 0)}\n.mv-lbl{position:relative;z-index:1;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.15}\n.mv-roll{display:block;height:1.2em;overflow:hidden;line-height:1.2} .mv-l1,.mv-l2{display:block;transition:translate .5s cubic-bezier(.7,0,.2,1)} .mv-btn:hover .mv-l1,.mv-btn:hover .mv-l2,.mv-btn:focus-visible .mv-l1,.mv-btn:focus-visible .mv-l2{translate:0 -100%}\n.mv-arr{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:6px;background:var(--chip);color:var(--chipfg);overflow:hidden;transition:background .4s,color .4s} .mv-arr>span{grid-area:1/1;display:grid;place-items:center;transition:transform .55s cubic-bezier(.7,0,.2,1)} .mv-arr svg{width:15px;height:15px} .mv-a2{transform:translate(-160%,160%)}\n.mv-btn:hover .mv-a1,.mv-btn:focus-visible .mv-a1{transform:translate(160%,-160%)} .mv-btn:hover .mv-a2,.mv-btn:focus-visible .mv-a2{transform:none} .mv-btn:hover .mv-arr,.mv-btn:focus-visible .mv-arr{background:var(--chip2);color:var(--chipfg2)}\n.mv-selb{position:absolute;z-index:2;inset:-5px;border-radius:13px;box-shadow:0 0 0 1.5px var(--mv-brass);pointer-events:none;opacity:0;scale:1.06;transition:opacity .25s,scale .45s cubic-bezier(.34,1.56,.64,1)}\n.mv-selb i{position:absolute;width:7px;height:7px;background:var(--mv-cloud);box-shadow:0 0 0 1.5px var(--mv-brass);translate:-50% -50%} .mv-selb i:nth-child(1){left:0;top:0} .mv-selb i:nth-child(2){left:100%;top:0} .mv-selb i:nth-child(3){left:0;top:100%} .mv-selb i:nth-child(4){left:100%;top:100%}\n.mv-btn:hover .mv-selb,.mv-btn:focus-visible .mv-selb{opacity:1;scale:1}\n.mv-dim{position:absolute;z-index:3;left:50%;top:calc(100% + 11px);translate:-50% -4px;padding:2px 6px;border-radius:4px;background:var(--mv-brass);color:var(--mv-ink);font:500 10px/1.4 var(--mv-font-m,'Chivo Mono'),ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s,translate .35s}\n.mv-btn:hover .mv-dim,.mv-btn:focus-visible .mv-dim{opacity:1;translate:-50% 0}\n.mv-btn:hover,.mv-btn:focus-visible{color:var(--fg2)}\n.mv-btn.mv-noarr .mv-face{padding-right:22px}\n.mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv-btn.mv-quiet{min-height:40px;font-size:13px;border-radius:8px;--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)} .mv-btn.mv-quiet .mv-arr{width:28px;height:28px;border-radius:5px} .mv-btn.mv-quiet .mv-face{padding-left:16px;gap:10px;padding-right:6px} .mv-btn.mv-quiet .mv-selb{inset:-4px;border-radius:11px}\n/* on paper grounds: solid = ink face (cyan fill), ghost = ink hairline */\n.mv:not(.mv-dark) .mv-btn.mv-solid,.mv-lt .mv-btn.mv-solid{--face:var(--mv-ink);--fill:var(--mv-brass);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:var(--mv-brass);--chipfg:var(--mv-ink);--chip2:var(--mv-ink);--chipfg2:var(--mv-brass)}\n.mv:not(.mv-dark) .mv-btn.mv-ghost,.mv-lt .mv-btn.mv-ghost{--face:transparent;--rim:color-mix(in srgb,var(--mv-ink) 28%,transparent);--fill:var(--mv-ink);--fg:var(--mv-ink);--fg2:var(--mv-cloud);--chip:color-mix(in srgb,var(--mv-ink) 7%,transparent);--chipfg:var(--mv-ink);--chip2:var(--mv-brass);--chipfg2:var(--mv-ink)}\n.mv:not(.mv-dark) .mv-selb i,.mv-lt .mv-selb i{background:var(--mv-cloud)}\n/* a DARK band nested inside a paper section (case next-project, service film band): dark button faces again. Higher specificity than the paper rule above, so the result no longer depends on which component's <style> tag comes last in the page */\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-solid{--face:var(--mv-brass);--rim:transparent;--fill:var(--mv-cloud);--fg:var(--mv-ink);--fg2:var(--mv-ink);--chip:var(--mv-ink);--chipfg:var(--mv-brass);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n.mv:not(.mv-dark) .mv-dark:not(.mv-lt) .mv-btn.mv-ghost{--face:color-mix(in srgb,var(--mv-cloud) 8%,transparent);--rim:color-mix(in srgb,var(--mv-cloud) 26%,transparent);--fill:var(--mv-cloud);--fg:var(--mv-cloud);--fg2:var(--mv-ink);--chip:color-mix(in srgb,var(--mv-cloud) 14%,transparent);--chipfg:var(--mv-cloud);--chip2:var(--mv-ink);--chipfg2:var(--mv-cloud)}\n@media (max-width:600px),(hover:none){.mv .mv-btn{white-space:normal;text-align:left;line-height:1.25;min-height:54px;max-width:100%} .mv .mv-btn.mv-quiet{min-height:40px;white-space:nowrap} .mv .mv-btn .mv-face{justify-content:space-between} .mv .mv-roll{height:auto} .mv .mv-l2{display:none} .mv .mv-btn .mv-l1{translate:none!important} .mv .mv-selb,.mv .mv-dim{display:none}}\n.mv-btn:hover{transform:translate(var(--mx,0px),var(--my,0px))} .mv-btn:active{transform:translate(var(--mx,0px),var(--my,0px)) scale(.97)!important;transition-duration:.12s}\n/* TEXT-SAFE accents: cyan is a SURFACE colour on paper (selections, fills, chips) — accent text on paper is ink; on graphite grounds the cyan itself reads */\n.mv{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink));--mv-acc-d:var(--mv-brass)}\n.mv-lt,.mv .mv-lt{--mv-acc:var(--mv-ink);--mv-acc-lg:var(--mv-brass);--mv-hl:var(--mv-brass);--mv-mut:color-mix(in srgb,var(--mv-stone) 45%,var(--mv-ink))}\n.mv-dark,.mv.mv-dark{--mv-acc:var(--mv-brass);--mv-acc-lg:var(--mv-brass);--mv-hl:transparent;--mv-mut:color-mix(in srgb,var(--mv-stone) 40%,var(--mv-cloud))}\n.mv-port{width:7px;height:7px;flex:none;border-radius:50%;background:#3DDC84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:mv-live 1.8s infinite} @keyframes mv-live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}100%{box-shadow:0 0 0 9px rgba(61,220,132,0)}}\n@media (prefers-reduced-motion:reduce){.mv *,.sth *{animation-duration:.01ms!important;transition-duration:.01ms!important}}`;const IcoArrow=({s=15})=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\"})});const Stars=({v=5,s=13})=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-stars\",\"aria-hidden\":true,children:[0,1,2,3,4].map(i=>/*#__PURE__*/_jsx(\"svg\",{width:s,height:s,viewBox:\"0 0 24 24\",style:{opacity:i<Math.round(v)?1:.28},children:/*#__PURE__*/_jsx(\"path\",{fill:\"currentColor\",d:\"M12 2.6l2.9 6.1 6.7.9-4.9 4.6 1.2 6.6L12 17.6 6.1 20.8l1.2-6.6L2.4 9.6l6.7-.9z\"})},i))});// ===== JOSH BARNES motion layer (THE FLOW) (composed by mk.py after _common) =====\n// One shared rAF (onTick). Sections write --sp (0 = top edge enters the viewport bottom → 1 = bottom edge leaves the top) and,\n// for tall pinned wrappers, --pp (0 = wrapper top hits the viewport top → 1 = wrapper bottom hits the viewport bottom). IO-gated.\nconst SCRUB_K=.18;// Decode a section's photos while it is still a screen and a half away, so the first frame it is on screen never waits for a decode.\nfunction usePre(el){try{const io=new IntersectionObserver(es=>{if(!es[0].isIntersecting)return;io.disconnect();el.querySelectorAll(\"img\").forEach(im=>{try{im.loading=\"eager\";im.decode().catch(()=>{});}catch(e){}});},{rootMargin:\"150% 0px 150% 0px\"});io.observe(el);}catch(e){}}function focusTo(el,frac){if(!el||typeof window===\"undefined\")return;if(window.innerWidth<810)return;const r=el.getBoundingClientRect();const vh=window.innerHeight;if(r.height<=vh*1.05)return;const y=r.top+window.scrollY+(r.height-vh)*Math.min(1,Math.max(0,frac));if(Math.abs(window.scrollY-y)<8)return;const w=window;if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}function useScrollVars(ref,live,rm,cb){useEffect(()=>{if(!live||rm||!ref.current)return;const el=ref.current;let vis=true,last=-9,cs=-1,cp=-1,settled=false;usePre(el);const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"25% 0px 25% 0px\"});io.observe(el);// eased scrub: the values glide toward the true scroll position (K per frame), so wheel steps never jump a pinned scene\nlet rt=0,rh=0,vh=1,fresh=false;const read=()=>{if(!vis&&settled){fresh=false;return;}const r=el.getBoundingClientRect();rt=r.top;rh=r.height;vh=window.innerHeight||1;fresh=true;};const off=onTick(()=>{if(!fresh)return;const sp=clamp01((vh-rt)/(vh+rh));const pp=rh>vh*1.05?clamp01(-rt/(rh-vh)):sp;if(cs<0){cs=sp;cp=pp;}else{cs+=(sp-cs)*SCRUB_K;cp+=(pp-cp)*SCRUB_K;if(Math.abs(sp-cs)<5e-4)cs=sp;if(Math.abs(pp-cp)<5e-4)cp=pp;}settled=cs===sp&&cp===pp;if(Math.abs(cs+cp-last)<3e-4)return;last=cs+cp;el.style.setProperty(\"--sp\",cs.toFixed(4));el.style.setProperty(\"--pp\",cp.toFixed(4));if(cb)cb(cs,cp);},read);return()=>{off();io.disconnect();};},[live,rm]);}// STAGE — false while the loader or the page-transition cover is on screen (html.mv-hold-*), so first-screen intros play AFTER the cover lifts, never under it. 9 s safety.\nfunction useStage(live){const[r,setR]=useState(false);useEffect(()=>{if(!live)return;const h=document.documentElement;const ok=()=>!/(^|\\s)mv-hold/.test(h.className);if(ok()){setR(true);return;}const mo=new MutationObserver(()=>{if(ok()){mo.disconnect();setR(true);}});mo.observe(h,{attributes:true,attributeFilter:[\"class\"]});const t=window.setTimeout(()=>{mo.disconnect();setR(true);},9e3);return()=>{mo.disconnect();window.clearTimeout(t);};},[live]);return r;}// true once the element has entered the viewport (stays true) — and only once the stage is clear. Reduced motion = true at once.\nfunction useOn(ref,live,rm,amount=.16){const[on,setOn]=useState(false);const still=useStill();const ready=useStage(live);useEffect(()=>{if(!live)return;if(rm){setOn(true);return;}if(!ready)return;const el=ref.current;if(!el)return;let off=()=>{};// keyboard focus: mark the section FIRST and flush styles, so the reveal that follows runs with instant transitions (a transition keeps the timing it started with)\nconst fin=e=>{try{if(e.target.matches(\":focus-visible\")){el.setAttribute(\"data-kb\",\"\");void el.offsetWidth;}}catch(x){}setOn(true);};const fout=e=>{if(!el.contains(e.relatedTarget))el.removeAttribute(\"data-kb\");};el.addEventListener(\"focusin\",fin);el.addEventListener(\"focusout\",fout);const io=new IntersectionObserver(es=>{for(const e of es)if(e.isIntersecting){io.disconnect();// IO ignores occlusion: under a curtain (Reveal) wait until about a quarter of it is uncovered\noff=onTick(()=>{const rev=el.closest(\".mv-rev.is-act\");const rv=rev?parseFloat(rev.style.getPropertyValue(\"--rv\")||\"0\"):1;if(rv>.24){setOn(true);off();}});}},{threshold:Math.min(amount,Math.max(.005,window.innerHeight*.3/Math.max(1,el.offsetHeight))),rootMargin:\"0px 0px -6% 0px\"});io.observe(el);return()=>{io.disconnect();off();el.removeEventListener(\"focusin\",fin);el.removeEventListener(\"focusout\",fout);};},[live,rm,ready]);return on||still;}// CURTAIN REVEAL — the section is pinned BEHIND the one above it and is uncovered as that one lifts away (the footer movement, for any section).\n// Wrapper = section + a spacer of T, pulled up by T (page length unchanged); the section is sticky for exactly T of scroll. T = min(section height, 100svh):\n// a tall section pins at the top, a short one sits on the bottom edge of the viewport. The section ABOVE needs a higher Layer (z-index).\nfunction Reveal({on,layer=9,style,children}){const live=useLive();const rm=useReduced();const wrap=useRef(null);const inner=useRef(null);const sp=useRef(null);const[h,setH]=useState(0);const act=on&&live&&!rm&&h>0&&typeof window!==\"undefined\"&&window.innerWidth>=810;useEffect(()=>{if(!on||!live||rm||!inner.current)return;const el=inner.current;const m=()=>setH(el.offsetHeight);m();const ro=new ResizeObserver(m);ro.observe(el);return()=>ro.disconnect();},[on,live,rm]);useEffect(()=>{if(!act||!wrap.current)return;const el=wrap.current;let vis=true,last=-1;const io=new IntersectionObserver(es=>{vis=es[0].isIntersecting;},{rootMargin:\"30% 0px 30% 0px\"});io.observe(el);let cur=-1,T=0,vh=1,top=0,fresh=false;const read=()=>{if(!vis){fresh=false;return;}T=sp.current?sp.current.offsetHeight:0;vh=window.innerHeight;top=el.getBoundingClientRect().top;fresh=true;};const off=onTick(()=>{if(!fresh||!T)return;const rv=clamp01((vh-T-top)/T);if(cur<0)cur=rv;else{cur+=(rv-cur)*SCRUB_K;if(Math.abs(rv-cur)<5e-4)cur=rv;}if(Math.abs(cur-last)<4e-4)return;last=cur;el.style.setProperty(\"--rv\",cur.toFixed(4));},read);return()=>{off();io.disconnect();};},[act]);return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,className:`mv-rev${act?\" is-act\":\"\"}`,style:{...style||{},[\"--h\"]:`${h}px`,[\"--layer\"]:layer},onFocusCapture:e=>{if(!act||!wrap.current)return;const t=e.target;const w=window;const r=wrap.current.getBoundingClientRect();const T=sp.current?sp.current.offsetHeight:0;const y=Math.max(0,Math.min(document.documentElement.scrollHeight-window.innerHeight,r.top+window.scrollY-window.innerHeight+2*T));if(Math.abs(window.scrollY-y)>4){if(w.__ltLenis)w.__ltLenis.scrollTo(y,{immediate:true,force:true});else window.scrollTo(0,y);}requestAnimationFrame(()=>{try{t.scrollIntoView({block:\"nearest\"});}catch(x){}});},children:[/*#__PURE__*/_jsx(\"div\",{ref:inner,className:\"mv-rev-in\",children:children}),/*#__PURE__*/_jsx(\"div\",{ref:sp,className:\"mv-rev-sp\",\"aria-hidden\":true})]});}const REVEAL_CONTROLS={reveal:{type:ControlType.Boolean,title:\"Reveal\",description:\"Curtain: this section waits behind the one above and is uncovered as that one lifts away\",enabledTitle:\"Curtain\",disabledTitle:\"Off\",defaultValue:true},layer:{type:ControlType.Number,title:\"Layer\",description:\"Stacking order. Must be LOWER than the section above (sections default to 10)\",min:0,max:20,step:1,displayStepper:true,defaultValue:9,hidden:p=>p.reveal===false}};const splitWords=s=>String(s||\"\").replace(/\\*([^*]+)\\*/g,(_m,g)=>g.trim().split(/\\s+/).map(w=>{const m=w.match(/^(.*?)([.,!?;:’']*)$/);return m&&m[1]?`*${m[1]}*${m[2]}`:w;}).join(\" \")).split(/\\s+/).filter(Boolean).map(t=>{const m=t.match(/^\\*(.+?)\\*([.,!?;:’']*)$/);return m?{t:m[1],tail:m[2],acc:true}:{t:t.replace(/\\*/g,\"\"),tail:\"\",acc:false};});const plainOf=s=>String(s||\"\").replace(/\\*/g,\"\").replace(/\\s*\\|\\s*/g,\" \").replace(/\\s+/g,\" \").trim();// Heading whose words rise out of masks. \"|\" forces a line break, *word* = the accent: light-weight coral (deep coral mix on paper).\nconst Head=({text,on,D,tag=\"h2\",size=\"clamp(40px,4.8vw,72px)\",lh=.92,delay=0,step=55,style,className})=>{const Tag=tag;let k=0;return /*#__PURE__*/_jsx(Tag,{className:`mv-hd${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,\"aria-label\":plainOf(text),style:{...D,fontSize:size,lineHeight:lh,...style||{}},children:String(text).split(\"|\").map((line,li)=>/*#__PURE__*/_jsx(\"span\",{className:\"mv-hd-l\",\"aria-hidden\":true,children:splitWords(line).map((w,i)=>{const d=delay+k++*step;return /*#__PURE__*/_jsxs(\"span\",{className:`mv-hd-w${w.acc?\" is-accw\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:`mv-hd-i${w.acc?\" is-acc\":\"\"}`,style:{transitionDelay:`${d}ms`,[\"--pd\"]:`${d+500}ms`},children:w.acc?/*#__PURE__*/_jsxs(\"span\",{className:\"mv-it\",children:[w.t,w.tail,/*#__PURE__*/_jsx(\"svg\",{className:\"mv-spark\",viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 1.5C12.9 8 16 11.1 22.5 12 16 12.9 12.9 16 12 22.5 11.1 16 8 12.9 1.5 12 8 11.1 11.1 8 12 1.5Z\"})})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[w.t,w.tail]})}),\" \"]},i);})},li))});};const Eyebrow=({text,on,M,delay=0,style})=>text?/*#__PURE__*/_jsxs(\"p\",{className:`mv-eb${on?\" is-on\":\"\"}`,style:{...M,transitionDelay:`${delay}ms`,...style||{}},children:[/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":true}),text]}):null;// one-shot rise for copy / rows\nconst rise=(on,d=0,y=22)=>({opacity:on?1:0,translate:on?\"0 0\":`0 ${y}px`,transition:`opacity .9s ease ${d}ms, translate 1s cubic-bezier(.2,.8,.2,1) ${d}ms`});// Image that UNMASKS through a shape as it enters, settles from a zoom, then drifts with scroll (needs --sp on an ancestor).\nconst SHAPES={up:[\"inset(100% 0 0 0)\",\"inset(0 0 0 0)\"],down:[\"inset(0 0 100% 0)\",\"inset(0 0 0 0)\"],left:[\"inset(0 100% 0 0)\",\"inset(0 0 0 0)\"],right:[\"inset(0 0 0 100%)\",\"inset(0 0 0 0)\"],diag:[\"polygon(0 100%,0 100%,0 100%,0 100%)\",\"polygon(0 -160%,260% 100%,0 100%,0 100%)\"],iris:[\"circle(0% at 50% 55%)\",\"circle(85% at 50% 55%)\"],arch:[\"inset(100% 0 0 0 round 999px 999px 0 0)\",\"inset(0 0 0 0 round 999px 999px 0 0)\"],slit:[\"inset(0 50% 0 50%)\",\"inset(0 0 0 0)\"]};const Um=({src,alt=\"\",on,shape=\"up\",ratio=\"4/5\",delay=0,par=1,focus=\"50% 40%\",radius=4,sizes=\"(max-width: 809px) 100vw, 50vw\",style,className,eager=false})=>{const sh=SHAPES[shape]||SHAPES.up;const im=RS(src,sizes);return /*#__PURE__*/_jsx(\"div\",{className:`mv-um${on?\" is-on\":\"\"}${className?\" \"+className:\"\"}`,style:{aspectRatio:ratio,borderRadius:radius,clipPath:on?sh[1]:sh[0],WebkitClipPath:on?sh[1]:sh[0],transitionDelay:`${delay}ms`,[\"--par\"]:par,...style||{}},children:/*#__PURE__*/_jsx(\"img\",{src:im.src,srcSet:im.srcSet,sizes:im.sizes,alt:alt,loading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:false,style:{objectPosition:focus,transitionDelay:`${delay}ms`}})});};const CSS_MOTION=`\n[data-kb] *,[data-kb] *::before,[data-kb] *::after{transition:none!important}\n.mv-sec{position:relative;z-index:10;display:block;width:100%;--sp:.5;--pp:0}\n.mv-rev{position:relative;width:100%;--rv:1} .mv-rev-in{position:relative} .mv-rev-sp{height:0}\n.mv-rev.is-act{--rv:0;--t:min(var(--h),100vh);--t:min(var(--h),100svh);z-index:var(--layer,9);margin-top:calc(var(--t)*-1)}\n.mv-rev.is-act>.mv-rev-in{position:sticky;top:calc(100vh - var(--t));top:calc(100svh - var(--t))} .mv-rev.is-act>.mv-rev-sp{height:var(--t)}\n/* the lifting edge throws a shadow on the section beneath, and that section comes out of the dark as it is uncovered */\n.mv-rev.is-act>.mv-rev-in::before{content:\"\";position:absolute;z-index:40;left:0;right:0;top:0;height:120px;translate:0 calc((1 - var(--rv))*var(--t));background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,0));opacity:min(1,calc(var(--rv)*(1 - var(--rv))*9));pointer-events:none}\n.mv-rev.is-act>.mv-rev-in::after{content:\"\";position:absolute;z-index:39;left:0;right:0;top:0;height:var(--t);background:#000;opacity:calc((1 - var(--rv))*.16);pointer-events:none}\n.mv-wrap{--pad:56px;width:100%;max-width:calc(${MAXW} + var(--pad)*2);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}\n.mv-eb{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;margin:0;padding:7px 13px 7px 11px;border-radius:6px;background:color-mix(in srgb,var(--mv-ink) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-ink) 12%,transparent);color:var(--mv-ink);font-size:11.5px;font-weight:500;letter-spacing:.06em;opacity:0;translate:0 10px;transition:opacity .8s ease,translate .9s cubic-bezier(.2,.8,.2,1)} .mv-eb.is-on{opacity:1;translate:0 0}\n.mv-eb i{display:block;flex:none;order:-1;width:7px;height:7px;border-radius:50%;background:var(--mv-brass)}\n.mv-dark .mv-eb{color:var(--mv-cloud);background:color-mix(in srgb,var(--mv-cloud) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mv-cloud) 18%,transparent)}\n.mv-hd{margin:0;letter-spacing:-.042em;text-wrap:balance;font-weight:var(--mv-font-dw,600)} .mv-hd-l{display:block}\n.mv-hd-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .12em;margin:0 -.04em -.12em;white-space:pre}\n.mv-hd-i{position:relative;display:inline-block;translate:0 108%;transition:translate 1.05s cubic-bezier(.2,.85,.15,1)}\n.mv-hd.is-on .mv-hd-i{translate:0 0}\n.mv-hd-w.is-accw{overflow:hidden}\n.mv-it{position:relative;color:var(--mv-acc);font-weight:inherit} .mv-dark .mv-it{color:var(--mv-brass)}\n.mv-spark{display:none}\n\n.mv-um{position:relative;overflow:hidden;transition:clip-path 1.35s cubic-bezier(.7,0,.2,1);background:color-mix(in srgb,var(--mv-stone) 22%,transparent)}\n.mv-um img{position:absolute;left:0;top:-9%;width:100%;height:118%;display:block;object-fit:cover;scale:1.28;translate:0 calc((var(--sp,.5) - .5)*var(--par,1)*-7%);transition:scale 1.9s cubic-bezier(.16,.84,.24,1);user-select:none}\n.mv-um.is-on img{scale:1}\n/* diagonal cuts: the section hangs over its neighbour and is cut on a slope (clip-path, so the neighbour shows through) */\n.mv-cut-t{margin-top:calc(var(--cut,7vw)*-1);clip-path:polygon(0 var(--cut,7vw),100% 0,100% 100%,0 100%);padding-top:var(--cut,7vw)}\n.mv-cut-b{margin-bottom:calc(var(--cut,7vw)*-1);padding-bottom:var(--cut,7vw)}\n.mv-cut-t.mv-cut-b{clip-path:polygon(0 var(--cut,7vw),100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n.mv-cut-b:not(.mv-cut-t){clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n@media (max-width:1099px){.mv-wrap{--pad:32px}}\n@media (max-width:699px){.mv-wrap{--pad:20px}}\n@media (prefers-reduced-motion:reduce){.mv-hd-i{translate:0 0!important} .mv-spark{scale:1!important;rotate:0deg!important;animation:none!important} .mv-um{clip-path:none!important} .mv-um img{scale:1!important;translate:0 0!important}}\n`;const SEED={site:[{\"slug\":\"site\",\"f1\":\"Josh Barnes\",\"f2\":\"Product designer & developer\",\"f3\":\"I design digital products and build them in code, from the first sketch to the shipped release.\",\"f4\":\"hello@maravoss.design\",\"f5\":\"Berlin\",\"f6\":\"Europe/Berlin\",\"f7\":\"Available for work \\xb7 Nov 2026\",\"f8\":\"/resume\",\"f9\":\"Dribbble:https://dribbble.com,GitHub:https://github.com,LinkedIn:https://linkedin.com,Read.cv:https://read.cv\",\"f10\":\"9\",\"f11\":\"/contact\",\"n1\":\"1\"}]};const SW_BUILD=\"MvSmooth@cms1\";// An override control wins only when it holds real text; empty (or a single space) inherits from the CMS.\nconst pick=(o,fb)=>o!==undefined&&o!==null&&String(o).trim()?String(o).trim():fb;const imgOf=(r,k=\"img\")=>String(r&&r[k]||\"\").split(\"?\")[0];// A cleared CMS image draws this quiet placeholder — never a stock photo, and list positions stay aligned with their rows.\nconst EMPTY_IMG=\"data:image/svg+xml;utf8,\"+encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='xMidYMid slice'><rect width='400' height='500' fill='#D3D8E2'/><rect x='120' y='170' width='160' height='160' rx='8' fill='none' stroke='#AEB6C6' stroke-width='1.5'/><rect x='100' y='150' width='200' height='200' rx='10' fill='none' stroke='#C3CAD8' stroke-width='1' stroke-dasharray='2 6'/></svg>\");const imgOr=(r,k=\"img\")=>imgOf(r,k)||EMPTY_IMG;const cmsNum=(r,k,fb=0)=>{const v=parseFloat(String((r&&r[k])??\"\"));return isFinite(v)?v:fb;};const useIso=typeof window===\"undefined\"?useEffect:useLayoutEffect;function readCMS(kind){if(typeof document===\"undefined\")return null;if(!document.querySelector('[data-mv-row=\"bridge\"]'))return null;const seen=new Set;const out=[];document.querySelectorAll(`[data-mv-row=\"${kind}\"]`).forEach(el=>{const o={};for(const a of Array.from(el.attributes))if(a.name.startsWith(\"data-\"))o[a.name.slice(5)]=a.value;const key=o.slug||JSON.stringify(o);if(seen.has(key))return;seen.add(key);out.push(o);});return out.sort((a,b)=>(parseFloat(a.n1)||0)-(parseFloat(b.n1)||0));}function useCMS(kind,fallback){const[rows,setRows]=useState(fallback);const sig=useRef(\"\");useIso(()=>{let n=0,t=0,ok=0;try{const w=window;if(!w.__ltCms||typeof w.__ltCms!==\"object\")w.__ltCms={};w.__ltCms[SW_BUILD]=1;}catch(e){}const pull=()=>{const r=readCMS(kind);if(!r)return false;const s=JSON.stringify(r);if(s!==sig.current){sig.current=s;setRows(r);}return true;};const mo=new MutationObserver(()=>{if(pull()){ok++;if(ok>2)mo.disconnect();}});mo.observe(document.body,{childList:true,subtree:true});if(pull())ok++;const poll=()=>{if(n++<30){pull();t=window.setTimeout(poll,150);}};t=window.setTimeout(poll,150);return()=>{mo.disconnect();window.clearTimeout(t);};},[kind]);return rows;}// The one-row Site collection holds every site-wide fact (name, role, contact, availability, resume link). A section's \"… Override\" control only replaces it on that one section.\nfunction useSite(){const r=useCMS(\"site\",SEED.site||[]);const s=r[0]||(SEED.site||[])[0]||{};const g=k=>String(s[k]??\"\").trim();return{name:g(\"f1\")||\"Josh Barnes\",role:g(\"f2\"),tagline:g(\"f3\"),email:g(\"f4\"),city:g(\"f5\"),tz:g(\"f6\")||\"Europe/Berlin\",avail:g(\"f7\"),resume:g(\"f8\")||\"/resume\",socials:g(\"f9\"),years:g(\"f10\"),book:g(\"f11\")||\"/contact\"};}const linkList=s=>String(s||\"\").split(\",\").map(x=>x.trim()).filter(Boolean).map(x=>{const i=x.indexOf(\":\");return{l:i<0?x:x.slice(0,i).trim(),h:i<0?\"/\":x.slice(i+1).trim()};});const listOf=s=>String(s||\"\").split(\";\").map(x=>x.trim()).filter(Boolean);// The row a CMS detail page is about: the bound Slug control wins (server render included), else the last URL segment, else the first row.\nfunction useRow(kind,fallback,slug){const rows=useCMS(kind,fallback);const[path,setPath]=useState(\"\");useEffect(()=>{try{setPath(decodeURIComponent(window.location.pathname.split(\"/\").filter(Boolean).pop()||\"\"));}catch(e){}},[]);const want=String(slug||\"\").trim()||path;const row=rows.find(r=>r.slug===want)||rows[0]||{};return{row,rows};}const crumbs=s=>linkList(s);// Open now? Open Hours = \"1-6 07:00-19:00\" (weekday numbers, Mon = 1 … Sun = 7) evaluated in the Site Time Zone.\nfunction openState(spec,tz){try{const m=String(spec||\"\").match(/(\\d)\\s*-\\s*(\\d)\\s+(\\d{1,2}):(\\d{2})\\s*-\\s*(\\d{1,2}):(\\d{2})/);if(!m)return null;const parts=new Intl.DateTimeFormat(\"en-US\",{timeZone:tz||\"UTC\",weekday:\"short\",hour:\"2-digit\",minute:\"2-digit\",hour12:false}).formatToParts(new Date);const g=t=>(parts.find(p=>p.type===t)||{value:\"\"}).value;const wd=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"].indexOf(g(\"weekday\"))+1;const mins=Number(g(\"hour\"))%24*60+Number(g(\"minute\"));const d1=Number(m[1]),d2=Number(m[2]),a=Number(m[3])*60+Number(m[4]),b=Number(m[5])*60+Number(m[6]);const open=wd>=d1&&wd<=d2&&mins>=a&&mins<b;return{open,label:open?`Open \\xb7 till ${m[5].padStart(2,\"0\")}:${m[6]}`:`Closed \\xb7 opens ${m[3].padStart(2,\"0\")}:${m[4]}`};}catch(e){return null;}}// ===== MvSmooth =====\n// PAGE-LEVEL — Smooth scroll. Drop once on the page (or in the site layout): inertia scrolling with Lenis on the\n// published site only; off on touch devices and with reduced motion; in-page #anchors scroll smoothly. Renders nothing.\n/**\n * REACHWISE — smooth scroll. Lenis inertia scrolling on the published site (off on touch + reduced motion), smooth in-page anchors. Drop once; renders nothing.\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 1\n */export default function MvSmooth(props){const{smoothness=.1,wheelSpeed=1,anchorOffset=72}=props;const offset=anchorOffset;const live=useLive();useEffect(()=>{if(!live)return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;if(!window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches)return;const w=window;if(w.__ltLenis||w.__vcLenis)return;let lenis=null,off=()=>{},dead=false;const onHash=e=>{const a=e.target?.closest?.(\"a[href*='#']\");if(!a||!lenis)return;const href=a.getAttribute(\"href\")||\"\";const i=href.indexOf(\"#\");const path=href.slice(0,i);if(path&&path!==location.pathname&&path!==\"\")return;const id=href.slice(i+1);const el=id&&document.getElementById(id);if(!el)return;e.preventDefault();lenis.scrollTo(el,{offset:-offset});history.pushState(null,\"\",\"#\"+id);};// @ts-ignore — loaded at runtime on the published site\nimport(/* webpackIgnore: true */\"https://esm.sh/lenis@1.1.20\").then(mod=>{if(dead)return;const L=mod.default||mod.Lenis||mod;lenis=new L({lerp:smoothness,wheelMultiplier:wheelSpeed,smoothWheel:true});w.__ltLenis=lenis;off=onTick(()=>{},undefined,t=>lenis.raf(t));document.addEventListener(\"click\",onHash);document.documentElement.classList.add(\"lenis\");}).catch(()=>{});return()=>{dead=true;off();document.removeEventListener(\"click\",onHash);if(lenis)lenis.destroy();w.__ltLenis=null;};},[live,smoothness,wheelSpeed,offset]);return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{...props.style,display:\"block\",width:\"100%\",height:0,opacity:RenderTarget.current()===RenderTarget.canvas?.4:0}});}addPropertyControls(MvSmooth,{smoothness:{type:ControlType.Number,title:\"Smoothness\",description:\"Lower = more glide\",defaultValue:.1,min:.03,max:.2,step:.01},wheelSpeed:{type:ControlType.Number,title:\"Wheel Speed\",defaultValue:1,min:.5,max:2,step:.1},anchorOffset:{type:ControlType.Number,title:\"Anchor Offset\",unit:\"px\",defaultValue:72,min:0,max:200,step:4}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MvSmooth\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"40\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MvSmooth.map","function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t;}var e,r,i=Object.create,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,l=(t,e)=>function(){try{return e||(0,t[o(t)[0]])((e={exports:{}}).exports,e),e.exports;}catch(t){throw e=0,t;}},h=(t,e,r,i)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let a of o(e))u.call(t,a)||a===r||n(t,a,{get:()=>e[a],enumerable:!(i=s(e,a))||i.enumerable});return t;},c=(t,e,r)=>(r=null!=t?i(a(t)):{},h(// If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    !e&&t&&t.__esModule?r:n(r,\"default\",{value:t,enumerable:!0}),t)),f=l({\"../../../node_modules/dataloader/index.js\"(t,e){var r,i=/* @__PURE__ */function(){function t(t,e){if(\"function\"!=typeof t)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: \"+t+\".\");this._batchLoadFn=t,this._maxBatchSize=function(t){if(!(!t||!1!==t.batch))return 1;var e=t&&t.maxBatchSize;if(void 0===e)return 1/0;if(\"number\"!=typeof e||e<1)throw TypeError(\"maxBatchSize must be a positive number: \"+e);return e;}(e),this._batchScheduleFn=function(t){var e=t&&t.batchScheduleFn;if(void 0===e)return n;if(\"function\"!=typeof e)throw TypeError(\"batchScheduleFn must be a function: \"+e);return e;}(e),this._cacheKeyFn=function(t){var e=t&&t.cacheKeyFn;if(void 0===e)return function(t){return t;};if(\"function\"!=typeof e)throw TypeError(\"cacheKeyFn must be a function: \"+e);return e;}(e),this._cacheMap=function(t){if(!(!t||!1!==t.cache))return null;var e=t&&t.cacheMap;if(void 0===e)return /* @__PURE__ */new Map;if(null!==e){var r=[\"get\",\"set\",\"delete\",\"clear\"].filter(function(t){return e&&\"function\"!=typeof e[t];});if(0!==r.length)throw TypeError(\"Custom cacheMap missing methods: \"+r.join(\", \"));}return e;}(e),this._batch=null,this.name=e&&e.name?e.name:null;}var e=t.prototype;return e.load=function(t){if(null==t)throw TypeError(\"The loader.load() function must be called with a value, but got: \"+String(t)+\".\");var e=function(t){var e=t._batch;if(null!==e&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;var r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(function(){(function(t,e){var r;if(e.hasDispatched=!0,0===e.keys.length){o(e);return;}try{r=t._batchLoadFn(e.keys);}catch(r){return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: \"+String(r)+\".\"));}if(!r||\"function\"!=typeof r.then)return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: \"+String(r)+\".\"));r.then(function(t){if(!a(t))throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: \"+String(t)+\".\");if(t.length!==e.keys.length)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\\n\\nKeys:\\n\"+String(e.keys)+\"\\n\\nValues:\\n\"+String(t));o(e);for(var r=0;r<e.callbacks.length;r++){var i=t[r];i instanceof Error?e.callbacks[r].reject(i):e.callbacks[r].resolve(i);}}).catch(function(r){s(t,e,r);});})(t,r);}),r;}(this),r=this._cacheMap,i=this._cacheKeyFn(t);if(r){var n=r.get(i);if(n){var u=e.cacheHits||(e.cacheHits=[]);return new Promise(function(t){u.push(function(){t(n);});});}}e.keys.push(t);var l=new Promise(function(t,r){e.callbacks.push({resolve:t,reject:r});});return r&&r.set(i,l),l;},e.loadMany=function(t){if(!a(t))throw TypeError(\"The loader.loadMany() function must be called with Array<key> but got: \"+t+\".\");for(var e=[],r=0;r<t.length;r++)e.push(this.load(t[r]).catch(function(t){return t;}));return Promise.all(e);},e.clear=function(t){var e=this._cacheMap;if(e){var r=this._cacheKeyFn(t);e.delete(r);}return this;},e.clearAll=function(){var t=this._cacheMap;return t&&t.clear(),this;},e.prime=function(t,e){var r=this._cacheMap;if(r){var i,n=this._cacheKeyFn(t);void 0===r.get(n)&&(e instanceof Error?(i=Promise.reject(e)).catch(function(){}):i=Promise.resolve(e),r.set(n,i));}return this;},t;}(),n=\"object\"==typeof process&&\"function\"==typeof process.nextTick?function(t){r||(r=Promise.resolve()),r.then(function(){process.nextTick(t);});}:\"function\"==typeof setImmediate?function(t){setImmediate(t);}:function(t){setTimeout(t);};function s(t,e,r){o(e);for(var i=0;i<e.keys.length;i++)t.clear(e.keys[i]),e.callbacks[i].reject(r);}function o(t){if(t.cacheHits)for(var e=0;e<t.cacheHits.length;e++)t.cacheHits[e]();}function a(t){return\"object\"==typeof t&&null!==t&&\"number\"==typeof t.length&&(0===t.length||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1));}e.exports=i;}}),d=c(f(),1);import{yieldToMain as g}from\"framer\";// ../../shared/src/yield.ts\nfunction v(t){return\"function\"==typeof t?t():t;}var y={background:0,\"user-visible\":1,\"user-blocking\":2};function p(t,e){return y[t]>y[e];}// ../../library/src/utils/schedulerPriority.ts\nfunction m(t){let e;for(let r of t){let t=v(r);if((void 0===e||p(t,e))&&(e=t),\"user-blocking\"===e)break;}return e;}// src/code-generation/components/cms/bundled/BufferReader.ts\nvar w={Uint8:1,Uint16:2,Uint32:4,BigUint64:8,Int8:1,Int16:2,Int32:4,BigInt64:8,Float32:4,Float64:8},b=(e=class e{getOffset(){return this.offset;}ensureLength(t){let e=this.bytes.length;if(!(this.offset+t<=e))throw Error(\"Reading out of bounds\");}readUint8(){let t=w.Uint8;this.ensureLength(t);let e=this.view.getUint8(this.offset);return this.offset+=t,e;}readUint16(){let t=w.Uint16;this.ensureLength(t);let e=this.view.getUint16(this.offset);return this.offset+=t,e;}readUint32(){let t=w.Uint32;this.ensureLength(t);let e=this.view.getUint32(this.offset);return this.offset+=t,e;}readUint64(){let t=this.readBigUint64();return Number(t);}readBigUint64(){let t=w.BigUint64;this.ensureLength(t);let e=this.view.getBigUint64(this.offset);return this.offset+=t,e;}readInt8(){let t=w.Int8;this.ensureLength(t);let e=this.view.getInt8(this.offset);return this.offset+=t,e;}readInt16(){let t=w.Int16;this.ensureLength(t);let e=this.view.getInt16(this.offset);return this.offset+=t,e;}readInt32(){let t=w.Int32;this.ensureLength(t);let e=this.view.getInt32(this.offset);return this.offset+=t,e;}readInt64(){let t=this.readBigInt64();return Number(t);}readBigInt64(){let t=w.BigInt64;this.ensureLength(t);let e=this.view.getBigInt64(this.offset);return this.offset+=t,e;}readFloat32(){let t=w.Float32;this.ensureLength(t);let e=this.view.getFloat32(this.offset);return this.offset+=t,e;}readFloat64(){let t=w.Float64;this.ensureLength(t);let e=this.view.getFloat64(this.offset);return this.offset+=t,e;}readBytes(t){let e=this.offset,r=e+t,i=this.bytes.subarray(e,r);return this.offset=r,i;}readString(){let t=this.readUint32(),r=this.readBytes(t);return e.textDecoder.decode(r);}readJson(){let t=this.readString();return JSON.parse(t);}constructor(e){t(this,\"bytes\",void 0),t(this,\"offset\",0),t(this,\"view\",void 0),this.bytes=e,this.view=I(this.bytes);}},// TextDecoder has no per-decode state unless streaming is enabled. Reusing one class-owned decoder\n// avoids constructing one for every CMS item, where each item gets its own BufferReader.\nt(e,\"textDecoder\",new TextDecoder),e);function I(t){return new DataView(t.buffer,t.byteOffset,t.byteLength);}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nimport{ControlType as S,yieldToMain as U}from\"framer\";// ../../library/src/utils/utils.ts\nvar k=\"undefined\"!=typeof window,L=k&&\"function\"==typeof window.requestIdleCallback;// src/code-generation/components/cms/bundled/assert.ts\nfunction B(t,...e){if(!t)throw Error(\"Assertion Error\"+(e.length>0?\": \"+e.join(\" \"):\"\"));}function E(t){throw Error(`Unexpected value: ${t}`);}// src/code-generation/components/cms/bundled/BufferWriter.ts\nvar M=1024,P=1.5,T=t=>2**t-1,x=t=>-(2**(t-1)),F=t=>2**(t-1)-1,N={Uint8:0,Uint16:0,Uint32:0,Uint64:0,BigUint64:0,Int8:x(8),Int16:x(16),Int32:x(32),Int64:Number.MIN_SAFE_INTEGER,BigInt64:-(BigInt(2)**BigInt(63))},A={Uint8:T(8),Uint16:T(16),Uint32:T(32),Uint64:Number.MAX_SAFE_INTEGER,BigUint64:BigInt(2)**BigInt(64)-BigInt(1),Int8:F(8),Int16:F(16),Int32:F(32),Int64:Number.MAX_SAFE_INTEGER,BigInt64:BigInt(2)**BigInt(63)-BigInt(1)};function q(t,e,r,i){B(t>=e,t,\"outside lower bound for\",i),B(t<=r,t,\"outside upper bound for\",i);}var O=class{getOffset(){return this.offset;}slice(t=0,e=this.offset){return this.bytes.slice(t,e);}subarray(t=0,e=this.offset){return this.bytes.subarray(t,e);}ensureLength(t){let e=this.bytes.length;if(this.offset+t<=e)return;let r=new Uint8Array(Math.ceil(e*P)+t);r.set(this.bytes),this.bytes=r,this.view=I(r);}writeUint8(t){q(t,N.Uint8,A.Uint8,\"Uint8\");let e=w.Uint8;this.ensureLength(e),this.view.setUint8(this.offset,t),this.offset+=e;}writeUint16(t){q(t,N.Uint16,A.Uint16,\"Uint16\");let e=w.Uint16;this.ensureLength(e),this.view.setUint16(this.offset,t),this.offset+=e;}writeUint32(t){q(t,N.Uint32,A.Uint32,\"Uint32\");let e=w.Uint32;this.ensureLength(e),this.view.setUint32(this.offset,t),this.offset+=e;}writeUint64(t){q(t,N.Uint64,A.Uint64,\"Uint64\");let e=BigInt(t);this.writeBigUint64(e);}writeBigUint64(t){q(t,N.BigUint64,A.BigUint64,\"BigUint64\");let e=w.BigUint64;this.ensureLength(e),this.view.setBigUint64(this.offset,t),this.offset+=e;}writeInt8(t){q(t,N.Int8,A.Int8,\"Int8\");let e=w.Int8;this.ensureLength(e),this.view.setInt8(this.offset,t),this.offset+=e;}writeInt16(t){q(t,N.Int16,A.Int16,\"Int16\");let e=w.Int16;this.ensureLength(e),this.view.setInt16(this.offset,t),this.offset+=e;}writeInt32(t){q(t,N.Int32,A.Int32,\"Int32\");let e=w.Int32;this.ensureLength(e),this.view.setInt32(this.offset,t),this.offset+=e;}writeInt64(t){q(t,N.Int64,A.Int64,\"Int64\");let e=BigInt(t);this.writeBigInt64(e);}writeBigInt64(t){q(t,N.BigInt64,A.BigInt64,\"BigInt64\");let e=w.BigInt64;this.ensureLength(e),this.view.setBigInt64(this.offset,t),this.offset+=e;}writeFloat32(t){let e=w.Float32;this.ensureLength(e),this.view.setFloat32(this.offset,t),this.offset+=e;}writeFloat64(t){let e=w.Float64;this.ensureLength(e),this.view.setFloat64(this.offset,t),this.offset+=e;}writeBytes(t){let e=t.length;this.ensureLength(e),this.bytes.set(t,this.offset),this.offset+=e;}encodeString(t){let e=this.encodedStrings.get(t);if(e)return e;let r=this.encoder.encode(t);return this.encodedStrings.set(t,r),r;}writeString(t){let e=this.encodeString(t),r=e.length;this.writeUint32(r),this.writeBytes(e);}writeJson(t){let e=JSON.stringify(t);this.writeString(e);}constructor(){t(this,\"offset\",0),t(this,\"bytes\",new Uint8Array(M)),t(this,\"view\",I(this.bytes)),t(this,\"encoder\",new TextEncoder),t(this,\"encodedStrings\",/* @__PURE__ */new Map);}};// src/utils/typeChecks.ts\nfunction _(t){return\"string\"==typeof t;}function j(t){return Number.isFinite(t);}function D(t){return null===t;}// src/code-generation/components/cms/bundled/models/DatabaseItemPointerModel.ts\nvar R=class e{static fromString(t){let[r,i,n]=t.split(\"/\").map(Number);return B(j(r),\"Invalid chunkId\"),B(j(i),\"Invalid offset\"),B(j(n),\"Invalid length\"),new e(r,i,n);}toString(){return`${this.chunkId}/${this.offset}/${this.length}`;}static read(t){let r=t.readUint16(),i=t.readUint32(),n=t.readUint32();return new e(r,i,n);}write(t){t.writeUint16(this.chunkId),t.writeUint32(this.offset),t.writeUint32(this.length);}compare(t){return this.chunkId<t.chunkId?-1:this.chunkId>t.chunkId?1:this.offset<t.offset?-1:this.offset>t.offset?1:(B(this.length===t.length),0);}constructor(e,r,i){t(this,\"chunkId\",void 0),t(this,\"offset\",void 0),t(this,\"length\",void 0),this.chunkId=e,this.offset=r,this.length=i;}};// src/code-generation/components/cms/bundled/models/DatabaseValueModel.ts\nfunction C(t){if(D(t))return 0/* Null */;switch(t.type){case\"array\"/* Array */:return 1/* Array */;case\"boolean\"/* Boolean */:return 2/* Boolean */;case\"color\"/* Color */:return 3/* Color */;case\"date\"/* Date */:return 4/* Date */;case\"enum\"/* Enum */:return 5/* Enum */;case\"file\"/* File */:return 6/* File */;case\"responsiveimage\"/* ResponsiveImage */:return 10/* ResponsiveImage */;case\"link\"/* Link */:return 7/* Link */;case\"number\"/* Number */:return 8/* Number */;case\"object\"/* Object */:return 9/* Object */;case\"richtext\"/* RichText */:return 11/* RichText */;case\"string\"/* String */:return 12/* String */;case\"vectorsetitem\"/* VectorSetItem */:return 13/* VectorSetItem */;default:E(t);}}function J(t){let e=t.readUint16(),i=[];for(let n=0;n<e;n++){let e=r.read(t);i.push(e);}return{type:\"array\"/* Array */,value:i};}function W(t,e){for(let i of(t.writeUint16(e.value.length),e.value))r.write(t,i);}function $(t,e,i){let n=t.value.length,s=e.value.length;if(n<s)return -1;if(n>s)return 1;for(let s=0;s<n;s++){let n=t.value[s],o=e.value[s],a=r.compare(n,o,i);if(0!==a)return a;}return 0;}function z(t){return{type:\"boolean\"/* Boolean */,value:0!==t.readUint8()};}function K(t,e){t.writeUint8(e.value?1:0);}function G(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function V(t){return{type:\"color\"/* Color */,value:t.readString()};}function H(t,e){t.writeString(e.value);}function X(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function Q(t){let e=t.readInt64(),r=new Date(e);return{type:\"date\"/* Date */,value:r.toISOString()};}function Y(t,e){let r=new Date(e.value),i=r.getTime();t.writeInt64(i);}function Z(t,e){let r=new Date(t.value),i=new Date(e.value);return r<i?-1:r>i?1:0;}function tt(t){return{type:\"enum\"/* Enum */,value:t.readString()};}function te(t,e){t.writeString(e.value);}function tr(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function ti(t){return{type:\"file\"/* File */,value:t.readString()};}function tn(t,e){t.writeString(e.value);}function ts(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function to(t){return{type:\"link\"/* Link */,value:t.readJson()};}function ta(t,e){t.writeJson(e.value);}function tu(t,e){let r=JSON.stringify(t.value),i=JSON.stringify(e.value);return r<i?-1:r>i?1:0;}function tl(t){return{type:\"number\"/* Number */,value:t.readFloat64()};}function th(t,e){t.writeFloat64(e.value);}function tc(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function tf(t){let e=t.readUint16(),i={};for(let n=0;n<e;n++){let e=t.readString();i[e]=r.read(t);}return{type:\"object\"/* Object */,value:i};}function td(t,e){let i=Object.entries(e.value);for(let[e,n]of(t.writeUint16(i.length),i))t.writeString(e),r.write(t,n);}function tg(t,e,i){let n=Object.keys(t.value).sort(),s=Object.keys(e.value).sort();if(n.length<s.length)return -1;if(n.length>s.length)return 1;for(let o=0;o<n.length;o++){let a=n[o],u=s[o];if(a<u)return -1;if(a>u)return 1;let l=t.value[a]??null,h=e.value[u]??null,c=r.compare(l,h,i);if(0!==c)return c;}return 0;}function tv(t){return{type:\"responsiveimage\"/* ResponsiveImage */,value:t.readJson()};}function ty(t,e){t.writeJson(e.value);}function tp(t,e){let r=JSON.stringify(t.value),i=JSON.stringify(e.value);return r<i?-1:r>i?1:0;}function tm(t){let e=t.readInt8();if(0===e)return{type:\"richtext\"/* RichText */,value:t.readUint32()};if(1===e)return{type:\"richtext\"/* RichText */,value:t.readString()};throw Error(\"Invalid rich text pointer\");}function tw(t,e){if(j(e.value)){t.writeInt8(0),t.writeUint32(e.value);return;}if(_(e.value)){t.writeInt8(1),t.writeString(e.value);return;}throw Error(\"Invalid rich text pointer\");}function tb(t,e){let r=t.value,i=e.value;if(j(r)&&j(i)||_(r)&&_(i))return r<i?-1:r>i?1:0;throw Error(\"Invalid rich text pointer\");}function tI(t){return{type:\"string\"/* String */,value:t.readString()};}function tS(t,e){t.writeString(e.value);}function tU(t,e,r){let i=t.value,n=e.value;return(0/* CaseInsensitive */===r.type&&(i=t.value.toLowerCase(),n=e.value.toLowerCase()),i<n)?-1:i>n?1:0;}function tk(t){return{type:\"vectorsetitem\"/* VectorSetItem */,value:t.readUint32()};}function tL(t,e){t.writeUint32(e.value);}function tB(t,e){let r=t.value,i=e.value;return r<i?-1:r>i?1:0;}(t=>{t.read=function(t){let e=t.readUint8();switch(e){case 0/* Null */:return null;case 1/* Array */:return J(t);case 2/* Boolean */:return z(t);case 3/* Color */:return V(t);case 4/* Date */:return Q(t);case 5/* Enum */:return tt(t);case 6/* File */:return ti(t);case 7/* Link */:return to(t);case 8/* Number */:return tl(t);case 9/* Object */:return tf(t);case 10/* ResponsiveImage */:return tv(t);case 11/* RichText */:return tm(t);case 12/* String */:return tI(t);case 13/* VectorSetItem */:return tk(t);default:E(e);}},t.write=function(t,e){let r=C(e);if(t.writeUint8(r),!D(e))switch(e.type){case\"array\"/* Array */:return W(t,e);case\"boolean\"/* Boolean */:return K(t,e);case\"color\"/* Color */:return H(t,e);case\"date\"/* Date */:return Y(t,e);case\"enum\"/* Enum */:return te(t,e);case\"file\"/* File */:return tn(t,e);case\"link\"/* Link */:return ta(t,e);case\"number\"/* Number */:return th(t,e);case\"object\"/* Object */:return td(t,e);case\"responsiveimage\"/* ResponsiveImage */:return ty(t,e);case\"richtext\"/* RichText */:return tw(t,e);case\"vectorsetitem\"/* VectorSetItem */:return tL(t,e);case\"string\"/* String */:return tS(t,e);default:E(e);}},t.compare=function(t,e,r){let i=C(t),n=C(e);if(i<n)return -1;if(i>n)return 1;if(D(t)||D(e))return 0;switch(t.type){case\"array\"/* Array */:return B(\"array\"/* Array */===e.type),$(t,e,r);case\"boolean\"/* Boolean */:return B(\"boolean\"/* Boolean */===e.type),G(t,e);case\"color\"/* Color */:return B(\"color\"/* Color */===e.type),X(t,e);case\"date\"/* Date */:return B(\"date\"/* Date */===e.type),Z(t,e);case\"enum\"/* Enum */:return B(\"enum\"/* Enum */===e.type),tr(t,e);case\"file\"/* File */:return B(\"file\"/* File */===e.type),ts(t,e);case\"link\"/* Link */:return B(\"link\"/* Link */===e.type),tu(t,e);case\"number\"/* Number */:return B(\"number\"/* Number */===e.type),tc(t,e);case\"object\"/* Object */:return B(\"object\"/* Object */===e.type),tg(t,e,r);case\"responsiveimage\"/* ResponsiveImage */:return B(\"responsiveimage\"/* ResponsiveImage */===e.type),tp(t,e);case\"richtext\"/* RichText */:return B(\"richtext\"/* RichText */===e.type),tb(t,e);case\"vectorsetitem\"/* VectorSetItem */:return B(\"vectorsetitem\"/* VectorSetItem */===e.type),tB(t,e);case\"string\"/* String */:return B(\"string\"/* String */===e.type),tU(t,e,r);default:E(t);}};})(r||(r={}));// src/code-generation/components/cms/bundled/models/DatabaseDictionaryIndexModel.ts\nvar tE=class e{sortEntries(){this.entries.sort((t,e)=>{for(let i=0;i<this.fieldNames.length;i++){let n=t.values[i],s=e.values[i],o=r.compare(n,s,this.options.collation);if(0!==o)return o;}return t.pointer.compare(e.pointer);});}static async deserialize(t,i){let n=new b(t),s=n.readJson(),o=n.readUint8(),a=[];for(let t=0;t<o;t++){let t=n.readString();a.push(t);}let u=new e(a,{collation:s}),l=n.readUint32(),h=()=>{let t=[];for(let e=0;e<o;e++){let e=r.read(n);t.push(e);}let e=R.read(n);u.entries.push({values:t,pointer:e});};for(let t=0;t<l;t++){let t=i?.();t&&await t,h();}return u;}serialize(){let t=new O;for(let e of(t.writeJson(this.options.collation),t.writeUint8(this.fieldNames.length),this.fieldNames))t.writeString(e);for(let e of(this.sortEntries(),t.writeUint32(this.entries.length),this.entries)){let{values:i,pointer:n}=e;for(let e of i)r.write(t,e);n.write(t);}return t.subarray();}addItem(t,e){let r=this.fieldNames.map(e=>t.getField(e)??null);this.entries.push({values:r,pointer:e});}constructor(e,r){t(this,\"fieldNames\",void 0),t(this,\"options\",void 0),t(this,\"entries\",[]),this.fieldNames=e,this.options=r;}},tM=3,tP=250,tT=[408,// Request Timeout\n429,// Too Many Requests\n500,// Internal Server Error\n502,// Bad Gateway\n503,// Service Unavailable\n504],tx=async(t,e)=>{let r=0;for(;;){try{let i=await fetch(t,e);if(!tT.includes(i.status)||++r>tM)return i;}catch(t){if(e?.signal?.aborted||++r>tM)throw t;}await tF(r);}};async function tF(t){let e=Math.floor(tP*(Math.random()+1)*2**(t-1));await new Promise(t=>{setTimeout(t,e);});}// src/code-generation/components/cms/bundled/rangeRequest.ts\nasync function tN(t,e){let r=tO(e),i=[],n=0;for(let t of r)i.push(`${t.from}-${t.to-1}`),n+=t.to-t.from;let s=new URL(t),o=i.join(\",\");s.searchParams.set(\"range\",o);let a=await tx(s);if(200!==a.status)throw Error(`Request failed: ${a.status} ${a.statusText}`);let u=await a.arrayBuffer(),l=new Uint8Array(u);if(l.length!==n)throw Error(\"Request failed: Unexpected response length\");let h=new tA,c=0;for(let t of r){let e=t.to-t.from,r=c+e,i=l.subarray(c,r);h.write(t.from,i),c=r;}return e.map(t=>h.read(t.from,t.to-t.from));}var tA=class{read(t,e){for(let r of this.chunks){if(t<r.start)break;if(t>r.end)continue;if(t+e>r.end)break;let i=t-r.start,n=i+e;return r.data.slice(i,n);}throw Error(\"Missing data\");}write(t,e){let r=t,i=r+e.length,n=0,s=this.chunks.length;for(;n<s;n++){let t=this.chunks[n];if(B(t,\"Missing chunk\"),!(r>t.end)){if(r>t.start){let i=r-t.start,n=t.data.subarray(0,i);e=tq(n,e),r=t.start;}break;}}for(;s>n;s--){let t=this.chunks[s-1];if(B(t,\"Missing chunk\"),!(i<t.start)){if(i<t.end){let r=i-t.start,n=t.data.subarray(r);e=tq(e,n),i=t.end;}break;}}let o={start:r,end:i,data:e},a=s-n;this.chunks.splice(n,a,o);}constructor(){t(this,\"chunks\",[]);}};function tq(t,e){let r=t.length+e.length,i=new Uint8Array(r);return i.set(t,0),i.set(e,t.length),i;}function tO(t){B(t.length>0,\"Must have at least one range\");let e=[...t].sort((t,e)=>t.from-e.from),r=[];for(let t of e){let e=r.length-1,i=r[e];i&&t.from<=i.to?r[e]={from:i.from,to:Math.max(i.to,t.to)}:r.push(t);}return r;}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nvar t_=class{async loadModel(){let[t]=await tN(this.options.url,[this.options.range]);return B(t,\"Failed to load model\"),tE.deserialize(t,()=>{let t=m(this.modelPrioritySources);return t?U({batch:!0,priority:t}):void 0;});}async getModel(t){return this.model||(t&&this.modelPrioritySources.add(t),this.modelPromise??=this.loadModel().finally(()=>{this.modelPrioritySources.clear();}),this.model??=await this.modelPromise),this.model;}async lookupItems(t,e){B(t.length===this.fields.length,\"Invalid query length\");let r=await this.getModel(e),i=[r.entries];for(let[r,n]of t.entries()){let t=[];for(let s of i){let i;let o=e?U({batch:!0,priority:v(e)}):void 0;switch(o&&await o,n.type){case\"All\"/* All */:i=[s];break;case\"Equals\"/* Equals */:i=this.queryEquals(s,n,r);break;case\"NotEquals\"/* NotEquals */:i=this.queryNotEquals(s,n,r);break;case\"LessThan\"/* LessThan */:i=this.queryLessThan(s,n,r);break;case\"GreaterThan\"/* GreaterThan */:i=this.queryGreaterThan(s,n,r);break;case\"Contains\"/* Contains */:i=await this.queryContains(s,n,r,e);break;case\"StartsWith\"/* StartsWith */:i=await this.queryStartsWith(s,n,r,e);break;case\"EndsWith\"/* EndsWith */:i=await this.queryEndsWith(s,n,r,e);break;default:E(n);}t.push(...i);}i=t;}let n=[];for(let t of i)for(let r of t){let t=e?U({batch:!0,priority:v(e)}):void 0;t&&await t;let i={};for(let t=0;t<this.options.fieldNames.length;t++){let e=this.options.fieldNames[t],n=r.values[t];i[e]=n;}n.push({pointer:r.pointer.toString(),data:i});}return n;}queryEquals(t,e,r){let i=this.getLeftMost(t,r,e.value),n=this.getRightMost(t,r,e.value),s=t.slice(i,n+1);return s.length>0?[s]:[];}queryNotEquals(t,e,r){let i=this.getLeftMost(t,r,e.value),n=this.getRightMost(t,r,e.value),s=[],o=t.slice(0,i);o.length>0&&s.push(o);let a=t.slice(n+1);return a.length>0&&s.push(a),s;}queryLessThan(t,e,r){let i=this.getRightMost(t,r,null);if(t=t.slice(i+1),e.inclusive){let i=this.getRightMost(t,r,e.value),n=t.slice(0,i+1);return n.length>0?[n]:[];}let n=this.getLeftMost(t,r,e.value),s=t.slice(0,n);return s.length>0?[s]:[];}queryGreaterThan(t,e,r){let i=this.getRightMost(t,r,null);if(t=t.slice(i+1),e.inclusive){let i=this.getLeftMost(t,r,e.value),n=t.slice(i);return n.length>0?[n]:[];}let n=this.getRightMost(t,r,e.value),s=t.slice(n+1);return s.length>0?[s]:[];}queryContains(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.includes(i);});}queryStartsWith(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.startsWith(i);});}queryEndsWith(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.endsWith(i);});}/**\n   * Returns the index of the left most entry that is equal to the target.\n   *\n   * ```text\n   *   Left most\n   *       ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the left most entry that is equal to the target.\n   */getLeftMost(t,e,i){let n=0,s=t.length;for(;n<s;){let o=n+s>>1,a=t[o],u=a.values[e];0>r.compare(u,i,this.collation)?n=o+1:s=o;}return n;}/**\n   * Returns the index of the right most entry that is equal to the target.\n   *\n   * ```text\n   *              Right most\n   *                   ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the right most entry that is equal to the target.\n   */getRightMost(t,e,i){let n=0,s=t.length;for(;n<s;){let o=n+s>>1,a=t[o],u=a.values[e];r.compare(u,i,this.collation)>0?s=o:n=o+1;}return s-1;}/**\n   * Finds all items that are matching the predicate and groups adjacent items together.\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param predicate The predicate to match the values against.\n   * @returns An array of chunks that match the predicate.\n   */async findItems(t,e,r,i){let n=[],s=0;for(let o=0;o<t.length;o++){let a=r?U({batch:!0,priority:v(r)}):void 0;a&&await a;let u=t[o],l=u.values[e],h=i(l);if(!h){if(s<o){let e=t.slice(s,o);n.push(e);}s=o+1;}}if(s<t.length){let e=t.slice(s);n.push(e);}return n;}constructor(e){t(this,\"options\",void 0),t(this,\"schema\",void 0),t(this,\"fields\",void 0),t(this,\"supportedLookupTypes\",[\"All\"/* All */,\"Equals\"/* Equals */,\"NotEquals\"/* NotEquals */,\"LessThan\"/* LessThan */,\"GreaterThan\"/* GreaterThan */,\"Contains\"/* Contains */,\"StartsWith\"/* StartsWith */,\"EndsWith\"/* EndsWith */]),t(this,\"modelPromise\",void 0),t(this,\"model\",void 0),t(this,\"modelPrioritySources\",/* @__PURE__ */new Set),t(this,\"collation\",void 0),this.options=e;let r={},i=[];for(let t of this.options.fieldNames){let e=this.options.collectionSchema[t];B(e,\"Missing definition for field\",t),r[t]=e,i.push({type:\"Identifier\",name:t});}this.schema=r,this.fields=i,this.collation=this.options.collation;}};// src/code-generation/components/cms/bundled/models/DatabaseItemModel.ts\nfunction tj(t){let e={},i=t.readUint16();for(let n=0;n<i;n++){let i=t.readString();e[i]=r.read(t);}return e;}// src/code-generation/components/cms/bundled/DatabaseCollection.ts?bundle\nfunction*tD(t){for(let e of t)yield*e.prioritySources;}var tR=class{scanItems(t){return this.itemsPromise?this.isScanning&&t&&this.scanPrioritySources.add(t):(this.isScanning=!0,t&&this.scanPrioritySources.add(t),this.itemsPromise=tx(this.url).then(async t=>{if(!t.ok)throw Error(`Request failed: ${t.status} ${t.statusText}`);let e=await t.arrayBuffer(),r=new Uint8Array(e),i=new b(r),n=[],s=i.readUint32();for(let t=0;t<s;t++){let t=m(this.scanPrioritySources),e=t?g({batch:!0,priority:t}):void 0;e&&await e;let r=i.getOffset(),s=tj(i),o=i.getOffset()-r,a=new R(this.id,r,o),u=a.toString(),l={pointer:u,data:s};this.itemLoader.prime({pointer:u,prioritySources:/* @__PURE__ */new Set},l),n.push(l);}return n;}).finally(()=>{this.isScanning=!1,this.scanPrioritySources.clear();})),this.itemsPromise;}resolveItem(t,e){let r=this.itemPrioritySources.get(t);r||(r=/* @__PURE__ */new Set,this.itemPrioritySources.set(t,r)),e&&r.add(e);let i=this.itemLoader.load({pointer:t,prioritySources:r}),n=()=>this.itemPrioritySources.delete(t);return i.then(n,n),i;}constructor(e,r){t(this,\"id\",void 0),t(this,\"url\",void 0),t(this,\"itemsPromise\",void 0),t(this,\"isScanning\",!1),t(this,\"scanPrioritySources\",/* @__PURE__ */new Set),t(this,\"itemPrioritySources\",/* @__PURE__ */new Map),t(this,\"itemLoader\",new d.default(async t=>{let e=t.map(({pointer:t})=>{let e=R.fromString(t);return{from:e.offset,to:e.offset+e.length};}),r=await tN(this.url,e),i=[];for(let e=0;e<r.length;e++){let n=m(tD(t)),s=n?g({batch:!0,priority:n}):void 0;s&&await s;let o=r[e];B(o,\"Missing range bytes\");let a=new b(o),u=tj(a),l=t[e]?.pointer;B(l,\"Missing pointer\"),i.push({pointer:l,data:u});}return i;},{// capping to 250 avoids overly long URLs that can cause requests to fail with 414\nmaxBatchSize:250,// Different route workflows can request the same item. Keep DataLoader's cache keyed by the\n// pointer while still carrying the strongest scheduling priority into the shared batch\ncacheKeyFn:t=>t.pointer})),this.id=e,this.url=r;}},tC=class{async scanItems(t){let e=await Promise.all(this.chunks.map(async e=>e.scanItems(t)));return e.flat();}resolveItems(t,e){return Promise.all(t.map(t=>{let r=R.fromString(t),i=this.chunks[r.chunkId];return B(i,\"Missing chunk\"),i.resolveItem(t,e);}));}compareItems(t,e){let r=R.fromString(t.pointer),i=R.fromString(e.pointer);return r.compare(i);}compareValues(t,e,i){return r.compare(t,e,i);}constructor(e){t(this,\"options\",void 0),t(this,\"id\",void 0),t(this,\"schema\",void 0),t(this,\"indexes\",void 0),t(this,\"resolveRichText\",void 0),t(this,\"resolveVectorSetItem\",void 0),t(this,\"chunks\",void 0),this.options=e,this.chunks=this.options.chunks.map((t,e)=>new tR(e,t)),this.schema=e.schema,this.indexes=e.indexes,this.resolveRichText=e.resolveRichText,this.resolveVectorSetItem=e.resolveVectorSetItem,this.id=e.id;}};export{tC as DatabaseCollection,t_ as DatabaseDictionaryIndex};\nexport const __FramerMetadata__ = {\"exports\":{\"DatabaseCollection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DatabaseDictionaryIndex\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{jsx as e}from\"react/jsx-runtime\";import{AutoBreakpointVariant as r,ComponentPresetsConsumer as t,Link as n,motion as o}from\"framer\";// ../../library/src/router/lazy.tsx\nimport{isValidElement as i}from\"react\";// ../../library/src/utils/utils.ts\nvar a,f,u=\"undefined\"!=typeof window,c=u&&\"function\"==typeof window.requestIdleCallback,l=\"preload\";function p(e){return\"object\"==typeof e&&null!==e&&!/*#__PURE__*/i(e)&&l in e;}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{Fragment as s,createElement as m}from\"react\";// src/code-generation/components/cms/bundled/assert.ts\nfunction d(e,...r){if(!e)throw Error(\"Assertion Error\"+(r.length>0?\": \"+r.join(\" \"):\"\"));}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nvar y=((a=y||{})[a.Fragment=1]=\"Fragment\",a[a.Link=2]=\"Link\",a[a.Module=3]=\"Module\",a[a.Tag=4]=\"Tag\",a[a.Text=5]=\"Text\",a),h=((f=h||{})[f.RichText=1]=\"RichText\",f[f.VectorSetItem=2]=\"VectorSetItem\",f);function x(e,r,t){for(let[n,o]of Object.entries(r)){let r=e[n];if(\"number\"==typeof o){e[n]=t(o,r);continue;}T(r,o,t);}}function T(e,r,t){if(\"number\"!=typeof r){if(Array.isArray(r)){if(!Array.isArray(e))return;let[n]=r;for(let r=0;r<e.length;r++){let o=e[r];\"number\"==typeof n?e[r]=t(n,o):T(o,n,t);}return;}null===e||\"object\"!=typeof e||Array.isArray(e)||x(e,r,t);}}function g(i){let a=/* @__PURE__ */new Map;return f=>{let u=a.get(f);if(u)return u;let c=JSON.parse(f),l=function a(f){switch(f[0]){case 1/* Fragment */:{let[,...e]=f,r=e.map(a);return /*#__PURE__*/m(s,void 0,...r);}case 2/* Link */:{let[,e,...r]=f,t=r.map(a);return /*#__PURE__*/m(n,e,...t);}case 3/* Module */:{let[,n,o,u]=f;x(o,u,(e,r)=>{if(1/* RichText */===e)return r?a(r):r;if(\"string\"!=typeof r)return r;let t=i[r];return t?(p(t)&&t.preload(),t):r;});let c=i[n];return d(c,\"Module not found\"),p(c)&&c.preload(),/*#__PURE__*/e(t,{componentIdentifier:n,children:t=>/*#__PURE__*/e(r,{component:c,props:{...t,...o}})});}case 4/* Tag */:{let[,e,r,...t]=f,n=t.map(a);if(\"a\"===e)return /*#__PURE__*/m(o.a,r,...n);return /*#__PURE__*/m(e,r,...n);}case 5/* Text */:{let[,e]=f;return e;}}}(c);return a.set(f,l),l;};}export{h as RichTextJsonPropKind,y as RichTextJsonType,g as getRichTextJsonResolver,x as mapRichTextJsonProps};\nexport const __FramerMetadata__ = {\"exports\":{\"getRichTextJsonResolver\":{\"type\":\"reactComponent\",\"name\":\"getRichTextJsonResolver\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"mapRichTextJsonProps\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RichTextJsonPropKind\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RichTextJsonType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (fc3086c)\nimport{addPropertyControls as e,ControlType as t,QueryEngine as l}from\"framer\";import{DatabaseCollection as i}from\"./OaLSV9F7x-0.js\";import{getRichTextJsonResolver as a}from\"./OaLSV9F7x-1.js\";let r={AUn773dYf:{isNullable:!0,type:t.String},createdAt:{isNullable:!0,type:t.Date},id:{isNullable:!1,type:t.String},KyHFzbkRu:{isNullable:!0,type:t.String},nextItemId:{isNullable:!0,type:t.String},previousItemId:{isNullable:!0,type:t.String},PrguLM_8k:{isNullable:!0,type:t.String},RAZkUQXul:{isNullable:!0,type:t.ResponsiveImage},sERVrAsbB:{isNullable:!0,type:t.String},t9zyZnPTI:{isNullable:!0,type:t.Number},updatedAt:{isNullable:!0,type:t.Date},x1N9p1DxZ:{isNullable:!0,type:t.String},yCArqXjkK:{isNullable:!0,type:t.String}},u=[],n=e=>{let t=u[e];if(t)return t().then(e=>e.default);},p={},y=a(p),o=new l,d={collectionByLocaleId:{default:new i({chunks:[new URL(\"./OaLSV9F7x-chunk-default-0.framercms\",import.meta.url).href.replace(\"/modules/\",\"/cms/\")],id:\"8ee661f5-5062-4c8d-9260-a79197124769default\",indexes:[],resolveRichText:y,resolveVectorSetItem:n,schema:r})},displayName:\"Reviews\",id:\"8ee661f5-5062-4c8d-9260-a79197124769\"};export default d;e(d,{KyHFzbkRu:{preventLocalization:!1,title:\"Slug\",type:t.String},x1N9p1DxZ:{defaultValue:\"\",title:\"Name\",type:t.String},yCArqXjkK:{defaultValue:\"\",title:\"Role\",type:t.String},sERVrAsbB:{defaultValue:\"\",title:\"Company\",type:t.String},AUn773dYf:{defaultValue:\"\",title:\"Quote\",type:t.String},PrguLM_8k:{defaultValue:\"\",title:\"Project\",type:t.String},RAZkUQXul:{title:\"Photo\",type:t.ResponsiveImage},t9zyZnPTI:{defaultValue:0,title:\"Order\",type:t.Number},createdAt:{title:\"Created\",type:t.Date},updatedAt:{title:\"Updated\",type:t.Date},previousItemId:{dataIdentifier:\"local-module:collection/OaLSV9F7x:default\",title:\"Previous\",type:t.CollectionReference},nextItemId:{dataIdentifier:\"local-module:collection/OaLSV9F7x:default\",title:\"Next\",type:t.CollectionReference}});export const enumToDisplayNameFunctions={};export const utils={async getSlugByRecordId(e,t){let[l]=await o.query({from:{data:d,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"KyHFzbkRu\",type:\"Identifier\"}],where:{left:{name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.KyHFzbkRu;},async getRecordIdBySlug(e,t){let[l]=await o.query({from:{data:d,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"id\",type:\"Identifier\"}],where:{left:{name:\"KyHFzbkRu\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.id;}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"data\",\"name\":\"data\",\"annotations\":{\"framerRecordIdKey\":\"id\",\"framerData\":\"true\",\"framerCollectionUtils\":\"1\",\"framerColorSyntax\":\"false\",\"framerContractVersion\":\"1\",\"framerEnumToDisplayNameUtils\":\"2\",\"framerSlug\":\"KyHFzbkRu\",\"framerAutoSizeImages\":\"true\",\"framerCollectionId\":\"OaLSV9F7x\"}},\"enumToDisplayNameFunctions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"utils\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t;}var e,r,i=Object.create,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,l=(t,e)=>function(){try{return e||(0,t[o(t)[0]])((e={exports:{}}).exports,e),e.exports;}catch(t){throw e=0,t;}},h=(t,e,r,i)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let a of o(e))u.call(t,a)||a===r||n(t,a,{get:()=>e[a],enumerable:!(i=s(e,a))||i.enumerable});return t;},c=(t,e,r)=>(r=null!=t?i(a(t)):{},h(// If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    !e&&t&&t.__esModule?r:n(r,\"default\",{value:t,enumerable:!0}),t)),f=l({\"../../../node_modules/dataloader/index.js\"(t,e){var r,i=/* @__PURE__ */function(){function t(t,e){if(\"function\"!=typeof t)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: \"+t+\".\");this._batchLoadFn=t,this._maxBatchSize=function(t){if(!(!t||!1!==t.batch))return 1;var e=t&&t.maxBatchSize;if(void 0===e)return 1/0;if(\"number\"!=typeof e||e<1)throw TypeError(\"maxBatchSize must be a positive number: \"+e);return e;}(e),this._batchScheduleFn=function(t){var e=t&&t.batchScheduleFn;if(void 0===e)return n;if(\"function\"!=typeof e)throw TypeError(\"batchScheduleFn must be a function: \"+e);return e;}(e),this._cacheKeyFn=function(t){var e=t&&t.cacheKeyFn;if(void 0===e)return function(t){return t;};if(\"function\"!=typeof e)throw TypeError(\"cacheKeyFn must be a function: \"+e);return e;}(e),this._cacheMap=function(t){if(!(!t||!1!==t.cache))return null;var e=t&&t.cacheMap;if(void 0===e)return /* @__PURE__ */new Map;if(null!==e){var r=[\"get\",\"set\",\"delete\",\"clear\"].filter(function(t){return e&&\"function\"!=typeof e[t];});if(0!==r.length)throw TypeError(\"Custom cacheMap missing methods: \"+r.join(\", \"));}return e;}(e),this._batch=null,this.name=e&&e.name?e.name:null;}var e=t.prototype;return e.load=function(t){if(null==t)throw TypeError(\"The loader.load() function must be called with a value, but got: \"+String(t)+\".\");var e=function(t){var e=t._batch;if(null!==e&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;var r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(function(){(function(t,e){var r;if(e.hasDispatched=!0,0===e.keys.length){o(e);return;}try{r=t._batchLoadFn(e.keys);}catch(r){return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: \"+String(r)+\".\"));}if(!r||\"function\"!=typeof r.then)return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: \"+String(r)+\".\"));r.then(function(t){if(!a(t))throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: \"+String(t)+\".\");if(t.length!==e.keys.length)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\\n\\nKeys:\\n\"+String(e.keys)+\"\\n\\nValues:\\n\"+String(t));o(e);for(var r=0;r<e.callbacks.length;r++){var i=t[r];i instanceof Error?e.callbacks[r].reject(i):e.callbacks[r].resolve(i);}}).catch(function(r){s(t,e,r);});})(t,r);}),r;}(this),r=this._cacheMap,i=this._cacheKeyFn(t);if(r){var n=r.get(i);if(n){var u=e.cacheHits||(e.cacheHits=[]);return new Promise(function(t){u.push(function(){t(n);});});}}e.keys.push(t);var l=new Promise(function(t,r){e.callbacks.push({resolve:t,reject:r});});return r&&r.set(i,l),l;},e.loadMany=function(t){if(!a(t))throw TypeError(\"The loader.loadMany() function must be called with Array<key> but got: \"+t+\".\");for(var e=[],r=0;r<t.length;r++)e.push(this.load(t[r]).catch(function(t){return t;}));return Promise.all(e);},e.clear=function(t){var e=this._cacheMap;if(e){var r=this._cacheKeyFn(t);e.delete(r);}return this;},e.clearAll=function(){var t=this._cacheMap;return t&&t.clear(),this;},e.prime=function(t,e){var r=this._cacheMap;if(r){var i,n=this._cacheKeyFn(t);void 0===r.get(n)&&(e instanceof Error?(i=Promise.reject(e)).catch(function(){}):i=Promise.resolve(e),r.set(n,i));}return this;},t;}(),n=\"object\"==typeof process&&\"function\"==typeof process.nextTick?function(t){r||(r=Promise.resolve()),r.then(function(){process.nextTick(t);});}:\"function\"==typeof setImmediate?function(t){setImmediate(t);}:function(t){setTimeout(t);};function s(t,e,r){o(e);for(var i=0;i<e.keys.length;i++)t.clear(e.keys[i]),e.callbacks[i].reject(r);}function o(t){if(t.cacheHits)for(var e=0;e<t.cacheHits.length;e++)t.cacheHits[e]();}function a(t){return\"object\"==typeof t&&null!==t&&\"number\"==typeof t.length&&(0===t.length||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1));}e.exports=i;}}),d=c(f(),1);import{yieldToMain as g}from\"framer\";// ../../shared/src/yield.ts\nfunction v(t){return\"function\"==typeof t?t():t;}var y={background:0,\"user-visible\":1,\"user-blocking\":2};function p(t,e){return y[t]>y[e];}// ../../library/src/utils/schedulerPriority.ts\nfunction m(t){let e;for(let r of t){let t=v(r);if((void 0===e||p(t,e))&&(e=t),\"user-blocking\"===e)break;}return e;}// src/code-generation/components/cms/bundled/BufferReader.ts\nvar w={Uint8:1,Uint16:2,Uint32:4,BigUint64:8,Int8:1,Int16:2,Int32:4,BigInt64:8,Float32:4,Float64:8},b=(e=class e{getOffset(){return this.offset;}ensureLength(t){let e=this.bytes.length;if(!(this.offset+t<=e))throw Error(\"Reading out of bounds\");}readUint8(){let t=w.Uint8;this.ensureLength(t);let e=this.view.getUint8(this.offset);return this.offset+=t,e;}readUint16(){let t=w.Uint16;this.ensureLength(t);let e=this.view.getUint16(this.offset);return this.offset+=t,e;}readUint32(){let t=w.Uint32;this.ensureLength(t);let e=this.view.getUint32(this.offset);return this.offset+=t,e;}readUint64(){let t=this.readBigUint64();return Number(t);}readBigUint64(){let t=w.BigUint64;this.ensureLength(t);let e=this.view.getBigUint64(this.offset);return this.offset+=t,e;}readInt8(){let t=w.Int8;this.ensureLength(t);let e=this.view.getInt8(this.offset);return this.offset+=t,e;}readInt16(){let t=w.Int16;this.ensureLength(t);let e=this.view.getInt16(this.offset);return this.offset+=t,e;}readInt32(){let t=w.Int32;this.ensureLength(t);let e=this.view.getInt32(this.offset);return this.offset+=t,e;}readInt64(){let t=this.readBigInt64();return Number(t);}readBigInt64(){let t=w.BigInt64;this.ensureLength(t);let e=this.view.getBigInt64(this.offset);return this.offset+=t,e;}readFloat32(){let t=w.Float32;this.ensureLength(t);let e=this.view.getFloat32(this.offset);return this.offset+=t,e;}readFloat64(){let t=w.Float64;this.ensureLength(t);let e=this.view.getFloat64(this.offset);return this.offset+=t,e;}readBytes(t){let e=this.offset,r=e+t,i=this.bytes.subarray(e,r);return this.offset=r,i;}readString(){let t=this.readUint32(),r=this.readBytes(t);return e.textDecoder.decode(r);}readJson(){let t=this.readString();return JSON.parse(t);}constructor(e){t(this,\"bytes\",void 0),t(this,\"offset\",0),t(this,\"view\",void 0),this.bytes=e,this.view=I(this.bytes);}},// TextDecoder has no per-decode state unless streaming is enabled. Reusing one class-owned decoder\n// avoids constructing one for every CMS item, where each item gets its own BufferReader.\nt(e,\"textDecoder\",new TextDecoder),e);function I(t){return new DataView(t.buffer,t.byteOffset,t.byteLength);}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nimport{ControlType as S,yieldToMain as U}from\"framer\";// ../../library/src/utils/utils.ts\nvar k=\"undefined\"!=typeof window,L=k&&\"function\"==typeof window.requestIdleCallback;// src/code-generation/components/cms/bundled/assert.ts\nfunction B(t,...e){if(!t)throw Error(\"Assertion Error\"+(e.length>0?\": \"+e.join(\" \"):\"\"));}function E(t){throw Error(`Unexpected value: ${t}`);}// src/code-generation/components/cms/bundled/BufferWriter.ts\nvar M=1024,P=1.5,T=t=>2**t-1,x=t=>-(2**(t-1)),F=t=>2**(t-1)-1,N={Uint8:0,Uint16:0,Uint32:0,Uint64:0,BigUint64:0,Int8:x(8),Int16:x(16),Int32:x(32),Int64:Number.MIN_SAFE_INTEGER,BigInt64:-(BigInt(2)**BigInt(63))},A={Uint8:T(8),Uint16:T(16),Uint32:T(32),Uint64:Number.MAX_SAFE_INTEGER,BigUint64:BigInt(2)**BigInt(64)-BigInt(1),Int8:F(8),Int16:F(16),Int32:F(32),Int64:Number.MAX_SAFE_INTEGER,BigInt64:BigInt(2)**BigInt(63)-BigInt(1)};function q(t,e,r,i){B(t>=e,t,\"outside lower bound for\",i),B(t<=r,t,\"outside upper bound for\",i);}var O=class{getOffset(){return this.offset;}slice(t=0,e=this.offset){return this.bytes.slice(t,e);}subarray(t=0,e=this.offset){return this.bytes.subarray(t,e);}ensureLength(t){let e=this.bytes.length;if(this.offset+t<=e)return;let r=new Uint8Array(Math.ceil(e*P)+t);r.set(this.bytes),this.bytes=r,this.view=I(r);}writeUint8(t){q(t,N.Uint8,A.Uint8,\"Uint8\");let e=w.Uint8;this.ensureLength(e),this.view.setUint8(this.offset,t),this.offset+=e;}writeUint16(t){q(t,N.Uint16,A.Uint16,\"Uint16\");let e=w.Uint16;this.ensureLength(e),this.view.setUint16(this.offset,t),this.offset+=e;}writeUint32(t){q(t,N.Uint32,A.Uint32,\"Uint32\");let e=w.Uint32;this.ensureLength(e),this.view.setUint32(this.offset,t),this.offset+=e;}writeUint64(t){q(t,N.Uint64,A.Uint64,\"Uint64\");let e=BigInt(t);this.writeBigUint64(e);}writeBigUint64(t){q(t,N.BigUint64,A.BigUint64,\"BigUint64\");let e=w.BigUint64;this.ensureLength(e),this.view.setBigUint64(this.offset,t),this.offset+=e;}writeInt8(t){q(t,N.Int8,A.Int8,\"Int8\");let e=w.Int8;this.ensureLength(e),this.view.setInt8(this.offset,t),this.offset+=e;}writeInt16(t){q(t,N.Int16,A.Int16,\"Int16\");let e=w.Int16;this.ensureLength(e),this.view.setInt16(this.offset,t),this.offset+=e;}writeInt32(t){q(t,N.Int32,A.Int32,\"Int32\");let e=w.Int32;this.ensureLength(e),this.view.setInt32(this.offset,t),this.offset+=e;}writeInt64(t){q(t,N.Int64,A.Int64,\"Int64\");let e=BigInt(t);this.writeBigInt64(e);}writeBigInt64(t){q(t,N.BigInt64,A.BigInt64,\"BigInt64\");let e=w.BigInt64;this.ensureLength(e),this.view.setBigInt64(this.offset,t),this.offset+=e;}writeFloat32(t){let e=w.Float32;this.ensureLength(e),this.view.setFloat32(this.offset,t),this.offset+=e;}writeFloat64(t){let e=w.Float64;this.ensureLength(e),this.view.setFloat64(this.offset,t),this.offset+=e;}writeBytes(t){let e=t.length;this.ensureLength(e),this.bytes.set(t,this.offset),this.offset+=e;}encodeString(t){let e=this.encodedStrings.get(t);if(e)return e;let r=this.encoder.encode(t);return this.encodedStrings.set(t,r),r;}writeString(t){let e=this.encodeString(t),r=e.length;this.writeUint32(r),this.writeBytes(e);}writeJson(t){let e=JSON.stringify(t);this.writeString(e);}constructor(){t(this,\"offset\",0),t(this,\"bytes\",new Uint8Array(M)),t(this,\"view\",I(this.bytes)),t(this,\"encoder\",new TextEncoder),t(this,\"encodedStrings\",/* @__PURE__ */new Map);}};// src/utils/typeChecks.ts\nfunction _(t){return\"string\"==typeof t;}function j(t){return Number.isFinite(t);}function D(t){return null===t;}// src/code-generation/components/cms/bundled/models/DatabaseItemPointerModel.ts\nvar R=class e{static fromString(t){let[r,i,n]=t.split(\"/\").map(Number);return B(j(r),\"Invalid chunkId\"),B(j(i),\"Invalid offset\"),B(j(n),\"Invalid length\"),new e(r,i,n);}toString(){return`${this.chunkId}/${this.offset}/${this.length}`;}static read(t){let r=t.readUint16(),i=t.readUint32(),n=t.readUint32();return new e(r,i,n);}write(t){t.writeUint16(this.chunkId),t.writeUint32(this.offset),t.writeUint32(this.length);}compare(t){return this.chunkId<t.chunkId?-1:this.chunkId>t.chunkId?1:this.offset<t.offset?-1:this.offset>t.offset?1:(B(this.length===t.length),0);}constructor(e,r,i){t(this,\"chunkId\",void 0),t(this,\"offset\",void 0),t(this,\"length\",void 0),this.chunkId=e,this.offset=r,this.length=i;}};// src/code-generation/components/cms/bundled/models/DatabaseValueModel.ts\nfunction C(t){if(D(t))return 0/* Null */;switch(t.type){case\"array\"/* Array */:return 1/* Array */;case\"boolean\"/* Boolean */:return 2/* Boolean */;case\"color\"/* Color */:return 3/* Color */;case\"date\"/* Date */:return 4/* Date */;case\"enum\"/* Enum */:return 5/* Enum */;case\"file\"/* File */:return 6/* File */;case\"responsiveimage\"/* ResponsiveImage */:return 10/* ResponsiveImage */;case\"link\"/* Link */:return 7/* Link */;case\"number\"/* Number */:return 8/* Number */;case\"object\"/* Object */:return 9/* Object */;case\"richtext\"/* RichText */:return 11/* RichText */;case\"string\"/* String */:return 12/* String */;case\"vectorsetitem\"/* VectorSetItem */:return 13/* VectorSetItem */;default:E(t);}}function J(t){let e=t.readUint16(),i=[];for(let n=0;n<e;n++){let e=r.read(t);i.push(e);}return{type:\"array\"/* Array */,value:i};}function W(t,e){for(let i of(t.writeUint16(e.value.length),e.value))r.write(t,i);}function $(t,e,i){let n=t.value.length,s=e.value.length;if(n<s)return -1;if(n>s)return 1;for(let s=0;s<n;s++){let n=t.value[s],o=e.value[s],a=r.compare(n,o,i);if(0!==a)return a;}return 0;}function z(t){return{type:\"boolean\"/* Boolean */,value:0!==t.readUint8()};}function K(t,e){t.writeUint8(e.value?1:0);}function G(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function V(t){return{type:\"color\"/* Color */,value:t.readString()};}function H(t,e){t.writeString(e.value);}function X(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function Q(t){let e=t.readInt64(),r=new Date(e);return{type:\"date\"/* Date */,value:r.toISOString()};}function Y(t,e){let r=new Date(e.value),i=r.getTime();t.writeInt64(i);}function Z(t,e){let r=new Date(t.value),i=new Date(e.value);return r<i?-1:r>i?1:0;}function tt(t){return{type:\"enum\"/* Enum */,value:t.readString()};}function te(t,e){t.writeString(e.value);}function tr(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function ti(t){return{type:\"file\"/* File */,value:t.readString()};}function tn(t,e){t.writeString(e.value);}function ts(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function to(t){return{type:\"link\"/* Link */,value:t.readJson()};}function ta(t,e){t.writeJson(e.value);}function tu(t,e){let r=JSON.stringify(t.value),i=JSON.stringify(e.value);return r<i?-1:r>i?1:0;}function tl(t){return{type:\"number\"/* Number */,value:t.readFloat64()};}function th(t,e){t.writeFloat64(e.value);}function tc(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function tf(t){let e=t.readUint16(),i={};for(let n=0;n<e;n++){let e=t.readString();i[e]=r.read(t);}return{type:\"object\"/* Object */,value:i};}function td(t,e){let i=Object.entries(e.value);for(let[e,n]of(t.writeUint16(i.length),i))t.writeString(e),r.write(t,n);}function tg(t,e,i){let n=Object.keys(t.value).sort(),s=Object.keys(e.value).sort();if(n.length<s.length)return -1;if(n.length>s.length)return 1;for(let o=0;o<n.length;o++){let a=n[o],u=s[o];if(a<u)return -1;if(a>u)return 1;let l=t.value[a]??null,h=e.value[u]??null,c=r.compare(l,h,i);if(0!==c)return c;}return 0;}function tv(t){return{type:\"responsiveimage\"/* ResponsiveImage */,value:t.readJson()};}function ty(t,e){t.writeJson(e.value);}function tp(t,e){let r=JSON.stringify(t.value),i=JSON.stringify(e.value);return r<i?-1:r>i?1:0;}function tm(t){let e=t.readInt8();if(0===e)return{type:\"richtext\"/* RichText */,value:t.readUint32()};if(1===e)return{type:\"richtext\"/* RichText */,value:t.readString()};throw Error(\"Invalid rich text pointer\");}function tw(t,e){if(j(e.value)){t.writeInt8(0),t.writeUint32(e.value);return;}if(_(e.value)){t.writeInt8(1),t.writeString(e.value);return;}throw Error(\"Invalid rich text pointer\");}function tb(t,e){let r=t.value,i=e.value;if(j(r)&&j(i)||_(r)&&_(i))return r<i?-1:r>i?1:0;throw Error(\"Invalid rich text pointer\");}function tI(t){return{type:\"string\"/* String */,value:t.readString()};}function tS(t,e){t.writeString(e.value);}function tU(t,e,r){let i=t.value,n=e.value;return(0/* CaseInsensitive */===r.type&&(i=t.value.toLowerCase(),n=e.value.toLowerCase()),i<n)?-1:i>n?1:0;}function tk(t){return{type:\"vectorsetitem\"/* VectorSetItem */,value:t.readUint32()};}function tL(t,e){t.writeUint32(e.value);}function tB(t,e){let r=t.value,i=e.value;return r<i?-1:r>i?1:0;}(t=>{t.read=function(t){let e=t.readUint8();switch(e){case 0/* Null */:return null;case 1/* Array */:return J(t);case 2/* Boolean */:return z(t);case 3/* Color */:return V(t);case 4/* Date */:return Q(t);case 5/* Enum */:return tt(t);case 6/* File */:return ti(t);case 7/* Link */:return to(t);case 8/* Number */:return tl(t);case 9/* Object */:return tf(t);case 10/* ResponsiveImage */:return tv(t);case 11/* RichText */:return tm(t);case 12/* String */:return tI(t);case 13/* VectorSetItem */:return tk(t);default:E(e);}},t.write=function(t,e){let r=C(e);if(t.writeUint8(r),!D(e))switch(e.type){case\"array\"/* Array */:return W(t,e);case\"boolean\"/* Boolean */:return K(t,e);case\"color\"/* Color */:return H(t,e);case\"date\"/* Date */:return Y(t,e);case\"enum\"/* Enum */:return te(t,e);case\"file\"/* File */:return tn(t,e);case\"link\"/* Link */:return ta(t,e);case\"number\"/* Number */:return th(t,e);case\"object\"/* Object */:return td(t,e);case\"responsiveimage\"/* ResponsiveImage */:return ty(t,e);case\"richtext\"/* RichText */:return tw(t,e);case\"vectorsetitem\"/* VectorSetItem */:return tL(t,e);case\"string\"/* String */:return tS(t,e);default:E(e);}},t.compare=function(t,e,r){let i=C(t),n=C(e);if(i<n)return -1;if(i>n)return 1;if(D(t)||D(e))return 0;switch(t.type){case\"array\"/* Array */:return B(\"array\"/* Array */===e.type),$(t,e,r);case\"boolean\"/* Boolean */:return B(\"boolean\"/* Boolean */===e.type),G(t,e);case\"color\"/* Color */:return B(\"color\"/* Color */===e.type),X(t,e);case\"date\"/* Date */:return B(\"date\"/* Date */===e.type),Z(t,e);case\"enum\"/* Enum */:return B(\"enum\"/* Enum */===e.type),tr(t,e);case\"file\"/* File */:return B(\"file\"/* File */===e.type),ts(t,e);case\"link\"/* Link */:return B(\"link\"/* Link */===e.type),tu(t,e);case\"number\"/* Number */:return B(\"number\"/* Number */===e.type),tc(t,e);case\"object\"/* Object */:return B(\"object\"/* Object */===e.type),tg(t,e,r);case\"responsiveimage\"/* ResponsiveImage */:return B(\"responsiveimage\"/* ResponsiveImage */===e.type),tp(t,e);case\"richtext\"/* RichText */:return B(\"richtext\"/* RichText */===e.type),tb(t,e);case\"vectorsetitem\"/* VectorSetItem */:return B(\"vectorsetitem\"/* VectorSetItem */===e.type),tB(t,e);case\"string\"/* String */:return B(\"string\"/* String */===e.type),tU(t,e,r);default:E(t);}};})(r||(r={}));// src/code-generation/components/cms/bundled/models/DatabaseDictionaryIndexModel.ts\nvar tE=class e{sortEntries(){this.entries.sort((t,e)=>{for(let i=0;i<this.fieldNames.length;i++){let n=t.values[i],s=e.values[i],o=r.compare(n,s,this.options.collation);if(0!==o)return o;}return t.pointer.compare(e.pointer);});}static async deserialize(t,i){let n=new b(t),s=n.readJson(),o=n.readUint8(),a=[];for(let t=0;t<o;t++){let t=n.readString();a.push(t);}let u=new e(a,{collation:s}),l=n.readUint32(),h=()=>{let t=[];for(let e=0;e<o;e++){let e=r.read(n);t.push(e);}let e=R.read(n);u.entries.push({values:t,pointer:e});};for(let t=0;t<l;t++){let t=i?.();t&&await t,h();}return u;}serialize(){let t=new O;for(let e of(t.writeJson(this.options.collation),t.writeUint8(this.fieldNames.length),this.fieldNames))t.writeString(e);for(let e of(this.sortEntries(),t.writeUint32(this.entries.length),this.entries)){let{values:i,pointer:n}=e;for(let e of i)r.write(t,e);n.write(t);}return t.subarray();}addItem(t,e){let r=this.fieldNames.map(e=>t.getField(e)??null);this.entries.push({values:r,pointer:e});}constructor(e,r){t(this,\"fieldNames\",void 0),t(this,\"options\",void 0),t(this,\"entries\",[]),this.fieldNames=e,this.options=r;}},tM=3,tP=250,tT=[408,// Request Timeout\n429,// Too Many Requests\n500,// Internal Server Error\n502,// Bad Gateway\n503,// Service Unavailable\n504],tx=async(t,e)=>{let r=0;for(;;){try{let i=await fetch(t,e);if(!tT.includes(i.status)||++r>tM)return i;}catch(t){if(e?.signal?.aborted||++r>tM)throw t;}await tF(r);}};async function tF(t){let e=Math.floor(tP*(Math.random()+1)*2**(t-1));await new Promise(t=>{setTimeout(t,e);});}// src/code-generation/components/cms/bundled/rangeRequest.ts\nasync function tN(t,e){let r=tO(e),i=[],n=0;for(let t of r)i.push(`${t.from}-${t.to-1}`),n+=t.to-t.from;let s=new URL(t),o=i.join(\",\");s.searchParams.set(\"range\",o);let a=await tx(s);if(200!==a.status)throw Error(`Request failed: ${a.status} ${a.statusText}`);let u=await a.arrayBuffer(),l=new Uint8Array(u);if(l.length!==n)throw Error(\"Request failed: Unexpected response length\");let h=new tA,c=0;for(let t of r){let e=t.to-t.from,r=c+e,i=l.subarray(c,r);h.write(t.from,i),c=r;}return e.map(t=>h.read(t.from,t.to-t.from));}var tA=class{read(t,e){for(let r of this.chunks){if(t<r.start)break;if(t>r.end)continue;if(t+e>r.end)break;let i=t-r.start,n=i+e;return r.data.slice(i,n);}throw Error(\"Missing data\");}write(t,e){let r=t,i=r+e.length,n=0,s=this.chunks.length;for(;n<s;n++){let t=this.chunks[n];if(B(t,\"Missing chunk\"),!(r>t.end)){if(r>t.start){let i=r-t.start,n=t.data.subarray(0,i);e=tq(n,e),r=t.start;}break;}}for(;s>n;s--){let t=this.chunks[s-1];if(B(t,\"Missing chunk\"),!(i<t.start)){if(i<t.end){let r=i-t.start,n=t.data.subarray(r);e=tq(e,n),i=t.end;}break;}}let o={start:r,end:i,data:e},a=s-n;this.chunks.splice(n,a,o);}constructor(){t(this,\"chunks\",[]);}};function tq(t,e){let r=t.length+e.length,i=new Uint8Array(r);return i.set(t,0),i.set(e,t.length),i;}function tO(t){B(t.length>0,\"Must have at least one range\");let e=[...t].sort((t,e)=>t.from-e.from),r=[];for(let t of e){let e=r.length-1,i=r[e];i&&t.from<=i.to?r[e]={from:i.from,to:Math.max(i.to,t.to)}:r.push(t);}return r;}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nvar t_=class{async loadModel(){let[t]=await tN(this.options.url,[this.options.range]);return B(t,\"Failed to load model\"),tE.deserialize(t,()=>{let t=m(this.modelPrioritySources);return t?U({batch:!0,priority:t}):void 0;});}async getModel(t){return this.model||(t&&this.modelPrioritySources.add(t),this.modelPromise??=this.loadModel().finally(()=>{this.modelPrioritySources.clear();}),this.model??=await this.modelPromise),this.model;}async lookupItems(t,e){B(t.length===this.fields.length,\"Invalid query length\");let r=await this.getModel(e),i=[r.entries];for(let[r,n]of t.entries()){let t=[];for(let s of i){let i;let o=e?U({batch:!0,priority:v(e)}):void 0;switch(o&&await o,n.type){case\"All\"/* All */:i=[s];break;case\"Equals\"/* Equals */:i=this.queryEquals(s,n,r);break;case\"NotEquals\"/* NotEquals */:i=this.queryNotEquals(s,n,r);break;case\"LessThan\"/* LessThan */:i=this.queryLessThan(s,n,r);break;case\"GreaterThan\"/* GreaterThan */:i=this.queryGreaterThan(s,n,r);break;case\"Contains\"/* Contains */:i=await this.queryContains(s,n,r,e);break;case\"StartsWith\"/* StartsWith */:i=await this.queryStartsWith(s,n,r,e);break;case\"EndsWith\"/* EndsWith */:i=await this.queryEndsWith(s,n,r,e);break;default:E(n);}t.push(...i);}i=t;}let n=[];for(let t of i)for(let r of t){let t=e?U({batch:!0,priority:v(e)}):void 0;t&&await t;let i={};for(let t=0;t<this.options.fieldNames.length;t++){let e=this.options.fieldNames[t],n=r.values[t];i[e]=n;}n.push({pointer:r.pointer.toString(),data:i});}return n;}queryEquals(t,e,r){let i=this.getLeftMost(t,r,e.value),n=this.getRightMost(t,r,e.value),s=t.slice(i,n+1);return s.length>0?[s]:[];}queryNotEquals(t,e,r){let i=this.getLeftMost(t,r,e.value),n=this.getRightMost(t,r,e.value),s=[],o=t.slice(0,i);o.length>0&&s.push(o);let a=t.slice(n+1);return a.length>0&&s.push(a),s;}queryLessThan(t,e,r){let i=this.getRightMost(t,r,null);if(t=t.slice(i+1),e.inclusive){let i=this.getRightMost(t,r,e.value),n=t.slice(0,i+1);return n.length>0?[n]:[];}let n=this.getLeftMost(t,r,e.value),s=t.slice(0,n);return s.length>0?[s]:[];}queryGreaterThan(t,e,r){let i=this.getRightMost(t,r,null);if(t=t.slice(i+1),e.inclusive){let i=this.getLeftMost(t,r,e.value),n=t.slice(i);return n.length>0?[n]:[];}let n=this.getRightMost(t,r,e.value),s=t.slice(n+1);return s.length>0?[s]:[];}queryContains(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.includes(i);});}queryStartsWith(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.startsWith(i);});}queryEndsWith(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.endsWith(i);});}/**\n   * Returns the index of the left most entry that is equal to the target.\n   *\n   * ```text\n   *   Left most\n   *       ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the left most entry that is equal to the target.\n   */getLeftMost(t,e,i){let n=0,s=t.length;for(;n<s;){let o=n+s>>1,a=t[o],u=a.values[e];0>r.compare(u,i,this.collation)?n=o+1:s=o;}return n;}/**\n   * Returns the index of the right most entry that is equal to the target.\n   *\n   * ```text\n   *              Right most\n   *                   ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the right most entry that is equal to the target.\n   */getRightMost(t,e,i){let n=0,s=t.length;for(;n<s;){let o=n+s>>1,a=t[o],u=a.values[e];r.compare(u,i,this.collation)>0?s=o:n=o+1;}return s-1;}/**\n   * Finds all items that are matching the predicate and groups adjacent items together.\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param predicate The predicate to match the values against.\n   * @returns An array of chunks that match the predicate.\n   */async findItems(t,e,r,i){let n=[],s=0;for(let o=0;o<t.length;o++){let a=r?U({batch:!0,priority:v(r)}):void 0;a&&await a;let u=t[o],l=u.values[e],h=i(l);if(!h){if(s<o){let e=t.slice(s,o);n.push(e);}s=o+1;}}if(s<t.length){let e=t.slice(s);n.push(e);}return n;}constructor(e){t(this,\"options\",void 0),t(this,\"schema\",void 0),t(this,\"fields\",void 0),t(this,\"supportedLookupTypes\",[\"All\"/* All */,\"Equals\"/* Equals */,\"NotEquals\"/* NotEquals */,\"LessThan\"/* LessThan */,\"GreaterThan\"/* GreaterThan */,\"Contains\"/* Contains */,\"StartsWith\"/* StartsWith */,\"EndsWith\"/* EndsWith */]),t(this,\"modelPromise\",void 0),t(this,\"model\",void 0),t(this,\"modelPrioritySources\",/* @__PURE__ */new Set),t(this,\"collation\",void 0),this.options=e;let r={},i=[];for(let t of this.options.fieldNames){let e=this.options.collectionSchema[t];B(e,\"Missing definition for field\",t),r[t]=e,i.push({type:\"Identifier\",name:t});}this.schema=r,this.fields=i,this.collation=this.options.collation;}};// src/code-generation/components/cms/bundled/models/DatabaseItemModel.ts\nfunction tj(t){let e={},i=t.readUint16();for(let n=0;n<i;n++){let i=t.readString();e[i]=r.read(t);}return e;}// src/code-generation/components/cms/bundled/DatabaseCollection.ts?bundle\nfunction*tD(t){for(let e of t)yield*e.prioritySources;}var tR=class{scanItems(t){return this.itemsPromise?this.isScanning&&t&&this.scanPrioritySources.add(t):(this.isScanning=!0,t&&this.scanPrioritySources.add(t),this.itemsPromise=tx(this.url).then(async t=>{if(!t.ok)throw Error(`Request failed: ${t.status} ${t.statusText}`);let e=await t.arrayBuffer(),r=new Uint8Array(e),i=new b(r),n=[],s=i.readUint32();for(let t=0;t<s;t++){let t=m(this.scanPrioritySources),e=t?g({batch:!0,priority:t}):void 0;e&&await e;let r=i.getOffset(),s=tj(i),o=i.getOffset()-r,a=new R(this.id,r,o),u=a.toString(),l={pointer:u,data:s};this.itemLoader.prime({pointer:u,prioritySources:/* @__PURE__ */new Set},l),n.push(l);}return n;}).finally(()=>{this.isScanning=!1,this.scanPrioritySources.clear();})),this.itemsPromise;}resolveItem(t,e){let r=this.itemPrioritySources.get(t);r||(r=/* @__PURE__ */new Set,this.itemPrioritySources.set(t,r)),e&&r.add(e);let i=this.itemLoader.load({pointer:t,prioritySources:r}),n=()=>this.itemPrioritySources.delete(t);return i.then(n,n),i;}constructor(e,r){t(this,\"id\",void 0),t(this,\"url\",void 0),t(this,\"itemsPromise\",void 0),t(this,\"isScanning\",!1),t(this,\"scanPrioritySources\",/* @__PURE__ */new Set),t(this,\"itemPrioritySources\",/* @__PURE__ */new Map),t(this,\"itemLoader\",new d.default(async t=>{let e=t.map(({pointer:t})=>{let e=R.fromString(t);return{from:e.offset,to:e.offset+e.length};}),r=await tN(this.url,e),i=[];for(let e=0;e<r.length;e++){let n=m(tD(t)),s=n?g({batch:!0,priority:n}):void 0;s&&await s;let o=r[e];B(o,\"Missing range bytes\");let a=new b(o),u=tj(a),l=t[e]?.pointer;B(l,\"Missing pointer\"),i.push({pointer:l,data:u});}return i;},{// capping to 250 avoids overly long URLs that can cause requests to fail with 414\nmaxBatchSize:250,// Different route workflows can request the same item. Keep DataLoader's cache keyed by the\n// pointer while still carrying the strongest scheduling priority into the shared batch\ncacheKeyFn:t=>t.pointer})),this.id=e,this.url=r;}},tC=class{async scanItems(t){let e=await Promise.all(this.chunks.map(async e=>e.scanItems(t)));return e.flat();}resolveItems(t,e){return Promise.all(t.map(t=>{let r=R.fromString(t),i=this.chunks[r.chunkId];return B(i,\"Missing chunk\"),i.resolveItem(t,e);}));}compareItems(t,e){let r=R.fromString(t.pointer),i=R.fromString(e.pointer);return r.compare(i);}compareValues(t,e,i){return r.compare(t,e,i);}constructor(e){t(this,\"options\",void 0),t(this,\"id\",void 0),t(this,\"schema\",void 0),t(this,\"indexes\",void 0),t(this,\"resolveRichText\",void 0),t(this,\"resolveVectorSetItem\",void 0),t(this,\"chunks\",void 0),this.options=e,this.chunks=this.options.chunks.map((t,e)=>new tR(e,t)),this.schema=e.schema,this.indexes=e.indexes,this.resolveRichText=e.resolveRichText,this.resolveVectorSetItem=e.resolveVectorSetItem,this.id=e.id;}};export{tC as DatabaseCollection,t_ as DatabaseDictionaryIndex};\nexport const __FramerMetadata__ = {\"exports\":{\"DatabaseCollection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DatabaseDictionaryIndex\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{jsx as e}from\"react/jsx-runtime\";import{AutoBreakpointVariant as r,ComponentPresetsConsumer as t,Link as n,motion as o}from\"framer\";// ../../library/src/router/lazy.tsx\nimport{isValidElement as i}from\"react\";// ../../library/src/utils/utils.ts\nvar a,f,u=\"undefined\"!=typeof window,c=u&&\"function\"==typeof window.requestIdleCallback,l=\"preload\";function p(e){return\"object\"==typeof e&&null!==e&&!/*#__PURE__*/i(e)&&l in e;}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{Fragment as s,createElement as m}from\"react\";// src/code-generation/components/cms/bundled/assert.ts\nfunction d(e,...r){if(!e)throw Error(\"Assertion Error\"+(r.length>0?\": \"+r.join(\" \"):\"\"));}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nvar y=((a=y||{})[a.Fragment=1]=\"Fragment\",a[a.Link=2]=\"Link\",a[a.Module=3]=\"Module\",a[a.Tag=4]=\"Tag\",a[a.Text=5]=\"Text\",a),h=((f=h||{})[f.RichText=1]=\"RichText\",f[f.VectorSetItem=2]=\"VectorSetItem\",f);function x(e,r,t){for(let[n,o]of Object.entries(r)){let r=e[n];if(\"number\"==typeof o){e[n]=t(o,r);continue;}T(r,o,t);}}function T(e,r,t){if(\"number\"!=typeof r){if(Array.isArray(r)){if(!Array.isArray(e))return;let[n]=r;for(let r=0;r<e.length;r++){let o=e[r];\"number\"==typeof n?e[r]=t(n,o):T(o,n,t);}return;}null===e||\"object\"!=typeof e||Array.isArray(e)||x(e,r,t);}}function g(i){let a=/* @__PURE__ */new Map;return f=>{let u=a.get(f);if(u)return u;let c=JSON.parse(f),l=function a(f){switch(f[0]){case 1/* Fragment */:{let[,...e]=f,r=e.map(a);return /*#__PURE__*/m(s,void 0,...r);}case 2/* Link */:{let[,e,...r]=f,t=r.map(a);return /*#__PURE__*/m(n,e,...t);}case 3/* Module */:{let[,n,o,u]=f;x(o,u,(e,r)=>{if(1/* RichText */===e)return r?a(r):r;if(\"string\"!=typeof r)return r;let t=i[r];return t?(p(t)&&t.preload(),t):r;});let c=i[n];return d(c,\"Module not found\"),p(c)&&c.preload(),/*#__PURE__*/e(t,{componentIdentifier:n,children:t=>/*#__PURE__*/e(r,{component:c,props:{...t,...o}})});}case 4/* Tag */:{let[,e,r,...t]=f,n=t.map(a);if(\"a\"===e)return /*#__PURE__*/m(o.a,r,...n);return /*#__PURE__*/m(e,r,...n);}case 5/* Text */:{let[,e]=f;return e;}}}(c);return a.set(f,l),l;};}export{h as RichTextJsonPropKind,y as RichTextJsonType,g as getRichTextJsonResolver,x as mapRichTextJsonProps};\nexport const __FramerMetadata__ = {\"exports\":{\"RichTextJsonType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RichTextJsonPropKind\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mapRichTextJsonProps\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRichTextJsonResolver\":{\"type\":\"reactComponent\",\"name\":\"getRichTextJsonResolver\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (fc3086c)\nimport{addPropertyControls as e,ControlType as t,QueryEngine as l}from\"framer\";import{DatabaseCollection as i}from\"./RQxFoK7j3-0.js\";import{getRichTextJsonResolver as a}from\"./RQxFoK7j3-1.js\";let r={chC86DtwX:{isNullable:!0,type:t.String},createdAt:{isNullable:!0,type:t.Date},e211hmV7X:{isNullable:!0,type:t.String},GBQzEI0iF:{isNullable:!0,type:t.Number},HD5XcWHsw:{isNullable:!0,type:t.String},id:{isNullable:!1,type:t.String},kyE7niyBz:{isNullable:!0,type:t.String},naRooJk5o:{isNullable:!0,type:t.String},nextItemId:{isNullable:!0,type:t.String},ni6lf2eP1:{isNullable:!0,type:t.String},previousItemId:{isNullable:!0,type:t.String},r7Ml_WOpS:{isNullable:!0,type:t.String},SxYV3t4ob:{isNullable:!0,type:t.String},updatedAt:{isNullable:!0,type:t.Date},uSTGQ5TQo:{isNullable:!0,type:t.String},WOrWjTGlw:{isNullable:!0,type:t.String},xu0gV8Q7B:{isNullable:!0,type:t.String},Z3fhCvfn1:{isNullable:!0,type:t.String}},n=[],u=e=>{let t=n[e];if(t)return t().then(e=>e.default);},o={},p=a(o),y=new l,d={collectionByLocaleId:{default:new i({chunks:[new URL(\"./RQxFoK7j3-chunk-default-0.framercms\",import.meta.url).href.replace(\"/modules/\",\"/cms/\")],id:\"325e98a9-4606-4940-84c7-825d98360095default\",indexes:[],resolveRichText:p,resolveVectorSetItem:u,schema:r})},displayName:\"Site\",id:\"325e98a9-4606-4940-84c7-825d98360095\"};export default d;e(d,{Z3fhCvfn1:{preventLocalization:!1,title:\"Slug\",type:t.String},SxYV3t4ob:{defaultValue:\"\",title:\"Name\",type:t.String},naRooJk5o:{defaultValue:\"\",title:\"Role\",type:t.String},kyE7niyBz:{defaultValue:\"\",title:\"Tagline\",type:t.String},ni6lf2eP1:{defaultValue:\"\",title:\"Email\",type:t.String},r7Ml_WOpS:{defaultValue:\"\",title:\"City\",type:t.String},HD5XcWHsw:{defaultValue:\"\",title:\"Time Zone\",type:t.String},e211hmV7X:{defaultValue:\"\",title:\"Availability\",type:t.String},xu0gV8Q7B:{defaultValue:\"\",title:\"Resume Link\",type:t.String},WOrWjTGlw:{defaultValue:\"\",title:\"Socials\",type:t.String},chC86DtwX:{defaultValue:\"\",title:\"Years\",type:t.String},uSTGQ5TQo:{defaultValue:\"\",title:\"Booking Link\",type:t.String},GBQzEI0iF:{defaultValue:0,title:\"Order\",type:t.Number},createdAt:{title:\"Created\",type:t.Date},updatedAt:{title:\"Updated\",type:t.Date},previousItemId:{dataIdentifier:\"local-module:collection/RQxFoK7j3:default\",title:\"Previous\",type:t.CollectionReference},nextItemId:{dataIdentifier:\"local-module:collection/RQxFoK7j3:default\",title:\"Next\",type:t.CollectionReference}});export const enumToDisplayNameFunctions={};export const utils={async getSlugByRecordId(e,t){let[l]=await y.query({from:{data:d,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"Z3fhCvfn1\",type:\"Identifier\"}],where:{left:{name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.Z3fhCvfn1;},async getRecordIdBySlug(e,t){let[l]=await y.query({from:{data:d,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"id\",type:\"Identifier\"}],where:{left:{name:\"Z3fhCvfn1\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.id;}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"data\",\"name\":\"data\",\"annotations\":{\"framerSlug\":\"Z3fhCvfn1\",\"framerAutoSizeImages\":\"true\",\"framerCollectionId\":\"RQxFoK7j3\",\"framerColorSyntax\":\"false\",\"framerRecordIdKey\":\"id\",\"framerData\":\"true\",\"framerCollectionUtils\":\"1\",\"framerContractVersion\":\"1\",\"framerEnumToDisplayNameUtils\":\"2\"}},\"enumToDisplayNameFunctions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"utils\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t;}var e,r,i=Object.create,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,l=(t,e)=>function(){try{return e||(0,t[o(t)[0]])((e={exports:{}}).exports,e),e.exports;}catch(t){throw e=0,t;}},h=(t,e,r,i)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let a of o(e))u.call(t,a)||a===r||n(t,a,{get:()=>e[a],enumerable:!(i=s(e,a))||i.enumerable});return t;},c=(t,e,r)=>(r=null!=t?i(a(t)):{},h(// If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    !e&&t&&t.__esModule?r:n(r,\"default\",{value:t,enumerable:!0}),t)),f=l({\"../../../node_modules/dataloader/index.js\"(t,e){var r,i=/* @__PURE__ */function(){function t(t,e){if(\"function\"!=typeof t)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: \"+t+\".\");this._batchLoadFn=t,this._maxBatchSize=function(t){if(!(!t||!1!==t.batch))return 1;var e=t&&t.maxBatchSize;if(void 0===e)return 1/0;if(\"number\"!=typeof e||e<1)throw TypeError(\"maxBatchSize must be a positive number: \"+e);return e;}(e),this._batchScheduleFn=function(t){var e=t&&t.batchScheduleFn;if(void 0===e)return n;if(\"function\"!=typeof e)throw TypeError(\"batchScheduleFn must be a function: \"+e);return e;}(e),this._cacheKeyFn=function(t){var e=t&&t.cacheKeyFn;if(void 0===e)return function(t){return t;};if(\"function\"!=typeof e)throw TypeError(\"cacheKeyFn must be a function: \"+e);return e;}(e),this._cacheMap=function(t){if(!(!t||!1!==t.cache))return null;var e=t&&t.cacheMap;if(void 0===e)return /* @__PURE__ */new Map;if(null!==e){var r=[\"get\",\"set\",\"delete\",\"clear\"].filter(function(t){return e&&\"function\"!=typeof e[t];});if(0!==r.length)throw TypeError(\"Custom cacheMap missing methods: \"+r.join(\", \"));}return e;}(e),this._batch=null,this.name=e&&e.name?e.name:null;}var e=t.prototype;return e.load=function(t){if(null==t)throw TypeError(\"The loader.load() function must be called with a value, but got: \"+String(t)+\".\");var e=function(t){var e=t._batch;if(null!==e&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;var r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(function(){(function(t,e){var r;if(e.hasDispatched=!0,0===e.keys.length){o(e);return;}try{r=t._batchLoadFn(e.keys);}catch(r){return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: \"+String(r)+\".\"));}if(!r||\"function\"!=typeof r.then)return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: \"+String(r)+\".\"));r.then(function(t){if(!a(t))throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: \"+String(t)+\".\");if(t.length!==e.keys.length)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\\n\\nKeys:\\n\"+String(e.keys)+\"\\n\\nValues:\\n\"+String(t));o(e);for(var r=0;r<e.callbacks.length;r++){var i=t[r];i instanceof Error?e.callbacks[r].reject(i):e.callbacks[r].resolve(i);}}).catch(function(r){s(t,e,r);});})(t,r);}),r;}(this),r=this._cacheMap,i=this._cacheKeyFn(t);if(r){var n=r.get(i);if(n){var u=e.cacheHits||(e.cacheHits=[]);return new Promise(function(t){u.push(function(){t(n);});});}}e.keys.push(t);var l=new Promise(function(t,r){e.callbacks.push({resolve:t,reject:r});});return r&&r.set(i,l),l;},e.loadMany=function(t){if(!a(t))throw TypeError(\"The loader.loadMany() function must be called with Array<key> but got: \"+t+\".\");for(var e=[],r=0;r<t.length;r++)e.push(this.load(t[r]).catch(function(t){return t;}));return Promise.all(e);},e.clear=function(t){var e=this._cacheMap;if(e){var r=this._cacheKeyFn(t);e.delete(r);}return this;},e.clearAll=function(){var t=this._cacheMap;return t&&t.clear(),this;},e.prime=function(t,e){var r=this._cacheMap;if(r){var i,n=this._cacheKeyFn(t);void 0===r.get(n)&&(e instanceof Error?(i=Promise.reject(e)).catch(function(){}):i=Promise.resolve(e),r.set(n,i));}return this;},t;}(),n=\"object\"==typeof process&&\"function\"==typeof process.nextTick?function(t){r||(r=Promise.resolve()),r.then(function(){process.nextTick(t);});}:\"function\"==typeof setImmediate?function(t){setImmediate(t);}:function(t){setTimeout(t);};function s(t,e,r){o(e);for(var i=0;i<e.keys.length;i++)t.clear(e.keys[i]),e.callbacks[i].reject(r);}function o(t){if(t.cacheHits)for(var e=0;e<t.cacheHits.length;e++)t.cacheHits[e]();}function a(t){return\"object\"==typeof t&&null!==t&&\"number\"==typeof t.length&&(0===t.length||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1));}e.exports=i;}}),d=c(f(),1);import{yieldToMain as g}from\"framer\";// ../../shared/src/yield.ts\nfunction v(t){return\"function\"==typeof t?t():t;}var y={background:0,\"user-visible\":1,\"user-blocking\":2};function p(t,e){return y[t]>y[e];}// ../../library/src/utils/schedulerPriority.ts\nfunction m(t){let e;for(let r of t){let t=v(r);if((void 0===e||p(t,e))&&(e=t),\"user-blocking\"===e)break;}return e;}// src/code-generation/components/cms/bundled/BufferReader.ts\nvar w={Uint8:1,Uint16:2,Uint32:4,BigUint64:8,Int8:1,Int16:2,Int32:4,BigInt64:8,Float32:4,Float64:8},b=(e=class e{getOffset(){return this.offset;}ensureLength(t){let e=this.bytes.length;if(!(this.offset+t<=e))throw Error(\"Reading out of bounds\");}readUint8(){let t=w.Uint8;this.ensureLength(t);let e=this.view.getUint8(this.offset);return this.offset+=t,e;}readUint16(){let t=w.Uint16;this.ensureLength(t);let e=this.view.getUint16(this.offset);return this.offset+=t,e;}readUint32(){let t=w.Uint32;this.ensureLength(t);let e=this.view.getUint32(this.offset);return this.offset+=t,e;}readUint64(){let t=this.readBigUint64();return Number(t);}readBigUint64(){let t=w.BigUint64;this.ensureLength(t);let e=this.view.getBigUint64(this.offset);return this.offset+=t,e;}readInt8(){let t=w.Int8;this.ensureLength(t);let e=this.view.getInt8(this.offset);return this.offset+=t,e;}readInt16(){let t=w.Int16;this.ensureLength(t);let e=this.view.getInt16(this.offset);return this.offset+=t,e;}readInt32(){let t=w.Int32;this.ensureLength(t);let e=this.view.getInt32(this.offset);return this.offset+=t,e;}readInt64(){let t=this.readBigInt64();return Number(t);}readBigInt64(){let t=w.BigInt64;this.ensureLength(t);let e=this.view.getBigInt64(this.offset);return this.offset+=t,e;}readFloat32(){let t=w.Float32;this.ensureLength(t);let e=this.view.getFloat32(this.offset);return this.offset+=t,e;}readFloat64(){let t=w.Float64;this.ensureLength(t);let e=this.view.getFloat64(this.offset);return this.offset+=t,e;}readBytes(t){let e=this.offset,r=e+t,i=this.bytes.subarray(e,r);return this.offset=r,i;}readString(){let t=this.readUint32(),r=this.readBytes(t);return e.textDecoder.decode(r);}readJson(){let t=this.readString();return JSON.parse(t);}constructor(e){t(this,\"bytes\",void 0),t(this,\"offset\",0),t(this,\"view\",void 0),this.bytes=e,this.view=I(this.bytes);}},// TextDecoder has no per-decode state unless streaming is enabled. Reusing one class-owned decoder\n// avoids constructing one for every CMS item, where each item gets its own BufferReader.\nt(e,\"textDecoder\",new TextDecoder),e);function I(t){return new DataView(t.buffer,t.byteOffset,t.byteLength);}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nimport{ControlType as S,yieldToMain as U}from\"framer\";// ../../library/src/utils/utils.ts\nvar k=\"undefined\"!=typeof window,L=k&&\"function\"==typeof window.requestIdleCallback;// src/code-generation/components/cms/bundled/assert.ts\nfunction B(t,...e){if(!t)throw Error(\"Assertion Error\"+(e.length>0?\": \"+e.join(\" \"):\"\"));}function E(t){throw Error(`Unexpected value: ${t}`);}// src/code-generation/components/cms/bundled/BufferWriter.ts\nvar M=1024,P=1.5,T=t=>2**t-1,x=t=>-(2**(t-1)),F=t=>2**(t-1)-1,N={Uint8:0,Uint16:0,Uint32:0,Uint64:0,BigUint64:0,Int8:x(8),Int16:x(16),Int32:x(32),Int64:Number.MIN_SAFE_INTEGER,BigInt64:-(BigInt(2)**BigInt(63))},A={Uint8:T(8),Uint16:T(16),Uint32:T(32),Uint64:Number.MAX_SAFE_INTEGER,BigUint64:BigInt(2)**BigInt(64)-BigInt(1),Int8:F(8),Int16:F(16),Int32:F(32),Int64:Number.MAX_SAFE_INTEGER,BigInt64:BigInt(2)**BigInt(63)-BigInt(1)};function q(t,e,r,i){B(t>=e,t,\"outside lower bound for\",i),B(t<=r,t,\"outside upper bound for\",i);}var O=class{getOffset(){return this.offset;}slice(t=0,e=this.offset){return this.bytes.slice(t,e);}subarray(t=0,e=this.offset){return this.bytes.subarray(t,e);}ensureLength(t){let e=this.bytes.length;if(this.offset+t<=e)return;let r=new Uint8Array(Math.ceil(e*P)+t);r.set(this.bytes),this.bytes=r,this.view=I(r);}writeUint8(t){q(t,N.Uint8,A.Uint8,\"Uint8\");let e=w.Uint8;this.ensureLength(e),this.view.setUint8(this.offset,t),this.offset+=e;}writeUint16(t){q(t,N.Uint16,A.Uint16,\"Uint16\");let e=w.Uint16;this.ensureLength(e),this.view.setUint16(this.offset,t),this.offset+=e;}writeUint32(t){q(t,N.Uint32,A.Uint32,\"Uint32\");let e=w.Uint32;this.ensureLength(e),this.view.setUint32(this.offset,t),this.offset+=e;}writeUint64(t){q(t,N.Uint64,A.Uint64,\"Uint64\");let e=BigInt(t);this.writeBigUint64(e);}writeBigUint64(t){q(t,N.BigUint64,A.BigUint64,\"BigUint64\");let e=w.BigUint64;this.ensureLength(e),this.view.setBigUint64(this.offset,t),this.offset+=e;}writeInt8(t){q(t,N.Int8,A.Int8,\"Int8\");let e=w.Int8;this.ensureLength(e),this.view.setInt8(this.offset,t),this.offset+=e;}writeInt16(t){q(t,N.Int16,A.Int16,\"Int16\");let e=w.Int16;this.ensureLength(e),this.view.setInt16(this.offset,t),this.offset+=e;}writeInt32(t){q(t,N.Int32,A.Int32,\"Int32\");let e=w.Int32;this.ensureLength(e),this.view.setInt32(this.offset,t),this.offset+=e;}writeInt64(t){q(t,N.Int64,A.Int64,\"Int64\");let e=BigInt(t);this.writeBigInt64(e);}writeBigInt64(t){q(t,N.BigInt64,A.BigInt64,\"BigInt64\");let e=w.BigInt64;this.ensureLength(e),this.view.setBigInt64(this.offset,t),this.offset+=e;}writeFloat32(t){let e=w.Float32;this.ensureLength(e),this.view.setFloat32(this.offset,t),this.offset+=e;}writeFloat64(t){let e=w.Float64;this.ensureLength(e),this.view.setFloat64(this.offset,t),this.offset+=e;}writeBytes(t){let e=t.length;this.ensureLength(e),this.bytes.set(t,this.offset),this.offset+=e;}encodeString(t){let e=this.encodedStrings.get(t);if(e)return e;let r=this.encoder.encode(t);return this.encodedStrings.set(t,r),r;}writeString(t){let e=this.encodeString(t),r=e.length;this.writeUint32(r),this.writeBytes(e);}writeJson(t){let e=JSON.stringify(t);this.writeString(e);}constructor(){t(this,\"offset\",0),t(this,\"bytes\",new Uint8Array(M)),t(this,\"view\",I(this.bytes)),t(this,\"encoder\",new TextEncoder),t(this,\"encodedStrings\",/* @__PURE__ */new Map);}};// src/utils/typeChecks.ts\nfunction _(t){return\"string\"==typeof t;}function j(t){return Number.isFinite(t);}function D(t){return null===t;}// src/code-generation/components/cms/bundled/models/DatabaseItemPointerModel.ts\nvar R=class e{static fromString(t){let[r,i,n]=t.split(\"/\").map(Number);return B(j(r),\"Invalid chunkId\"),B(j(i),\"Invalid offset\"),B(j(n),\"Invalid length\"),new e(r,i,n);}toString(){return`${this.chunkId}/${this.offset}/${this.length}`;}static read(t){let r=t.readUint16(),i=t.readUint32(),n=t.readUint32();return new e(r,i,n);}write(t){t.writeUint16(this.chunkId),t.writeUint32(this.offset),t.writeUint32(this.length);}compare(t){return this.chunkId<t.chunkId?-1:this.chunkId>t.chunkId?1:this.offset<t.offset?-1:this.offset>t.offset?1:(B(this.length===t.length),0);}constructor(e,r,i){t(this,\"chunkId\",void 0),t(this,\"offset\",void 0),t(this,\"length\",void 0),this.chunkId=e,this.offset=r,this.length=i;}};// src/code-generation/components/cms/bundled/models/DatabaseValueModel.ts\nfunction C(t){if(D(t))return 0/* Null */;switch(t.type){case\"array\"/* Array */:return 1/* Array */;case\"boolean\"/* Boolean */:return 2/* Boolean */;case\"color\"/* Color */:return 3/* Color */;case\"date\"/* Date */:return 4/* Date */;case\"enum\"/* Enum */:return 5/* Enum */;case\"file\"/* File */:return 6/* File */;case\"responsiveimage\"/* ResponsiveImage */:return 10/* ResponsiveImage */;case\"link\"/* Link */:return 7/* Link */;case\"number\"/* Number */:return 8/* Number */;case\"object\"/* Object */:return 9/* Object */;case\"richtext\"/* RichText */:return 11/* RichText */;case\"string\"/* String */:return 12/* String */;case\"vectorsetitem\"/* VectorSetItem */:return 13/* VectorSetItem */;default:E(t);}}function J(t){let e=t.readUint16(),i=[];for(let n=0;n<e;n++){let e=r.read(t);i.push(e);}return{type:\"array\"/* Array */,value:i};}function W(t,e){for(let i of(t.writeUint16(e.value.length),e.value))r.write(t,i);}function $(t,e,i){let n=t.value.length,s=e.value.length;if(n<s)return -1;if(n>s)return 1;for(let s=0;s<n;s++){let n=t.value[s],o=e.value[s],a=r.compare(n,o,i);if(0!==a)return a;}return 0;}function z(t){return{type:\"boolean\"/* Boolean */,value:0!==t.readUint8()};}function K(t,e){t.writeUint8(e.value?1:0);}function G(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function V(t){return{type:\"color\"/* Color */,value:t.readString()};}function H(t,e){t.writeString(e.value);}function X(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function Q(t){let e=t.readInt64(),r=new Date(e);return{type:\"date\"/* Date */,value:r.toISOString()};}function Y(t,e){let r=new Date(e.value),i=r.getTime();t.writeInt64(i);}function Z(t,e){let r=new Date(t.value),i=new Date(e.value);return r<i?-1:r>i?1:0;}function tt(t){return{type:\"enum\"/* Enum */,value:t.readString()};}function te(t,e){t.writeString(e.value);}function tr(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function ti(t){return{type:\"file\"/* File */,value:t.readString()};}function tn(t,e){t.writeString(e.value);}function ts(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function to(t){return{type:\"link\"/* Link */,value:t.readJson()};}function ta(t,e){t.writeJson(e.value);}function tu(t,e){let r=JSON.stringify(t.value),i=JSON.stringify(e.value);return r<i?-1:r>i?1:0;}function tl(t){return{type:\"number\"/* Number */,value:t.readFloat64()};}function th(t,e){t.writeFloat64(e.value);}function tc(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function tf(t){let e=t.readUint16(),i={};for(let n=0;n<e;n++){let e=t.readString();i[e]=r.read(t);}return{type:\"object\"/* Object */,value:i};}function td(t,e){let i=Object.entries(e.value);for(let[e,n]of(t.writeUint16(i.length),i))t.writeString(e),r.write(t,n);}function tg(t,e,i){let n=Object.keys(t.value).sort(),s=Object.keys(e.value).sort();if(n.length<s.length)return -1;if(n.length>s.length)return 1;for(let o=0;o<n.length;o++){let a=n[o],u=s[o];if(a<u)return -1;if(a>u)return 1;let l=t.value[a]??null,h=e.value[u]??null,c=r.compare(l,h,i);if(0!==c)return c;}return 0;}function tv(t){return{type:\"responsiveimage\"/* ResponsiveImage */,value:t.readJson()};}function ty(t,e){t.writeJson(e.value);}function tp(t,e){let r=JSON.stringify(t.value),i=JSON.stringify(e.value);return r<i?-1:r>i?1:0;}function tm(t){let e=t.readInt8();if(0===e)return{type:\"richtext\"/* RichText */,value:t.readUint32()};if(1===e)return{type:\"richtext\"/* RichText */,value:t.readString()};throw Error(\"Invalid rich text pointer\");}function tw(t,e){if(j(e.value)){t.writeInt8(0),t.writeUint32(e.value);return;}if(_(e.value)){t.writeInt8(1),t.writeString(e.value);return;}throw Error(\"Invalid rich text pointer\");}function tb(t,e){let r=t.value,i=e.value;if(j(r)&&j(i)||_(r)&&_(i))return r<i?-1:r>i?1:0;throw Error(\"Invalid rich text pointer\");}function tI(t){return{type:\"string\"/* String */,value:t.readString()};}function tS(t,e){t.writeString(e.value);}function tU(t,e,r){let i=t.value,n=e.value;return(0/* CaseInsensitive */===r.type&&(i=t.value.toLowerCase(),n=e.value.toLowerCase()),i<n)?-1:i>n?1:0;}function tk(t){return{type:\"vectorsetitem\"/* VectorSetItem */,value:t.readUint32()};}function tL(t,e){t.writeUint32(e.value);}function tB(t,e){let r=t.value,i=e.value;return r<i?-1:r>i?1:0;}(t=>{t.read=function(t){let e=t.readUint8();switch(e){case 0/* Null */:return null;case 1/* Array */:return J(t);case 2/* Boolean */:return z(t);case 3/* Color */:return V(t);case 4/* Date */:return Q(t);case 5/* Enum */:return tt(t);case 6/* File */:return ti(t);case 7/* Link */:return to(t);case 8/* Number */:return tl(t);case 9/* Object */:return tf(t);case 10/* ResponsiveImage */:return tv(t);case 11/* RichText */:return tm(t);case 12/* String */:return tI(t);case 13/* VectorSetItem */:return tk(t);default:E(e);}},t.write=function(t,e){let r=C(e);if(t.writeUint8(r),!D(e))switch(e.type){case\"array\"/* Array */:return W(t,e);case\"boolean\"/* Boolean */:return K(t,e);case\"color\"/* Color */:return H(t,e);case\"date\"/* Date */:return Y(t,e);case\"enum\"/* Enum */:return te(t,e);case\"file\"/* File */:return tn(t,e);case\"link\"/* Link */:return ta(t,e);case\"number\"/* Number */:return th(t,e);case\"object\"/* Object */:return td(t,e);case\"responsiveimage\"/* ResponsiveImage */:return ty(t,e);case\"richtext\"/* RichText */:return tw(t,e);case\"vectorsetitem\"/* VectorSetItem */:return tL(t,e);case\"string\"/* String */:return tS(t,e);default:E(e);}},t.compare=function(t,e,r){let i=C(t),n=C(e);if(i<n)return -1;if(i>n)return 1;if(D(t)||D(e))return 0;switch(t.type){case\"array\"/* Array */:return B(\"array\"/* Array */===e.type),$(t,e,r);case\"boolean\"/* Boolean */:return B(\"boolean\"/* Boolean */===e.type),G(t,e);case\"color\"/* Color */:return B(\"color\"/* Color */===e.type),X(t,e);case\"date\"/* Date */:return B(\"date\"/* Date */===e.type),Z(t,e);case\"enum\"/* Enum */:return B(\"enum\"/* Enum */===e.type),tr(t,e);case\"file\"/* File */:return B(\"file\"/* File */===e.type),ts(t,e);case\"link\"/* Link */:return B(\"link\"/* Link */===e.type),tu(t,e);case\"number\"/* Number */:return B(\"number\"/* Number */===e.type),tc(t,e);case\"object\"/* Object */:return B(\"object\"/* Object */===e.type),tg(t,e,r);case\"responsiveimage\"/* ResponsiveImage */:return B(\"responsiveimage\"/* ResponsiveImage */===e.type),tp(t,e);case\"richtext\"/* RichText */:return B(\"richtext\"/* RichText */===e.type),tb(t,e);case\"vectorsetitem\"/* VectorSetItem */:return B(\"vectorsetitem\"/* VectorSetItem */===e.type),tB(t,e);case\"string\"/* String */:return B(\"string\"/* String */===e.type),tU(t,e,r);default:E(t);}};})(r||(r={}));// src/code-generation/components/cms/bundled/models/DatabaseDictionaryIndexModel.ts\nvar tE=class e{sortEntries(){this.entries.sort((t,e)=>{for(let i=0;i<this.fieldNames.length;i++){let n=t.values[i],s=e.values[i],o=r.compare(n,s,this.options.collation);if(0!==o)return o;}return t.pointer.compare(e.pointer);});}static async deserialize(t,i){let n=new b(t),s=n.readJson(),o=n.readUint8(),a=[];for(let t=0;t<o;t++){let t=n.readString();a.push(t);}let u=new e(a,{collation:s}),l=n.readUint32(),h=()=>{let t=[];for(let e=0;e<o;e++){let e=r.read(n);t.push(e);}let e=R.read(n);u.entries.push({values:t,pointer:e});};for(let t=0;t<l;t++){let t=i?.();t&&await t,h();}return u;}serialize(){let t=new O;for(let e of(t.writeJson(this.options.collation),t.writeUint8(this.fieldNames.length),this.fieldNames))t.writeString(e);for(let e of(this.sortEntries(),t.writeUint32(this.entries.length),this.entries)){let{values:i,pointer:n}=e;for(let e of i)r.write(t,e);n.write(t);}return t.subarray();}addItem(t,e){let r=this.fieldNames.map(e=>t.getField(e)??null);this.entries.push({values:r,pointer:e});}constructor(e,r){t(this,\"fieldNames\",void 0),t(this,\"options\",void 0),t(this,\"entries\",[]),this.fieldNames=e,this.options=r;}},tM=3,tP=250,tT=[408,// Request Timeout\n429,// Too Many Requests\n500,// Internal Server Error\n502,// Bad Gateway\n503,// Service Unavailable\n504],tx=async(t,e)=>{let r=0;for(;;){try{let i=await fetch(t,e);if(!tT.includes(i.status)||++r>tM)return i;}catch(t){if(e?.signal?.aborted||++r>tM)throw t;}await tF(r);}};async function tF(t){let e=Math.floor(tP*(Math.random()+1)*2**(t-1));await new Promise(t=>{setTimeout(t,e);});}// src/code-generation/components/cms/bundled/rangeRequest.ts\nasync function tN(t,e){let r=tO(e),i=[],n=0;for(let t of r)i.push(`${t.from}-${t.to-1}`),n+=t.to-t.from;let s=new URL(t),o=i.join(\",\");s.searchParams.set(\"range\",o);let a=await tx(s);if(200!==a.status)throw Error(`Request failed: ${a.status} ${a.statusText}`);let u=await a.arrayBuffer(),l=new Uint8Array(u);if(l.length!==n)throw Error(\"Request failed: Unexpected response length\");let h=new tA,c=0;for(let t of r){let e=t.to-t.from,r=c+e,i=l.subarray(c,r);h.write(t.from,i),c=r;}return e.map(t=>h.read(t.from,t.to-t.from));}var tA=class{read(t,e){for(let r of this.chunks){if(t<r.start)break;if(t>r.end)continue;if(t+e>r.end)break;let i=t-r.start,n=i+e;return r.data.slice(i,n);}throw Error(\"Missing data\");}write(t,e){let r=t,i=r+e.length,n=0,s=this.chunks.length;for(;n<s;n++){let t=this.chunks[n];if(B(t,\"Missing chunk\"),!(r>t.end)){if(r>t.start){let i=r-t.start,n=t.data.subarray(0,i);e=tq(n,e),r=t.start;}break;}}for(;s>n;s--){let t=this.chunks[s-1];if(B(t,\"Missing chunk\"),!(i<t.start)){if(i<t.end){let r=i-t.start,n=t.data.subarray(r);e=tq(e,n),i=t.end;}break;}}let o={start:r,end:i,data:e},a=s-n;this.chunks.splice(n,a,o);}constructor(){t(this,\"chunks\",[]);}};function tq(t,e){let r=t.length+e.length,i=new Uint8Array(r);return i.set(t,0),i.set(e,t.length),i;}function tO(t){B(t.length>0,\"Must have at least one range\");let e=[...t].sort((t,e)=>t.from-e.from),r=[];for(let t of e){let e=r.length-1,i=r[e];i&&t.from<=i.to?r[e]={from:i.from,to:Math.max(i.to,t.to)}:r.push(t);}return r;}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nvar t_=class{async loadModel(){let[t]=await tN(this.options.url,[this.options.range]);return B(t,\"Failed to load model\"),tE.deserialize(t,()=>{let t=m(this.modelPrioritySources);return t?U({batch:!0,priority:t}):void 0;});}async getModel(t){return this.model||(t&&this.modelPrioritySources.add(t),this.modelPromise??=this.loadModel().finally(()=>{this.modelPrioritySources.clear();}),this.model??=await this.modelPromise),this.model;}async lookupItems(t,e){B(t.length===this.fields.length,\"Invalid query length\");let r=await this.getModel(e),i=[r.entries];for(let[r,n]of t.entries()){let t=[];for(let s of i){let i;let o=e?U({batch:!0,priority:v(e)}):void 0;switch(o&&await o,n.type){case\"All\"/* All */:i=[s];break;case\"Equals\"/* Equals */:i=this.queryEquals(s,n,r);break;case\"NotEquals\"/* NotEquals */:i=this.queryNotEquals(s,n,r);break;case\"LessThan\"/* LessThan */:i=this.queryLessThan(s,n,r);break;case\"GreaterThan\"/* GreaterThan */:i=this.queryGreaterThan(s,n,r);break;case\"Contains\"/* Contains */:i=await this.queryContains(s,n,r,e);break;case\"StartsWith\"/* StartsWith */:i=await this.queryStartsWith(s,n,r,e);break;case\"EndsWith\"/* EndsWith */:i=await this.queryEndsWith(s,n,r,e);break;default:E(n);}t.push(...i);}i=t;}let n=[];for(let t of i)for(let r of t){let t=e?U({batch:!0,priority:v(e)}):void 0;t&&await t;let i={};for(let t=0;t<this.options.fieldNames.length;t++){let e=this.options.fieldNames[t],n=r.values[t];i[e]=n;}n.push({pointer:r.pointer.toString(),data:i});}return n;}queryEquals(t,e,r){let i=this.getLeftMost(t,r,e.value),n=this.getRightMost(t,r,e.value),s=t.slice(i,n+1);return s.length>0?[s]:[];}queryNotEquals(t,e,r){let i=this.getLeftMost(t,r,e.value),n=this.getRightMost(t,r,e.value),s=[],o=t.slice(0,i);o.length>0&&s.push(o);let a=t.slice(n+1);return a.length>0&&s.push(a),s;}queryLessThan(t,e,r){let i=this.getRightMost(t,r,null);if(t=t.slice(i+1),e.inclusive){let i=this.getRightMost(t,r,e.value),n=t.slice(0,i+1);return n.length>0?[n]:[];}let n=this.getLeftMost(t,r,e.value),s=t.slice(0,n);return s.length>0?[s]:[];}queryGreaterThan(t,e,r){let i=this.getRightMost(t,r,null);if(t=t.slice(i+1),e.inclusive){let i=this.getLeftMost(t,r,e.value),n=t.slice(i);return n.length>0?[n]:[];}let n=this.getRightMost(t,r,e.value),s=t.slice(n+1);return s.length>0?[s]:[];}queryContains(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.includes(i);});}queryStartsWith(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.startsWith(i);});}queryEndsWith(t,e,r,i){return this.findItems(t,r,i,t=>{if(t?.type!==S.String||e.value?.type!==S.String)return!1;let r=t.value,i=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),i=i.toLowerCase()),r.endsWith(i);});}/**\n   * Returns the index of the left most entry that is equal to the target.\n   *\n   * ```text\n   *   Left most\n   *       ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the left most entry that is equal to the target.\n   */getLeftMost(t,e,i){let n=0,s=t.length;for(;n<s;){let o=n+s>>1,a=t[o],u=a.values[e];0>r.compare(u,i,this.collation)?n=o+1:s=o;}return n;}/**\n   * Returns the index of the right most entry that is equal to the target.\n   *\n   * ```text\n   *              Right most\n   *                   ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the right most entry that is equal to the target.\n   */getRightMost(t,e,i){let n=0,s=t.length;for(;n<s;){let o=n+s>>1,a=t[o],u=a.values[e];r.compare(u,i,this.collation)>0?s=o:n=o+1;}return s-1;}/**\n   * Finds all items that are matching the predicate and groups adjacent items together.\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param predicate The predicate to match the values against.\n   * @returns An array of chunks that match the predicate.\n   */async findItems(t,e,r,i){let n=[],s=0;for(let o=0;o<t.length;o++){let a=r?U({batch:!0,priority:v(r)}):void 0;a&&await a;let u=t[o],l=u.values[e],h=i(l);if(!h){if(s<o){let e=t.slice(s,o);n.push(e);}s=o+1;}}if(s<t.length){let e=t.slice(s);n.push(e);}return n;}constructor(e){t(this,\"options\",void 0),t(this,\"schema\",void 0),t(this,\"fields\",void 0),t(this,\"supportedLookupTypes\",[\"All\"/* All */,\"Equals\"/* Equals */,\"NotEquals\"/* NotEquals */,\"LessThan\"/* LessThan */,\"GreaterThan\"/* GreaterThan */,\"Contains\"/* Contains */,\"StartsWith\"/* StartsWith */,\"EndsWith\"/* EndsWith */]),t(this,\"modelPromise\",void 0),t(this,\"model\",void 0),t(this,\"modelPrioritySources\",/* @__PURE__ */new Set),t(this,\"collation\",void 0),this.options=e;let r={},i=[];for(let t of this.options.fieldNames){let e=this.options.collectionSchema[t];B(e,\"Missing definition for field\",t),r[t]=e,i.push({type:\"Identifier\",name:t});}this.schema=r,this.fields=i,this.collation=this.options.collation;}};// src/code-generation/components/cms/bundled/models/DatabaseItemModel.ts\nfunction tj(t){let e={},i=t.readUint16();for(let n=0;n<i;n++){let i=t.readString();e[i]=r.read(t);}return e;}// src/code-generation/components/cms/bundled/DatabaseCollection.ts?bundle\nfunction*tD(t){for(let e of t)yield*e.prioritySources;}var tR=class{scanItems(t){return this.itemsPromise?this.isScanning&&t&&this.scanPrioritySources.add(t):(this.isScanning=!0,t&&this.scanPrioritySources.add(t),this.itemsPromise=tx(this.url).then(async t=>{if(!t.ok)throw Error(`Request failed: ${t.status} ${t.statusText}`);let e=await t.arrayBuffer(),r=new Uint8Array(e),i=new b(r),n=[],s=i.readUint32();for(let t=0;t<s;t++){let t=m(this.scanPrioritySources),e=t?g({batch:!0,priority:t}):void 0;e&&await e;let r=i.getOffset(),s=tj(i),o=i.getOffset()-r,a=new R(this.id,r,o),u=a.toString(),l={pointer:u,data:s};this.itemLoader.prime({pointer:u,prioritySources:/* @__PURE__ */new Set},l),n.push(l);}return n;}).finally(()=>{this.isScanning=!1,this.scanPrioritySources.clear();})),this.itemsPromise;}resolveItem(t,e){let r=this.itemPrioritySources.get(t);r||(r=/* @__PURE__ */new Set,this.itemPrioritySources.set(t,r)),e&&r.add(e);let i=this.itemLoader.load({pointer:t,prioritySources:r}),n=()=>this.itemPrioritySources.delete(t);return i.then(n,n),i;}constructor(e,r){t(this,\"id\",void 0),t(this,\"url\",void 0),t(this,\"itemsPromise\",void 0),t(this,\"isScanning\",!1),t(this,\"scanPrioritySources\",/* @__PURE__ */new Set),t(this,\"itemPrioritySources\",/* @__PURE__ */new Map),t(this,\"itemLoader\",new d.default(async t=>{let e=t.map(({pointer:t})=>{let e=R.fromString(t);return{from:e.offset,to:e.offset+e.length};}),r=await tN(this.url,e),i=[];for(let e=0;e<r.length;e++){let n=m(tD(t)),s=n?g({batch:!0,priority:n}):void 0;s&&await s;let o=r[e];B(o,\"Missing range bytes\");let a=new b(o),u=tj(a),l=t[e]?.pointer;B(l,\"Missing pointer\"),i.push({pointer:l,data:u});}return i;},{// capping to 250 avoids overly long URLs that can cause requests to fail with 414\nmaxBatchSize:250,// Different route workflows can request the same item. Keep DataLoader's cache keyed by the\n// pointer while still carrying the strongest scheduling priority into the shared batch\ncacheKeyFn:t=>t.pointer})),this.id=e,this.url=r;}},tC=class{async scanItems(t){let e=await Promise.all(this.chunks.map(async e=>e.scanItems(t)));return e.flat();}resolveItems(t,e){return Promise.all(t.map(t=>{let r=R.fromString(t),i=this.chunks[r.chunkId];return B(i,\"Missing chunk\"),i.resolveItem(t,e);}));}compareItems(t,e){let r=R.fromString(t.pointer),i=R.fromString(e.pointer);return r.compare(i);}compareValues(t,e,i){return r.compare(t,e,i);}constructor(e){t(this,\"options\",void 0),t(this,\"id\",void 0),t(this,\"schema\",void 0),t(this,\"indexes\",void 0),t(this,\"resolveRichText\",void 0),t(this,\"resolveVectorSetItem\",void 0),t(this,\"chunks\",void 0),this.options=e,this.chunks=this.options.chunks.map((t,e)=>new tR(e,t)),this.schema=e.schema,this.indexes=e.indexes,this.resolveRichText=e.resolveRichText,this.resolveVectorSetItem=e.resolveVectorSetItem,this.id=e.id;}};export{tC as DatabaseCollection,t_ as DatabaseDictionaryIndex};\nexport const __FramerMetadata__ = {\"exports\":{\"DatabaseDictionaryIndex\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DatabaseCollection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{jsx as e}from\"react/jsx-runtime\";import{AutoBreakpointVariant as r,ComponentPresetsConsumer as t,Link as n,motion as o}from\"framer\";// ../../library/src/router/lazy.tsx\nimport{isValidElement as i}from\"react\";// ../../library/src/utils/utils.ts\nvar a,f,u=\"undefined\"!=typeof window,c=u&&\"function\"==typeof window.requestIdleCallback,l=\"preload\";function p(e){return\"object\"==typeof e&&null!==e&&!/*#__PURE__*/i(e)&&l in e;}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{Fragment as s,createElement as m}from\"react\";// src/code-generation/components/cms/bundled/assert.ts\nfunction d(e,...r){if(!e)throw Error(\"Assertion Error\"+(r.length>0?\": \"+r.join(\" \"):\"\"));}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nvar y=((a=y||{})[a.Fragment=1]=\"Fragment\",a[a.Link=2]=\"Link\",a[a.Module=3]=\"Module\",a[a.Tag=4]=\"Tag\",a[a.Text=5]=\"Text\",a),h=((f=h||{})[f.RichText=1]=\"RichText\",f[f.VectorSetItem=2]=\"VectorSetItem\",f);function x(e,r,t){for(let[n,o]of Object.entries(r)){let r=e[n];if(\"number\"==typeof o){e[n]=t(o,r);continue;}T(r,o,t);}}function T(e,r,t){if(\"number\"!=typeof r){if(Array.isArray(r)){if(!Array.isArray(e))return;let[n]=r;for(let r=0;r<e.length;r++){let o=e[r];\"number\"==typeof n?e[r]=t(n,o):T(o,n,t);}return;}null===e||\"object\"!=typeof e||Array.isArray(e)||x(e,r,t);}}function g(i){let a=/* @__PURE__ */new Map;return f=>{let u=a.get(f);if(u)return u;let c=JSON.parse(f),l=function a(f){switch(f[0]){case 1/* Fragment */:{let[,...e]=f,r=e.map(a);return /*#__PURE__*/m(s,void 0,...r);}case 2/* Link */:{let[,e,...r]=f,t=r.map(a);return /*#__PURE__*/m(n,e,...t);}case 3/* Module */:{let[,n,o,u]=f;x(o,u,(e,r)=>{if(1/* RichText */===e)return r?a(r):r;if(\"string\"!=typeof r)return r;let t=i[r];return t?(p(t)&&t.preload(),t):r;});let c=i[n];return d(c,\"Module not found\"),p(c)&&c.preload(),/*#__PURE__*/e(t,{componentIdentifier:n,children:t=>/*#__PURE__*/e(r,{component:c,props:{...t,...o}})});}case 4/* Tag */:{let[,e,r,...t]=f,n=t.map(a);if(\"a\"===e)return /*#__PURE__*/m(o.a,r,...n);return /*#__PURE__*/m(e,r,...n);}case 5/* Text */:{let[,e]=f;return e;}}}(c);return a.set(f,l),l;};}export{h as RichTextJsonPropKind,y as RichTextJsonType,g as getRichTextJsonResolver,x as mapRichTextJsonProps};\nexport const __FramerMetadata__ = {\"exports\":{\"RichTextJsonPropKind\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RichTextJsonType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRichTextJsonResolver\":{\"type\":\"reactComponent\",\"name\":\"getRichTextJsonResolver\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"mapRichTextJsonProps\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (fc3086c)\nimport{addPropertyControls as e,ControlType as t,QueryEngine as l}from\"framer\";import{DatabaseCollection as a}from\"./xuYgat4_a-0.js\";import{getRichTextJsonResolver as i}from\"./xuYgat4_a-1.js\";let r={CcUDJXYIw:{isNullable:!0,type:t.String},createdAt:{isNullable:!0,type:t.Date},i64SxFGvP:{isNullable:!0,type:t.String},id:{isNullable:!1,type:t.String},MEAw6LcVW:{isNullable:!0,type:t.String},nextItemId:{isNullable:!0,type:t.String},oiKWtA4Ma:{isNullable:!0,type:t.String},oTJDPRvEQ:{isNullable:!0,type:t.String},previousItemId:{isNullable:!0,type:t.String},q_k_JuTcu:{isNullable:!0,type:t.Number},TTmykSy3g:{isNullable:!0,type:t.String},updatedAt:{isNullable:!0,type:t.Date}},u=[],n=e=>{let t=u[e];if(t)return t().then(e=>e.default);},o={},p=i(o),d=new l,y={collectionByLocaleId:{default:new a({chunks:[new URL(\"./xuYgat4_a-chunk-default-0.framercms\",import.meta.url).href.replace(\"/modules/\",\"/cms/\")],id:\"70d011b4-f24a-416d-81e2-c8da612f1f3edefault\",indexes:[],resolveRichText:p,resolveVectorSetItem:n,schema:r})},displayName:\"Experience\",id:\"70d011b4-f24a-416d-81e2-c8da612f1f3e\"};export default y;e(y,{oiKWtA4Ma:{preventLocalization:!1,title:\"Slug\",type:t.String},i64SxFGvP:{defaultValue:\"\",title:\"Role\",type:t.String},CcUDJXYIw:{defaultValue:\"\",title:\"Company\",type:t.String},TTmykSy3g:{defaultValue:\"\",title:\"Years\",type:t.String},MEAw6LcVW:{defaultValue:\"\",title:\"Summary\",type:t.String},oTJDPRvEQ:{defaultValue:\"\",title:\"Type\",type:t.String},q_k_JuTcu:{defaultValue:0,title:\"Order\",type:t.Number},createdAt:{title:\"Created\",type:t.Date},updatedAt:{title:\"Updated\",type:t.Date},previousItemId:{dataIdentifier:\"local-module:collection/xuYgat4_a:default\",title:\"Previous\",type:t.CollectionReference},nextItemId:{dataIdentifier:\"local-module:collection/xuYgat4_a:default\",title:\"Next\",type:t.CollectionReference}});export const enumToDisplayNameFunctions={};export const utils={async getSlugByRecordId(e,t){let[l]=await d.query({from:{data:y,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"oiKWtA4Ma\",type:\"Identifier\"}],where:{left:{name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.oiKWtA4Ma;},async getRecordIdBySlug(e,t){let[l]=await d.query({from:{data:y,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"id\",type:\"Identifier\"}],where:{left:{name:\"oiKWtA4Ma\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.id;}};\nexport const __FramerMetadata__ = {\"exports\":{\"utils\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"enumToDisplayNameFunctions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"data\",\"name\":\"data\",\"annotations\":{\"framerColorSyntax\":\"false\",\"framerRecordIdKey\":\"id\",\"framerSlug\":\"oiKWtA4Ma\",\"framerCollectionUtils\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerData\":\"true\",\"framerCollectionId\":\"xuYgat4_a\",\"framerContractVersion\":\"1\",\"framerEnumToDisplayNameUtils\":\"2\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (fc3086c)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,ChildrenCanSuspend,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,PathVariablesContext,PropertyOverrides,queryCache,RenderTarget,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useQueryData,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import MvCmsRow from\"#framer/local/codeFile/KXxPFOo/MvCmsRow.js\";import MvFooter from\"#framer/local/codeFile/KnsLYiZ/MvFooter.js\";import MvHeader from\"#framer/local/codeFile/UuncLwh/MvHeader.js\";import MvLoader from\"#framer/local/codeFile/IT3ZJw0/MvLoader.js\";import MvPageTrans from\"#framer/local/codeFile/wLFKb9W/MvPageTrans.js\";import MvSmooth from\"#framer/local/codeFile/lDqXym2/MvSmooth.js\";import Services from\"#framer/local/collection/cTacoMuNd/cTacoMuNd.js\";import Posts from\"#framer/local/collection/kPPHirKcn/kPPHirKcn.js\";import Lab from\"#framer/local/collection/oAD95M1Jk/oAD95M1Jk.js\";import Reviews from\"#framer/local/collection/OaLSV9F7x/OaLSV9F7x.js\";import Site from\"#framer/local/collection/RQxFoK7j3/RQxFoK7j3.js\";import Projects from\"#framer/local/collection/wP2vmyO3z/wP2vmyO3z.js\";import Experience from\"#framer/local/collection/xuYgat4_a/xuYgat4_a.js\";const MvLoaderFonts=getFonts(MvLoader);const MvPageTransFonts=getFonts(MvPageTrans);const MvHeaderFonts=getFonts(MvHeader);const MvSmoothFonts=getFonts(MvSmooth);const MvCmsRowFonts=getFonts(MvCmsRow);const MvFooterFonts=getFonts(MvFooter);const breakpoints={GIJPVvpQM:\"(min-width: 1200px)\",PyPSjjcZj:\"(max-width: 809.98px)\",vm8r9bqK0:\"(min-width: 810px) and (max-width: 1199.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-TvsTU\";const variantClassNames={GIJPVvpQM:\"framer-v-1b6j9ga\",PyPSjjcZj:\"framer-v-1ue8m5n\",vm8r9bqK0:\"framer-v-eio96q\"};const CsevgyIEZFMOk3HAnh=undefined;const nv0eyTWBSFMOk3HAnh=undefined;const B0NxU09q9FMOk3HAnh=undefined;const yi5Pp2zShFMOk3HAnh=undefined;const MlAcP93lWFMOk3HAnh=undefined;const jRbw8hI4jFMOk3HAnh=undefined;const fxdNd8daZFMOk3HAnh=undefined;const vUUsSFt61FMOk3HAnh=undefined;const tZbgjFnLlFMOk3HAnh=undefined;const idFMOk3HAnh=undefined;const sqgEAsxFmS1CxTpAPb=undefined;const tWU34dVEwS1CxTpAPb=undefined;const Wxeglwv85S1CxTpAPb=undefined;const mpSEVwa2LS1CxTpAPb=undefined;const ekXt090P0S1CxTpAPb=undefined;const pN0suY6bxS1CxTpAPb=undefined;const WcfCJ4FEaS1CxTpAPb=undefined;const WuGJSvIGjS1CxTpAPb=undefined;const idS1CxTpAPb=undefined;const KyHFzbkRuAWmpo1OZe=undefined;const x1N9p1DxZAWmpo1OZe=undefined;const yCArqXjkKAWmpo1OZe=undefined;const sERVrAsbBAWmpo1OZe=undefined;const AUn773dYfAWmpo1OZe=undefined;const PrguLM_8kAWmpo1OZe=undefined;const t9zyZnPTIAWmpo1OZe=undefined;const RAZkUQXulAWmpo1OZe=undefined;const idAWmpo1OZe=undefined;const oiKWtA4MaKph2y_fFt=undefined;const i64SxFGvPKph2y_fFt=undefined;const CcUDJXYIwKph2y_fFt=undefined;const TTmykSy3gKph2y_fFt=undefined;const MEAw6LcVWKph2y_fFt=undefined;const oTJDPRvEQKph2y_fFt=undefined;const q_k_JuTcuKph2y_fFt=undefined;const idKph2y_fFt=undefined;const Y75IOTzqGGLBYguuF5=undefined;const yfIo5SOiqGLBYguuF5=undefined;const FDxPOlVHQGLBYguuF5=undefined;const NBNBi1vPQGLBYguuF5=undefined;const BIKpBVvu8GLBYguuF5=undefined;const qmoHuh04tGLBYguuF5=undefined;const f9Zvl7998GLBYguuF5=undefined;const rWT8Nf_RvGLBYguuF5=undefined;const idGLBYguuF5=undefined;const gHwm3hYM4mX6SMb_6z=undefined;const OOlJF4fICmX6SMb_6z=undefined;const FHMokE9BKmX6SMb_6z=undefined;const ZMN9ueKatmX6SMb_6z=undefined;const ucU9O4lSnmX6SMb_6z=undefined;const IYjnefNJvmX6SMb_6z=undefined;const lrsbxh7pRmX6SMb_6z=undefined;const W8Lde4MUQmX6SMb_6z=undefined;const hlkHAYzMHmX6SMb_6z=undefined;const wbUH_iRuKmX6SMb_6z=undefined;const i599N0cQxmX6SMb_6z=undefined;const TPuRnXkrMmX6SMb_6z=undefined;const du438lAZumX6SMb_6z=undefined;const idmX6SMb_6z=undefined;const Z3fhCvfn1YOe2uZZAk=undefined;const SxYV3t4obYOe2uZZAk=undefined;const naRooJk5oYOe2uZZAk=undefined;const kyE7niyBzYOe2uZZAk=undefined;const ni6lf2eP1YOe2uZZAk=undefined;const r7Ml_WOpSYOe2uZZAk=undefined;const HD5XcWHswYOe2uZZAk=undefined;const e211hmV7XYOe2uZZAk=undefined;const xu0gV8Q7BYOe2uZZAk=undefined;const WOrWjTGlwYOe2uZZAk=undefined;const chC86DtwXYOe2uZZAk=undefined;const uSTGQ5TQoYOe2uZZAk=undefined;const GBQzEI0iFYOe2uZZAk=undefined;const idYOe2uZZAk=undefined;const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const query=prequery=>prequery({from:{alias:\"FMOk3HAnh\",data:Posts,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"FMOk3HAnh\",name:\"vUUsSFt61\",type:\"Identifier\"}],select:[{collection:\"FMOk3HAnh\",name:\"CsevgyIEZ\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"nv0eyTWBS\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"B0NxU09q9\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"yi5Pp2zSh\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"MlAcP93lW\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"jRbw8hI4j\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"fxdNd8daZ\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"vUUsSFt61\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"tZbgjFnLl\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"id\",type:\"Identifier\"}]});const query1=()=>({from:{alias:\"FMOk3HAnh\",data:Posts,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"FMOk3HAnh\",name:\"vUUsSFt61\",type:\"Identifier\"}],select:[{collection:\"FMOk3HAnh\",name:\"CsevgyIEZ\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"nv0eyTWBS\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"B0NxU09q9\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"yi5Pp2zSh\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"MlAcP93lW\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"jRbw8hI4j\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"fxdNd8daZ\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"vUUsSFt61\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"tZbgjFnLl\",type:\"Identifier\"},{collection:\"FMOk3HAnh\",name:\"id\",type:\"Identifier\"}]});const QueryData=({query,pageSize,children})=>{const data=useQueryData(query);return children(data);};const query2=prequery=>prequery({from:{alias:\"S1CxTpAPb\",data:Lab,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"S1CxTpAPb\",name:\"WcfCJ4FEa\",type:\"Identifier\"}],select:[{collection:\"S1CxTpAPb\",name:\"sqgEAsxFm\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"tWU34dVEw\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"Wxeglwv85\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"mpSEVwa2L\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"ekXt090P0\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"pN0suY6bx\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"WcfCJ4FEa\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"WuGJSvIGj\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"id\",type:\"Identifier\"}]});const query3=()=>({from:{alias:\"S1CxTpAPb\",data:Lab,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"S1CxTpAPb\",name:\"WcfCJ4FEa\",type:\"Identifier\"}],select:[{collection:\"S1CxTpAPb\",name:\"sqgEAsxFm\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"tWU34dVEw\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"Wxeglwv85\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"mpSEVwa2L\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"ekXt090P0\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"pN0suY6bx\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"WcfCJ4FEa\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"WuGJSvIGj\",type:\"Identifier\"},{collection:\"S1CxTpAPb\",name:\"id\",type:\"Identifier\"}]});const query4=prequery=>prequery({from:{alias:\"AWmpo1OZe\",data:Reviews,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"AWmpo1OZe\",name:\"t9zyZnPTI\",type:\"Identifier\"}],select:[{collection:\"AWmpo1OZe\",name:\"KyHFzbkRu\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"x1N9p1DxZ\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"yCArqXjkK\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"sERVrAsbB\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"AUn773dYf\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"PrguLM_8k\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"t9zyZnPTI\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"RAZkUQXul\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"id\",type:\"Identifier\"}]});const query5=()=>({from:{alias:\"AWmpo1OZe\",data:Reviews,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"AWmpo1OZe\",name:\"t9zyZnPTI\",type:\"Identifier\"}],select:[{collection:\"AWmpo1OZe\",name:\"KyHFzbkRu\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"x1N9p1DxZ\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"yCArqXjkK\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"sERVrAsbB\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"AUn773dYf\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"PrguLM_8k\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"t9zyZnPTI\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"RAZkUQXul\",type:\"Identifier\"},{collection:\"AWmpo1OZe\",name:\"id\",type:\"Identifier\"}]});const query6=prequery=>prequery({from:{alias:\"Kph2y_fFt\",data:Experience,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"Kph2y_fFt\",name:\"q_k_JuTcu\",type:\"Identifier\"}],select:[{collection:\"Kph2y_fFt\",name:\"oiKWtA4Ma\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"i64SxFGvP\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"CcUDJXYIw\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"TTmykSy3g\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"MEAw6LcVW\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"oTJDPRvEQ\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"q_k_JuTcu\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"id\",type:\"Identifier\"}]});const query7=()=>({from:{alias:\"Kph2y_fFt\",data:Experience,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"Kph2y_fFt\",name:\"q_k_JuTcu\",type:\"Identifier\"}],select:[{collection:\"Kph2y_fFt\",name:\"oiKWtA4Ma\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"i64SxFGvP\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"CcUDJXYIw\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"TTmykSy3g\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"MEAw6LcVW\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"oTJDPRvEQ\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"q_k_JuTcu\",type:\"Identifier\"},{collection:\"Kph2y_fFt\",name:\"id\",type:\"Identifier\"}]});const query8=prequery=>prequery({from:{alias:\"GLBYguuF5\",data:Services,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"GLBYguuF5\",name:\"rWT8Nf_Rv\",type:\"Identifier\"}],select:[{collection:\"GLBYguuF5\",name:\"Y75IOTzqG\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"yfIo5SOiq\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"FDxPOlVHQ\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"NBNBi1vPQ\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"BIKpBVvu8\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"qmoHuh04t\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"f9Zvl7998\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"rWT8Nf_Rv\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"id\",type:\"Identifier\"}]});const query9=()=>({from:{alias:\"GLBYguuF5\",data:Services,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"GLBYguuF5\",name:\"rWT8Nf_Rv\",type:\"Identifier\"}],select:[{collection:\"GLBYguuF5\",name:\"Y75IOTzqG\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"yfIo5SOiq\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"FDxPOlVHQ\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"NBNBi1vPQ\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"BIKpBVvu8\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"qmoHuh04t\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"f9Zvl7998\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"rWT8Nf_Rv\",type:\"Identifier\"},{collection:\"GLBYguuF5\",name:\"id\",type:\"Identifier\"}]});const query10=prequery=>prequery({from:{alias:\"mX6SMb_6z\",data:Projects,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"mX6SMb_6z\",name:\"TPuRnXkrM\",type:\"Identifier\"}],select:[{collection:\"mX6SMb_6z\",name:\"gHwm3hYM4\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"OOlJF4fIC\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"FHMokE9BK\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"ZMN9ueKat\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"ucU9O4lSn\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"IYjnefNJv\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"lrsbxh7pR\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"W8Lde4MUQ\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"hlkHAYzMH\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"wbUH_iRuK\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"i599N0cQx\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"TPuRnXkrM\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"du438lAZu\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"id\",type:\"Identifier\"}]});const query11=()=>({from:{alias:\"mX6SMb_6z\",data:Projects,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"mX6SMb_6z\",name:\"TPuRnXkrM\",type:\"Identifier\"}],select:[{collection:\"mX6SMb_6z\",name:\"gHwm3hYM4\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"OOlJF4fIC\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"FHMokE9BK\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"ZMN9ueKat\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"ucU9O4lSn\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"IYjnefNJv\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"lrsbxh7pR\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"W8Lde4MUQ\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"hlkHAYzMH\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"wbUH_iRuK\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"i599N0cQx\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"TPuRnXkrM\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"du438lAZu\",type:\"Identifier\"},{collection:\"mX6SMb_6z\",name:\"id\",type:\"Identifier\"}]});const query12=prequery=>prequery({from:{alias:\"YOe2uZZAk\",data:Site,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"YOe2uZZAk\",name:\"GBQzEI0iF\",type:\"Identifier\"}],select:[{collection:\"YOe2uZZAk\",name:\"Z3fhCvfn1\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"SxYV3t4ob\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"naRooJk5o\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"kyE7niyBz\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"ni6lf2eP1\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"r7Ml_WOpS\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"HD5XcWHsw\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"e211hmV7X\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"xu0gV8Q7B\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"WOrWjTGlw\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"chC86DtwX\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"uSTGQ5TQo\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"GBQzEI0iF\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"id\",type:\"Identifier\"}]});const query13=()=>({from:{alias:\"YOe2uZZAk\",data:Site,type:\"Collection\"},limit:{type:\"LiteralValue\",value:5001},orderBy:[{collection:\"YOe2uZZAk\",name:\"GBQzEI0iF\",type:\"Identifier\"}],select:[{collection:\"YOe2uZZAk\",name:\"Z3fhCvfn1\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"SxYV3t4ob\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"naRooJk5o\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"kyE7niyBz\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"ni6lf2eP1\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"r7Ml_WOpS\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"HD5XcWHsw\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"e211hmV7X\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"xu0gV8Q7B\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"WOrWjTGlw\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"chC86DtwX\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"uSTGQ5TQo\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"GBQzEI0iF\",type:\"Identifier\"},{collection:\"YOe2uZZAk\",name:\"id\",type:\"Identifier\"}]});const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\".framer-TvsTU.framer-7cl4bl, .framer-TvsTU .framer-7cl4bl { display: block; }\",\".framer-TvsTU.framer-1b6j9ga { align-content: center; align-items: center; background-color: var(--token-2cb09a38-77ef-4464-80b0-9b13bcba4a5d); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-dhwvom { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 0px; justify-content: flex-start; order: -1000; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-1hnberh-container, .framer-TvsTU .framer-cboxur-container, .framer-TvsTU .framer-kcwwmb-container, .framer-TvsTU .framer-1yhsgce-container { flex: none; height: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-alcmdw { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 0px; justify-content: flex-start; order: -999; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-jkw6g2 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 0px; justify-content: flex-start; order: -998; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-17ldvu8 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 0px; justify-content: flex-start; order: -997; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-i5ixc3 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -996; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-19bfkez, .framer-TvsTU .framer-1snmubv, .framer-TvsTU .framer-1qlhngg, .framer-TvsTU .framer-14f9zy5, .framer-TvsTU .framer-1ljdqi7, .framer-TvsTU .framer-euvfcb, .framer-TvsTU .framer-19z2leq { flex: none; height: 1px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 1px; }\",\".framer-TvsTU .framer-smcuwf-container, .framer-TvsTU .framer-ktnrd1-container, .framer-TvsTU .framer-3byw5f-container, .framer-TvsTU .framer-locxqy-container, .framer-TvsTU .framer-gyo8pw-container, .framer-TvsTU .framer-16d7f60-container, .framer-TvsTU .framer-1vympfm-container { flex: none; height: 1px; left: calc(2.220446049250313e-14% - 1px / 2); position: absolute; top: calc(2.220446049250313e-14% - 1px / 2); width: 1px; }\",\".framer-TvsTU .framer-uv5ymk { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -995; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-9e4lpt { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -994; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-1h2riw5 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -993; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-m6eugd { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -992; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-gh05yx { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -991; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-1221w62 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 1px; justify-content: flex-start; left: 0px; order: -990; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-18pcfj0-container { flex: none; height: 1px; left: 0px; order: -989; position: absolute; top: 0px; width: 1px; }\",\".framer-TvsTU .framer-aswevy { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-TvsTU .framer-15bg23j { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; order: 1013; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-TvsTU .framer-1oqmsu1-container { flex: none; height: auto; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={GIJPVvpQM:\"(min-width: 1200px)\",PyPSjjcZj:\"(max-width: 809.98px)\",vm8r9bqK0:\"(min-width: 810px) and (max-width: 1199.98px)\"};const humanReadableVariantMap={Desktop:\"GIJPVvpQM\",Phone:\"PyPSjjcZj\",Tablet:\"vm8r9bqK0\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"GIJPVvpQM\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"GIJPVvpQM\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-2cb09a38-77ef-4464-80b0-9b13bcba4a5d); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1b6j9ga\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-dhwvom\",\"data-framer-name\":\"L MvLoader \\xb7 THE SLATE (once per session)\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1hnberh-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"MvLoader\",isAuthoredByUser:true,name:\"MvLoader\",nodeId:\"NWBbihZx8\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvLoader,{bodyFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},bone:\"var(--token-16b5adc2-b338-4c29-8d2f-257e6954cf5a)\",bpHint:\"desktop\",brass:\"var(--token-7c0dc847-0c00-4522-9b51-c06f450620d6)\",cloud:\"var(--token-f962665a-6e98-42fc-b153-6c537b674e45)\",customFonts:false,displayFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},duration:2.2,enabled:true,fog:\"var(--token-ca1873bd-cbd6-4c8f-9e0f-99c3f2a381a3)\",height:\"100%\",id:\"NWBbihZx8\",ink:\"var(--token-a0e1c66a-c1c9-4c90-be8e-4bf6a8de5b67)\",layoutId:\"NWBbihZx8\",monoFont:{fontFamily:'\"Fragment Mono\", \"Fragment Mono Placeholder\", monospace',fontStyle:\"normal\",fontWeight:400},name:\"MvLoader\",night:\"var(--token-2cb09a38-77ef-4464-80b0-9b13bcba4a5d)\",numbers:\"3;2;1\",once:true,pine:\"var(--token-83513f9a-f80f-4010-85f4-fcfe722678a7)\",respectRm:true,rolling:\"Rolling\",skipLabel:\"Click or press any key to skip\",skipLabelTouch:\"Tap to skip\",slate:\"Portfolio 2026 \\xb7 Scene 01 \\xb7 Take 1 \\xb7 {name}\",stone:\"var(--token-4392d762-5738-4cf9-a436-c2d3ce566ed5)\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-alcmdw\",\"data-framer-name\":\"L MvPageTrans \\xb7 THE CUT\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-cboxur-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"MvPageTrans\",isAuthoredByUser:true,name:\"MvPageTrans\",nodeId:\"m9LxU5nHy\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvPageTrans,{bodyFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},bone:\"var(--token-16b5adc2-b338-4c29-8d2f-257e6954cf5a)\",bpHint:\"desktop\",brass:\"var(--token-7c0dc847-0c00-4522-9b51-c06f450620d6)\",cloud:\"var(--token-f962665a-6e98-42fc-b153-6c537b674e45)\",customFonts:false,displayFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},enabled:true,fog:\"var(--token-ca1873bd-cbd6-4c8f-9e0f-99c3f2a381a3)\",frameLabel:\"Frame\",height:\"100%\",homeLabel:\"Home\",id:\"m9LxU5nHy\",ink:\"var(--token-a0e1c66a-c1c9-4c90-be8e-4bf6a8de5b67)\",kicker:\"Cut to\",layoutId:\"m9LxU5nHy\",monoFont:{fontFamily:'\"Fragment Mono\", \"Fragment Mono Placeholder\", monospace',fontStyle:\"normal\",fontWeight:400},name:\"MvPageTrans\",night:\"var(--token-2cb09a38-77ef-4464-80b0-9b13bcba4a5d)\",pine:\"var(--token-83513f9a-f80f-4010-85f4-fcfe722678a7)\",respectRm:true,speed:.4,stone:\"var(--token-4392d762-5738-4cf9-a436-c2d3ce566ed5)\",style:{height:\"100%\",width:\"100%\"},tone:\"night\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-jkw6g2\",\"data-framer-name\":\"① HEADER — links, CTA, phone menu, site-wide fonts\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-kcwwmb-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"MvHeader\",isAuthoredByUser:true,name:\"MvHeader\",nodeId:\"qYoKaSve3\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{PyPSjjcZj:{bpHint:\"phone\"},vm8r9bqK0:{bpHint:\"tablet\"}},children:/*#__PURE__*/_jsx(MvHeader,{availLabel:\"\",bodyFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},bone:\"var(--token-16b5adc2-b338-4c29-8d2f-257e6954cf5a)\",bpHint:\"auto\",brass:\"var(--token-7c0dc847-0c00-4522-9b51-c06f450620d6)\",closeLabel:\"Close\",cloud:\"var(--token-f962665a-6e98-42fc-b153-6c537b674e45)\",ctaLabel:\"\",customFonts:false,displayFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},emailLabel:\"Email\",fog:\"var(--token-ca1873bd-cbd6-4c8f-9e0f-99c3f2a381a3)\",height:\"100%\",hideOnScroll:true,homeLabel:\"home\",id:\"qYoKaSve3\",ink:\"var(--token-a0e1c66a-c1c9-4c90-be8e-4bf6a8de5b67)\",layoutId:\"qYoKaSve3\",links:\"Work:/work, About:/about, R\\xe9sum\\xe9:/resume, Writing:/writing, Contact:/contact\",menuLabel:\"Menu\",monoFont:{fontFamily:'\"Fragment Mono\", \"Fragment Mono Placeholder\", monospace',fontStyle:\"normal\",fontWeight:400},name:\"MvHeader\",night:\"var(--token-2cb09a38-77ef-4464-80b0-9b13bcba4a5d)\",pine:\"var(--token-83513f9a-f80f-4010-85f4-fcfe722678a7)\",probe:true,sheetRoll:\"Roll MV-26\",sheetScene:\"Scene: Menu\",sheetTake:\"Take 01\",sheetTitle:\"Call sheet\",skipLabel:\"Skip to content\",socialsLabel:\"Elsewhere\",stone:\"var(--token-4392d762-5738-4cf9-a436-c2d3ce566ed5)\",style:{height:\"100%\",width:\"100%\"},timeLabel:\"Local time\",width:\"100%\"})})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-17ldvu8\",\"data-framer-name\":\"L MvSmooth\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1yhsgce-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"MvSmooth\",isAuthoredByUser:true,name:\"MvSmooth\",nodeId:\"y_nVOj66Q\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvSmooth,{anchorOffset:72,height:\"100%\",id:\"y_nVOj66Q\",layoutId:\"y_nVOj66Q\",name:\"MvSmooth\",smoothness:.1,style:{height:\"100%\",width:\"100%\"},wheelSpeed:1,width:\"100%\"})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-i5ixc3\",\"data-framer-name\":\"CMS Bridge \\xb7 posts (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query1(),children:(collection,paginationInfo,loadMore)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection?.map(({B0NxU09q9:B0NxU09q9FMOk3HAnh,CsevgyIEZ:CsevgyIEZFMOk3HAnh,fxdNd8daZ:fxdNd8daZFMOk3HAnh,id:idFMOk3HAnh,jRbw8hI4j:jRbw8hI4jFMOk3HAnh,MlAcP93lW:MlAcP93lWFMOk3HAnh,nv0eyTWBS:nv0eyTWBSFMOk3HAnh,tZbgjFnLl:tZbgjFnLlFMOk3HAnh,vUUsSFt61:vUUsSFt61FMOk3HAnh,yi5Pp2zSh:yi5Pp2zShFMOk3HAnh},index)=>{CsevgyIEZFMOk3HAnh??=\"\";nv0eyTWBSFMOk3HAnh??=\"\";B0NxU09q9FMOk3HAnh??=\"\";yi5Pp2zShFMOk3HAnh??=\"\";MlAcP93lWFMOk3HAnh??=\"\";jRbw8hI4jFMOk3HAnh??=\"\";fxdNd8daZFMOk3HAnh??=\"\";vUUsSFt61FMOk3HAnh??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`FMOk3HAnh-${idFMOk3HAnh}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{CsevgyIEZ:CsevgyIEZFMOk3HAnh},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-19bfkez\",\"data-framer-name\":\"posts-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-smcuwf-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"posts-row\",isAuthoredByUser:true,name:\"posts-row\",nodeId:\"bma4I4Qep\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:nv0eyTWBSFMOk3HAnh,f10:\"\",f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:B0NxU09q9FMOk3HAnh,f3:yi5Pp2zShFMOk3HAnh,f4:MlAcP93lWFMOk3HAnh,f5:jRbw8hI4jFMOk3HAnh,f6:fxdNd8daZFMOk3HAnh,f7:\"\",f8:\"\",f9:\"\",height:\"100%\",id:\"bma4I4Qep\",img:toResponsiveImage(tZbgjFnLlFMOk3HAnh),kind:\"posts\",layoutId:\"bma4I4Qep\",n1:vUUsSFt61FMOk3HAnh,n2:0,name:\"posts-row\",slug:CsevgyIEZFMOk3HAnh,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idFMOk3HAnh);})});}})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-uv5ymk\",\"data-framer-name\":\"CMS Bridge \\xb7 lab (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query3(),children:(collection1,paginationInfo1,loadMore1)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection1?.map(({ekXt090P0:ekXt090P0S1CxTpAPb,id:idS1CxTpAPb,mpSEVwa2L:mpSEVwa2LS1CxTpAPb,pN0suY6bx:pN0suY6bxS1CxTpAPb,sqgEAsxFm:sqgEAsxFmS1CxTpAPb,tWU34dVEw:tWU34dVEwS1CxTpAPb,WcfCJ4FEa:WcfCJ4FEaS1CxTpAPb,WuGJSvIGj:WuGJSvIGjS1CxTpAPb,Wxeglwv85:Wxeglwv85S1CxTpAPb},index1)=>{sqgEAsxFmS1CxTpAPb??=\"\";tWU34dVEwS1CxTpAPb??=\"\";Wxeglwv85S1CxTpAPb??=\"\";mpSEVwa2LS1CxTpAPb??=\"\";ekXt090P0S1CxTpAPb??=\"\";pN0suY6bxS1CxTpAPb??=\"\";WcfCJ4FEaS1CxTpAPb??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`S1CxTpAPb-${idS1CxTpAPb}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{sqgEAsxFm:sqgEAsxFmS1CxTpAPb},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1snmubv\",\"data-framer-name\":\"lab-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-ktnrd1-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"lab-row\",isAuthoredByUser:true,name:\"lab-row\",nodeId:\"OjDa0vmWL\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:tWU34dVEwS1CxTpAPb,f10:\"\",f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:Wxeglwv85S1CxTpAPb,f3:mpSEVwa2LS1CxTpAPb,f4:ekXt090P0S1CxTpAPb,f5:pN0suY6bxS1CxTpAPb,f6:\"\",f7:\"\",f8:\"\",f9:\"\",height:\"100%\",id:\"OjDa0vmWL\",img:toResponsiveImage(WuGJSvIGjS1CxTpAPb),kind:\"lab\",layoutId:\"OjDa0vmWL\",n1:WcfCJ4FEaS1CxTpAPb,n2:0,name:\"lab-row\",slug:sqgEAsxFmS1CxTpAPb,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idS1CxTpAPb);})});}})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-9e4lpt\",\"data-framer-name\":\"CMS Bridge \\xb7 reviews (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query5(),children:(collection2,paginationInfo2,loadMore2)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection2?.map(({AUn773dYf:AUn773dYfAWmpo1OZe,id:idAWmpo1OZe,KyHFzbkRu:KyHFzbkRuAWmpo1OZe,PrguLM_8k:PrguLM_8kAWmpo1OZe,RAZkUQXul:RAZkUQXulAWmpo1OZe,sERVrAsbB:sERVrAsbBAWmpo1OZe,t9zyZnPTI:t9zyZnPTIAWmpo1OZe,x1N9p1DxZ:x1N9p1DxZAWmpo1OZe,yCArqXjkK:yCArqXjkKAWmpo1OZe},index2)=>{KyHFzbkRuAWmpo1OZe??=\"\";x1N9p1DxZAWmpo1OZe??=\"\";yCArqXjkKAWmpo1OZe??=\"\";sERVrAsbBAWmpo1OZe??=\"\";AUn773dYfAWmpo1OZe??=\"\";PrguLM_8kAWmpo1OZe??=\"\";t9zyZnPTIAWmpo1OZe??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`AWmpo1OZe-${idAWmpo1OZe}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{KyHFzbkRu:KyHFzbkRuAWmpo1OZe},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1qlhngg\",\"data-framer-name\":\"reviews-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-3byw5f-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"reviews-row\",isAuthoredByUser:true,name:\"reviews-row\",nodeId:\"QTle14LlU\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:x1N9p1DxZAWmpo1OZe,f10:\"\",f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:yCArqXjkKAWmpo1OZe,f3:sERVrAsbBAWmpo1OZe,f4:AUn773dYfAWmpo1OZe,f5:PrguLM_8kAWmpo1OZe,f6:\"\",f7:\"\",f8:\"\",f9:\"\",height:\"100%\",id:\"QTle14LlU\",img:toResponsiveImage(RAZkUQXulAWmpo1OZe),kind:\"reviews\",layoutId:\"QTle14LlU\",n1:t9zyZnPTIAWmpo1OZe,n2:0,name:\"reviews-row\",slug:KyHFzbkRuAWmpo1OZe,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idAWmpo1OZe);})});}})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1h2riw5\",\"data-framer-name\":\"CMS Bridge \\xb7 experience (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query7(),children:(collection3,paginationInfo3,loadMore3)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection3?.map(({CcUDJXYIw:CcUDJXYIwKph2y_fFt,i64SxFGvP:i64SxFGvPKph2y_fFt,id:idKph2y_fFt,MEAw6LcVW:MEAw6LcVWKph2y_fFt,oiKWtA4Ma:oiKWtA4MaKph2y_fFt,oTJDPRvEQ:oTJDPRvEQKph2y_fFt,q_k_JuTcu:q_k_JuTcuKph2y_fFt,TTmykSy3g:TTmykSy3gKph2y_fFt},index3)=>{oiKWtA4MaKph2y_fFt??=\"\";i64SxFGvPKph2y_fFt??=\"\";CcUDJXYIwKph2y_fFt??=\"\";TTmykSy3gKph2y_fFt??=\"\";MEAw6LcVWKph2y_fFt??=\"\";oTJDPRvEQKph2y_fFt??=\"\";q_k_JuTcuKph2y_fFt??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`Kph2y_fFt-${idKph2y_fFt}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{oiKWtA4Ma:oiKWtA4MaKph2y_fFt},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-14f9zy5\",\"data-framer-name\":\"experience-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-locxqy-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"experience-row\",isAuthoredByUser:true,name:\"experience-row\",nodeId:\"XtIG2UF4P\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:i64SxFGvPKph2y_fFt,f10:\"\",f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:CcUDJXYIwKph2y_fFt,f3:TTmykSy3gKph2y_fFt,f4:MEAw6LcVWKph2y_fFt,f5:oTJDPRvEQKph2y_fFt,f6:\"\",f7:\"\",f8:\"\",f9:\"\",height:\"100%\",id:\"XtIG2UF4P\",kind:\"experience\",layoutId:\"XtIG2UF4P\",n1:q_k_JuTcuKph2y_fFt,n2:0,name:\"experience-row\",slug:oiKWtA4MaKph2y_fFt,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idKph2y_fFt);})});}})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-m6eugd\",\"data-framer-name\":\"CMS Bridge \\xb7 services (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query9(),children:(collection4,paginationInfo4,loadMore4)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection4?.map(({BIKpBVvu8:BIKpBVvu8GLBYguuF5,f9Zvl7998:f9Zvl7998GLBYguuF5,FDxPOlVHQ:FDxPOlVHQGLBYguuF5,id:idGLBYguuF5,NBNBi1vPQ:NBNBi1vPQGLBYguuF5,qmoHuh04t:qmoHuh04tGLBYguuF5,rWT8Nf_Rv:rWT8Nf_RvGLBYguuF5,Y75IOTzqG:Y75IOTzqGGLBYguuF5,yfIo5SOiq:yfIo5SOiqGLBYguuF5},index4)=>{Y75IOTzqGGLBYguuF5??=\"\";yfIo5SOiqGLBYguuF5??=\"\";FDxPOlVHQGLBYguuF5??=\"\";NBNBi1vPQGLBYguuF5??=\"\";BIKpBVvu8GLBYguuF5??=\"\";qmoHuh04tGLBYguuF5??=\"\";f9Zvl7998GLBYguuF5??=\"\";rWT8Nf_RvGLBYguuF5??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`GLBYguuF5-${idGLBYguuF5}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{Y75IOTzqG:Y75IOTzqGGLBYguuF5},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1ljdqi7\",\"data-framer-name\":\"services-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-gyo8pw-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"services-row\",isAuthoredByUser:true,name:\"services-row\",nodeId:\"kzNZ2sJRF\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:yfIo5SOiqGLBYguuF5,f10:\"\",f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:FDxPOlVHQGLBYguuF5,f3:NBNBi1vPQGLBYguuF5,f4:BIKpBVvu8GLBYguuF5,f5:qmoHuh04tGLBYguuF5,f6:f9Zvl7998GLBYguuF5,f7:\"\",f8:\"\",f9:\"\",height:\"100%\",id:\"kzNZ2sJRF\",kind:\"services\",layoutId:\"kzNZ2sJRF\",n1:rWT8Nf_RvGLBYguuF5,n2:0,name:\"services-row\",slug:Y75IOTzqGGLBYguuF5,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idGLBYguuF5);})});}})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-gh05yx\",\"data-framer-name\":\"CMS Bridge \\xb7 projects (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query11(),children:(collection5,paginationInfo5,loadMore5)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection5?.map(({du438lAZu:du438lAZumX6SMb_6z,FHMokE9BK:FHMokE9BKmX6SMb_6z,gHwm3hYM4:gHwm3hYM4mX6SMb_6z,hlkHAYzMH:hlkHAYzMHmX6SMb_6z,i599N0cQx:i599N0cQxmX6SMb_6z,id:idmX6SMb_6z,IYjnefNJv:IYjnefNJvmX6SMb_6z,lrsbxh7pR:lrsbxh7pRmX6SMb_6z,OOlJF4fIC:OOlJF4fICmX6SMb_6z,TPuRnXkrM:TPuRnXkrMmX6SMb_6z,ucU9O4lSn:ucU9O4lSnmX6SMb_6z,W8Lde4MUQ:W8Lde4MUQmX6SMb_6z,wbUH_iRuK:wbUH_iRuKmX6SMb_6z,ZMN9ueKat:ZMN9ueKatmX6SMb_6z},index5)=>{gHwm3hYM4mX6SMb_6z??=\"\";OOlJF4fICmX6SMb_6z??=\"\";FHMokE9BKmX6SMb_6z??=\"\";ZMN9ueKatmX6SMb_6z??=\"\";ucU9O4lSnmX6SMb_6z??=\"\";IYjnefNJvmX6SMb_6z??=\"\";lrsbxh7pRmX6SMb_6z??=\"\";W8Lde4MUQmX6SMb_6z??=\"\";hlkHAYzMHmX6SMb_6z??=\"\";wbUH_iRuKmX6SMb_6z??=\"\";i599N0cQxmX6SMb_6z??=\"\";TPuRnXkrMmX6SMb_6z??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`mX6SMb_6z-${idmX6SMb_6z}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{gHwm3hYM4:gHwm3hYM4mX6SMb_6z},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-euvfcb\",\"data-framer-name\":\"projects-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-16d7f60-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"projects-row\",isAuthoredByUser:true,name:\"projects-row\",nodeId:\"BJbNGubzL\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:OOlJF4fICmX6SMb_6z,f10:i599N0cQxmX6SMb_6z,f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:FHMokE9BKmX6SMb_6z,f3:ZMN9ueKatmX6SMb_6z,f4:ucU9O4lSnmX6SMb_6z,f5:IYjnefNJvmX6SMb_6z,f6:lrsbxh7pRmX6SMb_6z,f7:W8Lde4MUQmX6SMb_6z,f8:hlkHAYzMHmX6SMb_6z,f9:wbUH_iRuKmX6SMb_6z,height:\"100%\",id:\"BJbNGubzL\",img:toResponsiveImage(du438lAZumX6SMb_6z),kind:\"projects\",layoutId:\"BJbNGubzL\",n1:TPuRnXkrMmX6SMb_6z,n2:0,name:\"projects-row\",slug:gHwm3hYM4mX6SMb_6z,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idmX6SMb_6z);})});}})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1221w62\",\"data-framer-name\":\"CMS Bridge \\xb7 site (keep)\",children:/*#__PURE__*/_jsx(ChildrenCanSuspend,{children:/*#__PURE__*/_jsx(QueryData,{query:query13(),children:(collection6,paginationInfo6,loadMore6)=>{return /*#__PURE__*/_jsx(_Fragment,{children:collection6?.map(({chC86DtwX:chC86DtwXYOe2uZZAk,e211hmV7X:e211hmV7XYOe2uZZAk,GBQzEI0iF:GBQzEI0iFYOe2uZZAk,HD5XcWHsw:HD5XcWHswYOe2uZZAk,id:idYOe2uZZAk,kyE7niyBz:kyE7niyBzYOe2uZZAk,naRooJk5o:naRooJk5oYOe2uZZAk,ni6lf2eP1:ni6lf2eP1YOe2uZZAk,r7Ml_WOpS:r7Ml_WOpSYOe2uZZAk,SxYV3t4ob:SxYV3t4obYOe2uZZAk,uSTGQ5TQo:uSTGQ5TQoYOe2uZZAk,WOrWjTGlw:WOrWjTGlwYOe2uZZAk,xu0gV8Q7B:xu0gV8Q7BYOe2uZZAk,Z3fhCvfn1:Z3fhCvfn1YOe2uZZAk},index6)=>{Z3fhCvfn1YOe2uZZAk??=\"\";SxYV3t4obYOe2uZZAk??=\"\";naRooJk5oYOe2uZZAk??=\"\";kyE7niyBzYOe2uZZAk??=\"\";ni6lf2eP1YOe2uZZAk??=\"\";r7Ml_WOpSYOe2uZZAk??=\"\";HD5XcWHswYOe2uZZAk??=\"\";e211hmV7XYOe2uZZAk??=\"\";xu0gV8Q7BYOe2uZZAk??=\"\";WOrWjTGlwYOe2uZZAk??=\"\";chC86DtwXYOe2uZZAk??=\"\";uSTGQ5TQoYOe2uZZAk??=\"\";GBQzEI0iFYOe2uZZAk??=0;return /*#__PURE__*/_jsx(LayoutGroup,{id:`YOe2uZZAk-${idYOe2uZZAk}`,children:/*#__PURE__*/_jsx(PathVariablesContext.Provider,{value:{Z3fhCvfn1:Z3fhCvfn1YOe2uZZAk},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-19z2leq\",\"data-framer-name\":\"site-item\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1vympfm-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"site-row\",isAuthoredByUser:true,name:\"site-row\",nodeId:\"ZSI2mXFOV\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:SxYV3t4obYOe2uZZAk,f10:chC86DtwXYOe2uZZAk,f11:uSTGQ5TQoYOe2uZZAk,f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:naRooJk5oYOe2uZZAk,f3:kyE7niyBzYOe2uZZAk,f4:ni6lf2eP1YOe2uZZAk,f5:r7Ml_WOpSYOe2uZZAk,f6:HD5XcWHswYOe2uZZAk,f7:e211hmV7XYOe2uZZAk,f8:xu0gV8Q7BYOe2uZZAk,f9:WOrWjTGlwYOe2uZZAk,height:\"100%\",id:\"ZSI2mXFOV\",kind:\"site\",layoutId:\"ZSI2mXFOV\",n1:GBQzEI0iFYOe2uZZAk,n2:0,name:\"site-row\",slug:Z3fhCvfn1YOe2uZZAk,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})},idYOe2uZZAk);})});}})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-18pcfj0-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"CMS Bridge \\xb7 marker (keep)\",isAuthoredByUser:true,name:\"CMS Bridge \\xb7 marker (keep)\",nodeId:\"GOzffpJmy\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvCmsRow,{f1:\"\",f10:\"\",f11:\"\",f12:\"\",f13:\"\",f14:\"\",f15:\"\",f16:\"\",f2:\"\",f3:\"\",f4:\"\",f5:\"\",f6:\"\",f7:\"\",f8:\"\",f9:\"\",height:\"100%\",id:\"GOzffpJmy\",kind:\"bridge\",layoutId:\"GOzffpJmy\",n1:0,n2:0,name:\"CMS Bridge \\xb7 marker (keep)\",slug:\"\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-aswevy\"}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-15bg23j\",\"data-framer-name\":\"② FOOTER — columns, contact, giant wordmark\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1oqmsu1-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"MvFooter\",isAuthoredByUser:true,name:\"MvFooter\",nodeId:\"eIEscuNmZ\",scopeId:\"lUD7mtnUj\",children:/*#__PURE__*/_jsx(MvFooter,{bodyFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},bone:\"var(--token-16b5adc2-b338-4c29-8d2f-257e6954cf5a)\",bpHint:\"auto\",brass:\"var(--token-7c0dc847-0c00-4522-9b51-c06f450620d6)\",build:\"main \\xb7 9f3c1a\",buildLabel:\"Build\",cloud:\"var(--token-f962665a-6e98-42fc-b153-6c537b674e45)\",customFonts:false,dateLabel:\"Date\",directorLabel:\"Director\",displayFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontStyle:\"normal\",fontWeight:400},elsewhereTitle:\"Elsewhere\",emailLabel:\"Write to me\",fog:\"var(--token-ca1873bd-cbd6-4c8f-9e0f-99c3f2a381a3)\",heading:\"That's a *wrap*.\",height:\"100%\",id:\"eIEscuNmZ\",ink:\"var(--token-a0e1c66a-c1c9-4c90-be8e-4bf6a8de5b67)\",layer:9,layoutId:\"eIEscuNmZ\",lead:\"Thanks for watching to the end. Say hello, I read every message and reply within a day.\",legal:\"Privacy:/privacy, Terms:/terms\",monoFont:{fontFamily:'\"Fragment Mono\", \"Fragment Mono Placeholder\", monospace',fontStyle:\"normal\",fontWeight:400},name:\"MvFooter\",night:\"var(--token-2cb09a38-77ef-4464-80b0-9b13bcba4a5d)\",pages:\"About:/about, R\\xe9sum\\xe9:/resume, Lab:/lab, Writing:/writing, Contact:/contact\",pagesTitle:\"Pages\",pine:\"var(--token-83513f9a-f80f-4010-85f4-fcfe722678a7)\",prod:\"Portfolio 2026\",prodLabel:\"Prod.\",reveal:true,roll:\"A-09\",rollLabel:\"Roll\",scene:\"Footer\",sceneLabel:\"Scene\",stone:\"var(--token-4392d762-5738-4cf9-a436-c2d3ce566ed5)\",style:{width:\"100%\"},take:\"1\",takeLabel:\"Take\",timeLabel:\"Local time\",topLabel:\"Back to top\",width:\"100%\",workTitle:\"Work\"})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query14=mediaQueries[key];return`@media ${query14} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"vm8r9bqK0\":{\"layout\":[\"fixed\",\"fixed\"]},\"PyPSjjcZj\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"GIJPVvpQM\":[\".framer-dhwvom\",\".framer-alcmdw\",\".framer-jkw6g2\",\".framer-17ldvu8\",\".framer-i5ixc3\",\".framer-uv5ymk\",\".framer-9e4lpt\",\".framer-1h2riw5\",\".framer-m6eugd\",\".framer-gh05yx\",\".framer-1221w62\",\".framer-18pcfj0-container\",\".framer-15bg23j\"],\"vm8r9bqK0\":[\".framer-dhwvom\",\".framer-alcmdw\",\".framer-jkw6g2\",\".framer-17ldvu8\",\".framer-i5ixc3\",\".framer-uv5ymk\",\".framer-9e4lpt\",\".framer-1h2riw5\",\".framer-m6eugd\",\".framer-gh05yx\",\".framer-1221w62\",\".framer-18pcfj0-container\",\".framer-15bg23j\"],\"PyPSjjcZj\":[\".framer-dhwvom\",\".framer-alcmdw\",\".framer-jkw6g2\",\".framer-17ldvu8\",\".framer-i5ixc3\",\".framer-uv5ymk\",\".framer-9e4lpt\",\".framer-1h2riw5\",\".framer-m6eugd\",\".framer-gh05yx\",\".framer-1221w62\",\".framer-18pcfj0-container\",\".framer-15bg23j\"]}\n * @framerBreakpoints {\"GIJPVvpQM\":{\"min\":1200,\"canvasClassName\":\"framer-1b6j9ga-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"vm8r9bqK0\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-eio96q-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"PyPSjjcZj\":{\"max\":809,\"canvasClassName\":\"framer-1ue8m5n-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant GIJPVvpQM\n * @framerLayoutTemplate true\n */const FramerlUD7mtnUj=withCSS(Component,css,\"framer-TvsTU\");export default FramerlUD7mtnUj;FramerlUD7mtnUj.displayName=\"Site Layout\";FramerlUD7mtnUj.defaultProps={height:1e3,width:1200};addFonts(FramerlUD7mtnUj,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Fragment Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Fragment Mono\",url:\"https://fonts.gstatic.com/s/fragmentmono/v6/4iCr6K5wfMRRjxp0DA6-2CLnN4FNh4UI_1U.woff2\",weight:\"400\"}]},...MvLoaderFonts,...MvPageTransFonts,...MvHeaderFonts,...MvSmoothFonts,...MvCmsRowFonts,...MvFooterFonts],{supportsExplicitInterCodegen:true});FramerlUD7mtnUj.loader={load:(props,context)=>{const locale=context.locale;const priority=context.priority;const queryCacheEntry=queryCache.get(query1(),locale,priority);const queryCacheEntry1=queryCache.get(query3(),locale,priority);const queryCacheEntry2=queryCache.get(query5(),locale,priority);const queryCacheEntry3=queryCache.get(query7(),locale,priority);const queryCacheEntry4=queryCache.get(query9(),locale,priority);const queryCacheEntry5=queryCache.get(query11(),locale,priority);const queryCacheEntry6=queryCache.get(query13(),locale,priority);return runTasksWithYield([()=>queryCacheEntry.preload(),()=>queryCacheEntry1.preload(),()=>queryCacheEntry2.preload(),()=>queryCacheEntry3.preload(),()=>queryCacheEntry4.preload(),()=>queryCacheEntry5.preload(),()=>queryCacheEntry6.preload()],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerlUD7mtnUj\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerBreakpoints\":\"{\\\"GIJPVvpQM\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1b6j9ga-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"vm8r9bqK0\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-eio96q-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"PyPSjjcZj\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-1ue8m5n-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerIntrinsicWidth\":\"1200\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"vm8r9bqK0\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"PyPSjjcZj\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"1000\",\"framerLayoutTemplate\":\"true\",\"framerHitTargets\":\"{\\\"GIJPVvpQM\\\":[\\\".framer-dhwvom\\\",\\\".framer-alcmdw\\\",\\\".framer-jkw6g2\\\",\\\".framer-17ldvu8\\\",\\\".framer-i5ixc3\\\",\\\".framer-uv5ymk\\\",\\\".framer-9e4lpt\\\",\\\".framer-1h2riw5\\\",\\\".framer-m6eugd\\\",\\\".framer-gh05yx\\\",\\\".framer-1221w62\\\",\\\".framer-18pcfj0-container\\\",\\\".framer-15bg23j\\\"],\\\"vm8r9bqK0\\\":[\\\".framer-dhwvom\\\",\\\".framer-alcmdw\\\",\\\".framer-jkw6g2\\\",\\\".framer-17ldvu8\\\",\\\".framer-i5ixc3\\\",\\\".framer-uv5ymk\\\",\\\".framer-9e4lpt\\\",\\\".framer-1h2riw5\\\",\\\".framer-m6eugd\\\",\\\".framer-gh05yx\\\",\\\".framer-1221w62\\\",\\\".framer-18pcfj0-container\\\",\\\".framer-15bg23j\\\"],\\\"PyPSjjcZj\\\":[\\\".framer-dhwvom\\\",\\\".framer-alcmdw\\\",\\\".framer-jkw6g2\\\",\\\".framer-17ldvu8\\\",\\\".framer-i5ixc3\\\",\\\".framer-uv5ymk\\\",\\\".framer-9e4lpt\\\",\\\".framer-1h2riw5\\\",\\\".framer-m6eugd\\\",\\\".framer-gh05yx\\\",\\\".framer-1221w62\\\",\\\".framer-18pcfj0-container\\\",\\\".framer-15bg23j\\\"]}\",\"framerColorSyntax\":\"true\",\"framerDefaultVariant\":\"GIJPVvpQM\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport SiteLayout from \"https://framerusercontent.com/modules/pzUPHK6N305tt1eGLs17/ovGlijJ6Ies2Cl5XNgE8/lUD7mtnUj.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/yh8DdqGq5eZcj6PF698o/GX0Frkdprhf7DyaYqz29/augiA20Il.js\")), path: \"/\"}, J74zKWYMz: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/7S7yXUwaE6SUrA5H5n3F/RACWzhGGFtNknI2TXgWb/J74zKWYMz.js\")), path: \"/work\"}, HHNF8LQD2: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/qDldEsbU7SQ17TZ0jWy7/RW25XGHtBhH6QCcmSiEY/HHNF8LQD2.js\")), path: \"/about\"}, kPO78tKqk: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/q0iimqUcGPfJ6n3bAyn3/JLZGZ8gCe4U2W9rj3YI9/kPO78tKqk.js\")), path: \"/resume\"}, TmrvKh51W: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/yKPxLeWbW974hDQxT98U/Zw7SfSUhouGiOIrlBrXH/TmrvKh51W.js\")), path: \"/services\"}, ZCOf74o3E: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/6TUEZOYY1b91IJUQe8Se/imx9Q8elvMBplQvjgw4Q/ZCOf74o3E.js\")), path: \"/lab\"}, bif3UAGGp: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/3GM2lGqIHAGdkGXhZmqf/JkmNZ2T0aaMgFuXyvYIP/bif3UAGGp.js\")), path: \"/writing\"}, J8aNUIwlD: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/7Ugq3ZIMePKUlST2Qdh8/bleI9lwR1JCW2RoNLjUz/J8aNUIwlD.js\")), path: \"/uses\"}, kampXPdKq: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/5PLGUuf5kYvneQjgpyCI/vRwmUdzb72nG9lZ1qrQu/kampXPdKq.js\")), path: \"/contact\"}, t35EXPNkJ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/xDyE0ZO9MSRlKZJSsu74/eVFZj9IoYB7X0z7mRSTm/t35EXPNkJ.js\")), path: \"/privacy\"}, I5EYvJD9E: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/d1HfzP4lmYQc8QXqv0zS/mOvDOrWVIfdEIyj0UStC/I5EYvJD9E.js\")), path: \"/terms\"}, mOWEjgFqi: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ymjCkkGw5KP7oziH81z9/AA4DtEVTmNgRoICgsMdN/mOWEjgFqi.js\")), path: \"/404\"}, S4pE32980: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/oDAHNytBIrrofrAps7xs/Ddw0xqExoEfRmQDAiXwB/S4pE32980.js\")), path: \"/start-here\"}, DPYzaCB8_: {collectionId: \"wP2vmyO3z\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/vosMiAL67ZsrSAM5uke7/4AXKX3kgreq9VCyIJo4L/DPYzaCB8_.js\")), path: \"/work/:gHwm3hYM4\"}, VlxA8Jc_9: {collectionId: \"cTacoMuNd\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/i6Aou3EdES3oZq1ERJuV/RSr0ZkVcFJy4EiCwkX5r/VlxA8Jc_9.js\")), path: \"/services/:Y75IOTzqG\"}, povnIwlLA: {collectionId: \"oAD95M1Jk\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/fHPX3AH9n8ZV9nBTbYZr/yfrR2derA5vLXTIvJT4e/povnIwlLA.js\")), path: \"/lab/:sqgEAsxFm\"}, SpnS34fmM: {collectionId: \"kPPHirKcn\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/4RSe2hGghKpMzLCgbfdJ/eIumDj0sGyQzMYu5c0pP/SpnS34fmM.js\")), path: \"/writing/:CsevgyIEZ\"}}\r\n\r\n\t\tconst locales = [{code: \"en-US\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {cTacoMuNd: async () => (await import(\"https://framerusercontent.com/modules/z1stimHROsFFVu8Lsc5U/njdWMDO8ggs4fdnQQWdl/cTacoMuNd.js\"))?.[\"utils\"], kPPHirKcn: async () => (await import(\"https://framerusercontent.com/modules/5D1w2O8qedKVNSXFp4uq/W6WfmRYxsf5X1jdfMB1k/kPPHirKcn.js\"))?.[\"utils\"], oAD95M1Jk: async () => (await import(\"https://framerusercontent.com/modules/R4BzPXQxS1dDZ3sAteqR/pQ0rDyikAJueUnthEClU/oAD95M1Jk.js\"))?.[\"utils\"], wP2vmyO3z: async () => (await import(\"https://framerusercontent.com/modules/2zqFJHTo4yfR5cA91Dro/wYhi2vLmx1a9e2VZePa2/wP2vmyO3z.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"5525e6f33a3f7ccc4327f383750eb0a77d3b338e1a173812e076a948268bf062\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"J74zKWYMz\":\r\ncase \"HHNF8LQD2\":\r\ncase \"kPO78tKqk\":\r\ncase \"TmrvKh51W\":\r\ncase \"ZCOf74o3E\":\r\ncase \"bif3UAGGp\":\r\ncase \"J8aNUIwlD\":\r\ncase \"kampXPdKq\":\r\ncase \"t35EXPNkJ\":\r\ncase \"I5EYvJD9E\":\r\ncase \"mOWEjgFqi\":\r\ncase \"DPYzaCB8_\":\r\ncase \"VlxA8Jc_9\":\r\ncase \"povnIwlLA\":\r\ncase \"SpnS34fmM\":\r\nreturn React.createElement(SiteLayout, {...props, key: \"SiteLayout\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"J74zKWYMz\":\r\ncase \"HHNF8LQD2\":\r\ncase \"kPO78tKqk\":\r\ncase \"TmrvKh51W\":\r\ncase \"ZCOf74o3E\":\r\ncase \"bif3UAGGp\":\r\ncase \"J8aNUIwlD\":\r\ncase \"kampXPdKq\":\r\ncase \"t35EXPNkJ\":\r\ncase \"I5EYvJD9E\":\r\ncase \"mOWEjgFqi\":\r\ncase \"DPYzaCB8_\":\r\ncase \"VlxA8Jc_9\":\r\ncase \"povnIwlLA\":\r\ncase \"SpnS34fmM\":\r\nreturn [{hash: \"1b6j9ga\", mediaQuery: \"(min-width: 1200px)\"}, {hash: \"eio96q\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1ue8m5n\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ymjCkkGw5KP7oziH81z9/AA4DtEVTmNgRoICgsMdN/mOWEjgFqi.js\")),\r\n\t\t\t\t\tisReducedMotion: false,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://www.jmbns.com\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/vTQtyAGl5Ki8hcP1KXDx/AMIaSabpmCh97RL8lgQ2/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}