{"version":3,"file":"shared-lib.5umwpAj0.mjs","names":["useRef","fonts","css","className"],"sources":["https:/framerusercontent.com/modules/iZkTKASB5r1U4tqmrJGc/In8qazax9E2QdygP1KKX/PlainwareMotion.js","https:/framerusercontent.com/modules/ctA17kLWbLG31HVbivZJ/mGoW1bJhXuY4s90XHI3v/F8mNjvKDB.js","https:/framerusercontent.com/modules/X24pQZ0ceeIOqUQL5X7M/7BrZbLWiOOHF4QA0Ex1g/TXvktFPSi.js"],"sourcesContent":["// Plainware motion overrides.\n// Attach to existing canvas layers (text stays editable on the canvas):\n//   withScramble      section labels: letters resolve left to right out of random glyphs when the label enters view\n//   withRollButton    button labels: each letter rolls up to a copy of itself on hover (wave, 80 % stagger)\n//   withRollNav       navigation links: same roll, tighter wave (35 % stagger)\n//   withCountUp       stat figures: count from 0 to the figure when it enters view\n//   withArrowSwap     arrow icons in buttons: on hover the arrow leaves right and a new one slides in from the left\n//   withSlideSwap     footer links: on hover the text slides out right while a copy slides in from the left\n//   withBlurIn        auto-fit headings (Framer renders them as SVG, so letters cannot be split): whole block un-blurs\n// Timings follow measurements of the reference site. Everything is skipped for prefers-reduced-motion.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useRef}from\"react\";import{animate}from\"framer-motion\";const GLYPHS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{}|;:,.<>?~\";const ZEN=[.12,.23,.17,.99];function reducedMotion(){return typeof window!==\"undefined\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;}function setRef(ref,value){if(typeof ref===\"function\")ref(value);else if(ref)ref.current=value;}// Every non-empty text node rendered inside a Framer text layer.\nfunction textNodes(root){const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT);const out=[];let n;while(n=walker.nextNode()){if((n.nodeValue||\"\").trim()&&!(n.parentElement&&n.parentElement.closest(\"[data-zx-copy]\")))out.push(n);}return out;}function lineHeightPx(el){const cs=getComputedStyle(el);const lh=parseFloat(cs.lineHeight);return isNaN(lh)?parseFloat(cs.fontSize)*1.2:lh;}// Run once when the element first shows a pixel on screen.\nfunction onFirstView(el,run){const io=new IntersectionObserver(entries=>{if(entries.some(e=>e.isIntersecting)){io.disconnect();run();}},{threshold:0});io.observe(el);return()=>io.disconnect();}// The element a visitor actually hovers: the link or button around the layer, else the nearest clickable ancestor.\nfunction hoverTarget(el){const link=el.closest(\"a, button\");if(link)return link;for(let p=el.parentElement;p&&p!==document.body;p=p.parentElement){if(getComputedStyle(p).cursor===\"pointer\")return p;}return el;}// persistent = hover effects that must survive re-renders: Framer re-renders some layers after hydration\n// (navigation variants, for example) and React then puts the original text back, dropping our structure.\nfunction withRef(Component,name,effect,persistent=false){return /*#__PURE__*/forwardRef((props,ref)=>{const local=useRef(null);useEffect(()=>{const el=local.current;if(!el)return;el.setAttribute(\"data-zx\",name);if(reducedMotion())return;let cleanup=effect(el)||undefined;if(!persistent)return cleanup;let busy=false;const mo=new MutationObserver(()=>{if(busy||el.querySelector(\"[data-zx-built], [data-zx-copy]\"))return;busy=true;try{cleanup&&cleanup();cleanup=effect(el)||undefined;}finally{busy=false;}});mo.observe(el,{childList:true,subtree:true,characterData:true});return()=>{mo.disconnect();cleanup&&cleanup();};},[]);return /*#__PURE__*/_jsx(Component,{...props,ref:v=>{local.current=v;setRef(ref,v);}});});}// ---------------------------------------------------------------- scramble\nconst STEP_MS=52// speed 75 on the reference component\n;const TRAIL=10// random glyphs ahead of the resolved text\n;function scramble(el){const nodes=textNodes(el);if(!nodes.length)return;const parts=[];for(const node of nodes){const text=node.nodeValue||\"\";const wrap=document.createElement(\"span\");wrap.setAttribute(\"aria-label\",text);const cells=[];for(const word of text.split(/(\\s+)/)){if(!word)continue;if(/^\\s+$/.test(word)){wrap.appendChild(document.createTextNode(word));continue;}const w=document.createElement(\"span\");w.style.whiteSpace=\"nowrap\";for(const ch of word){const s=document.createElement(\"span\");s.textContent=ch;s.style.display=\"inline-block\";s.style.textAlign=\"center\";w.appendChild(s);cells.push({span:s,ch});}wrap.appendChild(w);}node.parentNode.replaceChild(wrap,node);// lock every cell to the width of its final letter so random glyphs cannot shift the line\nfor(const c of cells)c.span.style.width=c.span.getBoundingClientRect().width+\"px\";for(const c of cells)c.span.style.opacity=\"0\";parts.push({node,wrap,cells});}const all=parts.flatMap(p=>p.cells);const restore=()=>parts.forEach(p=>p.wrap.parentNode&&p.wrap.parentNode.replaceChild(p.node,p.wrap));let timer=0;const stop=onFirstView(el,()=>{let k=0;const total=all.length+TRAIL;timer=window.setInterval(()=>{k++;all.forEach((c,i)=>{if(i<k-TRAIL){c.span.textContent=c.ch;c.span.style.opacity=\"1\";}else if(i<k){const g=GLYPHS[Math.floor(Math.random()*GLYPHS.length)];c.span.textContent=c.ch===c.ch.toLowerCase()&&c.ch!==c.ch.toUpperCase()?g.toLowerCase():g;c.span.style.opacity=\"1\";}});if(k>=total){window.clearInterval(timer);restore()// hand the original text node back to React\n;}},STEP_MS);});return()=>{stop();window.clearInterval(timer);restore();};}export function withScramble(Component){return withRef(Component,\"scramble\",scramble);}// ---------------------------------------------------------------- rolling label\nfunction roll(stagger){return el=>{const nodes=textNodes(el);if(!nodes.length)return;if(stagger<.5&&!el.querySelector(\"a\")&&!el.closest(\"a, button\"))return;// nav: links only\nconst inners=[];const built=[];for(const node of nodes){const text=node.nodeValue||\"\";const host=node.parentElement;const lh=lineHeightPx(host);const wrap=document.createElement(\"span\");wrap.setAttribute(\"data-zx-built\",\"\");const visual=document.createElement(\"span\");visual.setAttribute(\"aria-hidden\",\"true\");visual.style.userSelect=\"none\";for(const word of text.split(/(\\s+)/)){if(!word)continue;if(/^\\s+$/.test(word)){visual.appendChild(document.createTextNode(word));continue;}const w=document.createElement(\"span\");w.style.whiteSpace=\"nowrap\";for(const ch of word){const col=document.createElement(\"span\");col.style.cssText=`display:inline-block;overflow:hidden;vertical-align:top;height:${lh}px`;const inner=document.createElement(\"span\");inner.style.cssText=\"display:block;will-change:transform\";for(let i=0;i<2;i++){const c=document.createElement(\"span\");c.textContent=ch;c.style.cssText=`display:block;height:${lh}px`;inner.appendChild(c);}col.appendChild(inner);w.appendChild(col);inners.push(inner);}visual.appendChild(w);}// keep React's own text node in the DOM for screen readers and later updates\nconst holder=document.createElement(\"span\");holder.style.cssText=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap\";node.parentNode.replaceChild(wrap,node);holder.appendChild(node);wrap.appendChild(holder);wrap.appendChild(visual);built.push({node,wrap,holder});}const target=hoverTarget(el);const n=inners.length;const run=to=>{const lh=inners[0]?inners[0].firstChild.getBoundingClientRect().height:0;inners.forEach((inner,i)=>animate(inner,{y:to*-lh},{type:\"spring\",duration:.4,bounce:0,delay:.4/n*i*stagger}));};const enter=()=>run(1);const leave=()=>run(0);target.addEventListener(\"mouseenter\",enter);target.addEventListener(\"mouseleave\",leave);return()=>{target.removeEventListener(\"mouseenter\",enter);target.removeEventListener(\"mouseleave\",leave);built.forEach(b=>b.wrap.parentNode&&b.wrap.parentNode.replaceChild(b.node,b.wrap));};};}export function withRollButton(Component){return withRef(Component,\"rollButton\",roll(.8),true);}export function withRollNav(Component){return withRef(Component,\"rollNav\",roll(.35),true);}// ---------------------------------------------------------------- count up\nconst FIGURE=RegExp(\"^(\\\\D*?)(\\\\d[\\\\d,]*(?:\\\\.\\\\d+)?)(.*)$\",\"s\");function countUp(el){const node=textNodes(el).find(t=>FIGURE.test((t.nodeValue||\"\").trim()));if(!node)return;const original=node.nodeValue||\"\";const lead=original.match(/^\\s*/)[0];const m=original.trim().match(FIGURE);const[,prefix,num,suffix]=m;const target=parseFloat(num.replace(/,/g,\"\"));if(!isFinite(target)||target===0)return;const decimals=(num.split(\".\")[1]||\"\").length;const grouped=num.includes(\",\");const fmt=v=>{let s=v.toFixed(decimals);if(grouped){const[i,d]=s.split(\".\");s=i.replace(/\\B(?=(\\d{3})+(?!\\d))/g,\",\")+(d?\".\"+d:\"\");}return lead+prefix+s+suffix;};const host=node.parentElement;const width=host.getBoundingClientRect().width;let controls=null;const r=el.getBoundingClientRect();const visibleNow=r.bottom>0&&r.top<window.innerHeight;if(!visibleNow)node.nodeValue=fmt(0);const stop=onFirstView(el,()=>{host.style.minWidth=width+\"px\";controls=animate(0,target,{duration:2,ease:[0,0,.58,1],onUpdate:v=>node.nodeValue=fmt(v),onComplete:()=>{node.nodeValue=original;host.style.minWidth=\"\";}});});return()=>{stop();controls&&controls.stop();node.nodeValue=original;};}export function withCountUp(Component){return withRef(Component,\"countUp\",countUp);}// ---------------------------------------------------------------- swaps (arrow icon, footer link)\nfunction swap(distance,transition){return el=>{if(!el.querySelector(\"a\")&&!el.closest(\"a, button\"))return;// only text that is a link\nconst first=textNodes(el)[0];const source=first?first.parentElement:null;if(!source)return;if(source.getBoundingClientRect().height>lineHeightPx(source)*1.6)return;// multi-line links would re-wrap\nconst prevDisplay=source.style.display;if(getComputedStyle(source).display===\"inline\")source.style.display=\"inline-block\";const box=source.parentElement;// the clip has to be exactly as wide as the text, otherwise the copy shows next to the original;\n// shrinking the paragraph only keeps the text in place when it is start-aligned\nconst align=getComputedStyle(box).textAlign;if(!/^(start|left|-webkit-left)$/.test(align)){source.style.display=prevDisplay;return;}const prevWidth=box.style.width;box.style.width=\"fit-content\";const prevOverflow=box.style.overflow;const prevPosition=box.style.position;box.style.overflow=\"hidden\";if(getComputedStyle(box).position===\"static\")box.style.position=\"relative\";const copy=source.cloneNode(true);copy.setAttribute(\"data-zx-copy\",\"\");copy.setAttribute(\"aria-hidden\",\"true\");const sr=source.getBoundingClientRect();const br=box.getBoundingClientRect();copy.style.position=\"absolute\";copy.style.left=sr.left-br.left+\"px\";copy.style.top=sr.top-br.top+\"px\";copy.style.width=sr.width+\"px\";copy.style.margin=\"0\";box.appendChild(copy);animate(copy,{x:\"-\"+distance},{duration:0});const target=hoverTarget(el);const enter=()=>{animate(source,{x:distance},transition);animate(copy,{x:\"0%\"},transition);};const leave=()=>{animate(source,{x:\"0%\"},transition);animate(copy,{x:\"-\"+distance},transition);};target.addEventListener(\"mouseenter\",enter);target.addEventListener(\"mouseleave\",leave);return()=>{target.removeEventListener(\"mouseenter\",enter);target.removeEventListener(\"mouseleave\",leave);copy.remove();source.style.display=prevDisplay;box.style.width=prevWidth;box.style.overflow=prevOverflow;box.style.position=prevPosition;};};}// Icons render as the <svg> itself. Move the drawing into a group, add a copy one icon-width to the left,\n// and slide both inside the svg's own viewport (inline svg clips to it), so no wrapper touches the layout.\nfunction arrowSwap(el){const svg=el.tagName.toLowerCase()===\"svg\"?el:el.querySelector(\"svg\");if(!svg)return;const NS=\"http://www.w3.org/2000/svg\";const vb=svg.viewBox&&svg.viewBox.baseVal&&svg.viewBox.baseVal.width?svg.viewBox.baseVal.width:svg.getBoundingClientRect().width;const group=document.createElementNS(NS,\"g\");while(svg.firstChild)group.appendChild(svg.firstChild);svg.appendChild(group);const copy=group.cloneNode(true);copy.setAttribute(\"data-zx-copy\",\"\");svg.appendChild(copy);const prevOverflow=svg.style.overflow;svg.style.overflow=\"hidden\";const t={type:\"spring\",duration:.6,bounce:0};animate(copy,{x:-vb},{duration:0});const target=hoverTarget(svg);const enter=()=>{animate(group,{x:vb},t);animate(copy,{x:0},t);};const leave=()=>{animate(group,{x:0},t);animate(copy,{x:-vb},t);};target.addEventListener(\"mouseenter\",enter);target.addEventListener(\"mouseleave\",leave);return()=>{target.removeEventListener(\"mouseenter\",enter);target.removeEventListener(\"mouseleave\",leave);copy.remove();if(group.parentNode===svg){while(group.firstChild)svg.insertBefore(group.firstChild,group);group.remove();}svg.style.overflow=prevOverflow;};}export function withArrowSwap(Component){return withRef(Component,\"arrowSwap\",arrowSwap,true);}export function withSlideSwap(Component){return withRef(Component,\"slideSwap\",swap(\"100%\",{duration:.6,ease:[.16,1,.3,1]}),true);}// ---------------------------------------------------------------- blur-in for auto-fit headings\nexport function withBlurIn(Component){return withRef(Component,\"blurIn\",el=>{el.style.filter=\"blur(15px)\";return onFirstView(el,()=>{animate(el,{filter:[\"blur(15px)\",\"blur(0px)\"]},{duration:1.5,delay:.2,ease:ZEN});});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withSlideSwap\":{\"type\":\"reactHoc\",\"name\":\"withSlideSwap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRollNav\":{\"type\":\"reactHoc\",\"name\":\"withRollNav\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRollButton\":{\"type\":\"reactHoc\",\"name\":\"withRollButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCountUp\":{\"type\":\"reactHoc\",\"name\":\"withCountUp\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withScramble\":{\"type\":\"reactHoc\",\"name\":\"withScramble\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withBlurIn\":{\"type\":\"reactHoc\",\"name\":\"withBlurIn\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withArrowSwap\":{\"type\":\"reactHoc\",\"name\":\"withArrowSwap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PlainwareMotion.map","// Generated by Framer (e0809aa)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Libre Franklin-500\",\"GF;Libre Franklin-700\",\"GF;Libre Franklin-700italic\",\"GF;Libre Franklin-500italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhHMWUAtrIb-JH1g.woff2\",weight:\"500\"},{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhycKUAtrIb-JH1g.woff2\",weight:\"700\"},{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oabQ9DJTedX1sGE.woff2\",weight:\"700\"},{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZORNDJTedX1sGE.woff2\",weight:\"500\"}]}];export const css=['.framer-QYzOC .framer-styles-preset-1wl9y1h:not(.rich-text-wrapper), .framer-QYzOC .framer-styles-preset-1wl9y1h.rich-text-wrapper p { --framer-font-family: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --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: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-76a5b4e6-c520-44e6-8b02-e9e271aaa1fa); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-QYzOC .framer-styles-preset-1wl9y1h:not(.rich-text-wrapper), .framer-QYzOC .framer-styles-preset-1wl9y1h.rich-text-wrapper p { --framer-font-family: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --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: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-76a5b4e6-c520-44e6-8b02-e9e271aaa1fa); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-QYzOC .framer-styles-preset-1wl9y1h:not(.rich-text-wrapper), .framer-QYzOC .framer-styles-preset-1wl9y1h.rich-text-wrapper p { --framer-font-family: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --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: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-76a5b4e6-c520-44e6-8b02-e9e271aaa1fa); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-QYzOC\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e0809aa)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Libre Franklin-regular\",\"GF;Libre Franklin-700\",\"GF;Libre Franklin-700italic\",\"GF;Libre Franklin-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhLsWUAtrIb-JH1g.woff2\",weight:\"400\"},{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhycKUAtrIb-JH1g.woff2\",weight:\"700\"},{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oabQ9DJTedX1sGE.woff2\",weight:\"700\"},{cssFamilyName:\"Libre Franklin\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Libre Franklin\",url:\"https://fonts.gstatic.com/s/librefranklin/v20/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZ8RNDJTedX1sGE.woff2\",weight:\"400\"}]}];export const css=['.framer-kVLhJ .framer-styles-preset-lihaqh:not(.rich-text-wrapper), .framer-kVLhJ .framer-styles-preset-lihaqh.rich-text-wrapper p { --framer-font-family: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 20px; --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: -0.005em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-76a5b4e6-c520-44e6-8b02-e9e271aaa1fa); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-kVLhJ .framer-styles-preset-lihaqh:not(.rich-text-wrapper), .framer-kVLhJ .framer-styles-preset-lihaqh.rich-text-wrapper p { --framer-font-family: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 19px; --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: -0.005em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-76a5b4e6-c520-44e6-8b02-e9e271aaa1fa); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-kVLhJ .framer-styles-preset-lihaqh:not(.rich-text-wrapper), .framer-kVLhJ .framer-styles-preset-lihaqh.rich-text-wrapper p { --framer-font-family: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-family-italic: \"Libre Franklin\", \"Libre Franklin Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 18px; --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.5em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-76a5b4e6-c520-44e6-8b02-e9e271aaa1fa); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-kVLhJ\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}