@fiddle-digital/string-tune 1.2.1-alpha.5 → 1.2.1-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var ve=class{context;SETTLE_THRESHOLD_SQ=.01;smoothingFactor;lastMouseX=0;lastMouseY=0;lastMouseTime=0;_lerpStepXArgs={from:0,to:0,progress:0};_lerpStepYArgs={from:0,to:0,progress:0};constructor(t=.1,e){this.smoothingFactor=t,this.context=e,this.onSettingsChange({isDesktop:e.data.viewport.windowWidth>1024,isForceRebuild:!1,widthChanged:!0,heightChanged:!0,scrollHeightChanged:!0})}onMouseMove(t){let e=this.context.data.cursor;e.targetX=t.clientX,e.targetY=t.clientY;let r=performance.now(),i=Math.max(1,r-this.lastMouseTime);e.velocityX=(t.clientX-this.lastMouseX)/i,e.velocityY=(t.clientY-this.lastMouseY)/i,this.lastMouseX=t.clientX,this.lastMouseY=t.clientY,this.lastMouseTime=r}onFrame(){let t=this.context.data.cursor,e=t.targetX,r=t.targetY,i=t.smoothedX,n=t.smoothedY;this._lerpStepXArgs.from=i,this._lerpStepXArgs.to=e,this._lerpStepXArgs.progress=this.smoothingFactor,this._lerpStepYArgs.from=n,this._lerpStepYArgs.to=r,this._lerpStepYArgs.progress=this.smoothingFactor;let s=this.context.tools.lerp.process(this._lerpStepXArgs),o=this.context.tools.lerp.process(this._lerpStepYArgs);s*s+o*o<this.SETTLE_THRESHOLD_SQ?(t.smoothedX=e,t.smoothedY=r,t.stepX=0,t.stepY=0):(t.smoothedX+=s,t.smoothedY+=o,t.stepX=s,t.stepY=o)}onSettingsChange(t){let e=Number(this.context.settings["cursor-lerp"]);this.setLerpFactor(e)}setLerpFactor(t){this.smoothingFactor=this.context.tools.adaptiveLerp.process({value:t,inMin:.1,inMax:1,outMin:.05,outMax:.65})}};var Ct=class{listeners={};stateEvents=new Set;lastPayloads={};constructor(){this.stateEvents.add("screen:mobile"),this.stateEvents.add("screen:tablet"),this.stateEvents.add("screen:laptop"),this.stateEvents.add("screen:desktop"),this.stateEvents.add("start")}registerStateEvent(t,e){this.stateEvents.add(t),e!==void 0&&(this.lastPayloads[t]=e)}on(t,e,r){let i=r?`${t}:${r}`:t;this.listeners[i]||(this.listeners[i]=new Set),this.listeners[i].add(e),this.stateEvents.has(i)&&this.lastPayloads[i]!==void 0&&e(this.lastPayloads[i])}off(t,e,r){let i=r?`${t}:${r}`:t;this.listeners[i]&&this.listeners[i].delete(e)}emit(t,e){this.stateEvents.has(t)&&(this.lastPayloads[t]=e);let r=this.listeners[t];if(r)for(let i of r)i(e)}onProgress(t,e){this.on(`progress:${t}`,e)}emitProgress(t,e){this.emit(`progress:${t}`,e)}onInview(t,e){this.on(`object:inview:${t}`,e)}emitInview(t,e){this.emit(`object:inview:${t}`,e)}onScroll(t){this.on("scroll",t)}emitScroll(t){this.emit("scroll",t)}onUpdate(t){this.on("update",t)}emitUpdate(){this.emit("update")}clear(t){delete this.listeners[t]}clearAll(){this.listeners={}}};var be=class{constructor(t){this.data=t}modules=[];uiModules=[];allModules=[];register(t){if(t.type===1?this.modules.push(t):t.type===2&&this.uiModules.push(t),t.cssProperties&&t.cssProperties.length>0&&typeof window.CSS<"u"&&"registerProperty"in window.CSS)for(let e=0;e<t.cssProperties.length;e++)try{window.CSS.registerProperty(t.cssProperties[e])}catch{}t.onSubscribe(),this.rebuildAllModules()}find(t){for(let e=0;e<this.allModules.length;e++){let r=this.allModules[e];if(r instanceof t)return r}}onInit(){this.callAll("onInit")}onFrame(){this.callAll("onFrame")}onMutate(){this.callAll("onMutate")}onScrollMeasure(){this.callAll("onScrollMeasure")}onMouseMoveMeasure(){this.callAll("onMouseMoveMeasure")}onScroll(){this.callAll("onScroll")}onResizeWidth(){this.callAll("onResizeWidth")}onResize(){this.callAll("onResize")}onRebuild(){this.callAll("onRebuild")}onMouseMove(t){this.callAll("onMouseMove",t)}onWheel(t){this.callAll("onWheel",t)}onDirectionChange(){this.callAll("onDirectionChange")}onScrollStart(){this.callAll("onScrollStart")}onScrollStop(){this.callAll("onScrollStop")}onAxisChange(){this.callAll("onAxisChange")}onDeviceChange(){this.callAll("onDeviceChange")}onScrollConfigChange(){this.callAll("onScrollConfigChange")}onSettingsChange(t){this.callAll("onSettingsChange")}onDOMMutate(t,e){this.callAll("onDOMMutate",t,e)}destroy(){this.callAll("onUnsubscribe"),this.callAll("destroy"),this.modules=[],this.uiModules=[],this.allModules=[]}get all(){return this.allModules}get core(){return this.modules}get ui(){return this.uiModules}callAll(t,e,r){this.modules.length>0&&this.callLifecycleStrict(this.modules,t,e,r),this.uiModules.length>0&&this.callLifecycleStrict(this.uiModules,t,e,r)}callLifecycleStrict(t,e,r,i){let n=t.length;switch(e){case"onFrame":case"onMutate":case"onScrollMeasure":case"onMouseMoveMeasure":case"onScroll":for(let s=0;s<n;s++){let o=t[s];o&&o[e](this.data)}break;case"onDOMMutate":for(let s=0;s<n;s++){let o=t[s];o&&o[e](r,i)}break;case"onMouseMove":case"onWheel":for(let s=0;s<n;s++){let o=t[s];o&&o[e](r)}break;default:for(let s=0;s<n;s++){let o=t[s];o&&o[e]()}break}}rebuildAllModules(){this.allModules.length=0;for(let t=0;t<this.modules.length;t++)this.allModules.push(this.modules[t]);for(let t=0;t<this.uiModules.length;t++)this.allModules.push(this.uiModules[t])}};var ye=class{constructor(t,e,r){this.parent=r;this.id=t,this.htmlElement=e}id;htmlElement;properties=new Map;easingFn;get parentObject(){return this.parent}setProperty(t,e){this.properties.set(t,e)}getProperty(t){return this.properties.get(t)??null}setEasing(t){this.easingFn=t??void 0}getEasing(){return this.easingFn}applyProgress(t,e){let r=this.easingFn??e;return r?r(t):t}};var _t=class{htmlElement;id="";keys=[];tokens=[];mirrors=new Map;_cachedMirrorObjects=[];_cachedConnects=[];_mirrorsDirty=!1;properties=new Map;modules=[];events=new Ct;eventNameCache=new Map;eventNameSuffixCache=new Map;constructor(t,e){this.htmlElement=e,this.id=t}getScopedEventName(t,e){if(e==null){let s=this.eventNameCache.get(t);if(s)return s;let o=`${t}:${this.id}`;return this.eventNameCache.set(t,o),o}let r=this.eventNameSuffixCache.get(t);r||(r=new Map,this.eventNameSuffixCache.set(t,r));let i=r.get(e);if(i)return i;let n=`${t}:${this.id}:${e}`;return r.set(e,n),n}setProperty(t,e){this.properties.set(t,e)}getProperty(t){return this.properties.get(t)??null}enter(){this.events.emit("enter",this),this.setProperty("active",!0),this.modules.forEach(t=>{t.enterObject(this.id,this)})}leave(){this.events.emit("leave",this),this.setProperty("active",!1),this.modules.forEach(t=>{t.exitObject(this.id)})}remove(){this.modules.forEach(t=>{t.removeObject(this.id)})}setInviewAutoBlocked(t){this.setProperty("inview-auto-blocked",t)}isInviewAutoBlocked(){return this.getProperty("inview-auto-blocked")===!0}setInviewManualActive(t){this.setProperty("inview-manual-active",t)}isInviewManualActive(){return this.getProperty("inview-manual-active")===!0}syncInviewClass(){if(this.isInviewAutoBlocked()){this.htmlElement.classList.remove("-inview");return}if(this.isInviewManualActive()){this.htmlElement.classList.add("-inview");return}if(this.getProperty("is-inview")===!0){this.htmlElement.classList.add("-inview");return}this.getProperty("repeat")&&this.htmlElement.classList.remove("-inview")}show(){this.isInviewAutoBlocked()||this.htmlElement.classList.add("-inview")}hide(){if(this.isInviewAutoBlocked()){this.htmlElement.classList.remove("-inview");return}if(this.isInviewManualActive())return;this.getProperty("repeat")&&this.htmlElement.classList.remove("-inview")}connect(t){return this.modules.includes(t)?!1:(this.modules.push(t),!0)}disconnect(t){let e=this.modules.indexOf(t);return e===-1?!1:(this.modules.splice(e,1),!0)}isConnectedTo(t){return this.modules.includes(t)}setTokens(t){this.tokens=t,this.keys=t.map(e=>e.key)}getToken(t){for(let e=0;e<this.tokens.length;e++)if(this.tokens[e].key===t)return this.tokens[e];return null}updateMirrorsCache(){if(this._mirrorsDirty){this._cachedMirrorObjects=Array.from(this.mirrors.values());let t=this._cachedMirrorObjects.length;this._cachedConnects=new Array(t);for(let e=0;e<t;e++)this._cachedConnects[e]=this._cachedMirrorObjects[e].htmlElement;this._mirrorsDirty=!1}}addMirror(t){this.mirrors.has(t.id)||(this.mirrors.set(t.id,t),this._mirrorsDirty=!0)}removeMirror(t){this.mirrors.delete(t)&&(this._mirrorsDirty=!0)}get mirrorObjects(){return this.updateMirrorsCache(),this._cachedMirrorObjects}get connects(){return this.updateMirrorsCache(),this._cachedConnects}};var Ft=class{readQueue=[];writeQueue=[];computeQueue=[];isProcessing=!1;pendingFrame=null;rectCache=new WeakMap;dimensionCache=new WeakMap;scheduleRead(t,e=0){this.readQueue.push({priority:e,execute:t}),this.scheduleFlush()}scheduleCompute(t,e=0){this.computeQueue.push({priority:e,execute:t}),this.scheduleFlush()}scheduleWrite(t,e=0){this.writeQueue.push({priority:e,execute:t}),this.scheduleFlush()}batchModuleInitialization(t){t.forEach(({module:e,object:r,element:i,attributes:n,globalId:s})=>{this.scheduleRead(()=>{let o=i.getBoundingClientRect();this.rectCache.set(i,o),this.dimensionCache.set(i,{width:i.offsetWidth||i.clientWidth||o.width,height:i.offsetHeight||i.clientHeight||o.height}),e.initializeObject(s,r,i,n)},1)}),t.forEach(({module:e,object:r,windowSize:i})=>{this.scheduleCompute(()=>{e.calculatePositions(r,i)},2)}),t.forEach(({module:e,object:r})=>{this.scheduleWrite(()=>{e.connectObject(r),e.addObject(r.id,r)},3)})}getCachedRect(t){return this.rectCache.get(t)}getCachedDimensions(t){return this.dimensionCache.get(t)}scheduleFlush(){this.pendingFrame!==null||this.isProcessing||(this.pendingFrame=requestAnimationFrame(()=>{this.flush()}))}flush(){this.isProcessing=!0,this.pendingFrame=null;let t=(e,r)=>r.priority-e.priority;try{[...this.readQueue].sort(t).forEach(n=>{try{n.execute()}catch(s){console.error("[DOMBatcher] Read task error:",s)}}),this.readQueue=[],[...this.computeQueue].sort(t).forEach(n=>{try{n.execute()}catch(s){console.error("[DOMBatcher] Compute task error:",s)}}),this.computeQueue=[],[...this.writeQueue].sort(t).forEach(n=>{try{n.execute()}catch(s){console.error("[DOMBatcher] Write task error:",s)}}),this.writeQueue=[]}finally{this.rectCache=new WeakMap,this.dimensionCache=new WeakMap,this.isProcessing=!1}}flushSync(){this.pendingFrame!==null&&(cancelAnimationFrame(this.pendingFrame),this.pendingFrame=null),this.flush()}clear(){this.pendingFrame!==null&&(cancelAnimationFrame(this.pendingFrame),this.pendingFrame=null),this.readQueue=[],this.writeQueue=[],this.computeQueue=[],this.rectCache=new WeakMap,this.dimensionCache=new WeakMap}};var Se=class{desktop={rebuild:{width:!0,height:!0,scrollHeight:!0}};mobile={rebuild:{width:!0,height:!0,scrollHeight:!0}}};var Yn=Object.freeze({}),x=class{attributesToMap;cssProperties=[];objectMapOnPage=new Map;allObjectMapOnPage=new Map;objectsOnPage=[];allObjectsOnPage=[];objectMap=new Map;allObjectMap=new Map;objects=[];allObjects=[];htmlKey="";defaultModeScope="all";_type=1;get type(){return this._type}get key(){return this.htmlKey}tools;data;settings;events;centers;hover;objectManager;signals;permissions=new Se;constructor(t){this.tools=t.tools,this.data=t.data,this.settings=t.settings,this.events=t.events,this.centers=t.centers,this.hover=t.hover,this.objectManager=t.objectManager,this.signals=t.signals,this.attributesToMap=[{key:"active",type:"boolean",fallback:this.settings.active},{key:"fixed",type:"boolean",fallback:this.settings.fixed},{key:"outside-container",type:"boolean",fallback:this.settings["outside-container"]},{key:"repeat",type:"boolean",fallback:this.settings.repeat},{key:"self-disable",type:"boolean",fallback:this.settings["self-disable"]},{key:"abs",type:"boolean",fallback:this.settings.abs},{key:"key",type:"string",fallback:this.settings.key},{key:"offset-top",type:"dimension",fallback:this.settings["offset-top"]},{key:"offset-bottom",type:"dimension",fallback:this.settings["offset-bottom"]},{key:"offset-enter",type:"dimension",fallback:this.settings["offset-enter"]},{key:"offset-exit",type:"dimension",fallback:this.settings["offset-exit"]},{key:"inview-top",type:"dimension",fallback:this.settings["inview-top"]},{key:"inview-bottom",type:"dimension",fallback:this.settings["inview-bottom"]},{key:"start",type:"number",fallback:(e,r,i)=>{let n=i.top;return Math.floor(n)+this.data.scroll.transformedCurrent}},{key:"end",type:"number",fallback:(e,r,i)=>{let n=i.top,s=i.height;return n+s-this.data.scroll.transformedCurrent}},{key:"size",type:"number",fallback:(e,r,i)=>i.height},{key:"half-width",type:"number",fallback:(e,r,i)=>i.width/2},{key:"half-height",type:"number",fallback:(e,r,i)=>i.height/2},{key:"enter-el",type:"string",fallback:this.settings["enter-el"]},{key:"enter-vp",type:"string",fallback:this.settings["enter-vp"]},{key:"exit-el",type:"string",fallback:this.settings["exit-el"]},{key:"exit-vp",type:"string",fallback:this.settings["exit-vp"]}]}initializeObject(t,e,r,i){let n=this.tools.boundingClientRect.process({element:r});for(let{key:s,type:o,fallback:a,transform:l}of this.attributesToMap){let c=typeof a=="function"?a(r,e,n):a,u=i[s]??i[`string-${s}`]??i[`data-string-${s}`],p=this.tools.domAttribute.process({element:r,key:s,fallback:u??this.settings[s]??c}),g=this.parseAttribute(p,o,{element:r,boundingRect:n,viewportHeight:this.data.viewport.windowHeight,baseRem:this.data.viewport.baseRem});l&&(g=l(g)),e.setProperty(s,g)}this.cacheLayoutSnapshot(e,r)}cacheLayoutSnapshot(t,e){let r=this.data.scroll.container??document.body??document.documentElement,i=this.data.scroll.elementContainer??document.documentElement,n=this.tools.transformNullify.process({element:e}),s=window.getComputedStyle(e),o=this.getOffsetSize(e,s),a=0,l=0,c=n.width,u=n.height;if((!Number.isFinite(c)||c<=0)&&(c=o.width),(!Number.isFinite(u)||u<=0)&&(u=o.height),Number.isFinite(n.left)&&Number.isFinite(n.top)&&n.width>0&&n.height>0)if(r===document.body||r===document.documentElement)a=n.left+i.scrollLeft,l=n.top+i.scrollTop;else{let p=r.getBoundingClientRect();a=n.left-p.left+r.scrollLeft,l=n.top-p.top+r.scrollTop}else{let p=this.getOffsetChainPosition(e);if(r===document.body||r===document.documentElement)a=p.left,l=p.top;else{let g=this.getOffsetChainPosition(r);a=p.left-g.left+r.scrollLeft,l=p.top-g.top+r.scrollTop}}t.setProperty("layout-doc-left",a),t.setProperty("layout-doc-top",l),t.setProperty("layout-width",c),t.setProperty("layout-height",u),t.setProperty("layout-border-radius",s.borderRadius||"0px")}getOffsetSize(t,e){let r=parseFloat(e.width),i=parseFloat(e.height);return{width:t.offsetWidth||t.clientWidth||(Number.isFinite(r)?r:0),height:t.offsetHeight||t.clientHeight||(Number.isFinite(i)?i:0)}}getOffsetChainPosition(t){let e=0,r=0,i=t;for(;i;)e+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{left:e,top:r}}calculatePositions(t,e){let r=t.getProperty("start"),i=t.getProperty("size"),n=t.getProperty("offset-enter")??t.getProperty("offset-bottom"),s=t.getProperty("offset-exit")??t.getProperty("offset-top"),o=t.getProperty("enter-el"),a=t.getProperty("enter-vp"),l=t.getProperty("exit-el"),c=t.getProperty("exit-vp"),u=-0,p=-0,g=-0,m=-0;o==="top"&&a==="top"||o==="left"&&a==="left"?(g=-e+1,u=r-n):o==="top"&&a==="bottom"||o==="left"&&a==="right"?u=r-e-n:o==="bottom"&&a==="top"||o==="right"&&a==="left"?(g=-e-i+1,u=r+i-n):(o==="bottom"&&a==="bottom"||o==="right"&&a==="right")&&(g=-i+1,u=r-e+i-n),l==="top"&&c==="top"||l==="left"&&c==="left"?(m=-i+1,p=r+s):l==="top"&&c==="bottom"||l==="left"&&c==="right"?(m=-e-i+1,p=r-e+s):l==="bottom"&&c==="top"||l==="right"&&c==="left"?p=r+i+s:(l==="bottom"&&c==="bottom"||l==="right"&&c==="right")&&(m=-e+1,p=r-e+i+s),t.setProperty("start-bias",g),t.setProperty("end-bias",m),t.setProperty("start-position",u-this.data.scroll.topPosition),t.setProperty("end-position",p-this.data.scroll.topPosition),t.setProperty("difference-position",p-u);let h=t.getProperty("inview-top")??-0,f=t.getProperty("inview-bottom")??-0;t.setProperty("inview-start-position",t.getProperty("start-position")+h),t.setProperty("inview-end-position",t.getProperty("end-position")+f)}parseAttribute(t,e,r=Yn){if(t==null)return null;let i=typeof t=="string"?t:String(t);if(typeof e=="object"&&e.type==="enum")return e.values.includes(i)?i:e.values[0];switch(e){case"number":return typeof t=="string"?+t||parseFloat(t):t;case"boolean":return i===""||i==="true";case"json":try{return JSON.parse(i)}catch{return null}case"tuple":return i.trim().split(/\s+/);case"easing":return this.tools.easingFunction.process({easing:i});case"color":return this.tools.colorParser.process({value:i});case"dimension":return t===0||t=="0"?0:r.element!=null&&r.viewportHeight!=null&&r.baseRem!=null&&r.boundingRect!=null?this.tools.unitParser.process({value:t,element:r.element,viewportHeight:r.viewportHeight,boundingRect:r.boundingRect,baseRem:r.baseRem}):0;case"breakpoint-dimension":if(r.element!=null&&r.viewportHeight!=null&&r.baseRem!=null&&r.boundingRect!=null){let n=i.trim().split("|"),s=[];for(let o of n)if(o.includes(":")){let[a,l]=o.split(":");s.push({breakpoint:parseInt(a),value:this.tools.unitParser.process({value:`${l}|`,element:r.element,viewportHeight:r.viewportHeight,boundingRect:r.boundingRect,baseRem:r.baseRem})})}else s.push({breakpoint:0,value:this.tools.unitParser.process({value:o,element:r.element,viewportHeight:r.viewportHeight,boundingRect:r.boundingRect,baseRem:r.baseRem})});return s}default:return t}}canConnect(t){return t.keys.includes(this.htmlKey)}isTokenEnabledInCurrentMode(t){let e=this.data.scroll.mode;return t.modeSpec.kind==="all"?!0:t.modeSpec.kind==="include"?t.modeSpec.values.includes(e):this.defaultModeScope==="all"?!0:this.defaultModeScope.includes(e)}isObjectEnabledInCurrentMode(t){let e=t.getToken(this.htmlKey);return e?this.isTokenEnabledInCurrentMode(e):!1}disconnectObject(t){t.disconnect(this)}connectObject(t){t.connect(this)&&this.onObjectConnected(t)}enterObject(t,e){this.allObjectMap.has(t)||(this.allObjectMap.set(t,e),this.allObjects.push(e)),this.isObjectEnabledInCurrentMode(e)&&!this.objectMap.has(t)&&(this.objectMap.set(t,e),this.objects.push(e))}fastRemoveFromArray(t,e){if(e===-1)return;let r=t.length-1;e!==r&&(t[e]=t[r]),t.pop()}exitObject(t){let e=this.objectMap.get(t);if(e){this.objectMap.delete(t);let n=this.objects.indexOf(e);this.fastRemoveFromArray(this.objects,n)}let r=this.allObjectMap.get(t);if(!r)return;this.allObjectMap.delete(t);let i=this.allObjects.indexOf(r);this.fastRemoveFromArray(this.allObjects,i)}addObject(t,e){this.allObjectMapOnPage.has(t)||(this.allObjectMapOnPage.set(t,e),this.allObjectsOnPage.push(e)),this.isObjectEnabledInCurrentMode(e)&&!this.objectMapOnPage.has(t)&&(this.objectMapOnPage.set(t,e),this.objectsOnPage.push(e))}removeObject(t){let e=this.objectMapOnPage.get(t);if(e){this.objectMapOnPage.delete(t);let n=this.objectsOnPage.indexOf(e);this.fastRemoveFromArray(this.objectsOnPage,n)}let r=this.allObjectMapOnPage.get(t);if(!r)return;this.allObjectMapOnPage.delete(t);let i=this.allObjectsOnPage.indexOf(r);this.fastRemoveFromArray(this.allObjectsOnPage,i),this.exitObject(t),this.onObjectDisconnected(r)}onObjectConnected(t){}onObjectDisconnected(t){}get respectSelfDisable(){return!0}isPrimaryElementEnabled(t){return!this.respectSelfDisable||t.getProperty("self-disable")!==!0}applyToElementAndConnects(t,e,r=e){this.isPrimaryElementEnabled(t)&&e(t.htmlElement),t.mirrorObjects.forEach(i=>r(i.htmlElement,i))}applyVarToElement(t,e,r){this.isPrimaryElementEnabled(t)&&this.tools.styleTxn.setVar(t.htmlElement,e,r)}applyPropToElement(t,e,r){this.isPrimaryElementEnabled(t)&&this.tools.styleTxn.setProp(t.htmlElement,e,r)}applyVarToConnects(t,e,r){for(let i of t.mirrorObjects)this.tools.styleTxn.setVar(i.htmlElement,e,r)}applyPropToConnects(t,e,r){for(let i of t.mirrorObjects)this.tools.styleTxn.setProp(i.htmlElement,e,r)}getObjectEventName(t,e,r){return t.getScopedEventName(e,r)}emitSignal(t,e,r){t.setProperty(`signal:${e}`,r),this.signals.publish(t.id,e,r)}getSignal(t,e){return this.signals.get(t,e)}clearManagedStyles(t){let e=i=>{for(let s=0;s<this.cssProperties.length;s++)i.style.removeProperty(this.cssProperties[s].name);let n=t.getProperty("key");typeof n=="string"&&n.length>0&&i.style.removeProperty(n)};e(t.htmlElement);let r=t.mirrorObjects;for(let i=0;i<r.length;i++)e(r[i].htmlElement)}onObjectModeActivated(t){}onObjectModeDeactivated(t){this.clearManagedStyles(t)}rebuildActiveObjectsForCurrentMode(){let t=new Map(this.objectMapOnPage);this.objectMapOnPage=new Map,this.objectsOnPage=[];for(let e=0;e<this.allObjectsOnPage.length;e++){let r=this.allObjectsOnPage[e];this.isObjectEnabledInCurrentMode(r)&&(this.objectMapOnPage.set(r.id,r),this.objectsOnPage.push(r))}this.objectMap=new Map,this.objects=[];for(let e=0;e<this.allObjects.length;e++){let r=this.allObjects[e];this.isObjectEnabledInCurrentMode(r)&&(this.objectMap.set(r.id,r),this.objects.push(r))}t.forEach((e,r)=>{this.objectMapOnPage.has(r)||this.onObjectModeDeactivated(e)}),this.objectMapOnPage.forEach((e,r)=>{t.has(r)||this.onObjectModeActivated(e)})}destroy(){this.objects=[],this.allObjects=[],this.objectMap=new Map,this.allObjectMap=new Map,this.objectsOnPage=[],this.allObjectsOnPage=[],this.objectMapOnPage=new Map,this.allObjectMapOnPage=new Map}onInit(){}onSubscribe(){}onUnsubscribe(){}onFrame(t){}onMutate(t){}onScrollMeasure(t){}onMouseMoveMeasure(t){}onResize(){}onResizeWidth(){}onRebuild(){}onScroll(t){}onDirectionChange(){}onScrollStart(){}onScrollStop(){}onScrollDirectionChange(){}onAxisChange(){}onDeviceChange(){}onScrollConfigChange(){this.rebuildActiveObjectsForCurrentMode()}onSettingsChange(){}onDOMRebuild(){}onMouseMove(t){}onWheel(t){}onDOMMutate(t,e){}};var Le=class{constructor(t,e,r,i){this.data=t;this.modules=e;this.events=r;this.tools=i}objects=new Map;connectQueue=[];connectableModulesBuffer=[];mirrors=new Map;mirrorId=1;globalId=1;domBatcher=new Ft;domBatcherEnabled=!1;inviewStarts=[];inviewEnds=[];inviewActive=new Set;inviewStartIdx=0;inviewEndIdx=0;inviewIndexDirty=!0;lastInviewScrollPos=0;intersectionObserverEnabled=!0;domObserver=null;get all(){return this.objects}add(t){let e=`string-${this.globalId++}`,r="string-id";t.getAttribute("string-id")&&(e=t.getAttribute("string-id"),r="string-id"),t.getAttribute("data-string-id")&&(e=t.getAttribute("data-string-id"),r="data-string-id");let i=e&&this.objects.has(e)?this.objects.get(e):new _t(e,t);t.setAttribute(r,i.id);let n=t.getAttribute("string")??t.getAttribute("data-string");n&&i.setTokens(this.parseStringTokens(n)),t.setAttribute("string-inited",""),this.objects.set(i.id,i);let s=this.getAllAttributes(t),o=this.modules.core;for(let u=0;u<o.length;u++){let p=o[u];"setupCoreProperties"in p&&typeof p.setupCoreProperties=="function"&&p.setupCoreProperties(i,t,s)}let a=this.connectableModulesBuffer;a.length=0;let l=this.modules.all,c=null;for(let u=0;u<l.length;u++){let p=l[u];p instanceof x&&p.key===""&&(c=p),p instanceof x&&p.canConnect(i)&&a.push(p)}if(a.length===0&&c&&(i.setProperty("inview-fallback",!0),a.push(c)),this.domBatcherEnabled&&a.length>0){let u=new Array(a.length);for(let p=0;p<a.length;p++)u[p]={module:a[p],object:i,element:t,attributes:s,globalId:this.globalId,windowSize:this.data.viewport.windowHeight};this.domBatcher.batchModuleInitialization(u),this.domBatcher.scheduleWrite(()=>{this.initObservers(i,t),this.checkInviewForObject(i)})}else{for(let u=0;u<a.length;u++){let p=a[u];p.initializeObject(this.globalId,i,t,s),p.calculatePositions(i,this.data.viewport.windowHeight),p.connectObject(i),p.addObject(i.id,i)}this.initObservers(i,t),this.checkInviewForObject(i)}if(this.connectQueue.length>0){let u=0;for(let p=0;p<this.connectQueue.length;p++){let g=this.connectQueue[p];if(g.id===i.id){this.attachMirrorToObject(i,g.element);continue}this.connectQueue[u++]=g}this.connectQueue.length=u}a.length=0,this.inviewIndexDirty=!0}setDOMBatcherEnabled(t){this.domBatcherEnabled=t,t||this.domBatcher.flushSync()}setIntersectionObserverEnabled(t){if(this.intersectionObserverEnabled!==t){this.intersectionObserverEnabled=t;for(let e of this.objects.values())e.getProperty("observer-progress")?.disconnect(),t&&this.initObservers(e,e.htmlElement)}}attachModule(t){this.objects.forEach(e=>{if(!t.canConnect(e))return;let r=e.htmlElement,i=this.getAllAttributes(r);t.initializeObject(this.globalId,e,r,i),t.calculatePositions(e,this.data.viewport.windowHeight),t.connectObject(e),t.addObject(e.id,e),e.getProperty("active")===!0&&t.enterObject(e.id,e)})}refreshModuleConnectionsForCurrentMode(){let t=this.modules.all;for(let e of this.objects.values()){let r=e.htmlElement;if(!r||!r.isConnected)continue;let i=null;for(let n=0;n<t.length;n++){let s=t[n];if(!(s instanceof x)||!e.keys.includes(s.key))continue;let o=s.canConnect(e),a=e.isConnectedTo(s);if(o&&!a){i==null&&(i=this.getAllAttributes(r)),s.initializeObject(this.globalId,e,r,i),s.calculatePositions(e,this.data.viewport.windowHeight),s.connectObject(e),s.addObject(e.id,e),e.getProperty("active")===!0&&s.enterObject(e.id,e);continue}!o&&a&&(s.exitObject(e.id),s.removeObject(e.id),s.disconnectObject(e))}}}invalidateInviewIndex(){this.inviewIndexDirty=!0}refreshLayoutForRoot(t){if(!t)return;let e=new Set,r=n=>{let s=n.getAttribute("string-id")??n.getAttribute("data-string-id");if(!s)return;let o=this.objects.get(s);o&&e.add(o)};if(t instanceof HTMLElement){r(t);let n=t.querySelectorAll("[string-id],[data-string-id]");for(let s=0;s<n.length;s++)r(n[s])}if(e.size===0)return;let i=this.data.viewport.windowHeight;for(let n of e){let s=n.htmlElement;if(!s||!s.isConnected)continue;let o=this.getAllAttributes(s),a=this.modules.all;for(let l=0;l<a.length;l++){let c=a[l];c instanceof x&&c.canConnect(n)&&(c.initializeObject(this.globalId,n,s,o),c.calculatePositions(n,i))}}this.inviewIndexDirty=!0,this.checkInview()}remove(t){let e=this.objects.get(t);e&&(e.events.clearAll(),e.getProperty("observer-progress")?.disconnect(),e.getProperty("observer-inview")?.disconnect(),e.htmlElement.removeAttribute("string-inited"),e.leave(),e.remove(),e.mirrorObjects.forEach(r=>{let i=this.getMirrorIds(r.htmlElement);this.setMirrorIds(r.htmlElement,i.filter(s=>s!==r.id)),this.mirrors.delete(r.id);let n=r.htmlElement.getAttribute("string-copy-from")??r.htmlElement.getAttribute("data-string-copy-from");n&&this.enqueueConnection(n,r.htmlElement)}),this.objects.delete(t),this.inviewActive.delete(e),this.inviewIndexDirty=!0)}enqueueConnection(t,e){let r=this.splitPipeAndTrim(t);for(let i=0;i<r.length;i++){let n=r[i];this.connectQueue.some(s=>s.id===n&&s.element===e)||this.connectQueue.push({id:n,element:e})}}linkMirror(t,e){let r=this.splitPipeAndTrim(t);for(let i=0;i<r.length;i++){let n=r[i],s=this.objects.get(n);s?this.attachMirrorToObject(s,e):this.enqueueConnection(n,e)}}attachMirrorToObject(t,e){let r=this.getMirrorIds(e);for(let c of r){let u=this.mirrors.get(c);if(u&&u.parentObject===t)return u}let i=`string-mirror-${this.mirrorId++}`,n=new ye(i,e,t);this.setMirrorIds(e,[...r,i]),t.addMirror(n),this.mirrors.set(i,n);let s=e.getAttribute("string-easing")??e.getAttribute("data-string-easing");s&&s.trim().length>0&&(n.setEasing(this.tools.easingFunction.process({easing:s})),n.setProperty("easing",s));let o=t.getProperty("key"),a=t.getProperty("progress-raw"),l=t.getProperty("progress-value");if(typeof a=="number"){let c=t.getProperty("easing")??void 0,u=n.applyProgress(a,c);n.setProperty("progress",u),o&&this.tools.styleTxn.setVar(n.htmlElement,o,u)}else typeof l=="number"&&(n.setProperty("progress",l),o&&this.tools.styleTxn.setVar(n.htmlElement,o,l));return n}detachMirrorByElement(t){let e=this.getMirrorIds(t);e.length!==0&&(e.forEach(r=>this.detachMirrorById(r)),this.clearMirrorIds(t))}detachMirrorById(t){let e=this.mirrors.get(t);e&&(e.parentObject.removeMirror(t),this.mirrors.delete(t))}getMirrorIds(t){let e=t.getAttribute("string-mirror-id")??t.getAttribute("data-string-mirror-id");return e?this.splitPipeAndTrim(e):[]}setMirrorIds(t,e){if(e.length===0){this.clearMirrorIds(t);return}t.setAttribute("string-mirror-id",e.join("|"))}clearMirrorIds(t){t.removeAttribute("string-mirror-id"),t.removeAttribute("data-string-mirror-id")}getAllAttributes(t){let e={},r=t.attributes;for(let i=0;i<r.length;i++){let n=r[i];e[n.name]=n.value}return e}initObservers(t,e){if(!this.intersectionObserverEnabled)return;let r=t.getProperty("offset-exit")??t.getProperty("offset-top")??0,i=t.getProperty("offset-enter")??t.getProperty("offset-bottom")??0;t.getProperty("observer-progress")?.disconnect();let n=g=>{g.forEach(m=>{this.events.emit(t.getScopedEventName("object:activate"),m.isIntersecting),m.isIntersecting?t.enter():t.leave()})},s=t.getProperty("outside-container"),o=e.getAttribute("string-outside-container")??e.getAttribute("data-string-outside-container"),a=o!=null?o.trim().toLowerCase():null,l=a===""||a==="true"||a==="1",c=s!=null?s===!0:l,u=this.data.scroll.container===document.body||c?null:this.data.scroll.container,p=new IntersectionObserver(n,{root:u,rootMargin:`${i+this.data.viewport.windowHeight}px 0px ${r+this.data.viewport.windowHeight}px 0px`,threshold:0});p.observe(e),t.setProperty("observer-progress",p)}observeDOM(){this.domObserver?.disconnect();let t=new MutationObserver(e=>{let r=!1,i=!1;for(let n=0;n<e.length;n++){let s=e[n];if(s.type==="childList"){let o=!1;for(let a=0;a<s.removedNodes.length;a++){let l=s.removedNodes[a];if(l.nodeType!==Node.ELEMENT_NODE)continue;o=!0;let c=l;if(this.detachMirrorByElement(c),this.isFixed(c))continue;(c.hasAttribute("string")||c.hasAttribute("data-string"))&&(this.handleRemoved(c),i=!0);let u=c.querySelectorAll("[string],[data-string]");for(let g=0;g<u.length;g++){let m=u[g];this.isFixed(m)||(this.handleRemoved(m),i=!0)}let p=c.querySelectorAll("[string-copy-from],[data-string-copy-from]");for(let g=0;g<p.length;g++)this.detachMirrorByElement(p[g])}for(let a=0;a<s.addedNodes.length;a++){let l=s.addedNodes[a];if(l.nodeType!==Node.ELEMENT_NODE)continue;o=!0;let c=l;if(this.isFixed(c))continue;c.hasAttribute("string")&&!c.hasAttribute("string-inited")&&(this.add(c),i=!0);let u=c.querySelectorAll("[string]:not([string-inited]),[data-string]:not([string-inited])");for(let m=0;m<u.length;m++)this.add(u[m]),i=!0;let p=c.getAttribute("string-copy-from")??c.getAttribute("data-string-copy-from");p&&this.linkMirror(p,c);let g=c.querySelectorAll("[string-copy-from],[data-string-copy-from]");for(let m=0;m<g.length;m++){let h=g[m],f=h.getAttribute("string-copy-from")??h.getAttribute("data-string-copy-from");f&&this.linkMirror(f,h)}}o&&(this.modules.onDOMMutate(s.addedNodes,s.removedNodes),r=!0)}}if(r){let n=this.modules.all;for(let s=0;s<n.length;s++)n[s].onDOMRebuild();i&&this.events.emit("dom:changed",null)}});t.observe(document.body,{childList:!0,subtree:!0}),this.domObserver=t}handleRemoved(t){let e=t.getAttribute("string-id")??t.getAttribute("data-string-id");if(!e)return;let r=t.getAttribute("string-copy-from")??t.getAttribute("data-string-copy-from");r&&(this.connectQueue=this.connectQueue.filter(i=>i.id!==r)),this.remove(e)}onSettingsChange(t){for(let e of this.objects.values()){if(!e.htmlElement||!e.htmlElement.isConnected)continue;let r=null,i=this.modules.all;for(let n=0;n<i.length;n++){let s=i[n],o=!1;t.isDesktop?(s.permissions.desktop.rebuild.scrollHeight&&t.scrollHeightChanged&&(o=!0),s.permissions.desktop.rebuild.width&&t.widthChanged&&(o=!0),s.permissions.desktop.rebuild.height&&t.heightChanged&&(o=!0)):(s.permissions.mobile.rebuild.scrollHeight&&t.scrollHeightChanged&&(o=!0),s.permissions.mobile.rebuild.width&&t.widthChanged&&(o=!0),s.permissions.mobile.rebuild.height&&t.heightChanged&&(o=!0)),(o||t.isForceRebuild)&&s.canConnect(e)&&(r==null&&(r=this.getAllAttributes(e.htmlElement)),s.initializeObject(this.globalId,e,e.htmlElement,r),s.calculatePositions(e,this.data.viewport.windowHeight),s.connectObject(e))}}this.inviewIndexDirty=!0}isFixed(t){return t.hasAttribute("string-fixed")}checkInview(){let t=this.data.scroll.transformedCurrent;this.updateInviewWindow(t);for(let e of this.inviewActive)this.checkInviewForObject(e)}checkInviewForObject(t){let e=this.data.scroll.transformedCurrent;if(!this.intersectionObserverEnabled){let c=t.getProperty("start-position"),u=t.getProperty("end-position");if(c!=null&&u!=null){let p=Math.min(c,u),g=Math.max(c,u),m=t.getProperty("is-active")??!1,h=e>=p&&e<=g;h!==m&&(t.setProperty("is-active",h),this.events.emit(t.getScopedEventName("object:activate"),h),h?t.enter():t.leave())}}let r=t.getProperty("inview-start-position"),i=t.getProperty("inview-end-position"),n=t.getProperty("is-inview")??!1,s=Math.min(r,i),o=Math.max(r,i),a=e>=s&&e<=o,l=null;if(!n&&a){let c=Math.abs(e-s),u=Math.abs(o-e);l=c<=u?"enter-top":"enter-bottom"}else n&&!a&&(l=e<s?"exit-top":"exit-bottom");a!==n&&(t.setProperty("is-inview",a),t.setInviewAutoBlocked(!1),t.setInviewManualActive(!1),a?t.show():t.hide(),this.events.emit(t.getScopedEventName("object:inview"),{inView:a,direction:l}))}updateInviewWindow(t){let e=this.data.viewport.windowHeight,r=t-e,i=t+this.data.viewport.windowHeight+e;for((this.inviewIndexDirty||t<this.lastInviewScrollPos)&&this.rebuildInviewIndex(r,i);this.inviewStartIdx<this.inviewStarts.length&&this.inviewStarts[this.inviewStartIdx].pos<=i;)this.inviewActive.add(this.inviewStarts[this.inviewStartIdx].object),this.inviewStartIdx++;for(;this.inviewEndIdx<this.inviewEnds.length&&this.inviewEnds[this.inviewEndIdx].pos<r;)this.inviewActive.delete(this.inviewEnds[this.inviewEndIdx].object),this.inviewEndIdx++;this.lastInviewScrollPos=t}rebuildInviewIndex(t,e){this.inviewStarts=[],this.inviewEnds=[];for(let r of this.objects.values()){let i=r.getProperty("inview-start-position"),n=r.getProperty("inview-end-position");i==null||n==null||(this.inviewStarts.push({pos:Math.min(i,n),object:r}),this.inviewEnds.push({pos:Math.max(i,n),object:r}))}this.inviewStarts.sort((r,i)=>r.pos-i.pos),this.inviewEnds.sort((r,i)=>r.pos-i.pos),this.inviewActive.clear(),this.inviewStartIdx=this.upperBound(this.inviewStarts,e),this.inviewEndIdx=this.upperBound(this.inviewEnds,t-1);for(let r=0;r<this.inviewStartIdx;r++)this.inviewActive.add(this.inviewStarts[r].object);for(let r=0;r<this.inviewEndIdx;r++)this.inviewActive.delete(this.inviewEnds[r].object);this.inviewIndexDirty=!1}upperBound(t,e){let r=0,i=t.length;for(;r<i;){let n=r+i>>>1;t[n].pos<=e?r=n+1:i=n}return r}splitPipeAndTrim(t){let e=t.split("|"),r=[];for(let i=0;i<e.length;i++){let n=e[i].trim();n.length>0&&r.push(n)}return r}parseStringTokens(t){let e=this.splitTopLevelPipe(t),r=[];for(let i=0;i<e.length;i++){let n=e[i].trim();if(n.length===0)continue;let s=n.match(/^([^\[\]]+?)(?:\[([^\]]*)\])?$/);if(!s){r.push({raw:n,key:n,modeSpec:{kind:"default",values:[]}});continue}let o=s[1].trim(),a=s[2];if(!o)continue;if(a==null){r.push({raw:n,key:o,modeSpec:{kind:"default",values:[]}});continue}let l=a.trim();if(l.length===0){r.push({raw:n,key:o,modeSpec:{kind:"all",values:[]}});continue}let c=this.splitTopLevelPipe(l).map(u=>u.trim()).filter(u=>u.length>0);r.push({raw:n,key:o,modeSpec:c.length>0?{kind:"include",values:c}:{kind:"all",values:[]}})}return r}splitTopLevelPipe(t){let e=[],r="",i=0;for(let n=0;n<t.length;n++){let s=t[n];if(s==="["){i++,r+=s;continue}if(s==="]"){i=Math.max(0,i-1),r+=s;continue}if(s==="|"&&i===0){e.push(r),r="";continue}r+=s}return r.length>0&&e.push(r),e}destroy(){this.domObserver?.disconnect(),this.domObserver=null,this.domBatcher.clear()}};var Y={SCROLL_FORWARD:"-scroll-forward",SCROLL_BACKWARD:"-scroll-backward",SCROLLING_FORWARD:"-scrolling-forward",SCROLLING_BACKWARD:"-scrolling-backward"};var et=class{context;document;name="";isProg=!1;isParallaxEnabled=!1;_isVertical=!0;_scrollDirState=-1;_lastAppliedDirState=-1;isLastBottomScrollDirection=!0;scrollTriggerRules=[];isActive=!1;set scrollDirection(t){this._isVertical=t==="vertical"}constructor(t){this.document=document,this.context=t}onChangeDirection=()=>{};onScrollStart=()=>{};onScrollStop=()=>{};onCalcUpdate(){if(!this.isActive)return;let t=this.context.data.scroll.scrollContainer,e=this.context.data.scroll.current;t&&(this._isVertical?t.scrollTo(0,e):t.scrollTo(e,0)),this._isVertical&&this.triggerScrollRules()}onFrame(){}onWheel(t){}onScroll(t){}onTouchStart(t){}onTouchMove(t){}onTouchEnd(t){}disableScrollEvents(){}enableScrollEvents(){}activate(){this.isActive||(this.isActive=!0,this.enableScrollEvents())}deactivate(){if(!this.isActive)return;this.isActive=!1,this.disableScrollEvents(),this.isProg=!1;let t=this.context.data.scroll;t.target=t.current,t.delta=0,t.lerped=0,t.displacement=0,this.clearScrollingClasses(),this._scrollDirState=-1,this._lastAppliedDirState=-1,this.onScrollStop()}destroy(){}updateScrollDirection(t){this.isLastBottomScrollDirection=t;let e=t?1:0;if(this._scrollDirState===-1){this._scrollDirState=e;return}if(this._scrollDirState=e,this.context.data.scroll.isScrollingDown=t,this.onChangeDirection(),this.context.events.emit("scroll:direction:change",t),this.context.settings["global-class"]&&this._lastAppliedDirState!==e){let r=document.documentElement.classList;t?(r.remove(Y.SCROLLING_BACKWARD,Y.SCROLL_BACKWARD),r.add(Y.SCROLLING_FORWARD,Y.SCROLL_FORWARD)):(r.remove(Y.SCROLLING_FORWARD,Y.SCROLL_FORWARD),r.add(Y.SCROLLING_BACKWARD,Y.SCROLL_BACKWARD)),this._lastAppliedDirState=e}}clearScrollingClasses(){document.documentElement.classList.remove(Y.SCROLLING_BACKWARD,Y.SCROLLING_FORWARD,Y.SCROLL_BACKWARD,Y.SCROLL_FORWARD)}triggerScrollRules(){let t=this.scrollTriggerRules,e=t.length,r=this.context.data.scroll.current,i=this.isLastBottomScrollDirection;for(let n=0;n<e;n++){let s=t[n],a=(s.direction==="any"||i&&s.direction==="forward"||!i&&s.direction==="backward")&&r>=s.offset;a&&!s.isActive?(s.isActive=!0,s.onEnter?.(),s.toggleClass&&s.toggleClass.target.classList.add(s.toggleClass.className)):!a&&s.isActive&&(s.isActive=!1,s.onLeave?.(),s.toggleClass&&s.toggleClass.target.classList.remove(s.toggleClass.className))}}addScrollMark(t){this.scrollTriggerRules.push(t)}removeScrollMark(t){let e=this.scrollTriggerRules;for(let r=0;r<e.length;r++)if(e[r].id===t){e.splice(r,1);break}}scrollTo(t,e){}};var Ee=class extends et{name="default";previousScrollTop=0;previousScrollTime=0;isScrolling=!1;lastScrollEventTime=0;nativeVelocity=0;nativeVelocityTarget=0;scrollStopDelay=120;nativeVelocityFollow=.2;nativeVelocityDecay=.84;nativeVelocityBoost=2;nativeVelocityDeadzone=.25;constructor(t){super(t)}onFrame(){let t=0;if(this.context.data.scroll.delta!==0){let r=this.context.data.scroll.delta*this.context.data.scroll.speedAccelerate;this.context.data.scroll.delta-=r,t=r,Math.abs(t)<.1&&(this.context.data.scroll.delta=0,t=0)}let e=performance.now();this.nativeVelocityTarget*=this.nativeVelocityDecay,Math.abs(this.nativeVelocityTarget)<this.nativeVelocityDeadzone&&(this.nativeVelocityTarget=0),this.nativeVelocity+=(this.nativeVelocityTarget-this.nativeVelocity)*this.nativeVelocityFollow,Math.abs(this.nativeVelocity)<this.nativeVelocityDeadzone&&(this.nativeVelocity=0),Math.abs(this.nativeVelocity)>Math.abs(t)&&(t=this.nativeVelocity),this.context.data.scroll.lerped=t,this.isScrolling&&!(this.context.data.scroll.delta!==0||this.nativeVelocityTarget!==0||this.nativeVelocity!==0)&&e-this.lastScrollEventTime>this.scrollStopDelay&&(this.isScrolling=!1,this.onScrollStop(),this.clearScrollingClasses())}onScroll(t){let e=performance.now(),r=this.context.data.scroll.elementContainer.scrollTop,i=r-this.previousScrollTop;if(this.context.data.scroll.current=r,this.context.data.scroll.target=r,this.context.data.scroll.transformedCurrent=r*this.context.data.viewport.transformScale,i!==0){this.updateScrollDirection(i>0);let n=this.previousScrollTime===0?16.6667:e-this.previousScrollTime,s=i*(16.6667/Math.max(8,n))*this.nativeVelocityBoost;this.nativeVelocityTarget=s,this.previousScrollTop=r,this.previousScrollTime=e}this.triggerScrollRules(),this.lastScrollEventTime=e,this.isScrolling||(this.isScrolling=!0,this.onScrollStart())}onWheel(t){t.deltaY!==0&&(this.context.data.scroll.delta===0&&!this.isScrolling&&(this.isScrolling=!0,this.onScrollStart()),this.context.data.scroll.delta+=t.deltaY,this.lastScrollEventTime=performance.now())}deactivate(){super.deactivate(),this.isScrolling=!1,this.lastScrollEventTime=0,this.previousScrollTop=this.context.data.scroll.current,this.previousScrollTime=0,this.nativeVelocity=0,this.nativeVelocityTarget=0}scrollTo(t,e){this.context.data.scroll.target=t,this.context.data.scroll.current=t,this.context.data.scroll.delta=0,this.context.data.scroll.lerped=0,this.nativeVelocity=0,this.nativeVelocityTarget=0,this.previousScrollTop=t,this.previousScrollTime=0,this.triggerScrollRules(),this._scrollDirection==="vertical"?this.context.data.scroll.scrollContainer?.scrollTo({top:t,left:0,behavior:e?"auto":"smooth"}):this.context.data.scroll.scrollContainer?.scrollTo({left:t,top:0,behavior:e?"auto":"smooth"})}};var Me=class extends et{name="disable";preventScroll=t=>{t.preventDefault()};preventKeyScroll=t=>{["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"].includes(t.key)&&t.preventDefault()};onPreventScroll=this.preventScroll.bind(this);onPreventKeyScroll=this.preventKeyScroll.bind(this);constructor(t){super(t)}enableScrollEvents(){window.addEventListener("touchmove",this.onPreventScroll,{passive:!1}),window.addEventListener("keydown",this.onPreventKeyScroll)}disableScrollEvents(){window.removeEventListener("touchmove",this.onPreventScroll),window.removeEventListener("keydown",this.onPreventKeyScroll)}onFrame(){}onWheel(t){t.preventDefault()}onScroll(t){t.preventDefault()}};var we=class extends et{name="smooth";scrollForce=0;wheelImpulse=0;previousCurrent=0;scrollToSequence=0;activeScrollToId=null;velocityThreshold=.01;stepResult={current:.1,target:.1,delta:.1,lerped:.1,scrollForce:.1,absVelocity:.1};constructor(t){super(t),this.stepResult.current=0,this.stepResult.target=0,this.stepResult.delta=0,this.stepResult.lerped=0,this.stepResult.scrollForce=0,this.stepResult.absVelocity=0}stopScroll(){let t=this.context.data.scroll;t.lerped=0,t.delta=0,t.target=t.current,this.onCalcUpdate(),this.isProg=!1,this.clearScrollingClasses(),this._scrollDirState=-1,this._lastAppliedDirState=-1,this.activeScrollToId=null}onFrame(){let t=this.context.data.scroll;if(t.delta!==0){this.computeStep(t.current,t.target,t.delta,t.speed,t.speedAccelerate,t.bottomPosition,this.stepResult),this.scrollForce=this.stepResult.scrollForce,t.target=this.stepResult.target,t.delta=this.stepResult.delta,t.lerped=this.stepResult.lerped,t.current=this.stepResult.current;let e=this.context.data.viewport.transformScale;t.transformedCurrent=e!==1?t.current*e:t.current,this.updateScrollDirection(t.lerped>0),this.stepResult.absVelocity<this.velocityThreshold?(t.current=Math.round(t.target),this.previousCurrent=t.current,this.onCalcUpdate(),this.stopScroll(),this.onScrollStop()):(this.isProg=!0,this.previousCurrent!==t.current&&(this.previousCurrent=t.current,this.onCalcUpdate()))}}onWheel(t){if(t.deltaY!==0&&t.preventDefault(),this.wheelImpulse=t.deltaY,this.wheelImpulse===0)return;let e=this.context.data.scroll;e.delta===0&&this.onScrollStart();let r=this.wheelImpulse<0,i=e.target===0&&r,n=e.target===e.bottomPosition&&!r;!i&&!n&&(e.delta+=this.wheelImpulse)}onScroll(t){if(!this.isProg){let e=this.context.data.scroll,r=e.elementContainer.scrollTop,i=r-e.current;e.current=r,e.target=r,e.delta=0,e.lerped=i,e.displacement=0;let n=this.context.data.viewport.transformScale;e.transformedCurrent=n!==1?r*n:r,this.scrollForce=0,this.wheelImpulse=0,this.isProg=!1,this.previousCurrent=r,this.activeScrollToId=null,i!==0&&(this.updateScrollDirection(i>0),this.triggerScrollRules())}}deactivate(){super.deactivate(),this.scrollForce=0,this.wheelImpulse=0,this.previousCurrent=this.context.data.scroll.current}scrollTo(t,e){let r=this.context.data.scroll,i=++this.scrollToSequence;if(this.activeScrollToId=i,e){r.current=t,r.target=t,r.delta=0,r.lerped=0;let n=this.context.data.viewport.transformScale;r.transformedCurrent=n!==1?t*n:t,this.onCalcUpdate();return}r.target=t,r.delta=1}computeStep(t,e,r,i,n,s,o){let a=r*n,l=Math.min(Math.max(0,e+a),s),c=(l-t)*i,u=r-a,p=t+c;o.current=p,o.target=l,o.delta=u,o.lerped=c,o.scrollForce=a,o.absVelocity=Math.abs(c)}};var xe=class{constructor(t){this.context=t;this.registerMode("smooth",new we(t)),this.registerMode("default",new Ee(t)),this.registerMode("disable",new Me(t)),this.updateResponsiveMode()}modes=new Map;boundEvents=null;scrollMarks=[];registerMode(t,e){let r=this.context.data.scroll.mode===t,i=this.modes.get(t);i&&(r&&i.deactivate(),i.destroy()),e.name||(e.name=String(t)),this.modes.set(t,e),this.boundEvents&&(e.onScrollStart=this.boundEvents.onScrollStart,e.onScrollStop=this.boundEvents.onScrollStop,e.onChangeDirection=this.boundEvents.onDirectionChange),this.scrollMarks.length>0&&this.scrollMarks.forEach(n=>e.addScrollMark(n)),r&&e.activate()}setMobileMode(t){this.context.data.scroll.modeMobile=t,this.updateResponsiveMode()}setDesktopMode(t){this.context.data.scroll.modeDesktop=t,this.updateResponsiveMode()}updateResponsiveMode(){let e=window.innerWidth<1024?this.context.data.scroll.modeMobile:this.context.data.scroll.modeDesktop;this.setMode(e)}updatePosition(){this.get().onCalcUpdate()}setMode(t){if(!this.modes.has(t)){console.warn(`[ScrollManager] Unknown scroll mode: ${t}`);return}if(this.context.data.scroll.mode===t){this.get().activate();return}this.get().deactivate(),this.context.data.scroll.mode=t,this.get().activate(),this.boundEvents?.onModeChange()}get(){return this.modes.get(this.context.data.scroll.mode)}getEngines(){return this.modes}onFrame(){this.get().onFrame()}onScroll(t){this.get().onScroll(t)}onWheel(t){this.get().onWheel(t)}onTouchStart(t){this.get().onTouchStart(t)}onTouchMove(t){this.get().onTouchMove(t)}onTouchEnd(t){this.get().onTouchEnd(t)}bindEvents(t){this.boundEvents=t,this.modes.forEach(e=>{e.onScrollStart=t.onScrollStart,e.onScrollStop=t.onScrollStop,e.onChangeDirection=t.onDirectionChange})}addScrollMark(t){this.scrollMarks.push(t),this.modes.forEach(e=>{e.addScrollMark(t)})}removeScrollMark(t){this.scrollMarks=this.scrollMarks.filter(e=>e.id!==t),this.modes.forEach(e=>{e.removeScrollMark(t)})}destroy(){this.modes.forEach(t=>{t.deactivate(),t.destroy()})}};var Ce=class{targetX=0;targetY=0;smoothedX=0;smoothedY=0;stepX=0;stepY=0;velocityX=0;velocityY=0};var Te=class{threeInstance=null};var Pe=class{target=0;current=0;transformedCurrent=0;delta=0;lerped=0;displacement=0;isScrollingDown=!1;topPosition=0;bottomPosition=0;direction="vertical";elementContainer=document.documentElement;scrollContainer=window;container=document.body;mode="smooth";modeMobile="default";modeDesktop="smooth";speed=.1;speedAccelerate=.25};var Ae=class{fpsTracker=!1;positionTracker=!1;suppressMasonryResize=!1};var ke=class{now=0;previous=0;delta=0;elapsed=0};var Oe=class{windowWidth=0;windowHeight=0;contentWidth=0;contentHeight=0;scaleWidth=1;scaleHeight=1;transformScale=1;baseRem=16};var De=class{scroll=new Pe;viewport=new Oe;cursor=new Ce;render=new Te;time=new ke;system=new Ae};var Vt=class{process({element:t}){return t.getBoundingClientRect()}};var Wt=class{process({element:t,key:e,fallback:r=null}){return t.getAttribute(`string-${e}`)??t.getAttribute(`data-string-${e}`)??r}};var Nt=class{process({record:t,name:e,fallback:r=null}){return t[e]??t[`data-${e}`]??r}};var St=class{process({element:t}){let e=t.getBoundingClientRect(),i=getComputedStyle(t).transform.match(/-?[\d.]+/g)?.map(parseFloat)??[];if(i.length===6){let[n,s,o,a,l,c]=i,u=n*a-s*o;return{width:e.width/(n||1),height:e.height/(a||1),left:(e.left*a-e.top*o+o*c-l*a)/u,top:(-e.left*s+e.top*n+l*s-n*c)/u}}return e}};var zt=class{constructor(t=new St){this.transformTool=t}process({element:t,container:e=document.body}){let r;try{r=e.getBoundingClientRect()}catch{r=document.body.getBoundingClientRect()}let i=this.transformTool.process({element:t});return{top:i.top-r.top,left:i.left-r.left}}};var Gt=class{process({from:t,to:e,progress:r}){return(e-t)*r}};var $t=class{process({value:t,element:e,viewportHeight:r,baseRem:i,boundingRect:n}){let o=(typeof t=="number"?String(t):t).split("|").map(l=>l.trim()).filter(Boolean),a=0;for(let l of o){let c=l,u=!1;c.startsWith("-")&&(u=!0,c=c.slice(1));let p=0;c==="selfHeight"?p=e.offsetHeight:c.endsWith("px")?p=parseFloat(c):c.endsWith("%")?p=parseFloat(c)/100*r:c.endsWith("rem")?p=parseFloat(c)*i:c.endsWith("sh")?p=parseFloat(c)*n.height/100:p=parseFloat(c),a+=u?-p:p}return a}};var Ut=class{process({value:t,inMin:e=.1,inMax:r=1,outMin:i=.05,outMax:n=.65}){if(t<e)return n;if(t>1&&(t=1),t<=r){let s=(t-e)/(r-e);return n-s*(n-i)}return i}};var ut={left:0,center:.5,right:1},pt={top:0,center:.5,bottom:1},jt=class{process({value:t}){if(!t)return"center";let e=t.trim();if(e.startsWith("random(")&&e.endsWith(")")){let r=e.slice(7,-1).split(",").map(n=>n.trim()).filter(Boolean),i=Math.floor(Math.random()*r.length);return r[i]}return e}toNormalized({value:t}){let r=this.process({value:t}).toLowerCase().split(/\s+/).filter(Boolean);if(r.length===0)return{x:.5,y:.5};if(r.length===1){let a=r[0],l=this.parseValue(a);return a in ut&&!(a in pt)?{x:l,y:.5}:a in pt&&!(a in ut)?{x:.5,y:l}:{x:l,y:l}}let[i,n]=r,s=i in pt&&!(i in ut),o=n in ut&&!(n in pt);return s||o?{x:this.parseValue(n,"horizontal"),y:this.parseValue(i,"vertical")}:{x:this.parseValue(i,"horizontal"),y:this.parseValue(n,"vertical")}}parseValue(t,e){if(e==="horizontal"&&t in ut)return ut[t];if(e==="vertical"&&t in pt)return pt[t];if(t in ut)return ut[t];if(t in pt)return pt[t];if(t.endsWith("%")){let i=parseFloat(t);if(!isNaN(i))return i/100}let r=parseFloat(t);return isNaN(r)?.5:r>1?r/100:r}};var Yt=class{process({value:t}){let e=t.trim().toLowerCase();if(e.startsWith("#")){let n=e.slice(1);n.length===3&&(n=n.split("").map(c=>c+c).join(""));let s=parseInt(n.slice(0,2),16),o=parseInt(n.slice(2,4),16),a=parseInt(n.slice(4,6),16),l=n.length===8?parseInt(n.slice(6,8),16)/255:1;return{r:s,g:o,b:a,a:l}}let r=e.match(/rgba?\(([^)]+)\)/);if(r){let[n,s,o,a=1]=r[1].split(",").map(l=>parseFloat(l.trim()));return{r:n,g:s,b:o,a}}let i=e.match(/hsla?\(([^)]+)\)/);if(i){let[n,s,o,a="1"]=i[1].split(",").map(p=>p.trim()),[l,c,u]=this.hslToRgb(parseFloat(n),parseFloat(s),parseFloat(o));return{r:l,g:c,b:u,a:parseFloat(a)}}return{r:0,g:0,b:0,a:0}}hslToRgb(t,e,r){t=t/360,e=parseFloat(e.toString())/100,r=parseFloat(r.toString())/100;let i=(c,u,p)=>(p<0&&(p+=1),p>1&&(p-=1),p<1/6?c+(u-c)*6*p:p<1/2?u:p<2/3?c+(u-c)*(2/3-p)*6:c),n=r<.5?r*(1+e):r+e-r*e,s=2*r-n,o=Math.round(i(s,n,t+1/3)*255),a=Math.round(i(s,n,t)*255),l=Math.round(i(s,n,t-1/3)*255);return[o,a,l]}};var qt=class{namedCurves={linear:[0,0,1,1],ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]};process({easing:t}){let e=t.trim();if(this.namedCurves[e])return this.cubicBezier(...this.namedCurves[e]);let r=e.match(/^cubic-bezier\s*\(\s*([-+]?\d*\.?\d+)\s*,\s*([-+]?\d*\.?\d+)\s*,\s*([-+]?\d*\.?\d+)\s*,\s*([-+]?\d*\.?\d+)\s*\)$/);if(r){let[i,n,s,o]=r.slice(1).map(Number);return this.cubicBezier(i,n,s,o)}return i=>i}cubicBezier(t,e,r,i){let n=3*t,s=3*(r-t)-n,o=1-n-s,a=3*e,l=3*(i-e)-a,c=1-a-l;function u(h){return((o*h+s)*h+n)*h}function p(h){return((c*h+l)*h+a)*h}function g(h){return(3*o*h+2*s)*h+n}function m(h,f=1e-5){let b,y,v=h,S,E,M;for(M=0;M<8;M++){if(S=u(v)-h,Math.abs(S)<f)return v;if(E=g(v),Math.abs(E)<1e-6)break;v=v-S/E}for(b=0,y=1,v=h;b<y;){if(S=u(v)-h,Math.abs(S)<f)return v;S>0?y=v:b=v,v=(y+b)/2}return v}return function(h){return p(m(h))}}};var Xt=class{process({distance:t,radius:e,strength:r}){if(t>=e)return 0;let i=(e-t)/e;return r*i}};var Kt=class{process({from:t,to:e,progress:r}){return{r:t.r+(e.r-t.r)*r,g:t.g+(e.g-t.g)*r,b:t.b+(e.b-t.b)*r,a:t.a+(e.a-t.a)*r}}};var Zt=class{process({from:t,to:e,progress:r}){return{x:(e.x-t.x)*r,y:(e.y-t.y)*r}}};var Qt=class{process({value:t}){let r=t?.trim();if(!r||r==="none")return 1;try{if(r.startsWith("matrix(")){let i=r.match(/matrix\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}if(r.startsWith("scale(")){let i=r.match(/scale\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}if(r.startsWith("scaleX(")){let i=r.match(/scaleX\(([^)]+)\)/);if(i&&i[1]){let n=parseFloat(i[1].trim());if(!isNaN(n))return n}}if(r.startsWith("scale3d(")){let i=r.match(/scale3d\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}if(r.startsWith("matrix3d(")){let i=r.match(/matrix3d\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}}catch(i){return console.error(`Error parsing transform string "${r}":`,i),1}return 1}};var Ie=class{process({attributeValue:t}){let e={segment:"legacy",line:[],word:[],char:[],charLine:[],charWord:[],wordLine:[],fit:!1,trimInlineGaps:!1};return t&&t.split("|").forEach(i=>{let n=i.trim();if(!n)return;let s=n.match(/^([\w-]+)(\[(.*?)\])?$/);if(s){let o=this.toCamelCase(s[1]),a=s[3]||"",l=a.split(";").map(u=>u.trim()).filter(u=>u.length>0),c=this.parseParamsArray(l);switch(o){case"segment":{let u=this.parseSegmentMode(a);u?e.segment=u:console.warn(`SplitOptionsParserTool: Unsupported segment mode "${a}" in part "${n}"`);break}case"line":e.line.push(c);break;case"word":e.word.push(c);break;case"char":e.char.push(c);break;case"charLine":e.charLine.push(c);break;case"charWord":e.charWord.push(c);break;case"wordLine":e.wordLine.push(c);break;case"fit":e.fit=!0;break;case"trimInlineGaps":e.trimInlineGaps=!0;break;default:console.warn(`SplitOptionsParserTool: Unrecognized option type "${o}" in part "${n}"`);break}}else console.warn(`SplitOptionsParserTool: Could not parse part format "${n}"`)}),e}toCamelCase(t){return t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase())}parseParamsArray(t){let e={align:"start"};return t.forEach(r=>{if(r==="abs")e.abs=!0;else if(r.startsWith("random")){e.align="random";let i=r.match(/random\(\s*(-?\d+)\s*,\s*(-?\d+)\s*\)/);if(i){let n=parseInt(i[1],10),s=parseInt(i[2],10);e.random={min:Math.min(n,s),max:Math.max(n,s)}}}else["start","center","end"].includes(r)&&(e.align=r)}),e}parseSegmentMode(t){let e=t.trim().toLowerCase();return e==="legacy"||e==="visual"?e:null}};var Jt=class{process({value:t}){let e=[],r="",i=0;for(let n=0;n<t.length;n++){let s=t[n];s==="("&&i++,s===")"&&i--,s==="|"&&i===0?(r.trim()&&e.push(r.trim()),r=""):r+=s}return r.trim()&&e.push(r.trim()),e.map(n=>{let s=n.match(/^(\w+)(?:\((.*)\))?$/);if(s){let[,a,l]=s;return l?{key:a,params:l.split(",").map(c=>c.trim())}:{key:a}}let o=n.indexOf(":");if(o!==-1){let a=n.slice(0,o).trim(),l=n.slice(o+1).trim(),c=l?l.split(",").map(u=>u.trim()):void 0;return{key:a,params:c}}return{key:n}})}};var Re=class{process({rules:t,value:e,type:r="input",context:i}){let n=[];for(let c of t){var s=null,o=null,a=!0,l=!0;r=="input"&&(o=this.inputValidators[c.key],!o)||r=="beforeinput"&&(s=this.beforeInputValidators[c.key],!s)||(o&&(a=o(e,c.params,i)),s&&(l=s(e,c.params,i)),l||n.push(this.getErrorMessage(c.key,c.params)),a||n.push(this.getErrorMessage(c.key,c.params)))}return{valid:n.length===0,errors:n}}inputValidators={required:t=>t!=null&&String(t).trim()!=="",min:(t,e)=>typeof t=="string"&&t.length>=Number(e?.[0]??0),max:(t,e)=>typeof t=="string"&&t.length<=Number(e?.[0]??Number.MAX_SAFE_INTEGER),checked:t=>{if(Array.isArray(t))return t.length>0;if(t===!0||t==="true"||t===1||t==="1")return!0;if(typeof t=="string"){let e=t.trim().toLowerCase();return e==="false"||e==="0"?!1:e.length>0}return!!t},email:t=>typeof t=="string"&&/^[^\s@]+@([a-z0-9-]+\.)+[a-z]{2,}$/i.test(t),phone:t=>{if(typeof t!="string")return!1;let e=t.trim();if(e===""||!/^[0-9()\s+-.]+$/.test(e))return!1;let r=e.replace(/\D/g,"").length;return r>=7&&r<=15},number:t=>typeof t=="string"&&/^-?\d+(\.\d+)?$/.test(t),integer:t=>typeof t=="string"&&/^-?\d+$/.test(t),url:t=>typeof t=="string"&&/^(https?:\/\/)?([\w\-]+\.)+[\w\-]+(\/[\w\-._~:\/?#[\]@!$&'()*+,;=]*)?$/.test(t),regex:(t,e)=>this.testByRegex(t,e?.[0]),alpha:t=>this.testByRegex(t,"^[A-Za-z]+$",!0),alpha_num:t=>this.testByRegex(t,"^[A-Za-z0-9]+$",!0),alpha_dash:t=>this.testByRegex(t,"^[A-Za-z0-9_-]+$",!0),same:(t,e,r)=>{let i=e?.[0],n=this.getContextValue(r,i);return i&&n===void 0?!1:this.areValuesEqual(t,n)},different:(t,e,r)=>{let i=e?.[0],n=this.getContextValue(r,i);return i&&n===void 0?!1:!this.areValuesEqual(t,n)},range:(t,e)=>{if(t==null||t==="")return!0;let r=Number(t),i=Number(e?.[0]),n=Number(e?.[1]);return Number.isNaN(r)||Number.isNaN(i)||Number.isNaN(n)?!1:r>=i&&r<=n},digits:(t,e)=>{if(typeof t!="string")return!1;let r=Number(e?.[0]??0);return r<=0?!1:new RegExp(`^\\d{${r}}$`).test(t)},ip:t=>typeof t=="string"&&(this.isIPv4(t)||this.isIPv6(t)),mimes:(t,e)=>this.validateMimes(t,e),max_size:(t,e)=>{let r=Number(e?.[0]);return!r||r<=0?!0:this.validateMaxSize(t,r)},after:(t,e,r)=>this.compareDates(t,e,r,"after"),before:(t,e,r)=>this.compareDates(t,e,r,"before")};beforeInputValidators={number:t=>/^-?\d*\.?\d*$/.test(t),integer:t=>/^-?\d*$/.test(t),email:t=>/^[\w@.\-+]*$/.test(t),phone:t=>/^[0-9()\s+-.]*$/.test(t),letters:t=>/^[a-zA-Z]*$/.test(t),lettersSpaces:t=>/^[a-zA-Z\s]*$/.test(t),lettersNumbers:t=>/^[a-zA-Z0-9]*$/.test(t),alpha:t=>/^[A-Za-z]*$/.test(t),alpha_num:t=>/^[A-Za-z0-9]*$/.test(t),alpha_dash:t=>/^[A-Za-z0-9_-]*$/.test(t),digits:(t,e)=>{let r=Number(e?.[0]??0);return r<=0?/^\d*$/.test(t):new RegExp(`^\\d{0,${r}}$`).test(t)},url:t=>/^[a-zA-Z0-9\-._~:\/?#\[\]@!$&'()*+,;=%]*$/.test(t),pattern:(t,e)=>{try{return new RegExp(e?.[0]||"").test(t)}catch{return!0}}};getErrorMessage(t,e){switch(t){case"required":return"This field is required";case"email":return"Invalid email address";case"min":return`Minimum ${e?.[0]} characters`;case"max":return`Maximum ${e?.[0]} characters`;case"phone":return"Invalid phone number";case"number":return"Only numbers are allowed";case"integer":return"Only whole numbers are allowed";case"url":return"Invalid URL address";case"checked":return"You must accept";case"regex":return"Value does not match the required pattern";case"alpha":return"Only letters are allowed";case"alpha_num":return"Only letters and numbers are allowed";case"alpha_dash":return"Only letters, numbers, dashes, and underscores are allowed";case"same":return"Values do not match";case"different":return"Values must be different";case"range":return`Value must be between ${e?.[0]} and ${e?.[1]}`;case"digits":return`Value must contain exactly ${e?.[0]} digits`;case"ip":return"Invalid IP address";case"mimes":return`Allowed file types: ${e?.join(", ")}`;case"max_size":return`File must be smaller than ${e?.[0]} KB`;case"after":return`Date must be after ${e?.[0]}`;case"before":return`Date must be before ${e?.[0]}`;default:return"Invalid value"}}validateMimes(t,e){if(!e||e.length===0)return!0;let r=this.extractFiles(t);if(r.length===0)return!0;let i=e.map(n=>n.trim().toLowerCase());return r.every(n=>this.isMimeAllowed(n,i))}validateMaxSize(t,e){let r=this.extractFiles(t);if(r.length===0)return!0;let i=e*1024;return r.every(n=>typeof n.size!="number"?!0:n.size<=i)}extractFiles(t){if(!t)return[];let e=[];return typeof File<"u"&&t instanceof File?(e.push(t),e):typeof FileList<"u"&&t instanceof FileList?Array.from(t):Array.isArray(t)?(t.forEach(r=>{e.push(...this.extractFiles(r))}),e):typeof t=="object"&&("name"in t||"size"in t||"type"in t)?(e.push(t),e):(typeof t=="string"&&t!==""&&e.push({name:t}),e)}isMimeAllowed(t,e){let r=(t.type||"").toLowerCase(),i=this.getFileExtension(t.name);return e.some(n=>{let s=n.replace(/^\./,"").toLowerCase();return s?s.includes("/")?r===s:i===s:!1})}getFileExtension(t){if(!t)return"";let e=t.split(".");return e.length<=1?"":(e.pop()||"").toLowerCase()}compareDates(t,e,r,i){if(t==null||t==="")return!0;let n=e?.[0];if(!n)return!0;let s=this.toDate(t),o=this.resolveDateReference(n,r);return!s||!o?!1:i==="after"?s.getTime()>o.getTime():s.getTime()<o.getTime()}resolveDateReference(t,e){let r=this.getContextValue(e,t);if(r!==void 0)return this.toDate(r);if(t.toLowerCase()==="now")return new Date;if(t.toLowerCase()==="today"){let i=new Date;return i.setHours(0,0,0,0),i}return this.toDate(t)}toDate(t){if(t==null||t==="")return null;if(t instanceof Date)return Number.isNaN(t.getTime())?null:t;if(typeof t=="number"){let e=new Date(t);return Number.isNaN(e.getTime())?null:e}if(typeof t=="string"){let e=Date.parse(t);if(!Number.isNaN(e))return new Date(e)}return null}testByRegex(t,e,r=!1){if(e==null||e==="")return!0;let i=typeof t=="string"?t:t==null?"":String(t);if(r&&i==="")return!0;try{let{source:n,flags:s}=this.normalizeRegex(e);return new RegExp(n,s).test(i)}catch{return!0}}normalizeRegex(t){let e=t.trim();if(e.startsWith("/")&&e.lastIndexOf("/")>0){let r=e.lastIndexOf("/"),i=e.slice(1,r),n=e.slice(r+1);return{source:i,flags:n}}return{source:e,flags:""}}getContextValue(t,e){if(!(!t||!e)){if(t.values&&Object.prototype.hasOwnProperty.call(t.values,e))return t.values[e];if(t.getValue)return t.getValue(e)}}areValuesEqual(t,e){return Array.isArray(t)||Array.isArray(e)?JSON.stringify(t)===JSON.stringify(e):t===e}isIPv4(t){let e=t.split(".");return e.length!==4?!1:e.every(r=>{if(!/^\d+$/.test(r))return!1;let i=Number(r);return i>=0&&i<=255})}isIPv6(t){if(!t)return!1;if(t==="::")return!0;let e=t.split("::");if(e.length>2)return!1;let r=/^[0-9a-fA-F]{1,4}$/,i=t.split(":");return e.length===2?i.every(n=>n===""||r.test(n))&&i.length<=8:i.length===8&&i.every(n=>r.test(n))}};var Ar=class{pendingVars=new Map;pendingProps=new Map;isOpen=!1;canUseTypedOM(t){return"attributeStyleMap"in t&&typeof CSS<"u"&&typeof CSS.number=="function"&&typeof CSS.px=="function"}writeVar(t,e,r){let i=t.style;if(this.canUseTypedOM(t)&&typeof r=="number"&&Number.isFinite(r))try{t.attributeStyleMap.set(e,CSS.number(r));return}catch{}i.setProperty(e,String(r))}begin(){this.isOpen||(this.isOpen=!0)}setVars(t,e){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set custom properties.");return}let r=this.pendingVars.get(t)??{};for(let[i,n]of Object.entries(e))r[i]!==n&&(r[i]=n);this.pendingVars.set(t,r)}setVar(t,e,r){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set custom properties.");return}let i=this.pendingVars.get(t)??{};i[e]!==r&&(i[e]=r,this.pendingVars.set(t,i))}setVarDirect(t,e,r){this.writeVar(t,e,r)}setProps(t,e){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set standard properties.");return}let r=this.pendingProps.get(t)??{};for(let[i,n]of Object.entries(e))r[i]!==n&&(r[i]=n);this.pendingProps.set(t,r)}setProp(t,e,r){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set standard properties.");return}let i=this.pendingProps.get(t)??{};i[e]!==r&&(i[e]=r,this.pendingProps.set(t,i))}run(t){let e=this.isOpen;e||this.begin();try{t(),e||this.commit()}catch(r){throw e||this.cancel(),r}}commit(){if(this.isOpen){this.isOpen=!1;for(let[t,e]of this.pendingVars)for(let[r,i]of Object.entries(e))this.writeVar(t,r,i);this.pendingVars.clear();for(let[t,e]of this.pendingProps){let r=t.style;for(let[i,n]of Object.entries(e))r[i]=String(n)}this.pendingProps.clear()}}cancel(){this.pendingVars.clear(),this.pendingProps.clear(),this.isOpen=!1}},L=new Ar;var He=class{domAttribute=new Wt;recordAttribute=new Nt;transformNullify=new St;boundingClientRect=new Vt;relativePosition=new zt(this.transformNullify);unitParser=new $t;lerp=new Gt;adaptiveLerp=new Ut;originParser=new jt;colorParser=new Yt;validation=new Re;easingFunction=new qt;magneticPull=new Xt;lerpColor=new Kt;lerpVector=new Zt;transformScaleParser=new Qt;optionsParser=new Ie;ruleParser=new Jt;styleTxn=L};function Be(){let d=typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(pointer: coarse)").matches:!1,t=typeof navigator<"u"?(navigator.maxTouchPoints||0)>0:!1,e=typeof window<"u"?window.innerWidth<=768:!1;return d||t||e}var Bi=new WeakMap,$=5e-4,Tt="default",kr="[string-cursor],[data-string-cursor]",_i="[string-cursor-content],[data-string-cursor-content]",Or=1/240,X=(d,t)=>{let e=Math.pow(10,t);return Math.round(d*e)/e};function qn(d){let t=Bi.get(d);return t||(t={prevX:Number.NaN,prevY:Number.NaN},Bi.set(d,t)),t}var Dr=class extends x{cursorPrev={x:Number.NaN,y:Number.NaN,stepX:Number.NaN,stepY:Number.NaN};cursorPortals=new Map;hoveredObjects=new Set;globalListenersBound=!1;boundBeforeUnload=()=>this.cleanupHoverTargets();boundPageHide=()=>this.cleanupHoverTargets();boundVisibilityChange=()=>{document.hidden&&this.cleanupHoverTargets()};enabled=!0;lastFrameTime=0;constructor(t){super(t),this.htmlKey="cursor",this.cssProperties=[{name:"--x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--y",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--x-lerp",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--y-lerp",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--x-px",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--y-px",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--dx",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--dy",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--angle",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--angle-deg",syntax:"<number>",initialValue:"0",inherits:!0}],this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1,this.permissions.mobile.rebuild.scrollHeight=!1,this.attributesToMap=[...this.attributesToMap,{key:"target-disable",type:"boolean",fallback:this.settings["target-disable"]},{key:"target-style-disable",type:"boolean",fallback:this.settings["target-style-disable"]},{key:"cursor-target",type:"string",fallback:this.settings["cursor-target"]??Tt},{key:"target-class",type:"string",fallback:this.settings["target-class"]},{key:"cursor-class",type:"string",fallback:this.settings["cursor-class"]},{key:"alignment",type:{type:"enum",values:["start","center","end"]},fallback:this.settings.alignment},{key:"cursor-enter",type:{type:"enum",values:["snap","smooth"]},fallback:"snap"},{key:"cursor-leave",type:{type:"enum",values:["snap","smooth"]},fallback:"smooth"},{key:"cursor-leave-hold",type:"boolean",fallback:!1},{key:"lerp",type:"number",fallback:this.settings.lerp,transform:e=>this.tools.adaptiveLerp.process({value:e,inMin:.1,inMax:1,outMin:.05,outMax:.65})},{key:"cursor-float",type:"number",fallback:2},{key:"cursor-vars",type:"string",fallback:""}],Be()&&(this.enabled=!1),this.collectCursorPortals(),this.enabled&&this.bindGlobalLifecycleListeners()}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("mouse-x",0),e.setProperty("mouse-y",0),e.setProperty("mouse-pixel-x",0),e.setProperty("mouse-pixel-y",0),e.setProperty("is-mouse-over",!1),e.setProperty("is-mouse-move",!1),e.setProperty("__cursor-vars",this.parseCursorVars(e.getProperty("cursor-vars")));let n=r.getBoundingClientRect();e.setProperty("cached-width",n.width||r.offsetWidth||1),e.setProperty("cached-height",n.height||r.offsetHeight||1)}onResize(){super.onResize(),this.objects.forEach(t=>{let e=t.htmlElement.getBoundingClientRect();t.setProperty("cached-width",e.width||t.htmlElement.offsetWidth||1),t.setProperty("cached-height",e.height||t.htmlElement.offsetHeight||1)})}onMutate(t){if(!this.enabled)return;let e=performance.now(),r=this.lastFrameTime?(e-this.lastFrameTime)/1e3:.016;this.lastFrameTime=e,r>.1&&(r=.1),r<Or&&(r=Or);let i=this.data.cursor.targetX,n=this.data.cursor.targetY;if(this.objects.forEach(s=>{let o=s.getProperty("is-mouse-over"),a=s.getProperty("cursor-target-disable"),l=s.getProperty("lerp")??.15,c=this.getFrameAdjustedLerp(l,r),u=this.getObjectDimensions(s),{halfWidth:p,halfHeight:g,width:m,height:h}=u;if(o&&!a){let{cx:f,cy:b}=this.centers.getCenter(s),y=i-(f-p),v=n-(b-g),S=s.getProperty("mouse-pixel-x")??0,E=s.getProperty("mouse-pixel-y")??0,M=S-y,C=E-v;if(M*M+C*C>1e-4){let I=s.getProperty("is-mouse-move")??!1,H=s.getProperty("cursor-enter")??"snap",w=s.getProperty("alignment")??"center";if(!I){if(s.setProperty("is-mouse-move",!0),H==="snap")s.setProperty("mouse-pixel-x",y),s.setProperty("mouse-pixel-y",v),s.setProperty("mouse-x",y),s.setProperty("mouse-y",v),S=y,E=v;else{let N=s.getProperty("mouse-x")??0,z=s.getProperty("mouse-y")??0;S=this.reverseOffset(w,N,m),E=this.reverseOffset(w,z,h),s.setProperty("mouse-pixel-x",S),s.setProperty("mouse-pixel-y",E)}this.events.emit(this.getObjectEventName(s,"cursor:start"),null)}let _=this.tools.lerp.process({from:S,to:y,progress:c}),k=this.tools.lerp.process({from:E,to:v,progress:c}),O=S+_,T=E+k,P=Math.abs(O-S)>$||Math.abs(T-E)>$;s.setProperty("mouse-pixel-x",O),s.setProperty("mouse-pixel-y",T);let R=this.calculateOffset(w,O,m),B=this.calculateOffset(w,T,h);s.setProperty("mouse-x",R),s.setProperty("mouse-y",B),this.setMouseCoordinates(s,R,B,O,T)&&this.events.emit(this.getObjectEventName(s,"cursor:move"),{x:R,y:B}),P&&this.events.emit(this.getObjectEventName(s,"cursor:pixel"),{x:O,y:T})}else{s.setProperty("mouse-pixel-x",y),s.setProperty("mouse-pixel-y",v),s.getProperty("is-mouse-move")&&(s.setProperty("is-mouse-move",!1),this.events.emit(this.getObjectEventName(s,"cursor:end"),null));let I=s.getProperty("alignment")??"center",H=this.calculateOffset(I,y,m),w=this.calculateOffset(I,v,h);this.setMouseCoordinates(s,H,w,y,v)}}else{if(s.getProperty("cursor-leave-hold")??!1){s.getProperty("is-mouse-move")&&(s.setProperty("is-mouse-move",!1),this.events.emit(this.getObjectEventName(s,"cursor:end"),null));return}if((s.getProperty("cursor-leave")??"smooth")==="snap"){s.setProperty("is-mouse-move",!1),s.setProperty("mouse-x",0),s.setProperty("mouse-y",0),s.setProperty("mouse-pixel-x",0),s.setProperty("mouse-pixel-y",0),this.setMouseCoordinates(s,0,0,0,0);return}let y=s.getProperty("mouse-x")??0,v=s.getProperty("mouse-y")??0;if(y!==0||v!==0){s.setProperty("is-mouse-move",!1);let S=this.calculateOffset("center",p,m),E=this.calculateOffset("center",g,h),M=y+this.tools.lerp.process({from:y,to:S,progress:c}),C=v+this.tools.lerp.process({from:v,to:E,progress:c});s.setProperty("mouse-x",M),s.setProperty("mouse-y",C),Math.abs(M)<.001&&Math.abs(C)<.001?(s.setProperty("mouse-x",0),s.setProperty("mouse-y",0),s.setProperty("mouse-pixel-x",0),s.setProperty("mouse-pixel-y",0),this.setMouseCoordinates(s,0,0,0,0)):this.setMouseCoordinates(s,M,C)}}}),this.cursorPortals.size>0){let{stepX:s,stepY:o,smoothedX:a,smoothedY:l}=this.data.cursor,c=this.cursorPrev;(!Number.isFinite(c.x)||Math.abs(a-c.x)>$||Math.abs(l-c.y)>$||Math.abs(s-c.stepX)>$||Math.abs(o-c.stepY)>$)&&(this.events.emit("cursor",{stepX:s,stepY:o,x:a,y:l}),this.cursorPrev={x:a,y:l,stepX:s,stepY:o});let p=this.data.cursor.targetX,g=this.data.cursor.targetY;this.cursorPortals.forEach(m=>{m.forEach(h=>{this.updatePortalPosition(h,p,g,r)})})}}onObjectConnected(t){let e=t.htmlElement;this.centers.attach(t),t.setProperty("mouseleave",()=>{this.onMouseLeave(t)}),t.setProperty("mouseenter",()=>{this.onMouseEnter(t)}),t.setProperty("onEnterEvent",this.onEnterObject.bind(this)),t.events.on("enter",t.getProperty("onEnterEvent")),t.setProperty("onLeaveEvent",this.onLeaveObject.bind(this)),t.events.on("leave",t.getProperty("onLeaveEvent"))}getCursorClass(t){let e=t.getProperty("cursor-class");return e!=null&&e.length>0?e:null}onMouseEnter(t){if(!document.contains(t.htmlElement))return;t.setProperty("is-mouse-over",!0),this.hoveredObjects.add(t);let e=this.getCursorClass(t);this.withPortalsForObject(t,r=>{e&&r.element.classList.add(e),this.incrementPortalHover(r)}),t.htmlElement.addEventListener("mouseleave",t.getProperty("mouseleave"))}onMouseLeave(t){t.setProperty("is-mouse-over",!1),this.hoveredObjects.delete(t);let e=this.getCursorClass(t);this.withPortalsForObject(t,r=>{e&&r.element.classList.remove(e),this.decrementPortalHover(r)}),document.contains(t.htmlElement)&&t.htmlElement.removeEventListener("mouseleave",t.getProperty("mouseleave"))}onEnterObject(t){t.htmlElement.addEventListener("mouseenter",t.getProperty("mouseenter"))}onLeaveObject(t){t.htmlElement.removeEventListener("mouseenter",t.getProperty("mouseenter")),t.htmlElement.removeEventListener("mouseleave",t.getProperty("mouseleave"))}safariNavigationCleanup(t){t.getProperty("is-mouse-over")&&this.onMouseLeave(t)}onElementRemovedFromDOM(t){t.getProperty("is-mouse-over")&&this.onMouseLeave(t)}onObjectDisconnected(t){t.getProperty("is-mouse-over")&&this.onMouseLeave(t)}onDOMRebuild(){this.enabled&&this.collectCursorPortals()}onDOMMutate(t,e){this.enabled&&((this.shouldRefreshPortals(t)||this.shouldRefreshPortals(e))&&this.collectCursorPortals(),e.length>0&&this.handleRemovedNodes(e))}collectCursorPortals(){this.cursorPortals.clear(),document.querySelectorAll(kr).forEach(e=>{if(!(e instanceof HTMLElement))return;let r=this.resolvePortalId(e),i=this.resolvePortalLerp(e),n=e.matches(_i)?e:e.querySelector(_i),s=this.data.cursor.targetX,o=this.data.cursor.targetY,a={id:r,element:e,content:n,prev:{x:s,y:o,stepX:0,stepY:0},hoverCount:0,showTimer:null,lerp:i},l=this.cursorPortals.get(r);l?l.push(a):this.cursorPortals.set(r,[a])})}resolvePortalId(t){let e=[t.getAttribute("data-string-cursor"),t.getAttribute("string-cursor"),t.getAttribute("data-string-cursor-id"),t.getAttribute("string-cursor-id")];for(let r of e)if(r&&r.trim().length>0)return r.trim();return Tt}resolvePortalLerp(t){let e=t.getAttribute("data-string-cursor-lerp")??t.getAttribute("string-cursor-lerp")??this.settings["cursor-lerp"];if(!e)return null;let r=parseFloat(e);if(!Number.isFinite(r))return null;let i=Math.min(1,Math.max(.01,r));return this.tools.adaptiveLerp.process({value:i,inMin:.1,inMax:1,outMin:.05,outMax:.65})}shouldRefreshPortals(t){for(let e of Array.from(t))if(e instanceof Element&&(e.matches(kr)||e.querySelector(kr)))return!0;return!1}withPortalsForObject(t,e){this.getPortalsForObject(t).forEach(i=>e(i))}getPortalsForObject(t){if(this.cursorPortals.size===0)return[];let e=this.extractPortalIds(t),r=[];if(e.forEach(i=>{if(i==="*"){this.cursorPortals.forEach(o=>{o.forEach(a=>r.push(a))});return}let n=i.length>0?i:Tt,s=this.cursorPortals.get(n);s&&s.forEach(o=>r.push(o))}),r.length===0){let i=this.cursorPortals.get(Tt)??this.cursorPortals.values().next().value;i&&i.length>0&&i.forEach(n=>r.push(n))}return r}extractPortalIds(t){if(!t)return[Tt];let e=t.getProperty("cursor-target");return typeof e!="string"||e.trim().length===0?[Tt]:e.split(/[,|]/).map(r=>r.trim()).filter(Boolean)}incrementPortalHover(t){t.hoverCount++,t.element.classList.remove("-show"),this.restartPortalShowTimer(t)}decrementPortalHover(t){t.hoverCount=Math.max(0,t.hoverCount-1),t.hoverCount===0&&(this.clearPortalShowTimer(t),t.element.classList.remove("-show"))}restartPortalShowTimer(t){if(this.clearPortalShowTimer(t),!t.element.isConnected){t.showTimer=null;return}t.element.classList.add("-show"),t.showTimer=null}clearPortalShowTimer(t){t.showTimer&&(clearTimeout(t.showTimer),t.showTimer=null)}updatePortalPosition(t,e,r,i){if(!t.element.isConnected)return;let n=t.prev,s=Number.isFinite(n.x)?n.x:e,o=Number.isFinite(n.y)?n.y:r,a=t.lerp??.1,l=this.getFrameAdjustedLerp(a,i),c=(e-s)*l,u=(r-o)*l,p=i>1e-4?i:1/60,g=c/(p*60),m=u/(p*60);if(Math.abs(c)<$&&Math.abs(u)<$)return;let h=s+c,f=o+u;this.writePortalVars(t.element,{"--x":X(h,2),"--y":X(f,2),"--x-lerp":X(g,3),"--y-lerp":X(m,3)}),n.x=h,n.y=f,n.stepX=c,n.stepY=u}handleRemovedNodes(t){this.hoveredObjects.size!==0&&Array.from(this.hoveredObjects).forEach(e=>{e.htmlElement.isConnected||this.onElementRemovedFromDOM(e)})}cleanupHoverTargets(){this.hoveredObjects.size!==0&&Array.from(this.hoveredObjects).forEach(t=>this.safariNavigationCleanup(t))}bindGlobalLifecycleListeners(){this.globalListenersBound||(window.addEventListener("beforeunload",this.boundBeforeUnload),window.addEventListener("pagehide",this.boundPageHide),document.addEventListener("visibilitychange",this.boundVisibilityChange),this.globalListenersBound=!0)}unbindGlobalLifecycleListeners(){this.globalListenersBound&&(window.removeEventListener("beforeunload",this.boundBeforeUnload),window.removeEventListener("pagehide",this.boundPageHide),document.removeEventListener("visibilitychange",this.boundVisibilityChange),this.globalListenersBound=!1)}setMouseCoordinates(t,e,r,i,n){if(t.getProperty("cursor-target-style-disable"))return!1;let s=qn(t),o=t.getProperty("cursor-float")??2,a=Math.pow(10,o),l=Math.abs(e)<$&&Number.isFinite(s.prevX)&&Math.abs(s.prevX)<$?s.prevX:Math.round(e*a)/a,c=Math.abs(r)<$&&Number.isFinite(s.prevY)&&Math.abs(s.prevY)<$?s.prevY:Math.round(r*a)/a;if(Number.isFinite(s.prevX)&&Math.abs(l-s.prevX)<=$&&Number.isFinite(s.prevY)&&Math.abs(c-s.prevY)<=$)return!1;s.prevX=l,s.prevY=c;let u=t.getProperty("__cursor-vars"),p={"--x":X(l,o),"--y":X(c,o)};if(u&&u.size>0){let m=Number.isFinite(i)?i:t.getProperty("mouse-pixel-x"),h=Number.isFinite(n)?n:t.getProperty("mouse-pixel-y"),f=t.getProperty("__prev-x-px"),b=t.getProperty("__prev-y-px"),y=Number.isFinite(f)?m-f:0,v=Number.isFinite(b)?h-b:0;t.setProperty("__prev-x-px",m),t.setProperty("__prev-y-px",h);let S=y===0&&v===0?0:Math.atan2(v,y),E=S*180/Math.PI;u.has("xpx")&&(p["--x-px"]=X(m,2)),u.has("ypx")&&(p["--y-px"]=X(h,2)),u.has("dx")&&(p["--dx"]=X(y,3)),u.has("dy")&&(p["--dy"]=X(v,3)),u.has("angle")&&(p["--angle"]=X(S,4)),u.has("angle-deg")&&(p["--angle-deg"]=X(E,2))}let g=()=>{this.applyToElementAndConnects(t,m=>{L.setVars(m,p)})};return L.isOpen?g():L.run(g),!0}writePortalVars(t,e){if(L.isOpen){L.setVars(t,e);return}L.run(()=>{L.setVars(t,e)})}parseCursorVars(t){return t?new Set(t.split(/[|,]/).map(e=>e.trim().toLowerCase()).filter(e=>e.length>0)):new Set}getFrameAdjustedLerp(t,e){let r=Math.min(.99,Math.max(.001,t));if(!Number.isFinite(e)||e<=0)return r;let n=Math.max(e,Or)*60,s=1-Math.pow(1-r,n);return Math.min(.999,Math.max(1e-4,s))}getObjectDimensions(t){let e=t.getProperty("cached-width"),r=t.getProperty("cached-height");if(typeof e=="number"&&typeof r=="number"&&e>0&&r>0){let g=e/2,m=r/2;return{width:e,height:r,halfWidth:g,halfHeight:m}}let i=t.htmlElement,n=i.offsetWidth||i.clientWidth||i.scrollWidth||1,s=i.offsetHeight||i.clientHeight||i.scrollHeight||1,o=t.getProperty("half-width"),a=t.getProperty("half-height"),l=typeof o=="number"&&Number.isFinite(o)?o:n/2,c=typeof a=="number"&&Number.isFinite(a)?a:s/2,u=l>0?l*2:n,p=c>0?c*2:s;return t.setProperty("cached-width",u),t.setProperty("cached-height",p),{width:u,height:p,halfWidth:l,halfHeight:c}}calculateOffset(t,e,r){switch(t){case"start":return e/r;case"end":return(e-r)/r;case"center":default:return(e-r/2)/(r/2)}}reverseOffset(t,e,r){switch(t){case"start":return e*r;case"end":return e*r+r;case"center":default:return e*(r/2)+r/2}}removeObject(t){if(!this.enabled)return super.removeObject(t);let e=this.objectMapOnPage.get(t);e&&this.centers.detach(e),super.removeObject(t)}destroy(){this.unbindGlobalLifecycleListeners(),this.hoveredObjects.clear(),super.destroy()}};var Ir=class extends x{originObservers=new WeakMap;constructor(t){super(t),this.htmlKey="impulse",this.cssProperties=[{name:"--push-x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--push-y",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--push-rotation",syntax:"<number>",initialValue:"0",inherits:!0}],this.attributesToMap.push({key:"position-strength",type:"number",fallback:this.settings["position-strength"]},{key:"position-tension",type:"number",fallback:this.settings["position-tension"]},{key:"position-friction",type:"number",fallback:this.settings["position-friction"]},{key:"position-max-velocity",type:"number",fallback:this.settings["position-max-velocity"]},{key:"position-update-threshold",type:"number",fallback:this.settings["position-update-threshold"]},{key:"rotation-strength",type:"number",fallback:this.settings["rotation-strength"]},{key:"rotation-tension",type:"number",fallback:this.settings["rotation-tension"]},{key:"rotation-friction",type:"number",fallback:this.settings["rotation-friction"]},{key:"rotation-max-angular-velocity",type:"number",fallback:this.settings["rotation-max-angular-velocity"]},{key:"rotation-max-angle",type:"number",fallback:this.settings["rotation-max-angle"]},{key:"rotation-update-threshold",type:"number",fallback:this.settings["rotation-update-threshold"]},{key:"max-offset",type:"number",fallback:this.settings["max-offset"]},{key:"sleep-epsilon",type:"number",fallback:this.settings["sleep-epsilon"]},{key:"continuous-push",type:"boolean",fallback:this.settings["continuous-push"]},{key:"rotation-origin",type:"string",fallback:this.settings["rotation-origin"]??"center center"})}onObjectConnected(t){super.onObjectConnected(t),t.setProperty("offset-x",0),t.setProperty("offset-y",0),t.setProperty("velocity-x",0),t.setProperty("velocity-y",0),t.setProperty("angle-deg",0),t.setProperty("ang-vel-deg",0),t.setProperty("__prev-css-x",0),t.setProperty("__prev-css-y",0),t.setProperty("__prev-css-rot",0),t.setProperty("__push-latch",!1),t.setProperty("__rotate-latch",!1),this.cacheRotationOrigin(t),this.observeRotationOrigin(t),this.hover.track(t),this.centers.attach(t)}onObjectDisconnected(t){this.hover.untrack(t),this.centers.detach(t);let e=this.originObservers.get(t);e&&(e.disconnect(),this.originObservers.delete(t))}onMouseMove(t){if(!t)return;let e=this.data.cursor.velocityX,r=this.data.cursor.velocityY;if(e===0&&r===0)return;let i=this.data.cursor.targetX,n=this.data.cursor.targetY;for(let s of this.objects){let o=s.htmlElement.getBoundingClientRect();if(i>=o.left&&i<=o.right&&n>=o.top&&n<=o.bottom){{let u=o.width||1,p=Math.max(0,Math.min(1,(this.data.cursor.targetX-o.left)/u));this.events.emit(this.getObjectEventName(s,"object:impulse","side"),{value:p})}let l=s.getProperty("position-strength")||0;if(l!==0){let u=s.getProperty("continuous-push")??!0,p=s.getProperty("__push-latch")===!0;if(u||!p){let g=s.getProperty("velocity-x")||0,m=s.getProperty("velocity-y")||0;g+=e*l,m+=r*l,s.setProperty("velocity-x",g),s.setProperty("velocity-y",m),u||s.setProperty("__push-latch",!0)}}let c=s.getProperty("rotation-strength")??.75;if(c!==0){let u=s.getProperty("continuous-push")??!0,p=s.getProperty("__rotate-latch")===!0;if(u||!p){let{centerX:g,centerY:m}=this.getRotationOriginFromRect(s,o),h=i-g,f=n-m,b=h*r-f*e,y=s.getProperty("ang-vel-deg")||0;y+=b*c*.02,s.setProperty("ang-vel-deg",y),u||s.setProperty("__rotate-latch",!0)}}}}}cacheRotationOrigin(t){let e=t.getProperty("rotation-origin")??"center center",{x:r,y:i}=this.tools.originParser.toNormalized({value:e});t.setProperty("__rotation-origin-x",r),t.setProperty("__rotation-origin-y",i)}observeRotationOrigin(t){let e="string-rotation-origin",r="data-string-rotation-origin",i=new MutationObserver(n=>{for(let s of n)if(s.type==="attributes"&&(s.attributeName===e||s.attributeName===r)){let o=t.htmlElement.getAttribute(e)??t.htmlElement.getAttribute(r);o!==null&&t.setProperty("rotation-origin",o),this.cacheRotationOrigin(t);break}});i.observe(t.htmlElement,{attributes:!0,attributeFilter:[e,r]}),this.originObservers.set(t,i)}getRotationOriginFromRect(t,e){let r=t.getProperty("__rotation-origin-x")??.5,i=t.getProperty("__rotation-origin-y")??.5;return{centerX:e.left+e.width*r,centerY:e.top+e.height*i}}onFrame(t){let e=this.data.cursor.targetX,r=this.data.cursor.targetY;for(let i of this.objects){let n=i.htmlElement.getBoundingClientRect(),s=e>=n.left&&e<=n.right&&r>=n.top&&r<=n.bottom;!s&&i.getProperty("__push-latch")===!0&&i.setProperty("__push-latch",!1),!s&&i.getProperty("__rotate-latch")===!0&&i.setProperty("__rotate-latch",!1)}for(let i=0;i<this.objects.length;i++){let n=this.objects[i],s=n.getProperty("offset-x")||0,o=n.getProperty("offset-y")||0,a=n.getProperty("velocity-x")||0,l=n.getProperty("velocity-y")||0,c=n.getProperty("position-tension")??.05,u=n.getProperty("position-friction")??.15,p=n.getProperty("position-max-velocity")??120,g=n.getProperty("max-offset")??220;a-=c*s,l-=c*o;let m=1-u;a*=m,l*=m,a>p?a=p:a<-p&&(a=-p),l>p?l=p:l<-p&&(l=-p),s+=a,o+=l,s>g?s=g:s<-g&&(s=-g),o>g?o=g:o<-g&&(o=-g);let h=n.getProperty("angle-deg")||0,f=n.getProperty("ang-vel-deg")||0,b=n.getProperty("rotation-tension")??.06,y=n.getProperty("rotation-friction")??.18,v=n.getProperty("rotation-max-angular-velocity")??6,S=n.getProperty("rotation-max-angle")??18;f-=b*h,f*=1-y,f>v?f=v:f<-v&&(f=-v),h+=f,h>S?(h=S,f*=.35):h<-S&&(h=-S,f*=.35);let E=n.getProperty("sleep-epsilon")??.01,M=a*a+l*l<E*E&&s*s+o*o<E*E,C=Math.abs(f)<E&&Math.abs(h)<E;M?(a||l||s||o)&&(n.setProperty("offset-x",0),n.setProperty("offset-y",0),n.setProperty("velocity-x",0),n.setProperty("velocity-y",0),s=o=a=l=0):(n.setProperty("offset-x",s),n.setProperty("offset-y",o),n.setProperty("velocity-x",a),n.setProperty("velocity-y",l)),C?(h||f)&&(n.setProperty("angle-deg",0),n.setProperty("ang-vel-deg",0),h=f=0):(n.setProperty("angle-deg",h),n.setProperty("ang-vel-deg",f));let A=n.getProperty("position-update-threshold")??.1,I=n.getProperty("rotation-update-threshold")??.15,H=n.getProperty("__prev-css-x")||0,w=n.getProperty("__prev-css-y")||0,_=n.getProperty("__prev-css-rot")||0,k=Math.round(s*10)/10,O=Math.round(o*10)/10,T=Math.round(h*10)/10,P=Math.abs(k-H)>A||Math.abs(O-w)>A,R=Math.abs(T-_)>I;(P||R)&&(n.setProperty("__next-css-x",k),n.setProperty("__next-css-y",O),n.setProperty("__next-css-rot",T)),n.setProperty("__needs-position-update",P),n.setProperty("__needs-rotation-update",R)}}onMutate(){for(let t=0;t<this.objects.length;t++){let e=this.objects[t],r=e.getProperty("__needs-position-update")===!0,i=e.getProperty("__needs-rotation-update")===!0;if(!r&&!i)continue;let n=e.getProperty("__next-css-x")||0,s=e.getProperty("__next-css-y")||0,o=e.getProperty("__next-css-rot")||0;this.applyToElementAndConnects(e,a=>{r&&(L.setVar(a,"--push-x",n),L.setVar(a,"--push-y",s)),i&&L.setVar(a,"--push-rotation",o)}),r&&(e.setProperty("__prev-css-x",n),e.setProperty("__prev-css-y",s),this.events.emit(this.getObjectEventName(e,"object:impulse","move"),{x:n,y:s})),i&&(e.setProperty("__prev-css-rot",o),this.events.emit(this.getObjectEventName(e,"object:impulse","rotate"),{rotation:o})),e.setProperty("__needs-position-update",!1),e.setProperty("__needs-rotation-update",!1)}}};var gt=new WeakMap,Rr=60,Fi=(d,t)=>t>0?d>=t?d%t:d<0?(d%t+t)%t:d:0,Xn=d=>Number.isFinite(d)?Math.max(0,Math.abs(d)):Rr,Hr=class extends x{onFontsReadyBound;constructor(t){super(t),this.htmlKey="marquee",this.cssProperties=[{name:"--marquee-progress",syntax:"<number>",initialValue:"0",inherits:!1}],this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1,this.permissions.mobile.rebuild.scrollHeight=!1,this.attributesToMap=[...this.attributesToMap,{key:"marquee-direction",type:{type:"enum",values:["left","right"]},fallback:this.settings["marquee-direction"]??"left"},{key:"marquee-speed",type:"number",fallback:this.settings["marquee-speed"]??Rr},{key:"marquee-gap",type:"dimension",fallback:this.settings["marquee-gap"]??0},{key:"marquee-fill",type:"boolean",fallback:this.settings["marquee-fill"]??!1},{key:"marquee-pause-on-hover",type:"boolean",fallback:this.settings["marquee-pause-on-hover"]??!1},{key:"marquee-progress",type:"boolean",fallback:this.settings["marquee-progress"]??!1},{key:"marquee-part-class",type:"string",fallback:this.settings["marquee-part-class"]??""}],this.onFontsReadyBound=this.onFontsReady.bind(this)}onInit(){"fonts"in document&&document.fonts&&(document.fonts.ready.then(this.onFontsReadyBound),document.fonts.addEventListener?.("loadingdone",this.onFontsReadyBound))}onUnsubscribe(){"fonts"in document&&document.fonts&&document.fonts.removeEventListener?.("loadingdone",this.onFontsReadyBound)}onObjectConnected(t){super.onObjectConnected(t);let e=gt.get(t);e||(e=this.createState(t.htmlElement),gt.set(t,e),this.mountStructure(e)),this.syncConfig(t,e),this.refresh(e)}onObjectDisconnected(t){let e=gt.get(t);e&&(e.host.removeEventListener("mouseenter",this.onMouseEnter),e.host.removeEventListener("mouseleave",this.onMouseLeave))}onResizeWidth(){for(let t=0;t<this.objectsOnPage.length;t++){let e=gt.get(this.objectsOnPage[t]);e&&(this.syncConfig(this.objectsOnPage[t],e),this.refresh(e))}}onFrame(t){let e=Math.max(.004166666666666667,Math.min(.1,(t.time.delta||16.6667)/1e3));L.run(()=>{for(let r=0;r<this.objectsOnPage.length;r++){let i=gt.get(this.objectsOnPage[r]);if(!i||!(i.cycleWidth>0))continue;!(i.pauseOnHover&&i.hovering)&&i.speed>0&&(i.position=Fi(i.position+i.speed*e,i.cycleWidth));let n=i.direction==="right"?i.position-i.cycleWidth:-i.position;n!==i.lastAppliedTranslate&&(i.lastAppliedTranslate=n,L.setProp(i.track,"transform",`translate3d(${n}px, 0, 0)`),this.updatePartProgress(i,n))}})}createState(t){let e=document.createElement("div"),r=document.createElement("span");return e.setAttribute("data-string-marquee-track",""),r.setAttribute("data-string-marquee-part",""),t.addEventListener("mouseenter",this.onMouseEnter),t.addEventListener("mouseleave",this.onMouseLeave),{host:t,track:e,part:r,parts:[r],clones:[],direction:"left",speed:Rr,gap:0,fill:!1,pauseOnHover:!1,progressEnabled:!1,hovering:!1,position:0,hostWidth:0,partWidth:0,cycleWidth:0,lastAppliedTranslate:Number.NaN,partProgressApplied:[Number.NaN],partClass:""}}mountStructure(t){let{host:e,track:r,part:i}=t;for(;e.firstChild;)i.appendChild(e.firstChild);r.appendChild(i),e.appendChild(r),L.run(()=>{L.setProps(e,{overflow:"hidden"}),L.setProps(r,{display:"flex",flexWrap:"nowrap",width:"max-content",willChange:"transform"}),L.setProps(i,{flex:"0 0 auto"})})}syncConfig(t,e){e.direction=t.getProperty("marquee-direction")??"left",e.speed=Xn(t.getProperty("marquee-speed")),e.gap=Math.max(0,t.getProperty("marquee-gap")??0),e.fill=t.getProperty("marquee-fill")===!0,e.pauseOnHover=t.getProperty("marquee-pause-on-hover")===!0,e.progressEnabled=t.getProperty("marquee-progress")===!0,e.partClass=t.getProperty("marquee-part-class")??""}refresh(t){this.syncPartClass(t),this.syncCopies(t),t.hostWidth=t.host.getBoundingClientRect().width,t.partWidth=t.part.getBoundingClientRect().width,t.cycleWidth=t.partWidth>0?t.partWidth+t.gap:0,t.position=Fi(t.position,t.cycleWidth),t.lastAppliedTranslate=Number.NaN;for(let e=0;e<t.partProgressApplied.length;e++)t.partProgressApplied[e]=Number.NaN;L.run(()=>{if(L.setProp(t.track,"columnGap",`${t.gap}px`),L.setProp(t.track,"transform","translate3d(0, 0, 0)"),!t.progressEnabled)for(let e=0;e<t.parts.length;e++)L.setVar(t.parts[e],"--marquee-progress",0)})}syncCopies(t){for(let o=0;o<t.clones.length;o++)t.clones[o].remove();t.clones.length=0;let e=t.host.getBoundingClientRect().width,r=t.part.getBoundingClientRect().width;if(!(e>0)||!(r>0))return;let i=r+t.gap,n=t.fill?Math.max(2,Math.ceil(e*2/i)+1):2,s=document.createDocumentFragment();for(let o=1;o<n;o++){let a=t.part.cloneNode(!0);a.removeAttribute("data-string-marquee-part"),a.setAttribute("aria-hidden","true"),s.appendChild(a),t.clones.push(a)}t.track.appendChild(s),t.parts=[t.part,...t.clones],t.partProgressApplied=new Array(t.parts.length).fill(Number.NaN)}syncPartClass(t){t.part.className=t.partClass}updatePartProgress(t,e){if(!t.progressEnabled||!(t.hostWidth>0)||!(t.partWidth>0))return;let r=t.hostWidth+t.partWidth;if(r>0)for(let i=0;i<t.parts.length;i++){let s=(e+i*t.cycleWidth+t.partWidth)/r,o=s<=0?0:s>=1?1:s,a=t.direction==="right"?o:1-o;t.partProgressApplied[i]!==a&&(t.partProgressApplied[i]=a,L.setVar(t.parts[i],"--marquee-progress",a))}}onFontsReady(){for(let t=0;t<this.objectsOnPage.length;t++){let e=gt.get(this.objectsOnPage[t]);e&&this.refresh(e)}}onMouseEnter=t=>{let e=t.currentTarget;if(e)for(let r=0;r<this.objectsOnPage.length;r++){let i=gt.get(this.objectsOnPage[r]);if(i?.host===e){i.hovering=!0;return}}};onMouseLeave=t=>{let e=t.currentTarget;if(e)for(let r=0;r<this.objectsOnPage.length;r++){let i=gt.get(this.objectsOnPage[r]);if(i?.host===e){i.hovering=!1;return}}}};var Br=class{measureQueue=[];mutateQueue=[];scheduled=!1;measure(t){this.measureQueue.push(t),this.schedule()}mutate(t){this.mutateQueue.push(t),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0)}flush(){if(!this.scheduled)return;let t=this.measureQueue;this.measureQueue=[];for(let r=0;r<t.length;r++)try{t[r]()}catch(i){console.error("Error in frameDOM measure task:",i)}let e=this.mutateQueue;this.mutateQueue=[];for(let r=0;r<e.length;r++)try{e[r]()}catch(i){console.error("Error in frameDOM mutate task:",i)}this.scheduled=!1}},q=new Br;var Kn=20,rt={MANUAL_COLS_KEY:"masonry-manual-cols",MANUAL_GAP_KEY:"masonry-manual-gap",DEFAULT_DURATION:600,DEFAULT_EASING:"cubic-bezier(0.25, 1, 0.5, 1)"};function Vi(d){if(!d)return rt.DEFAULT_DURATION;let t=parseFloat(d);return isNaN(t)?rt.DEFAULT_DURATION:t}function _e(d,t){let e=[...d].sort((i,n)=>n.breakpoint-i.breakpoint),r=e.find(i=>t>=i.breakpoint);return r?r.value:e[e.length-1]?.value}var _r=class extends x{states=new WeakMap;constructor(t){super(t),this.htmlKey="masonry",this.attributesToMap.push({key:"masonry-cols",type:"breakpoint-dimension",fallback:"2|640:3|1024:4"},{key:"masonry-gap",type:"breakpoint-dimension",fallback:"16|640:24|1024:32"},{key:"masonry-mode",type:"string",fallback:"auto"})}parseEasing(t){return this.tools.easingFunction.process({easing:t||rt.DEFAULT_EASING})}onObjectConnected(t){super.onObjectConnected(t);let e=t.htmlElement;L.begin(),L.setProps(e,{position:"relative",boxSizing:"border-box"}),L.commit();let r=this.createState(t,e);this.states.set(t,r),this.attachImgLoaders(t,r,e),this.scheduleLayout(t,!1,"init");let i=t.id;this.events.on(`masonry:update:${i}`,n=>{n.mode&&t.setProperty("masonry-mode",n.mode),n.cols!==void 0&&t.setProperty(rt.MANUAL_COLS_KEY,Number(n.cols)),n.gap!==void 0&&t.setProperty(rt.MANUAL_GAP_KEY,Number(n.gap)),this.scheduleLayout(t,!0,"external-event")})}onFrame(t){let e=t.time.now;this.objectsOnPage.forEach(r=>{let i=this.states.get(r);if(!i||!i.isAnimating)return;let n=0;L.run(()=>{if(i.isAnimatingHeight){let s=e-i.heightStartTime,o=Math.min(1,s/i.heightDuration),a=i.heightEase(o),l=i.startHeight+(i.targetHeight-i.startHeight)*a;L.setProps(r.htmlElement,{height:`${l}px`}),o<1?n++:i.isAnimatingHeight=!1}i.items.forEach((s,o)=>{if(!s.isMoving)return;let a=e-s.startTime,l=a*s.invPosDur,c=l>1?1:l,u=s.posEase(c);s.cx=s.sx+s.dx*u,s.cy=s.sy+s.dy*u;let p=a*s.invSizeDur,g=p>1?1:p,m=s.sizeEase(g);s.cw=s.sw+s.dw*m,L.setProps(o,{transform:`translate3d(${s.cx}px, ${s.cy}px, 0)`,...Math.abs(s.dw)>.05?{width:`${s.cw}px`}:{},willChange:"transform, width"}),c<1||g<1?n++:(s.isMoving=!1,L.setProps(o,{transform:`translate3d(${s.tx}px, ${s.ty}px, 0)`,width:`${s.tw}px`,willChange:"auto"}),s.cx=s.tx,s.cy=s.ty,s.cw=s.tw)})}),n===0&&this.handleAnimationEnd(r,i,e)})}onResize(){this.data.system.suppressMasonryResize||this.objectsOnPage.forEach(t=>{this.states.has(t)&&this.scheduleLayout(t,!0,"window-resize")})}cleanupObject(t){let e=this.states.get(t);e&&(e.ro.disconnect(),e.mo.disconnect(),e.resizeDebounceId&&clearTimeout(e.resizeDebounceId),this.states.delete(t))}createState(t,e){let r=e.getBoundingClientRect(),i=o=>{if(!o.length)return;let a=o[0].contentRect,l=this.states.get(t);if(!l||Math.abs(a.width-l.lastObservedWidth)<=.5&&Math.abs(a.height-l.lastObservedHeight)<=.5)return;l.lastObservedWidth=a.width,l.lastObservedHeight=a.height;let c=getComputedStyle(e),u=parseFloat(c.paddingLeft)||0,p=parseFloat(c.paddingRight)||0,g=a.width-u-p;if(g<=0)return;let{columns:m,gap:h}=this.getGridSettings(t),f=(g-h*(m-1))/m;m===l.lastLayoutColumns&&h===l.lastLayoutGap&&Math.abs(f-l.lastLayoutColumnWidth)<=.5||(l.resizeDebounceId&&window.clearTimeout(l.resizeDebounceId),l.resizeDebounceId=window.setTimeout(()=>{l.isResizing=!0,this.scheduleLayout(t,!0,"resize-observer"),l.isResizing=!1},Kn))},n=o=>{let a=this.states.get(t);if(!a)return;let l=!1;for(let c of o)c.removedNodes.length&&c.removedNodes.forEach(u=>{if(u.nodeType===1){let p=u;this.cleanupImgListeners(a,p),a.items.delete(p),l=!0}}),c.addedNodes.length&&c.addedNodes.forEach(u=>{u.nodeType===1&&(this.attachImgLoaders(t,a,u),l=!0)});l&&this.scheduleLayout(t,!0,"mutation-observer")},s={ro:new ResizeObserver(i),mo:new MutationObserver(n),isResizing:!1,lastObservedWidth:r.width,lastObservedHeight:r.height,lastLayoutColumns:0,lastLayoutGap:0,lastLayoutColumnWidth:-1,lastChildrenHash:0,lastHeightsHash:0,childIds:new WeakMap,nextChildId:1,imgUnsubs:new WeakMap,layoutScheduled:!1,items:new Map,startHeight:e.offsetHeight,targetHeight:e.offsetHeight,heightStartTime:0,heightDuration:rt.DEFAULT_DURATION,heightEase:this.parseEasing(null),isAnimatingHeight:!1,isAnimating:!1,pendingHeight:void 0,pendingHeightAnimate:!1,expectedEndTime:0};return s.ro.observe(e),s.mo.observe(e,{childList:!0}),s}handleAnimationEnd(t,e,r){if(e.pendingHeight!==void 0){let i=e.pendingHeight,n=e.pendingHeightAnimate;if(e.pendingHeight=void 0,e.pendingHeightAnimate=!1,n){e.startHeight=t.htmlElement.offsetHeight,e.targetHeight=i,e.heightStartTime=r,e.heightDuration=rt.DEFAULT_DURATION,e.heightEase=this.parseEasing(null),e.isAnimatingHeight=!0,e.isAnimating=!0;return}L.run(()=>{L.setProps(t.htmlElement,{height:`${i}px`})})}e.isAnimating&&this.events.emit("masonry:shuffle:end",{object:t}),e.isAnimating=!1,this.objectManager.refreshLayoutForRoot(t.htmlElement),e.endTimerId&&(window.clearTimeout(e.endTimerId),e.endTimerId=void 0),requestAnimationFrame(()=>{this.events.emit("resize",!0)})}scheduleLayout(t,e,r){let i=this.states.get(t);!i||i.layoutScheduled||(i.layoutScheduled=!0,q.measure(()=>{i.layoutScheduled=!1,this.performSyncLayout(t,i,e,r)}))}performSyncLayout(t,e,r,i){let n=t.htmlElement,s=Array.from(n.children);if(s.length===0)return;let o=n.getBoundingClientRect(),a=getComputedStyle(n),l=parseFloat(a.paddingLeft)||0,c=parseFloat(a.paddingRight)||0,u=parseFloat(a.paddingTop)||0,p=o.width-l-c;if(p<=0)return;let{columns:g,gap:m}=this.getGridSettings(t),h=(p-m*(g-1))/g,b=(t.getProperty("masonry-mode")||"auto")==="auto"&&r&&!e.isResizing&&i!=="window-resize"&&i!=="resize-observer",y=g===e.lastLayoutColumns&&m===e.lastLayoutGap&&Math.abs(h-e.lastLayoutColumnWidth)<=.5,v=0;s.forEach(k=>{let O=e.childIds.get(k);O||(O=e.nextChildId++,e.childIds.set(k,O)),v=v*31+O>>>0}),e.lastLayoutColumns=g,e.lastLayoutGap=m,e.lastLayoutColumnWidth=h,e.lastChildrenHash=v;let S=new Map;r&&s.forEach(k=>{let O=e.items.get(k);O&&S.set(k,O.cw)}),L.begin(),s.forEach(k=>{L.setProps(k,{position:"absolute",top:"0",left:"0",width:`${h}px`})}),L.commit();let E=s.map(k=>k.offsetHeight),M=0;E.forEach(k=>M=M*31+Math.round(k*2)>>>0),e.lastHeightsHash=M,r&&S.size>0&&L.run(()=>{S.forEach((k,O)=>{L.setProps(O,{width:`${k}px`})})});let C=new Array(g).fill(0),A=performance.now(),I=!1,H=0;s.forEach((k,O)=>{let T=E[O],P=0,R=C[0];for(let j=1;j<g;j++)C[j]<R&&(R=C[j],P=j);let B=P*(h+m)+l,W=R+u,N=h;C[P]=R+T+m;let z=Vi(k.getAttribute("string-masonry-position-time")),nt=Vi(k.getAttribute("string-masonry-size-time")),yt=z>0?1/z:1e3,st=nt>0?1/nt:1e3,dt=this.parseEasing(k.getAttribute("string-masonry-position-easing")),xt=this.parseEasing(k.getAttribute("string-masonry-size-easing")),D=e.items.get(k);if(D)Math.abs(D.tx-B)+Math.abs(D.ty-W)+Math.abs(D.tw-N)>.5&&(D.sx=D.cx,D.sy=D.cy,D.sw=D.cw,D.tx=B,D.ty=W,D.tw=N,D.dx=D.tx-D.sx,D.dy=D.ty-D.sy,D.dw=D.tw-D.sw,D.posEase=dt,D.invPosDur=yt,D.sizeEase=xt,D.invSizeDur=st,D.startTime=A,D.isMoving=!0,I=!0,H=Math.max(H,z,nt));else{let j=B,ct=r?W+30:W;D={sx:j,sy:ct,sw:N,tx:B,ty:W,tw:N,dx:0,dy:0,dw:0,cx:j,cy:ct,cw:N,startTime:A,posEase:dt,invPosDur:yt,sizeEase:xt,invSizeDur:st,isMoving:r},e.items.set(k,D),r?(D.dx=D.tx-D.sx,D.dy=D.ty-D.sy,D.dw=D.tw-D.sw,I=!0,H=Math.max(H,z,nt)):L.run(()=>{L.setProps(k,{transform:`translate3d(${B}px, ${W}px, 0)`,width:`${N}px`,willChange:"auto"})})}});let w=Math.max(...C);if(Math.abs(e.targetHeight-w)>1)if(r){let k=n.getBoundingClientRect(),O=this.data.viewport.windowHeight;var _=!1;if(k.bottom>=-100&&k.bottom<=O+100){let T=k.top+w-O;if(Math.abs(T)>1&&w<n.offsetHeight){let P=k.top+this.data.scroll.current+w-O;this.events.emit("scrollTo",P),_=!0}}w>=e.targetHeight?(b?(e.startHeight=n.offsetHeight,e.heightStartTime=A,e.heightDuration=rt.DEFAULT_DURATION,e.heightEase=this.parseEasing(null),e.isAnimatingHeight=!0):L.run(()=>{L.setProps(t.htmlElement,{height:`${w}px`}),requestAnimationFrame(()=>{this.events.emit("resize",!0)})}),e.targetHeight=w,e.pendingHeight=void 0):(e.pendingHeight=w,e.pendingHeightAnimate=b,e.targetHeight=w,_||L.run(()=>{L.setProps(t.htmlElement,{height:`${w}px`}),requestAnimationFrame(()=>{this.events.emit("resize",!0)})})),I=!0}else e.targetHeight=w,e.pendingHeight=void 0,L.run(()=>{L.setProps(t.htmlElement,{height:`${w}px`})});I&&(e.isAnimating||this.events.emit("masonry:shuffle:start",{object:t}),e.isAnimating=!0,H>0&&(e.expectedEndTime=A+H+32,e.endTimerId&&window.clearTimeout(e.endTimerId),e.endTimerId=window.setTimeout(()=>{e.isAnimating&&(e.pendingHeight!==void 0||e.isAnimatingHeight||(this.events.emit("masonry:shuffle:end",{object:t}),e.isAnimating=!1,e.endTimerId=void 0))},H+50)))}getGridSettings(t){let e=this.data.viewport.windowWidth;if((t.getProperty("masonry-mode")||"auto")==="manual"){let s=t.getProperty(rt.MANUAL_COLS_KEY),o=t.getProperty(rt.MANUAL_GAP_KEY),a=t.getProperty("masonry-cols")||[],l=t.getProperty("masonry-gap")||[];return{columns:Math.max(1,Math.round(s??_e(a,e)??2)),gap:Math.max(0,o??_e(l,e)??16)}}let i=t.getProperty("masonry-cols")||[{breakpoint:0,value:2}],n=t.getProperty("masonry-gap")||[{breakpoint:0,value:16}];return{columns:Math.max(1,Math.round(_e(i,e)??2)),gap:Math.max(0,_e(n,e)??16)}}attachImgLoaders(t,e,r){(r.tagName==="IMG"?[r]:Array.from(r.querySelectorAll("img"))).forEach(n=>{let s=n;if(s.complete||e.imgUnsubs.has(s))return;let o=()=>{this.scheduleLayout(t,!0,"img-load"),this.cleanupImgListeners(e,s)};s.addEventListener("load",o),s.addEventListener("error",o),e.imgUnsubs.set(s,()=>{s.removeEventListener("load",o),s.removeEventListener("error",o)})})}cleanupImgListeners(t,e){let r=i=>{let n=t.imgUnsubs.get(i);n&&(n(),t.imgUnsubs.delete(i))};e.tagName==="IMG"?r(e):e.querySelectorAll("img").forEach(i=>r(i))}};var Fr=class extends x{constructor(t){super(t),this.htmlKey="magnetic",this._type=2,this.cssProperties=[{name:"--magnetic-x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--magnetic-y",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--magnetic-target-x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--magnetic-target-y",syntax:"<number>",initialValue:"0",inherits:!0}],this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1,this.permissions.mobile.rebuild.scrollHeight=!1,this.attributesToMap=[...this.attributesToMap,{key:"strength",type:"number",fallback:this.settings.strength},{key:"radius",type:"number",fallback:this.settings.radius}]}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("magnetic-active",!1),e.setProperty("magnetic-target-x",0),e.setProperty("magnetic-target-y",0),e.setProperty("magnetic-x",0),e.setProperty("magnetic-y",0),e.setProperty("magnetic-lerp",.1),e.setProperty("event-magnetic-name",this.getObjectEventName(e,"magnetic:move")),e.setProperty("__next-magnetic-x",0),e.setProperty("__next-magnetic-y",0),e.setProperty("__needs-magnetic-update",!1)}onMouseMove(t){for(let e=0;e<this.objects.length;e++){let r=this.objects[e],n=r.htmlElement.getBoundingClientRect(),s=n.left+n.width/2,o=n.top+n.height/2,a=t.clientX-s,l=t.clientY-o,c=Math.sqrt(a**2+l**2),u=r.getProperty("radius")??0,p=r.getProperty("strength")??0,g=this.tools.magneticPull.process({distance:c,radius:u,strength:p});r.setProperty("magnetic-target-x",a*g),r.setProperty("magnetic-target-y",l*g),g>0&&r.setProperty("magnetic-active",!0)}}onFrame(t){for(let e=0;e<this.objects.length;e++){let r=this.objects[e];if(r.getProperty("magnetic-active")===!0){let i=r.getProperty("magnetic-x")??0,n=r.getProperty("magnetic-y")??0,s=r.getProperty("magnetic-lerp")??.1,o=r.getProperty("magnetic-target-x")??0,a=r.getProperty("magnetic-target-y")??0,l=this.tools.lerp.process({from:i,to:o,progress:s}),c=this.tools.lerp.process({from:n,to:a,progress:s});l>-.01&&l<.01&&(l=0,r.setProperty("magnetic-x",o)),c>-.01&&c<.01&&(c=0,r.setProperty("magnetic-y",a)),i+=l,n+=c,r.setProperty("magnetic-x",i),r.setProperty("magnetic-y",n);let u=r.getProperty("event-magnetic-name");u&&this.events.emit(u,{x:i,y:n}),r.setProperty("__next-magnetic-x",i),r.setProperty("__next-magnetic-y",n),r.setProperty("__needs-magnetic-update",!0),o===i&&a===n&&r.setProperty("magnetic-active",!1)}}}onMutate(){for(let t=0;t<this.objects.length;t++){let e=this.objects[t];if(!(e.getProperty("__needs-magnetic-update")===!0))continue;let i=e.getProperty("__next-magnetic-x")??e.getProperty("magnetic-x")??0,n=e.getProperty("__next-magnetic-y")??e.getProperty("magnetic-y")??0;this.applyToElementAndConnects(e,s=>{L.setVar(s,"--magnetic-x",i),L.setVar(s,"--magnetic-y",n)}),e.setProperty("__needs-magnetic-update",!1)}}};var te=class extends x{nearOnly=!0;useAllObjects=!1;maxDistanceMultiplier=1;updateThreshold=.1;enabled=!0;constructor(t){super(t),Be()&&(this.enabled=!1)}onObjectConnected(t){this.enabled&&(super.onObjectConnected(t),this.centers.attach(t),this.hover.track(t))}removeObject(t){if(!this.enabled)return super.removeObject(t);let e=this.objectMapOnPage.get(t);e&&(this.centers.detach(e),this.hover.untrack(e)),super.removeObject(t)}onScroll(){this.enabled&&(this.centers.invalidateAll(),this.scheduleCursorUpdate())}onMouseMoveMeasure(t){this.enabled&&(super.onMouseMoveMeasure(t),this.refreshPointerState())}onScrollMeasure(t){this.enabled&&(super.onScrollMeasure(t),this.refreshPointerState())}getCursorTargets(t=!1){if(!this.enabled)return[];let e=this.hover.activeObjects();return this.nearOnly&&e.length?e:this.useAllObjects?this.objectsOnPage:this.objects.length>0?this.objects:t?this.objectsOnPage:this.objects}refreshPointerState(t,e=!1){if(!this.enabled)return;let r=this.data.cursor.targetX,i=this.data.cursor.targetY,n=t?[t]:this.getCursorTargets(e),s=!this.nearOnly&&this.maxDistanceMultiplier>0?Math.pow(this.data.viewport.windowWidth*this.maxDistanceMultiplier,2):null;for(let o of n){let{cx:a,cy:l}=this.centers.getCenter(o),c=r-a,u=i-l,p=c*c+u*u;if(this.nearOnly){if(p>this.data.viewport.windowWidth*this.data.viewport.windowWidth&&!this.hover.isActive(o))continue}else if(s!==null&&p>s)continue;o.setProperty("dx",c),o.setProperty("dy",u),o.setProperty("dist",Math.sqrt(p))}}scrollUpdateScheduled=!1;scheduleCursorUpdate(){!this.enabled||this.scrollUpdateScheduled||(this.scrollUpdateScheduled=!0,q.measure(()=>{this.refreshPointerState(),q.mutate(()=>{this.scrollUpdateScheduled=!1,L.run(()=>{this.onCursorScrollUpdate()})})}))}onCursorScrollUpdate(){}};var Vr=Math.PI*2,Zn=180/Math.PI,Ni=d=>d<0?0:d>1?1:d,Qn=(d,t)=>{let e=(t-d)%Vr;return e>Math.PI&&(e-=Vr),e<-Math.PI&&(e+=Vr),d+e},Jn={computeStep(d,t,e,r,i,n,s,o,a,l,c,u,p,g,m,h,f){let b=a;(h===1||e>r)&&(b=Math.atan2(t,d));let y=i>0?Math.min(e,i):e,v=s,S=o;if(g===1)v=b,S=y;else{let A=Qn(s,b),I=Ni(n);v+=(A-v)*I,S+=(y-S)*I}let E=v*Zn-90,M=m===1||Number.isNaN(l)||Math.abs(E-l)>u,C=m===1||Number.isNaN(c)||Math.abs(S-c)>p;f.angle=v,f.dist=S,f.tAngle=b,f.tDist=y,f.degRaw=E,f.cssDeg=Math.round(E*10)/10,f.cssDist=Math.round(S*10)/10,f.angleChanged=M?1:0,f.distChanged=C?1:0}},ts={bypassDeadzone:!0},es={forceImmediate:!0,forceEmit:!0,bypassDeadzone:!0},Wi=new WeakMap,rs=d=>{let t=Wi.get(d);return t||(t={angle:0,dist:0,tAngle:0,tDist:0,prevDeg:NaN,prevDist:NaN},Wi.set(d,t)),t},Wr=class extends te{stepResult={angle:0,dist:0,tAngle:0,tDist:0,degRaw:0,cssDeg:0,cssDist:0,angleChanged:0,distChanged:0};constructor(t){super(t),this.htmlKey="spotlight",this.cssProperties=[{name:"--spotlight-angle",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--spotlight-distance",syntax:"<number>",initialValue:"0",inherits:!0}],this.nearOnly=!1,this.useAllObjects=!1,this.maxDistanceMultiplier=1,this.attributesToMap.push({key:"lerp",type:"number",fallback:this.settings.lerp,transform:e=>Ni(this.tools.adaptiveLerp.process({value:e,inMin:.1,inMax:1,outMin:.05,outMax:.65}))},{key:"angle-threshold",type:"number",fallback:.2},{key:"distance-threshold",type:"number",fallback:.5},{key:"deadzone",type:"number",fallback:4},{key:"dist-max",type:"number",fallback:0})}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("spotlight-angle-rad",0),e.setProperty("spotlight-distance",0),e.setProperty("spotlight-angle-rad-target",0),e.setProperty("spotlight-distance-target",0),q.measure(()=>{this.refreshPointerState(e,!0),q.mutate(()=>{L.run(()=>{this.updateSpotlightState(e,es)})})})}onMutate(t){if(this.enabled){super.onMutate(t);let e=this.getCursorTargets(!1),r=e.length>0?e:this.getCursorTargets(!0);for(let i=0;i<r.length;i++){let n=r[i];this.updateSpotlightState(n)}}}onCursorScrollUpdate(){let t=this.getCursorTargets(!1),e=t.length>0?t:this.getCursorTargets(!0);for(let r=0;r<e.length;r++){let i=e[r];this.updateSpotlightState(i,ts)}}updateSpotlightState(t,e={}){let r=t.getProperty("dx"),i=t.getProperty("dy"),n=t.getProperty("dist");if(!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(n))return;let s=rs(t);Jn.computeStep(r,i,n,t.getProperty("deadzone")??4,t.getProperty("dist-max")??0,t.getProperty("lerp")??.15,s.angle,s.dist,s.tAngle,s.prevDeg,s.prevDist,t.getProperty("angle-threshold")??.2,t.getProperty("distance-threshold")??.5,e.forceImmediate===!0?1:0,e.forceEmit===!0?1:0,e.bypassDeadzone===!0?1:0,this.stepResult),s.angle=this.stepResult.angle,s.dist=this.stepResult.dist,s.tAngle=this.stepResult.tAngle,s.tDist=this.stepResult.tDist,t.setProperty("spotlight-distance-target",s.tDist),t.setProperty("spotlight-angle-rad-target",s.tAngle),t.setProperty("spotlight-angle-rad",s.angle),t.setProperty("spotlight-distance",s.dist),(this.stepResult.angleChanged===1||this.stepResult.distChanged===1)&&(this.writeSpotlightVars(t,this.stepResult.cssDeg,this.stepResult.cssDist),s.prevDeg=this.stepResult.degRaw,s.prevDist=s.dist,this.events.emit(this.getObjectEventName(t,"spotlight:update"),{distance:this.stepResult.cssDist,angleDeg:this.stepResult.cssDeg}))}writeSpotlightVars(t,e,r){let i=()=>{this.applyToElementAndConnects(t,n=>{L.setVar(n,"--spotlight-angle",e),L.setVar(n,"--spotlight-distance",r)})};if(L.isOpen){i();return}L.run(i)}};var zi="-aspect-ready";function is(d){if(!d)return!1;let t=d.toLowerCase();return!!(t.endsWith(".svg")||t.startsWith("data:image/svg"))}function Gi(d){let t=new DataView(d);return d.byteLength<28?{width:0,height:0}:t.getUint32(0)!==2303741511||t.getUint32(4)!==218765834?{width:0,height:0}:t.getUint32(8)!==13||t.getUint32(12)!==1229472850?{width:0,height:0}:{width:t.getUint32(16,!1),height:t.getUint32(20,!1)}}function $i(d){let t=new DataView(d);if(t.getUint16(0)!==65496)return{width:0,height:0};let e=2;for(;e+9<d.byteLength;){let r=t.getUint16(e);if(e+=2,r===65498||r===65497)break;let i=t.getUint16(e);if(i<2||e+i>d.byteLength)break;if(r>=65472&&r<=65475||r>=65477&&r<=65479||r>=65481&&r<=65483||r>=65485&&r<=65487)return{height:t.getUint16(e+3),width:t.getUint16(e+5)};e+=i}return{width:0,height:0}}function Ui(d){let t=new DataView(d);if(d.byteLength<16)return{width:0,height:0};if(t.getUint32(0,!0)!==1179011410||t.getUint32(8,!0)!==1346520407)return{width:0,height:0};let e=12;for(;e+8<=d.byteLength;){let r=t.getUint32(e,!1),i=t.getUint32(e+4,!0),n=e+8;if(r===1448097880){let s=(t.getUint16(n+4,!0)|t.getUint8(n+6)<<16)+1,o=(t.getUint16(n+7,!0)|t.getUint8(n+9)<<16)+1;return{width:s,height:o}}if(r===1448097824&&n+10<=d.byteLength&&t.getUint8(n+3)===157&&t.getUint8(n+4)===1&&t.getUint8(n+5)===42){let s=t.getUint16(n+6,!0)&16383,o=t.getUint16(n+8,!0)&16383;return{width:s,height:o}}if(r===1448097868&&n+5<=d.byteLength&&t.getUint8(n)===47){let s=t.getUint8(n+1),o=t.getUint8(n+2),a=t.getUint8(n+3),l=t.getUint8(n+4),c=1+((o&63)<<8|s),u=1+((l&15)<<10|a<<2|(o&192)>>6);return{width:c,height:u}}e=n+i+(i&1)}return{width:0,height:0}}function ji(d,t){let e=(t||"").toLowerCase();if(e.includes("png"))return Gi(d);if(e.includes("jpeg")||e.includes("jpg"))return $i(d);if(e.includes("webp"))return Ui(d);let r=Gi(d);return r.width||(r=$i(d),r.width)||(r=Ui(d),r.width)?r:{width:0,height:0}}async function ns(d,t,e){let r=await fetch(d,{mode:"cors",credentials:t?.credentials??"omit",referrerPolicy:t?.referrerPolicy,signal:t?.signal,cache:"default"});if(!r.ok||!r.body)throw new Error(`HTTP ${r.status}`);let i=r.headers.get("content-type"),n=r.body.getReader(),s=1048576,o=4096,a=new Uint8Array(s),l=0,c=0,u=[],p=null,g=!1;for(;;){let{done:f,value:b}=await n.read();if(f)break;if(!b)continue;let y=b.buffer.slice(b.byteOffset,b.byteOffset+b.byteLength);if(u.push(y),!p&&l<s){let v=Math.min(b.byteLength,s-l);if(v>0&&(a.set(b.subarray(0,v),l),l+=v),l-c>=o){let S=l===a.byteLength?a:a.slice(0,l),E=ji(S.buffer,i);E.width&&E.height&&(p=E,!g&&e&&(e(p),g=!0)),c=l}}}if(!p){let f=await new Response(new Blob(u)).arrayBuffer(),b=ji(f,i);b.width&&b.height&&(p=b,!g&&e&&(e(p),g=!0))}let m=new Blob(u,{type:i||"application/octet-stream"}),h=URL.createObjectURL(m);return{dims:p,blobUrl:h,contentType:i}}var Nr=class extends x{isStartLoaded=!1;loadingCount=0;imageStates=new WeakMap;constructor(t){super(t),this.htmlKey="lazy"}onInit(){document.querySelectorAll("img[string-lazy], img[data-string-lazy]").forEach(e=>this.ensureState(e)),this.isStartLoaded=!0}onObjectConnected(t){let e=t.htmlElement;if(!(e instanceof HTMLImageElement))return;e.getAttribute("src")||e.setAttribute("src","data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1' height='1' viewBox='0 0 1 1'%3E%3C/svg%3E");let r=this.ensureState(e);!r.aspectReady&&!r.aspectLoading&&this.prepareAspectRatio(e);let i=s=>{this.handleInView(e,r,!!s?.inView)};r.unsubscribe&&r.unsubscribe();let n=this.getObjectEventName(t,"object:inview");this.events.on(n,i),r.unsubscribe=()=>this.events.off(n,i),this.isStartLoaded&&(t.getProperty("is-inview")??!1)&&this.handleInView(e,r,!0)}onObjectDisconnected(t){let e=t.htmlElement;if(!(e instanceof HTMLImageElement))return;let r=this.imageStates.get(e);r&&(r.pendingActivation=!1,r.controller&&r.controller.abort(),r.blobUrl&&URL.revokeObjectURL(r.blobUrl),r.unsubscribe&&(r.unsubscribe(),r.unsubscribe=void 0))}ensureState(t){let e=this.imageStates.get(t);if(!e){let r=this.readSource(t);return e={src:r,aspectReady:!1,contentReady:!1,aspectLoading:!1,contentLoading:!1,pendingActivation:!1,rangeAttempted:!1,fetching:!1},this.imageStates.set(t,e),t.classList.contains("lazyLoad")||t.classList.add("lazyLoad"),t.dataset&&!t.dataset.stringLazySrc&&r&&(t.dataset.stringLazySrc=r),e}return e.src||(e.src=this.readSource(t)),e}readSource(t){let e=this.tools.domAttribute.process({element:t,key:this.htmlKey,fallback:""});return typeof e=="string"?e:e==null?"":String(e)}handleInView(t,e,r){e.pendingActivation=r,r&&(e.aspectReady?this.maybeActivateImage(t,e):e.aspectLoading||this.prepareAspectRatio(t))}async prepareAspectRatio(t){let e=this.ensureState(t);if(!e.src||e.aspectLoading||e.aspectReady)return;if(is(e.src)){e.aspectReady=!0,e.allowSrcFallback=!0,this.maybeActivateImage(t,e);return}e.aspectLoading=!0,e.fetching=!0;let r=t.getAttribute("crossorigin"),i=t.getAttribute("referrerpolicy"),n=new AbortController;e.controller=n;try{let{blobUrl:s}=await ns(e.src,{credentials:r==="use-credentials"?"include":"omit",referrerPolicy:i||void 0,signal:n.signal},o=>{o.width>0&&o.height>0&&!e.aspectReady&&(t.style.aspectRatio=`${o.width} / ${o.height}`,t.classList.add(zi),e.width=o.width,e.height=o.height,e.aspectReady=!0)});e.blobUrl=s,!e.aspectReady&&e.width&&e.height&&(t.style.aspectRatio=`${e.width} / ${e.height}`,t.classList.add(zi),e.aspectReady=!0)}catch{e.allowSrcFallback=!0,e.aspectReady=!0}finally{e.fetching=!1,e.aspectLoading=!1,this.maybeActivateImage(t,e)}}maybeActivateImage(t,e){!e.pendingActivation||e.contentReady||e.contentLoading||!e.aspectReady||!e.src||e.fetching&&!e.blobUrl||(e.blobUrl||e.allowSrcFallback)&&this.activateImage(t,e)}activateImage(t,e){e.contentLoading=!0,this.loadingCount++;let r=s=>{e.contentLoading&&(e.contentLoading=!1,e.pendingActivation=!1,this.loadingCount=Math.max(0,this.loadingCount-1),s&&(e.contentReady=!0,t.classList.add("-loaded")),this.loadingCount===0&&this.events.emit("image:load:all",null))},i=()=>r(!0),n=()=>r(!1);t.addEventListener("load",i,{once:!0}),t.addEventListener("error",n,{once:!0}),t.decoding="async",t.loading=t.loading||"lazy",e.blobUrl?(t.removeAttribute("srcset"),t.removeAttribute("sizes"),t.src=e.blobUrl):t.src=e.src,t.complete&&t.naturalWidth>0&&t.naturalHeight>0&&(t.removeEventListener("load",i),t.removeEventListener("error",n),r(!0))}};var zr=class extends x{loadingTimeout=0;constructor(t){super(t),this._type=2,this.loadingTimeout=this.settings.timeout}onInit(){setTimeout(()=>{document.documentElement.classList.add("-loaded")},this.loadingTimeout)}};var Fe=class extends x{constructor(t){super(t),this.htmlKey=""}canConnect(t){return t.keys[0]==null||t.getProperty("inview-fallback")===!0}};var Pt=class{min=void 0;max=void 0;enable=!0;constructor(t){this.min=t?.min,this.max=t?.max,this.enable=t?.enable??!0}setEnable(t=!0){this.enable=t}setRange(t,e){this.min=t??void 0,this.max=e??void 0}get mediaQuery(){let t="screen";return this.min&&(t+=` and (min-width: ${this.min}px)`),this.max&&(t+=` and (max-width: ${this.max}px)`),t}},Gr=class extends x{queries={0:new Pt({max:359}),1:new Pt({min:360,max:1023}),2:new Pt({min:1024,max:1365}),3:new Pt({min:1366})};isMobileMedia=!1;isTabletMedia=!1;isLaptopMedia=!1;isDesktopMedia=!1;matchMedias={0:window.matchMedia(this.queries[0].mediaQuery),1:window.matchMedia(this.queries[1].mediaQuery),2:window.matchMedia(this.queries[2].mediaQuery),3:window.matchMedia(this.queries[3].mediaQuery)};constructor(t){super(t),this._type=2}onConnect(){}onInit(){if(this.settings!=null&&this.settings.settings!=null){let t=this.settings.settings;t.mobile?(this.queries[0].enable=!0,this.queries[0].setRange(t.mobile.min==null?null:t.mobile.min,t.mobile.max??null),this.matchMedias[0]=window.matchMedia(this.queries[0].mediaQuery)):this.queries[0].enable=!1,t.tablet?(this.queries[1].enable=!0,this.queries[1].setRange(t.tablet.min==null?null:t.tablet.min,t.tablet.max??null),this.matchMedias[1]=window.matchMedia(this.queries[1].mediaQuery)):this.queries[1].enable=!1,t.laptop?(this.queries[2].enable=!0,this.queries[2].setRange(t.laptop.min==null?null:t.laptop.min,t.laptop.max??null),this.matchMedias[2]=window.matchMedia(this.queries[2].mediaQuery)):this.queries[2].enable=!1,t.desktop?(this.queries[3].enable=!0,this.queries[3].setRange(t.desktop.min==null?null:t.desktop.min,t.desktop.max??null),this.matchMedias[3]=window.matchMedia(this.queries[3].mediaQuery)):this.queries[3].enable=!1}this.updateElements()}onResize(){this.updateElements()}updateElements(){let t=this.matchMedias[0].matches&&this.queries[0].enable,e=this.matchMedias[1].matches&&this.queries[1].enable,r=this.matchMedias[2].matches&&this.queries[2].enable,i=this.matchMedias[3].matches&&this.queries[3].enable;this.isMobileMedia!=t&&this.events.emit("screen:mobile",t),this.isTabletMedia!=e&&this.events.emit("screen:tablet",e),this.isLaptopMedia!=r&&this.events.emit("screen:laptop",r),this.isDesktopMedia!=i&&this.events.emit("screen:desktop",i),this.isMobileMedia=t,this.isTabletMedia=e,this.isLaptopMedia=r,this.isDesktopMedia=i,document.querySelectorAll("[string-mobile], [string-tablet], [string-laptop], [string-desktop]").forEach(s=>{let o=!1;s.hasAttribute("string-mobile")&&t&&(o=!0),s.hasAttribute("string-tablet")&&e&&(o=!0),s.hasAttribute("string-laptop")&&r&&(o=!0),s.hasAttribute("string-desktop")&&i&&(o=!0),o?s.style.display=null:s.style.display="none"})}};var $r=class extends x{constructor(t){super(t),this.htmlKey="anchor",this.attributesToMap=[...this.attributesToMap,{key:"anchor",type:"tuple",fallback:this.settings.anchor,transform:e=>{let[r,i]=e,n=this.tools.originParser.process({value:r}),s=this.tools.originParser.process({value:i});return{x:n,y:s}}}]}onObjectConnected(t){super.onObjectConnected(t);let e=t.getProperty("anchor");e&&this.applyToElementAndConnects(t,r=>{r.style.transformOrigin=`${e.x} ${e.y}`})}};var ss=.05,os=.01,Yi=1,as=-1,ls=1,Ur=class extends x{defaultModeScope=["smooth"];previousLerp=0;displacement=0;acceleration=0;velocityMultiplier=.00125;isInitialScroll=!0;baseVelocityMultiplier=.00125;reducedVelocityMultiplier=this.baseVelocityMultiplier/20;negativeVelocityMultiplier=-1e-4;maxDisplacementValue=0;constructor(t){super(t),this.htmlKey="glide",this.cssProperties=[{name:"--glide",syntax:"<number>",initialValue:"0",inherits:!0}],this.baseVelocityMultiplier=this.settings["glide-base-velocity"]??this.baseVelocityMultiplier,this.reducedVelocityMultiplier=this.settings["glide-reduce-velocity"]??this.reducedVelocityMultiplier,this.negativeVelocityMultiplier=this.settings["glide-negative-velocity"]??this.negativeVelocityMultiplier,this.attributesToMap=[...this.attributesToMap,{key:"glide",type:"number",fallback:this.settings.glide}]}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("glide-value",e.getProperty("glide")??0),e.setProperty("event-glide-name",this.getObjectEventName(e,"object:glide")),e.setProperty("__next-glide",0),e.setProperty("__next-glide-transform","translate3d(0, 0px, 0)"),e.setProperty("__needs-glide-var-update",!1),e.setProperty("__needs-glide-transform-update",!1)}setupItem=t=>{let e=t.getProperty("glide-value")??0,r=-this.data.scroll.displacement*this.maxDisplacementValue*e,i=t.getProperty("event-glide-name");i&&this.events.emit(i,r);let n=`translate3d(0, ${r}px, 0)`;t.setProperty("__next-glide-transform",n),t.setProperty("__needs-glide-transform-update",!0)};updateTransforms(){for(let t=0;t<this.objects.length;t++)this.setupItem(this.objects[t])}resetObjectStyles(t){for(let e=0;e<t.length;e++){let r=t[e];r.setProperty("__next-glide-transform","translate3d(0, 0px, 0)"),r.setProperty("__needs-glide-transform-update",!0),r.setProperty("__next-glide",0),r.setProperty("__needs-glide-var-update",!0)}}calcExpanderFactor(t){let e=t?this.data.scroll.lerped<this.previousLerp:this.data.scroll.lerped>this.previousLerp;this.velocityMultiplier=e?this.isInitialScroll?this.baseVelocityMultiplier:this.reducedVelocityMultiplier:this.negativeVelocityMultiplier,e||(this.isInitialScroll=!1)}onStart(){this.maxDisplacementValue=this.data.viewport.windowHeight*.1}onResize(){this.maxDisplacementValue=this.data.viewport.windowHeight*.1}resetState(){this.displacement=0,this.acceleration=0,this.isInitialScroll=!0,this.velocityMultiplier=this.baseVelocityMultiplier}onScrollStart(){this.resetState()}onScrollStop(){this.resetState(),this.previousLerp=0,this.data.scroll.displacement=0,this.resetObjectStyles(this.objects),this.flushPendingGlideStyles()}onFrame(t){this.calcExpanderFactor(this.data.scroll.isScrollingDown===!1),this.acceleration=Math.min(Yi,this.acceleration+ss),this.displacement=Math.max(os,Math.min(Yi,this.displacement+this.velocityMultiplier)),this.data.scroll.displacement=Math.min(ls,Math.max(as,this.data.scroll.lerped*this.displacement*this.acceleration));let e=this.data.scroll.displacement;for(let r=0;r<this.objects.length;r++){let i=this.objects[r];i.setProperty("__next-glide",e),i.setProperty("__needs-glide-var-update",!0)}this.previousLerp=this.data.scroll.lerped,this.updateTransforms()}onObjectModeDeactivated(t){super.onObjectModeDeactivated(t),this.resetObjectStyles([t]),L.run(()=>{this.applyPendingGlideStylesForObject(t)})}onMutate(){this.applyPendingGlideStyles()}applyPendingGlideStylesForObject(t){let e=t.getProperty("__next-glide")??0,r=t.getProperty("__next-glide-transform")??"translate3d(0, 0px, 0)";this.applyVarToElement(t,"--glide",e),this.applyVarToConnects(t,"--glide",e),this.applyPropToElement(t,"transform",r),t.setProperty("__needs-glide-var-update",!1),t.setProperty("__needs-glide-transform-update",!1)}applyPendingGlideStyles(){for(let t=0;t<this.objects.length;t++){let e=this.objects[t],r=e.getProperty("__needs-glide-var-update")===!0,i=e.getProperty("__needs-glide-transform-update")===!0;if(!(!r&&!i)){if(r){let n=e.getProperty("__next-glide")??this.data.scroll.displacement;this.applyVarToElement(e,"--glide",n),this.applyVarToConnects(e,"--glide",n),e.setProperty("__needs-glide-var-update",!1)}if(i){let n=e.getProperty("__next-glide-transform")??"translate3d(0, 0px, 0)";this.applyPropToElement(e,"transform",n),e.setProperty("__needs-glide-transform-update",!1)}}}}flushPendingGlideStyles(){if(L.isOpen){this.applyPendingGlideStyles();return}L.run(()=>{this.applyPendingGlideStyles()})}};var jr=class extends x{hasInitializedCSS=!1;defaultModeScope=["smooth"];constructor(t){super(t),this.htmlKey="lerp",this.cssProperties=[{name:"--lerp",syntax:"<number>",initialValue:"0",inherits:!0}],this.attributesToMap=[]}onObjectConnected(t){super.onObjectConnected(t),t.setProperty("lerp-value",0),t.setProperty("lerp-applied",0),t.setProperty("event-lerp-name",this.getObjectEventName(t,"object:lerp"))}onResize(){super.onResize(),!this.hasInitializedCSS&&this.objectsOnPage.length>0&&(this.hasInitializedCSS=!0,L.run(()=>{for(let t=0;t<this.objectsOnPage.length;t++)this.updateObjectLerp(this.objectsOnPage[t],!0)}))}onScrollStop(){for(let t=0;t<this.objects.length;t++)this.recomputeLerp(this.objects[t],0)}onFrame(t){let e=t.scroll.lerped;for(let r=0;r<this.objects.length;r++)this.recomputeLerp(this.objects[r],e)}recomputeLerp(t,e){(t.getProperty("lerp-value")??0)!==e&&(t.setProperty("lerp-value",e),this.updateObjectLerp(t))}onMutate(){L.run(()=>{let t=this.objects.length;for(let e=0;e<t;e++)this.updateObjectLerp(this.objects[e])})}updateObjectLerp(t,e=!1){let r=t.getProperty("lerp-value")??0,i=t.getProperty("lerp-applied");if(!e&&i===r)return;t.setProperty("lerp-applied",r);let n=r?.toString()??"0",s=t.getProperty("event-lerp-name");s&&this.events.emit(s,r),L.run(()=>{this.applyVarToElement(t,"--lerp",n),this.applyVarToConnects(t,"--lerp",n)})}onObjectDisconnected(t){super.onObjectDisconnected(t);let e=i=>{i.style.removeProperty("--lerp")};e(t.htmlElement);let r=t.mirrorObjects;for(let i=0;i<r.length;i++)e(r[i].htmlElement)}};var Lt="__string-dev-progress-override",qi={computeRawProgress(d,t,e){if(e===0)return 0;let r=(d-t)/e;return r<=0?0:r>=1?1:r},computeRawProgressBatch(d,t,e,r,i){for(let n=0;n<i;n++){let s=e[n];if(s===0){r[n]=0;continue}let o=(d-t[n])/s;o<=0?r[n]=0:o>=1?r[n]=1:r[n]=o}}},ee=class extends x{updateScheduled=!1;batchStarts=new Float64Array(0);batchDiffs=new Float64Array(0);batchOut=new Float64Array(0);constructor(t){super(t),this.htmlKey="progress",this.cssProperties=[{name:"--progress",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--progress-slice",syntax:"<number>",initialValue:"0",inherits:!0}],this.attributesToMap=[...this.attributesToMap,{key:"easing",type:"easing",fallback:this.settings.easing},{key:"precision",type:"number",fallback:this.settings.precision??-1}]}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i)}sanitizeRawProgress(t){if(!Number.isFinite(t)||t<=0)return 0;if(t>=1)return 1;let e=1e-4;return t>1-e?t=1:t<e&&(t=0),t}resolveRawProgress(t,e,r,i){let n=t.getProperty(Lt);return n!=null?this.sanitizeRawProgress(n):qi.computeRawProgress(e,r,i)}applyRawProgress(t,e){let r=this.sanitizeRawProgress(e),i=t.getProperty("easing"),n=typeof i=="function"?i(r):r,s=t.getProperty("precision")??-1,o=s>=0?Math.round(n*10**s)/10**s:n;t.getProperty("progress-value")!==o&&(t.setProperty("progress-raw",r),t.setProperty("progress-value",o))}recomputeProgress(t){let e=t.getProperty("start-position")??t.getProperty("progress-start-position")??0,r=t.getProperty("difference-position")??t.getProperty("progress-difference-position")??0;t.setProperty("progress-start-position",e),t.setProperty("progress-difference-position",r);let i=this.resolveRawProgress(t,this.data.scroll.transformedCurrent,e,r);this.applyRawProgress(t,i)}ensureBatchCapacity(t){this.batchStarts.length>=t||(this.batchStarts=new Float64Array(t),this.batchDiffs=new Float64Array(t),this.batchOut=new Float64Array(t))}calculatePositions(t,e){super.calculatePositions(t,e),t.setProperty("progress-start-position",t.getProperty("start-position")??t.getProperty("progress-start-position")??0),t.setProperty("progress-difference-position",t.getProperty("difference-position")??t.getProperty("progress-difference-position")??0),this.recomputeProgress(t)}onScroll(t){super.onScroll(t)}onObjectConnected(t){super.onObjectConnected(t)}onScrollMeasure(t){let e=this.objects.length;if(e!==0){this.ensureBatchCapacity(e);for(let r=0;r<e;r++){let i=this.objects[r],n=i.getProperty("start-position")??i.getProperty("progress-start-position")??0,s=i.getProperty("difference-position")??i.getProperty("progress-difference-position")??0;i.setProperty("progress-start-position",n),i.setProperty("progress-difference-position",s),this.batchStarts[r]=n,this.batchDiffs[r]=s}qi.computeRawProgressBatch(this.data.scroll.transformedCurrent,this.batchStarts,this.batchDiffs,this.batchOut,e);for(let r=0;r<e;r++){let i=this.objects[r],n=i.getProperty(Lt),s=n!=null?this.sanitizeRawProgress(n):this.batchOut[r];this.applyRawProgress(i,s)}}}onMutate(){L.run(()=>{let t=this.objects.length;for(let e=0;e<t;e++)this.updateObjectProgress(this.objects[e])})}updateObjectProgress(t){let e=t.getProperty("progress-value")??0;if(t.getProperty("progress-applied")===e)return;let i=t.getProperty("key"),n=t.getProperty("precision")??-1;t.setProperty("progress-applied",e);let s=t.getProperty("progress-raw")??e,o=t.getProperty("easing"),a=t.getProperty("event-progress-name")??t.getScopedEventName("object:progress");t.setProperty("event-progress-name",a),a&&this.events.emit(a,e),this.emitSignal(t,"progress",e),i&&this.applyVarToElement(t,i,e);for(let l=0;l<t.mirrorObjects.length;l++){let c=t.mirrorObjects[l],u=c.applyProgress(s,typeof o=="function"?o:void 0),p=n>=0?Math.round(u*10**n)/10**n:u;c.setProperty("progress",p),i&&this.tools.styleTxn.setVar(c.htmlElement,i,p)}}onObjectDisconnected(t){super.onObjectDisconnected(t);let e=t.getProperty("key");if(!e)return;let r=n=>{n.style.removeProperty(e)};r(t.htmlElement);let i=t.mirrorObjects;for(let n=0;n<i.length;n++)r(i[n].htmlElement)}};var Yr=class extends ee{defaultModeScope=["smooth"];updateScheduledTransform=!1;calculateParallaxForObject;constructor(t){super(t),this.htmlKey="parallax",this.attributesToMap=[...this.attributesToMap,{key:"parallax",type:"number",fallback:this.settings.parallax},{key:"parallax-bias",type:"number",fallback:this.settings["parallax-bias"]}],this.calculateParallaxForObject=this.calculateParallax}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i);let n=e.getProperty("parallax-bias")??0,s=Math.abs(e.getProperty("parallax")??.2);e.setProperty("parallax-sign",Math.sign(e.getProperty("parallax"))),e.setProperty("parallax",s),e.setProperty("parallax-position-start",-.5+.5*n),e.setProperty("parallax-position-end",.5+.5*(1-n));let o=this.data.viewport.windowHeight;e.setProperty("offset-top",s*o),e.setProperty("offset-bottom",s*o)}calculatePositions(t,e){super.calculatePositions(t,e),t.setProperty("parallax-transform-value",this.calculateParallaxForObject(t))}onScroll(t){super.onScroll(t)}onScrollMeasure(t){super.onScrollMeasure(t);for(let e=0;e<this.objects.length;e++){let r=this.objects[e];r.setProperty("parallax-transform-value",this.calculateParallaxForObject(r))}}onMutate(){L.run(()=>{for(let t=0;t<this.objects.length;t++){let e=this.objects[t],r=e.getProperty("progress-value")??0;e.getProperty("parallax-progress-applied")!==r&&(e.setProperty("parallax-transform-value",this.calculateParallaxForObject(e)),e.setProperty("parallax-progress-applied",r));let n=e.getProperty("parallax-transform-value");n&&(this.applyPropToElement(e,"transform",n.transform),this.applyPropToConnects(e,"transform",n.transform))}})}calculateParallax=t=>{let e=t.getProperty("progress-value")??0,r=t.getProperty("parallax")??0,i=t.getProperty("parallax-position-start")??0,n=t.getProperty("parallax-position-end")??1,s=t.getProperty("parallax-sign")??1,o=this.data.viewport.windowHeight/this.data.viewport.transformScale,a=s*r*(o*i+e*o*n);return this.events.emit(this.getObjectEventName(t,"object:parallax"),a),{transform:`translate3d(0, ${a}px, 0)`}}};var Ve=class{scrollbar;thumb;isDragging=!1;onScrollTo;startY=0;startScrollPosition=0;data;constructor(t,e,r,i){this.data=t,this.scrollbar=e,this.thumb=r,this.onScrollTo=i}onResize(){let t=this.data.viewport.contentWidth,e=this.data.viewport.windowWidth,r=e/t*e;this.thumb.style.setProperty("--size",r+"px"),t<=e?this.scrollbar.classList.add("-hide"):this.scrollbar.classList.remove("-hide")}updateThumb(){let t=this.data.viewport.contentWidth,e=this.data.viewport.windowWidth;this.thumb.style.setProperty("--position",`${this.data.scroll.current/t*e+"px"}`)}mouseDownEvent(t){this.startY=t.clientY,this.startScrollPosition=this.data.scroll.current}mouseMoveEvent(t){let e=t.clientY-this.startY,r=this.startScrollPosition+e/this.data.viewport.windowWidth*this.data.viewport.contentWidth;this.data.scroll.current=r,this.data.scroll.target=r,this.onScrollTo(r),this.updateThumb()}};var We=class{scrollbar;thumb;isDragging=!1;onScrollTo;startCoordinate=0;startScrollPosition=0;data;constructor(t,e,r,i){this.data=t,this.scrollbar=e,this.thumb=r,this.onScrollTo=i}onResize(){let t=this.data.viewport.contentHeight,e=this.data.viewport.windowHeight,r=e/t*e;this.thumb.style.setProperty("--height",r+"px"),t<=e?this.scrollbar.classList.add("-hide"):this.scrollbar.classList.remove("-hide")}updateThumb(){let t=this.data.viewport.contentHeight,e=this.data.viewport.windowHeight;this.thumb.style.setProperty("--position",`${this.data.scroll.current/t*e+"px"}`)}mouseDownEvent(t){this.startCoordinate=t.clientY,this.startScrollPosition=this.data.scroll.current}mouseMoveEvent(t){let e=t.clientY-this.startCoordinate,r=this.startScrollPosition+e/this.data.viewport.windowHeight*this.data.viewport.contentHeight,i=this.data.scroll.bottomPosition,n=Math.max(0,Math.min(r,i));this.data.scroll.current=n,this.data.scroll.target=n,this.onScrollTo(n),this.updateThumb()}};var qr=class extends x{scrollbar;thumb;scrollTimeout;isDragging=!1;scrollMode="smooth";mouseUpEventBind;mouseDownEventBind;mouseMoveEventBind;scrollbarState;scrollbarStateHorizontal;scrollbarStateVertical;requestScrollTo;constructor(t){super(t),this.mouseUpEventBind=this.mouseUpEvent.bind(this),this.mouseDownEventBind=this.mouseDownEvent.bind(this),this.mouseMoveEventBind=this.mouseMoveEvent.bind(this),this.requestScrollTo=e=>{this.events.emit("scrollTo",{position:e,immediate:!0})}}destructor(){document.removeEventListener("mouseup",this.mouseUpEventBind),this.thumb.removeEventListener("mousedown",this.mouseDownEventBind),document.removeEventListener("mousemove",this.mouseMoveEventBind)}onInit(){this.createScrollbar(),this.updateThumb(),this.addCustomStyles(),document.addEventListener("mouseup",this.mouseUpEventBind),this.thumb.addEventListener("mousedown",this.mouseDownEventBind),document.addEventListener("mousemove",this.mouseMoveEventBind),document.documentElement.classList.add("-no-scrollbar")}onScroll(t){this.updateThumb(),this.showScrollbar(),this.hideScrollbar()}onResize(){this.scrollbarState.onResize()}onRebuild(){this.scrollbarState.onResize()}addCustomStyles(){let t=document.createElement("style");t.textContent=`
1
+ var ve=class{context;SETTLE_THRESHOLD_SQ=.01;smoothingFactor;lastMouseX=0;lastMouseY=0;lastMouseTime=0;_lerpStepXArgs={from:0,to:0,progress:0};_lerpStepYArgs={from:0,to:0,progress:0};constructor(t=.1,e){this.smoothingFactor=t,this.context=e,this.onSettingsChange({isDesktop:e.data.viewport.windowWidth>1024,isForceRebuild:!1,widthChanged:!0,heightChanged:!0,scrollHeightChanged:!0})}onMouseMove(t){let e=this.context.data.cursor;e.targetX=t.clientX,e.targetY=t.clientY;let r=performance.now(),i=Math.max(1,r-this.lastMouseTime);e.velocityX=(t.clientX-this.lastMouseX)/i,e.velocityY=(t.clientY-this.lastMouseY)/i,this.lastMouseX=t.clientX,this.lastMouseY=t.clientY,this.lastMouseTime=r}onFrame(){let t=this.context.data.cursor,e=t.targetX,r=t.targetY,i=t.smoothedX,n=t.smoothedY;this._lerpStepXArgs.from=i,this._lerpStepXArgs.to=e,this._lerpStepXArgs.progress=this.smoothingFactor,this._lerpStepYArgs.from=n,this._lerpStepYArgs.to=r,this._lerpStepYArgs.progress=this.smoothingFactor;let s=this.context.tools.lerp.process(this._lerpStepXArgs),o=this.context.tools.lerp.process(this._lerpStepYArgs);s*s+o*o<this.SETTLE_THRESHOLD_SQ?(t.smoothedX=e,t.smoothedY=r,t.stepX=0,t.stepY=0):(t.smoothedX+=s,t.smoothedY+=o,t.stepX=s,t.stepY=o)}onSettingsChange(t){let e=Number(this.context.settings["cursor-lerp"]);this.setLerpFactor(e)}setLerpFactor(t){this.smoothingFactor=this.context.tools.adaptiveLerp.process({value:t,inMin:.1,inMax:1,outMin:.05,outMax:.65})}};var Ct=class{listeners={};stateEvents=new Set;lastPayloads={};constructor(){this.stateEvents.add("screen:mobile"),this.stateEvents.add("screen:tablet"),this.stateEvents.add("screen:laptop"),this.stateEvents.add("screen:desktop"),this.stateEvents.add("start")}registerStateEvent(t,e){this.stateEvents.add(t),e!==void 0&&(this.lastPayloads[t]=e)}on(t,e,r){let i=r?`${t}:${r}`:t;this.listeners[i]||(this.listeners[i]=new Set),this.listeners[i].add(e),this.stateEvents.has(i)&&this.lastPayloads[i]!==void 0&&e(this.lastPayloads[i])}off(t,e,r){let i=r?`${t}:${r}`:t;this.listeners[i]&&this.listeners[i].delete(e)}emit(t,e){this.stateEvents.has(t)&&(this.lastPayloads[t]=e);let r=this.listeners[t];if(r)for(let i of r)i(e)}onProgress(t,e){this.on(`progress:${t}`,e)}emitProgress(t,e){this.emit(`progress:${t}`,e)}onInview(t,e){this.on(`object:inview:${t}`,e)}emitInview(t,e){this.emit(`object:inview:${t}`,e)}onScroll(t){this.on("scroll",t)}emitScroll(t){this.emit("scroll",t)}onUpdate(t){this.on("update",t)}emitUpdate(){this.emit("update")}clear(t){delete this.listeners[t]}clearAll(){this.listeners={}}};var be=class{constructor(t){this.data=t}modules=[];uiModules=[];allModules=[];register(t){if(t.type===1?this.modules.push(t):t.type===2&&this.uiModules.push(t),t.cssProperties&&t.cssProperties.length>0&&typeof window.CSS<"u"&&"registerProperty"in window.CSS)for(let e=0;e<t.cssProperties.length;e++)try{window.CSS.registerProperty(t.cssProperties[e])}catch{}t.onSubscribe(),this.rebuildAllModules()}find(t){for(let e=0;e<this.allModules.length;e++){let r=this.allModules[e];if(r instanceof t)return r}}onInit(){this.callAll("onInit")}onFrame(){this.callAll("onFrame")}onMutate(){this.callAll("onMutate")}onScrollMeasure(){this.callAll("onScrollMeasure")}onMouseMoveMeasure(){this.callAll("onMouseMoveMeasure")}onScroll(){this.callAll("onScroll")}onResizeWidth(){this.callAll("onResizeWidth")}onResize(){this.callAll("onResize")}onRebuild(){this.callAll("onRebuild")}onMouseMove(t){this.callAll("onMouseMove",t)}onWheel(t){this.callAll("onWheel",t)}onDirectionChange(){this.callAll("onDirectionChange")}onScrollStart(){this.callAll("onScrollStart")}onScrollStop(){this.callAll("onScrollStop")}onAxisChange(){this.callAll("onAxisChange")}onDeviceChange(){this.callAll("onDeviceChange")}onScrollConfigChange(){this.callAll("onScrollConfigChange")}onSettingsChange(t){this.callAll("onSettingsChange")}onDOMMutate(t,e){this.callAll("onDOMMutate",t,e)}destroy(){this.callAll("onUnsubscribe"),this.callAll("destroy"),this.modules=[],this.uiModules=[],this.allModules=[]}get all(){return this.allModules}get core(){return this.modules}get ui(){return this.uiModules}callAll(t,e,r){this.modules.length>0&&this.callLifecycleStrict(this.modules,t,e,r),this.uiModules.length>0&&this.callLifecycleStrict(this.uiModules,t,e,r)}callLifecycleStrict(t,e,r,i){let n=t.length;switch(e){case"onFrame":case"onMutate":case"onScrollMeasure":case"onMouseMoveMeasure":case"onScroll":for(let s=0;s<n;s++){let o=t[s];o&&o[e](this.data)}break;case"onDOMMutate":for(let s=0;s<n;s++){let o=t[s];o&&o[e](r,i)}break;case"onMouseMove":case"onWheel":for(let s=0;s<n;s++){let o=t[s];o&&o[e](r)}break;default:for(let s=0;s<n;s++){let o=t[s];o&&o[e]()}break}}rebuildAllModules(){this.allModules.length=0;for(let t=0;t<this.modules.length;t++)this.allModules.push(this.modules[t]);for(let t=0;t<this.uiModules.length;t++)this.allModules.push(this.uiModules[t])}};var ye=class{constructor(t,e,r){this.parent=r;this.id=t,this.htmlElement=e}id;htmlElement;properties=new Map;easingFn;get parentObject(){return this.parent}setProperty(t,e){this.properties.set(t,e)}getProperty(t){return this.properties.get(t)??null}setEasing(t){this.easingFn=t??void 0}getEasing(){return this.easingFn}applyProgress(t,e){let r=this.easingFn??e;return r?r(t):t}};var _t=class{htmlElement;id="";keys=[];tokens=[];mirrors=new Map;_cachedMirrorObjects=[];_cachedConnects=[];_mirrorsDirty=!1;properties=new Map;modules=[];events=new Ct;eventNameCache=new Map;eventNameSuffixCache=new Map;constructor(t,e){this.htmlElement=e,this.id=t}getScopedEventName(t,e){if(e==null){let s=this.eventNameCache.get(t);if(s)return s;let o=`${t}:${this.id}`;return this.eventNameCache.set(t,o),o}let r=this.eventNameSuffixCache.get(t);r||(r=new Map,this.eventNameSuffixCache.set(t,r));let i=r.get(e);if(i)return i;let n=`${t}:${this.id}:${e}`;return r.set(e,n),n}setProperty(t,e){this.properties.set(t,e)}getProperty(t){return this.properties.get(t)??null}enter(){this.events.emit("enter",this),this.setProperty("active",!0),this.modules.forEach(t=>{t.enterObject(this.id,this)})}leave(){this.events.emit("leave",this),this.setProperty("active",!1),this.modules.forEach(t=>{t.exitObject(this.id)})}remove(){this.modules.forEach(t=>{t.removeObject(this.id)})}setInviewAutoBlocked(t){this.setProperty("inview-auto-blocked",t)}isInviewAutoBlocked(){return this.getProperty("inview-auto-blocked")===!0}setInviewManualActive(t){this.setProperty("inview-manual-active",t)}isInviewManualActive(){return this.getProperty("inview-manual-active")===!0}syncInviewClass(){if(this.isInviewAutoBlocked()){this.htmlElement.classList.remove("-inview");return}if(this.isInviewManualActive()){this.htmlElement.classList.add("-inview");return}if(this.getProperty("is-inview")===!0){this.htmlElement.classList.add("-inview");return}this.getProperty("repeat")&&this.htmlElement.classList.remove("-inview")}show(){this.isInviewAutoBlocked()||this.htmlElement.classList.add("-inview")}hide(){if(this.isInviewAutoBlocked()){this.htmlElement.classList.remove("-inview");return}if(this.isInviewManualActive())return;this.getProperty("repeat")&&this.htmlElement.classList.remove("-inview")}connect(t){return this.modules.includes(t)?!1:(this.modules.push(t),!0)}disconnect(t){let e=this.modules.indexOf(t);return e===-1?!1:(this.modules.splice(e,1),!0)}isConnectedTo(t){return this.modules.includes(t)}setTokens(t){this.tokens=t,this.keys=t.map(e=>e.key)}getToken(t){for(let e=0;e<this.tokens.length;e++)if(this.tokens[e].key===t)return this.tokens[e];return null}updateMirrorsCache(){if(this._mirrorsDirty){this._cachedMirrorObjects=Array.from(this.mirrors.values());let t=this._cachedMirrorObjects.length;this._cachedConnects=new Array(t);for(let e=0;e<t;e++)this._cachedConnects[e]=this._cachedMirrorObjects[e].htmlElement;this._mirrorsDirty=!1}}addMirror(t){this.mirrors.has(t.id)||(this.mirrors.set(t.id,t),this._mirrorsDirty=!0)}removeMirror(t){this.mirrors.delete(t)&&(this._mirrorsDirty=!0)}get mirrorObjects(){return this.updateMirrorsCache(),this._cachedMirrorObjects}get connects(){return this.updateMirrorsCache(),this._cachedConnects}};var Ft=class{readQueue=[];writeQueue=[];computeQueue=[];isProcessing=!1;pendingFrame=null;rectCache=new WeakMap;dimensionCache=new WeakMap;scheduleRead(t,e=0){this.readQueue.push({priority:e,execute:t}),this.scheduleFlush()}scheduleCompute(t,e=0){this.computeQueue.push({priority:e,execute:t}),this.scheduleFlush()}scheduleWrite(t,e=0){this.writeQueue.push({priority:e,execute:t}),this.scheduleFlush()}batchModuleInitialization(t){t.forEach(({module:e,object:r,element:i,attributes:n,globalId:s})=>{this.scheduleRead(()=>{let o=i.getBoundingClientRect();this.rectCache.set(i,o),this.dimensionCache.set(i,{width:i.offsetWidth||i.clientWidth||o.width,height:i.offsetHeight||i.clientHeight||o.height}),e.initializeObject(s,r,i,n)},1)}),t.forEach(({module:e,object:r,windowSize:i})=>{this.scheduleCompute(()=>{e.calculatePositions(r,i)},2)}),t.forEach(({module:e,object:r})=>{this.scheduleWrite(()=>{e.connectObject(r),e.addObject(r.id,r)},3)})}getCachedRect(t){return this.rectCache.get(t)}getCachedDimensions(t){return this.dimensionCache.get(t)}scheduleFlush(){this.pendingFrame!==null||this.isProcessing||(this.pendingFrame=requestAnimationFrame(()=>{this.flush()}))}flush(){this.isProcessing=!0,this.pendingFrame=null;let t=(e,r)=>r.priority-e.priority;try{[...this.readQueue].sort(t).forEach(n=>{try{n.execute()}catch(s){console.error("[DOMBatcher] Read task error:",s)}}),this.readQueue=[],[...this.computeQueue].sort(t).forEach(n=>{try{n.execute()}catch(s){console.error("[DOMBatcher] Compute task error:",s)}}),this.computeQueue=[],[...this.writeQueue].sort(t).forEach(n=>{try{n.execute()}catch(s){console.error("[DOMBatcher] Write task error:",s)}}),this.writeQueue=[]}finally{this.rectCache=new WeakMap,this.dimensionCache=new WeakMap,this.isProcessing=!1}}flushSync(){this.pendingFrame!==null&&(cancelAnimationFrame(this.pendingFrame),this.pendingFrame=null),this.flush()}clear(){this.pendingFrame!==null&&(cancelAnimationFrame(this.pendingFrame),this.pendingFrame=null),this.readQueue=[],this.writeQueue=[],this.computeQueue=[],this.rectCache=new WeakMap,this.dimensionCache=new WeakMap}};var Se=class{desktop={rebuild:{width:!0,height:!0,scrollHeight:!0}};mobile={rebuild:{width:!0,height:!0,scrollHeight:!0}}};var Yn=Object.freeze({}),x=class{attributesToMap;cssProperties=[];objectMapOnPage=new Map;allObjectMapOnPage=new Map;objectsOnPage=[];allObjectsOnPage=[];objectMap=new Map;allObjectMap=new Map;objects=[];allObjects=[];htmlKey="";defaultModeScope="all";_type=1;get type(){return this._type}get key(){return this.htmlKey}tools;data;settings;events;centers;hover;objectManager;signals;permissions=new Se;constructor(t){this.tools=t.tools,this.data=t.data,this.settings=t.settings,this.events=t.events,this.centers=t.centers,this.hover=t.hover,this.objectManager=t.objectManager,this.signals=t.signals,this.attributesToMap=[{key:"active",type:"boolean",fallback:this.settings.active},{key:"fixed",type:"boolean",fallback:this.settings.fixed},{key:"outside-container",type:"boolean",fallback:this.settings["outside-container"]},{key:"repeat",type:"boolean",fallback:this.settings.repeat},{key:"self-disable",type:"boolean",fallback:this.settings["self-disable"]},{key:"abs",type:"boolean",fallback:this.settings.abs},{key:"key",type:"string",fallback:this.settings.key},{key:"offset-top",type:"dimension",fallback:this.settings["offset-top"]},{key:"offset-bottom",type:"dimension",fallback:this.settings["offset-bottom"]},{key:"offset-enter",type:"dimension",fallback:this.settings["offset-enter"]},{key:"offset-exit",type:"dimension",fallback:this.settings["offset-exit"]},{key:"inview-top",type:"dimension",fallback:this.settings["inview-top"]},{key:"inview-bottom",type:"dimension",fallback:this.settings["inview-bottom"]},{key:"start",type:"number",fallback:(e,r,i)=>{let n=i.top;return Math.floor(n)+this.data.scroll.transformedCurrent}},{key:"end",type:"number",fallback:(e,r,i)=>{let n=i.top,s=i.height;return n+s-this.data.scroll.transformedCurrent}},{key:"size",type:"number",fallback:(e,r,i)=>i.height},{key:"half-width",type:"number",fallback:(e,r,i)=>i.width/2},{key:"half-height",type:"number",fallback:(e,r,i)=>i.height/2},{key:"enter-el",type:"string",fallback:this.settings["enter-el"]},{key:"enter-vp",type:"string",fallback:this.settings["enter-vp"]},{key:"exit-el",type:"string",fallback:this.settings["exit-el"]},{key:"exit-vp",type:"string",fallback:this.settings["exit-vp"]}]}initializeObject(t,e,r,i){let n=this.tools.boundingClientRect.process({element:r});for(let{key:s,type:o,fallback:a,transform:l}of this.attributesToMap){let c=typeof a=="function"?a(r,e,n):a,u=i[s]??i[`string-${s}`]??i[`data-string-${s}`],p=this.tools.domAttribute.process({element:r,key:s,fallback:u??this.settings[s]??c}),g=this.parseAttribute(p,o,{element:r,boundingRect:n,viewportHeight:this.data.viewport.windowHeight,baseRem:this.data.viewport.baseRem});l&&(g=l(g)),e.setProperty(s,g)}this.cacheLayoutSnapshot(e,r)}cacheLayoutSnapshot(t,e){let r=this.data.scroll.container??document.body??document.documentElement,i=this.data.scroll.elementContainer??document.documentElement,n=this.tools.transformNullify.process({element:e}),s=window.getComputedStyle(e),o=this.getOffsetSize(e,s),a=0,l=0,c=n.width,u=n.height;if((!Number.isFinite(c)||c<=0)&&(c=o.width),(!Number.isFinite(u)||u<=0)&&(u=o.height),Number.isFinite(n.left)&&Number.isFinite(n.top)&&n.width>0&&n.height>0)if(r===document.body||r===document.documentElement)a=n.left+i.scrollLeft,l=n.top+i.scrollTop;else{let p=r.getBoundingClientRect();a=n.left-p.left+r.scrollLeft,l=n.top-p.top+r.scrollTop}else{let p=this.getOffsetChainPosition(e);if(r===document.body||r===document.documentElement)a=p.left,l=p.top;else{let g=this.getOffsetChainPosition(r);a=p.left-g.left+r.scrollLeft,l=p.top-g.top+r.scrollTop}}t.setProperty("layout-doc-left",a),t.setProperty("layout-doc-top",l),t.setProperty("layout-width",c),t.setProperty("layout-height",u),t.setProperty("layout-border-radius",s.borderRadius||"0px")}getOffsetSize(t,e){let r=parseFloat(e.width),i=parseFloat(e.height);return{width:t.offsetWidth||t.clientWidth||(Number.isFinite(r)?r:0),height:t.offsetHeight||t.clientHeight||(Number.isFinite(i)?i:0)}}getOffsetChainPosition(t){let e=0,r=0,i=t;for(;i;)e+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{left:e,top:r}}calculatePositions(t,e){let r=t.getProperty("start"),i=t.getProperty("size"),n=t.getProperty("offset-enter")??t.getProperty("offset-bottom"),s=t.getProperty("offset-exit")??t.getProperty("offset-top"),o=t.getProperty("enter-el"),a=t.getProperty("enter-vp"),l=t.getProperty("exit-el"),c=t.getProperty("exit-vp"),u=-0,p=-0,g=-0,m=-0;o==="top"&&a==="top"||o==="left"&&a==="left"?(g=-e+1,u=r-n):o==="top"&&a==="bottom"||o==="left"&&a==="right"?u=r-e-n:o==="bottom"&&a==="top"||o==="right"&&a==="left"?(g=-e-i+1,u=r+i-n):(o==="bottom"&&a==="bottom"||o==="right"&&a==="right")&&(g=-i+1,u=r-e+i-n),l==="top"&&c==="top"||l==="left"&&c==="left"?(m=-i+1,p=r+s):l==="top"&&c==="bottom"||l==="left"&&c==="right"?(m=-e-i+1,p=r-e+s):l==="bottom"&&c==="top"||l==="right"&&c==="left"?p=r+i+s:(l==="bottom"&&c==="bottom"||l==="right"&&c==="right")&&(m=-e+1,p=r-e+i+s),t.setProperty("start-bias",g),t.setProperty("end-bias",m),t.setProperty("start-position",u-this.data.scroll.topPosition),t.setProperty("end-position",p-this.data.scroll.topPosition),t.setProperty("difference-position",p-u);let h=t.getProperty("inview-top")??-0,f=t.getProperty("inview-bottom")??-0;t.setProperty("inview-start-position",t.getProperty("start-position")+h),t.setProperty("inview-end-position",t.getProperty("end-position")+f)}parseAttribute(t,e,r=Yn){if(t==null)return null;let i=typeof t=="string"?t:String(t);if(typeof e=="object"&&e.type==="enum")return e.values.includes(i)?i:e.values[0];switch(e){case"number":return typeof t=="string"?+t||parseFloat(t):t;case"boolean":return i===""||i==="true";case"json":try{return JSON.parse(i)}catch{return null}case"tuple":return i.trim().split(/\s+/);case"easing":return this.tools.easingFunction.process({easing:i});case"color":return this.tools.colorParser.process({value:i});case"dimension":return t===0||t=="0"?0:r.element!=null&&r.viewportHeight!=null&&r.baseRem!=null&&r.boundingRect!=null?this.tools.unitParser.process({value:t,element:r.element,viewportHeight:r.viewportHeight,boundingRect:r.boundingRect,baseRem:r.baseRem}):0;case"breakpoint-dimension":if(r.element!=null&&r.viewportHeight!=null&&r.baseRem!=null&&r.boundingRect!=null){let n=i.trim().split("|"),s=[];for(let o of n)if(o.includes(":")){let[a,l]=o.split(":");s.push({breakpoint:parseInt(a),value:this.tools.unitParser.process({value:`${l}|`,element:r.element,viewportHeight:r.viewportHeight,boundingRect:r.boundingRect,baseRem:r.baseRem})})}else s.push({breakpoint:0,value:this.tools.unitParser.process({value:o,element:r.element,viewportHeight:r.viewportHeight,boundingRect:r.boundingRect,baseRem:r.baseRem})});return s}default:return t}}canConnect(t){return t.keys.includes(this.htmlKey)}isTokenEnabledInCurrentMode(t){let e=this.data.scroll.mode;return t.modeSpec.kind==="all"?!0:t.modeSpec.kind==="include"?t.modeSpec.values.includes(e):this.defaultModeScope==="all"?!0:this.defaultModeScope.includes(e)}isObjectEnabledInCurrentMode(t){let e=t.getToken(this.htmlKey);return e?this.isTokenEnabledInCurrentMode(e):!1}disconnectObject(t){t.disconnect(this)}connectObject(t){t.connect(this)&&this.onObjectConnected(t)}enterObject(t,e){this.allObjectMap.has(t)||(this.allObjectMap.set(t,e),this.allObjects.push(e)),this.isObjectEnabledInCurrentMode(e)&&!this.objectMap.has(t)&&(this.objectMap.set(t,e),this.objects.push(e))}fastRemoveFromArray(t,e){if(e===-1)return;let r=t.length-1;e!==r&&(t[e]=t[r]),t.pop()}exitObject(t){let e=this.objectMap.get(t);if(e){this.objectMap.delete(t);let n=this.objects.indexOf(e);this.fastRemoveFromArray(this.objects,n)}let r=this.allObjectMap.get(t);if(!r)return;this.allObjectMap.delete(t);let i=this.allObjects.indexOf(r);this.fastRemoveFromArray(this.allObjects,i)}addObject(t,e){this.allObjectMapOnPage.has(t)||(this.allObjectMapOnPage.set(t,e),this.allObjectsOnPage.push(e)),this.isObjectEnabledInCurrentMode(e)&&!this.objectMapOnPage.has(t)&&(this.objectMapOnPage.set(t,e),this.objectsOnPage.push(e))}removeObject(t){let e=this.objectMapOnPage.get(t);if(e){this.objectMapOnPage.delete(t);let n=this.objectsOnPage.indexOf(e);this.fastRemoveFromArray(this.objectsOnPage,n)}let r=this.allObjectMapOnPage.get(t);if(!r)return;this.allObjectMapOnPage.delete(t);let i=this.allObjectsOnPage.indexOf(r);this.fastRemoveFromArray(this.allObjectsOnPage,i),this.exitObject(t),this.onObjectDisconnected(r)}onObjectConnected(t){}onObjectDisconnected(t){}get respectSelfDisable(){return!0}isPrimaryElementEnabled(t){return!this.respectSelfDisable||t.getProperty("self-disable")!==!0}applyToElementAndConnects(t,e,r=e){this.isPrimaryElementEnabled(t)&&e(t.htmlElement),t.mirrorObjects.forEach(i=>r(i.htmlElement,i))}applyVarToElement(t,e,r){this.isPrimaryElementEnabled(t)&&this.tools.styleTxn.setVar(t.htmlElement,e,r)}applyPropToElement(t,e,r){this.isPrimaryElementEnabled(t)&&this.tools.styleTxn.setProp(t.htmlElement,e,r)}applyVarToConnects(t,e,r){for(let i of t.mirrorObjects)this.tools.styleTxn.setVar(i.htmlElement,e,r)}applyPropToConnects(t,e,r){for(let i of t.mirrorObjects)this.tools.styleTxn.setProp(i.htmlElement,e,r)}getObjectEventName(t,e,r){return t.getScopedEventName(e,r)}emitSignal(t,e,r){t.setProperty(`signal:${e}`,r),this.signals.publish(t.id,e,r)}getSignal(t,e){return this.signals.get(t,e)}clearManagedStyles(t){let e=i=>{for(let s=0;s<this.cssProperties.length;s++)i.style.removeProperty(this.cssProperties[s].name);let n=t.getProperty("key");typeof n=="string"&&n.length>0&&i.style.removeProperty(n)};e(t.htmlElement);let r=t.mirrorObjects;for(let i=0;i<r.length;i++)e(r[i].htmlElement)}onObjectModeActivated(t){}onObjectModeDeactivated(t){this.clearManagedStyles(t)}rebuildActiveObjectsForCurrentMode(){let t=new Map(this.objectMapOnPage);this.objectMapOnPage=new Map,this.objectsOnPage=[];for(let e=0;e<this.allObjectsOnPage.length;e++){let r=this.allObjectsOnPage[e];this.isObjectEnabledInCurrentMode(r)&&(this.objectMapOnPage.set(r.id,r),this.objectsOnPage.push(r))}this.objectMap=new Map,this.objects=[];for(let e=0;e<this.allObjects.length;e++){let r=this.allObjects[e];this.isObjectEnabledInCurrentMode(r)&&(this.objectMap.set(r.id,r),this.objects.push(r))}t.forEach((e,r)=>{this.objectMapOnPage.has(r)||this.onObjectModeDeactivated(e)}),this.objectMapOnPage.forEach((e,r)=>{t.has(r)||this.onObjectModeActivated(e)})}destroy(){this.objects=[],this.allObjects=[],this.objectMap=new Map,this.allObjectMap=new Map,this.objectsOnPage=[],this.allObjectsOnPage=[],this.objectMapOnPage=new Map,this.allObjectMapOnPage=new Map}onInit(){}onSubscribe(){}onUnsubscribe(){}onFrame(t){}onMutate(t){}onScrollMeasure(t){}onMouseMoveMeasure(t){}onResize(){}onResizeWidth(){}onRebuild(){}onScroll(t){}onDirectionChange(){}onScrollStart(){}onScrollStop(){}onScrollDirectionChange(){}onAxisChange(){}onDeviceChange(){}onScrollConfigChange(){this.rebuildActiveObjectsForCurrentMode()}onSettingsChange(){}onDOMRebuild(){}onMouseMove(t){}onWheel(t){}onDOMMutate(t,e){}};var Le=class{constructor(t,e,r,i){this.data=t;this.modules=e;this.events=r;this.tools=i}objects=new Map;connectQueue=[];connectableModulesBuffer=[];mirrors=new Map;mirrorId=1;globalId=1;domBatcher=new Ft;domBatcherEnabled=!1;inviewStarts=[];inviewEnds=[];inviewActive=new Set;inviewStartIdx=0;inviewEndIdx=0;inviewIndexDirty=!0;lastInviewScrollPos=0;intersectionObserverEnabled=!0;domObserver=null;get all(){return this.objects}add(t){let e=`string-${this.globalId++}`,r="string-id";t.getAttribute("string-id")&&(e=t.getAttribute("string-id"),r="string-id"),t.getAttribute("data-string-id")&&(e=t.getAttribute("data-string-id"),r="data-string-id");let i=e&&this.objects.has(e)?this.objects.get(e):new _t(e,t);t.setAttribute(r,i.id);let n=t.getAttribute("string")??t.getAttribute("data-string");n&&i.setTokens(this.parseStringTokens(n)),t.setAttribute("string-inited",""),this.objects.set(i.id,i);let s=this.getAllAttributes(t),o=this.modules.core;for(let u=0;u<o.length;u++){let p=o[u];"setupCoreProperties"in p&&typeof p.setupCoreProperties=="function"&&p.setupCoreProperties(i,t,s)}let a=this.connectableModulesBuffer;a.length=0;let l=this.modules.all,c=null;for(let u=0;u<l.length;u++){let p=l[u];p instanceof x&&p.key===""&&(c=p),p instanceof x&&p.canConnect(i)&&a.push(p)}if(a.length===0&&c&&(i.setProperty("inview-fallback",!0),a.push(c)),this.domBatcherEnabled&&a.length>0){let u=new Array(a.length);for(let p=0;p<a.length;p++)u[p]={module:a[p],object:i,element:t,attributes:s,globalId:this.globalId,windowSize:this.data.viewport.windowHeight};this.domBatcher.batchModuleInitialization(u),this.domBatcher.scheduleWrite(()=>{this.initObservers(i,t),this.checkInviewForObject(i)})}else{for(let u=0;u<a.length;u++){let p=a[u];p.initializeObject(this.globalId,i,t,s),p.calculatePositions(i,this.data.viewport.windowHeight),p.connectObject(i),p.addObject(i.id,i)}this.initObservers(i,t),this.checkInviewForObject(i)}if(this.connectQueue.length>0){let u=0;for(let p=0;p<this.connectQueue.length;p++){let g=this.connectQueue[p];if(g.id===i.id){this.attachMirrorToObject(i,g.element);continue}this.connectQueue[u++]=g}this.connectQueue.length=u}a.length=0,this.inviewIndexDirty=!0}setDOMBatcherEnabled(t){this.domBatcherEnabled=t,t||this.domBatcher.flushSync()}setIntersectionObserverEnabled(t){if(this.intersectionObserverEnabled!==t){this.intersectionObserverEnabled=t;for(let e of this.objects.values())e.getProperty("observer-progress")?.disconnect(),t&&this.initObservers(e,e.htmlElement)}}attachModule(t){this.objects.forEach(e=>{if(!t.canConnect(e))return;let r=e.htmlElement,i=this.getAllAttributes(r);t.initializeObject(this.globalId,e,r,i),t.calculatePositions(e,this.data.viewport.windowHeight),t.connectObject(e),t.addObject(e.id,e),e.getProperty("active")===!0&&t.enterObject(e.id,e)})}refreshModuleConnectionsForCurrentMode(){let t=this.modules.all;for(let e of this.objects.values()){let r=e.htmlElement;if(!r||!r.isConnected)continue;let i=null;for(let n=0;n<t.length;n++){let s=t[n];if(!(s instanceof x)||!e.keys.includes(s.key))continue;let o=s.canConnect(e),a=e.isConnectedTo(s);if(o&&!a){i==null&&(i=this.getAllAttributes(r)),s.initializeObject(this.globalId,e,r,i),s.calculatePositions(e,this.data.viewport.windowHeight),s.connectObject(e),s.addObject(e.id,e),e.getProperty("active")===!0&&s.enterObject(e.id,e);continue}!o&&a&&(s.exitObject(e.id),s.removeObject(e.id),s.disconnectObject(e))}}}invalidateInviewIndex(){this.inviewIndexDirty=!0}refreshLayoutForRoot(t){if(!t)return;let e=new Set,r=n=>{let s=n.getAttribute("string-id")??n.getAttribute("data-string-id");if(!s)return;let o=this.objects.get(s);o&&e.add(o)};if(t instanceof HTMLElement){r(t);let n=t.querySelectorAll("[string-id],[data-string-id]");for(let s=0;s<n.length;s++)r(n[s])}if(e.size===0)return;let i=this.data.viewport.windowHeight;for(let n of e){let s=n.htmlElement;if(!s||!s.isConnected)continue;let o=this.getAllAttributes(s),a=this.modules.all;for(let l=0;l<a.length;l++){let c=a[l];c instanceof x&&c.canConnect(n)&&(c.initializeObject(this.globalId,n,s,o),c.calculatePositions(n,i))}}this.inviewIndexDirty=!0,this.checkInview()}remove(t){let e=this.objects.get(t);e&&(e.events.clearAll(),e.getProperty("observer-progress")?.disconnect(),e.getProperty("observer-inview")?.disconnect(),e.htmlElement.removeAttribute("string-inited"),e.leave(),e.remove(),e.mirrorObjects.forEach(r=>{let i=this.getMirrorIds(r.htmlElement);this.setMirrorIds(r.htmlElement,i.filter(s=>s!==r.id)),this.mirrors.delete(r.id);let n=r.htmlElement.getAttribute("string-copy-from")??r.htmlElement.getAttribute("data-string-copy-from");n&&this.enqueueConnection(n,r.htmlElement)}),this.objects.delete(t),this.inviewActive.delete(e),this.inviewIndexDirty=!0)}enqueueConnection(t,e){let r=this.splitPipeAndTrim(t);for(let i=0;i<r.length;i++){let n=r[i];this.connectQueue.some(s=>s.id===n&&s.element===e)||this.connectQueue.push({id:n,element:e})}}linkMirror(t,e){let r=this.splitPipeAndTrim(t);for(let i=0;i<r.length;i++){let n=r[i],s=this.objects.get(n);s?this.attachMirrorToObject(s,e):this.enqueueConnection(n,e)}}attachMirrorToObject(t,e){let r=this.getMirrorIds(e);for(let c of r){let u=this.mirrors.get(c);if(u&&u.parentObject===t)return u}let i=`string-mirror-${this.mirrorId++}`,n=new ye(i,e,t);this.setMirrorIds(e,[...r,i]),t.addMirror(n),this.mirrors.set(i,n);let s=e.getAttribute("string-easing")??e.getAttribute("data-string-easing");s&&s.trim().length>0&&(n.setEasing(this.tools.easingFunction.process({easing:s})),n.setProperty("easing",s));let o=t.getProperty("key"),a=t.getProperty("progress-raw"),l=t.getProperty("progress-value");if(typeof a=="number"){let c=t.getProperty("easing")??void 0,u=n.applyProgress(a,c);n.setProperty("progress",u),o&&this.tools.styleTxn.setVar(n.htmlElement,o,u)}else typeof l=="number"&&(n.setProperty("progress",l),o&&this.tools.styleTxn.setVar(n.htmlElement,o,l));return n}detachMirrorByElement(t){let e=this.getMirrorIds(t);e.length!==0&&(e.forEach(r=>this.detachMirrorById(r)),this.clearMirrorIds(t))}detachMirrorById(t){let e=this.mirrors.get(t);e&&(e.parentObject.removeMirror(t),this.mirrors.delete(t))}getMirrorIds(t){let e=t.getAttribute("string-mirror-id")??t.getAttribute("data-string-mirror-id");return e?this.splitPipeAndTrim(e):[]}setMirrorIds(t,e){if(e.length===0){this.clearMirrorIds(t);return}t.setAttribute("string-mirror-id",e.join("|"))}clearMirrorIds(t){t.removeAttribute("string-mirror-id"),t.removeAttribute("data-string-mirror-id")}getAllAttributes(t){let e={},r=t.attributes;for(let i=0;i<r.length;i++){let n=r[i];e[n.name]=n.value}return e}initObservers(t,e){if(!this.intersectionObserverEnabled)return;let r=t.getProperty("offset-exit")??t.getProperty("offset-top")??0,i=t.getProperty("offset-enter")??t.getProperty("offset-bottom")??0;t.getProperty("observer-progress")?.disconnect();let n=g=>{g.forEach(m=>{this.events.emit(t.getScopedEventName("object:activate"),m.isIntersecting),m.isIntersecting?t.enter():t.leave()})},s=t.getProperty("outside-container"),o=e.getAttribute("string-outside-container")??e.getAttribute("data-string-outside-container"),a=o!=null?o.trim().toLowerCase():null,l=a===""||a==="true"||a==="1",c=s!=null?s===!0:l,u=this.data.scroll.container===document.body||c?null:this.data.scroll.container,p=new IntersectionObserver(n,{root:u,rootMargin:`${i+this.data.viewport.windowHeight}px 0px ${r+this.data.viewport.windowHeight}px 0px`,threshold:0});p.observe(e),t.setProperty("observer-progress",p)}observeDOM(){this.domObserver?.disconnect();let t=new MutationObserver(e=>{let r=!1,i=!1;for(let n=0;n<e.length;n++){let s=e[n];if(s.type==="childList"){let o=!1;for(let a=0;a<s.removedNodes.length;a++){let l=s.removedNodes[a];if(l.nodeType!==Node.ELEMENT_NODE)continue;o=!0;let c=l;if(this.detachMirrorByElement(c),this.isFixed(c))continue;(c.hasAttribute("string")||c.hasAttribute("data-string"))&&(this.handleRemoved(c),i=!0);let u=c.querySelectorAll("[string],[data-string]");for(let g=0;g<u.length;g++){let m=u[g];this.isFixed(m)||(this.handleRemoved(m),i=!0)}let p=c.querySelectorAll("[string-copy-from],[data-string-copy-from]");for(let g=0;g<p.length;g++)this.detachMirrorByElement(p[g])}for(let a=0;a<s.addedNodes.length;a++){let l=s.addedNodes[a];if(l.nodeType!==Node.ELEMENT_NODE)continue;o=!0;let c=l;if(this.isFixed(c))continue;c.hasAttribute("string")&&!c.hasAttribute("string-inited")&&(this.add(c),i=!0);let u=c.querySelectorAll("[string]:not([string-inited]),[data-string]:not([string-inited])");for(let m=0;m<u.length;m++)this.add(u[m]),i=!0;let p=c.getAttribute("string-copy-from")??c.getAttribute("data-string-copy-from");p&&this.linkMirror(p,c);let g=c.querySelectorAll("[string-copy-from],[data-string-copy-from]");for(let m=0;m<g.length;m++){let h=g[m],f=h.getAttribute("string-copy-from")??h.getAttribute("data-string-copy-from");f&&this.linkMirror(f,h)}}o&&(this.modules.onDOMMutate(s.addedNodes,s.removedNodes),r=!0)}}if(r){let n=this.modules.all;for(let s=0;s<n.length;s++)n[s].onDOMRebuild();i&&this.events.emit("dom:changed",null)}});t.observe(document.body,{childList:!0,subtree:!0}),this.domObserver=t}handleRemoved(t){let e=t.getAttribute("string-id")??t.getAttribute("data-string-id");if(!e)return;let r=t.getAttribute("string-copy-from")??t.getAttribute("data-string-copy-from");r&&(this.connectQueue=this.connectQueue.filter(i=>i.id!==r)),this.remove(e)}onSettingsChange(t){for(let e of this.objects.values()){if(!e.htmlElement||!e.htmlElement.isConnected)continue;let r=null,i=this.modules.all;for(let n=0;n<i.length;n++){let s=i[n],o=!1;t.isDesktop?(s.permissions.desktop.rebuild.scrollHeight&&t.scrollHeightChanged&&(o=!0),s.permissions.desktop.rebuild.width&&t.widthChanged&&(o=!0),s.permissions.desktop.rebuild.height&&t.heightChanged&&(o=!0)):(s.permissions.mobile.rebuild.scrollHeight&&t.scrollHeightChanged&&(o=!0),s.permissions.mobile.rebuild.width&&t.widthChanged&&(o=!0),s.permissions.mobile.rebuild.height&&t.heightChanged&&(o=!0)),(o||t.isForceRebuild)&&s.canConnect(e)&&(r==null&&(r=this.getAllAttributes(e.htmlElement)),s.initializeObject(this.globalId,e,e.htmlElement,r),s.calculatePositions(e,this.data.viewport.windowHeight),s.connectObject(e))}}this.inviewIndexDirty=!0}isFixed(t){return t.hasAttribute("string-fixed")}checkInview(){let t=this.data.scroll.transformedCurrent;this.updateInviewWindow(t);for(let e of this.inviewActive)this.checkInviewForObject(e)}checkInviewForObject(t){let e=this.data.scroll.transformedCurrent;if(!this.intersectionObserverEnabled){let c=t.getProperty("start-position"),u=t.getProperty("end-position");if(c!=null&&u!=null){let p=Math.min(c,u),g=Math.max(c,u),m=t.getProperty("is-active")??!1,h=e>=p&&e<=g;h!==m&&(t.setProperty("is-active",h),this.events.emit(t.getScopedEventName("object:activate"),h),h?t.enter():t.leave())}}let r=t.getProperty("inview-start-position"),i=t.getProperty("inview-end-position"),n=t.getProperty("is-inview")??!1,s=Math.min(r,i),o=Math.max(r,i),a=e>=s&&e<=o,l=null;if(!n&&a){let c=Math.abs(e-s),u=Math.abs(o-e);l=c<=u?"enter-top":"enter-bottom"}else n&&!a&&(l=e<s?"exit-top":"exit-bottom");a!==n&&(t.setProperty("is-inview",a),t.setInviewAutoBlocked(!1),t.setInviewManualActive(!1),a?t.show():t.hide(),this.events.emit(t.getScopedEventName("object:inview"),{inView:a,direction:l}))}updateInviewWindow(t){let e=this.data.viewport.windowHeight,r=t-e,i=t+this.data.viewport.windowHeight+e;for((this.inviewIndexDirty||t<this.lastInviewScrollPos)&&this.rebuildInviewIndex(r,i);this.inviewStartIdx<this.inviewStarts.length&&this.inviewStarts[this.inviewStartIdx].pos<=i;)this.inviewActive.add(this.inviewStarts[this.inviewStartIdx].object),this.inviewStartIdx++;for(;this.inviewEndIdx<this.inviewEnds.length&&this.inviewEnds[this.inviewEndIdx].pos<r;)this.inviewActive.delete(this.inviewEnds[this.inviewEndIdx].object),this.inviewEndIdx++;this.lastInviewScrollPos=t}rebuildInviewIndex(t,e){this.inviewStarts=[],this.inviewEnds=[];for(let r of this.objects.values()){let i=r.getProperty("inview-start-position"),n=r.getProperty("inview-end-position");i==null||n==null||(this.inviewStarts.push({pos:Math.min(i,n),object:r}),this.inviewEnds.push({pos:Math.max(i,n),object:r}))}this.inviewStarts.sort((r,i)=>r.pos-i.pos),this.inviewEnds.sort((r,i)=>r.pos-i.pos),this.inviewActive.clear(),this.inviewStartIdx=this.upperBound(this.inviewStarts,e),this.inviewEndIdx=this.upperBound(this.inviewEnds,t-1);for(let r=0;r<this.inviewStartIdx;r++)this.inviewActive.add(this.inviewStarts[r].object);for(let r=0;r<this.inviewEndIdx;r++)this.inviewActive.delete(this.inviewEnds[r].object);this.inviewIndexDirty=!1}upperBound(t,e){let r=0,i=t.length;for(;r<i;){let n=r+i>>>1;t[n].pos<=e?r=n+1:i=n}return r}splitPipeAndTrim(t){let e=t.split("|"),r=[];for(let i=0;i<e.length;i++){let n=e[i].trim();n.length>0&&r.push(n)}return r}parseStringTokens(t){let e=this.splitTopLevelPipe(t),r=[];for(let i=0;i<e.length;i++){let n=e[i].trim();if(n.length===0)continue;let s=n.match(/^([^\[\]]+?)(?:\[([^\]]*)\])?$/);if(!s){r.push({raw:n,key:n,modeSpec:{kind:"default",values:[]}});continue}let o=s[1].trim(),a=s[2];if(!o)continue;if(a==null){r.push({raw:n,key:o,modeSpec:{kind:"default",values:[]}});continue}let l=a.trim();if(l.length===0){r.push({raw:n,key:o,modeSpec:{kind:"all",values:[]}});continue}let c=this.splitTopLevelPipe(l).map(u=>u.trim()).filter(u=>u.length>0);r.push({raw:n,key:o,modeSpec:c.length>0?{kind:"include",values:c}:{kind:"all",values:[]}})}return r}splitTopLevelPipe(t){let e=[],r="",i=0;for(let n=0;n<t.length;n++){let s=t[n];if(s==="["){i++,r+=s;continue}if(s==="]"){i=Math.max(0,i-1),r+=s;continue}if(s==="|"&&i===0){e.push(r),r="";continue}r+=s}return r.length>0&&e.push(r),e}destroy(){this.domObserver?.disconnect(),this.domObserver=null,this.domBatcher.clear()}};var Y={SCROLL_FORWARD:"-scroll-forward",SCROLL_BACKWARD:"-scroll-backward",SCROLLING_FORWARD:"-scrolling-forward",SCROLLING_BACKWARD:"-scrolling-backward"};var et=class{context;document;name="";isProg=!1;isParallaxEnabled=!1;_isVertical=!0;_scrollDirState=-1;_lastAppliedDirState=-1;isLastBottomScrollDirection=!0;scrollTriggerRules=[];isActive=!1;set scrollDirection(t){this._isVertical=t==="vertical"}constructor(t){this.document=document,this.context=t}onChangeDirection=()=>{};onScrollStart=()=>{};onScrollStop=()=>{};onCalcUpdate(){if(!this.isActive)return;let t=this.context.data.scroll.scrollContainer,e=this.context.data.scroll.current;t&&(this._isVertical?t.scrollTo({top:e,left:0,behavior:"auto"}):t.scrollTo({left:e,top:0,behavior:"auto"})),this._isVertical&&this.triggerScrollRules()}onFrame(){}onWheel(t){}onScroll(t){}onTouchStart(t){}onTouchMove(t){}onTouchEnd(t){}disableScrollEvents(){}enableScrollEvents(){}activate(){this.isActive||(this.isActive=!0,this.enableScrollEvents())}deactivate(){if(!this.isActive)return;this.isActive=!1,this.disableScrollEvents(),this.isProg=!1;let t=this.context.data.scroll;t.target=t.current,t.delta=0,t.lerped=0,t.displacement=0,this.clearScrollingClasses(),this._scrollDirState=-1,this._lastAppliedDirState=-1,this.onScrollStop()}destroy(){}updateScrollDirection(t){this.isLastBottomScrollDirection=t;let e=t?1:0;if(this._scrollDirState===-1){this._scrollDirState=e;return}if(this._scrollDirState=e,this.context.data.scroll.isScrollingDown=t,this.onChangeDirection(),this.context.events.emit("scroll:direction:change",t),this.context.settings["global-class"]&&this._lastAppliedDirState!==e){let r=document.documentElement.classList;t?(r.remove(Y.SCROLLING_BACKWARD,Y.SCROLL_BACKWARD),r.add(Y.SCROLLING_FORWARD,Y.SCROLL_FORWARD)):(r.remove(Y.SCROLLING_FORWARD,Y.SCROLL_FORWARD),r.add(Y.SCROLLING_BACKWARD,Y.SCROLL_BACKWARD)),this._lastAppliedDirState=e}}clearScrollingClasses(){document.documentElement.classList.remove(Y.SCROLLING_BACKWARD,Y.SCROLLING_FORWARD,Y.SCROLL_BACKWARD,Y.SCROLL_FORWARD)}triggerScrollRules(){let t=this.scrollTriggerRules,e=t.length,r=this.context.data.scroll.current,i=this.isLastBottomScrollDirection;for(let n=0;n<e;n++){let s=t[n],a=(s.direction==="any"||i&&s.direction==="forward"||!i&&s.direction==="backward")&&r>=s.offset;a&&!s.isActive?(s.isActive=!0,s.onEnter?.(),s.toggleClass&&s.toggleClass.target.classList.add(s.toggleClass.className)):!a&&s.isActive&&(s.isActive=!1,s.onLeave?.(),s.toggleClass&&s.toggleClass.target.classList.remove(s.toggleClass.className))}}addScrollMark(t){this.scrollTriggerRules.push(t)}removeScrollMark(t){let e=this.scrollTriggerRules;for(let r=0;r<e.length;r++)if(e[r].id===t){e.splice(r,1);break}}scrollTo(t,e){}};var Ee=class extends et{name="default";previousScrollTop=0;previousScrollTime=0;_logScrollCount=0;isScrolling=!1;lastScrollEventTime=0;nativeVelocity=0;nativeVelocityTarget=0;scrollStopDelay=120;nativeVelocityFollow=.2;nativeVelocityDecay=.84;nativeVelocityBoost=2;nativeVelocityDeadzone=.25;constructor(t){super(t)}onFrame(){let t=0;if(this.context.data.scroll.delta!==0){let r=this.context.data.scroll.delta*this.context.data.scroll.speedAccelerate;this.context.data.scroll.delta-=r,t=r,Math.abs(t)<.1&&(this.context.data.scroll.delta=0,t=0)}let e=performance.now();this.nativeVelocityTarget*=this.nativeVelocityDecay,Math.abs(this.nativeVelocityTarget)<this.nativeVelocityDeadzone&&(this.nativeVelocityTarget=0),this.nativeVelocity+=(this.nativeVelocityTarget-this.nativeVelocity)*this.nativeVelocityFollow,Math.abs(this.nativeVelocity)<this.nativeVelocityDeadzone&&(this.nativeVelocity=0),Math.abs(this.nativeVelocity)>Math.abs(t)&&(t=this.nativeVelocity),this.context.data.scroll.lerped=t,this.isScrolling&&!(this.context.data.scroll.delta!==0||this.nativeVelocityTarget!==0||this.nativeVelocity!==0)&&e-this.lastScrollEventTime>this.scrollStopDelay&&(this.isScrolling=!1,this.onScrollStop(),this.clearScrollingClasses())}onScroll(t){let e=performance.now(),r=this.context.data.scroll.elementContainer.scrollTop,i=r-this.previousScrollTop;if(this._logScrollCount<8&&this._logScrollCount++,this.context.data.scroll.current=r,this.context.data.scroll.target=r,this.context.data.scroll.transformedCurrent=r*this.context.data.viewport.transformScale,i!==0){this.updateScrollDirection(i>0);let n=this.previousScrollTime===0?16.6667:e-this.previousScrollTime,s=i*(16.6667/Math.max(8,n))*this.nativeVelocityBoost;this.nativeVelocityTarget=s,this.previousScrollTop=r,this.previousScrollTime=e}this.triggerScrollRules(),this.lastScrollEventTime=e,this.isScrolling||(this.isScrolling=!0,this.onScrollStart())}onWheel(t){t.deltaY!==0&&(this.context.data.scroll.delta===0&&!this.isScrolling&&(this.isScrolling=!0,this.onScrollStart()),this.context.data.scroll.delta+=t.deltaY,this.lastScrollEventTime=performance.now())}deactivate(){super.deactivate(),this.isScrolling=!1,this.lastScrollEventTime=0,this.previousScrollTop=this.context.data.scroll.current,this.previousScrollTime=0,this.nativeVelocity=0,this.nativeVelocityTarget=0}scrollTo(t,e){let r=this.context.data.scroll.elementContainer.scrollTop,i=this.context.data.scroll;i.target=t,i.delta=0,i.lerped=0,this.nativeVelocity=0,this.nativeVelocityTarget=0,this.previousScrollTop=r,this.previousScrollTime=0,this._logScrollCount=0;let n=this.context.data.scroll.scrollContainer;e?(i.current=t,i.transformedCurrent=t*this.context.data.viewport.transformScale,this.triggerScrollRules(),this._isVertical?n?.scrollTo({top:t,left:0,behavior:"auto"}):n?.scrollTo({left:t,top:0,behavior:"auto"})):(i.current=r,i.transformedCurrent=r*this.context.data.viewport.transformScale,requestAnimationFrame(()=>{this._isVertical?n?.scrollTo({top:t,left:0,behavior:"smooth"}):n?.scrollTo({left:t,top:0,behavior:"smooth"})}))}};var Me=class extends et{name="disable";preventScroll=t=>{t.preventDefault()};preventKeyScroll=t=>{["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"].includes(t.key)&&t.preventDefault()};onPreventScroll=this.preventScroll.bind(this);onPreventKeyScroll=this.preventKeyScroll.bind(this);constructor(t){super(t)}enableScrollEvents(){window.addEventListener("touchmove",this.onPreventScroll,{passive:!1}),window.addEventListener("keydown",this.onPreventKeyScroll)}disableScrollEvents(){window.removeEventListener("touchmove",this.onPreventScroll),window.removeEventListener("keydown",this.onPreventKeyScroll)}onFrame(){}onWheel(t){t.preventDefault()}onScroll(t){t.preventDefault()}};var we=class extends et{name="smooth";scrollForce=0;wheelImpulse=0;previousCurrent=0;scrollToSequence=0;activeScrollToId=null;velocityThreshold=.01;stepResult={current:.1,target:.1,delta:.1,lerped:.1,scrollForce:.1,absVelocity:.1};constructor(t){super(t),this.stepResult.current=0,this.stepResult.target=0,this.stepResult.delta=0,this.stepResult.lerped=0,this.stepResult.scrollForce=0,this.stepResult.absVelocity=0}stopScroll(){let t=this.context.data.scroll;t.lerped=0,t.delta=0,t.target=t.current,this.onCalcUpdate(),this.isProg=!1,this.clearScrollingClasses(),this._scrollDirState=-1,this._lastAppliedDirState=-1,this.activeScrollToId=null}onFrame(){let t=this.context.data.scroll;if(t.delta!==0){this.computeStep(t.current,t.target,t.delta,t.speed,t.speedAccelerate,t.bottomPosition,this.stepResult),this.scrollForce=this.stepResult.scrollForce,t.target=this.stepResult.target,t.delta=this.stepResult.delta,t.lerped=this.stepResult.lerped,t.current=this.stepResult.current;let e=this.context.data.viewport.transformScale;t.transformedCurrent=e!==1?t.current*e:t.current,this.updateScrollDirection(t.lerped>0),this.stepResult.absVelocity<this.velocityThreshold?(t.current=Math.round(t.target),this.previousCurrent=t.current,this.onCalcUpdate(),this.stopScroll(),this.onScrollStop()):(this.isProg=!0,this.previousCurrent!==t.current&&(this.previousCurrent=t.current,this.onCalcUpdate()))}}onWheel(t){if(t.deltaY!==0&&t.preventDefault(),this.wheelImpulse=t.deltaY,this.wheelImpulse===0)return;let e=this.context.data.scroll;e.delta===0&&this.onScrollStart();let r=this.wheelImpulse<0,i=e.target===0&&r,n=e.target===e.bottomPosition&&!r;!i&&!n&&(e.delta+=this.wheelImpulse)}onScroll(t){if(!this.isProg){let e=this.context.data.scroll,r=e.elementContainer.scrollTop,i=r-e.current;e.current=r,e.target=r,e.delta=0,e.lerped=i,e.displacement=0;let n=this.context.data.viewport.transformScale;e.transformedCurrent=n!==1?r*n:r,this.scrollForce=0,this.wheelImpulse=0,this.isProg=!1,this.previousCurrent=r,this.activeScrollToId=null,i!==0&&(this.updateScrollDirection(i>0),this.triggerScrollRules())}}deactivate(){super.deactivate(),this.scrollForce=0,this.wheelImpulse=0,this.previousCurrent=this.context.data.scroll.current}scrollTo(t,e){let r=this.context.data.scroll,i=++this.scrollToSequence;if(this.activeScrollToId=i,e){r.current=t,r.target=t,r.delta=0,r.lerped=0;let n=this.context.data.viewport.transformScale;r.transformedCurrent=n!==1?t*n:t,this.onCalcUpdate();return}r.target=t,r.delta=1}computeStep(t,e,r,i,n,s,o){let a=r*n,l=Math.min(Math.max(0,e+a),s),c=(l-t)*i,u=r-a,p=t+c;o.current=p,o.target=l,o.delta=u,o.lerped=c,o.scrollForce=a,o.absVelocity=Math.abs(c)}};var xe=class{constructor(t){this.context=t;this.registerMode("smooth",new we(t)),this.registerMode("default",new Ee(t)),this.registerMode("disable",new Me(t)),this.updateResponsiveMode()}modes=new Map;boundEvents=null;scrollMarks=[];registerMode(t,e){let r=this.context.data.scroll.mode===t,i=this.modes.get(t);i&&(r&&i.deactivate(),i.destroy()),e.name||(e.name=String(t)),this.modes.set(t,e),this.boundEvents&&(e.onScrollStart=this.boundEvents.onScrollStart,e.onScrollStop=this.boundEvents.onScrollStop,e.onChangeDirection=this.boundEvents.onDirectionChange),this.scrollMarks.length>0&&this.scrollMarks.forEach(n=>e.addScrollMark(n)),r&&e.activate()}setMobileMode(t){this.context.data.scroll.modeMobile=t,this.updateResponsiveMode()}setDesktopMode(t){this.context.data.scroll.modeDesktop=t,this.updateResponsiveMode()}updateResponsiveMode(){let e=window.innerWidth<1024?this.context.data.scroll.modeMobile:this.context.data.scroll.modeDesktop;this.setMode(e)}updatePosition(){this.get().onCalcUpdate()}setMode(t){if(!this.modes.has(t)){console.warn(`[ScrollManager] Unknown scroll mode: ${t}`);return}if(this.context.data.scroll.mode===t){this.get().activate();return}this.get().deactivate(),this.context.data.scroll.mode=t,this.get().activate(),this.boundEvents?.onModeChange()}get(){return this.modes.get(this.context.data.scroll.mode)}getEngines(){return this.modes}onFrame(){this.get().onFrame()}onScroll(t){this.get().onScroll(t)}onWheel(t){this.get().onWheel(t)}onTouchStart(t){this.get().onTouchStart(t)}onTouchMove(t){this.get().onTouchMove(t)}onTouchEnd(t){this.get().onTouchEnd(t)}bindEvents(t){this.boundEvents=t,this.modes.forEach(e=>{e.onScrollStart=t.onScrollStart,e.onScrollStop=t.onScrollStop,e.onChangeDirection=t.onDirectionChange})}addScrollMark(t){this.scrollMarks.push(t),this.modes.forEach(e=>{e.addScrollMark(t)})}removeScrollMark(t){this.scrollMarks=this.scrollMarks.filter(e=>e.id!==t),this.modes.forEach(e=>{e.removeScrollMark(t)})}destroy(){this.modes.forEach(t=>{t.deactivate(),t.destroy()})}};var Ce=class{targetX=0;targetY=0;smoothedX=0;smoothedY=0;stepX=0;stepY=0;velocityX=0;velocityY=0};var Te=class{threeInstance=null};var Pe=class{target=0;current=0;transformedCurrent=0;delta=0;lerped=0;displacement=0;isScrollingDown=!1;topPosition=0;bottomPosition=0;direction="vertical";elementContainer=document.documentElement;scrollContainer=window;container=document.body;mode="smooth";modeMobile="default";modeDesktop="smooth";speed=.1;speedAccelerate=.25};var Ae=class{fpsTracker=!1;positionTracker=!1;suppressMasonryResize=!1};var ke=class{now=0;previous=0;delta=0;elapsed=0};var Oe=class{windowWidth=0;windowHeight=0;contentWidth=0;contentHeight=0;scaleWidth=1;scaleHeight=1;transformScale=1;baseRem=16};var De=class{scroll=new Pe;viewport=new Oe;cursor=new Ce;render=new Te;time=new ke;system=new Ae};var Vt=class{process({element:t}){return t.getBoundingClientRect()}};var Wt=class{process({element:t,key:e,fallback:r=null}){return t.getAttribute(`string-${e}`)??t.getAttribute(`data-string-${e}`)??r}};var Nt=class{process({record:t,name:e,fallback:r=null}){return t[e]??t[`data-${e}`]??r}};var St=class{process({element:t}){let e=t.getBoundingClientRect(),i=getComputedStyle(t).transform.match(/-?[\d.]+/g)?.map(parseFloat)??[];if(i.length===6){let[n,s,o,a,l,c]=i,u=n*a-s*o;return{width:e.width/(n||1),height:e.height/(a||1),left:(e.left*a-e.top*o+o*c-l*a)/u,top:(-e.left*s+e.top*n+l*s-n*c)/u}}return e}};var zt=class{constructor(t=new St){this.transformTool=t}process({element:t,container:e=document.body}){let r;try{r=e.getBoundingClientRect()}catch{r=document.body.getBoundingClientRect()}let i=this.transformTool.process({element:t});return{top:i.top-r.top,left:i.left-r.left}}};var Gt=class{process({from:t,to:e,progress:r}){return(e-t)*r}};var $t=class{process({value:t,element:e,viewportHeight:r,baseRem:i,boundingRect:n}){let o=(typeof t=="number"?String(t):t).split("|").map(l=>l.trim()).filter(Boolean),a=0;for(let l of o){let c=l,u=!1;c.startsWith("-")&&(u=!0,c=c.slice(1));let p=0;c==="selfHeight"?p=e.offsetHeight:c.endsWith("px")?p=parseFloat(c):c.endsWith("%")?p=parseFloat(c)/100*r:c.endsWith("rem")?p=parseFloat(c)*i:c.endsWith("sh")?p=parseFloat(c)*n.height/100:p=parseFloat(c),a+=u?-p:p}return a}};var Ut=class{process({value:t,inMin:e=.1,inMax:r=1,outMin:i=.05,outMax:n=.65}){if(t<e)return n;if(t>1&&(t=1),t<=r){let s=(t-e)/(r-e);return n-s*(n-i)}return i}};var ut={left:0,center:.5,right:1},pt={top:0,center:.5,bottom:1},jt=class{process({value:t}){if(!t)return"center";let e=t.trim();if(e.startsWith("random(")&&e.endsWith(")")){let r=e.slice(7,-1).split(",").map(n=>n.trim()).filter(Boolean),i=Math.floor(Math.random()*r.length);return r[i]}return e}toNormalized({value:t}){let r=this.process({value:t}).toLowerCase().split(/\s+/).filter(Boolean);if(r.length===0)return{x:.5,y:.5};if(r.length===1){let a=r[0],l=this.parseValue(a);return a in ut&&!(a in pt)?{x:l,y:.5}:a in pt&&!(a in ut)?{x:.5,y:l}:{x:l,y:l}}let[i,n]=r,s=i in pt&&!(i in ut),o=n in ut&&!(n in pt);return s||o?{x:this.parseValue(n,"horizontal"),y:this.parseValue(i,"vertical")}:{x:this.parseValue(i,"horizontal"),y:this.parseValue(n,"vertical")}}parseValue(t,e){if(e==="horizontal"&&t in ut)return ut[t];if(e==="vertical"&&t in pt)return pt[t];if(t in ut)return ut[t];if(t in pt)return pt[t];if(t.endsWith("%")){let i=parseFloat(t);if(!isNaN(i))return i/100}let r=parseFloat(t);return isNaN(r)?.5:r>1?r/100:r}};var Yt=class{process({value:t}){let e=t.trim().toLowerCase();if(e.startsWith("#")){let n=e.slice(1);n.length===3&&(n=n.split("").map(c=>c+c).join(""));let s=parseInt(n.slice(0,2),16),o=parseInt(n.slice(2,4),16),a=parseInt(n.slice(4,6),16),l=n.length===8?parseInt(n.slice(6,8),16)/255:1;return{r:s,g:o,b:a,a:l}}let r=e.match(/rgba?\(([^)]+)\)/);if(r){let[n,s,o,a=1]=r[1].split(",").map(l=>parseFloat(l.trim()));return{r:n,g:s,b:o,a}}let i=e.match(/hsla?\(([^)]+)\)/);if(i){let[n,s,o,a="1"]=i[1].split(",").map(p=>p.trim()),[l,c,u]=this.hslToRgb(parseFloat(n),parseFloat(s),parseFloat(o));return{r:l,g:c,b:u,a:parseFloat(a)}}return{r:0,g:0,b:0,a:0}}hslToRgb(t,e,r){t=t/360,e=parseFloat(e.toString())/100,r=parseFloat(r.toString())/100;let i=(c,u,p)=>(p<0&&(p+=1),p>1&&(p-=1),p<1/6?c+(u-c)*6*p:p<1/2?u:p<2/3?c+(u-c)*(2/3-p)*6:c),n=r<.5?r*(1+e):r+e-r*e,s=2*r-n,o=Math.round(i(s,n,t+1/3)*255),a=Math.round(i(s,n,t)*255),l=Math.round(i(s,n,t-1/3)*255);return[o,a,l]}};var qt=class{namedCurves={linear:[0,0,1,1],ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]};process({easing:t}){let e=t.trim();if(this.namedCurves[e])return this.cubicBezier(...this.namedCurves[e]);let r=e.match(/^cubic-bezier\s*\(\s*([-+]?\d*\.?\d+)\s*,\s*([-+]?\d*\.?\d+)\s*,\s*([-+]?\d*\.?\d+)\s*,\s*([-+]?\d*\.?\d+)\s*\)$/);if(r){let[i,n,s,o]=r.slice(1).map(Number);return this.cubicBezier(i,n,s,o)}return i=>i}cubicBezier(t,e,r,i){let n=3*t,s=3*(r-t)-n,o=1-n-s,a=3*e,l=3*(i-e)-a,c=1-a-l;function u(h){return((o*h+s)*h+n)*h}function p(h){return((c*h+l)*h+a)*h}function g(h){return(3*o*h+2*s)*h+n}function m(h,f=1e-5){let b,y,v=h,S,E,M;for(M=0;M<8;M++){if(S=u(v)-h,Math.abs(S)<f)return v;if(E=g(v),Math.abs(E)<1e-6)break;v=v-S/E}for(b=0,y=1,v=h;b<y;){if(S=u(v)-h,Math.abs(S)<f)return v;S>0?y=v:b=v,v=(y+b)/2}return v}return function(h){return p(m(h))}}};var Xt=class{process({distance:t,radius:e,strength:r}){if(t>=e)return 0;let i=(e-t)/e;return r*i}};var Kt=class{process({from:t,to:e,progress:r}){return{r:t.r+(e.r-t.r)*r,g:t.g+(e.g-t.g)*r,b:t.b+(e.b-t.b)*r,a:t.a+(e.a-t.a)*r}}};var Zt=class{process({from:t,to:e,progress:r}){return{x:(e.x-t.x)*r,y:(e.y-t.y)*r}}};var Qt=class{process({value:t}){let r=t?.trim();if(!r||r==="none")return 1;try{if(r.startsWith("matrix(")){let i=r.match(/matrix\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}if(r.startsWith("scale(")){let i=r.match(/scale\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}if(r.startsWith("scaleX(")){let i=r.match(/scaleX\(([^)]+)\)/);if(i&&i[1]){let n=parseFloat(i[1].trim());if(!isNaN(n))return n}}if(r.startsWith("scale3d(")){let i=r.match(/scale3d\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}if(r.startsWith("matrix3d(")){let i=r.match(/matrix3d\(([^)]+)\)/);if(i&&i[1]){let n=i[1].split(",").map(s=>parseFloat(s.trim()));if(n.length>=1&&!isNaN(n[0]))return n[0]}}}catch(i){return console.error(`Error parsing transform string "${r}":`,i),1}return 1}};var Ie=class{process({attributeValue:t}){let e={segment:"legacy",line:[],word:[],char:[],charLine:[],charWord:[],wordLine:[],fit:!1,trimInlineGaps:!1};return t&&t.split("|").forEach(i=>{let n=i.trim();if(!n)return;let s=n.match(/^([\w-]+)(\[(.*?)\])?$/);if(s){let o=this.toCamelCase(s[1]),a=s[3]||"",l=a.split(";").map(u=>u.trim()).filter(u=>u.length>0),c=this.parseParamsArray(l);switch(o){case"segment":{let u=this.parseSegmentMode(a);u?e.segment=u:console.warn(`SplitOptionsParserTool: Unsupported segment mode "${a}" in part "${n}"`);break}case"line":e.line.push(c);break;case"word":e.word.push(c);break;case"char":e.char.push(c);break;case"charLine":e.charLine.push(c);break;case"charWord":e.charWord.push(c);break;case"wordLine":e.wordLine.push(c);break;case"fit":e.fit=!0;break;case"trimInlineGaps":e.trimInlineGaps=!0;break;default:console.warn(`SplitOptionsParserTool: Unrecognized option type "${o}" in part "${n}"`);break}}else console.warn(`SplitOptionsParserTool: Could not parse part format "${n}"`)}),e}toCamelCase(t){return t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase())}parseParamsArray(t){let e={align:"start"};return t.forEach(r=>{if(r==="abs")e.abs=!0;else if(r.startsWith("random")){e.align="random";let i=r.match(/random\(\s*(-?\d+)\s*,\s*(-?\d+)\s*\)/);if(i){let n=parseInt(i[1],10),s=parseInt(i[2],10);e.random={min:Math.min(n,s),max:Math.max(n,s)}}}else["start","center","end"].includes(r)&&(e.align=r)}),e}parseSegmentMode(t){let e=t.trim().toLowerCase();return e==="legacy"||e==="visual"?e:null}};var Jt=class{process({value:t}){let e=[],r="",i=0;for(let n=0;n<t.length;n++){let s=t[n];s==="("&&i++,s===")"&&i--,s==="|"&&i===0?(r.trim()&&e.push(r.trim()),r=""):r+=s}return r.trim()&&e.push(r.trim()),e.map(n=>{let s=n.match(/^(\w+)(?:\((.*)\))?$/);if(s){let[,a,l]=s;return l?{key:a,params:l.split(",").map(c=>c.trim())}:{key:a}}let o=n.indexOf(":");if(o!==-1){let a=n.slice(0,o).trim(),l=n.slice(o+1).trim(),c=l?l.split(",").map(u=>u.trim()):void 0;return{key:a,params:c}}return{key:n}})}};var Re=class{process({rules:t,value:e,type:r="input",context:i}){let n=[];for(let c of t){var s=null,o=null,a=!0,l=!0;r=="input"&&(o=this.inputValidators[c.key],!o)||r=="beforeinput"&&(s=this.beforeInputValidators[c.key],!s)||(o&&(a=o(e,c.params,i)),s&&(l=s(e,c.params,i)),l||n.push(this.getErrorMessage(c.key,c.params)),a||n.push(this.getErrorMessage(c.key,c.params)))}return{valid:n.length===0,errors:n}}inputValidators={required:t=>t!=null&&String(t).trim()!=="",min:(t,e)=>typeof t=="string"&&t.length>=Number(e?.[0]??0),max:(t,e)=>typeof t=="string"&&t.length<=Number(e?.[0]??Number.MAX_SAFE_INTEGER),checked:t=>{if(Array.isArray(t))return t.length>0;if(t===!0||t==="true"||t===1||t==="1")return!0;if(typeof t=="string"){let e=t.trim().toLowerCase();return e==="false"||e==="0"?!1:e.length>0}return!!t},email:t=>typeof t=="string"&&/^[^\s@]+@([a-z0-9-]+\.)+[a-z]{2,}$/i.test(t),phone:t=>{if(typeof t!="string")return!1;let e=t.trim();if(e===""||!/^[0-9()\s+-.]+$/.test(e))return!1;let r=e.replace(/\D/g,"").length;return r>=7&&r<=15},number:t=>typeof t=="string"&&/^-?\d+(\.\d+)?$/.test(t),integer:t=>typeof t=="string"&&/^-?\d+$/.test(t),url:t=>typeof t=="string"&&/^(https?:\/\/)?([\w\-]+\.)+[\w\-]+(\/[\w\-._~:\/?#[\]@!$&'()*+,;=]*)?$/.test(t),regex:(t,e)=>this.testByRegex(t,e?.[0]),alpha:t=>this.testByRegex(t,"^[A-Za-z]+$",!0),alpha_num:t=>this.testByRegex(t,"^[A-Za-z0-9]+$",!0),alpha_dash:t=>this.testByRegex(t,"^[A-Za-z0-9_-]+$",!0),same:(t,e,r)=>{let i=e?.[0],n=this.getContextValue(r,i);return i&&n===void 0?!1:this.areValuesEqual(t,n)},different:(t,e,r)=>{let i=e?.[0],n=this.getContextValue(r,i);return i&&n===void 0?!1:!this.areValuesEqual(t,n)},range:(t,e)=>{if(t==null||t==="")return!0;let r=Number(t),i=Number(e?.[0]),n=Number(e?.[1]);return Number.isNaN(r)||Number.isNaN(i)||Number.isNaN(n)?!1:r>=i&&r<=n},digits:(t,e)=>{if(typeof t!="string")return!1;let r=Number(e?.[0]??0);return r<=0?!1:new RegExp(`^\\d{${r}}$`).test(t)},ip:t=>typeof t=="string"&&(this.isIPv4(t)||this.isIPv6(t)),mimes:(t,e)=>this.validateMimes(t,e),max_size:(t,e)=>{let r=Number(e?.[0]);return!r||r<=0?!0:this.validateMaxSize(t,r)},after:(t,e,r)=>this.compareDates(t,e,r,"after"),before:(t,e,r)=>this.compareDates(t,e,r,"before")};beforeInputValidators={number:t=>/^-?\d*\.?\d*$/.test(t),integer:t=>/^-?\d*$/.test(t),email:t=>/^[\w@.\-+]*$/.test(t),phone:t=>/^[0-9()\s+-.]*$/.test(t),letters:t=>/^[a-zA-Z]*$/.test(t),lettersSpaces:t=>/^[a-zA-Z\s]*$/.test(t),lettersNumbers:t=>/^[a-zA-Z0-9]*$/.test(t),alpha:t=>/^[A-Za-z]*$/.test(t),alpha_num:t=>/^[A-Za-z0-9]*$/.test(t),alpha_dash:t=>/^[A-Za-z0-9_-]*$/.test(t),digits:(t,e)=>{let r=Number(e?.[0]??0);return r<=0?/^\d*$/.test(t):new RegExp(`^\\d{0,${r}}$`).test(t)},url:t=>/^[a-zA-Z0-9\-._~:\/?#\[\]@!$&'()*+,;=%]*$/.test(t),pattern:(t,e)=>{try{return new RegExp(e?.[0]||"").test(t)}catch{return!0}}};getErrorMessage(t,e){switch(t){case"required":return"This field is required";case"email":return"Invalid email address";case"min":return`Minimum ${e?.[0]} characters`;case"max":return`Maximum ${e?.[0]} characters`;case"phone":return"Invalid phone number";case"number":return"Only numbers are allowed";case"integer":return"Only whole numbers are allowed";case"url":return"Invalid URL address";case"checked":return"You must accept";case"regex":return"Value does not match the required pattern";case"alpha":return"Only letters are allowed";case"alpha_num":return"Only letters and numbers are allowed";case"alpha_dash":return"Only letters, numbers, dashes, and underscores are allowed";case"same":return"Values do not match";case"different":return"Values must be different";case"range":return`Value must be between ${e?.[0]} and ${e?.[1]}`;case"digits":return`Value must contain exactly ${e?.[0]} digits`;case"ip":return"Invalid IP address";case"mimes":return`Allowed file types: ${e?.join(", ")}`;case"max_size":return`File must be smaller than ${e?.[0]} KB`;case"after":return`Date must be after ${e?.[0]}`;case"before":return`Date must be before ${e?.[0]}`;default:return"Invalid value"}}validateMimes(t,e){if(!e||e.length===0)return!0;let r=this.extractFiles(t);if(r.length===0)return!0;let i=e.map(n=>n.trim().toLowerCase());return r.every(n=>this.isMimeAllowed(n,i))}validateMaxSize(t,e){let r=this.extractFiles(t);if(r.length===0)return!0;let i=e*1024;return r.every(n=>typeof n.size!="number"?!0:n.size<=i)}extractFiles(t){if(!t)return[];let e=[];return typeof File<"u"&&t instanceof File?(e.push(t),e):typeof FileList<"u"&&t instanceof FileList?Array.from(t):Array.isArray(t)?(t.forEach(r=>{e.push(...this.extractFiles(r))}),e):typeof t=="object"&&("name"in t||"size"in t||"type"in t)?(e.push(t),e):(typeof t=="string"&&t!==""&&e.push({name:t}),e)}isMimeAllowed(t,e){let r=(t.type||"").toLowerCase(),i=this.getFileExtension(t.name);return e.some(n=>{let s=n.replace(/^\./,"").toLowerCase();return s?s.includes("/")?r===s:i===s:!1})}getFileExtension(t){if(!t)return"";let e=t.split(".");return e.length<=1?"":(e.pop()||"").toLowerCase()}compareDates(t,e,r,i){if(t==null||t==="")return!0;let n=e?.[0];if(!n)return!0;let s=this.toDate(t),o=this.resolveDateReference(n,r);return!s||!o?!1:i==="after"?s.getTime()>o.getTime():s.getTime()<o.getTime()}resolveDateReference(t,e){let r=this.getContextValue(e,t);if(r!==void 0)return this.toDate(r);if(t.toLowerCase()==="now")return new Date;if(t.toLowerCase()==="today"){let i=new Date;return i.setHours(0,0,0,0),i}return this.toDate(t)}toDate(t){if(t==null||t==="")return null;if(t instanceof Date)return Number.isNaN(t.getTime())?null:t;if(typeof t=="number"){let e=new Date(t);return Number.isNaN(e.getTime())?null:e}if(typeof t=="string"){let e=Date.parse(t);if(!Number.isNaN(e))return new Date(e)}return null}testByRegex(t,e,r=!1){if(e==null||e==="")return!0;let i=typeof t=="string"?t:t==null?"":String(t);if(r&&i==="")return!0;try{let{source:n,flags:s}=this.normalizeRegex(e);return new RegExp(n,s).test(i)}catch{return!0}}normalizeRegex(t){let e=t.trim();if(e.startsWith("/")&&e.lastIndexOf("/")>0){let r=e.lastIndexOf("/"),i=e.slice(1,r),n=e.slice(r+1);return{source:i,flags:n}}return{source:e,flags:""}}getContextValue(t,e){if(!(!t||!e)){if(t.values&&Object.prototype.hasOwnProperty.call(t.values,e))return t.values[e];if(t.getValue)return t.getValue(e)}}areValuesEqual(t,e){return Array.isArray(t)||Array.isArray(e)?JSON.stringify(t)===JSON.stringify(e):t===e}isIPv4(t){let e=t.split(".");return e.length!==4?!1:e.every(r=>{if(!/^\d+$/.test(r))return!1;let i=Number(r);return i>=0&&i<=255})}isIPv6(t){if(!t)return!1;if(t==="::")return!0;let e=t.split("::");if(e.length>2)return!1;let r=/^[0-9a-fA-F]{1,4}$/,i=t.split(":");return e.length===2?i.every(n=>n===""||r.test(n))&&i.length<=8:i.length===8&&i.every(n=>r.test(n))}};var Ar=class{pendingVars=new Map;pendingProps=new Map;isOpen=!1;canUseTypedOM(t){return"attributeStyleMap"in t&&typeof CSS<"u"&&typeof CSS.number=="function"&&typeof CSS.px=="function"}writeVar(t,e,r){let i=t.style;if(this.canUseTypedOM(t)&&typeof r=="number"&&Number.isFinite(r))try{t.attributeStyleMap.set(e,CSS.number(r));return}catch{}i.setProperty(e,String(r))}begin(){this.isOpen||(this.isOpen=!0)}setVars(t,e){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set custom properties.");return}let r=this.pendingVars.get(t)??{};for(let[i,n]of Object.entries(e))r[i]!==n&&(r[i]=n);this.pendingVars.set(t,r)}setVar(t,e,r){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set custom properties.");return}let i=this.pendingVars.get(t)??{};i[e]!==r&&(i[e]=r,this.pendingVars.set(t,i))}setVarDirect(t,e,r){this.writeVar(t,e,r)}setProps(t,e){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set standard properties.");return}let r=this.pendingProps.get(t)??{};for(let[i,n]of Object.entries(e))r[i]!==n&&(r[i]=n);this.pendingProps.set(t,r)}setProp(t,e,r){if(!this.isOpen){console.warn("StyleTxn: call begin() first to set standard properties.");return}let i=this.pendingProps.get(t)??{};i[e]!==r&&(i[e]=r,this.pendingProps.set(t,i))}run(t){let e=this.isOpen;e||this.begin();try{t(),e||this.commit()}catch(r){throw e||this.cancel(),r}}commit(){if(this.isOpen){this.isOpen=!1;for(let[t,e]of this.pendingVars)for(let[r,i]of Object.entries(e))this.writeVar(t,r,i);this.pendingVars.clear();for(let[t,e]of this.pendingProps){let r=t.style;for(let[i,n]of Object.entries(e))r[i]=String(n)}this.pendingProps.clear()}}cancel(){this.pendingVars.clear(),this.pendingProps.clear(),this.isOpen=!1}},L=new Ar;var He=class{domAttribute=new Wt;recordAttribute=new Nt;transformNullify=new St;boundingClientRect=new Vt;relativePosition=new zt(this.transformNullify);unitParser=new $t;lerp=new Gt;adaptiveLerp=new Ut;originParser=new jt;colorParser=new Yt;validation=new Re;easingFunction=new qt;magneticPull=new Xt;lerpColor=new Kt;lerpVector=new Zt;transformScaleParser=new Qt;optionsParser=new Ie;ruleParser=new Jt;styleTxn=L};function Be(){let d=typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(pointer: coarse)").matches:!1,t=typeof navigator<"u"?(navigator.maxTouchPoints||0)>0:!1,e=typeof window<"u"?window.innerWidth<=768:!1;return d||t||e}var Bi=new WeakMap,$=5e-4,Tt="default",kr="[string-cursor],[data-string-cursor]",_i="[string-cursor-content],[data-string-cursor-content]",Or=1/240,X=(d,t)=>{let e=Math.pow(10,t);return Math.round(d*e)/e};function qn(d){let t=Bi.get(d);return t||(t={prevX:Number.NaN,prevY:Number.NaN},Bi.set(d,t)),t}var Dr=class extends x{cursorPrev={x:Number.NaN,y:Number.NaN,stepX:Number.NaN,stepY:Number.NaN};cursorPortals=new Map;hoveredObjects=new Set;globalListenersBound=!1;boundBeforeUnload=()=>this.cleanupHoverTargets();boundPageHide=()=>this.cleanupHoverTargets();boundVisibilityChange=()=>{document.hidden&&this.cleanupHoverTargets()};enabled=!0;lastFrameTime=0;constructor(t){super(t),this.htmlKey="cursor",this.cssProperties=[{name:"--x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--y",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--x-lerp",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--y-lerp",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--x-px",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--y-px",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--dx",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--dy",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--angle",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--angle-deg",syntax:"<number>",initialValue:"0",inherits:!0}],this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1,this.permissions.mobile.rebuild.scrollHeight=!1,this.attributesToMap=[...this.attributesToMap,{key:"target-disable",type:"boolean",fallback:this.settings["target-disable"]},{key:"target-style-disable",type:"boolean",fallback:this.settings["target-style-disable"]},{key:"cursor-target",type:"string",fallback:this.settings["cursor-target"]??Tt},{key:"target-class",type:"string",fallback:this.settings["target-class"]},{key:"cursor-class",type:"string",fallback:this.settings["cursor-class"]},{key:"alignment",type:{type:"enum",values:["start","center","end"]},fallback:this.settings.alignment},{key:"cursor-enter",type:{type:"enum",values:["snap","smooth"]},fallback:"snap"},{key:"cursor-leave",type:{type:"enum",values:["snap","smooth"]},fallback:"smooth"},{key:"cursor-leave-hold",type:"boolean",fallback:!1},{key:"lerp",type:"number",fallback:this.settings.lerp,transform:e=>this.tools.adaptiveLerp.process({value:e,inMin:.1,inMax:1,outMin:.05,outMax:.65})},{key:"cursor-float",type:"number",fallback:2},{key:"cursor-vars",type:"string",fallback:""}],Be()&&(this.enabled=!1),this.collectCursorPortals(),this.enabled&&this.bindGlobalLifecycleListeners()}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("mouse-x",0),e.setProperty("mouse-y",0),e.setProperty("mouse-pixel-x",0),e.setProperty("mouse-pixel-y",0),e.setProperty("is-mouse-over",!1),e.setProperty("is-mouse-move",!1),e.setProperty("__cursor-vars",this.parseCursorVars(e.getProperty("cursor-vars")));let n=r.getBoundingClientRect();e.setProperty("cached-width",n.width||r.offsetWidth||1),e.setProperty("cached-height",n.height||r.offsetHeight||1)}onResize(){super.onResize(),this.objects.forEach(t=>{let e=t.htmlElement.getBoundingClientRect();t.setProperty("cached-width",e.width||t.htmlElement.offsetWidth||1),t.setProperty("cached-height",e.height||t.htmlElement.offsetHeight||1)})}onMutate(t){if(!this.enabled)return;let e=performance.now(),r=this.lastFrameTime?(e-this.lastFrameTime)/1e3:.016;this.lastFrameTime=e,r>.1&&(r=.1),r<Or&&(r=Or);let i=this.data.cursor.targetX,n=this.data.cursor.targetY;if(this.objects.forEach(s=>{let o=s.getProperty("is-mouse-over"),a=s.getProperty("cursor-target-disable"),l=s.getProperty("lerp")??.15,c=this.getFrameAdjustedLerp(l,r),u=this.getObjectDimensions(s),{halfWidth:p,halfHeight:g,width:m,height:h}=u;if(o&&!a){let{cx:f,cy:b}=this.centers.getCenter(s),y=i-(f-p),v=n-(b-g),S=s.getProperty("mouse-pixel-x")??0,E=s.getProperty("mouse-pixel-y")??0,M=S-y,C=E-v;if(M*M+C*C>1e-4){let I=s.getProperty("is-mouse-move")??!1,H=s.getProperty("cursor-enter")??"snap",w=s.getProperty("alignment")??"center";if(!I){if(s.setProperty("is-mouse-move",!0),H==="snap")s.setProperty("mouse-pixel-x",y),s.setProperty("mouse-pixel-y",v),s.setProperty("mouse-x",y),s.setProperty("mouse-y",v),S=y,E=v;else{let N=s.getProperty("mouse-x")??0,z=s.getProperty("mouse-y")??0;S=this.reverseOffset(w,N,m),E=this.reverseOffset(w,z,h),s.setProperty("mouse-pixel-x",S),s.setProperty("mouse-pixel-y",E)}this.events.emit(this.getObjectEventName(s,"cursor:start"),null)}let _=this.tools.lerp.process({from:S,to:y,progress:c}),k=this.tools.lerp.process({from:E,to:v,progress:c}),O=S+_,T=E+k,P=Math.abs(O-S)>$||Math.abs(T-E)>$;s.setProperty("mouse-pixel-x",O),s.setProperty("mouse-pixel-y",T);let R=this.calculateOffset(w,O,m),B=this.calculateOffset(w,T,h);s.setProperty("mouse-x",R),s.setProperty("mouse-y",B),this.setMouseCoordinates(s,R,B,O,T)&&this.events.emit(this.getObjectEventName(s,"cursor:move"),{x:R,y:B}),P&&this.events.emit(this.getObjectEventName(s,"cursor:pixel"),{x:O,y:T})}else{s.setProperty("mouse-pixel-x",y),s.setProperty("mouse-pixel-y",v),s.getProperty("is-mouse-move")&&(s.setProperty("is-mouse-move",!1),this.events.emit(this.getObjectEventName(s,"cursor:end"),null));let I=s.getProperty("alignment")??"center",H=this.calculateOffset(I,y,m),w=this.calculateOffset(I,v,h);this.setMouseCoordinates(s,H,w,y,v)}}else{if(s.getProperty("cursor-leave-hold")??!1){s.getProperty("is-mouse-move")&&(s.setProperty("is-mouse-move",!1),this.events.emit(this.getObjectEventName(s,"cursor:end"),null));return}if((s.getProperty("cursor-leave")??"smooth")==="snap"){s.setProperty("is-mouse-move",!1),s.setProperty("mouse-x",0),s.setProperty("mouse-y",0),s.setProperty("mouse-pixel-x",0),s.setProperty("mouse-pixel-y",0),this.setMouseCoordinates(s,0,0,0,0);return}let y=s.getProperty("mouse-x")??0,v=s.getProperty("mouse-y")??0;if(y!==0||v!==0){s.setProperty("is-mouse-move",!1);let S=this.calculateOffset("center",p,m),E=this.calculateOffset("center",g,h),M=y+this.tools.lerp.process({from:y,to:S,progress:c}),C=v+this.tools.lerp.process({from:v,to:E,progress:c});s.setProperty("mouse-x",M),s.setProperty("mouse-y",C),Math.abs(M)<.001&&Math.abs(C)<.001?(s.setProperty("mouse-x",0),s.setProperty("mouse-y",0),s.setProperty("mouse-pixel-x",0),s.setProperty("mouse-pixel-y",0),this.setMouseCoordinates(s,0,0,0,0)):this.setMouseCoordinates(s,M,C)}}}),this.cursorPortals.size>0){let{stepX:s,stepY:o,smoothedX:a,smoothedY:l}=this.data.cursor,c=this.cursorPrev;(!Number.isFinite(c.x)||Math.abs(a-c.x)>$||Math.abs(l-c.y)>$||Math.abs(s-c.stepX)>$||Math.abs(o-c.stepY)>$)&&(this.events.emit("cursor",{stepX:s,stepY:o,x:a,y:l}),this.cursorPrev={x:a,y:l,stepX:s,stepY:o});let p=this.data.cursor.targetX,g=this.data.cursor.targetY;this.cursorPortals.forEach(m=>{m.forEach(h=>{this.updatePortalPosition(h,p,g,r)})})}}onObjectConnected(t){let e=t.htmlElement;this.centers.attach(t),t.setProperty("mouseleave",()=>{this.onMouseLeave(t)}),t.setProperty("mouseenter",()=>{this.onMouseEnter(t)}),t.setProperty("onEnterEvent",this.onEnterObject.bind(this)),t.events.on("enter",t.getProperty("onEnterEvent")),t.setProperty("onLeaveEvent",this.onLeaveObject.bind(this)),t.events.on("leave",t.getProperty("onLeaveEvent"))}getCursorClass(t){let e=t.getProperty("cursor-class");return e!=null&&e.length>0?e:null}onMouseEnter(t){if(!document.contains(t.htmlElement))return;t.setProperty("is-mouse-over",!0),this.hoveredObjects.add(t);let e=this.getCursorClass(t);this.withPortalsForObject(t,r=>{e&&r.element.classList.add(e),this.incrementPortalHover(r)}),t.htmlElement.addEventListener("mouseleave",t.getProperty("mouseleave"))}onMouseLeave(t){t.setProperty("is-mouse-over",!1),this.hoveredObjects.delete(t);let e=this.getCursorClass(t);this.withPortalsForObject(t,r=>{e&&r.element.classList.remove(e),this.decrementPortalHover(r)}),document.contains(t.htmlElement)&&t.htmlElement.removeEventListener("mouseleave",t.getProperty("mouseleave"))}onEnterObject(t){t.htmlElement.addEventListener("mouseenter",t.getProperty("mouseenter"))}onLeaveObject(t){t.htmlElement.removeEventListener("mouseenter",t.getProperty("mouseenter")),t.htmlElement.removeEventListener("mouseleave",t.getProperty("mouseleave"))}safariNavigationCleanup(t){t.getProperty("is-mouse-over")&&this.onMouseLeave(t)}onElementRemovedFromDOM(t){t.getProperty("is-mouse-over")&&this.onMouseLeave(t)}onObjectDisconnected(t){t.getProperty("is-mouse-over")&&this.onMouseLeave(t)}onDOMRebuild(){this.enabled&&this.collectCursorPortals()}onDOMMutate(t,e){this.enabled&&((this.shouldRefreshPortals(t)||this.shouldRefreshPortals(e))&&this.collectCursorPortals(),e.length>0&&this.handleRemovedNodes(e))}collectCursorPortals(){this.cursorPortals.clear(),document.querySelectorAll(kr).forEach(e=>{if(!(e instanceof HTMLElement))return;let r=this.resolvePortalId(e),i=this.resolvePortalLerp(e),n=e.matches(_i)?e:e.querySelector(_i),s=this.data.cursor.targetX,o=this.data.cursor.targetY,a={id:r,element:e,content:n,prev:{x:s,y:o,stepX:0,stepY:0},hoverCount:0,showTimer:null,lerp:i},l=this.cursorPortals.get(r);l?l.push(a):this.cursorPortals.set(r,[a])})}resolvePortalId(t){let e=[t.getAttribute("data-string-cursor"),t.getAttribute("string-cursor"),t.getAttribute("data-string-cursor-id"),t.getAttribute("string-cursor-id")];for(let r of e)if(r&&r.trim().length>0)return r.trim();return Tt}resolvePortalLerp(t){let e=t.getAttribute("data-string-cursor-lerp")??t.getAttribute("string-cursor-lerp")??this.settings["cursor-lerp"];if(!e)return null;let r=parseFloat(e);if(!Number.isFinite(r))return null;let i=Math.min(1,Math.max(.01,r));return this.tools.adaptiveLerp.process({value:i,inMin:.1,inMax:1,outMin:.05,outMax:.65})}shouldRefreshPortals(t){for(let e of Array.from(t))if(e instanceof Element&&(e.matches(kr)||e.querySelector(kr)))return!0;return!1}withPortalsForObject(t,e){this.getPortalsForObject(t).forEach(i=>e(i))}getPortalsForObject(t){if(this.cursorPortals.size===0)return[];let e=this.extractPortalIds(t),r=[];if(e.forEach(i=>{if(i==="*"){this.cursorPortals.forEach(o=>{o.forEach(a=>r.push(a))});return}let n=i.length>0?i:Tt,s=this.cursorPortals.get(n);s&&s.forEach(o=>r.push(o))}),r.length===0){let i=this.cursorPortals.get(Tt)??this.cursorPortals.values().next().value;i&&i.length>0&&i.forEach(n=>r.push(n))}return r}extractPortalIds(t){if(!t)return[Tt];let e=t.getProperty("cursor-target");return typeof e!="string"||e.trim().length===0?[Tt]:e.split(/[,|]/).map(r=>r.trim()).filter(Boolean)}incrementPortalHover(t){t.hoverCount++,t.element.classList.remove("-show"),this.restartPortalShowTimer(t)}decrementPortalHover(t){t.hoverCount=Math.max(0,t.hoverCount-1),t.hoverCount===0&&(this.clearPortalShowTimer(t),t.element.classList.remove("-show"))}restartPortalShowTimer(t){if(this.clearPortalShowTimer(t),!t.element.isConnected){t.showTimer=null;return}t.element.classList.add("-show"),t.showTimer=null}clearPortalShowTimer(t){t.showTimer&&(clearTimeout(t.showTimer),t.showTimer=null)}updatePortalPosition(t,e,r,i){if(!t.element.isConnected)return;let n=t.prev,s=Number.isFinite(n.x)?n.x:e,o=Number.isFinite(n.y)?n.y:r,a=t.lerp??.1,l=this.getFrameAdjustedLerp(a,i),c=(e-s)*l,u=(r-o)*l,p=i>1e-4?i:1/60,g=c/(p*60),m=u/(p*60);if(Math.abs(c)<$&&Math.abs(u)<$)return;let h=s+c,f=o+u;this.writePortalVars(t.element,{"--x":X(h,2),"--y":X(f,2),"--x-lerp":X(g,3),"--y-lerp":X(m,3)}),n.x=h,n.y=f,n.stepX=c,n.stepY=u}handleRemovedNodes(t){this.hoveredObjects.size!==0&&Array.from(this.hoveredObjects).forEach(e=>{e.htmlElement.isConnected||this.onElementRemovedFromDOM(e)})}cleanupHoverTargets(){this.hoveredObjects.size!==0&&Array.from(this.hoveredObjects).forEach(t=>this.safariNavigationCleanup(t))}bindGlobalLifecycleListeners(){this.globalListenersBound||(window.addEventListener("beforeunload",this.boundBeforeUnload),window.addEventListener("pagehide",this.boundPageHide),document.addEventListener("visibilitychange",this.boundVisibilityChange),this.globalListenersBound=!0)}unbindGlobalLifecycleListeners(){this.globalListenersBound&&(window.removeEventListener("beforeunload",this.boundBeforeUnload),window.removeEventListener("pagehide",this.boundPageHide),document.removeEventListener("visibilitychange",this.boundVisibilityChange),this.globalListenersBound=!1)}setMouseCoordinates(t,e,r,i,n){if(t.getProperty("cursor-target-style-disable"))return!1;let s=qn(t),o=t.getProperty("cursor-float")??2,a=Math.pow(10,o),l=Math.abs(e)<$&&Number.isFinite(s.prevX)&&Math.abs(s.prevX)<$?s.prevX:Math.round(e*a)/a,c=Math.abs(r)<$&&Number.isFinite(s.prevY)&&Math.abs(s.prevY)<$?s.prevY:Math.round(r*a)/a;if(Number.isFinite(s.prevX)&&Math.abs(l-s.prevX)<=$&&Number.isFinite(s.prevY)&&Math.abs(c-s.prevY)<=$)return!1;s.prevX=l,s.prevY=c;let u=t.getProperty("__cursor-vars"),p={"--x":X(l,o),"--y":X(c,o)};if(u&&u.size>0){let m=Number.isFinite(i)?i:t.getProperty("mouse-pixel-x"),h=Number.isFinite(n)?n:t.getProperty("mouse-pixel-y"),f=t.getProperty("__prev-x-px"),b=t.getProperty("__prev-y-px"),y=Number.isFinite(f)?m-f:0,v=Number.isFinite(b)?h-b:0;t.setProperty("__prev-x-px",m),t.setProperty("__prev-y-px",h);let S=y===0&&v===0?0:Math.atan2(v,y),E=S*180/Math.PI;u.has("xpx")&&(p["--x-px"]=X(m,2)),u.has("ypx")&&(p["--y-px"]=X(h,2)),u.has("dx")&&(p["--dx"]=X(y,3)),u.has("dy")&&(p["--dy"]=X(v,3)),u.has("angle")&&(p["--angle"]=X(S,4)),u.has("angle-deg")&&(p["--angle-deg"]=X(E,2))}let g=()=>{this.applyToElementAndConnects(t,m=>{L.setVars(m,p)})};return L.isOpen?g():L.run(g),!0}writePortalVars(t,e){if(L.isOpen){L.setVars(t,e);return}L.run(()=>{L.setVars(t,e)})}parseCursorVars(t){return t?new Set(t.split(/[|,]/).map(e=>e.trim().toLowerCase()).filter(e=>e.length>0)):new Set}getFrameAdjustedLerp(t,e){let r=Math.min(.99,Math.max(.001,t));if(!Number.isFinite(e)||e<=0)return r;let n=Math.max(e,Or)*60,s=1-Math.pow(1-r,n);return Math.min(.999,Math.max(1e-4,s))}getObjectDimensions(t){let e=t.getProperty("cached-width"),r=t.getProperty("cached-height");if(typeof e=="number"&&typeof r=="number"&&e>0&&r>0){let g=e/2,m=r/2;return{width:e,height:r,halfWidth:g,halfHeight:m}}let i=t.htmlElement,n=i.offsetWidth||i.clientWidth||i.scrollWidth||1,s=i.offsetHeight||i.clientHeight||i.scrollHeight||1,o=t.getProperty("half-width"),a=t.getProperty("half-height"),l=typeof o=="number"&&Number.isFinite(o)?o:n/2,c=typeof a=="number"&&Number.isFinite(a)?a:s/2,u=l>0?l*2:n,p=c>0?c*2:s;return t.setProperty("cached-width",u),t.setProperty("cached-height",p),{width:u,height:p,halfWidth:l,halfHeight:c}}calculateOffset(t,e,r){switch(t){case"start":return e/r;case"end":return(e-r)/r;case"center":default:return(e-r/2)/(r/2)}}reverseOffset(t,e,r){switch(t){case"start":return e*r;case"end":return e*r+r;case"center":default:return e*(r/2)+r/2}}removeObject(t){if(!this.enabled)return super.removeObject(t);let e=this.objectMapOnPage.get(t);e&&this.centers.detach(e),super.removeObject(t)}destroy(){this.unbindGlobalLifecycleListeners(),this.hoveredObjects.clear(),super.destroy()}};var Ir=class extends x{originObservers=new WeakMap;constructor(t){super(t),this.htmlKey="impulse",this.cssProperties=[{name:"--push-x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--push-y",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--push-rotation",syntax:"<number>",initialValue:"0",inherits:!0}],this.attributesToMap.push({key:"position-strength",type:"number",fallback:this.settings["position-strength"]},{key:"position-tension",type:"number",fallback:this.settings["position-tension"]},{key:"position-friction",type:"number",fallback:this.settings["position-friction"]},{key:"position-max-velocity",type:"number",fallback:this.settings["position-max-velocity"]},{key:"position-update-threshold",type:"number",fallback:this.settings["position-update-threshold"]},{key:"rotation-strength",type:"number",fallback:this.settings["rotation-strength"]},{key:"rotation-tension",type:"number",fallback:this.settings["rotation-tension"]},{key:"rotation-friction",type:"number",fallback:this.settings["rotation-friction"]},{key:"rotation-max-angular-velocity",type:"number",fallback:this.settings["rotation-max-angular-velocity"]},{key:"rotation-max-angle",type:"number",fallback:this.settings["rotation-max-angle"]},{key:"rotation-update-threshold",type:"number",fallback:this.settings["rotation-update-threshold"]},{key:"max-offset",type:"number",fallback:this.settings["max-offset"]},{key:"sleep-epsilon",type:"number",fallback:this.settings["sleep-epsilon"]},{key:"continuous-push",type:"boolean",fallback:this.settings["continuous-push"]},{key:"rotation-origin",type:"string",fallback:this.settings["rotation-origin"]??"center center"})}onObjectConnected(t){super.onObjectConnected(t),t.setProperty("offset-x",0),t.setProperty("offset-y",0),t.setProperty("velocity-x",0),t.setProperty("velocity-y",0),t.setProperty("angle-deg",0),t.setProperty("ang-vel-deg",0),t.setProperty("__prev-css-x",0),t.setProperty("__prev-css-y",0),t.setProperty("__prev-css-rot",0),t.setProperty("__push-latch",!1),t.setProperty("__rotate-latch",!1),this.cacheRotationOrigin(t),this.observeRotationOrigin(t),this.hover.track(t),this.centers.attach(t)}onObjectDisconnected(t){this.hover.untrack(t),this.centers.detach(t);let e=this.originObservers.get(t);e&&(e.disconnect(),this.originObservers.delete(t))}onMouseMove(t){if(!t)return;let e=this.data.cursor.velocityX,r=this.data.cursor.velocityY;if(e===0&&r===0)return;let i=this.data.cursor.targetX,n=this.data.cursor.targetY;for(let s of this.objects){let o=s.htmlElement.getBoundingClientRect();if(i>=o.left&&i<=o.right&&n>=o.top&&n<=o.bottom){{let u=o.width||1,p=Math.max(0,Math.min(1,(this.data.cursor.targetX-o.left)/u));this.events.emit(this.getObjectEventName(s,"object:impulse","side"),{value:p})}let l=s.getProperty("position-strength")||0;if(l!==0){let u=s.getProperty("continuous-push")??!0,p=s.getProperty("__push-latch")===!0;if(u||!p){let g=s.getProperty("velocity-x")||0,m=s.getProperty("velocity-y")||0;g+=e*l,m+=r*l,s.setProperty("velocity-x",g),s.setProperty("velocity-y",m),u||s.setProperty("__push-latch",!0)}}let c=s.getProperty("rotation-strength")??.75;if(c!==0){let u=s.getProperty("continuous-push")??!0,p=s.getProperty("__rotate-latch")===!0;if(u||!p){let{centerX:g,centerY:m}=this.getRotationOriginFromRect(s,o),h=i-g,f=n-m,b=h*r-f*e,y=s.getProperty("ang-vel-deg")||0;y+=b*c*.02,s.setProperty("ang-vel-deg",y),u||s.setProperty("__rotate-latch",!0)}}}}}cacheRotationOrigin(t){let e=t.getProperty("rotation-origin")??"center center",{x:r,y:i}=this.tools.originParser.toNormalized({value:e});t.setProperty("__rotation-origin-x",r),t.setProperty("__rotation-origin-y",i)}observeRotationOrigin(t){let e="string-rotation-origin",r="data-string-rotation-origin",i=new MutationObserver(n=>{for(let s of n)if(s.type==="attributes"&&(s.attributeName===e||s.attributeName===r)){let o=t.htmlElement.getAttribute(e)??t.htmlElement.getAttribute(r);o!==null&&t.setProperty("rotation-origin",o),this.cacheRotationOrigin(t);break}});i.observe(t.htmlElement,{attributes:!0,attributeFilter:[e,r]}),this.originObservers.set(t,i)}getRotationOriginFromRect(t,e){let r=t.getProperty("__rotation-origin-x")??.5,i=t.getProperty("__rotation-origin-y")??.5;return{centerX:e.left+e.width*r,centerY:e.top+e.height*i}}onFrame(t){let e=this.data.cursor.targetX,r=this.data.cursor.targetY;for(let i of this.objects){let n=i.htmlElement.getBoundingClientRect(),s=e>=n.left&&e<=n.right&&r>=n.top&&r<=n.bottom;!s&&i.getProperty("__push-latch")===!0&&i.setProperty("__push-latch",!1),!s&&i.getProperty("__rotate-latch")===!0&&i.setProperty("__rotate-latch",!1)}for(let i=0;i<this.objects.length;i++){let n=this.objects[i],s=n.getProperty("offset-x")||0,o=n.getProperty("offset-y")||0,a=n.getProperty("velocity-x")||0,l=n.getProperty("velocity-y")||0,c=n.getProperty("position-tension")??.05,u=n.getProperty("position-friction")??.15,p=n.getProperty("position-max-velocity")??120,g=n.getProperty("max-offset")??220;a-=c*s,l-=c*o;let m=1-u;a*=m,l*=m,a>p?a=p:a<-p&&(a=-p),l>p?l=p:l<-p&&(l=-p),s+=a,o+=l,s>g?s=g:s<-g&&(s=-g),o>g?o=g:o<-g&&(o=-g);let h=n.getProperty("angle-deg")||0,f=n.getProperty("ang-vel-deg")||0,b=n.getProperty("rotation-tension")??.06,y=n.getProperty("rotation-friction")??.18,v=n.getProperty("rotation-max-angular-velocity")??6,S=n.getProperty("rotation-max-angle")??18;f-=b*h,f*=1-y,f>v?f=v:f<-v&&(f=-v),h+=f,h>S?(h=S,f*=.35):h<-S&&(h=-S,f*=.35);let E=n.getProperty("sleep-epsilon")??.01,M=a*a+l*l<E*E&&s*s+o*o<E*E,C=Math.abs(f)<E&&Math.abs(h)<E;M?(a||l||s||o)&&(n.setProperty("offset-x",0),n.setProperty("offset-y",0),n.setProperty("velocity-x",0),n.setProperty("velocity-y",0),s=o=a=l=0):(n.setProperty("offset-x",s),n.setProperty("offset-y",o),n.setProperty("velocity-x",a),n.setProperty("velocity-y",l)),C?(h||f)&&(n.setProperty("angle-deg",0),n.setProperty("ang-vel-deg",0),h=f=0):(n.setProperty("angle-deg",h),n.setProperty("ang-vel-deg",f));let A=n.getProperty("position-update-threshold")??.1,I=n.getProperty("rotation-update-threshold")??.15,H=n.getProperty("__prev-css-x")||0,w=n.getProperty("__prev-css-y")||0,_=n.getProperty("__prev-css-rot")||0,k=Math.round(s*10)/10,O=Math.round(o*10)/10,T=Math.round(h*10)/10,P=Math.abs(k-H)>A||Math.abs(O-w)>A,R=Math.abs(T-_)>I;(P||R)&&(n.setProperty("__next-css-x",k),n.setProperty("__next-css-y",O),n.setProperty("__next-css-rot",T)),n.setProperty("__needs-position-update",P),n.setProperty("__needs-rotation-update",R)}}onMutate(){for(let t=0;t<this.objects.length;t++){let e=this.objects[t],r=e.getProperty("__needs-position-update")===!0,i=e.getProperty("__needs-rotation-update")===!0;if(!r&&!i)continue;let n=e.getProperty("__next-css-x")||0,s=e.getProperty("__next-css-y")||0,o=e.getProperty("__next-css-rot")||0;this.applyToElementAndConnects(e,a=>{r&&(L.setVar(a,"--push-x",n),L.setVar(a,"--push-y",s)),i&&L.setVar(a,"--push-rotation",o)}),r&&(e.setProperty("__prev-css-x",n),e.setProperty("__prev-css-y",s),this.events.emit(this.getObjectEventName(e,"object:impulse","move"),{x:n,y:s})),i&&(e.setProperty("__prev-css-rot",o),this.events.emit(this.getObjectEventName(e,"object:impulse","rotate"),{rotation:o})),e.setProperty("__needs-position-update",!1),e.setProperty("__needs-rotation-update",!1)}}};var gt=new WeakMap,Rr=60,Fi=(d,t)=>t>0?d>=t?d%t:d<0?(d%t+t)%t:d:0,Xn=d=>Number.isFinite(d)?Math.max(0,Math.abs(d)):Rr,Hr=class extends x{onFontsReadyBound;constructor(t){super(t),this.htmlKey="marquee",this.cssProperties=[{name:"--marquee-progress",syntax:"<number>",initialValue:"0",inherits:!1}],this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1,this.permissions.mobile.rebuild.scrollHeight=!1,this.attributesToMap=[...this.attributesToMap,{key:"marquee-direction",type:{type:"enum",values:["left","right"]},fallback:this.settings["marquee-direction"]??"left"},{key:"marquee-speed",type:"number",fallback:this.settings["marquee-speed"]??Rr},{key:"marquee-gap",type:"dimension",fallback:this.settings["marquee-gap"]??0},{key:"marquee-fill",type:"boolean",fallback:this.settings["marquee-fill"]??!1},{key:"marquee-pause-on-hover",type:"boolean",fallback:this.settings["marquee-pause-on-hover"]??!1},{key:"marquee-progress",type:"boolean",fallback:this.settings["marquee-progress"]??!1},{key:"marquee-part-class",type:"string",fallback:this.settings["marquee-part-class"]??""}],this.onFontsReadyBound=this.onFontsReady.bind(this)}onInit(){"fonts"in document&&document.fonts&&(document.fonts.ready.then(this.onFontsReadyBound),document.fonts.addEventListener?.("loadingdone",this.onFontsReadyBound))}onUnsubscribe(){"fonts"in document&&document.fonts&&document.fonts.removeEventListener?.("loadingdone",this.onFontsReadyBound)}onObjectConnected(t){super.onObjectConnected(t);let e=gt.get(t);e||(e=this.createState(t.htmlElement),gt.set(t,e),this.mountStructure(e)),this.syncConfig(t,e),this.refresh(e)}onObjectDisconnected(t){let e=gt.get(t);e&&(e.host.removeEventListener("mouseenter",this.onMouseEnter),e.host.removeEventListener("mouseleave",this.onMouseLeave))}onResizeWidth(){for(let t=0;t<this.objectsOnPage.length;t++){let e=gt.get(this.objectsOnPage[t]);e&&(this.syncConfig(this.objectsOnPage[t],e),this.refresh(e))}}onFrame(t){let e=Math.max(.004166666666666667,Math.min(.1,(t.time.delta||16.6667)/1e3));L.run(()=>{for(let r=0;r<this.objectsOnPage.length;r++){let i=gt.get(this.objectsOnPage[r]);if(!i||!(i.cycleWidth>0))continue;!(i.pauseOnHover&&i.hovering)&&i.speed>0&&(i.position=Fi(i.position+i.speed*e,i.cycleWidth));let n=i.direction==="right"?i.position-i.cycleWidth:-i.position;n!==i.lastAppliedTranslate&&(i.lastAppliedTranslate=n,L.setProp(i.track,"transform",`translate3d(${n}px, 0, 0)`),this.updatePartProgress(i,n))}})}createState(t){let e=document.createElement("div"),r=document.createElement("span");return e.setAttribute("data-string-marquee-track",""),r.setAttribute("data-string-marquee-part",""),t.addEventListener("mouseenter",this.onMouseEnter),t.addEventListener("mouseleave",this.onMouseLeave),{host:t,track:e,part:r,parts:[r],clones:[],direction:"left",speed:Rr,gap:0,fill:!1,pauseOnHover:!1,progressEnabled:!1,hovering:!1,position:0,hostWidth:0,partWidth:0,cycleWidth:0,lastAppliedTranslate:Number.NaN,partProgressApplied:[Number.NaN],partClass:""}}mountStructure(t){let{host:e,track:r,part:i}=t;for(;e.firstChild;)i.appendChild(e.firstChild);r.appendChild(i),e.appendChild(r),L.run(()=>{L.setProps(e,{overflow:"hidden"}),L.setProps(r,{display:"flex",flexWrap:"nowrap",width:"max-content",willChange:"transform"}),L.setProps(i,{flex:"0 0 auto"})})}syncConfig(t,e){e.direction=t.getProperty("marquee-direction")??"left",e.speed=Xn(t.getProperty("marquee-speed")),e.gap=Math.max(0,t.getProperty("marquee-gap")??0),e.fill=t.getProperty("marquee-fill")===!0,e.pauseOnHover=t.getProperty("marquee-pause-on-hover")===!0,e.progressEnabled=t.getProperty("marquee-progress")===!0,e.partClass=t.getProperty("marquee-part-class")??""}refresh(t){this.syncPartClass(t),this.syncCopies(t),t.hostWidth=t.host.getBoundingClientRect().width,t.partWidth=t.part.getBoundingClientRect().width,t.cycleWidth=t.partWidth>0?t.partWidth+t.gap:0,t.position=Fi(t.position,t.cycleWidth),t.lastAppliedTranslate=Number.NaN;for(let e=0;e<t.partProgressApplied.length;e++)t.partProgressApplied[e]=Number.NaN;L.run(()=>{if(L.setProp(t.track,"columnGap",`${t.gap}px`),L.setProp(t.track,"transform","translate3d(0, 0, 0)"),!t.progressEnabled)for(let e=0;e<t.parts.length;e++)L.setVar(t.parts[e],"--marquee-progress",0)})}syncCopies(t){for(let o=0;o<t.clones.length;o++)t.clones[o].remove();t.clones.length=0;let e=t.host.getBoundingClientRect().width,r=t.part.getBoundingClientRect().width;if(!(e>0)||!(r>0))return;let i=r+t.gap,n=t.fill?Math.max(2,Math.ceil(e*2/i)+1):2,s=document.createDocumentFragment();for(let o=1;o<n;o++){let a=t.part.cloneNode(!0);a.removeAttribute("data-string-marquee-part"),a.setAttribute("aria-hidden","true"),s.appendChild(a),t.clones.push(a)}t.track.appendChild(s),t.parts=[t.part,...t.clones],t.partProgressApplied=new Array(t.parts.length).fill(Number.NaN)}syncPartClass(t){t.part.className=t.partClass}updatePartProgress(t,e){if(!t.progressEnabled||!(t.hostWidth>0)||!(t.partWidth>0))return;let r=t.hostWidth+t.partWidth;if(r>0)for(let i=0;i<t.parts.length;i++){let s=(e+i*t.cycleWidth+t.partWidth)/r,o=s<=0?0:s>=1?1:s,a=t.direction==="right"?o:1-o;t.partProgressApplied[i]!==a&&(t.partProgressApplied[i]=a,L.setVar(t.parts[i],"--marquee-progress",a))}}onFontsReady(){for(let t=0;t<this.objectsOnPage.length;t++){let e=gt.get(this.objectsOnPage[t]);e&&this.refresh(e)}}onMouseEnter=t=>{let e=t.currentTarget;if(e)for(let r=0;r<this.objectsOnPage.length;r++){let i=gt.get(this.objectsOnPage[r]);if(i?.host===e){i.hovering=!0;return}}};onMouseLeave=t=>{let e=t.currentTarget;if(e)for(let r=0;r<this.objectsOnPage.length;r++){let i=gt.get(this.objectsOnPage[r]);if(i?.host===e){i.hovering=!1;return}}}};var Br=class{measureQueue=[];mutateQueue=[];scheduled=!1;measure(t){this.measureQueue.push(t),this.schedule()}mutate(t){this.mutateQueue.push(t),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0)}flush(){if(!this.scheduled)return;let t=this.measureQueue;this.measureQueue=[];for(let r=0;r<t.length;r++)try{t[r]()}catch(i){console.error("Error in frameDOM measure task:",i)}let e=this.mutateQueue;this.mutateQueue=[];for(let r=0;r<e.length;r++)try{e[r]()}catch(i){console.error("Error in frameDOM mutate task:",i)}this.scheduled=!1}},q=new Br;var Kn=20,rt={MANUAL_COLS_KEY:"masonry-manual-cols",MANUAL_GAP_KEY:"masonry-manual-gap",DEFAULT_DURATION:600,DEFAULT_EASING:"cubic-bezier(0.25, 1, 0.5, 1)"};function Vi(d){if(!d)return rt.DEFAULT_DURATION;let t=parseFloat(d);return isNaN(t)?rt.DEFAULT_DURATION:t}function _e(d,t){let e=[...d].sort((i,n)=>n.breakpoint-i.breakpoint),r=e.find(i=>t>=i.breakpoint);return r?r.value:e[e.length-1]?.value}var _r=class extends x{states=new WeakMap;constructor(t){super(t),this.htmlKey="masonry",this.attributesToMap.push({key:"masonry-cols",type:"breakpoint-dimension",fallback:"2|640:3|1024:4"},{key:"masonry-gap",type:"breakpoint-dimension",fallback:"16|640:24|1024:32"},{key:"masonry-mode",type:"string",fallback:"auto"})}parseEasing(t){return this.tools.easingFunction.process({easing:t||rt.DEFAULT_EASING})}onObjectConnected(t){super.onObjectConnected(t);let e=t.htmlElement;L.begin(),L.setProps(e,{position:"relative",boxSizing:"border-box"}),L.commit();let r=this.createState(t,e);this.states.set(t,r),this.attachImgLoaders(t,r,e),this.scheduleLayout(t,!1,"init");let i=t.id;this.events.on(`masonry:update:${i}`,n=>{n.mode&&t.setProperty("masonry-mode",n.mode),n.cols!==void 0&&t.setProperty(rt.MANUAL_COLS_KEY,Number(n.cols)),n.gap!==void 0&&t.setProperty(rt.MANUAL_GAP_KEY,Number(n.gap)),this.scheduleLayout(t,!0,"external-event")})}onFrame(t){let e=t.time.now;this.objectsOnPage.forEach(r=>{let i=this.states.get(r);if(!i||!i.isAnimating)return;let n=0;L.run(()=>{if(i.isAnimatingHeight){let s=e-i.heightStartTime,o=Math.min(1,s/i.heightDuration),a=i.heightEase(o),l=i.startHeight+(i.targetHeight-i.startHeight)*a;L.setProps(r.htmlElement,{height:`${l}px`}),o<1?n++:i.isAnimatingHeight=!1}i.items.forEach((s,o)=>{if(!s.isMoving)return;let a=e-s.startTime,l=a*s.invPosDur,c=l>1?1:l,u=s.posEase(c);s.cx=s.sx+s.dx*u,s.cy=s.sy+s.dy*u;let p=a*s.invSizeDur,g=p>1?1:p,m=s.sizeEase(g);s.cw=s.sw+s.dw*m,L.setProps(o,{transform:`translate3d(${s.cx}px, ${s.cy}px, 0)`,...Math.abs(s.dw)>.05?{width:`${s.cw}px`}:{},willChange:"transform, width"}),c<1||g<1?n++:(s.isMoving=!1,L.setProps(o,{transform:`translate3d(${s.tx}px, ${s.ty}px, 0)`,width:`${s.tw}px`,willChange:"auto"}),s.cx=s.tx,s.cy=s.ty,s.cw=s.tw)})}),n===0&&this.handleAnimationEnd(r,i,e)})}onResize(){this.data.system.suppressMasonryResize||this.objectsOnPage.forEach(t=>{this.states.has(t)&&this.scheduleLayout(t,!0,"window-resize")})}cleanupObject(t){let e=this.states.get(t);e&&(e.ro.disconnect(),e.mo.disconnect(),e.resizeDebounceId&&clearTimeout(e.resizeDebounceId),this.states.delete(t))}createState(t,e){let r=e.getBoundingClientRect(),i=o=>{if(!o.length)return;let a=o[0].contentRect,l=this.states.get(t);if(!l||Math.abs(a.width-l.lastObservedWidth)<=.5&&Math.abs(a.height-l.lastObservedHeight)<=.5)return;l.lastObservedWidth=a.width,l.lastObservedHeight=a.height;let c=getComputedStyle(e),u=parseFloat(c.paddingLeft)||0,p=parseFloat(c.paddingRight)||0,g=a.width-u-p;if(g<=0)return;let{columns:m,gap:h}=this.getGridSettings(t),f=(g-h*(m-1))/m;m===l.lastLayoutColumns&&h===l.lastLayoutGap&&Math.abs(f-l.lastLayoutColumnWidth)<=.5||(l.resizeDebounceId&&window.clearTimeout(l.resizeDebounceId),l.resizeDebounceId=window.setTimeout(()=>{l.isResizing=!0,this.scheduleLayout(t,!0,"resize-observer"),l.isResizing=!1},Kn))},n=o=>{let a=this.states.get(t);if(!a)return;let l=!1;for(let c of o)c.removedNodes.length&&c.removedNodes.forEach(u=>{if(u.nodeType===1){let p=u;this.cleanupImgListeners(a,p),a.items.delete(p),l=!0}}),c.addedNodes.length&&c.addedNodes.forEach(u=>{u.nodeType===1&&(this.attachImgLoaders(t,a,u),l=!0)});l&&this.scheduleLayout(t,!0,"mutation-observer")},s={ro:new ResizeObserver(i),mo:new MutationObserver(n),isResizing:!1,lastObservedWidth:r.width,lastObservedHeight:r.height,lastLayoutColumns:0,lastLayoutGap:0,lastLayoutColumnWidth:-1,lastChildrenHash:0,lastHeightsHash:0,childIds:new WeakMap,nextChildId:1,imgUnsubs:new WeakMap,layoutScheduled:!1,items:new Map,startHeight:e.offsetHeight,targetHeight:e.offsetHeight,heightStartTime:0,heightDuration:rt.DEFAULT_DURATION,heightEase:this.parseEasing(null),isAnimatingHeight:!1,isAnimating:!1,pendingHeight:void 0,pendingHeightAnimate:!1,expectedEndTime:0};return s.ro.observe(e),s.mo.observe(e,{childList:!0}),s}handleAnimationEnd(t,e,r){if(e.pendingHeight!==void 0){let i=e.pendingHeight,n=e.pendingHeightAnimate;if(e.pendingHeight=void 0,e.pendingHeightAnimate=!1,n){e.startHeight=t.htmlElement.offsetHeight,e.targetHeight=i,e.heightStartTime=r,e.heightDuration=rt.DEFAULT_DURATION,e.heightEase=this.parseEasing(null),e.isAnimatingHeight=!0,e.isAnimating=!0;return}L.run(()=>{L.setProps(t.htmlElement,{height:`${i}px`})})}e.isAnimating&&this.events.emit("masonry:shuffle:end",{object:t}),e.isAnimating=!1,this.objectManager.refreshLayoutForRoot(t.htmlElement),e.endTimerId&&(window.clearTimeout(e.endTimerId),e.endTimerId=void 0),requestAnimationFrame(()=>{this.events.emit("resize",!0)})}scheduleLayout(t,e,r){let i=this.states.get(t);!i||i.layoutScheduled||(i.layoutScheduled=!0,q.measure(()=>{i.layoutScheduled=!1,this.performSyncLayout(t,i,e,r)}))}performSyncLayout(t,e,r,i){let n=t.htmlElement,s=Array.from(n.children);if(s.length===0)return;let o=n.getBoundingClientRect(),a=getComputedStyle(n),l=parseFloat(a.paddingLeft)||0,c=parseFloat(a.paddingRight)||0,u=parseFloat(a.paddingTop)||0,p=o.width-l-c;if(p<=0)return;let{columns:g,gap:m}=this.getGridSettings(t),h=(p-m*(g-1))/g,b=(t.getProperty("masonry-mode")||"auto")==="auto"&&r&&!e.isResizing&&i!=="window-resize"&&i!=="resize-observer",y=g===e.lastLayoutColumns&&m===e.lastLayoutGap&&Math.abs(h-e.lastLayoutColumnWidth)<=.5,v=0;s.forEach(k=>{let O=e.childIds.get(k);O||(O=e.nextChildId++,e.childIds.set(k,O)),v=v*31+O>>>0}),e.lastLayoutColumns=g,e.lastLayoutGap=m,e.lastLayoutColumnWidth=h,e.lastChildrenHash=v;let S=new Map;r&&s.forEach(k=>{let O=e.items.get(k);O&&S.set(k,O.cw)}),L.begin(),s.forEach(k=>{L.setProps(k,{position:"absolute",top:"0",left:"0",width:`${h}px`})}),L.commit();let E=s.map(k=>k.offsetHeight),M=0;E.forEach(k=>M=M*31+Math.round(k*2)>>>0),e.lastHeightsHash=M,r&&S.size>0&&L.run(()=>{S.forEach((k,O)=>{L.setProps(O,{width:`${k}px`})})});let C=new Array(g).fill(0),A=performance.now(),I=!1,H=0;s.forEach((k,O)=>{let T=E[O],P=0,R=C[0];for(let j=1;j<g;j++)C[j]<R&&(R=C[j],P=j);let B=P*(h+m)+l,W=R+u,N=h;C[P]=R+T+m;let z=Vi(k.getAttribute("string-masonry-position-time")),nt=Vi(k.getAttribute("string-masonry-size-time")),yt=z>0?1/z:1e3,st=nt>0?1/nt:1e3,dt=this.parseEasing(k.getAttribute("string-masonry-position-easing")),xt=this.parseEasing(k.getAttribute("string-masonry-size-easing")),D=e.items.get(k);if(D)Math.abs(D.tx-B)+Math.abs(D.ty-W)+Math.abs(D.tw-N)>.5&&(D.sx=D.cx,D.sy=D.cy,D.sw=D.cw,D.tx=B,D.ty=W,D.tw=N,D.dx=D.tx-D.sx,D.dy=D.ty-D.sy,D.dw=D.tw-D.sw,D.posEase=dt,D.invPosDur=yt,D.sizeEase=xt,D.invSizeDur=st,D.startTime=A,D.isMoving=!0,I=!0,H=Math.max(H,z,nt));else{let j=B,ct=r?W+30:W;D={sx:j,sy:ct,sw:N,tx:B,ty:W,tw:N,dx:0,dy:0,dw:0,cx:j,cy:ct,cw:N,startTime:A,posEase:dt,invPosDur:yt,sizeEase:xt,invSizeDur:st,isMoving:r},e.items.set(k,D),r?(D.dx=D.tx-D.sx,D.dy=D.ty-D.sy,D.dw=D.tw-D.sw,I=!0,H=Math.max(H,z,nt)):L.run(()=>{L.setProps(k,{transform:`translate3d(${B}px, ${W}px, 0)`,width:`${N}px`,willChange:"auto"})})}});let w=Math.max(...C);if(Math.abs(e.targetHeight-w)>1)if(r){let k=n.getBoundingClientRect(),O=this.data.viewport.windowHeight;var _=!1;if(k.bottom>=-100&&k.bottom<=O+100){let T=k.top+w-O;if(Math.abs(T)>1&&w<n.offsetHeight){let P=k.top+this.data.scroll.current+w-O;this.events.emit("scrollTo",P),_=!0}}w>=e.targetHeight?(b?(e.startHeight=n.offsetHeight,e.heightStartTime=A,e.heightDuration=rt.DEFAULT_DURATION,e.heightEase=this.parseEasing(null),e.isAnimatingHeight=!0):L.run(()=>{L.setProps(t.htmlElement,{height:`${w}px`}),requestAnimationFrame(()=>{this.events.emit("resize",!0)})}),e.targetHeight=w,e.pendingHeight=void 0):(e.pendingHeight=w,e.pendingHeightAnimate=b,e.targetHeight=w,_||L.run(()=>{L.setProps(t.htmlElement,{height:`${w}px`}),requestAnimationFrame(()=>{this.events.emit("resize",!0)})})),I=!0}else e.targetHeight=w,e.pendingHeight=void 0,L.run(()=>{L.setProps(t.htmlElement,{height:`${w}px`})});I&&(e.isAnimating||this.events.emit("masonry:shuffle:start",{object:t}),e.isAnimating=!0,H>0&&(e.expectedEndTime=A+H+32,e.endTimerId&&window.clearTimeout(e.endTimerId),e.endTimerId=window.setTimeout(()=>{e.isAnimating&&(e.pendingHeight!==void 0||e.isAnimatingHeight||(this.events.emit("masonry:shuffle:end",{object:t}),e.isAnimating=!1,e.endTimerId=void 0))},H+50)))}getGridSettings(t){let e=this.data.viewport.windowWidth;if((t.getProperty("masonry-mode")||"auto")==="manual"){let s=t.getProperty(rt.MANUAL_COLS_KEY),o=t.getProperty(rt.MANUAL_GAP_KEY),a=t.getProperty("masonry-cols")||[],l=t.getProperty("masonry-gap")||[];return{columns:Math.max(1,Math.round(s??_e(a,e)??2)),gap:Math.max(0,o??_e(l,e)??16)}}let i=t.getProperty("masonry-cols")||[{breakpoint:0,value:2}],n=t.getProperty("masonry-gap")||[{breakpoint:0,value:16}];return{columns:Math.max(1,Math.round(_e(i,e)??2)),gap:Math.max(0,_e(n,e)??16)}}attachImgLoaders(t,e,r){(r.tagName==="IMG"?[r]:Array.from(r.querySelectorAll("img"))).forEach(n=>{let s=n;if(s.complete||e.imgUnsubs.has(s))return;let o=()=>{this.scheduleLayout(t,!0,"img-load"),this.cleanupImgListeners(e,s)};s.addEventListener("load",o),s.addEventListener("error",o),e.imgUnsubs.set(s,()=>{s.removeEventListener("load",o),s.removeEventListener("error",o)})})}cleanupImgListeners(t,e){let r=i=>{let n=t.imgUnsubs.get(i);n&&(n(),t.imgUnsubs.delete(i))};e.tagName==="IMG"?r(e):e.querySelectorAll("img").forEach(i=>r(i))}};var Fr=class extends x{constructor(t){super(t),this.htmlKey="magnetic",this._type=2,this.cssProperties=[{name:"--magnetic-x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--magnetic-y",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--magnetic-target-x",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--magnetic-target-y",syntax:"<number>",initialValue:"0",inherits:!0}],this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1,this.permissions.mobile.rebuild.scrollHeight=!1,this.attributesToMap=[...this.attributesToMap,{key:"strength",type:"number",fallback:this.settings.strength},{key:"radius",type:"number",fallback:this.settings.radius}]}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("magnetic-active",!1),e.setProperty("magnetic-target-x",0),e.setProperty("magnetic-target-y",0),e.setProperty("magnetic-x",0),e.setProperty("magnetic-y",0),e.setProperty("magnetic-lerp",.1),e.setProperty("event-magnetic-name",this.getObjectEventName(e,"magnetic:move")),e.setProperty("__next-magnetic-x",0),e.setProperty("__next-magnetic-y",0),e.setProperty("__needs-magnetic-update",!1)}onMouseMove(t){for(let e=0;e<this.objects.length;e++){let r=this.objects[e],n=r.htmlElement.getBoundingClientRect(),s=n.left+n.width/2,o=n.top+n.height/2,a=t.clientX-s,l=t.clientY-o,c=Math.sqrt(a**2+l**2),u=r.getProperty("radius")??0,p=r.getProperty("strength")??0,g=this.tools.magneticPull.process({distance:c,radius:u,strength:p});r.setProperty("magnetic-target-x",a*g),r.setProperty("magnetic-target-y",l*g),g>0&&r.setProperty("magnetic-active",!0)}}onFrame(t){for(let e=0;e<this.objects.length;e++){let r=this.objects[e];if(r.getProperty("magnetic-active")===!0){let i=r.getProperty("magnetic-x")??0,n=r.getProperty("magnetic-y")??0,s=r.getProperty("magnetic-lerp")??.1,o=r.getProperty("magnetic-target-x")??0,a=r.getProperty("magnetic-target-y")??0,l=this.tools.lerp.process({from:i,to:o,progress:s}),c=this.tools.lerp.process({from:n,to:a,progress:s});l>-.01&&l<.01&&(l=0,r.setProperty("magnetic-x",o)),c>-.01&&c<.01&&(c=0,r.setProperty("magnetic-y",a)),i+=l,n+=c,r.setProperty("magnetic-x",i),r.setProperty("magnetic-y",n);let u=r.getProperty("event-magnetic-name");u&&this.events.emit(u,{x:i,y:n}),r.setProperty("__next-magnetic-x",i),r.setProperty("__next-magnetic-y",n),r.setProperty("__needs-magnetic-update",!0),o===i&&a===n&&r.setProperty("magnetic-active",!1)}}}onMutate(){for(let t=0;t<this.objects.length;t++){let e=this.objects[t];if(!(e.getProperty("__needs-magnetic-update")===!0))continue;let i=e.getProperty("__next-magnetic-x")??e.getProperty("magnetic-x")??0,n=e.getProperty("__next-magnetic-y")??e.getProperty("magnetic-y")??0;this.applyToElementAndConnects(e,s=>{L.setVar(s,"--magnetic-x",i),L.setVar(s,"--magnetic-y",n)}),e.setProperty("__needs-magnetic-update",!1)}}};var te=class extends x{nearOnly=!0;useAllObjects=!1;maxDistanceMultiplier=1;updateThreshold=.1;enabled=!0;constructor(t){super(t),Be()&&(this.enabled=!1)}onObjectConnected(t){this.enabled&&(super.onObjectConnected(t),this.centers.attach(t),this.hover.track(t))}removeObject(t){if(!this.enabled)return super.removeObject(t);let e=this.objectMapOnPage.get(t);e&&(this.centers.detach(e),this.hover.untrack(e)),super.removeObject(t)}onScroll(){this.enabled&&(this.centers.invalidateAll(),this.scheduleCursorUpdate())}onMouseMoveMeasure(t){this.enabled&&(super.onMouseMoveMeasure(t),this.refreshPointerState())}onScrollMeasure(t){this.enabled&&(super.onScrollMeasure(t),this.refreshPointerState())}getCursorTargets(t=!1){if(!this.enabled)return[];let e=this.hover.activeObjects();return this.nearOnly&&e.length?e:this.useAllObjects?this.objectsOnPage:this.objects.length>0?this.objects:t?this.objectsOnPage:this.objects}refreshPointerState(t,e=!1){if(!this.enabled)return;let r=this.data.cursor.targetX,i=this.data.cursor.targetY,n=t?[t]:this.getCursorTargets(e),s=!this.nearOnly&&this.maxDistanceMultiplier>0?Math.pow(this.data.viewport.windowWidth*this.maxDistanceMultiplier,2):null;for(let o of n){let{cx:a,cy:l}=this.centers.getCenter(o),c=r-a,u=i-l,p=c*c+u*u;if(this.nearOnly){if(p>this.data.viewport.windowWidth*this.data.viewport.windowWidth&&!this.hover.isActive(o))continue}else if(s!==null&&p>s)continue;o.setProperty("dx",c),o.setProperty("dy",u),o.setProperty("dist",Math.sqrt(p))}}scrollUpdateScheduled=!1;scheduleCursorUpdate(){!this.enabled||this.scrollUpdateScheduled||(this.scrollUpdateScheduled=!0,q.measure(()=>{this.refreshPointerState(),q.mutate(()=>{this.scrollUpdateScheduled=!1,L.run(()=>{this.onCursorScrollUpdate()})})}))}onCursorScrollUpdate(){}};var Vr=Math.PI*2,Zn=180/Math.PI,Ni=d=>d<0?0:d>1?1:d,Qn=(d,t)=>{let e=(t-d)%Vr;return e>Math.PI&&(e-=Vr),e<-Math.PI&&(e+=Vr),d+e},Jn={computeStep(d,t,e,r,i,n,s,o,a,l,c,u,p,g,m,h,f){let b=a;(h===1||e>r)&&(b=Math.atan2(t,d));let y=i>0?Math.min(e,i):e,v=s,S=o;if(g===1)v=b,S=y;else{let A=Qn(s,b),I=Ni(n);v+=(A-v)*I,S+=(y-S)*I}let E=v*Zn-90,M=m===1||Number.isNaN(l)||Math.abs(E-l)>u,C=m===1||Number.isNaN(c)||Math.abs(S-c)>p;f.angle=v,f.dist=S,f.tAngle=b,f.tDist=y,f.degRaw=E,f.cssDeg=Math.round(E*10)/10,f.cssDist=Math.round(S*10)/10,f.angleChanged=M?1:0,f.distChanged=C?1:0}},ts={bypassDeadzone:!0},es={forceImmediate:!0,forceEmit:!0,bypassDeadzone:!0},Wi=new WeakMap,rs=d=>{let t=Wi.get(d);return t||(t={angle:0,dist:0,tAngle:0,tDist:0,prevDeg:NaN,prevDist:NaN},Wi.set(d,t)),t},Wr=class extends te{stepResult={angle:0,dist:0,tAngle:0,tDist:0,degRaw:0,cssDeg:0,cssDist:0,angleChanged:0,distChanged:0};constructor(t){super(t),this.htmlKey="spotlight",this.cssProperties=[{name:"--spotlight-angle",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--spotlight-distance",syntax:"<number>",initialValue:"0",inherits:!0}],this.nearOnly=!1,this.useAllObjects=!1,this.maxDistanceMultiplier=1,this.attributesToMap.push({key:"lerp",type:"number",fallback:this.settings.lerp,transform:e=>Ni(this.tools.adaptiveLerp.process({value:e,inMin:.1,inMax:1,outMin:.05,outMax:.65}))},{key:"angle-threshold",type:"number",fallback:.2},{key:"distance-threshold",type:"number",fallback:.5},{key:"deadzone",type:"number",fallback:4},{key:"dist-max",type:"number",fallback:0})}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("spotlight-angle-rad",0),e.setProperty("spotlight-distance",0),e.setProperty("spotlight-angle-rad-target",0),e.setProperty("spotlight-distance-target",0),q.measure(()=>{this.refreshPointerState(e,!0),q.mutate(()=>{L.run(()=>{this.updateSpotlightState(e,es)})})})}onMutate(t){if(this.enabled){super.onMutate(t);let e=this.getCursorTargets(!1),r=e.length>0?e:this.getCursorTargets(!0);for(let i=0;i<r.length;i++){let n=r[i];this.updateSpotlightState(n)}}}onCursorScrollUpdate(){let t=this.getCursorTargets(!1),e=t.length>0?t:this.getCursorTargets(!0);for(let r=0;r<e.length;r++){let i=e[r];this.updateSpotlightState(i,ts)}}updateSpotlightState(t,e={}){let r=t.getProperty("dx"),i=t.getProperty("dy"),n=t.getProperty("dist");if(!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(n))return;let s=rs(t);Jn.computeStep(r,i,n,t.getProperty("deadzone")??4,t.getProperty("dist-max")??0,t.getProperty("lerp")??.15,s.angle,s.dist,s.tAngle,s.prevDeg,s.prevDist,t.getProperty("angle-threshold")??.2,t.getProperty("distance-threshold")??.5,e.forceImmediate===!0?1:0,e.forceEmit===!0?1:0,e.bypassDeadzone===!0?1:0,this.stepResult),s.angle=this.stepResult.angle,s.dist=this.stepResult.dist,s.tAngle=this.stepResult.tAngle,s.tDist=this.stepResult.tDist,t.setProperty("spotlight-distance-target",s.tDist),t.setProperty("spotlight-angle-rad-target",s.tAngle),t.setProperty("spotlight-angle-rad",s.angle),t.setProperty("spotlight-distance",s.dist),(this.stepResult.angleChanged===1||this.stepResult.distChanged===1)&&(this.writeSpotlightVars(t,this.stepResult.cssDeg,this.stepResult.cssDist),s.prevDeg=this.stepResult.degRaw,s.prevDist=s.dist,this.events.emit(this.getObjectEventName(t,"spotlight:update"),{distance:this.stepResult.cssDist,angleDeg:this.stepResult.cssDeg}))}writeSpotlightVars(t,e,r){let i=()=>{this.applyToElementAndConnects(t,n=>{L.setVar(n,"--spotlight-angle",e),L.setVar(n,"--spotlight-distance",r)})};if(L.isOpen){i();return}L.run(i)}};var zi="-aspect-ready";function is(d){if(!d)return!1;let t=d.toLowerCase();return!!(t.endsWith(".svg")||t.startsWith("data:image/svg"))}function Gi(d){let t=new DataView(d);return d.byteLength<28?{width:0,height:0}:t.getUint32(0)!==2303741511||t.getUint32(4)!==218765834?{width:0,height:0}:t.getUint32(8)!==13||t.getUint32(12)!==1229472850?{width:0,height:0}:{width:t.getUint32(16,!1),height:t.getUint32(20,!1)}}function $i(d){let t=new DataView(d);if(t.getUint16(0)!==65496)return{width:0,height:0};let e=2;for(;e+9<d.byteLength;){let r=t.getUint16(e);if(e+=2,r===65498||r===65497)break;let i=t.getUint16(e);if(i<2||e+i>d.byteLength)break;if(r>=65472&&r<=65475||r>=65477&&r<=65479||r>=65481&&r<=65483||r>=65485&&r<=65487)return{height:t.getUint16(e+3),width:t.getUint16(e+5)};e+=i}return{width:0,height:0}}function Ui(d){let t=new DataView(d);if(d.byteLength<16)return{width:0,height:0};if(t.getUint32(0,!0)!==1179011410||t.getUint32(8,!0)!==1346520407)return{width:0,height:0};let e=12;for(;e+8<=d.byteLength;){let r=t.getUint32(e,!1),i=t.getUint32(e+4,!0),n=e+8;if(r===1448097880){let s=(t.getUint16(n+4,!0)|t.getUint8(n+6)<<16)+1,o=(t.getUint16(n+7,!0)|t.getUint8(n+9)<<16)+1;return{width:s,height:o}}if(r===1448097824&&n+10<=d.byteLength&&t.getUint8(n+3)===157&&t.getUint8(n+4)===1&&t.getUint8(n+5)===42){let s=t.getUint16(n+6,!0)&16383,o=t.getUint16(n+8,!0)&16383;return{width:s,height:o}}if(r===1448097868&&n+5<=d.byteLength&&t.getUint8(n)===47){let s=t.getUint8(n+1),o=t.getUint8(n+2),a=t.getUint8(n+3),l=t.getUint8(n+4),c=1+((o&63)<<8|s),u=1+((l&15)<<10|a<<2|(o&192)>>6);return{width:c,height:u}}e=n+i+(i&1)}return{width:0,height:0}}function ji(d,t){let e=(t||"").toLowerCase();if(e.includes("png"))return Gi(d);if(e.includes("jpeg")||e.includes("jpg"))return $i(d);if(e.includes("webp"))return Ui(d);let r=Gi(d);return r.width||(r=$i(d),r.width)||(r=Ui(d),r.width)?r:{width:0,height:0}}async function ns(d,t,e){let r=await fetch(d,{mode:"cors",credentials:t?.credentials??"omit",referrerPolicy:t?.referrerPolicy,signal:t?.signal,cache:"default"});if(!r.ok||!r.body)throw new Error(`HTTP ${r.status}`);let i=r.headers.get("content-type"),n=r.body.getReader(),s=1048576,o=4096,a=new Uint8Array(s),l=0,c=0,u=[],p=null,g=!1;for(;;){let{done:f,value:b}=await n.read();if(f)break;if(!b)continue;let y=b.buffer.slice(b.byteOffset,b.byteOffset+b.byteLength);if(u.push(y),!p&&l<s){let v=Math.min(b.byteLength,s-l);if(v>0&&(a.set(b.subarray(0,v),l),l+=v),l-c>=o){let S=l===a.byteLength?a:a.slice(0,l),E=ji(S.buffer,i);E.width&&E.height&&(p=E,!g&&e&&(e(p),g=!0)),c=l}}}if(!p){let f=await new Response(new Blob(u)).arrayBuffer(),b=ji(f,i);b.width&&b.height&&(p=b,!g&&e&&(e(p),g=!0))}let m=new Blob(u,{type:i||"application/octet-stream"}),h=URL.createObjectURL(m);return{dims:p,blobUrl:h,contentType:i}}var Nr=class extends x{isStartLoaded=!1;loadingCount=0;imageStates=new WeakMap;constructor(t){super(t),this.htmlKey="lazy"}onInit(){document.querySelectorAll("img[string-lazy], img[data-string-lazy]").forEach(e=>this.ensureState(e)),this.isStartLoaded=!0}onObjectConnected(t){let e=t.htmlElement;if(!(e instanceof HTMLImageElement))return;e.getAttribute("src")||e.setAttribute("src","data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1' height='1' viewBox='0 0 1 1'%3E%3C/svg%3E");let r=this.ensureState(e);!r.aspectReady&&!r.aspectLoading&&this.prepareAspectRatio(e);let i=s=>{this.handleInView(e,r,!!s?.inView)};r.unsubscribe&&r.unsubscribe();let n=this.getObjectEventName(t,"object:inview");this.events.on(n,i),r.unsubscribe=()=>this.events.off(n,i),this.isStartLoaded&&(t.getProperty("is-inview")??!1)&&this.handleInView(e,r,!0)}onObjectDisconnected(t){let e=t.htmlElement;if(!(e instanceof HTMLImageElement))return;let r=this.imageStates.get(e);r&&(r.pendingActivation=!1,r.controller&&r.controller.abort(),r.blobUrl&&URL.revokeObjectURL(r.blobUrl),r.unsubscribe&&(r.unsubscribe(),r.unsubscribe=void 0))}ensureState(t){let e=this.imageStates.get(t);if(!e){let r=this.readSource(t);return e={src:r,aspectReady:!1,contentReady:!1,aspectLoading:!1,contentLoading:!1,pendingActivation:!1,rangeAttempted:!1,fetching:!1},this.imageStates.set(t,e),t.classList.contains("lazyLoad")||t.classList.add("lazyLoad"),t.dataset&&!t.dataset.stringLazySrc&&r&&(t.dataset.stringLazySrc=r),e}return e.src||(e.src=this.readSource(t)),e}readSource(t){let e=this.tools.domAttribute.process({element:t,key:this.htmlKey,fallback:""});return typeof e=="string"?e:e==null?"":String(e)}handleInView(t,e,r){e.pendingActivation=r,r&&(e.aspectReady?this.maybeActivateImage(t,e):e.aspectLoading||this.prepareAspectRatio(t))}async prepareAspectRatio(t){let e=this.ensureState(t);if(!e.src||e.aspectLoading||e.aspectReady)return;if(is(e.src)){e.aspectReady=!0,e.allowSrcFallback=!0,this.maybeActivateImage(t,e);return}e.aspectLoading=!0,e.fetching=!0;let r=t.getAttribute("crossorigin"),i=t.getAttribute("referrerpolicy"),n=new AbortController;e.controller=n;try{let{blobUrl:s}=await ns(e.src,{credentials:r==="use-credentials"?"include":"omit",referrerPolicy:i||void 0,signal:n.signal},o=>{o.width>0&&o.height>0&&!e.aspectReady&&(t.style.aspectRatio=`${o.width} / ${o.height}`,t.classList.add(zi),e.width=o.width,e.height=o.height,e.aspectReady=!0)});e.blobUrl=s,!e.aspectReady&&e.width&&e.height&&(t.style.aspectRatio=`${e.width} / ${e.height}`,t.classList.add(zi),e.aspectReady=!0)}catch{e.allowSrcFallback=!0,e.aspectReady=!0}finally{e.fetching=!1,e.aspectLoading=!1,this.maybeActivateImage(t,e)}}maybeActivateImage(t,e){!e.pendingActivation||e.contentReady||e.contentLoading||!e.aspectReady||!e.src||e.fetching&&!e.blobUrl||(e.blobUrl||e.allowSrcFallback)&&this.activateImage(t,e)}activateImage(t,e){e.contentLoading=!0,this.loadingCount++;let r=s=>{e.contentLoading&&(e.contentLoading=!1,e.pendingActivation=!1,this.loadingCount=Math.max(0,this.loadingCount-1),s&&(e.contentReady=!0,t.classList.add("-loaded")),this.loadingCount===0&&this.events.emit("image:load:all",null))},i=()=>r(!0),n=()=>r(!1);t.addEventListener("load",i,{once:!0}),t.addEventListener("error",n,{once:!0}),t.decoding="async",t.loading=t.loading||"lazy",e.blobUrl?(t.removeAttribute("srcset"),t.removeAttribute("sizes"),t.src=e.blobUrl):t.src=e.src,t.complete&&t.naturalWidth>0&&t.naturalHeight>0&&(t.removeEventListener("load",i),t.removeEventListener("error",n),r(!0))}};var zr=class extends x{loadingTimeout=0;constructor(t){super(t),this._type=2,this.loadingTimeout=this.settings.timeout}onInit(){setTimeout(()=>{document.documentElement.classList.add("-loaded")},this.loadingTimeout)}};var Fe=class extends x{constructor(t){super(t),this.htmlKey=""}canConnect(t){return t.keys[0]==null||t.getProperty("inview-fallback")===!0}};var Pt=class{min=void 0;max=void 0;enable=!0;constructor(t){this.min=t?.min,this.max=t?.max,this.enable=t?.enable??!0}setEnable(t=!0){this.enable=t}setRange(t,e){this.min=t??void 0,this.max=e??void 0}get mediaQuery(){let t="screen";return this.min&&(t+=` and (min-width: ${this.min}px)`),this.max&&(t+=` and (max-width: ${this.max}px)`),t}},Gr=class extends x{queries={0:new Pt({max:359}),1:new Pt({min:360,max:1023}),2:new Pt({min:1024,max:1365}),3:new Pt({min:1366})};isMobileMedia=!1;isTabletMedia=!1;isLaptopMedia=!1;isDesktopMedia=!1;matchMedias={0:window.matchMedia(this.queries[0].mediaQuery),1:window.matchMedia(this.queries[1].mediaQuery),2:window.matchMedia(this.queries[2].mediaQuery),3:window.matchMedia(this.queries[3].mediaQuery)};constructor(t){super(t),this._type=2}onConnect(){}onInit(){if(this.settings!=null&&this.settings.settings!=null){let t=this.settings.settings;t.mobile?(this.queries[0].enable=!0,this.queries[0].setRange(t.mobile.min==null?null:t.mobile.min,t.mobile.max??null),this.matchMedias[0]=window.matchMedia(this.queries[0].mediaQuery)):this.queries[0].enable=!1,t.tablet?(this.queries[1].enable=!0,this.queries[1].setRange(t.tablet.min==null?null:t.tablet.min,t.tablet.max??null),this.matchMedias[1]=window.matchMedia(this.queries[1].mediaQuery)):this.queries[1].enable=!1,t.laptop?(this.queries[2].enable=!0,this.queries[2].setRange(t.laptop.min==null?null:t.laptop.min,t.laptop.max??null),this.matchMedias[2]=window.matchMedia(this.queries[2].mediaQuery)):this.queries[2].enable=!1,t.desktop?(this.queries[3].enable=!0,this.queries[3].setRange(t.desktop.min==null?null:t.desktop.min,t.desktop.max??null),this.matchMedias[3]=window.matchMedia(this.queries[3].mediaQuery)):this.queries[3].enable=!1}this.updateElements()}onResize(){this.updateElements()}updateElements(){let t=this.matchMedias[0].matches&&this.queries[0].enable,e=this.matchMedias[1].matches&&this.queries[1].enable,r=this.matchMedias[2].matches&&this.queries[2].enable,i=this.matchMedias[3].matches&&this.queries[3].enable;this.isMobileMedia!=t&&this.events.emit("screen:mobile",t),this.isTabletMedia!=e&&this.events.emit("screen:tablet",e),this.isLaptopMedia!=r&&this.events.emit("screen:laptop",r),this.isDesktopMedia!=i&&this.events.emit("screen:desktop",i),this.isMobileMedia=t,this.isTabletMedia=e,this.isLaptopMedia=r,this.isDesktopMedia=i,document.querySelectorAll("[string-mobile], [string-tablet], [string-laptop], [string-desktop]").forEach(s=>{let o=!1;s.hasAttribute("string-mobile")&&t&&(o=!0),s.hasAttribute("string-tablet")&&e&&(o=!0),s.hasAttribute("string-laptop")&&r&&(o=!0),s.hasAttribute("string-desktop")&&i&&(o=!0),o?s.style.display=null:s.style.display="none"})}};var $r=class extends x{constructor(t){super(t),this.htmlKey="anchor",this.attributesToMap=[...this.attributesToMap,{key:"anchor",type:"tuple",fallback:this.settings.anchor,transform:e=>{let[r,i]=e,n=this.tools.originParser.process({value:r}),s=this.tools.originParser.process({value:i});return{x:n,y:s}}}]}onObjectConnected(t){super.onObjectConnected(t);let e=t.getProperty("anchor");e&&this.applyToElementAndConnects(t,r=>{r.style.transformOrigin=`${e.x} ${e.y}`})}};var ss=.05,os=.01,Yi=1,as=-1,ls=1,Ur=class extends x{defaultModeScope=["smooth"];previousLerp=0;displacement=0;acceleration=0;velocityMultiplier=.00125;isInitialScroll=!0;baseVelocityMultiplier=.00125;reducedVelocityMultiplier=this.baseVelocityMultiplier/20;negativeVelocityMultiplier=-1e-4;maxDisplacementValue=0;constructor(t){super(t),this.htmlKey="glide",this.cssProperties=[{name:"--glide",syntax:"<number>",initialValue:"0",inherits:!0}],this.baseVelocityMultiplier=this.settings["glide-base-velocity"]??this.baseVelocityMultiplier,this.reducedVelocityMultiplier=this.settings["glide-reduce-velocity"]??this.reducedVelocityMultiplier,this.negativeVelocityMultiplier=this.settings["glide-negative-velocity"]??this.negativeVelocityMultiplier,this.attributesToMap=[...this.attributesToMap,{key:"glide",type:"number",fallback:this.settings.glide}]}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i),e.setProperty("glide-value",e.getProperty("glide")??0),e.setProperty("event-glide-name",this.getObjectEventName(e,"object:glide")),e.setProperty("__next-glide",0),e.setProperty("__next-glide-transform","translate3d(0, 0px, 0)"),e.setProperty("__needs-glide-var-update",!1),e.setProperty("__needs-glide-transform-update",!1)}setupItem=t=>{let e=t.getProperty("glide-value")??0,r=-this.data.scroll.displacement*this.maxDisplacementValue*e,i=t.getProperty("event-glide-name");i&&this.events.emit(i,r);let n=`translate3d(0, ${r}px, 0)`;t.setProperty("__next-glide-transform",n),t.setProperty("__needs-glide-transform-update",!0)};updateTransforms(){for(let t=0;t<this.objects.length;t++)this.setupItem(this.objects[t])}resetObjectStyles(t){for(let e=0;e<t.length;e++){let r=t[e];r.setProperty("__next-glide-transform","translate3d(0, 0px, 0)"),r.setProperty("__needs-glide-transform-update",!0),r.setProperty("__next-glide",0),r.setProperty("__needs-glide-var-update",!0)}}calcExpanderFactor(t){let e=t?this.data.scroll.lerped<this.previousLerp:this.data.scroll.lerped>this.previousLerp;this.velocityMultiplier=e?this.isInitialScroll?this.baseVelocityMultiplier:this.reducedVelocityMultiplier:this.negativeVelocityMultiplier,e||(this.isInitialScroll=!1)}onStart(){this.maxDisplacementValue=this.data.viewport.windowHeight*.1}onResize(){this.maxDisplacementValue=this.data.viewport.windowHeight*.1}resetState(){this.displacement=0,this.acceleration=0,this.isInitialScroll=!0,this.velocityMultiplier=this.baseVelocityMultiplier}onScrollStart(){this.resetState()}onScrollStop(){this.resetState(),this.previousLerp=0,this.data.scroll.displacement=0,this.resetObjectStyles(this.objects),this.flushPendingGlideStyles()}onFrame(t){this.calcExpanderFactor(this.data.scroll.isScrollingDown===!1),this.acceleration=Math.min(Yi,this.acceleration+ss),this.displacement=Math.max(os,Math.min(Yi,this.displacement+this.velocityMultiplier)),this.data.scroll.displacement=Math.min(ls,Math.max(as,this.data.scroll.lerped*this.displacement*this.acceleration));let e=this.data.scroll.displacement;for(let r=0;r<this.objects.length;r++){let i=this.objects[r];i.setProperty("__next-glide",e),i.setProperty("__needs-glide-var-update",!0)}this.previousLerp=this.data.scroll.lerped,this.updateTransforms()}onObjectModeDeactivated(t){super.onObjectModeDeactivated(t),this.resetObjectStyles([t]),L.run(()=>{this.applyPendingGlideStylesForObject(t)})}onMutate(){this.applyPendingGlideStyles()}applyPendingGlideStylesForObject(t){let e=t.getProperty("__next-glide")??0,r=t.getProperty("__next-glide-transform")??"translate3d(0, 0px, 0)";this.applyVarToElement(t,"--glide",e),this.applyVarToConnects(t,"--glide",e),this.applyPropToElement(t,"transform",r),t.setProperty("__needs-glide-var-update",!1),t.setProperty("__needs-glide-transform-update",!1)}applyPendingGlideStyles(){for(let t=0;t<this.objects.length;t++){let e=this.objects[t],r=e.getProperty("__needs-glide-var-update")===!0,i=e.getProperty("__needs-glide-transform-update")===!0;if(!(!r&&!i)){if(r){let n=e.getProperty("__next-glide")??this.data.scroll.displacement;this.applyVarToElement(e,"--glide",n),this.applyVarToConnects(e,"--glide",n),e.setProperty("__needs-glide-var-update",!1)}if(i){let n=e.getProperty("__next-glide-transform")??"translate3d(0, 0px, 0)";this.applyPropToElement(e,"transform",n),e.setProperty("__needs-glide-transform-update",!1)}}}}flushPendingGlideStyles(){if(L.isOpen){this.applyPendingGlideStyles();return}L.run(()=>{this.applyPendingGlideStyles()})}};var jr=class extends x{hasInitializedCSS=!1;defaultModeScope=["smooth"];constructor(t){super(t),this.htmlKey="lerp",this.cssProperties=[{name:"--lerp",syntax:"<number>",initialValue:"0",inherits:!0}],this.attributesToMap=[]}onObjectConnected(t){super.onObjectConnected(t),t.setProperty("lerp-value",0),t.setProperty("lerp-applied",0),t.setProperty("event-lerp-name",this.getObjectEventName(t,"object:lerp"))}onResize(){super.onResize(),!this.hasInitializedCSS&&this.objectsOnPage.length>0&&(this.hasInitializedCSS=!0,L.run(()=>{for(let t=0;t<this.objectsOnPage.length;t++)this.updateObjectLerp(this.objectsOnPage[t],!0)}))}onScrollStop(){for(let t=0;t<this.objects.length;t++)this.recomputeLerp(this.objects[t],0)}onFrame(t){let e=t.scroll.lerped;for(let r=0;r<this.objects.length;r++)this.recomputeLerp(this.objects[r],e)}recomputeLerp(t,e){(t.getProperty("lerp-value")??0)!==e&&(t.setProperty("lerp-value",e),this.updateObjectLerp(t))}onMutate(){L.run(()=>{let t=this.objects.length;for(let e=0;e<t;e++)this.updateObjectLerp(this.objects[e])})}updateObjectLerp(t,e=!1){let r=t.getProperty("lerp-value")??0,i=t.getProperty("lerp-applied");if(!e&&i===r)return;t.setProperty("lerp-applied",r);let n=r?.toString()??"0",s=t.getProperty("event-lerp-name");s&&this.events.emit(s,r),L.run(()=>{this.applyVarToElement(t,"--lerp",n),this.applyVarToConnects(t,"--lerp",n)})}onObjectDisconnected(t){super.onObjectDisconnected(t);let e=i=>{i.style.removeProperty("--lerp")};e(t.htmlElement);let r=t.mirrorObjects;for(let i=0;i<r.length;i++)e(r[i].htmlElement)}};var Lt="__string-dev-progress-override",qi={computeRawProgress(d,t,e){if(e===0)return 0;let r=(d-t)/e;return r<=0?0:r>=1?1:r},computeRawProgressBatch(d,t,e,r,i){for(let n=0;n<i;n++){let s=e[n];if(s===0){r[n]=0;continue}let o=(d-t[n])/s;o<=0?r[n]=0:o>=1?r[n]=1:r[n]=o}}},ee=class extends x{updateScheduled=!1;batchStarts=new Float64Array(0);batchDiffs=new Float64Array(0);batchOut=new Float64Array(0);constructor(t){super(t),this.htmlKey="progress",this.cssProperties=[{name:"--progress",syntax:"<number>",initialValue:"0",inherits:!0},{name:"--progress-slice",syntax:"<number>",initialValue:"0",inherits:!0}],this.attributesToMap=[...this.attributesToMap,{key:"easing",type:"easing",fallback:this.settings.easing},{key:"precision",type:"number",fallback:this.settings.precision??-1}]}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i)}sanitizeRawProgress(t){if(!Number.isFinite(t)||t<=0)return 0;if(t>=1)return 1;let e=1e-4;return t>1-e?t=1:t<e&&(t=0),t}resolveRawProgress(t,e,r,i){let n=t.getProperty(Lt);return n!=null?this.sanitizeRawProgress(n):qi.computeRawProgress(e,r,i)}applyRawProgress(t,e){let r=this.sanitizeRawProgress(e),i=t.getProperty("easing"),n=typeof i=="function"?i(r):r,s=t.getProperty("precision")??-1,o=s>=0?Math.round(n*10**s)/10**s:n;t.getProperty("progress-value")!==o&&(t.setProperty("progress-raw",r),t.setProperty("progress-value",o))}recomputeProgress(t){let e=t.getProperty("start-position")??t.getProperty("progress-start-position")??0,r=t.getProperty("difference-position")??t.getProperty("progress-difference-position")??0;t.setProperty("progress-start-position",e),t.setProperty("progress-difference-position",r);let i=this.resolveRawProgress(t,this.data.scroll.transformedCurrent,e,r);this.applyRawProgress(t,i)}ensureBatchCapacity(t){this.batchStarts.length>=t||(this.batchStarts=new Float64Array(t),this.batchDiffs=new Float64Array(t),this.batchOut=new Float64Array(t))}calculatePositions(t,e){super.calculatePositions(t,e),t.setProperty("progress-start-position",t.getProperty("start-position")??t.getProperty("progress-start-position")??0),t.setProperty("progress-difference-position",t.getProperty("difference-position")??t.getProperty("progress-difference-position")??0),this.recomputeProgress(t)}onScroll(t){super.onScroll(t)}onObjectConnected(t){super.onObjectConnected(t)}onScrollMeasure(t){let e=this.objects.length;if(e!==0){this.ensureBatchCapacity(e);for(let r=0;r<e;r++){let i=this.objects[r],n=i.getProperty("start-position")??i.getProperty("progress-start-position")??0,s=i.getProperty("difference-position")??i.getProperty("progress-difference-position")??0;i.setProperty("progress-start-position",n),i.setProperty("progress-difference-position",s),this.batchStarts[r]=n,this.batchDiffs[r]=s}qi.computeRawProgressBatch(this.data.scroll.transformedCurrent,this.batchStarts,this.batchDiffs,this.batchOut,e);for(let r=0;r<e;r++){let i=this.objects[r],n=i.getProperty(Lt),s=n!=null?this.sanitizeRawProgress(n):this.batchOut[r];this.applyRawProgress(i,s)}}}onMutate(){L.run(()=>{let t=this.objects.length;for(let e=0;e<t;e++)this.updateObjectProgress(this.objects[e])})}updateObjectProgress(t){let e=t.getProperty("progress-value")??0;if(t.getProperty("progress-applied")===e)return;let i=t.getProperty("key"),n=t.getProperty("precision")??-1;t.setProperty("progress-applied",e);let s=t.getProperty("progress-raw")??e,o=t.getProperty("easing"),a=t.getProperty("event-progress-name")??t.getScopedEventName("object:progress");t.setProperty("event-progress-name",a),a&&this.events.emit(a,e),this.emitSignal(t,"progress",e),i&&this.applyVarToElement(t,i,e);for(let l=0;l<t.mirrorObjects.length;l++){let c=t.mirrorObjects[l],u=c.applyProgress(s,typeof o=="function"?o:void 0),p=n>=0?Math.round(u*10**n)/10**n:u;c.setProperty("progress",p),i&&this.tools.styleTxn.setVar(c.htmlElement,i,p)}}onObjectDisconnected(t){super.onObjectDisconnected(t);let e=t.getProperty("key");if(!e)return;let r=n=>{n.style.removeProperty(e)};r(t.htmlElement);let i=t.mirrorObjects;for(let n=0;n<i.length;n++)r(i[n].htmlElement)}};var Yr=class extends ee{defaultModeScope=["smooth"];updateScheduledTransform=!1;calculateParallaxForObject;constructor(t){super(t),this.htmlKey="parallax",this.attributesToMap=[...this.attributesToMap,{key:"parallax",type:"number",fallback:this.settings.parallax},{key:"parallax-bias",type:"number",fallback:this.settings["parallax-bias"]}],this.calculateParallaxForObject=this.calculateParallax}initializeObject(t,e,r,i){super.initializeObject(t,e,r,i);let n=e.getProperty("parallax-bias")??0,s=Math.abs(e.getProperty("parallax")??.2);e.setProperty("parallax-sign",Math.sign(e.getProperty("parallax"))),e.setProperty("parallax",s),e.setProperty("parallax-position-start",-.5+.5*n),e.setProperty("parallax-position-end",.5+.5*(1-n));let o=this.data.viewport.windowHeight;e.setProperty("offset-top",s*o),e.setProperty("offset-bottom",s*o)}calculatePositions(t,e){super.calculatePositions(t,e),t.setProperty("parallax-transform-value",this.calculateParallaxForObject(t))}onScroll(t){super.onScroll(t)}onScrollMeasure(t){super.onScrollMeasure(t);for(let e=0;e<this.objects.length;e++){let r=this.objects[e];r.setProperty("parallax-transform-value",this.calculateParallaxForObject(r))}}onMutate(){L.run(()=>{for(let t=0;t<this.objects.length;t++){let e=this.objects[t],r=e.getProperty("progress-value")??0;e.getProperty("parallax-progress-applied")!==r&&(e.setProperty("parallax-transform-value",this.calculateParallaxForObject(e)),e.setProperty("parallax-progress-applied",r));let n=e.getProperty("parallax-transform-value");n&&(this.applyPropToElement(e,"transform",n.transform),this.applyPropToConnects(e,"transform",n.transform))}})}calculateParallax=t=>{let e=t.getProperty("progress-value")??0,r=t.getProperty("parallax")??0,i=t.getProperty("parallax-position-start")??0,n=t.getProperty("parallax-position-end")??1,s=t.getProperty("parallax-sign")??1,o=this.data.viewport.windowHeight/this.data.viewport.transformScale,a=s*r*(o*i+e*o*n);return this.events.emit(this.getObjectEventName(t,"object:parallax"),a),{transform:`translate3d(0, ${a}px, 0)`}}};var Ve=class{scrollbar;thumb;isDragging=!1;onScrollTo;startY=0;startScrollPosition=0;data;constructor(t,e,r,i){this.data=t,this.scrollbar=e,this.thumb=r,this.onScrollTo=i}onResize(){let t=this.data.viewport.contentWidth,e=this.data.viewport.windowWidth,r=e/t*e;this.thumb.style.setProperty("--size",r+"px"),t<=e?this.scrollbar.classList.add("-hide"):this.scrollbar.classList.remove("-hide")}updateThumb(){let t=this.data.viewport.contentWidth,e=this.data.viewport.windowWidth;this.thumb.style.setProperty("--position",`${this.data.scroll.current/t*e+"px"}`)}mouseDownEvent(t){this.startY=t.clientY,this.startScrollPosition=this.data.scroll.current}mouseMoveEvent(t){let e=t.clientY-this.startY,r=this.startScrollPosition+e/this.data.viewport.windowWidth*this.data.viewport.contentWidth;this.data.scroll.current=r,this.data.scroll.target=r,this.onScrollTo(r),this.updateThumb()}};var We=class{scrollbar;thumb;isDragging=!1;onScrollTo;startCoordinate=0;startScrollPosition=0;data;constructor(t,e,r,i){this.data=t,this.scrollbar=e,this.thumb=r,this.onScrollTo=i}onResize(){let t=this.data.viewport.contentHeight,e=this.data.viewport.windowHeight,r=e/t*e;this.thumb.style.setProperty("--height",r+"px"),t<=e?this.scrollbar.classList.add("-hide"):this.scrollbar.classList.remove("-hide")}updateThumb(){let t=this.data.viewport.contentHeight,e=this.data.viewport.windowHeight;this.thumb.style.setProperty("--position",`${this.data.scroll.current/t*e+"px"}`)}mouseDownEvent(t){this.startCoordinate=t.clientY,this.startScrollPosition=this.data.scroll.current}mouseMoveEvent(t){let e=t.clientY-this.startCoordinate,r=this.startScrollPosition+e/this.data.viewport.windowHeight*this.data.viewport.contentHeight,i=this.data.scroll.bottomPosition,n=Math.max(0,Math.min(r,i));this.data.scroll.current=n,this.data.scroll.target=n,this.onScrollTo(n),this.updateThumb()}};var qr=class extends x{scrollbar;thumb;scrollTimeout;isDragging=!1;scrollMode="smooth";mouseUpEventBind;mouseDownEventBind;mouseMoveEventBind;scrollbarState;scrollbarStateHorizontal;scrollbarStateVertical;requestScrollTo;constructor(t){super(t),this.mouseUpEventBind=this.mouseUpEvent.bind(this),this.mouseDownEventBind=this.mouseDownEvent.bind(this),this.mouseMoveEventBind=this.mouseMoveEvent.bind(this),this.requestScrollTo=e=>{this.events.emit("scrollTo",{position:e,immediate:!0})}}destructor(){document.removeEventListener("mouseup",this.mouseUpEventBind),this.thumb.removeEventListener("mousedown",this.mouseDownEventBind),document.removeEventListener("mousemove",this.mouseMoveEventBind)}onInit(){this.createScrollbar(),this.updateThumb(),this.addCustomStyles(),document.addEventListener("mouseup",this.mouseUpEventBind),this.thumb.addEventListener("mousedown",this.mouseDownEventBind),document.addEventListener("mousemove",this.mouseMoveEventBind),document.documentElement.classList.add("-no-scrollbar")}onScroll(t){this.updateThumb(),this.showScrollbar(),this.hideScrollbar()}onResize(){this.scrollbarState.onResize()}onRebuild(){this.scrollbarState.onResize()}addCustomStyles(){let t=document.createElement("style");t.textContent=`
2
2
  ::-webkit-scrollbar {
3
3
  display: none;
4
4
  width: 0;
@@ -16,7 +16,7 @@ var ve=class{context;SETTLE_THRESHOLD_SQ=.01;smoothingFactor;lastMouseX=0;lastMo
16
16
  -ms-overflow-style: none; /* IE and Edge */
17
17
  scrollbar-width: none; /* Firefox */
18
18
  }
19
- `,document.head.appendChild(t)}createScrollbar(){this.scrollbar=document.createElement("div"),this.scrollbar.classList.add("scrollbar"),this.thumb=document.createElement("div"),this.thumb.classList.add("thumb"),this.scrollbar.appendChild(this.thumb),document.body.appendChild(this.scrollbar),this.scrollbarStateHorizontal=new Ve(this.data,this.scrollbar,this.thumb,this.requestScrollTo),this.scrollbarStateVertical=new We(this.data,this.scrollbar,this.thumb,this.requestScrollTo),this.scrollbarState=this.scrollbarStateVertical}updateThumb(){this.scrollbarState.updateThumb()}mouseDownEvent(t){this.isDragging=!0,this.scrollbarState.mouseDownEvent(t),document.body.style.userSelect="none",this.scrollbar.classList.add("-touch")}mouseMoveEvent(t){this.isDragging&&this.scrollbarState.mouseMoveEvent(t)}mouseUpEvent(){this.isDragging=!1,document.body.style.userSelect="",this.hideScrollbar(),this.scrollbar.classList.remove("-touch")}showScrollbar(){this.scrollbar.classList.add("-scroll")}hideScrollbar(){this.scrollTimeout&&clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout(()=>{this.scrollbar.classList.remove("-scroll")},1e3)}};var Et={BEFORE_ELEMENT:"-before-element",AFTER_ELEMENT:"-after-element"};function ds(d){if(!d||!Array.isArray(d.chars)||d.chars.length===0)return[];let t=null;for(let e of d.chars){let r=e.splitClass??[];if(r.length!==0){if(t===null){t=r;continue}if(r.length!==t.length)return[];for(let i=0;i<r.length;i++)if(r[i]!==t[i])return[]}}return t??[]}function Kr(d){return d.chars[0]?.token?.meta?.wrappers??[]}function cs(d,t,e){if(e.trimInlineGaps!==!0||!t)return!1;let r=Kr(d),i=Kr(t);if(r.length===0||i.length===0)return!1;if(r.length!==i.length)return!0;for(let n=0;n<r.length;n++)if(r[n].id!==i[n].id)return!0;return!1}function Xi(d,t,e){let r=document.createDocumentFragment(),i=K(t,"line")||K(t,"charLine")||K(t,"wordLine"),n=0,s=K(t,"char")||K(t,"charLine")||K(t,"charWord"),o=0;d.forEach(p=>o+=p.words.length);let a=0;d.forEach(p=>p.words.forEach(g=>a+=g.chars.length));let l=d.length,c=o,u=new Map;return d.forEach((p,g)=>{let m=g===d.length-1,h=r,f="";i&&(h=document.createElement("span"),h.setAttribute("aria-hidden","true"),h.classList.add("-s-line"),p.isBeforeElement&&h.classList.add(Et.BEFORE_ELEMENT),p.isAfterElement&&h.classList.add(Et.AFTER_ELEMENT),h.style.setProperty("--line-index",String(p.lineIndex)),h.style.setProperty("--word-total",String(p.words.length)),p.fitFontSize!==void 0&&h.style.setProperty("--fit-font-size",String(p.fitFontSize)),Xr(h,p.calculatedValues,t));let b=[],y=h;p.words.forEach((v,S)=>{let E=S===p.words.length-1,M=Kr(v),C=0;for(;C<b.length&&C<M.length&&b[C].info.id===M[C].id;)C++;for(;b.length>C;)b.pop();y=b.length>0?b[b.length-1].element:h;for(let T=C;T<M.length;T++){let P=M[T],R=document.createElement(P.tag);for(let[B,W]of P.attributes)R.setAttribute(B,W);y.appendChild(R),b.push({info:P,element:R}),y=R}if(v.chars.length===1&&v.chars[0].token.type==="element"){let T=v.chars[0].token.node.cloneNode(!0);y.appendChild(T);return}let I=v.chars.map(T=>T.char).join("");I&&(f+=f.length===0||v.noSpaceBefore?I:` ${I}`);let H=K(t,"word")||K(t,"charWord")||K(t,"wordLine"),w=H?document.createElement("span"):y,_=ds(v);if(H&&(w.setAttribute("aria-hidden","true"),w.classList.add("-s-word"),v.isBeforeElement&&w.classList.add(Et.BEFORE_ELEMENT),v.isAfterElement&&w.classList.add(Et.AFTER_ELEMENT),w.style.setProperty("--word-index",String(v.wordIndexGlobal)),w.style.setProperty("--char-total",String(v.chars.length)),w.setAttribute("data-split-content",I),Xr(w,v.calculatedValues,t),_.length&&w.classList.add(..._)),s)v.chars.forEach((T,P)=>{if(T.char===" "||T.char===" ")return;let R=document.createElement("span");R.setAttribute("aria-hidden","true");let B=R;B.classList.add("-s-char"),T.isBeforeElement&&B.classList.add(Et.BEFORE_ELEMENT),T.isAfterElement&&B.classList.add(Et.AFTER_ELEMENT),B.textContent=T.char,B.setAttribute("data-split-content",T.char),B.style.setProperty("--char-index",String(n++));let W=v.chars[P+1];if(W){let z=e.getKerning(T.char,W.char);Math.abs(z)>.01&&(B.style.setProperty("--kerning",`${z.toFixed(2)}px`),B.style.marginRight="var(--kerning)")}Xr(B,T.calculatedValues,t);let N=T.splitClass??[];N.length&&(!_.length||!H)&&B.classList.add(...N),w.appendChild(R)});else{let T=document.createTextNode(I);w.appendChild(T)}H&&y.appendChild(w);let k=p.words[S+1],O=k?.noSpaceBefore||cs(v,k,t);i?E?m||h.appendChild(document.createElement("br")):O||w.appendChild(document.createTextNode("\xA0")):!E&&!O&&w.appendChild(document.createTextNode("\xA0"))}),i&&(h.setAttribute("data-split-content",f),r.appendChild(h))}),i&&u.set("--line-global-total",String(l)),s&&u.set("--char-global-total",String(a)),(K(t,"word")||K(t,"charWord")||K(t,"wordLine"))&&u.set("--word-global-total",String(c)),{fragment:r,extraProps:u}}function Xr(d,t,e){if(t)for(let r of t){if(!us(r.type,r.align,e))continue;let i=ps(r.type,r.align);d.style.setProperty(i,String(r.value))}}function us(d,t,e){let r=e[d]??[];return Array.isArray(r)&&r.some(i=>t.startsWith("random")?i.align.startsWith("random"):i.align===t)}function ps(d,t){let e=t.startsWith("random")?"random":t;return`--${d}-${e}`}function K(d,t){return Array.isArray(d[t])&&d[t].length>0}var gs=new Set(["img","video","audio","canvas","iframe","object","svg","input","textarea","select","button","area","base","col","embed","hr","link","meta","param","source","track","wbr","picture","table"]);function hs(d){let t=[];for(let e=0;e<d.attributes.length;e++){let r=d.attributes[e];t.push([r.name,r.value])}return t}var At=0;function Ki(d){At=0;let t=[],e=(i,n)=>{n&&Object.keys(n).length&&(i.meta={...i.meta||{},...n}),t.push(i)},r=(i,n)=>{if(i.nodeType===Node.ELEMENT_NODE){let s=i,o=s.tagName.toLowerCase();if(o==="split-class"){let a=(s.getAttribute("class")??"").split(/\s+/).filter(Boolean),l={...n||{},splitClass:[...n?.splitClass??[],...a]};s.childNodes.forEach(c=>r(c,l));return}if(o==="br"){e({type:"br",id:`br_${At++}`,node:s,tagName:"br"},n);return}if(!gs.has(o)&&s.childNodes.length>0){let a={id:`wrapper_${At++}`,tag:o,attributes:hs(s)},l=n?.wrappers??[],c={...n||{},wrappers:[...l,a]};s.childNodes.forEach(u=>r(u,c));return}e({type:"element",id:`el_${At++}`,node:s,tagName:o},n);return}if(i.nodeType===Node.TEXT_NODE){let s=i.nodeValue??"",o=`text_${At++}`;s.trim()?e({type:"text",id:o,node:i,content:s},n):e({type:"space",id:o,node:i,content:s},n);return}e({type:"other",id:`node_${At++}`,node:i},n)};return d.forEach(i=>r(i)),t}var Ne=class{ctx;font="";cache={kerning:new Map,charWidth:new Map};constructor(t){let e=document.createElement("canvas");this.ctx=e.getContext("2d"),this.setFontFromElement(t)}setFontFromElement(t){let e=window.getComputedStyle(t),r=`${e.fontStyle} ${e.fontVariant} ${e.fontWeight} ${e.fontSize}/${e.lineHeight} ${e.fontFamily}`;r!==this.font&&(this.font=r,this.ctx.font=this.font,this.cache.kerning.clear(),this.cache.charWidth.clear())}getCharWidth(t){if(this.cache.charWidth.has(t))return this.cache.charWidth.get(t);let e=this.ctx.measureText(t).width;return this.cache.charWidth.set(t,e),e}getKerning(t,e){let r=`${t}${e}`,i=`${this.font}|${r}`;if(this.cache.kerning.has(i))return this.cache.kerning.get(i);let n=this.ctx.measureText(r).width,s=this.getCharWidth(t)+this.getCharWidth(e),o=n-s;return this.cache.kerning.set(i,o),o}measureWord(t){let e=0;for(let r=0;r<t.length;r++){let i=t[r];if(e+=this.getCharWidth(i),r>0){let n=t[r-1];e+=this.getKerning(n,i)}}return e}};function ms(d,t){let e=t.contentWidth,r=d.cloneNode(!0);r.removeAttribute("string"),r.removeAttribute("data-string"),r.removeAttribute("string-split"),r.removeAttribute("data-string-split"),r.removeAttribute("string-id"),r.removeAttribute("data-string-id"),r.removeAttribute("string-inited"),r.classList.remove("-splitted","-inview","-restored"),r.innerHTML=d.getAttribute("string-split-original-html")??d.innerHTML,r.style.setProperty("position","absolute","important"),r.style.setProperty("visibility","hidden","important"),r.style.setProperty("pointer-events","none","important"),r.style.setProperty("left","0","important"),r.style.setProperty("top","0","important"),r.style.setProperty("display","block","important"),r.style.setProperty("width",`${e}px`,"important"),r.style.setProperty("min-width",`${e}px`,"important"),r.style.setProperty("max-width",`${e}px`,"important"),r.style.setProperty("padding","0","important"),r.style.setProperty("border","0","important"),r.style.setProperty("margin","0","important"),r.style.setProperty("transform","none","important"),r.style.setProperty("scale","1","important"),(d.parentElement??document.body).appendChild(r);let n=new Map,s=document.createTreeWalker(d,NodeFilter.SHOW_ALL),o=document.createTreeWalker(r,NodeFilter.SHOW_ALL),a=s.currentNode,l=o.currentNode;for(n.set(a,l);(a=s.nextNode())&&(l=o.nextNode());)n.set(a,l);return{resolveNode(c){return n.get(c)??c},cleanup(){r.remove()}}}var ze=class{id="flex";supports(t,e){return e.display==="flex"||e.display==="inline-flex"}createSource(t,e){return ms(t,e)}};function fs(){return{resolveNode(d){return d},cleanup(){}}}var Ge=class{id="inline-flow";supports(t,e){return e.display!=="flex"&&e.display!=="inline-flex"}createSource(t,e){return fs()}};var Zr=[new ze,new Ge];function vs(d){let t=window.getComputedStyle(d),e=d.getBoundingClientRect(),r=parseFloat(t.borderLeftWidth)||0,i=parseFloat(t.borderRightWidth)||0,n=parseFloat(t.paddingLeft)||0,s=parseFloat(t.paddingRight)||0;return Math.max(0,e.width-r-i-n-s)}function bs(d){let t=d.parentElement;for(;t;){let e=window.getComputedStyle(t),r=e.display;if(!(r==="inline"||r==="inline-block"||r==="ruby")){let n=t.getBoundingClientRect(),s=parseFloat(e.borderLeftWidth)||0,o=parseFloat(e.borderRightWidth)||0,a=parseFloat(e.paddingLeft)||0,l=parseFloat(e.paddingRight)||0;return Math.max(0,n.width-s-o-a-l)}t=t.parentElement}return 0}function Zi(d){let t=window.getComputedStyle(d),e=vs(d),r=bs(d),i=t.display==="inline"||t.display==="inline-flex"||t.display==="inline-grid",n=e;return(i&&r>e+1&&!d.style.width||n<=0)&&(n=r),{display:t.display,contentWidth:n,ownContentWidth:e,blockContainerContentWidth:r}}function Qi(d,t){return Zr.find(e=>e.supports(d,t))??Zr[Zr.length-1]}var $e=typeof Intl<"u"&&"Segmenter"in Intl?new Intl.Segmenter(void 0,{granularity:"grapheme"}):null;function Ji(d,t){return t.segment!=="visual"?ys(d):Ls(d)}function tn(d,t){return t.segment!=="visual"||!d||!$e?Array.from(d):Array.from($e.segment(d),({segment:e})=>e)}function ys(d){let t=[],e=/\S+/g,r;for(;(r=e.exec(d))!==null;)Ss(r[0],r.index,t);return t}function Ss(d,t,e){let r=0;for(let i=1;i<d.length-1;i++){let n=d[i];if(n==="-"||n==="\u2010"){let s=d.slice(r,i+1),o=t+r;e.push({text:s,start:o,end:o+s.length,noSpaceBefore:e.length>0&&o===e[e.length-1].end}),r=i+1}}if(r<d.length){let i=d.slice(r),n=t+r;e.push({text:i,start:n,end:n+i.length,noSpaceBefore:e.length>0&&n===e[e.length-1].end})}}function Ls(d){let t=Es(d),e=[],r=null,i=()=>{r&&(e.push({text:r.text,start:r.start,end:r.end,noSpaceBefore:e.length>0&&r.start===e[e.length-1].end}),r=null)};return t.forEach(({segment:n,index:s})=>{if(/\s/u.test(n)){i();return}let o=ws(n),a=s+n.length;if(o==="visual"){if(Ms(n)){if(r){r.text+=n,r.end=a;return}if(e.length>0&&s===e[e.length-1].end){e[e.length-1].text+=n,e[e.length-1].end=a;return}}i(),e.push({text:n,start:s,end:a,noSpaceBefore:e.length>0&&s===e[e.length-1].end});return}let l=r!==null&&(r.text.endsWith("-")||r.text.endsWith("\u2010"));if(!r||r.end!==s||l){i(),r={text:n,start:s,end:a};return}r.text+=n,r.end=a}),i(),e}function Es(d){if(!$e){let t=[],e=0;return Array.from(d).forEach(r=>{t.push({segment:r,index:e}),e+=r.length}),t}return Array.from($e.segment(d),({segment:t,index:e})=>({segment:t,index:e}))}function Ms(d){return/[\)\]\})」』〕〉》›»"']/u.test(d)}function ws(d){return/\p{Script=Han}|\p{Script=Hiragana}|\p{Script=Katakana}/u.test(d)?"visual":/[\p{Script=Latin}\p{Script=Cyrillic}\p{Script=Greek}\p{Script=Hangul}\p{Number}]/u.test(d)||/[\p{Mark}\p{Connector_Punctuation}\p{Dash_Punctuation}'’._+#&/@]/u.test(d)?"word":"visual"}function xs(d,t){return!d?.length&&!t?.length?!0:!d||!t||d.length!==t.length?!1:d.every((e,r)=>e.id===t[r].id)}function Cs(d,t){return d.length!==t.length?!1:d.every((e,r)=>e===t[r])}function nn(d,t,e,r){let i=document.createRange(),n=[],s=!1,o=!1,a=!1,l,c=[];try{for(let u=0;u<d.length;u++){let p=d[u];switch(p.type){case"br":{n.push({token:p,rect:new DOMRect(0,0,0,0)}),o=!0,a=!1,l=void 0,c=[],s=!1;break}case"space":o=!Ts(d,u,r);break;case"other":a=!1,o=!1;break;case"text":{let g=p.content,m=/^\s/.test(g),h=p.meta?.wrappers??[],f=p.meta?.splitClass??[],b=Ji(g,r),y=0;for(let v of b){let S=v.text,E=new DOMRect(0,0,0,0),M=t.resolveNode(p.node);try{i.setStart(M,v.start),i.setEnd(M,v.end),E=i.getBoundingClientRect()}catch{}let C=y===0&&!m&&!o&&a,A=y>0||xs(l,h),I=y===0&&!Cs(c,f),H=e.measureWord(S),w=new DOMRect(E.x,E.y,H,E.height),_={...p.meta||{},joinPrev:C&&A&&!I,noSpaceBefore:v.noSpaceBefore||C&&(!A||I)};s&&y===0&&(_.isAfterElement=!0,s=!1),n.push({token:{type:"text",id:"",node:p.node,content:S,meta:_},rect:w,browserWidth:E.width}),y++}y>0&&(o=/\s$/.test(g),a=!0,l=h,c=f);break}case"element":{let g=t.resolveNode(p.node).getBoundingClientRect();n.push({token:p,rect:g,browserWidth:g.width});let m=n[n.length-2];m?.token.type==="text"&&(m.token.meta={...m.token.meta||{},isBeforeElement:!0}),s=!0,a=!1,c=[],o=!1;break}}}}finally{i.detach?.(),t.cleanup()}return n}function Ts(d,t,e){if(e.trimInlineGaps!==!0)return!1;let r=d[t];if(r?.type!=="space"||!/[\n\r\t]/.test(r.content)&&r.content.length<=1)return!1;let i=Ps(d,t-1),n=As(d,t+1);if(!i||!n||!en(i)||!en(n))return!1;let s=rn(i),o=rn(n);return s.length===0||o.length===0?!1:s.join("|")!==o.join("|")}function Ps(d,t){for(let e=t;e>=0;e--){let r=d[e];if(!(r.type==="space"||r.type==="other"))return r}return null}function As(d,t){for(let e=t;e<d.length;e++){let r=d[e];if(!(r.type==="space"||r.type==="other"))return r}return null}function en(d){return d.type==="text"||d.type==="element"}function rn(d){return(d.meta?.wrappers??[]).map(e=>e.id)}function sn(d,t,e,r){let i=Zi(t),s=Qi(t,i).createSource(t,i);return nn(d,s,e,r)}var on=5;function an(d,t,e,r){let i=[],n=null,s=0,o=0,a=0,l=0;return d.forEach(c=>{let u=c.token,p=u.meta?.isBeforeElement??!1,g=u.meta?.isAfterElement??!1;if(u.type==="br"){n=null;return}if(u.type==="text"){let m=u.content,h=u.meta?.splitClass??[],f=!!u.meta?.joinPrev,b=[],y=0,v=tn(m,r);for(let w=0;w<v.length;w++){let _=v[w],k=w>0?v[w-1]:null,O=e.getCharWidth(_),T=k?e.getKerning(k,_):0;y+=T;let P=new DOMRect(c.rect.left+y,c.rect.top,O,c.rect.height),R={char:_,rect:P,token:u,charIndexInWord:w,charIndexInLine:0,charIndexGlobal:o++};h.length&&(R.splitClass=h),b.push(R),y+=O}if(b.length>0){let w=b[b.length-1];p&&(w.isBeforeElement=!0),g&&(w.isAfterElement=!0)}let S=Math.round(c.rect.top),E=Math.round(s);if((!n||Math.abs(S-E)>on)&&(s=S,n={words:[],rect:c.rect,lineIndex:i.length},l=0,i.push(n)),!n)return;let C=c.rect.left+(c.browserWidth??c.rect.width);if(f&&n.words.length>0){let w=n.words[n.words.length-1],_=n.words.reduce((O,T)=>O+T.chars.length,0),k=w.chars.length;b.forEach((O,T)=>{O.charIndexInLine=_+T,O.charIndexInWord=k+T}),w.chars.push(...b),w.rect=Ue([w.rect,c.rect]),n.rect=Ue(n.words.map(O=>O.rect)),l=Math.max(l,C),n.fitWidth=l-n.rect.left,n.browserWordWidthSum=(n.browserWordWidthSum??0)+(c.browserWidth??c.rect.width),p&&(w.isBeforeElement=!0),g&&(w.isAfterElement=!0);return}let A=n.words.length,I=n.words.reduce((w,_)=>w+_.chars.length,0);b.forEach((w,_)=>w.charIndexInLine=I+_);let H={chars:b,rect:c.rect,wordIndexGlobal:a++,wordIndexInLine:A,isBeforeElement:p,isAfterElement:g,noSpaceBefore:!!u.meta?.noSpaceBefore};n.words.push(H),n.rect=Ue(n.words.map(w=>w.rect)),l=Math.max(l,C),n.fitWidth=l-n.rect.left,n.browserWordWidthSum=(n.browserWordWidthSum??0)+(c.browserWidth??c.rect.width),p&&(n.isBeforeElement=!0),g&&(n.isAfterElement=!0);return}if(u.type==="element"){let m=c.rect,h=Math.round(m.top),f=Math.round(s);if((!n||Math.abs(h-f)>on)&&(s=h,n={words:[],rect:m,lineIndex:i.length},l=0,i.push(n)),!n)return;let y=n.words.length,v=n.words.reduce((M,C)=>M+C.chars.length,0),E={chars:[{char:"[E]",rect:m,token:u,charIndexInWord:0,charIndexInLine:v,charIndexGlobal:o++}],rect:m,wordIndexGlobal:a++,wordIndexInLine:y,isBeforeElement:!1,isAfterElement:!1};n.words.push(E),n.rect=Ue(n.words.map(M=>M.rect)),l=Math.max(l,c.rect.left+(c.browserWidth??c.rect.width)),n.fitWidth=l-n.rect.left,n.browserWordWidthSum=(n.browserWordWidthSum??0)+(c.browserWidth??c.rect.width)}}),i}function Ue(d){if(d.length===0)return new DOMRect(0,0,0,0);let t=Math.min(...d.map(n=>n.left)),e=Math.min(...d.map(n=>n.top)),r=Math.max(...d.map(n=>n.right)),i=Math.max(...d.map(n=>n.bottom));return new DOMRect(t,e,r-t,i-e)}var Qr=class extends x{lastSplitWidth=new WeakMap;constructor(t){super(t),this.htmlKey="split",this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1}onInit(){let t=()=>{this.objectsOnPage.forEach(e=>{let r=e.htmlElement;if(!r)return;let i=this.getSplitOptions(r);this.needsForcedRebuildOnFontLoad(i)&&this.lastSplitWidth.delete(r),this.onObjectConnected(e)})};document.fonts.ready.then(t),document.fonts.addEventListener("loadingdone",t)}onObjectDisconnected(t){t.htmlElement&&this.lastSplitWidth.delete(t.htmlElement)}onResizeWidth(){this.objectsOnPage.forEach(t=>{let e=t.htmlElement;if(!e)return;let r=this.getSplitOptions(e);this.needsWidthRebuild(r)&&this.onObjectConnected(t)})}onObjectConnected(t){let e=t.htmlElement;if(!e)return;let r=this.isDebugEnabled(e),i=e.classList.contains("-splitted"),n=e.getAttribute("string-split-original-html"),s=e.getAttribute("string-split-original");n===null&&s!==null&&i&&(n=s,s=this.extractTextContent(n),e.setAttribute("string-split-original-html",n),e.setAttribute("string-split-original",s)),(!i||n===null||s===null)&&(n=this.escapeAttribute(e.innerHTML),s=e.textContent??"",e.setAttribute("string-split-original-html",n),e.setAttribute("string-split-original",s)),i&&e.classList.remove("-splitted");let o=window.getComputedStyle(e),a=this.getElementContentWidth(e,o);r&&this.logConnectionStart(e,{isAlreadySplit:i,currentContentWidth:a,lastWidth:this.lastSplitWidth.get(e),originalHtml:n,originalText:s});let l=this.lastSplitWidth.get(e);if(i&&l!==void 0&&Math.abs(a-l)<1){i&&e.classList.add("-splitted");return}this.lastSplitWidth.set(e,a);try{t.htmlElement.innerHTML=n;let c=e.getAttribute("string-split")??e.getAttribute("data-string-split")??"",u=this.tools.optionsParser.process({attributeValue:c}),{fragment:p,result:g,extraProps:m}=this.split(e,u,r);t.setProperty("nodes",p.childNodes),e.setAttribute("aria-label",s),e.innerHTML="",e.appendChild(g),this.applyFlexLineBreaks(e,u),e.classList.add("-splitted"),m.forEach((f,b)=>{e.style.setProperty(b,f)}),r&&this.logRenderedState(e,u,m);let h=e.getAttribute("string-split-restore-after");h&&!isNaN(Number(h))&&setTimeout(()=>{e.innerHTML=n,e.classList.add("-restored")},Number(h))}finally{e.classList.contains("-splitted")||e.classList.add("-splitted")}}extractTextContent(t){let e=document.createElement("div");return e.innerHTML=t,e.textContent??""}getSplitOptions(t){let e=t.getAttribute("string-split")??t.getAttribute("data-string-split")??"";return this.tools.optionsParser.process({attributeValue:e})}hasLineDrivenSplit(t){return(t.line?.length??0)>0||(t.wordLine?.length??0)>0||(t.charLine?.length??0)>0}needsWidthRebuild(t){return this.hasLineDrivenSplit(t)||t.fit===!0}needsForcedRebuildOnFontLoad(t){return this.needsWidthRebuild(t)}getDebugStoreKey(t){let e=t.getAttribute("string-debug-save")??t.getAttribute("data-string-debug-save")??"";return e?e==="true"||e==="1"?this.getDebugLabel(t):e:null}writeDebugRecord(t,e,r){let i=this.getDebugStoreKey(t);if(!i)return;let n=window,s=n.__stringSplitDebug??={},o=s[i]??{label:this.getDebugLabel(t),timestamp:Date.now()};o.timestamp=Date.now(),o[e]=r,s[i]=o}isDebugEnabled(t){let e=t.getAttribute("string-debug")??t.getAttribute("data-string-debug")??"";return e?e===""||e==="true"||e==="1"||e.includes("split")||e==="all":!1}getDebugLabel(t){return t.getAttribute("string-id")??t.id??t.className??t.tagName.toLowerCase()}logConnectionStart(t,e){let r=window.getComputedStyle(t),i=this.captureBaselineSnapshot(t,r),n={text:e.originalText,html:e.originalHtml,baseline:i,flags:{isAlreadySplit:e.isAlreadySplit,display:r.display,whiteSpace:r.whiteSpace,position:r.position},widths:{currentContentWidth:e.currentContentWidth,lastWidth:e.lastWidth,rectWidth:t.getBoundingClientRect().width,clientWidth:t.clientWidth,parentContentWidth:this.getBlockContainerContentWidth(t)}};this.writeDebugRecord(t,"connect",n)}captureBaselineSnapshot(t,e){let r=t.getBoundingClientRect(),i=parseFloat(e.lineHeight);return{rectWidth:Number(r.width.toFixed(2)),rectHeight:Number(r.height.toFixed(2)),fontSize:Number(parseFloat(e.fontSize).toFixed(2)),lineHeight:Number.isFinite(i)?Number(i.toFixed(2)):e.lineHeight,estimatedLineCount:Number.isFinite(i)&&i>0?Number((r.height/i).toFixed(2)):null}}logSplitAnalysis(t,e,r,i){let n={tokens:e.map(s=>({type:s.type,text:this.getTokenDebugText(s),wrappers:s.meta?.wrappers?.map(o=>o.tag)??[]})),measured:r.map(s=>({type:s.token.type,text:this.getTokenDebugText(s.token),left:Number(s.rect.left.toFixed(2)),top:Number(s.rect.top.toFixed(2)),width:Number(s.rect.width.toFixed(2)),browserWidth:Number((s.browserWidth??s.rect.width).toFixed(2))})),layoutLines:i.map(s=>({index:s.lineIndex,text:s.words.map(o=>o.chars.map(a=>a.char).join("")).join(" "),wordCount:s.words.length,rect:{left:Number(s.rect.left.toFixed(2)),top:Number(s.rect.top.toFixed(2)),width:Number(s.rect.width.toFixed(2)),height:Number(s.rect.height.toFixed(2))},fitWidth:Number((s.fitWidth??s.rect.width).toFixed(2))}))};this.writeDebugRecord(t,"measure",n)}getTokenDebugText(t){return"content"in t?t.content:"tagName"in t?t.tagName:"#other"}logRenderedState(t,e,r){let i=window.getComputedStyle(t),n=Array.from(t.querySelectorAll(".-s-line")),s={mode:{attr:t.getAttribute("string-split")??t.getAttribute("data-string-split"),line:e.line?.length??0,wordLine:e.wordLine?.length??0,charLine:e.charLine?.length??0},root:{display:i.display,flexWrap:i.flexWrap,rectWidth:Number(t.getBoundingClientRect().width.toFixed(2)),rectHeight:Number(t.getBoundingClientRect().height.toFixed(2)),childCount:t.children.length,extraProps:Object.fromEntries(r.entries())},children:Array.from(t.children).map(o=>{let a=o,l=a.getBoundingClientRect();return{tag:a.tagName.toLowerCase(),className:a.className,text:a.textContent?.replace(/\s+/g," ").trim(),width:Number(l.width.toFixed(2)),height:Number(l.height.toFixed(2))}}),lineNodes:n.map((o,a)=>{let l=o.getBoundingClientRect(),c=window.getComputedStyle(o);return{index:a,text:o.getAttribute("data-split-content"),top:Number(l.top.toFixed(2)),left:Number(l.left.toFixed(2)),width:Number(l.width.toFixed(2)),height:Number(l.height.toFixed(2)),display:c.display,lineHeight:c.lineHeight,scale:c.scale,transform:c.transform}})};this.writeDebugRecord(t,"rendered",s)}applyFlexLineBreaks(t,e){if(!((e.line?.length??0)>0||(e.wordLine?.length??0)>0||(e.charLine?.length??0)>0))return;let i=window.getComputedStyle(t).display;if(i!=="flex"&&i!=="inline-flex")return;let n=Array.from(t.children).filter(s=>s.classList.contains("-s-line"));if(!(n.length<2))for(let s=0;s<n.length-1;s++){let o=document.createElement("span");o.setAttribute("aria-hidden","true"),o.classList.add("-s-line-break"),o.style.flexBasis="100%",o.style.width="0",o.style.height="0",o.style.overflow="hidden",o.style.pointerEvents="none",n[s].after(o)}}getBlockContainerContentWidth(t){let e=t.parentElement;for(;e;){let r=window.getComputedStyle(e),i=r.display;if(!(i==="inline"||i==="inline-block"||i==="ruby")){let s=e.getBoundingClientRect().width||e.clientWidth;return Math.max(0,s-(parseFloat(r.paddingLeft)||0)-(parseFloat(r.paddingRight)||0))}e=e.parentElement}return 0}getElementContentWidth(t,e=window.getComputedStyle(t)){let r=(parseFloat(e.paddingLeft)||0)+(parseFloat(e.paddingRight)||0),i=t.clientWidth||t.getBoundingClientRect().width,n=this.getBlockContainerContentWidth(t);return n>i+1&&!t.style.width&&(e.display==="inline"||e.display==="inline-flex"||e.display==="inline-grid")?Math.max(0,n-r):i>0?Math.max(0,i-r):Math.max(0,n-r)}split(t,e,r=!1){let i=new Ne(t),n=document.createDocumentFragment();t.childNodes.forEach(p=>n.appendChild(p.cloneNode(!0)));let s=Ki(t.childNodes),o=sn(s,t,i,e),a=an(o,t,i,e);r&&this.logSplitAnalysis(t,s,o,a);let l=e.fit?this.getFitContext(a,t):null,c=l?this.applyFit(a,e,l):new Map;this.applyCalculatedValues(a,e);let u=Xi(a,e,i);return c.forEach((p,g)=>u.extraProps.set(g,p)),l&&this.refineFitFontSize(t,u.fragment,u.extraProps,a,e,l),{fragment:n,result:u.fragment,extraProps:u.extraProps}}getFitContext(t,e){let r=window.getComputedStyle(e),i=parseFloat(r.fontSize);if(!i)return null;let n=this.getElementContentWidth(e,r);if(n<=0)return null;let s=0;for(let l of t){let c=l.fitWidth??l.rect.width;c>s&&(s=c)}if(s<=0)return null;let o=n;if(Math.abs(n-s)<2&&e.parentElement){let l=window.getComputedStyle(e.parentElement),c=e.parentElement.clientWidth-(parseFloat(l.paddingLeft)||0)-(parseFloat(l.paddingRight)||0);c>n&&(o=c)}let a=parseFloat(r.lineHeight)||0;return{currentFontSize:i,contentWidth:o,lineHeightPx:a}}applyFit(t,e,r){let i=new Map,{currentFontSize:n,contentWidth:s}=r,o=(e.line?.length??0)>0||(e.wordLine?.length??0)>0||(e.charLine?.length??0)>0,a=(e.char?.length??0)>0||(e.charLine?.length??0)>0||(e.charWord?.length??0)>0;if(o)for(let l of t){let c=l.fitWidth??l.rect.width;c>0&&(l.fitFontSize=this.computeFitFontSize(n,s,c,a?l.browserWordWidthSum:void 0))}else{let l=t.reduce((p,g)=>(g.fitWidth??g.rect.width)>(p.fitWidth??p.rect.width)?g:p,t[0]),c=l.fitWidth??l.rect.width,u=this.computeFitFontSize(n,s,c,a?l.browserWordWidthSum:void 0);i.set("--fit-font-size",String(Math.floor(u)))}return i}refineFitFontSize(t,e,r,i,n,s){let o=(n.line?.length??0)>0||(n.wordLine?.length??0)>0||(n.charLine?.length??0)>0,a=(n.char?.length??0)>0||(n.charLine?.length??0)>0||(n.charWord?.length??0)>0,l=t.innerHTML;try{if(t.innerHTML="",t.appendChild(e.cloneNode(!0)),o){let c=Array.from(t.querySelectorAll(".-s-line")),u=Array.from(e.querySelectorAll(".-s-line"));c.forEach((p,g)=>{let m=u[g];if(!m)return;let h=parseFloat(m.style.getPropertyValue("--fit-font-size"));if(!h)return;let f=this.solveRenderedFitFontSize(p,s.currentFontSize,h,s.contentWidth,a);f&&(i[g].fitFontSize=f,m.style.setProperty("--fit-font-size",String(Math.floor(f))))})}else{let c=parseFloat(r.get("--fit-font-size")??"");if(!c)return;let u=this.solveRenderedFitFontSize(t,s.currentFontSize,c,s.contentWidth,a);if(!u)return;let p=Math.floor(u);r.set("--fit-font-size",String(p));let{lineHeightPx:g,currentFontSize:m,contentWidth:h}=s;if(g>0&&m>0){let f=g*(p/m);f>0&&(r.set("--fit-scale-y",String(window.innerHeight/f)),r.set("--fit-aspect-ratio",String(h/f)))}}}finally{t.innerHTML=l}}solveRenderedFitFontSize(t,e,r,i,n){if(!Number.isFinite(e)||!Number.isFinite(r)||e<=0||r<=0)return null;let s=this.measureScopeAtFontSize(t,n,e);if(s<=0)return null;if(Math.abs(i-s)<.01)return e;let o=Math.abs(r-e)<.01?s:this.measureScopeAtFontSize(t,n,r);if(o<=0)return e*(i/s);let a=(o-s)/(r-e);if(!Number.isFinite(a)||Math.abs(a)<1e-4)return e*(i/s);let l=e+(i-s)/a;return!Number.isFinite(l)||l<=0?null:l}measureScopeAtFontSize(t,e,r){if(e){let s=Array.from(t.querySelectorAll(".-s-char")),o=s.map(l=>l.style.fontSize);s.forEach(l=>{l.style.fontSize=`${r}px`}),t.offsetWidth;let a=this.measureCharScopeWidth(t);return s.forEach((l,c)=>{l.style.fontSize=o[c]}),a}let i=t.style.fontSize;t.style.fontSize=`${r}px`,t.offsetWidth;let n=this.measureContentWidth(t);return t.style.fontSize=i,n}measureCharScopeWidth(t){let e=0;Array.from(t.querySelectorAll(".-s-char")).forEach(o=>{let a=o.getBoundingClientRect(),l=window.getComputedStyle(o);e+=a.width+(parseFloat(l.marginLeft)||0)+(parseFloat(l.marginRight)||0)});let i=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),n=i.nextNode();for(;n;){let o=n.parentElement,a=!!o?.closest(".-s-char"),l=!!o&&!o.classList.contains("-s-char")&&!o.classList.contains("-s-word")&&!o.classList.contains("-s-line")&&!o.querySelector(".-s-char, .-s-word, .-s-line");if(!a&&!l&&n.textContent?.length){let c=document.createRange();c.selectNodeContents(n),e+=c.getBoundingClientRect().width}n=i.nextNode()}return Array.from(t.querySelectorAll("*")).filter(o=>{let a=o;return!a.classList.contains("-s-char")&&!a.classList.contains("-s-word")&&!a.classList.contains("-s-line")&&!a.querySelector(".-s-char, .-s-word, .-s-line")}).forEach(o=>{e+=o.getBoundingClientRect().width}),e}measureContentWidth(t){if(!t.childNodes.length)return t.getBoundingClientRect().width;let e=document.createRange();return e.selectNodeContents(t),e.getBoundingClientRect().width}computeFitFontSize(t,e,r,i){let n=i!==void 0?r-i:0,s=r-n;return s<=0?t*(e/r):t*(e-n)/s}computeValue(t,e,r){if(t.align.startsWith("random")){let i=t.random?.min??0,n=t.random?.max??r-1;return Math.floor(Math.random()*(n-i+1))+i}switch(t.align){case"start":return e;case"end":return r-e-1;case"center":{let i=Math.floor((r-1)/2);return Math.abs(e-i)}default:return e}}applyCalculatedValues(t,e){let r=s=>s.words.reduce((o,a)=>o+a.chars.length,0),i=t.reduce((s,o)=>s+o.words.length,0),n=t.reduce((s,o)=>s+o.words.reduce((a,l)=>a+l.chars.length,0),0);t.forEach((s,o)=>{e.line&&(s.calculatedValues=e.line.map(a=>({type:"line",align:a.align,value:this.computeValue(a,o,t.length)}))),s.words.forEach(a=>{e.word&&(a.calculatedValues=e.word.map(c=>({type:"word",align:c.align,value:this.computeValue(c,a.wordIndexGlobal,i)}))),e.wordLine&&(a.calculatedValues??=[],a.calculatedValues.push(...e.wordLine.map(c=>({type:"wordLine",align:c.align,value:this.computeValue(c,a.wordIndexInLine,s.words.length)}))));let l=r(s);a.chars.forEach(c=>{let u=[];e.char&&u.push(...e.char.map(p=>({type:"char",align:p.align,value:this.computeValue(p,c.charIndexGlobal,n)}))),e.charWord&&u.push(...e.charWord.map(p=>({type:"charWord",align:p.align,value:this.computeValue(p,c.charIndexInWord,a.chars.length)}))),e.charLine&&u.push(...e.charLine.map(p=>({type:"charLine",align:p.align,value:this.computeValue(p,c.charIndexInLine,l)}))),c.calculatedValues=u})})})}escapeAttribute(t){return t.replace(/src="(https?:\/\/[^"\s]+)"/g,"src=$1")}};var Jr=class extends x{canvas;context;history=[];maxPoints=0;height=0;value=0;target=0;constructor(t){super(t),this._type=2}onInit(){this.initCanvas(),this.maxPoints=this.canvas.width}onScroll(t){let e=Math.abs(t.scroll.displacement);this.value=e,this.history.push(e),this.history.length>this.maxPoints&&this.history.shift(),this.draw()}draw(){let t=this.context,e=this.canvas.width,r=this.canvas.height;t.clearRect(0,0,e,r),t.strokeStyle="red",t.lineWidth=2,t.beginPath(),this.history.forEach((i,n)=>{let s=n,o=r-i*this.height;n===0?t.moveTo(s,o):t.lineTo(s,o)}),t.stroke()}initCanvas(){let t=document.createElement("canvas"),e=window.innerWidth*.5;this.height=window.innerHeight/15-20,t.width=e,t.height=this.height,Object.assign(t.style,{position:"fixed",bottom:`${window.innerHeight/20+10}px`,left:"50%",transform:"translateX(-50%)",backgroundColor:"#000000",border:"1px solid rgba(255, 255, 255, 0.2)",zIndex:"1000",pointerEvents:"none"}),this.canvas=t,this.context=t.getContext("2d"),document.body.appendChild(t)}setTarget(t){this.target=t}clear(){this.canvas.remove(),this.history=[]}};var ht="data-fps",ti=class extends x{displayElement=null;intervalId=0;frameCount=0;fpsElements=new Set;observer=null;lastFps=-1;constructor(t){super(t),this._type=2}onInit(){this.data.system.fpsTracker&&this.createDisplayElement(),this.events.on("tracker:fps:visible",this.onVisibilityChange.bind(this)),this.scanElements(),this.observeDOM(),this.intervalId=window.setInterval(()=>{this.updateFPS(this.frameCount),this.frameCount=0},1e3)}onFrame(t){this.frameCount++}destroy(){clearInterval(this.intervalId),this.observer?.disconnect(),this.removeDisplayElement(),this.fpsElements.clear()}onVisibilityChange(t){t?this.createDisplayElement():this.removeDisplayElement()}removeDisplayElement(){this.displayElement?.remove(),this.displayElement=null}updateFPS(t){if(t===this.lastFps)return;this.lastFps=t;let e=String(t);for(let r of this.fpsElements)r.isConnected&&r.setAttribute(ht,e);this.displayElement&&this.displayElement.setAttribute(ht,e),this.events.emit("fps",t)}scanElements(){this.fpsElements.clear(),document.querySelectorAll(`[${ht}]`).forEach(t=>{t!==this.displayElement&&this.fpsElements.add(t)})}observeDOM(){this.observer=new MutationObserver(t=>{let e=!1;for(let r of t){for(let i of Array.from(r.addedNodes))if(i.nodeType===Node.ELEMENT_NODE){let n=i;n.hasAttribute(ht)&&(e=!0),n.querySelector(`[${ht}]`)&&(e=!0)}for(let i of Array.from(r.removedNodes))i.nodeType===Node.ELEMENT_NODE&&this.fpsElements.delete(i)}e&&this.scanElements()}),this.observer.observe(document.body,{childList:!0,subtree:!0})}createDisplayElement(){if(this.displayElement)return;let t=document.createElement("div");Object.assign(t.style,{position:"fixed",bottom:"10px",right:"10px",backgroundColor:"#000",color:"#fff",padding:"4px 8px",fontSize:"12px",fontFamily:"monospace",border:"1px solid rgba(255,255,255,0.2)",zIndex:"1000",pointerEvents:"none"}),t.setAttribute(ht,"0"),document.body.appendChild(t);let e="string-fps-tracker-style";if(!document.getElementById(e)){let r=document.createElement("style");r.id=e,r.innerHTML=`
19
+ `,document.head.appendChild(t)}createScrollbar(){this.scrollbar=document.createElement("div"),this.scrollbar.classList.add("scrollbar"),this.thumb=document.createElement("div"),this.thumb.classList.add("thumb"),this.scrollbar.appendChild(this.thumb),document.body.appendChild(this.scrollbar),this.scrollbarStateHorizontal=new Ve(this.data,this.scrollbar,this.thumb,this.requestScrollTo),this.scrollbarStateVertical=new We(this.data,this.scrollbar,this.thumb,this.requestScrollTo),this.scrollbarState=this.scrollbarStateVertical}updateThumb(){this.scrollbarState.updateThumb()}mouseDownEvent(t){this.isDragging=!0,this.scrollbarState.mouseDownEvent(t),document.body.style.userSelect="none",this.scrollbar.classList.add("-touch")}mouseMoveEvent(t){this.isDragging&&this.scrollbarState.mouseMoveEvent(t)}mouseUpEvent(){this.isDragging=!1,document.body.style.userSelect="",this.hideScrollbar(),this.scrollbar.classList.remove("-touch")}showScrollbar(){this.scrollbar.classList.add("-scroll")}hideScrollbar(){this.scrollTimeout&&clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout(()=>{this.scrollbar.classList.remove("-scroll")},1e3)}};var Et={BEFORE_ELEMENT:"-before-element",AFTER_ELEMENT:"-after-element"};function ds(d){if(!d||!Array.isArray(d.chars)||d.chars.length===0)return[];let t=null;for(let e of d.chars){let r=e.splitClass??[];if(r.length!==0){if(t===null){t=r;continue}if(r.length!==t.length)return[];for(let i=0;i<r.length;i++)if(r[i]!==t[i])return[]}}return t??[]}function Kr(d){return d.chars[0]?.token?.meta?.wrappers??[]}function cs(d,t,e){if(e.trimInlineGaps!==!0||!t)return!1;let r=Kr(d),i=Kr(t);if(r.length===0||i.length===0)return!1;if(r.length!==i.length)return!0;for(let n=0;n<r.length;n++)if(r[n].id!==i[n].id)return!0;return!1}function Xi(d,t,e){let r=document.createDocumentFragment(),i=K(t,"line")||K(t,"charLine")||K(t,"wordLine"),n=0,s=K(t,"char")||K(t,"charLine")||K(t,"charWord"),o=0;d.forEach(p=>o+=p.words.length);let a=0;d.forEach(p=>p.words.forEach(g=>a+=g.chars.length));let l=d.length,c=o,u=new Map;return d.forEach((p,g)=>{let m=g===d.length-1,h=r,f="";i&&(h=document.createElement("span"),h.setAttribute("aria-hidden","true"),h.classList.add("-s-line"),p.isBeforeElement&&h.classList.add(Et.BEFORE_ELEMENT),p.isAfterElement&&h.classList.add(Et.AFTER_ELEMENT),h.style.setProperty("--line-index",String(p.lineIndex)),h.style.setProperty("--word-total",String(p.words.length)),p.fitFontSize!==void 0&&h.style.setProperty("--fit-font-size",String(p.fitFontSize)),Xr(h,p.calculatedValues,t));let b=[],y=h;p.words.forEach((v,S)=>{let E=S===p.words.length-1,M=Kr(v),C=0;for(;C<b.length&&C<M.length&&b[C].info.id===M[C].id;)C++;for(;b.length>C;)b.pop();y=b.length>0?b[b.length-1].element:h;for(let T=C;T<M.length;T++){let P=M[T],R=document.createElement(P.tag);for(let[B,W]of P.attributes)R.setAttribute(B,W);y.appendChild(R),b.push({info:P,element:R}),y=R}if(v.chars.length===1&&v.chars[0].token.type==="element"){let T=v.chars[0].token.node.cloneNode(!0);y.appendChild(T);return}let I=v.chars.map(T=>T.char).join("");I&&(f+=f.length===0||v.noSpaceBefore?I:` ${I}`);let H=K(t,"word")||K(t,"charWord")||K(t,"wordLine"),w=H?document.createElement("span"):y,_=ds(v);if(H&&(w.setAttribute("aria-hidden","true"),w.classList.add("-s-word"),v.isBeforeElement&&w.classList.add(Et.BEFORE_ELEMENT),v.isAfterElement&&w.classList.add(Et.AFTER_ELEMENT),w.style.setProperty("--word-index",String(v.wordIndexGlobal)),w.style.setProperty("--char-total",String(v.chars.length)),w.setAttribute("data-split-content",I),Xr(w,v.calculatedValues,t),_.length&&w.classList.add(..._)),s)v.chars.forEach((T,P)=>{if(T.char===" "||T.char===" ")return;let R=document.createElement("span");R.setAttribute("aria-hidden","true");let B=R;B.classList.add("-s-char"),T.isBeforeElement&&B.classList.add(Et.BEFORE_ELEMENT),T.isAfterElement&&B.classList.add(Et.AFTER_ELEMENT),B.textContent=T.char,B.setAttribute("data-split-content",T.char),B.style.setProperty("--char-index",String(n++));let W=v.chars[P+1];if(W){let z=e.getKerning(T.char,W.char);Math.abs(z)>.01&&(B.style.setProperty("--kerning",`${z.toFixed(2)}px`),B.style.marginRight="var(--kerning)")}Xr(B,T.calculatedValues,t);let N=T.splitClass??[];N.length&&(!_.length||!H)&&B.classList.add(...N),w.appendChild(R)});else{let T=document.createTextNode(I);w.appendChild(T)}H&&y.appendChild(w);let k=p.words[S+1],O=k?.noSpaceBefore||cs(v,k,t);i?E?m||h.appendChild(document.createElement("br")):O||w.appendChild(document.createTextNode("\xA0")):!E&&!O&&w.appendChild(document.createTextNode("\xA0"))}),i&&(h.setAttribute("data-split-content",f),r.appendChild(h))}),i&&u.set("--line-global-total",String(l)),s&&u.set("--char-global-total",String(a)),(K(t,"word")||K(t,"charWord")||K(t,"wordLine"))&&u.set("--word-global-total",String(c)),{fragment:r,extraProps:u}}function Xr(d,t,e){if(t)for(let r of t){if(!us(r.type,r.align,e))continue;let i=ps(r.type,r.align);d.style.setProperty(i,String(r.value))}}function us(d,t,e){let r=e[d]??[];return Array.isArray(r)&&r.some(i=>t.startsWith("random")?i.align.startsWith("random"):i.align===t)}function ps(d,t){let e=t.startsWith("random")?"random":t;return`--${d}-${e}`}function K(d,t){return Array.isArray(d[t])&&d[t].length>0}var gs=new Set(["img","video","audio","canvas","iframe","object","svg","input","textarea","select","button","area","base","col","embed","hr","link","meta","param","source","track","wbr","picture","table"]);function hs(d){let t=[];for(let e=0;e<d.attributes.length;e++){let r=d.attributes[e];t.push([r.name,r.value])}return t}var At=0;function Ki(d){At=0;let t=[],e=(i,n)=>{n&&Object.keys(n).length&&(i.meta={...i.meta||{},...n}),t.push(i)},r=(i,n)=>{if(i.nodeType===Node.ELEMENT_NODE){let s=i,o=s.tagName.toLowerCase();if(o==="split-class"){let a=(s.getAttribute("class")??"").split(/\s+/).filter(Boolean),l={...n||{},splitClass:[...n?.splitClass??[],...a]};s.childNodes.forEach(c=>r(c,l));return}if(o==="br"){e({type:"br",id:`br_${At++}`,node:s,tagName:"br"},n);return}if(!gs.has(o)&&s.childNodes.length>0){let a={id:`wrapper_${At++}`,tag:o,attributes:hs(s)},l=n?.wrappers??[],c={...n||{},wrappers:[...l,a]};s.childNodes.forEach(u=>r(u,c));return}e({type:"element",id:`el_${At++}`,node:s,tagName:o},n);return}if(i.nodeType===Node.TEXT_NODE){let s=i.nodeValue??"",o=`text_${At++}`;s.trim()?e({type:"text",id:o,node:i,content:s},n):e({type:"space",id:o,node:i,content:s},n);return}e({type:"other",id:`node_${At++}`,node:i},n)};return d.forEach(i=>r(i)),t}var Ne=class{ctx;font="";cache={kerning:new Map,charWidth:new Map};constructor(t){let e=document.createElement("canvas");this.ctx=e.getContext("2d"),this.setFontFromElement(t)}setFontFromElement(t){let e=window.getComputedStyle(t),r=`${e.fontStyle} ${e.fontVariant} ${e.fontWeight} ${e.fontSize}/${e.lineHeight} ${e.fontFamily}`;r!==this.font&&(this.font=r,this.ctx.font=this.font,this.cache.kerning.clear(),this.cache.charWidth.clear())}getCharWidth(t){if(this.cache.charWidth.has(t))return this.cache.charWidth.get(t);let e=this.ctx.measureText(t).width;return this.cache.charWidth.set(t,e),e}getKerning(t,e){let r=`${t}${e}`,i=`${this.font}|${r}`;if(this.cache.kerning.has(i))return this.cache.kerning.get(i);let n=this.ctx.measureText(r).width,s=this.getCharWidth(t)+this.getCharWidth(e),o=n-s;return this.cache.kerning.set(i,o),o}measureWord(t){let e=0;for(let r=0;r<t.length;r++){let i=t[r];if(e+=this.getCharWidth(i),r>0){let n=t[r-1];e+=this.getKerning(n,i)}}return e}};function ms(d,t){let e=t.contentWidth,r=d.cloneNode(!0);r.removeAttribute("string"),r.removeAttribute("data-string"),r.removeAttribute("string-split"),r.removeAttribute("data-string-split"),r.removeAttribute("string-id"),r.removeAttribute("data-string-id"),r.removeAttribute("string-inited"),r.classList.remove("-splitted","-inview","-restored"),r.innerHTML=d.getAttribute("string-split-original-html")??d.innerHTML,r.style.setProperty("position","absolute","important"),r.style.setProperty("visibility","hidden","important"),r.style.setProperty("pointer-events","none","important"),r.style.setProperty("left","0","important"),r.style.setProperty("top","0","important"),r.style.setProperty("display","block","important"),r.style.setProperty("width",`${e}px`,"important"),r.style.setProperty("min-width",`${e}px`,"important"),r.style.setProperty("max-width",`${e}px`,"important"),r.style.setProperty("padding","0","important"),r.style.setProperty("border","0","important"),r.style.setProperty("margin","0","important"),r.style.setProperty("transform","none","important"),r.style.setProperty("scale","1","important"),(d.parentElement??document.body).appendChild(r);let n=new Map,s=document.createTreeWalker(d,NodeFilter.SHOW_ALL),o=document.createTreeWalker(r,NodeFilter.SHOW_ALL),a=s.currentNode,l=o.currentNode;for(n.set(a,l);(a=s.nextNode())&&(l=o.nextNode());)n.set(a,l);return{resolveNode(c){return n.get(c)??c},cleanup(){r.remove()}}}var ze=class{id="flex";supports(t,e){return e.display==="flex"||e.display==="inline-flex"}createSource(t,e){return ms(t,e)}};function fs(){return{resolveNode(d){return d},cleanup(){}}}var Ge=class{id="inline-flow";supports(t,e){return e.display!=="flex"&&e.display!=="inline-flex"}createSource(t,e){return fs()}};var Zr=[new ze,new Ge];function vs(d){let t=window.getComputedStyle(d),e=d.getBoundingClientRect(),r=parseFloat(t.borderLeftWidth)||0,i=parseFloat(t.borderRightWidth)||0,n=parseFloat(t.paddingLeft)||0,s=parseFloat(t.paddingRight)||0;return Math.max(0,e.width-r-i-n-s)}function bs(d){let t=d.parentElement;for(;t;){let e=window.getComputedStyle(t),r=e.display;if(!(r==="inline"||r==="inline-block"||r==="ruby")){let n=t.getBoundingClientRect(),s=parseFloat(e.borderLeftWidth)||0,o=parseFloat(e.borderRightWidth)||0,a=parseFloat(e.paddingLeft)||0,l=parseFloat(e.paddingRight)||0;return Math.max(0,n.width-s-o-a-l)}t=t.parentElement}return 0}function Zi(d){let t=window.getComputedStyle(d),e=vs(d),r=bs(d),i=t.display==="inline"||t.display==="inline-flex"||t.display==="inline-grid",n=e;return(i&&r>e+1&&!d.style.width||n<=0)&&(n=r),{display:t.display,contentWidth:n,ownContentWidth:e,blockContainerContentWidth:r}}function Qi(d,t){return Zr.find(e=>e.supports(d,t))??Zr[Zr.length-1]}var $e=typeof Intl<"u"&&"Segmenter"in Intl?new Intl.Segmenter(void 0,{granularity:"grapheme"}):null;function Ji(d,t){return t.segment!=="visual"?ys(d):Ls(d)}function tn(d,t){return t.segment!=="visual"||!d||!$e?Array.from(d):Array.from($e.segment(d),({segment:e})=>e)}function ys(d){let t=[],e=/\S+/g,r;for(;(r=e.exec(d))!==null;)Ss(r[0],r.index,t);return t}function Ss(d,t,e){let r=0;for(let i=1;i<d.length-1;i++){let n=d[i];if(n==="-"||n==="\u2010"){let s=d.slice(r,i+1),o=t+r;e.push({text:s,start:o,end:o+s.length,noSpaceBefore:e.length>0&&o===e[e.length-1].end}),r=i+1}}if(r<d.length){let i=d.slice(r),n=t+r;e.push({text:i,start:n,end:n+i.length,noSpaceBefore:e.length>0&&n===e[e.length-1].end})}}function Ls(d){let t=Es(d),e=[],r=null,i=()=>{r&&(e.push({text:r.text,start:r.start,end:r.end,noSpaceBefore:e.length>0&&r.start===e[e.length-1].end}),r=null)};return t.forEach(({segment:n,index:s})=>{if(/\s/u.test(n)){i();return}let o=ws(n),a=s+n.length;if(o==="visual"){if(Ms(n)){if(r){r.text+=n,r.end=a;return}if(e.length>0&&s===e[e.length-1].end){e[e.length-1].text+=n,e[e.length-1].end=a;return}}i(),e.push({text:n,start:s,end:a,noSpaceBefore:e.length>0&&s===e[e.length-1].end});return}let l=r!==null&&(r.text.endsWith("-")||r.text.endsWith("\u2010"));if(!r||r.end!==s||l){i(),r={text:n,start:s,end:a};return}r.text+=n,r.end=a}),i(),e}function Es(d){if(!$e){let t=[],e=0;return Array.from(d).forEach(r=>{t.push({segment:r,index:e}),e+=r.length}),t}return Array.from($e.segment(d),({segment:t,index:e})=>({segment:t,index:e}))}function Ms(d){return/[\)\]\})》」』】〕〗〙〛〉》〞〟›»"'\u3001\u3002\uFF0C\uFF0E\uFF01\uFF1F\uFF1A\uFF1B\u2026]/u.test(d)}function ws(d){return/\p{Script=Han}|\p{Script=Hiragana}|\p{Script=Katakana}/u.test(d)?"visual":/[\p{Script=Latin}\p{Script=Cyrillic}\p{Script=Greek}\p{Script=Hangul}\p{Number}]/u.test(d)||/[\p{Mark}\p{Connector_Punctuation}\p{Dash_Punctuation}'’._+#&/@]/u.test(d)?"word":"visual"}function xs(d,t){return!d?.length&&!t?.length?!0:!d||!t||d.length!==t.length?!1:d.every((e,r)=>e.id===t[r].id)}function Cs(d,t){return d.length!==t.length?!1:d.every((e,r)=>e===t[r])}function nn(d,t,e,r){let i=document.createRange(),n=[],s=!1,o=!1,a=!1,l,c=[];try{for(let u=0;u<d.length;u++){let p=d[u];switch(p.type){case"br":{n.push({token:p,rect:new DOMRect(0,0,0,0)}),o=!0,a=!1,l=void 0,c=[],s=!1;break}case"space":o=!Ts(d,u,r);break;case"other":a=!1,o=!1;break;case"text":{let g=p.content,m=/^\s/.test(g),h=p.meta?.wrappers??[],f=p.meta?.splitClass??[],b=Ji(g,r),y=0;for(let v of b){let S=v.text,E=new DOMRect(0,0,0,0),M=t.resolveNode(p.node);try{i.setStart(M,v.start),i.setEnd(M,v.end),E=i.getBoundingClientRect()}catch{}let C=y===0&&!m&&!o&&a,A=y>0||xs(l,h),I=y===0&&!Cs(c,f),H=e.measureWord(S),w=new DOMRect(E.x,E.y,H,E.height),_={...p.meta||{},joinPrev:C&&A&&!I,noSpaceBefore:v.noSpaceBefore||C&&(!A||I)};s&&y===0&&(_.isAfterElement=!0,s=!1),n.push({token:{type:"text",id:"",node:p.node,content:S,meta:_},rect:w,browserWidth:E.width}),y++}y>0&&(o=/\s$/.test(g),a=!0,l=h,c=f);break}case"element":{let g=t.resolveNode(p.node).getBoundingClientRect();n.push({token:p,rect:g,browserWidth:g.width});let m=n[n.length-2];m?.token.type==="text"&&(m.token.meta={...m.token.meta||{},isBeforeElement:!0}),s=!0,a=!1,c=[],o=!1;break}}}}finally{i.detach?.(),t.cleanup()}return n}function Ts(d,t,e){if(e.trimInlineGaps!==!0)return!1;let r=d[t];if(r?.type!=="space"||!/[\n\r\t]/.test(r.content)&&r.content.length<=1)return!1;let i=Ps(d,t-1),n=As(d,t+1);if(!i||!n||!en(i)||!en(n))return!1;let s=rn(i),o=rn(n);return s.length===0||o.length===0?!1:s.join("|")!==o.join("|")}function Ps(d,t){for(let e=t;e>=0;e--){let r=d[e];if(!(r.type==="space"||r.type==="other"))return r}return null}function As(d,t){for(let e=t;e<d.length;e++){let r=d[e];if(!(r.type==="space"||r.type==="other"))return r}return null}function en(d){return d.type==="text"||d.type==="element"}function rn(d){return(d.meta?.wrappers??[]).map(e=>e.id)}function sn(d,t,e,r){let i=Zi(t),s=Qi(t,i).createSource(t,i);return nn(d,s,e,r)}var on=5;function an(d,t,e,r){let i=[],n=null,s=0,o=0,a=0,l=0;return d.forEach(c=>{let u=c.token,p=u.meta?.isBeforeElement??!1,g=u.meta?.isAfterElement??!1;if(u.type==="br"){n=null;return}if(u.type==="text"){let m=u.content,h=u.meta?.splitClass??[],f=!!u.meta?.joinPrev,b=[],y=0,v=tn(m,r);for(let w=0;w<v.length;w++){let _=v[w],k=w>0?v[w-1]:null,O=e.getCharWidth(_),T=k?e.getKerning(k,_):0;y+=T;let P=new DOMRect(c.rect.left+y,c.rect.top,O,c.rect.height),R={char:_,rect:P,token:u,charIndexInWord:w,charIndexInLine:0,charIndexGlobal:o++};h.length&&(R.splitClass=h),b.push(R),y+=O}if(b.length>0){let w=b[b.length-1];p&&(w.isBeforeElement=!0),g&&(w.isAfterElement=!0)}let S=Math.round(c.rect.top),E=Math.round(s);if((!n||Math.abs(S-E)>on)&&(s=S,n={words:[],rect:c.rect,lineIndex:i.length},l=0,i.push(n)),!n)return;let C=c.rect.left+(c.browserWidth??c.rect.width);if(f&&n.words.length>0){let w=n.words[n.words.length-1],_=n.words.reduce((O,T)=>O+T.chars.length,0),k=w.chars.length;b.forEach((O,T)=>{O.charIndexInLine=_+T,O.charIndexInWord=k+T}),w.chars.push(...b),w.rect=Ue([w.rect,c.rect]),n.rect=Ue(n.words.map(O=>O.rect)),l=Math.max(l,C),n.fitWidth=l-n.rect.left,n.browserWordWidthSum=(n.browserWordWidthSum??0)+(c.browserWidth??c.rect.width),p&&(w.isBeforeElement=!0),g&&(w.isAfterElement=!0);return}let A=n.words.length,I=n.words.reduce((w,_)=>w+_.chars.length,0);b.forEach((w,_)=>w.charIndexInLine=I+_);let H={chars:b,rect:c.rect,wordIndexGlobal:a++,wordIndexInLine:A,isBeforeElement:p,isAfterElement:g,noSpaceBefore:!!u.meta?.noSpaceBefore};n.words.push(H),n.rect=Ue(n.words.map(w=>w.rect)),l=Math.max(l,C),n.fitWidth=l-n.rect.left,n.browserWordWidthSum=(n.browserWordWidthSum??0)+(c.browserWidth??c.rect.width),p&&(n.isBeforeElement=!0),g&&(n.isAfterElement=!0);return}if(u.type==="element"){let m=c.rect,h=Math.round(m.top),f=Math.round(s);if((!n||Math.abs(h-f)>on)&&(s=h,n={words:[],rect:m,lineIndex:i.length},l=0,i.push(n)),!n)return;let y=n.words.length,v=n.words.reduce((M,C)=>M+C.chars.length,0),E={chars:[{char:"[E]",rect:m,token:u,charIndexInWord:0,charIndexInLine:v,charIndexGlobal:o++}],rect:m,wordIndexGlobal:a++,wordIndexInLine:y,isBeforeElement:!1,isAfterElement:!1};n.words.push(E),n.rect=Ue(n.words.map(M=>M.rect)),l=Math.max(l,c.rect.left+(c.browserWidth??c.rect.width)),n.fitWidth=l-n.rect.left,n.browserWordWidthSum=(n.browserWordWidthSum??0)+(c.browserWidth??c.rect.width)}}),i}function Ue(d){if(d.length===0)return new DOMRect(0,0,0,0);let t=Math.min(...d.map(n=>n.left)),e=Math.min(...d.map(n=>n.top)),r=Math.max(...d.map(n=>n.right)),i=Math.max(...d.map(n=>n.bottom));return new DOMRect(t,e,r-t,i-e)}var Qr=class extends x{lastSplitWidth=new WeakMap;constructor(t){super(t),this.htmlKey="split",this.permissions.mobile.rebuild.height=!1,this.permissions.mobile.rebuild.width=!1}onInit(){let t=()=>{this.objectsOnPage.forEach(e=>{let r=e.htmlElement;if(!r)return;let i=this.getSplitOptions(r);this.needsForcedRebuildOnFontLoad(i)&&this.lastSplitWidth.delete(r),this.onObjectConnected(e)})};document.fonts.ready.then(t),document.fonts.addEventListener("loadingdone",t)}onObjectDisconnected(t){t.htmlElement&&this.lastSplitWidth.delete(t.htmlElement)}onResizeWidth(){this.objectsOnPage.forEach(t=>{let e=t.htmlElement;if(!e)return;let r=this.getSplitOptions(e);this.needsWidthRebuild(r)&&this.onObjectConnected(t)})}onObjectConnected(t){let e=t.htmlElement;if(!e)return;let r=this.isDebugEnabled(e),i=e.classList.contains("-splitted"),n=e.getAttribute("string-split-original-html"),s=e.getAttribute("string-split-original");n===null&&s!==null&&i&&(n=s,s=this.extractTextContent(n),e.setAttribute("string-split-original-html",n),e.setAttribute("string-split-original",s)),(!i||n===null||s===null)&&(n=this.escapeAttribute(e.innerHTML),s=e.textContent??"",e.setAttribute("string-split-original-html",n),e.setAttribute("string-split-original",s)),i&&e.classList.remove("-splitted");let o=window.getComputedStyle(e),a=this.getElementContentWidth(e,o);r&&this.logConnectionStart(e,{isAlreadySplit:i,currentContentWidth:a,lastWidth:this.lastSplitWidth.get(e),originalHtml:n,originalText:s});let l=this.lastSplitWidth.get(e);if(i&&l!==void 0&&Math.abs(a-l)<1){i&&e.classList.add("-splitted");return}this.lastSplitWidth.set(e,a);try{t.htmlElement.innerHTML=n;let c=e.getAttribute("string-split")??e.getAttribute("data-string-split")??"",u=this.tools.optionsParser.process({attributeValue:c}),{fragment:p,result:g,extraProps:m}=this.split(e,u,r);t.setProperty("nodes",p.childNodes),e.setAttribute("aria-label",s),e.innerHTML="",e.appendChild(g),this.applyFlexLineBreaks(e,u),e.classList.add("-splitted"),m.forEach((f,b)=>{e.style.setProperty(b,f)}),r&&this.logRenderedState(e,u,m);let h=e.getAttribute("string-split-restore-after");h&&!isNaN(Number(h))&&setTimeout(()=>{e.innerHTML=n,e.classList.add("-restored")},Number(h))}finally{e.classList.contains("-splitted")||e.classList.add("-splitted")}}extractTextContent(t){let e=document.createElement("div");return e.innerHTML=t,e.textContent??""}getSplitOptions(t){let e=t.getAttribute("string-split")??t.getAttribute("data-string-split")??"";return this.tools.optionsParser.process({attributeValue:e})}hasLineDrivenSplit(t){return(t.line?.length??0)>0||(t.wordLine?.length??0)>0||(t.charLine?.length??0)>0}needsWidthRebuild(t){return this.hasLineDrivenSplit(t)||t.fit===!0}needsForcedRebuildOnFontLoad(t){return this.needsWidthRebuild(t)}getDebugStoreKey(t){let e=t.getAttribute("string-debug-save")??t.getAttribute("data-string-debug-save")??"";return e?e==="true"||e==="1"?this.getDebugLabel(t):e:null}writeDebugRecord(t,e,r){let i=this.getDebugStoreKey(t);if(!i)return;let n=window,s=n.__stringSplitDebug??={},o=s[i]??{label:this.getDebugLabel(t),timestamp:Date.now()};o.timestamp=Date.now(),o[e]=r,s[i]=o}isDebugEnabled(t){let e=t.getAttribute("string-debug")??t.getAttribute("data-string-debug")??"";return e?e===""||e==="true"||e==="1"||e.includes("split")||e==="all":!1}getDebugLabel(t){return t.getAttribute("string-id")??t.id??t.className??t.tagName.toLowerCase()}logConnectionStart(t,e){let r=window.getComputedStyle(t),i=this.captureBaselineSnapshot(t,r),n={text:e.originalText,html:e.originalHtml,baseline:i,flags:{isAlreadySplit:e.isAlreadySplit,display:r.display,whiteSpace:r.whiteSpace,position:r.position},widths:{currentContentWidth:e.currentContentWidth,lastWidth:e.lastWidth,rectWidth:t.getBoundingClientRect().width,clientWidth:t.clientWidth,parentContentWidth:this.getBlockContainerContentWidth(t)}};this.writeDebugRecord(t,"connect",n)}captureBaselineSnapshot(t,e){let r=t.getBoundingClientRect(),i=parseFloat(e.lineHeight);return{rectWidth:Number(r.width.toFixed(2)),rectHeight:Number(r.height.toFixed(2)),fontSize:Number(parseFloat(e.fontSize).toFixed(2)),lineHeight:Number.isFinite(i)?Number(i.toFixed(2)):e.lineHeight,estimatedLineCount:Number.isFinite(i)&&i>0?Number((r.height/i).toFixed(2)):null}}logSplitAnalysis(t,e,r,i){let n={tokens:e.map(s=>({type:s.type,text:this.getTokenDebugText(s),wrappers:s.meta?.wrappers?.map(o=>o.tag)??[]})),measured:r.map(s=>({type:s.token.type,text:this.getTokenDebugText(s.token),left:Number(s.rect.left.toFixed(2)),top:Number(s.rect.top.toFixed(2)),width:Number(s.rect.width.toFixed(2)),browserWidth:Number((s.browserWidth??s.rect.width).toFixed(2))})),layoutLines:i.map(s=>({index:s.lineIndex,text:s.words.map(o=>o.chars.map(a=>a.char).join("")).join(" "),wordCount:s.words.length,rect:{left:Number(s.rect.left.toFixed(2)),top:Number(s.rect.top.toFixed(2)),width:Number(s.rect.width.toFixed(2)),height:Number(s.rect.height.toFixed(2))},fitWidth:Number((s.fitWidth??s.rect.width).toFixed(2))}))};this.writeDebugRecord(t,"measure",n)}getTokenDebugText(t){return"content"in t?t.content:"tagName"in t?t.tagName:"#other"}logRenderedState(t,e,r){let i=window.getComputedStyle(t),n=Array.from(t.querySelectorAll(".-s-line")),s={mode:{attr:t.getAttribute("string-split")??t.getAttribute("data-string-split"),line:e.line?.length??0,wordLine:e.wordLine?.length??0,charLine:e.charLine?.length??0},root:{display:i.display,flexWrap:i.flexWrap,rectWidth:Number(t.getBoundingClientRect().width.toFixed(2)),rectHeight:Number(t.getBoundingClientRect().height.toFixed(2)),childCount:t.children.length,extraProps:Object.fromEntries(r.entries())},children:Array.from(t.children).map(o=>{let a=o,l=a.getBoundingClientRect();return{tag:a.tagName.toLowerCase(),className:a.className,text:a.textContent?.replace(/\s+/g," ").trim(),width:Number(l.width.toFixed(2)),height:Number(l.height.toFixed(2))}}),lineNodes:n.map((o,a)=>{let l=o.getBoundingClientRect(),c=window.getComputedStyle(o);return{index:a,text:o.getAttribute("data-split-content"),top:Number(l.top.toFixed(2)),left:Number(l.left.toFixed(2)),width:Number(l.width.toFixed(2)),height:Number(l.height.toFixed(2)),display:c.display,lineHeight:c.lineHeight,scale:c.scale,transform:c.transform}})};this.writeDebugRecord(t,"rendered",s)}applyFlexLineBreaks(t,e){if(!((e.line?.length??0)>0||(e.wordLine?.length??0)>0||(e.charLine?.length??0)>0))return;let i=window.getComputedStyle(t).display;if(i!=="flex"&&i!=="inline-flex")return;let n=Array.from(t.children).filter(s=>s.classList.contains("-s-line"));if(!(n.length<2))for(let s=0;s<n.length-1;s++){let o=document.createElement("span");o.setAttribute("aria-hidden","true"),o.classList.add("-s-line-break"),o.style.flexBasis="100%",o.style.width="0",o.style.height="0",o.style.overflow="hidden",o.style.pointerEvents="none",n[s].after(o)}}getBlockContainerContentWidth(t){let e=t.parentElement;for(;e;){let r=window.getComputedStyle(e),i=r.display;if(!(i==="inline"||i==="inline-block"||i==="ruby")){let s=e.getBoundingClientRect().width||e.clientWidth;return Math.max(0,s-(parseFloat(r.paddingLeft)||0)-(parseFloat(r.paddingRight)||0))}e=e.parentElement}return 0}getElementContentWidth(t,e=window.getComputedStyle(t)){let r=(parseFloat(e.paddingLeft)||0)+(parseFloat(e.paddingRight)||0),i=t.clientWidth||t.getBoundingClientRect().width,n=this.getBlockContainerContentWidth(t);return n>i+1&&!t.style.width&&(e.display==="inline"||e.display==="inline-flex"||e.display==="inline-grid")?Math.max(0,n-r):i>0?Math.max(0,i-r):Math.max(0,n-r)}split(t,e,r=!1){let i=new Ne(t),n=document.createDocumentFragment();t.childNodes.forEach(p=>n.appendChild(p.cloneNode(!0)));let s=Ki(t.childNodes),o=sn(s,t,i,e),a=an(o,t,i,e);r&&this.logSplitAnalysis(t,s,o,a);let l=e.fit?this.getFitContext(a,t):null,c=l?this.applyFit(a,e,l):new Map;this.applyCalculatedValues(a,e);let u=Xi(a,e,i);return c.forEach((p,g)=>u.extraProps.set(g,p)),l&&this.refineFitFontSize(t,u.fragment,u.extraProps,a,e,l),{fragment:n,result:u.fragment,extraProps:u.extraProps}}getFitContext(t,e){let r=window.getComputedStyle(e),i=parseFloat(r.fontSize);if(!i)return null;let n=this.getElementContentWidth(e,r);if(n<=0)return null;let s=0;for(let l of t){let c=l.fitWidth??l.rect.width;c>s&&(s=c)}if(s<=0)return null;let o=n;if(Math.abs(n-s)<2&&e.parentElement){let l=window.getComputedStyle(e.parentElement),c=e.parentElement.clientWidth-(parseFloat(l.paddingLeft)||0)-(parseFloat(l.paddingRight)||0);c>n&&(o=c)}let a=parseFloat(r.lineHeight)||0;return{currentFontSize:i,contentWidth:o,lineHeightPx:a}}applyFit(t,e,r){let i=new Map,{currentFontSize:n,contentWidth:s}=r,o=(e.line?.length??0)>0||(e.wordLine?.length??0)>0||(e.charLine?.length??0)>0,a=(e.char?.length??0)>0||(e.charLine?.length??0)>0||(e.charWord?.length??0)>0;if(o)for(let l of t){let c=l.fitWidth??l.rect.width;c>0&&(l.fitFontSize=this.computeFitFontSize(n,s,c,a?l.browserWordWidthSum:void 0))}else{let l=t.reduce((p,g)=>(g.fitWidth??g.rect.width)>(p.fitWidth??p.rect.width)?g:p,t[0]),c=l.fitWidth??l.rect.width,u=this.computeFitFontSize(n,s,c,a?l.browserWordWidthSum:void 0);i.set("--fit-font-size",String(Math.floor(u)))}return i}refineFitFontSize(t,e,r,i,n,s){let o=(n.line?.length??0)>0||(n.wordLine?.length??0)>0||(n.charLine?.length??0)>0,a=(n.char?.length??0)>0||(n.charLine?.length??0)>0||(n.charWord?.length??0)>0,l=t.innerHTML;try{if(t.innerHTML="",t.appendChild(e.cloneNode(!0)),o){let c=Array.from(t.querySelectorAll(".-s-line")),u=Array.from(e.querySelectorAll(".-s-line"));c.forEach((p,g)=>{let m=u[g];if(!m)return;let h=parseFloat(m.style.getPropertyValue("--fit-font-size"));if(!h)return;let f=this.solveRenderedFitFontSize(p,s.currentFontSize,h,s.contentWidth,a);f&&(i[g].fitFontSize=f,m.style.setProperty("--fit-font-size",String(Math.floor(f))))})}else{let c=parseFloat(r.get("--fit-font-size")??"");if(!c)return;let u=this.solveRenderedFitFontSize(t,s.currentFontSize,c,s.contentWidth,a);if(!u)return;let p=Math.floor(u);r.set("--fit-font-size",String(p));let{lineHeightPx:g,currentFontSize:m,contentWidth:h}=s;if(g>0&&m>0){let f=g*(p/m);f>0&&(r.set("--fit-scale-y",String(window.innerHeight/f)),r.set("--fit-aspect-ratio",String(h/f)))}}}finally{t.innerHTML=l}}solveRenderedFitFontSize(t,e,r,i,n){if(!Number.isFinite(e)||!Number.isFinite(r)||e<=0||r<=0)return null;let s=this.measureScopeAtFontSize(t,n,e);if(s<=0)return null;if(Math.abs(i-s)<.01)return e;let o=Math.abs(r-e)<.01?s:this.measureScopeAtFontSize(t,n,r);if(o<=0)return e*(i/s);let a=(o-s)/(r-e);if(!Number.isFinite(a)||Math.abs(a)<1e-4)return e*(i/s);let l=e+(i-s)/a;return!Number.isFinite(l)||l<=0?null:l}measureScopeAtFontSize(t,e,r){if(e){let s=Array.from(t.querySelectorAll(".-s-char")),o=s.map(l=>l.style.fontSize);s.forEach(l=>{l.style.fontSize=`${r}px`}),t.offsetWidth;let a=this.measureCharScopeWidth(t);return s.forEach((l,c)=>{l.style.fontSize=o[c]}),a}let i=t.style.fontSize;t.style.fontSize=`${r}px`,t.offsetWidth;let n=this.measureContentWidth(t);return t.style.fontSize=i,n}measureCharScopeWidth(t){let e=0;Array.from(t.querySelectorAll(".-s-char")).forEach(o=>{let a=o.getBoundingClientRect(),l=window.getComputedStyle(o);e+=a.width+(parseFloat(l.marginLeft)||0)+(parseFloat(l.marginRight)||0)});let i=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),n=i.nextNode();for(;n;){let o=n.parentElement,a=!!o?.closest(".-s-char"),l=!!o&&!o.classList.contains("-s-char")&&!o.classList.contains("-s-word")&&!o.classList.contains("-s-line")&&!o.querySelector(".-s-char, .-s-word, .-s-line");if(!a&&!l&&n.textContent?.length){let c=document.createRange();c.selectNodeContents(n),e+=c.getBoundingClientRect().width}n=i.nextNode()}return Array.from(t.querySelectorAll("*")).filter(o=>{let a=o;return!a.classList.contains("-s-char")&&!a.classList.contains("-s-word")&&!a.classList.contains("-s-line")&&!a.querySelector(".-s-char, .-s-word, .-s-line")}).forEach(o=>{e+=o.getBoundingClientRect().width}),e}measureContentWidth(t){if(!t.childNodes.length)return t.getBoundingClientRect().width;let e=document.createRange();return e.selectNodeContents(t),e.getBoundingClientRect().width}computeFitFontSize(t,e,r,i){let n=i!==void 0?r-i:0,s=r-n;return s<=0?t*(e/r):t*(e-n)/s}computeValue(t,e,r){if(t.align.startsWith("random")){let i=t.random?.min??0,n=t.random?.max??r-1;return Math.floor(Math.random()*(n-i+1))+i}switch(t.align){case"start":return e;case"end":return r-e-1;case"center":{let i=Math.floor((r-1)/2);return Math.abs(e-i)}default:return e}}applyCalculatedValues(t,e){let r=s=>s.words.reduce((o,a)=>o+a.chars.length,0),i=t.reduce((s,o)=>s+o.words.length,0),n=t.reduce((s,o)=>s+o.words.reduce((a,l)=>a+l.chars.length,0),0);t.forEach((s,o)=>{e.line&&(s.calculatedValues=e.line.map(a=>({type:"line",align:a.align,value:this.computeValue(a,o,t.length)}))),s.words.forEach(a=>{e.word&&(a.calculatedValues=e.word.map(c=>({type:"word",align:c.align,value:this.computeValue(c,a.wordIndexGlobal,i)}))),e.wordLine&&(a.calculatedValues??=[],a.calculatedValues.push(...e.wordLine.map(c=>({type:"wordLine",align:c.align,value:this.computeValue(c,a.wordIndexInLine,s.words.length)}))));let l=r(s);a.chars.forEach(c=>{let u=[];e.char&&u.push(...e.char.map(p=>({type:"char",align:p.align,value:this.computeValue(p,c.charIndexGlobal,n)}))),e.charWord&&u.push(...e.charWord.map(p=>({type:"charWord",align:p.align,value:this.computeValue(p,c.charIndexInWord,a.chars.length)}))),e.charLine&&u.push(...e.charLine.map(p=>({type:"charLine",align:p.align,value:this.computeValue(p,c.charIndexInLine,l)}))),c.calculatedValues=u})})})}escapeAttribute(t){return t.replace(/src="(https?:\/\/[^"\s]+)"/g,"src=$1")}};var Jr=class extends x{canvas;context;history=[];maxPoints=0;height=0;value=0;target=0;constructor(t){super(t),this._type=2}onInit(){this.initCanvas(),this.maxPoints=this.canvas.width}onScroll(t){let e=Math.abs(t.scroll.displacement);this.value=e,this.history.push(e),this.history.length>this.maxPoints&&this.history.shift(),this.draw()}draw(){let t=this.context,e=this.canvas.width,r=this.canvas.height;t.clearRect(0,0,e,r),t.strokeStyle="red",t.lineWidth=2,t.beginPath(),this.history.forEach((i,n)=>{let s=n,o=r-i*this.height;n===0?t.moveTo(s,o):t.lineTo(s,o)}),t.stroke()}initCanvas(){let t=document.createElement("canvas"),e=window.innerWidth*.5;this.height=window.innerHeight/15-20,t.width=e,t.height=this.height,Object.assign(t.style,{position:"fixed",bottom:`${window.innerHeight/20+10}px`,left:"50%",transform:"translateX(-50%)",backgroundColor:"#000000",border:"1px solid rgba(255, 255, 255, 0.2)",zIndex:"1000",pointerEvents:"none"}),this.canvas=t,this.context=t.getContext("2d"),document.body.appendChild(t)}setTarget(t){this.target=t}clear(){this.canvas.remove(),this.history=[]}};var ht="data-fps",ti=class extends x{displayElement=null;intervalId=0;frameCount=0;fpsElements=new Set;observer=null;lastFps=-1;constructor(t){super(t),this._type=2}onInit(){this.data.system.fpsTracker&&this.createDisplayElement(),this.events.on("tracker:fps:visible",this.onVisibilityChange.bind(this)),this.scanElements(),this.observeDOM(),this.intervalId=window.setInterval(()=>{this.updateFPS(this.frameCount),this.frameCount=0},1e3)}onFrame(t){this.frameCount++}destroy(){clearInterval(this.intervalId),this.observer?.disconnect(),this.removeDisplayElement(),this.fpsElements.clear()}onVisibilityChange(t){t?this.createDisplayElement():this.removeDisplayElement()}removeDisplayElement(){this.displayElement?.remove(),this.displayElement=null}updateFPS(t){if(t===this.lastFps)return;this.lastFps=t;let e=String(t);for(let r of this.fpsElements)r.isConnected&&r.setAttribute(ht,e);this.displayElement&&this.displayElement.setAttribute(ht,e),this.events.emit("fps",t)}scanElements(){this.fpsElements.clear(),document.querySelectorAll(`[${ht}]`).forEach(t=>{t!==this.displayElement&&this.fpsElements.add(t)})}observeDOM(){this.observer=new MutationObserver(t=>{let e=!1;for(let r of t){for(let i of Array.from(r.addedNodes))if(i.nodeType===Node.ELEMENT_NODE){let n=i;n.hasAttribute(ht)&&(e=!0),n.querySelector(`[${ht}]`)&&(e=!0)}for(let i of Array.from(r.removedNodes))i.nodeType===Node.ELEMENT_NODE&&this.fpsElements.delete(i)}e&&this.scanElements()}),this.observer.observe(document.body,{childList:!0,subtree:!0})}createDisplayElement(){if(this.displayElement)return;let t=document.createElement("div");Object.assign(t.style,{position:"fixed",bottom:"10px",right:"10px",backgroundColor:"#000",color:"#fff",padding:"4px 8px",fontSize:"12px",fontFamily:"monospace",border:"1px solid rgba(255,255,255,0.2)",zIndex:"1000",pointerEvents:"none"}),t.setAttribute(ht,"0"),document.body.appendChild(t);let e="string-fps-tracker-style";if(!document.getElementById(e)){let r=document.createElement("style");r.id=e,r.innerHTML=`
20
20
  [${ht}]::before {
21
21
  content: 'FPS: ' attr(${ht});
22
22
  }