UNPKG

scrollmoo

Version:

ScrollMoo is a pure JavaScript-based tool that lets you create high-performance, keyframed scroll animations.

15 lines (13 loc) 36.4 kB
/** * ScrollMoo v1.1.10 * Copyright (c) 2025 Marci Czebe * Released under the MIT license * https://scrollmoo.com/license * * Optimized Easing Functions by Michael "Code Poet" Pohoreski, aka Michaelangel007 * https://github.com/Michaelangel007/easing * * Easing equations based on Robert Penner's work * Reference: http://www.robertpenner.com/easing */ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e="undefined"!=typeof globalThis?globalThis:e||self).ScrollMoo=r()}(this,function(){"use strict";function e(e,r,t){return(r=function(e){var r=function(e,r){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,r);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function r(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,a)}return t}function t(t){for(var a=1;a<arguments.length;a++){var n=null!=arguments[a]?arguments[a]:{};a%2?r(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var a,n,i,o,s,l,u,f,p,g,m,h="undefined"!=typeof window?window:null,c=!1,d=null,v=/^--scrollmoo-.+/,y=0,k=0,b=[],w=0,x=0,E=[],M=!1,P=[],S={},O=["indicator","trigger"],j=["transform","filter","backdropFilter"],F=["width","height"],L=["width","height","color","background-color","opacity"],T=["ease","markers","render3D"],C=null,I=null,N=!1,q=0,D=0,V=null,z=["onEnter","onEnterReverse","onLeave","onLeaveReverse","onProgress","onAnimationComplete","onToggle"],A=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],R=e=>Math.round(1e4*e)/1e4,Q=1.70158,X=1.525*Q,Y=Q+1,B={},Z={sync:.35,duration:!1,ease:"none",markers:!1,markerId:"",triggerStartElement:"",triggerEndElement:"",triggerStart:0,triggerEnd:0,indicatorStart:0,indicatorEnd:0,render3D:!1,keyframes:B,onEnter:B,onEnterReverse:B,onLeave:B,onLeaveReverse:B,onProgress:B,onAnimationComplete:B,onToggle:B},$=e=>h.getComputedStyle(e),H=h.screen.width,U=h.screen.height,W=Math.sqrt(H*H+U*U)/h.devicePixelRatio/96,G=Math.sqrt(H*H+U*U)/W,J=()=>{o=l=h.innerWidth,s=u=h.innerHeight},K=e=>{var r=7.5625,t=2.75;return e<1/t?r*e*e:e<2/t?r*(e-=1.5/t)*e+.75:e<2.5/t?r*(e-=2.25/t)*e+.9375:r*(e-=2.625/t)*e+.984375},_={none:e=>e*(2-e),linear:e=>e,inQuad:e=>e*e,outQuad:e=>e*(2-e),inOutQuad:e=>(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1),inCubic:e=>e*e*e,outCubic:e=>--e*e*e+1,inOutCubic:e=>(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2),inQuart:e=>e*e*e*e,outQuart:e=>1- --e*e*e*e,inOutQuart:e=>(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),inQuint:e=>e*e*e*e*e,outQuint:e=>--e*e*e*e*e+1,inOutQuint:e=>(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),inSine:e=>1-Math.cos(e*Math.PI*.5),outSine:e=>Math.sin(e*Math.PI*.5),inOutSine:e=>.5*(1-Math.cos(e*Math.PI)),inExpo:e=>0===e?0:Math.pow(2,10*e-10),outExpo:e=>1===e?e:1-Math.pow(2,-10*e),inOutExpo:e=>0===e?0:1===e?1:e<.5?Math.pow(2,10*(2*e-1)-1):1-Math.pow(2,-10*(2*e-1)-1),inCirc:e=>1-Math.sqrt(1-e*e),outCirc:e=>Math.sqrt(1- --e*e),inOutCirc:e=>{var r=e-1,t=2*e;return t<1?.5*(1-Math.sqrt(1-t*t)):.5*(Math.sqrt(1-4*r*r)+1)},inBack:e=>e*e*(e*Y-Q),outBack:e=>{var r=e-1;return 1+r*r*(r*Y+Q)},inOutBack:e=>{var r=e-1,t=2*e;return e<.5?e*t*(t*(X+1)-X):1+2*r*r*(2*r*(X+1)+X)},inElastic:e=>{var r=e-1;return-Math.pow(2,10*r)*Math.sin((40*r-3)*Math.PI/6)},outElastic:e=>1+Math.pow(2,10*-e)*Math.sin((40*-e-3)*Math.PI/6),inOutElastic:e=>{var r=2*e-1,t=(80*r-9)*Math.PI/18;return r<0?-.5*Math.pow(2,10*r)*Math.sin(t):1+.5*Math.pow(2,-10*r)*Math.sin(t)},inBounce:e=>1-K(1-e),outBounce:K,inOutBounce:e=>e<.5?(1-K(1-2*e))/2:(1+K(2*e-1))/2},ee={vw:e=>l*(e/100),vh:e=>u*(e/100),vmax:e=>g*(e/100),vmin:e=>m*(e/100),ch:e=>p*e,ex:e=>7.15625*e,rem:e=>p*e,in:e=>G*e,cm:e=>G/2.54*e,mm:e=>G/25.4*e,Q:e=>G/25400*e,pt:e=>G/72*e,pc:e=>G/6*e,px:e=>e},re=e=>{var r=parseFloat(e);return e=e.match(/[a-z%]+/i)[0],ee[e](r)||r},te=e=>e.includes("deg")?parseFloat(e)*Math.PI/180:e.includes("turn")?parseFloat(e)*(2*Math.PI):e.includes("grad")?parseFloat(e)*Math.PI/200:e.includes("rad")?parseFloat(e):void 0,ae=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),ne=e=>a.querySelectorAll(e),ie=e=>Array.isArray(e),oe=e=>Object.keys(e),se=()=>h.scrollY||n.scrollTop||i.scrollTop||0,le=(e,r,t)=>{"function"==typeof E[r.id][e]&&E[r.id][e](r.elements,t)},ue=(e,r)=>{var t=e.type||1,n=t-1,i=1===t?"fixed":"absolute",o=1===t?"%":"px",s=a.createElement("div"),l=a.createElement("div"),u=a.createElement("div"),p=1===t&&e.value>f||2===t&&"end"===e.which,g="font-size:16px;display:block;width:"+(2===t?"90vw":"100%")+";height:1px;position:"+i+";top:"+e.value+o+";left:"+(2===t?"50vw;transform: translateX(-50%)":"0")+";background:"+r.backgroundColor+";pointer-events:none;z-index:99999;",m="display:block;margin: 0;position: absolute;top: "+(p?-2.5:.5)+"em;"+(2===t?"left":"right")+": "+(2===t?"50%;transform: translateX(-50%)":"start"===e.which?"10em":"1em")+";padding:0.5em 1em;background:"+r.backgroundColor+";color:"+r.color+";font-size: "+r.fontSize+";font-family: verdana;font-weight:normal;border-radius:0.3em;",h=e.id+O[n]+" "+e.which;1===t&&(l.className="scrollmoo-indicator");var c="";return c=p?"top: 2.1em;border-left: 0.5em solid transparent;border-right: 0.5em solid transparent;border-top: 0.5em solid "+r.backgroundColor+";":"top: -0.4em;border-left: 0.5em solid transparent;border-right: 0.5em solid transparent;border-bottom: 0.5em solid "+r.backgroundColor+";",s.style.cssText="display:block;margin:0;padding:0;width: 0;height: 0;position: absolute;left: calc(50% - 0.5em);"+c,l.style.cssText=g,u.style.cssText=m,u.innerText=h,u.appendChild(s),l.appendChild(u),l},fe=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e=parseFloat(e),isNaN(e)?r||0:e},pe=e=>{var r="px"!==String(e).slice(-2);return{isPercent:r,value:fe(e),unit:r?"%":"px"}},ge=e=>y+(e.isPercent?u*(e.value/100):e.value),me=e=>e.replace(/([A-Z])/g,"-$1").toLowerCase(),he=e=>e.replace(/-([a-z])/gi,(e,r)=>r.toUpperCase()),ce=function(e){var r=fe(e,arguments.length>1&&void 0!==arguments[1]&&arguments[1]),t=String(e).match(/[a-z%]+/i);return{value:r+(t=null!==t?t[0]:""),number:r,unit:t}},de=e=>{var r=e[1],t=!0,a=[],n=e[0],i=me(n),o=String(r).trim().replace(/\s+/g," ").toLowerCase();return v.test(n)?r=o:L.includes(i)?CSS.supports(i,o)?r=o:t=!1:ae(Ne.transform,n)?(a=o.split(","),r="("+o+")",CSS.supports("transform",n+r)||(t=!1)):ae(Ne.filter,he(i.replace(/.*filter-/,"")))?(r="("+o+")",CSS.supports(i.replace(/(filter)-.*/,"$1"),i.replace(/.*filter-/,"")+r)||(t=!1)):t=!1,{supported:t,value:r,valueLength:a.length}},ve=e=>{var r=e[0],t=e[1],a=me(r),n=e[2];if(Ne.transform.hasOwnProperty(r))"transform"in n?n.transform.push(r+t):n.transform=[r+t];else if(/.*filter-/.test(a)){var i=a.replace(/.*filter-/,""),o=he(a.replace(/(filter)-.*/,"$1"));o in n?n[o].push(i+t):n[o]=[i+t]}else n[a]=t;return n},ye=(e,r)=>{for(var t=new RegExp("(?:^|\\s)"+me(r)+":\\s*([^;}]+)"),a=0;a<e.length;a++){var n=e[a].match(t);if(n)return n[1].trim()}return null},ke=e=>{var r=[];if(""!==e.trim()){e=e.slice(0,-1).split(";");for(var t=0;t<e.length;t++){var[a,n]=e[t].trim().split(": "),i=he(a);if(j.includes(i)){for(var o=[],s=n.replace(/, /g,",").split(" "),l=0;l<s.length;l++){var u=s[l].replace(/\((.+?)\)/i,":($1)").split(":");o.push([u[0],u[1]])}r.push([i,o])}else r.push([i,n])}}return r},be=e=>e.getBoundingClientRect(),we=(e,r)=>{var t=r||$(e),a=be(e);return{width:Math.round(a.width),height:Math.round(a.height),top:a.top,position:t.getPropertyValue("position"),paddingTop:parseInt(t.getPropertyValue("padding-top"),10)}},xe=(e,r,t)=>{if(1===r.length&&0===r[0])return t[0];for(var a,n,i=0,o=r.length-1;i<=o;){var s=Math.floor((i+o)/2);if(r[s]<e)a=r[s],i=s+1;else{if(!(r[s]>e))return parseFloat(t[e]);n=r[s],o=s-1}}if(a){if(n){var l=parseFloat(t[a]);return l+(e-a)/(n-a)*(parseFloat(t[n])-l)}return parseFloat(t[a])}return parseFloat(t[n])},Ee=e=>{var r,t=e.type,a=e.elementName,n=e.element,i=e.options,o=e.index,s=P.find(e=>e[0]===t&&e[1]===a&&e[2]===o);return s?s[3]:(""!==i[t]&&i[t]!==a?0===(r=n.parentElement.closest(i[t])||"").length&&(0!==(r=ne(i[t])||"").length?e.total>1?(r=r[0],P.push([t,a,0,r])):(r=r[o],P.push([t,a,o,r])):r=n):r=n,r)},Me=e=>(e.isTriggerStart?0:e.height)+(e.triggerObj.isPercent?e.height*(e.triggerObj.value/100):e.triggerObj.value),Pe=e=>Math.round(e.top+(e.hasFix?0:y)),Se=e=>{for(var r=e,t=0;r;)if(r===i){var a=getComputedStyle(r);r=n;var o=a.getPropertyValue("position");!0===/relative|absolute|fixed/i.test(o)&&(a=getComputedStyle(r),"fixed"===o&&"fixed"===a.getPropertyValue("position")?t-=parseInt(a.getPropertyValue("top"),10)+parseInt(a.getPropertyValue("margin-top"),10):t+="fixed"===o?parseInt(getComputedStyle(e).getPropertyValue("margin-top"),10)-parseInt(a.getPropertyValue("margin-top"),10):"relative"===o?parseInt(a.getPropertyValue("padding-top"),10):parseInt(a.getPropertyValue("top"),10)+parseInt(a.getPropertyValue("margin-top"),10)+parseInt(a.getPropertyValue("border-top-width"),10))}else t+=r.offsetTop,r=r.offsetParent;return t},Oe=(e,r)=>{for(var t=e,a=!1;e;)"fixed"===(t===e?r:$(e).getPropertyValue("position"))?(a=!0,e=null):e=e.parentElement;return a},je=(e,r,t,a,n)=>n*Math.min(Math.max(0,(e-t)/(e-r-(t-a))),1),Fe=(e,r,t)=>(1-t)*e+t*r,Le=function(e,r,t,a){var n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;null!==n&&(b[e].duration.last=n),b[e].distance.last=r,b[e].distance.target=t,b[e].time=a},Te=(e,r,t,a,n)=>Fe(r,t,e(Math.min(Math.max(0,n/a),1))),Ce=e=>{var r=Math.abs(e.targetDistance-e.lastDistance),t=r/e.distance*e.duration;return t<e.range&&(t=e.range*(2+(Math.max(Math.min(r,1.7),0)-0)/1.7*-.8)),t},Ie=(e,r,t)=>{var a=e,n=r-1,i=0;if(t<=a[0].keyframe)i=0;else if(t>=a[n].keyframe)i=n-1;else for(;i<n&&a[i+1].keyframe<=t;)i++;for(var o=[],{keyframe:s,value:l}=a[i],{keyframe:u,value:f}=a[i+1],p=(t-s)/(u-s),g=l.length,m=0;m<g;m++)o.push(R(Fe(l[m],f[m],p)));return o},Ne={transform:{translateX:[0],translateY:[0],translateZ:[0],translate:[0,0],translate3d:[0,0,0],scale:[1,1],scale3d:[1,1,1],scaleX:[1],scaleY:[1],scaleZ:[1],rotate:[0],rotate3d:[0,0,1,0],rotateX:[0],rotateY:[0],rotateZ:[0],skewX:[0],skewY:[0],skew:[0,0],perspective:[0]},filter:{blur:[0],brightness:[1],contrast:[1],grayscale:[0],hueRotate:[0],invert:[0],opacity:[1],saturate:[1],sepia:[0]},backdropFilter:{blur:[0],brightness:[1],contrast:[1],grayscale:[0],hueRotate:[0],invert:[0],opacity:[1],saturate:[1],sepia:[0]}},qe={multiplyMatrices:(e,r)=>{var[t,a,n,i,o,s,l,u,f,p,g,m,h,c,d,v]=e,[y,k,b,w,x,E,M,P,S,O,j,F,L,T,C,I]=r;return A[0]=y*t+k*o+b*f+w*h,A[1]=y*a+k*s+b*p+w*c,A[2]=y*n+k*l+b*g+w*d,A[3]=y*i+k*u+b*m+w*v,A[4]=x*t+E*o+M*f+P*h,A[5]=x*a+E*s+M*p+P*c,A[6]=x*n+E*l+M*g+P*d,A[7]=x*i+E*u+M*m+P*v,A[8]=S*t+O*o+j*f+F*h,A[9]=S*a+O*s+j*p+F*c,A[10]=S*n+O*l+j*g+F*d,A[11]=S*i+O*u+j*m+F*v,A[12]=L*t+T*o+C*f+I*h,A[13]=L*a+T*s+C*p+I*c,A[14]=L*n+T*l+C*g+I*d,A[15]=L*i+T*u+C*m+I*v,A},multiply:e=>e.reduce(qe.multiplyMatrices),prespective:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=-1/e,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),rotate:e=>qe.rotateZ(e),rotate3d:(e,r,t,a)=>{var n,i,o,s=Math.hypot(e,r,t);return s<1e-6?[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]:(e*=s=1/s,r*=s,t*=s,n=Math.sin(a),o=1-(i=Math.cos(a)),A[0]=e*e*o+i,A[1]=r*e*o+t*n,A[2]=t*e*o-r*n,A[3]=0,A[4]=e*r*o-t*n,A[5]=r*r*o+i,A[6]=t*r*o+e*n,A[7]=0,A[8]=e*t*o+r*n,A[9]=r*t*o-e*n,A[10]=t*t*o+i,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A)},rotateX:e=>{var r=Math.cos(e),t=Math.sin(e);return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=r,A[6]=t,A[7]=0,A[8]=0,A[9]=-t,A[10]=r,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A},rotateY:e=>{var r=Math.cos(e),t=Math.sin(e);return A[0]=r,A[1]=0,A[2]=-t,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=t,A[9]=0,A[10]=r,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A},rotateZ:e=>{var r=Math.cos(e),t=Math.sin(e);return A[0]=r,A[1]=t,A[2]=0,A[3]=0,A[4]=-t,A[5]=r,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A},scale:(e,r)=>(A[0]=e,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=r,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),scale3d:(e,r,t)=>(qe.scale(e,r),A[10]=t,A),scaleX:e=>(A[0]=e,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),scaleY:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=e,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),scaleZ:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=e,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),skew:(e,r)=>(A[0]=1,A[1]=Math.tan(r),A[2]=0,A[3]=0,A[4]=Math.tan(e),A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),skewX:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=Math.tan(e),A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),skewY:e=>(A[0]=1,A[1]=Math.tan(e),A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),translate:(e,r)=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=e,A[13]=r,A[14]=0,A[15]=1,A),translate3d:(e,r,t)=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=e,A[13]=r,A[14]=t,A[15]=1,A),translateX:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=e,A[13]=0,A[14]=0,A[15]=1,A),translateY:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=e,A[14]=0,A[15]=1,A),translateZ:e=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=e,A[15]=1,A)},De=(e,r)=>{for(var t=0;t<e.length;t++)e[t].style.cssText=r[t]},Ve=e=>{N&&(I=requestAnimationFrame(Ve));var r=[],t=e-D,a=y!==k;D=e,k=y,q=e;for(var n=0;n<x;n++){var{callbackIndex:i,elements:o,originalCssText:s,interpolation:l,interpolationLength:u,render3d:f,trigger:{start:{converted:p},end:{converted:g}},indicator:{start:m,end:h},smooth:c,sync:d,duration:{total:v,last:w},ease:E,distance:{total:M,target:P,last:S},time:O,controller:{running:j,start:F,end:L},tag:T}=b[n],C=j,V=S,z=e-O,Q=!1===v?d:w,X=!1,Y=0,B={elements:o,id:i},Z=je(ge(m),ge(h),p,g,M);if(!N||Z!==V||P!==V){if(a)if(0===S&&Z===M||S===M&&0===Z||Z>0&&Z<M||0===Z&&P>0||Z===M&&P<M){var $=Te(c.func,S,P,Q,z),H=!1!==v?Ce({duration:v,distance:M,targetDistance:Z,lastDistance:$,range:t}):null;Le(n,$,Z,e,H),Y=$}else Y=Te(c.func,S,P,Q,z);else Y=Te(c.func,S,P,Q,z);if(z>Q?j&&(b[n].controller.running=!1,C=!0):j||(b[n].controller.running=!0,C=!0),!N||C){var U={},W=Y/M;if(!1===c.isSmooth&&(W=E(W)),0===W)De(o,s);else{for(var G=0;G<u;G++){var{interpolate:J,type:K,propertyType:_,propertyName:ee,keyframes:re,keyframesLength:te,unit:ae}=l[G];if(J){var ne=Ie(re,te,W);0===K?U[ee]=/rgb/i.test(ae)?ae+"("+ne.map(Math.round).join(", ")+")":ne.join(ae+" ")+ae:(U[_]=U[_]||[]).push(1===K?!1===f?[ee+"("+("rotate3d"!==ee?ne.join(ae+", ")+ae:ne.join(", ")+ae)+")"]:[...qe[ee](...ne)]:ee+"("+ne[0]+ae+")")}else K>0&&(U[_]=U[_]||[]).push(ee+re)}U.transform&&(!1===f?U.transform=T+" "+U.transform.join(" "):(qe.multiply(U.transform),U.transform="matrix3d("+A+")")),U.filter&&(U.filter=U.filter.join(" ")),U["backdrop-filter"]&&(U["backdrop-filter"]=U["backdrop-filter"].join(" ")),r.push([n,U])}!F&&P>0&&(b[n].controller.start=F=!0,b[n].controller.end=L=!0,le("onEnter",B),le("onToggle",B,!0),P!==M&&(X=!0,le("onProgress",B,R(Z/M)))),!L&&P<M&&S>0&&(b[n].controller.end=!0,le("onEnterReverse",B),le("onToggle",B,!0)),F&&S>0&&0===P&&(b[n].controller.start=F=!1,le("onProgress",B,0),le("onLeaveReverse",B),le("onToggle",B,!1)),L&&P===M&&(b[n].controller.end=!1,le("onProgress",B,1),le("onLeave",B),le("onToggle",B,!1)),!X&&F&&L&&a&&Z>0&&Z<M&&le("onProgress",B,R(Z/M)),N&&z>Q&&le("onAnimationComplete",B)}}}(e=>{for(var r=0;r<e.length;r++)for(var t=b[e[r][0]].elements,a=e[r][1],n=0;n<t.length;n++){var i=t[n].style;for(var o in a)i.setProperty(o,a[o])}})(r)},ze=()=>{I=requestAnimationFrame(Ve)},Ae=()=>{M||(y=se(),N||(N=!0,ze()))},Re=()=>{clearTimeout(C),M=!0,I&&cancelAnimationFrame(I),V||(V=performance.now()),C=setTimeout(Qe,250)},Qe=()=>{J(),y=se();var e=performance.now();N&&(e-=V),q+=e,N||(N=!0);for(var r=0;r<x;r++){var{trigger:t,indicator:{start:a,end:n},smooth:{func:i},sync:o,duration:{total:s,last:l},distance:{target:u,last:f},time:p}=b[r],g=t.start,m=t.end,h=g.element,c=m.element,d=!1===s?o:l,v=void 0,k=void 0;if(1===t.isEqual){var w=Se(h),E=h.offsetHeight+g.heightDiff,P=Me({isTriggerStart:!0,triggerObj:g,height:E}),S=Me({isTriggerStart:!1,triggerObj:m,height:E});v=w+g.diff+P,k=w+m.diff+S,v=Math.round(v),k=Math.round(k)}else if(2===t.isEqual){var O=be(h),j=O.height,F=Me({isTriggerStart:!0,triggerObj:g,height:j}),L=Me({isTriggerStart:!1,triggerObj:m,height:j});v=Pe({top:O.top+F,hasFix:g.hasFix}),k=Pe({top:O.top+L,hasFix:m.hasFix})}else{if(g.isEqual){v=Se(h);var T=Me({isTriggerStart:!0,triggerObj:g,height:h.offsetHeight+g.heightDiff});v=v+g.diff+T,v=Math.round(v)}else{var C=be(h),I=Me({isTriggerStart:!0,triggerObj:g,height:C.height});v=Pe({top:C.top+I,hasFix:g.hasFix})}if(m.isEqual){k=Se(c);var D=Me({isTriggerStart:!1,triggerObj:m,height:c.offsetHeight+m.heightDiff});k=k+m.diff+D,k=Math.round(k)}else{var z=be(c),A=Me({isTriggerStart:!1,triggerObj:m,height:z.height});k=Pe({top:z.top+A,hasFix:m.hasFix})}}var R=Math.max(0,k-v),Q=q-(p+e),X=je(ge(a),ge(n),v,k,R),Y=Te(i,f,u,d,Q),B=!1!==s?Ce({duration:s,distance:R,targetDistance:X,lastDistance:Y,range:250}):null;b[r].trigger.start.converted=v,b[r].trigger.end.converted=k,b[r].distance.total=R,b[r].controller.running=!0,Le(r,Y,X,q,B)}for(r=0;r<x;r++)b[r].markers&&(b[r].trigger.start.marker.style.top=b[r].trigger.start.converted+"px",b[r].trigger.end.marker.style.top=b[r].trigger.end.converted+"px");ze(),V=null,M=!1},Xe=(e,r,t)=>{for(var a=0;a<t;a++)if(e[a]!==r[a])return!1;return!0},Ye=e=>{if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(Ye);var r={};for(var t in e)if(ae(e,t)){var a=e[t];r[t]="function"==typeof a?a:Ye(a)}return r};return e=>{if(!h)throw new Error("ScrollMoo requires a browser environment.");if("matchMedia"in h&&h.matchMedia("(prefers-reduced-motion)").matches)throw new Error("Reduce motion is turned on, ScrollMoo can not be initialized.");if(!(!!e&&e.constructor===Object&&0!==oe(e).length))throw new Error("Invalid input. Please provide a non-empty object.");var r=oe(e);if(0===r.length)throw new Error("Invalid input. Please provide a non-empty object.");if(c)return console.warn("ScrollMoo is already initialized."),d;c=!0,a=h.document,n=a.documentElement;var l=()=>{J(),p=parseFloat($(n).getPropertyValue("font-size")),g=Math.max(o,s),m=Math.min(o,s),f=s/2,i=a.body;var l=a.createDocumentFragment();if(y=se(),k=y,r.forEach((r,n)=>{var o=r,s=ne(o),f=s.length;0===f&&console.warn("No element has found in "+o+" selector text.");var p=e[o],g="function"==typeof p,m={},h=[];if(g){var c=p(0)||{};T.forEach(e=>{m[e]=void 0!==c[e]?c[e]:Z[e]}),h[0]=c}else T.forEach(e=>{m[e]=void 0!==p[e]?p[e]:Z[e]});for(var d,k=function(){var e;e=g?0===x?h[0]:p(x)||{}:Ye(p),T.forEach(r=>{e[r]=m[r]});var r=t(t({},Z),e),c={},d=pe(r.indicatorStart),k=pe(r.indicatorEnd),M=ge(d),P=ge(k);E[n]={};for(var O=0;O<7;O++)E[n][z[O]]=r[z[O]];r.sync="number"!=typeof r.sync||isNaN(r.sync)?350:1e3*Math.abs(r.sync),r.sync=Math.max(50,r.sync),r.duration="number"==typeof r.duration&&!isNaN(r.duration)&&1e3*Math.abs(r.duration),r.render3D=!0===r.render3D&&r.render3D;var L=ae(_,r.ease),C=!L||"none"===r.ease,I=_[C?"none":"linear"];if(r.ease=_[L?r.ease:"none"],r.triggerStartElement=String(r.triggerStartElement),r.triggerEndElement=String(r.triggerEndElement),r.markers&&(r.markerId=String(r.markerId.replace(/[^A-Za-z0-9\s]/g,"")+" "),r.markers.constructor!==Object&&0===oe(r.markers).length&&(r.markers={}),r.markers.color=ae(r.markers,"color")?r.markers.color:"white",r.markers.backgroundColor=ae(r.markers,"backgroundColor")?r.markers.backgroundColor:"black",r.markers.fontSize=ae(r.markers,"fontSize")?r.markers.fontSize:"0.8em"),r.markers){var N=ue({which:"start",id:r.markerId,value:d.isPercent?d.value:(M-y)/u*100},r.markers),q=ue({which:"end",id:r.markerId,value:k.isPercent?k.value:(P-y)/u*100},r.markers);l.appendChild(N),l.appendChild(q)}for(var D=0;D<3;D++){var V=j[D];if(ae(r.keyframes,V)){if("filter"===V||"backdropFilter"===V)for(var A in r.keyframes[V])ae(r.keyframes[V],A)&&(r.keyframes[he(V+"-"+A)]=r.keyframes[V][A]);else r.keyframes=t(t({},r.keyframes[V]),r.keyframes);delete r.keyframes[V]}}var Q,X=function(){var e={},t=!1;if(ae(r.keyframes,Y)){var a=r.keyframes[Y];if(!a||a.constructor!==Object||0===oe(a).length||Y.match(/^-(webkit|moz|ms|o)-/i))return console.warn("Invalid "+Y+" keyframe value."),delete r.keyframes[Y],0;if(ae(a,"from")&&delete Object.assign(a,{0:a.from}).from,ae(a,"to")&&delete Object.assign(a,{100:a.to}).to,v.test(Y)&&ae(a,"unit")){var n=a.unit;for(var i in delete a.unit,a)ae(a,i)&&(a[i]=a[i]+n)}for(var s=oe(a).sort((e,r)=>parseFloat(fe(e).toFixed(6))-parseFloat(fe(r).toFixed(6))),l=s.length,u=0;u<l;u++){var f=s[u],p=f.match(/^(\d+(?:\.\d+)?)(%)?$/);if(null===p)return console.warn("Dropped "+Y+" property: In the "+o+" selector of "+Y+" property has an invalid keyframe format. Supported keyframe formats: between from/0/0% ...40/40%...80/80%... to/100/100%"),t=!0,{v:{v:void 0}};p=fe(p[1]),p=parseFloat(p.toFixed(6));var g=de([Y,a[f]]);if(!(p>=0&&p<=100&&g.supported))return t=!0,g.supported?console.warn("Dropped "+Y+" property: In the "+o+" selector one of the keyframe was not between from/0/0% ...40/40%...80/80%... to/100/100%."):console.warn("Dropped "+Y+" property: In the "+o+" selector, the "+Y+" property name or its keyframe value is not supported."),{v:{v:void 0}};e[Math.abs(p/100)]={value:g.value,valueLength:g.valueLength}}if(t)return delete r.keyframes[Y],0;var m=Object.values(e).map(e=>e.valueLength),h=m[0],d=m.every(e=>e===h);if(!(oe(e).length>0&&d))return console.warn("Dropped "+Y+" property: In the "+o+" selector of "+Y+" property's value length is not equal as the rest of the values"),delete r.keyframes[Y],0;for(var y in r.keyframes[Y]={},e)if(ae(e,y)){var k=Object.keys(e),b=e[y].value;if(0===Number(y)&&(c=ve([Y,b,c])),r.keyframes[Y][y]=b,(1!==k.length||"0"!==k[0])&&!e.hasOwnProperty("1")){var w=k[k.length-1];r.keyframes[Y][1]=r.keyframes[Y][w]}}}};for(var Y in r.keyframes)if(0!==(Q=X())&&Q)return Q.v;var B=oe(r.keyframes),H=s[x],U=H.style,W=Object.assign({},c),G=(e=>{var r=a.styleSheets,t=e.id||null,n=e.classList.value.split(" ").map(e=>"."+e),i=[];null!==t&&n.push("#"+t);for(var o=function(){for(var e=n[s],t=r.length-1;t>=0;t--)try{var a=r[t].cssRules||r[t].rules;if(a&&a.length)for(var o=a.length-1;o>=0;o--){var l=a[o].selectorText,u=l.split(", ").some(r=>r===e);if(l&&u){var f=a[o].cssText||a[o].style.cssText||"";i.push(f)}}}catch(e){}},s=n.length-1;s>=0;s--)o();return i})(H),J={},K=[];if(!i.contains(H))throw new Error("Invalid arguments. Element must be inside of the body.");for(var ee in oe(Ne).forEach(e=>{J[e]={},oe(Ne[e]).forEach(r=>{J[e][r]=0})}),W){var ne=void 0;if(Array.isArray(W[ee]))if(null!==(ne=0!==U[ee].length?U[ee]:ye(G,ee))){for(var se=0;se<W[ee].length;se++){var le=W[ee][se],be=le.replace(/\([^()]*\)/,"");ne.match(new RegExp(be+"\\(.+?\\)","gi"))?ne=ne.replace(new RegExp(be+"\\(.+?\\)","gi"),le):1===W[ee].length||0===se?(null!==ne&&(ne+=" "),ne+=le):ne+=" "+le}U[ee]=ne}else U[ee]=W[ee].join(" ");else U.setProperty(ee,W[ee])}for(var Fe=U.cssText,Le=Fe,Te=ke(Fe),Ce={},Ie=function(){var e=j[qe],r=me(e),t=B.some(r=>"transform"===e&&r in Ne[e]||"filter"===e&&/filter/.test(r)||"backdropFilter"===e&&/backdropFilter/.test(r));if(ie(Te[e])||!t||""!==U[r]&&"none"!==U[r])Ce[r]=U[r];else{var a=ye(G,r);null!==a&&(Le+=" "+r+": "+a+";"),Ce[r]=null!==a?a:""}},qe=0;qe<3;qe++)Ie();for(var De=ke(Le),Ve=De.length,ze=function(){var e=De[Ve][0],t=De[Ve][1],a="transform"===e;(ie(t)&&B.filter(e=>a?e in Ne.transform:e.includes(De[Ve][0])).every(e=>1===oe(r.keyframes[e]).length&&ae(r.keyframes[e],"0"))||!ie(t)&&ae(r.keyframes,e)&&ae(r.keyframes[e],"0")&&1===oe(r.keyframes[e]).length||!ae(r.keyframes,e)&&!ie(t))&&De.splice(Ve,1)};Ve--;)ze();for(var Ae=0;Ae<De.length;Ae++){var[Re,Qe]=De[Ae],Be=me(Re);if(ie(Qe))for(var Ze=function(){var e="filter"===Re||"backdropFilter"===Re?he(Re+"-"+Qe[$e][0]):Qe[$e][0],t=ae(r.keyframes,e)&&B.find(r=>r===e)&&oe(r.keyframes[e]).some(e=>Number(e)>0)&&oe(r.keyframes[e]).length>=1,a=!1;"transform"===Re&&(t||(a=!0),t=!0),K.push({interpolate:t,type:{filter:2,"backdrop-filter":3}[Be]||1,propertyType:Be,propertyName:Qe[$e][0],keyframes:t?a?{0:Qe[$e][1],1:Qe[$e][1]}:r.keyframes[e]:Qe[$e][1],unit:"",valueLength:null})},$e=0;$e<Qe.length;$e++)Ze();else K.push({interpolate:!0,type:0,propertyType:null,propertyName:Re,keyframes:r.keyframes[Re],unit:"",valueLength:null})}var He=function(){if(ae(r.keyframes,Ue)){var e,t=0,a=/filter/i.test(Ue)?me(Ue).replace(/.*filter-/,""):Ue;/filter/.test(Ue)?t=2:/backdropFilter/.test(Ue)?t=3:Ue in Ne.transform&&(t=1),e=K.find(e=>e.propertyName===a&&e.type===t),!e&&oe(r.keyframes[Ue]).some(e=>Number(e)>0)&&K.push({interpolate:!0,type:t,propertyType:{0:null,1:"transform",2:"filter",3:"backdrop-filter"}[t],propertyName:a,keyframes:r.keyframes[Ue],unit:"",valueLength:null})}};for(var Ue in r.keyframes)He();for(var We=U.width,Ge=U.height,Je=H.parentElement||H,Ke=$(Je),_e=$(H),er=we(H,_e),rr={},tr=function(){var e=F[ar],r=K.find(r=>r.propertyName===e);if(r&&oe(r.keyframes).some(e=>Number(e)>0)){for(var t in rr[e]={},rr[e][0]=parseFloat(_e.getPropertyValue(e)),r.keyframes)if(ae(r.keyframes,t)&&Number(t)>0){var a=ce(r.keyframes[t]);"%"===a.unit?rr[e][t]=R(parseFloat(Ke.getPropertyValue(e))*(a.number/100)):rr[e][t]=re(a.value)}U[e]="width"===e?We:Ge}else rr[e]={},rr[e][0]=parseFloat(_e.getPropertyValue(e))},ar=0;ar<2;ar++)tr();for(var nr=oe(rr.width).map(Number).sort((e,r)=>e-r),ir=oe(rr.height).map(Number).sort((e,r)=>e-r),or=function(){var e=K[sr];if(!e.interpolate)return 1;var r=oe(e.keyframes).map(Number).sort((e,r)=>e-r),t=r.length,a=!1,n=e.propertyType,i=e.propertyName,o=me(i),s=he(i);if(ae(e.keyframes,"0")||(r.unshift(0),t++),0===e.type)if(["color","background-color"].includes(o)){for(var l=[],u=0;u<t;u++){var f=r[u],p=void 0;f>0&&!ae(S,e.keyframes[f])&&(U[o]=e.keyframes[f]),ae(S,e.keyframes[f])?p=S[e.keyframes[f]]:(p=_e.getPropertyValue(o).match(/[\d\.]+/g).map(Number),S[e.keyframes[f]]=p),l.push({keyframe:f,value:p})}var g=l.some(e=>4===e.value.length);if(g)for(var m=0;m<l.length;m++)4!==l[m].value.length&&l[m].value.push(1);e.propertyName=o,e.keyframes=l,e.keyframesLength=l.length,e.unit=g?"rgba":"rgb",e.valueLength=l[0].value.length}else if(["width","height"].includes(i)){for(var h=[],c=0;c<t;c++){var d=r[c];h.push({keyframe:d,value:[rr[i][d]]})}e.keyframes=h,e.keyframesLength=h.length,e.unit="px",e.valueLength=1}else if("opacity"===i){var v=[];if(!ae(e.keyframes,"0")){var y={0:_e.getPropertyValue(i)};e.keyframes=Object.assign(y,e.keyframes)}for(var k=0;k<t;k++){var b=r[k],w=e.keyframes[b],x=w.slice(-1);w=parseFloat(w),"%"===x&&(w/=100),w=Math.min(1,Math.max(0,w)),v.push({keyframe:b,value:[w]})}e.keyframes=v,e.keyframesLength=v.length,e.valueLength=1}else{var E=[];if(!ae(e.keyframes,"0")){var M={0:_e.getPropertyValue(i)||0};e.keyframes=Object.assign(M,e.keyframes)}var P=e.keyframes[r[t-1]];P=ce(P).unit;for(var O=0;O<t;O++){var j=r[O],F=e.keyframes[j];F=parseFloat(F),E.push({keyframe:j,value:[F]})}e.keyframes=E,e.keyframesLength=E.length,e.valueLength=1,e.unit=P}else{var L=he(n),T=Ce[n].match(new RegExp(i+"\\(([^)]+)\\)","gi"));if(null===T?((T=[null])[1]=Ne[L][s].join(", "),a=!0):T.length>1?(T=T[J[n][i]].match(new RegExp(i+"\\(([^)]+)\\)","i")),J[n][i]++):T=Ce[n].match(new RegExp(i+"\\(([^)]+)\\)","i")),1===e.type){var C=[];if("perspective"===i){if(!ae(e.keyframes,"0")){var I={0:a?T[1]+"px":T[1]};e.keyframes=Object.assign(I,e.keyframes)}for(var N=0;N<t;N++){var q=r[N],D=e.keyframes[q].replace(/[()\s]/g,"");"none"!==D&&0!==D||(console.warn("Dropped "+i+' property: "none" or "0" value can not be animated at '+q+" keyframe."),K.splice(sr,1)),C.push({keyframe:q,value:[re(D)]})}e.keyframes=C,e.keyframesLength=C.length,e.unit="px",e.valueLength=1}else if(/translate/.test(i)){ae(e.keyframes,"0")||(e.keyframes=Object.assign({0:T[1]},e.keyframes));for(var V=0;V<t;V++){var z=r[V],A=e.keyframes[z].replace(/[()\s]/g,"").split(",").map(e=>0==e?e+"px":e);"translate"===i&&1===A.length&&A.push("0px");var[Q,X,Y]=A;if("%"===Q.slice(-1)){var B=void 0;B="translateY"===i?xe(z,ir,rr.height):xe(z,nr,rr.width),Q=R(B*(parseFloat(Q)/100))}else Q=re(Q);if(A[0]=Q,void 0!==X){if("%"===X.slice(-1)){var Z=xe(z,ir,rr.height);X=R(Z*(parseFloat(X)/100))}else X=re(X);A[1]=X}void 0!==Y&&(A[2]=re(Y)),C.push({keyframe:z,value:A})}e.keyframes=C,e.keyframesLength=C.length,e.unit="px",e.valueLength=C[0].value.length}else if(/scale/.test(i)){if(!ae(e.keyframes,"0")){var $={0:T[1]};e.keyframes=Object.assign($,e.keyframes)}for(var H=0;H<t;H++){var W=r[H],G=e.keyframes[W].replace(/[()\s]/g,"").split(",");"scale"===i&&1===G.length&&G.push(G[0]);var[_,ee,ne]=G,ie=_.slice(-1);if(_=parseFloat(_),"%"===ie&&(_/=100),G[0]=_,void 0!==ee){var se=ee.slice(-1);ee=parseFloat(ee),"%"===se&&(ee/=100),G[1]=ee}if(void 0!==ne){var le=ne.slice(-1);ne=parseFloat(ne),"%"===le&&(ne/=100),G[2]=ne}C.push({keyframe:W,value:G})}e.keyframes=C,e.keyframesLength=C.length,e.valueLength=C[0].value.length}else if(/skew/.test(i)){if(!ae(e.keyframes,"0")){var ue={0:T[1]};e.keyframes=Object.assign(ue,e.keyframes)}for(var fe=0;fe<t;fe++){var pe=r[fe],ge=e.keyframes[pe].replace(/[()\s]/g,"").split(",").map(e=>0==e?e+"rad":e).map(te);"skew"===i&&1===ge.length&&ge.push(0),C.push({keyframe:pe,value:ge})}e.keyframes=C,e.keyframesLength=C.length,e.unit="rad",e.valueLength=C[0].value.length}else if(/rotate/.test(i)){if(!ae(e.keyframes,"0")){var de={0:T[1]};e.keyframes=Object.assign(de,e.keyframes)}for(var ve=0;ve<t;ve++){var ye=r[ve],ke=e.keyframes[ye].replace(/[()\s]/g,"").split(",").map((e,r)=>"rotate3d"===i?3===r?te("0"==e?e+"rad":e):Number(e):te(0==e?e+"rad":e));C.push({keyframe:ye,value:ke})}e.keyframes=C,e.keyframesLength=C.length,e.unit="rad",e.valueLength=C[0].value.length}}else if(e.type>1){var be=[];if("blur"===i){if(!ae(e.keyframes,"0")){var we={0:a?T[1]+"px":T[1]};e.keyframes=Object.assign(we,e.keyframes)}for(var Ee=0;Ee<t;Ee++){var Me=r[Ee],Pe=e.keyframes[Me].replace(/[()\s]/g,"");be.push({keyframe:Me,value:[re(Pe)]})}e.keyframes=be,e.keyframesLength=be.length,e.unit="px",e.valueLength=1}else if("brightness"===i||"contrast"===i||"grayscale"===i||"invert"===i||"opacity"===i||"saturate"===i||"sepia"===i){if(!ae(e.keyframes,"0")){var Se={0:T[1]};e.keyframes=Object.assign(Se,e.keyframes)}for(var Oe=0;Oe<t;Oe++){var je=r[Oe],Fe=e.keyframes[je].replace(/[()\s]/g,""),Le=Fe.slice(-1);Fe=parseFloat(Fe),"%"===Le&&(Fe/=100),Fe=Fe>0?Fe:0,be.push({keyframe:je,value:[Fe]})}e.keyframes=be,e.keyframesLength=be.length,e.valueLength=1}else if("hue-rotate"===i){if(!ae(e.keyframes,"0")){var Te={0:T[1]};e.keyframes=Object.assign(Te,e.keyframes)}for(var Ie=0;Ie<t;Ie++){var qe=r[Ie],De=e.keyframes[qe].replace(/[()\s]/g,"");De=te(0==De?De+"rad":De),be.push({keyframe:qe,value:[De]})}e.keyframes=be,e.keyframesLength=be.length,e.unit="rad",e.valueLength=1}}}},sr=0;sr<K.length;sr++)or();var lr="";if(!r.render3D){var ur=K.filter(e=>1===e.type);ur.length>0&&(lr="rotate3d(1, 1, 1, 0rad) scale3d(1, 1, 1) translate3d(0px, 0px, 0px)",ur.some(e=>"rotate3d"===e.propertyName)?lr=lr.replace("rotate3d(1, 1, 1, 0rad)",""):ur.some(e=>"scale3d"===e.propertyName)?lr=lr.replace("scale3d(1, 1, 1)",""):ur.some(e=>"translate3d"===e.propertyName)&&(lr=lr.replace("translate3d(0px, 0px, 0px)","")),lr=lr.trim())}Fe!==U.cssText&&(U.cssText=Fe);var fr,pr,gr,mr,hr,cr=["border-top-width","padding-top","height","padding-bottom","border-bottom-width"].map(e=>parseInt(_e.getPropertyValue(e),10)).reduce((e,r)=>e+r,0),dr=pe(r.triggerStart),vr=pe(r.triggerEnd),yr=Ee({type:"triggerStartElement",elementName:o,element:H,total:f,options:r,index:x}),kr=Ee({type:"triggerEndElement",elementName:o,element:H,total:f,options:r,index:x}),br=((e,r,t,a)=>{var n,i,o=1,s=!1,l=!1,u=e.isEqualNode(r),f=e.isEqualNode(t);return u&&f?(n=a,i=a,s=!0,l=!0):r.isEqualNode(t)?(i=n=we(r),o=2):(o=0,u?(n=a,s=!0):n=we(r),f?(i=a,l=!0):i=we(t)),{start:n,end:i,equality:o,triggerStartEqual:s,triggerEndEqual:l}})(H,yr,kr,er),wr=Oe(yr,br.start.position),xr=Pe({top:br.start.top,hasFix:wr}),Er=0,Mr=0,Pr=0,Sr=0;1===br.equality?(hr=xr,mr=wr,fr=Se(yr),Mr=Er=xr-fr,Sr=Pr=br.start.height-cr):2===br.equality?(hr=xr,mr=wr):(mr=Oe(kr,br.end.position),hr=Pe({top:br.end.top,hasFix:mr}),br.triggerStartEqual&&(Er=xr-(fr=Se(yr)),Pr=br.start.height-cr),br.triggerEndEqual&&(Mr=hr-Se(kr),Sr=br.end.height-cr));var Or=xr+Me({isTriggerStart:!0,triggerObj:dr,height:br.start.height}),jr=hr+Me({isTriggerStart:!1,triggerObj:vr,height:br.end.height}),Fr=Math.max(0,jr-Or),Lr=je(M,P,Or,jr,Fr),Tr=b[w-1],Cr=K.length,Ir=void 0!==Tr&&Tr.callbackIndex===n,Nr=Ir&&((e,r,t)=>{if(t.previousLength!==t.currentLength)return!1;for(var a=0;a<t.previousLength;a++){var n=e[a],i=r[a];if(n.interpolate&&i.interpolate)for(var o=0;o<n.keyframes.length;o++){var s=n.keyframes[o],l=i.keyframes[o];if(!s||!l||!Xe(s.value,l.value,n.valueLength))return!1}}return!0})(Tr.interpolation,K,{previousLength:Tr.interpolationLength,currentLength:Cr});!1!==r.duration&&r.duration/Fr<3.5&&console.warn("Based on the visual experience, the "+o+" selector at index "+x+" has a duration that is too low compare to its distance between triggerStart and triggerEnd. As a suggestion, consider increasing the duration for better visual result."),Ir&&(Tr.duration===r.duration||Tr.sync===r.sync)&&Nr&&Tr.trigger.start.converted===Or&&Tr.trigger.end.converted===jr&&(Tr.trigger.isSame||Tr.trigger.start.element===yr&&Tr.trigger.end.element===kr)?(Tr.elements.push(H),Tr.originalCssText.push(Fe),Tr.trigger.isSame||(Tr.trigger.isSame=!0)):(w++,r.markers&&(pr=ue({type:2,which:"start",id:r.markerId,value:Or},r.markers),l.appendChild(pr),gr=ue({type:2,which:"end",id:r.markerId,value:jr},r.markers),l.appendChild(gr)),b.push({callbackIndex:n,elements:[H],originalCssText:[Fe],interpolation:K,interpolationLength:Cr,markers:!!r.markers,render3d:r.render3D,trigger:{isSame:!1,isEqual:br.equality,start:{isEqual:br.triggerStartEqual,element:yr,isPercent:dr.isPercent,value:dr.value,hasFix:wr,diff:Er,heightDiff:Pr,converted:Or,unit:dr.unit,marker:void 0!==pr?pr:null},end:{isEqual:br.triggerEndEqual,element:kr,isPercent:vr.isPercent,value:vr.value,hasFix:mr,diff:Mr,heightDiff:Sr,converted:jr,unit:vr.unit,marker:void 0!==gr?gr:null}},indicator:{start:{isPercent:d.isPercent,value:d.value},end:{isPercent:k.isPercent,value:k.value}},smooth:{isSmooth:C,func:I},sync:r.sync,duration:{total:r.duration,last:r.duration},ease:r.ease,distance:{total:Fr,target:Lr,last:Lr},time:0,controller:{running:!1,start:!1,end:!1},tag:lr}))},x=0;x<f;x++)if(d=k())return d.v}),0===(x=b.length))throw new Error("There is no initializable values.");b.sort((e,r)=>e.trigger.start.converted-r.trigger.start.converted),S={},e=null,i.insertBefore(l,i.firstChild),l=null,requestAnimationFrame(()=>{Ve(performance.now()),a.addEventListener("scroll",Ae,{passive:!0}),h.addEventListener("resize",Re,!1)})};return/complete|loaded/.test(a.readyState)?l():a.addEventListener("readystatechange",e=>{/complete|loaded/.test(e.target.readyState)&&l()}),d={destroy:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];a.removeEventListener("scroll",Ae),h.removeEventListener("resize",Re),cancelAnimationFrame(I),c=!1,E=[],M=!1,w=0,P=[],S={},C=null,I=null,N=!1,q=0,D=0,V=null;for(var r=0;r<x;r++)!0===e&&De(b[r].elements,b[r].originalCssText),b[r].markers&&(b[r].trigger.start.marker.remove(),b[r].trigger.end.marker.remove());ne(".scrollmoo-indicator").forEach(e=>e.remove()),b=[],x=0,i=null},refresh:()=>{h.dispatchEvent(new Event("resize"))}},d}});