{"version":3,"file":"FcProcess.BxgdctX0.mjs","names":["useState","c","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/8GWWRljySNxiHsZd7FjI/IdvkeGZB57kwNxyBhCNm/FcProcess.js"],"sourcesContent":["// ===== FLOWCRAFT shared scaffold (THE FLOW: paper canvas, node graph, mint signal) (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=Geist:wght@300..800&family=Figtree:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;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(--fc-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(--fc-ink)\":\"var(--fc-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(\"fc-fonts\"))return;const l=document.createElement(\"link\");l.id=\"fc-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 hk=String(hint||\"\").toLowerCase();const[w,setW]=useState(hk===\"phone\"?390:hk===\"tablet\"?810:1440),[vh,setVh]=useState(hk===\"phone\"?844:hk===\"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.__fcTick){w.__fcTick={pre:new Set,subs:new Set,reads:new Set,raf:0};const loop=t=>{const T=w.__fcTick;T.pre.forEach(r=>r(t));T.reads.forEach(r=>r(t));T.subs.forEach(s=>s(t));T.raf=requestAnimationFrame(loop);};w.__fcTick.raf=requestAnimationFrame(loop);}w.__fcTick.subs.add(fn);if(read)w.__fcTick.reads.add(read);if(pre)w.__fcTick.pre.add(pre);return()=>{w.__fcTick.subs.delete(fn);if(read)w.__fcTick.reads.delete(read);if(pre)w.__fcTick.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:\"#F1F0EB\",ink:\"#0E0F12\",brass:\"#19D98B\",pine:\"#0D1B16\",fog:\"#DAD8D0\",stone:\"#6B6E6A\",cloud:\"#FFFFFF\",night:\"#07100C\"};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=>({\"--fc-bone\":c.bone,\"--fc-ink\":c.ink,\"--fc-brass\":c.brass,\"--fc-pine\":c.pine,\"--fc-fog\":c.fog,\"--fc-stone\":c.stone,\"--fc-cloud\":c.cloud,\"--fc-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 = Geist / Figtree / IBM Plex 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(--fc-font-m, 'IBM Plex Mono'), ui-monospace, monospace\";// Site-wide fonts: the Header (Site Layout, every page) writes --fc-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(`--fc-font-${k}:${fam}`);v.push(`--fc-font-${k}w:${wOf(f,w)}`);}};put(\"d\",p.displayFont,500);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(--fc-font-d, 'Geist')\",\"Inter, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.displayFont,500):\"var(--fc-font-dw, 500)\",fontStyle:on&&p.displayFont&&p.displayFont.fontStyle?p.displayFont.fontStyle:\"normal\"};const B={fontFamily:stack(on,p.bodyFont,\"var(--fc-font-b, 'Figtree')\",\"Inter, system-ui, -apple-system, Arial, sans-serif\"),fontWeight:on?wOf(p.bodyFont,400):\"var(--fc-font-bw, 400)\"};const M={fontFamily:stack(on,p.monoFont,\"var(--fc-font-m, 'IBM Plex Mono')\",\"ui-monospace, SFMono-Regular, Menlo, monospace\"),fontWeight:on?wOf(p.monoFont,400):\"var(--fc-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: PILL — solid or glass; on hover a fill sweeps in from the left, the label rolls up and the round arrow chip turns; magnetic on desktop ----\nconst Btn=({href,label,kind=\"solid\",arrow=true,style,className,onClick,ariaLabel,cur,icon})=>/*#__PURE__*/_jsx(\"a\",{className:`fc-btn fc-${kind}${arrow?\"\":\" fc-noarr\"}${className?\" \"+className:\"\"}`,\"data-mag\":true,\"data-cur\":cur||\"run\",href:href,onClick:onClick,\"aria-label\":ariaLabel,style:style,children:/*#__PURE__*/_jsxs(\"span\",{className:\"fc-cap\",children:[icon,/*#__PURE__*/_jsxs(\"span\",{className:\"fc-lbl\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"fc-l1\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"fc-l2\",\"aria-hidden\":true,children:label})]}),arrow&&/*#__PURE__*/_jsx(\"span\",{className:\"fc-arr\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"svg\",{width:\"13\",height:\"13\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\"})})})]})});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?.(\".fc-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 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)*9: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);return()=>{r.removeEventListener(\"pointermove\",mv);r.removeEventListener(\"pointerleave\",lv);};},[live]);}const CSS_BASE=`@import url(\"${FONTS}\");\n:where(.fc){position:relative;z-index:10} .fc,.fc *{box-sizing:border-box;min-width:0} .fc-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(.fc) 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(--fc-ink,#1D1830)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--fc-bone,#EDE3D1)!important} :where(.fc-dark) :where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex=\"-1\"])):focus-visible{outline-color:var(--fc-cloud,#FFFFFF)!important;box-shadow:0 0 0 2px var(--fc-night,#0F1113)!important} :where(.fc-inring) :where(a[href],button):focus-visible{outline-offset:-4px!important;box-shadow:none!important} :where(.fc) :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select):focus-visible{outline:none!important;box-shadow:none!important} :where(.fc) textarea{resize:none} .fc-inring:focus-visible{outline-offset:-3px!important;box-shadow:none!important} html{scroll-padding-top:96px;scroll-padding-bottom:88px}\n.fc-btn{position:relative;display:inline-flex;padding:0;min-height:54px;border-radius:999px;text-decoration:none;cursor:pointer;isolation:isolate;white-space:nowrap;font-size:14.5px;font-weight:600;letter-spacing:.005em;border:0;color:var(--fg);transition:transform .5s cubic-bezier(.2,.8,.2,1)}\n.fc-cap{position:relative;display:inline-flex;align-items:center;gap:14px;width:100%;min-height:inherit;padding:0 7px 0 24px;border-radius:inherit;background:var(--face);overflow:hidden;box-shadow:inset 0 0 0 1.5px var(--edge);isolation:isolate}\n.fc-cap::before{content:\"\";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:var(--fill);clip-path:inset(0 100% 0 0 round 999px);transition:clip-path .55s cubic-bezier(.7,0,.2,1)}\n.fc-btn:hover .fc-cap::before,.fc-btn:focus-visible .fc-cap::before{clip-path:inset(0 0 0 0 round 999px)}\n.fc-btn:hover,.fc-btn:focus-visible{color:var(--fg2)}\n.fc-btn.fc-noarr .fc-cap{padding-right:24px}\n.fc-port{position:relative;width:9px;height:9px;flex:none;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 2px currentColor;transition:background .3s,box-shadow .3s}\n.fc-btn:hover .fc-port,.fc-btn:focus-visible .fc-port{background:var(--led);box-shadow:inset 0 0 0 2px var(--led),0 0 0 4px color-mix(in srgb,var(--led) 28%,transparent)}\n.fc-arr{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;background:var(--chip);color:var(--chipfg);transition:translate .5s cubic-bezier(.34,1.56,.64,1),rotate .5s cubic-bezier(.34,1.56,.64,1),background .3s,color .3s} .fc-btn:hover .fc-arr{rotate:-45deg}\n.fc-lbl{position:relative;display:inline-block;height:1.2em;overflow:hidden;line-height:1.2} .fc-l1,.fc-l2{display:block;transition:translate .45s cubic-bezier(.7,0,.2,1)} .fc-btn:hover .fc-l1,.fc-btn:hover .fc-l2{translate:0 -100%}\n.fc-btn.fc-solid{--face:var(--fc-ink);--edge:var(--fc-ink);--fill:var(--fc-brass);--fg:var(--fc-cloud);--fg2:var(--fc-ink);--led:var(--fc-ink);--chip:var(--fc-brass);--chipfg:var(--fc-ink)}\n.fc-btn.fc-solid:hover{--chip:var(--fc-ink);--chipfg:var(--fc-brass)}\n.fc-btn.fc-ghost{--face:transparent;--edge:color-mix(in srgb,var(--fc-ink) 22%,transparent);--fill:var(--fc-cloud);--fg:var(--fc-ink);--fg2:var(--fc-ink);--led:var(--fc-brass);--chip:var(--fc-ink);--chipfg:var(--fc-cloud)}\n.fc-btn.fc-quiet{--face:color-mix(in srgb,var(--fc-cloud) 12%,transparent);--edge:color-mix(in srgb,var(--fc-cloud) 22%,transparent);--fill:var(--fc-brass);--fg:var(--fc-cloud);--fg2:var(--fc-ink);--led:var(--fc-ink);--chip:var(--fc-brass);--chipfg:var(--fc-ink)}\n@media (max-width:600px),(hover:none){.fc .fc-btn{white-space:normal;text-align:left;line-height:1.25;min-height:52px;max-width:100%} .fc .fc-lbl{height:auto} .fc .fc-l2{display:none}}\n.fc-btn:hover{transform:translate(var(--mx,0px),var(--my,0px))} .fc-btn:active{transform:translate(var(--mx,0px),var(--my,0px)) scale(.97)!important}\n.fc-dark .fc-btn.fc-ghost{--face:color-mix(in srgb,var(--fc-cloud) 12%,transparent);--edge:color-mix(in srgb,var(--fc-cloud) 30%,transparent);--fill:var(--fc-cloud);--fg:var(--fc-cloud);--fg2:var(--fc-ink);--chip:var(--fc-cloud);--chipfg:var(--fc-ink)} .fc-dark .fc-btn.fc-ghost .fc-cap{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}\n.fc-dark .fc-btn.fc-solid{--face:var(--fc-cloud);--edge:var(--fc-cloud);--fill:var(--fc-brass);--fg:var(--fc-ink);--fg2:var(--fc-ink);--chip:var(--fc-ink);--chipfg:var(--fc-cloud)}\n/* TEXT-SAFE accents: mint is a FILL (ink text on it), a wire or a port; small mint TEXT on light grounds uses the darker --fc-acc. On dark grounds the mint itself reads. */\n.fc{--fc-acc:color-mix(in srgb,var(--fc-brass) 40%,var(--fc-ink));--fc-acc-lg:color-mix(in srgb,var(--fc-brass) 62%,var(--fc-ink));--fc-mut:color-mix(in srgb,var(--fc-stone) 85%,var(--fc-ink));--fc-acc-d:var(--fc-brass)}\n.fc-lt,.fc .fc-lt{--fc-acc:color-mix(in srgb,var(--fc-brass) 40%,var(--fc-ink));--fc-acc-lg:color-mix(in srgb,var(--fc-brass) 62%,var(--fc-ink));--fc-mut:color-mix(in srgb,var(--fc-stone) 85%,var(--fc-ink))}\n.fc-dark,.fc.fc-dark{--fc-acc:var(--fc-brass);--fc-acc-lg:var(--fc-brass);--fc-mut:color-mix(in srgb,var(--fc-stone) 45%,var(--fc-cloud))}\n/* LED segment strip (status rows) */\n.fc-bar{width:26px;height:10px;flex:none;display:inline-block;background:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 3px,currentColor 3px 5px,transparent 5px 6px,currentColor 6px 7px,transparent 7px 9px,currentColor 9px 10px,transparent 10px 12px)}\n@media (prefers-reduced-motion:reduce){.fc *,.sth *{animation-duration:.01ms!important;transition-duration:.01ms!important}}\n.fccs-next:focus-visible,.fcpo-next:focus-visible,.fcw-row a:focus-visible,.fco-band:focus-visible,.fco-mq a:focus-visible{outline-offset:-4px!important;box-shadow:none!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:\"fc-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))});// ===== FLOWCRAFT 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.__fcLenis)w.__fcLenis.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.fc-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)fc-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(\".fc-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;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:`fc-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.__fcLenis)w.__fcLenis.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:\"fc-rev-in\",children:children}),/*#__PURE__*/_jsx(\"div\",{ref:sp,className:\"fc-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||\"\").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* = a mint-to-white GRADIENT with a soft glow, followed by a small four-point SPARK that draws itself and then twinkles.\nconst Head=({text,on,D,tag=\"h2\",size=\"clamp(38px,4.3vw,64px)\",lh=1.02,delay=0,step=55,style,className,bp})=>{// SEO (2026-10-08): every breakpoint copy is in the server HTML, so a page heading would appear three times. Tablet and phone copies render as an ARIA heading on the server and become a real h1 once the page runs (only the matching copy stays mounted).\nconst[cli,setCli]=useState(false);useEffect(()=>setCli(true),[]);const low=tag===\"h1\"&&!cli&&/^(tablet|phone)$/i.test(String(bp||\"\"));const Tag=low?\"div\":tag;let k=0;return /*#__PURE__*/_jsx(Tag,{...low?{role:\"heading\",\"aria-level\":1}:{},className:`fc-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:\"fc-hd-l\",\"aria-hidden\":true,children:splitWords(line).map((w,i)=>{const d=delay+k++*step;return /*#__PURE__*/_jsxs(\"span\",{className:`fc-hd-w${w.acc?\" is-accw\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:`fc-hd-i${w.acc?\" is-acc\":\"\"}`,style:{transitionDelay:`${d}ms`,[\"--pd\"]:`${d+500}ms`},children:w.acc?/*#__PURE__*/_jsxs(\"span\",{className:\"fc-it\",children:[w.t,w.tail,/*#__PURE__*/_jsx(\"svg\",{className:\"fc-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:`fc-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:`fc-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.fc[data-kb] *,.fc[data-kb] *::before,.fc[data-kb] *::after{transition:none!important}\n.fc-sec{position:relative;z-index:10;display:block;width:100%;--sp:.5;--pp:0}\n.fc-rev{position:relative;width:100%;--rv:1} .fc-rev-in{position:relative} .fc-rev-sp{height:0}\n.fc-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.fc-rev.is-act>.fc-rev-in{position:sticky;top:calc(100vh - var(--t));top:calc(100svh - var(--t))} .fc-rev.is-act>.fc-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.fc-rev.is-act>.fc-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.fc-rev.is-act>.fc-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.fc-wrap{--pad:56px;width:100%;max-width:calc(${MAXW} + var(--pad)*2);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}\n.fc-eb{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin:0;padding:7px 14px 7px 8px;border-radius:999px;background:var(--fc-cloud);color:var(--fc-ink);box-shadow:inset 0 0 0 1px var(--fc-fog)!important;font-size:11px;letter-spacing:.1em;text-transform:uppercase;line-height:1.2;opacity:0;translate:0 10px;transition:opacity .7s ease,translate .8s cubic-bezier(.2,.8,.2,1);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 12%,transparent)} .fc-eb.is-on{opacity:1;translate:0 0}\n.fc-eb i{position:relative;width:18px;height:18px;display:block;flex:none;border-radius:50%;background:var(--fc-brass)} .fc-eb i::after{content:\"\";position:absolute;inset:5px;border-radius:50%;border:2px solid var(--fc-ink);border-right-color:transparent;animation:fcSpin 1.2s linear infinite} @keyframes fcSpin{to{rotate:360deg}} @keyframes fcLed{0%,100%{opacity:1}50%{opacity:.35}}\n.fc-dark .fc-eb{background:color-mix(in srgb,var(--fc-cloud) 8%,transparent);color:var(--fc-cloud);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fc-cloud) 16%,transparent)!important}\n.fc-hd{margin:0;letter-spacing:-.045em;text-wrap:balance} .fc-hd-l{display:block}\n.fc-hd-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .05em .17em;margin:0 -.05em -.17em;white-space:pre}\n.fc-hd-i{position:relative;display:inline-block;translate:0 108%;transition:translate 1s cubic-bezier(.2,.75,.2,1)}\n.fc-hd.is-on .fc-hd-i{translate:0 0}\n.fc-hd-w.is-accw{overflow:visible;clip-path:inset(-.6em -.6em .02em -.2em)}\n.fc-it{position:relative;padding-right:.36em;background:linear-gradient(100deg,var(--fc-brass) 10%,color-mix(in srgb,var(--fc-brass) 35%,var(--fc-cloud)) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent} :where(.fc:not(.fc-dark)) .fc-it{background:linear-gradient(100deg,var(--fc-ink) 10%,color-mix(in srgb,var(--fc-brass) 55%,var(--fc-ink)) 90%);-webkit-background-clip:text;background-clip:text}\n.fc-spark{position:absolute;right:-.02em;top:.02em;width:.34em;height:.34em;overflow:visible;fill:var(--fc-brass);scale:0;rotate:-90deg;transition:scale .7s cubic-bezier(.34,1.56,.64,1) var(--pd,0ms),rotate .9s cubic-bezier(.2,.8,.2,1) var(--pd,0ms)}\n.fc-hd.is-on .fc-spark{scale:1;rotate:0deg;animation:fcTw 3.2s ease-in-out calc(var(--pd,0ms) + 900ms) infinite} @keyframes fcTw{0%,100%{opacity:1;scale:1}50%{opacity:.55;scale:.72}}\n.fc-um{position:relative;overflow:hidden;transition:clip-path 1.35s cubic-bezier(.7,0,.2,1);background:color-mix(in srgb,var(--fc-stone) 22%,transparent)}\n.fc-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.fc-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.fc-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.fc-cut-b{margin-bottom:calc(var(--cut,7vw)*-1);padding-bottom:var(--cut,7vw)}\n.fc-cut-t.fc-cut-b{clip-path:polygon(0 var(--cut,7vw),100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n.fc-cut-b:not(.fc-cut-t){clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut,7vw)),0 100%)}\n@media (max-width:1099px){.fc-wrap{--pad:32px}}\n@media (max-width:699px){.fc-wrap{--pad:20px}}\n@media (prefers-reduced-motion:reduce){.fc-hd-i{translate:0 0!important} .fc-spark{scale:1!important;rotate:0deg!important;animation:none!important} .fc-um{clip-path:none!important} .fc-um img{scale:1!important;translate:0 0!important}}\n`;const SEED={site:[{\"slug\":\"site\",\"f1\":\"Swix AI\",\"f2\":\"AI platform for destination organizations\",\"f3\":\"AI agents, assistants and automations built for destination organizations.\",\"f4\":\"info@swix.ai\",\"f5\":\"\",\"f6\":\"Oro Valley\",\"f7\":\"America/Phoenix\",\"f8\":\"/book-a-demo\",\"f9\":\"LinkedIn:https://www.linkedin.com/company/swix-ai/, Instagram:https://www.instagram.com/swix.ai/, YouTube:https://www.youtube.com/@swix-ai, X:https://x.com/ai_swix\",\"f10\":\"\",\"f11\":\"1846 E. Innovation Park, Ste. 500\\nOro Valley, AZ 85755\",\"f12\":\"\",\"f13\":\"1-5 09:00-18:00\",\"n1\":\"1\"}]};const SW_BUILD=\"FcProcess@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-fc-row=\"bridge\"]'))return null;const seen=new Set;const out=[];document.querySelectorAll(`[data-fc-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.__fcCms||typeof w.__fcCms!==\"object\")w.__fcCms={};w.__fcCms[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 agency-wide fact. 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\"),role:g(\"f2\"),tagline:g(\"f3\"),email:g(\"f4\"),phone:g(\"f5\"),city:g(\"f6\"),tz:g(\"f7\")||\"Europe/London\",booking:g(\"f8\")||\"/book\",socials:g(\"f9\"),intake:g(\"f10\"),address:g(\"f11\"),hours:g(\"f12\"),openHours:g(\"f13\")};}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;}}// ===== FcProcess =====\n/**\n * FLOWCRAFT — PROCESS ON A RAIL. The paper section enters with a chevron cut (a V pointing down) that flattens as you scroll. A single rail runs down the middle and fills with mint as you read; its glowing head carries the week number. The four steps sit on alternate sides; each card is revealed by a diagonal wipe from the rail outward when the rail reaches it, while the step number, huge and outlined, fills in on the other side.\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1440\n */const DEF_STEPS=\"Audit|Week 1|We sit with your team for two days, map the work that repeats and rank what to automate by hours saved.|Process map, ROI list, fixed quote;Design|Week 2|We design the agent: what it reads, what it does, where it hands over to a person, and how you will measure it.|Agent spec, guardrails, test plan;Build|Weeks 3–4|We build, connect your tools and test on real cases with your team watching every step.|Working agent, integrations, logs;Launch|Week 5 →|The agent goes live with a person reviewing, then runs on its own. We tune it every month.|Live agent, training, monthly report\";export default function FcProcess(props){const{eyebrow=\"How we work\",heading=\"From audit to|*autopilot* in five weeks.\",steps=DEF_STEPS,button=\"See the full process\",buttonLink=\"/process\",after=\"\",afterLabel=\"After day 60, your choice\",bpHint=\"auto\"}=props;const c=colorsOf(props);const{D,B,M}=fontsOf(props);useFonts();const live=useLive();const rm=useReduced();const still=useStill();const root=useRef(null);const rail=useRef(null);const{w}=useSize(root,bpHint);const on=useOn(root,live,rm,.08);const ph=w<810;const S=listOf(steps).map(r=>{const p=r.split(\"|\").map(x=>x.trim());return{t:p[0]||\"\",w:p[1]||\"\",d:p[2]||\"\",o:p[3]||\"\"};}).filter(x=>x.t).slice(0,5);// optional fork after the last step (2026-10-02, the 60-Day Launch): the line splits into dimmer, dashed paths so ongoing help reads as a choice, not another step\nconst A=listOf(after).map(r=>{const p=r.split(\"|\").map(x=>x.trim());return{t:p[0]||\"\",d:p[1]||\"\"};}).filter(x=>x.t).slice(0,3);const items=useRef([]);const[reached,setReached]=useState(still||rm?99:-1);const[wk,setWk]=useState(S[0]?S[0].w:\"\");useEffect(()=>{if(!live||rm)return;const r=rail.current,sec=root.current;if(!r)return;let top=0,h=1,vh=1,tops=[],stTop=0,stH=1,last=-2;const off=onTick(()=>{const mid=vh*.6;const f=clamp01((mid-top)/h);r.style.setProperty(\"--f\",f.toFixed(4));const headY=top+f*h;let k=-1;tops.forEach((t,i)=>{if(headY>=t+30)k=i;});if(k!==last){last=k;setReached(k);if(S[Math.max(0,k)])setWk(S[Math.max(0,k)].w);}sec.style.setProperty(\"--cutk\",clamp01(1-(vh-stTop)/(vh*.55)).toFixed(4));},()=>{const b=r.getBoundingClientRect();top=b.top;h=b.height||1;vh=window.innerHeight;tops=items.current.map(el=>el?el.getBoundingClientRect().top:1e9);stTop=sec.getBoundingClientRect().top;});return off;},[live,rm,S.length]);return /*#__PURE__*/_jsxs(\"section\",{ref:root,className:`fc fcp${ph?\" is-ph\":\"\"}${on?\" is-on\":\"\"}`,style:{...cssVars(c),...B,...props.style||{}},\"aria-label\":plainOf(heading),children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS_BASE+CSS_MOTION+CSS}}),/*#__PURE__*/_jsxs(\"div\",{className:\"fc-wrap\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"fcp-head\",children:[/*#__PURE__*/_jsx(Eyebrow,{text:eyebrow,on:on,M:M}),/*#__PURE__*/_jsx(Head,{text:heading,on:on,D:D,size:ph?\"clamp(36px,10vw,50px)\":\"clamp(48px,5vw,90px)\",lh:.98,delay:100,style:{marginTop:22,textAlign:ph?\"left\":\"center\"}})]}),/*#__PURE__*/_jsxs(\"div\",{ref:rail,className:\"fcp-rail\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"fcp-line\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"i\",{})}),/*#__PURE__*/_jsx(\"span\",{className:\"fcp-headdot\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"b\",{style:M,children:wk})}),/*#__PURE__*/_jsx(\"ol\",{className:\"fcp-list\",children:S.map((s,i)=>/*#__PURE__*/_jsxs(\"li\",{ref:el=>{items.current[i]=el;},className:`fcp-it${i%2?\" is-r\":\" is-l\"}${reached>=i?\" is-on\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{className:\"fcp-node\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"p\",{className:\"fcp-big\",style:D,\"aria-hidden\":true,children:String(i+1).padStart(2,\"0\")}),/*#__PURE__*/_jsxs(\"div\",{className:\"fcp-card\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"fcp-w\",style:M,children:s.w}),/*#__PURE__*/_jsx(\"h3\",{style:D,children:s.t}),/*#__PURE__*/_jsx(\"p\",{className:\"fcp-d\",children:s.d}),/*#__PURE__*/_jsx(\"p\",{className:\"fcp-o\",style:M,children:s.o.split(\",\").map(x=>x.trim()).filter(Boolean).map((x,k)=>/*#__PURE__*/_jsx(\"span\",{children:x},k))})]})]},i))})]}),A.length>0&&/*#__PURE__*/_jsxs(\"div\",{className:`fcp-after${reached>=S.length-1?\" is-on\":\"\"}`,style:{[\"--n\"]:A.length},children:[/*#__PURE__*/_jsx(\"span\",{className:\"fcp-astem\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"p\",{className:\"fcp-alab\",style:M,children:afterLabel}),!ph&&A.length>1&&/*#__PURE__*/_jsx(\"svg\",{className:\"fcp-afork\",viewBox:\"0 0 1000 64\",preserveAspectRatio:\"none\",\"aria-hidden\":true,children:A.map((_,i)=>{const x=1e3/A.length*(i+.5);return /*#__PURE__*/_jsx(\"path\",{d:`M500 0 C500 40 ${x} 24 ${x} 64`},i);})}),/*#__PURE__*/_jsx(\"ul\",{className:\"fcp-acards\",children:A.map((a,i)=>/*#__PURE__*/_jsxs(\"li\",{className:\"fcp-acard\",style:{transitionDelay:`${250+i*140}ms`},children:[/*#__PURE__*/_jsx(\"span\",{className:\"fcp-atag\",style:M,children:\"Optional\"}),/*#__PURE__*/_jsx(\"h4\",{style:D,children:a.t}),/*#__PURE__*/_jsx(\"p\",{children:a.d})]},i))})]}),/*#__PURE__*/_jsx(\"div\",{className:\"fcp-foot\",style:rise(reached>=S.length-1,200),children:/*#__PURE__*/_jsx(Btn,{href:buttonLink,label:button,kind:\"solid\"})})]})]});}const CSS=`\n.fcp{position:relative;z-index:11;background:var(--fc-bone);color:var(--fc-ink);--cutk:1;--v:calc(10vw*var(--cutk));margin-top:-10vw;padding:calc(10vw + clamp(60px,7vw,110px)) 0 clamp(90px,10vw,150px);clip-path:polygon(0 calc(10vw - var(--v)),50% 10vw,100% calc(10vw - var(--v)),100% 100%,0 100%)}\n.fcp-head{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:980px;margin:0 auto}\n.fcp-rail{position:relative;margin-top:clamp(50px,6vw,100px);--f:0}\n.fcp-line{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:color-mix(in srgb,var(--fc-ink) 12%,transparent)} .fcp-line i{position:absolute;inset:0;background:var(--fc-brass);transform-origin:50% 0;transform:scaleY(var(--f))}\n.fcp-headdot{position:absolute;z-index:3;left:50%;top:calc(var(--f)*100%);translate:-50% -50%;width:18px;height:18px;border-radius:50%;background:var(--fc-brass);box-shadow:0 0 0 6px color-mix(in srgb,var(--fc-brass) 25%,transparent),0 0 30px var(--fc-brass)}\n.fcp-headdot b{position:absolute;left:28px;top:50%;translate:0 -50%;padding:5px 10px;border-radius:999px;background:var(--fc-ink);color:var(--fc-brass);font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}\n.fcp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(60px,9vh,120px)}\n.fcp-it{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(60px,8vw,140px);align-items:center}\n.fcp-node{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--fc-bone);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--fc-ink) 30%,transparent);transition:background .4s,box-shadow .4s} .fcp-it.is-on .fcp-node{background:var(--fc-ink);box-shadow:0 0 0 5px color-mix(in srgb,var(--fc-brass) 40%,transparent)}\n.fcp-it.is-l .fcp-card{grid-column:1;grid-row:1} .fcp-it.is-l .fcp-big{grid-column:2;grid-row:1} .fcp-it.is-r .fcp-card{grid-column:2;grid-row:1} .fcp-it.is-r .fcp-big{grid-column:1;grid-row:1;text-align:right}\n.fcp-big{margin:0;font-size:clamp(120px,14vw,240px);font-weight:600;letter-spacing:-.07em;line-height:.8;color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--fc-ink) 25%,transparent);background:linear-gradient(0deg,var(--fc-ink) 50%,transparent 50%) 0 100%/100% 200% no-repeat;-webkit-background-clip:text;background-clip:text;transition:background-position 1.2s cubic-bezier(.7,0,.2,1)} .fcp-it.is-on .fcp-big{background-position:0 0}\n.fcp-card{display:flex;flex-direction:column;gap:12px;padding:clamp(24px,2.6vw,40px);border-radius:28px;background:var(--fc-cloud);box-shadow:0 30px 60px -45px color-mix(in srgb,var(--fc-ink) 50%,transparent);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1),translate 1.2s cubic-bezier(.2,.8,.2,1)}\n.fcp-it.is-l .fcp-card{clip-path:polygon(100% 0,100% 0,100% 0);translate:30px 0} .fcp-it.is-r .fcp-card{clip-path:polygon(0 0,0 0,0 0);translate:-30px 0}\n.fcp-it.is-l.is-on .fcp-card{clip-path:polygon(100% 0,100% 220%,-120% 0);translate:0 0} .fcp-it.is-r.is-on .fcp-card{clip-path:polygon(0 0,220% 0,0 220%);translate:0 0}\n.fcp-w{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fc-acc)}\n.fcp-card h3{margin:0;font-size:clamp(34px,3.4vw,58px);font-weight:500;letter-spacing:-.05em;line-height:.95}\n.fcp-d{margin:0;max-width:460px;font-size:16px;line-height:1.6;color:var(--fc-mut)}\n.fcp-o{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0} .fcp-o span{padding:7px 11px;border-radius:999px;background:var(--fc-bone);font-size:11px}\n.fcp-foot{display:flex;justify-content:center;margin-top:clamp(40px,5vw,80px)}\n.fcp.is-ph .fcp-line,.fcp.is-ph .fcp-headdot{left:10px} .fcp.is-ph .fcp-headdot b{display:none} .fcp.is-ph .fcp-it{grid-template-columns:1fr;gap:10px;padding-left:36px} .fcp.is-ph .fcp-node{left:10px;top:30px}\n.fcp.is-ph .fcp-it .fcp-card,.fcp.is-ph .fcp-it .fcp-big{grid-column:1!important;grid-row:auto!important;text-align:left!important} .fcp.is-ph .fcp-big{font-size:84px} .fcp.is-ph .fcp-head{align-items:flex-start;text-align:left} .fcp.is-ph .fcp-foot{justify-content:flex-start}\n@media (prefers-reduced-motion:reduce){.fcp-card{clip-path:none!important;translate:none!important}}\n.fcp-after{display:flex;flex-direction:column;align-items:center;margin-top:clamp(36px,4vw,60px);opacity:0;translate:0 24px;transition:opacity .8s,translate 1s cubic-bezier(.2,.8,.2,1)} .fcp-after.is-on{opacity:1;translate:0 0}\n.fcp-astem{display:block;width:2px;height:clamp(40px,5vw,64px);background:repeating-linear-gradient(to bottom,color-mix(in srgb,var(--fc-ink) 32%,transparent) 0 6px,transparent 6px 12px)}\n.fcp-alab{margin:10px 0 0;padding:8px 15px;border-radius:999px;background:var(--fc-ink);color:var(--fc-brass);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}\n.fcp-afork{display:block;width:min(100%,1000px);height:64px;margin-top:10px;overflow:visible} .fcp-afork path{fill:none;stroke:color-mix(in srgb,var(--fc-ink) 32%,transparent);stroke-width:2;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}\n.fcp-acards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:clamp(20px,3vw,40px);width:min(100%,1000px)}\n.fcp-acard{display:flex;flex-direction:column;gap:10px;padding:clamp(22px,2.4vw,34px);border-radius:24px;border:1.5px dashed color-mix(in srgb,var(--fc-ink) 24%,transparent);background:color-mix(in srgb,var(--fc-cloud) 50%,transparent);opacity:0;translate:0 18px;transition:opacity .7s,translate .9s cubic-bezier(.2,.8,.2,1)} .fcp-after.is-on .fcp-acard{opacity:1;translate:0 0}\n.fcp-atag{align-self:flex-start;padding:5px 10px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--fc-acc);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fc-acc) 40%,transparent)}\n.fcp-acard h4{margin:0;font-size:clamp(26px,2.4vw,38px);font-weight:500;letter-spacing:-.04em;line-height:1}\n.fcp-acard p{margin:0;font-size:15.5px;line-height:1.6;color:var(--fc-mut)}\n.fcp.is-ph .fcp-after{align-items:flex-start;padding-left:0} .fcp.is-ph .fcp-astem{margin-left:9px} .fcp.is-ph .fcp-acards{grid-template-columns:1fr;margin-top:16px;padding-left:36px}\n@media (prefers-reduced-motion:reduce){.fcp-after,.fcp-acard{opacity:1!important;translate:none!important}}`;addPropertyControls(FcProcess,{eyebrow:{type:ControlType.String,title:\"Eyebrow\",defaultValue:\"How we work\"},heading:{type:ControlType.String,title:\"Heading\",displayTextArea:true,defaultValue:\"From audit to|*autopilot* in five weeks.\",description:\"| = line break, *word* = mint gradient\"},steps:{type:ControlType.String,title:\"Steps\",displayTextArea:true,defaultValue:DEF_STEPS,description:\"name | when | what happens | what you get (commas) — up to 5, one per ;\"},button:{type:ControlType.String,title:\"Button\",defaultValue:\"See the full process\"},buttonLink:{type:ControlType.Link,title:\"Button Link\",defaultValue:\"/process\"},after:{type:ControlType.String,title:\"After\",displayTextArea:true,defaultValue:\"\",description:\"Optional paths after the last step: name | what it is, one per ; (up to 3). Empty = no fork\"},afterLabel:{type:ControlType.String,title:\"After Label\",defaultValue:\"After day 60, your choice\"},...BP_CONTROL,...COLOR_CONTROLS,...FONT_CONTROLS});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FcProcess\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FcProcess.map"],"mappings":"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"}