/*
	* LayerSlider Add-On: SFX Slide Transitions
	*
	* (c) 2011-2025 George Krupa, John Gera & Kreatura Media
	*
	* LayerSlider home:		https://layerslider.com/
	* Licensing:			https://layerslider.com/licensing/
*/



!function(e){window._layerSlider.plugins.slidefxtr=function(t,n){var r=this,i=window._lsData;r.pluginData={name:"SFX Slide Transitions Add-On for LayerSlider",key:"slidefxtr",version:"1.0",requiredLSVersion:"8.3.0",authorName:"Kreatura",releaseDate:"2026. 07. 08."},r.state={initialized:!1},r.init=function(){r.extendLayerSlider(),r.state.initialized=!0},r.extendLayerSlider=function(){t.transitions.media.captureVideoFrame=function(n,r){var i=e(n).closest(".ls-bg-wrap");return"next"===r&&i.addClass("ls-capturing-frame"),new Promise(function(e){var r=!1,a=null;function o(t){r||(r=!0,a&&clearTimeout(a),i.removeClass("ls-capturing-frame"),e(t))}function s(){var e=document.createElement("canvas");return e.width=t.slider.width,e.height=t.slider.height,{canvas:e,ctx:e.getContext("2d")}}function u(){if(!r){var e=t.slider.width,i=t.slider.height,a=n.videoWidth,u=n.videoHeight;if(a&&u)try{var l=Math.max(e/a,i/u),c=(a*l-e)/2/l,f=(u*l-i)/2/l,d=e/l,m=i/l,g=document.createElement("canvas");g.width=e,g.height=i;var v=g.getContext("2d",{colorSpace:"srgb",willReadFrequently:!0});v.drawImage(n,c,f,d,m,0,0,e,i),o({canvas:g,ctx:v})}catch(e){o(s())}else o(s())}}var l=0;!function e(){if(!r)if(0===n.videoWidth||0===n.videoHeight){if(++l>300)return void o(s());requestAnimationFrame(e)}else!function(){if(a=setTimeout(function(){try{n.pause()}catch(e){}u()},1e3),"requestVideoFrameCallback"in n)if(n.paused){n.requestVideoFrameCallback(function(){n.pause(),requestAnimationFrame(function(){requestAnimationFrame(u)})});var e=n.play();e&&e.catch&&e.catch(function(){})}else n.requestVideoFrameCallback(function(){n.pause(),requestAnimationFrame(function(){requestAnimationFrame(u)})});else{if(n.paused)return void requestAnimationFrame(function(){requestAnimationFrame(u)});n.addEventListener("pause",function e(){n.removeEventListener("pause",e),requestAnimationFrame(function(){requestAnimationFrame(u)})}),n.pause()}}()}()})},t.transitions.slide.fx={select:{transitionType:function(){if(t.transitions.slide.fx.appendTransitionWrapper(),r.selectedEffectName="origami",r.selectedEffectData=!1,t.slides.next.data.sfxtr){var e=Object.keys(t.slides.next.data.sfxtr);r.selectedEffectName=e[Math.floor(Math.random()*e.length)],r.selectedEffectData=t.slides.next.data.sfxtr[r.selectedEffectName]}t.transitions.slide.fx.startEffect(r.selectedEffectName)}},roundToHalf:function(e){return Math.round(2*e)/2},getTranslate:function(e,t){var n=e.css("transform");if("none"===n)return 0;var r=n.match(/matrix.*\((.+)\)/);if(!r)return 0;var i=r[1].split(",");return i.length>6?parseFloat(i["x"===t?12:13]):parseFloat(i["x"===t?4:5])},createCanvas:function(e){var n=document.createElement("canvas"),r=!1,i=!1;return n.width=t.slider.width,n.height=t.slider.height,n.className="ls-slide-transition-effect",t.transitions.slide.$wrapper.append(n),e?r=n.getContext("2d"):i=n.getContext("webgl")||n.getContext("experimental-webgl"),{canvas:n,ctx:r,gl:i}},createShader:function(e,n,r){var i=e.createShader(r);return e.shaderSource(i,n),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS)||(console.error(t.defaults.slider.errorText),console.error("SFX: Error compiling shader:",e.getShaderInfoLog(i))),i},createTexture:function(e,t){e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),n},quadVS:"\nattribute vec2 aPos;\nvarying vec2 vUV;\nvoid main(){\nvUV = (aPos + 1.0) * 0.5;\ngl_Position = vec4(aPos, 0.0, 1.0);\n}\n",premultMixGLSL:"\nvec4 lsPremultMix( vec4 colC, vec4 colN, float p ){\nvec4 mixed = mix(\nvec4( colC.rgb * colC.a, colC.a ),\nvec4( colN.rgb * colN.a, colN.a ),\np\n);\nif( mixed.a > 0.0 ){\nmixed.rgb /= mixed.a;\n}\nreturn mixed;\n}\n",setupGLEffect:function(e){var t=this.createCanvas().gl,n=this.createShader(t,this.quadVS,t.VERTEX_SHADER),r=this.createShader(t,e,t.FRAGMENT_SHADER),i=t.createProgram();t.attachShader(i,n),t.attachShader(i,r),t.linkProgram(i),t.useProgram(i),t.clearColor(0,0,0,0),t.enable(t.BLEND),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA);var a=t.getAttribLocation(i,"aPos"),o=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,o),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),t.enableVertexAttribArray(a),t.vertexAttribPointer(a,2,t.FLOAT,!1,0,0);var s=this.createTexture(t,this.bgData.current.canvas),u=this.createTexture(t,this.bgData.next.canvas);return t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,s),t.uniform1i(t.getUniformLocation(i,"uCur"),0),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,u),t.uniform1i(t.getUniformLocation(i,"uNext"),1),{gl:t,program:i,uProgress:t.getUniformLocation(i,"uProgress")}},drawGLFrame:function(e,t,n){e.uniform1f(t,n),e.viewport(0,0,e.canvas.width,e.canvas.height),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_STRIP,0,4)},animateEffect:function(e,n){var r={p:0},i=new t.gsap.TimelineMax({paused:!0});i.to(r,e.duration,{p:1,ease:t.gsap.Linear.easeNone,onUpdate:function(){n(r.p)}}),this.startTransition(i,e.duration,e.ease)},startEffect:function(e){"origami"===e?this.origami.start():(this.setEffect(e),this.createElements({effect:e}))},getImageDrawParams:function(e){var n=this.bgData[e].$image,r=this.getTranslate(n,"x"),i=this.getTranslate(n,"y"),a=parseInt(n[0].style.width),o=parseInt(n[0].style.height),s=n[0].naturalWidth,u=n[0].naturalHeight,l=t.slider.width,c=t.slider.height,f=s/a,d=u/o,m=Math.max(0,r),g=Math.max(0,i),v=Math.min(l,r+a)-m,h=Math.min(c,i+o)-g;return{sx:this.roundToHalf(Math.max(0,-r)*f),sy:this.roundToHalf(Math.max(0,-i)*d),sw:Math.round(v*f),sh:Math.round(h*d),dx:m,dy:g,dw:v,dh:h}},setEffect:function(n){var i=window._layerSlider.sfx[n],a=i[Object.keys(i)[0]],o=r.selectedEffectData?r.selectedEffectData[Math.floor(Math.random()*r.selectedEffectData.length)]:null,s=o&&o.key?i[o.key]:{},u=e.extend(!0,{},a,s,o);if(t.o.silentMode&&(u.duration=0),u.duration/=1e3,u.ease=t.functions.convert.easing(u.ease),u.autoDirection){var l=t.navigation.direction,c={direction:{next:{left:"left",right:"right",top:"top",bottom:"bottom",inwards:"inwards",outwards:"outwards"},prev:{left:"right",right:"left",top:"bottom",bottom:"top",inwards:"outwards",outwards:"inwards"}},angle:{next:u.angle,prev:-u.angle}};for(var f in u)u.hasOwnProperty(f)&&c[f]&&void 0!==c[f][l]&&(void 0!==c[f][l][u[f]]?u[f]=c[f][l][u[f]]:"number"!=typeof c[f][l]&&"string"!=typeof c[f][l]||(u[f]=c[f][l]))}this[n].settings=u},createElements:function(n){var r=this,i=t.functions.getURL,a=t.transitions.slide.$wrapper,o=t.transitions.curSlide.data,s=t.transitions.nextSlide.data,u=o.$background||e(),l=s.$background||e(),c=!o.backgroundGradient&&o.backgroundColor,f=!!o.backgroundGradient&&o.backgroundGradient,d=!s.backgroundGradient&&s.backgroundColor,m=!!s.backgroundGradient&&s.backgroundGradient,g=i(u),v=i(l),h=t.o.playByScroll&&"up"===t.device.scroll.direction?"to":"from",p=t.transitions.curSlide.data.$background.data(t.defaults.init.dataKey).responsive,x=t.transitions.nextSlide.data.$background.data(t.defaults.init.dataKey).responsive,b=t.transitions.nextSlide.data.$background.data(t.defaults.init.dataKey).kenBurns[h],S=["next","current"],M=function(e){var t=e.match(/-?\d+(\.\d+)?/);return t?parseFloat(t[0]):0},T={current:{$bg:u,src:g,width:p.width,height:p.height,x:p.x,y:p.y,filter:p.filter||"",rotation:M(p.kbRotation),scale:M(p.kbScale),backgroundColor:c,backgroundGradient:f,$backgroundVideo:o.$backgroundVideo||e()},next:{$bg:l,src:v,width:x.width,height:x.height,x:x.x,y:x.y,filter:x.filter||"",rotation:b.rotation,scale:b.scale,backgroundColor:d,backgroundGradient:m,$backgroundVideo:s.$backgroundVideo||e()}};if(this.bgData=T,"origami"!==n.effect){for(var w=0;w<S.length;w++){var C=S[w];T[C].$image=e("<img class=ls-"+C+"-sfxtr-helper>").attr({src:T[C].src,style:T[C].$bg.attr("style")}).css(n[C+"Style"]||{}).appendTo(a),t.gsap.TweenMax.set(T[C].$image[0],{x:T[C].x,y:T[C].y,rotation:T[C].rotation,scale:T[C].scale})}var U=function(e,n,r,i){function a(e){for(var t=[],n=0,r="",i=0;i<e.length;i++){var a=e[i];"("===a?(n++,r+=a):")"===a?(n--,r+=a):","===a&&0===n?(t.push(r.trim()),r=""):r+=a}return r.trim()&&t.push(r.trim()),t}function o(e){var t=e.trim().toLowerCase();if("#"===t.charAt(0)){var n=t.slice(1);3===n.length&&(n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]),4===n.length&&(n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]+n[3]+n[3]);var r=parseInt(n,16);if(6===n.length)return{r:r>>16&255,g:r>>8&255,b:255&r,a:1};if(8===n.length)return{r:r>>>24&255,g:r>>16&255,b:r>>8&255,a:(255&r)/255}}var i,a=t.match(/^rgba?\(\s*([\d.]+%?)\s*,?\s*([\d.]+%?)\s*,?\s*([\d.]+%?)\s*(?:[,\/]\s*([\d.]+%?))?\s*\)$/);if(a){var o=function(e){return e.endsWith("%")?Math.round(2.55*parseFloat(e)):parseInt(e)};return{r:o(a[1]),g:o(a[2]),b:o(a[3]),a:(i=a[4],void 0===i?1:i.endsWith("%")?parseFloat(i)/100:parseFloat(i))}}var s=t.match(/^hsla?\(\s*([\d.]+(?:deg|rad|turn|grad)?)\s*,?\s*([\d.]+%?)\s*,?\s*([\d.]+%?)\s*(?:[,\/]\s*([\d.]+%?))?\s*\)$/);if(s){var u=parseFloat(s[1]);s[1].indexOf("rad")>-1?u*=180/Math.PI:s[1].indexOf("turn")>-1?u*=360:s[1].indexOf("grad")>-1&&(u*=.9),u=(u%360+360)%360;var l=void 0===s[4]?1:s[4].endsWith("%")?parseFloat(s[4])/100:parseFloat(s[4]),c=function(e,t,n){t/=100,n/=100;var r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e/60%2-1)),a=n-r/2,o=0,s=0,u=0;return e<60?(o=r,s=i):e<120?(o=i,s=r):e<180?(s=r,u=i):e<240?(s=i,u=r):e<300?(o=i,u=r):(o=r,u=i),[Math.round(255*(o+a)),Math.round(255*(s+a)),Math.round(255*(u+a))]}(u,parseFloat(s[2]),parseFloat(s[3]));return{r:c[0],g:c[1],b:c[2],a:l}}return{r:0,g:0,b:0,a:1}}function s(e){return"rgba("+e.r+","+e.g+","+e.b+","+e.a+")"}function u(e,t){var n=e.trim();return n?n.endsWith("%")?parseFloat(n)/100:n.endsWith("px")?parseFloat(n)/t:n.endsWith("em")||n.endsWith("rem")?16*parseFloat(n)/t:isNaN(parseFloat(n))?null:parseFloat(n)/t:null}function l(e){var t=e.trim();return t.endsWith("deg")?parseFloat(t):t.endsWith("rad")?180*parseFloat(t)/Math.PI:t.endsWith("turn")?360*parseFloat(t):t.endsWith("grad")?.9*parseFloat(t):isNaN(parseFloat(t))?0:parseFloat(t)}function c(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].trim();if(/^[\d.]+(%|px|em|rem)?$/.test(r)&&-1===r.indexOf("("))t.push({hint:!0,rawPos:r});else{for(var i=0,a=0,s=0;s<r.length;s++)if("("===r[s])a++;else if(")"===r[s]){if(0===--a){i=s+1;break}}else if(0===a&&" "===r[s]&&0===i&&s>0){i=s;break}i||(i=r.length);var u=r.slice(0,i).trim(),l=r.slice(i).trim(),c=l?l.split(/\s+/):[];t.push({hint:!1,color:o(u),rawPositions:c.length?c:[null]})}}return t}function f(e,t){for(var n=[],r=0;r<e.length;r++){var i=e[r];if(i.hint)n.push({hint:!0,rawPos:i.rawPos});else if(i.rawPositions.length>=2)for(var a=0;a<i.rawPositions.length;a++)n.push({hint:!1,color:i.color,rawPos:i.rawPositions[a]});else n.push({hint:!1,color:i.color,rawPos:i.rawPositions[0]})}var o=[];for(r=0;r<n.length;r++){var s=n[r];o.push({hint:s.hint,color:s.color,rawPos:s.rawPos,pos:null!=s.rawPos?u(s.rawPos,t||100):null})}for(var l=0;l<o.length;){if(null===o[l].pos){for(var c=0===l?0:o[l-1].pos||0,f=l;f<o.length&&null===o[f].pos;)f++;var d=f<o.length&&o[f].pos||1,m=f-l+1;for(a=l;a<f;a++)o[a].pos=c+(d-c)*(a-l+1)/m}l++}for(r=1;r<o.length;r++)o[r].pos<o[r-1].pos&&(o[r].pos=o[r-1].pos);return o}function d(e,t,n){function r(e,t,n){var r,i,a,o=e.color.a,s=t.color.a,u=e.color.r*o,l=e.color.g*o,c=e.color.b*o,f=t.color.r*s,d=t.color.g*s,m=t.color.b*s,g=o+(s-o)*n;return g>1e-4?(r=(u+(f-u)*n)/g,i=(l+(d-l)*n)/g,a=(c+(m-c)*n)/g):(r=0,i=0,a=0),{pos:e.pos+(t.pos-e.pos)*n,color:{r:Math.max(0,Math.min(255,Math.round(r))),g:Math.max(0,Math.min(255,Math.round(i))),b:Math.max(0,Math.min(255,Math.round(a))),a:g}}}for(var i=[],a=0;a<t.length;a++)t[a].hint||i.push({pos:Math.max(0,Math.min(1,t[a].pos||0)),color:t[a].color});if(i.length){var o=[i[0]];for(a=1;a<i.length;a++){var u=i[a-1],l=i[a];if(l.pos>u.pos&&u.color.a!==l.color.a)for(var c=1;c<12;c++)o.push(r(u,l,c/12));o.push(l)}if(n){if(o.length<2)return;var f=o[0].pos,d=o[o.length-1].pos-f;if(d<=0)return;for(var m=0;m<=1+d;m+=d)for(a=0;a<o.length;a++){var g=m+(o[a].pos-f);if(g>=0&&g<=1)try{e.addColorStop(g,s(o[a].color))}catch(e){}}}else for(var a=0;a<o.length;a++)try{e.addColorStop(o[a].pos,s(o[a].color))}catch(e){}}}function m(t){var i=((t.angle%360+360)%360-90)*Math.PI/180,a=n/2,o=r/2,s=a+Math.cos(i)*(Math.abs(n*Math.cos(i))+Math.abs(r*Math.sin(i)))/2,u=o+Math.sin(i)*(Math.abs(n*Math.cos(i))+Math.abs(r*Math.sin(i)))/2,l=2*a-s,c=2*o-u,m=Math.sqrt(Math.pow(s-l,2)+Math.pow(u-c,2)),g=e.createLinearGradient(l,c,s,u);d(g,f(t.rawStops,m),t.repeating),e.fillStyle=g,e.fillRect(0,0,n,r)}function g(t){var i,a,o=t.cx*n,s=t.cy*r;if(null!==t.explicitRx)i=t.explicitRx*n,a=t.explicitRy*r;else{var u=o,l=n-o,c=s,m=r-s,g=Math.max(u,l),v=Math.max(c,m),h=Math.min(u,l),p=Math.min(c,m);switch(t.sizeKeyword){case"closest-side":i="circle"===t.shape?Math.min(h,p):h,a="circle"===t.shape?i:p;break;case"closest-corner":i="circle"===t.shape?Math.sqrt(h*h+p*p):h*Math.SQRT2,a="circle"===t.shape?i:p*Math.SQRT2;break;case"farthest-side":i="circle"===t.shape?Math.max(g,v):g,a="circle"===t.shape?i:v;break;default:i="circle"===t.shape?Math.sqrt(g*g+v*v):g*Math.SQRT2,a="circle"===t.shape?i:v*Math.SQRT2}}e.save(),e.translate(o,s);var x=i/(a||1);e.scale(x,1);var b=e.createRadialGradient(0,0,0,0,0,a);d(b,f(t.rawStops,a),t.repeating),e.fillStyle=b,e.fillRect(-o/x,-s,n/x,r),e.restore()}for(var v=function(e){for(var t=[],n=0,r=e.trim();n<r.length;){for(;n<r.length&&/\s/.test(r[n]);)n++;if(n>=r.length)break;for(var i=n;n<r.length&&"("!==r[n]&&","!==r[n];)n++;var o=r.slice(i,n).trim().toLowerCase();if("("===r[n]){for(var s=1,f=++n;n<r.length&&s>0;)"("===r[n]?s++:")"===r[n]&&s--,n++;var d=r.slice(f,n-1),m=0===o.indexOf("repeating-"),g=o.replace("repeating-",""),v=null;if("linear-gradient"===g){var h=180,p=0;if(0===(U=(x=a(d))[0].trim().toLowerCase()).indexOf("to ")){h={bottom:180,top:0,right:90,left:270,"bottom right":135,"right bottom":135,"bottom left":225,"left bottom":225,"top right":45,"right top":45,"top left":315,"left top":315}[U.slice(3).trim()]||180,p=1}else/^-?[\d.]+(?:deg|rad|turn|grad)/.test(U)&&(h=l(U),p=1);v={type:"linear",angle:h,rawStops:c(x.slice(p)),repeating:m}}else if("radial-gradient"===g){var x,b="ellipse",S="farthest-corner",M=.5,T=.5,w=null,C=null,U=(p=0,(x=a(d))[0].trim().toLowerCase());if(/^(circle|ellipse|closest|farthest|\d|at )/.test(U)){var D,L;if(p=1,0===U.indexOf("at "))D="",L=U.slice(3).trim();else{var P=U.indexOf(" at ");D=P>=0?U.slice(0,P):U,L=P>=0?U.slice(P+4).trim():null}if(L){var N=L.split(/\s+/),y={left:0,center:.5,right:1},E={top:0,center:.5,bottom:1},A=N[0],R=N[1];if(void 0===R)if("top"===A||"bottom"===A)T=E[A];else if(void 0!==y[A])M=y[A];else{var F=u(A,1);null!==F&&(M=F)}else{var I="top"===A||"bottom"===A||"left"===R||"right"===R,k=I?R:A,V=I?A:R;M=void 0!==y[k]?y[k]:u(k,1)||.5,T=void 0!==E[V]?E[V]:u(V,1)||.5}}for(var _=D?D.trim().split(/\s+/):[],B=0;B<_.length;B++){var q=_[B];"circle"!==q&&"ellipse"!==q?"closest-side"!==q&&"closest-corner"!==q&&"farthest-side"!==q&&"farthest-corner"!==q?/^[\d.]/.test(q)&&(null===w?w=u(q,1):C=u(q,1)):S=q:b=q}null!==w&&null===C&&(C=w)}v={type:"radial",shape:b,sizeKeyword:S,cx:M,cy:T,explicitRx:w,explicitRy:C,rawStops:c(x.slice(p)),repeating:m}}v&&t.push(v)}for(;n<r.length&&/\s/.test(r[n]);)n++;","===r[n]&&n++}return t}(i),h=v.length-1;h>=0;h--){var p=v[h];e.save();try{"linear"===p.type?m(p):"radial"===p.type&&g(p)}catch(e){console.error(t.defaults.slider.errorText),console.error("SFX: Gradient draw error:",e,p)}e.restore()}};e.when(e.Deferred(function(e){T.next.$image.on("load error",e.resolve)}),e.Deferred(function(e){T.current.$image.on("load error",e.resolve)})).done(function(){var e=[],i=[];t.transitions.curSlide.data.HTMLVideoElement&&(e.push(t.transitions.media.captureVideoFrame(t.transitions.curSlide.data.HTMLVideoElement,"current")),i.push("current")),t.transitions.nextSlide.data.HTMLVideoElement&&(e.push(t.transitions.media.captureVideoFrame(t.transitions.nextSlide.data.HTMLVideoElement,"next")),i.push("next"));var o={current:null,next:null};Promise.all(e).then(function(e){e.forEach(function(e,t){o[i[t]]=e});var s=r.getImageDrawParams("next"),u=r.getImageDrawParams("current"),l=function(e,n,r){var i,s,u=T[e],l=t.slider.width,c=t.slider.height;return o[e]?((i=o[e].canvas).className=n,s=o[e].ctx):((i=document.createElement("canvas")).width=l,i.height=c,i.className=n,s=i.getContext("2d")),function(e,t,n,r){r.backgroundGradient?U(e,t,n,r.backgroundGradient):r.backgroundColor&&(e.fillStyle=r.backgroundColor,e.fillRect(0,0,t,n))}(s,l,c,u),function(e,t,n,r,i){if(i&&i.dw>0&&i.dh>0&&r.src&&r.$image[0].naturalWidth){e.save();var a=parseFloat(r.scale)||1,o=parseFloat(r.rotation)*Math.PI/180||0,s=t/2,u=n/2;e.translate(s,u),e.rotate(o),e.scale(a,a);var l=i.dw,c=i.dh,f=i.dx-s,d=i.dy-u;e.drawImage(r.$image[0],i.sx,i.sy,i.sw,i.sh,f,d,l,c),e.restore()}}(s,l,c,u,r),u.canvas=i,u.ctx=s,a.append(i),{canvas:i,ctx:s}};l("next","ls-slide-transition-next",s),l("current","ls-slide-transition-current",u),r[n.effect].run()})})}},appendTransitionWrapper:function(){t.transitions.slide.$wrapper.prependTo(t.slider.$layersWrapper)},startTransition:function(e,r,a){t.timelines._slideTransition.add(t.gsap.TweenMax.fromTo(e,r,{progress:0},{progress:1,ease:a,immediateRender:!1}),0),t.transitions.curSlide.data.HTMLVideoElement&&t.timelines._slideTransition.add(function(){t.transitions.curSlide.data.$backgroundVideo.data(t.defaults.init.dataKey).elements.$bgWrapper.hide()},0),t.transitions.nextSlide.data.HTMLVideoElement&&t.timelines._slideTransition.add(function(){var e=t.transitions.nextSlide.data.$backgroundVideo,r=e.data(t.defaults.init.dataKey).elements.$bgWrapper,a=e.data(t.defaults.init.dataKey).elements.$bgOuterWrapper;r.show(),i.isMobile&&(n.hasClass("ls-device-is-phone")&&a.hasClass("ls-hide-on-phone")||n.hasClass("ls-device-is-tablet")&&a.hasClass("ls-hide-on-tablet"))||e.trigger("playBackgroundVideo")},"-=0.0001"),t.transitions.slide.start(!1,!0)},liquidmorph:{run:function(){var e=t.transitions.slide.fx,n=this.settings.amplitude,r=this.settings.scale,i=this.settings.speed,a=this.settings.edge,o="right"===this.settings.direction?this.settings.swirl:-this.settings.swirl,s=this.settings.chromatic,u=`\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur, uNext;\nuniform float uProgress;\nuniform float uAmplitude;\nuniform float uScale;\nuniform float uSpeed;\nuniform float uEdge;\nuniform float uSwirl;\nuniform float uChromatic;\nuniform float uAspect;\n\n${e.premultMixGLSL}\n\nfloat hash(vec2 p){\nreturn fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);\n}\nfloat noise(vec2 p){\nvec2 i = floor(p);\nvec2 f = fract(p);\nvec2 u = f*f*(3.0 - 2.0*f);\nreturn mix(\nmix(hash(i),               hash(i+vec2(1,0)), u.x),\nmix(hash(i+vec2(0,1)),     hash(i+vec2(1,1)), u.x),\nu.y\n);\n}\nfloat fbm(vec2 p){\nfloat v = 0.0, a = 0.5;\nfor(int i = 0; i < 2; i++){\nv += a * noise(p);\np *= 2.0;\na *= 0.5;\n}\nreturn v;\n}\n\nvoid main(){\nvec2 uv = vUV;\nfloat t = uProgress * uSpeed;\n\nfloat aq = sqrt(uAspect);\nvec2 nUV = vec2(uv.x * aq, uv.y / aq);\n\nfloat fx = fbm(nUV * uScale + vec2( t * 0.7,  t * 0.5)) - 0.5;\nfloat fy = fbm(nUV * uScale + vec2(-t * 0.4,  t * 0.8 + 3.7)) - 0.5;\nvec2 flow = vec2(fx, fy);\n\nvec2  centered = uv - 0.5;\nvec2  tangent  = vec2(-centered.y, centered.x);\nfloat swirlFade = 1.0 - clamp(length(centered) * 1.4, 0.0, 1.0);\nflow += tangent * uSwirl * swirlFade;\n\nvec2 distC = flow * uAmplitude * uProgress;\nvec2 distN = flow * uAmplitude * (uProgress - 1.0);\n\nvec2 uvC = clamp(uv + distC, 0.0, 1.0);\nvec2 uvN = clamp(uv + distN, 0.0, 1.0);\n\nfloat maskNoise = fbm(nUV * uScale + vec2(t*0.3 + 5.1, t*0.2 + 2.9));\nfloat p = uProgress * (1.0 + 2.0*uEdge) - uEdge;\nfloat mask = smoothstep(maskNoise - uEdge, maskNoise + uEdge, p);\n\nvec4 colC, colN;\nif(uChromatic > 0.0){\nvec2 caC = flow * uChromatic * uProgress;\nvec2 caN = flow * uChromatic * (1.0 - uProgress);\n\ncolC.r = texture2D(uCur,  clamp(uvC + caC, 0.0, 1.0)).r;\ncolC.g = texture2D(uCur,  uvC).g;\ncolC.b = texture2D(uCur,  clamp(uvC - caC, 0.0, 1.0)).b;\ncolC.a = texture2D(uCur,  uvC).a;\n\ncolN.r = texture2D(uNext, clamp(uvN - caN, 0.0, 1.0)).r;\ncolN.g = texture2D(uNext, uvN).g;\ncolN.b = texture2D(uNext, clamp(uvN + caN, 0.0, 1.0)).b;\ncolN.a = texture2D(uNext, uvN).a;\n} else {\ncolC = texture2D(uCur,  uvC);\ncolN = texture2D(uNext, uvN);\n}\n\ngl_FragColor = lsPremultMix( colC, colN, mask );\n}\n`,l=e.setupGLEffect(u),c=l.gl,f=l.program;c.uniform1f(c.getUniformLocation(f,"uAmplitude"),n/100),c.uniform1f(c.getUniformLocation(f,"uScale"),r),c.uniform1f(c.getUniformLocation(f,"uSpeed"),i/10),c.uniform1f(c.getUniformLocation(f,"uEdge"),a/100),c.uniform1f(c.getUniformLocation(f,"uSwirl"),o),c.uniform1f(c.getUniformLocation(f,"uChromatic"),s/100),c.uniform1f(c.getUniformLocation(f,"uAspect"),c.canvas.width/c.canvas.height),e.animateEffect(this.settings,function(t){e.drawGLFrame(c,l.uProgress,t)})}},storm:{run:function(){var e=t.transitions.slide.fx,n=this.settings,r=Math.max(1,Math.min(10,0|n.fragments)),i=n.intensity,a=`\nprecision mediump float;\n\nvarying vec2 vUV;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform float uProgress;\nuniform float uIntensity;\nuniform float uFragments;\nuniform vec2 uDirs[20];\nuniform float uWaveStrength;\nuniform float uWaveFrequency;\nuniform vec2 uWaveDir;\nuniform float uWavePhase;\nuniform float uBlur;\n\n${e.premultMixGLSL}\n\nvec4 sampleBlurred( sampler2D tex, vec2 uv, float b ) {\nif( b <= 0.0 ) return texture2D( tex, uv );\n\nvec4 sum = vec4(0.0);\nfloat total = 0.0;\n\nsum += texture2D( tex, uv ) * 1.0;\ntotal += 1.0;\n\nfloat r1 = b * 0.5;\nsum += texture2D( tex, uv + vec2( r1, 0.0 ) ) * 0.8;\nsum += texture2D( tex, uv + vec2( -r1, 0.0 ) ) * 0.8;\nsum += texture2D( tex, uv + vec2( 0.0, r1 ) ) * 0.8;\nsum += texture2D( tex, uv + vec2( 0.0, -r1 ) ) * 0.8;\ntotal += 3.2;\n\nfloat r1d = b * 0.354;\nsum += texture2D( tex, uv + vec2( r1d, r1d ) ) * 0.6;\nsum += texture2D( tex, uv + vec2( -r1d, r1d ) ) * 0.6;\nsum += texture2D( tex, uv + vec2( r1d, -r1d ) ) * 0.6;\nsum += texture2D( tex, uv + vec2( -r1d, -r1d ) ) * 0.6;\ntotal += 2.4;\n\nsum += texture2D( tex, uv + vec2( b, 0.0 ) ) * 0.4;\nsum += texture2D( tex, uv + vec2( -b, 0.0 ) ) * 0.4;\nsum += texture2D( tex, uv + vec2( 0.0, b ) ) * 0.4;\nsum += texture2D( tex, uv + vec2( 0.0, -b ) ) * 0.4;\ntotal += 1.6;\n\nreturn sum / total;\n}\n\nvoid main() {\nvec4 colorCur = texture2D( uCur, vUV );\nvec4 colorNext = texture2D( uNext, vUV );\n\nfloat intensityCur = (colorCur.r + colorCur.g + colorCur.b) / 3.0;\nfloat intensityNext = (colorNext.r + colorNext.g + colorNext.b) / 3.0;\n\nfloat fragIndexCur = floor( intensityCur * uFragments );\nfloat fragIndexNext = floor( intensityNext * uFragments );\n\nint iCur = int(fragIndexCur);\nint iNext = int(fragIndexNext) + int(uFragments);\n\nint idxCur  = ( iCur >= 0 && iCur <= 8 ) ? iCur : 9;\nint idxNext = ( iNext >= 10 && iNext <= 18 ) ? iNext : 19;\n\nvec2 dirCur = vec2(0.0);\nvec2 dirNext = vec2(0.0);\n\nfor( int i = 0; i < 20; i++ ){\nif( i == idxCur )  dirCur  = uDirs[i];\nif( i == idxNext ) dirNext = uDirs[i];\n}\n\nfloat coord = dot( vUV, uWaveDir );\nfloat waveOffset = sin( coord * uWaveFrequency + uWavePhase + uProgress * 3.14 ) * uWaveStrength;\nfloat waveEnvelope = sin( uProgress * 3.14 );\nvec2 wave = vec2(waveOffset * waveEnvelope);\n\nvec2 offsetCur = dirCur * uIntensity * uProgress;\nvec2 offsetNext = dirNext * uIntensity * (1.0 - uProgress);\n\nfloat blurCur = uBlur * uProgress;\nfloat blurNext = uBlur * (1.0 - uProgress);\n\nvec4 shiftedCur = sampleBlurred( uCur, vUV - offsetCur + wave, blurCur );\nvec4 shiftedNext = sampleBlurred( uNext, vUV + offsetNext + wave, blurNext );\n\ngl_FragColor = lsPremultMix( shiftedCur, shiftedNext, uProgress );\n}\n`,o=e.setupGLEffect(a),s=o.gl,u=o.program;s.uniform1f(s.getUniformLocation(u,"uIntensity"),i/100),s.uniform1f(s.getUniformLocation(u,"uFragments"),r),s.uniform1f(s.getUniformLocation(u,"uWaveStrength"),n.waveStrength/1e3),s.uniform1f(s.getUniformLocation(u,"uWaveFrequency"),n.waveFrequency);var l=Math.random()*Math.PI*2,c=Math.random()*Math.PI*2;s.uniform2f(s.getUniformLocation(u,"uWaveDir"),Math.cos(l),Math.sin(l)),s.uniform1f(s.getUniformLocation(u,"uWavePhase"),c),s.uniform1f(s.getUniformLocation(u,"uBlur"),n.blur/500);for(var f=[],d=0;d<2*r;d++){var m=Math.random()*Math.PI*2;f.push(Math.cos(m),Math.sin(m))}s.uniform2fv(s.getUniformLocation(u,"uDirs"),new Float32Array(f)),e.animateEffect(n,function(t){e.drawGLFrame(s,o.uProgress,t)})}},colorswipe:{run:function(){var e=t.transitions.slide.fx,n=this.settings.direction,r=this.settings.intensity,i=this.settings.blur,a={right:0,left:1,top:2,bottom:3,outwards:4,inwards:5}[n]||0,o=`\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur, uNext;\nuniform float uProgress;\nuniform int uDirMode;\nuniform float uIntensity;\nuniform float uBlur;\nuniform vec2 uResolution;\nconst vec3 W = vec3(0.299,0.587,0.114);\n\n${e.premultMixGLSL}\n\nvec4 blurSample( sampler2D tex, vec2 uv, float radius ){\nif( radius <= 0.0 ) return texture2D( tex, uv );\nvec2 texel = radius / uResolution;\nvec4 sum = texture2D( tex, uv );\nfor( int i = 0; i < 8; i++ ){\nfloat a = float(i) * 0.7853981633974483;\nsum += texture2D( tex, uv + vec2(cos(a), sin(a)) * texel );\n}\nfor( int i = 0; i < 8; i++ ){\nfloat a = float(i) * 0.7853981633974483 + 0.39269908169872414;\nsum += texture2D( tex, uv + vec2(cos(a), sin(a)) * texel * 0.5 );\n}\nreturn sum / 17.0;\n}\n\nvoid main(){\nvec2 uv = vUV;\nfloat lumC = dot(texture2D(uCur,uv).rgb, W);\nfloat lumN = dot(texture2D(uNext,uv).rgb, W);\nvec2 dir;\nif(uDirMode==0) dir = vec2(-1.0, 0.0);\nelse if(uDirMode==1) dir = vec2( 1.0, 0.0);\nelse if(uDirMode==2) dir = vec2( 0.0,-1.0);\nelse if(uDirMode==3) dir = vec2( 0.0, 1.0);\nelse if(uDirMode==4) dir = normalize(vec2(0.5,0.5) - uv);\nelse   dir = normalize(uv - vec2(0.5,0.5));\nvec2 offC = dir * lumC * uProgress * uIntensity;\nvec2 offN = -dir * lumN * (1.0 - uProgress) * uIntensity;\nvec2 uvC = clamp(uv + offC, vec2(0.0), vec2(1.0));\nvec2 uvN = clamp(uv + offN, vec2(0.0), vec2(1.0));\n\nfloat blurC = uBlur * uProgress;\nfloat blurN = uBlur * (1.0 - uProgress);\n\nvec4 colC = blurSample( uCur, uvC, blurC );\nvec4 colN = blurSample( uNext, uvN, blurN );\n\ngl_FragColor = lsPremultMix( colC, colN, uProgress );\n}\n`,s=e.setupGLEffect(o),u=s.gl,l=s.program;u.uniform1i(u.getUniformLocation(l,"uDirMode"),a),u.uniform1f(u.getUniformLocation(l,"uIntensity"),r/100),u.uniform1f(u.getUniformLocation(l,"uBlur"),i),u.uniform2f(u.getUniformLocation(l,"uResolution"),u.canvas.width,u.canvas.height),e.animateEffect(this.settings,function(t){e.drawGLFrame(u,s.uProgress,t)})}},displacementripple:{run:function(){var e=t.transitions.slide.fx,n=this.settings.rippleFrequency,r=this.settings.rippleAmplitude,i=`\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform float uProgress;\nuniform float uFreq;\nuniform float uAmp;\nuniform float uTime;\nuniform float uNextSign;\nuniform float uAspect;\n\n${e.premultMixGLSL}\n\nconst float PI = 3.14159265;\nvoid main(){\nfloat aq = sqrt(uAspect);\nvec2 uv0 = (vUV - 0.5) * vec2(aq, 1.0 / aq);\nfloat dist = length(uv0);\nvec2 dir = dist > 0.0001 ? uv0 / dist : vec2(0.0);\nfloat env = sin(uProgress * PI);\nfloat wave = sin(dist * uFreq - uTime * 4.0) * uAmp * env;\nvec2 off = dir * wave * vec2(1.0 / aq, aq);\nvec2 uvCur  = clamp(vUV + off, 0.0, 1.0);\nvec2 uvNext = clamp(vUV + off * uNextSign, 0.0, 1.0);\nvec4 colC = texture2D(uCur, uvCur);\nvec4 colN = texture2D(uNext, uvNext);\ngl_FragColor = lsPremultMix( colC, colN, uProgress );\n}\n`,a=e.setupGLEffect(i),o=a.gl,s=a.program;o.uniform1f(o.getUniformLocation(s,"uFreq"),n),o.uniform1f(o.getUniformLocation(s,"uAmp"),r/100),o.uniform1f(o.getUniformLocation(s,"uAspect"),o.canvas.width/o.canvas.height),o.uniform1f(o.getUniformLocation(s,"uNextSign"),this.settings.matchWaves?1:-1);var u=o.getUniformLocation(s,"uTime");e.animateEffect(this.settings,function(t){o.uniform1f(u,performance.now()/1e3),e.drawGLFrame(o,a.uProgress,t)})}},spiral:{run:function(){var e=t.transitions.slide.fx,n=this.settings,r=-n.angle*Math.PI/180,i=Math.max(1,Math.min(15,parseInt(n.count)||1)),a=Math.max(0,n.wobble||0),o=Math.sqrt(.5),s=new Float32Array(30),u=new Float32Array(15),l=new Float32Array(30),c=new Float32Array(15);s[0]=.5,s[1]=.5,u[0]=o,l[0]=Math.random()*Math.PI*2,l[1]=Math.random()*Math.PI*2,c[0]=.15+.15*Math.random();for(var f=1;f<i;f++)s[2*f]=.15+.7*Math.random(),s[2*f+1]=.15+.7*Math.random(),u[f]=.15+.2*Math.random(),l[2*f]=Math.random()*Math.PI*2,l[2*f+1]=Math.random()*Math.PI*2,c[f]=.2+.35*Math.random();for(var d=i;d<15;d++)u[d]=1;var m=`\nprecision mediump float;\n#define MAX_SPIRALS 15\nconst float PI = 3.141592653589793;\nvarying vec2 vUV;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform float uProgress;\nuniform float uMaxAngle;\nuniform float uZoom;\nuniform int uCount;\nuniform float uWobble;\nuniform vec2 uCenters[MAX_SPIRALS];\nuniform float uRadii[MAX_SPIRALS];\nuniform vec2 uPhases[MAX_SPIRALS];\nuniform float uFreq[MAX_SPIRALS];\nuniform float uAspect;\n\n${e.premultMixGLSL}\n\nfloat wobbleEnvelope(float p){\nfloat s = cos(p * PI);\nreturn s * s;\n}\n\nvec2 accumulateDisplacement(vec2 uv0, float angleSign, float globalT){\nvec2 total = vec2(0.0);\nfloat env = wobbleEnvelope(uProgress) * uWobble;\nfloat aq = sqrt(uAspect);\nvec2 asp  = vec2(aq, 1.0 / aq);\nvec2 iasp = vec2(1.0 / aq, aq);\nvec2 auv0 = uv0 * asp;\n\nfor (int i = 0; i < MAX_SPIRALS; i++) {\nif (i >= uCount) break;\n\nvec2 base = uCenters[i] - 0.5;\nvec2 c = base;\nif (uWobble > 0.0) {\nvec2 phase = uPhases[i];\nfloat f = uFreq[i];\nc += vec2(\nsin(uProgress * PI * 2.0 * f + phase.x),\ncos(uProgress * PI * 2.0 * f * 0.83 + phase.y)\n) * env;\n}\n\nfloat radius = uRadii[i];\nvec2 r = auv0 - c * asp;\nfloat d = length(r);\nfloat ld = d / radius;\nfloat falloff = 1.0 - smoothstep(1.0, 2.0, ld);\nfloat rot = ld * falloff;\nfloat angle = angleSign * rot * uMaxAngle * globalT;\nfloat cs = cos(angle), sn = sin(angle);\nvec2 rotR = mat2(cs, -sn, sn, cs) * r;\ntotal += rotR - r;\n}\nreturn total * iasp;\n}\n\nvec4 sampleAt(sampler2D tex, vec2 uv0, vec2 disp, float scale){\nvec2 uv = (uv0 + disp) * scale + 0.5;\nreturn texture2D(tex, uv);\n}\n\nvoid main(){\nvec2 uv0 = vUV - 0.5;\n\nvec2 dispCur  = accumulateDisplacement(uv0,  1.0, uProgress);\nvec2 dispNext = accumulateDisplacement(uv0, -1.0, 1.0 - uProgress);\n\nfloat curScale  = 1.0 - uZoom * uProgress;\nfloat nextScale = 1.0 + uZoom * (1.0 - uProgress);\n\nvec4 colCur  = sampleAt(uCur,  uv0, dispCur,  curScale);\nvec4 colNext = sampleAt(uNext, uv0, dispNext, nextScale);\n\ngl_FragColor = lsPremultMix( colCur, colNext, uProgress );\n}\n`,g=e.setupGLEffect(m),v=g.gl,h=g.program;v.uniform1f(v.getUniformLocation(h,"uMaxAngle"),r),v.uniform1f(v.getUniformLocation(h,"uZoom"),n.zoom/100*(n.autoDirection&&"left"===n.direction?-1:1)),v.uniform1i(v.getUniformLocation(h,"uCount"),i),v.uniform1f(v.getUniformLocation(h,"uWobble"),a/250),v.uniform2fv(v.getUniformLocation(h,"uCenters"),s),v.uniform1fv(v.getUniformLocation(h,"uRadii"),u),v.uniform2fv(v.getUniformLocation(h,"uPhases"),l),v.uniform1fv(v.getUniformLocation(h,"uFreq"),c),v.uniform1f(v.getUniformLocation(h,"uAspect"),v.canvas.width/v.canvas.height),e.animateEffect(this.settings,function(t){e.drawGLFrame(v,g.uProgress,t)})}},vortexdistort:{run:function(){var e=t.transitions.slide.fx,n=this.settings.strength,r=this.settings.frequency,i=this.settings.amplitude,a=Math.max(1,Math.min(15,0|this.settings.count)),o="left"===this.settings.direction?-1:1,s=new Float32Array(30);s[0]=.5,s[1]=.5;for(var u=1;u<a;u++){var l,c,f=0;do{l=Math.random(),c=Math.random(),f++}while(f<20&&l>.35&&l<.65&&c>.35&&c<.65);s[2*u]=l,s[2*u+1]=c}for(var d=a;d<15;d++)s[2*d]=.5,s[2*d+1]=.5;var m=`\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur, uNext;\nuniform float uProgress, uStrength, uFreq, uAmp, uTime, uDir, uAspect;\nuniform int uMode;\nuniform int uCount;\nuniform vec2 uCenters[15];\nconst float PI = 3.14159265;\n\n${e.premultMixGLSL}\n\nvoid main(){\nfloat p = uProgress;\nfloat effectProg = sin( p * PI );\nvec2 displacement = vec2( 0.0 );\nfloat aq = sqrt(uAspect);\nvec2 asp  = vec2(aq, 1.0 / aq);\nvec2 iasp = vec2(1.0 / aq, aq);\n\nfor( int i = 0; i < 15; i++ ){\nif( i >= uCount ) break;\n\nvec2 center = uCenters[i];\nvec2 d      = (vUV - center) * asp;\nfloat r     = length( d );\nfloat theta = atan( d.y, d.x );\n\nbool  isMain = ( i == 0 );\nfloat reach  = isMain ? 1.0 : ( 1.0 - smoothstep( 0.0, 0.4, r ) );\nif( reach <= 0.0 ) continue;\n\nvec2 newD;\nif( uMode == 0 ){\nfloat twist  = sin( r * uFreq - uTime * 2.0 ) * uAmp * effectProg;\nfloat nTheta = theta + twist * uDir;\nfloat pull   = uStrength * effectProg * sin( nTheta * uFreq );\nfloat nR     = r + pull;\nnewD = vec2( cos( nTheta ), sin( nTheta ) ) * nR;\n} else {\nfloat swirlRange = isMain ? 0.75 : 0.4;\nfloat swirl      = uStrength * effectProg * 10.0;\nfloat sFall      = 1.0 - smoothstep( 0.0, swirlRange, r );\nfloat nTheta     = theta + swirl * sFall * uDir;\nnewD = vec2( cos( nTheta ), sin( nTheta ) ) * r;\n}\ndisplacement += ( newD - d ) * reach * iasp;\n}\n\nvec2 coord = vUV + displacement;\n\nvec4 cur  = texture2D( uCur,  coord );\nvec4 next = texture2D( uNext, coord );\ngl_FragColor = lsPremultMix( cur, next, p );\n}\n`,g=e.setupGLEffect(m),v=g.gl,h=g.program;v.uniform1f(v.getUniformLocation(h,"uStrength"),n/100),v.uniform1f(v.getUniformLocation(h,"uFreq"),2*r),v.uniform1f(v.getUniformLocation(h,"uAmp"),i/100),v.uniform1f(v.getUniformLocation(h,"uDir"),o),v.uniform1i(v.getUniformLocation(h,"uCount"),a),v.uniform2fv(v.getUniformLocation(h,"uCenters"),s),v.uniform1f(v.getUniformLocation(h,"uAspect"),v.canvas.width/v.canvas.height);var p=v.getUniformLocation(h,"uTime"),x={vortex:0,swirl:1}[this.settings.distortMode]||0;v.uniform1i(v.getUniformLocation(h,"uMode"),x),e.animateEffect(this.settings,function(t){v.uniform1f(p,performance.now()/1e3),e.drawGLFrame(v,g.uProgress,t)})}},glitch:{run:function(){var e=t.transitions.slide.fx,n=this.settings.splitIntensity,r=this.settings.tileSizeMin,i=this.settings.tileSizeMax,a=this.settings.tileShift,o=this.settings.tileYoyo,s=this.settings.animateTiles,u=this.settings.tileSpeed,l=this.settings.splitDirection,c="";c="horizontal"===this.settings.tileDirection?"\nfloat groupSeed = floor(vUV.y / uTileSizeMax);\nfloat randomTileSize = uTileSizeMin + rand(vec2(groupSeed, 99.1 + uSeed)) * (uTileSizeMax - uTileSizeMin);\nfloat row = floor(vUV.y / randomTileSize);\nfloat rawRand = rand(vec2(row, floor(uTime * uTileSpeed)));\nfloat shiftVal = (rawRand - 0.5) * 2.0 * uTileShift;\nfloat envelopeCur  = uAnimateTiles > 0.5 ? (uTileYoyo > 0.5 ? (1.0 - abs(uProgress - 0.5) * 2.0) : uProgress) : 1.0;\nfloat envelopeNext = uAnimateTiles > 0.5 ? (uTileYoyo > 0.5 ? (1.0 - abs(uProgress - 0.5) * 2.0) : (1.0 - uProgress)) : 1.0;\nvec2 glitchUVCur  = vec2(clamp(vUV.x + shiftVal * envelopeCur,  0.0, 1.0), vUV.y);\nvec2 glitchUVNext = vec2(clamp(vUV.x + shiftVal * envelopeNext, 0.0, 1.0), vUV.y);\n":"vertical"===this.settings.tileDirection?"\nfloat groupSeed = floor(vUV.x / uTileSizeMax);\nfloat randomTileSize = uTileSizeMin + rand(vec2(groupSeed, 55.7 + uSeed)) * (uTileSizeMax - uTileSizeMin);\nfloat col = floor(vUV.x / randomTileSize);\nfloat rawRand = rand(vec2(col, floor(uTime * uTileSpeed)));\nfloat shiftVal = (rawRand - 0.5) * 2.0 * uTileShift;\nfloat envelopeCur  = uAnimateTiles > 0.5 ? (uTileYoyo > 0.5 ? (1.0 - abs(uProgress - 0.5) * 2.0) : uProgress) : 1.0;\nfloat envelopeNext = uAnimateTiles > 0.5 ? (uTileYoyo > 0.5 ? (1.0 - abs(uProgress - 0.5) * 2.0) : (1.0 - uProgress)) : 1.0;\nvec2 glitchUVCur  = vec2(vUV.x, clamp(vUV.y + shiftVal * envelopeCur,  0.0, 1.0));\nvec2 glitchUVNext = vec2(vUV.x, clamp(vUV.y + shiftVal * envelopeNext, 0.0, 1.0));\n":"\nfloat groupSeedX = floor(vUV.x / uTileSizeMax);\nfloat groupSeedY = floor(vUV.y / uTileSizeMax);\nfloat randomTileSizeX = uTileSizeMin + rand(vec2(groupSeedX, 33.2 + uSeed)) * (uTileSizeMax - uTileSizeMin);\nfloat randomTileSizeY = uTileSizeMin + rand(vec2(groupSeedY, 77.4 + uSeed)) * (uTileSizeMax - uTileSizeMin);\nvec2 tile = vec2(floor(vUV.x / randomTileSizeX), floor(vUV.y / randomTileSizeY));\nfloat rawRand = rand(tile + floor(uTime * uTileSpeed));\nfloat shiftVal = (rawRand - 0.5) * 2.0 * uTileShift;\nfloat envelopeCur  = uAnimateTiles > 0.5 ? (uTileYoyo > 0.5 ? (1.0 - abs(uProgress - 0.5) * 2.0) : uProgress) : 1.0;\nfloat envelopeNext = uAnimateTiles > 0.5 ? (uTileYoyo > 0.5 ? (1.0 - abs(uProgress - 0.5) * 2.0) : (1.0 - uProgress)) : 1.0;\nvec2 glitchUVCur  = vec2(clamp(vUV.x + shiftVal * envelopeCur,  0.0, 1.0), vUV.y);\nvec2 glitchUVNext = vec2(clamp(vUV.x + shiftVal * envelopeNext, 0.0, 1.0), vUV.y);\n";var f=this.settings.autoDirection&&"right"===this.settings.direction?"":"-",d=`vec2(${f}splitCur, 0.0)`,m=`vec2(${f}splitNext, 0.0)`;"vertical"===l?(d=`vec2(0.0, ${f}splitCur)`,m=`vec2(0.0, ${f}splitNext)`):"both"===l&&(d=`vec2(${f}splitCur, ${f}splitCur)`,m=`vec2(${f}splitNext, ${f}splitNext)`);var g=`\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform float uProgress;\nuniform float uTime;\nuniform float uRgbSplit;\nuniform float uTileSizeMin;\nuniform float uTileSizeMax;\nuniform float uTileShift;\nuniform float uSeed;\nuniform float uTileYoyo;\nuniform float uAnimateTiles;\nuniform float uTileSpeed;\nuniform float uSplitProgress;\n\nfloat rand(vec2 co) {\nreturn fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\nvoid main() {\n${c}\nfloat splitCur  = uRgbSplit * uSplitProgress;\nfloat splitNext = uRgbSplit * (1.0 - uSplitProgress);\n\nvec4 r1 = texture2D( uCur,  glitchUVCur + ${d} );\nvec4 g1 = texture2D( uCur,  glitchUVCur );\nvec4 b1 = texture2D( uCur,  glitchUVCur - ${d} );\n\nvec4 r2 = texture2D( uNext, glitchUVNext - ${m} );\nvec4 g2 = texture2D( uNext, glitchUVNext );\nvec4 b2 = texture2D( uNext, glitchUVNext + ${m} );\n\nfloat alphaCur  = max( max( r1.a, g1.a ), b1.a );\nfloat alphaNext = max( max( r2.a, g2.a ), b2.a );\n\nvec4 curPremult = vec4(\nr1.r * r1.a,\ng1.g * g1.a,\nb1.b * b1.a,\nalphaCur\n);\n\nvec4 nextPremult = vec4(\nr2.r * r2.a,\ng2.g * g2.a,\nb2.b * b2.a,\nalphaNext\n);\n\nvec4 mixed = mix( curPremult, nextPremult, uProgress );\n\nif( mixed.a > 0.0 ){\nmixed.rgb /= mixed.a;\n}\n\ngl_FragColor = mixed;\n}\n`,v=e.setupGLEffect(g),h=v.gl,p=v.program,x=Math.random(),b=v.uProgress,S=h.getUniformLocation(p,"uSplitProgress"),M=h.getUniformLocation(p,"uTime");h.uniform1f(h.getUniformLocation(p,"uRgbSplit"),n/200),h.uniform1f(h.getUniformLocation(p,"uTileSizeMin"),r/1e3),h.uniform1f(h.getUniformLocation(p,"uTileSizeMax"),i/1e3),h.uniform1f(h.getUniformLocation(p,"uTileShift"),a/1e3),h.uniform1f(h.getUniformLocation(p,"uTileYoyo"),o?1:0),h.uniform1f(h.getUniformLocation(p,"uAnimateTiles"),s?1:0),h.uniform1f(h.getUniformLocation(p,"uTileSpeed"),u),h.uniform1f(h.getUniformLocation(p,"uSeed"),x);var T=-1,w=0,C=new t.gsap.TimelineMax({paused:!0});C.to({p:0},this.settings.duration,{p:1,ease:t.gsap.Linear.easeNone,onUpdate:function(){var e=performance.now()/1e3,t=this.target.p;if(s)w=t;else{var n=Math.floor(e*u);n!==T&&(w=t,T=n)}h.uniform1f(b,t),h.uniform1f(S,w),h.uniform1f(M,e),h.viewport(0,0,h.canvas.width,h.canvas.height),h.clear(h.COLOR_BUFFER_BIT),h.drawArrays(h.TRIANGLE_STRIP,0,4)}}),e.startTransition(C,this.settings.duration,this.settings.ease)}},liquidfade:{run:function(){var e=t.transitions.slide.fx,n=this.settings,r=[100*Math.random(),100*Math.random()],i=Math.random()*Math.PI*2,a=`\nprecision mediump float;\nvarying vec2 vUV;\nuniform vec2 uNoiseOffset;\nuniform float uNoiseRotation;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform float uProgress;\nuniform float uDistortion;\nuniform float uWaveSpeed;\nuniform float uAspect;\n\n${e.premultMixGLSL}\n\nfloat rand(vec2 n) {\nreturn fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453);\n}\n\nfloat noise(vec2 p){\nvec2 ip = floor(p);\nvec2 u = fract(p);\nu = u * u * (3.0 - 2.0 * u);\nfloat res = mix(\nmix(rand(ip), rand(ip + vec2(1.0, 0.0)), u.x),\nmix(rand(ip + vec2(0.0, 1.0)), rand(ip + vec2(1.0, 1.0)), u.x),\nu.y\n);\nreturn res;\n}\n\nfloat fbm(vec2 p) {\nfloat f = 0.0;\nf += 0.5000 * noise(p); p *= 2.02;\nf += 0.2500 * noise(p); p *= 2.03;\nf += 0.1250 * noise(p); p *= 2.01;\nf += 0.0625 * noise(p);\nreturn f;\n}\n\nvoid main() {\nvec2 uv = vUV;\nfloat aq = sqrt(uAspect);\nvec2 nUV = vec2(uv.x * aq, uv.y / aq);\nvec2 rotatedUV = mat2(cos(uNoiseRotation), -sin(uNoiseRotation), sin(uNoiseRotation), cos(uNoiseRotation)) * nUV;\nvec2 noiseInput = rotatedUV * 3.0 + vec2( uProgress * uWaveSpeed, uProgress * uWaveSpeed * 0.8 ) + uNoiseOffset;\nvec2 offset = vec2(\nfbm(noiseInput),\nfbm(noiseInput + 10.0)\n);\nfloat distFactor = pow(sin(uProgress * 3.14159265), 1.5);\noffset = (offset - 0.5) * uDistortion * distFactor;\nvec2 distortedUV = uv + offset;\nvec4 cur = texture2D( uCur, distortedUV );\nvec4 next = texture2D( uNext, distortedUV );\n\ngl_FragColor = lsPremultMix( cur, next, uProgress );\n}\n`,o=e.setupGLEffect(a),s=o.gl,u=o.program;s.uniform2f(s.getUniformLocation(u,"uNoiseOffset"),r[0],r[1]),s.uniform1f(s.getUniformLocation(u,"uNoiseRotation"),i),s.uniform1f(s.getUniformLocation(u,"uDistortion"),n.distortionStrength/10),s.uniform1f(s.getUniformLocation(u,"uWaveSpeed"),n.waveSpeed/5),s.uniform1f(s.getUniformLocation(u,"uAspect"),s.canvas.width/s.canvas.height),e.animateEffect(n,function(t){e.drawGLFrame(s,o.uProgress,t)})}},circularreveal:{run:function(){var n,r=t.transitions.slide.fx,i=this.settings,a=t.slider.width,o=t.slider.height,s=a/2,u=o/2,l=Math.sqrt(a*a+o*o)/2+1,c=[],f=i.threshold/100,d=i.circleCount,m=r.createCanvas(!0),g=(m.canvas,m.ctx);for(n=0;n<d;n++){var v=(U=n===d-1)?s:a*f+Math.random()*(a*(1-2*f)),h=U?u:o*f+Math.random()*(o*(1-2*f)),p=Math.random()*Math.PI*2,x=10*(Math.random()*(i.dizMax-i.dizMin)+i.dizMin),b=Math.cos(p)*x,S=Math.sin(p)*x,M=U?l:(Math.random()*(i.maxRadius-i.minRadius)+i.minRadius)/100*l;c.push({x:i.reverse&&!U?v+b:v,y:i.reverse&&!U?h+S:h,radius:i.reverse?M:0,maxRadius:M,startX:v,startY:h,targetX:v+b,targetY:h+S})}var T=document.createElement("canvas"),w=T.getContext("2d");T.width=r.bgData.current.canvas.width,T.height=r.bgData.current.canvas.height,w.drawImage(r.bgData.current.canvas,0,0);var C=new t.gsap.TimelineMax({paused:!0,onUpdate:function(){var e,t,n=r.bgData.current.ctx,s=i.reverse?T:r.bgData.next.canvas,u=i.reverse?r.bgData.next.canvas:T;for(n.clearRect(0,0,a,o),n.drawImage(u,0,0,a,o),g.clearRect(0,0,a,o),g.save(),g.beginPath(),e=0;e<c.length;e++)(t=c[e]).radius>0&&(g.moveTo(t.x+t.radius,t.y),g.arc(t.x,t.y,t.radius,0,2*Math.PI,!1));for(g.clip(),g.drawImage(s,0,0,a,o),g.restore(),n.save(),n.globalCompositeOperation="destination-out",e=0;e<c.length;e++)(t=c[e]).radius>0&&(n.beginPath(),n.arc(t.x,t.y,t.radius,0,2*Math.PI,!1),n.fillStyle="rgba(0,0,0,1)",n.fill());n.restore()}});for(n=0;n<c.length;n++){var U=n===c.length-1,D=i.reverse&&U?d:n;C.to(c[n],i.duration,{radius:i.reverse?0:c[n].maxRadius,x:U?c[n].x:i.reverse?c[n].startX:c[n].targetX,y:U?c[n].y:i.reverse?c[n].startY:c[n].targetY,ease:t.gsap.Linear.easeNone},D*i.staggerTime/1e3)}if("scaleNext"in i&&1!==i.scaleNext){var L={s:i.scaleNext},P=document.createElement("canvas"),N=P.getContext("2d");P.width=r.bgData.next.canvas.width,P.height=r.bgData.next.canvas.height,N.drawImage(r.bgData.next.canvas,0,0);C.to(L,C.duration(),{s:1,ease:t.gsap.Linear.easeNone,onUpdate:function(){var e=L.s,t=a,n=o,i=a*e,s=o*e,u=(a-i)/2,l=(o-s)/2;r.bgData.next.ctx.clearRect(0,0,a,o),r.bgData.next.ctx.drawImage(P,0,0,t,n,u,l,i,s)}},0)}e(r.bgData.current.canvas).css({visibility:"visible"}),r.startTransition(C,i.duration,i.ease)}},particledissolve:{run:function(){var e=t.transitions.slide.fx,n=Math.round(this.settings.gridX),r=Math.round(this.settings.gridY),i=this.settings.scatter,a=Math.min(Math.max(this.settings.spread/100,.02),.999),o=Math.max(this.settings.movement,0),s=this.settings.rotation,u=Math.max(this.settings.edgeSoft,.005),l={left:1,right:0,top:2,bottom:3,inwards:4,outwards:5},c=l.hasOwnProperty(this.settings.direction)?l[this.settings.direction]:3,f=e.setupGLEffect("\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur, uNext;\nuniform float uProgress;\nuniform float uScatter;\nuniform float uSpread;\nuniform float uMovement;\nuniform int   uDirection;\nuniform float uRotation;\nuniform float uEdgeSoft;\nuniform int   uGridX;\nuniform int   uGridY;\n\nfloat hash(vec2 p){\nreturn fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);\n}\n\nvec2 movementDir(vec2 cellCenter){\nif(uDirection == 0) return vec2(-1.0,  0.0);\nif(uDirection == 1) return vec2( 1.0,  0.0);\nif(uDirection == 2) return vec2( 0.0, -1.0);\nif(uDirection == 3) return vec2( 0.0,  1.0);\nif(uDirection == 4){\nvec2 d = cellCenter - vec2(0.5);\nfloat len = length(d);\nreturn len > 0.001 ? d / len : vec2(0.0);\n}\nif(uDirection == 5){\nvec2 d = vec2(0.5) - cellCenter;\nfloat len = length(d);\nreturn len > 0.001 ? d / len : vec2(0.0);\n}\nreturn vec2(0.0);\n}\n\nvoid main(){\nvec2 uv = vUV;\nvec2 gs = vec2(float(uGridX), float(uGridY));\n\nvec2 cellId     = floor(uv * gs);\nvec2 cellCenter = (cellId + 0.5) / gs;\nvec2 cellLocal  = (uv - cellCenter) * gs;\n\nfloat r0 = hash(cellId);\nfloat r1 = hash(cellId + vec2(31.3,  7.2));\nfloat r2 = hash(cellId + vec2( 2.7, 53.1));\nfloat r3 = hash(cellId + vec2(17.1, 23.4));\nfloat r4 = hash(cellId + vec2(43.2,  8.9));\nfloat r5 = hash(cellId + vec2(11.7, 37.6));\nfloat r6 = hash(cellId + vec2( 5.3, 61.2));\n\nvec2 gDir = movementDir(cellCenter);\n\nfloat dProg = smoothstep(\nr0 * (1.0 - uSpread),\nr0 * (1.0 - uSpread) + uSpread,\nuProgress\n);\n\nfloat dScale = max(0.002, 1.0 - dProg);\n\nvec2 randD = vec2(r1*2.0-1.0, r2*2.0-1.0);\nfloat rLen = length(randD);\nif(rLen > 0.001) randD /= rLen;\nvec2 dDir  = normalize(randD + gDir * uMovement);\nvec2 dOffset = dDir * dProg * uScatter;\n\nfloat dAngle = dProg * uRotation * (r6*2.0-1.0);\nfloat dSin = sin(dAngle), dCos = cos(dAngle);\nvec2 dLocal = vec2(\ndCos*cellLocal.x - dSin*cellLocal.y,\ndSin*cellLocal.x + dCos*cellLocal.y\n);\n\nfloat dEdge   = max(abs(dLocal.x), abs(dLocal.y));\nfloat dInside = 1.0 - smoothstep(\ndScale * 0.5,\ndScale * 0.5 + 2.0 * uEdgeSoft,\ndEdge\n);\n\nvec2 dUV  = clamp(uv + dOffset, 0.0, 1.0);\nvec4 colC = texture2D(uCur, dUV);\n\nfloat curA  = colC.a * dInside * dScale;\nvec4 curPre = vec4(colC.rgb * curA, curA);\n\nfloat aProg = 1.0 - smoothstep(\nr3 * (1.0 - uSpread),\nr3 * (1.0 - uSpread) + uSpread,\n1.0 - uProgress\n);\n\nfloat aScale = max(0.002, aProg);\n\nvec2 randA = vec2(r4*2.0-1.0, r5*2.0-1.0);\nfloat raLen = length(randA);\nif(raLen > 0.001) randA /= raLen;\nvec2 aDir  = normalize(randA + gDir * uMovement);\nvec2 aOffset = aDir * (1.0 - aProg) * uScatter;\n\nfloat aAngle = -(1.0 - aProg) * uRotation * (r6*2.0-1.0);\nfloat aSin = sin(aAngle), aCos = cos(aAngle);\nvec2 aLocal = vec2(\naCos*cellLocal.x - aSin*cellLocal.y,\naSin*cellLocal.x + aCos*cellLocal.y\n);\n\nfloat aEdge   = max(abs(aLocal.x), abs(aLocal.y));\nfloat aInside = 1.0 - smoothstep(\naScale * 0.5,\naScale * 0.5 + 2.0 * uEdgeSoft,\naEdge\n);\n\nvec2 aUV  = clamp(uv - aOffset, 0.0, 1.0);\nvec4 colN = texture2D(uNext, aUV);\n\nfloat nxtA = colN.a * aInside * aScale;\nvec4 nextPre = vec4(colN.rgb * nxtA, nxtA);\n\nvec4 result = curPre + nextPre * (1.0 - curA);\nif(result.a > 0.0) result.rgb /= result.a;\ngl_FragColor = result;\n}\n"),d=f.gl,m=f.program;d.uniform1f(d.getUniformLocation(m,"uScatter"),i/100),d.uniform1f(d.getUniformLocation(m,"uSpread"),a),d.uniform1f(d.getUniformLocation(m,"uMovement"),o/2),d.uniform1i(d.getUniformLocation(m,"uDirection"),c),d.uniform1f(d.getUniformLocation(m,"uRotation"),s/2),d.uniform1f(d.getUniformLocation(m,"uEdgeSoft"),10*u),d.uniform1i(d.getUniformLocation(m,"uGridX"),n),d.uniform1i(d.getUniformLocation(m,"uGridY"),r),e.animateEffect(this.settings,function(t){e.drawGLFrame(d,f.uProgress,t)})}},bloom:{run:function(){var e=t.transitions.slide.fx,n=Math.max(1,Math.min(25,this.settings.samples)),r=this.settings.strength/100,i=[0,0],a=0;switch(this.settings.direction){case"inwards":a=-1;break;case"outwards":default:a=1;break;case"right":i=[1,0];break;case"left":i=[-1,0];break;case"top":i=[0,1];break;case"bottom":i=[0,-1]}var o="\nprecision mediump float;\nvarying   vec2      vUV;\nuniform   sampler2D uCur, uNext;\nuniform   float     uProgress;\nuniform   float     uStrength;\nuniform   vec2      uMotion;\nuniform   float     uRadial;\nuniform vec3 uBgColor;\nuniform float uBgAlpha;\n\nvec4 motionSample(sampler2D tex, vec2 uv, float dirSign, float amt){\nvec4 acc = vec4(0.0);\nint n = "+n+";\nfloat w = 1.0 / float(n);\nfor(int i = 0; i < "+n+"; i++){\nfloat t  = (float(i) + 0.5) * w;\nfloat sc = 1.0 + uRadial * dirSign * uStrength * amt * t;\nvec2  lin = uMotion * dirSign * uStrength * amt * t;\nvec2  su  = (uv - 0.5) / sc + 0.5 - lin;\nsu = clamp(su, vec2(0.0), vec2(1.0));\nacc += texture2D(tex, su) * w;\n}\nreturn acc;\n}\n\nvoid main(){\nfloat halfP = uProgress * 2.0;\nfloat t1 = min(halfP, 1.0);\nfloat t2 = max(halfP - 1.0, 0.0);\n\nvec4 colC = motionSample(uCur,  vUV,  1.0,        t1);\nvec4 colN = motionSample(uNext, vUV, -1.0, (1.0 - t2));\n\ncolC.a *= (1.0 - t1);\ncolN.a *= t2;\n\nvec4 pc = vec4(colC.rgb * colC.a, colC.a);\nvec4 pn = vec4(colN.rgb * colN.a, colN.a);\nvec4 m  = pc + pn;\nif(m.a > 0.0) m.rgb /= m.a;\nfloat bgS;\nif (uProgress < 0.5) {\nfloat t = uProgress * 2.0;\nbgS = 1.0 - pow(1.0 - t, 5.0);\n} else {\nfloat t = (uProgress - 0.5) * 2.0;\nbgS = 1.0 - t * t * t * t * t;\n}\nfloat fa      = bgS * (1.0 - m.a) * uBgAlpha;\nvec3  dir     = uBgColor * 2.0 - 1.0;\nvec3  bloom   = clamp(m.rgb + dir * fa, 0.0, 1.0);\nvec3  bloomed = mix(bloom, uBgColor, fa * fa);\nfloat effectiveBgAlpha = uBgAlpha * bgS;\nfloat finalAlpha      = effectiveBgAlpha + (1.0 - effectiveBgAlpha) * m.a;\ngl_FragColor = vec4(bloomed, finalAlpha);\n}\n",s=e.setupGLEffect(o),u=s.gl,l=s.program;u.uniform1f(u.getUniformLocation(l,"uStrength"),r),u.uniform2f(u.getUniformLocation(l,"uMotion"),i[0],i[1]),u.uniform1f(u.getUniformLocation(l,"uRadial"),a);var c=function(e){if(!e)return[1,1,1,1];if("#"===(e=e.trim())[0]){var t=e.slice(1);return 3===t.length&&(t=t.split("").map(function(e){return e+e}).join("")),6===t.length&&(t+="ff"),[parseInt(t.slice(0,2),16)/255,parseInt(t.slice(2,4),16)/255,parseInt(t.slice(4,6),16)/255,parseInt(t.slice(6,8),16)/255]}var n=e.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)(?:\s*,\s*([\d.]+))?\s*\)/);return n?[+n[1]/255,+n[2]/255,+n[3]/255,void 0!==n[4]?+n[4]:1]:[1,1,1,1]}(this.settings.bgColor);u.uniform3f(u.getUniformLocation(l,"uBgColor"),c[0],c[1],c[2]),u.uniform1f(u.getUniformLocation(l,"uBgAlpha"),c[3]),e.animateEffect(this.settings,function(t){e.drawGLFrame(u,s.uProgress,t)})}},glow:{run:function(){var e=t.transitions.slide.fx,n=this.settings.maxBlur/500,r=this.settings.bokehSamples,i=this.settings.hiThreshold/100,a=this.settings.hiBoost/3.33,o=this.settings.peakBias/100,s=this.settings.blurMode,u=this.settings.moveAmount/100,l={left:[-1,0],right:[1,0],top:[0,1],bottom:[0,-1]},c=l[this.settings.direction]||l.left,f=0,d=0;"outwards"===this.settings.direction?(f=1,d=1):"inwards"===this.settings.direction&&(f=1,d=-1);var m=e.createCanvas().gl,g=m.canvas.width,v=m.canvas.height,h=g/v,p=Math.max(1,Math.round(.75*g)),x=Math.max(1,Math.round(.75*v));function b(t){var n=m.createProgram();return m.attachShader(n,e.createShader(m,"\nattribute vec2 aPos;\nvarying vec2 vUV;\nvoid main(){\nvUV = (aPos + 1.0) * 0.5;\ngl_Position = vec4(aPos, 0.0, 1.0);\n}\n",m.VERTEX_SHADER)),m.attachShader(n,e.createShader(m,t,m.FRAGMENT_SHADER)),m.linkProgram(n),n}var S=b("\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform float uQ;\nuniform float uRadiusCur;\nuniform float uRadiusNext;\nuniform float uMaxBlur;\nuniform float uSamples;\nuniform float uHiThresh;\nuniform float uHiBoost;\nuniform float uBoostFalloff;\nuniform float uAspect;\nuniform vec2  uDir;\nuniform float uMove;\nuniform float uMode;\nuniform float uScaleSgn;\n\nconst float GOLDEN = 2.39996323;\nconst int   MAX_SAMPLES = 64;\n\nfloat ign( vec2 p ){\nreturn fract( 52.9829189 * fract( dot( p, vec2(0.06711056, 0.00583715) ) ) );\n}\n\nvec4 bokeh( sampler2D tex, vec2 uv, float radius ){\nfloat rot  = ign( gl_FragCoord.xy ) * 6.2831853;\nfloat k    = radius / max( uMaxBlur, 0.0001 );\nfloat boost = uHiBoost * pow( k, uBoostFalloff );\nvec3  acc  = vec3(0.0);\nfloat aSum = 0.0;\nfloat n    = 0.0;\nfor( int i = 0; i < MAX_SAMPLES; i++ ){\nif( float(i) >= uSamples ) break;\nfloat fi = float(i) + 0.5;\nfloat r  = sqrt( fi / uSamples );\nfloat a  = fi * GOLDEN + rot;\nvec2  off = vec2( cos(a) / uAspect, sin(a) ) * r * radius;\nvec4  s   = texture2D( tex, uv + off );\nvec3  lin = s.rgb * s.rgb;\nfloat luma = dot( lin, vec3(0.2126, 0.7152, 0.0722) );\nlin += lin * max( luma - uHiThresh, 0.0 ) * boost;\nacc  += lin;\naSum += s.a;\nn    += 1.0;\n}\nreturn vec4( sqrt( acc / n ), aSum / n );\n}\n\nvoid main(){\nfloat q = uQ;\nvec2 uvCur, uvNext;\nif( uMode < 0.5 ){\nuvCur  = vUV - uDir * ( q * uMove );\nuvNext = vUV - uDir * ( (q - 1.0) * uMove );\n} else {\nfloat sCur  = 1.0 + uScaleSgn * ( q * uMove );\nfloat sNext = 1.0 + uScaleSgn * ( (q - 1.0) * uMove );\nuvCur  = 0.5 + (vUV - 0.5) / sCur;\nuvNext = 0.5 + (vUV - 0.5) / sNext;\n}\nvec4 cur  = bokeh( uCur,  uvCur,  uRadiusCur );\nvec4 next = bokeh( uNext, uvNext, uRadiusNext );\ngl_FragColor = mix( cur, next, q );\n}\n"),M=b("\nprecision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uCur;\nuniform sampler2D uNext;\nuniform sampler2D uBokeh;\nuniform float uQ;\nuniform float uBlurMix;\nuniform vec2  uDir;\nuniform float uMove;\nuniform float uMode;\nuniform float uScaleSgn;\n\nvoid main(){\nfloat q = uQ;\nvec2 uvCur, uvNext;\nif( uMode < 0.5 ){\nuvCur  = vUV - uDir * ( q * uMove );\nuvNext = vUV - uDir * ( (q - 1.0) * uMove );\n} else {\nfloat sCur  = 1.0 + uScaleSgn * ( q * uMove );\nfloat sNext = 1.0 + uScaleSgn * ( (q - 1.0) * uMove );\nuvCur  = 0.5 + (vUV - 0.5) / sCur;\nuvNext = 0.5 + (vUV - 0.5) / sNext;\n}\nvec4 sharp = mix( texture2D( uCur, uvCur ), texture2D( uNext, uvNext ), q );\nvec4 blur  = texture2D( uBokeh, vUV );\ngl_FragColor = mix( sharp, blur, uBlurMix );\n}\n"),T=m.createBuffer();m.bindBuffer(m.ARRAY_BUFFER,T),m.bufferData(m.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),m.STATIC_DRAW);var w=m.getAttribLocation(S,"aPos"),C=m.getAttribLocation(M,"aPos");m.activeTexture(m.TEXTURE0),e.createTexture(m,e.bgData.current.canvas),m.activeTexture(m.TEXTURE1),e.createTexture(m,e.bgData.next.canvas),m.activeTexture(m.TEXTURE2);var U=m.createTexture();m.bindTexture(m.TEXTURE_2D,U),m.texParameteri(m.TEXTURE_2D,m.TEXTURE_WRAP_S,m.CLAMP_TO_EDGE),m.texParameteri(m.TEXTURE_2D,m.TEXTURE_WRAP_T,m.CLAMP_TO_EDGE),m.texParameteri(m.TEXTURE_2D,m.TEXTURE_MIN_FILTER,m.LINEAR),m.texParameteri(m.TEXTURE_2D,m.TEXTURE_MAG_FILTER,m.LINEAR),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,p,x,0,m.RGBA,m.UNSIGNED_BYTE,null);var D=m.createFramebuffer();m.bindFramebuffer(m.FRAMEBUFFER,D),m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,m.TEXTURE_2D,U,0),m.checkFramebufferStatus(m.FRAMEBUFFER)!==m.FRAMEBUFFER_COMPLETE&&(console.error(t.defaults.slider.errorText),console.error("Glow SFX: Framebuffer incomplete! Check canvas size.")),m.bindFramebuffer(m.FRAMEBUFFER,null),m.useProgram(S),m.uniform1i(m.getUniformLocation(S,"uCur"),0),m.uniform1i(m.getUniformLocation(S,"uNext"),1),m.uniform1f(m.getUniformLocation(S,"uMaxBlur"),n),m.uniform1f(m.getUniformLocation(S,"uSamples"),r),m.uniform1f(m.getUniformLocation(S,"uHiThresh"),i),m.uniform1f(m.getUniformLocation(S,"uHiBoost"),a),m.uniform1f(m.getUniformLocation(S,"uBoostFalloff"),2),m.uniform1f(m.getUniformLocation(S,"uAspect"),h),m.uniform2f(m.getUniformLocation(S,"uDir"),c[0],c[1]),m.uniform1f(m.getUniformLocation(S,"uMove"),u),m.uniform1f(m.getUniformLocation(S,"uMode"),f),m.uniform1f(m.getUniformLocation(S,"uScaleSgn"),d);var L=m.getUniformLocation(S,"uQ"),P=m.getUniformLocation(S,"uRadiusCur"),N=m.getUniformLocation(S,"uRadiusNext");m.useProgram(M),m.uniform1i(m.getUniformLocation(M,"uCur"),0),m.uniform1i(m.getUniformLocation(M,"uNext"),1),m.uniform1i(m.getUniformLocation(M,"uBokeh"),2),m.uniform2f(m.getUniformLocation(M,"uDir"),c[0],c[1]),m.uniform1f(m.getUniformLocation(M,"uMove"),u),m.uniform1f(m.getUniformLocation(M,"uMode"),f),m.uniform1f(m.getUniformLocation(M,"uScaleSgn"),d);var y=m.getUniformLocation(M,"uQ"),E=m.getUniformLocation(M,"uBlurMix");function A(e,t,n){return(n=Math.min(Math.max((n-e)/(t-e),0),1))*n*(3-2*n)}function R(e){var t,r,i,a=Math.min(Math.max(e/Math.max(1,1e-4),0),1);if("cross"===s){var u=Math.max(1e-4,2*o);i=A(.001,.008,(t=n*Math.sin(Math.pow(a,1/u)*Math.PI*.5))*(1-a)+(r=n*Math.sin(Math.pow(1-a,1/u)*Math.PI*.5))*a)}else{var l=a<o?a/Math.max(o,1e-4):(1-a)/Math.max(1-o,1e-4);i=A(.001,.008,t=r=n*Math.sin(l*Math.PI*.5))}m.bindFramebuffer(m.FRAMEBUFFER,D),m.viewport(0,0,p,x),m.disable(m.BLEND),m.useProgram(S),m.bindBuffer(m.ARRAY_BUFFER,T),m.enableVertexAttribArray(w),m.vertexAttribPointer(w,2,m.FLOAT,!1,0,0),m.uniform1f(L,a),m.uniform1f(P,t),m.uniform1f(N,r),m.drawArrays(m.TRIANGLE_STRIP,0,4),m.bindFramebuffer(m.FRAMEBUFFER,null),m.viewport(0,0,g,v),m.enable(m.BLEND),m.blendFunc(m.ONE,m.ONE_MINUS_SRC_ALPHA),m.useProgram(M),m.enableVertexAttribArray(C),m.vertexAttribPointer(C,2,m.FLOAT,!1,0,0),m.uniform1f(y,a),m.uniform1f(E,i),m.drawArrays(m.TRIANGLE_STRIP,0,4)}R(0);var F={p:0},I=new t.gsap.TimelineMax({paused:!0});I.to(F,this.settings.duration,{p:1,ease:t.gsap.Linear.easeNone,onUpdate:function(){R(F.p)}}),e.startTransition(I,this.settings.duration,this.settings.ease)}},origami:{start:function(){t.transitions.slide.fx.setEffect("origami"),t.slider.ceilRatio=Math.ceil(t.slider.width/t.slider.height),this.blocksNum=t.slider.ceilRatio>this.settings.maxTiles?this.settings.maxTiles:t.slider.ceilRatio,this.blocksNum=Math.floor(Math.random()*this.blocksNum)+1,this.addBlocks()},getDirection:function(e){for(var t=this.lastDir;this.lastDir==t;)t=this.blocksNum>1?0===e?["right","top","right","bottom"][Math.floor(4*Math.random())]:e==this.blocksNum-1?["left","top","left","bottom"][Math.floor(4*Math.random())]:["top","bottom"][Math.floor(2*Math.random())]:["left","top","right","bottom"][Math.floor(4*Math.random())];return this.lastDir=t,t},addBlocks:function(){for(var e=t.slider.width%2==0?t.slider.width:t.slider.width+1,n=e/this.blocksNum%2==0?e/this.blocksNum:e/this.blocksNum-e/this.blocksNum%2,r=t.slider.height%2==0?t.slider.height:t.slider.height+1,i=0,a=0;a<this.blocksNum;a++){var o=this.blocksNum-Math.abs(Math.floor(this.blocksNum/2)-a)-Math.floor(this.blocksNum/2),s=this.getDirection(a),u=n;e/this.blocksNum%2!=0&&a%2==0&&(e-n*this.blocksNum)/2<this.blocksNum&&(u+=2),a===this.blocksNum-1&&i+u!==e&&(u=e-i),a===this.blocksNum-1&&e!==t.slider.width&&(i-=1);var l=this.createBlock("ls-origami-"+s,u,r,i,0).data({direction:s});l.css({zIndex:o}),this.appendTiles(l,i,s),i+=u}t.transitions.slide.start()},createBlock:function(n,r,i,a,o){return e("<div>").addClass("ls-origami-block "+n).css({width:r,height:i,left:a,top:o}).appendTo(t.transitions.slide.$wrapper)},appendTiles:function(n,r,i){var a;switch(i){case"left":case"right":a={width:n.width()/2};break;case"top":case"bottom":a={height:n.height()/2}}var o=e("<div>").css(a).addClass("ls-origami-tile ls-origami-cur").appendTo(n),s=e("<div>").css(a).addClass("ls-origami-tile ls-origami-cur").appendTo(o),u=e("<div>").css(a).addClass("ls-origami-tile ls-origami-next").appendTo(s),l=e("<div>").css(a).addClass("ls-origami-tile ls-origami-next").appendTo(u);n.find(".ls-origami-tile").each(function(){var i=e(this).hasClass("ls-origami-next")?"next":"current",a=e("<div>").addClass("ls-origami-image-holder").appendTo(e(this));if(t.slides[i]?.data?.$background){var o,s,u=e(this).parent();switch(n.data("direction")){case"left":switch(i){case"current":for(o=e(this).position().left;!u.is(".ls-origami-block");)o+=u.position().left,u=u.parent();break;case"next":for(o=0;!u.is(".ls-origami-cur");)o+=u.position().left,u=u.parent()}o=-r-o;break;case"right":switch(i){case"current":for(o=-e(this).position().left;!u.is(".ls-origami-block");)o-=u.position().left,u=u.parent();break;case"next":for(o=e(this).position().left;!u.is(".ls-origami-cur");)o-=u.position().left,u=u.parent()}o=-r+o;break;case"top":switch(i){case"current":for(s=-e(this).position().top;!u.is(".ls-origami-block");)s-=u.position().top,u=u.parent();break;case"next":for(s=0;!u.is(".ls-origami-cur");)s-=u.position().top,u=u.parent()}o=-r;break;case"bottom":switch(i){case"current":for(s=-e(this).position().top;!u.is(".ls-origami-block");)s-=u.position().top,u=u.parent();break;case"next":for(s=e(this).position().top;!u.is(".ls-origami-cur");)s-=u.position().top,u=u.parent()}o=-r}var l,c,f=t.o.playByScroll&&"up"===t.device.scroll.direction?"to":"from",d="current"===i?t.transitions.curSlide:t.transitions.nextSlide,m=d.data.$background.data(t.defaults.init.dataKey),g=m.kenBurns[f],v=t.functions.getURL(d.data.$background),h=e("<ls-grad>").appendTo(a),p=e("<img>").appendTo(h).attr("src",v).css({width:m.responsive.width,height:m.responsive.height,"-webkit-filter":m.responsive.filter,filter:m.responsive.filter,outline:"1px solid transparent"});switch(h.css({width:t.slider.width+"px",height:t.slider.height+"px",left:o,top:s,backgroundImage:d.data.backgroundGradient||"none"}),i){case"current":l=m.responsive.kbRotation+m.responsive.kbScale,c="translateX("+m.responsive.x+"px) translateY("+m.responsive.y+"px) ";break;case"next":l="rotate("+g.rotation+"deg) scale("+g.scale+")",c="translateX("+m.responsive.x+"px) translateY("+m.responsive.y+"px) "}p.css({transform:c}),h.css({transform:l}),"transparent"===d.data.backgroundColor||d.data.$backgroundVideo.length||a.css("background-color",d.data.backgroundColor),t.slider.$slideBGColorWrapper.css("background-color","transparent"),e("<div>").addClass("ls-light").appendTo(a)}}),this.setTransition(n,i,o,s,u,l)},setTransition:function(e,n,r,i,a,o){e.find(".ls-light").addClass("ls-black").css({backgroundColor:this.settings.fadeColor});var s=r.find("> .ls-origami-image-holder > div"),u=i.find("> .ls-origami-image-holder > div"),l=a.find("> .ls-origami-image-holder > div"),c=o.find("> .ls-origami-image-holder > div"),f=this.settings.duration,d=f/2,m=this.settings.ease,g=1-this.settings.opacity,v=1.5*g,h={left:{axis:"rotationY",sign:1},right:{axis:"rotationY",sign:-1},top:{axis:"rotationX",sign:-1},bottom:{axis:"rotationX",sign:1}}[n],p=h.axis,x=h.sign,b=function(e,t){return e[p]=x*t,e};t.timelines._slideTransition.to(r[0],f,b({ease:m},89),0).to(i[0],f,b({ease:m},-180),0).fromTo(a[0],f,b({},130),b({ease:m},91),0).fromTo(o[0],f,b({},90),b({ease:m},0),d),s[0]&&t.timelines._slideTransition.fromTo(s[0],f,{opacity:0},{ease:m,opacity:1-v},0),u[0]&&t.timelines._slideTransition.fromTo(u[0],f,{opacity:0},{ease:m,opacity:1-g},0),l[0]&&t.timelines._slideTransition.fromTo(l[0],f,{opacity:1-v},{ease:m,opacity:0},0),c[0]&&t.timelines._slideTransition.fromTo(c[0],f,{opacity:1-v},{ease:m,opacity:0},d)}}},t.plugins.addFunction("initSlide",r.pluginData.key,function(n){t.slides[n.slideIndex].data.sfxtr=n.slideElement.data("ls-sfxtr")||!1,t.slides[n.slideIndex].data.$background||(t.slides[n.slideIndex].data.$background=e("<img>").addClass("ls-bg").attr("src",t.defaults.init.emptyIMG).appendTo(n.slideElement))}),t.plugins.addFunction("selectSlideTransitionTypeBefore",r.pluginData.key,function(e){var n=t.transitions.nextSlide.data,r=[];t.browser.supports3D&&t.browser.supportsWebGL&&(t.slides.next.data.transitionorigami||t.slides.next.data.sfxtr)&&r.push("fx"),(n.transition3d||n.transition2d||0===r.length)&&r.push("normal"),t.transitions.slide.select.transitionType=r[Math.floor(Math.random()*r.length)]})}}}(jQuery),window._layerSlider.sfx=function(e){var t={};for(var n in e){var r=e[n],i=r.$d,a={};for(var o in r)if("$d"!==o){var s,u={};for(s in i)u[s]=i[s];for(s in r[o])u[s]=r[o][s];a[o]=u}t[n]=a}return t}({liquidmorph:{$d:{duration:1600,ease:"easeInOutQuad",amplitude:30,scale:3,speed:20,edge:15,swirl:4,chromatic:10,direction:"right",autoDirection:!0},swirly:{},soft:{amplitude:20,speed:0,scale:5,edge:100,swirl:0,ease:"easeInOutSine"},reveal:{amplitude:10,speed:30,scale:10,edge:0,swirl:0,chromatic:0,duration:2e3,ease:"easeOutQuad"},intense:{amplitude:100,speed:70,scale:20,edge:0,swirl:1,chromatic:60,duration:2400},psychedelic:{amplitude:0,speed:30,scale:4,edge:3,swirl:0,chromatic:50,ease:"easeInOutSine"},texturedGlass:{amplitude:100,speed:100,scale:100,edge:100,swirl:1,direction:"left",duration:2e3},inkBleed:{amplitude:0,speed:0,scale:4,edge:10,swirl:0,chromatic:0,duration:2e3,ease:"easeOutSine"}},storm:{$d:{fragments:10,intensity:3,waveStrength:40,waveFrequency:1,blur:25,duration:2e3,ease:"easeOutQuad"},windGust:{},wavy:{fragments:5,intensity:20,waveStrength:20,waveFrequency:50,blur:100,duration:1500,ease:"easeInOutQuad"},signalGlitch:{intensity:0,waveStrength:100,waveFrequency:100,blur:50},dreamy:{intensity:0,waveStrength:100,waveFrequency:5,blur:20,ease:"easeInOutQuad"},fragments:{duration:1500,ease:"easeInOutQuad",intensity:8,waveStrength:0,waveFrequency:0,blur:0}},colorswipe:{$d:{duration:1500,ease:"easeOutQuad",direction:"left",intensity:30,blur:0,autoDirection:!0},sharp:{},sink:{duration:2e3,ease:"easeInOutQuart",direction:"inwards",intensity:100,blur:40,autoDirection:!1},fall:{ease:"easeOutQuart",intensity:10,blur:20,direction:"bottom",autoDirection:!1},warp:{duration:2e3,ease:"easeInOutQuad",intensity:100,blur:100,direction:"outwards",autoDirection:!1},smoke:{duration:3e3,ease:"easeInOutQuad",intensity:100,blur:75,direction:"top",autoDirection:!1}},displacementripple:{$d:{rippleAmplitude:10,rippleFrequency:20,matchWaves:!1,duration:2e3,ease:"easeInOutQuad"},tender:{},ripple:{rippleAmplitude:6,rippleFrequency:100,matchWaves:!0,duration:3e3,ease:"easeInOutQuint"},metallic:{rippleAmplitude:100,ease:"easeInOutQuart"},comb:{rippleAmplitude:4,rippleFrequency:1e3,duration:2500}},spiral:{$d:{count:1,angle:90,zoom:0,wobble:0,autoDirection:!0,duration:2e3,direction:"right",ease:"easeInOutQuint"},quarterTurn:{},fastZoom:{count:2,angle:10,zoom:20,duration:1e3,ease:"easeOutQuad"},slowWobble:{count:15,angle:-10,wobble:30,ease:"easeInOutSine"},vortex:{angle:720,zoom:-100,ease:"easeInOutCubic"}},vortexdistort:{$d:{distortMode:"vortex",autoDirection:!0,strength:10,frequency:25,amplitude:10,count:1,duration:2e3,direction:"right",ease:"easeInOutQuad"},zigzag:{},flowers:{frequency:5,amplitude:50,count:7,duration:2400,ease:"easeOutCubic"},swirlJump:{distortMode:"swirl",strength:50,frequency:0,amplitude:0,count:3,ease:"easeOutQuart"}},glitch:{$d:{tileSizeMin:50,tileSizeMax:200,tileDirection:"horizontal",tileShift:7,tileSpeed:10,animateTiles:!1,tileYoyo:!1,splitDirection:"horizontal",splitIntensity:5,autoDirection:!0,duration:1500,direction:"left",ease:"easeOutQuad"},fracture:{},fastSmooth:{tileSizeMin:10,tileSizeMax:50,tileShift:10,tileSpeed:60,animateTiles:!0,splitIntensity:10,duration:2e3,ease:"easeOutSine"},verticalShred:{tileSizeMin:1,tileSizeMax:5,tileDirection:"vertical",tileShift:50,tileSpeed:120,animateTiles:!0,splitDirection:"vertical",splitIntensity:30,duration:2e3,ease:"easeOutQuart"},chromaticStorm:{tileSizeMin:1,tileSizeMax:1,tileDirection:"both",tileShift:100,tileSpeed:60,animateTiles:!0,splitDirection:"both",splitIntensity:20,duration:2400,ease:"easeOutQuint"},morph:{tileSizeMin:20,tileSizeMax:150,tileDirection:"both",tileShift:30,tileSpeed:0,animateTiles:!0,splitIntensity:10,duration:1200,ease:"easeInOutSine"}},liquidfade:{$d:{duration:3e3,distortionStrength:11,waveSpeed:20,ease:"easeOutQuad"},riverFlow:{},softRipples:{duration:2e3,distortionStrength:3,waveSpeed:10,ease:"easeOutSine"},slowWarp:{distortionStrength:10,waveSpeed:4,ease:"easeOutCubic"}},circularreveal:{$d:{circleCount:15,staggerTime:40,minRadius:50,maxRadius:75,dizMin:0,dizMax:0,threshold:5,scaleNext:1,reverse:!1,duration:1750,ease:"easeInOutSine"},bubbleReveal:{},dizzyZoom:{circleCount:20,staggerTime:25,duration:2e3,minRadius:30,maxRadius:50,dizMin:10,dizMax:40,scaleNext:1.05},circleCollapse:{circleCount:20,staggerTime:20,duration:2e3,threshold:10,maxRadius:100,scaleNext:2,ease:"easeOutSine",reverse:!0}},particledissolve:{$d:{gridX:10,gridY:10,rotation:100,edgeSoft:1,spread:90,scatter:95,movement:0,direction:"outwards",autoDirection:!0,duration:1600,ease:"easeOutCubic"},tiles:{},windblow:{gridX:1,gridY:200,rotation:0,spread:75,scatter:100,movement:100,direction:"left",ease:"easeInOutSine"},pixelRain:{gridX:200,gridY:200,rotation:0,scatter:75,movement:100,direction:"bottom",ease:"easeOutQuad"},rowDrift:{gridX:1,rotation:0,spread:100,scatter:10,duration:2e3},mosaic:{gridX:40,gridY:40,rotation:0,edgeSoft:0,spread:80,movement:50,ease:"easeOutQuad"},quicksand:{gridX:1e3,gridY:1e3,rotation:0,scatter:100,movement:100,direction:"inwards",duration:2400,ease:"easeOutQuart"}},bloom:{$d:{duration:2e3,ease:"easeOutQuad",samples:10,strength:50,direction:"outwards",bgColor:"#ffffff",autoDirection:!0},burstEcho:{},motionTrail:{duration:1600,samples:8,strength:20,direction:"left"},darkCollapse:{duration:2400,samples:14,strength:40,direction:"inwards",bgColor:"#000000",autoDirection:!1}},glow:{$d:{duration:2500,ease:"easeOutSine",maxBlur:25,bokehSamples:64,hiThreshold:20,hiBoost:40,peakBias:50,blurMode:"sync",direction:"outwards",moveAmount:25,autoDirection:!0},radiantBurst:{},lightStreak:{hiBoost:65,direction:"left",moveAmount:15},dreamHaze:{duration:3e3,ease:"easeInOutQuad",maxBlur:30,hiBoost:65,direction:"top"},softFocus:{duration:2e3,ease:"easeInOutSine",maxBlur:15,hiThreshold:1,hiBoost:30,peakBias:35,direction:"inwards",moveAmount:30},pixelated:{duration:3e3,ease:"easeInOutSine",bokehSamples:1,hiThreshold:0,hiBoost:77,blurMode:"cross",moveAmount:5}},origami:{$d:{duration:2e3,ease:"easeOutCubic",maxTiles:3,opacity:.75,fadeColor:"#000000"},darkFold:{},brightFold:{opacity:1,fadeColor:"#ffffff"},bouncy:{duration:2500,ease:"easeOutBounce",opacity:.5}}});