{"version":3,"file":"shared-lib.B-9IESDL.mjs","names":["t","e","n","o","s","r","clamp","u","a","n","o","r","t","e","i","t","i","o","a","l","u","h","e","s","p","n","r","m","n","e","t","MotionValue","i","r","n","e","t","o","a","e","r","t","s","n","i","o","u","l","p","M","e","t","o","n","i","f","r","l","c","p","x","W","L","T","u","a","d","g","m","h","animate","O","Z","Y","X","j","z","q","V","ce","S","ue","Children","useRef","useMemo","useState","useCallback","index","size","i","clamp","t","x","n","debounce","i","e","className","a","e","useRef","_Fragment","Children","useMemo","useState","e","clamp","cx","i","x","useMemo","useMemo","useMemo","getProps","useRef","useCallback","useState","progress","useMemo","e","getProps","className","React.useState","React.useRef","React.useCallback","x","e","React.useMemo","addPropertyOverrides","enabledGestures","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","RichText","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","RichText","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","Image","className","useState","progress","useRef","p","i","index","useRef","x","fonts","css","className","metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/ga.jspm.io/npm:@motionone/utils@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/animation@10.18.0/dist/index.es.js","https:/ga.jspm.io/npm:hey-listen@1.0.8/dist/index.js","https:/ga.jspm.io/npm:@motionone/types@10.17.1/dist/index.es.js","https:/ga.jspm.io/npm:tslib@2.6.3/tslib.es6.mjs","https:/ga.jspm.io/npm:@motionone/generators@10.18.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/dom@10.18.0/dist/index.es.js","https:/framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/plhC5PVnCMllW5QXjFK5/Ticker.js","https:/unpkg.com/lenis@1.3.13/dist/lenis.mjs","https:/unpkg.com/lenis@1.3.13/dist/lenis-snap.mjs","https:/framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/qsISmokGxJ4uY7X7CEiH/Lenis.js","https:/framerusercontent.com/modules/c3wctWmZatu26QI8OC2s/K8Is87n3MhmApuYRfwtn/ImageWheel.js","https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/7qT0r3So12155VV5Jq5x/Video.js","https:/framerusercontent.com/modules/Oosb1V7fsuMIDnnu5ahb/B5czitDQs0rjPIB0AB1p/yOMO1K3NE.js","https:/framerusercontent.com/modules/XeoIHGz5TuOXMuuJ6Tvk/Lqedl5T6EEKFUrqb0EkP/TiltCard_1.js","https:/framerusercontent.com/modules/BxGQUwiLHvzFNk6Ng0NL/NidygwnRSYuouBseoJsg/B4k1w4FdW.js","https:/framerusercontent.com/modules/vfba1IN0FonOcfosIgm8/blfpzgTzAwEXs5VBQwGM/EZvF7R5uO.js","https:/framerusercontent.com/modules/WkDWCAAdWzyA72eR6SPs/qk85opPbhTxECwG6aQ68/o_ZWG_gRb.js","https:/framerusercontent.com/modules/z1RhTLfeBdESCpk2Fqkg/aGHZ8BXcDALjTe8LQOe5/CardShowcase.js","https:/framerusercontent.com/modules/iYgjcGRk3WdVnmXwoDMk/KyJ5fIMglRGuV2hqXKLv/MagneticWrapper.js","https:/framerusercontent.com/modules/hTrftGFMHNZvCQJxEXVe/SYuZu76aEkVAQwGl23cG/Ywt_OR1m4.js","https:/framerusercontent.com/modules/7aR8Dmwi91SJ6VSkzeKy/EQ8AM8elsYFyWt6E2ujb/Zx98MZf82.js","https:/framerusercontent.com/modules/lhd19ti67lmOi8nzhlNT/jN0tzPsrvpFkGPPj1Tut/siteMetadata.js","https:/framerusercontent.com/modules/LrccyTmP2rgiQDA7EmJX/y1AKoSqfOd2UY6uIjXn8/HytvFyo6L.js","https:/framerusercontent.com/modules/vhW6Y4YGToFT9yAJn1fG/eLuKc52PZjVBnMLRCyyf/VNX7yB8y_.js"],"sourcesContent":["function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let f=0;for(;f<o-2;f++)if(s<e[f+1])break;let r=clamp(0,1,progress(e[f],e[f+1],s));const c=getEasingForSegment(n,f);r=c(r);return mix(t[f],t[f+1],r)}}const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isFunction=t=>\"function\"===typeof t;const isString=t=>\"string\"===typeof t;const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isFunction,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{isFunction as t,isCubicBezier as i,noopReturn as e,defaults as s,isEasingGenerator as a,isEasingList as n,interpolate as r}from\"@motionone/utils\";import{cubicBezier as o,steps as h}from\"@motionone/easing\";const l={ease:o(.25,.1,.25,1),\"ease-in\":o(.42,0,1,1),\"ease-in-out\":o(.42,0,.58,1),\"ease-out\":o(0,0,.58,1)};const u=/\\((.*?)\\)/;function getEasingFunction(s){if(t(s))return s;if(i(s))return o(...s);const a=l[s];if(a)return a;if(s.startsWith(\"steps\")){const t=u.exec(s);if(t){const i=t[1].split(\",\");return h(parseFloat(i[0]),i[1].trim())}}return e}class Animation{constructor(t,i=[0,1],{easing:o,duration:h=s.duration,delay:l=s.delay,endDelay:u=s.endDelay,repeat:m=s.repeat,offset:c,direction:p=\"normal\",autoplay:d=true}={}){this.startTime=null;this.rate=1;this.t=0;this.cancelTimestamp=null;this.easing=e;this.duration=0;this.totalDuration=0;this.repeat=0;this.playState=\"idle\";this.finished=new Promise(((t,i)=>{this.resolve=t;this.reject=i}));o=o||s.easing;if(a(o)){const t=o.createAnimation(i);o=t.easing;i=t.keyframes||i;h=t.duration||h}this.repeat=m;this.easing=n(o)?e:getEasingFunction(o);this.updateDuration(h);const f=r(i,c,n(o)?o.map(getEasingFunction):e);this.tick=i=>{var e;l;let s=0;s=this.pauseTime!==void 0?this.pauseTime:(i-this.startTime)*this.rate;this.t=s;s/=1e3;s=Math.max(s-l,0);this.playState===\"finished\"&&this.pauseTime===void 0&&(s=this.totalDuration);const a=s/this.duration;let n=Math.floor(a);let r=a%1;!r&&a>=1&&(r=1);r===1&&n--;const o=n%2;(p===\"reverse\"||p===\"alternate\"&&o||p===\"alternate-reverse\"&&!o)&&(r=1-r);const h=s>=this.totalDuration?1:Math.min(r,1);const m=f(this.easing(h));t(m);const c=this.pauseTime===void 0&&(this.playState===\"finished\"||s>=this.totalDuration+u);if(c){this.playState=\"finished\";(e=this.resolve)===null||e===void 0?void 0:e.call(this,m)}else this.playState!==\"idle\"&&(this.frameRequestId=requestAnimationFrame(this.tick))};d&&this.play()}play(){const t=performance.now();this.playState=\"running\";this.pauseTime!==void 0?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t);this.cancelTimestamp=this.startTime;this.pauseTime=void 0;this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState=\"paused\";this.pauseTime=this.t}finish(){this.playState=\"finished\";this.tick(0)}stop(){var t;this.playState=\"idle\";this.frameRequestId!==void 0&&cancelAnimationFrame(this.frameRequestId);(t=this.reject)===null||t===void 0?void 0:t.call(this,false)}cancel(){this.stop();this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t;this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){this.pauseTime!==void 0||this.rate===0?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}export{Animation,getEasingFunction};\n//# sourceMappingURL=index.es.js.map\n","var n={};Object.defineProperty(n,\"__esModule\",{value:true});n.warning=function(){};n.invariant=function(){};const e=n.__esModule,t=n.warning,r=n.invariant;export default n;export{e as __esModule,r as invariant,t as warning};\n\n//# sourceMappingURL=index.js.map","class MotionValue{setAnimation(i){this.animation=i;i===null||i===void 0?void 0:i.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}export{MotionValue};\n//# sourceMappingURL=index.es.js.map\n","var extendStatics=function(e,t){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};return extendStatics(e,t)};function __extends(e,t){if(typeof t!==\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");extendStatics(e,t);function __(){this.constructor=e}e.prototype=t===null?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){__assign=Object.assign||function __assign(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};return __assign.apply(this,arguments)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols===\"function\"){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function __decorate(e,t,r,n){var o,a=arguments.length,i=a<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n;if(typeof Reflect===\"object\"&&typeof Reflect.decorate===\"function\")i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function __param(e,t){return function(r,n){t(r,n,e)}}function __esDecorate(e,t,r,n,o,a){function accept(e){if(e!==void 0&&typeof e!==\"function\")throw new TypeError(\"Function expected\");return e}var i=n.kind,c=i===\"getter\"?\"get\":i===\"setter\"?\"set\":\"value\";var s=!t&&e?n.static?e:e.prototype:null;var l=t||(s?Object.getOwnPropertyDescriptor(s,n.name):{});var u,_=false;for(var f=r.length-1;f>=0;f--){var p={};for(var y in n)p[y]=y===\"access\"?{}:n[y];for(var y in n.access)p.access[y]=n.access[y];p.addInitializer=function(e){if(_)throw new TypeError(\"Cannot add initializers after decoration has completed\");a.push(accept(e||null))};var d=(0,r[f])(i===\"accessor\"?{get:l.get,set:l.set}:l[c],p);if(i===\"accessor\"){if(d===void 0)continue;if(d===null||typeof d!==\"object\")throw new TypeError(\"Object expected\");(u=accept(d.get))&&(l.get=u);(u=accept(d.set))&&(l.set=u);(u=accept(d.init))&&o.unshift(u)}else(u=accept(d))&&(i===\"field\"?o.unshift(u):l[c]=u)}s&&Object.defineProperty(s,n.name,l);_=true}function __runInitializers(e,t,r){var n=arguments.length>2;for(var o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0}function __propKey(e){return typeof e===\"symbol\"?e:\"\".concat(e)}function __setFunctionName(e,t,r){typeof t===\"symbol\"&&(t=t.description?\"[\".concat(t.description,\"]\"):\"\");return Object.defineProperty(e,\"name\",{configurable:true,value:r?\"\".concat(r,\" \",t):t})}function __metadata(e,t){if(typeof Reflect===\"object\"&&typeof Reflect.metadata===\"function\")return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function fulfilled(e){try{step(n.next(e))}catch(e){o(e)}}function rejected(e){try{step(n.throw(e))}catch(e){o(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,a,i={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]};return a={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol===\"function\"&&(a[Symbol.iterator]=function(){return this}),a;function verb(e){return function(t){return step([e,t])}}function step(c){if(r)throw new TypeError(\"Generator is already executing.\");while(a&&(a=0,c[0]&&(i=0)),i)try{if(r=1,n&&(o=c[0]&2?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;(n=0,o)&&(c=[c[0]&2,o.value]);switch(c[0]){case 0:case 1:o=c;break;case 4:i.label++;return{value:c[1],done:false};case 5:i.label++;n=c[1];c=[0];continue;case 7:c=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(c[0]===6||c[0]===2)){i=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(c[0]===6&&i.label<o[1]){i.label=o[1];o=c;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(c);break}o[2]&&i.ops.pop();i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e];n=0}finally{r=o=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:true}}}var e=Object.create?function(e,t,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[r]}});Object.defineProperty(e,n,o)}:function(e,t,r,n){n===void 0&&(n=r);e[n]=t[r]};function __exportStar(t,r){for(var n in t)n===\"default\"||Object.prototype.hasOwnProperty.call(r,n)||e(r,t,n)}function __values(e){var t=typeof Symbol===\"function\"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length===\"number\")return{next:function(){e&&n>=e.length&&(e=void 0);return{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(e,t){var r=typeof Symbol===\"function\"&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{while((t===void 0||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}\n/** @deprecated */function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}\n/** @deprecated */function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function __spreadArray(e,t,r){if(r||arguments.length===2)for(var n,o=0,a=t.length;o<a;o++)if(n||!(o in t)){n||(n=Array.prototype.slice.call(t,0,o));n[o]=t[o]}return e.concat(n||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n,o=r.apply(e,t||[]),a=[];return n={},verb(\"next\"),verb(\"throw\"),verb(\"return\",awaitReturn),n[Symbol.asyncIterator]=function(){return this},n;function awaitReturn(e){return function(t){return Promise.resolve(t).then(e,reject)}}function verb(e,t){if(o[e]){n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||resume(e,t)}))};t&&(n[e]=t(n[e]))}}function resume(e,t){try{step(o[e](t))}catch(e){settle(a[0][3],e)}}function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(a[0][2],e)}function fulfill(e){resume(\"next\",e)}function reject(e){resume(\"throw\",e)}function settle(e,t){(e(t),a.shift(),a.length)&&resume(a[0][0],a[0][1])}}function __asyncDelegator(e){var t,r;return t={},verb(\"next\"),verb(\"throw\",(function(e){throw e})),verb(\"return\"),t[Symbol.iterator]=function(){return this},t;function verb(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:false}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=typeof __values===\"function\"?__values(e):e[Symbol.iterator](),t={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function verb(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){t=e[r](t),settle(n,o,t.done,t.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}}function __makeTemplateObject(e,t){Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t;return e}var t=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:true,value:t})}:function(e,t){e.default=t};function __importStar(r){if(r&&r.__esModule)return r;var n={};if(r!=null)for(var o in r)o!==\"default\"&&Object.prototype.hasOwnProperty.call(r,o)&&e(n,r,o);t(n,r);return n}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,r,n){if(r===\"a\"&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(typeof t===\"function\"?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return r===\"m\"?n:r===\"a\"?n.call(e):n?n.value:t.get(e)}function __classPrivateFieldSet(e,t,r,n,o){if(n===\"m\")throw new TypeError(\"Private method is not writable\");if(n===\"a\"&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(typeof t===\"function\"?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return n===\"a\"?o.call(e,r):o?o.value=r:t.set(e,r),r}function __classPrivateFieldIn(e,t){if(t===null||typeof t!==\"object\"&&typeof t!==\"function\")throw new TypeError(\"Cannot use 'in' operator on non-object\");return typeof e===\"function\"?t===e:e.has(t)}function __addDisposableResource(e,t,r){if(t!==null&&t!==void 0){if(typeof t!==\"object\"&&typeof t!==\"function\")throw new TypeError(\"Object expected.\");var n,o;if(r){if(!Symbol.asyncDispose)throw new TypeError(\"Symbol.asyncDispose is not defined.\");n=t[Symbol.asyncDispose]}if(n===void 0){if(!Symbol.dispose)throw new TypeError(\"Symbol.dispose is not defined.\");n=t[Symbol.dispose];r&&(o=n)}if(typeof n!==\"function\")throw new TypeError(\"Object not disposable.\");o&&(n=function(){try{o.call(this)}catch(e){return Promise.reject(e)}});e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:true});return t}var r=typeof SuppressedError===\"function\"?SuppressedError:function(e,t,r){var n=new Error(r);return n.name=\"SuppressedError\",n.error=e,n.suppressed=t,n};function __disposeResources(e){function fail(t){e.error=e.hasError?new r(t,e.error,\"An error was suppressed during disposal.\"):t;e.hasError=true}function next(){while(e.stack.length){var t=e.stack.pop();try{var r=t.dispose&&t.dispose.call(t.value);if(t.async)return Promise.resolve(r).then(next,(function(e){fail(e);return next()}))}catch(e){fail(e)}}if(e.hasError)throw e.error}return next()}var n={__extends:__extends,__assign:__assign,__rest:__rest,__decorate:__decorate,__param:__param,__metadata:__metadata,__awaiter:__awaiter,__generator:__generator,__createBinding:e,__exportStar:__exportStar,__values:__values,__read:__read,__spread:__spread,__spreadArrays:__spreadArrays,__spreadArray:__spreadArray,__await:__await,__asyncGenerator:__asyncGenerator,__asyncDelegator:__asyncDelegator,__asyncValues:__asyncValues,__makeTemplateObject:__makeTemplateObject,__importStar:__importStar,__importDefault:__importDefault,__classPrivateFieldGet:__classPrivateFieldGet,__classPrivateFieldSet:__classPrivateFieldSet,__classPrivateFieldIn:__classPrivateFieldIn,__addDisposableResource:__addDisposableResource,__disposeResources:__disposeResources};export{__addDisposableResource,__assign,__asyncDelegator,__asyncGenerator,__asyncValues,__await,__awaiter,__classPrivateFieldGet,__classPrivateFieldIn,__classPrivateFieldSet,e as __createBinding,__decorate,__disposeResources,__esDecorate,__exportStar,__extends,__generator,__importDefault,__importStar,__makeTemplateObject,__metadata,__param,__propKey,__read,__rest,__runInitializers,__setFunctionName,__spread,__spreadArray,__spreadArrays,__values,n as default};\n//# sourceMappingURL=tslib.es6.mjs.map\n","import{velocityPerSecond as e,time as t,noopReturn as s}from\"@motionone/utils\";const n=5;function calcGeneratorVelocity(t,s,r){const a=Math.max(s-n,0);return e(r-t(a),s-a)}const r={stiffness:100,damping:10,mass:1};const calcDampingRatio=(e=r.stiffness,t=r.damping,s=r.mass)=>t/(2*Math.sqrt(e*s));function hasReachedTarget(e,t,s){return e<t&&s>=t||e>t&&s<=t}const spring=({stiffness:e=r.stiffness,damping:s=r.damping,mass:n=r.mass,from:a=0,to:o=1,velocity:c=0,restSpeed:i,restDistance:h}={})=>{c=c?t.s(c):0;const u={done:false,hasReachedTarget:false,current:a,target:o};const d=o-a;const f=Math.sqrt(e/n)/1e3;const l=calcDampingRatio(e,s,n);const g=Math.abs(d)<5;i||(i=g?.01:2);h||(h=g?.005:.5);let m;if(l<1){const e=f*Math.sqrt(1-l*l);m=t=>o-Math.exp(-l*f*t)*((l*f*d-c)/e*Math.sin(e*t)+d*Math.cos(e*t))}else m=e=>o-Math.exp(-f*e)*(d+(f*d-c)*e);return e=>{u.current=m(e);const t=e===0?c:calcGeneratorVelocity(m,e,u.current);const s=Math.abs(t)<=i;const n=Math.abs(o-u.current)<=h;u.done=s&&n;u.hasReachedTarget=hasReachedTarget(a,o,u.current);return u}};const glide=({from:e=0,velocity:s=0,power:n=.8,decay:r=.325,bounceDamping:a,bounceStiffness:o,changeTarget:c,min:i,max:h,restDistance:u=.5,restSpeed:d})=>{r=t.ms(r);const f={hasReachedTarget:false,done:false,current:e,target:e};const isOutOfBounds=e=>i!==void 0&&e<i||h!==void 0&&e>h;const nearestBoundary=e=>i===void 0?h:h===void 0||Math.abs(i-e)<Math.abs(h-e)?i:h;let l=n*s;const g=e+l;const m=c===void 0?g:c(g);f.target=m;m!==g&&(l=m-e);const calcDelta=e=>-l*Math.exp(-e/r);const calcLatest=e=>m+calcDelta(e);const applyFriction=e=>{const t=calcDelta(e);const s=calcLatest(e);f.done=Math.abs(t)<=u;f.current=f.done?m:s};let p;let M;const checkCatchBoundary=e=>{if(isOutOfBounds(f.current)){p=e;M=spring({from:f.current,to:nearestBoundary(f.current),velocity:calcGeneratorVelocity(calcLatest,e,f.current),damping:a,stiffness:o,restDistance:u,restSpeed:d})}};checkCatchBoundary(0);return e=>{let t=false;if(!M&&p===void 0){t=true;applyFriction(e);checkCatchBoundary(e)}if(p!==void 0&&e>p){f.hasReachedTarget=true;return M(e-p)}f.hasReachedTarget=false;!t&&applyFriction(e);return f}};const a=10;const o=1e4;function pregenerateKeyframes(e,t=s){let n;let r=a;let c=e(0);const i=[t(c.current)];while(!c.done&&r<o){c=e(r);i.push(t(c.done?c.target:c.current));n===void 0&&c.hasReachedTarget&&(n=r);r+=a}const h=r-a;i.length===1&&i.push(c.current);return{keyframes:i,duration:h/1e3,overshootDuration:(n!==null&&n!==void 0?n:h)/1e3}}export{calcGeneratorVelocity,glide,pregenerateKeyframes,spring};\n//# sourceMappingURL=index.es.js.map\n","import{getEasingFunction as e,Animation as t}from\"@motionone/animation\";import{invariant as n}from\"hey-listen\";import{MotionValue as o}from\"@motionone/types\";import{noopReturn as i,addUniqueItem as s,progress as r,isFunction as a,defaults as c,isCubicBezier as l,isString as f,isEasingGenerator as u,isEasingList as d,isNumber as g,time as m,noop as h,removeItem as p,mix as v,getEasingForSegment as y,defaultOffset as w,fillOffset as E,velocityPerSecond as b,interpolate as A}from\"@motionone/utils\";import{__rest as S}from\"tslib\";import{pregenerateKeyframes as O,calcGeneratorVelocity as x,spring as z,glide as V}from\"@motionone/generators\";const W=new WeakMap;function getAnimationData(e){W.has(e)||W.set(e,{transforms:[],values:new Map});return W.get(e)}function getMotionValue(e,t){e.has(t)||e.set(t,new o);return e.get(t)}const L=[\"\",\"X\",\"Y\",\"Z\"];const T=[\"translate\",\"scale\",\"rotate\",\"skew\"];const M={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};const D={syntax:\"<angle>\",initialValue:\"0deg\",toDefaultUnit:e=>e+\"deg\"};const B={translate:{syntax:\"<length-percentage>\",initialValue:\"0px\",toDefaultUnit:e=>e+\"px\"},rotate:D,scale:{syntax:\"<number>\",initialValue:1,toDefaultUnit:i},skew:D};const k=new Map;const asTransformCssVar=e=>`--motion-${e}`;const N=[\"x\",\"y\",\"z\"];T.forEach((e=>{L.forEach((t=>{N.push(e+t);k.set(asTransformCssVar(e+t),B[e])}))}));const compareTransformOrder=(e,t)=>N.indexOf(e)-N.indexOf(t);const $=new Set(N);const isTransform=e=>$.has(e);const addTransformToElement=(e,t)=>{M[t]&&(t=M[t]);const{transforms:n}=getAnimationData(e);s(n,t);e.style.transform=buildTransformTemplate(n)};const buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,\"\").trim();const transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`;const isCssVar=e=>e.startsWith(\"--\");const C=new Set;function registerCssVariable(e){if(!C.has(e)){C.add(e);try{const{syntax:t,initialValue:n}=k.has(e)?k.get(e):{};CSS.registerProperty({name:e,inherits:false,syntax:t,initialValue:n})}catch(e){}}}const testAnimation=(e,t)=>document.createElement(\"div\").animate(e,t);const j={cssRegisterProperty:()=>typeof CSS!==\"undefined\"&&Object.hasOwnProperty.call(CSS,\"registerProperty\"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,\"animate\"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return false}return true},finished:()=>Boolean(testAnimation({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{testAnimation({opacity:0},{easing:\"linear(0, 1)\"})}catch(e){return false}return true}};const P={};const R={};for(const e in j)R[e]=()=>{P[e]===void 0&&(P[e]=j[e]());return P[e]};const H=.015;const generateLinearEasingPoints=(e,t)=>{let n=\"\";const o=Math.round(t/H);for(let t=0;t<o;t++)n+=e(r(0,o-1,t))+\", \";return n.substring(0,n.length-2)};const convertEasing=(e,t)=>a(e)?R.linearEasing()?`linear(${generateLinearEasingPoints(e,t)})`:c.easing:l(e)?cubicBezierAsString(e):e;const cubicBezierAsString=([e,t,n,o])=>`cubic-bezier(${e}, ${t}, ${n}, ${o})`;function hydrateKeyframes(e,t){for(let n=0;n<e.length;n++)e[n]===null&&(e[n]=n?e[n-1]:t());return e}const keyframesList=e=>Array.isArray(e)?e:[e];function getStyleName(e){M[e]&&(e=M[e]);return isTransform(e)?asTransformCssVar(e):e}const I={get:(e,t)=>{t=getStyleName(t);let n=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!n&&n!==0){const e=k.get(t);e&&(n=e.initialValue)}return n},set:(e,t,n)=>{t=getStyleName(t);isCssVar(t)?e.style.setProperty(t,n):e.style[t]=n}};function stopAnimation(e,t=true){if(e&&e.playState!==\"finished\")try{if(e.stop)e.stop();else{t&&e.commitStyles();e.cancel()}}catch(e){}}function getUnitConverter(e,t){var n;let o=(t===null||t===void 0?void 0:t.toDefaultUnit)||i;const s=e[e.length-1];if(f(s)){const e=((n=s.match(/(-?[\\d.]+)([a-z%]*)/))===null||n===void 0?void 0:n[2])||\"\";e&&(o=t=>t+e)}return o}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,n,o={},i){const s=getDevToolsRecord();const r=o.record!==false&&s;let l;let{duration:f=c.duration,delay:p=c.delay,endDelay:v=c.endDelay,repeat:y=c.repeat,easing:w=c.easing,persist:E=false,direction:b,offset:A,allowWebkitAcceleration:S=false,autoplay:O=true}=o;const x=getAnimationData(e);const z=isTransform(t);let V=R.waapi();z&&addTransformToElement(e,t);const W=getStyleName(t);const L=getMotionValue(x.values,W);const T=k.get(W);stopAnimation(L.animation,!(u(w)&&L.generator)&&o.record!==false);return()=>{const readInitialValue=()=>{var t,n;return(n=(t=I.get(e,W))!==null&&t!==void 0?t:T===null||T===void 0?void 0:T.initialValue)!==null&&n!==void 0?n:0};let c=hydrateKeyframes(keyframesList(n),readInitialValue);const x=getUnitConverter(c,T);if(u(w)){const e=w.createAnimation(c,t!==\"opacity\",readInitialValue,W,L);w=e.easing;c=e.keyframes||c;f=e.duration||f}isCssVar(W)&&(R.cssRegisterProperty()?registerCssVariable(W):V=false);z&&!R.linearEasing()&&(a(w)||d(w)&&w.some(a))&&(V=false);if(V){T&&(c=c.map((e=>g(e)?T.toDefaultUnit(e):e)));c.length!==1||R.partialKeyframes()&&!r||c.unshift(readInitialValue());const t={delay:m.ms(p),duration:m.ms(f),endDelay:m.ms(v),easing:d(w)?void 0:convertEasing(w,f),direction:b,iterations:y+1,fill:\"both\"};l=e.animate({[W]:c,offset:A,easing:d(w)?w.map((e=>convertEasing(e,f))):void 0},t);l.finished||(l.finished=new Promise(((e,t)=>{l.onfinish=e;l.oncancel=t})));const n=c[c.length-1];l.finished.then((()=>{if(!E){I.set(e,W,n);l.cancel()}})).catch(h);S||(l.playbackRate=1.000001)}else if(i&&z){c=c.map((e=>typeof e===\"string\"?parseFloat(e):e));c.length===1&&c.unshift(parseFloat(readInitialValue()));l=new i((t=>{I.set(e,W,x?x(t):t)}),c,Object.assign(Object.assign({},o),{duration:f,easing:w}))}else{const t=c[c.length-1];I.set(e,W,T&&g(t)?T.toDefaultUnit(t):t)}r&&s(e,t,c,{duration:f,delay:p,easing:w,repeat:y,offset:A},\"motion-one\");L.setAnimation(l);l&&!O&&l.pause();return l}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){var n;if(typeof e===\"string\")if(t){(n=t[e])!==null&&n!==void 0?n:t[e]=document.querySelectorAll(e);e=t[e]}else e=document.querySelectorAll(e);else e instanceof Element&&(e=[e]);return Array.from(e||[])}const createAnimation=e=>e();const withControls=(e,t,n=c.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:n,options:t},U);const getActiveAnimation=e=>e.animations[0];const U={get:(e,t)=>{const n=getActiveAnimation(e);switch(t){case\"duration\":return e.duration;case\"currentTime\":return m.s((n===null||n===void 0?void 0:n[t])||0);case\"playbackRate\":case\"playState\":return n===null||n===void 0?void 0:n[t];case\"finished\":e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(h));return e.finished;case\"stop\":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case\"forEachNative\":return t=>{e.animations.forEach((n=>t(n,e)))};default:return typeof(n===null||n===void 0?void 0:n[t])===\"undefined\"?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,n)=>{switch(t){case\"currentTime\":n=m.ms(n);case\"playbackRate\":for(let o=0;o<e.animations.length;o++)e.animations[o][t]=n;return true}return false}};const selectFinished=e=>e.finished;function stagger(t=.1,{start:n=0,from:o=0,easing:i}={}){return(s,r)=>{const a=g(o)?o:getFromIndex(o,r);const c=Math.abs(a-s);let l=t*c;if(i){const n=r*t;const o=e(i);l=o(l/n)*n}return n+l}}function getFromIndex(e,t){if(e===\"first\")return 0;{const n=t-1;return e===\"last\"?n:n/2}}function resolveOption(e,t,n){return a(e)?e(t,n):e}function createAnimate(e){return function animate(t,o,i={}){t=resolveElements(t);const s=t.length;n(Boolean(s),\"No valid element provided.\");n(Boolean(o),\"No keyframes defined.\");const r=[];for(let n=0;n<s;n++){const a=t[n];for(const t in o){const c=getOptions(i,t);c.delay=resolveOption(c.delay,n,s);const l=animateStyle(a,t,o[t],c,e);r.push(l)}}return withControls(r,i,i.duration)}}const F=createAnimate(t);function calcNextTime(e,t,n,o){var i;return g(t)?t:t.startsWith(\"-\")||t.startsWith(\"+\")?Math.max(0,e+parseFloat(t)):t===\"<\"?n:(i=o.get(t))!==null&&i!==void 0?i:e}function eraseKeyframes(e,t,n){for(let o=0;o<e.length;o++){const i=e[o];if(i.at>t&&i.at<n){p(e,i);o--}}}function addKeyframes(e,t,n,o,i,s){eraseKeyframes(e,i,s);for(let r=0;r<t.length;r++)e.push({value:t[r],at:v(i,s,o[r]),easing:y(n,r)})}function compareByTime(e,t){return e.at===t.at?e.value===null?1:-1:e.at-t.at}function timeline(e,n={}){var o;const i=createAnimationsFromTimeline(e,n);const s=i.map((e=>animateStyle(...e,t))).filter(Boolean);return withControls(s,n,(o=i[0])===null||o===void 0?void 0:o[3].duration)}function createAnimationsFromTimeline(e,t={}){var{defaultOptions:o={}}=t,i=S(t,[\"defaultOptions\"]);const s=[];const a=new Map;const l={};const d=new Map;let g=0;let m=0;let h=0;for(let t=0;t<e.length;t++){const i=e[t];if(f(i)){d.set(i,m);continue}if(!Array.isArray(i)){d.set(i.name,calcNextTime(m,i.at,g,d));continue}const[s,r,p={}]=i;p.at!==void 0&&(m=calcNextTime(m,p.at,g,d));let v=0;const y=resolveElements(s,l);const b=y.length;for(let e=0;e<b;e++){const t=y[e];const i=getElementSequence(t,a);for(const t in r){const s=getValueSequence(t,i);let a=keyframesList(r[t]);const l=getOptions(p,t);let{duration:f=o.duration||c.duration,easing:d=o.easing||c.easing}=l;if(u(d)){n(t===\"opacity\"||a.length>1,\"spring must be provided 2 keyframes within timeline()\");const e=d.createAnimation(a,t!==\"opacity\",(()=>0),t);d=e.easing;a=e.keyframes||a;f=e.duration||f}const g=resolveOption(p.delay,e,b)||0;const y=m+g;const A=y+f;let{offset:S=w(a.length)}=l;S.length===1&&S[0]===0&&(S[1]=1);const O=S.length-a.length;O>0&&E(S,O);a.length===1&&a.unshift(null);addKeyframes(s,a,d,S,y,A);v=Math.max(g+f,v);h=Math.max(A,h)}}g=m;m+=v}a.forEach(((e,t)=>{for(const n in e){const a=e[n];a.sort(compareByTime);const l=[];const f=[];const u=[];for(let e=0;e<a.length;e++){const{at:t,value:n,easing:o}=a[e];l.push(n);f.push(r(0,h,t));u.push(o||c.easing)}if(f[0]!==0){f.unshift(0);l.unshift(l[0]);u.unshift(\"linear\")}if(f[f.length-1]!==1){f.push(1);l.push(null)}s.push([t,n,l,Object.assign(Object.assign(Object.assign({},o),{duration:h,easing:u,offset:f}),i)])}}));return s}function getElementSequence(e,t){!t.has(e)&&t.set(e,{});return t.get(e)}function getValueSequence(e,t){t[e]||(t[e]=[]);return t[e]}function canGenerate(e){return g(e)&&!isNaN(e)}function getAsNumber(e){return f(e)?parseFloat(e):e}function createGeneratorEasing(e){const t=new WeakMap;return(n={})=>{const o=new Map;const getGenerator=(t=0,i=100,s=0,r=false)=>{const a=`${t}-${i}-${s}-${r}`;o.has(a)||o.set(a,e(Object.assign({from:t,to:i,velocity:s},n)));return o.get(a)};const getKeyframes=(e,n)=>{t.has(e)||t.set(e,O(e,n));return t.get(e)};return{createAnimation:(e,t=true,n,o,s)=>{let r;let a;let c;let l=0;let f=i;const u=e.length;if(t){f=getUnitConverter(e,o?k.get(getStyleName(o)):void 0);const t=e[u-1];c=getAsNumber(t);if(u>1&&e[0]!==null)a=getAsNumber(e[0]);else{const e=s===null||s===void 0?void 0:s.generator;if(e){const{animation:t,generatorStartTime:n}=s;const o=(t===null||t===void 0?void 0:t.startTime)||n||0;const i=(t===null||t===void 0?void 0:t.currentTime)||performance.now()-o;const r=e(i).current;a=r;l=x((t=>e(t).current),i,r)}else n&&(a=getAsNumber(n()))}}if(canGenerate(a)&&canGenerate(c)){const e=getGenerator(a,c,l,o===null||o===void 0?void 0:o.includes(\"scale\"));r=Object.assign(Object.assign({},getKeyframes(e,f)),{easing:\"linear\"});if(s){s.generator=e;s.generatorStartTime=performance.now()}}if(!r){const e=getKeyframes(getGenerator(0,100));r={easing:\"ease\",duration:e.overshootDuration}}return r}}}}const G=createGeneratorEasing(z);const q=createGeneratorEasing(V);const K={any:0,all:1};function inView$1(e,t,{root:n,margin:o,amount:i=\"any\"}={}){if(typeof IntersectionObserver===\"undefined\")return()=>{};const s=resolveElements(e);const r=new WeakMap;const onIntersectionChange=e=>{e.forEach((e=>{const n=r.get(e.target);if(e.isIntersecting!==Boolean(n))if(e.isIntersecting){const n=t(e);a(n)?r.set(e.target,n):c.unobserve(e.target)}else if(n){n(e);r.delete(e.target)}}))};const c=new IntersectionObserver(onIntersectionChange,{root:n,rootMargin:o,threshold:typeof i===\"number\"?i:K[i]});s.forEach((e=>c.observe(e)));return()=>c.disconnect()}const _=new WeakMap;let Z;function getElementSize(e,t){if(t){const{inlineSize:e,blockSize:n}=t[0];return{width:e,height:n}}return e instanceof SVGElement&&\"getBBox\"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function notifyTarget({target:e,contentRect:t,borderBoxSize:n}){var o;(o=_.get(e))===null||o===void 0?void 0:o.forEach((o=>{o({target:e,contentSize:t,get size(){return getElementSize(e,n)}})}))}function notifyAll(e){e.forEach(notifyTarget)}function createResizeObserver(){typeof ResizeObserver!==\"undefined\"&&(Z=new ResizeObserver(notifyAll))}function resizeElement(e,t){Z||createResizeObserver();const n=resolveElements(e);n.forEach((e=>{let n=_.get(e);if(!n){n=new Set;_.set(e,n)}n.add(t);Z===null||Z===void 0?void 0:Z.observe(e)}));return()=>{n.forEach((e=>{const n=_.get(e);n===null||n===void 0?void 0:n.delete(t);(n===null||n===void 0?void 0:n.size)||(Z===null||Z===void 0?void 0:Z.unobserve(e))}))}}const X=new Set;let Y;function createWindowResizeHandler(){Y=()=>{const e={width:window.innerWidth,height:window.innerHeight};const t={target:window,size:e,contentSize:e};X.forEach((e=>e(t)))};window.addEventListener(\"resize\",Y)}function resizeWindow(e){X.add(e);Y||createWindowResizeHandler();return()=>{X.delete(e);!X.size&&Y&&(Y=void 0)}}function resize(e,t){return a(e)?resizeWindow(e):resizeElement(e,t)}const J=50;const createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0});const createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()});const Q={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}};function updateAxisInfo(e,t,n,o){const i=n[t];const{length:s,position:a}=Q[t];const c=i.current;const l=n.time;i.current=e[`scroll${a}`];i.scrollLength=e[`scroll${s}`]-e[`client${s}`];i.offset.length=0;i.offset[0]=0;i.offset[1]=i.scrollLength;i.progress=r(0,i.scrollLength,i.current);const f=o-l;i.velocity=f>J?0:b(i.current-c,f)}function updateScrollInfo(e,t,n){updateAxisInfo(e,\"x\",t,n);updateAxisInfo(e,\"y\",t,n);t.time=n}function calcInset(e,t){let n={x:0,y:0};let o=e;while(o&&o!==t)if(o instanceof HTMLElement){n.x+=o.offsetLeft;n.y+=o.offsetTop;o=o.offsetParent}else if(o instanceof SVGGraphicsElement&&\"getBBox\"in o){const{top:e,left:t}=o.getBBox();n.x+=t;n.y+=e;while(o&&o.tagName!==\"svg\")o=o.parentNode}return n}const ee={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};const te={start:0,center:.5,end:1};function resolveEdge(e,t,n=0){let o=0;te[e]!==void 0&&(e=te[e]);if(f(e)){const t=parseFloat(e);e.endsWith(\"px\")?o=t:e.endsWith(\"%\")?e=t/100:e.endsWith(\"vw\")?o=t/100*document.documentElement.clientWidth:e.endsWith(\"vh\")?o=t/100*document.documentElement.clientHeight:e=t}g(e)&&(o=t*e);return n+o}const ne=[0,0];function resolveOffset(e,t,n,o){let i=Array.isArray(e)?e:ne;let s=0;let r=0;if(g(e))i=[e,e];else if(f(e)){e=e.trim();i=e.includes(\" \")?e.split(\" \"):[e,te[e]?e:\"0\"]}s=resolveEdge(i[0],n,o);r=resolveEdge(i[1],t);return s-r}const oe={x:0,y:0};function resolveOffsets(e,t,n){let{offset:o=ee.All}=n;const{target:i=e,axis:s=\"y\"}=n;const r=s===\"y\"?\"height\":\"width\";const a=i!==e?calcInset(i,e):oe;const c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:{width:i.clientWidth,height:i.clientHeight};const l={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let f=!t[s].interpolate;const u=o.length;for(let e=0;e<u;e++){const n=resolveOffset(o[e],l[r],c[r],a[s]);f||n===t[s].interpolatorOffsets[e]||(f=true);t[s].offset[e]=n}if(f){t[s].interpolate=A(w(u),t[s].offset);t[s].interpolatorOffsets=[...t[s].offset]}t[s].progress=t[s].interpolate(t[s].current)}function measure(e,t=e,n){n.x.targetOffset=0;n.y.targetOffset=0;if(t!==e){let o=t;while(o&&o!=e){n.x.targetOffset+=o.offsetLeft;n.y.targetOffset+=o.offsetTop;o=o.offsetParent}}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth;n.y.targetLength=t===e?t.scrollHeight:t.clientHeight;n.x.containerLength=e.clientWidth;n.y.containerLength=e.clientHeight}function createOnScrollHandler(e,t,n,o={}){const i=o.axis||\"y\";return{measure:()=>measure(e,o.target,n),update:t=>{updateScrollInfo(e,n,t);(o.offset||o.target)&&resolveOffsets(e,n,o)},notify:a(t)?()=>t(n):scrubAnimation(t,n[i])}}function scrubAnimation(e,t){e.pause();e.forEachNative(((e,{easing:t})=>{var n,o;if(e.updateDuration){t||(e.easing=i);e.updateDuration(1)}else{const i={duration:1e3};t||(i.easing=\"linear\");(o=(n=e.effect)===null||n===void 0?void 0:n.updateTiming)===null||o===void 0?void 0:o.call(n,i)}}));return()=>{e.currentTime=t.progress}}const ie=new WeakMap;const se=new WeakMap;const re=new WeakMap;const getEventTarget=e=>e===document.documentElement?window:e;function scroll(e,t={}){var{container:n=document.documentElement}=t,o=S(t,[\"container\"]);let i=re.get(n);if(!i){i=new Set;re.set(n,i)}const s=createScrollInfo();const r=createOnScrollHandler(n,e,s,o);i.add(r);if(!ie.has(n)){const listener=()=>{const e=performance.now();for(const e of i)e.measure();for(const t of i)t.update(e);for(const e of i)e.notify()};ie.set(n,listener);const e=getEventTarget(n);window.addEventListener(\"resize\",listener,{passive:true});n!==document.documentElement&&se.set(n,resize(n,listener));e.addEventListener(\"scroll\",listener,{passive:true})}const a=ie.get(n);const c=requestAnimationFrame(a);return()=>{var t;typeof e!==\"function\"&&e.stop();cancelAnimationFrame(c);const o=re.get(n);if(!o)return;o.delete(r);if(o.size)return;const i=ie.get(n);ie.delete(n);if(i){getEventTarget(n).removeEventListener(\"scroll\",i);(t=se.get(n))===null||t===void 0?void 0:t();window.removeEventListener(\"resize\",i)}}}function hasChanged(e,t){return typeof e!==typeof t||(Array.isArray(e)&&Array.isArray(t)?!shallowCompare(e,t):e!==t)}function shallowCompare(e,t){const n=t.length;if(n!==e.length)return false;for(let o=0;o<n;o++)if(t[o]!==e[o])return false;return true}function isVariant(e){return typeof e===\"object\"}function resolveVariant(e,t){return isVariant(e)?e:e&&t?t[e]:void 0}let ae;function processScheduledAnimations(){if(!ae)return;const e=ae.sort(compareByDepth).map(fireAnimateUpdates);e.forEach(fireNext);e.forEach(fireNext);ae=void 0}function scheduleAnimation(e){if(ae)s(ae,e);else{ae=[e];requestAnimationFrame(processScheduledAnimations)}}function unscheduleAnimation(e){ae&&p(ae,e)}const compareByDepth=(e,t)=>e.getDepth()-t.getDepth();const fireAnimateUpdates=e=>e.animateUpdates();const fireNext=e=>e.next();const motionEvent=(e,t)=>new CustomEvent(e,{detail:{target:t}});function dispatchPointerEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function dispatchViewEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}const ce={isActive:e=>Boolean(e.inView),subscribe:(e,{enable:t,disable:n},{inViewOptions:o={}})=>{const{once:i}=o,s=S(o,[\"once\"]);return inView$1(e,(o=>{t();dispatchViewEvent(e,\"viewenter\",o);if(!i)return t=>{n();dispatchViewEvent(e,\"viewleave\",t)}}),s)}};const mouseEvent=(e,t,n)=>o=>{if(!o.pointerType||o.pointerType===\"mouse\"){n();dispatchPointerEvent(e,t,o)}};const le={isActive:e=>Boolean(e.hover),subscribe:(e,{enable:t,disable:n})=>{const o=mouseEvent(e,\"hoverstart\",t);const i=mouseEvent(e,\"hoverend\",n);e.addEventListener(\"pointerenter\",o);e.addEventListener(\"pointerleave\",i);return()=>{e.removeEventListener(\"pointerenter\",o);e.removeEventListener(\"pointerleave\",i)}}};const fe={isActive:e=>Boolean(e.press),subscribe:(e,{enable:t,disable:n})=>{const onPointerUp=t=>{n();dispatchPointerEvent(e,\"pressend\",t);window.removeEventListener(\"pointerup\",onPointerUp)};const onPointerDown=n=>{t();dispatchPointerEvent(e,\"pressstart\",n);window.addEventListener(\"pointerup\",onPointerUp)};e.addEventListener(\"pointerdown\",onPointerDown);return()=>{e.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointerup\",onPointerUp)}}};const ue={inView:ce,hover:le,press:fe};const de=[\"initial\",\"animate\",...Object.keys(ue),\"exit\"];const ge=new WeakMap;function createMotionState(e={},o){let i;let s=o?o.getDepth()+1:0;const r={initial:true,animate:true};const a={};const c={};for(const t of de)c[t]=typeof e[t]===\"string\"?e[t]:o===null||o===void 0?void 0:o.getContext()[t];const l=e.initial===false?\"animate\":\"initial\";let f=resolveVariant(e[l]||c[l],e.variants)||{},u=S(f,[\"transition\"]);const d=Object.assign({},u);function*animateUpdates(){var n,o;const s=u;u={};const a={};for(const t of de){if(!r[t])continue;const i=resolveVariant(e[t]);if(i)for(const t in i)if(t!==\"transition\"){u[t]=i[t];a[t]=getOptions((o=(n=i.transition)!==null&&n!==void 0?n:e.transition)!==null&&o!==void 0?o:{},t)}}const c=new Set([...Object.keys(u),...Object.keys(s)]);const l=[];c.forEach((e=>{var n;u[e]===void 0&&(u[e]=d[e]);if(hasChanged(s[e],u[e])){(n=d[e])!==null&&n!==void 0?n:d[e]=I.get(i,e);l.push(animateStyle(i,e,u[e],a[e],t))}}));yield;const f=l.map((e=>e())).filter(Boolean);if(!f.length)return;const g=u;i.dispatchEvent(motionEvent(\"motionstart\",g));Promise.all(f.map((e=>e.finished))).then((()=>{i.dispatchEvent(motionEvent(\"motioncomplete\",g))})).catch(h)}const setGesture=(e,t)=>()=>{r[e]=t;scheduleAnimation(g)};const updateGestureSubscriptions=()=>{for(const t in ue){const n=ue[t].isActive(e);const o=a[t];if(n&&!o)a[t]=ue[t].subscribe(i,{enable:setGesture(t,true),disable:setGesture(t,false)},e);else if(!n&&o){o();delete a[t]}}};const g={update:t=>{if(i){e=t;updateGestureSubscriptions();scheduleAnimation(g)}},setActive:(e,t)=>{if(i){r[e]=t;scheduleAnimation(g)}},animateUpdates:animateUpdates,getDepth:()=>s,getTarget:()=>u,getOptions:()=>e,getContext:()=>c,mount:e=>{n(Boolean(e),\"Animation state must be mounted with valid Element\");i=e;ge.set(i,g);updateGestureSubscriptions();return()=>{ge.delete(i);unscheduleAnimation(g);for(const e in a)a[e]()}},isMounted:()=>Boolean(i)};return g}function createStyles(e){const t={};const n=[];for(let o in e){const i=e[o];if(isTransform(o)){M[o]&&(o=M[o]);n.push(o);o=asTransformCssVar(o)}let s=Array.isArray(i)?i[0]:i;const r=k.get(o);r&&(s=g(i)?r.toDefaultUnit(i):i);t[o]=s}n.length&&(t.transform=buildTransformTemplate(n));return t}const camelLetterToPipeLetter=e=>`-${e.toLowerCase()}`;const camelToPipeCase=e=>e.replace(/[A-Z]/g,camelLetterToPipeLetter);function createStyleString(e={}){const t=createStyles(e);let n=\"\";for(const e in t){n+=e.startsWith(\"--\")?e:camelToPipeCase(e);n+=`: ${t[e]}; `}return n}export{ee as ScrollOffset,F as animate,animateStyle,createAnimate,createMotionState,createStyleString,createStyles,getAnimationData,getStyleName,q as glide,inView$1 as inView,ge as mountedStates,resize,scroll,G as spring,stagger,I as style,timeline,withControls};\n//# sourceMappingURL=index.es.js.map\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useLayoutEffect,useEffect,useState,useRef,useMemo,useCallback,cloneElement,startTransition,forwardRef,useImperativeHandle}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useReducedMotion,LayoutGroup,useInView,useMotionValue,useTransform,motion,frame}from\"framer-motion\";import{resize}from\"@motionone/dom\";const MAX_DUPLICATED_ITEMS=100;const directionTransformers={left:offset=>`translateX(-${offset}px)`,right:offset=>`translateX(${offset}px)`,top:offset=>`translateY(-${offset}px)`,bottom:offset=>`translateY(${offset}px)`};/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Ticker(props){/* Props */let{slots=[],gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,speed,hoverFactor,direction,alignment,sizingOptions,fadeOptions,style}=props;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{widthType,heightType}=sizingOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/* Checks */const currentTarget=RenderTarget.current();const isCanvas=currentTarget===RenderTarget.canvas||currentTarget===RenderTarget.export;const writingDirection=useWritingDirection();// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const numChildren=Children.count(filteredSlots);const hasChildren=numChildren>0;const offset=useMotionValue(0);const resolvedDirection=getTickerResolvedDirection(direction===true?\"left\":direction,writingDirection);const isHorizontal=resolvedDirection===\"left\"||resolvedDirection===\"right\";const transformer=directionTransformers[resolvedDirection];const transform=useTransform(offset,transformer);/* Refs and State */const parentRef=useRef(null);const childrenRef=useMemo(()=>{return[{current:null},{current:null}];},[]);const[size,setSize]=useState({parent:null,children:null});/* Arrays */let clonedChildren=null;let dupedChildren=[];/* Duplicate value */let duplicateBy=0;let opacity=0;if(isCanvas){duplicateBy=numChildren?Math.floor(10/numChildren):0;opacity=1;}if(!isCanvas&&hasChildren&&size.parent){duplicateBy=Math.round(size.parent/size.children*2)+1;duplicateBy=Math.min(duplicateBy,MAX_DUPLICATED_ITEMS);opacity=1;}/* Measure parent and child */const measure=useCallback(()=>{if(hasChildren&&parentRef.current){const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const start=childrenRef[0].current?isHorizontal?childrenRef[0].current.offsetLeft:childrenRef[0].current.offsetTop:0;const end=childrenRef[1].current?isHorizontal?childrenRef[1].current.offsetLeft+childrenRef[1].current.offsetWidth:childrenRef[1].current.offsetTop+childrenRef[1].current.offsetHeight:0;const childrenLength=end-start+gap;startTransition(()=>{setSize({parent:parentLength,children:childrenLength});});}},[]);const childrenStyles=isCanvas?{contentVisibility:\"auto\"}:{};/* Add refs to first and last child */if(hasChildren){// TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\nif(!isCanvas){/**\n             * Track whether this is the initial resize event. By default this will fire on mount,\n             * which we do in the useEffect. We should only fire it on subsequent resizes.\n             */let initialResize=useRef(true);useLayoutEffect(()=>{frame.read(measure,false,true);return resize(parentRef.current,({contentSize})=>{if(!initialResize.current&&(contentSize.width||contentSize.height)){frame.read(measure,false,true);}initialResize.current=false;});},[]);}clonedChildren=Children.map(filteredSlots,(child,index)=>{let ref;if(index===0){ref=childrenRef[writingDirection===\"rtl\"&&isHorizontal?1:0];}if(index===filteredSlots.length-1){ref=childrenRef[writingDirection===\"rtl\"&&isHorizontal?0:1];}const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(Wrapper,{ref:ref,style:size,children:/*#__PURE__*/cloneElement(child,{style:{...child.props?.style,...size,flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined},child.props?.children)})});});}const isInView=isCanvas?true:useInView(parentRef);if(!isCanvas){for(let i=0;i<duplicateBy;i++){dupedChildren=dupedChildren.concat(Children.map(filteredSlots,(child,childIndex)=>{const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",willChange:!isInView?undefined:\"transform\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(Wrapper,{style:size,children:/*#__PURE__*/cloneElement(child,{key:i+\" \"+childIndex,style:{...child.props?.style,width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-dupe-\"+i:undefined},child.props?.children)},i+\"li\"+childIndex)},i+\"lg\"+childIndex);}));}}const animateToValue=size.children+size.children*Math.round(size.parent/size.children);const initialTime=useRef(null);const prevTime=useRef(null);const xOrY=useRef(0);const isHover=useRef(false);const isReducedMotion=useReducedMotion();const listRef=useRef(null);const animationRef=useRef(null);/**\n     * Setup animations\n     */if(!isCanvas){useEffect(()=>{if(isReducedMotion||!animateToValue||!speed){return;}animationRef.current=listRef.current.animate({transform:[transformer(0),transformer(animateToValue)]},{duration:Math.abs(animateToValue)/speed*1e3,iterations:Infinity,iterationStart:writingDirection===\"rtl\"?1:0,easing:\"linear\"});return()=>animationRef.current.cancel();},[hoverFactor,animateToValue,speed,writingDirection]);const playOrPause=useCallback(()=>{if(!animationRef.current)return;const hidden=document.hidden;if(isInView&&!hidden&&animationRef.current.playState===\"paused\"){animationRef.current.play();}else if((!isInView||hidden)&&animationRef.current.playState===\"running\"){animationRef.current.pause();}},[isInView]);useEffect(()=>{playOrPause();},[isInView,hoverFactor,animateToValue,speed]);useEffect(()=>{document.addEventListener(\"visibilitychange\",playOrPause);return()=>{document.removeEventListener(\"visibilitychange\",playOrPause);};},[playOrPause]);}/* Fades */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/* Empty state */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to infinitely loop on your page.\"})]});}return /*#__PURE__*/_jsx(\"section\",{style:{...containerStyle,opacity:opacity,WebkitMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,overflow:overflow?\"visible\":\"hidden\",padding:paddingValue},ref:parentRef,children:/*#__PURE__*/_jsxs(motion.ul,{ref:listRef,style:{...containerStyle,gap:gap,top:direction===\"bottom\"&&isValidNumber(animateToValue)?-animateToValue:undefined,left:direction===\"right\"&&isValidNumber(animateToValue)?animateToValue*(writingDirection===\"rtl\"?1:-1):undefined,placeItems:alignment,position:\"relative\",flexDirection:isHorizontal?\"row\":\"column\",...style,willChange:isCanvas||!isInView?\"auto\":\"transform\",transform:transformer(0)},onMouseEnter:()=>{isHover.current=true;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=hoverFactor;}},onMouseLeave:()=>{isHover.current=false;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=1;}},children:[clonedChildren,dupedChildren]})});}const Wrapper=/*#__PURE__*/forwardRef(({children,...props},ref)=>{const innerRef=useRef();const inView=useInView(innerRef);useImperativeHandle(ref,()=>innerRef.current);useEffect(()=>{const current=innerRef.current;if(!current)return;// for a11y: Manage tabIndex on focusable descendants & aria-hidden on the parent.\nif(inView){current.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.dataset.origTabIndex;if(orig)el.tabIndex=orig;else el.removeAttribute(\"tabIndex\");});}else{current.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.getAttribute(\"tabIndex\");if(orig)el.dataset.origTabIndex=orig;el.tabIndex=-1;});}},[inView]);return /*#__PURE__*/_jsx(\"li\",{...props,\"aria-hidden\":!inView,ref:innerRef,children:children});});/* Default Properties */Ticker.defaultProps={gap:10,padding:10,sizingOptions:{widthType:true,heightType:true},fadeOptions:{fadeContent:true,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},direction:true};/* Property Controls */addPropertyControls(Ticker,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:1e3,defaultValue:100,unit:\"%\",displayStepper:true,step:5},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],defaultValue:\"left\",displaySegmentedControl:true},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},sizingOptions:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true},heightType:{type:ControlType.Boolean,title:\"Height\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true}}},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},hoverFactor:{type:ControlType.Number,title:\"Hover\",min:0,max:1,unit:\"x\",defaultValue:1,step:.1,displayStepper:true,description:\"Slows down the speed while you are hovering.\"}});/* Placeholder Styles */const containerStyle={display:\"flex\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:150,lineHeight:1.5,textAlign:\"center\"};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);const isValidNumber=value=>typeof value===\"number\"&&!isNaN(value);function useWritingDirection(){if(!window||!window.document||!window.document.documentElement)return\"ltr\";return window.document.documentElement.dir===\"rtl\"?\"rtl\":\"ltr\";}function getTickerResolvedDirection(direction,writingDirection){if(writingDirection!==\"rtl\")return direction;if(direction===\"left\")return\"right\";if(direction===\"right\")return\"left\";return direction;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Ticker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Ticker.map","// package.json\nvar version = \"1.3.13\";\n\n// packages/core/src/maths.ts\nfunction clamp(min, input, max) {\n  return Math.max(min, Math.min(input, max));\n}\nfunction lerp(x, y, t) {\n  return (1 - t) * x + t * y;\n}\nfunction damp(x, y, lambda, deltaTime) {\n  return lerp(x, y, 1 - Math.exp(-lambda * deltaTime));\n}\nfunction modulo(n, d) {\n  return (n % d + d) % d;\n}\n\n// packages/core/src/animate.ts\nvar Animate = class {\n  isRunning = false;\n  value = 0;\n  from = 0;\n  to = 0;\n  currentTime = 0;\n  // These are instanciated in the fromTo method\n  lerp;\n  duration;\n  easing;\n  onUpdate;\n  /**\n   * Advance the animation by the given delta time\n   *\n   * @param deltaTime - The time in seconds to advance the animation\n   */\n  advance(deltaTime) {\n    if (!this.isRunning) return;\n    let completed = false;\n    if (this.duration && this.easing) {\n      this.currentTime += deltaTime;\n      const linearProgress = clamp(0, this.currentTime / this.duration, 1);\n      completed = linearProgress >= 1;\n      const easedProgress = completed ? 1 : this.easing(linearProgress);\n      this.value = this.from + (this.to - this.from) * easedProgress;\n    } else if (this.lerp) {\n      this.value = damp(this.value, this.to, this.lerp * 60, deltaTime);\n      if (Math.round(this.value) === this.to) {\n        this.value = this.to;\n        completed = true;\n      }\n    } else {\n      this.value = this.to;\n      completed = true;\n    }\n    if (completed) {\n      this.stop();\n    }\n    this.onUpdate?.(this.value, completed);\n  }\n  /** Stop the animation */\n  stop() {\n    this.isRunning = false;\n  }\n  /**\n   * Set up the animation from a starting value to an ending value\n   * with optional parameters for lerping, duration, easing, and onUpdate callback\n   *\n   * @param from - The starting value\n   * @param to - The ending value\n   * @param options - Options for the animation\n   */\n  fromTo(from, to, { lerp: lerp2, duration, easing, onStart, onUpdate }) {\n    this.from = this.value = from;\n    this.to = to;\n    this.lerp = lerp2;\n    this.duration = duration;\n    this.easing = easing;\n    this.currentTime = 0;\n    this.isRunning = true;\n    onStart?.();\n    this.onUpdate = onUpdate;\n  }\n};\n\n// packages/core/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    let context = this;\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(context, args);\n    }, delay);\n  };\n}\n\n// packages/core/src/dimensions.ts\nvar Dimensions = class {\n  constructor(wrapper, content, { autoResize = true, debounce: debounceValue = 250 } = {}) {\n    this.wrapper = wrapper;\n    this.content = content;\n    if (autoResize) {\n      this.debouncedResize = debounce(this.resize, debounceValue);\n      if (this.wrapper instanceof Window) {\n        window.addEventListener(\"resize\", this.debouncedResize, false);\n      } else {\n        this.wrapperResizeObserver = new ResizeObserver(this.debouncedResize);\n        this.wrapperResizeObserver.observe(this.wrapper);\n      }\n      this.contentResizeObserver = new ResizeObserver(this.debouncedResize);\n      this.contentResizeObserver.observe(this.content);\n    }\n    this.resize();\n  }\n  width = 0;\n  height = 0;\n  scrollHeight = 0;\n  scrollWidth = 0;\n  // These are instanciated in the constructor as they need information from the options\n  debouncedResize;\n  wrapperResizeObserver;\n  contentResizeObserver;\n  destroy() {\n    this.wrapperResizeObserver?.disconnect();\n    this.contentResizeObserver?.disconnect();\n    if (this.wrapper === window && this.debouncedResize) {\n      window.removeEventListener(\"resize\", this.debouncedResize, false);\n    }\n  }\n  resize = () => {\n    this.onWrapperResize();\n    this.onContentResize();\n  };\n  onWrapperResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.width = window.innerWidth;\n      this.height = window.innerHeight;\n    } else {\n      this.width = this.wrapper.clientWidth;\n      this.height = this.wrapper.clientHeight;\n    }\n  };\n  onContentResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.scrollHeight = this.content.scrollHeight;\n      this.scrollWidth = this.content.scrollWidth;\n    } else {\n      this.scrollHeight = this.wrapper.scrollHeight;\n      this.scrollWidth = this.wrapper.scrollWidth;\n    }\n  };\n  get limit() {\n    return {\n      x: this.scrollWidth - this.width,\n      y: this.scrollHeight - this.height\n    };\n  }\n};\n\n// packages/core/src/emitter.ts\nvar Emitter = class {\n  events = {};\n  /**\n   * Emit an event with the given data\n   * @param event Event name\n   * @param args Data to pass to the event handlers\n   */\n  emit(event, ...args) {\n    let callbacks = this.events[event] || [];\n    for (let i = 0, length = callbacks.length; i < length; i++) {\n      callbacks[i]?.(...args);\n    }\n  }\n  /**\n   * Add a callback to the event\n   * @param event Event name\n   * @param cb Callback function\n   * @returns Unsubscribe function\n   */\n  on(event, cb) {\n    this.events[event]?.push(cb) || (this.events[event] = [cb]);\n    return () => {\n      this.events[event] = this.events[event]?.filter((i) => cb !== i);\n    };\n  }\n  /**\n   * Remove a callback from the event\n   * @param event Event name\n   * @param callback Callback function\n   */\n  off(event, callback) {\n    this.events[event] = this.events[event]?.filter((i) => callback !== i);\n  }\n  /**\n   * Remove all event listeners and clean up\n   */\n  destroy() {\n    this.events = {};\n  }\n};\n\n// packages/core/src/virtual-scroll.ts\nvar LINE_HEIGHT = 100 / 6;\nvar listenerOptions = { passive: false };\nvar VirtualScroll = class {\n  constructor(element, options = { wheelMultiplier: 1, touchMultiplier: 1 }) {\n    this.element = element;\n    this.options = options;\n    window.addEventListener(\"resize\", this.onWindowResize, false);\n    this.onWindowResize();\n    this.element.addEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.addEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.addEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.addEventListener(\"touchend\", this.onTouchEnd, listenerOptions);\n  }\n  touchStart = {\n    x: 0,\n    y: 0\n  };\n  lastDelta = {\n    x: 0,\n    y: 0\n  };\n  window = {\n    width: 0,\n    height: 0\n  };\n  emitter = new Emitter();\n  /**\n   * Add an event listener for the given event and callback\n   *\n   * @param event Event name\n   * @param callback Callback function\n   */\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  /** Remove all event listeners and clean up */\n  destroy() {\n    this.emitter.destroy();\n    window.removeEventListener(\"resize\", this.onWindowResize, false);\n    this.element.removeEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.removeEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchend\",\n      this.onTouchEnd,\n      listenerOptions\n    );\n  }\n  /**\n   * Event handler for 'touchstart' event\n   *\n   * @param event Touch event\n   */\n  onTouchStart = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: 0,\n      y: 0\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX: 0,\n      deltaY: 0,\n      event\n    });\n  };\n  /** Event handler for 'touchmove' event */\n  onTouchMove = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    const deltaX = -(clientX - this.touchStart.x) * this.options.touchMultiplier;\n    const deltaY = -(clientY - this.touchStart.y) * this.options.touchMultiplier;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: deltaX,\n      y: deltaY\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX,\n      deltaY,\n      event\n    });\n  };\n  onTouchEnd = (event) => {\n    this.emitter.emit(\"scroll\", {\n      deltaX: this.lastDelta.x,\n      deltaY: this.lastDelta.y,\n      event\n    });\n  };\n  /** Event handler for 'wheel' event */\n  onWheel = (event) => {\n    let { deltaX, deltaY, deltaMode } = event;\n    const multiplierX = deltaMode === 1 ? LINE_HEIGHT : deltaMode === 2 ? this.window.width : 1;\n    const multiplierY = deltaMode === 1 ? LINE_HEIGHT : deltaMode === 2 ? this.window.height : 1;\n    deltaX *= multiplierX;\n    deltaY *= multiplierY;\n    deltaX *= this.options.wheelMultiplier;\n    deltaY *= this.options.wheelMultiplier;\n    this.emitter.emit(\"scroll\", { deltaX, deltaY, event });\n  };\n  onWindowResize = () => {\n    this.window = {\n      width: window.innerWidth,\n      height: window.innerHeight\n    };\n  };\n};\n\n// packages/core/src/lenis.ts\nvar defaultEasing = (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t));\nvar Lenis = class {\n  _isScrolling = false;\n  // true when scroll is animating\n  _isStopped = false;\n  // true if user should not be able to scroll - enable/disable programmatically\n  _isLocked = false;\n  // same as isStopped but enabled/disabled when scroll reaches target\n  _preventNextNativeScrollEvent = false;\n  _resetVelocityTimeout = null;\n  __rafID = null;\n  /**\n   * Whether or not the user is touching the screen\n   */\n  isTouching;\n  /**\n   * The time in ms since the lenis instance was created\n   */\n  time = 0;\n  /**\n   * User data that will be forwarded through the scroll event\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   userData: {\n   *     foo: 'bar'\n   *   }\n   * })\n   */\n  userData = {};\n  /**\n   * The last velocity of the scroll\n   */\n  lastVelocity = 0;\n  /**\n   * The current velocity of the scroll\n   */\n  velocity = 0;\n  /**\n   * The direction of the scroll\n   */\n  direction = 0;\n  /**\n   * The options passed to the lenis instance\n   */\n  options;\n  /**\n   * The target scroll value\n   */\n  targetScroll;\n  /**\n   * The animated scroll value\n   */\n  animatedScroll;\n  // These are instanciated here as they don't need information from the options\n  animate = new Animate();\n  emitter = new Emitter();\n  // These are instanciated in the constructor as they need information from the options\n  dimensions;\n  // This is not private because it's used in the Snap class\n  virtualScroll;\n  constructor({\n    wrapper = window,\n    content = document.documentElement,\n    eventsTarget = wrapper,\n    smoothWheel = true,\n    syncTouch = false,\n    syncTouchLerp = 0.075,\n    touchInertiaExponent = 1.7,\n    duration,\n    // in seconds\n    easing,\n    lerp: lerp2 = 0.1,\n    infinite = false,\n    orientation = \"vertical\",\n    // vertical, horizontal\n    gestureOrientation = orientation === \"horizontal\" ? \"both\" : \"vertical\",\n    // vertical, horizontal, both\n    touchMultiplier = 1,\n    wheelMultiplier = 1,\n    autoResize = true,\n    prevent,\n    virtualScroll,\n    overscroll = true,\n    autoRaf = false,\n    anchors = false,\n    autoToggle = false,\n    // https://caniuse.com/?search=transition-behavior\n    allowNestedScroll = false,\n    __experimental__naiveDimensions = false\n  } = {}) {\n    window.lenisVersion = version;\n    if (!wrapper || wrapper === document.documentElement) {\n      wrapper = window;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.options = {\n      wrapper,\n      content,\n      eventsTarget,\n      smoothWheel,\n      syncTouch,\n      syncTouchLerp,\n      touchInertiaExponent,\n      duration,\n      easing,\n      lerp: lerp2,\n      infinite,\n      gestureOrientation,\n      orientation,\n      touchMultiplier,\n      wheelMultiplier,\n      autoResize,\n      prevent,\n      virtualScroll,\n      overscroll,\n      autoRaf,\n      anchors,\n      autoToggle,\n      allowNestedScroll,\n      __experimental__naiveDimensions\n    };\n    this.dimensions = new Dimensions(wrapper, content, { autoResize });\n    this.updateClassName();\n    this.targetScroll = this.animatedScroll = this.actualScroll;\n    this.options.wrapper.addEventListener(\"scroll\", this.onNativeScroll, false);\n    this.options.wrapper.addEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    if (this.options.anchors && this.options.wrapper === window) {\n      this.options.wrapper.addEventListener(\n        \"click\",\n        this.onClick,\n        false\n      );\n    }\n    this.options.wrapper.addEventListener(\n      \"pointerdown\",\n      this.onPointerDown,\n      false\n    );\n    this.virtualScroll = new VirtualScroll(eventsTarget, {\n      touchMultiplier,\n      wheelMultiplier\n    });\n    this.virtualScroll.on(\"scroll\", this.onVirtualScroll);\n    if (this.options.autoToggle) {\n      this.rootElement.addEventListener(\"transitionend\", this.onTransitionEnd, {\n        passive: true\n      });\n    }\n    if (this.options.autoRaf) {\n      this.__rafID = requestAnimationFrame(this.raf);\n    }\n  }\n  /**\n   * Destroy the lenis instance, remove all event listeners and clean up the class name\n   */\n  destroy() {\n    this.emitter.destroy();\n    this.options.wrapper.removeEventListener(\n      \"scroll\",\n      this.onNativeScroll,\n      false\n    );\n    this.options.wrapper.removeEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    this.options.wrapper.removeEventListener(\n      \"pointerdown\",\n      this.onPointerDown,\n      false\n    );\n    if (this.options.anchors && this.options.wrapper === window) {\n      this.options.wrapper.removeEventListener(\n        \"click\",\n        this.onClick,\n        false\n      );\n    }\n    this.virtualScroll.destroy();\n    this.dimensions.destroy();\n    this.cleanUpClassName();\n    if (this.__rafID) {\n      cancelAnimationFrame(this.__rafID);\n    }\n  }\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  off(event, callback) {\n    return this.emitter.off(event, callback);\n  }\n  onScrollEnd = (e) => {\n    if (!(e instanceof CustomEvent)) {\n      if (this.isScrolling === \"smooth\" || this.isScrolling === false) {\n        e.stopPropagation();\n      }\n    }\n  };\n  dispatchScrollendEvent = () => {\n    this.options.wrapper.dispatchEvent(\n      new CustomEvent(\"scrollend\", {\n        bubbles: this.options.wrapper === window,\n        // cancelable: false,\n        detail: {\n          lenisScrollEnd: true\n        }\n      })\n    );\n  };\n  onTransitionEnd = (event) => {\n    if (event.propertyName.includes(\"overflow\")) {\n      const property = this.isHorizontal ? \"overflow-x\" : \"overflow-y\";\n      const overflow = getComputedStyle(this.rootElement)[property];\n      if ([\"hidden\", \"clip\"].includes(overflow)) {\n        this.internalStop();\n      } else {\n        this.internalStart();\n      }\n    }\n  };\n  setScroll(scroll) {\n    if (this.isHorizontal) {\n      this.options.wrapper.scrollTo({ left: scroll, behavior: \"instant\" });\n    } else {\n      this.options.wrapper.scrollTo({ top: scroll, behavior: \"instant\" });\n    }\n  }\n  onClick = (event) => {\n    const path = event.composedPath();\n    const anchor = path.find(\n      (node) => node instanceof HTMLAnchorElement && node.getAttribute(\"href\")?.includes(\"#\")\n    );\n    if (anchor) {\n      const href = anchor.getAttribute(\"href\");\n      if (href) {\n        const options = typeof this.options.anchors === \"object\" && this.options.anchors ? this.options.anchors : void 0;\n        const target = `#${href.split(\"#\")[1]}`;\n        this.scrollTo(target, options);\n      }\n    }\n  };\n  onPointerDown = (event) => {\n    if (event.button === 1) {\n      this.reset();\n    }\n  };\n  onVirtualScroll = (data) => {\n    if (typeof this.options.virtualScroll === \"function\" && this.options.virtualScroll(data) === false)\n      return;\n    const { deltaX, deltaY, event } = data;\n    this.emitter.emit(\"virtual-scroll\", { deltaX, deltaY, event });\n    if (event.ctrlKey) return;\n    if (event.lenisStopPropagation) return;\n    const isTouch = event.type.includes(\"touch\");\n    const isWheel = event.type.includes(\"wheel\");\n    this.isTouching = event.type === \"touchstart\" || event.type === \"touchmove\";\n    const isClickOrTap = deltaX === 0 && deltaY === 0;\n    const isTapToStop = this.options.syncTouch && isTouch && event.type === \"touchstart\" && isClickOrTap && !this.isStopped && !this.isLocked;\n    if (isTapToStop) {\n      this.reset();\n      return;\n    }\n    const isUnknownGesture = this.options.gestureOrientation === \"vertical\" && deltaY === 0 || this.options.gestureOrientation === \"horizontal\" && deltaX === 0;\n    if (isClickOrTap || isUnknownGesture) {\n      return;\n    }\n    let composedPath = event.composedPath();\n    composedPath = composedPath.slice(0, composedPath.indexOf(this.rootElement));\n    const prevent = this.options.prevent;\n    if (!!composedPath.find(\n      (node) => node instanceof HTMLElement && (typeof prevent === \"function\" && prevent?.(node) || node.hasAttribute?.(\"data-lenis-prevent\") || isTouch && node.hasAttribute?.(\"data-lenis-prevent-touch\") || isWheel && node.hasAttribute?.(\"data-lenis-prevent-wheel\") || this.options.allowNestedScroll && this.checkNestedScroll(node, { deltaX, deltaY }))\n    ))\n      return;\n    if (this.isStopped || this.isLocked) {\n      if (event.cancelable) {\n        event.preventDefault();\n      }\n      return;\n    }\n    const isSmooth = this.options.syncTouch && isTouch || this.options.smoothWheel && isWheel;\n    if (!isSmooth) {\n      this.isScrolling = \"native\";\n      this.animate.stop();\n      event.lenisStopPropagation = true;\n      return;\n    }\n    let delta = deltaY;\n    if (this.options.gestureOrientation === \"both\") {\n      delta = Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX;\n    } else if (this.options.gestureOrientation === \"horizontal\") {\n      delta = deltaX;\n    }\n    if (!this.options.overscroll || this.options.infinite || this.options.wrapper !== window && this.limit > 0 && (this.animatedScroll > 0 && this.animatedScroll < this.limit || this.animatedScroll === 0 && deltaY > 0 || this.animatedScroll === this.limit && deltaY < 0)) {\n      event.lenisStopPropagation = true;\n    }\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    const isSyncTouch = isTouch && this.options.syncTouch;\n    const isTouchEnd = isTouch && event.type === \"touchend\";\n    const hasTouchInertia = isTouchEnd;\n    if (hasTouchInertia) {\n      delta = Math.sign(this.velocity) * Math.pow(Math.abs(this.velocity), this.options.touchInertiaExponent);\n    }\n    this.scrollTo(this.targetScroll + delta, {\n      programmatic: false,\n      ...isSyncTouch ? {\n        lerp: hasTouchInertia ? this.options.syncTouchLerp : 1\n        // immediate: !hasTouchInertia,\n      } : {\n        lerp: this.options.lerp,\n        duration: this.options.duration,\n        easing: this.options.easing\n      }\n    });\n  };\n  /**\n   * Force lenis to recalculate the dimensions\n   */\n  resize() {\n    this.dimensions.resize();\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.emit();\n  }\n  emit() {\n    this.emitter.emit(\"scroll\", this);\n  }\n  onNativeScroll = () => {\n    if (this._resetVelocityTimeout !== null) {\n      clearTimeout(this._resetVelocityTimeout);\n      this._resetVelocityTimeout = null;\n    }\n    if (this._preventNextNativeScrollEvent) {\n      this._preventNextNativeScrollEvent = false;\n      return;\n    }\n    if (this.isScrolling === false || this.isScrolling === \"native\") {\n      const lastScroll = this.animatedScroll;\n      this.animatedScroll = this.targetScroll = this.actualScroll;\n      this.lastVelocity = this.velocity;\n      this.velocity = this.animatedScroll - lastScroll;\n      this.direction = Math.sign(\n        this.animatedScroll - lastScroll\n      );\n      if (!this.isStopped) {\n        this.isScrolling = \"native\";\n      }\n      this.emit();\n      if (this.velocity !== 0) {\n        this._resetVelocityTimeout = setTimeout(() => {\n          this.lastVelocity = this.velocity;\n          this.velocity = 0;\n          this.isScrolling = false;\n          this.emit();\n        }, 400);\n      }\n    }\n  };\n  reset() {\n    this.isLocked = false;\n    this.isScrolling = false;\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.lastVelocity = this.velocity = 0;\n    this.animate.stop();\n  }\n  /**\n   * Start lenis scroll after it has been stopped\n   */\n  start() {\n    if (!this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.removeProperty(\"overflow\");\n      return;\n    }\n    this.internalStart();\n  }\n  internalStart() {\n    if (!this.isStopped) return;\n    this.reset();\n    this.isStopped = false;\n    this.emit();\n  }\n  /**\n   * Stop lenis scroll\n   */\n  stop() {\n    if (this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.setProperty(\"overflow\", \"clip\");\n      return;\n    }\n    this.internalStop();\n  }\n  internalStop() {\n    if (this.isStopped) return;\n    this.reset();\n    this.isStopped = true;\n    this.emit();\n  }\n  /**\n   * RequestAnimationFrame for lenis\n   *\n   * @param time The time in ms from an external clock like `requestAnimationFrame` or Tempus\n   */\n  raf = (time) => {\n    const deltaTime = time - (this.time || time);\n    this.time = time;\n    this.animate.advance(deltaTime * 1e-3);\n    if (this.options.autoRaf) {\n      this.__rafID = requestAnimationFrame(this.raf);\n    }\n  };\n  /**\n   * Scroll to a target value\n   *\n   * @param target The target value to scroll to\n   * @param options The options for the scroll\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   offset: 100,\n   *   duration: 1,\n   *   easing: (t) => 1 - Math.cos((t * Math.PI) / 2),\n   *   lerp: 0.1,\n   *   onStart: () => {\n   *     console.log('onStart')\n   *   },\n   *   onComplete: () => {\n   *     console.log('onComplete')\n   *   },\n   * })\n   */\n  scrollTo(target, {\n    offset = 0,\n    immediate = false,\n    lock = false,\n    duration = this.options.duration,\n    easing = this.options.easing,\n    lerp: lerp2 = this.options.lerp,\n    onStart,\n    onComplete,\n    force = false,\n    // scroll even if stopped\n    programmatic = true,\n    // called from outside of the class\n    userData\n  } = {}) {\n    if ((this.isStopped || this.isLocked) && !force) return;\n    if (typeof target === \"string\" && [\"top\", \"left\", \"start\", \"#\"].includes(target)) {\n      target = 0;\n    } else if (typeof target === \"string\" && [\"bottom\", \"right\", \"end\"].includes(target)) {\n      target = this.limit;\n    } else {\n      let node;\n      if (typeof target === \"string\") {\n        node = document.querySelector(target);\n        if (!node) {\n          if (target === \"#top\") {\n            target = 0;\n          } else {\n            console.warn(\"Lenis: Target not found\", target);\n          }\n        }\n      } else if (target instanceof HTMLElement && target?.nodeType) {\n        node = target;\n      }\n      if (node) {\n        if (this.options.wrapper !== window) {\n          const wrapperRect = this.rootElement.getBoundingClientRect();\n          offset -= this.isHorizontal ? wrapperRect.left : wrapperRect.top;\n        }\n        const rect = node.getBoundingClientRect();\n        target = (this.isHorizontal ? rect.left : rect.top) + this.animatedScroll;\n      }\n    }\n    if (typeof target !== \"number\") return;\n    target += offset;\n    target = Math.round(target);\n    if (this.options.infinite) {\n      if (programmatic) {\n        this.targetScroll = this.animatedScroll = this.scroll;\n        const distance = target - this.animatedScroll;\n        if (distance > this.limit / 2) {\n          target = target - this.limit;\n        } else if (distance < -this.limit / 2) {\n          target = target + this.limit;\n        }\n      }\n    } else {\n      target = clamp(0, target, this.limit);\n    }\n    if (target === this.targetScroll) {\n      onStart?.(this);\n      onComplete?.(this);\n      return;\n    }\n    this.userData = userData ?? {};\n    if (immediate) {\n      this.animatedScroll = this.targetScroll = target;\n      this.setScroll(this.scroll);\n      this.reset();\n      this.preventNextNativeScrollEvent();\n      this.emit();\n      onComplete?.(this);\n      this.userData = {};\n      requestAnimationFrame(() => {\n        this.dispatchScrollendEvent();\n      });\n      return;\n    }\n    if (!programmatic) {\n      this.targetScroll = target;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.animate.fromTo(this.animatedScroll, target, {\n      duration,\n      easing,\n      lerp: lerp2,\n      onStart: () => {\n        if (lock) this.isLocked = true;\n        this.isScrolling = \"smooth\";\n        onStart?.(this);\n      },\n      onUpdate: (value, completed) => {\n        this.isScrolling = \"smooth\";\n        this.lastVelocity = this.velocity;\n        this.velocity = value - this.animatedScroll;\n        this.direction = Math.sign(this.velocity);\n        this.animatedScroll = value;\n        this.setScroll(this.scroll);\n        if (programmatic) {\n          this.targetScroll = value;\n        }\n        if (!completed) this.emit();\n        if (completed) {\n          this.reset();\n          this.emit();\n          onComplete?.(this);\n          this.userData = {};\n          requestAnimationFrame(() => {\n            this.dispatchScrollendEvent();\n          });\n          this.preventNextNativeScrollEvent();\n        }\n      }\n    });\n  }\n  preventNextNativeScrollEvent() {\n    this._preventNextNativeScrollEvent = true;\n    requestAnimationFrame(() => {\n      this._preventNextNativeScrollEvent = false;\n    });\n  }\n  checkNestedScroll(node, { deltaX, deltaY }) {\n    const time = Date.now();\n    const cache = node._lenis ??= {};\n    let hasOverflowX, hasOverflowY, isScrollableX, isScrollableY, scrollWidth, scrollHeight, clientWidth, clientHeight;\n    const gestureOrientation = this.options.gestureOrientation;\n    if (time - (cache.time ?? 0) > 2e3) {\n      cache.time = Date.now();\n      const computedStyle = window.getComputedStyle(node);\n      cache.computedStyle = computedStyle;\n      const overflowXString = computedStyle.overflowX;\n      const overflowYString = computedStyle.overflowY;\n      hasOverflowX = [\"auto\", \"overlay\", \"scroll\"].includes(overflowXString);\n      hasOverflowY = [\"auto\", \"overlay\", \"scroll\"].includes(overflowYString);\n      cache.hasOverflowX = hasOverflowX;\n      cache.hasOverflowY = hasOverflowY;\n      if (!hasOverflowX && !hasOverflowY) return false;\n      if (gestureOrientation === \"vertical\" && !hasOverflowY) return false;\n      if (gestureOrientation === \"horizontal\" && !hasOverflowX) return false;\n      scrollWidth = node.scrollWidth;\n      scrollHeight = node.scrollHeight;\n      clientWidth = node.clientWidth;\n      clientHeight = node.clientHeight;\n      isScrollableX = scrollWidth > clientWidth;\n      isScrollableY = scrollHeight > clientHeight;\n      cache.isScrollableX = isScrollableX;\n      cache.isScrollableY = isScrollableY;\n      cache.scrollWidth = scrollWidth;\n      cache.scrollHeight = scrollHeight;\n      cache.clientWidth = clientWidth;\n      cache.clientHeight = clientHeight;\n    } else {\n      isScrollableX = cache.isScrollableX;\n      isScrollableY = cache.isScrollableY;\n      hasOverflowX = cache.hasOverflowX;\n      hasOverflowY = cache.hasOverflowY;\n      scrollWidth = cache.scrollWidth;\n      scrollHeight = cache.scrollHeight;\n      clientWidth = cache.clientWidth;\n      clientHeight = cache.clientHeight;\n    }\n    if (!hasOverflowX && !hasOverflowY || !isScrollableX && !isScrollableY) {\n      return false;\n    }\n    if (gestureOrientation === \"vertical\" && (!hasOverflowY || !isScrollableY))\n      return false;\n    if (gestureOrientation === \"horizontal\" && (!hasOverflowX || !isScrollableX))\n      return false;\n    let orientation;\n    if (gestureOrientation === \"horizontal\") {\n      orientation = \"x\";\n    } else if (gestureOrientation === \"vertical\") {\n      orientation = \"y\";\n    } else {\n      const isScrollingX = deltaX !== 0;\n      const isScrollingY = deltaY !== 0;\n      if (isScrollingX && hasOverflowX && isScrollableX) {\n        orientation = \"x\";\n      }\n      if (isScrollingY && hasOverflowY && isScrollableY) {\n        orientation = \"y\";\n      }\n    }\n    if (!orientation) return false;\n    let scroll, maxScroll, delta, hasOverflow, isScrollable;\n    if (orientation === \"x\") {\n      scroll = node.scrollLeft;\n      maxScroll = scrollWidth - clientWidth;\n      delta = deltaX;\n      hasOverflow = hasOverflowX;\n      isScrollable = isScrollableX;\n    } else if (orientation === \"y\") {\n      scroll = node.scrollTop;\n      maxScroll = scrollHeight - clientHeight;\n      delta = deltaY;\n      hasOverflow = hasOverflowY;\n      isScrollable = isScrollableY;\n    } else {\n      return false;\n    }\n    const willScroll = delta > 0 ? scroll < maxScroll : scroll > 0;\n    return willScroll && hasOverflow && isScrollable;\n  }\n  /**\n   * The root element on which lenis is instanced\n   */\n  get rootElement() {\n    return this.options.wrapper === window ? document.documentElement : this.options.wrapper;\n  }\n  /**\n   * The limit which is the maximum scroll value\n   */\n  get limit() {\n    if (this.options.__experimental__naiveDimensions) {\n      if (this.isHorizontal) {\n        return this.rootElement.scrollWidth - this.rootElement.clientWidth;\n      } else {\n        return this.rootElement.scrollHeight - this.rootElement.clientHeight;\n      }\n    } else {\n      return this.dimensions.limit[this.isHorizontal ? \"x\" : \"y\"];\n    }\n  }\n  /**\n   * Whether or not the scroll is horizontal\n   */\n  get isHorizontal() {\n    return this.options.orientation === \"horizontal\";\n  }\n  /**\n   * The actual scroll value\n   */\n  get actualScroll() {\n    const wrapper = this.options.wrapper;\n    return this.isHorizontal ? wrapper.scrollX ?? wrapper.scrollLeft : wrapper.scrollY ?? wrapper.scrollTop;\n  }\n  /**\n   * The current scroll value\n   */\n  get scroll() {\n    return this.options.infinite ? modulo(this.animatedScroll, this.limit) : this.animatedScroll;\n  }\n  /**\n   * The progress of the scroll relative to the limit\n   */\n  get progress() {\n    return this.limit === 0 ? 1 : this.scroll / this.limit;\n  }\n  /**\n   * Current scroll state\n   */\n  get isScrolling() {\n    return this._isScrolling;\n  }\n  set isScrolling(value) {\n    if (this._isScrolling !== value) {\n      this._isScrolling = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is stopped\n   */\n  get isStopped() {\n    return this._isStopped;\n  }\n  set isStopped(value) {\n    if (this._isStopped !== value) {\n      this._isStopped = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is locked\n   */\n  get isLocked() {\n    return this._isLocked;\n  }\n  set isLocked(value) {\n    if (this._isLocked !== value) {\n      this._isLocked = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is smooth scrolling\n   */\n  get isSmooth() {\n    return this.isScrolling === \"smooth\";\n  }\n  /**\n   * The class name applied to the wrapper element\n   */\n  get className() {\n    let className = \"lenis\";\n    if (this.options.autoToggle) className += \" lenis-autoToggle\";\n    if (this.isStopped) className += \" lenis-stopped\";\n    if (this.isLocked) className += \" lenis-locked\";\n    if (this.isScrolling) className += \" lenis-scrolling\";\n    if (this.isScrolling === \"smooth\") className += \" lenis-smooth\";\n    return className;\n  }\n  updateClassName() {\n    this.cleanUpClassName();\n    this.rootElement.className = `${this.rootElement.className} ${this.className}`.trim();\n  }\n  cleanUpClassName() {\n    this.rootElement.className = this.rootElement.className.replace(/lenis(-\\w+)?/g, \"\").trim();\n  }\n};\nexport {\n  Lenis as default\n};\n//# sourceMappingURL=lenis.mjs.map","// packages/snap/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    let context = this;\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(context, args);\n    }, delay);\n  };\n}\n\n// packages/snap/src/element.ts\nfunction removeParentSticky(element) {\n  const position = getComputedStyle(element).position;\n  const isSticky = position === \"sticky\";\n  if (isSticky) {\n    element.style.setProperty(\"position\", \"static\");\n    element.dataset.sticky = \"true\";\n  }\n  if (element.offsetParent) {\n    removeParentSticky(element.offsetParent);\n  }\n}\nfunction addParentSticky(element) {\n  if (element?.dataset?.sticky === \"true\") {\n    element.style.removeProperty(\"position\");\n    delete element.dataset.sticky;\n  }\n  if (element.offsetParent) {\n    addParentSticky(element.offsetParent);\n  }\n}\nfunction offsetTop(element, accumulator = 0) {\n  const top = accumulator + element.offsetTop;\n  if (element.offsetParent) {\n    return offsetTop(element.offsetParent, top);\n  }\n  return top;\n}\nfunction offsetLeft(element, accumulator = 0) {\n  const left = accumulator + element.offsetLeft;\n  if (element.offsetParent) {\n    return offsetLeft(element.offsetParent, left);\n  }\n  return left;\n}\nfunction scrollTop(element, accumulator = 0) {\n  const top = accumulator + element.scrollTop;\n  if (element.offsetParent) {\n    return scrollTop(element.offsetParent, top);\n  }\n  return top + window.scrollY;\n}\nfunction scrollLeft(element, accumulator = 0) {\n  const left = accumulator + element.scrollLeft;\n  if (element.offsetParent) {\n    return scrollLeft(element.offsetParent, left);\n  }\n  return left + window.scrollX;\n}\nvar SnapElement = class {\n  element;\n  options;\n  align;\n  // @ts-ignore\n  rect = {};\n  wrapperResizeObserver;\n  resizeObserver;\n  debouncedWrapperResize;\n  constructor(element, {\n    align = [\"start\"],\n    ignoreSticky = true,\n    ignoreTransform = false\n  } = {}) {\n    this.element = element;\n    this.options = { align, ignoreSticky, ignoreTransform };\n    this.align = [align].flat();\n    this.debouncedWrapperResize = debounce(this.onWrapperResize, 500);\n    this.wrapperResizeObserver = new ResizeObserver(this.debouncedWrapperResize);\n    this.wrapperResizeObserver.observe(document.body);\n    this.onWrapperResize();\n    this.resizeObserver = new ResizeObserver(this.onResize);\n    this.resizeObserver.observe(this.element);\n    this.setRect({\n      width: this.element.offsetWidth,\n      height: this.element.offsetHeight\n    });\n  }\n  destroy() {\n    this.wrapperResizeObserver.disconnect();\n    this.resizeObserver.disconnect();\n  }\n  setRect({\n    top,\n    left,\n    width,\n    height,\n    element\n  } = {}) {\n    top = top ?? this.rect.top;\n    left = left ?? this.rect.left;\n    width = width ?? this.rect.width;\n    height = height ?? this.rect.height;\n    element = element ?? this.rect.element;\n    if (top === this.rect.top && left === this.rect.left && width === this.rect.width && height === this.rect.height && element === this.rect.element)\n      return;\n    this.rect.top = top;\n    this.rect.y = top;\n    this.rect.width = width;\n    this.rect.height = height;\n    this.rect.left = left;\n    this.rect.x = left;\n    this.rect.bottom = top + height;\n    this.rect.right = left + width;\n  }\n  onWrapperResize = () => {\n    let top, left;\n    if (this.options.ignoreSticky) removeParentSticky(this.element);\n    if (this.options.ignoreTransform) {\n      top = offsetTop(this.element);\n      left = offsetLeft(this.element);\n    } else {\n      const rect = this.element.getBoundingClientRect();\n      top = rect.top + scrollTop(this.element);\n      left = rect.left + scrollLeft(this.element);\n    }\n    if (this.options.ignoreSticky) addParentSticky(this.element);\n    this.setRect({ top, left });\n  };\n  onResize = ([entry]) => {\n    if (!entry?.borderBoxSize[0]) return;\n    const width = entry.borderBoxSize[0].inlineSize;\n    const height = entry.borderBoxSize[0].blockSize;\n    this.setRect({ width, height });\n  };\n};\n\n// packages/snap/src/uid.ts\nvar index = 0;\nfunction uid() {\n  return index++;\n}\n\n// packages/snap/src/snap.ts\nvar Snap = class {\n  constructor(lenis, {\n    type = \"proximity\",\n    lerp,\n    easing,\n    duration,\n    distanceThreshold = \"50%\",\n    // useless when type is \"mandatory\"\n    debounce: debounceDelay = 500,\n    onSnapStart,\n    onSnapComplete\n  } = {}) {\n    this.lenis = lenis;\n    this.options = {\n      type,\n      lerp,\n      easing,\n      duration,\n      distanceThreshold,\n      debounce: debounceDelay,\n      onSnapStart,\n      onSnapComplete\n    };\n    this.onWindowResize();\n    window.addEventListener(\"resize\", this.onWindowResize, false);\n    this.onSnapDebounced = debounce(this.onSnap, this.options.debounce);\n    this.lenis.on(\"virtual-scroll\", this.onSnapDebounced);\n  }\n  options;\n  elements = /* @__PURE__ */ new Map();\n  snaps = /* @__PURE__ */ new Map();\n  viewport = {\n    width: window.innerWidth,\n    height: window.innerHeight\n  };\n  isStopped = false;\n  onSnapDebounced;\n  currentSnapIndex;\n  /**\n   * Destroy the snap instance\n   */\n  destroy() {\n    this.lenis.off(\"virtual-scroll\", this.onSnapDebounced);\n    window.removeEventListener(\"resize\", this.onWindowResize, false);\n    this.elements.forEach((element) => element.destroy());\n  }\n  /**\n   * Start the snap after it has been stopped\n   */\n  start() {\n    this.isStopped = false;\n  }\n  /**\n   * Stop the snap\n   */\n  stop() {\n    this.isStopped = true;\n  }\n  /**\n   * Add a snap to the snap instance\n   *\n   * @param value The value to snap to\n   * @param userData User data that will be forwarded through the snap event\n   * @returns Unsubscribe function\n   */\n  add(value) {\n    const id = uid();\n    this.snaps.set(id, { value });\n    return () => this.snaps.delete(id);\n  }\n  /**\n   * Add an element to the snap instance\n   *\n   * @param element The element to add\n   * @param options The options for the element\n   * @returns Unsubscribe function\n   */\n  addElement(element, options = {}) {\n    const id = uid();\n    this.elements.set(id, new SnapElement(element, options));\n    return () => this.elements.delete(id);\n  }\n  addElements(elements, options = {}) {\n    const map = elements.map((element) => this.addElement(element, options));\n    return () => {\n      map.forEach((remove) => {\n        remove();\n      });\n    };\n  }\n  onWindowResize = () => {\n    this.viewport.width = window.innerWidth;\n    this.viewport.height = window.innerHeight;\n  };\n  computeSnaps = () => {\n    const { isHorizontal } = this.lenis;\n    let snaps = [...this.snaps.values()];\n    this.elements.forEach(({ rect, align }) => {\n      let value;\n      align.forEach((align2) => {\n        if (align2 === \"start\") {\n          value = rect.top;\n        } else if (align2 === \"center\") {\n          value = isHorizontal ? rect.left + rect.width / 2 - this.viewport.width / 2 : rect.top + rect.height / 2 - this.viewport.height / 2;\n        } else if (align2 === \"end\") {\n          value = isHorizontal ? rect.left + rect.width - this.viewport.width : rect.top + rect.height - this.viewport.height;\n        }\n        if (typeof value === \"number\") {\n          snaps.push({ value: Math.ceil(value) });\n        }\n      });\n    });\n    snaps = snaps.sort((a, b) => Math.abs(a.value) - Math.abs(b.value));\n    return snaps;\n  };\n  previous() {\n    this.goTo((this.currentSnapIndex ?? 0) - 1);\n  }\n  next() {\n    this.goTo((this.currentSnapIndex ?? 0) + 1);\n  }\n  goTo(index2) {\n    const snaps = this.computeSnaps();\n    if (snaps.length === 0) return;\n    this.currentSnapIndex = Math.max(0, Math.min(index2, snaps.length - 1));\n    const currentSnap = snaps[this.currentSnapIndex];\n    if (currentSnap === void 0) return;\n    this.lenis.scrollTo(currentSnap.value, {\n      duration: this.options.duration,\n      easing: this.options.easing,\n      lerp: this.options.lerp,\n      lock: this.options.type === \"lock\",\n      userData: { initiator: \"snap\" },\n      onStart: () => {\n        this.options.onSnapStart?.({\n          index: this.currentSnapIndex,\n          ...currentSnap\n        });\n      },\n      onComplete: () => {\n        this.options.onSnapComplete?.({\n          index: this.currentSnapIndex,\n          ...currentSnap\n        });\n      }\n    });\n  }\n  get distanceThreshold() {\n    let distanceThreshold = Infinity;\n    if (this.options.type === \"mandatory\") return Infinity;\n    const { isHorizontal } = this.lenis;\n    const axis = isHorizontal ? \"width\" : \"height\";\n    if (typeof this.options.distanceThreshold === \"string\" && this.options.distanceThreshold.endsWith(\"%\")) {\n      distanceThreshold = Number(this.options.distanceThreshold.replace(\"%\", \"\")) / 100 * this.viewport[axis];\n    } else if (typeof this.options.distanceThreshold === \"number\") {\n      distanceThreshold = this.options.distanceThreshold;\n    } else {\n      distanceThreshold = this.viewport[axis];\n    }\n    return distanceThreshold;\n  }\n  onSnap = (e) => {\n    if (this.isStopped) return;\n    if (e.event.type === \"touchmove\") return;\n    if (this.options.type === \"lock\" && this.lenis.userData?.initiator === \"snap\")\n      return;\n    let { scroll, isHorizontal } = this.lenis;\n    const delta = isHorizontal ? e.deltaX : e.deltaY;\n    scroll = Math.ceil(this.lenis.scroll + delta);\n    const snaps = this.computeSnaps();\n    if (snaps.length === 0) return;\n    let snapIndex;\n    const prevSnapIndex = snaps.findLastIndex(({ value }) => value < scroll);\n    const nextSnapIndex = snaps.findIndex(({ value }) => value > scroll);\n    if (this.options.type === \"lock\") {\n      if (delta > 0) {\n        snapIndex = nextSnapIndex;\n      } else if (delta < 0) {\n        snapIndex = prevSnapIndex;\n      }\n    } else {\n      const prevSnap = snaps[prevSnapIndex];\n      const distanceToPrevSnap = prevSnap ? Math.abs(scroll - prevSnap.value) : Infinity;\n      const nextSnap = snaps[nextSnapIndex];\n      const distanceToNextSnap = nextSnap ? Math.abs(scroll - nextSnap.value) : Infinity;\n      snapIndex = distanceToPrevSnap < distanceToNextSnap ? prevSnapIndex : nextSnapIndex;\n    }\n    if (snapIndex === void 0) return;\n    if (snapIndex === -1) return;\n    snapIndex = Math.max(0, Math.min(snapIndex, snaps.length - 1));\n    const snap = snaps[snapIndex];\n    const distance = Math.abs(scroll - snap.value);\n    if (distance <= this.distanceThreshold) {\n      this.goTo(snapIndex);\n    }\n  };\n  resize() {\n    this.elements.forEach((element) => element.onWrapperResize());\n  }\n};\nexport {\n  Snap as default\n};\n//# sourceMappingURL=lenis-snap.mjs.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"https://unpkg.com/lenis@1.3.13/dist/lenis.mjs\";import Snap from\"https://unpkg.com/lenis@1.3.13/dist/lenis-snap.mjs\";import{useEffect,useRef,Children,isValidElement,cloneElement}from\"react\";/**\n * @framerSupportedLayoutHeight any\n * @framerSupportedLayoutWidth any\n * @framerDisableUnlink\n */export default function Component({smooth,easing,infinite,orientation,intensity,children,snap}){const wrapperRef=useRef();const contentRef=useRef();useEffect(()=>{if(children&&(!wrapperRef.current||!contentRef.current))return;if(wrapperRef.current&&contentRef.current){if(orientation===\"horizontal\"){wrapperRef.current.style.setProperty(\"overflowX\",\"auto\");}else{wrapperRef.current.style.setProperty(\"overflowY\",\"auto\");}}const lenis=new Lenis({smoothWheel:smooth,duration:intensity/10,infinite,orientation,gestureOrientation:orientation===\"horizontal\"?\"both\":\"vertical\",autoRaf:true,autoToggle:true,anchors:true,allowNestedScroll:true,wrapper:wrapperRef.current,content:contentRef.current,syncTouch:Boolean(infinite)||orientation===\"horizontal\"});let lenisSnap;if(snap&&snap.snaps.length>0){lenisSnap=new Snap(lenis,{type:snap.type,distanceThreshold:snap.threshold+\"%\"});snap.snaps.forEach(item=>{if(!item.target?.current)return;const id=item.target.current.id;// workaround when content is duplicated by LenisSeamlessInfinite\nconst elements=document.querySelectorAll(`#${id}`);elements.forEach(element=>{lenisSnap.addElement(element,{align:item.align});});});}window.lenis=lenis;window.lenisSnap=snap;return()=>{lenis.destroy();if(lenisSnap)lenisSnap.destroy();};},[children]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"link\",{href:\"https://unpkg.com/lenis@1.3.8/dist/lenis.css\",rel:\"stylesheet\"}),children&&/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:orientation===\"horizontal\"?{overflowX:\"auto\",width:\"100%\"}:{overflowY:\"auto\",height:\"100%\"},children:/*#__PURE__*/_jsx(\"div\",{ref:contentRef,style:{width:\"100%\"},children:Children.map(children,child=>/*#__PURE__*/isValidElement(child)?/*#__PURE__*/cloneElement(child,{style:{...child.props.style,width:\"100%\"}}):child)})})})]});}Component.displayName=\"Lenis\";addPropertyControls(Component,{smooth:{type:ControlType.Boolean,title:\"Smooth\",defaultValue:true},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:12,step:1,min:1,max:100,hidden(props){return props.smooth===false;}},infinite:{type:ControlType.Boolean,title:\"Infinite\",defaultValue:false,hidden(props){return props.smooth===false;}},orientation:{type:ControlType.Enum,defaultValue:\"Vertical\",displaySegmentedControl:true,options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],hidden(props){return props.smooth===false;}},children:{type:ControlType.ComponentInstance,title:\"Content\"},snap:{type:ControlType.Object,optional:true,description:\"Cooked and served by [darkroom.engineering](https://darkroom.engineering).\",controls:{type:{type:ControlType.Enum,defaultValue:\"proximity\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",options:[\"proximity\",\"mandatory\",\"lock\"],optionTitles:[\"Proximity\",\"Mandatory\",\"Lock\"]},threshold:{type:ControlType.Number,defaultValue:50,min:0,max:100,unit:\"%\",hidden:props=>{return props.snap.type===\"mandatory\";}},snaps:{type:ControlType.Array,control:{type:ControlType.Object,controls:{target:{title:\"Target\",type:ControlType.ScrollSectionRef},align:{type:ControlType.Enum,defaultValue:\"center\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"start\",\"center\",\"end\"],optionIcons:[\"align-top\",\"align-middle\",\"align-bottom\"]}}}}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Component\",\"slots\":[\"children\"],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lenis.map","// Image Wheel Component\n// Displays all images in a circular wheel layout, not a carousel, with 3D tilt and push-down effect\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo,useState}from\"react\";/**\n * Image Wheel\n * @framerDisableUnlink\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ImageWheel(props){const{children,wheelRadius=140,itemWidth=80,itemHeight=80,style}=props;const items=Array.isArray(children)?children:children?[children]:[];const count=items.length;const angleStep=count>0?2*Math.PI/count:0;const rotateItems=true;// Calculate required size\nconst size=Math.ceil(wheelRadius*2+Math.max(itemWidth,itemHeight));const center=useMemo(()=>({x:size/2,y:size/2}),[size]);// Flipping effect state\nconst[hoveredIndex,setHoveredIndex]=useState(null);const maxFlip=180// degrees (fixed)\n;const maxRise=-(props.raiseAmount??40)// px (now user controlled)\n;// effectFalloff: 0 = only hovered, 1 = half of items affected\nconst effectFalloff=props.effectFalloff??.5;// maxDistance is half the total items when effectFalloff=1, 0 when effectFalloff=0\nconst maxDistance=effectFalloff===0?0:Math.floor(count/2*effectFalloff);const perspective=1200;const animationDuration=props.animationDuration??500;const animationEasing=props.animationEasing??\"cubic-bezier(.22,1,.36,1)\";// For smoothness: track mouse over the wheel and update hoveredIndex to closest item\nconst wheelRef=useState(()=>({current:null}))[0];// 3D tilt state\nconst[tilt,setTilt]=useState({x:0,y:0,z:0});const maxTilt=props.tiltStrength??20// degrees\n;const maxPush=40// px, how much the wheel \"sinks\" under the cursor\n;const enableTilt=props.enableTilt??true;function getClosestIndexFromMouse(e){if(!wheelRef.current)return null;const rect=wheelRef.current.getBoundingClientRect();const mouseX=e.clientX-rect.left;const mouseY=e.clientY-rect.top;const dx=mouseX-center.x;const dy=mouseY-center.y;const angle=Math.atan2(dy,dx);let idx=Math.round((angle+Math.PI/2)/(2*Math.PI)*count);idx=(idx%count+count)%count;return idx;}function handleMouseMove(e){const idx=getClosestIndexFromMouse(e);if(idx!==null)setHoveredIndex(idx);// 3D tilt with push-down effect\nif(enableTilt&&wheelRef.current){const rect=wheelRef.current.getBoundingClientRect();const mouseX=e.clientX-rect.left;const mouseY=e.clientY-rect.top;const relX=(mouseX-center.x)/(size/2);const relY=(mouseY-center.y)/(size/2);// Clamp between -1 and 1\nconst clamp=v=>Math.max(-1,Math.min(1,v));const cx=clamp(relX);const cy=clamp(relY);// Distance from center (0 at center, 1 at edge)\nconst dist=Math.sqrt(cx*cx+cy*cy);// Push down is strongest at cursor, falls off radially\nconst z=-maxPush*(1-Math.max(0,Math.min(1,dist)));setTilt({x:cy*maxTilt,y:-cx*maxTilt,z});}else if(!enableTilt){setTilt({x:0,y:0,z:0});}}function handleMouseLeave(){setHoveredIndex(null);setTilt({x:0,y:0,z:0});}return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:style&&style.width===\"100%\"?\"100%\":size,height:style&&style.height===\"100%\"?\"100%\":size,position:\"relative\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",overflow:\"visible\"},onMouseMove:handleMouseMove,onMouseLeave:handleMouseLeave,children:/*#__PURE__*/_jsx(\"div\",{ref:wheelRef,style:{width:size,height:size,position:\"absolute\",left:\"50%\",top:\"50%\",transform:`translate(-50%, -50%) rotateX(${enableTilt?tilt.x:0}deg) rotateY(${enableTilt?tilt.y:0}deg) translateZ(${enableTilt?tilt.z:0}px)`,borderRadius:\"50%\",background:\"transparent\",overflow:\"visible\",transition:\"transform 0.3s cubic-bezier(.22,1,.36,1)\",willChange:\"transform\",perspective},children:items.map((child,i)=>{const angle=i*angleStep-Math.PI/2;const x=center.x+wheelRadius*Math.cos(angle)-itemWidth/2;const y=center.y+wheelRadius*Math.sin(angle)-itemHeight/2;// Flipping effect\nlet flip=0;if(hoveredIndex!==null){// Find shortest distance in circular array\nlet d=Math.abs(i-hoveredIndex);if(d>count/2)d=count-d;if(d===0){flip=maxFlip;}else if(d<=maxDistance){flip=maxFlip*Math.pow(effectFalloff,d);}}const rotate=rotateItems?`rotate(${angle*180/Math.PI+90}deg)`:\"\";const flipTransform=flip?` rotateY(${flip}deg)`:\"\";// Rising effect: maxRise for hovered, falloff for neighbors\nlet rise=0;if(hoveredIndex!==null){let d=Math.abs(i-hoveredIndex);if(d>count/2)d=count-d;if(d===0){rise=maxRise;}else if(d<=maxDistance){rise=maxRise*Math.pow(effectFalloff,d);}}const riseTransform=rise?` translateY(${rise}px)`:\"\";return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:x,top:y,width:itemWidth,height:itemHeight,borderRadius:\"50%\",overflow:\"visible\",background:\"transparent\",border:\"none\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transform:rotate+flipTransform+riseTransform,transformOrigin:\"center center\",transition:`transform ${animationDuration}s ${animationEasing}`,willChange:\"transform\",perspective},children:child&&typeof child===\"object\"&&\"props\"in child?// @ts-ignore\n{...child,props:{...child.props,style:{...child.props?.style||{},width:itemWidth,height:itemHeight}}}:child},i);})})});}addPropertyControls(ImageWheel,{children:{type:ControlType.Slot,title:\"Items\"},wheelRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:250,min:1,step:1,unit:\"px\",displayStepper:true,description:\"The main wheel radius\"},itemWidth:{type:ControlType.Number,title:\"Width\",defaultValue:80,min:1,step:1,unit:\"px\",displayStepper:true},itemHeight:{type:ControlType.Number,title:\"Height\",defaultValue:80,min:1,step:1,unit:\"px\",displayStepper:true},effectFalloff:{type:ControlType.Number,title:\"Falloff\",defaultValue:.4,min:0,max:1,step:.01,displayStepper:true,description:\"How many neighboring items are affected by the hover\"},raiseAmount:{type:ControlType.Number,title:\"Raise\",defaultValue:40,min:0,max:200,step:1,unit:\"px\",displayStepper:true},animationDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:1,min:.05,step:.01,unit:\"s\",displayStepper:true},animationEasing:{type:ControlType.Enum,title:\"Curves\",defaultValue:\"cubic-bezier(.22,1,.36,1)\",options:[\"cubic-bezier(.22,1,.36,1)\",\"ease\",\"ease-in\",\"ease-out\",\"ease-in-out\",\"linear\"],optionTitles:[\"Smooth\",\"Ease\",\"Ease In\",\"Ease Out\",\"Ease In Out\",\"Linear\"]},enableTilt:{type:ControlType.Boolean,title:\"3D Tilt\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},tiltStrength:{type:ControlType.Number,title:\"Tilt\",defaultValue:10,min:0,max:90,step:1,unit:\"deg\",displayStepper:true,hidden:({enableTilt})=>!enableTilt,description:\"Follow the creator on [Twitter](https://x.com/Muhammad_maass)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ImageWheel\",\"slots\":[\"children\"],\"annotations\":{\"framerDisableUnlink\":\"* @framerIntrinsicWidth 400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImageWheel.map","import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsInCurrentNavigationTarget,RenderTarget}from\"framer\";import{isMotionValue,useInView}from\"framer-motion\";import{borderRadiusControl,defaultEvents,useIsBrowserSafari,useIsOnCanvas,useOnEnter,useOnExit,useRadius,useRenderTarget}from\"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\";// https://framer.com/m/framer/default-utils.js@^0.45.0\nimport{memo,useCallback,useEffect,useMemo,useRef,useState}from\"react\";var ObjectFitType;(function(ObjectFitType){ObjectFitType[\"Fill\"]=\"fill\";ObjectFitType[\"Contain\"]=\"contain\";ObjectFitType[\"Cover\"]=\"cover\";ObjectFitType[\"None\"]=\"none\";ObjectFitType[\"ScaleDown\"]=\"scale-down\";})(ObjectFitType||(ObjectFitType={}));var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));const defaultVideo=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\";// Reduce renders\nfunction getProps(props){const{width,height,topLeft,topRight,bottomRight,bottomLeft,id,children,...rest}=props;return rest;}/**\n * VIDEO\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 112\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Video(props){const newProps=getProps(props);return /*#__PURE__*/_jsx(VideoMemo,{...newProps});}function usePlaybackControls(videoRef){const isInCurrentNavigationTarget=useIsInCurrentNavigationTarget();const requestingPlay=useRef(false);const isPlayingRef=useRef(false);const setProgress=useCallback(rawProgress=>{if(!videoRef.current)return;const newProgress=(rawProgress===1?.999:rawProgress)*videoRef.current.duration;const isAlreadySet=Math.abs(videoRef.current.currentTime-newProgress)<.1;if(videoRef.current.duration>0&&!isAlreadySet){videoRef.current.currentTime=newProgress;}},[]);const play=useCallback(()=>{const video=videoRef.current;if(!video)return;video.preload=\"auto\"// makes sure browsers don't throttle: https://html.spec.whatwg.org/multipage/media.html#:~:text=When%20the%20media%20resource%20is%20playing%2C%20hints%20to%20the%20user%20agent%20that%20bandwidth%20is%20to%20be%20considered%20scarce%2C%20e.g.%20suggesting%20throttling%20the%20download%20so%20that%20the%20media%20data%20is%20obtained%20at%20the%20slowest%20possible%20rate%20that%20still%20maintains%20consistent%20playback.\n;const isPlaying=video.currentTime>0&&video.onplaying&&!video.paused&&!video.ended&&video.readyState>=video.HAVE_CURRENT_DATA;if(!isPlaying&&video&&!requestingPlay.current&&isInCurrentNavigationTarget){requestingPlay.current=true;isPlayingRef.current=true;video.play().catch(e=>{})// It's likely fine, swallow error\n.finally(()=>requestingPlay.current=false);}},[]);const pause=useCallback(()=>{if(!videoRef.current||requestingPlay.current)return;videoRef.current.pause();isPlayingRef.current=false;},[]);return{play,pause,setProgress,isPlaying:isPlayingRef};}function useAutoplayBehavior({playingProp,muted,loop,playsinline,controls}){const[initialPlayingProp]=useState(()=>playingProp);const[hasPlayingPropChanged,setHasPlayingPropChanged]=useState(false);if(playingProp!==initialPlayingProp&&!hasPlayingPropChanged){setHasPlayingPropChanged(true);}const behavesAsGif=// passing `playing === true` on mount indicates that the video should\n// autoplay, like a GIF\ninitialPlayingProp&&muted&&loop&&playsinline&&!controls&&// Some users of the <Video> component use it by wrapping it with\n// another smart component and adding their own controls on top. (The\n// controls use transitions to control the video: e.g., when clicking\n// the play button, the smart component will transition to a state with\n// <Video playing={true} />.) In this case, we don't want the video to\n// behave as a gif, as it will be weird if the video suddenly started\n// acting as such (and auto-pausing when leaving the viewport) as soon\n// as the site visitor mutes it and clicks “Play”.\n!hasPlayingPropChanged;let autoplay;if(behavesAsGif)autoplay=\"on-viewport\";else if(initialPlayingProp)autoplay=\"on-mount\";else autoplay=\"no-autoplay\";return autoplay;}const VideoMemo=/*#__PURE__*/memo(function VideoInner(props){const{// default props\nsrcType=\"URL\",srcUrl,srcFile=\"\",posterEnabled=false,controls=false,playing=true,loop=true,muted=true,playsinline=true,restartOnEnter=false,objectFit=\"cover\",backgroundColor=\"rgba(0,0,0,0)\",radius=0,volume=25,startTime:startTimeProp=0,poster,playing:playingProp,progress,onSeeked,onPause,onPlay,onEnd,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp}=props;const videoRef=useRef();const isSafari=useIsBrowserSafari();const wasPausedOnLeave=useRef(null);const wasEndedOnLeave=useRef(null);const isOnCanvas=useIsOnCanvas();const renderTarget=useRenderTarget();const isStaticRenderer=isOnCanvas||renderTarget===RenderTarget.export;const borderRadius=useRadius(props);// Hard-coding `autoplayBehavior` and `isInViewport` when on canvas as a\n// tiny perf optimization. isStaticRenderer won’t change through the lifecycle of\n// the component, so using these hooks conditionally should be safe\nconst autoplayBehavior=isStaticRenderer?\"no-autoplay\":useAutoplayBehavior({playingProp,muted,loop,playsinline,controls});const isInViewport=isStaticRenderer?true:useInView(videoRef);const isCloseToViewport=isStaticRenderer?false:useInView(videoRef,{margin:\"10%\",once:true});// Video elements behave oddly at 100% duration\nconst startTime=startTimeProp===100?99.9:startTimeProp;const{play,pause,setProgress,isPlaying}=usePlaybackControls(videoRef);// Pause/play via props\nuseEffect(()=>{if(isStaticRenderer)return;if(autoplayBehavior===\"on-viewport\")return;if(playingProp)play();else pause();},[autoplayBehavior,playingProp]);// Pause/play via viewport\nuseEffect(()=>{if(isStaticRenderer)return;// this also explicitly retries playing for videos that play on-mount, which could fail if they're not muted for example\nif(isInViewport&&playingProp&&autoplayBehavior!==\"no-autoplay\")play();if(autoplayBehavior!==\"on-viewport\")return;pause();},[autoplayBehavior,isInViewport,playingProp]);useEffect(()=>{if(!isOnCanvas||poster||posterEnabled||startTime||!videoRef.current)return;// forces a poster to show up when the video is in an iframe; this is needed when `poster` changes\nvideoRef.current.currentTime=.01;},[posterEnabled,poster,startTime]);/**\n     * The Video component has some effects that sync the video element with props\n     * like `startTime`, `progress`, etc. React calls these effects whenever these\n     * props change. However, it also calls them on the first mount, and this is\n     * troublesome – if we’re doing SSR, and the user changed the video state before\n     * the video was hydrated, the initial `useEffect` call will reset the video\n     * state. To avoid this, we use this flag.\n     */const isMountedAndReadyForProgressChanges=useRef(false);// Allow scrubbling via progress prop\n// 1) Handle cases when the progress prop itself changes\nuseEffect(()=>{if(!isMountedAndReadyForProgressChanges.current){isMountedAndReadyForProgressChanges.current=true;return;}const rawProgressValue=isMotionValue(progress)?progress.get():(progress??0)*.01;setProgress(// When the progress value exists (e.g. <Video startTime={10}\n// progress={50} />), we respect the `progress` value over\n// `startTime`, even if `startTime` changes. That’s because\n// `startTime` == start == changing it shouldn’t affect the current\n// progress\n(rawProgressValue??0)||// Then why fall back to `startTime` when `progress` doesn’t exist,\n// you might ask? Now, that’s for\n// - canvas UX: we want the video progress to change when the user\n//   is scrobbling the “Start Time” in component settings.\n// - backwards compatibility: maybe some users *are* scrobbling\n//   using `startTime` instead of `progress`? We don’t know, and it\n//   always supported it, so let’s not break it\n(startTime??0)/100);},[startTime,srcFile,srcUrl,progress]);// 2) Handle cases when the motion value inside the progress prop changes\nuseEffect(()=>{if(!isMotionValue(progress))return;return progress.on(\"change\",value=>setProgress(value));},[progress]);// (Prototyping) Checking if we need to play on navigation enter\nuseOnEnter(()=>{if(wasPausedOnLeave.current===null)return;if(videoRef.current){// if (restartOnEnter) setProgress(0)\nif(!wasEndedOnLeave&&loop||!wasPausedOnLeave.current)play();}});// (Prototyping) Pausing & saving playing state on navigation exit\nuseOnExit(()=>{if(videoRef.current){wasEndedOnLeave.current=videoRef.current.ended;wasPausedOnLeave.current=videoRef.current.paused;pause();}});const src=useMemo(()=>{let fragment=\"\";// if (\n//     startTime > 0 &&\n//     videoRef.current &&\n//     !isNaN(videoRef.current.duration) &&\n//     !isStaticRenderer\n// ) {\n//     console.log(startTime, videoRef.current.duration)\n//     fragment = `#t=${startTime * videoRef.current.duration}`\n// }\nif(srcType===\"URL\")return srcUrl+fragment;if(srcType===\"Upload\")return srcFile+fragment;},[srcType,srcFile,srcUrl,startTime]);// Autoplay via JS to work in Safari\nuseEffect(()=>{if(isSafari&&videoRef.current&&autoplayBehavior===\"on-mount\"){setTimeout(()=>play(),50);}},[]);// Volume Control\nuseEffect(()=>{if(videoRef.current&&!muted)videoRef.current.volume=(volume??0)/100;},[volume]);// When video is ready, set start-time, then autoplay if needed\nconst handleReady=()=>{const video=videoRef.current;if(!video)return;if(video.currentTime<.3&&startTime>0)setProgress((startTime??0)*.01);if(// when the component updates (e.g. only srcFile/url changes), and the video was already playing, keep playing\nisPlaying.current||autoplayBehavior===\"on-mount\"||playingProp&&autoplayBehavior===\"on-viewport\"&&isInViewport)play();};return /*#__PURE__*/_jsx(\"video\",{onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,src:src,loop:loop,ref:videoRef,onSeeked:e=>onSeeked?.(e),onPause:e=>onPause?.(e),onPlay:e=>onPlay?.(e),onEnded:e=>onEnd?.(e),autoPlay:isPlaying.current||autoplayBehavior===\"on-mount\"||playingProp&&autoplayBehavior===\"on-viewport\"&&isInViewport,preload:isPlaying.current?\"auto\":isStaticRenderer&&!poster?\"metadata\":autoplayBehavior!==\"on-mount\"&&!isCloseToViewport?\"none\":// `autoplay` overrides this too\n\"metadata\",poster:posterEnabled&&!srcFile&&srcUrl===defaultVideo?\"https://framerusercontent.com/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg\":posterEnabled&&poster?poster:undefined,onLoadedData:handleReady,controls:controls,muted:isStaticRenderer?true:muted,playsInline:playsinline,style:{cursor:!!onClick?\"pointer\":\"auto\",width:\"100%\",height:\"100%\",borderRadius,display:\"block\",objectFit:objectFit,backgroundColor:backgroundColor,objectPosition:\"50% 50%\"}});});Video.displayName=\"Video\";function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu)||[];return groups.map(capitalizeFirstLetter).join(\" \");}const objectFitOptions=[\"cover\",\"fill\",\"contain\",\"scale-down\",\"none\"];addPropertyControls(Video,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"mp4\",\"webm\"],hidden(props){return props.srcType===\"URL\";}},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},...borderRadiusControl,posterEnabled:{type:ControlType.Boolean,title:\"Poster\",enabledTitle:\"Yes\",disabledTitle:\"No\"},poster:{type:ControlType.Image,title:\"Image\",hidden:({posterEnabled})=>!posterEnabled,description:\"We recommend adding a poster. [Learn more](https://www.framer.com/help/articles/how-are-videos-optimized-in-framer/).\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},startTime:{title:\"Start Time\",type:ControlType.Number,min:0,max:100,step:.1,unit:\"%\"},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:objectFitOptions,optionTitles:objectFitOptions.map(titleCase)},// restartOnEnter: {\n//     type: ControlType.Boolean,\n//     title: \"On ReEnter\",\n//     enabledTitle: \"Restart\",\n//     disabledTitle: \"Resume\",\n// },\ncontrols:{type:ControlType.Boolean,title:\"Controls\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",enabledTitle:\"Yes\",disabledTitle:\"No\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({muted})=>muted,defaultValue:25},onEnd:{type:ControlType.EventHandler},onSeeked:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onPlay:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"VideoProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Video\":{\"type\":\"reactComponent\",\"name\":\"Video\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"112\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Video.map","// Generated by Framer (9eb3b99)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-ccZLk\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 229 43\" xmlns=\"http://www.w3.org/2000/svg\"><defs ><linearGradient id=\"DelwCKWxh-1321359976-linear-gradient\" x1=\"0.49748743718592964\" x2=\"0.5025125628140703\" y1=\"1\" y2=\"0\"><stop offset=\"0\" stop-color=\"rgb(255, 81, 68)\"/><stop offset=\"1\" stop-color=\"rgb(229, 106, 51)\"/></linearGradient><linearGradient id=\"rfE1qPYRO-1321359976-linear-gradient\" x1=\"0.49748743718592964\" x2=\"0.5025125628140703\" y1=\"1\" y2=\"0\"><stop offset=\"0\" stop-color=\"rgb(255, 81, 68)\"/><stop offset=\"1\" stop-color=\"rgb(229, 106, 51)\"/></linearGradient></defs><g d=\"M 86.21 22.14 C 90.71 18.85 95.46 14.8 99.82 11.35 L 91.35 11.35 C 87.81 14.799 83.972 17.928 79.88 20.7 C 80.65 17.53 81.49 14.45 82.35 11.35 L 76.07 11.35 C 74.49 17.99 72.86 24.79 71.07 31.35 L 77.35 31.35 C 77.97 28.7 78.52 26.1 79.2 23.42 L 79.51 23.42 C 81.593 25.2 83.511 27.165 85.24 29.29 C 85.763 30.051 86.446 30.689 87.24 31.16 C 88.08 31.48 94.37 31.28 95.38 31.35 C 94.7 30.72 88.72 24.18 86.21 22.14 Z M 122 14 C 119.63 11.39 116.22 10.78 112.34 10.74 C 107.11 10.74 101.59 12.01 98.9 16.74 C 94.37 25.56 98.43 32.18 108.55 31.97 C 115.21 32.11 121.91 29.37 123.4 22.38 C 124.17 19.29 124 16.38 122 14 Z M 117.36 21.69 C 116.64 25.53 112.93 26.96 109.29 26.85 C 105.2 26.94 102.4 25.33 103.52 20.97 C 104.42 17.16 107.87 15.73 111.59 15.87 C 115.47 15.77 118.55 17.55 117.34 21.71 Z M 151 11.35 L 143.23 11.35 C 140.8 14.35 137.62 17.42 135.29 20.51 L 135.07 20.51 C 134.15 17.51 132.85 14.3 131.8 11.35 L 124.26 11.35 C 126.951 15.833 129.227 20.553 131.06 25.45 L 129.45 31.45 L 135.8 31.45 C 136.17 29.6 136.71 27.45 137.21 25.55 C 141.39 20.73 146.5 15.77 151 11.35 Z M 173.18 14 C 170.81 11.39 167.4 10.78 163.52 10.74 C 158.29 10.74 152.77 12.01 150.09 16.74 C 145.55 25.56 149.61 32.18 159.73 31.97 C 166.4 32.11 173.09 29.37 174.58 22.38 C 175.38 19.29 175.18 16.38 173.18 14 Z M 168.54 21.69 C 167.82 25.53 164.11 26.96 160.48 26.85 C 156.38 26.94 153.58 25.33 154.71 20.97 C 155.6 17.16 159.05 15.73 162.77 15.87 C 166.68 15.77 169.75 17.55 168.54 21.71 Z M 179.09 16.23 C 180.39 16.23 191.21 16.23 193.09 16.06 L 193.09 16.23 C 187.14 18.87 182.16 23.63 176.44 26.63 C 176.44 26.77 175.44 30.97 175.21 31.38 L 197.63 31.38 C 197.75 30.94 198.82 26.61 198.91 26.38 C 198.37 26.38 185.91 26.54 185.42 26.56 L 185.42 26.43 C 191.06 23.85 195.9 19.22 201.33 16.31 C 201.33 16.09 202.46 11.76 202.59 11.37 L 180.35 11.37 C 180.28 11.74 179.18 16 179.09 16.23 Z M 229.22 17.7 C 227.9 9.5 215.6 9.75 209.55 12.23 C 204.94 14.09 202.44 19.28 202.61 24.05 C 202.74 27.84 205.4 30.52 209.08 31.42 C 216.72 33.19 227.02 31.32 228.91 22.42 C 229.348 20.887 229.454 19.277 229.22 17.7 Z M 222.88 21.7 C 222.16 25.54 218.44 26.97 214.81 26.86 C 210.71 26.95 207.92 25.34 209.04 20.98 C 209.93 17.17 213.39 15.74 217.11 15.88 C 221 15.77 224.09 17.55 222.88 21.71 Z M 53.61 43.2 L 20.13 27.18 L 12.58 39.35 L 0 43.2 L 14.72 19.47 L 19.74 11.39 L 26.81 0 L 31.9 8.21 L 29.94 11.39 L 24.99 19.36 L 35.06 13.31 L 38.24 11.39 L 52.32 11.39 L 38.89 19.47 L 31.2 24.09 L 46.21 31.27 Z M 14.72 11.39 L 14.72 19.47 L 1.29 11.39 Z\" fill=\"transparent\" height=\"43.2px\" id=\"cdeTzY1QG\" width=\"229.34089432284327px\"><g d=\"M 86.21 22.14 C 90.71 18.85 95.46 14.8 99.82 11.35 L 91.35 11.35 C 87.81 14.799 83.972 17.928 79.88 20.7 C 80.65 17.53 81.49 14.45 82.35 11.35 L 76.07 11.35 C 74.49 17.99 72.86 24.79 71.07 31.35 L 77.35 31.35 C 77.97 28.7 78.52 26.1 79.2 23.42 L 79.51 23.42 C 81.593 25.2 83.511 27.165 85.24 29.29 C 85.763 30.051 86.446 30.689 87.24 31.16 C 88.08 31.48 94.37 31.28 95.38 31.35 C 94.7 30.72 88.72 24.18 86.21 22.14 Z M 122 14 C 119.63 11.39 116.22 10.78 112.34 10.74 C 107.11 10.74 101.59 12.01 98.9 16.74 C 94.37 25.56 98.43 32.18 108.55 31.97 C 115.21 32.11 121.91 29.37 123.4 22.38 C 124.17 19.29 124 16.38 122 14 Z M 117.36 21.69 C 116.64 25.53 112.93 26.96 109.29 26.85 C 105.2 26.94 102.4 25.33 103.52 20.97 C 104.42 17.16 107.87 15.73 111.59 15.87 C 115.47 15.77 118.55 17.55 117.34 21.71 Z M 151 11.35 L 143.23 11.35 C 140.8 14.35 137.62 17.42 135.29 20.51 L 135.07 20.51 C 134.15 17.51 132.85 14.3 131.8 11.35 L 124.26 11.35 C 126.951 15.833 129.227 20.553 131.06 25.45 L 129.45 31.45 L 135.8 31.45 C 136.17 29.6 136.71 27.45 137.21 25.55 C 141.39 20.73 146.5 15.77 151 11.35 Z M 173.18 14 C 170.81 11.39 167.4 10.78 163.52 10.74 C 158.29 10.74 152.77 12.01 150.09 16.74 C 145.55 25.56 149.61 32.18 159.73 31.97 C 166.4 32.11 173.09 29.37 174.58 22.38 C 175.38 19.29 175.18 16.38 173.18 14 Z M 168.54 21.69 C 167.82 25.53 164.11 26.96 160.48 26.85 C 156.38 26.94 153.58 25.33 154.71 20.97 C 155.6 17.16 159.05 15.73 162.77 15.87 C 166.68 15.77 169.75 17.55 168.54 21.71 Z M 179.09 16.23 C 180.39 16.23 191.21 16.23 193.09 16.06 L 193.09 16.23 C 187.14 18.87 182.16 23.63 176.44 26.63 C 176.44 26.77 175.44 30.97 175.21 31.38 L 197.63 31.38 C 197.75 30.94 198.82 26.61 198.91 26.38 C 198.37 26.38 185.91 26.54 185.42 26.56 L 185.42 26.43 C 191.06 23.85 195.9 19.22 201.33 16.31 C 201.33 16.09 202.46 11.76 202.59 11.37 L 180.35 11.37 C 180.28 11.74 179.18 16 179.09 16.23 Z M 229.22 17.7 C 227.9 9.5 215.6 9.75 209.55 12.23 C 204.94 14.09 202.44 19.28 202.61 24.05 C 202.74 27.84 205.4 30.52 209.08 31.42 C 216.72 33.19 227.02 31.32 228.91 22.42 C 229.348 20.887 229.454 19.277 229.22 17.7 Z M 222.88 21.7 C 222.16 25.54 218.44 26.97 214.81 26.86 C 210.71 26.95 207.92 25.34 209.04 20.98 C 209.93 17.17 213.39 15.74 217.11 15.88 C 221 15.77 224.09 17.55 222.88 21.71 Z M 53.61 43.2 L 20.13 27.18 L 12.58 39.35 L 0 43.2 L 14.72 19.47 L 19.74 11.39 L 26.81 0 L 31.9 8.21 L 29.94 11.39 L 24.99 19.36 L 35.06 13.31 L 38.24 11.39 L 52.32 11.39 L 38.89 19.47 L 31.2 24.09 L 46.21 31.27 Z M 14.72 11.39 L 14.72 19.47 L 1.29 11.39 Z\" fill=\"transparent\" height=\"43.2px\" id=\"kzWQWUkeX\" width=\"229.34089432284327px\"><path d=\"M 15.14 10.79 C 19.64 7.5 24.39 3.45 28.75 0 L 20.28 0 C 16.74 3.449 12.902 6.578 8.81 9.35 C 9.58 6.18 10.42 3.1 11.28 0 L 5 0 C 3.42 6.64 1.79 13.44 0 20 L 6.28 20 C 6.9 17.35 7.45 14.75 8.13 12.07 L 8.44 12.07 C 10.523 13.85 12.441 15.815 14.17 17.94 C 14.693 18.701 15.376 19.339 16.17 19.81 C 17.01 20.13 23.3 19.93 24.31 20 C 23.63 19.37 17.65 12.83 15.14 10.79 Z\" fill=\"rgb(255, 255, 255)\" height=\"20.000000000000004px\" id=\"m8D152m1n\" transform=\"translate(71.07 11.35)\" width=\"28.75px\"/><path d=\"M 24.941 3.292 C 22.571 0.682 19.161 0.072 15.281 0.032 C 10.051 0.032 4.531 1.302 1.841 6.032 C -2.689 14.852 1.371 21.472 11.491 21.262 C 18.151 21.402 24.851 18.662 26.341 11.672 C 27.111 8.582 26.941 5.672 24.941 3.292 Z M 20.301 10.982 C 19.581 14.822 15.871 16.252 12.231 16.142 C 8.141 16.232 5.341 14.622 6.461 10.262 C 7.361 6.452 10.811 5.022 14.531 5.162 C 18.411 5.062 21.491 6.842 20.281 11.002 Z M 53.941 0.642 L 46.171 0.642 C 43.741 3.642 40.561 6.712 38.231 9.802 L 38.011 9.802 C 37.091 6.802 35.791 3.592 34.741 0.642 L 27.201 0.642 C 29.892 5.125 32.168 9.845 34.001 14.742 L 32.391 20.742 L 38.741 20.742 C 39.111 18.892 39.651 16.742 40.151 14.842 C 44.331 10.022 49.441 5.062 53.941 0.642 Z M 76.121 3.292 C 73.751 0.682 70.341 0.072 66.461 0.032 C 61.231 0.032 55.711 1.302 53.031 6.032 C 48.491 14.852 52.551 21.472 62.671 21.262 C 69.341 21.402 76.031 18.662 77.521 11.672 C 78.321 8.582 78.121 5.672 76.121 3.292 Z M 71.481 10.982 C 70.761 14.822 67.051 16.252 63.421 16.142 C 59.321 16.232 56.521 14.622 57.651 10.262 C 58.541 6.452 61.991 5.022 65.711 5.162 C 69.621 5.062 72.691 6.842 71.481 11.002 Z M 82.031 5.522 C 83.331 5.522 94.151 5.522 96.031 5.352 L 96.031 5.522 C 90.081 8.162 85.101 12.922 79.381 15.922 C 79.381 16.062 78.381 20.262 78.151 20.672 L 100.571 20.672 C 100.691 20.232 101.761 15.902 101.851 15.672 C 101.311 15.672 88.851 15.832 88.361 15.852 L 88.361 15.722 C 94.001 13.142 98.841 8.512 104.271 5.602 C 104.271 5.382 105.401 1.052 105.531 0.662 L 83.291 0.662 C 83.221 1.032 82.121 5.292 82.031 5.522 Z M 132.161 6.992 C 130.841 -1.208 118.541 -0.958 112.491 1.522 C 107.881 3.382 105.381 8.572 105.551 13.342 C 105.681 17.132 108.341 19.812 112.021 20.712 C 119.661 22.482 129.961 20.612 131.851 11.712 C 132.289 10.179 132.395 8.569 132.161 6.992 Z M 125.821 10.992 C 125.101 14.832 121.381 16.262 117.751 16.152 C 113.651 16.242 110.861 14.632 111.981 10.272 C 112.871 6.462 116.331 5.032 120.051 5.172 C 123.941 5.062 127.031 6.842 125.821 11.002 Z\" fill=\"rgb(255, 255, 255)\" height=\"21.315533969892023px\" id=\"J3yqfmKiv\" transform=\"translate(97.059 10.708)\" width=\"132.28190384432764px\"/><path d=\"M 53.61 43.2 L 20.13 27.18 L 12.58 39.35 L 0 43.2 L 14.72 19.47 L 19.74 11.39 L 26.81 0 L 31.9 8.21 L 29.94 11.39 L 24.99 19.36 L 35.06 13.31 L 38.24 11.39 L 52.32 11.39 L 38.89 19.47 L 31.2 24.09 L 46.21 31.27 Z\" fill=\"url(%23DelwCKWxh-1321359976-linear-gradient)\" height=\"43.2px\" id=\"DelwCKWxh\" width=\"53.61px\"/><path d=\"M 13.43 0 L 13.43 8.08 L 0 0 Z\" fill=\"url(%23rfE1qPYRO-1321359976-linear-gradient)\" height=\"8.079999999999998px\" id=\"rfE1qPYRO\" transform=\"translate(1.29 11.39)\" width=\"13.43px\"/></g></g></svg>',style:{...style}});});const css=[`.framer-ccZLk { -webkit-mask: ${mask}; aspect-ratio: 5.325581395348837; display: block; mask: ${mask}; user-select: none; width: 229px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 229\n * @framerIntrinsicHeight 43\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Logo Complete\",\"set\":{\"localId\":\"vectorSet/YeDrA50tl\",\"id\":\"YeDrA50tl\",\"moduleId\":\"8LBKJlNGQ1pQ75PxfMJE\"}}\n */const Icon=withCSS(Component,css,\"framer-ccZLk\");Icon.displayName=\"Logo Complete\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Logo Complete\\\",\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/YeDrA50tl\\\",\\\"id\\\":\\\"YeDrA50tl\\\",\\\"moduleId\\\":\\\"8LBKJlNGQ1pQ75PxfMJE\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"43\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"229\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsOnFramerCanvas}from\"framer\";import{motion}from\"framer-motion\";/**\n * 3D Tilt Card (Fixed version)\n *\n * Smooth 3D tilt + glare + hover scale without masking issues.\n *\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 400\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */function TiltCard(props){const{image={src:\"https://framerusercontent.com/images/YnBYRlxvxFzRXG9rOYVJdkGBg.jpg\",alt:\"Blue flower\"},tiltFactor=15,perspective=1e3,borderRadius=12,backgroundColor=\"#FFFFFF\",shadowColor=\"rgba(0, 0, 0, 0.2)\",shadowIntensity=.5,transitionDuration=.2,hoverScale=1.05,glareEffect=true,glareIntensity=.5,glarePosition=50,glareSize=80}=props;const[isHovered,setIsHovered]=React.useState(false);const[tiltValues,setTiltValues]=React.useState({x:0,y:0});const[mousePosition,setMousePosition]=React.useState({x:0,y:0});const cardRef=React.useRef(null);const isOnCanvas=useIsOnFramerCanvas();const handleMouseMove=React.useCallback(e=>{if(!cardRef.current||!isHovered||isOnCanvas)return;const rect=cardRef.current.getBoundingClientRect();const x=((e.clientX-rect.left)/rect.width-.5)*100;const y=((e.clientY-rect.top)/rect.height-.5)*100;setMousePosition({x,y});const tiltX=-(y/50)*tiltFactor;const tiltY=x/50*tiltFactor;setTiltValues({x:tiltX,y:tiltY});},[isHovered,tiltFactor,isOnCanvas]);const handleMouseEnter=React.useCallback(()=>{if(!isOnCanvas)setIsHovered(true);},[isOnCanvas]);const handleMouseLeave=React.useCallback(()=>{if(!isOnCanvas){setIsHovered(false);setTiltValues({x:0,y:0});}},[isOnCanvas]);const glareX=React.useMemo(()=>isHovered?50+mousePosition.x/2:glarePosition,[isHovered,mousePosition.x,glarePosition]);const glareY=React.useMemo(()=>isHovered?50+mousePosition.y/2:glarePosition,[isHovered,mousePosition.y,glarePosition]);return /*#__PURE__*/_jsx(motion.div,{ref:cardRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",perspective:`${perspective}px`,transformStyle:\"preserve-3d\",cursor:\"pointer\"},animate:{scale:isHovered?hoverScale:1},transition:{duration:transitionDuration,ease:\"easeOut\"},onMouseMove:handleMouseMove,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,children:/*#__PURE__*/_jsxs(motion.div,{style:{width:\"100%\",height:\"100%\",borderRadius:`${borderRadius}px`,overflow:\"hidden\",backgroundColor,transformStyle:\"preserve-3d\",boxShadow:`0 10px 30px -10px ${shadowColor}`,willChange:\"transform\",backfaceVisibility:\"hidden\"},animate:{rotateX:tiltValues.x,rotateY:tiltValues.y,boxShadow:isHovered?`0 25px 50px -12px rgba(0, 0, 0, ${shadowIntensity})`:`0 10px 30px -10px ${shadowColor}`},transition:{duration:transitionDuration,ease:\"easeOut\"},children:[/*#__PURE__*/_jsx(\"img\",{src:image.src,alt:image.alt,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",borderRadius:`${borderRadius}px`,position:\"relative\",zIndex:1,pointerEvents:\"none\"}}),glareEffect&&/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",inset:0,zIndex:2,borderRadius:`${borderRadius}px`,background:`radial-gradient(\n                                circle at ${glareX}% ${glareY}%,\n                                rgba(255, 255, 255, ${isHovered?glareIntensity:0}) 0%,\n                                rgba(255, 255, 255, 0) ${glareSize}%\n                            )`,pointerEvents:\"none\",mixBlendMode:\"screen\"},animate:{opacity:isHovered?1:0},transition:{duration:transitionDuration}})]})});}addPropertyControls(TiltCard,{image:{type:ControlType.ResponsiveImage,title:\"Image\"},tiltFactor:{type:ControlType.Number,title:\"Tilt Amount\",defaultValue:15,min:0,max:45,step:1},perspective:{type:ControlType.Number,title:\"Perspective\",defaultValue:1e3,min:100,max:2e3,step:50},borderRadius:{type:ControlType.Number,title:\"Corner Radius\",defaultValue:12,min:0,max:50,step:1},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},shadowColor:{type:ControlType.Color,title:\"Shadow Color\",defaultValue:\"rgba(0, 0, 0, 0.2)\"},shadowIntensity:{type:ControlType.Number,title:\"Shadow Intensity\",defaultValue:.5,min:0,max:1,step:.05},transitionDuration:{type:ControlType.Number,title:\"Animation Speed\",defaultValue:.2,min:0,max:1,step:.05,unit:\"s\"},hoverScale:{type:ControlType.Number,title:\"Hover Scale\",defaultValue:1.05,min:1,max:1.2,step:.01},glareEffect:{type:ControlType.Boolean,title:\"Glare Effect\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},glareIntensity:{type:ControlType.Number,title:\"Glare Intensity\",defaultValue:.5,min:0,max:1,step:.05,hidden:({glareEffect})=>!glareEffect},glarePosition:{type:ControlType.Number,title:\"Glare Position\",defaultValue:50,min:0,max:100,step:1,hidden:({glareEffect})=>!glareEffect},glareSize:{type:ControlType.Number,title:\"Glare Size\",defaultValue:80,min:10,max:100,step:1,hidden:({glareEffect})=>!glareEffect}});export default TiltCard;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TiltCard\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"300\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"400\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TiltCard_1.map","// Generated by Framer (3df86f7)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={FsEidwxA_:{hover:true}};const serializationHash=\"framer-rhPHg\";const variantClassNames={FsEidwxA_:\"framer-v-1h6w67k\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.4,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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({defaultVariant:\"FsEidwxA_\",enabledGestures,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(Link,{clickTrackingId:\"pre-book-now\",href:\"https://themes.shopify.com/collections/free-themes?surface_detail=navbar-collections&surface_inter_position=1&surface_intra_position=3&surface_type=nav\",motionChild:true,nodeId:\"FsEidwxA_\",openInNewTab:false,scopeId:\"B4k1w4FdW\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1h6w67k\",className,classNames)} framer-1ojnyap`,\"data-border\":true,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"FsEidwxA_\",ref:refBinding,style:{\"--border-bottom-width\":\"3px\",\"--border-color\":\"var(--token-7fa06cea-04c5-4fe0-9d42-4a2f060ca040, rgb(229, 106, 51))\",\"--border-left-width\":\"3px\",\"--border-right-width\":\"3px\",\"--border-style\":\"solid\",\"--border-top-width\":\"3px\",borderBottomLeftRadius:37,borderBottomRightRadius:37,borderTopLeftRadius:37,borderTopRightRadius:37,boxShadow:\"none\",...style},variants:{\"FsEidwxA_-hover\":{boxShadow:\"0px 0.7961918735236395px 0.7961918735236395px -0.8125px rgba(229, 106, 51, 0.64), 0px 2.414506143104518px 2.414506143104518px -1.625px rgba(229, 106, 51, 0.61), 0px 6.382653521484461px 6.382653521484461px -2.4375px rgba(229, 106, 51, 0.55), 0px 20px 20px -3.25px rgba(229, 106, 51, 0.35)\"}},...addPropertyOverrides({\"FsEidwxA_-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{style:{\"--font-selector\":\"Q1VTVE9NO09idmlvdXNseSBWYXJpYWJsZVZGPUluZGtkR2dpSURFMU1Dd2dJbmRuYUhRaUlEWXdNQ3dnSW1sMFlXd2lJREE9\",\"--framer-font-family\":'\"Obviously Variable\", \"Obviously Variable Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-variation-axes\":'var(--extracted-zfisys, \"wdth\" 150, \"wght\" 600, \"ital\" 0)',\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, rgb(255, 255, 255)))\"},children:\"PRE-BOOK NOW\"})}),className:\"framer-1yxk475\",fonts:[\"CUSTOM;Obviously Variable\"],layoutDependency:layoutDependency,layoutId:\"R5lo7nVmt\",style:{\"--extracted-a0htzi\":\"var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, rgb(255, 255, 255))\",\"--extracted-zfisys\":'\"wdth\" 150, \"wght\" 600, \"ital\" 0',\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",textShadow:\"none\"},variants:{\"FsEidwxA_-hover\":{textShadow:\"0px 1px 2px rgb(229, 106, 51)\"}},verticalAlignment:\"center\",withExternalLayout:true})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-rhPHg.framer-1ojnyap, .framer-rhPHg .framer-1ojnyap { display: block; }\",\".framer-rhPHg.framer-1h6w67k { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 14px; position: relative; text-decoration: none; width: min-content; }\",\".framer-rhPHg .framer-1yxk475 { flex: none; height: 15px; position: relative; white-space: pre; width: auto; }\",'.framer-rhPHg[data-border=\"true\"]::after, .framer-rhPHg [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; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 43\n * @framerIntrinsicWidth 169\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"e3aLtG73M\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerTrackingIds [{\"id\":\"pre-book-now\",\"nodeId\":\"FsEidwxA_\",\"type\":\"click\"}]\n */const FramerB4k1w4FdW=withCSS(Component,css,\"framer-rhPHg\");export default FramerB4k1w4FdW;FramerB4k1w4FdW.displayName=\"Button 2\";FramerB4k1w4FdW.defaultProps={height:43,width:169};const variationAxes=[{defaultValue:50,maxValue:200,minValue:50,name:\"Width\",tag:\"wdth\"},{defaultValue:200,maxValue:900,minValue:200,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:1,minValue:0,name:\"Italic\",tag:\"ital\"}];addFonts(FramerB4k1w4FdW,[{explicitInter:true,fonts:[{cssFamilyName:\"Obviously Variable\",source:\"custom\",uiFamilyName:\"Obviously Variable\",url:\"https://framerusercontent.com/assets/QA5mBwJYEu2PoKPGdTmRUNNnvo.woff2\",variationAxes}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerB4k1w4FdW\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"169\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"43\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"e3aLtG73M\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerTrackingIds\":\"[{\\\"id\\\":\\\"pre-book-now\\\",\\\"nodeId\\\":\\\"FsEidwxA_\\\",\\\"type\\\":\\\"click\\\"}]\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./B4k1w4FdW.map","// Generated by Framer (9805f18)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={NwxYl2w_E:{hover:true},zGh6vZHW3:{hover:true}};const cycleOrder=[\"NwxYl2w_E\",\"zGh6vZHW3\"];const serializationHash=\"framer-JIAMn\";const variantClassNames={NwxYl2w_E:\"framer-v-xjnktm\",zGh6vZHW3:\"framer-v-r64nys\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.4,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"NwxYl2w_E\",\"Variant 2\":\"zGh6vZHW3\"};const getProps=({height,id,title,width,...props})=>{return{...props,kCQiCf_fu:title??props.kCQiCf_fu??\"PRE-BOOK NOW\",variant:humanReadableVariantMap[props.variant]??props.variant??\"NwxYl2w_E\"};};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,kCQiCf_fu,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"NwxYl2w_E\",enabledGestures,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(Link,{clickTrackingId:\"pre-book-now\",href:\"https://koyozo.myshopify.com/products/koyozo-one\",motionChild:true,nodeId:\"NwxYl2w_E\",openInNewTab:false,scopeId:\"EZvF7R5uO\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-xjnktm\",className,classNames)} framer-ixqgns`,\"data-border\":true,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"NwxYl2w_E\",ref:refBinding,style:{\"--border-bottom-width\":\"3px\",\"--border-color\":\"var(--token-7fa06cea-04c5-4fe0-9d42-4a2f060ca040, rgb(229, 106, 51))\",\"--border-left-width\":\"3px\",\"--border-right-width\":\"3px\",\"--border-style\":\"solid\",\"--border-top-width\":\"3px\",borderBottomLeftRadius:37,borderBottomRightRadius:37,borderTopLeftRadius:37,borderTopRightRadius:37,boxShadow:\"none\",...style},variants:{\"NwxYl2w_E-hover\":{boxShadow:\"0px 0.7961918735236395px 0.7961918735236395px -0.8125px rgba(229, 106, 51, 0.64), 0px 2.414506143104518px 2.414506143104518px -1.625px rgba(229, 106, 51, 0.61), 0px 6.382653521484461px 6.382653521484461px -2.4375px rgba(229, 106, 51, 0.55), 0px 20px 20px -3.25px rgba(229, 106, 51, 0.35)\"},\"zGh6vZHW3-hover\":{boxShadow:\"0px 0.7961918735236395px 0.7961918735236395px -0.8125px rgba(229, 106, 51, 0.64), 0px 2.414506143104518px 2.414506143104518px -1.625px rgba(229, 106, 51, 0.61), 0px 6.382653521484461px 6.382653521484461px -2.4375px rgba(229, 106, 51, 0.55), 0px 20px 20px -3.25px rgba(229, 106, 51, 0.35)\"}},...addPropertyOverrides({\"NwxYl2w_E-hover\":{\"data-framer-name\":undefined},\"zGh6vZHW3-hover\":{\"data-framer-name\":undefined},zGh6vZHW3:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{style:{\"--font-selector\":\"Q1VTVE9NO09idmlvdXNseSBWYXJpYWJsZVZGPUluZGtkR2dpSURFMU1Dd2dJbmRuYUhRaUlEWXdNQ3dnSW1sMFlXd2lJREE9\",\"--framer-font-family\":'\"Obviously Variable\", \"Obviously Variable Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-variation-axes\":'var(--extracted-zfisys, \"wdth\" 150, \"wght\" 600, \"ital\" 0)',\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, rgb(255, 255, 255)))\"},children:\"PRE-BOOK NOW\"})}),className:\"framer-rkisgd\",fonts:[\"CUSTOM;Obviously Variable\"],layoutDependency:layoutDependency,layoutId:\"zUMZb7ZgS\",style:{\"--extracted-a0htzi\":\"var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, rgb(255, 255, 255))\",\"--extracted-zfisys\":'\"wdth\" 150, \"wght\" 600, \"ital\" 0',\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",textShadow:\"none\"},text:kCQiCf_fu,variants:{\"NwxYl2w_E-hover\":{textShadow:\"0px 1px 2px rgb(229, 106, 51)\"},\"zGh6vZHW3-hover\":{textShadow:\"none\"}},verticalAlignment:\"center\",withExternalLayout:true,...addPropertyOverrides({zGh6vZHW3:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{style:{\"--font-selector\":\"Q1VTVE9NO09idmlvdXNseSBWYXJpYWJsZVZGPUluZGtkR2dpSURFMU1Dd2dJbmRuYUhRaUlEWXdNQ3dnSW1sMFlXd2lJREE9\",\"--framer-font-family\":'\"Obviously Variable\", \"Obviously Variable Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-variation-axes\":'var(--extracted-zfisys, \"wdth\" 150, \"wght\" 600, \"ital\" 0)',\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, rgb(255, 255, 255)))\"},children:\"PRE-BOOK NOW\"})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-JIAMn.framer-ixqgns, .framer-JIAMn .framer-ixqgns { display: block; }\",\".framer-JIAMn.framer-xjnktm { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 14px; position: relative; text-decoration: none; width: min-content; }\",\".framer-JIAMn .framer-rkisgd { flex: none; height: 15px; position: relative; white-space: pre; width: auto; }\",\".framer-JIAMn.framer-v-r64nys.framer-xjnktm { gap: 14px; }\",\".framer-JIAMn.framer-v-r64nys .framer-rkisgd { order: 0; }\",'.framer-JIAMn[data-border=\"true\"]::after, .framer-JIAMn [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; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 43\n * @framerIntrinsicWidth 169\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"zGh6vZHW3\":{\"layout\":[\"auto\",\"auto\"]},\"zYFJA3QYd\":{\"layout\":[\"auto\",\"auto\"]},\"iWMwJjdyk\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"kCQiCf_fu\":\"title\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerTrackingIds [{\"id\":\"pre-book-now\",\"nodeId\":\"NwxYl2w_E\",\"type\":\"click\"}]\n */const FramerEZvF7R5uO=withCSS(Component,css,\"framer-JIAMn\");export default FramerEZvF7R5uO;FramerEZvF7R5uO.displayName=\"Button\";FramerEZvF7R5uO.defaultProps={height:43,width:169};addPropertyControls(FramerEZvF7R5uO,{variant:{options:[\"NwxYl2w_E\",\"zGh6vZHW3\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum},kCQiCf_fu:{defaultValue:\"PRE-BOOK NOW\",displayTextArea:false,title:\"Title\",type:ControlType.String}});const variationAxes=[{defaultValue:50,maxValue:200,minValue:50,name:\"Width\",tag:\"wdth\"},{defaultValue:200,maxValue:900,minValue:200,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:1,minValue:0,name:\"Italic\",tag:\"ital\"}];addFonts(FramerEZvF7R5uO,[{explicitInter:true,fonts:[{cssFamilyName:\"Obviously Variable\",source:\"custom\",style:\"normal\",uiFamilyName:\"Obviously Variable\",url:\"https://framerusercontent.com/assets/QA5mBwJYEu2PoKPGdTmRUNNnvo.woff2\",variationAxes,weight:\"200\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerEZvF7R5uO\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"169\",\"framerTrackingIds\":\"[{\\\"id\\\":\\\"pre-book-now\\\",\\\"nodeId\\\":\\\"NwxYl2w_E\\\",\\\"type\\\":\\\"click\\\"}]\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"zGh6vZHW3\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"zYFJA3QYd\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"iWMwJjdyk\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"43\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"kCQiCf_fu\\\":\\\"title\\\"}\",\"framerContractVersion\":\"1\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EZvF7R5uO.map","// Generated by Framer (9805f18)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,getLoadingLazyAtYPosition,Image,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const serializationHash=\"framer-bnooJ\";const variantClassNames={COuYwvjzJ:\"framer-v-i1np2a\"};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 Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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({defaultVariant:\"COuYwvjzJ\",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(Image,{...restProps,...gestureHandlers,background:{alt:\"\",fit:\"fill\",intrinsicHeight:784,intrinsicWidth:784,loading:getLoadingLazyAtYPosition(componentViewport?.y||0),pixelHeight:980,pixelWidth:980,sizes:componentViewport?.width||\"100vw\",src:\"https://framerusercontent.com/images/jeVQghTYjaHGQkzctg8JrtxaVg.png?width=980&height=980\",srcSet:\"https://framerusercontent.com/images/jeVQghTYjaHGQkzctg8JrtxaVg.png?scale-down-to=512&width=980&height=980 512w,https://framerusercontent.com/images/jeVQghTYjaHGQkzctg8JrtxaVg.png?width=980&height=980 980w\"},className:cx(scopingClassNames,\"framer-i1np2a\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"COuYwvjzJ\",ref:refBinding,style:{...style}})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-bnooJ.framer-29xy3j, .framer-bnooJ .framer-29xy3j { display: block; }\",\".framer-bnooJ.framer-i1np2a { height: 104px; overflow: visible; position: relative; width: 104px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 104\n * @framerIntrinsicWidth 104\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framero_ZWG_gRb=withCSS(Component,css,\"framer-bnooJ\");export default Framero_ZWG_gRb;Framero_ZWG_gRb.displayName=\"Discord logo\";Framero_ZWG_gRb.defaultProps={height:104,width:104};addFonts(Framero_ZWG_gRb,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framero_ZWG_gRb\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"104\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"104\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./o_ZWG_gRb.map","// Interactive 3-card showcase section with progress-based expansion\n// Cards expand based on vertical progress bar, auto-advance to next card\n// Desktop: horizontal layout with animations\n// Mobile: vertical stack without animations\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";/* ------------------------------------------------------------------ *//* Font helper – FULL *//* ------------------------------------------------------------------ */function getFontStyle(font,weight,width){if(!font)return{};const style={};if(font.fontFamily)style.fontFamily=font.fontFamily;if(font.fontSize)style.fontSize=font.fontSize;if(font.letterSpacing)style.letterSpacing=font.letterSpacing;if(font.lineHeight)style.lineHeight=font.lineHeight;if(font.textAlign)style.textAlign=font.textAlign;if(typeof weight===\"number\"||typeof width===\"number\"){const variations=[];if(typeof weight===\"number\"){style.fontWeight=weight;variations.push(`'wght' ${weight}`);}if(typeof width===\"number\"){variations.push(`'wdth' ${width}`);}style.fontVariationSettings=variations.join(\", \");style.fontOpticalSizing=\"auto\";return style;}if(font.variant){const map={Thin:100,\"Extra Light\":200,Light:300,Regular:400,Medium:500,Semibold:600,Bold:700,\"Extra Bold\":800,Black:900};style.fontWeight=map[font.variant]??400;if(font.variant.includes(\"Italic\"))style.fontStyle=\"italic\";}return style;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CardShowcase(props){const{cards=[],progressColor,animationSpeed,loop,textColor,numberColor,titleFont,descriptionFont,numberFont,variableWeight,variableWidth,imageRadius,padding,contentImageGap}=props;const[activeIndex,setActiveIndex]=useState(0);const[progress,setProgress]=useState(0);const[isMobile,setIsMobile]=useState(false);const[inView,setInView]=useState(false);const rootRef=useRef(null);const intervalRef=useRef(null);/* ---------------- Intersection Observer for #discord ---------------- */useEffect(()=>{if(typeof window===\"undefined\")return;const el=document.querySelector(\"#discord\");if(!el)return;const observer=new window.IntersectionObserver(([entry])=>{startTransition(()=>{setInView(entry.isIntersecting);if(entry.isIntersecting){setActiveIndex(0);setProgress(0);}});},{threshold:.1});observer.observe(el);return()=>observer.disconnect();},[]);/* ---------------- Mobile detection ---------------- */useEffect(()=>{if(typeof window===\"undefined\")return;const check=()=>setIsMobile(window.innerWidth<768);check();window.addEventListener(\"resize\",check);return()=>window.removeEventListener(\"resize\",check);},[]);/* ---------------- Progress loop ---------------- *//* 🔑 ONLY CHANGE: activeIndex REMOVED from deps */useEffect(()=>{if(isMobile||cards.length===0||!inView)return;if(intervalRef.current)clearInterval(intervalRef.current);const interval=16;const increment=100/(animationSpeed*1e3)*interval;intervalRef.current=window.setInterval(()=>{setProgress(p=>{const next=p+increment;if(next>=100){setActiveIndex(i=>{const ni=i+1;return ni>=cards.length?loop?0:i:ni;});return 0;}return next;});},interval);return()=>{if(intervalRef.current)clearInterval(intervalRef.current);};},[animationSpeed,cards.length,loop,isMobile,inView]);/* ---------------- Click handler ---------------- *//* 🔑 ONLY CHANGE: no interval manipulation */const handleCardClick=index=>{if(isMobile)return;startTransition(()=>{setActiveIndex(index);setProgress(0);});};/* ------------------------------------------------------------------ *//* MOBILE LAYOUT *//* ------------------------------------------------------------------ */if(isMobile){return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{width:\"100%\",height:\"100%\",minHeight:400,padding,display:\"flex\",flexDirection:\"column\",gap:24,background:\"#000\",overflowY:\"auto\"},children:cards.map((card,i)=>{const img=card.image??{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Default image\"};return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:contentImageGap},children:[/*#__PURE__*/_jsx(\"div\",{style:{...getFontStyle(numberFont,variableWeight,variableWidth),color:numberColor},children:card.number}),/*#__PURE__*/_jsx(\"div\",{style:{...getFontStyle(titleFont,variableWeight,variableWidth),color:textColor},children:card.title}),/*#__PURE__*/_jsx(\"div\",{style:{...getFontStyle(descriptionFont,variableWeight,variableWidth),color:textColor,opacity:.8},children:card.description}),/*#__PURE__*/_jsx(\"img\",{src:img.src,alt:img.alt,style:{width:\"100%\",aspectRatio:\"16 / 9\",objectFit:\"cover\",borderRadius:imageRadius}})]},i);})});}/* ------------------------------------------------------------------ *//* DESKTOP LAYOUT *//* ------------------------------------------------------------------ */return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{width:\"100%\",height:\"100%\",minHeight:400,padding,background:\"#000\",display:\"flex\"},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:20,width:\"100%\",height:\"100%\",alignItems:\"stretch\"},children:cards.map((card,index)=>{const active=index===activeIndex;const img=card.image??{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Default image\"};return /*#__PURE__*/_jsxs(motion.div,{onClick:()=>handleCardClick(index),animate:{flex:active?2:1},transition:{duration:.5,ease:\"easeInOut\"},style:{flex:1,minWidth:0,padding:24,cursor:\"pointer\",display:\"flex\",flexDirection:\"column\",gap:contentImageGap,position:\"relative\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,bottom:0,width:4,height:active?\"100%\":0,background:\"rgba(0,0,0,0.08)\",pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,bottom:0,width:4,height:active?`${progress}%`:0,background:progressColor,pointerEvents:\"none\",transform:\"translateY(-20px)\",transformOrigin:\"bottom\",transition:\"height 0.2s linear\"}}),/*#__PURE__*/_jsx(\"div\",{style:{...getFontStyle(numberFont,variableWeight,variableWidth),color:numberColor,opacity:active?1:.5},children:card.number}),/*#__PURE__*/_jsx(\"div\",{style:{...getFontStyle(titleFont,variableWeight,variableWidth),color:textColor,opacity:active?1:.7},children:card.title}),/*#__PURE__*/_jsx(AnimatePresence,{children:active&&/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:\"auto\"},exit:{opacity:0,height:0},transition:{duration:.3},style:{display:\"flex\",flexDirection:\"column\",gap:contentImageGap},children:[/*#__PURE__*/_jsx(\"div\",{style:{...getFontStyle(descriptionFont,variableWeight,variableWidth),color:textColor,opacity:.8,maxWidth:\"70%\"},children:card.description}),/*#__PURE__*/_jsx(\"img\",{src:img.src,alt:img.alt,style:{width:\"100%\",aspectRatio:\"16 / 9\",objectFit:\"cover\",borderRadius:imageRadius}})]})})]},index);})})});}/* ------------------------------------------------------------------ *//* PROPERTY CONTROLS *//* ------------------------------------------------------------------ */addPropertyControls(CardShowcase,{cards:{type:ControlType.Array,title:\"Cards\",control:{type:ControlType.Object,controls:{number:{type:ControlType.String,defaultValue:\"01\"},title:{type:ControlType.String,defaultValue:\"Title\"},description:{type:ControlType.String,displayTextArea:true,defaultValue:\"Description\"},image:{type:ControlType.ResponsiveImage}}}},variableWeight:{type:ControlType.Number,title:\"Variable Weight\",defaultValue:500,min:100,max:900},variableWidth:{type:ControlType.Number,title:\"Variable Width\",defaultValue:100,min:50,max:200},progressColor:{type:ControlType.Color,defaultValue:\"#FF0000\"},animationSpeed:{type:ControlType.Number,defaultValue:5,min:1,max:20,step:.5},loop:{type:ControlType.Boolean,defaultValue:true},textColor:{type:ControlType.Color,defaultValue:\"#ffffff\"},numberColor:{type:ControlType.Color,defaultValue:\"#cccccc\"},titleFont:{type:ControlType.Font,controls:\"extended\"},descriptionFont:{type:ControlType.Font,controls:\"extended\"},numberFont:{type:ControlType.Font,controls:\"extended\"},imageRadius:{type:ControlType.Number,defaultValue:8},padding:{type:ControlType.Number,defaultValue:40},contentImageGap:{type:ControlType.Number,defaultValue:16}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CardShowcase\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CardShowcase.map","// Magnetic effect wrapper for Framer\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRef}from\"react\";import{motion,useMotionValue,animate}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * MagneticWrapper\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function MagneticWrapper(props){const{strength,radius,children,style,stiffness=150,damping=12,depth=18}=props;const ref=useRef(null);const x=useMotionValue(0);const y=useMotionValue(0);const rotateX=useMotionValue(0);const rotateY=useMotionValue(0);function handleMouseMove(event){if(!ref.current)return;const rect=ref.current.getBoundingClientRect();const relX=event.clientX-(rect.left+rect.width/2);const relY=event.clientY-(rect.top+rect.height/2);const distance=Math.sqrt(relX*relX+relY*relY);if(distance<radius){const magnetX=relX/distance*strength;const magnetY=relY/distance*strength;animate(x,magnetX,{type:\"spring\",stiffness,damping});animate(y,magnetY,{type:\"spring\",stiffness,damping});// 3D effect: rotate based on relative position\nconst maxTilt=depth;const tiltX=-relY/(rect.height/2)*maxTilt;const tiltY=relX/(rect.width/2)*maxTilt;animate(rotateX,tiltX,{type:\"spring\",stiffness,damping});animate(rotateY,tiltY,{type:\"spring\",stiffness,damping});}else{animate(x,0,{type:\"spring\",stiffness,damping});animate(y,0,{type:\"spring\",stiffness,damping});animate(rotateX,0,{type:\"spring\",stiffness,damping});animate(rotateY,0,{type:\"spring\",stiffness,damping});}}function handleMouseLeave(){animate(x,0,{type:\"spring\",stiffness,damping});animate(y,0,{type:\"spring\",stiffness,damping});animate(rotateX,0,{type:\"spring\",stiffness,damping});animate(rotateY,0,{type:\"spring\",stiffness,damping});}return /*#__PURE__*/_jsx(motion.div,{ref:ref,style:{x,y,rotateX,rotateY,display:\"block\",width:\"100%\",height:\"100%\",...style,perspective:800},onMouseMove:handleMouseMove,onMouseLeave:handleMouseLeave,children:children});}addPropertyControls(MagneticWrapper,{strength:{type:ControlType.Number,title:\"Strength\",min:10,max:200,defaultValue:40,description:\"How far the element moves towards the cursor (in px) when hovered. Higher = more magnetic.\"},radius:{type:ControlType.Number,title:\"Radius\",min:50,max:400,defaultValue:150,description:\"Distance (in px) from the center where the magnetic effect is active.\"},stiffness:{type:ControlType.Number,title:\"Stiffness\",min:10,max:500,defaultValue:150,description:\"Spring stiffness for the movement animation. Higher = snappier.\"},damping:{type:ControlType.Number,title:\"Damping\",min:1,max:50,defaultValue:12,description:\"Spring damping for the movement animation. Higher = less bounce.\"},depth:{type:ControlType.Number,title:\"Depth\",min:0,max:60,defaultValue:18,description:\"Strength of the 3D tilt effect (degrees).\"},children:{type:ControlType.ComponentInstance,title:\"Child\",description:\"The child element to apply the magnetic effect to.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MagneticWrapper\",\"slots\":[\"children\"],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MagneticWrapper.map","// Generated by Framer (05a55d9)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;AktivGrotesk-Regular\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"AktivGrotesk-Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"AktivGrotesk-Regular\",url:\"https://framerusercontent.com/assets/AzXcpHUoYqBhoXCdW4NPySYEU.woff2\",weight:\"400\"}]}];export const css=[\".framer-T7vfj .framer-styles-preset-140e9hk:not(.rich-text-wrapper), .framer-T7vfj .framer-styles-preset-140e9hk.rich-text-wrapper p { --framer-font-family: \\\"AktivGrotesk-Regular\\\", \\\"AktivGrotesk-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-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }\",\"@media (max-width: 1439px) and (min-width: 1245px) { .framer-T7vfj .framer-styles-preset-140e9hk:not(.rich-text-wrapper), .framer-T7vfj .framer-styles-preset-140e9hk.rich-text-wrapper p { --framer-font-family: \\\"AktivGrotesk-Regular\\\", \\\"AktivGrotesk-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-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: -0.01em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }\",\"@media (max-width: 1244px) and (min-width: 0px) { .framer-T7vfj .framer-styles-preset-140e9hk:not(.rich-text-wrapper), .framer-T7vfj .framer-styles-preset-140e9hk.rich-text-wrapper p { --framer-font-family: \\\"AktivGrotesk-Regular\\\", \\\"AktivGrotesk-Regular Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }\"];export const className=\"framer-T7vfj\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (05a55d9)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Obviously Variable\",\"CUSTOM;Obviously VariableVF=IndkdGgiIDE1MCwgIndnaHQiIDYwMCwgIml0YWwiIDA=\",\"CUSTOM;Obviously VariableVF=IndkdGgiIDE1MCwgIndnaHQiIDYwMCwgIml0YWwiIDA=\",\"CUSTOM;Obviously VariableVF=IndkdGgiIDE1MCwgIndnaHQiIDYwMCwgIml0YWwiIDA=\"]);const variationAxes=[{defaultValue:50,maxValue:200,minValue:50,name:\"Width\",tag:\"wdth\"},{defaultValue:200,maxValue:900,minValue:200,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:1,minValue:0,name:\"Italic\",tag:\"ital\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Obviously Variable\",source:\"custom\",style:\"normal\",uiFamilyName:\"Obviously Variable\",url:\"https://framerusercontent.com/assets/QA5mBwJYEu2PoKPGdTmRUNNnvo.woff2\",variationAxes,weight:\"200\"}]}];export const css=['.framer-jF3j7 .framer-styles-preset-1nq8wt8:not(.rich-text-wrapper), .framer-jF3j7 .framer-styles-preset-1nq8wt8.rich-text-wrapper h1 { --framer-font-family: \"Obviously Variable\", sans-serif; --framer-font-family-bold: \"Obviously Variable\", sans-serif; --framer-font-family-bold-italic: \"Obviously Variable\", sans-serif; --framer-font-family-italic: \"Obviously Variable\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 36px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-bold: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-bold-italic: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-italic: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-weight: 200; --framer-font-weight-bold: 200; --framer-font-weight-bold-italic: 200; --framer-font-weight-italic: 200; --framer-letter-spacing: -0.02em; --framer-line-height: 1em; --framer-paragraph-spacing: 0px; --framer-text-alignment: justify; --framer-text-color: var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1439px) and (min-width: 1245px) { .framer-jF3j7 .framer-styles-preset-1nq8wt8:not(.rich-text-wrapper), .framer-jF3j7 .framer-styles-preset-1nq8wt8.rich-text-wrapper h1 { --framer-font-family: \"Obviously Variable\", sans-serif; --framer-font-family-bold: \"Obviously Variable\", sans-serif; --framer-font-family-bold-italic: \"Obviously Variable\", sans-serif; --framer-font-family-italic: \"Obviously Variable\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 29px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-bold: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-bold-italic: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-italic: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-weight: 200; --framer-font-weight-bold: 200; --framer-font-weight-bold-italic: 200; --framer-font-weight-italic: 200; --framer-letter-spacing: -0.02em; --framer-line-height: 1em; --framer-paragraph-spacing: 0px; --framer-text-alignment: justify; --framer-text-color: var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1244px) and (min-width: 0px) { .framer-jF3j7 .framer-styles-preset-1nq8wt8:not(.rich-text-wrapper), .framer-jF3j7 .framer-styles-preset-1nq8wt8.rich-text-wrapper h1 { --framer-font-family: \"Obviously Variable\", sans-serif; --framer-font-family-bold: \"Obviously Variable\", sans-serif; --framer-font-family-bold-italic: \"Obviously Variable\", sans-serif; --framer-font-family-italic: \"Obviously Variable\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 23px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-bold: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-bold-italic: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-variation-axes-italic: \"wdth\" 150, \"wght\" 600, \"ital\" 0; --framer-font-weight: 200; --framer-font-weight-bold: 200; --framer-font-weight-bold-italic: 200; --framer-font-weight-italic: 200; --framer-letter-spacing: -0.02em; --framer-line-height: 1em; --framer-paragraph-spacing: 0px; --framer-text-alignment: justify; --framer-text-color: var(--token-001d6fa4-a666-4ded-bcd4-2006ae311a8e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-jF3j7\";\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 (8e1ebfe)\nexport default function metadata(params,activeLocale){return{description:\"The complete mobile handheld controller!\",favicon:\"https://framerusercontent.com/assets/BsQPYIstgKQFY0gWQ4RKZrEGRPY.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/LwLtBKMbXfZZXLDFg2zXKYbCA.png\",title:\"Koyozo\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (03f70c6)\nimport siteMetadata from\"https://framerusercontent.com/modules/lhd19ti67lmOi8nzhlNT/jN0tzPsrvpFkGPPj1Tut/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"xxczoq\",mediaQuery:\"(min-width: 1800px)\"},{hash:\"1uucd9q\",mediaQuery:\"(min-width: 1440px) and (max-width: 1799.98px)\"},{hash:\"1d87ve5\",mediaQuery:\"(min-width: 900px) and (max-width: 1439.98px)\"},{hash:\"8awtsp\",mediaQuery:\"(max-width: 899.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{B3AHl9vvT:\"top\",buAiQW7Dw:\"ticker\",H2OOWIQLN:\"features\",jWJJj_cbP:\"footer\",TbfjRFpvs:\"discord\",UWA6juUag:\"game-library\",VxZ2HphN7:\"cta\",zVH2uNPIJ:\"about\"},robots:\"max-image-preview:large\",serializationId:\"framer-vodz1\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (c0d7099)\nimport siteMetadata from\"https://framerusercontent.com/modules/lhd19ti67lmOi8nzhlNT/jN0tzPsrvpFkGPPj1Tut/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"1hcuftu\",mediaQuery:\"(min-width: 1800px)\"},{hash:\"1e3w67u\",mediaQuery:\"(min-width: 1400px) and (max-width: 1799.98px)\"},{hash:\"2umpuq\",mediaQuery:\"(min-width: 900px) and (max-width: 1399.98px)\"},{hash:\"ypltgp\",mediaQuery:\"(max-width: 899.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{fSadPABOh:\"features\",g2XIzuXzV:\"cta\",Gqf1DSwbi:\"competitive\",JycLzHCyd:\"top\",k3xS1YdfO:\"footer\",KdO5XZGRc:\"about\",OvjUMF1cx:\"cta-1\",QJYvknrdF:\"about-1\",ZeWfFBS_p:\"game-library\"},robots:\"max-image-preview:large\",serializationId:\"framer-VUTVJ\",title:siteMetadata(params,activeLocale).title||\"Page\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}