{"version":3,"file":"BackgroundGradient.CtxJVeTL.mjs","names":["React.useRef","React.useState","React.useLayoutEffect","React.useEffect","fonts","css","className","variationAxes","fonts","css","className","fonts","css","className","variationAxes","fonts","css","className","css","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","cx","addPropertyOverrides","DescriptorArrow","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","cx","className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","ProjectDescriptor","React.useContext","React.useMemo","React.Fragment","React.useState","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","cx","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","useRef","useState","onReturnAfterHidden","resolveColor","REDRAW_AFTER_HIDDEN_MS","useRef","useCallback","__esmMin","window","le","x","pe","init_ssg_sandbox_shims","init_npm_react_18_3_1","ce","oe","ne","J","c","_e","ie","de","motion","MotionConfigContext","LayoutGroup","init_framer_motion_DhsWWWsN","forwardLoader","SVG","withCodeBoundaryForOverrides","addPropertyControls","getFonts","getFontsFromSharedStyle","RenderTarget","RichText","withCSS","addFonts","init_framer_B1b760uK","useComponentViewport","ComponentViewportProvider","fontStore","useLocaleInfo","ControlType","runTasksWithYield","SmartComponentScopedContainer","useVariantState","className$6","init_b0191GdAT","init_Rbs2Hge0A","css$7","css$8","fonts$5","fonts$6","className$5","className$7","init_QAvNjLgC_","css$9","fonts$7","installRule","installed","cfg","el","STYLE_ID","next","measureFontPx","max","nodes","root","n","txt","fs","readDesignSize","raw","axis","useTypeScaledSpacer","ref","ready","setReady","useIsoLayoutEffect","source","raf","last","apply","designSize","fontPx","typeTerm","vwTerm","DESIGN_VW","schedule","ro","cx","parts","ScaleSentenceSpacer","SENTENCE_SPACER","Component","props","className","ScaleTitleGap","TITLE_GAP","ScaleSpacer2","SPACER_2","init_TypeScaledSpacer","init_jsx_runtime","fonts$4","css$6","className$4","init_C3EtLk8M4","variationAxes$2","fonts$3","css$5","className$3","init_HWZFyvNL3","fonts$2","css$4","className$2","init_uYpuqtsZW","variationAxes$1","fonts$1","css$3","className$1","init_gdqN4yu0W","variationAxes","fonts","css$2","init_lXqaitcnH","addPropertyOverrides$2","variants","nextOverrides","variant","overrides","cycleOrder$2","serializationHash$2","variantClassNames$2","transition1$2","Transition$2","humanReadableVariantMap$2","Variants$2","getProps$2","createLayoutDependency$2","FramerciwObHuZV","init_ciwObHuZV","config","transition","value","contextValue","fallbackRef","refBinding","defaultLayoutId","restProps","layoutDependency","scopingClassNames","cx$1","layoutId","gestureHandlers","classNames","style","baseVariant","gestureVariant","addPropertyOverrides$1","DescriptorArrowFonts","DescriptorArrowControls","cycleOrder$1","serializationHash$1","variantClassNames$1","transition1$1","matchVariant$1","Transition$1","humanReadableVariantMap$1","Variants$1","humanReadableEnumMap","getProps$1","createLayoutDependency$1","Component$1","css$1","FramerPDDrIKbd_","init_PDDrIKbd_","getPropertyControls","args","arg","border","textColor","arrowDirection","text","componentViewport","className$8","isDisplayed","JfyPedhqZ","nZoPRUbFo","lio31XlVZ","qQj4ePJjD","\"variant\"","context","addPropertyOverrides","ProjectDescriptorFonts","MotionDivScaleSpacer22tr14r","MotionDivScaleSentenceSpacered09lp","MotionDivScaleTitleGap19bcdib","MotionDivScaleTitleGap1qsn78x","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","humanReadableVariantMap","Variants","useStateVariable","getProps","createLayoutDependency","css","Framerab43B7Et7","init_ab43B7Et7","internalState","setInternalState","externalState","previousExternalState","setPreviousExternalState","setExternalState","quoteAuthor","titleColor","tagCopy","tagBorderColor","title2","bgColor","tagTextColor","bodyColor","title1","bodyCopy","\"I8VOZ3Gjp\"","externalI8VOZ3Gjp","\"onI8VOZ3GjpChange\"","setExternalI8VOZ3Gjp","I8VOZ3Gjp","setI8VOZ3Gjp","isDisplayed1","isDisplayed2","isDisplayed3","MEpKmhobT","Iq_jqJZs8","PKYo3fzKC","fU1yVoEQY","uEuNMtN6A","lKlUyiiTr","U9n1Ip2MJ","xXELCrgKm","avhllpdFt","HalftoneWave2","wrapRef","workerRef","rebuild","setRebuild","onReturnAfterHidden$1","colorCacheRef","buildCfg","cache","resolveCached","hit","v","resolveColor$1","pos1","color1","pos2","color2","pos3","color3","pos4","color4","A","B","p","animated","isLite","buildCfgRef","stillRedrawRef","still","wrap","canvas","keep","dpr","asked","pending","settle","alive","drawStill","w","h","wk","getWorkerUrl","bmp","showStill","STILL_SETTLE_MS","worker","offscreen","isStatic","io","es","firstCfgRef","direction","spacing","minDot","maxDot","angle","speed","startPos","startDelay","spinUp","maxFps","waveShape","fadeX","fadeTop","fadeBottom","curveTop","curveTopInset","curveBottom","curveBottomInset","LITE_ATTR","REDRAW_AFTER_HIDDEN_MS$1","WORKER_SRC","workerUrl","init_HalftoneWave2","hiddenAt","run","redraw","onVisibility","away","onPageShow","br","trimmed","probe","resolved","inner","comma","fallback","BackgroundGradient","canvasRef","propsRef","builtRef","maskRef","maskAlphaRef","paint","ctx","pr","resolveColor","stops","grad","clamp01","mask","buildMask","edgeAlpha","a","yT","edgeCut","yB","fT","fB","smooth","y","mw","mh","mctx","img","data","sx","sy","o","my","mx","alpha","i","restoreMask","m","build","RES_SCALE","onResize","b","SETTLE_MS","offReturn","onReturnAfterHidden","REDRAW_AFTER_HIDDEN_MS","init_BackgroundGradient","curve","ins","inset","span"],"sources":["https:/framerusercontent.com/modules/FuZZv23G0fRiB34pTWVh/IX4E9Lvy279ZnIJf83tq/TypeScaledSpacer.js","https:/framerusercontent.com/modules/In266132j1EqwILlhs4G/senuBGbS8GnwT4MVPLb8/C3EtLk8M4.js","https:/framerusercontent.com/modules/bL2EbWnDJPo4PCxWPnyg/GJSEQOsSYpeWDgdeGHAr/HWZFyvNL3.js","https:/framerusercontent.com/modules/NfGXMjdLFzJRWZneCIxe/ztT146nqIlbbxyUPfbkK/uYpuqtsZW.js","https:/framerusercontent.com/modules/Yg2wujnuffuoeMGNyIDM/WuV5ZhEvLhajlPN7TC3v/gdqN4yu0W.js","https:/framerusercontent.com/modules/j9ok5YPYtZzXRb7cTDh9/IwUuK6FaeAp9GlqcIHk6/lXqaitcnH.js","https:/framerusercontent.com/modules/VqvzqKnqDCZNp8xqZKoj/ly4Af60yU2zZPJy5tfU3/ciwObHuZV.js","https:/framerusercontent.com/modules/nRFqAOvorBqhxGDTgKzy/E14Ig7VwatESh0doqCbp/PDDrIKbd_.js","https:/framerusercontent.com/modules/mHTjkxvzXVK5WrKOhIo9/ZJU2YYi9zR5VeEjugYB0/ab43B7Et7.js","https:/framerusercontent.com/modules/mXCsTQihvkYs3qkPgVks/YnHJPgENZ8YyWk66NKxs/HalftoneWave2.js","https:/framerusercontent.com/modules/XvenvvRxRXmwMUvA4hOF/fQF3OaLhujQEJrgPlCw8/BackgroundGradient.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";/* ============================================================================\n * TypeScaledSpacer — size a spacer from the RENDERED type next to it.\n *\n * Reads getComputedStyle(...).fontSize off the neighbouring title at runtime,\n * so it follows your text breakpoints without knowing what they are. Change a\n * breakpoint size and the spacers follow with no edit here.\n *\n *     size = designSize x (F / designFontPx)^typeExp x (vw / DESIGN_VW)^vwExp\n *\n * designSize is read from the element's OWN max-width / max-height, so each\n * variant calibrates itself (Spacer 3 is 43 in ProductDesignHoriz, 12 in\n * ExamplesTitle). Framer's max stays in place as the ceiling.\n *\n * It is re-read on EVERY update, not once at mount (2026-09-30). The max can\n * differ per breakpoint (Spacer 3: 48 narrow, 43 wide), and a spacer that\n * mounted at a narrow width kept sizing itself from 48 after the window was\n * widened: 32.86px beside a 52px title where a fresh load gives 29.44.\n * ==========================================================================*//* ---------------------------------------------------------------------------\n * KNOBS\n * -------------------------------------------------------------------------*/// Logs every measurement to the console. Turn off once tuned.\nconst DEBUG=false;// The width your spacer max values were authored at.\nconst DESIGN_VW=1200;// Title › Sentence spacer (F_wyP9Dps) — the word gap between the two lines.\nconst SENTENCE_SPACER={className:\"tss-sentence-spacer\",axis:\"width\",source:\"prev\",designFontPx:59,typeExp:1.5,vwExp:0,minPx:6,skipBelowDesignPx:0};// Spacer 3 (k3ws578ba) — the gap between the title and the supporting copy.\nconst TITLE_GAP={className:\"tss-title-gap\",axis:\"height\",source:\"prev\",designFontPx:59,typeExp:3,vwExp:0,minPx:4,skipBelowDesignPx:10};// Spacer 2 (iouqdI3KS) — the gap between the example label and the title.\n// source is \"next\" on purpose: the H1 below it, not the label above it. The\n// label is a ProjectDescriptor instance whose type may not move across\n// breakpoints at all, which would leave this gap static. Driving it off the\n// title also means it shares the title's 59px reference. Mirror image of\n// TITLE_GAP — both gaps are paced by the same headline.\nconst SPACER_2={className:\"tss-spacer-2\",axis:\"height\",source:\"next\",designFontPx:59,typeExp:1.5,vwExp:0,minPx:21,skipBelowDesignPx:0};/* ---------------------------------------------------------------------------\n * Machinery\n * -------------------------------------------------------------------------*/const STYLE_ID=\"type-scaled-spacer-styles\";const installed=new Map;function installRule(cfg){if(typeof document===\"undefined\")return;// max-width / max-height are deliberately NOT touched — they stay as the\n// ceiling, and we read them as the design size.\ninstalled.set(cfg.className,`.${cfg.className}{${cfg.axis}:var(--tss-size)!important;flex:0 0 auto!important;}`);let el=document.getElementById(STYLE_ID);if(!el){el=document.createElement(\"style\");el.id=STYLE_ID;document.head.appendChild(el);}const next=Array.from(installed.values()).join(\"\\n\");if(el.textContent!==next)el.textContent=next;}const useIsoLayoutEffect=typeof document!==\"undefined\"?React.useLayoutEffect:React.useEffect;/** Largest font-size among the elements in `root` that actually carry text. */function measureFontPx(root){let max=0;const nodes=[root,...Array.from(root.querySelectorAll(\"*\"))];for(const n of nodes){const txt=n.textContent;if(!txt||!txt.trim())continue;const fs=parseFloat(getComputedStyle(n).fontSize);if(fs>max)max=fs;}return max;}/** The element's authored ceiling, which is also its design size. */function readDesignSize(el,axis){const raw=getComputedStyle(el)[axis===\"width\"?\"maxWidth\":\"maxHeight\"];const n=parseFloat(raw);return Number.isFinite(n)?n:0;}function useTypeScaledSpacer(cfg){const ref=React.useRef(null);const[ready,setReady]=React.useState(false);useIsoLayoutEffect(()=>{installRule(cfg);const el=ref.current;if(!el){if(DEBUG)console.warn(`[TypeScaledSpacer] ${cfg.className}: no ref — is this a Frame? `+`Framer does not forward refs to code components.`);return;}const source=cfg.source===\"next\"?el.nextElementSibling:el.previousElementSibling;if(!source){if(DEBUG)console.warn(`[TypeScaledSpacer] ${cfg.className}: no ${cfg.source} sibling to measure.`);return;}if(!cfg.designFontPx){if(DEBUG)console.warn(`[TypeScaledSpacer] ${cfg.className}: designFontPx is 0 — `+`set it to the source text's size at the design width.`);return;}let raf=0;let last=\"\";let warnedNoText=false;let warnedNoMax=false;const apply=()=>{// Read every time: the authored max can change at a breakpoint.\nconst designSize=readDesignSize(el,cfg.axis);if(!designSize){if(DEBUG&&!warnedNoMax){warnedNoMax=true;console.warn(`[TypeScaledSpacer] ${cfg.className}: no max-${cfg.axis} set — `+`that value is the design size, so this spacer needs one.`);}return;}// Below the threshold the class comes off, so Framer's own\n// scaling takes over again — at this breakpoint only.\nif(cfg.skipBelowDesignPx&&designSize<cfg.skipBelowDesignPx){if(DEBUG&&last!==\"skip\")console.log(`[TypeScaledSpacer] ${cfg.className}: SKIPPED — design `+`${designSize}px is under skipBelowDesignPx `+`${cfg.skipBelowDesignPx}px. Framer's own scaling stays.`);last=\"skip\";setReady(false);return;}const fontPx=measureFontPx(source);if(!fontPx){if(DEBUG&&!warnedNoText){warnedNoText=true;console.warn(`[TypeScaledSpacer] ${cfg.className}: the ${cfg.source} `+`sibling has no text — nothing to measure. Is this `+`spacer next to another spacer?`);}return;}const typeTerm=Math.pow(Math.min(1,fontPx/cfg.designFontPx),cfg.typeExp);const vwTerm=Math.pow(Math.min(1,window.innerWidth/DESIGN_VW),cfg.vwExp);const size=Math.max(cfg.minPx,designSize*typeTerm*vwTerm);const next=size.toFixed(2)+\"px\";if(next!==last){last=next;el.style.setProperty(\"--tss-size\",next);if(DEBUG)console.log(`[TypeScaledSpacer] ${cfg.className}  vw ${window.innerWidth}`+`  font ${fontPx.toFixed(1)}px  design ${designSize}px`+`  ->  ${next}`);}setReady(true);};const schedule=()=>{cancelAnimationFrame(raf);raf=requestAnimationFrame(apply);};apply();const ro=new ResizeObserver(schedule);ro.observe(source);window.addEventListener(\"resize\",schedule);return()=>{cancelAnimationFrame(raf);ro.disconnect();window.removeEventListener(\"resize\",schedule);};},[cfg]);return{ref,className:ready?cfg.className:undefined};}function cx(...parts){return parts.filter(Boolean).join(\" \");}/* ---------------------------------------------------------------------------\n * Overrides\n * -------------------------------------------------------------------------*/export function ScaleSentenceSpacer(Component){return function ScaledSentenceSpacer(props){const{ref,className}=useTypeScaledSpacer(SENTENCE_SPACER);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,className:cx(props.className,className)});};}export function ScaleTitleGap(Component){return function ScaledTitleGap(props){const{ref,className}=useTypeScaledSpacer(TITLE_GAP);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,className:cx(props.className,className)});};}export function ScaleSpacer2(Component){return function ScaledSpacer2(props){const{ref,className}=useTypeScaledSpacer(SPACER_2);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,className:cx(props.className,className)});};}\nexport const __FramerMetadata__ = {\"exports\":{\"ScaleTitleGap\":{\"type\":\"reactHoc\",\"name\":\"ScaleTitleGap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScaleSpacer2\":{\"type\":\"reactHoc\",\"name\":\"ScaleSpacer2\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScaleSentenceSpacer\":{\"type\":\"reactHoc\",\"name\":\"ScaleSentenceSpacer\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TypeScaledSpacer.map","// Generated by Framer (291a518)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;PP Hatton Medium\",\"CUSTOMV2;PP Hatton Medium\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"PP Hatton Medium\",source:\"custom\",style:\"normal\",uiFamilyName:\"PP Hatton\",url:\"https://framerusercontent.com/assets/DcECVHPNpJbdnRmCPqcrmrwnl4.woff2\",weight:\"500\"}]}];export const css=['.framer-hvUtc .framer-styles-preset-nplzym:not(.rich-text-wrapper), .framer-hvUtc .framer-styles-preset-nplzym.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 46px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 499px) and (min-width: 430px) { .framer-hvUtc .framer-styles-preset-nplzym:not(.rich-text-wrapper), .framer-hvUtc .framer-styles-preset-nplzym.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 42px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 429px) and (min-width: 380px) { .framer-hvUtc .framer-styles-preset-nplzym:not(.rich-text-wrapper), .framer-hvUtc .framer-styles-preset-nplzym.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 37px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 379px) and (min-width: 0px) { .framer-hvUtc .framer-styles-preset-nplzym:not(.rich-text-wrapper), .framer-hvUtc .framer-styles-preset-nplzym.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 33px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-hvUtc\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (5477e77)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;Macklin Sans Variable Variable Regular\",\"CUSTOMV2;Macklin Sans Variable Variable Regular\"]);const variationAxes=[{defaultValue:500,maxValue:900,minValue:50,name:\"Weight\",tag:\"wght\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Macklin Sans Variable Variable Regular\",openType:true,source:\"custom\",style:\"normal\",uiFamilyName:\"Macklin Sans Variable\",url:\"https://framerusercontent.com/assets/rCrmxvEMjrZt9VmQm72YW68fnZo.woff2\",variationAxes,weight:\"400\"}]}];export const css=[\".framer-9VdDA .framer-styles-preset-gas3o3:not(.rich-text-wrapper), .framer-9VdDA .framer-styles-preset-gas3o3.rich-text-wrapper p { --framer-font-family: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 24px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; --framer-text-wrap: balance; }\",\"@media (max-width: 1149px) and (min-width: 950px) { .framer-9VdDA .framer-styles-preset-gas3o3:not(.rich-text-wrapper), .framer-9VdDA .framer-styles-preset-gas3o3.rich-text-wrapper p { --framer-font-family: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 22px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 19px; --framer-text-alignment: center; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; --framer-text-wrap: balance; } }\",\"@media (max-width: 949px) and (min-width: 500px) { .framer-9VdDA .framer-styles-preset-gas3o3:not(.rich-text-wrapper), .framer-9VdDA .framer-styles-preset-gas3o3.rich-text-wrapper p { --framer-font-family: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 18px; --framer-text-alignment: center; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; --framer-text-wrap: balance; } }\",\"@media (max-width: 499px) and (min-width: 0px) { .framer-9VdDA .framer-styles-preset-gas3o3:not(.rich-text-wrapper), .framer-9VdDA .framer-styles-preset-gas3o3.rich-text-wrapper p { --framer-font-family: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Macklin Sans Variable Variable Regular\\\", \\\"Macklin Sans Variable Variable Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.3em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; --framer-text-wrap: balance; } }\"];export const className=\"framer-9VdDA\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (291a518)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;PP Hatton Medium\",\"CUSTOMV2;PP Hatton Medium\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"PP Hatton Medium\",source:\"custom\",style:\"normal\",uiFamilyName:\"PP Hatton\",url:\"https://framerusercontent.com/assets/DcECVHPNpJbdnRmCPqcrmrwnl4.woff2\",weight:\"500\"}]}];export const css=['.framer-GGcRY .framer-styles-preset-8cjvp5:not(.rich-text-wrapper), .framer-GGcRY .framer-styles-preset-8cjvp5.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 59px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 979px) and (min-width: 900px) { .framer-GGcRY .framer-styles-preset-8cjvp5:not(.rich-text-wrapper), .framer-GGcRY .framer-styles-preset-8cjvp5.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 54px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 899px) and (min-width: 850px) { .framer-GGcRY .framer-styles-preset-8cjvp5:not(.rich-text-wrapper), .framer-GGcRY .framer-styles-preset-8cjvp5.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 50px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 849px) and (min-width: 0px) { .framer-GGcRY .framer-styles-preset-8cjvp5:not(.rich-text-wrapper), .framer-GGcRY .framer-styles-preset-8cjvp5.rich-text-wrapper h1 { --framer-font-family: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-family-bold: \"PP Hatton Medium\", \"PP Hatton Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 44px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 500; --framer-letter-spacing: 0em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-5e728275-3996-4e95-b72c-b9c05eea2dfd, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-GGcRY\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (560da95)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;Macklin Sans Variable Variable Regular\",\"CUSTOMV2;Macklin Sans Variable Variable Regular\"]);const variationAxes=[{defaultValue:500,maxValue:900,minValue:50,name:\"Weight\",tag:\"wght\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Macklin Sans Variable Variable Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Macklin Sans Variable\",url:\"https://framerusercontent.com/assets/rCrmxvEMjrZt9VmQm72YW68fnZo.woff2\",variationAxes,weight:\"400\"}]}];export const css=['.framer-TS9ln .framer-styles-preset-2sfqio:not(.rich-text-wrapper), .framer-TS9ln .framer-styles-preset-2sfqio.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1099px) and (min-width: 960px) { .framer-TS9ln .framer-styles-preset-2sfqio:not(.rich-text-wrapper), .framer-TS9ln .framer-styles-preset-2sfqio.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 959px) and (min-width: 397px) { .framer-TS9ln .framer-styles-preset-2sfqio:not(.rich-text-wrapper), .framer-TS9ln .framer-styles-preset-2sfqio.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 396px) and (min-width: 0px) { .framer-TS9ln .framer-styles-preset-2sfqio:not(.rich-text-wrapper), .framer-TS9ln .framer-styles-preset-2sfqio.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-TS9ln\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (560da95)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;Macklin Sans Variable Variable Regular\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);const variationAxes=[{defaultValue:500,maxValue:900,minValue:50,name:\"Weight\",tag:\"wght\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Macklin Sans Variable Variable Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Macklin Sans Variable\",url:\"https://framerusercontent.com/assets/rCrmxvEMjrZt9VmQm72YW68fnZo.woff2\",variationAxes,weight:\"400\"},{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/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{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/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{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/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{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/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{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/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/pKRFNWFoZl77qYCAIp84lN1h944.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",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/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-a8ImD .framer-styles-preset-1ezea3z:not(.rich-text-wrapper), .framer-a8ImD .framer-styles-preset-1ezea3z.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1099px) and (min-width: 960px) { .framer-a8ImD .framer-styles-preset-1ezea3z:not(.rich-text-wrapper), .framer-a8ImD .framer-styles-preset-1ezea3z.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 959px) and (min-width: 397px) { .framer-a8ImD .framer-styles-preset-1ezea3z:not(.rich-text-wrapper), .framer-a8ImD .framer-styles-preset-1ezea3z.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 396px) and (min-width: 0px) { .framer-a8ImD .framer-styles-preset-1ezea3z:not(.rich-text-wrapper), .framer-a8ImD .framer-styles-preset-1ezea3z.rich-text-wrapper p { --framer-font-family: \"Macklin Sans Variable Variable Regular\", \"Macklin Sans Variable Variable Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 13px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: rgba(0, 0, 0, 0.6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-a8ImD\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (1a93ff7)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"luEx2vk3b\",\"Is6INHk2w\",\"iBn2Vi6mu\",\"BkXOqHhMk\",\"WrhoZRfEI\",\"hxE9NIoLc\"];const serializationHash=\"framer-DpAy7\";const variantClassNames={BkXOqHhMk:\"framer-v-1nmwmk\",hxE9NIoLc:\"framer-v-15t6kru\",iBn2Vi6mu:\"framer-v-dqq11i\",Is6INHk2w:\"framer-v-12luxpd\",luEx2vk3b:\"framer-v-um2myp\",WrhoZRfEI:\"framer-v-yotppz\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Down Arrow - Practices\":\"hxE9NIoLc\",\"Down Arrow - Product\":\"Is6INHk2w\",\"Down Arrow - Service\":\"BkXOqHhMk\",\"Up Arrow - Practices\":\"WrhoZRfEI\",\"Up Arrow - Product\":\"luEx2vk3b\",\"Up Arrow - Service\":\"iBn2Vi6mu\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"luEx2vk3b\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"luEx2vk3b\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-um2myp\",className,classNames),\"data-framer-name\":\"Up Arrow - Product\",layoutDependency:layoutDependency,layoutId:\"luEx2vk3b\",ref:refBinding,style:{...style},...addPropertyOverrides({BkXOqHhMk:{\"data-framer-name\":\"Down Arrow - Service\"},hxE9NIoLc:{\"data-framer-name\":\"Down Arrow - Practices\"},iBn2Vi6mu:{\"data-framer-name\":\"Up Arrow - Service\"},Is6INHk2w:{\"data-framer-name\":\"Down Arrow - Product\"},WrhoZRfEI:{\"data-framer-name\":\"Up Arrow - Practices\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1jovokg\",\"data-framer-name\":\"glyph\",layoutDependency:layoutDependency,layoutId:\"NzzzXnt5o\",radius:.8,requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13 11\" overflow=\"visible\"><path d=\"M 5.839 2.343 C 6.157 1.878 6.843 1.878 7.161 2.343 L 11.276 8.374 C 11.638 8.905 11.258 9.625 10.615 9.625 L 2.385 9.625 C 1.742 9.625 1.362 8.905 1.724 8.374 Z\" fill=\"var(--token-688f7b91-a7b2-4bb9-a99e-1f7434775e6c, rgb(138, 81, 107)) /* {&quot;name&quot;:&quot;Plum Drk Title&quot;} */\"></path></svg>',variants:{BkXOqHhMk:{rotate:180},hxE9NIoLc:{rotate:180},Is6INHk2w:{rotate:180}},withExternalLayout:true,...addPropertyOverrides({BkXOqHhMk:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13 11\" overflow=\"visible\"><path d=\"M 5.839 2.343 C 6.157 1.878 6.843 1.878 7.161 2.343 L 11.276 8.374 C 11.638 8.905 11.258 9.625 10.615 9.625 L 2.385 9.625 C 1.742 9.625 1.362 8.905 1.724 8.374 Z\" fill=\"var(--token-1cd64396-f1b8-441f-bad7-1651631e2b73, rgb(96, 95, 140)) /* {&quot;name&quot;:&quot;Navy Drk Title&quot;} */\"></path></svg>'},hxE9NIoLc:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13 11\" overflow=\"visible\"><path d=\"M 5.839 2.343 C 6.157 1.878 6.843 1.878 7.161 2.343 L 11.276 8.374 C 11.638 8.905 11.258 9.625 10.615 9.625 L 2.385 9.625 C 1.742 9.625 1.362 8.905 1.724 8.374 Z\" fill=\"var(--token-49ed92e8-0204-45bc-8056-64a3996352b3, rgb(113, 141, 183)) /* {&quot;name&quot;:&quot;Blue Med Title&quot;} */\"></path></svg>'},iBn2Vi6mu:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13 11\" overflow=\"visible\"><path d=\"M 5.839 2.343 C 6.157 1.878 6.843 1.878 7.161 2.343 L 11.276 8.374 C 11.638 8.905 11.258 9.625 10.615 9.625 L 2.385 9.625 C 1.742 9.625 1.362 8.905 1.724 8.374 Z\" fill=\"var(--token-1cd64396-f1b8-441f-bad7-1651631e2b73, rgb(96, 95, 140)) /* {&quot;name&quot;:&quot;Navy Drk Title&quot;} */\"></path></svg>'},WrhoZRfEI:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 13 11\" overflow=\"visible\"><path d=\"M 5.839 2.343 C 6.157 1.878 6.843 1.878 7.161 2.343 L 11.276 8.374 C 11.638 8.905 11.258 9.625 10.615 9.625 L 2.385 9.625 C 1.742 9.625 1.362 8.905 1.724 8.374 Z\" fill=\"var(--token-49ed92e8-0204-45bc-8056-64a3996352b3, rgb(113, 141, 183)) /* {&quot;name&quot;:&quot;Blue Med Title&quot;} */\"></path></svg>'}},baseVariant,gestureVariant)})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-DpAy7.framer-1itmb44, .framer-DpAy7 .framer-1itmb44 { display: block; }\",\".framer-DpAy7.framer-um2myp { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 2px 6px 4px 0px; position: relative; width: min-content; }\",\".framer-DpAy7 .framer-1jovokg { height: 11px; position: relative; width: 13px; }\",\".framer-DpAy7.framer-v-12luxpd.framer-um2myp, .framer-DpAy7.framer-v-1nmwmk.framer-um2myp, .framer-DpAy7.framer-v-15t6kru.framer-um2myp { padding: 3px 6px 3px 0px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 17\n * @framerIntrinsicWidth 19\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"Is6INHk2w\":{\"layout\":[\"auto\",\"auto\"]},\"iBn2Vi6mu\":{\"layout\":[\"auto\",\"auto\"]},\"BkXOqHhMk\":{\"layout\":[\"auto\",\"auto\"]},\"WrhoZRfEI\":{\"layout\":[\"auto\",\"auto\"]},\"hxE9NIoLc\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerciwObHuZV=withCSS(Component,css,\"framer-DpAy7\");export default FramerciwObHuZV;FramerciwObHuZV.displayName=\"descriptor arrow\";FramerciwObHuZV.defaultProps={height:17,width:19};addPropertyControls(FramerciwObHuZV,{variant:{options:[\"luEx2vk3b\",\"Is6INHk2w\",\"iBn2Vi6mu\",\"BkXOqHhMk\",\"WrhoZRfEI\",\"hxE9NIoLc\"],optionTitles:[\"Up Arrow - Product\",\"Down Arrow - Product\",\"Up Arrow - Service\",\"Down Arrow - Service\",\"Up Arrow - Practices\",\"Down Arrow - Practices\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerciwObHuZV,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerciwObHuZV\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Is6INHk2w\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"iBn2Vi6mu\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"BkXOqHhMk\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"WrhoZRfEI\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"hxE9NIoLc\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"19\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"17\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ciwObHuZV.map","// Generated by Framer (291a518)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,getPropertyControls,RichText,runTasksWithYield,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/Yg2wujnuffuoeMGNyIDM/WuV5ZhEvLhajlPN7TC3v/gdqN4yu0W.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/j9ok5YPYtZzXRb7cTDh9/IwUuK6FaeAp9GlqcIHk6/lXqaitcnH.js\";import DescriptorArrow from\"https://framerusercontent.com/modules/VqvzqKnqDCZNp8xqZKoj/ly4Af60yU2zZPJy5tfU3/ciwObHuZV.js\";const DescriptorArrowFonts=getFonts(DescriptorArrow);const DescriptorArrowControls=getPropertyControls(DescriptorArrow);const cycleOrder=[\"lEUpwG6JZ\",\"h4bSpadCe\",\"o_jOPaaE8\"];const serializationHash=\"framer-x1lwd\";const variantClassNames={h4bSpadCe:\"framer-v-16z3gl4\",lEUpwG6JZ:\"framer-v-19xv7xz\",o_jOPaaE8:\"framer-v-f2fzxs\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const JfyPedhqZ=undefined;const nZoPRUbFo=undefined;const lio31XlVZ=undefined;const qQj4ePJjD=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Text only Sm\":\"h4bSpadCe\",\"Text only\":\"lEUpwG6JZ\",\"Text w Arrow\":\"o_jOPaaE8\"};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={\"Down Arrow - Practices\":\"hxE9NIoLc\",\"Down Arrow - Product\":\"Is6INHk2w\",\"Down Arrow - Service\":\"BkXOqHhMk\",\"Up Arrow - Practices\":\"WrhoZRfEI\",\"Up Arrow - Product\":\"luEx2vk3b\",\"Up Arrow - Service\":\"iBn2Vi6mu\"};const getProps=({arrowDirection,border,height,id,text,textColor,width,...props})=>{return{...props,JfyPedhqZ:border??props.JfyPedhqZ??{borderBottomWidth:2,borderColor:\"rgba(72, 20, 45, 0.15)\",borderLeftWidth:2,borderRightWidth:2,borderStyle:\"solid\",borderTopWidth:2},lio31XlVZ:textColor??props.lio31XlVZ??\"rgba(72, 20, 45, 0.5)\",nZoPRUbFo:humanReadableEnumMap[arrowDirection]??arrowDirection??props.nZoPRUbFo??\"luEx2vk3b\",qQj4ePJjD:text??props.qQj4ePJjD??\"Reduce Friction\",variant:humanReadableVariantMap[props.variant]??props.variant??\"lEUpwG6JZ\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,qQj4ePJjD,lio31XlVZ,JfyPedhqZ,nZoPRUbFo,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"lEUpwG6JZ\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"o_jOPaaE8\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-19xv7xz\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Text only\",layoutDependency:layoutDependency,layoutId:\"lEUpwG6JZ\",ref:refBinding,style:{\"--border-bottom-width\":(JfyPedhqZ?.borderBottomWidth??JfyPedhqZ?.borderWidth)+\"px\",\"--border-color\":JfyPedhqZ?.borderColor,\"--border-left-width\":(JfyPedhqZ?.borderLeftWidth??JfyPedhqZ?.borderWidth)+\"px\",\"--border-right-width\":(JfyPedhqZ?.borderRightWidth??JfyPedhqZ?.borderWidth)+\"px\",\"--border-style\":JfyPedhqZ?.borderStyle,\"--border-top-width\":(JfyPedhqZ?.borderTopWidth??JfyPedhqZ?.borderWidth)+\"px\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,...style},variants:{o_jOPaaE8:{borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16}},...addPropertyOverrides({h4bSpadCe:{\"data-framer-name\":\"Text only Sm\"},o_jOPaaE8:{\"data-framer-name\":\"Text w Arrow\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-t5ugl2\",layoutDependency:layoutDependency,layoutId:\"uzzx3SS6P\",children:[isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({o_jOPaaE8:{height:17,y:(componentViewport?.y||0)+10+0+1.1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1huc0lj-container\",layoutDependency:layoutDependency,layoutId:\"q6ZIAfgEW-container\",nodeId:\"q6ZIAfgEW\",rendersWithMotion:true,scopeId:\"PDDrIKbd_\",children:/*#__PURE__*/_jsx(DescriptorArrow,{height:\"100%\",id:\"q6ZIAfgEW\",layoutId:\"q6ZIAfgEW\",variant:matchVariant(nZoPRUbFo),width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ezea3z\",\"data-styles-preset\":\"lXqaitcnH\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-lio31XlVZ-PDDrIKbd_))\"},children:\"Reduce Friction\"})}),className:\"framer-sm3vl3\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Nis1x1vOh\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-lio31XlVZ-PDDrIKbd_)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-lio31XlVZ-PDDrIKbd_\":lio31XlVZ},text:qQj4ePJjD,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({o_jOPaaE8:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-2sfqio\",\"data-styles-preset\":\"gdqN4yu0W\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-lio31XlVZ-PDDrIKbd_))\"},children:\"Reduce Friction\"})})}},baseVariant,gestureVariant)})]})})})})});});const css=[\".framer-x1lwd.framer-15oat5g, .framer-x1lwd .framer-15oat5g { display: block; }\",\".framer-x1lwd.framer-19xv7xz { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 10px 16px 10px 16px; position: relative; width: min-content; }\",\".framer-x1lwd .framer-t5ugl2 { align-content: center; align-items: center; align-self: stretch; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: auto; }\",\".framer-x1lwd .framer-1huc0lj-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-x1lwd .framer-sm3vl3 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-x1lwd.framer-v-f2fzxs.framer-19xv7xz { will-change: var(--framer-will-change-override, transform); }\",\".framer-x1lwd.framer-v-f2fzxs .framer-t5ugl2 { gap: 0px; justify-content: flex-start; }\",...sharedStyle.css,...sharedStyle1.css,'.framer-x1lwd[data-border=\"true\"]::after, .framer-x1lwd [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 39\n * @framerIntrinsicWidth 132\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"h4bSpadCe\":{\"layout\":[\"auto\",\"auto\"]},\"o_jOPaaE8\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"qQj4ePJjD\":\"text\",\"lio31XlVZ\":\"textColor\",\"JfyPedhqZ\":\"border\",\"nZoPRUbFo\":\"arrowDirection\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerPDDrIKbd_=withCSS(Component,css,\"framer-x1lwd\");export default FramerPDDrIKbd_;FramerPDDrIKbd_.displayName=\"project descriptor\";FramerPDDrIKbd_.defaultProps={height:39,width:132};addPropertyControls(FramerPDDrIKbd_,{variant:{options:[\"lEUpwG6JZ\",\"h4bSpadCe\",\"o_jOPaaE8\"],optionTitles:[\"Text only\",\"Text only Sm\",\"Text w Arrow\"],title:\"Variant\",type:ControlType.Enum},qQj4ePJjD:{defaultValue:\"Reduce Friction\",displayTextArea:false,title:\"Text\",type:ControlType.String},onqQj4ePJjDChange:{changes:\"qQj4ePJjD\",type:ControlType.ChangeHandler},lio31XlVZ:{defaultValue:\"rgba(72, 20, 45, 0.5)\",title:\"Text color\",type:ControlType.Color},JfyPedhqZ:{defaultValue:{borderBottomWidth:2,borderColor:\"rgba(72, 20, 45, 0.15)\",borderLeftWidth:2,borderRightWidth:2,borderStyle:\"solid\",borderTopWidth:2},title:\"Border\",type:ControlType.Border},nZoPRUbFo:DescriptorArrowControls?.[\"variant\"]&&{...DescriptorArrowControls[\"variant\"],defaultValue:\"luEx2vk3b\",description:undefined,hidden:undefined,optional:undefined,title:\"Arrow direction\"},onnZoPRUbFoChange:{changes:\"nZoPRUbFo\",type:ControlType.ChangeHandler}});addFonts(FramerPDDrIKbd_,[{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\"}]},...DescriptorArrowFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});FramerPDDrIKbd_.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(DescriptorArrow,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerPDDrIKbd_\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"132\",\"framerIntrinsicHeight\":\"39\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"qQj4ePJjD\\\":\\\"text\\\",\\\"lio31XlVZ\\\":\\\"textColor\\\",\\\"JfyPedhqZ\\\":\\\"border\\\",\\\"nZoPRUbFo\\\":\\\"arrowDirection\\\"}\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"h4bSpadCe\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"o_jOPaaE8\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PDDrIKbd_.map","// Generated by Framer (291a518)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,RichText,runTasksWithYield,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{ScaleSentenceSpacer,ScaleSpacer2,ScaleTitleGap}from\"https://framerusercontent.com/modules/FuZZv23G0fRiB34pTWVh/IX4E9Lvy279ZnIJf83tq/TypeScaledSpacer.js\";import*as sharedStyle5 from\"https://framerusercontent.com/modules/HdFCiECenua0DgnbJXDs/pYZwnvB0cHGTt4g93WjT/b0191GdAT.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/In266132j1EqwILlhs4G/senuBGbS8GnwT4MVPLb8/C3EtLk8M4.js\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/bL2EbWnDJPo4PCxWPnyg/GJSEQOsSYpeWDgdeGHAr/HWZFyvNL3.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/SVSqHpxDmxdOiK2CE9al/qtSzNMCSdI6ofeSeWB20/QAvNjLgC_.js\";import*as sharedStyle4 from\"https://framerusercontent.com/modules/D3QxzeeW1LvbSGPUXIUF/kv1iIbjNWuu9gLt9XDVL/Rbs2Hge0A.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/NfGXMjdLFzJRWZneCIxe/ztT146nqIlbbxyUPfbkK/uYpuqtsZW.js\";import ProjectDescriptor from\"https://framerusercontent.com/modules/nRFqAOvorBqhxGDTgKzy/E14Ig7VwatESh0doqCbp/PDDrIKbd_.js\";const ProjectDescriptorFonts=getFonts(ProjectDescriptor);const MotionDivScaleSpacer22tr14r=withCodeBoundaryForOverrides(motion.div,{nodeId:\"iouqdI3KS\",override:ScaleSpacer2,scopeId:\"ab43B7Et7\"});const MotionDivScaleSentenceSpacered09lp=withCodeBoundaryForOverrides(motion.div,{nodeId:\"F_wyP9Dps\",override:ScaleSentenceSpacer,scopeId:\"ab43B7Et7\"});const MotionDivScaleTitleGap19bcdib=withCodeBoundaryForOverrides(motion.div,{nodeId:\"k3ws578ba\",override:ScaleTitleGap,scopeId:\"ab43B7Et7\"});const MotionDivScaleTitleGap1qsn78x=withCodeBoundaryForOverrides(motion.div,{nodeId:\"PaN6guGpy\",override:ScaleTitleGap,scopeId:\"ab43B7Et7\"});const cycleOrder=[\"xvr0BJvo5\",\"uQZKmdDL7\",\"SZoQv4XG5\",\"MPAV8YKQx\",\"d0y7lMQOO\",\"LauVvEtpV\",\"X5w6CytR3\",\"i5JkE7V2E\",\"jkBQxgubp\",\"XPO3JzCGv\"];const serializationHash=\"framer-fq08b\";const variantClassNames={d0y7lMQOO:\"framer-v-1lo5m75\",i5JkE7V2E:\"framer-v-j2onxd\",jkBQxgubp:\"framer-v-1paov19\",LauVvEtpV:\"framer-v-1wms5y3\",MPAV8YKQx:\"framer-v-16wzit8\",SZoQv4XG5:\"framer-v-1jkpzdo\",uQZKmdDL7:\"framer-v-hfswnd\",X5w6CytR3:\"framer-v-1ptmrn2\",XPO3JzCGv:\"framer-v-7ekajv\",xvr0BJvo5:\"framer-v-17z4vp0\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const MEpKmhobT=undefined;const I8VOZ3Gjp=undefined;const PKYo3fzKC=undefined;const Iq_jqJZs8=undefined;const fU1yVoEQY=undefined;const uEuNMtN6A=undefined;const lKlUyiiTr=undefined;const U9n1Ip2MJ=undefined;const xXELCrgKm=undefined;const avhllpdFt=undefined;const setI8VOZ3Gjp=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"404\":\"XPO3JzCGv\",\"Depth & Breadth\":\"jkBQxgubp\",\"Examples title Sm Stack\":\"X5w6CytR3\",\"Examples title Sm\":\"i5JkE7V2E\",\"Examples title\":\"LauVvEtpV\",\"Mid section Sm Stack\":\"d0y7lMQOO\",\"Product Design horiz\":\"xvr0BJvo5\",\"Product Design Sm Stack\":\"uQZKmdDL7\",\"Service Design horiz\":\"SZoQv4XG5\",\"Strategic Practices horiz\":\"MPAV8YKQx\"};const Variants=motion.create(React.Fragment);const useStateVariable=(externalState,setExternalState)=>{const[internalState,setInternalState]=React.useState(externalState);const[previousExternalState,setPreviousExternalState]=React.useState(externalState);if(setExternalState){return[externalState,setExternalState];}if(externalState!==previousExternalState){setInternalState(externalState);setPreviousExternalState(externalState);}return[internalState,setInternalState];};const getProps=({bgColor,bodyColor,bodyCopy,height,id,quoteAuthor,tagBorderColor,tagCopy,tagTextColor,title1,title2,titleColor,width,...props})=>{return{...props,avhllpdFt:quoteAuthor??props.avhllpdFt??\"\",fU1yVoEQY:titleColor??props.fU1yVoEQY??\"rgb(0, 0, 0)\",I8VOZ3Gjp:tagCopy??props.I8VOZ3Gjp??\"Reduce Friction\",Iq_jqJZs8:tagBorderColor??props.Iq_jqJZs8??{borderColor:\"rgba(72, 20, 45, 0.15)\",borderStyle:\"solid\",borderWidth:2},lKlUyiiTr:title2??props.lKlUyiiTr??\"Refined results.\",MEpKmhobT:bgColor??props.MEpKmhobT??\"rgba(255, 255, 255, 0)\",PKYo3fzKC:tagTextColor??props.PKYo3fzKC??\"rgba(72, 20, 45, 0.5)\",U9n1Ip2MJ:bodyColor??props.U9n1Ip2MJ??\"rgba(0, 0, 0, 0.8)\",uEuNMtN6A:title1??props.uEuNMtN6A??\"Customer focus.\",variant:humanReadableVariantMap[props.variant]??props.variant??\"xvr0BJvo5\",xXELCrgKm:bodyCopy??props.xXELCrgKm??\"I spot high-value opportunities through research, then craft products that move customers and metrics.\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,uEuNMtN6A,lKlUyiiTr,fU1yVoEQY,xXELCrgKm,U9n1Ip2MJ,MEpKmhobT,\"I8VOZ3Gjp\":externalI8VOZ3Gjp,\"onI8VOZ3GjpChange\":setExternalI8VOZ3Gjp,PKYo3fzKC,Iq_jqJZs8,avhllpdFt,...restProps}=getProps(props);const[I8VOZ3Gjp,setI8VOZ3Gjp]=useStateVariable(externalI8VOZ3Gjp,setExternalI8VOZ3Gjp);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"xvr0BJvo5\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"LauVvEtpV\",\"X5w6CytR3\",\"i5JkE7V2E\"].includes(baseVariant))return true;return false;};const isDisplayed1=()=>{if([\"uQZKmdDL7\",\"MPAV8YKQx\",\"d0y7lMQOO\",\"LauVvEtpV\",\"X5w6CytR3\",\"i5JkE7V2E\",\"XPO3JzCGv\"].includes(baseVariant))return false;return true;};const isDisplayed2=()=>{if([\"MPAV8YKQx\",\"LauVvEtpV\",\"i5JkE7V2E\",\"XPO3JzCGv\"].includes(baseVariant))return false;return true;};const isDisplayed3=()=>{if(baseVariant===\"XPO3JzCGv\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-17z4vp0\",className,classNames),\"data-framer-name\":\"Product Design horiz\",layoutDependency:layoutDependency,layoutId:\"xvr0BJvo5\",ref:refBinding,style:{backgroundColor:\"rgba(0, 0, 0, 0)\",...style},variants:{d0y7lMQOO:{backgroundColor:\"rgba(0, 0, 0, 0)\"},i5JkE7V2E:{backgroundColor:MEpKmhobT},jkBQxgubp:{backgroundColor:MEpKmhobT},LauVvEtpV:{backgroundColor:MEpKmhobT},MPAV8YKQx:{backgroundColor:\"rgba(0, 0, 0, 0)\"},SZoQv4XG5:{backgroundColor:MEpKmhobT},X5w6CytR3:{backgroundColor:MEpKmhobT},XPO3JzCGv:{backgroundColor:\"rgba(0, 0, 0, 0)\"}},...addPropertyOverrides({d0y7lMQOO:{\"data-framer-name\":\"Mid section Sm Stack\"},i5JkE7V2E:{\"data-framer-name\":\"Examples title Sm\"},jkBQxgubp:{\"data-framer-name\":\"Depth & Breadth\"},LauVvEtpV:{\"data-framer-name\":\"Examples title\"},MPAV8YKQx:{\"data-framer-name\":\"Strategic Practices horiz\"},SZoQv4XG5:{\"data-framer-name\":\"Service Design horiz\"},uQZKmdDL7:{\"data-framer-name\":\"Product Design Sm Stack\"},X5w6CytR3:{\"data-framer-name\":\"Examples title Sm Stack\"},XPO3JzCGv:{\"data-framer-name\":\"404\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1x3r8b9\",\"data-framer-name\":\"spacer 1\",layoutDependency:layoutDependency,layoutId:\"EzF5Y6a9r\"}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-7lpp9z\",\"data-framer-name\":\"label\",layoutDependency:layoutDependency,layoutId:\"miI8ngHgJ\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:39,...addPropertyOverrides({i5JkE7V2E:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||371.5)-0-472)/2+100+0)+0},LauVvEtpV:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||379.5)-0-480.1)/2+100+0)+0},X5w6CytR3:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||426.5)-0-527)/2+100+0)+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1j7qtwa-container\",layoutDependency:layoutDependency,layoutId:\"djJZ3qWPZ-container\",nodeId:\"djJZ3qWPZ\",rendersWithMotion:true,scopeId:\"ab43B7Et7\",children:/*#__PURE__*/_jsx(ProjectDescriptor,{cL2kOjlVz:\"\",height:\"100%\",id:\"djJZ3qWPZ\",JfyPedhqZ:Iq_jqJZs8,layoutId:\"djJZ3qWPZ\",lio31XlVZ:PKYo3fzKC,nZoPRUbFo:\"luEx2vk3b\",onqQj4ePJjDChange:setI8VOZ3Gjp,qQj4ePJjD:I8VOZ3Gjp,variant:matchVariant(\"lEUpwG6JZ\"),width:\"100%\",...addPropertyOverrides({i5JkE7V2E:{variant:matchVariant(\"h4bSpadCe\")},X5w6CytR3:{variant:matchVariant(\"h4bSpadCe\")}},baseVariant,gestureVariant)})})})}),isDisplayed()&&/*#__PURE__*/_jsx(MotionDivScaleSpacer22tr14r,{className:\"framer-2tr14r\",\"data-framer-name\":\"spacer 2\",layoutDependency:layoutDependency,layoutId:\"iouqdI3KS\"}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-oqqix0\",\"data-framer-name\":\"Title text\",layoutDependency:layoutDependency,layoutId:\"ZEQ8xDUYS\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1143x6p\",\"data-framer-name\":\"clip 1\",layoutDependency:layoutDependency,layoutId:\"ZwA9Qr8U2\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{className:\"framer-styles-preset-8cjvp5\",\"data-styles-preset\":\"uYpuqtsZW\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Customer focus.\"})})}),className:\"framer-1aopsv6\",fonts:[\"Inter\",\"Inter-Bold\"],layoutDependency:layoutDependency,layoutId:\"xmXmI_05A\",style:{\"--extracted-1of0zx5\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-fU1yVoEQY-ab43B7Et7\":fU1yVoEQY},text:uEuNMtN6A,variants:{d0y7lMQOO:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"},i5JkE7V2E:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"},uQZKmdDL7:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"},X5w6CytR3:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"},XPO3JzCGv:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({d0y7lMQOO:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Customer focus.\"})})})},i5JkE7V2E:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Customer focus.\"})})})},uQZKmdDL7:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Customer focus.\"})})})},X5w6CytR3:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Customer focus.\"})})})},XPO3JzCGv:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-2r3ydn\",\"data-styles-preset\":\"QAvNjLgC_\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Customer focus.\"})})})}},baseVariant,gestureVariant)})}),isDisplayed1()&&/*#__PURE__*/_jsx(MotionDivScaleSentenceSpacered09lp,{className:\"framer-ed09lp\",\"data-framer-name\":\"sentence spacer\",layoutDependency:layoutDependency,layoutId:\"F_wyP9Dps\"}),isDisplayed2()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-eq3l88\",\"data-framer-name\":\"clip 2\",layoutDependency:layoutDependency,layoutId:\"d_b6OAeN1\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{className:\"framer-styles-preset-8cjvp5\",\"data-styles-preset\":\"uYpuqtsZW\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Refined results.\"})})}),className:\"framer-1yd9t3z\",fonts:[\"Inter\",\"Inter-Bold\"],layoutDependency:layoutDependency,layoutId:\"k8HIYp64Q\",style:{\"--extracted-1of0zx5\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-fU1yVoEQY-ab43B7Et7\":fU1yVoEQY},text:lKlUyiiTr,variants:{d0y7lMQOO:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"},uQZKmdDL7:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"},X5w6CytR3:{\"--extracted-gdpscs\":\"var(--variable-reference-fU1yVoEQY-ab43B7Et7)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({d0y7lMQOO:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Refined results.\"})})})},uQZKmdDL7:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Refined results.\"})})})},X5w6CytR3:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-nplzym\",\"data-styles-preset\":\"C3EtLk8M4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-gdpscs, var(--variable-reference-fU1yVoEQY-ab43B7Et7))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Refined results.\"})})})}},baseVariant,gestureVariant)})})]}),/*#__PURE__*/_jsx(MotionDivScaleTitleGap19bcdib,{className:\"framer-19bcdib\",\"data-framer-name\":\"spacer 3\",layoutDependency:layoutDependency,layoutId:\"k3ws578ba\"}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-179pghe\",\"data-framer-name\":\"Supporting copy\",layoutDependency:layoutDependency,layoutId:\"mzWXoEjiB\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-gas3o3\",\"data-styles-preset\":\"HWZFyvNL3\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-U9n1Ip2MJ-ab43B7Et7))\"},children:\"I spot high-value opportunities through research, then craft products that move customers and metrics.\"})}),className:\"framer-12mangd\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Lta6rcZ0l\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-U9n1Ip2MJ-ab43B7Et7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-U9n1Ip2MJ-ab43B7Et7\":U9n1Ip2MJ},text:xXELCrgKm,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({XPO3JzCGv:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1f3rezp\",\"data-styles-preset\":\"Rbs2Hge0A\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-U9n1Ip2MJ-ab43B7Et7))\"},children:\"I spot high-value opportunities through research, then craft products that move customers and metrics.\"})})}},baseVariant,gestureVariant)}),isDisplayed3()&&/*#__PURE__*/_jsx(MotionDivScaleTitleGap1qsn78x,{className:\"framer-1qsn78x\",\"data-framer-name\":\"spacer 4\",layoutDependency:layoutDependency,layoutId:\"PaN6guGpy\"}),isDisplayed3()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-vznxt1\",\"data-styles-preset\":\"b0191GdAT\",dir:\"auto\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-U9n1Ip2MJ-ab43B7Et7))\"},children:\"Content\"})}),className:\"framer-gndz6h\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"oRUMzglm3\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-U9n1Ip2MJ-ab43B7Et7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-U9n1Ip2MJ-ab43B7Et7\":U9n1Ip2MJ},text:avhllpdFt,verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-159ea1k\",\"data-framer-name\":\"spacer 5\",layoutDependency:layoutDependency,layoutId:\"EU0iwKg0W\"})]})})})});});const css=[\".framer-fq08b.framer-rzx7bu, .framer-fq08b .framer-rzx7bu { display: block; }\",\".framer-fq08b.framer-17z4vp0 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1200px; }\",\".framer-fq08b .framer-1x3r8b9 { aspect-ratio: 10.909090909090908 / 1; flex: none; height: auto; max-height: 110px; overflow: visible; position: relative; width: 100%; }\",\".framer-fq08b .framer-7lpp9z { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-fq08b .framer-1j7qtwa-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-fq08b .framer-2tr14r { aspect-ratio: 33.333333333333336 / 1; flex: none; height: auto; max-height: 36px; overflow: visible; position: relative; width: 100%; }\",\".framer-fq08b .framer-oqqix0 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; max-width: 940px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-fq08b .framer-1143x6p, .framer-fq08b .framer-eq3l88 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-fq08b .framer-1aopsv6, .framer-fq08b .framer-1yd9t3z { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-fq08b .framer-ed09lp { align-self: stretch; flex: none; height: auto; max-width: 16px; overflow: visible; position: relative; width: 16px; }\",\".framer-fq08b .framer-19bcdib { aspect-ratio: 27.906976744186046 / 1; flex: none; height: auto; max-height: 43px; min-height: 18px; overflow: visible; position: relative; width: 100%; }\",\".framer-fq08b .framer-179pghe { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-fq08b .framer-12mangd { --framer-text-wrap-override: balance; flex: none; height: auto; max-width: 715px; position: relative; width: 80%; }\",\".framer-fq08b .framer-1qsn78x { aspect-ratio: 33.333333333333336 / 1; flex: none; height: auto; max-height: 36px; overflow: visible; position: relative; width: 1200px; }\",\".framer-fq08b .framer-gndz6h { flex: none; height: auto; max-width: 715px; position: relative; white-space: pre-wrap; width: 91%; word-break: break-word; word-wrap: break-word; }\",\".framer-fq08b .framer-159ea1k { aspect-ratio: 8.571428571428571 / 1; flex: none; height: auto; max-height: 140px; overflow: visible; position: relative; width: 100%; }\",\".framer-fq08b.framer-v-hfswnd .framer-oqqix0, .framer-fq08b.framer-v-1lo5m75 .framer-oqqix0, .framer-fq08b.framer-v-1ptmrn2 .framer-oqqix0, .framer-fq08b.framer-v-j2onxd .framer-oqqix0 { flex-direction: column; gap: 10px; }\",\".framer-fq08b.framer-v-hfswnd .framer-19bcdib, .framer-fq08b.framer-v-1lo5m75 .framer-19bcdib { max-height: 48px; }\",\".framer-fq08b.framer-v-hfswnd .framer-12mangd, .framer-fq08b.framer-v-1lo5m75 .framer-12mangd, .framer-fq08b.framer-v-7ekajv .framer-oqqix0 { width: 91%; }\",\".framer-fq08b.framer-v-1wms5y3 .framer-1x3r8b9, .framer-fq08b.framer-v-1ptmrn2 .framer-1x3r8b9, .framer-fq08b.framer-v-j2onxd .framer-1x3r8b9 { aspect-ratio: 12 / 1; max-height: 100px; }\",\".framer-fq08b.framer-v-1wms5y3 .framer-oqqix0 { gap: 18px; }\",\".framer-fq08b.framer-v-1wms5y3 .framer-19bcdib, .framer-fq08b.framer-v-1ptmrn2 .framer-19bcdib, .framer-fq08b.framer-v-j2onxd .framer-19bcdib { aspect-ratio: 85.71428571428571 / 1; max-height: 14px; min-height: 12px; }\",\".framer-fq08b.framer-v-1wms5y3 .framer-12mangd { max-width: 900px; width: 90%; }\",\".framer-fq08b.framer-v-1wms5y3 .framer-159ea1k, .framer-fq08b.framer-v-1ptmrn2 .framer-159ea1k, .framer-fq08b.framer-v-j2onxd .framer-159ea1k { aspect-ratio: 17.142857142857142 / 1; max-height: 70px; }\",\".framer-fq08b.framer-v-1ptmrn2 .framer-12mangd, .framer-fq08b.framer-v-j2onxd .framer-12mangd { --framer-text-wrap-override: none; max-width: 900px; width: 90%; }\",\".framer-fq08b.framer-v-1paov19 .framer-1x3r8b9, .framer-fq08b.framer-v-1paov19 .framer-159ea1k { aspect-ratio: 8.88888888888889 / 1; max-height: 135px; }\",\".framer-fq08b.framer-v-1paov19 .framer-12mangd { max-width: 960px; }\",\".framer-fq08b.framer-v-7ekajv .framer-1143x6p { flex: 1 0 0px; flex-wrap: wrap; width: 1px; }\",\".framer-fq08b.framer-v-7ekajv .framer-1aopsv6 { --framer-text-wrap-override: balance; flex: 1 0 0px; width: 1px; }\",\".framer-fq08b.framer-v-7ekajv .framer-19bcdib { aspect-ratio: 22.22222222222222 / 1; max-height: 54px; }\",\".framer-fq08b.framer-v-7ekajv .framer-12mangd { max-width: 700px; width: 91%; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 413.5\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"uQZKmdDL7\":{\"layout\":[\"fixed\",\"auto\"]},\"SZoQv4XG5\":{\"layout\":[\"fixed\",\"auto\"]},\"MPAV8YKQx\":{\"layout\":[\"fixed\",\"auto\"]},\"d0y7lMQOO\":{\"layout\":[\"fixed\",\"auto\"]},\"LauVvEtpV\":{\"layout\":[\"fixed\",\"auto\"]},\"X5w6CytR3\":{\"layout\":[\"fixed\",\"auto\"]},\"i5JkE7V2E\":{\"layout\":[\"fixed\",\"auto\"]},\"jkBQxgubp\":{\"layout\":[\"fixed\",\"auto\"]},\"XPO3JzCGv\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"uEuNMtN6A\":\"title1\",\"lKlUyiiTr\":\"title2\",\"fU1yVoEQY\":\"titleColor\",\"xXELCrgKm\":\"bodyCopy\",\"U9n1Ip2MJ\":\"bodyColor\",\"MEpKmhobT\":\"bgColor\",\"I8VOZ3Gjp\":\"tagCopy\",\"PKYo3fzKC\":\"tagTextColor\",\"Iq_jqJZs8\":\"tagBorderColor\",\"avhllpdFt\":\"quoteAuthor\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerab43B7Et7=withCSS(Component,css,\"framer-fq08b\");export default Framerab43B7Et7;Framerab43B7Et7.displayName=\"H2 hero text\";Framerab43B7Et7.defaultProps={height:413.5,width:1200};addPropertyControls(Framerab43B7Et7,{variant:{options:[\"xvr0BJvo5\",\"uQZKmdDL7\",\"SZoQv4XG5\",\"MPAV8YKQx\",\"d0y7lMQOO\",\"LauVvEtpV\",\"X5w6CytR3\",\"i5JkE7V2E\",\"jkBQxgubp\",\"XPO3JzCGv\"],optionTitles:[\"Product Design horiz\",\"Product Design Sm Stack\",\"Service Design horiz\",\"Strategic Practices horiz\",\"Mid section Sm Stack\",\"Examples title\",\"Examples title Sm Stack\",\"Examples title Sm\",\"Depth & Breadth\",\"404\"],title:\"Variant\",type:ControlType.Enum},uEuNMtN6A:{defaultValue:\"Customer focus.\",displayTextArea:false,title:\"Title 1\",type:ControlType.String},onuEuNMtN6AChange:{changes:\"uEuNMtN6A\",type:ControlType.ChangeHandler},lKlUyiiTr:{defaultValue:\"Refined results.\",displayTextArea:false,title:\"Title 2\",type:ControlType.String},onlKlUyiiTrChange:{changes:\"lKlUyiiTr\",type:ControlType.ChangeHandler},fU1yVoEQY:{defaultValue:\"rgb(0, 0, 0)\",title:\"Title color\",type:ControlType.Color},xXELCrgKm:{defaultValue:\"I spot high-value opportunities through research, then craft products that move customers and metrics.\",displayTextArea:false,title:\"Body copy\",type:ControlType.String},onxXELCrgKmChange:{changes:\"xXELCrgKm\",type:ControlType.ChangeHandler},U9n1Ip2MJ:{defaultValue:\"rgba(0, 0, 0, 0.8)\",title:\"Body color\",type:ControlType.Color},MEpKmhobT:{defaultValue:\"rgba(255, 255, 255, 0)\",title:\"Bg color\",type:ControlType.Color},I8VOZ3Gjp:{defaultValue:\"Reduce Friction\",displayTextArea:false,title:\"Tag copy\",type:ControlType.String},onI8VOZ3GjpChange:{changes:\"I8VOZ3Gjp\",type:ControlType.ChangeHandler},PKYo3fzKC:{defaultValue:\"rgba(72, 20, 45, 0.5)\",title:\"Tag text color\",type:ControlType.Color},Iq_jqJZs8:{defaultValue:{borderColor:\"rgba(72, 20, 45, 0.15)\",borderStyle:\"solid\",borderWidth:2},title:\"Tag border color\",type:ControlType.Border},avhllpdFt:{defaultValue:\"\",displayTextArea:false,title:\"Quote author\",type:ControlType.String},onavhllpdFtChange:{changes:\"avhllpdFt\",type:ControlType.ChangeHandler}});addFonts(Framerab43B7Et7,[{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:\"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/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{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/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{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/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{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/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{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/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"}]},...ProjectDescriptorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts)],{supportsExplicitInterCodegen:true});Framerab43B7Et7.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(ProjectDescriptor,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerab43B7Et7\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"413.5\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"uQZKmdDL7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"SZoQv4XG5\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"MPAV8YKQx\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"d0y7lMQOO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"LauVvEtpV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"X5w6CytR3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"i5JkE7V2E\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"jkBQxgubp\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"XPO3JzCGv\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"uEuNMtN6A\\\":\\\"title1\\\",\\\"lKlUyiiTr\\\":\\\"title2\\\",\\\"fU1yVoEQY\\\":\\\"titleColor\\\",\\\"xXELCrgKm\\\":\\\"bodyCopy\\\",\\\"U9n1Ip2MJ\\\":\\\"bodyColor\\\",\\\"MEpKmhobT\\\":\\\"bgColor\\\",\\\"I8VOZ3Gjp\\\":\\\"tagCopy\\\",\\\"PKYo3fzKC\\\":\\\"tagTextColor\\\",\\\"Iq_jqJZs8\\\":\\\"tagBorderColor\\\",\\\"avhllpdFt\\\":\\\"quoteAuthor\\\"}\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// LITE MODE (2026-09-26): on a low-powered laptop every instance draws one\n// still frame at its Start Position, as if Animated were No. The switch is an\n// attribute on <html> that a Site Settings › <head> block\n// (`LiteModeHead.txt`) sets before the page first paints — on devices that\n// report 4 GB of memory or less, or with `?lite=1` in the address. Only the\n// effects read it, never what renders. Head code does not run in Framer\n// preview, so preview always shows the full site.\n// KEEP LITE_ATTR IDENTICAL in LiteModeHead.txt, Float.tsx,\n// ArrowBounceLoop.tsx, HalftoneWave2.tsx and HalftoneWave3.tsx.\nconst LITE_ATTR=\"data-lite\";const isLite=()=>typeof document!==\"undefined\"&&document.documentElement.hasAttribute(LITE_ATTR);// TAB-RETURN REDRAW (2026-10-05). WebKit — desktop Safari, and every\n// browser on an iPhone — can throw away what a canvas has drawn while its\n// tab sits in the background, and nothing here drew it again on return:\n// the decoration came back blank. Measured on Greg's iPhone after a few\n// minutes in other apps: the canvases still sized and not hidden, their\n// pixels gone. So each component redraws when the page becomes visible\n// again after being hidden for at least REDRAW_AFTER_HIDDEN_MS, after a\n// back/forward-cache restore, and when Chrome reports a canvas's drawing\n// surface restored.\n// Units: ms. Direction: shorter = also redraws after quicker tab switches\n// (more often, each still a one-off); longer = fewer redraws, but a\n// return sooner than this after a discard stays blank. WebKit was seen\n// to discard after a few minutes. Greg's call, 2026-10-05: 30 s.\n// KEEP IDENTICAL (this block and onReturnAfterHidden) in\n// BackgroundGradient.tsx, BackgroundGradient2.tsx, LinearEllipse.tsx,\n// HalftoneWave2.tsx and HalftoneWave3.tsx.\nconst REDRAW_AFTER_HIDDEN_MS=3e4;/** Calls `redraw` on the first frame after the page comes back from a\n *  long enough hide, or from the back/forward cache. Wall-clock time,\n *  because a phone can pause the page's own clocks while it is in the\n *  background. Returns the unsubscribe. Call it from an effect only. */const onReturnAfterHidden=redraw=>{let hiddenAt=document.visibilityState===\"hidden\"?Date.now():0;let raf=0;const run=()=>{cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>redraw());};const onVisibility=()=>{if(document.visibilityState===\"hidden\"){if(!hiddenAt)hiddenAt=Date.now();return;}const away=hiddenAt?Date.now()-hiddenAt:0;hiddenAt=0;if(away>=REDRAW_AFTER_HIDDEN_MS)run();};const onPageShow=e=>{if(e.persisted)run();};document.addEventListener(\"visibilitychange\",onVisibility);window.addEventListener(\"pageshow\",onPageShow);return()=>{cancelAnimationFrame(raf);document.removeEventListener(\"visibilitychange\",onVisibility);window.removeEventListener(\"pageshow\",onPageShow);};};// SAFARI 27 PAINTED SIBLING (2026-10-07). On Safari 27 the Intro halftone —\n// inside the pinned hero — vanished once the hero had released and the\n// canvas's top edge passed the top of the window, and stayed gone until the\n// Intro left the page. Safari 26 never showed it. Found in Greg's own Safari\n// 27 with a console probe: the canvas stays whenever ANYTHING ELSE PAINTS\n// inside its clipped wrapper (a stripe, a second canvas, a full-size layer\n// of 1% white), and goes when the wrapper holds only the canvas — an empty\n// layer that paints nothing did not help. Turning the pin off also kept it,\n// so the pin is part of the trigger. Tested and NOT the fix: the container's\n// blend mode or opacity, a compositing layer on the canvas, its container,\n// Hero BG or the pinned group, and removing the clip.\n// So every instance puts a full-size layer of SAFARI27_KEEP_FILL over its\n// canvas. Measured in Chrome on every halftone and gradient on Home: at most\n// 1–2 levels of 255, within screenshot noise on the Intro (under Multiply,\n// white leaves the background unchanged).\n// The worker's context is also not \"desynchronized\" — changed 2026-10-06\n// while chasing this; not the cause, kept because a decorative animation\n// gains nothing from low latency.\n// KEEP IDENTICAL (this note, SAFARI27_KEEP_FILL and the layer) in\n// HalftoneWave2.tsx and HalftoneWave3.tsx.\n// The fill of that layer. It must PAINT, so never fully transparent (alpha\n// 0 did not work); higher alpha starts to show as a white haze over the\n// field. 0.01 is the value tested on Safari 27.\nconst SAFARI27_KEEP_FILL=\"rgba(255, 255, 255, 0.01)\";// STILL FRAME (2026-10-12). An instance that will not animate — Animated\n// off (Greg sets it per breakpoint; off on mobile), lite mode, or the Framer\n// editing canvas — used to keep a live worker anyway, holding the dot and\n// mask images and drawing into a canvas handed over to it, only to sit\n// still. Part of keeping Home under iOS's memory limit for one page (past\n// it the phone reloads the page in Safari and blanks it in Arc). Now such\n// an instance asks a worker for ONE finished frame, shows it as a plain\n// image in an ordinary canvas, and shuts the worker down. Same renderer,\n// same pose, same density; nothing keeps running. A tab-return rebuilds as\n// before; switching Animated on again (a wider breakpoint) remounts the\n// live path.\n// A HEIGHT-only change — a card or accordion above opening, which Framer\n// does in one step — draws a fresh frame at once (2026-10-12: waiting for\n// the size to hold put the redraw visibly after the card's own change, in\n// Depth & Breadth). Between the change and the new frame the old frame\n// stays at the size it was drawn, pinned to the top, so the dots do not\n// move; only the fade at the far end waits for the new frame. A WIDTH\n// change (a window drag, a rotation) is the one that streams, so it waits\n// for STILL_SETTLE_MS and the old frame stretches sideways meanwhile.\n// CHROMIUM (2026-10-28): the worker draws its one frame in ordinary memory\n// (`willReadFrequently`), not on the graphics card. Chrome ties a frame\n// drawn on the graphics card to the worker that drew it, so shutting the\n// worker down emptied the image even after it was shown: every still\n// instance was blank in Chromium — the Framer canvas, lite mode, and phone\n// widths in Chrome, Edge and Samsung Internet — from 2026-10-12 until this\n// fix. WebKit kept its frames. Copying the image on the page instead (the\n// other fix that worked) would cost a full-size copy per instance on\n// iPhones, the memory this path exists to save. The cost here: Chromium\n// draws the frame without the graphics card, about 0.5 s for the tallest\n// instance on a Mac, in the worker, so the still field can appear a moment\n// later.\n// KEEP IDENTICAL (this note, STILL_SETTLE_MS, showStill and the worker's\n// \"still\" message) in HalftoneWave2.tsx and HalftoneWave3.tsx.\n// How long a still instance's WIDTH must hold before its frame is redrawn.\n// Height-only changes do not wait (STILL FRAME above).\n// Units: ms. Direction: larger = fewer redraws (each a short-lived worker)\n// during a window drag, but the old frame stays stretched a little longer;\n// smaller = snaps exact sooner. Phones rarely resize — a rotation, at most.\nconst STILL_SETTLE_MS=150;/** Shows a finished frame in an ordinary canvas. The bitmap renderer takes\n *  the image over without copying it; where that renderer is missing, the\n *  frame is copied in and the image released. */const showStill=(canvas,bmp)=>{const br=canvas.getContext(\"bitmaprenderer\");if(br){br.transferFromImageBitmap(bmp);return;}canvas.width=bmp.width;canvas.height=bmp.height;canvas.getContext(\"2d\")?.drawImage(bmp,0,0);bmp.close();};// Framer shared color styles arrive as CSS variables — e.g.\n// \"var(--token-abc, rgb(230, 176, 176))\" — which canvas APIs cannot\n// parse. Resolve to a concrete color: prefer computed style (correct\n// even if the token has no inline fallback), then the var() fallback.\n// Runs on the main thread: the worker has no DOM to resolve against.\nconst resolveColor=(c,context)=>{if(!c||typeof c!==\"string\")return\"rgb(0, 0, 0)\";const trimmed=c.trim();if(!trimmed.startsWith(\"var(\"))return trimmed;if(context&&typeof window!==\"undefined\"){try{const probe=document.createElement(\"span\");probe.style.color=trimmed;probe.style.display=\"none\";context.appendChild(probe);const resolved=window.getComputedStyle(probe).color;context.removeChild(probe);if(resolved&&!resolved.includes(\"var(\"))return resolved;}catch(e){// fall through to fallback extraction\n}}const inner=trimmed.slice(4,-1);const comma=inner.indexOf(\",\");if(comma>=0){const fallback=inner.slice(comma+1).trim();if(fallback)return resolveColor(fallback,context);}return\"rgb(0, 0, 0)\";};/**\n * The renderer, run inside a Web Worker against an OffscreenCanvas.\n * Kept as plain-JS source text rather than a function reference so the\n * bundler can never rewrite it into something that leans on module\n * scope — the worker receives exactly these characters.\n *\n * Messages in:\n *   init    { canvas: OffscreenCanvas, cfg, w, h, dpr, isStatic, skipDelay }\n *   cfg     { cfg }            props changed → rebuild, restart clock\n *   size    { w, h }           wrapper resized → rebuild, redraw\n *   vis     { visible }        IntersectionObserver result\n *   still   { cfg, w, h, dpr } one frame, posted back as\n *                              { type: \"frame\", bmp } (STILL FRAME)\n */const WORKER_SRC=`\n\"use strict\";\nconst osc = (phase, mode) => {\n    const TAU = Math.PI * 2;\n    let q = (phase / TAU) % 1;\n    if (q < 0) q += 1;\n    const u = (q * 2) % 1;\n    let s;\n    if (mode === \"pulse\") s = u * u * u * (u * (u * 6 - 15) + 10);\n    else s = 0.5 - 0.5 * Math.cos(Math.PI * u);\n    return q < 0.5 ? s : 1 - s;\n};\nconst clamp01 = (v) => Math.max(0, Math.min(1, v));\nconst smooth = (v) => { const x = clamp01(v); return x * x * (3 - 2 * x); };\nconst edgeCut = (x, curve, inset, w) => {\n    if (curve === 0) return 0;\n    const ins = Math.max(0, Math.min(inset, w * 0.45));\n    const span = w - 2 * ins;\n    let b = 0;\n    if (span > 0 && x > ins && x < w - ins) b = Math.sin(Math.PI * ((x - ins) / span));\n    return curve > 0 ? curve * b : -curve * (1 - b);\n};\n\n// Worker-scope requestAnimationFrame is not in every engine. A timer at\n// the display's nominal rate is the fallback; the OffscreenCanvas still\n// commits on the page's next frame either way.\nconst raf = typeof self.requestAnimationFrame === \"function\"\n    ? (cb) => self.requestAnimationFrame(cb)\n    : (cb) => setTimeout(() => cb(performance.now()), 16);\nconst caf = typeof self.cancelAnimationFrame === \"function\"\n    ? (id) => self.cancelAnimationFrame(id)\n    : (id) => clearTimeout(id);\n\nlet canvas = null, ctx = null, cfg = null;\nlet w = 0, h = 0, dpr = 1, isStatic = false, visible = true;\nlet px = new Float32Array(0), py = new Float32Array(0);\nlet ph1 = new Float32Array(0), ph2 = new Float32Array(0), phb = new Float32Array(0);\nlet grad = null, sprite = null, maskCanvas = null;\nlet maxFrac = 0.46, ca = 1, sa = 0;\nlet t = 0, last = 0, firstVisibleAt = 0, lastDraw = 0, rafId = 0, running = false;\n// True for a tab-return rebuild: the instance was already on screen, so\n// Start Delay is not served twice.\nlet skipDelay = false;\n\nconst edgeAlpha = (x, y) => {\n    let a = 1;\n    const yT = edgeCut(x, cfg.curveTop, cfg.curveTopInset, w);\n    const yB = h - edgeCut(x, cfg.curveBottom, cfg.curveBottomInset, w);\n    const fT = cfg.fadeTop > 0 ? cfg.fadeTop : cfg.curveTop !== 0 ? 2 : 0;\n    const fB = cfg.fadeBottom > 0 ? cfg.fadeBottom : cfg.curveBottom !== 0 ? 2 : 0;\n    if (fT > 0) a *= smooth((y - yT) / fT);\n    if (fB > 0) a *= smooth((yB - y) / fB);\n    if (cfg.fadeX > 0) a *= smooth(x / cfg.fadeX) * smooth((w - x) / cfg.fadeX);\n    return a;\n};\n\nconst buildSprite = () => {\n    const maxR = Math.max(cfg.spacing, 10) * maxFrac;\n    const size = Math.ceil(maxR * 2 * dpr) + 2;\n    sprite = new OffscreenCanvas(size, size);\n    const sctx = sprite.getContext(\"2d\");\n    if (!sctx) { sprite = null; return; }\n    sctx.fillStyle = \"#000\";\n    sctx.beginPath();\n    sctx.arc(size / 2, size / 2, (size - 2) / 2, 0, Math.PI * 2);\n    sctx.fill();\n};\n\nconst buildMask = () => {\n    const needsMask = cfg.fadeX > 0 || cfg.fadeTop > 0 || cfg.fadeBottom > 0 ||\n        cfg.curveTop !== 0 || cfg.curveBottom !== 0;\n    if (!needsMask) { maskCanvas = null; return; }\n    const scale = 4;\n    const mw = Math.max(1, Math.ceil(w / scale));\n    const mh = Math.max(1, Math.ceil(h / scale));\n    const mc = new OffscreenCanvas(mw, mh);\n    const mctx = mc.getContext(\"2d\");\n    if (!mctx) { maskCanvas = null; return; }\n    const img = mctx.createImageData(mw, mh);\n    const data = img.data;\n    for (let j = 0; j < mh; j++) {\n        const y = ((j + 0.5) / mh) * h;\n        for (let i = 0; i < mw; i++) {\n            const x = ((i + 0.5) / mw) * w;\n            data[(j * mw + i) * 4 + 3] = Math.round(clamp01(edgeAlpha(x, y)) * 255);\n        }\n    }\n    mctx.putImageData(img, 0, 0);\n    maskCanvas = mc;\n};\n\nconst initDots = () => {\n    const rad = (cfg.angle * Math.PI) / 180;\n    ca = Math.cos(rad); sa = Math.sin(rad);\n    maxFrac = 0.46 + (1.0 - 0.46) * clamp01(cfg.maxDot / 100);\n    const sp = Math.max(cfg.spacing, 10);\n    const xs = [], ys = [];\n    for (let y = sp / 2; y < h + sp / 2; y += sp)\n        for (let x = sp / 2; x < w + sp / 2; x += sp) { xs.push(x); ys.push(y); }\n    const nd = xs.length;\n    px = new Float32Array(nd); py = new Float32Array(nd);\n    ph1 = new Float32Array(nd); ph2 = new Float32Array(nd); phb = new Float32Array(nd);\n    for (let i = 0; i < nd; i++) {\n        px[i] = xs[i]; py[i] = ys[i];\n        const proj = xs[i] * ca + ys[i] * sa;\n        const perp = -xs[i] * sa + ys[i] * ca;\n        ph1[i] = proj * 0.012; ph2[i] = proj * 0.031; phb[i] = perp * 0.004;\n    }\n    buildSprite();\n    buildMask();\n    grad = cfg.direction === \"vertical\"\n        ? ctx.createLinearGradient(0, 0, 0, Math.max(h, 1))\n        : ctx.createLinearGradient(0, 0, Math.max(w, 1), 0);\n    for (const [p, c] of cfg.stops) {\n        try { grad.addColorStop(clamp01(p / 100), c); }\n        catch (e) { grad.addColorStop(clamp01(p / 100), \"rgb(0, 0, 0)\"); }\n    }\n};\n\nconst draw = () => {\n    ctx.clearRect(0, 0, w, h);\n    const sp = Math.max(cfg.spacing, 10);\n    const maxR = sp * maxFrac;\n    const mn = Math.max(0, Math.min(0.9, cfg.minDot));\n    const shape = cfg.waveShape;\n    ctx.globalAlpha = 1;\n    const nd = px.length;\n    for (let i = 0; i < nd; i++) {\n        const bend = 0.45 * Math.sin(phb[i] + t * 0.12);\n        const v1 = osc(ph1[i] - t * 1.1 + bend, shape);\n        const v2 = osc(ph2[i] - t * 0.45, shape);\n        const v = clamp01(0.08 + 0.92 * (0.72 * v1 + 0.28 * v2));\n        const r = maxR * (mn + (1 - mn) * v);\n        if (r < 0.3) continue;\n        if (sprite) { const d = r * 2; ctx.drawImage(sprite, px[i] - r, py[i] - r, d, d); }\n        else { ctx.beginPath(); ctx.arc(px[i], py[i], r, 0, Math.PI * 2); ctx.fill(); }\n    }\n    if (maskCanvas) {\n        ctx.globalCompositeOperation = \"destination-in\";\n        ctx.imageSmoothingEnabled = true;\n        ctx.drawImage(maskCanvas, 0, 0, w, h);\n    }\n    if (grad) {\n        ctx.globalCompositeOperation = \"source-in\";\n        ctx.fillStyle = grad;\n        ctx.fillRect(0, 0, w, h);\n    }\n    ctx.globalCompositeOperation = \"source-over\";\n};\n\n// Rebuild at the current size and redraw the pose — the worker-side\n// twin of the old resize().\nconst layout = () => {\n    if (!ctx || !cfg) return;\n    canvas.width = Math.max(1, Math.round(w * dpr));\n    canvas.height = Math.max(1, Math.round(h * dpr));\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    initDots();\n    draw();\n};\n\n// The clock. Same semantics as before: Start Delay counts from the first\n// frame the instance is on screen; t accumulates on frames the Max FPS\n// cap skips, so a lower cap is choppier, never slower.\nconst loop = (now) => {\n    rafId = raf(loop);\n    const dt = Math.min((now - last) / 1000, 0.05);\n    last = now;\n    if (!visible) return;\n    if (firstVisibleAt === 0) firstVisibleAt = now;\n    const since = (now - firstVisibleAt) / 1000;\n    const delaySec = skipDelay ? 0 : Math.max(0, cfg.startDelay);\n    if (since < delaySec) return;\n    const spinSec = Math.max(0, cfg.spinUp);\n    const ramp = spinSec > 0 ? smooth(clamp01((since - delaySec) / spinSec)) : 1;\n    t += dt * cfg.speed * ramp;\n    const minFrameMs = cfg.maxFps > 0 && cfg.maxFps < 60 ? 1000 / cfg.maxFps : 0;\n    if (minFrameMs > 0 && now - lastDraw < minFrameMs - 0.5) return;\n    lastDraw = now;\n    draw();\n};\n\nconst restart = () => {\n    if (running) { caf(rafId); running = false; }\n    t = (Math.max(0, Math.min(100, cfg.startPos)) / 100) * ((Math.PI * 2) / 1.1);\n    firstVisibleAt = 0; lastDraw = 0; last = performance.now();\n    layout();\n    if (!isStatic && cfg.animated) { running = true; rafId = raf(loop); }\n};\n\nself.onmessage = (e) => {\n    const m = e.data;\n    if (m.type === \"init\") {\n        canvas = m.canvas;\n        // Not \"desynchronized\": see SAFARI 27 PAINTED SIBLING in the main file.\n        ctx = canvas.getContext(\"2d\");\n        if (!ctx) return;\n        cfg = m.cfg; w = m.w; h = m.h; dpr = m.dpr; isStatic = m.isStatic;\n        skipDelay = !!m.skipDelay;\n        // Chrome can lose and restore the drawing surface: rebuild the\n        // sprite and mask with it and draw the current pose again.\n        if (canvas.addEventListener) canvas.addEventListener(\"contextrestored\", layout);\n        restart();\n    } else if (m.type === \"still\") {\n        // One finished frame into a canvas of the worker's own, handed back\n        // as an image (STILL FRAME in the main file). Nothing keeps running.\n        canvas = new OffscreenCanvas(1, 1);\n        // Ordinary memory, so the frame outlives this worker in Chromium\n        // (CHROMIUM in the main file's STILL FRAME note).\n        ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n        if (!ctx) { self.postMessage({ type: \"frame\", bmp: null }); return; }\n        cfg = m.cfg; w = m.w; h = m.h; dpr = m.dpr; isStatic = true;\n        t = (Math.max(0, Math.min(100, cfg.startPos)) / 100) * ((Math.PI * 2) / 1.1);\n        layout();\n        const bmp = canvas.transferToImageBitmap();\n        self.postMessage({ type: \"frame\", bmp }, [bmp]);\n    } else if (!ctx) {\n        return;\n    } else if (m.type === \"cfg\") {\n        cfg = m.cfg; restart();\n    } else if (m.type === \"size\") {\n        if (m.w === w && m.h === h) return;\n        w = m.w; h = m.h; layout();\n    } else if (m.type === \"vis\") {\n        visible = m.visible;\n    }\n};\n`;// One Blob URL per page, shared by every instance.\nlet workerUrl=null;const getWorkerUrl=()=>{if(!workerUrl)workerUrl=URL.createObjectURL(new Blob([WORKER_SRC],{type:\"text/javascript\"}));return workerUrl;};/**\n * Textural halftone on a transparent background. A fixed grid of dots\n * whose sizes ride organic waves traveling at a controllable angle. The\n * field is colored by a 4-stop gradient (color + position per stop) that\n * runs horizontally or vertically (Gradient Direction). Min Dot Size keeps\n * the grid intact at wave troughs; Max Dot Size sets the peak size — pushed\n * high, neighboring dots overlap deeply and the field reads as a solid\n * gradient at the crests. Dots scale proportionally between the two.\n *\n * Animated toggles continuous motion vs. a single frozen frame; Start\n * Position scrolls the wave along its travel axis so a static composition\n * can be posed deliberately (and sets the animation's starting phase). The\n * mask supports straight side fades, independent top and bottom fades, and\n * curving top/bottom edges with a centered peak and adjustable corner\n * inset — positive curve values dip inward, negative values bulge outward.\n * Each fade begins at its curved edge.\n *\n * OFF THE MAIN THREAD — 2026-09-22. Every dot calculation and every draw\n * runs in a Web Worker against an OffscreenCanvas. Measured on the\n * published build before this change: the on-screen instance was the\n * single largest consumer of main thread in every test — load, idle,\n * scroll and resize — and removing the page's canvas drawing cost cut the\n * hamburger's dead window on a recruiter-class laptop from ~17s to ~11s.\n * The main\n * thread now only resolves colors, observes size and visibility, and\n * posts messages.\n *\n * The canvas element is created inside the effect, not by JSX: an element\n * can hand control to an OffscreenCanvas only once, so a fresh one per\n * mount is what lets the effect run again — which is also how a tab-return\n * rebuild works (TAB-RETURN REDRAW above).\n *\n * Needs OffscreenCanvas 2D (Safari 16.4+, Chrome 69+, Firefox 105+).\n * Without it the component renders nothing — it is pure embellishment.\n *\n * Start Delay / Spin-up / Max FPS keep their meaning; whether Start Delay\n * still earns its place now that drawing is off the main thread is an\n * open question to measure.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 400\n */export default function HalftoneWave2(props){const{color1=\"#E6B0B0\",pos1=0,color2=\"#A13045\",pos2=35,color3=\"#A13045\",pos3=65,color4=\"#E6B0B0\",pos4=100,direction=\"horizontal\",spacing=20,minDot=.25,maxDot=0,angle=20,animated=true,speed=1,startPos=0,startDelay=0,spinUp=0,maxFps=60,waveShape=\"smooth\",fadeX=0,fadeTop=0,fadeBottom=0,curveTop=0,curveTopInset=0,curveBottom=0,curveBottomInset=0,style}=props;const wrapRef=useRef(null);const workerRef=useRef(null);/**\n     * Bumped by a tab-return (TAB-RETURN REDRAW above). The mount effect\n     * keys on it, so the canvas AND its worker are thrown away and made\n     * fresh, exactly as on first load — whichever part WebKit discarded\n     * (the drawing, the worker's dot and mask images, or the link between\n     * the worker and the on-page canvas), nothing old is reused. The wave\n     * restarts at Start Position. Chosen over asking the worker to redraw\n     * (Greg, 2026-10-05): a redraw cannot fix a broken link, and the\n     * difference in cost is a new worker, once per return.\n     */const[rebuild,setRebuild]=useState(0);useEffect(()=>onReturnAfterHidden(()=>setRebuild(n=>n+1)),[]);/**\n     * Resolved token colors, keyed by the raw color string. A ref so it\n     * survives the effects re-running.\n     */const colorCacheRef=useRef(new Map);const buildCfg=()=>{const cache=colorCacheRef.current;const resolveCached=c=>{const hit=cache.get(c);if(hit!==undefined)return hit;const v=resolveColor(c,wrapRef.current);// A total failure returns opaque black. Don't cache that, or\n// one transient miss would stick for the instance's lifetime.\nif(v!==\"rgb(0, 0, 0)\")cache.set(c,v);return v;};const stops=[[pos1,color1],[pos2,color2],[pos3,color3],[pos4,color4]].sort((A,B)=>A[0]-B[0]).map(([p,c])=>[p,resolveCached(c)]);return{stops,direction,spacing,minDot,maxDot,angle,animated:animated&&!isLite(),speed,startPos,startDelay,spinUp,maxFps,waveShape,fadeX,fadeTop,fadeBottom,curveTop,curveTopInset,curveBottom,curveBottomInset};};// Always the latest props, for the mount effect's first message.\nconst buildCfgRef=useRef(buildCfg);buildCfgRef.current=buildCfg;// A still instance's redraw, for a props change (STILL FRAME above).\nconst stillRedrawRef=useRef(null);const still=!animated||isLite()||RenderTarget.current()===RenderTarget.canvas;// Mount: create the canvas, hand it to a worker, wire the observers.\nuseEffect(()=>{const wrap=wrapRef.current;if(!wrap)return;if(typeof Worker===\"undefined\"||typeof OffscreenCanvas===\"undefined\"||!(\"transferControlToOffscreen\"in HTMLCanvasElement.prototype))return;const canvas=document.createElement(\"canvas\");// A still frame is pinned to the top at the height it was drawn for\n// (STILL FRAME above), so it is not given a bottom.\ncanvas.style.cssText=still?\"position:absolute;left:0;top:0;width:100%;height:100%;display:block\":\"position:absolute;inset:0;width:100%;height:100%;display:block\";wrap.appendChild(canvas);// Something else that paints in the wrapper keeps Safari 27 drawing\n// the canvas — SAFARI 27 PAINTED SIBLING, above.\nconst keep=document.createElement(\"div\");keep.style.cssText=\"position:absolute;inset:0;pointer-events:none;background:\"+SAFARI27_KEEP_FILL;wrap.appendChild(keep);const dpr=Math.min(window.devicePixelRatio||1,1.5);if(still){// STILL FRAME (above): one frame from a short-lived worker.\nlet asked={w:0,h:0};let pending=null;let settle=null;let alive=true;const drawStill=()=>{const w=wrap.clientWidth;const h=wrap.clientHeight;if(w<1||h<1)return;pending?.terminate();let wk;try{wk=new Worker(getWorkerUrl());}catch(e){return;}pending=wk;asked={w,h};wk.onmessage=e=>{const bmp=e.data&&e.data.bmp;wk.terminate();if(pending===wk)pending=null;if(!bmp)return;if(!alive){bmp.close();return;}showStill(canvas,bmp);canvas.style.height=h+\"px\";};wk.postMessage({type:\"still\",cfg:buildCfgRef.current(),w,h,dpr});};stillRedrawRef.current=drawStill;drawStill();const ro=new ResizeObserver(()=>{const w=wrap.clientWidth;const h=wrap.clientHeight;if(w<1||h<1||w===asked.w&&h===asked.h)return;if(settle!==null)clearTimeout(settle);settle=null;// Height only: redraw now (STILL FRAME above).\nif(w===asked.w){drawStill();return;}settle=setTimeout(()=>{settle=null;drawStill();},STILL_SETTLE_MS);});ro.observe(wrap);return()=>{alive=false;ro.disconnect();if(settle!==null)clearTimeout(settle);pending?.terminate();stillRedrawRef.current=null;if(canvas.parentNode===wrap)wrap.removeChild(canvas);if(keep.parentNode===wrap)wrap.removeChild(keep);};}let worker;try{worker=new Worker(getWorkerUrl());}catch(e){wrap.removeChild(canvas);wrap.removeChild(keep);return;}workerRef.current=worker;const offscreen=canvas.transferControlToOffscreen();// A still instance took the path above, so this is false here;\n// kept for the worker's message format.\nconst isStatic=RenderTarget.current()===RenderTarget.canvas;worker.postMessage({type:\"init\",canvas:offscreen,cfg:buildCfgRef.current(),w:wrap.clientWidth,h:wrap.clientHeight,dpr,isStatic,skipDelay:rebuild>0},[offscreen]);const ro=new ResizeObserver(()=>{worker.postMessage({type:\"size\",w:wrap.clientWidth,h:wrap.clientHeight});});ro.observe(wrap);const io=new IntersectionObserver(es=>{worker.postMessage({type:\"vis\",visible:es[0]?.isIntersecting??true});});io.observe(wrap);return()=>{ro.disconnect();io.disconnect();worker.terminate();workerRef.current=null;if(canvas.parentNode===wrap)wrap.removeChild(canvas);if(keep.parentNode===wrap)wrap.removeChild(keep);};},[rebuild,still]);// Props changed: the worker rebuilds and restarts its clock, as the\n// old effect did when it re-ran. Skips the first run — init already\n// carried these values.\nconst firstCfgRef=useRef(true);useEffect(()=>{if(firstCfgRef.current){firstCfgRef.current=false;return;}if(workerRef.current)workerRef.current.postMessage({type:\"cfg\",cfg:buildCfg()});else stillRedrawRef.current?.();},[color1,pos1,color2,pos2,color3,pos3,color4,pos4,direction,spacing,minDot,maxDot,angle,animated,speed,startPos,startDelay,spinUp,maxFps,waveShape,fadeX,fadeTop,fadeBottom,curveTop,curveTopInset,curveBottom,curveBottomInset]);return /*#__PURE__*/_jsx(\"div\",{ref:wrapRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",...style}});}addPropertyControls(HalftoneWave2,{direction:{type:ControlType.Enum,title:\"Gradient Direction\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],defaultValue:\"horizontal\",displaySegmentedControl:true},color1:{type:ControlType.Color,title:\"Stop 1 Color\",defaultValue:\"#E6B0B0\"},pos1:{type:ControlType.Number,title:\"Stop 1 %\",defaultValue:0,min:0,max:100,step:1},color2:{type:ControlType.Color,title:\"Stop 2 Color\",defaultValue:\"#A13045\"},pos2:{type:ControlType.Number,title:\"Stop 2 %\",defaultValue:35,min:0,max:100,step:1},color3:{type:ControlType.Color,title:\"Stop 3 Color\",defaultValue:\"#A13045\"},pos3:{type:ControlType.Number,title:\"Stop 3 %\",defaultValue:65,min:0,max:100,step:1},color4:{type:ControlType.Color,title:\"Stop 4 Color\",defaultValue:\"#E6B0B0\"},pos4:{type:ControlType.Number,title:\"Stop 4 %\",defaultValue:100,min:0,max:100,step:1},spacing:{type:ControlType.Number,title:\"Dot Spacing\",defaultValue:20,min:10,max:40,step:1},minDot:{type:ControlType.Number,title:\"Min Dot Size\",defaultValue:.25,min:0,max:.9,step:.05},maxDot:{type:ControlType.Number,title:\"Max Dot Size\",defaultValue:0,min:0,max:100,step:1,unit:\"%\"},angle:{type:ControlType.Number,title:\"Wave Angle\",defaultValue:20,min:0,max:360,step:5},animated:{type:ControlType.Boolean,title:\"Animated\",defaultValue:true},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.1,max:3,step:.1,hidden:p=>!p.animated},startPos:{type:ControlType.Number,title:\"Start Position\",defaultValue:0,min:0,max:100,step:1,unit:\"%\"},startDelay:{type:ControlType.Number,title:\"Start Delay\",defaultValue:0,min:0,max:10,step:.1,unit:\"s\",hidden:p=>!p.animated},spinUp:{type:ControlType.Number,title:\"Spin-up\",defaultValue:0,min:0,max:5,step:.1,unit:\"s\",hidden:p=>!p.animated},maxFps:{type:ControlType.Number,title:\"Max FPS\",defaultValue:60,min:15,max:60,step:5,hidden:p=>!p.animated},waveShape:{type:ControlType.Enum,title:\"Wave Shape\",options:[\"smooth\",\"pulse\"],optionTitles:[\"Smooth\",\"Pulse\"],defaultValue:\"smooth\"},fadeX:{type:ControlType.Number,title:\"Fade Sides\",defaultValue:0,min:0,max:600,step:10},fadeTop:{type:ControlType.Number,title:\"Top Fade\",defaultValue:0,min:0,max:400,step:5},fadeBottom:{type:ControlType.Number,title:\"Bottom Fade\",defaultValue:0,min:0,max:400,step:5},curveTop:{type:ControlType.Number,title:\"Curve Top (− out)\",defaultValue:0,min:-300,max:300,step:5},curveTopInset:{type:ControlType.Number,title:\"Curve Top Inset\",defaultValue:0,min:0,max:500,step:10},curveBottom:{type:ControlType.Number,title:\"Curve Btm (− out)\",defaultValue:0,min:-300,max:300,step:5},curveBottomInset:{type:ControlType.Number,title:\"Curve Btm Inset\",defaultValue:0,min:0,max:400,step:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HalftoneWave2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HalftoneWave2.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const clamp01=v=>Math.max(0,Math.min(1,v));const smooth=v=>{const x=clamp01(v);return x*x*(3-2*x);};// Framer shared color styles arrive as CSS variables — e.g.\n// \"var(--token-abc, rgb(230, 176, 176))\" — which canvas APIs cannot\n// parse. Resolve to a concrete color: prefer computed style (correct\n// even if the token has no inline fallback), then the var() fallback.\nconst resolveColor=(c,context)=>{if(!c||typeof c!==\"string\")return\"rgb(0, 0, 0)\";const trimmed=c.trim();if(!trimmed.startsWith(\"var(\"))return trimmed;if(context&&typeof window!==\"undefined\"){try{const probe=document.createElement(\"span\");probe.style.color=trimmed;probe.style.display=\"none\";context.appendChild(probe);const resolved=window.getComputedStyle(probe).color;context.removeChild(probe);if(resolved&&!resolved.includes(\"var(\"))return resolved;}catch(e){// fall through to fallback extraction\n}}const inner=trimmed.slice(4,-1);const comma=inner.indexOf(\",\");if(comma>=0){const fallback=inner.slice(comma+1).trim();if(fallback)return resolveColor(fallback,context);}return\"rgb(0, 0, 0)\";};// Edge cut depth at x. Positive curve: inward dip, deepest at center.\n// Negative curve: outward bulge — full bleed at center, corners cut in.\n// The inset sets where the curvature begins from each corner.\nconst edgeCut=(x,curve,inset,w)=>{if(curve===0)return 0;const ins=Math.max(0,Math.min(inset,w*.45));const span=w-2*ins;let b=0;if(span>0&&x>ins&&x<w-ins)b=Math.sin(Math.PI*((x-ins)/span));return curve>0?curve*b:-curve*(1-b);};/**\n * How long the panel's size must hold still before the canvas is rebuilt\n * at the new size.\n *\n * Units: ms. Direction: larger = fewer rebuilds during a slow drag, but a\n * longer moment of stretched fades after release; smaller = snaps exact\n * sooner, but a slow drag may rebuild mid-gesture. Only affects resizes of\n * a panel that has already been drawn — the first draw is immediate.\n *\n * Keep identical to SETTLE_MS in BackgroundGradient2.tsx, so panels of\n * the two kinds snap exact at the same moment after a drag.\n */const SETTLE_MS=150;// RESOLUTION (2026-10-12). The panel is drawn at half the density it used\n// to be, min(devicePixelRatio, 1.5) × RES_SCALE, and stretched to size by\n// CSS. Part of keeping Home under iOS's memory limit for one page — past\n// it the phone reloads the page in Safari and blanks it in Arc. A smooth\n// gradient under the page grain loses nothing visible: side by side on an\n// iPhone 16 Pro screen, half resolution differed from full by at most\n// 1–3 levels of 255, and Greg could not tell them apart. The canvas holds a\n// quarter of the pixels.\n// Units: a fraction of that capped density. Direction: lower = less\n// memory, softer curved edges and fades; 1 = the old full density. Greg's\n// call, 2026-10-12: 0.5 everywhere, raised only if large screens show it.\n// KEEP IDENTICAL in BackgroundGradient.tsx and BackgroundGradient2.tsx.\nconst RES_SCALE=.5;// TAB-RETURN REDRAW (2026-10-05). WebKit — desktop Safari, and every\n// browser on an iPhone — can throw away what a canvas has drawn while its\n// tab sits in the background, and nothing here drew it again on return:\n// the decoration came back blank. Measured on Greg's iPhone after a few\n// minutes in other apps: the canvases still sized and not hidden, their\n// pixels gone. So each component redraws when the page becomes visible\n// again after being hidden for at least REDRAW_AFTER_HIDDEN_MS, after a\n// back/forward-cache restore, and when Chrome reports a canvas's drawing\n// surface restored.\n// Units: ms. Direction: shorter = also redraws after quicker tab switches\n// (more often, each still a one-off); longer = fewer redraws, but a\n// return sooner than this after a discard stays blank. WebKit was seen\n// to discard after a few minutes. Greg's call, 2026-10-05: 30 s.\n// KEEP IDENTICAL (this block and onReturnAfterHidden) in\n// BackgroundGradient.tsx, BackgroundGradient2.tsx, LinearEllipse.tsx,\n// HalftoneWave2.tsx and HalftoneWave3.tsx.\nconst REDRAW_AFTER_HIDDEN_MS=3e4;/** Calls `redraw` on the first frame after the page comes back from a\n *  long enough hide, or from the back/forward cache. Wall-clock time,\n *  because a phone can pause the page's own clocks while it is in the\n *  background. Returns the unsubscribe. Call it from an effect only. */const onReturnAfterHidden=redraw=>{let hiddenAt=document.visibilityState===\"hidden\"?Date.now():0;let raf=0;const run=()=>{cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>redraw());};const onVisibility=()=>{if(document.visibilityState===\"hidden\"){if(!hiddenAt)hiddenAt=Date.now();return;}const away=hiddenAt?Date.now()-hiddenAt:0;hiddenAt=0;if(away>=REDRAW_AFTER_HIDDEN_MS)run();};const onPageShow=e=>{if(e.persisted)run();};document.addEventListener(\"visibilitychange\",onVisibility);window.addEventListener(\"pageshow\",onPageShow);return()=>{cancelAnimationFrame(raf);document.removeEventListener(\"visibilitychange\",onVisibility);window.removeEventListener(\"pageshow\",onPageShow);};};/**\n * BackgroundGradient: a full-width 4-stop gradient panel (horizontal or\n * vertical direction) with the same masking system as HalftoneWave —\n * straight side fades, independent top and bottom fades, and curving\n * top/bottom edges with a centered peak and adjustable corner inset.\n * Positive curve values dip inward; negative values bulge outward (full\n * bleed at center, corners pulled in). Each fade begins at its curved\n * edge. Matching mask settings on the two components compose perfectly\n * when layered.\n *\n * No animation. The alpha mask is computed at quarter resolution and\n * upscaled bilinearly — visually identical for smooth fades.\n *\n * RESIZE COST — 2026-09-27. Same fix BackgroundGradient2 got on\n * 2026-09-22. Every resize frame used to reallocate the canvas and\n * rebuild the mask pixel by pixel, in every instance on the page. Now\n * three separate costs, each paid only when its input changes:\n *\n *   build   canvas size + mask. Once on first draw, then once per resize\n *           after the size has held for SETTLE_MS.\n *   paint   gradient fill + cached mask. On a stop or direction change.\n *   stretch nothing at all. Between a size change and its rebuild, the\n *           canvas is sized 100% by CSS, so the browser scales the last\n *           bitmap. Stops are fractions of the panel's length, so they\n *           land where they should; fades and curves stretch slightly\n *           until the rebuild snaps them exact.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 400\n */export default function BackgroundGradient(props){const{color1=\"#FAD5C0\",pos1=0,color2=\"#E6B0B0\",pos2=45,color3=\"#E6B0B0\",pos3=55,color4=\"#EDC2D9\",pos4=100,direction=\"horizontal\",fadeX=0,fadeTop=0,fadeBottom=0,curveTop=0,curveTopInset=0,curveBottom=0,curveBottomInset=0,style}=props;const wrapRef=useRef(null);const canvasRef=useRef(null);/**\n     * Resolved token colors, keyed by the raw color string. A ref so it\n     * survives every effect re-run; colors cannot change on resize.\n     * Stops sharing a color resolve once between them, which the default\n     * pairing of stops 2 and 3 always does.\n     */const colorCacheRef=useRef(new Map);// Latest stop and direction props for the long-lived paint closure.\nconst propsRef=useRef({color1,pos1,color2,pos2,color3,pos3,color4,pos4,direction});propsRef.current={color1,pos1,color2,pos2,color3,pos3,color4,pos4,direction};/**\n     * What the canvas bitmap was last built at. w/h are CSS pixels; 0\n     * means never built. The mask is cached against the same size.\n     */const builtRef=useRef({w:0,h:0,dpr:1});const maskRef=useRef(null);/**\n     * The mask's alpha values as plain data, one byte per mask pixel, kept\n     * so a tab-return redraw (TAB-RETURN REDRAW above) can rebuild the mask\n     * canvas without recomputing every pixel — the mask canvas can be\n     * discarded along with the visible one. Null when there is no mask.\n     */const maskAlphaRef=useRef(null);// Gradient fill + cached mask, at the BUILT size. Cheap: one fill and\n// one drawImage. Runs whenever a stop or the direction changes.\nconst paint=useCallback(()=>{const wrap=wrapRef.current;const canvas=canvasRef.current;const{w,h}=builtRef.current;if(!wrap||!canvas||w<1||h<1)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const pr=propsRef.current;const cache=colorCacheRef.current;const resolveCached=c=>{const hit=cache.get(c);if(hit!==undefined)return hit;const v=resolveColor(c,wrap);// A total failure returns opaque black. Don't cache that, or\n// one transient miss would stick for the instance's lifetime.\nif(v!==\"rgb(0, 0, 0)\")cache.set(c,v);return v;};const stops=[[pr.pos1,pr.color1],[pr.pos2,pr.color2],[pr.pos3,pr.color3],[pr.pos4,pr.color4]].sort((A,B)=>A[0]-B[0]);const grad=pr.direction===\"vertical\"?ctx.createLinearGradient(0,0,0,h):ctx.createLinearGradient(0,0,w,0);for(const[p,c]of stops){try{grad.addColorStop(clamp01(p/100),resolveCached(c));}catch(e){grad.addColorStop(clamp01(p/100),\"rgb(0, 0, 0)\");}}ctx.globalCompositeOperation=\"source-over\";ctx.clearRect(0,0,w,h);ctx.fillStyle=grad;ctx.fillRect(0,0,w,h);const mask=maskRef.current;if(!mask)return;ctx.globalCompositeOperation=\"destination-in\";ctx.imageSmoothingEnabled=true;ctx.imageSmoothingQuality=\"high\";ctx.drawImage(mask,0,0,w,h);ctx.globalCompositeOperation=\"source-over\";},[]);// Size, mask and resize handling. Re-runs only when a MASK setting\n// changes — never for stops, which paint() handles on its own.\nuseEffect(()=>{const wrap=wrapRef.current;const canvas=canvasRef.current;if(!wrap||!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const MASK_SCALE=4;const buildMask=(w,h)=>{const needsMask=fadeX>0||fadeTop>0||fadeBottom>0||curveTop!==0||curveBottom!==0;if(!needsMask){maskRef.current=null;maskAlphaRef.current=null;return;}const edgeAlpha=(x,y)=>{let a=1;const yT=edgeCut(x,curveTop,curveTopInset,w);const yB=h-edgeCut(x,curveBottom,curveBottomInset,w);const fT=fadeTop>0?fadeTop:curveTop!==0?2:0;const fB=fadeBottom>0?fadeBottom:curveBottom!==0?2:0;if(fT>0)a*=smooth((y-yT)/fT);if(fB>0)a*=smooth((yB-y)/fB);if(fadeX>0)a*=smooth(x/fadeX)*smooth((w-x)/fadeX);return a;};const mw=Math.max(2,Math.ceil(w/MASK_SCALE));const mh=Math.max(2,Math.ceil(h/MASK_SCALE));const mask=document.createElement(\"canvas\");mask.width=mw;mask.height=mh;const mctx=mask.getContext(\"2d\");if(!mctx){maskRef.current=null;maskAlphaRef.current=null;return;}const img=mctx.createImageData(mw,mh);const data=img.data;const sx=w/mw;const sy=h/mh;// destination-in reads alpha only, so RGB is left at zero.\nlet o=3;for(let my=0;my<mh;my++){const y=(my+.5)*sy;for(let mx=0;mx<mw;mx++){data[o]=Math.round(edgeAlpha((mx+.5)*sx,y)*255);o+=4;}}mctx.putImageData(img,0,0);maskRef.current=mask;const alpha=new Uint8Array(mw*mh);for(let i=0;i<alpha.length;i++)alpha[i]=data[i*4+3];maskAlphaRef.current={mw,mh,alpha};};// A fresh mask canvas from the cached alpha — no per-pixel math.\nconst restoreMask=()=>{const m=maskAlphaRef.current;if(!m){maskRef.current=null;return;}const mask=document.createElement(\"canvas\");mask.width=m.mw;mask.height=m.mh;const mctx=mask.getContext(\"2d\");if(!mctx){maskRef.current=null;return;}const img=mctx.createImageData(m.mw,m.mh);for(let i=0;i<m.alpha.length;i++)img.data[i*4+3]=m.alpha[i];mctx.putImageData(img,0,0);maskRef.current=mask;};// Full rebuild at the panel's current size.\nconst build=()=>{const w=wrap.clientWidth;const h=wrap.clientHeight;if(w<1||h<1)return;const dpr=Math.min(window.devicePixelRatio||1,1.5)*RES_SCALE;canvas.width=Math.max(1,Math.round(w*dpr));canvas.height=Math.max(1,Math.round(h*dpr));// Scale to the ROUNDED canvas size, not dpr itself: at a size\n// that doesn't divide evenly (402 × 0.75 = 301.5) the last\n// column would be half-painted and show as a faint line at the\n// panel's edge once stretched.\nctx.setTransform(canvas.width/w,0,0,canvas.height/h,0,0);builtRef.current={w,h,dpr};buildMask(w,h);paint();};let settle=null;const onResize=()=>{const w=wrap.clientWidth;const h=wrap.clientHeight;if(w<1||h<1){// Hidden (a breakpoint swap, say). Forget the old size, so\n// reappearing draws exact at once instead of stretching.\nif(settle!==null)clearTimeout(settle);settle=null;builtRef.current={w:0,h:0,dpr:builtRef.current.dpr};return;}const b=builtRef.current;// Not drawn at a visible size yet — a hidden breakpoint copy\n// becoming visible, say. Nothing to stretch, so draw now.\nif(b.w<1||b.h<1){if(settle!==null)clearTimeout(settle);settle=null;build();return;}if(w===b.w&&h===b.h)return;// Drawn at another size: CSS stretches it until the size holds.\nif(settle!==null)clearTimeout(settle);settle=setTimeout(()=>{settle=null;build();},SETTLE_MS);};// Tab-return redraw: the same bitmap at the built size, the mask\n// from its cached alpha. If the size moved while hidden, a full\n// build instead; if the panel is hidden or never drawn, the next\n// resize draws it.\nconst redraw=()=>{const b=builtRef.current;if(b.w<1||b.h<1)return;if(wrap.clientWidth!==b.w||wrap.clientHeight!==b.h){build();return;}canvas.width=Math.max(1,Math.round(b.w*b.dpr));canvas.height=Math.max(1,Math.round(b.h*b.dpr));ctx.setTransform(canvas.width/b.w,0,0,canvas.height/b.h,0,0);restoreMask();paint();};build();const ro=new ResizeObserver(onResize);ro.observe(wrap);const offReturn=onReturnAfterHidden(redraw);canvas.addEventListener(\"contextrestored\",redraw);return()=>{ro.disconnect();if(settle!==null)clearTimeout(settle);offReturn();canvas.removeEventListener(\"contextrestored\",redraw);};},[fadeX,fadeTop,fadeBottom,curveTop,curveTopInset,curveBottom,curveBottomInset,paint]);// A stop or the direction changed: repaint at the built size. The\n// first run duplicates the build's own paint, which is harmless.\nuseEffect(()=>{paint();},[color1,pos1,color2,pos2,color3,pos3,color4,pos4,direction,paint]);return /*#__PURE__*/_jsx(\"div\",{ref:wrapRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\"}})});}addPropertyControls(BackgroundGradient,{direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],defaultValue:\"horizontal\"},color1:{type:ControlType.Color,title:\"Stop 1 Color\",defaultValue:\"#FAD5C0\"},pos1:{type:ControlType.Number,title:\"Stop 1 %\",defaultValue:0,min:0,max:100,step:1},color2:{type:ControlType.Color,title:\"Stop 2 Color\",defaultValue:\"#E6B0B0\"},pos2:{type:ControlType.Number,title:\"Stop 2 %\",defaultValue:45,min:0,max:100,step:1},color3:{type:ControlType.Color,title:\"Stop 3 Color\",defaultValue:\"#E6B0B0\"},pos3:{type:ControlType.Number,title:\"Stop 3 %\",defaultValue:55,min:0,max:100,step:1},color4:{type:ControlType.Color,title:\"Stop 4 Color\",defaultValue:\"#EDC2D9\"},pos4:{type:ControlType.Number,title:\"Stop 4 %\",defaultValue:100,min:0,max:100,step:1},fadeX:{type:ControlType.Number,title:\"Fade Sides\",defaultValue:0,min:0,max:600,step:10},fadeTop:{type:ControlType.Number,title:\"Top Fade\",defaultValue:0,min:0,max:400,step:5},fadeBottom:{type:ControlType.Number,title:\"Bottom Fade\",defaultValue:0,min:0,max:400,step:5},curveTop:{type:ControlType.Number,title:\"Curve Top (− out)\",defaultValue:0,min:-300,max:300,step:5},curveTopInset:{type:ControlType.Number,title:\"Curve Top Inset\",defaultValue:0,min:0,max:500,step:10},curveBottom:{type:ControlType.Number,title:\"Curve Btm (− out)\",defaultValue:0,min:-300,max:300,step:5},curveBottomInset:{type:ControlType.Number,title:\"Curve Btm Inset\",defaultValue:0,min:0,max:400,step:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BackgroundGradient\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BackgroundGradient.map"],"mappings":"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"}