(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="13be19cc-fa59-4b93-a34e-1c2f75fcedfc",t._sentryDebugIdIdentifier="sentry-dbid-13be19cc-fa59-4b93-a34e-1c2f75fcedfc")}catch{}})();function qs(t,e){for(var i=0;i<e.length;i++){const n=e[i];if(typeof n!="string"&&!Array.isArray(n)){for(const s in n)if(s!=="default"&&!(s in t)){const o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(t,s,o.get?o:{enumerable:!0,get:()=>n[s]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var Us=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};Us.SENTRY_RELEASE={id:"10b6dde64c45faba1863cf01cb3107ee1760f8cd"};var mf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function js(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function yf(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var i=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};i.prototype=e.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var s=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(i,n,s.get?s:{enumerable:!0,get:function(){return t[n]}})}),i}var Vn={exports:{}},jt={},Gn={exports:{}},z={};/**
 * @license React
 * react.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var gt=Symbol.for("react.element"),Hs=Symbol.for("react.portal"),Ws=Symbol.for("react.fragment"),Vs=Symbol.for("react.strict_mode"),Gs=Symbol.for("react.profiler"),Ns=Symbol.for("react.provider"),Qs=Symbol.for("react.context"),Ys=Symbol.for("react.forward_ref"),Xs=Symbol.for("react.suspense"),Zs=Symbol.for("react.memo"),Js=Symbol.for("react.lazy"),Ti=Symbol.iterator;function Ks(t){return t===null||typeof t!="object"?null:(t=Ti&&t[Ti]||t["@@iterator"],typeof t=="function"?t:null)}var Nn={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Qn=Object.assign,Yn={};function at(t,e,i){this.props=t,this.context=e,this.refs=Yn,this.updater=i||Nn}at.prototype.isReactComponent={};at.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};at.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Xn(){}Xn.prototype=at.prototype;function xi(t,e,i){this.props=t,this.context=e,this.refs=Yn,this.updater=i||Nn}var _i=xi.prototype=new Xn;_i.constructor=xi;Qn(_i,at.prototype);_i.isPureReactComponent=!0;var Li=Array.isArray,Zn=Object.prototype.hasOwnProperty,ki={current:null},Jn={key:!0,ref:!0,__self:!0,__source:!0};function Kn(t,e,i){var n,s={},o=null,r=null;if(e!=null)for(n in e.ref!==void 0&&(r=e.ref),e.key!==void 0&&(o=""+e.key),e)Zn.call(e,n)&&!Jn.hasOwnProperty(n)&&(s[n]=e[n]);var a=arguments.length-2;if(a===1)s.children=i;else if(1<a){for(var c=Array(a),l=0;l<a;l++)c[l]=arguments[l+2];s.children=c}if(t&&t.defaultProps)for(n in a=t.defaultProps,a)s[n]===void 0&&(s[n]=a[n]);return{$$typeof:gt,type:t,key:o,ref:r,props:s,_owner:ki.current}}function eo(t,e){return{$$typeof:gt,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function Ci(t){return typeof t=="object"&&t!==null&&t.$$typeof===gt}function to(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(i){return e[i]})}var Fi=/\/+/g;function Yt(t,e){return typeof t=="object"&&t!==null&&t.key!=null?to(""+t.key):e.toString(36)}function It(t,e,i,n,s){var o=typeof t;(o==="undefined"||o==="boolean")&&(t=null);var r=!1;if(t===null)r=!0;else switch(o){case"string":case"number":r=!0;break;case"object":switch(t.$$typeof){case gt:case Hs:r=!0}}if(r)return r=t,s=s(r),t=n===""?"."+Yt(r,0):n,Li(s)?(i="",t!=null&&(i=t.replace(Fi,"$&/")+"/"),It(s,e,i,"",function(l){return l})):s!=null&&(Ci(s)&&(s=eo(s,i+(!s.key||r&&r.key===s.key?"":(""+s.key).replace(Fi,"$&/")+"/")+t)),e.push(s)),1;if(r=0,n=n===""?".":n+":",Li(t))for(var a=0;a<t.length;a++){o=t[a];var c=n+Yt(o,a);r+=It(o,e,i,c,s)}else if(c=Ks(t),typeof c=="function")for(t=c.call(t),a=0;!(o=t.next()).done;)o=o.value,c=n+Yt(o,a++),r+=It(o,e,i,c,s);else if(o==="object")throw e=String(t),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.");return r}function wt(t,e,i){if(t==null)return t;var n=[],s=0;return It(t,n,"","",function(o){return e.call(i,o,s++)}),n}function io(t){if(t._status===-1){var e=t._result;e=e(),e.then(function(i){(t._status===0||t._status===-1)&&(t._status=1,t._result=i)},function(i){(t._status===0||t._status===-1)&&(t._status=2,t._result=i)}),t._status===-1&&(t._status=0,t._result=e)}if(t._status===1)return t._result.default;throw t._result}var X={current:null},Tt={transition:null},no={ReactCurrentDispatcher:X,ReactCurrentBatchConfig:Tt,ReactCurrentOwner:ki};function es(){throw Error("act(...) is not supported in production builds of React.")}z.Children={map:wt,forEach:function(t,e,i){wt(t,function(){e.apply(this,arguments)},i)},count:function(t){var e=0;return wt(t,function(){e++}),e},toArray:function(t){return wt(t,function(e){return e})||[]},only:function(t){if(!Ci(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};z.Component=at;z.Fragment=Ws;z.Profiler=Gs;z.PureComponent=xi;z.StrictMode=Vs;z.Suspense=Xs;z.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=no;z.act=es;z.cloneElement=function(t,e,i){if(t==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var n=Qn({},t.props),s=t.key,o=t.ref,r=t._owner;if(e!=null){if(e.ref!==void 0&&(o=e.ref,r=ki.current),e.key!==void 0&&(s=""+e.key),t.type&&t.type.defaultProps)var a=t.type.defaultProps;for(c in e)Zn.call(e,c)&&!Jn.hasOwnProperty(c)&&(n[c]=e[c]===void 0&&a!==void 0?a[c]:e[c])}var c=arguments.length-2;if(c===1)n.children=i;else if(1<c){a=Array(c);for(var l=0;l<c;l++)a[l]=arguments[l+2];n.children=a}return{$$typeof:gt,type:t.type,key:s,ref:o,props:n,_owner:r}};z.createContext=function(t){return t={$$typeof:Qs,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},t.Provider={$$typeof:Ns,_context:t},t.Consumer=t};z.createElement=Kn;z.createFactory=function(t){var e=Kn.bind(null,t);return e.type=t,e};z.createRef=function(){return{current:null}};z.forwardRef=function(t){return{$$typeof:Ys,render:t}};z.isValidElement=Ci;z.lazy=function(t){return{$$typeof:Js,_payload:{_status:-1,_result:t},_init:io}};z.memo=function(t,e){return{$$typeof:Zs,type:t,compare:e===void 0?null:e}};z.startTransition=function(t){var e=Tt.transition;Tt.transition={};try{t()}finally{Tt.transition=e}};z.unstable_act=es;z.useCallback=function(t,e){return X.current.useCallback(t,e)};z.useContext=function(t){return X.current.useContext(t)};z.useDebugValue=function(){};z.useDeferredValue=function(t){return X.current.useDeferredValue(t)};z.useEffect=function(t,e){return X.current.useEffect(t,e)};z.useId=function(){return X.current.useId()};z.useImperativeHandle=function(t,e,i){return X.current.useImperativeHandle(t,e,i)};z.useInsertionEffect=function(t,e){return X.current.useInsertionEffect(t,e)};z.useLayoutEffect=function(t,e){return X.current.useLayoutEffect(t,e)};z.useMemo=function(t,e){return X.current.useMemo(t,e)};z.useReducer=function(t,e,i){return X.current.useReducer(t,e,i)};z.useRef=function(t){return X.current.useRef(t)};z.useState=function(t){return X.current.useState(t)};z.useSyncExternalStore=function(t,e,i){return X.current.useSyncExternalStore(t,e,i)};z.useTransition=function(){return X.current.useTransition()};z.version="18.3.1";Gn.exports=z;var Ht=Gn.exports;const so=js(Ht),gf=qs({__proto__:null,default:so},[Ht]);/**
 * @license React
 * react-jsx-runtime.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var oo=Ht,ro=Symbol.for("react.element"),ao=Symbol.for("react.fragment"),co=Object.prototype.hasOwnProperty,lo=oo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,uo={key:!0,ref:!0,__self:!0,__source:!0};function ts(t,e,i){var n,s={},o=null,r=null;i!==void 0&&(o=""+i),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(r=e.ref);for(n in e)co.call(e,n)&&!uo.hasOwnProperty(n)&&(s[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)s[n]===void 0&&(s[n]=e[n]);return{$$typeof:ro,type:t,key:o,ref:r,props:s,_owner:lo.current}}jt.Fragment=ao;jt.jsx=ts;jt.jsxs=ts;Vn.exports=jt;var Pi=Vn.exports;const vf=Pi.Fragment,ho=Pi.jsx,bf=Pi.jsxs,Ie="generated",fo="pointerdown",po="pointerup",di="pointerleave",mo="pointerout",Be="pointermove",yo="touchstart",$i="touchend",go="touchmove",vo="touchcancel",bo="resize",wo="visibilitychange",ne="tsParticles - Error",H=100,qe=.5,E=1e3;var B;(function(t){t.bottom="bottom",t.bottomLeft="bottom-left",t.bottomRight="bottom-right",t.left="left",t.none="none",t.right="right",t.top="top",t.topLeft="top-left",t.topRight="top-right",t.outside="outside",t.inside="inside"})(B||(B={}));function is(t){return typeof t=="boolean"}function Ce(t){return typeof t=="string"}function ue(t){return typeof t=="number"}function Ne(t){return typeof t=="object"&&t!==null}function Q(t){return Array.isArray(t)}const de={x:0,y:0,z:0},Ai=2,xo=1;class J{constructor(e,i,n){if(this._updateFromAngle=(s,o)=>{this.x=Math.cos(s)*o,this.y=Math.sin(s)*o},!ue(e)&&e){this.x=e.x,this.y=e.y;const s=e;this.z=s.z?s.z:de.z}else if(e!==void 0&&i!==void 0)this.x=e,this.y=i,this.z=n??de.z;else throw new Error(`${ne} Vector3d not initialized correctly`)}static get origin(){return J.create(de.x,de.y,de.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(e){return J.create(e.x,e.y,e.z)}static create(e,i,n){return new J(e,i,n)}add(e){return J.create(this.x+e.x,this.y+e.y,this.z+e.z)}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}copy(){return J.clone(this)}distanceTo(e){return this.sub(e).length}distanceToSq(e){return this.sub(e).getLengthSq()}div(e){return J.create(this.x/e,this.y/e,this.z/e)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**Ai+this.y**Ai}mult(e){return J.create(this.x*e,this.y*e,this.z*e)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){const e=this.length;e!=0&&this.multTo(xo/e)}rotate(e){return J.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),de.z)}setTo(e){this.x=e.x,this.y=e.y;const i=e;this.z=i.z?i.z:de.z}sub(e){return J.create(this.x-e.x,this.y-e.y,this.z-e.z)}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}}class F extends J{constructor(e,i){super(e,i,de.z)}static get origin(){return F.create(de.x,de.y)}static clone(e){return F.create(e.x,e.y)}static create(e,i){return new F(e,i)}}let _o=Math.random;const ns={nextFrame:t=>requestAnimationFrame(t),cancel:t=>cancelAnimationFrame(t)},pi=new Map,ko=2,Co=Math.PI*ko;function Xt(t,e){pi.get(t)||pi.set(t,e)}function ss(t){return pi.get(t)??(e=>e)}function C(){return se(_o(),0,1-Number.EPSILON)}function Po(t){return ns.nextFrame(t)}function zo(t){ns.cancel(t)}function se(t,e,i){return Math.min(Math.max(t,e),i)}function Zt(t,e,i,n){return Math.floor((t*i+e*n)/(i+n))}function q(t){const e=re(t),i=0;let n=Wt(t);return e===n&&(n=i),C()*(e-n)+n}function y(t){return ue(t)?t:q(t)}function Wt(t){return ue(t)?t:t.min}function re(t){return ue(t)?t:t.max}function x(t,e){if(t===e||e===void 0&&ue(t))return t;const i=Wt(t),n=re(t);return e!==void 0?{min:Math.min(i,e),max:Math.max(n,e)}:x(i,n)}function Y(t,e){const i=t.x-e.x,n=t.y-e.y,s=2;return{dx:i,dy:n,distance:Math.sqrt(i**s+n**s)}}function ee(t,e){return Y(t,e).distance}function ve(t){return t*Math.PI/180}function Oo(t,e,i){if(ue(t))return ve(t);const n=0,s=.5,o=.25,r=s+o;switch(t){case B.top:return-Math.PI*s;case B.topRight:return-Math.PI*o;case B.right:return n;case B.bottomRight:return Math.PI*o;case B.bottom:return Math.PI*s;case B.bottomLeft:return Math.PI*r;case B.left:return Math.PI;case B.topLeft:return-Math.PI*r;case B.inside:return Math.atan2(i.y-e.y,i.x-e.x);case B.outside:return Math.atan2(e.y-i.y,e.x-i.x);default:return C()*Co}}function Mo(t){const e=F.origin;return e.length=1,e.angle=t,e}function Bi(t,e,i,n){return F.create(t.x*(i-n)/(i+n)+e.x*2*n/(i+n),t.y)}function So(t){var e,i;return{x:(((e=t.position)==null?void 0:e.x)??C()*H)*t.size.width/H,y:(((i=t.position)==null?void 0:i.y)??C()*H)*t.size.height/H}}function Ro(t){var i,n;const e={x:((i=t.position)==null?void 0:i.x)!==void 0?y(t.position.x):void 0,y:((n=t.position)==null?void 0:n.y)!==void 0?y(t.position.y):void 0};return So({size:t.size,position:e})}function Eo(t){var e,i;return{x:((e=t.position)==null?void 0:e.x)??C()*t.size.width,y:((i=t.position)==null?void 0:i.y)??C()*t.size.height}}function os(t){return t?t.endsWith("%")?parseFloat(t)/H:parseFloat(t):1}var Te;(function(t){t.auto="auto",t.increase="increase",t.decrease="decrease",t.random="random"})(Te||(Te={}));var R;(function(t){t.increasing="increasing",t.decreasing="decreasing"})(R||(R={}));var Pe;(function(t){t.none="none",t.max="max",t.min="min"})(Pe||(Pe={}));var O;(function(t){t.bottom="bottom",t.left="left",t.right="right",t.top="top"})(O||(O={}));var pe;(function(t){t.precise="precise",t.percent="percent"})(pe||(pe={}));var Ze;(function(t){t.max="max",t.min="min",t.random="random"})(Ze||(Ze={}));const Do={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function Ue(){return Do}function qi(t){const e={bounced:!1},{pSide:i,pOtherSide:n,rectSide:s,rectOtherSide:o,velocity:r,factor:a}=t,c=.5,l=0;return n.min<o.min||n.min>o.max||n.max<o.min||n.max>o.max||(i.max>=s.min&&i.max<=(s.max+s.min)*c&&r>l||i.min<=s.max&&i.min>(s.max+s.min)*c&&r<l)&&(e.velocity=r*-a,e.bounced=!0),e}function Io(t,e){const i=V(e,n=>t.matches(n));return Q(i)?i.some(n=>n):i}function je(){return typeof window>"u"||!window||typeof window.document>"u"||!window.document}function To(){return!je()&&typeof matchMedia<"u"}function rs(t){if(To())return matchMedia(t)}function Lo(t){if(!(je()||typeof IntersectionObserver>"u"))return new IntersectionObserver(t)}function Fo(t){if(!(je()||typeof MutationObserver>"u"))return new MutationObserver(t)}function D(t,e){return t===e||Q(e)&&e.indexOf(t)>-1}async function Ui(t,e){try{await document.fonts.load(`${e??"400"} 36px '${t??"Verdana"}'`)}catch{}}function as(t){return Math.floor(C()*t.length)}function vt(t,e,i=!0){return t[e!==void 0&&i?e%t.length:as(t)]}function Vt(t,e,i,n,s){return $o(bt(t,n??0),e,i,s)}function $o(t,e,i,n){let s=!0;return(!n||n===O.bottom)&&(s=t.top<e.height+i.x),s&&(!n||n===O.left)&&(s=t.right>i.x),s&&(!n||n===O.right)&&(s=t.left<e.width+i.y),s&&(!n||n===O.top)&&(s=t.bottom>i.y),s}function bt(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function I(t,...e){for(const i of e){if(i==null)continue;if(!Ne(i)){t=i;continue}const n=Array.isArray(i);n&&(Ne(t)||!t||!Array.isArray(t))?t=[]:!n&&(Ne(t)||!t||Array.isArray(t))&&(t={});for(const s in i){if(s==="__proto__")continue;const o=i,r=o[s],a=t;a[s]=Ne(r)&&Array.isArray(r)?r.map(c=>I(a[s],c)):I(a[s],r)}}return t}function zi(t,e){return!!us(e,i=>i.enable&&D(t,i.mode))}function Oi(t,e,i){V(e,n=>{const s=n.mode;n.enable&&D(t,s)&&Ao(n,i)})}function Ao(t,e){const i=t.selectors;V(i,n=>{e(n,t)})}function cs(t,e){if(!(!e||!t))return us(t,i=>Io(e,i.selectors))}function mi(t){return{position:t.getPosition(),radius:t.getRadius(),mass:t.getMass(),velocity:t.velocity,factor:F.create(y(t.options.bounce.horizontal.value),y(t.options.bounce.vertical.value))}}function ls(t,e){const{x:i,y:n}=t.velocity.sub(e.velocity),[s,o]=[t.position,e.position],{dx:r,dy:a}=Y(o,s),c=0;if(i*r+n*a<c)return;const l=-Math.atan2(a,r),u=t.mass,h=e.mass,f=t.velocity.rotate(l),d=e.velocity.rotate(l),m=Bi(f,d,u,h),p=Bi(d,f,u,h),g=m.rotate(-l),v=p.rotate(-l);t.velocity.x=g.x*t.factor.x,t.velocity.y=g.y*t.factor.y,e.velocity.x=v.x*e.factor.x,e.velocity.y=v.y*e.factor.y}function Bo(t,e){const i=t.getPosition(),n=t.getRadius(),s=bt(i,n),o=t.options.bounce,r=qi({pSide:{min:s.left,max:s.right},pOtherSide:{min:s.top,max:s.bottom},rectSide:{min:e.left,max:e.right},rectOtherSide:{min:e.top,max:e.bottom},velocity:t.velocity.x,factor:y(o.horizontal.value)});r.bounced&&(r.velocity!==void 0&&(t.velocity.x=r.velocity),r.position!==void 0&&(t.position.x=r.position));const a=qi({pSide:{min:s.top,max:s.bottom},pOtherSide:{min:s.left,max:s.right},rectSide:{min:e.top,max:e.bottom},rectOtherSide:{min:e.left,max:e.right},velocity:t.velocity.y,factor:y(o.vertical.value)});a.bounced&&(a.velocity!==void 0&&(t.velocity.y=a.velocity),a.position!==void 0&&(t.position.y=a.position))}function V(t,e){return Q(t)?t.map((n,s)=>e(n,s)):e(t,0)}function K(t,e,i){return Q(t)?vt(t,e,i):t}function us(t,e){return Q(t)?t.find((n,s)=>e(n,s)):e(t,0)?t:void 0}function hs(t,e){const i=t.value,n=t.animation,s={delayTime:y(n.delay)*E,enable:n.enable,value:y(t.value)*e,max:re(i)*e,min:Wt(i)*e,loops:0,maxLoops:y(n.count),time:0},o=1;if(n.enable){switch(s.decay=o-y(n.decay),n.mode){case Te.increase:s.status=R.increasing;break;case Te.decrease:s.status=R.decreasing;break;case Te.random:s.status=C()>=qe?R.increasing:R.decreasing;break}const r=n.mode===Te.auto;switch(n.startValue){case Ze.min:s.value=s.min,r&&(s.status=R.increasing);break;case Ze.max:s.value=s.max,r&&(s.status=R.decreasing);break;case Ze.random:default:s.value=q(s),r&&(s.status=C()>=qe?R.increasing:R.decreasing);break}}return s.initialValue=s.value,s}function fs(t,e){if(!(t.mode===pe.percent)){const{mode:s,...o}=t;return o}return"x"in t?{x:t.x/H*e.width,y:t.y/H*e.height}:{width:t.width/H*e.width,height:t.height/H*e.height}}function ds(t,e){return fs(t,e)}function ji(t,e){return fs(t,e)}function qo(t,e,i,n,s){switch(e){case Pe.max:i>=s&&t.destroy();break;case Pe.min:i<=n&&t.destroy();break}}function Gt(t,e,i,n,s){if(t.destroyed||!e||!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0))return;const u=(e.velocity??0)*s.factor,h=e.min,f=e.max,d=e.decay??1;if(e.time||(e.time=0),(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=s.value),!((e.delayTime??0)>0&&e.time<(e.delayTime??0))){switch(e.status){case R.increasing:e.value>=f?(i?e.status=R.decreasing:e.value-=f,e.loops||(e.loops=0),e.loops++):e.value+=u;break;case R.decreasing:e.value<=h?(i?e.status=R.increasing:e.value+=f,e.loops||(e.loops=0),e.loops++):e.value-=u}e.velocity&&d!==1&&(e.velocity*=d),qo(t,n,e.value,h,f),t.destroyed||(e.value=se(e.value,h,f))}}var we;(function(t){t.darken="darken",t.enlighten="enlighten"})(we||(we={}));var De;(function(t){t[t.r=1]="r",t[t.g=2]="g",t[t.b=3]="b",t[t.a=4]="a"})(De||(De={}));const $t="random",Lt="mid",Nt=new Map;function Hi(t){Nt.set(t.key,t)}function Uo(t){for(const[,c]of Nt)if(t.startsWith(c.stringPrefix))return c.parseString(t);const e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,i=t.replace(e,(c,l,u,h,f)=>l+l+u+u+h+h+(f!==void 0?f+f:"")),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,s=n.exec(i),o=16,r=1,a=255;return s?{a:s[De.a]!==void 0?parseInt(s[De.a],o)/a:r,b:parseInt(s[De.b],o),g:parseInt(s[De.g],o),r:parseInt(s[De.r],o)}:void 0}function ce(t,e,i=!0){if(!t)return;const n=Ce(t)?{value:t}:t;if(Ce(n.value))return ps(n.value,e,i);if(Q(n.value))return ce({value:vt(n.value,e,i)});for(const[,s]of Nt){const o=s.handleRangeColor(n);if(o)return o}}function ps(t,e,i=!0){if(!t)return;const n=Ce(t)?{value:t}:t;if(Ce(n.value))return n.value===$t?ys():jo(n.value);if(Q(n.value))return ps({value:vt(n.value,e,i)});for(const[,s]of Nt){const o=s.handleColor(n);if(o)return o}}function He(t,e,i=!0){const n=ce(t,e,i);return n?ms(n):void 0}function ms(t){const u=t.r/255,h=t.g/255,f=t.b/255,d=Math.max(u,h,f),m=Math.min(u,h,f),p={h:0,l:(d+m)*.5,s:0};return d!==m&&(p.s=p.l<.5?(d-m)/(d+m):(d-m)/(2-d-m),p.h=u===d?(h-f)/(d-m):p.h=h===d?2+(f-u)/(d-m):2*2+(u-h)/(d-m)),p.l*=100,p.s*=100,p.h*=60,p.h<0&&(p.h+=360),p.h>=360&&(p.h-=360),p}function jo(t){return Uo(t)}function it(t){const r=(t.h%360+360)%360,a=Math.max(0,Math.min(100,t.s)),c=Math.max(0,Math.min(100,t.l)),l=r/360,u=a/100,h=c/100,f=255,d=3;if(a===0){const L=Math.round(h*f);return{r:L,g:L,b:L}}const m=.5,p=2,g=(L,U,j)=>{if(j<0&&j++,j>1&&j--,j*6<1)return L+(U-L)*6*j;if(j*p<1)return U;if(j*d<1*p){const Oe=p/d;return L+(U-L)*(Oe-j)*6}return L},v=1,w=h<m?h*(v+u):h+u-h*u,k=p*h-w,b=1,P=b/d,_=Math.min(f,f*g(k,w,l+P)),A=Math.min(f,f*g(k,w,l)),G=Math.min(f,f*g(k,w,l-P));return{r:Math.round(_),g:Math.round(A),b:Math.round(G)}}function Ho(t){const e=it(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}function ys(t){const i=t??0,n=256;return{b:Math.floor(q(x(i,n))),g:Math.floor(q(x(i,n))),r:Math.floor(q(x(i,n)))}}function be(t,e){return`rgba(${t.r}, ${t.g}, ${t.b}, ${e??1})`}function mt(t,e){return`hsla(${t.h}, ${t.s}%, ${t.l}%, ${e??1})`}function Mi(t,e,i,n){let s=t,o=e;return s.r===void 0&&(s=it(t)),o.r===void 0&&(o=it(e)),{b:Zt(s.b,o.b,i,n),g:Zt(s.g,o.g,i,n),r:Zt(s.r,o.r,i,n)}}function yi(t,e,i){if(i===$t)return ys();if(i===Lt){const n=t.getFillColor()??t.getStrokeColor(),s=(e==null?void 0:e.getFillColor())??(e==null?void 0:e.getStrokeColor());if(n&&s&&e)return Mi(n,s,t.getRadius(),e.getRadius());{const o=n??s;if(o)return it(o)}}else return i}function gs(t,e,i){const n=Ce(t)?t:t.value;return n===$t?i?ce({value:n}):e?$t:Lt:n===Lt?Lt:ce({value:n})}function Wi(t){return t!==void 0?{h:t.h.value,s:t.s.value,l:t.l.value}:void 0}function vs(t,e,i){const n={h:{enable:!1,value:t.h},s:{enable:!1,value:t.s},l:{enable:!1,value:t.l}};return e&&(Jt(n.h,e.h,i),Jt(n.s,e.s,i),Jt(n.l,e.l,i)),n}function Jt(t,e,i){t.enable=e.enable;const n=0,s=1,o=0,r=0;t.enable?(t.velocity=y(e.speed)/H*i,t.decay=s-y(e.decay),t.status=R.increasing,t.loops=o,t.maxLoops=y(e.count),t.time=r,t.delayTime=y(e.delay)*E,e.sync||(t.velocity*=C(),t.value*=C()),t.initialValue=t.value,t.offset=x(e.offset)):t.velocity=n}function Kt(t,e,i,n){if(!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0)||(t.time||(t.time=0),(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=n.value),(t.delayTime??0)>0&&t.time<(t.delayTime??0)))return;const u=t.offset?q(t.offset):0,h=(t.velocity??0)*n.factor+u*3.6,f=t.decay??1,d=re(e),m=Wt(e);if(!i||t.status===R.increasing)t.value+=h,t.value>d&&(t.loops||(t.loops=0),t.loops++,i?t.status=R.decreasing:t.value-=d);else{t.value-=h;const p=0;t.value<p&&(t.loops||(t.loops=0),t.loops++,t.status=R.increasing)}t.velocity&&f!==1&&(t.velocity*=f),t.value=se(t.value,m,d)}function bs(t,e){if(!t)return;const{h:i,s:n,l:s}=t,o={h:{min:0,max:360},s:{min:0,max:100},l:{min:0,max:100}};i&&Kt(i,o.h,!1,e),n&&Kt(n,o.s,!0,e),s&&Kt(s,o.l,!0,e)}const nt={x:0,y:0},xt={a:1,b:0,c:0,d:1};function pt(t,e,i){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.closePath()}function Wo(t,e,i){t.fillStyle=i??"rgba(0,0,0,0)",t.fillRect(nt.x,nt.y,e.width,e.height)}function Vo(t,e,i,n){i&&(t.globalAlpha=n,t.drawImage(i,nt.x,nt.y,e.width,e.height),t.globalAlpha=1)}function ei(t,e){t.clearRect(nt.x,nt.y,e.width,e.height)}function Go(t){const{container:e,context:i,particle:n,delta:s,colorStyles:o,backgroundMask:r,composite:a,radius:c,opacity:l,shadow:u,transform:h}=t,f=n.getPosition(),d=0,m=n.rotation+(n.pathRotation?n.velocity.angle:d),p={sin:Math.sin(m),cos:Math.cos(m)},g=!!m,v=1,w={a:p.cos*(h.a??xt.a),b:g?p.sin*(h.b??v):h.b??xt.b,c:g?-p.sin*(h.c??v):h.c??xt.c,d:p.cos*(h.d??xt.d)};i.setTransform(w.a,w.b,w.c,w.d,f.x,f.y),r&&(i.globalCompositeOperation=a);const k=n.shadowColor;u.enable&&k&&(i.shadowBlur=u.blur,i.shadowColor=be(k),i.shadowOffsetX=u.offset.x,i.shadowOffsetY=u.offset.y),o.fill&&(i.fillStyle=o.fill);const b=0,P=n.strokeWidth??b;i.lineWidth=P,o.stroke&&(i.strokeStyle=o.stroke);const _={container:e,context:i,particle:n,radius:c,opacity:l,delta:s,transformData:w,strokeWidth:P};Qo(_),Yo(_),No(_),i.globalCompositeOperation="source-over",i.resetTransform()}function No(t){const{container:e,context:i,particle:n,radius:s,opacity:o,delta:r,transformData:a}=t;if(!n.effect)return;const c=e.effectDrawers.get(n.effect);c&&c.draw({context:i,particle:n,radius:s,opacity:o,delta:r,pixelRatio:e.retina.pixelRatio,transformData:{...a}})}function Qo(t){const{container:e,context:i,particle:n,radius:s,opacity:o,delta:r,strokeWidth:a,transformData:c}=t,l=0;if(!n.shape)return;const u=e.shapeDrawers.get(n.shape);u&&(i.beginPath(),u.draw({context:i,particle:n,radius:s,opacity:o,delta:r,pixelRatio:e.retina.pixelRatio,transformData:{...c}}),n.shapeClose&&i.closePath(),a>l&&i.stroke(),n.shapeFill&&i.fill())}function Yo(t){const{container:e,context:i,particle:n,radius:s,opacity:o,delta:r,transformData:a}=t;if(!n.shape)return;const c=e.shapeDrawers.get(n.shape);c!=null&&c.afterDraw&&c.afterDraw({context:i,particle:n,radius:s,opacity:o,delta:r,pixelRatio:e.retina.pixelRatio,transformData:{...a}})}function Xo(t,e,i){e.draw&&e.draw(t,i)}function Zo(t,e,i,n){e.drawParticle&&e.drawParticle(t,i,n)}function Jo(t,e,i){return{h:t.h,s:t.s,l:t.l+(e===we.darken?-1:1)*i}}function Ko(t,e,i){const n=e[i],s=1;n!==void 0&&(t[i]=(t[i]??s)*n)}function Vi(t,e,i=!1){if(!e)return;const n=t;if(!n)return;const s=n.style;if(s)for(const o in e){const r=e[o];r&&s.setProperty(o,r,i?"important":"")}}class er{constructor(e){this.container=e,this._applyPostDrawUpdaters=i=>{var n;for(const s of this._postDrawUpdaters)(n=s.afterDraw)==null||n.call(s,i)},this._applyPreDrawUpdaters=(i,n,s,o,r,a)=>{var c;for(const l of this._preDrawUpdaters){if(l.getColorStyles){const{fill:u,stroke:h}=l.getColorStyles(n,i,s,o);u&&(r.fill=u),h&&(r.stroke=h)}if(l.getTransformValues){const u=l.getTransformValues(n);for(const h in u)Ko(a,u,h)}(c=l.beforeDraw)==null||c.call(l,n)}},this._applyResizePlugins=()=>{var i;for(const n of this._resizePlugins)(i=n.resize)==null||i.call(n)},this._getPluginParticleColors=i=>{let n,s;for(const o of this._colorPlugins)if(!n&&o.particleFillColor&&(n=He(o.particleFillColor(i))),!s&&o.particleStrokeColor&&(s=He(o.particleStrokeColor(i))),n&&s)break;return[n,s]},this._initCover=async()=>{const i=this.container.actualOptions,n=i.backgroundMask.cover,s=n.color;if(s){const o=ce(s);if(o){const r={...o,a:n.opacity};this._coverColorStyle=be(r,r.a)}}else await new Promise((o,r)=>{if(!n.image)return;const a=document.createElement("img");a.addEventListener("load",()=>{this._coverImage={image:a,opacity:n.opacity},o()}),a.addEventListener("error",c=>{r(c.error)}),a.src=n.image})},this._initStyle=()=>{const i=this.element,n=this.container.actualOptions;if(i){this._fullScreen?(this._originalStyle=I({},i.style),this._setFullScreenStyle()):this._resetOriginalStyle();for(const s in n.style){if(!s||!n.style)continue;const o=n.style[s];o&&i.style.setProperty(s,o,"important")}}},this._initTrail=async()=>{const i=this.container.actualOptions,n=i.particles.move.trail,s=n.fill;if(!n.enable)return;const o=1,r=o/n.length;if(s.color){const a=ce(s.color);if(!a)return;this._trailFill={color:{...a},opacity:r}}else await new Promise((a,c)=>{if(!s.image)return;const l=document.createElement("img");l.addEventListener("load",()=>{this._trailFill={image:l,opacity:r},a()}),l.addEventListener("error",u=>{c(u.error)}),l.src=s.image})},this._paintBase=i=>{this.draw(n=>Wo(n,this.size,i))},this._paintImage=(i,n)=>{this.draw(s=>Vo(s,this.size,i,n))},this._repairStyle=()=>{const i=this.element;i&&(this._safeMutationObserver(n=>n.disconnect()),this._initStyle(),this.initBackground(),this._safeMutationObserver(n=>{!i||!(i instanceof Node)||n.observe(i,{attributes:!0})}))},this._resetOriginalStyle=()=>{const i=this.element,n=this._originalStyle;i&&n&&Vi(i,n)},this._safeMutationObserver=i=>{this._mutationObserver&&i(this._mutationObserver)},this._setFullScreenStyle=()=>{const i=this.element;if(!i)return;const n=10;Vi(i,{position:"fixed",zIndex:this.container.actualOptions.fullScreen.zIndex.toString(n),top:"0",left:"0",width:"100%",height:"100%"},!0)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){const e=this.container.actualOptions,i=e.particles.move.trail,n=this._trailFill,s=0;e.backgroundMask.enable?this.paint():i.enable&&i.length>s&&n?n.color?this._paintBase(be(n.color,n.opacity)):n.image&&this._paintImage(n.image,n.opacity):e.clear&&this.draw(o=>{ei(o,this.size)})}destroy(){if(this.stop(),this._generated){const e=this.element;e==null||e.remove()}else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(e){const i=this._context;if(i)return e(i)}drawAsync(e){const i=this._context;if(i)return e(i)}drawParticle(e,i){if(e.spawning||e.destroyed)return;const n=e.getRadius();if(n<=0)return;const o=e.getFillColor(),r=e.getStrokeColor()??o;let[a,c]=this._getPluginParticleColors(e);a||(a=o),c||(c=r),!(!a&&!c)&&this.draw(l=>{var A;const u=this.container,h=u.actualOptions,f=e.options.zIndex,d=1,m=d-e.zIndexFactor,p=m**f.opacityRate,g=1,v=e.bubble.opacity??((A=e.opacity)==null?void 0:A.value)??g,w=e.strokeOpacity??v,k=v*p,b=w*p,P={},_={fill:a?mt(a,k):void 0};_.stroke=c?mt(c,b):_.fill,this._applyPreDrawUpdaters(l,e,n,k,_,P),Go({container:u,context:l,particle:e,delta:i,colorStyles:_,backgroundMask:h.backgroundMask.enable,composite:h.backgroundMask.composite,radius:n*m**f.sizeRate,opacity:k,shadow:e.options.shadow,transform:P}),this._applyPostDrawUpdaters(e)})}drawParticlePlugin(e,i,n){this.draw(s=>Zo(s,e,i,n))}drawPlugin(e,i){this.draw(n=>Xo(n,e,i))}async init(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=Fo(e=>{for(const i of e)i.type==="attributes"&&i.attributeName==="style"&&this._repairStyle()}),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(e){Ue().error(e)}this.initBackground(),this._safeMutationObserver(e=>{!this.element||!(this.element instanceof Node)||e.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){const e=this.container.actualOptions,i=e.background,n=this.element;if(!n)return;const s=n.style;if(s){if(i.color){const o=ce(i.color);s.backgroundColor=o?be(o,i.opacity):""}else s.backgroundColor="";s.backgroundImage=i.image||"",s.backgroundPosition=i.position||"",s.backgroundRepeat=i.repeat||"",s.backgroundSize=i.size||""}}initPlugins(){this._resizePlugins=[];for(const[,e]of this.container.plugins)e.resize&&this._resizePlugins.push(e),(e.particleFillColor??e.particleStrokeColor)&&this._colorPlugins.push(e)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(const e of this.container.particles.updaters)e.afterDraw&&this._postDrawUpdaters.push(e),(e.getColorStyles??e.getTransformValues??e.beforeDraw)&&this._preDrawUpdaters.push(e)}loadCanvas(e){this._generated&&this.element&&this.element.remove(),this._generated=e.dataset&&Ie in e.dataset?e.dataset[Ie]==="true":this._generated,this.element=e,this.element.ariaHidden="true",this._originalStyle=I({},this.element.style),this.size.height=e.offsetHeight,this.size.width=e.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver(i=>{!this.element||!(this.element instanceof Node)||i.observe(this.element,{attributes:!0})}),this.container.retina.init(),this.initBackground()}paint(){const e=this.container.actualOptions;this.draw(i=>{e.backgroundMask.enable&&e.backgroundMask.cover?(ei(i,this.size),this._coverImage?this._paintImage(this._coverImage.image,this._coverImage.opacity):this._coverColorStyle?this._paintBase(this._coverColorStyle):this._paintBase()):this._paintBase()})}resize(){if(!this.element)return!1;const e=this.container,i=e.retina.pixelRatio,n=e.canvas.size,s={width:this.element.offsetWidth*i,height:this.element.offsetHeight*i};if(s.height===n.height&&s.width===n.width&&s.height===this.element.height&&s.width===this.element.width)return!1;const o={...n};return this.element.width=n.width=this.element.offsetWidth*i,this.element.height=n.height=this.element.offsetHeight*i,this.container.started&&e.particles.setResizeFactor({width:n.width/o.width,height:n.height/o.height}),!0}stop(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=void 0,this.draw(e=>ei(e,this.size))}async windowResize(){if(!this.element||!this.resize())return;const e=this.container,i=e.updateActualOptions();e.particles.setDensity(),this._applyResizePlugins(),i&&await e.refresh()}}var Je;(function(t){t.canvas="canvas",t.parent="parent",t.window="window"})(Je||(Je={}));const Gi=2;function te(t,e,i,n,s){if(n){let o={passive:!0};is(s)?o.capture=s:s!==void 0&&(o=s),t.addEventListener(e,i,o)}else{const o=s;t.removeEventListener(e,i,o)}}class tr{constructor(e){this.container=e,this._doMouseTouchClick=i=>{const n=this.container,s=n.actualOptions;if(this._canPush){const o=n.interactivity.mouse,r=o.position;if(!r)return;o.clickPosition={...r},o.clickTime=new Date().getTime();const a=s.interactivity.events.onClick;V(a.mode,c=>this.container.handleClickMode(c))}i.type==="touchend"&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=i=>{const n=i,s=this.container,o=s.options,r=o.defaultThemes,a=n.matches?r.dark:r.light,c=o.themes.find(l=>l.name===a);c!=null&&c.default.auto&&s.loadTheme(a)},this._handleVisibilityChange=()=>{const i=this.container,n=i.actualOptions;this._mouseTouchFinish(),n.pauseOnBlur&&(document!=null&&document.hidden?(i.pageHidden=!0,i.pause()):(i.pageHidden=!1,i.animationStatus?i.play(!0):i.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);const i=async()=>{const n=this.container.canvas;await(n==null?void 0:n.windowResize())};this._resizeTimeout=setTimeout(()=>void i(),this.container.actualOptions.interactivity.events.resize.delay*E)},this._manageInteractivityListeners=(i,n)=>{const s=this._handlers,o=this.container,r=o.actualOptions,a=o.interactivity.element;if(!a)return;const c=a,l=o.canvas.element;l&&(l.style.pointerEvents=c===l?"initial":"none"),(r.interactivity.events.onHover.enable||r.interactivity.events.onClick.enable)&&(te(a,Be,s.mouseMove,n),te(a,yo,s.touchStart,n),te(a,go,s.touchMove,n),r.interactivity.events.onClick.enable?(te(a,$i,s.touchEndClick,n),te(a,po,s.mouseUp,n),te(a,fo,s.mouseDown,n)):te(a,$i,s.touchEnd,n),te(a,i,s.mouseLeave,n),te(a,vo,s.touchCancel,n))},this._manageListeners=i=>{const n=this._handlers,s=this.container,o=s.actualOptions,r=o.interactivity.detectsOn,a=s.canvas.element;let c=di;r===Je.window?(s.interactivity.element=window,c=mo):r===Je.parent&&a?s.interactivity.element=a.parentElement??a.parentNode:s.interactivity.element=a,this._manageMediaMatch(i),this._manageResize(i),this._manageInteractivityListeners(c,i),document&&te(document,wo,n.visibilityChange,i,!1)},this._manageMediaMatch=i=>{const n=this._handlers,s=rs("(prefers-color-scheme: dark)");if(s){if(s.addEventListener!==void 0){te(s,"change",n.themeChange,i);return}s.addListener!==void 0&&(i?s.addListener(n.oldThemeChange):s.removeListener(n.oldThemeChange))}},this._manageResize=i=>{const n=this._handlers,s=this.container;if(!s.actualOptions.interactivity.events.resize)return;if(typeof ResizeObserver>"u"){te(window,bo,n.resize,i);return}const r=s.canvas.element;this._resizeObserver&&!i?(r&&this._resizeObserver.unobserve(r),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&i&&r&&(this._resizeObserver=new ResizeObserver(a=>{a.find(l=>l.target===r)&&this._handleWindowResize()}),this._resizeObserver.observe(r))},this._mouseDown=()=>{const{interactivity:i}=this.container;if(!i)return;const{mouse:n}=i;n.clicking=!0,n.downPosition=n.position},this._mouseTouchClick=i=>{const n=this.container,s=n.actualOptions,{mouse:o}=n.interactivity;o.inside=!0;let r=!1;const a=o.position;if(!(!a||!s.interactivity.events.onClick.enable)){for(const[,c]of n.plugins)if(c.clickPositionValid&&(r=c.clickPositionValid(a),r))break;r||this._doMouseTouchClick(i),o.clicking=!1}},this._mouseTouchFinish=()=>{const i=this.container.interactivity;if(!i)return;const n=i.mouse;delete n.position,delete n.clickPosition,delete n.downPosition,i.status=di,n.inside=!1,n.clicking=!1},this._mouseTouchMove=i=>{const n=this.container,s=n.actualOptions,o=n.interactivity,r=n.canvas.element;if(!(o!=null&&o.element))return;o.mouse.inside=!0;let a;if(i.type.startsWith("pointer")){this._canPush=!0;const l=i;if(o.element===window){if(r){const u=r.getBoundingClientRect();a={x:l.clientX-u.left,y:l.clientY-u.top}}}else if(s.interactivity.detectsOn===Je.parent){const u=l.target,h=l.currentTarget;if(u&&h&&r){const f=u.getBoundingClientRect(),d=h.getBoundingClientRect(),m=r.getBoundingClientRect();a={x:l.offsetX+Gi*f.left-(d.left+m.left),y:l.offsetY+Gi*f.top-(d.top+m.top)}}else a={x:l.offsetX??l.clientX,y:l.offsetY??l.clientY}}else l.target===r&&(a={x:l.offsetX??l.clientX,y:l.offsetY??l.clientY})}else if(this._canPush=i.type!=="touchmove",r){const l=i,u=1,h=l.touches[l.touches.length-u],f=r.getBoundingClientRect(),d=0;a={x:h.clientX-(f.left??d),y:h.clientY-(f.top??d)}}const c=n.retina.pixelRatio;a&&(a.x*=c,a.y*=c),o.mouse.position=a,o.status=Be},this._touchEnd=i=>{const n=i,s=Array.from(n.changedTouches);for(const o of s)this._touches.delete(o.identifier);this._mouseTouchFinish()},this._touchEndClick=i=>{const n=i,s=Array.from(n.changedTouches);for(const o of s)this._touches.delete(o.identifier);this._mouseTouchClick(i)},this._touchStart=i=>{const n=i,s=Array.from(n.changedTouches);for(const o of s)this._touches.set(o.identifier,performance.now());this._mouseTouchMove(i)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:i=>this._mouseTouchMove(i),mouseUp:i=>this._mouseTouchClick(i),touchStart:i=>this._touchStart(i),touchMove:i=>this._mouseTouchMove(i),touchEnd:i=>this._touchEnd(i),touchCancel:i=>this._touchEnd(i),touchEndClick:i=>this._touchEndClick(i),visibilityChange:()=>this._handleVisibilityChange(),themeChange:i=>this._handleThemeChange(i),oldThemeChange:i=>this._handleThemeChange(i),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}var N;(function(t){t.configAdded="configAdded",t.containerInit="containerInit",t.particlesSetup="particlesSetup",t.containerStarted="containerStarted",t.containerStopped="containerStopped",t.containerDestroyed="containerDestroyed",t.containerPaused="containerPaused",t.containerPlay="containerPlay",t.containerBuilt="containerBuilt",t.particleAdded="particleAdded",t.particleDestroyed="particleDestroyed",t.particleRemoved="particleRemoved"})(N||(N={}));class ${constructor(){this.value=""}static create(e,i){const n=new $;return n.load(e),i!==void 0&&(Ce(i)||Q(i)?n.load({value:i}):n.load(i)),n}load(e){(e==null?void 0:e.value)!==void 0&&(this.value=e.value)}}class ir{constructor(){this.color=new $,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){e&&(e.color!==void 0&&(this.color=$.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.position!==void 0&&(this.position=e.position),e.repeat!==void 0&&(this.repeat=e.repeat),e.size!==void 0&&(this.size=e.size),e.opacity!==void 0&&(this.opacity=e.opacity))}}class nr{constructor(){this.opacity=1}load(e){e&&(e.color!==void 0&&(this.color=$.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.opacity!==void 0&&(this.opacity=e.opacity))}}class sr{constructor(){this.composite="destination-out",this.cover=new nr,this.enable=!1}load(e){if(e){if(e.composite!==void 0&&(this.composite=e.composite),e.cover!==void 0){const i=e.cover,n=Ce(e.cover)?{color:e.cover}:e.cover;this.cover.load(i.color!==void 0||i.image!==void 0?i:{color:n})}e.enable!==void 0&&(this.enable=e.enable)}}}class or{constructor(){this.enable=!0,this.zIndex=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.zIndex!==void 0&&(this.zIndex=e.zIndex))}}class rr{constructor(){this.enable=!1,this.mode=[]}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode))}}var st;(function(t){t.circle="circle",t.rectangle="rectangle"})(st||(st={}));class Ni{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=st.circle}load(e){e&&(e.selectors!==void 0&&(this.selectors=e.selectors),e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),e.type!==void 0&&(this.type=e.type))}}class ar{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.force!==void 0&&(this.force=e.force),e.smooth!==void 0&&(this.smooth=e.smooth))}}class cr{constructor(){this.enable=!1,this.mode=[],this.parallax=new ar}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),this.parallax.load(e.parallax))}}class lr{constructor(){this.delay=.5,this.enable=!0}load(e){e!==void 0&&(e.delay!==void 0&&(this.delay=e.delay),e.enable!==void 0&&(this.enable=e.enable))}}class ur{constructor(){this.onClick=new rr,this.onDiv=new Ni,this.onHover=new cr,this.resize=new lr}load(e){if(!e)return;this.onClick.load(e.onClick);const i=e.onDiv;i!==void 0&&(this.onDiv=V(i,n=>{const s=new Ni;return s.load(n),s})),this.onHover.load(e.onHover),this.resize.load(e.resize)}}class hr{constructor(e,i){this._engine=e,this._container=i}load(e){if(!e||!this._container)return;const i=this._engine.interactors.get(this._container);if(i)for(const n of i)n.loadModeOptions&&n.loadModeOptions(this,e)}}class ws{constructor(e,i){this.detectsOn=Je.window,this.events=new ur,this.modes=new hr(e,i)}load(e){if(!e)return;const i=e.detectsOn;i!==void 0&&(this.detectsOn=i),this.events.load(e.events),this.modes.load(e.modes)}}const Qi=50;class fr{load(e){e&&(e.position&&(this.position={x:e.position.x??Qi,y:e.position.y??Qi,mode:e.position.mode??pe.percent}),e.options&&(this.options=I({},e.options)))}}var Le;(function(t){t.screen="screen",t.canvas="canvas"})(Le||(Le={}));class dr{constructor(){this.maxWidth=1/0,this.options={},this.mode=Le.canvas}load(e){e&&(e.maxWidth!==void 0&&(this.maxWidth=e.maxWidth),e.mode!==void 0&&(e.mode===Le.screen?this.mode=Le.screen:this.mode=Le.canvas),e.options!==void 0&&(this.options=I({},e.options)))}}var xe;(function(t){t.any="any",t.dark="dark",t.light="light"})(xe||(xe={}));class pr{constructor(){this.auto=!1,this.mode=xe.any,this.value=!1}load(e){e&&(e.auto!==void 0&&(this.auto=e.auto),e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}}class mr{constructor(){this.name="",this.default=new pr}load(e){e&&(e.name!==void 0&&(this.name=e.name),this.default.load(e.default),e.options!==void 0&&(this.options=I({},e.options)))}}class Si{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){e&&(e.count!==void 0&&(this.count=x(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=x(e.speed)),e.decay!==void 0&&(this.decay=x(e.decay)),e.delay!==void 0&&(this.delay=x(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}}class Ri extends Si{constructor(){super(),this.mode=Te.auto,this.startValue=Ze.random}load(e){super.load(e),e&&(e.mode!==void 0&&(this.mode=e.mode),e.startValue!==void 0&&(this.startValue=e.startValue))}}class ti extends Si{constructor(){super(),this.offset=0,this.sync=!0}load(e){super.load(e),e&&e.offset!==void 0&&(this.offset=x(e.offset))}}class yr{constructor(){this.h=new ti,this.s=new ti,this.l=new ti}load(e){e&&(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}}class ot extends ${constructor(){super(),this.animation=new yr}static create(e,i){const n=new ot;return n.load(e),i!==void 0&&(Ce(i)||Q(i)?n.load({value:i}):n.load(i)),n}load(e){if(super.load(e),!e)return;const i=e.animation;i!==void 0&&(i.enable!==void 0?this.animation.h.load(i):this.animation.load(e.animation))}}var Ke;(function(t){t.absorb="absorb",t.bounce="bounce",t.destroy="destroy"})(Ke||(Ke={}));class gr{constructor(){this.speed=2}load(e){e&&e.speed!==void 0&&(this.speed=e.speed)}}class vr{constructor(){this.enable=!0,this.retries=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.retries!==void 0&&(this.retries=e.retries))}}class me{constructor(){this.value=0}load(e){e&&e.value!==void 0&&(this.value=x(e.value))}}class br extends me{constructor(){super(),this.animation=new Si}load(e){if(super.load(e),!e)return;const i=e.animation;i!==void 0&&this.animation.load(i)}}class xs extends br{constructor(){super(),this.animation=new Ri}load(e){super.load(e)}}class Yi extends me{constructor(){super(),this.value=1}}class _s{constructor(){this.horizontal=new Yi,this.vertical=new Yi}load(e){e&&(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}}class wr{constructor(){this.absorb=new gr,this.bounce=new _s,this.enable=!1,this.maxSpeed=50,this.mode=Ke.bounce,this.overlap=new vr}load(e){e&&(this.absorb.load(e.absorb),this.bounce.load(e.bounce),e.enable!==void 0&&(this.enable=e.enable),e.maxSpeed!==void 0&&(this.maxSpeed=x(e.maxSpeed)),e.mode!==void 0&&(this.mode=e.mode),this.overlap.load(e.overlap))}}class xr{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=[]}load(e){if(!e)return;const i=e.options;if(i!==void 0)for(const n in i){const s=i[n];s&&(this.options[n]=I(this.options[n]??{},s))}e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}}class _r{constructor(){this.offset=0,this.value=90}load(e){e&&(e.offset!==void 0&&(this.offset=x(e.offset)),e.value!==void 0&&(this.value=x(e.value)))}}class kr{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(e){if(e&&(e.distance!==void 0&&(this.distance=x(e.distance)),e.enable!==void 0&&(this.enable=e.enable),e.rotate)){const i=e.rotate.x;i!==void 0&&(this.rotate.x=i);const n=e.rotate.y;n!==void 0&&(this.rotate.y=n)}}}class Cr{constructor(){this.x=50,this.y=50,this.mode=pe.percent,this.radius=0}load(e){e&&(e.x!==void 0&&(this.x=e.x),e.y!==void 0&&(this.y=e.y),e.mode!==void 0&&(this.mode=e.mode),e.radius!==void 0&&(this.radius=e.radius))}}class Pr{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){e&&(e.acceleration!==void 0&&(this.acceleration=x(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.inverse!==void 0&&(this.inverse=e.inverse),e.maxSpeed!==void 0&&(this.maxSpeed=x(e.maxSpeed)))}}class zr{constructor(){this.clamp=!0,this.delay=new me,this.enable=!1,this.options={}}load(e){e&&(e.clamp!==void 0&&(this.clamp=e.clamp),this.delay.load(e.delay),e.enable!==void 0&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=I(this.options,e.options)))}}class Or{load(e){e&&(e.color!==void 0&&(this.color=$.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image))}}class Mr{constructor(){this.enable=!1,this.length=10,this.fill=new Or}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.fill!==void 0&&this.fill.load(e.fill),e.length!==void 0&&(this.length=e.length))}}var T;(function(t){t.bounce="bounce",t.none="none",t.out="out",t.destroy="destroy",t.split="split"})(T||(T={}));class Sr{constructor(){this.default=T.out}load(e){e&&(e.default!==void 0&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}}class Rr{constructor(){this.acceleration=0,this.enable=!1}load(e){e&&(e.acceleration!==void 0&&(this.acceleration=x(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.position&&(this.position=I({},e.position)))}}class Er{constructor(){this.angle=new _r,this.attract=new kr,this.center=new Cr,this.decay=0,this.distance={},this.direction=B.none,this.drift=0,this.enable=!1,this.gravity=new Pr,this.path=new zr,this.outModes=new Sr,this.random=!1,this.size=!1,this.speed=2,this.spin=new Rr,this.straight=!1,this.trail=new Mr,this.vibrate=!1,this.warp=!1}load(e){if(!e)return;this.angle.load(ue(e.angle)?{value:e.angle}:e.angle),this.attract.load(e.attract),this.center.load(e.center),e.decay!==void 0&&(this.decay=x(e.decay)),e.direction!==void 0&&(this.direction=e.direction),e.distance!==void 0&&(this.distance=ue(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),e.drift!==void 0&&(this.drift=x(e.drift)),e.enable!==void 0&&(this.enable=e.enable),this.gravity.load(e.gravity);const i=e.outModes;i!==void 0&&(Ne(i)?this.outModes.load(i):this.outModes.load({default:i})),this.path.load(e.path),e.random!==void 0&&(this.random=e.random),e.size!==void 0&&(this.size=e.size),e.speed!==void 0&&(this.speed=x(e.speed)),this.spin.load(e.spin),e.straight!==void 0&&(this.straight=e.straight),this.trail.load(e.trail),e.vibrate!==void 0&&(this.vibrate=e.vibrate),e.warp!==void 0&&(this.warp=e.warp)}}class Dr extends Ri{constructor(){super(),this.destroy=Pe.none,this.speed=2}load(e){super.load(e),e&&e.destroy!==void 0&&(this.destroy=e.destroy)}}class Ir extends xs{constructor(){super(),this.animation=new Dr,this.value=1}load(e){if(!e)return;super.load(e);const i=e.animation;i!==void 0&&this.animation.load(i)}}class Tr{constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if(!e)return;e.enable!==void 0&&(this.enable=e.enable);const i=e.width;i!==void 0&&(this.width=i);const n=e.height;n!==void 0&&(this.height=n)}}var yt;(function(t){t.delete="delete",t.wait="wait"})(yt||(yt={}));class Lr{constructor(){this.mode=yt.delete,this.value=0}load(e){e&&(e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}}class Fr{constructor(){this.density=new Tr,this.limit=new Lr,this.value=0}load(e){e&&(this.density.load(e.density),this.limit.load(e.limit),e.value!==void 0&&(this.value=e.value))}}class $r{constructor(){this.blur=0,this.color=new $,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(e){e&&(e.blur!==void 0&&(this.blur=e.blur),this.color=$.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(e.offset.x!==void 0&&(this.offset.x=e.offset.x),e.offset.y!==void 0&&(this.offset.y=e.offset.y)))}}class Ar{constructor(){this.close=!0,this.fill=!0,this.options={},this.type="circle"}load(e){if(!e)return;const i=e.options;if(i!==void 0)for(const n in i){const s=i[n];s&&(this.options[n]=I(this.options[n]??{},s))}e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}}class Br extends Ri{constructor(){super(),this.destroy=Pe.none,this.speed=5}load(e){super.load(e),e&&e.destroy!==void 0&&(this.destroy=e.destroy)}}class qr extends xs{constructor(){super(),this.animation=new Br,this.value=3}load(e){if(super.load(e),!e)return;const i=e.animation;i!==void 0&&this.animation.load(i)}}class Xi{constructor(){this.width=0}load(e){e&&(e.color!==void 0&&(this.color=ot.create(this.color,e.color)),e.width!==void 0&&(this.width=x(e.width)),e.opacity!==void 0&&(this.opacity=x(e.opacity)))}}class Ur extends me{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),e&&(e.opacityRate!==void 0&&(this.opacityRate=e.opacityRate),e.sizeRate!==void 0&&(this.sizeRate=e.sizeRate),e.velocityRate!==void 0&&(this.velocityRate=e.velocityRate))}}class jr{constructor(e,i){this._engine=e,this._container=i,this.bounce=new _s,this.collisions=new wr,this.color=new ot,this.color.value="#fff",this.effect=new xr,this.groups={},this.move=new Er,this.number=new Fr,this.opacity=new Ir,this.reduceDuplicates=!1,this.shadow=new $r,this.shape=new Ar,this.size=new qr,this.stroke=new Xi,this.zIndex=new Ur}load(e){if(!e)return;if(e.groups!==void 0)for(const n of Object.keys(e.groups)){if(!Object.hasOwn(e.groups,n))continue;const s=e.groups[n];s!==void 0&&(this.groups[n]=I(this.groups[n]??{},s))}e.reduceDuplicates!==void 0&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.color.load(ot.create(this.color,e.color)),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.shadow.load(e.shadow),this.zIndex.load(e.zIndex),this.collisions.load(e.collisions),e.interactivity!==void 0&&(this.interactivity=I({},e.interactivity));const i=e.stroke;if(i&&(this.stroke=V(i,n=>{const s=new Xi;return s.load(n),s})),this._container){const n=this._engine.updaters.get(this._container);if(n)for(const o of n)o.loadOptions&&o.loadOptions(this,e);const s=this._engine.interactors.get(this._container);if(s)for(const o of s)o.loadParticlesOptions&&o.loadParticlesOptions(this,e)}}}function ks(t,...e){for(const i of e)t.load(i)}function Ei(t,e,...i){const n=new jr(t,e);return ks(n,...i),n}class Hr{constructor(e,i){this._findDefaultTheme=n=>this.themes.find(s=>s.default.value&&s.default.mode===n)??this.themes.find(s=>s.default.value&&s.default.mode===xe.any),this._importPreset=n=>{this.load(this._engine.getPreset(n))},this._engine=e,this._container=i,this.autoPlay=!0,this.background=new ir,this.backgroundMask=new sr,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new or,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new ws(e,i),this.manualParticles=[],this.particles=Ei(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}load(e){var r,a;if(!e)return;e.preset!==void 0&&V(e.preset,c=>this._importPreset(c)),e.autoPlay!==void 0&&(this.autoPlay=e.autoPlay),e.clear!==void 0&&(this.clear=e.clear),e.key!==void 0&&(this.key=e.key),e.name!==void 0&&(this.name=e.name),e.delay!==void 0&&(this.delay=x(e.delay));const i=e.detectRetina;i!==void 0&&(this.detectRetina=i),e.duration!==void 0&&(this.duration=x(e.duration));const n=e.fpsLimit;n!==void 0&&(this.fpsLimit=n),e.pauseOnBlur!==void 0&&(this.pauseOnBlur=e.pauseOnBlur),e.pauseOnOutsideViewport!==void 0&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),e.zLayers!==void 0&&(this.zLayers=e.zLayers),this.background.load(e.background);const s=e.fullScreen;is(s)?this.fullScreen.enable=s:this.fullScreen.load(s),this.backgroundMask.load(e.backgroundMask),this.interactivity.load(e.interactivity),e.manualParticles&&(this.manualParticles=e.manualParticles.map(c=>{const l=new fr;return l.load(c),l})),this.particles.load(e.particles),this.style=I(this.style,e.style),this._engine.loadOptions(this,e),e.smooth!==void 0&&(this.smooth=e.smooth);const o=this._engine.interactors.get(this._container);if(o)for(const c of o)c.loadOptions&&c.loadOptions(this,e);if(e.responsive!==void 0)for(const c of e.responsive){const l=new dr;l.load(c),this.responsive.push(l)}if(this.responsive.sort((c,l)=>c.maxWidth-l.maxWidth),e.themes!==void 0)for(const c of e.themes){const l=this.themes.find(u=>u.name===c.name);if(l)l.load(c);else{const u=new mr;u.load(c),this.themes.push(u)}}this.defaultThemes.dark=(r=this._findDefaultTheme(xe.dark))==null?void 0:r.name,this.defaultThemes.light=(a=this._findDefaultTheme(xe.light))==null?void 0:a.name}setResponsive(e,i,n){this.load(n);const s=this.responsive.find(o=>o.mode===Le.screen&&screen?o.maxWidth>screen.availWidth:o.maxWidth*i>e);return this.load(s==null?void 0:s.options),s==null?void 0:s.maxWidth}setTheme(e){if(e){const i=this.themes.find(n=>n.name===e);i&&this.load(i.options)}else{const i=rs("(prefers-color-scheme: dark)"),n=i==null?void 0:i.matches,s=this._findDefaultTheme(n?xe.dark:xe.light);s&&this.load(s.options)}}}var rt;(function(t){t.external="external",t.particles="particles"})(rt||(rt={}));class Wr{constructor(e,i){this.container=i,this._engine=e,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(e){for(const i of this._externalInteractors)i.isEnabled()&&i.interact(e)}handleClickMode(e){var i;for(const n of this._externalInteractors)(i=n.handleClickMode)==null||i.call(n,e)}async init(){this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[];for(const e of this._interactors){switch(e.type){case rt.external:this._externalInteractors.push(e);break;case rt.particles:this._particleInteractors.push(e);break}e.init()}}particlesInteract(e,i){for(const n of this._externalInteractors)n.clear(e,i);for(const n of this._particleInteractors)n.isEnabled(e)&&n.interact(e,i)}reset(e){for(const i of this._externalInteractors)i.isEnabled()&&i.reset(e);for(const i of this._particleInteractors)i.isEnabled(e)&&i.reset(e)}}var le;(function(t){t.normal="normal",t.inside="inside",t.outside="outside"})(le||(le={}));const Zi=0,gi=2,_t=.5,Vr=2,Ji="random";function Gr(t,e,i,n){const s=e.options[t];if(s)return I({close:e.close,fill:e.fill},K(s,i,n))}function Nr(t,e,i,n){const s=e.options[t];if(s)return I({close:e.close,fill:e.fill},K(s,i,n))}function Ki(t){if(!D(t.outMode,t.checkModes))return;const e=t.radius*gi;t.coord>t.maxCoord-e?t.setCb(-t.radius):t.coord<e&&t.setCb(t.radius)}class Qr{constructor(e,i){this.container=i,this._calcPosition=(n,s,o,r=Zi)=>{for(const[,m]of n.plugins){const p=m.particlePosition!==void 0?m.particlePosition(s,this):void 0;if(p)return J.create(p.x,p.y,o)}const a=n.canvas.size,c=Eo({size:a,position:s}),l=J.create(c.x,c.y,o),u=this.getRadius(),h=this.options.move.outModes,f=m=>{Ki({outMode:m,checkModes:[T.bounce],coord:l.x,maxCoord:n.canvas.size.width,setCb:p=>l.x+=p,radius:u})},d=m=>{Ki({outMode:m,checkModes:[T.bounce],coord:l.y,maxCoord:n.canvas.size.height,setCb:p=>l.y+=p,radius:u})};return f(h.left??h.default),f(h.right??h.default),d(h.top??h.default),d(h.bottom??h.default),this._checkOverlap(l,r)?this._calcPosition(n,void 0,o,r+1):l},this._calculateVelocity=()=>{const n=Mo(this.direction),s=n.copy(),o=this.options.move;if(o.direction===B.inside||o.direction===B.outside)return s;const r=ve(y(o.angle.value)),a=ve(y(o.angle.offset)),c={left:a-r*_t,right:a+r*_t};return o.straight||(s.angle+=q(x(c.left,c.right))),o.random&&typeof o.speed=="number"&&(s.length*=C()),s},this._checkOverlap=(n,s=Zi)=>{const o=this.options.collisions,r=this.getRadius();if(!o.enable)return!1;const a=o.overlap;if(a.enable)return!1;const c=a.retries;if(c>=0&&s>c)throw new Error(`${ne} particle is overlapping and can't be placed`);return!!this.container.particles.find(u=>ee(n,u.position)<r+u.getRadius())},this._getRollColor=n=>{if(!n||!this.roll||!this.backColor&&!this.roll.alter)return n;const s=1,o=0,r=this.roll.horizontal&&this.roll.vertical?gi*s:s,a=this.roll.horizontal?Math.PI*_t:o;return Math.floor(((this.roll.angle??o)+a)/(Math.PI/r))%gi?this.backColor?this.backColor:this.roll.alter?Jo(n,this.roll.alter.type,this.roll.alter.value):n:n},this._initPosition=n=>{const s=this.container,o=y(this.options.zIndex.value),r=0;this.position=this._calcPosition(s,n,se(o,r,s.zLayers)),this.initialPosition=this.position.copy();const a=s.canvas.size,c=0;switch(this.moveCenter={...ds(this.options.move.center,a),radius:this.options.move.center.radius??c,mode:this.options.move.center.mode??pe.percent},this.direction=Oo(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case B.inside:this.outType=le.inside;break;case B.outside:this.outType=le.outside;break}this.offset=F.origin},this._engine=e}destroy(e){var o,r,a;if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;const i=this.container,n=this.pathGenerator,s=i.shapeDrawers.get(this.shape);(o=s==null?void 0:s.particleDestroy)==null||o.call(s,this);for(const[,c]of i.plugins)(r=c.particleDestroyed)==null||r.call(c,this,e);for(const c of i.particles.updaters)(a=c.particleDestroyed)==null||a.call(c,this,e);n==null||n.reset(this),this._engine.dispatchEvent(N.particleDestroyed,{container:this.container,data:{particle:this}})}draw(e){const i=this.container,n=i.canvas;for(const[,s]of i.plugins)n.drawParticlePlugin(s,this,e);n.drawParticle(this,e)}getFillColor(){return this._getRollColor(this.bubble.color??Wi(this.color))}getMass(){return this.getRadius()**Vr*Math.PI*_t}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??Wi(this.strokeColor))}init(e,i,n,s){var G,L,U,j,ze,ct;const o=this.container,r=this._engine;this.id=e,this.group=s,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.isRotating=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType=le.normal,this.ignoresResizeRatio=!0;const a=o.retina.pixelRatio,c=o.actualOptions,l=Ei(this._engine,o,c.particles),{reduceDuplicates:u}=l,h=l.effect.type,f=l.shape.type;this.effect=K(h,this.id,u),this.shape=K(f,this.id,u);const d=l.effect,m=l.shape;if(n){if((G=n.effect)!=null&&G.type){const M=n.effect.type,Oe=K(M,this.id,u);Oe&&(this.effect=Oe,d.load(n.effect))}if((L=n.shape)!=null&&L.type){const M=n.shape.type,Oe=K(M,this.id,u);Oe&&(this.shape=Oe,m.load(n.shape))}}if(this.effect===Ji){const M=[...this.container.effectDrawers.keys()];this.effect=M[Math.floor(Math.random()*M.length)]}if(this.shape===Ji){const M=[...this.container.shapeDrawers.keys()];this.shape=M[Math.floor(Math.random()*M.length)]}this.effectData=Gr(this.effect,d,this.id,u),this.shapeData=Nr(this.shape,m,this.id,u),l.load(n);const p=this.effectData;p&&l.load(p.particles);const g=this.shapeData;g&&l.load(g.particles);const v=new ws(r,o);v.load(o.actualOptions.interactivity),v.load(l.interactivity),this.interactivity=v,this.effectFill=(p==null?void 0:p.fill)??l.effect.fill,this.effectClose=(p==null?void 0:p.close)??l.effect.close,this.shapeFill=(g==null?void 0:g.fill)??l.shape.fill,this.shapeClose=(g==null?void 0:g.close)??l.shape.close,this.options=l;const w=this.options.move.path;this.pathDelay=y(w.delay.value)*E,w.generator&&(this.pathGenerator=this._engine.getPathGenerator(w.generator),this.pathGenerator&&o.addPath(w.generator,this.pathGenerator)&&this.pathGenerator.init(o)),o.retina.initParticle(this),this.size=hs(this.options.size,a),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(i),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy();const k=1;this.moveDecay=k-y(this.options.move.decay);const b=o.particles;b.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/o.zLayers,this.sides=24;let P=o.effectDrawers.get(this.effect);P||(P=this._engine.getEffectDrawer(this.effect),P&&o.effectDrawers.set(this.effect,P)),P!=null&&P.loadEffect&&P.loadEffect(this);let _=o.shapeDrawers.get(this.shape);_||(_=this._engine.getShapeDrawer(this.shape),_&&o.shapeDrawers.set(this.shape,_)),_!=null&&_.loadShape&&_.loadShape(this);const A=_==null?void 0:_.getSidesCount;A&&(this.sides=A(this)),this.spawning=!1,this.shadowColor=ce(this.options.shadow.color);for(const M of b.updaters)M.init(this);for(const M of b.movers)(U=M.init)==null||U.call(M,this);(j=P==null?void 0:P.particleInit)==null||j.call(P,o,this),(ze=_==null?void 0:_.particleInit)==null||ze.call(_,o,this);for(const[,M]of o.plugins)(ct=M.particleCreated)==null||ct.call(M,this)}isInsideCanvas(){const e=this.getRadius(),i=this.container.canvas.size,n=this.position;return n.x>=-e&&n.y>=-e&&n.y<=i.height+e&&n.x<=i.width+e}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){var e;for(const i of this.container.particles.updaters)(e=i.reset)==null||e.call(i,this)}}class Yr{constructor(e,i){this.position=e,this.particle=i}}var et;(function(t){t.circle="circle",t.rectangle="rectangle"})(et||(et={}));const lt=2;class Cs{constructor(e,i,n){this.position={x:e,y:i},this.type=n}}class W extends Cs{constructor(e,i,n){super(e,i,et.circle),this.radius=n}contains(e){return ee(e,this.position)<=this.radius}intersects(e){const i=this.position,n=e.position,s={x:Math.abs(n.x-i.x),y:Math.abs(n.y-i.y)},o=this.radius;if(e instanceof W||e.type===et.circle){const r=e,a=o+r.radius,c=Math.sqrt(s.x**lt+s.y**lt);return a>c}else if(e instanceof he||e.type===et.rectangle){const r=e,{width:a,height:c}=r.size;return Math.pow(s.x-a,lt)+Math.pow(s.y-c,lt)<=o**lt||s.x<=o+a&&s.y<=o+c||s.x<=a||s.y<=c}return!1}}class he extends Cs{constructor(e,i,n,s){super(e,i,et.rectangle),this.size={height:s,width:n}}contains(e){const i=this.size.width,n=this.size.height,s=this.position;return e.x>=s.x&&e.x<=s.x+i&&e.y>=s.y&&e.y<=s.y+n}intersects(e){if(e instanceof W)return e.intersects(this);const i=this.size.width,n=this.size.height,s=this.position,o=e.position,r=e instanceof he?e.size:{width:0,height:0},a=r.width,c=r.height;return o.x<s.x+i&&o.x+a>s.x&&o.y<s.y+n&&o.y+c>s.y}}const ut=.5,Xr=2,Zr=4;class At{constructor(e,i){this.rectangle=e,this.capacity=i,this._subdivide=()=>{const{x:n,y:s}=this.rectangle.position,{width:o,height:r}=this.rectangle.size,{capacity:a}=this;for(let c=0;c<Zr;c++){const l=c%Xr;this._subs.push(new At(new he(n+o*ut*l,s+r*ut*(Math.round(c*ut)-l),o*ut,r*ut),a))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(e){return this.rectangle.contains(e.position)?this._points.length<this.capacity?(this._points.push(e),!0):(this._divided||this._subdivide(),this._subs.some(i=>i.insert(e))):!1}query(e,i){const n=[];if(!e.intersects(this.rectangle))return[];for(const s of this._points)!e.contains(s.position)&&ee(e.position,s.position)>s.particle.getRadius()&&(!i||i(s.particle))||n.push(s.particle);if(this._divided)for(const s of this._subs)n.push(...s.query(e,i));return n}queryCircle(e,i,n){return this.query(new W(e.x,e.y,i),n)}queryRectangle(e,i,n){return this.query(new he(e.x,e.y,i.width,i.height),n)}}const en=4,Jr=2,Kr=1,tn=t=>{const{height:e,width:i}=t,n=-.25,s=1.5;return new he(n*i,n*e,s*i,s*e)};class ea{constructor(e,i){this._addToPool=(...s)=>{this._pool.push(...s)},this._applyDensity=(s,o,r)=>{var m;const a=s.number;if(!((m=s.number.density)!=null&&m.enable)){r===void 0?this._limit=a.limit.value:a.limit&&this._groupLimits.set(r,a.limit.value);return}const c=this._initDensityFactor(a.density),l=a.value,u=0,h=a.limit.value>u?a.limit.value:l,f=Math.min(l,h)*c+o,d=Math.min(this.count,this.filter(p=>p.group===r).length);r===void 0?this._limit=a.limit.value*c:this._groupLimits.set(r,a.limit.value*c),d<f?this.push(Math.abs(f-d),void 0,s,r):d>f&&this.removeQuantity(d-f,r)},this._initDensityFactor=s=>{const o=this._container,r=1;if(!o.canvas.element||!s.enable)return r;const a=o.canvas.element,c=o.retina.pixelRatio;return a.width*a.height/(s.height*s.width*c**Jr)},this._pushParticle=(s,o,r,a)=>{try{let c=this._pool.pop();c||(c=new Qr(this._engine,this._container)),c.init(this._nextId,s,o,r);let l=!0;return a&&(l=a(c)),l?(this._array.push(c),this._zArray.push(c),this._nextId++,this._engine.dispatchEvent(N.particleAdded,{container:this._container,data:{particle:c}}),c):void 0}catch(c){Ue().warning(`${ne} adding particle: ${c}`)}},this._removeParticle=(s,o,r)=>{const a=this._array[s];if(!a||a.group!==o)return!1;const c=this._zArray.indexOf(a),l=1;return this._array.splice(s,l),this._zArray.splice(c,l),a.destroy(r),this._engine.dispatchEvent(N.particleRemoved,{container:this._container,data:{particle:a}}),this._addToPool(a),!0},this._engine=e,this._container=i,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new Wr(e,i),this._pluginsInitialized=!1;const n=i.canvas.size;this.quadTree=new At(tn(n),en),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){const e=this._container;e.actualOptions.manualParticles.forEach(n=>this.addParticle(n.position?ds(n.position,e.canvas.size):void 0,n.options))}addParticle(e,i,n,s){const o=this._container.actualOptions.particles.number.limit.mode,r=n===void 0?this._limit:this._groupLimits.get(n)??this._limit,a=this.count;if(r>0)switch(o){case yt.delete:{const h=a+1-r;h>0&&this.removeQuantity(h);break}case yt.wait:if(a>=r)return;break}return this._pushParticle(e,i,n,s)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(e){const i=this._container,n=i.canvas;n.clear(),this.update(e);for(const[,s]of i.plugins)n.drawPlugin(s,e);for(const s of this._zArray)s.draw(e)}filter(e){return this._array.filter(e)}find(e){return this._array.find(e)}get(e){return this._array[e]}handleClickMode(e){this._interactionManager.handleClickMode(e)}async init(){var s,o;const e=this._container,i=e.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let n=!1;for(const[,r]of e.plugins)if(n=((s=r.particlesInitialization)==null?void 0:s.call(r))??n,n)break;if(this.addManualParticles(),!n){const r=i.particles,a=r.groups;for(const c in a){const l=a[c];for(let u=this.count,h=0;h<((o=l.number)==null?void 0:o.value)&&u<r.number.value;u++,h++)this.addParticle(void 0,l,c)}for(let c=this.count;c<r.number.value;c++)this.addParticle()}}async initPlugins(){if(this._pluginsInitialized)return;const e=this._container;this.movers=await this._engine.getMovers(e,!0),this.updaters=await this._engine.getUpdaters(e,!0),await this._interactionManager.init();for(const[,i]of e.pathGenerators)i.init(e)}push(e,i,n,s){for(let o=0;o<e;o++)this.addParticle(i==null?void 0:i.position,n,s)}async redraw(){this.clear(),await this.init(),this.draw({value:0,factor:0})}remove(e,i,n){this.removeAt(this._array.indexOf(e),void 0,i,n)}removeAt(e,i=Kr,n,s){if(e<0||e>this.count)return;let r=0;for(let a=e;r<i&&a<this.count;a++)this._removeParticle(a--,n,s)&&r++}removeQuantity(e,i){this.removeAt(0,e,i)}setDensity(){const e=this._container.actualOptions,i=e.particles.groups,n=0;for(const s in i)this._applyDensity(i[s],n,s);this._applyDensity(e.particles,e.manualParticles.length)}setLastZIndex(e){this._lastZIndex=e,this._needsSort=this._needsSort||this._lastZIndex<e}setResizeFactor(e){this._resizeFactor=e}update(e){var o,r;const i=this._container,n=new Set;this.quadTree=new At(tn(i.canvas.size),en);for(const[,a]of i.pathGenerators)a.update();for(const[,a]of i.plugins)(o=a.update)==null||o.call(a,e);const s=this._resizeFactor;for(const a of this._array){s&&!a.ignoresResizeRatio&&(a.position.x*=s.width,a.position.y*=s.height,a.initialPosition.x*=s.width,a.initialPosition.y*=s.height),a.ignoresResizeRatio=!1,this._interactionManager.reset(a);for(const[,c]of this._container.plugins){if(a.destroyed)break;(r=c.particleUpdate)==null||r.call(c,a,e)}for(const c of this.movers)c.isEnabled(a)&&c.move(a,e);if(a.destroyed){n.add(a);continue}this.quadTree.insert(new Yr(a.getPosition(),a))}if(n.size){const a=c=>!n.has(c);this._array=this.filter(a),this._zArray=this._zArray.filter(a);for(const c of n)this._engine.dispatchEvent(N.particleRemoved,{container:this._container,data:{particle:c}});this._addToPool(...n)}this._interactionManager.externalInteract(e);for(const a of this._array){for(const c of this.updaters)c.update(a,e);!a.destroyed&&!a.spawning&&this._interactionManager.particlesInteract(a,e)}if(delete this._resizeFactor,this._needsSort){const a=this._zArray;a.sort((l,u)=>u.position.z-l.position.z||l.id-u.id);const c=1;this._lastZIndex=a[a.length-c].position.z,this._needsSort=!1}}}const nn=1,sn=1;class ta{constructor(e){this.container=e,this.pixelRatio=nn,this.reduceFactor=sn}init(){const e=this.container,i=e.actualOptions;this.pixelRatio=!i.detectRetina||je()?nn:window.devicePixelRatio,this.reduceFactor=sn;const n=this.pixelRatio,s=e.canvas;if(s.element){const a=s.element;s.size.width=a.offsetWidth*n,s.size.height=a.offsetHeight*n}const o=i.particles,r=o.move;this.maxSpeed=y(r.gravity.maxSpeed)*n,this.sizeAnimationSpeed=y(o.size.animation.speed)*n}initParticle(e){const i=e.options,n=this.pixelRatio,s=i.move,o=s.distance,r=e.retina;r.moveDrift=y(s.drift)*n,r.moveSpeed=y(s.speed)*n,r.sizeAnimationSpeed=y(i.size.animation.speed)*n;const a=r.maxDistance;a.horizontal=o.horizontal!==void 0?o.horizontal*n:void 0,a.vertical=o.vertical!==void 0?o.vertical*n:void 0,r.maxSpeed=y(s.gravity.maxSpeed)*n}}function S(t){return t&&!t.destroyed}const ii=60;function ia(t,e=ii,i=!1){return{value:t,factor:i?ii/e:ii*t/E}}function We(t,e,...i){const n=new Hr(t,e);return ks(n,...i),n}class na{constructor(e,i,n){this._intersectionManager=s=>{if(!(!S(this)||!this.actualOptions.pauseOnOutsideViewport))for(const o of s)o.target===this.interactivity.element&&(o.isIntersecting?this.play():this.pause())},this._nextFrame=s=>{try{if(!this._smooth&&this._lastFrameTime!==void 0&&s<this._lastFrameTime+E/this.fpsLimit){this.draw(!1);return}this._lastFrameTime??(this._lastFrameTime=s);const o=ia(s-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(o.value),this._lastFrameTime=s,o.value>E){this.draw(!1);return}if(this.particles.draw(o),!this.alive()){this.destroy();return}this.animationStatus&&this.draw(!1)}catch(o){Ue().error(`${ne} in animation loop`,o)}},this._engine=e,this.id=Symbol(i),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._clickHandlers=new Map,this._sourceOptions=n,this._initialSourceOptions=n,this.retina=new ta(this),this.canvas=new er(this),this.particles=new ea(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=We(this._engine,this),this.actualOptions=We(this._engine,this),this._eventListeners=new tr(this),this._intersectionObserver=Lo(s=>this._intersectionManager(s)),this._engine.dispatchEvent(N.containerBuilt,{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&S(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(e){if(!S(this))return;const i=this.interactivity.element;if(!i)return;const n=(h,f,d)=>{if(!S(this))return;const m=this.retina.pixelRatio,p={x:f.x*m,y:f.y*m},g=this.particles.quadTree.queryCircle(p,d*m);e(h,g)},s=h=>{if(!S(this))return;const f=h,d={x:f.offsetX||f.clientX,y:f.offsetY||f.clientY};n(h,d,1)},o=()=>{S(this)&&(l=!0,u=!1)},r=()=>{S(this)&&(u=!0)},a=h=>{if(S(this)){if(l&&!u){const f=h,d=1;let m=f.touches[f.touches.length-d];if(!m&&(m=f.changedTouches[f.changedTouches.length-d],!m))return;const p=this.canvas.element,g=p?p.getBoundingClientRect():void 0,v=0,w={x:m.clientX-(g?g.left:v),y:m.clientY-(g?g.top:v)};n(h,w,Math.max(m.radiusX,m.radiusY))}l=!1,u=!1}},c=()=>{S(this)&&(l=!1,u=!1)};let l=!1,u=!1;this._clickHandlers.set("click",s),this._clickHandlers.set("touchstart",o),this._clickHandlers.set("touchmove",r),this._clickHandlers.set("touchend",a),this._clickHandlers.set("touchcancel",c);for(const[h,f]of this._clickHandlers)i.addEventListener(h,f)}addLifeTime(e){this._lifeTime+=e}addPath(e,i,n=!1){return!S(this)||!n&&this.pathGenerators.has(e)?!1:(this.pathGenerators.set(e,i),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}clearClickHandlers(){var e;if(S(this)){for(const[i,n]of this._clickHandlers)(e=this.interactivity.element)==null||e.removeEventListener(i,n);this._clickHandlers.clear()}}destroy(e=!0){var i,n;if(S(this)){this.stop(),this.clearClickHandlers(),this.particles.destroy(),this.canvas.destroy();for(const[,s]of this.effectDrawers)(i=s.destroy)==null||i.call(s,this);for(const[,s]of this.shapeDrawers)(n=s.destroy)==null||n.call(s,this);for(const s of this.effectDrawers.keys())this.effectDrawers.delete(s);for(const s of this.shapeDrawers.keys())this.shapeDrawers.delete(s);if(this._engine.clearPlugins(this),this.destroyed=!0,e){const s=this._engine.items,o=s.findIndex(a=>a===this);o>=0&&s.splice(o,1)}this._engine.dispatchEvent(N.containerDestroyed,{container:this})}}draw(e){if(!S(this))return;let i=e;const n=s=>{i&&(this._lastFrameTime=void 0,i=!1),this._nextFrame(s)};this._drawAnimationFrame=Po(s=>n(s))}async export(e,i={}){for(const[,n]of this.plugins){if(!n.export)continue;const s=await n.export(e,i);if(s.supported)return s.blob}Ue().error(`${ne} - Export plugin with type ${e} not found`)}handleClickMode(e){var i;if(S(this)){this.particles.handleClickMode(e);for(const[,n]of this.plugins)(i=n.handleClickMode)==null||i.call(n,e)}}async init(){var h,f,d,m;if(!S(this))return;const e=this._engine.getSupportedEffects();for(const p of e){const g=this._engine.getEffectDrawer(p);g&&this.effectDrawers.set(p,g)}const i=this._engine.getSupportedShapes();for(const p of i){const g=this._engine.getShapeDrawer(p);g&&this.shapeDrawers.set(p,g)}await this.particles.initPlugins(),this._options=We(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=We(this._engine,this,this._options);const n=await this._engine.getAvailablePlugins(this);for(const[p,g]of n)this.plugins.set(p,g);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();const{zLayers:s,duration:o,delay:r,fpsLimit:a,smooth:c}=this.actualOptions;this.zLayers=s,this._duration=y(o)*E,this._delay=y(r)*E,this._lifeTime=0;const l=120,u=0;this.fpsLimit=a>u?a:l,this._smooth=c;for(const[,p]of this.effectDrawers)await((h=p.init)==null?void 0:h.call(p,this));for(const[,p]of this.shapeDrawers)await((f=p.init)==null?void 0:f.call(p,this));for(const[,p]of this.plugins)await((d=p.init)==null?void 0:d.call(p));this._engine.dispatchEvent(N.containerInit,{container:this}),await this.particles.init(),this.particles.setDensity();for(const[,p]of this.plugins)(m=p.particlesSetup)==null||m.call(p);this._engine.dispatchEvent(N.particlesSetup,{container:this})}async loadTheme(e){S(this)&&(this._currentTheme=e,await this.refresh())}pause(){var e;if(S(this)&&(this._drawAnimationFrame!==void 0&&(zo(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(const[,i]of this.plugins)(e=i.pause)==null||e.call(i);this.pageHidden||(this._paused=!0),this._engine.dispatchEvent(N.containerPaused,{container:this})}}play(e){if(!S(this))return;const i=this._paused||e;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&(this._paused=!1),i)for(const[,n]of this.plugins)n.play&&n.play();this._engine.dispatchEvent(N.containerPlay,{container:this}),this.draw(i??!1)}async refresh(){if(S(this))return this.stop(),this.start()}async reset(e){if(S(this))return this._initialSourceOptions=e,this._sourceOptions=e,this._options=We(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=We(this._engine,this,this._options),this.refresh()}async start(){!S(this)||this.started||(await this.init(),this.started=!0,await new Promise(e=>{const i=async()=>{var n;this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(const[,s]of this.plugins)await((n=s.start)==null?void 0:n.call(s));this._engine.dispatchEvent(N.containerStarted,{container:this}),this.play(),e()};this._delayTimeout=setTimeout(()=>void i(),this._delay)}))}stop(){var e;if(!(!S(this)||!this.started)){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(const[,i]of this.plugins)(e=i.stop)==null||e.call(i);for(const i of this.plugins.keys())this.plugins.delete(i);this._sourceOptions=this._options,this._engine.dispatchEvent(N.containerStopped,{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];const e=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth===e?!1:(this._responsiveMaxWidth=e,!0)}}class sa{constructor(){this._listeners=new Map}addEventListener(e,i){this.removeEventListener(e,i);let n=this._listeners.get(e);n||(n=[],this._listeners.set(e,n)),n.push(i)}dispatchEvent(e,i){const n=this._listeners.get(e);n==null||n.forEach(s=>s(i))}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,i){const n=this._listeners.get(e);if(!n)return;const s=n.length,o=n.indexOf(i);if(o<0)return;const a=1;s===a?this._listeners.delete(e):n.splice(o,a)}}async function ni(t,e,i,n=!1){let s=e.get(t);return(!s||n)&&(s=await Promise.all([...i.values()].map(o=>o(t))),e.set(t,s)),s}async function oa(t){const e=K(t.url,t.index);if(!e)return t.fallback;const i=await fetch(e);return i.ok?await i.json():(Ue().error(`${ne} ${i.status} while retrieving config file`),t.fallback)}const Ps="true",on="false",si="canvas",ra=t=>{let e;if(t instanceof HTMLCanvasElement||t.tagName.toLowerCase()===si)e=t,e.dataset[Ie]||(e.dataset[Ie]=on);else{const n=t.getElementsByTagName(si);n.length?(e=n[0],e.dataset[Ie]=on):(e=document.createElement(si),e.dataset[Ie]=Ps,t.appendChild(e))}const i="100%";return e.style.width||(e.style.width=i),e.style.height||(e.style.height=i),e},aa=(t,e)=>{let i=e??document.getElementById(t);return i||(i=document.createElement("div"),i.id=t,i.dataset[Ie]=Ps,document.body.append(i),i)};class ca{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new sa,this._initialized=!1,this.plugins=[],this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this.pathGenerators=new Map}get configs(){const e={};for(const[i,n]of this._configs)e[i]=n;return e}get items(){return this._domArray}get version(){return"3.5.0"}addConfig(e){const i=e.key??e.name??"default";this._configs.set(i,e),this._eventDispatcher.dispatchEvent(N.configAdded,{data:{name:i,config:e}})}async addEffect(e,i,n=!0){V(e,s=>{this.getEffectDrawer(s)||this.effectDrawers.set(s,i)}),await this.refresh(n)}addEventListener(e,i){this._eventDispatcher.addEventListener(e,i)}async addInteractor(e,i,n=!0){this._initializers.interactors.set(e,i),await this.refresh(n)}async addMover(e,i,n=!0){this._initializers.movers.set(e,i),await this.refresh(n)}async addParticleUpdater(e,i,n=!0){this._initializers.updaters.set(e,i),await this.refresh(n)}async addPathGenerator(e,i,n=!0){this.getPathGenerator(e)||this.pathGenerators.set(e,i),await this.refresh(n)}async addPlugin(e,i=!0){this.getPlugin(e.id)||this.plugins.push(e),await this.refresh(i)}async addPreset(e,i,n=!1,s=!0){(n||!this.getPreset(e))&&this.presets.set(e,i),await this.refresh(s)}async addShape(e,i=!0){for(const n of e.validTypes)this.getShapeDrawer(n)||this.shapeDrawers.set(n,e);await this.refresh(i)}clearPlugins(e){this.updaters.delete(e),this.movers.delete(e),this.interactors.delete(e)}dispatchEvent(e,i){this._eventDispatcher.dispatchEvent(e,i)}dom(){return this.items}domItem(e){return this.item(e)}async getAvailablePlugins(e){const i=new Map;for(const n of this.plugins)n.needsPlugin(e.actualOptions)&&i.set(n.id,await n.getPlugin(e));return i}getEffectDrawer(e){return this.effectDrawers.get(e)}async getInteractors(e,i=!1){return ni(e,this.interactors,this._initializers.interactors,i)}async getMovers(e,i=!1){return ni(e,this.movers,this._initializers.movers,i)}getPathGenerator(e){return this.pathGenerators.get(e)}getPlugin(e){return this.plugins.find(i=>i.id===e)}getPreset(e){return this.presets.get(e)}getShapeDrawer(e){return this.shapeDrawers.get(e)}getSupportedEffects(){return this.effectDrawers.keys()}getSupportedShapes(){return this.shapeDrawers.keys()}async getUpdaters(e,i=!1){return ni(e,this.updaters,this._initializers.updaters,i)}init(){this._initialized||(this._initialized=!0)}item(e){const{items:i}=this,n=i[e];if(!n||n.destroyed){i.splice(e,1);return}return n}async load(e){var m;const n=e.id??((m=e.element)==null?void 0:m.id)??`tsparticles${Math.floor(C()*1e4)}`,{index:s,url:o}=e,r=o?await oa({fallback:e.options,url:o,index:s}):e.options,a=K(r,s),{items:c}=this,l=c.findIndex(p=>p.id.description===n),u=0,h=new na(this,n,a);if(l>=u){const p=this.item(l),g=1,v=0,w=p?g:v;p&&!p.destroyed&&p.destroy(!1),c.splice(l,w,h)}else c.push(h);const f=aa(n,e.element),d=ra(f);return h.canvas.loadCanvas(d),await h.start(),h}loadOptions(e,i){this.plugins.forEach(n=>{var s;return(s=n.loadOptions)==null?void 0:s.call(n,e,i)})}loadParticlesOptions(e,i,...n){const s=this.updaters.get(e);s&&s.forEach(o=>{var r;return(r=o.loadOptions)==null?void 0:r.call(o,i,...n)})}async refresh(e=!0){e&&await Promise.all(this.items.map(i=>i.refresh()))}removeEventListener(e,i){this._eventDispatcher.removeEventListener(e,i)}setOnClickHandler(e){const{items:i}=this;if(!i.length)throw new Error(`${ne} can only set click handlers after calling tsParticles.load()`);i.forEach(n=>n.addClickHandler(e))}}var Qe;(function(t){t[t.h=1]="h",t[t.s=2]="s",t[t.l=3]="l",t[t.a=5]="a"})(Qe||(Qe={}));class la{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(e){const i=e.value,n=i.hsl??e.value;if(n.h!==void 0&&n.s!==void 0&&n.l!==void 0)return it(n)}handleRangeColor(e){const i=e.value,n=i.hsl??e.value;if(n.h!==void 0&&n.l!==void 0)return it({h:y(n.h),l:y(n.l),s:y(n.s)})}parseString(e){if(!e.startsWith("hsl"))return;const i=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i,n=i.exec(e),s=4,o=1,r=10;return n?Ho({a:n.length>s?os(n[Qe.a]):o,h:parseInt(n[Qe.h],r),l:parseInt(n[Qe.l],r),s:parseInt(n[Qe.s],r)}):void 0}}var Ye;(function(t){t[t.r=1]="r",t[t.g=2]="g",t[t.b=3]="b",t[t.a=5]="a"})(Ye||(Ye={}));class ua{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(e){const i=e.value,n=i.rgb??e.value;if(n.r!==void 0)return n}handleRangeColor(e){const i=e.value,n=i.rgb??e.value;if(n.r!==void 0)return{r:y(n.r),g:y(n.g),b:y(n.b)}}parseString(e){if(!e.startsWith(this.stringPrefix))return;const i=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i,n=i.exec(e),s=10,o=4,r=1;return n?{a:n.length>o?os(n[Ye.a]):r,b:parseInt(n[Ye.b],s),g:parseInt(n[Ye.g],s),r:parseInt(n[Ye.r],s)}:void 0}}function ha(){const t=new ua,e=new la;Hi(t),Hi(e);const i=new ca;return i.init(),i}class ye{constructor(e){this.type=rt.external,this.container=e}}class Di{constructor(e){this.type=rt.particles,this.container=e}}var ie;(function(t){t.clockwise="clockwise",t.counterClockwise="counter-clockwise",t.random="random"})(ie||(ie={}));var rn;(function(t){t.linear="linear",t.radial="radial",t.random="random"})(rn||(rn={}));var Ae;(function(t){t.easeInBack="ease-in-back",t.easeInCirc="ease-in-circ",t.easeInCubic="ease-in-cubic",t.easeInLinear="ease-in-linear",t.easeInQuad="ease-in-quad",t.easeInQuart="ease-in-quart",t.easeInQuint="ease-in-quint",t.easeInExpo="ease-in-expo",t.easeInSine="ease-in-sine",t.easeOutBack="ease-out-back",t.easeOutCirc="ease-out-circ",t.easeOutCubic="ease-out-cubic",t.easeOutLinear="ease-out-linear",t.easeOutQuad="ease-out-quad",t.easeOutQuart="ease-out-quart",t.easeOutQuint="ease-out-quint",t.easeOutExpo="ease-out-expo",t.easeOutSine="ease-out-sine",t.easeInOutBack="ease-in-out-back",t.easeInOutCirc="ease-in-out-circ",t.easeInOutCubic="ease-in-out-cubic",t.easeInOutLinear="ease-in-out-linear",t.easeInOutQuad="ease-in-out-quad",t.easeInOutQuart="ease-in-out-quart",t.easeInOutQuint="ease-in-out-quint",t.easeInOutExpo="ease-in-out-expo",t.easeInOutSine="ease-in-out-sine"})(Ae||(Ae={}));const Ii=ha();je()||(window.tsParticles=Ii);const wf=t=>{const e=t.id??"tsparticles";return Ht.useEffect(()=>{let i;return Ii.load({id:e,url:t.url,options:t.options}).then(n=>{var s;i=n,(s=t.particlesLoaded)==null||s.call(t,n)}),()=>{i==null||i.destroy()}},[e,t,t.url,t.options]),ho("div",{id:e,className:t.className})};async function xf(t){await t(Ii)}class fa{load(e){e&&(e.bottom!==void 0&&(this.bottom=x(e.bottom)),e.left!==void 0&&(this.left=x(e.left)),e.right!==void 0&&(this.right=x(e.right)),e.top!==void 0&&(this.top=x(e.top)))}}var Bt;(function(t){t.none="none",t.split="split"})(Bt||(Bt={}));class da extends me{constructor(){super(),this.value=3}}class pa extends me{constructor(){super(),this.value={min:4,max:9}}}class ma{constructor(){this.count=1,this.factor=new da,this.rate=new pa,this.sizeOffset=!0}load(e){e&&(e.color!==void 0&&(this.color=$.create(this.color,e.color)),e.count!==void 0&&(this.count=e.count),this.factor.load(e.factor),this.rate.load(e.rate),this.particles=V(e.particles,i=>I({},i)),e.sizeOffset!==void 0&&(this.sizeOffset=e.sizeOffset),e.colorOffset&&(this.colorOffset=this.colorOffset??{},e.colorOffset.h!==void 0&&(this.colorOffset.h=e.colorOffset.h),e.colorOffset.s!==void 0&&(this.colorOffset.s=e.colorOffset.s),e.colorOffset.l!==void 0&&(this.colorOffset.l=e.colorOffset.l)))}}class ya{constructor(){this.bounds=new fa,this.mode=Bt.none,this.split=new ma}load(e){e&&(e.mode&&(this.mode=e.mode),e.bounds&&this.bounds.load(e.bounds),this.split.load(e.split))}}const kt=0,ga=.5,va=0,ba=1,wa=500,xa=0;function _a(t,e,i,n){const s=i.options.destroy;if(!s)return;const o=s.split,r=Ei(t,e,i.options),a=y(o.factor.value),c=i.getFillColor();o.color?r.color.load(o.color):o.colorOffset&&c?r.color.load({value:{hsl:{h:c.h+y(o.colorOffset.h??kt),s:c.s+y(o.colorOffset.s??kt),l:c.l+y(o.colorOffset.l??kt)}}}):r.color.load({value:{hsl:i.getFillColor()}}),r.move.load({center:{x:i.position.x,y:i.position.y,mode:pe.precise}}),ue(r.size.value)?r.size.value/=a:(r.size.value.min/=a,r.size.value.max/=a),r.load(n);const l=o.sizeOffset?x(-i.size.value,i.size.value):kt,u={x:i.position.x+q(l),y:i.position.y+q(l)};return e.particles.addParticle(u,r,i.group,h=>h.size.value<ga?!1:(h.velocity.length=q(x(i.velocity.length,h.velocity.length)),h.splitCount=(i.splitCount??va)+ba,h.unbreakable=!0,setTimeout(()=>{h.unbreakable=!1},wa),!0))}function ka(t,e,i){const n=i.options.destroy;if(!n)return;const s=n.split;if(s.count>=xa&&(i.splitCount===void 0||i.splitCount++>s.count))return;const o=y(s.rate.value),r=K(s.particles);for(let a=0;a<o;a++)_a(t,e,i,r)}class Ca{constructor(e,i){this.container=i,this.engine=e}init(e){const i=this.container,n=e.options,s=n.destroy;if(!s)return;e.splitCount=0;const o=s.bounds;e.destroyBounds||(e.destroyBounds={});const{bottom:r,left:a,right:c,top:l}=o,{destroyBounds:u}=e,h=i.canvas.size;r&&(u.bottom=y(r)*h.height/H),a&&(u.left=y(a)*h.width/H),c&&(u.right=y(c)*h.width/H),l&&(u.top=y(l)*h.height/H)}isEnabled(e){return!e.destroyed}loadOptions(e,...i){e.destroy||(e.destroy=new ya);for(const n of i)e.destroy.load(n==null?void 0:n.destroy)}particleDestroyed(e,i){if(i)return;const n=e.options.destroy;n&&n.mode===Bt.split&&ka(this.engine,this.container,e)}update(e){if(!this.isEnabled(e))return;const i=e.getPosition(),n=e.destroyBounds;n&&(n.bottom!==void 0&&i.y>=n.bottom||n.left!==void 0&&i.x<=n.left||n.right!==void 0&&i.x>=n.right||n.top!==void 0&&i.y<=n.top)&&e.destroy()}}async function _f(t,e=!0){await t.addParticleUpdater("destroy",i=>Promise.resolve(new Ca(t,i)),e)}var Fe;(function(t){t.both="both",t.horizontal="horizontal",t.vertical="vertical"})(Fe||(Fe={}));const Pa=2,zs=Math.PI*Pa,za=360;function Oa(t){const e=t.options.roll;if(!(e!=null&&e.enable)){t.roll={enable:!1,horizontal:!1,vertical:!1,angle:0,speed:0};return}if(t.roll={enable:e.enable,horizontal:e.mode===Fe.horizontal||e.mode===Fe.both,vertical:e.mode===Fe.vertical||e.mode===Fe.both,angle:C()*zs,speed:y(e.speed)/za},e.backColor)t.backColor=He(e.backColor);else if(e.darken.enable&&e.enlighten.enable){const i=C()>=qe?we.darken:we.enlighten;t.roll.alter={type:i,value:y(i===we.darken?e.darken.value:e.enlighten.value)}}else e.darken.enable?t.roll.alter={type:we.darken,value:y(e.darken.value)}:e.enlighten.enable&&(t.roll.alter={type:we.enlighten,value:y(e.enlighten.value)})}function Ma(t,e){const i=t.options.roll,n=t.roll;if(!n||!(i!=null&&i.enable))return;const s=n.speed*e.factor,o=zs;n.angle+=s,n.angle>o&&(n.angle-=o)}class an{constructor(){this.enable=!1,this.value=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.value!==void 0&&(this.value=x(e.value)))}}class Sa{constructor(){this.darken=new an,this.enable=!1,this.enlighten=new an,this.mode=Fe.vertical,this.speed=25}load(e){e&&(e.backColor!==void 0&&(this.backColor=$.create(this.backColor,e.backColor)),this.darken.load(e.darken),e.enable!==void 0&&(this.enable=e.enable),this.enlighten.load(e.enlighten),e.mode!==void 0&&(this.mode=e.mode),e.speed!==void 0&&(this.speed=x(e.speed)))}}class Ra{getTransformValues(e){var o;const i=((o=e.roll)==null?void 0:o.enable)&&e.roll,n=i&&i.horizontal,s=i&&i.vertical;return{a:n?Math.cos(i.angle):void 0,d:s?Math.sin(i.angle):void 0}}init(e){Oa(e)}isEnabled(e){const i=e.options.roll;return!e.destroyed&&!e.spawning&&!!(i!=null&&i.enable)}loadOptions(e,...i){e.roll||(e.roll=new Sa);for(const n of i)e.roll.load(n==null?void 0:n.roll)}update(e,i){this.isEnabled(e)&&Ma(e,i)}}async function kf(t,e=!0){await t.addParticleUpdater("roll",()=>Promise.resolve(new Ra),e)}var _e;(function(t){t.clockwise="clockwise",t.counterClockwise="counter-clockwise",t.random="random"})(_e||(_e={}));class Ea{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=x(e.speed)),e.decay!==void 0&&(this.decay=x(e.decay)),e.sync!==void 0&&(this.sync=e.sync))}}class Da extends me{constructor(){super(),this.animation=new Ea,this.direction=_e.clockwise,this.enable=!1,this.value=0}load(e){super.load(e),e&&(this.animation.load(e.animation),e.direction!==void 0&&(this.direction=e.direction),e.enable!==void 0&&(this.enable=e.enable))}}const ht=1,Os=2,Ia=Math.PI*Os,Ta=360;class La{constructor(e){this.container=e}getTransformValues(e){var n;const i=((n=e.tilt)==null?void 0:n.enable)&&e.tilt;return{b:i?Math.cos(i.value)*i.cosDirection:void 0,c:i?Math.sin(i.value)*i.sinDirection:void 0}}init(e){var o;const i=e.options.tilt;if(!i)return;e.tilt={enable:i.enable,value:ve(y(i.value)),sinDirection:C()>=qe?ht:-ht,cosDirection:C()>=qe?ht:-ht,min:0,max:Ia};let n=i.direction;switch(n===_e.random&&(n=Math.floor(C()*Os)>0?_e.counterClockwise:_e.clockwise),n){case _e.counterClockwise:case"counterClockwise":e.tilt.status=R.decreasing;break;case _e.clockwise:e.tilt.status=R.increasing;break}const s=(o=e.options.tilt)==null?void 0:o.animation;s!=null&&s.enable&&(e.tilt.decay=ht-y(s.decay),e.tilt.velocity=y(s.speed)/Ta*this.container.retina.reduceFactor,s.sync||(e.tilt.velocity*=C()))}isEnabled(e){var n;const i=(n=e.options.tilt)==null?void 0:n.animation;return!e.destroyed&&!e.spawning&&!!(i!=null&&i.enable)}loadOptions(e,...i){e.tilt||(e.tilt=new Da);for(const n of i)e.tilt.load(n==null?void 0:n.tilt)}async update(e,i){!this.isEnabled(e)||!e.tilt||(Gt(e,e.tilt,!1,Pe.none,i),await Promise.resolve())}}async function Cf(t,e=!0){await t.addParticleUpdater("tilt",i=>Promise.resolve(new La(i)),e)}class Fa{constructor(){this.angle=50,this.move=10}load(e){e&&(e.angle!==void 0&&(this.angle=x(e.angle)),e.move!==void 0&&(this.move=x(e.move)))}}class $a{constructor(){this.distance=5,this.enable=!1,this.speed=new Fa}load(e){if(e&&(e.distance!==void 0&&(this.distance=x(e.distance)),e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0))if(ue(e.speed))this.speed.load({angle:e.speed});else{const i=e.speed;i.min!==void 0?this.speed.load({angle:i}):this.speed.load(e.speed)}}}const Aa=0,Ba=2,qa=Math.PI*Ba,Ua=60;function ja(t,e){const{wobble:i}=t.options,{wobble:n}=t;if(!(i!=null&&i.enable)||!n)return;const s=n.angleSpeed*e.factor,o=n.moveSpeed*e.factor,r=o*((t.retina.wobbleDistance??Aa)*e.factor)/(E/Ua),a=qa,{position:c}=t;n.angle+=s,n.angle>a&&(n.angle-=a),c.x+=r*Math.cos(n.angle),c.y+=r*Math.abs(Math.sin(n.angle))}const Ha=2,Wa=Math.PI*Ha,Va=360,Ga=10,Na=0;class Qa{constructor(e){this.container=e}init(e){const i=e.options.wobble;i!=null&&i.enable?e.wobble={angle:C()*Wa,angleSpeed:y(i.speed.angle)/Va,moveSpeed:y(i.speed.move)/Ga}:e.wobble={angle:0,angleSpeed:0,moveSpeed:0},e.retina.wobbleDistance=y((i==null?void 0:i.distance)??Na)*this.container.retina.pixelRatio}isEnabled(e){var i;return!e.destroyed&&!e.spawning&&!!((i=e.options.wobble)!=null&&i.enable)}loadOptions(e,...i){e.wobble||(e.wobble=new $a);for(const n of i)e.wobble.load(n==null?void 0:n.wobble)}update(e,i){this.isEnabled(e)&&ja(e,i)}}async function Pf(t,e=!0){await t.addParticleUpdater("wobble",i=>Promise.resolve(new Qa(i)),e)}class Ya{constructor(){this.wait=!1}load(e){e&&(e.count!==void 0&&(this.count=e.count),e.delay!==void 0&&(this.delay=x(e.delay)),e.duration!==void 0&&(this.duration=x(e.duration)),e.wait!==void 0&&(this.wait=e.wait))}}class Xa{constructor(){this.quantity=1,this.delay=.1}load(e){e!==void 0&&(e.quantity!==void 0&&(this.quantity=x(e.quantity)),e.delay!==void 0&&(this.delay=x(e.delay)))}}class Za{constructor(){this.color=!1,this.opacity=!1}load(e){e&&(e.color!==void 0&&(this.color=e.color),e.opacity!==void 0&&(this.opacity=e.opacity))}}class Ja{constructor(){this.options={},this.replace=new Za,this.type="square"}load(e){e&&(e.options!==void 0&&(this.options=I({},e.options??{})),this.replace.load(e.replace),e.type!==void 0&&(this.type=e.type))}}class Ms{constructor(){this.mode=pe.percent,this.height=0,this.width=0}load(e){e!==void 0&&(e.mode!==void 0&&(this.mode=e.mode),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width))}}class ke{constructor(){this.autoPlay=!0,this.fill=!0,this.life=new Ya,this.rate=new Xa,this.shape=new Ja,this.startCount=0}load(e){e&&(e.autoPlay!==void 0&&(this.autoPlay=e.autoPlay),e.size!==void 0&&(this.size||(this.size=new Ms),this.size.load(e.size)),e.direction!==void 0&&(this.direction=e.direction),this.domId=e.domId,e.fill!==void 0&&(this.fill=e.fill),this.life.load(e.life),this.name=e.name,this.particles=V(e.particles,i=>I({},i)),this.rate.load(e.rate),this.shape.load(e.shape),e.position!==void 0&&(this.position={},e.position.x!==void 0&&(this.position.x=x(e.position.x)),e.position.y!==void 0&&(this.position.y=x(e.position.y))),e.spawnColor!==void 0&&(this.spawnColor===void 0&&(this.spawnColor=new ot),this.spawnColor.load(e.spawnColor)),e.startCount!==void 0&&(this.startCount=e.startCount))}}var qt;(function(t){t.emitter="emitter"})(qt||(qt={}));const cn=.5,ln=0,Ct=0,un=0,Ka=0,ec=-1,tc=1;function hn(t,e){t.color?t.color.value=e:t.color={value:e}}class ic{constructor(e,i,n,s,o){var l,u;this.emitters=i,this.container=n,this._destroy=()=>{var h,f;(h=this._mutationObserver)==null||h.disconnect(),this._mutationObserver=void 0,(f=this._resizeObserver)==null||f.disconnect(),this._resizeObserver=void 0,this.emitters.removeEmitter(this),this._engine.dispatchEvent("emitterDestroyed",{container:this.container,data:{emitter:this}})},this._prepareToDie=()=>{var m;if(this._paused)return;const h=((m=this.options.life)==null?void 0:m.duration)!==void 0?y(this.options.life.duration):void 0,f=0,d=0;this.container.retina.reduceFactor&&(this._lifeCount>d||this._immortal)&&h!==void 0&&h>f&&(this._duration=h*E)},this._setColorAnimation=(h,f,d,m=tc)=>{const p=this.container;if(!h.enable)return f;const g=q(h.offset),v=y(this.options.rate.delay),w=v*E/p.retina.reduceFactor,k=0,b=y(h.speed??k);return(f+b*p.fpsLimit/w+g*m)%d},this._engine=e,this._currentDuration=0,this._currentEmitDelay=0,this._currentSpawnDelay=0,this._initialPosition=o,s instanceof ke?this.options=s:(this.options=new ke,this.options.load(s)),this._spawnDelay=y(this.options.life.delay??ln)*E/this.container.retina.reduceFactor,this.position=this._initialPosition??this._calcPosition(),this.name=this.options.name,this.fill=this.options.fill,this._firstSpawn=!this.options.life.wait,this._startParticlesAdded=!1;let r=I({},this.options.particles);if(r??(r={}),r.move??(r.move={}),(l=r.move).direction??(l.direction=this.options.direction),this.options.spawnColor&&(this.spawnColor=He(this.options.spawnColor)),this._paused=!this.options.autoPlay,this._particlesOptions=r,this._size=this._calcSize(),this.size=ji(this._size,this.container.canvas.size),this._lifeCount=this.options.life.count??ec,this._immortal=this._lifeCount<=Ct,this.options.domId){const h=document.getElementById(this.options.domId);h&&(this._mutationObserver=new MutationObserver(()=>{this.resize()}),this._resizeObserver=new ResizeObserver(()=>{this.resize()}),this._mutationObserver.observe(h,{attributes:!0,attributeFilter:["style","width","height"]}),this._resizeObserver.observe(h))}const a=this.options.shape,c=(u=this._engine.emitterShapeManager)==null?void 0:u.getShapeGenerator(a.type);c&&(this._shape=c.generate(this.position,this.size,this.fill,a.options)),this._engine.dispatchEvent("emitterCreated",{container:n,data:{emitter:this}}),this.play()}externalPause(){this._paused=!0,this.pause()}externalPlay(){this._paused=!1,this.play()}async init(){var e;await((e=this._shape)==null?void 0:e.init())}pause(){this._paused||delete this._emitDelay}play(){if(!this._paused&&this.container.retina.reduceFactor&&(this._lifeCount>Ct||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??un))){if(this._emitDelay===void 0){const e=y(this.options.rate.delay);this._emitDelay=e*E/this.container.retina.reduceFactor}(this._lifeCount>Ct||this._immortal)&&this._prepareToDie()}}resize(){var i;const e=this._initialPosition;this.position=e&&Vt(e,this.container.canvas.size,F.origin)?e:this._calcPosition(),this._size=this._calcSize(),this.size=ji(this._size,this.container.canvas.size),(i=this._shape)==null||i.resize(this.position,this.size)}update(e){var i;this._paused||(this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??un,this._currentEmitDelay=this._emitDelay??Ka),this._startParticlesAdded||(this._startParticlesAdded=!0,this._emitParticles(this.options.startCount)),this._duration!==void 0&&(this._currentDuration+=e.value,this._currentDuration>=this._duration&&(this.pause(),this._spawnDelay!==void 0&&delete this._spawnDelay,this._immortal||this._lifeCount--,this._lifeCount>Ct||this._immortal?(this.position=this._calcPosition(),(i=this._shape)==null||i.resize(this.position,this.size),this._spawnDelay=y(this.options.life.delay??ln)*E/this.container.retina.reduceFactor):this._destroy(),this._currentDuration-=this._duration,delete this._duration)),this._spawnDelay!==void 0&&(this._currentSpawnDelay+=e.value,this._currentSpawnDelay>=this._spawnDelay&&(this._engine.dispatchEvent("emitterPlay",{container:this.container}),this.play(),this._currentSpawnDelay-=this._currentSpawnDelay,delete this._spawnDelay)),this._emitDelay!==void 0&&(this._currentEmitDelay+=e.value,this._currentEmitDelay>=this._emitDelay&&(this._emit(),this._currentEmitDelay-=this._emitDelay)))}_calcPosition(){if(this.options.domId){const e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect(),n=this.container.retina.pixelRatio;return{x:(i.x+i.width*cn)*n,y:(i.y+i.height*cn)*n}}}return Ro({size:this.container.canvas.size,position:this.options.position})}_calcSize(){const e=this.container;if(this.options.domId){const i=document.getElementById(this.options.domId);if(i){const n=i.getBoundingClientRect();return{width:n.width*e.retina.pixelRatio,height:n.height*e.retina.pixelRatio,mode:pe.precise}}}return this.options.size??(()=>{const i=new Ms;return i.load({height:0,mode:pe.percent,width:0}),i})()}_emit(){if(this._paused)return;const e=y(this.options.rate.quantity);this._emitParticles(e)}_emitParticles(e){var n;const i=K(this._particlesOptions);for(let s=0;s<e;s++){const o=I({},i);if(this.spawnColor){const c=(n=this.options.spawnColor)==null?void 0:n.animation;if(c){const l={h:360,s:100,l:100},u=3.6;this.spawnColor.h=this._setColorAnimation(c.h,this.spawnColor.h,l.h,u),this.spawnColor.s=this._setColorAnimation(c.s,this.spawnColor.s,l.s),this.spawnColor.l=this._setColorAnimation(c.l,this.spawnColor.l,l.l)}hn(o,this.spawnColor)}const r=this.options.shape;let a=this.position;if(this._shape){const c=this._shape.randomPosition();if(c){a=c.position;const l=r.replace;l.color&&c.color&&hn(o,c.color),l.opacity&&(o.opacity?o.opacity.value=c.opacity:o.opacity={value:c.opacity})}else a=null}a&&this.container.particles.addParticle(a,o)}}}class nc{constructor(e,i){this.container=i,this._engine=e,this.array=[],this.emitters=[],this.interactivityEmitters={random:{count:1,enable:!1},value:[]};const n=0;i.getEmitter=s=>s===void 0||ue(s)?this.array[s??n]:this.array.find(o=>o.name===s),i.addEmitter=async(s,o)=>this.addEmitter(s,o),i.removeEmitter=s=>{const o=i.getEmitter(s);o&&this.removeEmitter(o)},i.playEmitter=s=>{const o=i.getEmitter(s);o&&o.externalPlay()},i.pauseEmitter=s=>{const o=i.getEmitter(s);o&&o.externalPause()}}async addEmitter(e,i){const n=new ke;n.load(e);const s=new ic(this._engine,this,this.container,n,i);return await s.init(),this.array.push(s),s}handleClickMode(e){const i=this.emitters,n=this.interactivityEmitters;if(e!==qt.emitter)return;let s;if(n&&Q(n.value))if(n.value.length>0&&n.random.enable){s=[];const c=[];for(let l=0;l<n.random.count;l++){const u=as(n.value);if(c.includes(u)&&c.length<n.value.length){l--;continue}c.push(u),s.push(vt(n.value,u))}}else s=n.value;else s=n==null?void 0:n.value;const o=s??i,r=this.container.interactivity.mouse.clickPosition;V(o,async a=>{await this.addEmitter(a,r)})}async init(){if(this.emitters=this.container.actualOptions.emitters,this.interactivityEmitters=this.container.actualOptions.interactivity.modes.emitters,!!this.emitters)if(Q(this.emitters))for(const e of this.emitters)await this.addEmitter(e);else await this.addEmitter(this.emitters)}pause(){for(const e of this.array)e.pause()}play(){for(const e of this.array)e.play()}removeEmitter(e){const i=this.array.indexOf(e),n=0,s=1;i>=n&&this.array.splice(i,s)}resize(){for(const e of this.array)e.resize()}stop(){this.array=[]}update(e){for(const i of this.array)i.update(e)}}class sc{constructor(e){this._engine=e,this.id="emitters"}getPlugin(e){return Promise.resolve(new nc(this._engine,e))}loadOptions(e,i){var s,o;if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;i!=null&&i.emitters&&(e.emitters=V(i.emitters,r=>{const a=new ke;return a.load(r),a}));const n=(o=(s=i==null?void 0:i.interactivity)==null?void 0:s.modes)==null?void 0:o.emitters;if(n)if(Q(n))e.interactivity.modes.emitters={random:{count:1,enable:!0},value:n.map(r=>{const a=new ke;return a.load(r),a})};else{const r=n;if(r.value!==void 0)if(Q(r.value))e.interactivity.modes.emitters={random:{count:r.random.count??1,enable:r.random.enable??!1},value:r.value.map(c=>{const l=new ke;return l.load(c),l})};else{const c=new ke;c.load(r.value),e.interactivity.modes.emitters={random:{count:r.random.count??1,enable:r.random.enable??!1},value:c}}else(e.interactivity.modes.emitters={random:{count:1,enable:!1},value:new ke}).value.load(n)}}needsPlugin(e){var n,s,o;if(!e)return!1;const i=e.emitters;return Q(i)&&!!i.length||i!==void 0||!!((o=(s=(n=e.interactivity)==null?void 0:n.events)==null?void 0:s.onClick)!=null&&o.mode)&&D(qt.emitter,e.interactivity.events.onClick.mode)}}const oi=new Map;class oc{constructor(e){this._engine=e}addShapeGenerator(e,i){this.getShapeGenerator(e)||oi.set(e,i)}getShapeGenerator(e){return oi.get(e)}getSupportedShapeGenerators(){return oi.keys()}}class Ss{constructor(e,i,n,s){this.position=e,this.size=i,this.fill=n,this.options=s}resize(e,i){this.position=e,this.size=i}}async function zf(t,e=!0){t.emitterShapeManager||(t.emitterShapeManager=new oc(t)),t.addEmitterShapeGenerator||(t.addEmitterShapeGenerator=(n,s)=>{var o;(o=t.emitterShapeManager)==null||o.addShapeGenerator(n,s)});const i=new sc(t);await t.addPlugin(i,e)}const ft=.25,vi=2,rc=Math.PI*vi,fn=2,dn=.5;class ac extends Ss{constructor(e,i,n,s){super(e,i,n,s)}async init(){}randomPosition(){const e=this.size,i=this.fill,n=this.position,s=(h,f)=>{const d=C()*ft,m=Math.atan(f/h*Math.tan(rc*d)),p=C();return p<ft?m:p<vi*ft?Math.PI-m:p<vi*ft+ft?Math.PI+m:-m},o=(h,f,d)=>h*f/Math.sqrt((f*Math.cos(d))**fn+(h*Math.sin(d))**fn),[r,a]=[e.width*dn,e.height*dn],c=s(r,a),l=o(r,a,c),u=i?l*Math.sqrt(C()):l;return{position:{x:n.x+u*Math.cos(c),y:n.y+u*Math.sin(c)}}}}class cc{generate(e,i,n,s){return new ac(e,i,n,s)}}async function Of(t,e=!0){var n;const i=t;(n=i.addEmitterShapeGenerator)==null||n.call(i,"circle",new cc),await i.refresh(e)}const pn=.5,lc=4,uc=2;var Xe;(function(t){t[t.TopLeft=0]="TopLeft",t[t.TopRight=1]="TopRight",t[t.BottomRight=2]="BottomRight",t[t.BottomLeft=3]="BottomLeft"})(Xe||(Xe={}));function mn(t,e){return t+e*(C()-qe)}class hc extends Ss{constructor(e,i,n,s){super(e,i,n,s)}async init(){}randomPosition(){const e=this.fill,i=this.position,n=this.size;if(e)return{position:{x:mn(i.x,n.width),y:mn(i.y,n.height)}};{const s=n.width*pn,o=n.height*pn,r=Math.floor(C()*lc),a=(C()-qe)*uc;switch(r){case Xe.TopLeft:return{position:{x:i.x+a*s,y:i.y-o}};case Xe.TopRight:return{position:{x:i.x-s,y:i.y+a*o}};case Xe.BottomRight:return{position:{x:i.x+a*s,y:i.y+o}};case Xe.BottomLeft:default:return{position:{x:i.x+s,y:i.y+a*o}}}}}}class fc{generate(e,i,n,s){return new hc(e,i,n,s)}}async function Mf(t,e=!0){var n;const i=t;(n=i.addEmitterShapeGenerator)==null||n.call(i,"square",new fc),await i.refresh(e)}const bi=.5,$e=0,ae=1,yn=60,gn=0,dc=.01;function pc(t){const e=t.initialPosition,{dx:i,dy:n}=Y(e,t.position),s=Math.abs(i),o=Math.abs(n),{maxDistance:r}=t.retina,a=r.horizontal,c=r.vertical;if(!a&&!c)return;const l=(a&&s>=a)??!1,u=(c&&o>=c)??!1;if((l||u)&&!t.misplaced)t.misplaced=!!a&&s>a||!!c&&o>c,a&&(t.velocity.x=t.velocity.y*bi-t.velocity.x),c&&(t.velocity.y=t.velocity.x*bi-t.velocity.y);else if((!a||s<a)&&(!c||o<c)&&t.misplaced)t.misplaced=!1;else if(t.misplaced){const h=t.position,f=t.velocity;a&&(h.x<e.x&&f.x<$e||h.x>e.x&&f.x>$e)&&(f.x*=-C()),c&&(h.y<e.y&&f.y<$e||h.y>e.y&&f.y>$e)&&(f.y*=-C())}}function mc(t,e,i,n,s,o){gc(t,o);const r=t.gravity,a=r!=null&&r.enable&&r.inverse?-ae:ae;s&&i&&(t.velocity.x+=s*o.factor/(yn*i)),r!=null&&r.enable&&i&&(t.velocity.y+=a*(r.acceleration*o.factor)/(yn*i));const c=t.moveDecay;t.velocity.multTo(c);const l=t.velocity.mult(i);r!=null&&r.enable&&n>$e&&(!r.inverse&&l.y>=$e&&l.y>=n||r.inverse&&l.y<=$e&&l.y<=-n)&&(l.y=a*n,i&&(t.velocity.y=l.y/i));const u=t.options.zIndex,h=(ae-t.zIndexFactor)**u.velocityRate;l.multTo(h);const{position:f}=t;f.addTo(l),e.vibrate&&(f.x+=Math.sin(f.x*Math.cos(f.y)),f.y+=Math.cos(f.y*Math.sin(f.x)))}function yc(t,e){const i=t.container;if(!t.spin)return;const n={x:t.spin.direction===ie.clockwise?Math.cos:Math.sin,y:t.spin.direction===ie.clockwise?Math.sin:Math.cos};t.position.x=t.spin.center.x+t.spin.radius*n.x(t.spin.angle),t.position.y=t.spin.center.y+t.spin.radius*n.y(t.spin.angle),t.spin.radius+=t.spin.acceleration;const s=Math.max(i.canvas.size.width,i.canvas.size.height),o=s*bi;t.spin.radius>o?(t.spin.radius=o,t.spin.acceleration*=-ae):t.spin.radius<gn&&(t.spin.radius=gn,t.spin.acceleration*=-ae),t.spin.angle+=e*dc*(ae-t.spin.radius/s)}function gc(t,e){var r;const i=t.options,n=i.move.path;if(!n.enable)return;if(t.lastPathTime<=t.pathDelay){t.lastPathTime+=e.value;return}const o=(r=t.pathGenerator)==null?void 0:r.generate(t,e);o&&t.velocity.addTo(o),n.clamp&&(t.velocity.x=se(t.velocity.x,-ae,ae),t.velocity.y=se(t.velocity.y,-ae,ae)),t.lastPathTime-=t.pathDelay}function vc(t){return t.slow.inRange?t.slow.factor:ae}function bc(t){const e=t.container,i=t.options,n=i.move.spin;if(!n.enable)return;const s=n.position??{x:50,y:50},o=.01,r={x:s.x*o*e.canvas.size.width,y:s.y*o*e.canvas.size.height},a=t.getPosition(),c=ee(a,r),l=y(n.acceleration);t.retina.spinAcceleration=l*e.retina.pixelRatio;const u=0;t.spin={center:r,direction:t.velocity.x>=u?ie.clockwise:ie.counterClockwise,angle:t.velocity.angle,radius:c,acceleration:t.retina.spinAcceleration}}const wc=2,xc=1,_c=1;class kc{init(e){const i=e.options,n=i.move.gravity;e.gravity={enable:n.enable,acceleration:y(n.acceleration),inverse:n.inverse},bc(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,i){var p,g;const n=e.options,s=n.move;if(!s.enable)return;const o=e.container,r=o.retina.pixelRatio;(p=e.retina).moveSpeed??(p.moveSpeed=y(s.speed)*r),(g=e.retina).moveDrift??(g.moveDrift=y(e.options.move.drift)*r);const a=vc(e),c=e.retina.moveSpeed*o.retina.reduceFactor,l=e.retina.moveDrift,u=re(n.size.value)*r,h=s.size?e.getRadius()/u:xc,f=i.factor||_c,d=c*h*a*f/wc,m=e.retina.maxSpeed??o.retina.maxSpeed;s.spin.enable?yc(e,d):mc(e,s,d,m,l,i),pc(e)}}async function Cc(t,e=!0){await t.addMover("base",()=>Promise.resolve(new kc),e)}const Pc=2,zc=Math.PI*Pc,Oc=0,vn={x:0,y:0};function Mc(t){const{context:e,particle:i,radius:n}=t;i.circleRange||(i.circleRange={min:Oc,max:zc});const s=i.circleRange;e.arc(vn.x,vn.y,n,s.min,s.max,!1)}const Sc=12,Rc=360,bn=0;class Ec{constructor(){this.validTypes=["circle"]}draw(e){Mc(e)}getSidesCount(){return Sc}particleInit(e,i){const n=i.shapeData,s=(n==null?void 0:n.angle)??{max:Rc,min:bn};i.circleRange=Ne(s)?{min:ve(s.min),max:ve(s.max)}:{min:bn,max:ve(s)}}}async function Dc(t,e=!0){await t.addShape(new Ec,e)}class Ic{constructor(e){this.container=e}init(e){const i=He(e.options.color,e.id,e.options.reduceDuplicates);i&&(e.color=vs(i,e.options.color.animation,this.container.retina.reduceFactor))}isEnabled(e){const{h:i,s:n,l:s}=e.options.color.animation,{color:o}=e;return!e.destroyed&&!e.spawning&&((o==null?void 0:o.h.value)!==void 0&&i.enable||(o==null?void 0:o.s.value)!==void 0&&n.enable||(o==null?void 0:o.l.value)!==void 0&&s.enable)}update(e,i){bs(e.color,i)}}async function Tc(t,e=!0){await t.addParticleUpdater("color",i=>Promise.resolve(new Ic(i)),e)}class Lc{constructor(e){this.container=e}init(e){const i=e.options.opacity,n=1;e.opacity=hs(i,n);const s=i.animation;s.enable&&(e.opacity.velocity=y(s.speed)/H*this.container.retina.reduceFactor,s.sync||(e.opacity.velocity*=C()))}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.opacity&&e.opacity.enable&&((e.opacity.maxLoops??0)<=0||(e.opacity.maxLoops??0)>0&&(e.opacity.loops??0)<(e.opacity.maxLoops??0))}reset(e){e.opacity&&(e.opacity.time=0,e.opacity.loops=0)}update(e,i){!this.isEnabled(e)||!e.opacity||Gt(e,e.opacity,!0,e.options.opacity.animation.destroy,i)}}async function Fc(t,e=!0){await t.addParticleUpdater("opacity",i=>Promise.resolve(new Lc(i)),e)}const Ut=0,tt=0;function $c(t){if(t.outMode!==T.bounce&&t.outMode!==T.split||t.direction!==O.left&&t.direction!==O.right)return;t.bounds.right<tt&&t.direction===O.left?t.particle.position.x=t.size+t.offset.x:t.bounds.left>t.canvasSize.width&&t.direction===O.right&&(t.particle.position.x=t.canvasSize.width-t.size-t.offset.x);const e=t.particle.velocity.x;let i=!1;if(t.direction===O.right&&t.bounds.right>=t.canvasSize.width&&e>Ut||t.direction===O.left&&t.bounds.left<=tt&&e<Ut){const s=y(t.particle.options.bounce.horizontal.value);t.particle.velocity.x*=-s,i=!0}if(!i)return;const n=t.offset.x+t.size;t.bounds.right>=t.canvasSize.width&&t.direction===O.right?t.particle.position.x=t.canvasSize.width-n:t.bounds.left<=tt&&t.direction===O.left&&(t.particle.position.x=n),t.outMode===T.split&&t.particle.destroy()}function Ac(t){if(t.outMode!==T.bounce&&t.outMode!==T.split||t.direction!==O.bottom&&t.direction!==O.top)return;t.bounds.bottom<tt&&t.direction===O.top?t.particle.position.y=t.size+t.offset.y:t.bounds.top>t.canvasSize.height&&t.direction===O.bottom&&(t.particle.position.y=t.canvasSize.height-t.size-t.offset.y);const e=t.particle.velocity.y;let i=!1;if(t.direction===O.bottom&&t.bounds.bottom>=t.canvasSize.height&&e>Ut||t.direction===O.top&&t.bounds.top<=tt&&e<Ut){const s=y(t.particle.options.bounce.vertical.value);t.particle.velocity.y*=-s,i=!0}if(!i)return;const n=t.offset.y+t.size;t.bounds.bottom>=t.canvasSize.height&&t.direction===O.bottom?t.particle.position.y=t.canvasSize.height-n:t.bounds.top<=tt&&t.direction===O.top&&(t.particle.position.y=n),t.outMode===T.split&&t.particle.destroy()}class Bc{constructor(e){this.container=e,this.modes=[T.bounce,T.split]}update(e,i,n,s){if(!this.modes.includes(s))return;const o=this.container;let r=!1;for(const[,f]of o.plugins)if(f.particleBounce!==void 0&&(r=f.particleBounce(e,n,i)),r)break;if(r)return;const a=e.getPosition(),c=e.offset,l=e.getRadius(),u=bt(a,l),h=o.canvas.size;$c({particle:e,outMode:s,direction:i,bounds:u,canvasSize:h,offset:c,size:l}),Ac({particle:e,outMode:s,direction:i,bounds:u,canvasSize:h,offset:c,size:l})}}const Pt=0;class qc{constructor(e){this.container=e,this.modes=[T.destroy]}update(e,i,n,s){if(!this.modes.includes(s))return;const o=this.container;switch(e.outType){case le.normal:case le.outside:if(Vt(e.position,o.canvas.size,F.origin,e.getRadius(),i))return;break;case le.inside:{const{dx:r,dy:a}=Y(e.position,e.moveCenter),{x:c,y:l}=e.velocity;if(c<Pt&&r>e.moveCenter.radius||l<Pt&&a>e.moveCenter.radius||c>=Pt&&r<-e.moveCenter.radius||l>=Pt&&a<-e.moveCenter.radius)return;break}}o.particles.remove(e,void 0,!0)}}const zt=0;class Uc{constructor(e){this.container=e,this.modes=[T.none]}update(e,i,n,s){if(!this.modes.includes(s)||((e.options.move.distance.horizontal&&(i===O.left||i===O.right))??(e.options.move.distance.vertical&&(i===O.top||i===O.bottom))))return;const o=e.options.move.gravity,r=this.container,a=r.canvas.size,c=e.getRadius();if(o.enable){const l=e.position;(!o.inverse&&l.y>a.height+c&&i===O.bottom||o.inverse&&l.y<-c&&i===O.top)&&r.particles.remove(e)}else{if(e.velocity.y>zt&&e.position.y<=a.height+c||e.velocity.y<zt&&e.position.y>=-c||e.velocity.x>zt&&e.position.x<=a.width+c||e.velocity.x<zt&&e.position.x>=-c)return;Vt(e.position,r.canvas.size,F.origin,c,i)||r.particles.remove(e)}}}const Ot=0,Mt=0;class jc{constructor(e){this.container=e,this.modes=[T.out]}update(e,i,n,s){if(!this.modes.includes(s))return;const o=this.container;switch(e.outType){case le.inside:{const{x:r,y:a}=e.velocity,c=F.origin;c.length=e.moveCenter.radius,c.angle=e.velocity.angle+Math.PI,c.addTo(F.create(e.moveCenter));const{dx:l,dy:u}=Y(e.position,c);if(r<=Ot&&l>=Mt||a<=Ot&&u>=Mt||r>=Ot&&l<=Mt||a>=Ot&&u<=Mt)return;e.position.x=Math.floor(q({min:0,max:o.canvas.size.width})),e.position.y=Math.floor(q({min:0,max:o.canvas.size.height}));const{dx:h,dy:f}=Y(e.position,e.moveCenter);e.direction=Math.atan2(-f,-h),e.velocity.angle=e.direction;break}default:{if(Vt(e.position,o.canvas.size,F.origin,e.getRadius(),i))return;switch(e.outType){case le.outside:{e.position.x=Math.floor(q({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(q({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;const{dx:r,dy:a}=Y(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(a,r),e.velocity.angle=e.direction);break}case le.normal:{const r=e.options.move.warp,a=o.canvas.size,c={bottom:a.height+e.getRadius()+e.offset.y,left:-e.getRadius()-e.offset.x,right:a.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},l=e.getRadius(),u=bt(e.position,l);i===O.right&&u.left>a.width+e.offset.x?(e.position.x=c.left,e.initialPosition.x=e.position.x,r||(e.position.y=C()*a.height,e.initialPosition.y=e.position.y)):i===O.left&&u.right<-e.offset.x&&(e.position.x=c.right,e.initialPosition.x=e.position.x,r||(e.position.y=C()*a.height,e.initialPosition.y=e.position.y)),i===O.bottom&&u.top>a.height+e.offset.y?(r||(e.position.x=C()*a.width,e.initialPosition.x=e.position.x),e.position.y=c.top,e.initialPosition.y=e.position.y):i===O.top&&u.bottom<-e.offset.y&&(r||(e.position.x=C()*a.width,e.initialPosition.x=e.position.x),e.position.y=c.bottom,e.initialPosition.y=e.position.y);break}}break}}}}const St=(t,e)=>t.default===e||t.bottom===e||t.left===e||t.right===e||t.top===e;class Hc{constructor(e){this._updateOutMode=(i,n,s,o)=>{for(const r of this.updaters)r.update(i,o,n,s)},this.container=e,this.updaters=[]}init(e){this.updaters=[];const i=e.options.move.outModes;St(i,T.bounce)?this.updaters.push(new Bc(this.container)):St(i,T.out)?this.updaters.push(new jc(this.container)):St(i,T.destroy)?this.updaters.push(new qc(this.container)):St(i,T.none)&&this.updaters.push(new Uc(this.container))}isEnabled(e){return!e.destroyed&&!e.spawning}update(e,i){const n=e.options.move.outModes;this._updateOutMode(e,i,n.bottom??n.default,O.bottom),this._updateOutMode(e,i,n.left??n.default,O.left),this._updateOutMode(e,i,n.right??n.default,O.right),this._updateOutMode(e,i,n.top??n.default,O.top)}}async function Wc(t,e=!0){await t.addParticleUpdater("outModes",i=>Promise.resolve(new Hc(i)),e)}const Me=0;class Vc{init(e){const i=e.container,n=e.options.size,s=n.animation;s.enable&&(e.size.velocity=(e.retina.sizeAnimationSpeed??i.retina.sizeAnimationSpeed)/H*i.retina.reduceFactor,s.sync||(e.size.velocity*=C()))}isEnabled(e){return!e.destroyed&&!e.spawning&&e.size.enable&&((e.size.maxLoops??Me)<=Me||(e.size.maxLoops??Me)>Me&&(e.size.loops??Me)<(e.size.maxLoops??Me))}reset(e){e.size.loops=Me}update(e,i){this.isEnabled(e)&&Gt(e,e.size,!0,e.options.size.animation.destroy,i)}}async function Gc(t,e=!0){await t.addParticleUpdater("size",()=>Promise.resolve(new Vc),e)}async function Nc(t,e=!0){await Cc(t,!1),await Dc(t,!1),await Tc(t,!1),await Fc(t,!1),await Wc(t,!1),await Gc(t,!1),await t.refresh(e)}async function Qc(){Xt(Ae.easeInQuad,t=>t**2),Xt(Ae.easeOutQuad,t=>1-(1-t)**2),Xt(Ae.easeInOutQuad,t=>t<.5?2*t**2:1-(-2*t+2)**2/2),await Promise.resolve()}function Yc(t){const{context:e,particle:i,radius:n,opacity:s}=t,o=i.emojiData,r=2,a=n*r,c=e.globalAlpha;o&&(e.globalAlpha=s,e.drawImage(o,-n,-n,a,a),e.globalAlpha=c)}const wn='"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"';class Xc{constructor(){this.validTypes=["emoji"],this._emojiShapeDict=new Map}destroy(){for(const[e,i]of this._emojiShapeDict)i instanceof ImageBitmap&&(i==null||i.close(),this._emojiShapeDict.delete(e))}draw(e){Yc(e)}async init(e){const i=e.actualOptions,{validTypes:n}=this;if(!n.find(r=>D(r,i.particles.shape.type)))return;const s=[Ui(wn)],o=n.map(r=>i.particles.shape.options[r]).find(r=>!!r);o&&V(o,r=>{r.font&&s.push(Ui(r.font))}),await Promise.all(s)}particleDestroy(e){delete e.emojiData}particleInit(e,i){const s=i.shapeData;if(!(s!=null&&s.value))return;const o=K(s.value,i.randomIndexData),r=s.font??wn;if(!o)return;const a=`${o}_${r}`,c=this._emojiShapeDict.get(a);if(c){i.emojiData=c;return}const l=re(i.size.value)*2;let u;const h=re(i.size.value);if(typeof OffscreenCanvas<"u"){const f=new OffscreenCanvas(l,l),d=f.getContext("2d");if(!d)return;d.font=`400 ${h*2}px ${r}`,d.textBaseline="middle",d.textAlign="center",d.fillText(o,h,h),u=f.transferToImageBitmap()}else{const f=document.createElement("canvas");f.width=l,f.height=l;const d=f.getContext("2d");if(!d)return;d.font=`400 ${h*2}px ${r}`,d.textBaseline="middle",d.textAlign="center",d.fillText(o,h,h),u=f}this._emojiShapeDict.set(a,u),i.emojiData=u}}async function Zc(t,e=!0){await t.addShape(new Xc,e)}const Jc=1,Kc=1,Rs=0;function Es(t,e,i,n,s){const o=t.actualOptions.interactivity.modes.attract;if(!o)return;const r=t.particles.quadTree.query(n,s);for(const a of r){const{dx:c,dy:l,distance:u}=Y(a.position,e),h=o.speed*o.factor,f=se(ss(o.easing)(Kc-u/i)*h,Jc,o.maxSpeed),d=F.create(u?c/u*f:h,u?l/u*f:h);a.position.subFrom(d)}}function el(t,e){t.attract||(t.attract={particles:[]});const{attract:i}=t;if(i.finish||(i.count||(i.count=0),i.count++,i.count===t.particles.count&&(i.finish=!0)),i.clicking){const n=t.interactivity.mouse.clickPosition,s=t.retina.attractModeDistance;if(!s||s<Rs||!n)return;Es(t,n,s,new W(n.x,n.y,s),o=>e(o))}else i.clicking===!1&&(i.particles=[])}function tl(t,e){const i=t.interactivity.mouse.position,n=t.retina.attractModeDistance;!n||n<Rs||!i||Es(t,i,n,new W(i.x,i.y,n),s=>e(s))}class il{constructor(){this.distance=200,this.duration=.4,this.easing=Ae.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1}load(e){e&&(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.easing!==void 0&&(this.easing=e.easing),e.factor!==void 0&&(this.factor=e.factor),e.maxSpeed!==void 0&&(this.maxSpeed=e.maxSpeed),e.speed!==void 0&&(this.speed=e.speed))}}const dt="attract";let nl=class extends ye{constructor(e,i){super(i),this._engine=e,i.attract||(i.attract={particles:[]}),this.handleClickMode=n=>{const s=this.container.actualOptions,o=s.interactivity.modes.attract;if(!(!o||n!==dt)){i.attract||(i.attract={particles:[]}),i.attract.clicking=!0,i.attract.count=0;for(const r of i.attract.particles)this.isEnabled(r)&&r.velocity.setTo(r.initialVelocity);i.attract.particles=[],i.attract.finish=!1,setTimeout(()=>{i.destroyed||(i.attract||(i.attract={particles:[]}),i.attract.clicking=!1)},o.duration*E)}}}clear(){}init(){const e=this.container,i=e.actualOptions.interactivity.modes.attract;i&&(e.retina.attractModeDistance=i.distance*e.retina.pixelRatio)}interact(){const e=this.container,i=e.actualOptions,n=e.interactivity.status===Be,s=i.interactivity.events,{enable:o,mode:r}=s.onHover,{enable:a,mode:c}=s.onClick;n&&o&&D(dt,r)?tl(this.container,l=>this.isEnabled(l)):a&&D(dt,c)&&el(this.container,l=>this.isEnabled(l))}isEnabled(e){const i=this.container,n=i.actualOptions,s=i.interactivity.mouse,o=((e==null?void 0:e.interactivity)??n.interactivity).events;if((!s.position||!o.onHover.enable)&&(!s.clickPosition||!o.onClick.enable))return!1;const r=o.onHover.mode,a=o.onClick.mode;return D(dt,r)||D(dt,a)}loadModeOptions(e,...i){e.attract||(e.attract=new il);for(const n of i)e.attract.load(n==null?void 0:n.attract)}reset(){}};async function sl(t,e=!0){await t.addInteractor("externalAttract",i=>Promise.resolve(new nl(t,i)),e)}const ol=2,Ft=.5,rl=Math.PI*Ft,xn=2,Ds=10,al=0;function Is(t,e,i,n,s){const o=t.particles.quadTree.query(n,s);for(const r of o)n instanceof W?ls(mi(r),{position:e,radius:i,mass:i**ol*rl,velocity:F.origin,factor:F.origin}):n instanceof he&&Bo(r,bt(e,i))}function cl(t,e,i,n){const s=document.querySelectorAll(e);s.length&&s.forEach(o=>{const r=o,a=t.retina.pixelRatio,c={x:(r.offsetLeft+r.offsetWidth*Ft)*a,y:(r.offsetTop+r.offsetHeight*Ft)*a},l=r.offsetWidth*Ft*a,u=Ds*a,h=i.type===st.circle?new W(c.x,c.y,l+u):new he(r.offsetLeft*a-u,r.offsetTop*a-u,r.offsetWidth*a+u*xn,r.offsetHeight*a+u*xn);n(c,l,h)})}function ll(t,e,i,n){Oi(i,e,(s,o)=>cl(t,s,o,(r,a,c)=>Is(t,r,a,c,n)))}function ul(t,e){const i=t.retina.pixelRatio,n=Ds*i,s=t.interactivity.mouse.position,o=t.retina.bounceModeDistance;!o||o<al||!s||Is(t,s,o,new W(s.x,s.y,o+n),e)}class hl{constructor(){this.distance=200}load(e){e&&e.distance!==void 0&&(this.distance=e.distance)}}const Rt="bounce";class fl extends ye{constructor(e){super(e)}clear(){}init(){const e=this.container,i=e.actualOptions.interactivity.modes.bounce;i&&(e.retina.bounceModeDistance=i.distance*e.retina.pixelRatio)}interact(){const e=this.container,i=e.actualOptions,n=i.interactivity.events,s=e.interactivity.status===Be,o=n.onHover.enable,r=n.onHover.mode,a=n.onDiv;s&&o&&D(Rt,r)?ul(this.container,c=>this.isEnabled(c)):ll(this.container,a,Rt,c=>this.isEnabled(c))}isEnabled(e){const i=this.container,n=i.actualOptions,s=i.interactivity.mouse,o=((e==null?void 0:e.interactivity)??n.interactivity).events,r=o.onDiv;return!!s.position&&o.onHover.enable&&D(Rt,o.onHover.mode)||zi(Rt,r)}loadModeOptions(e,...i){e.bounce||(e.bounce=new hl);for(const n of i)e.bounce.load(n==null?void 0:n.bounce)}reset(){}}async function dl(t,e=!0){await t.addInteractor("externalBounce",i=>Promise.resolve(new fl(i)),e)}class Ts{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(e){if(e){if(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.mix!==void 0&&(this.mix=e.mix),e.opacity!==void 0&&(this.opacity=e.opacity),e.color!==void 0){const i=Q(this.color)?void 0:this.color;this.color=V(e.color,n=>$.create(i,n))}e.size!==void 0&&(this.size=e.size)}}}class pl extends Ts{constructor(){super(),this.selectors=[]}load(e){super.load(e),e&&e.selectors!==void 0&&(this.selectors=e.selectors)}}class ml extends Ts{load(e){super.load(e),e&&(this.divs=V(e.divs,i=>{const n=new pl;return n.load(i),n}))}}var fe;(function(t){t.color="color",t.opacity="opacity",t.size="size"})(fe||(fe={}));function _n(t,e,i,n){if(e>=i){const s=t+(e-i)*n;return se(s,t,e)}else if(e<i){const s=t-(i-e)*n;return se(s,e,t)}}const Se="bubble",ri=0,yl=0,gl=2,kn=1,Cn=1,vl=0,bl=0,ai=.5,ci=1;class wl extends ye{constructor(e){super(e),this._clickBubble=()=>{var l;const i=this.container,n=i.actualOptions,s=i.interactivity.mouse.clickPosition,o=n.interactivity.modes.bubble;if(!o||!s)return;i.bubble||(i.bubble={});const r=i.retina.bubbleModeDistance;if(!r||r<ri)return;const a=i.particles.quadTree.queryCircle(s,r,u=>this.isEnabled(u)),{bubble:c}=i;for(const u of a){if(!c.clicking)continue;u.bubble.inRange=!c.durationEnd;const h=u.getPosition(),f=ee(h,s),d=(new Date().getTime()-(i.interactivity.mouse.clickTime??yl))/E;d>o.duration&&(c.durationEnd=!0),d>o.duration*gl&&(c.clicking=!1,c.durationEnd=!1);const m={bubbleObj:{optValue:i.retina.bubbleModeSize,value:u.bubble.radius},particlesObj:{optValue:re(u.options.size.value)*i.retina.pixelRatio,value:u.size.value},type:fe.size};this._process(u,f,d,m);const p={bubbleObj:{optValue:o.opacity,value:u.bubble.opacity},particlesObj:{optValue:re(u.options.opacity.value),value:((l=u.opacity)==null?void 0:l.value)??kn},type:fe.opacity};this._process(u,f,d,p),!c.durationEnd&&f<=r?this._hoverBubbleColor(u,f):delete u.bubble.color}},this._hoverBubble=()=>{const i=this.container,n=i.interactivity.mouse.position,s=i.retina.bubbleModeDistance;if(!s||s<ri||!n)return;const o=i.particles.quadTree.queryCircle(n,s,r=>this.isEnabled(r));for(const r of o){r.bubble.inRange=!0;const a=r.getPosition(),c=ee(a,n),l=Cn-c/s;c<=s?l>=bl&&i.interactivity.status===Be&&(this._hoverBubbleSize(r,l),this._hoverBubbleOpacity(r,l),this._hoverBubbleColor(r,l)):this.reset(r),i.interactivity.status===di&&this.reset(r)}},this._hoverBubbleColor=(i,n,s)=>{const o=this.container.actualOptions,r=s??o.interactivity.modes.bubble;if(r){if(!i.bubble.finalColor){const a=r.color;if(!a)return;const c=K(a);i.bubble.finalColor=He(c)}if(i.bubble.finalColor)if(r.mix){i.bubble.color=void 0;const a=i.getFillColor();i.bubble.color=a?ms(Mi(a,i.bubble.finalColor,Cn-n,n)):i.bubble.finalColor}else i.bubble.color=i.bubble.finalColor}},this._hoverBubbleOpacity=(i,n,s)=>{var h,f;const o=this.container,r=o.actualOptions,a=(s==null?void 0:s.opacity)??((h=r.interactivity.modes.bubble)==null?void 0:h.opacity);if(!a)return;const c=i.options.opacity.value,l=((f=i.opacity)==null?void 0:f.value)??kn,u=_n(l,a,re(c),n);u!==void 0&&(i.bubble.opacity=u)},this._hoverBubbleSize=(i,n,s)=>{const o=this.container,r=s!=null&&s.size?s.size*o.retina.pixelRatio:o.retina.bubbleModeSize;if(r===void 0)return;const a=re(i.options.size.value)*o.retina.pixelRatio,c=i.size.value,l=_n(c,r,a,n);l!==void 0&&(i.bubble.radius=l)},this._process=(i,n,s,o)=>{const r=this.container,a=o.bubbleObj.optValue,c=r.actualOptions,l=c.interactivity.modes.bubble;if(!l||a===void 0)return;const u=l.duration,h=r.retina.bubbleModeDistance,f=o.particlesObj.optValue,d=o.bubbleObj.value,m=o.particlesObj.value??vl,p=o.type;if(!(!h||h<ri||a===f))if(r.bubble||(r.bubble={}),r.bubble.durationEnd)d&&(p===fe.size&&delete i.bubble.radius,p===fe.opacity&&delete i.bubble.opacity);else if(n<=h){if((d??m)!==a){const v=m-s*(m-a)/u;p===fe.size&&(i.bubble.radius=v),p===fe.opacity&&(i.bubble.opacity=v)}}else p===fe.size&&delete i.bubble.radius,p===fe.opacity&&delete i.bubble.opacity},this._singleSelectorHover=(i,n,s)=>{const o=this.container,r=document.querySelectorAll(n),a=o.actualOptions.interactivity.modes.bubble;!a||!r.length||r.forEach(c=>{const l=c,u=o.retina.pixelRatio,h={x:(l.offsetLeft+l.offsetWidth*ai)*u,y:(l.offsetTop+l.offsetHeight*ai)*u},f=l.offsetWidth*ai*u,d=s.type===st.circle?new W(h.x,h.y,f):new he(l.offsetLeft*u,l.offsetTop*u,l.offsetWidth*u,l.offsetHeight*u),m=o.particles.quadTree.query(d,p=>this.isEnabled(p));for(const p of m){if(!d.contains(p.getPosition()))continue;p.bubble.inRange=!0;const g=a.divs,v=cs(g,l);(!p.bubble.div||p.bubble.div!==l)&&(this.clear(p,i,!0),p.bubble.div=l),this._hoverBubbleSize(p,ci,v),this._hoverBubbleOpacity(p,ci,v),this._hoverBubbleColor(p,ci,v)}})},e.bubble||(e.bubble={}),this.handleClickMode=i=>{i===Se&&(e.bubble||(e.bubble={}),e.bubble.clicking=!0)}}clear(e,i,n){e.bubble.inRange&&!n||(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}init(){const e=this.container,i=e.actualOptions.interactivity.modes.bubble;i&&(e.retina.bubbleModeDistance=i.distance*e.retina.pixelRatio,i.size!==void 0&&(e.retina.bubbleModeSize=i.size*e.retina.pixelRatio))}interact(e){const i=this.container.actualOptions,n=i.interactivity.events,s=n.onHover,o=n.onClick,r=s.enable,a=s.mode,c=o.enable,l=o.mode,u=n.onDiv;r&&D(Se,a)?this._hoverBubble():c&&D(Se,l)?this._clickBubble():Oi(Se,u,(h,f)=>this._singleSelectorHover(e,h,f))}isEnabled(e){const i=this.container,n=i.actualOptions,s=i.interactivity.mouse,o=((e==null?void 0:e.interactivity)??n.interactivity).events,{onClick:r,onDiv:a,onHover:c}=o,l=zi(Se,a);return l||c.enable&&s.position||r.enable&&s.clickPosition?D(Se,c.mode)||D(Se,r.mode)||l:!1}loadModeOptions(e,...i){e.bubble||(e.bubble=new ml);for(const n of i)e.bubble.load(n==null?void 0:n.bubble)}reset(e){e.bubble.inRange=!1}}async function xl(t,e=!0){await t.addInteractor("externalBubble",i=>Promise.resolve(new wl(i)),e)}class _l{constructor(){this.opacity=.5}load(e){e&&e.opacity!==void 0&&(this.opacity=e.opacity)}}class kl{constructor(){this.distance=80,this.links=new _l,this.radius=60}load(e){e&&(e.distance!==void 0&&(this.distance=e.distance),this.links.load(e.links),e.radius!==void 0&&(this.radius=e.radius))}}const Pn=0,zn=1,Cl=0;function Pl(t,e,i,n){const s=Math.floor(i.getRadius()/e.getRadius()),o=e.getFillColor(),r=i.getFillColor();if(!o||!r)return;const a=e.getPosition(),c=i.getPosition(),l=Mi(o,r,e.getRadius(),i.getRadius()),u=t.createLinearGradient(a.x,a.y,c.x,c.y);return u.addColorStop(Pn,mt(o,n)),u.addColorStop(se(s,Pn,zn),be(l,n)),u.addColorStop(zn,mt(r,n)),u}function zl(t,e,i,n,s){pt(t,n,s),t.lineWidth=e,t.strokeStyle=i,t.stroke()}function Ol(t,e,i,n){const s=t.actualOptions,o=s.interactivity.modes.connect;if(o)return Pl(e,i,n,o.links.opacity)}function Ml(t,e,i){t.canvas.draw(n=>{const s=Ol(t,n,e,i);if(!s)return;const o=e.getPosition(),r=i.getPosition();zl(n,e.retina.linksWidth??Cl,s,o,r)})}const Sl="connect",On=0;class Rl extends ye{constructor(e){super(e)}clear(){}init(){const e=this.container,i=e.actualOptions.interactivity.modes.connect;i&&(e.retina.connectModeDistance=i.distance*e.retina.pixelRatio,e.retina.connectModeRadius=i.radius*e.retina.pixelRatio)}interact(){const e=this.container;if(e.actualOptions.interactivity.events.onHover.enable&&e.interactivity.status==="pointermove"){const n=e.interactivity.mouse.position,{connectModeDistance:s,connectModeRadius:o}=e.retina;if(!s||s<On||!o||o<On||!n)return;const r=Math.abs(o),a=e.particles.quadTree.queryCircle(n,r,c=>this.isEnabled(c));a.forEach((c,l)=>{const u=c.getPosition(),h=1;for(const f of a.slice(l+h)){const d=f.getPosition(),m=Math.abs(s),p=Math.abs(u.x-d.x),g=Math.abs(u.y-d.y);p<m&&g<m&&Ml(e,c,f)}})}}isEnabled(e){const i=this.container,n=i.interactivity.mouse,s=((e==null?void 0:e.interactivity)??i.actualOptions.interactivity).events;return s.onHover.enable&&n.position?D(Sl,s.onHover.mode):!1}loadModeOptions(e,...i){e.connect||(e.connect=new kl);for(const n of i)e.connect.load(n==null?void 0:n.connect)}reset(){}}async function El(t,e=!0){await t.addInteractor("externalConnect",i=>Promise.resolve(new Rl(i)),e)}class Dl{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(e){e&&(e.blink!==void 0&&(this.blink=e.blink),e.color!==void 0&&(this.color=$.create(this.color,e.color)),e.consent!==void 0&&(this.consent=e.consent),e.opacity!==void 0&&(this.opacity=e.opacity))}}class Il{constructor(){this.distance=100,this.links=new Dl}load(e){e&&(e.distance!==void 0&&(this.distance=e.distance),this.links.load(e.links))}}const Tl=0;function Ll(t,e,i,n,s,o){pt(t,i,n),t.strokeStyle=be(s,o),t.lineWidth=e,t.stroke()}function Fl(t,e,i,n,s){t.canvas.draw(o=>{const r=e.getPosition();Ll(o,e.retina.linksWidth??Tl,r,s,i,n)})}const $l="grab",Al=0,Bl=0;class ql extends ye{constructor(e){super(e)}clear(){}init(){const e=this.container,i=e.actualOptions.interactivity.modes.grab;i&&(e.retina.grabModeDistance=i.distance*e.retina.pixelRatio)}interact(){var a;const e=this.container,i=e.actualOptions,n=i.interactivity;if(!n.modes.grab||!n.events.onHover.enable||e.interactivity.status!==Be)return;const s=e.interactivity.mouse.position;if(!s)return;const o=e.retina.grabModeDistance;if(!o||o<Al)return;const r=e.particles.quadTree.queryCircle(s,o,c=>this.isEnabled(c));for(const c of r){const l=c.getPosition(),u=ee(l,s);if(u>o)continue;const h=n.modes.grab.links,f=h.opacity,d=f-u*f/o;if(d<=Bl)continue;const m=h.color??((a=c.options.links)==null?void 0:a.color);if(!e.particles.grabLineColor&&m){const g=n.modes.grab.links;e.particles.grabLineColor=gs(m,g.blink,g.consent)}const p=yi(c,void 0,e.particles.grabLineColor);p&&Fl(e,c,p,d,s)}}isEnabled(e){const i=this.container,n=i.interactivity.mouse,s=((e==null?void 0:e.interactivity)??i.actualOptions.interactivity).events;return s.onHover.enable&&!!n.position&&D($l,s.onHover.mode)}loadModeOptions(e,...i){e.grab||(e.grab=new Il);for(const n of i)e.grab.load(n==null?void 0:n.grab)}reset(){}}async function Ul(t,e=!0){await t.addInteractor("externalGrab",i=>Promise.resolve(new ql(i)),e)}const jl="pause";class Hl extends ye{constructor(e){super(e),this.handleClickMode=i=>{if(i!==jl)return;const n=this.container;n.animationStatus?n.pause():n.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}}async function Wl(t,e=!0){await t.addInteractor("externalPause",i=>Promise.resolve(new Hl(i)),e)}class Vl{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(e){if(!e)return;e.default!==void 0&&(this.default=e.default),e.groups!==void 0&&(this.groups=e.groups.map(n=>n)),this.groups.length||(this.default=!0);const i=e.quantity;i!==void 0&&(this.quantity=x(i))}}const Gl="push",Nl=0;class Ql extends ye{constructor(e){super(e),this.handleClickMode=i=>{if(i!==Gl)return;const n=this.container,s=n.actualOptions,o=s.interactivity.modes.push;if(!o)return;const r=y(o.quantity);if(r<=Nl)return;const a=vt([void 0,...o.groups]),c=a!==void 0?n.actualOptions.particles.groups[a]:void 0;n.particles.push(r,n.interactivity.mouse,c,a)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...i){e.push||(e.push=new Vl);for(const n of i)e.push.load(n==null?void 0:n.push)}reset(){}}async function Yl(t,e=!0){await t.addInteractor("externalPush",i=>Promise.resolve(new Ql(i)),e)}class Xl{constructor(){this.quantity=2}load(e){if(!e)return;const i=e.quantity;i!==void 0&&(this.quantity=x(i))}}const Zl="remove";class Jl extends ye{constructor(e){super(e),this.handleClickMode=i=>{const n=this.container,s=n.actualOptions;if(!s.interactivity.modes.remove||i!==Zl)return;const o=y(s.interactivity.modes.remove.quantity);n.particles.removeQuantity(o)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...i){e.remove||(e.remove=new Xl);for(const n of i)e.remove.load(n==null?void 0:n.remove)}reset(){}}async function Kl(t,e=!0){await t.addInteractor("externalRemove",i=>Promise.resolve(new Jl(i)),e)}class Ls{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=Ae.easeOutQuad}load(e){e&&(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.easing!==void 0&&(this.easing=e.easing),e.factor!==void 0&&(this.factor=e.factor),e.speed!==void 0&&(this.speed=e.speed),e.maxSpeed!==void 0&&(this.maxSpeed=e.maxSpeed))}}class eu extends Ls{constructor(){super(),this.selectors=[]}load(e){super.load(e),e&&e.selectors!==void 0&&(this.selectors=e.selectors)}}class tu extends Ls{load(e){super.load(e),e&&(this.divs=V(e.divs,i=>{const n=new eu;return n.load(i),n}))}}const Re="repulse",iu=0,nu=6,su=3,ou=2,ru=0,au=0,cu=1,li=.5;class lu extends ye{constructor(e,i){super(i),this._clickRepulse=()=>{const n=this.container,s=n.actualOptions.interactivity.modes.repulse;if(!s)return;const o=n.repulse??{particles:[]};if(o.finish||(o.count||(o.count=0),o.count++,o.count===n.particles.count&&(o.finish=!0)),o.clicking){const r=n.retina.repulseModeDistance;if(!r||r<iu)return;const a=Math.pow(r/nu,su),c=n.interactivity.mouse.clickPosition;if(c===void 0)return;const l=new W(c.x,c.y,a),u=n.particles.quadTree.query(l,h=>this.isEnabled(h));for(const h of u){const{dx:f,dy:d,distance:m}=Y(c,h.position),p=m**ou,g=s.speed,v=-a*g/p;if(p<=a){o.particles.push(h);const w=F.create(f,d);w.length=v,h.velocity.setTo(w)}}}else if(o.clicking===!1){for(const r of o.particles)r.velocity.setTo(r.initialVelocity);o.particles=[]}},this._hoverRepulse=()=>{const n=this.container,s=n.interactivity.mouse.position,o=n.retina.repulseModeDistance;!o||o<ru||!s||this._processRepulse(s,o,new W(s.x,s.y,o))},this._processRepulse=(n,s,o,r)=>{const a=this.container,c=a.particles.quadTree.query(o,g=>this.isEnabled(g)),l=a.actualOptions.interactivity.modes.repulse;if(!l)return;const{easing:u,speed:h,factor:f,maxSpeed:d}=l,m=ss(u),p=((r==null?void 0:r.speed)??h)*f;for(const g of c){const{dx:v,dy:w,distance:k}=Y(g.position,n),b=se(m(cu-k/s)*p,au,d),P=F.create(k?v/k*b:p,k?w/k*b:p);g.position.addTo(P)}},this._singleSelectorRepulse=(n,s)=>{const o=this.container,r=o.actualOptions.interactivity.modes.repulse;if(!r)return;const a=document.querySelectorAll(n);a.length&&a.forEach(c=>{const l=c,u=o.retina.pixelRatio,h={x:(l.offsetLeft+l.offsetWidth*li)*u,y:(l.offsetTop+l.offsetHeight*li)*u},f=l.offsetWidth*li*u,d=s.type===st.circle?new W(h.x,h.y,f):new he(l.offsetLeft*u,l.offsetTop*u,l.offsetWidth*u,l.offsetHeight*u),m=r.divs,p=cs(m,l);this._processRepulse(h,f,d,p)})},this._engine=e,i.repulse||(i.repulse={particles:[]}),this.handleClickMode=n=>{const s=this.container.actualOptions,o=s.interactivity.modes.repulse;if(!o||n!==Re)return;i.repulse||(i.repulse={particles:[]});const r=i.repulse;r.clicking=!0,r.count=0;for(const a of i.repulse.particles)this.isEnabled(a)&&a.velocity.setTo(a.initialVelocity);r.particles=[],r.finish=!1,setTimeout(()=>{i.destroyed||(r.clicking=!1)},o.duration*E)}}clear(){}init(){const e=this.container,i=e.actualOptions.interactivity.modes.repulse;i&&(e.retina.repulseModeDistance=i.distance*e.retina.pixelRatio)}interact(){const e=this.container,i=e.actualOptions,n=e.interactivity.status===Be,s=i.interactivity.events,o=s.onHover,r=o.enable,a=o.mode,c=s.onClick,l=c.enable,u=c.mode,h=s.onDiv;n&&r&&D(Re,a)?this._hoverRepulse():l&&D(Re,u)?this._clickRepulse():Oi(Re,h,(f,d)=>this._singleSelectorRepulse(f,d))}isEnabled(e){const i=this.container,n=i.actualOptions,s=i.interactivity.mouse,o=((e==null?void 0:e.interactivity)??n.interactivity).events,r=o.onDiv,a=o.onHover,c=o.onClick,l=zi(Re,r);if(!(l||a.enable&&s.position||c.enable&&s.clickPosition))return!1;const u=a.mode,h=c.mode;return D(Re,u)||D(Re,h)||l}loadModeOptions(e,...i){e.repulse||(e.repulse=new tu);for(const n of i)e.repulse.load(n==null?void 0:n.repulse)}reset(){}}async function uu(t,e=!0){await t.addInteractor("externalRepulse",i=>Promise.resolve(new lu(t,i)),e)}class hu{constructor(){this.factor=3,this.radius=200}load(e){e&&(e.factor!==void 0&&(this.factor=e.factor),e.radius!==void 0&&(this.radius=e.radius))}}const fu="slow",du=0;class pu extends ye{constructor(e){super(e)}clear(e,i,n){e.slow.inRange&&!n||(e.slow.factor=1)}init(){const e=this.container,i=e.actualOptions.interactivity.modes.slow;i&&(e.retina.slowModeRadius=i.radius*e.retina.pixelRatio)}interact(){}isEnabled(e){const i=this.container,n=i.interactivity.mouse,s=((e==null?void 0:e.interactivity)??i.actualOptions.interactivity).events;return s.onHover.enable&&!!n.position&&D(fu,s.onHover.mode)}loadModeOptions(e,...i){e.slow||(e.slow=new hu);for(const n of i)e.slow.load(n==null?void 0:n.slow)}reset(e){e.slow.inRange=!1;const i=this.container,n=i.actualOptions,s=i.interactivity.mouse.position,o=i.retina.slowModeRadius,r=n.interactivity.modes.slow;if(!r||!o||o<du||!s)return;const a=e.getPosition(),c=ee(s,a),l=c/o,u=r.factor,{slow:h}=e;c>o||(h.inRange=!0,h.factor=l/u)}}async function mu(t,e=!0){await t.addInteractor("externalSlow",i=>Promise.resolve(new pu(i)),e)}const yu=0,gu=1,vu=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;function bu(t,e,i){const{svgData:n}=t;if(!n)return"";const s=mt(e,i);if(n.includes("fill"))return n.replace(vu,()=>s);const o=n.indexOf(">");return`${n.substring(yu,o)} fill="${s}"${n.substring(o)}`}async function Qt(t){return new Promise(e=>{t.loading=!0;const i=new Image;t.element=i,i.addEventListener("load",()=>{t.loading=!1,e()}),i.addEventListener("error",()=>{t.element=void 0,t.error=!0,t.loading=!1,Ue().error(`${ne} loading image: ${t.source}`),e()}),i.src=t.source})}async function wu(t){if(t.type!=="svg"){await Qt(t);return}t.loading=!0;const e=await fetch(t.source);e.ok?t.svgData=await e.text():(Ue().error(`${ne} Image not found`),t.error=!0),t.loading=!1}function xu(t,e,i,n){var r;const s=bu(t,i,((r=n.opacity)==null?void 0:r.value)??gu),o={color:i,gif:e.gif,data:{...t,svgData:s},loaded:!1,ratio:e.width/e.height,replaceColor:e.replaceColor,source:e.src};return new Promise(a=>{const c=new Blob([s],{type:"image/svg+xml"}),l=URL||window.URL||window.webkitURL||window,u=l.createObjectURL(c),h=new Image;h.addEventListener("load",()=>{o.loaded=!0,o.element=h,a(o),l.revokeObjectURL(u)});const f=async()=>{l.revokeObjectURL(u);const d={...t,error:!1,loading:!0};await Qt(d),o.loaded=!0,o.element=d.element,a(o)};h.addEventListener("error",()=>void f()),h.src=u})}const ui=[0,4,2,1],Mn=[8,8,4,2];class _u{constructor(e){this.pos=0,this.data=new Uint8ClampedArray(e)}getString(e){const i=this.data.slice(this.pos,this.pos+e);return this.pos+=i.length,i.reduce((n,s)=>n+String.fromCharCode(s),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let e="",i=0;const n=0,s=0;do{i=this.data[this.pos++];for(let o=i;--o>=n;e+=String.fromCharCode(this.data[this.pos++]));}while(i!==s);return e}readSubBlocksBin(){let e=this.data[this.pos],i=0;const n=0,s=1;for(let r=0;e!==n;r+=e+s,e=this.data[this.pos+r])i+=e;const o=new Uint8Array(i);e=this.data[this.pos++];for(let r=0;e!==n;e=this.data[this.pos++])for(let a=e;--a>=n;o[r++]=this.data[this.pos++]);return o}skipSubBlocks(){for(const e=1,i=0;this.data[this.pos]!==i;this.pos+=this.data[this.pos]+e);this.pos++}}var oe;(function(t){t[t.Replace=0]="Replace",t[t.Combine=1]="Combine",t[t.RestoreBackground=2]="RestoreBackground",t[t.RestorePrevious=3]="RestorePrevious",t[t.UndefinedA=4]="UndefinedA",t[t.UndefinedB=5]="UndefinedB",t[t.UndefinedC=6]="UndefinedC",t[t.UndefinedD=7]="UndefinedD"})(oe||(oe={}));var ge;(function(t){t[t.Extension=33]="Extension",t[t.ApplicationExtension=255]="ApplicationExtension",t[t.GraphicsControlExtension=249]="GraphicsControlExtension",t[t.PlainTextExtension=1]="PlainTextExtension",t[t.CommentExtension=254]="CommentExtension",t[t.Image=44]="Image",t[t.EndOfFile=59]="EndOfFile"})(ge||(ge={}));const Z={x:0,y:0},ku=0,Sn=.5,Cu=0,Rn=0,wi=0;function Fs(t,e){const i=[];for(let n=0;n<e;n++)i.push({r:t.data[t.pos],g:t.data[t.pos+1],b:t.data[t.pos+2]}),t.pos+=3;return i}function Pu(t,e,i,n){switch(t.nextByte()){case ge.GraphicsControlExtension:{const s=e.frames[i(!1)];t.pos++;const o=t.nextByte();s.GCreserved=(o&224)>>>5,s.disposalMethod=(o&28)>>>2,s.userInputDelayFlag=(o&2)===2;const r=(o&1)===1;s.delayTime=t.nextTwoBytes()*10;const a=t.nextByte();r&&n(a),t.pos++;break}case ge.ApplicationExtension:{t.pos++;const s={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(s);break}case ge.CommentExtension:{e.comments.push([i(!1),t.readSubBlocks()]);break}case ge.PlainTextExtension:{if(e.globalColorTable.length===0)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[i(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break}default:t.skipSubBlocks();break}}async function zu(t,e,i,n,s,o){const r=e.frames[n(!0)];r.left=t.nextTwoBytes(),r.top=t.nextTwoBytes(),r.width=t.nextTwoBytes(),r.height=t.nextTwoBytes();const a=t.nextByte(),c=(a&128)===128,l=(a&64)===64;r.sortFlag=(a&32)===32,r.reserved=(a&24)>>>3;const u=1<<(a&7)+1;c&&(r.localColorTable=Fs(t,u));const h=v=>{const{r:w,g:k,b}=(c?r.localColorTable:e.globalColorTable)[v];return v!==s(null)?{r:w,g:k,b,a:255}:{r:w,g:k,b,a:i?~~((w+k+b)/3):0}},f=(()=>{try{return new ImageData(r.width,r.height,{colorSpace:"srgb"})}catch(v){if(v instanceof DOMException&&v.name==="IndexSizeError")return null;throw v}})();if(f==null)throw new EvalError("GIF frame size is to large");const d=t.nextByte(),m=t.readSubBlocksBin(),p=1<<d,g=(v,w)=>{const k=v>>>3,b=v&7;return(m[k]+(m[k+1]<<8)+(m[k+2]<<16)&(1<<w)-1<<b)>>>b};if(l){for(let v=0,w=d+1,k=0,b=[[0]],P=0;P<4;P++){if(ui[P]<r.height){let _=0,A=0,G=!1;for(;!G;){const L=v;if(v=g(k,w),k+=w+1,v===p){w=d+1,b.length=p+2;for(let U=0;U<b.length;U++)b[U]=U<p?[U]:[]}else{v>=b.length?b.push(b[L].concat(b[L][0])):L!==p&&b.push(b[L].concat(b[v][0]));for(const U of b[v]){const{r:j,g:ze,b:ct,a:M}=h(U);f.data.set([j,ze,ct,M],ui[P]*r.width+Mn[P]*A+_%(r.width*4)),_+=4}b.length===1<<w&&w<12&&w++}_===r.width*4*(A+1)&&(A++,ui[P]+Mn[P]*A>=r.height&&(G=!0))}}o==null||o(t.pos/(t.data.length-1),n(!1)+1,f,{x:r.left,y:r.top},{width:e.width,height:e.height})}r.image=f,r.bitmap=await createImageBitmap(f)}else{let v=0,w=d+1,k=0,b=-4,P=!1;const _=[[0]];for(;!P;){const A=v;if(v=g(k,w),k+=w,v===p){w=d+1,_.length=p+2;for(let G=0;G<_.length;G++)_[G]=G<p?[G]:[]}else{if(v===p+1){P=!0;break}v>=_.length?_.push(_[A].concat(_[A][0])):A!==p&&_.push(_[A].concat(_[v][0]));for(const G of _[v]){const{r:L,g:U,b:j,a:ze}=h(G);f.data.set([L,U,j,ze],b+=4)}_.length>=1<<w&&w<12&&w++}}r.image=f,r.bitmap=await createImageBitmap(f),o==null||o((t.pos+1)/t.data.length,n(!1)+1,r.image,{x:r.left,y:r.top},{width:e.width,height:e.height})}}async function Ou(t,e,i,n,s,o){switch(t.nextByte()){case ge.EndOfFile:return!0;case ge.Image:await zu(t,e,i,n,s,o);break;case ge.Extension:Pu(t,e,n,s);break;default:throw new EvalError("undefined block found")}return!1}function Mu(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}async function Su(t,e,i){i||(i=!1);const n=await fetch(t);if(!n.ok&&n.status===404)throw new EvalError("file not found");const s=await n.arrayBuffer(),o={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},r=new _u(new Uint8ClampedArray(s));if(r.getString(6)!=="GIF89a")throw new Error("not a supported GIF file");o.width=r.nextTwoBytes(),o.height=r.nextTwoBytes();const a=r.nextByte(),c=(a&128)===128;o.colorRes=(a&112)>>>4,o.sortFlag=(a&8)===8;const l=1<<(a&7)+1,u=r.nextByte();o.pixelAspectRatio=r.nextByte(),o.pixelAspectRatio!==0&&(o.pixelAspectRatio=(o.pixelAspectRatio+15)/64),c&&(o.globalColorTable=Fs(r,l));const h=(()=>{try{return new ImageData(o.width,o.height,{colorSpace:"srgb"})}catch(b){if(b instanceof DOMException&&b.name==="IndexSizeError")return null;throw b}})();if(h==null)throw new Error("GIF frame size is to large");const{r:f,g:d,b:m}=o.globalColorTable[u];h.data.set(c?[f,d,m,255]:[0,0,0,0]);for(let b=4;b<h.data.length;b*=2)h.data.copyWithin(b,0,b);o.backgroundImage=h;let p=-1,g=!0,v=-1;const w=b=>(b&&(g=!0),p),k=b=>(b!=null&&(v=b),v);try{do g&&(o.frames.push({left:0,top:0,width:0,height:0,disposalMethod:oe.Replace,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),p++,v=-1,g=!1);while(!await Ou(r,o,i,w,k,e));o.frames.length--;for(const b of o.frames){if(b.userInputDelayFlag&&b.delayTime===0){o.totalTime=1/0;break}o.totalTime+=b.delayTime}return o}catch(b){throw b instanceof EvalError?new Error(`error while parsing frame ${p} "${b.message}"`):b}}function Ru(t){const{context:e,radius:i,particle:n,delta:s}=t,o=n.image;if(!(o!=null&&o.gifData)||!o.gif)return;const r=new OffscreenCanvas(o.gifData.width,o.gifData.height),a=r.getContext("2d");if(!a)throw new Error("could not create offscreen canvas context");a.imageSmoothingQuality="low",a.imageSmoothingEnabled=!1,a.clearRect(Z.x,Z.y,r.width,r.height),n.gifLoopCount===void 0&&(n.gifLoopCount=o.gifLoopCount??wi);let c=n.gifFrame??ku;const l={x:-o.gifData.width*Sn,y:-o.gifData.height*Sn},u=o.gifData.frames[c];if(n.gifTime===void 0&&(n.gifTime=Cu),!!u.bitmap){switch(e.scale(i/o.gifData.width,i/o.gifData.height),u.disposalMethod){case oe.UndefinedA:case oe.UndefinedB:case oe.UndefinedC:case oe.UndefinedD:case oe.Replace:a.drawImage(u.bitmap,u.left,u.top),e.drawImage(r,l.x,l.y),a.clearRect(Z.x,Z.y,r.width,r.height);break;case oe.Combine:a.drawImage(u.bitmap,u.left,u.top),e.drawImage(r,l.x,l.y);break;case oe.RestoreBackground:a.drawImage(u.bitmap,u.left,u.top),e.drawImage(r,l.x,l.y),a.clearRect(Z.x,Z.y,r.width,r.height),o.gifData.globalColorTable.length?a.putImageData(o.gifData.backgroundImage,l.x,l.y):a.putImageData(o.gifData.frames[Rn].image,l.x+u.left,l.y+u.top);break;case oe.RestorePrevious:{const h=a.getImageData(Z.x,Z.y,r.width,r.height);a.drawImage(u.bitmap,u.left,u.top),e.drawImage(r,l.x,l.y),a.clearRect(Z.x,Z.y,r.width,r.height),a.putImageData(h,Z.x,Z.y)}break}if(n.gifTime+=s.value,n.gifTime>u.delayTime){if(n.gifTime-=u.delayTime,++c>=o.gifData.frames.length){if(--n.gifLoopCount<=wi)return;c=Rn,a.clearRect(Z.x,Z.y,r.width,r.height)}n.gifFrame=c}e.scale(o.gifData.width/i,o.gifData.height/i)}}async function Eu(t){if(t.type!=="gif"){await Qt(t);return}t.loading=!0;try{t.gifData=await Su(t.source),t.gifLoopCount=Mu(t.gifData)??wi,t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}const Du=2,Iu=1,Tu=12,Lu=1;class Fu{constructor(e){this.validTypes=["image","images"],this.loadImageShape=async i=>{if(!this._engine.loadImage)throw new Error(`${ne} image shape not initialized`);await this._engine.loadImage({gif:i.gif,name:i.name,replaceColor:i.replaceColor??!1,src:i.src})},this._engine=e}addImage(e){this._engine.images||(this._engine.images=[]),this._engine.images.push(e)}draw(e){const{context:i,radius:n,particle:s,opacity:o}=e,r=s.image,a=r==null?void 0:r.element;if(r){if(i.globalAlpha=o,r.gif&&r.gifData)Ru(e);else if(a){const c=r.ratio,l={x:-n,y:-n},u=n*Du;i.drawImage(a,l.x,l.y,u,u/c)}i.globalAlpha=Iu}}getSidesCount(){return Tu}async init(e){const i=e.actualOptions;if(!(!i.preload||!this._engine.loadImage))for(const n of i.preload)await this._engine.loadImage(n)}loadShape(e){if(e.shape!=="image"&&e.shape!=="images")return;this._engine.images||(this._engine.images=[]);const i=e.shapeData;if(!i)return;this._engine.images.find(s=>s.name===i.name||s.source===i.src)||this.loadImageShape(i).then(()=>{this.loadShape(e)})}particleInit(e,i){if(i.shape!=="image"&&i.shape!=="images")return;this._engine.images||(this._engine.images=[]);const n=this._engine.images,s=i.shapeData;if(!s)return;const o=i.getFillColor(),r=n.find(c=>c.name===s.name||c.source===s.src);if(!r)return;const a=s.replaceColor??r.replaceColor;if(r.loading){setTimeout(()=>{this.particleInit(e,i)});return}(async()=>{let c;r.svgData&&o?c=await xu(r,s,o,i):c={color:o,data:r,element:r.element,gif:r.gif,gifData:r.gifData,gifLoopCount:r.gifLoopCount,loaded:!0,ratio:s.width&&s.height?s.width/s.height:r.ratio??Lu,replaceColor:a,source:s.src},c.ratio||(c.ratio=1);const l=s.fill??i.shapeFill,u=s.close??i.shapeClose,h={image:c,fill:l,close:u};i.image=h.image,i.shapeFill=h.fill,i.shapeClose=h.close})()}}class $u{constructor(){this.src="",this.gif=!1}load(e){e&&(e.gif!==void 0&&(this.gif=e.gif),e.height!==void 0&&(this.height=e.height),e.name!==void 0&&(this.name=e.name),e.replaceColor!==void 0&&(this.replaceColor=e.replaceColor),e.src!==void 0&&(this.src=e.src),e.width!==void 0&&(this.width=e.width))}}class Au{constructor(e){this.id="imagePreloader",this._engine=e}async getPlugin(){return await Promise.resolve(),{}}loadOptions(e,i){if(!(i!=null&&i.preload))return;e.preload||(e.preload=[]);const n=e.preload;for(const s of i.preload){const o=n.find(r=>r.name===s.name||r.src===s.src);if(o)o.load(s);else{const r=new $u;r.load(s),n.push(r)}}}needsPlugin(){return!0}}const Bu=3;function qu(t){t.loadImage||(t.loadImage=async e=>{if(!e.name&&!e.src)throw new Error(`${ne} no image source provided`);if(t.images||(t.images=[]),!t.images.find(i=>i.name===e.name||i.source===e.src))try{const i={gif:e.gif??!1,name:e.name??e.src,source:e.src,type:e.src.substring(e.src.length-Bu),error:!1,loading:!0,replaceColor:e.replaceColor,ratio:e.width&&e.height?e.width/e.height:void 0};t.images.push(i);let n;e.gif?n=Eu:n=e.replaceColor?wu:Qt,await n(i)}catch{throw new Error(`${ne} ${e.name??e.src} not found`)}})}async function Uu(t,e=!0){qu(t);const i=new Au(t);await t.addPlugin(i,e),await t.addShape(new Fu(t),e)}class ju extends me{constructor(){super(),this.sync=!1}load(e){e&&(super.load(e),e.sync!==void 0&&(this.sync=e.sync))}}class Hu extends me{constructor(){super(),this.sync=!1}load(e){e&&(super.load(e),e.sync!==void 0&&(this.sync=e.sync))}}class Wu{constructor(){this.count=0,this.delay=new ju,this.duration=new Hu}load(e){e&&(e.count!==void 0&&(this.count=e.count),this.delay.load(e.delay),this.duration.load(e.duration))}}const Ve=0,Vu=-1,En=0,Dn=0;function Gu(t,e,i){if(!t.life)return;const n=t.life;let s=!1;if(t.spawning)if(n.delayTime+=e.value,n.delayTime>=t.life.delay)s=!0,t.spawning=!1,n.delayTime=Ve,n.time=Ve;else return;if(n.duration===Vu||t.spawning||(s?n.time=Ve:n.time+=e.value,n.time<n.duration))return;if(n.time=Ve,t.life.count>En&&t.life.count--,t.life.count===En){t.destroy();return}const o=x(Dn,i.width),r=x(Dn,i.width);t.position.x=q(o),t.position.y=q(r),t.spawning=!0,n.delayTime=Ve,n.time=Ve,t.reset();const a=t.options.life;a&&(n.delay=y(a.delay.value)*E,n.duration=y(a.duration.value)*E)}const Ee=0,In=1,Tn=-1;class Nu{constructor(e){this.container=e}init(e){const i=this.container,n=e.options,s=n.life;s&&(e.life={delay:i.retina.reduceFactor?y(s.delay.value)*(s.delay.sync?In:C())/i.retina.reduceFactor*E:Ee,delayTime:Ee,duration:i.retina.reduceFactor?y(s.duration.value)*(s.duration.sync?In:C())/i.retina.reduceFactor*E:Ee,time:Ee,count:s.count},e.life.duration<=Ee&&(e.life.duration=Tn),e.life.count<=Ee&&(e.life.count=Tn),e.life&&(e.spawning=e.life.delay>Ee))}isEnabled(e){return!e.destroyed}loadOptions(e,...i){e.life||(e.life=new Wu);for(const n of i)e.life.load(n==null?void 0:n.life)}update(e,i){!this.isEnabled(e)||!e.life||Gu(e,i,this.container.canvas.size)}}async function Qu(t,e=!0){await t.addParticleUpdater("life",async i=>Promise.resolve(new Nu(i)),e)}function Yu(t){const{context:e,particle:i,radius:n}=t,s=i.shapeData,o=0;e.moveTo(-n,o),e.lineTo(n,o),e.lineCap=(s==null?void 0:s.cap)??"butt"}const Xu=1;class Zu{constructor(){this.validTypes=["line"]}draw(e){Yu(e)}getSidesCount(){return Xu}}async function Ju(t,e=!0){await t.addShape(new Zu,e)}const Ln=.5;class Ku{init(){}isEnabled(e){return!je()&&!e.destroyed&&e.container.actualOptions.interactivity.events.onHover.parallax.enable}move(e){const i=e.container,n=i.actualOptions,s=n.interactivity.events.onHover.parallax;if(je()||!s.enable)return;const o=s.force,r=i.interactivity.mouse.position;if(!r)return;const a=i.canvas.size,c={x:a.width*Ln,y:a.height*Ln},l=s.smooth,u=e.getRadius()/o,h={x:(r.x-c.x)*u,y:(r.y-c.y)*u},{offset:f}=e;f.x+=(h.x-f.x)/l,f.y+=(h.y-f.y)/l}}async function eh(t,e=!0){await t.addMover("parallax",()=>Promise.resolve(new Ku),e)}const Fn=1e3,th=1;class ih extends Di{constructor(e){super(e)}clear(){}init(){}interact(e){const i=this.container;e.attractDistance===void 0&&(e.attractDistance=y(e.options.move.attract.distance)*i.retina.pixelRatio);const n=e.attractDistance,s=e.getPosition(),o=i.particles.quadTree.queryCircle(s,n);for(const r of o){if(e===r||!r.options.move.attract.enable||r.destroyed||r.spawning)continue;const a=r.getPosition(),{dx:c,dy:l}=Y(s,a),u=e.options.move.attract.rotate,h=c/(u.x*Fn),f=l/(u.y*Fn),d=r.size.value/e.size.value,m=th/d;e.velocity.x-=h*d,e.velocity.y-=f*d,r.velocity.x+=h*m,r.velocity.y+=f*m}}isEnabled(e){return e.options.move.attract.enable}reset(){}}async function nh(t,e=!0){await t.addInteractor("particlesAttract",i=>Promise.resolve(new ih(i)),e)}const sh=.5,oh=10,rh=0;function $n(t,e,i,n,s,o){const r=se(t.options.collisions.absorb.speed*s.factor/oh,rh,n);t.size.value+=r*sh,i.size.value-=r,n<=o&&(i.size.value=0,i.destroy())}function ah(t,e,i,n){const s=t.getRadius(),o=e.getRadius();s===void 0&&o!==void 0?t.destroy():s!==void 0&&o===void 0?e.destroy():s!==void 0&&o!==void 0&&(s>=o?$n(t,s,e,o,i,n):$n(e,o,t,s,i,n))}const An=t=>{t.collisionMaxSpeed===void 0&&(t.collisionMaxSpeed=y(t.options.collisions.maxSpeed)),t.velocity.length>t.collisionMaxSpeed&&(t.velocity.length=t.collisionMaxSpeed)};function $s(t,e){ls(mi(t),mi(e)),An(t),An(e)}function ch(t,e){!t.unbreakable&&!e.unbreakable&&$s(t,e),t.getRadius()===void 0&&e.getRadius()!==void 0?t.destroy():t.getRadius()!==void 0&&e.getRadius()===void 0?e.destroy():t.getRadius()!==void 0&&e.getRadius()!==void 0&&(t.getRadius()>=e.getRadius()?e:t).destroy()}function lh(t,e,i,n){switch(t.options.collisions.mode){case Ke.absorb:{ah(t,e,i,n);break}case Ke.bounce:{$s(t,e);break}case Ke.destroy:{ch(t,e);break}}}const uh=2;class hh extends Di{constructor(e){super(e)}clear(){}init(){}interact(e,i){if(e.destroyed||e.spawning)return;const n=this.container,s=e.getPosition(),o=e.getRadius(),r=n.particles.quadTree.queryCircle(s,o*uh);for(const a of r){if(e===a||!a.options.collisions.enable||e.options.collisions.mode!==a.options.collisions.mode||a.destroyed||a.spawning)continue;const c=a.getPosition(),l=a.getRadius();if(Math.abs(Math.round(s.z)-Math.round(c.z))>o+l)continue;const u=ee(s,c),h=o+l;u>h||lh(e,a,i,n.retina.pixelRatio)}}isEnabled(e){return e.options.collisions.enable}reset(){}}async function fh(t,e=!0){await t.addInteractor("particlesCollisions",i=>Promise.resolve(new hh(i)),e)}const hi=2;class dh extends W{constructor(e,i,n,s){super(e,i,n),this.canvasSize=s,this.canvasSize={...s}}contains(e){const{width:i,height:n}=this.canvasSize,{x:s,y:o}=e;return super.contains(e)||super.contains({x:s-i,y:o})||super.contains({x:s-i,y:o-n})||super.contains({x:s,y:o-n})}intersects(e){if(super.intersects(e))return!0;const i=e,n=e,s={x:e.position.x-this.canvasSize.width,y:e.position.y-this.canvasSize.height};if(n.radius!==void 0){const o=new W(s.x,s.y,n.radius*hi);return super.intersects(o)}else if(i.size!==void 0){const o=new he(s.x,s.y,i.size.width*hi,i.size.height*hi);return super.intersects(o)}return!1}}class ph{constructor(){this.blur=5,this.color=new $,this.color.value="#000",this.enable=!1}load(e){e&&(e.blur!==void 0&&(this.blur=e.blur),this.color=$.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable))}}class mh{constructor(){this.enable=!1,this.frequency=1}load(e){e&&(e.color!==void 0&&(this.color=$.create(this.color,e.color)),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity))}}class yh{constructor(){this.blink=!1,this.color=new $,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new ph,this.triangles=new mh,this.width=1,this.warp=!1}load(e){e&&(e.id!==void 0&&(this.id=e.id),e.blink!==void 0&&(this.blink=e.blink),this.color=$.create(this.color,e.color),e.consent!==void 0&&(this.consent=e.consent),e.distance!==void 0&&(this.distance=e.distance),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),e.width!==void 0&&(this.width=e.width),e.warp!==void 0&&(this.warp=e.warp))}}const Bn=2,gh=1,Et={x:0,y:0},vh=0;function bh(t,e,i,n,s){const{dx:o,dy:r,distance:a}=Y(t,e);if(!s||a<=i)return a;const c={x:Math.abs(o),y:Math.abs(r)},l={x:Math.min(c.x,n.width-c.x),y:Math.min(c.y,n.height-c.y)};return Math.sqrt(l.x**Bn+l.y**Bn)}class wh extends Di{constructor(e){super(e),this._setColor=i=>{if(!i.options.links)return;const n=this.linkContainer,s=i.options.links;let o=s.id===void 0?n.particles.linksColor:n.particles.linksColors.get(s.id);if(o)return;const r=s.color;o=gs(r,s.blink,s.consent),s.id===void 0?n.particles.linksColor=o:n.particles.linksColors.set(s.id,o)},this.linkContainer=e}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}interact(e){if(!e.options.links)return;e.links=[];const i=e.getPosition(),n=this.container,s=n.canvas.size;if(i.x<Et.x||i.y<Et.y||i.x>s.width||i.y>s.height)return;const o=e.options.links,r=o.opacity,a=e.retina.linksDistance??vh,c=o.warp;let l;c?l=new dh(i.x,i.y,a,s):l=new W(i.x,i.y,a);const u=n.particles.quadTree.query(l);for(const h of u){const f=h.options.links;if(e===h||!(f!=null&&f.enable)||o.id!==f.id||h.spawning||h.destroyed||!h.links||e.links.some(g=>g.destination===h)||h.links.some(g=>g.destination===e))continue;const d=h.getPosition();if(d.x<Et.x||d.y<Et.y||d.x>s.width||d.y>s.height)continue;const m=bh(i,d,a,s,c&&f.warp);if(m>a)continue;const p=(gh-m/a)*r;this._setColor(e),e.links.push({destination:h,opacity:p})}}isEnabled(e){var i;return!!((i=e.options.links)!=null&&i.enable)}loadParticlesOptions(e,...i){e.links||(e.links=new yh);for(const n of i)e.links.load(n==null?void 0:n.links)}reset(){}}async function xh(t,e=!0){await t.addInteractor("particlesLinks",async i=>Promise.resolve(new wh(i)),e)}function _h(t,e,i,n){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.lineTo(n.x,n.y),t.closePath()}function kh(t){let e=!1;const{begin:i,end:n,maxDistance:s,context:o,canvasSize:r,width:a,backgroundMask:c,colorLine:l,opacity:u,links:h}=t;if(ee(i,n)<=s)pt(o,i,n),e=!0;else if(h.warp){let d,m;const p={x:n.x-r.width,y:n.y},g=Y(i,p);if(g.distance<=s){const v=i.y-g.dy/g.dx*i.x;d={x:0,y:v},m={x:r.width,y:v}}else{const v={x:n.x,y:n.y-r.height},w=Y(i,v);if(w.distance<=s){const b=-(i.y-w.dy/w.dx*i.x)/(w.dy/w.dx);d={x:b,y:0},m={x:b,y:r.height}}else{const k={x:n.x-r.width,y:n.y-r.height},b=Y(i,k);if(b.distance<=s){const P=i.y-b.dy/b.dx*i.x;d={x:-P/(b.dy/b.dx),y:P},m={x:d.x+r.width,y:d.y+r.height}}}}d&&m&&(pt(o,i,d),pt(o,n,m),e=!0)}if(!e)return;o.lineWidth=a,c.enable&&(o.globalCompositeOperation=c.composite),o.strokeStyle=be(l,u);const{shadow:f}=h;if(f.enable){const d=ce(f.color);d&&(o.shadowBlur=f.blur,o.shadowColor=be(d))}o.stroke()}function Ch(t){const{context:e,pos1:i,pos2:n,pos3:s,backgroundMask:o,colorTriangle:r,opacityTriangle:a}=t;_h(e,i,n,s),o.enable&&(e.globalCompositeOperation=o.composite),e.fillStyle=be(r,a),e.fill()}function Ph(t){return t.sort((e,i)=>e-i),t.join("_")}function qn(t,e){const i=Ph(t.map(s=>s.id));let n=e.get(i);return n===void 0&&(n=C(),e.set(i,n)),n}const Un=0,fi=0,jn=0,zh=.5,Oh=1;class Mh{constructor(e){this.container=e,this._drawLinkLine=(i,n)=>{const s=i.options.links;if(!(s!=null&&s.enable))return;const o=this.container,r=o.actualOptions,a=n.destination,c=i.getPosition(),l=a.getPosition();let u=n.opacity;o.canvas.draw(h=>{var v;let f;const d=(v=i.options.twinkle)==null?void 0:v.lines;if(d!=null&&d.enable){const w=d.frequency,k=ce(d.color);C()<w&&k&&(f=k,u=y(d.opacity))}if(!f){const w=s.id!==void 0?o.particles.linksColors.get(s.id):o.particles.linksColor;f=yi(i,a,w)}if(!f)return;const m=i.retina.linksWidth??fi,p=i.retina.linksDistance??jn,{backgroundMask:g}=r;kh({context:h,width:m,begin:c,end:l,maxDistance:p,canvasSize:o.canvas.size,links:s,backgroundMask:g,colorLine:f,opacity:u})})},this._drawLinkTriangle=(i,n,s)=>{const o=i.options.links;if(!(o!=null&&o.enable))return;const r=o.triangles;if(!r.enable)return;const a=this.container,c=a.actualOptions,l=n.destination,u=s.destination,h=r.opacity??(n.opacity+s.opacity)*zh;h<=Un||a.canvas.draw(f=>{const d=i.getPosition(),m=l.getPosition(),p=u.getPosition(),g=i.retina.linksDistance??jn;if(ee(d,m)>g||ee(p,m)>g||ee(p,d)>g)return;let v=ce(r.color);if(!v){const w=o.id!==void 0?a.particles.linksColors.get(o.id):a.particles.linksColor;v=yi(i,l,w)}v&&Ch({context:f,pos1:d,pos2:m,pos3:p,backgroundMask:c.backgroundMask,colorTriangle:v,opacityTriangle:h})})},this._drawTriangles=(i,n,s,o)=>{var c,l,u;const r=s.destination;if(!((c=i.links)!=null&&c.triangles.enable&&((l=r.options.links)!=null&&l.triangles.enable)))return;const a=(u=r.links)==null?void 0:u.filter(h=>{const f=this._getLinkFrequency(r,h.destination),d=0;return r.options.links&&f<=r.options.links.frequency&&o.findIndex(m=>m.destination===h.destination)>=d});if(a!=null&&a.length)for(const h of a){const f=h.destination;this._getTriangleFrequency(n,r,f)>i.links.triangles.frequency||this._drawLinkTriangle(n,s,h)}},this._getLinkFrequency=(i,n)=>qn([i,n],this._freqs.links),this._getTriangleFrequency=(i,n,s)=>qn([i,n,s],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(e,i){const{links:n,options:s}=i;if(!(n!=null&&n.length))return;const o=n.filter(r=>s.links&&(s.links.frequency>=Oh||this._getLinkFrequency(i,r.destination)<=s.links.frequency));for(const r of o)this._drawTriangles(s,i,r,o),r.opacity>Un&&(i.retina.linksWidth??fi)>fi&&this._drawLinkLine(i,r)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(e){if(e.links=[],!e.options.links)return;const i=this.container.retina.pixelRatio,{retina:n}=e,{distance:s,width:o}=e.options.links;n.linksDistance=s*i,n.linksWidth=o*i}particleDestroyed(e){e.links=[]}}class Sh{constructor(){this.id="links"}getPlugin(e){return Promise.resolve(new Mh(e))}loadOptions(){}needsPlugin(){return!0}}async function Rh(t,e=!0){const i=new Sh;await t.addPlugin(i,e)}async function Eh(t,e=!0){await xh(t,e),await Rh(t,e)}const Dh=180,Dt={x:0,y:0},Ih=2;function Th(t,e,i){const{context:n}=t,s=i.count.numerator*i.count.denominator,o=i.count.numerator/i.count.denominator,r=Dh*(o-Ih)/o,a=Math.PI-ve(r);if(n){n.beginPath(),n.translate(e.x,e.y),n.moveTo(Dt.x,Dt.y);for(let c=0;c<s;c++)n.lineTo(i.length,Dt.y),n.translate(i.length,Dt.y),n.rotate(a)}}const Lh=5;class As{draw(e){const{particle:i,radius:n}=e,s=this.getCenter(i,n),o=this.getSidesData(i,n);Th(e,s,o)}getSidesCount(e){const i=e.shapeData;return Math.round(y((i==null?void 0:i.sides)??Lh))}}const Hn=3.5,Wn=2.66,Fh=3;class $h extends As{constructor(){super(...arguments),this.validTypes=["polygon"]}getCenter(e,i){return{x:-i/(e.sides/Hn),y:-i/(Wn/Hn)}}getSidesData(e,i){const n=e.sides;return{count:{denominator:1,numerator:n},length:i*Wn/(n/Fh)}}}const Ah=1.66,Bh=3,qh=2;class Uh extends As{constructor(){super(...arguments),this.validTypes=["triangle"]}getCenter(e,i){return{x:-i,y:i/Ah}}getSidesCount(){return Bh}getSidesData(e,i){const n=i*qh;return{count:{denominator:2,numerator:3},length:n}}}async function jh(t,e=!0){await t.addShape(new $h,e)}async function Hh(t,e=!0){await t.addShape(new Uh,e)}async function Wh(t,e=!0){await jh(t,e),await Hh(t,e)}class Vh{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=x(e.speed)),e.decay!==void 0&&(this.decay=x(e.decay)),e.sync!==void 0&&(this.sync=e.sync))}}class Gh extends me{constructor(){super(),this.animation=new Vh,this.direction=ie.clockwise,this.path=!1,this.value=0}load(e){e&&(super.load(e),e.direction!==void 0&&(this.direction=e.direction),this.animation.load(e.animation),e.path!==void 0&&(this.path=e.path))}}const Bs=2,Nh=Math.PI*Bs,Qh=1,Yh=360;class Xh{constructor(e){this.container=e}init(e){const i=e.options.rotate;if(!i)return;e.rotate={enable:i.animation.enable,value:ve(y(i.value)),min:0,max:Nh},e.pathRotation=i.path;let n=i.direction;switch(n===ie.random&&(n=Math.floor(C()*Bs)>0?ie.counterClockwise:ie.clockwise),n){case ie.counterClockwise:case"counterClockwise":e.rotate.status=R.decreasing;break;case ie.clockwise:e.rotate.status=R.increasing;break}const s=i.animation;s.enable&&(e.rotate.decay=Qh-y(s.decay),e.rotate.velocity=y(s.speed)/Yh*this.container.retina.reduceFactor,s.sync||(e.rotate.velocity*=C())),e.rotation=e.rotate.value}isEnabled(e){const i=e.options.rotate;return i?!e.destroyed&&!e.spawning&&(!!i.value||i.animation.enable||i.path):!1}loadOptions(e,...i){e.rotate||(e.rotate=new Gh);for(const n of i)e.rotate.load(n==null?void 0:n.rotate)}update(e,i){this.isEnabled(e)&&(e.isRotating=!!e.rotate,e.rotate&&(Gt(e,e.rotate,!1,Pe.none,i),e.rotation=e.rotate.value))}}async function Zh(t,e=!0){await t.addParticleUpdater("rotate",i=>Promise.resolve(new Xh(i)),e)}const Jh=2,Kh=Math.sqrt(Jh),ef=2;function tf(t){const{context:e,radius:i}=t,n=i/Kh,s=n*ef;e.rect(-n,-n,s,s)}const nf=4;class sf{constructor(){this.validTypes=["edge","square"]}draw(e){tf(e)}getSidesCount(){return nf}}async function of(t,e=!0){await t.addShape(new sf,e)}const rf=2,Ge={x:0,y:0};function af(t){const{context:e,particle:i,radius:n}=t,s=i.sides,o=i.starInset??rf;e.moveTo(Ge.x,Ge.y-n);for(let r=0;r<s;r++)e.rotate(Math.PI/s),e.lineTo(Ge.x,Ge.y-n*o),e.rotate(Math.PI/s),e.lineTo(Ge.x,Ge.y-n)}const cf=2,lf=5;class uf{constructor(){this.validTypes=["star"]}draw(e){af(e)}getSidesCount(e){const i=e.shapeData;return Math.round(y((i==null?void 0:i.sides)??lf))}particleInit(e,i){const n=i.shapeData;i.starInset=y((n==null?void 0:n.inset)??cf)}}async function hf(t,e=!0){await t.addShape(new uf,e)}const ff=1;class df{constructor(e){this.container=e}init(e){var r;const i=this.container,n=e.options,s=K(n.stroke,e.id,n.reduceDuplicates);e.strokeWidth=y(s.width)*i.retina.pixelRatio,e.strokeOpacity=y(s.opacity??ff),e.strokeAnimation=(r=s.color)==null?void 0:r.animation;const o=He(s.color)??e.getFillColor();o&&(e.strokeColor=vs(o,e.strokeAnimation,i.retina.reduceFactor))}isEnabled(e){const i=e.strokeAnimation,{strokeColor:n}=e;return!e.destroyed&&!e.spawning&&!!i&&((n==null?void 0:n.h.value)!==void 0&&n.h.enable||(n==null?void 0:n.s.value)!==void 0&&n.s.enable||(n==null?void 0:n.l.value)!==void 0&&n.l.enable)}update(e,i){this.isEnabled(e)&&bs(e.strokeColor,i)}}async function pf(t,e=!0){await t.addParticleUpdater("strokeColor",i=>Promise.resolve(new df(i)),e)}async function Rf(t,e=!0){await eh(t,!1),await sl(t,!1),await dl(t,!1),await xl(t,!1),await El(t,!1),await Ul(t,!1),await Wl(t,!1),await Yl(t,!1),await Kl(t,!1),await uu(t,!1),await mu(t,!1),await nh(t,!1),await fh(t,!1),await Eh(t,!1),await Qc(),await Zc(t,!1),await Uu(t,!1),await Ju(t,!1),await Wh(t,!1),await of(t,!1),await hf(t,!1),await Qu(t,!1),await Zh(t,!1),await pf(t,!1),await Nc(t,e)}export{vf as F,gf as R,so as a,bf as b,mf as c,yf as d,kf as e,wf as f,js as g,Cf as h,Pf as i,ho as j,zf as k,_f as l,Of as m,xf as n,Mf as o,Rf as p,Ht as r};
