feffery_utils_components 0.2.0-rc17 → 0.2.0-rc19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESCRIPTION +1 -1
- package/NAMESPACE +1 -0
- package/Project.toml +1 -1
- package/README.md +1 -1
- package/feffery_utils_components/FefferyEventSource.py +82 -0
- package/feffery_utils_components/_imports_.py +2 -0
- package/feffery_utils_components/async-feffery_animated_3d_background_p5.js +1 -1
- package/feffery_utils_components/async-feffery_animated_3d_background_three.js +1 -1
- package/feffery_utils_components/async-feffery_animated_image.js +1 -1
- package/feffery_utils_components/async-feffery_aplayer.js +1 -1
- package/feffery_utils_components/async-feffery_auto_animate.js +1 -1
- package/feffery_utils_components/async-feffery_auto_fit.js +1 -1
- package/feffery_utils_components/async-feffery_burger.js +1 -1
- package/feffery_utils_components/async-feffery_captcha.js +1 -1
- package/feffery_utils_components/async-feffery_color_pickers.js +1 -1
- package/feffery_utils_components/async-feffery_dom2image.js +1 -1
- package/feffery_utils_components/async-feffery_dplayer.js +1 -1
- package/feffery_utils_components/async-feffery_emoji_picker.js +1 -1
- package/feffery_utils_components/async-feffery_excel_preview.js +1 -1
- package/feffery_utils_components/async-feffery_extra_spinner.js +1 -1
- package/feffery_utils_components/async-feffery_fancy_button.js +1 -1
- package/feffery_utils_components/async-feffery_grid.js +1 -1
- package/feffery_utils_components/async-feffery_http_requests.js +1 -1
- package/feffery_utils_components/async-feffery_image_cropper.js +1 -1
- package/feffery_utils_components/async-feffery_json_viewer.js +1 -1
- package/feffery_utils_components/async-feffery_local_large_storage.js +1 -1
- package/feffery_utils_components/async-feffery_markdown_editor.js +1 -1
- package/feffery_utils_components/async-feffery_motion.js +1 -1
- package/feffery_utils_components/async-feffery_music_player.js +1 -1
- package/feffery_utils_components/async-feffery_photo_sphere_viewer.js +1 -1
- package/feffery_utils_components/async-feffery_resizable.js +1 -1
- package/feffery_utils_components/async-feffery_rich_text_editor.js +1 -1
- package/feffery_utils_components/async-feffery_rnd.js +1 -1
- package/feffery_utils_components/async-feffery_seamless_scroll.js +1 -1
- package/feffery_utils_components/async-feffery_shortcut_panel.js +1 -1
- package/feffery_utils_components/async-feffery_slider_captcha.js +1 -1
- package/feffery_utils_components/async-feffery_sortable.js +1 -1
- package/feffery_utils_components/async-feffery_vditor.js +1 -1
- package/feffery_utils_components/async-feffery_word_preview.js +1 -1
- package/feffery_utils_components/feffery_utils_components.min.js +2 -2
- package/feffery_utils_components/metadata.json +153 -0
- package/feffery_utils_components/package-info.json +1 -1
- package/package.json +1 -1
- package/src/lib/components/FefferyCountUp.react.js +28 -5
- package/src/lib/components/FefferyEventSource.react.js +150 -0
- package/src/lib/index.js +3 -1
- package/usage.py +33 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonpfeffery_utils_components=window.webpackJsonpfeffery_utils_components||[]).push([[2],{504:function(e,t,i){"use strict";i.r(t);var A=i(1),P=i.n(A),o=i(872),W=i.n(o),j=i(548),N=i(60),X=i(23),o=i(212);function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.backgroundColor,f=e.backgroundAlpha,v=e.color1,g=e.color2,y=e.colorMode,w=e.quantity,b=e.birdSize,M=e.wingSpan,x=e.speedLimit,C=e.separation,E=e.alignment,T=e.cohesion,e=(e.setProps,e.loading_state),z=(z=Object(A.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(z)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(z,t)||function(e,t){var i;if(e)return"string"==typeof e?Y(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Y(e,t):void 0}(z,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),S=z[0],O=z[1],R=Object(A.useRef)(null);return Object(A.useEffect)(function(){return S||O(W()({el:R.current,THREE:j,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,backgroundColor:m,backgroundAlpha:f,color1:v,color2:g,colorMode:y,quantity:w,birdSize:b,wingSpan:M,speedLimit:x,separation:C,alignment:E,cohesion:T})),function(){S&&S.destroy()}},[S]),P.a.createElement("div",{id:i,children:o,className:Object(X.isString)(s)?s:s?Object(N.a)(s):void 0,style:n,key:r,ref:R,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},505:function(e,t,i){"use strict";i.r(t);var C=i(1),E=i.n(C),o=i(873),T=i.n(o),z=i(548),S=i(60),O=i(23),o=i(213);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.highlightColor,p=e.midtoneColor,m=e.lowlightColor,f=e.baseColor,v=e.blurFactor,g=e.zoom,y=e.speed,e=(e.setProps,e.loading_state),w=(w=Object(C.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(w,t)||function(e,t){var i;if(e)return"string"==typeof e?R(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}(w,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=w[0],M=w[1],x=Object(C.useRef)(null);return Object(C.useEffect)(function(){return b||M(T()({el:x.current,THREE:z,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,highlightColor:d,midtoneColor:p,lowlightColor:m,baseColor:f,blurFactor:v,zoom:g,speed:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:i,children:o,className:Object(O.isString)(s)?s:s?Object(S.a)(s):void 0,style:n,key:r,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},506:function(e,t,i){"use strict";i.r(t);var C=i(1),E=i.n(C),o=i(874),T=i.n(o),z=i(548),S=i(60),O=i(23),o=i(214);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.color,f=e.shininess,v=e.waveHeight,g=e.waveSpeed,y=e.zoom,e=(e.setProps,e.loading_state),w=(w=Object(C.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(w,t)||function(e,t){var i;if(e)return"string"==typeof e?R(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}(w,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=w[0],M=w[1],x=Object(C.useRef)(null);return Object(C.useEffect)(function(){return b||M(T()({el:x.current,THREE:z,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,color:m,shininess:f,waveHeight:v,waveSpeed:g,zoom:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:i,children:o,className:Object(O.isString)(s)?s:s?Object(S.a)(s):void 0,style:n,key:r,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},507:function(e,t,i){"use strict";i.r(t);var E=i(1),T=i.n(E),o=i(875),z=i.n(o),S=i(548),O=i(60),R=i(23),o=i(215);function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.backgroundColor,p=e.skyColor,m=e.cloudColor,f=e.cloudShadowColor,v=e.sunColor,g=e.sunGlareColor,y=e.sunlightColor,w=e.speed,e=(e.setProps,e.loading_state),b=(b=Object(E.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(b)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(b,t)||function(e,t){var i;if(e)return"string"==typeof e?A(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?A(e,t):void 0}(b,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),M=b[0],x=b[1],C=Object(E.useRef)(null);return Object(E.useEffect)(function(){return M||x(z()({el:C.current,THREE:S,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,backgroundColor:d,skyColor:p,cloudColor:m,cloudShadowColor:f,sunColor:v,sunGlareColor:g,sunlightColor:y,speed:w})),function(){M&&M.destroy()}},[M]),T.a.createElement("div",{id:i,children:o,className:Object(R.isString)(s)?s:s?Object(O.a)(s):void 0,style:n,key:r,ref:C,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},508:function(e,t,i){"use strict";i.r(t);var C=i(1),E=i.n(C),o=i(876),T=i.n(o),z=i(548),S=i(60),O=i(23),o=i(216);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.texturePath,m=e.backgroundColor,f=e.skyColor,v=e.cloudColor,g=e.lightColor,y=e.speed,e=(e.setProps,e.loading_state),w=(w=Object(C.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(w,t)||function(e,t){var i;if(e)return"string"==typeof e?R(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}(w,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=w[0],M=w[1],x=Object(C.useRef)(null);return Object(C.useEffect)(function(){return b||M(T()({el:x.current,THREE:z,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,texturePath:p,backgroundColor:m,skyColor:f,cloudColor:v,lightColor:g,speed:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:i,children:o,className:Object(O.isString)(s)?s:s?Object(S.a)(s):void 0,style:n,key:r,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},509:function(e,t,i){"use strict";i.r(t);var x=i(1),C=i.n(x),o=i(877),E=i.n(o),T=i(548),z=i(60),S=i(23),o=i(217);function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.backgroundColor,f=e.color,v=e.color2,g=e.size,e=(e.setProps,e.loading_state),y=(y=Object(x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(y,t)||function(e,t){var i;if(e)return"string"==typeof e?O(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?O(e,t):void 0}(y,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=y[0],b=y[1],M=Object(x.useRef)(null);return Object(x.useEffect)(function(){return w||b(E()({el:M.current,THREE:T,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,backgroundColor:m,color:f,color2:v,size:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:i,children:o,className:Object(S.isString)(s)?s:s?Object(z.a)(s):void 0,style:n,key:r,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},510:function(e,t,i){"use strict";i.r(t);var E=i(1),T=i.n(E),o=i(878),z=i.n(o),S=i(548),O=i(60),R=i(23),o=i(218);function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.color,f=e.backgroundColor,v=e.points,g=e.maxDistance,y=e.spacing,w=e.showDots,e=(e.setProps,e.loading_state),b=(b=Object(E.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(b)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(b,t)||function(e,t){var i;if(e)return"string"==typeof e?A(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?A(e,t):void 0}(b,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),M=b[0],x=b[1],C=Object(E.useRef)(null);return Object(E.useEffect)(function(){return M||x(z()({el:C.current,THREE:S,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,color:m,backgroundColor:f,points:v,maxDistance:g,spacing:y,showDots:w})),function(){M&&M.destroy()}},[M]),T.a.createElement("div",{id:i,children:o,className:Object(R.isString)(s)?s:s?Object(O.a)(s):void 0,style:n,key:r,ref:C,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},511:function(e,t,i){"use strict";i.r(t);var M=i(1),x=i.n(M),o=i(879),C=i.n(o),E=i(548),T=i(60),z=i(23),o=i(219);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.color1,m=e.color2,f=e.size,v=e.speed,e=(e.setProps,e.loading_state),g=(g=Object(M.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(g)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(g,t)||function(e,t){var i;if(e)return"string"==typeof e?S(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?S(e,t):void 0}(g,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],w=g[1],b=Object(M.useRef)(null);return Object(M.useEffect)(function(){return y||w(C()({el:b.current,THREE:E,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,color1:p,color2:m,size:f,speed:v})),function(){y&&y.destroy()}},[y]),x.a.createElement("div",{id:i,children:o,className:Object(z.isString)(s)?s:s?Object(T.a)(s):void 0,style:n,key:r,ref:b,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},512:function(e,t,i){"use strict";i.r(t);var M=i(1),x=i.n(M),o=i(880),C=i.n(o),E=i(548),T=i(60),z=i(23),o=i(220);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.color,f=e.backgroundColor,v=e.backgroundAlpha,e=(e.setProps,e.loading_state),g=(g=Object(M.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(g)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(g,t)||function(e,t){var i;if(e)return"string"==typeof e?S(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?S(e,t):void 0}(g,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],w=g[1],b=Object(M.useRef)(null);return Object(M.useEffect)(function(){return y||w(C()({el:b.current,THREE:E,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,color:m,backgroundColor:f,backgroundAlpha:v})),function(){y&&y.destroy()}},[y]),x.a.createElement("div",{id:i,children:o,className:Object(z.isString)(s)?s:s?Object(T.a)(s):void 0,style:n,key:r,ref:b,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},513:function(e,t,i){"use strict";i.r(t);var x=i(1),C=i.n(x),o=i(881),E=i.n(o),T=i(548),z=i(60),S=i(23),o=i(221);function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.backgroundColor,p=e.baseColor,m=e.size,f=e.amplitudeFactor,v=e.xOffset,g=e.yOffset,e=(e.setProps,e.loading_state),y=(y=Object(x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(y,t)||function(e,t){var i;if(e)return"string"==typeof e?O(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?O(e,t):void 0}(y,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=y[0],b=y[1],M=Object(x.useRef)(null);return Object(x.useEffect)(function(){return w||b(E()({el:M.current,THREE:T,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,backgroundColor:d,baseColor:p,size:m,amplitudeFactor:f,xOffset:v,yOffset:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:i,children:o,className:Object(S.isString)(s)?s:s?Object(z.a)(s):void 0,style:n,key:r,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},872:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function t(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),t()&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var a=r.VantaBase;let h="object"==typeof window&&window.THREE,{Camera:d,ClampToEdgeWrapping:p,DataTexture:m,FloatType:f,Mesh:v,NearestFilter:g,PlaneBufferGeometry:y,RGBAFormat:w,Scene:b,ShaderMaterial:M,WebGLRenderTarget:x}=h||{};function C(h,l,c,e){e&&({Camera:d,ClampToEdgeWrapping:p,DataTexture:m,FloatType:f,Mesh:v,NearestFilter:g,PlaneBufferGeometry:y,RGBAFormat:w,Scene:b,ShaderMaterial:M,WebGLRenderTarget:x}=e),this.variables=[],this.currentTextureIndex=0;var r=f,o=new b,s=new d,i=(s.position.z=1,{passThruTexture:{value:null}}),n=t("uniform sampler2D passThruTexture;\n\nvoid main() {\n\n\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\n\tgl_FragColor = texture2D( passThruTexture, uv );\n\n}\n",i),a=new v(new y(2,2),n);function u(e){e.defines.resolution="vec2( "+h.toFixed(1)+", "+l.toFixed(1)+" )"}function t(e,t){t=new M({uniforms:t=t||{},vertexShader:"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n",fragmentShader:e});return u(t),t}o.add(a),this.setDataType=function(e){return r=e,this},this.addVariable=function(e,t,i){e={name:e,initialValueTexture:i,material:this.createShaderMaterial(t),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:g,magFilter:g};return this.variables.push(e),e},this.setVariableDependencies=function(e,t){e.dependencies=t},this.init=function(){if(!c.capabilities.isWebGL2&&!c.extensions.get("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===c.capabilities.maxVertexTextures)return"No support for vertex shader textures.";for(var e=0;e<this.variables.length;e++){var t=this.variables[e],i=(t.renderTargets[0]=this.createRenderTarget(h,l,t.wrapS,t.wrapT,t.minFilter,t.magFilter),t.renderTargets[1]=this.createRenderTarget(h,l,t.wrapS,t.wrapT,t.minFilter,t.magFilter),this.renderTexture(t.initialValueTexture,t.renderTargets[0]),this.renderTexture(t.initialValueTexture,t.renderTargets[1]),t.material),o=i.uniforms;if(null!==t.dependencies)for(var s=0;s<t.dependencies.length;s++){var n=t.dependencies[s];if(n.name!==t.name){for(var r=!1,a=0;a<this.variables.length;a++)if(n.name===this.variables[a].name){r=!0;break}if(!r)return"Variable dependency not found. Variable="+t.name+", dependency="+n.name}o[n.name]={value:null},i.fragmentShader="\nuniform sampler2D "+n.name+";\n"+i.fragmentShader}}return this.currentTextureIndex=0,null},this.compute=function(){for(var e=this.currentTextureIndex,t=0===this.currentTextureIndex?1:0,i=0,o=this.variables.length;i<o;i++){var s=this.variables[i];if(null!==s.dependencies)for(var n=s.material.uniforms,r=0,a=s.dependencies.length;r<a;r++){var h=s.dependencies[r];n[h.name].value=h.renderTargets[e].texture}this.doRenderTarget(s.material,s.renderTargets[t])}this.currentTextureIndex=t},this.getCurrentRenderTarget=function(e){return e.renderTargets[this.currentTextureIndex]},this.getAlternateRenderTarget=function(e){return e.renderTargets[0===this.currentTextureIndex?1:0]},this.addResolutionDefine=u,this.createShaderMaterial=t,this.createRenderTarget=function(e,t,i,o,s,n){return new x(e=e||h,t=t||l,{wrapS:i=i||p,wrapT:o=o||p,minFilter:s=s||g,magFilter:n=n||g,format:w,type:r,stencilBuffer:!1,depthBuffer:!1})},this.createTexture=function(){var e=new Float32Array(h*l*4);return new m(e,h,l,w,f)},this.renderTexture=function(e,t){i.passThruTexture.value=e,this.doRenderTarget(n,t),i.passThruTexture.value=null},this.doRenderTarget=function(e,t){var i=c.getRenderTarget();a.material=e,c.setRenderTarget(t),c.render(o,s),a.material=n,c.setRenderTarget(i)}}let E="object"==typeof window&&window.THREE;const u=!t();let T=32,z=T*T;class S{constructor(e){var o,t,i=new E.Vector3,s=500,n=500,r=200,c=e;this.position=new E.Vector3,this.velocity=new E.Vector3,o=new E.Vector3,this.setGoal=function(e){t=e},this.setWorldSize=function(e,t,i){s=e,n=t,r=i},this.run=function(e){i.set(-s,this.position.y,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(s,this.position.y,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,-n,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,n,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,this.position.y,-r),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,this.position.y,r),(i=this.avoid(i)).multiplyScalar(5),o.add(i),.5<Math.random()&&this.flock(e),this.move()},this.flock=function(e){t&&o.add(this.reach(t,.005)),o.add(this.alignment(e)),o.add(this.cohesion(e)),o.add(this.separation(e))},this.move=function(){this.velocity.add(o);var e=this.velocity.length();2.5<e&&this.velocity.divideScalar(e/2.5),this.position.add(this.velocity),o.set(0,0,0)},this.checkBounds=function(){this.position.x>s&&(this.position.x=-s),this.position.x<-s&&(this.position.x=s),this.position.y>n&&(this.position.y=-n),this.position.y<-n&&(this.position.y=n),this.position.z>r&&(this.position.z=-r),this.position.z<-r&&(this.position.z=r)},this.avoid=function(e){var t=new E.Vector3;return t.copy(this.position),t.sub(e),t.multiplyScalar(1/this.position.distanceToSquared(e)),t},this.repulse=function(e){var t,i=this.position.distanceTo(e);i<150&&((t=new E.Vector3).subVectors(this.position,e),t.multiplyScalar(.5/i),o.add(t))},this.reach=function(e,t){var i=new E.Vector3;return i.subVectors(e,this.position),i.multiplyScalar(t),i},this.alignment=function(e){for(var t,i,o,s=new E.Vector3,n=0,r=100*c.alignment/20,a=0,h=e.length;a<h;a++).6<Math.random()||0<(i=(t=e[a]).position.distanceTo(this.position))&&i<=r&&(s.add(t.velocity),n++);return 0<n&&(s.divideScalar(n),.1<(o=s.length()))&&s.divideScalar(o/.1),s},this.cohesion=function(e){for(var t,i,o=new E.Vector3,s=new E.Vector3,n=0,r=100*c.cohesion/20,a=0,h=e.length;a<h;a++).6<Math.random()||0<(i=(t=e[a]).position.distanceTo(this.position))&&i<=r&&(o.add(t.position),n++);0<n&&o.divideScalar(n),s.subVectors(o,this.position);var l=s.length();return.1<l&&s.divideScalar(l/.1),s},this.separation=function(e){for(var t,i,o=new E.Vector3,s=new E.Vector3,n=100*c.separation/20,r=0,a=e.length;r<a;r++).6<Math.random()||0<(i=(t=e[r]).position.distanceTo(this.position))&&i<=n&&(s.subVectors(this.position,t.position),s.normalize(),s.divideScalar(i),o.add(s));return o}}}class l extends a{static initClass(){this.prototype.defaultOptions={backgroundColor:465199,color1:16711680,color2:53759,colorMode:"varianceGradient",birdSize:1,wingSpan:30,speedLimit:5,separation:20,alignment:20,cohesion:20,quantity:5}}constructor(e){E=e.THREE||E,super(e)}initComputeRenderer(){this.gpuCompute=new C(T,T,this.renderer,E);var t=this.gpuCompute.createTexture(),i=this.gpuCompute.createTexture();{const n=t.image.data;let e=0;const r=n.length;for(var o=[];e<r;){const r=800*Math.random()-400,a=800*Math.random()-400,h=800*Math.random()-400;n[e+0]=r,n[e+1]=a,n[e+2]=h,n[e+3]=1,o.push(e+=4)}}{const l=i.image.data;let e=0;const c=l.length;for(var s=[];e<c;){const c=Math.random()-.5,u=Math.random()-.5,d=Math.random()-.5;l[e+0]=10*c,l[e+1]=10*u,l[e+2]=10*d,l[e+3]=1,s.push(e+=4)}}this.velocityVariable=this.gpuCompute.addVariable("textureVelocity","uniform float time;\nuniform float testing;\nuniform float delta; // about 0.016\nuniform float separationDistance; // 20\nuniform float alignmentDistance; // 40\nuniform float cohesionDistance;\nuniform float speedLimit;\nuniform float freedomFactor;\nuniform vec3 predator;\n\nconst float width = resolution.x;\nconst float height = resolution.y;\n\nconst float PI = 3.141592653589793;\nconst float PI_2 = PI * 2.0;\n// const float VISION = PI * 0.55;\n\nfloat zoneRadius = 40.0;\nfloat zoneRadiusSquared = 1600.0;\n\nfloat separationThresh = 0.45;\nfloat alignmentThresh = 0.65;\n\nconst float UPPER_BOUNDS = BOUNDS;\nconst float LOWER_BOUNDS = -UPPER_BOUNDS;\n\nfloat rand(vec2 co){\n return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\n\nvoid main() {\n\n zoneRadius = separationDistance + alignmentDistance + cohesionDistance;\n separationThresh = separationDistance / zoneRadius;\n alignmentThresh = ( separationDistance + alignmentDistance ) / zoneRadius;\n zoneRadiusSquared = zoneRadius * zoneRadius;\n\n\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec3 birdPosition, birdVelocity;\n\n vec3 selfPosition = texture2D( texturePosition, uv ).xyz;\n vec3 selfVelocity = texture2D( textureVelocity, uv ).xyz;\n\n float dist;\n vec3 dir; // direction\n float distSquared;\n\n float separationSquared = separationDistance * separationDistance;\n float cohesionSquared = cohesionDistance * cohesionDistance;\n\n float f;\n float percent;\n\n vec3 velocity = selfVelocity;\n\n float limit = speedLimit;\n\n dir = predator * UPPER_BOUNDS - selfPosition;\n dir.z = 0.;\n // dir.z *= 0.6;\n dist = length( dir );\n distSquared = dist * dist;\n\n float preyRadius = 150.0;\n float preyRadiusSq = preyRadius * preyRadius;\n\n // move birds away from predator\n if (dist < preyRadius) {\n\n f = ( distSquared / preyRadiusSq - 1.0 ) * delta * 100.;\n velocity += normalize( dir ) * f;\n limit += 5.0;\n }\n\n // if (testing == 0.0) {}\n // if ( rand( uv + time ) < freedomFactor ) {}\n\n // Attract flocks to the center\n vec3 central = vec3( 0., 0., 0. );\n dir = selfPosition - central;\n dist = length( dir );\n\n dir.y *= 2.5;\n velocity -= normalize( dir ) * delta * 5.;\n\n for (float y=0.0;y<height;y++) {\n for (float x=0.0;x<width;x++) {\n\n vec2 ref = vec2( x + 0.5, y + 0.5 ) / resolution.xy;\n birdPosition = texture2D( texturePosition, ref ).xyz;\n\n dir = birdPosition - selfPosition;\n dist = length(dir);\n\n if (dist < 0.0001) continue;\n\n distSquared = dist * dist;\n\n if (distSquared > zoneRadiusSquared ) continue;\n\n percent = distSquared / zoneRadiusSquared;\n\n if ( percent < separationThresh ) { // low\n\n // Separation - Move apart for comfort\n f = (separationThresh / percent - 1.0) * delta;\n velocity -= normalize(dir) * f;\n\n } else if ( percent < alignmentThresh ) { // high\n\n // Alignment - fly the same direction\n float threshDelta = alignmentThresh - separationThresh;\n float adjustedPercent = ( percent - separationThresh ) / threshDelta;\n\n birdVelocity = texture2D( textureVelocity, ref ).xyz;\n\n f = ( 0.5 - cos( adjustedPercent * PI_2 ) * 0.5 + 0.5 ) * delta;\n velocity += normalize(birdVelocity) * f;\n\n } else {\n\n // Attraction / Cohesion - move closer\n float threshDelta = 1.0 - alignmentThresh;\n float adjustedPercent = ( percent - alignmentThresh ) / threshDelta;\n\n f = ( 0.5 - ( cos( adjustedPercent * PI_2 ) * -0.5 + 0.5 ) ) * delta;\n\n velocity += normalize(dir) * f;\n\n }\n }\n }\n\n // this make tends to fly around than down or up\n // if (velocity.y > 0.) velocity.y *= (1. - 0.2 * delta);\n\n // Speed Limits\n if ( length( velocity ) > limit ) {\n velocity = normalize( velocity ) * limit;\n }\n\n gl_FragColor = vec4( velocity, 1.0 );\n\n}",i),this.positionVariable=this.gpuCompute.addVariable("texturePosition","uniform float time;\nuniform float delta;\n\nvoid main() {\n\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 tmpPos = texture2D( texturePosition, uv );\n vec3 position = tmpPos.xyz;\n vec3 velocity = texture2D( textureVelocity, uv ).xyz;\n\n float phase = tmpPos.w;\n\n phase = mod( ( phase + delta +\n length( velocity.xz ) * delta * 3. +\n max( velocity.y, 0.0 ) * delta * 6. ), 62.83 );\n\n gl_FragColor = vec4( position + velocity * delta * 15. , phase );\n\n}",t),this.gpuCompute.setVariableDependencies(this.velocityVariable,[this.positionVariable,this.velocityVariable]),this.gpuCompute.setVariableDependencies(this.positionVariable,[this.positionVariable,this.velocityVariable]),this.positionUniforms=this.positionVariable.material.uniforms,this.velocityUniforms=this.velocityVariable.material.uniforms,this.positionUniforms.time={value:0},this.positionUniforms.delta={value:0},this.velocityUniforms.time={value:1},this.velocityUniforms.delta={value:0},this.velocityUniforms.testing={value:1},this.velocityUniforms.separationDistance={value:1},this.velocityUniforms.alignmentDistance={value:1},this.velocityUniforms.cohesionDistance={value:1},this.velocityUniforms.speedLimit={value:1},this.velocityUniforms.freedomFactor={value:1},this.velocityUniforms.predator={value:new E.Vector3},this.velocityVariable.material.defines.BOUNDS=800..toFixed(2),this.velocityVariable.wrapS=E.RepeatWrapping,this.velocityVariable.wrapT=E.RepeatWrapping,this.positionVariable.wrapS=E.RepeatWrapping,this.positionVariable.wrapT=E.RepeatWrapping;i=this.gpuCompute.init();null!==i&&console.error(i)}initGpgpuBirds(){var e=(e=>{const t=new E.BufferGeometry,i=(e.quantity&&(T=Math.pow(2,e.quantity),z=T*T),3*z),o=3*i,s=new E.BufferAttribute(new Float32Array(3*o),3),n=new E.BufferAttribute(new Float32Array(3*o),3),r=new E.BufferAttribute(new Float32Array(2*o),2),a=new E.BufferAttribute(new Float32Array(o),1);t.setAttribute||(t.setAttribute=t.addAttribute),t.setAttribute("position",s),t.setAttribute("birdColor",n),t.setAttribute("reference",r),t.setAttribute("birdVertex",a);let h=0;const l=function(){for(let e=0;e<arguments.length;e++)s.array[h++]=arguments[e]},c=e.wingSpan||20,u=e.birdSize||1;for(let e=0;e<z;e++)l(0,-0,-20*u,0,4*u,-20*u,0,0,30*u),l(0,0,-15*u,-c*u,0,0,0,0,15*u),l(0,0,15*u,c*u,0,0,0,0,-15*u);var d={};for(h=0;h<3*i;h++){const t=~~(h/3),i=t%T/T,o=~~(t/T)/T,s=~~(h/9)/z,l=s.toString(),c=-1!=e.colorMode.indexOf("Gradient");var p=!c&&d[l]?d[l]:e.effect.getNewCol(s);c||d[l]||(d[l]=p),n.array[3*h+0]=p.r,n.array[3*h+1]=p.g,n.array[3*h+2]=p.b,r.array[2*h]=i,r.array[2*h+1]=o,a.array[h]=h%9}return t.scale(.2,.2,.2)})(Object.assign({},this.options,{effect:this})),t=(this.birdUniforms={color:{value:new E.Color(16720384)},texturePosition:{value:null},textureVelocity:{value:null},time:{value:1},delta:{value:0},birdSize:{value:this.options.birdSize}},new E.ShaderMaterial({uniforms:this.birdUniforms,vertexShader:"attribute vec2 reference;\nattribute float birdVertex;\n\nattribute vec3 birdColor;\n\nuniform sampler2D texturePosition;\nuniform sampler2D textureVelocity;\n\nvarying vec4 vColor;\nvarying float z;\n\nuniform float time;\nuniform float birdSize;\n\nvoid main() {\n\n vec4 tmpPos = texture2D( texturePosition, reference );\n vec3 pos = tmpPos.xyz;\n vec3 velocity = normalize(texture2D( textureVelocity, reference ).xyz);\n\n vec3 newPosition = position;\n\n if ( birdVertex == 4.0 || birdVertex == 7.0 ) {\n // flap wings\n newPosition.y = sin( tmpPos.w ) * 5. * birdSize;\n }\n\n newPosition = mat3( modelMatrix ) * newPosition;\n\n velocity.z *= -1.;\n float xz = length( velocity.xz );\n float xyz = 1.;\n float x = sqrt( 1. - velocity.y * velocity.y );\n\n float cosry = velocity.x / xz;\n float sinry = velocity.z / xz;\n\n float cosrz = x / xyz;\n float sinrz = velocity.y / xyz;\n\n mat3 maty = mat3(\n cosry, 0, -sinry,\n 0 , 1, 0 ,\n sinry, 0, cosry\n );\n\n mat3 matz = mat3(\n cosrz , sinrz, 0,\n -sinrz, cosrz, 0,\n 0 , 0 , 1\n );\n newPosition = maty * matz * newPosition;\n newPosition += pos;\n z = newPosition.z;\n\n vColor = vec4( birdColor, 1.0 );\n gl_Position = projectionMatrix * viewMatrix * vec4( newPosition, 1.0 );\n}",fragmentShader:"varying vec4 vColor;\nvarying float z;\nuniform vec3 color;\nvoid main() {\n // Fake colors for now\n float rr = 0.2 + ( 1000. - z ) / 1000. * vColor.x;\n float gg = 0.2 + ( 1000. - z ) / 1000. * vColor.y;\n float bb = 0.2 + ( 1000. - z ) / 1000. * vColor.z;\n gl_FragColor = vec4( rr, gg, bb, 1. );\n}",side:E.DoubleSide})),e=new E.Mesh(e,t);return e.rotation.y=Math.PI/2,e.matrixAutoUpdate=!1,e.updateMatrix(),this.scene.add(e)}getNewCol(e){const t=this.options,i=null!=t.color1?t.color1:4456448,o=null!=t.color2?t.color2:6684672,s=new E.Color(i),n=new E.Color(o);let r,a;if(a=-1!=t.colorMode.indexOf("Gradient")?Math.random():e,0==t.colorMode.indexOf("variance")){const e=(s.r+Math.random()*n.r).clamp(0,1),t=(s.g+Math.random()*n.g).clamp(0,1),i=(s.b+Math.random()*n.b).clamp(0,1);r=new E.Color(e,t,i)}else r=0==t.colorMode.indexOf("mix")?new E.Color(i+a*o):s.lerp(n,a);return r}onInit(){this.camera=new E.PerspectiveCamera(75,this.width/this.height,1,3e3),this.camera.position.z=350,this.fog=new E.Fog(16777215,100,1e3),this.mouseX=this.mouseY=0;const e=this.birds=[],t=this.boids=[],i=this.options;if(u)try{this.initComputeRenderer(),this.valuesChanger=this.valuesChanger.bind(this),this.valuesChanger(),this.initGpgpuBirds()}catch(e){console.error("[vanta.js] birds init error: ",e)}else for(var o=6*Math.pow(2,i.quantity),s=0;s<o;s++){(n=t[s]=new S(i)).position.x=400*Math.random()-200,n.position.y=400*Math.random()-200,n.position.z=400*Math.random()-200,n.velocity.x=2*Math.random()-1,n.velocity.y=2*Math.random()-1,n.velocity.z=2*Math.random()-1,n.setWorldSize(500,500,300);var n=-1!=i.colorMode.indexOf("Gradient"),r=((s={})=>{const e=new E.BufferGeometry,n=[];function t(e,t,i){var o=1.5*(s.birdSize||1);n.push(new E.Vector3(e*o,t*o,i*o))}t(5,0,0),t(-5,-1,1),t(-5,0,0),t(-5,-2,-1),t(0,2,-6),t(0,2,6),t(2,0,0),t(-3,0,0),e.setFromPoints(n);var i=[];return i.push(0,2,1),i.push(4,7,6),i.push(5,6,7),e.setIndex(i),e})(i),a=r.attributes.position.length,h=new E.BufferAttribute(new Float32Array(a),3);if(n)for(var l=0;l<r.index.array.length;l+=3)for(var c=0;c<=2;c++){const e=r.index.array[l+c],t=this.getNewCol();h.array[3*e]=t.r,h.array[3*e+1]=t.g,h.array[3*e+2]=t.b}else{const e=this.getNewCol(s/o);for(l=0;l<h.array.length;l+=3)h.array[l]=e.r,h.array[l+1]=e.g,h.array[l+2]=e.b}r.setAttribute("color",h),(a=e[s]=new E.Mesh(r,new E.MeshBasicMaterial({color:16777215,side:E.DoubleSide,vertexColors:E.VertexColors}))).phase=Math.floor(62.83*Math.random()),a.position.x=t[s].position.x,a.position.y=t[s].position.y,a.position.z=t[s].position.z,this.scene.add(a)}}valuesChanger(){this.velocityUniforms&&(this.velocityUniforms.separationDistance.value=this.options.separation,this.velocityUniforms.alignmentDistance.value=this.options.alignment,this.velocityUniforms.speedLimit.value=this.options.speedLimit,this.velocityUniforms.cohesionDistance.value=this.options.cohesion)}onUpdate(){this.now=performance.now(),this.last||(this.last=this.now);let e=(this.now-this.last)/1e3;if(1<e&&(e=1),this.last=this.now,u)this.positionUniforms.time.value=this.now,this.positionUniforms.delta.value=e,this.velocityUniforms.time.value=this.now,this.velocityUniforms.delta.value=e,this.birdUniforms.time.value=this.now,this.birdUniforms.delta.value=e,this.velocityUniforms.predator.value.set(this.mouseX,-this.mouseY,0),this.mouseX=1e4,this.mouseY=1e4,this.gpuCompute.compute(),this.birdUniforms.texturePosition.value=this.gpuCompute.getCurrentRenderTarget(this.positionVariable).texture,this.birdUniforms.textureVelocity.value=this.gpuCompute.getCurrentRenderTarget(this.velocityVariable).texture;else{const e=this.birds,n=this.boids;for(var t,i,o=0,s=e.length;o<s;o++){(t=n[o]).run(n),(i=e[o]).rotation.y=Math.atan2(-t.velocity.z,t.velocity.x),i.rotation.z=Math.asin(t.velocity.y/t.velocity.length()),i.phase=(i.phase+(Math.max(0,i.rotation.z)+.1))%62.83;const s=16;i.geometry.attributes.position.array[16]=i.geometry.attributes.position.array[13]=5*Math.sin(i.phase)*this.options.birdSize,i.geometry.attributes.position.needsUpdate=!0,i.geometry.computeVertexNormals(),i.position.x=n[o].position.x,i.position.y=n[o].position.y,i.position.z=n[o].position.z}}}onMouseMove(e,t){if(this.mouseX=e-.5,this.mouseY=t-.5,!u){const e=this.boids;for(var i,o=new E.Vector3(this.mouseX*this.width,-this.mouseY*this.height,0),s=0,n=e.length;s<n;s++)i=e[s],o.z=i.position.z,i.repulse(o)}}onDestroy(){}onResize(){}}l.initClass();const c=r.register("BIRDS",l);return e})())()},873:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("FOG",l);return l.prototype.defaultOptions={highlightColor:16761600,midtoneColor:16719616,lowlightColor:2949375,baseColor:16772075,blurFactor:.6,speed:1,zoom:1,scale:2,scaleMobile:4},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\n\nuniform float blurFactor;\nuniform vec3 baseColor;\nuniform vec3 lowlightColor;\nuniform vec3 midtoneColor;\nuniform vec3 highlightColor;\nuniform float zoom;\n\nfloat random (in vec2 _st) {\n return fract(sin(dot(_st.xy,\n vec2(0.129898,0.78233)))*\n 437.585453123);\n}\n\n// Based on Morgan McGuire @morgan3d\n// https://www.shadertoy.com/view/4dS3Wd\nfloat noise (in vec2 _st) {\n vec2 i = floor(_st);\n vec2 f = fract(_st);\n\n // Four corners in 2D of a tile\n float a = random(i);\n float b = random(i + vec2(1.0, 0.0));\n float c = random(i + vec2(0.0, 1.0));\n float d = random(i + vec2(1.0, 1.0));\n\n vec2 u = f * f * (3.0 - 2.0 * f);\n\n return mix(a, b, u.x) +\n (c - a)* u.y * (1.0 - u.x) +\n (d - b) * u.x * u.y;\n}\n\n#define NUM_OCTAVES 6\n\nfloat fbm ( in vec2 _st) {\n float v = 0.0;\n float a = blurFactor;\n vec2 shift = vec2(100.0);\n // Rotate to reduce axial bias\n mat2 rot = mat2(cos(0.5), sin(0.5),\n -sin(0.5), cos(0.50));\n for (int i = 0; i < NUM_OCTAVES; ++i) {\n v += a * noise(_st);\n _st = rot * _st * 2.0 + shift;\n a *= (1. - blurFactor);\n }\n return v;\n}\n\nvoid main() {\n vec2 st = gl_FragCoord.xy / iResolution.xy*3.;\n st.x *= 0.7 * iResolution.x / iResolution.y ; // Still keep it more landscape than square\n st *= zoom;\n\n // st += st * abs(sin(iTime*0.1)*3.0);\n vec3 color = vec3(0.0);\n\n vec2 q = vec2(0.);\n q.x = fbm( st + 0.00*iTime);\n q.y = fbm( st + vec2(1.0));\n\n vec2 dir = vec2(0.15,0.126);\n vec2 r = vec2(0.);\n r.x = fbm( st + 1.0*q + vec2(1.7,9.2)+ dir.x*iTime );\n r.y = fbm( st + 1.0*q + vec2(8.3,2.8)+ dir.y*iTime);\n\n float f = fbm(st+r);\n\n color = mix(baseColor,\n lowlightColor,\n clamp((f*f)*4.0,0.0,1.0));\n\n color = mix(color,\n midtoneColor,\n clamp(length(q),0.0,1.0));\n\n color = mix(color,\n highlightColor,\n clamp(length(r.x),0.0,1.0));\n\n vec3 finalColor = mix(baseColor, color, f*f*f+.6*f*f+.5*f);\n gl_FragColor = vec4(finalColor,1.0);\n}\n",e})())()},874:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>h}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let d="object"==typeof window&&window.THREE;class a extends t{static initClass(){this.prototype.ww=100,this.prototype.hh=80,this.prototype.waveNoise=4}constructor(e){d=e.THREE||d,super(e)}getMaterial(){var e={color:this.options.color,shininess:this.options.shininess,flatShading:!0,side:d.DoubleSide};return new d.MeshPhongMaterial(e)}onInit(){let i,o;const e=this.getMaterial(),t=new d.BufferGeometry,s=(this.gg=[],[]);for(i=0;i<=this.ww;i++)for(this.gg[i]=[],o=0;o<=this.hh;o++){const u=s.length,e=new d.Vector3(18*(i-.5*this.ww),(null==(r=this.waveNoise)&&(r=1),(n=0)+Math.random()*(r-n)-10),18*(.5*this.hh-o));s.push(e),this.gg[i][o]=u}t.setFromPoints(s);var n,r,a,h,l=[];for(i=1;i<=this.ww;i++)for(o=1;o<=this.hh;o++){let e,t;const s=this.gg[i][o],n=this.gg[i][o-1],r=this.gg[i-1][o],d=this.gg[i-1][o-1];null==(a=0)&&(a=0),null==(h=1)&&(h=1),t=Math.floor(a+Math.random()*(h-a+1))?(e=[d,n,r],[n,r,s]):(e=[d,n,s],[d,r,s]),l.push(...e,...t)}t.setIndex(l),this.plane=new d.Mesh(t,e),this.scene.add(this.plane);var c=new d.AmbientLight(16777215,.9),c=(this.scene.add(c),new d.PointLight(16777215,.9));c.position.set(-100,250,-100),this.scene.add(c),this.camera=new d.PerspectiveCamera(35,this.width/this.height,50,1e4),this.cameraPosition=new d.Vector3(240,200,390),this.cameraTarget=new d.Vector3(140,-30,190),this.camera.position.copy(this.cameraPosition),this.scene.add(this.camera)}onUpdate(){let e;this.plane.material.color.set(this.options.color),this.plane.material.shininess=this.options.shininess,this.camera.ox=this.cameraPosition.x/this.options.zoom,this.camera.oy=this.cameraPosition.y/this.options.zoom,this.camera.oz=this.cameraPosition.z/this.options.zoom,null!=this.controls&&this.controls.update();const t=this.camera;.01<Math.abs(t.tx-t.position.x)&&(e=t.tx-t.position.x,t.position.x+=.02*e),.01<Math.abs(t.ty-t.position.y)&&(e=t.ty-t.position.y,t.position.y+=.02*e),.01<Math.abs(t.tz-t.position.z)&&(e=t.tz-t.position.z,t.position.z+=.02*e),t.lookAt(this.cameraTarget),this.oy=this.oy||{};for(let e=0;e<this.plane.geometry.attributes.position.array.length;e+=3){const t={x:this.plane.geometry.attributes.position.array[e],y:this.plane.geometry.attributes.position.array[e+1],z:this.plane.geometry.attributes.position.array[e+2],oy:this.oy[e]};var i,o;t.oy?(i=this.options.waveSpeed,o=Math.sqrt(i)*Math.cos(-t.x-.7*t.z),i=Math.sin(i*this.t*.02-i*t.x*.025+i*t.z*.015+o),o=Math.pow(i+1,2)/4,t.y=t.oy+o*this.options.waveHeight,this.plane.geometry.attributes.position.array[e+1]=t.y):this.oy[e]=t.y}this.plane.geometry.attributes.position.setUsage(d.DynamicDrawUsage),this.plane.geometry.computeVertexNormals(),this.plane.geometry.attributes.position.needsUpdate=!0,this.wireframe&&(this.wireframe.geometry.fromGeometry(this.plane.geometry),this.wireframe.geometry.computeFaceNormals())}onMouseMove(e,t){var i=this.camera;return i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z),i.tx=i.ox+100*(e-.5)/this.options.zoom,i.ty=i.oy+-100*(t-.5)/this.options.zoom,i.tz=i.oz+-50*(e-.5)/this.options.zoom}}a.prototype.defaultOptions={color:21896,shininess:30,waveHeight:15,waveSpeed:1,zoom:1},a.initClass();const h=r.register("WAVES",a);return e})())()},875:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("CLOUDS",l);return l.prototype.defaultOptions={backgroundColor:16777215,skyColor:6863063,cloudColor:11387358,cloudShadowColor:1586512,sunColor:16750873,sunGlareColor:16737843,sunlightColor:16750899,scale:3,scaleMobile:12,speed:1,mouseEase:!0},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\nuniform sampler2D iTex;\n\nuniform float speed;\nuniform vec3 skyColor;\nuniform vec3 cloudColor;\nuniform vec3 cloudShadowColor;\nuniform vec3 sunColor;\nuniform vec3 sunlightColor;\nuniform vec3 sunGlareColor;\nuniform vec3 backgroundColor;\n\n// uniform vec4 iMouse; // mouse pixel coords. xy: current (if MLB down), zw: click\n// uniform samplerXX iChannel0..3; // input channel. XX = 2D/Cube\n\n\n// Volumetric clouds. It performs level of detail (LOD) for faster rendering\nfloat hash(float p) {\n p = fract(p * 0.011);\n p *= (p + 7.5);\n p *= (p + p);\n return fract(p);\n}\n\nfloat noise( vec3 x ){\n // The noise function returns a value in the range -1.0f -> 1.0f\n vec3 p = floor(x);\n vec3 f = fract(x);\n f = f*f*(3.0-2.0*f);\n float n = p.x + p.y*57.0 + 113.0*p.z;\n return mix(mix(mix( hash(n+0.0 ), hash(n+1.0 ),f.x),\n mix( hash(n+57.0 ), hash(n+58.0 ),f.x),f.y),\n mix(mix( hash(n+113.0), hash(n+114.0),f.x),\n mix( hash(n+170.0), hash(n+171.0),f.x),f.y),f.z);\n}\n\nconst float constantTime = 1000.;\nfloat map5( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q ); q = q*2.03;\n f += 0.12500*noise( q ); q = q*2.01;\n f += 0.06250*noise( q ); q = q*2.02;\n f += 0.03125*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\nfloat map4( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q ); q = q*2.03;\n f += 0.12500*noise( q ); q = q*2.01;\n f += 0.06250*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\nfloat map3( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q ); q = q*2.03;\n f += 0.12500*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\nfloat map2( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\n\nvec3 sundir = normalize( vec3(-1.0,0.0,-1.0) );\n\nvec4 integrate( in vec4 sum, in float dif, in float den, in vec3 bgcol, in float t ){\n // lighting\n vec3 lin = cloudColor*1.4 + sunlightColor*dif;\n vec4 col = vec4( mix( vec3(1.0,0.95,0.8), cloudShadowColor, den ), den );\n col.xyz *= lin;\n col.xyz = mix( col.xyz, bgcol, 1.0-exp(-0.003*t*t) );\n // front to back blending\n col.a *= 0.4;\n col.rgb *= col.a;\n return sum + col*(1.0-sum.a);\n}\n\n#define MARCH(STEPS,MAPLOD) for(int i=0; i<STEPS; i++) { vec3 pos = ro + t*rd; if( pos.y<-3.0 || pos.y>2.0 || sum.a > 0.99 ) break; float den = MAPLOD( pos ); if( den>0.01 ) { float dif = clamp((den - MAPLOD(pos+0.3*sundir))/0.6, 0.0, 1.0 ); sum = integrate( sum, dif, den, bgcol, t ); } t += max(0.075,0.02*t); }\n\nvec4 raymarch( in vec3 ro, in vec3 rd, in vec3 bgcol, in ivec2 px ){\n vec4 sum = vec4(0.0);\n\n float t = 0.0;\n\n MARCH(20,map5);\n MARCH(25,map4);\n MARCH(30,map3);\n MARCH(40,map2);\n\n return clamp( sum, 0.0, 1.0 );\n}\n\nmat3 setCamera( in vec3 ro, in vec3 ta, float cr ){\n vec3 cw = normalize(ta-ro);\n vec3 cp = vec3(sin(cr), cos(cr),0.0);\n vec3 cu = normalize( cross(cw,cp) );\n vec3 cv = normalize( cross(cu,cw) );\n return mat3( cu, cv, cw );\n}\n\nvec4 render( in vec3 ro, in vec3 rd, in ivec2 px ){\n // background sky\n float sun = clamp( dot(sundir,rd), 0.0, 1.0 );\n vec3 col = skyColor - rd.y*0.2*vec3(1.0,0.5,1.0) + 0.15*0.5;\n col += 0.2*sunColor*pow( sun, 8.0 );\n\n // clouds\n vec4 res = raymarch( ro, rd, col, px );\n col = col*(1.0-res.w) + res.xyz;\n\n // sun glare\n col += 0.2*sunGlareColor*pow( sun, 3.0 );\n\n return vec4( col, 1.0 );\n}\n\nvoid main(){\n vec2 p = (-iResolution.xy + 2.0*gl_FragCoord.xy)/ iResolution.y;\n\n vec2 m = iMouse.xy/iResolution.xy;\n m.y = (1.0 - m.y) * 0.33 + 0.28; // camera height\n\n m.x *= 0.25;\n m.x += sin(iTime * 0.1 + 3.1415) * 0.25 + 0.25;\n\n // camera\n vec3 ro = 4.0*normalize(vec3(sin(3.0*m.x), 0.4*m.y, cos(3.0*m.x))); // origin\n vec3 ta = vec3(0.0, -1.0, 0.0);\n mat3 ca = setCamera( ro, ta, 0.0 );\n // ray\n vec3 rd = ca * normalize( vec3(p.xy,1.5));\n\n gl_FragColor = render( ro, rd, ivec2(gl_FragCoord-0.5) );\n}\n",e})())()},876:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("CLOUDS2",l);return l.prototype.defaultOptions={backgroundColor:0,skyColor:6072010,cloudColor:3362176,lightColor:16777215,speed:1,texturePath:"./gallery/noise.png",scaleMobile:4},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\nuniform sampler2D iTex;\nuniform float speed;\nuniform vec3 skyColor;\nuniform vec3 cloudColor;\nuniform vec3 lightColor;\n\n# define T texture2D(iTex, fract((s*p.zw + ceil(s*p.x)) / 200.0)).y / (s += s) * 4.0\n\nvoid main(){\n vec2 coord = gl_FragCoord.xy;\n vec4 p, d = vec4(0.8, 0, coord / iResolution.y - 0.65);\n vec3 out1 = skyColor - d.w; // sky gradient\n float s, f, t = 200.0 + sin(dot(coord,coord));\n const float MAX_ITER = 100.0;\n for (float i = 1.0; i <= MAX_ITER; i += 1.0) {\n t -= 2.0; if (t < 0.0) { break; } // march step\n p = 0.05 * t * d;\n p.xz += iTime * 0.50000 * speed; // movement through space\n p.x += sin(iTime * 0.25 * speed) * 0.25;\n s = 2.0;\n f = p.w + 1.0-T-T-T-T;\n // f = p.w + 1.0 - 0.25*noise(p.xyz * 2.0) - 0.25*noise(p.zxy * 2.01) - 0.25*noise(p.yzx * 2.03);\n if (f < 0.0) {\n vec3 cloudColorShading = mix(lightColor, cloudColor, -f);\n out1 = mix(out1, cloudColorShading, -f * 0.4);\n }\n }\n gl_FragColor = vec4(out1, 1.0);\n}",e})())()},877:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function v(e,t){return null==t&&(t=1),(e=null==e?0:e)+Math.random()*(t-e)}o.r(e),o.d(e,{default:()=>h}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const g=e=>.299*e.r+.587*e.g+.114*e.b,i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{},t=(r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24",r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}},r.VantaBase),m="object"==typeof window;let y=m&&window.THREE;class a extends t{static initClass(){this.prototype.defaultOptions={color:16727937,color2:16777215,size:1,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){y=e.THREE||y,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){const e=new y.SphereGeometry(.25,12,12),t=new y.MeshLambertMaterial({color:this.options.color});o=new y.Mesh(e,t)}else o=new y.Object3D;return this.cont.add(o),o.ox=e,o.oy=t,o.oz=i,o.position.set(e,t,i),o.r=0,this.points.push(o)}onInit(){this.cont=new y.Group,this.cont.position.set(-50,-20,0),this.scene.add(this.cont);let i=this.options.points,o=this.options["spacing"];const s=i*i*2,n=(this.linePositions=new Float32Array(s*s*3),this.lineColors=new Float32Array(s*s*3),g(new y.Color(this.options.color))),t=g(new y.Color(this.options.backgroundColor)),r=(this.blending=n>t?"additive":"subtractive",new y.BufferGeometry);r.setAttribute("position",new y.BufferAttribute(this.linePositions,3).setUsage(y.DynamicDrawUsage)),r.setAttribute("color",new y.BufferAttribute(this.lineColors,3).setUsage(y.DynamicDrawUsage)),r.computeBoundingSphere(),r.setDrawRange(0,0);var e=new y.LineBasicMaterial({vertexColors:y.VertexColors,blending:"additive"===this.blending?y.AdditiveBlending:null,transparent:!0});this.linesMesh=new y.LineSegments(r,e),this.cont.add(this.linesMesh);for(let t=0;t<=i;t++)for(let e=0;e<=i;e++){const s=0,n=(t-i/2)*o;var a=(e-i/2)*o;this.genPoint(n,0,a)}this.camera=new y.PerspectiveCamera(20,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);var e=new y.AmbientLight(16777215,.75),e=(this.scene.add(e),this.spot=new y.SpotLight(16777215,1),this.spot.position.set(0,200,0),this.spot.distance=400,this.spot.target=this.cont,this.scene.add(this.spot),this.cont2=new y.Group,this.cont2.position.set(0,15,0),this.scene.add(this.cont2),new y.LineBasicMaterial({color:this.options.color2})),h=[];for(let e=0;e<80;e++){const i=v(18,24),o=i+v(1,6),g=v(-1,1),s=Math.sqrt(1-g*g),n=v(0,2*Math.PI),t=Math.sin(n)*s,r=Math.cos(n)*s;h.push(new y.Vector3(r*i,t*i,g*i)),h.push(new y.Vector3(r*o,t*o,g*o))}var l=(new y.BufferGeometry).setFromPoints(h),l=(this.linesMesh2=new y.LineSegments(l,e),this.linesMesh2.position.set(0,0,0),this.cont2.add(this.linesMesh2),new y.LineBasicMaterial({color:this.options.color2,linewidth:2})),c=[];c.push(new y.Vector3(0,30,0)),c.push(new y.Vector3(0,-30,0));for(let e=0;e<4;e++){var u=.15*Math.cos(e/4*Math.PI*2),d=.15*Math.sin(e/4*Math.PI*2),p=[17.9,12,8,5,3,2,1.5,1.1,.8,.6,.45,.3,.2,.1,.05,.03,.02,.01];for(let e=0;e<p.length;e++){var m=p[e],f=6*(e+1);c.push(new y.Vector3(u*f,m,d*f)),c.push(new y.Vector3(u*f,-m,d*f))}}e=(new y.BufferGeometry).setFromPoints(c),this.linesMesh3=new y.LineSegments(e,l),this.linesMesh3.position.set(0,0,0),this.cont2.add(this.linesMesh3),e=new y.LineBasicMaterial({color:this.options.color}),l=new y.SphereGeometry(18*this.options.size,18,14),l=new y.EdgesGeometry(l);this.sphere=new y.LineSegments(l,e),this.sphere.position.set(0,0,0),this.cont2.add(this.sphere),this.cont2.rotation.x=-.25}onUpdate(){let i;null!=this.helper&&this.helper.update(),null!=this.controls&&this.controls.update();var e=this.camera;.01<Math.abs(e.tx-e.position.x)&&(i=e.tx-e.position.x,e.position.x+=.02*i),.01<Math.abs(e.ty-e.position.y)&&(i=e.ty-e.position.y,e.position.y+=.02*i),m&&window.innerWidth<480?e.lookAt(new y.Vector3(-10,0,0)):m&&window.innerWidth<720?e.lookAt(new y.Vector3(-20,0,0)):e.lookAt(new y.Vector3(-40,0,0));let o=0,s=0,n=0;var r,a=new y.Color(this.options.backgroundColor),h=new y.Color(this.options.color),e=new y.Color(this.options.color2),l=h.clone().sub(a);this.rayCaster&&this.rayCaster.setFromCamera(new y.Vector2(this.rcMouseX,this.rcMouseY),this.camera),this.linesMesh2&&(this.linesMesh2.rotation.z+=.002,this.linesMesh2.rotation.x+=8e-4,this.linesMesh2.rotation.y+=5e-4),this.sphere&&(this.sphere.rotation.y+=.002,this.linesMesh3.rotation.y-=.004);for(let t=0;t<this.points.length;t++){const m=this.points[t];var c=(this.rayCaster?this.rayCaster.ray.distanceToPoint(m.position):1e3).clamp(5,15);m.scale.z=(.25*(15-c)).clamp(1,100),m.scale.x=m.scale.y=m.scale.z,m.position.y=2*Math.sin(m.position.x/10+.01*this.t+m.position.z/10*.5);for(let e=t;e<this.points.length;e++){const i=this.points[e],u=m.position.x-i.position.x,d=m.position.y-i.position.y,p=m.position.z-i.position.z;if((r=Math.sqrt(u*u+d*d+p*p))<this.options.maxDistance){let e,t=2*(1-r/this.options.maxDistance);t=t.clamp(0,1),e="additive"===this.blending?new y.Color(0).lerp(l,t):a.clone().lerp(h,t),this.linePositions[o++]=m.position.x,this.linePositions[o++]=m.position.y,this.linePositions[o++]=m.position.z,this.linePositions[o++]=i.position.x,this.linePositions[o++]=i.position.y,this.linePositions[o++]=i.position.z,this.lineColors[s++]=e.r,this.lineColors[s++]=e.g,this.lineColors[s++]=e.b,this.lineColors[s++]=e.r,this.lineColors[s++]=e.g,this.lineColors[s++]=e.b,n++}}}return this.linesMesh.geometry.setDrawRange(0,2*n),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,this.sphere.material.color.set(h),this.linesMesh2.material.color.set(e),this.linesMesh3.material.color.set(e),.001*this.t}onMouseMove(e,t){var i=this.camera,o=(i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z),Math.atan2(i.oz,i.ox)),s=Math.sqrt(i.oz*i.oz+i.ox*i.ox),o=o+1.5*(e-.5)*(this.options.mouseCoeffX||1);i.tz=s*Math.sin(o),i.tx=s*Math.cos(o),i.ty=i.oy+80*(t-.5)*(this.options.mouseCoeffY||1),this.rayCaster,this.rcMouseX=2*e-1,this.rcMouseY=2*-e+1}onRestart(){this.scene.remove(this.linesMesh),this.points=[]}}a.initClass();const h=r.register("GLOBE",a);return e})())()},878:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function a(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}function h(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}o.r(e),o.d(e,{default:()=>u}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const l=e=>.299*e.r+.587*e.g+.114*e.b,i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),a()&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let v="object"==typeof window&&window.THREE;class c extends t{static initClass(){this.prototype.defaultOptions={color:16727937,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){v=e.THREE||v,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){const e=new v.SphereGeometry(.25,12,12),t=new v.MeshLambertMaterial({color:this.options.color});o=new v.Mesh(e,t)}else o=new v.Object3D;return this.cont.add(o),o.ox=e,o.oy=t,o.oz=i,o.position.set(e,t,i),o.r=(t=-(e=2))+Math.random()*(e-t),this.points.push(o)}onInit(){this.cont=new v.Group,this.cont.position.set(0,0,0),this.scene.add(this.cont);let o=this.options.points,s=this.options["spacing"];a()&&(o=~~(.75*o),s=~~(.65*s));const n=o*o*2,r=(this.linePositions=new Float32Array(n*n*3),this.lineColors=new Float32Array(n*n*3),l(new v.Color(this.options.color))),e=l(new v.Color(this.options.backgroundColor));this.blending=r>e?"additive":"subtractive";var t=new v.BufferGeometry,i=(t.setAttribute("position",new v.BufferAttribute(this.linePositions,3).setUsage(v.DynamicDrawUsage)),t.setAttribute("color",new v.BufferAttribute(this.lineColors,3).setUsage(v.DynamicDrawUsage)),t.computeBoundingSphere(),t.setDrawRange(0,0),new v.LineBasicMaterial({vertexColors:v.VertexColors,blending:"additive"===this.blending?v.AdditiveBlending:null,transparent:!0}));this.linesMesh=new v.LineSegments(t,i),this.cont.add(this.linesMesh);for(let i=0;i<=o;i++)for(let t=0;t<=o;t++){const n=h(-3,3),r=(i-o/2)*s+h(-5,5);let e=(t-o/2)*s+h(-5,5);i%2&&(e+=.5*s),this.genPoint(r,n-h(5,15),e),this.genPoint(r+h(-5,5),n+h(5,15),e+h(-5,5))}this.camera=new v.PerspectiveCamera(25,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);t=new v.AmbientLight(16777215,.75);return this.scene.add(t),this.spot=new v.SpotLight(16777215,1),this.spot.position.set(0,200,0),this.spot.distance=400,this.spot.target=this.cont,this.scene.add(this.spot)}onDestroy(){this.scene&&this.scene.remove(this.linesMesh),this.spot=this.points=this.linesMesh=this.lineColors=this.linePositions=null}setOptions(t){super.setOptions(t),t.color&&this.points.forEach(e=>{e.material.color=new v.Color(t.color)})}onUpdate(){let o;var e=this.camera;.01<Math.abs(e.tx-e.position.x)&&(o=e.tx-e.position.x,e.position.x+=.02*o),.01<Math.abs(e.ty-e.position.y)&&(o=e.ty-e.position.y,e.position.y+=.02*o),e.lookAt(new v.Vector3(0,0,0));let s=0,n=0,r=0;var a=new v.Color(this.options.backgroundColor),h=new v.Color(this.options.color),l=h.clone().sub(a);this.rayCaster&&this.rayCaster.setFromCamera(new v.Vector2(this.rcMouseX,this.rcMouseY),this.camera);for(let i=0;i<this.points.length;i++){let t;var c,u=this.points[i],d=(this.rayCaster?this.rayCaster.ray.distanceToPoint(u.position):1e3).clamp(5,15);u.scale.x=u.scale.y=u.scale.z=(.25*(15-d)).clamp(1,100),0!==u.r&&(d=Math.atan2(u.position.z,u.position.x),t=Math.sqrt(u.position.z*u.position.z+u.position.x*u.position.x),d+=25e-5*u.r,u.position.x=t*Math.cos(d),u.position.z=t*Math.sin(d));for(let e=i;e<this.points.length;e++){const o=this.points[e],p=u.position.x-o.position.x,m=u.position.y-o.position.y,f=u.position.z-o.position.z;(t=Math.sqrt(p*p+m*m+f*f))<this.options.maxDistance&&(c=(2*(1-t/this.options.maxDistance)).clamp(0,1),c="additive"===this.blending?new v.Color(0).lerp(l,c):a.clone().lerp(h,c),this.linePositions[s++]=u.position.x,this.linePositions[s++]=u.position.y,this.linePositions[s++]=u.position.z,this.linePositions[s++]=o.position.x,this.linePositions[s++]=o.position.y,this.linePositions[s++]=o.position.z,this.lineColors[n++]=c.r,this.lineColors[n++]=c.g,this.lineColors[n++]=c.b,this.lineColors[n++]=c.r,this.lineColors[n++]=c.g,this.lineColors[n++]=c.b,r++)}}return this.linesMesh.geometry.setDrawRange(0,2*r),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,.001*this.t}onMouseMove(e,t){var i=this.camera,o=(i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z),Math.atan2(i.oz,i.ox)),s=Math.sqrt(i.oz*i.oz+i.ox*i.ox),o=o+2*(e-.5)*(this.options.mouseCoeffX||1);i.tz=s*Math.sin(o),i.tx=s*Math.cos(o),i.ty=i.oy+50*(t-.5)*(this.options.mouseCoeffY||1),this.rayCaster,this.rcMouseX=2*e-1,this.rcMouseY=2*-e+1}onRestart(){this.scene&&this.scene.remove(this.linesMesh),this.points=[]}}c.initClass();const u=r.register("NET",c);return e})())()},879:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("CELLS",l);return l.prototype.defaultOptions={color1:35980,color2:15918901,backgroundColor:14155663,amplitudeFactor:1,ringFactor:1,rotationFactor:1,size:1.5,speed:1,scaleMobile:3},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\n\nuniform float blurFactor;\nuniform vec3 color1;\nuniform vec3 color2;\nuniform vec3 backgroundColor;\nuniform float size;\nuniform float amplitudeFactor;\nuniform float ringFactor;\nuniform float rotationFactor;\n\nfloat length2(vec2 p) { return dot(p, p); }\n\nfloat noise(vec2 p){\n return fract(sin(fract(sin(p.x) * (43.13311)) + p.y) * 31.0011);\n}\n\nfloat worley(vec2 p) {\n float d = 1e30;\n for (int xo = -1; xo <= 1; ++xo) {\n for (int yo = -1; yo <= 1; ++yo) {\n vec2 tp = floor(p) + vec2(xo, yo);\n d = min(d, length2(p - tp - vec2(noise(tp))));\n }\n }\n vec2 uv = gl_FragCoord.xy / iResolution.xy;\n float timeOffset = 0.15 * sin(iTime * 2.0 + 10.0*(uv.x - uv.y));\n return 3.0*exp(-4.0*abs(2.0*d - 1.0 + timeOffset));\n}\n\nfloat fworley(vec2 p) {\n return sqrt(sqrt(sqrt(\n 1.1 * // light\n worley(p*5. + .3 + iTime*.0525) *\n sqrt(worley(p * 50. / size + 0.3 + iTime * -0.15)) *\n sqrt(sqrt(worley(p * -10. + 9.3))))));\n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy / iResolution.xy;\n float t = fworley(uv * iResolution.xy / 1500.0);\n t *= exp(-length2(abs(0.7*uv - 1.0)));\n\n float tExp = pow(t, 0.5 - t);\n vec3 c1 = color1 * (1.0 - t);\n vec3 c2 = color2 * tExp;\n\n gl_FragColor = vec4(pow(t, 1.0 - t) * (c1 + c2), 1.0);\n}\n",e})())()},880:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function s(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}o.r(e),o.d(e,{default:()=>p}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const l=e=>e[Math.floor(Math.random()*e.length)];function c(e,t){return null==t&&(t=1),(e=null==e?0:e)+Math.random()*(t-e)}function u(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}const i="object"==typeof window;let n=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function r(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const a=i&&window.VANTA||{};a.register=(e,t)=>a[e]=e=>new t(e),a.version="0.5.24";a.VantaBase=class{constructor(e={}){if(!i)return!1;(a.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(n=this.options.THREE),this.el=this.options.el,null==this.el)r('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void r("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return r("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){n.WebGLRenderer?(this.renderer=new n.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new n.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),s()&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),a.current===this&&(a.current=null)}};var t=a.VantaBase;let d="object"==typeof window&&window.THREE;class h extends t{static initClass(){this.prototype.defaultOptions={backgroundColor:2106408,color:8978176},this.prototype.colors=[16720469,16716185,16737996,8978176,7851025,16776960,16742195,1179647,1149149,16768290,2250188,7975100,5468283]}constructor(e){d=e.THREE||d,super(e)}material(e){return new d.MeshLambertMaterial({color:e})}genRing(e,t,i,o,s,n,r){null==o&&(o=0),null==s&&(s=1.4*Math.PI),null==n&&(n=0),null==r&&(r=1),this.rings||(this.rings=[]),t<1&&(t=1);var a={depth:.4,bevelEnabled:!1,steps:1,curveSegments:~~(64*s/6.14)},h=new d.Shape,h=(h.absarc(0,0,t+i,0,s,!1),h.lineTo(t*Math.cos(s),t*Math.sin(s)),h.absarc(0,0,t,s,0,!0),new d.ExtrudeGeometry(h,a)),a=this.material(e),h=((0===u(0,1)||60<t)&&(a.transparent=!0,a.opacity=Math.max(50/t+c(-.3,.3),.1)),new d.Mesh(h,a));if(h.rotation.x=Math.PI/2,h.rotation.z=o,h.position.y=n,h.speed=.001*r,h.receiveShadow=!0,h.castShadow=!0,this.rings.push(h),this.cont.add(h),t<20&&s<1.3*Math.PI&&u(0,2))try{this.genRing(l(this.colors),t+c(-1,3),i+c(-2,0),o+s,s+c(-.5,.5),n+c(-3,1),r)}catch(e){}return h}onInit(){let t;var{}=this;this.cont=new d.Group,this.cont.position.set(30,0,0),this.cont.rotation.x=.06667,this.cont.rotation.z=.16667,this.scene.add(this.cont);let i=s()?30:60;for(let e=0;e<i;e++){let e;t=u(0,3)?(e=c(2,4)+c(1,30)*c(1,2)*c(1,2)*c(1,2),s()&&(e*=.5),c(0,3.5)+c(0,3.5)-u(0,e/4)-e/50):(e=c(1,3)*c(2,4),c(1,2)*c(1,2)*c(1.1,1.5));const i=.05*Math.pow(2,u(0,4));t<i&&(t=i),this.genRing(l(this.colors),e,t,c(0,1e3),c(1,6),c(0,50/(e+1)+5)+5/t/(e+.5),.25*Math.max(-c(.5,2),c(1,50-e/2)-e/2))}this.camera=new d.PerspectiveCamera(25,this.width/this.height,10,1e4),this.camera.position.set(0,150,200),this.scene.add(this.camera);var e=new d.AmbientLight(16777215,.5);return this.scene.add(e),this.pointLight=new d.PointLight(16777215,.5),this.pointLight.position.set(0,150,200),this.scene.add(this.pointLight),this.spot=new d.SpotLight(16777215,1),this.spot.position.set(-15,50,100),this.spot.penumbra=1,this.spot.angle=.5,this.spot.decay=1,this.spot.distance=300,this.spot.target=this.cont,this.scene.add(this.spot)}onUpdate(){let e;null!=this.helper&&this.helper.update(),null!=this.controls&&this.controls.update();var t,i=this.camera;.01<Math.abs(i.tx-i.position.x)&&(e=i.tx-i.position.x,i.position.x+=.02*e),.01<Math.abs(i.ty-i.position.y)&&(e=i.ty-i.position.y,i.position.y+=.02*e),i.lookAt(new d.Vector3(0,25,7)),i.near=Math.max(.5*i.position.z-20,1),i.updateProjectionMatrix();for(t of Array.from(null!=this.rings?this.rings:[]))t.rotation.z+=t.speed;i=.001*this.t;return this.cont.rotation.x+=1e-4*Math.sin(i),this.cont.rotation.z+=7e-5*Math.cos(i)}onMouseMove(e,t){var i=this.camera;return i.oy||(i.oy=i.position.y,i.ox=i.position.x),i.tx=i.ox+50*(e-.5),i.ty=i.oy-50*t}}h.initClass();const p=a.register("RINGS",h);return e})())()},881:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>u}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}let l="object"==typeof window&&window.THREE;class c extends h{constructor(e){l=e.THREE||l,super(e)}getDefaultOptions(){return{baseColor:6745,color2:15918901,backgroundColor:1251907,amplitudeFactor:1,ringFactor:1,rotationFactor:1,xOffset:0,yOffset:0,size:1,speed:1,mouseEase:!0,scaleMobile:1,scale:1}}onInit(){var e={minFilter:l.LinearFilter,magFilter:l.LinearFilter,format:l.RGBFormat},t=this.width*window.devicePixelRatio/this.scale,i=this.height*window.devicePixelRatio/this.scale;this.bufferTarget=new l.WebGLRenderTarget(t,i,e),this.bufferFeedback=new l.WebGLRenderTarget(t,i,e)}initBasicShader(e,t){super.initBasicShader(e,t),this.uniforms.iBuffer={type:"t",value:this.bufferTarget.texture}}onUpdate(){this.uniforms.iBuffer.value=this.bufferFeedback.texture;var e=this.renderer,e=(e.setRenderTarget(this.bufferTarget),e.render(this.scene,this.camera),e.setRenderTarget(null),e.clear(),this.bufferTarget);this.bufferTarget=this.bufferFeedback,this.bufferFeedback=e}onResize(){var e,t;this.bufferTarget&&(e=this.width*window.devicePixelRatio/this.scale,t=this.height*window.devicePixelRatio/this.scale,this.bufferTarget.setSize(e,t),this.bufferFeedback.setSize(e,t))}onDestroy(){this.bufferTarget=null,this.bufferFeedback=null}}const u=r.register("HALO",c);return c.prototype.fragmentShader="uniform vec2 iResolution;\nuniform float iDpr;\nuniform vec2 iMouse;\nuniform float iTime;\n\nuniform float xOffset;\nuniform float yOffset;\nuniform vec3 baseColor;\nuniform vec3 color2;\nuniform vec3 backgroundColor;\nuniform float size;\nuniform float shape;\nuniform float ringFactor;\nuniform float rotationFactor;\nuniform float amplitudeFactor;\n\nuniform sampler2D iBuffer;\nuniform sampler2D iTex;\nconst float PI = 3.14159265359;\n\n// float length2(vec2 p) { return dot(p, p); }\n\n// float noise(vec2 p){\n// return fract(sin(fract(sin(p.x) * (43.13311)) + p.y) * 31.0011);\n// }\n\n// float worley(vec2 p) {\n// float d = 1e30;\n// for (int xo = -1; xo <= 1; ++xo) {\n// for (int yo = -1; yo <= 1; ++yo) {\n// vec2 tp = floor(p) + vec2(xo, yo);\n// d = min(d, length2(p - tp - vec2(noise(tp))));\n// }\n// }\n// vec2 uv = gl_FragCoord.xy / iResolution.xy;\n// float timeOffset = 0.15 * sin(iTime * 2.0 + 10.0*(uv.x - uv.y));\n// return 3.0*exp(-4.0*abs(2.0*d - 1.0 + timeOffset));\n// }\n\n// float fworley(vec2 p) {\n// return sqrt(\n// 1.1 * // light\n// worley(p*10. + .3 + iTime*.0525) *\n// sqrt(worley(p * 50. / size + 0.1 + iTime * -0.75)) *\n// 4.1 *\n// sqrt(sqrt(worley(p * -1. + 9.3))));\n// }\n\nvec4 j2hue(float c) {\n return .5+.5*cos(6.28*c+vec4(0,-2.1,2.1,0));\n}\n\nvec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); }\n\nfloat snoise(vec2 v){\n const vec4 C = vec4(0.211324865405187, 0.366025403784439,\n -0.577350269189626, 0.024390243902439);\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n i = mod(i, 289.0);\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n + i.x + vec3(0.0, i1.x, 1.0 ));\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy),\n dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\nvec2 sincos( float x ){return vec2(sin(x), cos(x));}\nvec2 rotate2d(vec2 uv, float phi){vec2 t = sincos(phi); return vec2(uv.x*t.y-uv.y*t.x, uv.x*t.x+uv.y*t.y);}\nvec3 rotate3d(vec3 p, vec3 v, float phi){ v = normalize(v); vec2 t = sincos(-phi); float s = t.x, c = t.y, x =-v.x, y =-v.y, z =-v.z; mat4 M = mat4(x*x*(1.-c)+c,x*y*(1.-c)-z*s,x*z*(1.-c)+y*s,0.,y*x*(1.-c)+z*s,y*y*(1.-c)+c,y*z*(1.-c)-x*s,0.,z*x*(1.-c)-y*s,z*y*(1.-c)+x*s,z*z*(1.-c)+c,0.,0.,0.,0.,1.);return (vec4(p,1.)*M).xyz;}\n\n// Classic Perlin 3D Noise\n// by Stefan Gustavson\nvec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}\nvec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}\nfloat p3d(vec3 P){\n vec3 Pi0 = floor(P); // Integer part for indexing\n vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1\n Pi0 = mod(Pi0, 289.0);\n Pi1 = mod(Pi1, 289.0);\n vec3 Pf0 = fract(P); // Fractional part for interpolation\n vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\n vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\n vec4 iy = vec4(Pi0.yy, Pi1.yy);\n vec4 iz0 = Pi0.zzzz;\n vec4 iz1 = Pi1.zzzz;\n\n vec4 ixy = permute(permute(ix) + iy);\n vec4 ixy0 = permute(ixy + iz0);\n vec4 ixy1 = permute(ixy + iz1);\n\n vec4 gx0 = ixy0 / 7.0;\n vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;\n gx0 = fract(gx0);\n vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\n vec4 sz0 = step(gz0, vec4(0.0));\n gx0 -= sz0 * (step(0.0, gx0) - 0.5);\n gy0 -= sz0 * (step(0.0, gy0) - 0.5);\n\n vec4 gx1 = ixy1 / 7.0;\n vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;\n gx1 = fract(gx1);\n vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\n vec4 sz1 = step(gz1, vec4(0.0));\n gx1 -= sz1 * (step(0.0, gx1) - 0.5);\n gy1 -= sz1 * (step(0.0, gy1) - 0.5);\n\n vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\n vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\n vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\n vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\n vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\n vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\n vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\n vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\n\n vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\n g000 *= norm0.x;\n g010 *= norm0.y;\n g100 *= norm0.z;\n g110 *= norm0.w;\n vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\n g001 *= norm1.x;\n g011 *= norm1.y;\n g101 *= norm1.z;\n g111 *= norm1.w;\n\n float n000 = dot(g000, Pf0);\n float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\n float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\n float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\n float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\n float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\n float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\n float n111 = dot(g111, Pf1);\n\n vec3 fade_xyz = fade(Pf0);\n vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\n vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\n float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\n return 2.2 * n_xyz;\n}\n\n\nvoid main() {\n vec2 res2 = iResolution.xy * iDpr;\n vec2 pixel = vec2(gl_FragCoord.xy - 0.5 * res2) / res2.y; // center-origin pixel coord\n pixel.x -= xOffset * res2.x / res2.y;\n pixel.y -= yOffset;\n\n vec2 uv = gl_FragCoord.xy / res2; // 0 to 1\n\n // float nn1 = snoise(uv * 0.25 + iTime * 0.005 + mixedColor.b * 0.01) * 0.1;\n // float nn2 = snoise(uv * 0.25 + iTime * 0.005 + mixedColor.b * 0.01 + 1000.) * 0.1;\n // uv += vec2(nn1, nn2);\n\n // PERLIN DISTORTION\n // float noiseScale = 10.;\n // float timeScale = 0.5;\n // uv += vec2( p3d(vec3(uv * noiseScale, iTime * timeScale)), p3d(vec3(1000. + uv * noiseScale , iTime * timeScale)) ) * 0.001;\n\n // uv = rotate2d(uv, 0.001);\n // pixel = rotate2d(pixel, 0.001);\n\n vec2 mouse2 = (iMouse * iDpr / res2 - 0.5) * vec2(1.,-1.);\n vec2 uvBig = (uv - 0.5) * 0.996 + 0.5;\n\n vec4 oldImage = texture2D(iBuffer, uv);\n vec3 mixedColor = oldImage.rgb - backgroundColor;\n\n // float spinDist = 0.002 + 0.002 * sin(iTime * 0.4);\n float cropDist = 0.01;\n float cropXOffset = 0.2;\n float cropYOffset = 0.2;\n // float cropXOffset = 0.4 + 0.1 * sin(iTime * 0.4);\n // float cropYOffset = 0.4 + 0.1 * cos(iTime * 0.6);\n\n vec2 offset = uv + vec2((mixedColor.g - cropXOffset) * cropDist, (mixedColor.r - cropYOffset) * cropDist);\n\n // float nn = snoise(uv * 10.) * 0.001;\n // offset += nn;\n\n float spinDist = 0.001;\n float spinSpeed = 0.2 + 0.15 * cos(iTime * 0.5);\n float timeFrac = mod(iTime, 6.5);\n vec2 offset2 = uvBig + vec2(cos(timeFrac * spinSpeed) * spinDist, sin(timeFrac * spinSpeed) * spinDist);\n\n mixedColor = texture2D(iBuffer, offset).rgb * 0.4\n + texture2D(iBuffer, offset2).rgb * 0.6\n - backgroundColor;\n\n\n // mixedColor *= .875;\n float fadeAmt = 0.0015; // fade this amount each frame // 0.002\n mixedColor = (mixedColor - fadeAmt) * .995;\n\n // float nn = snoise(uvBig * 10.) * 20.;\n // mixedColor *= clamp(nn, 0.98, 1.0);\n\n vec4 spectrum = abs( abs( .95*atan(uv.x, uv.y) -vec4(0,2,4,0) ) -3. )-1.;\n float angle = atan(pixel.x, pixel.y);\n float dist = length(pixel - mouse2*0.15) * 8. + sin(iTime) * .01;\n\n // mixedColor *= pow(1.-dist*0.002, 2.);\n\n\n // Flowery shapes\n // float edge = abs(dist * 0.5);\n float flowerPeaks = .05 * amplitudeFactor * size;\n float flowerPetals = 7.;\n float edge = abs((dist + sin(angle * flowerPetals + iTime * 0.5) * sin(iTime * 1.5) * flowerPeaks) * 0.65 / size);\n // float edge = abs((dist + sin(angle * 4. + iTime * 2.) * sin(iTime * 3.) * 0.75) * 1.);\n\n // vec4 rainbow = abs( abs( .95*mod(iTime * 1., 2. * PI) - vec4(0,2,4,0) ) -3. )-1.;\n // vec4 rainbow = vec4(0,2,4,0);\n\n float colorChangeSpeed = 0.75 + 0.05 * sin(iTime) * 1.5;\n float rainbowInput = timeFrac * colorChangeSpeed;\n // NOISE!\n // float nn = snoise(uv * 0.25 + iTime * 0.005 + mixedColor.b * 0.01) * 20.;\n // rainbowInput += nn;\n\n float brightness = 0.7;\n vec4 rainbow = sqrt(j2hue(cos(rainbowInput))) + vec4(baseColor,0) - 1.0 + brightness;\n float factor = smoothstep(1., .9, edge) * pow(edge, 2.);\n vec3 color = rainbow.rgb * smoothstep(1., .9, edge) * pow(edge, 20.);\n vec4 ring = vec4(\n backgroundColor + clamp( mixedColor + color, 0., 1.)\n , 1.0);\n\n // float t = fworley(uv * u_resolution.xy / 1500.0);\n // t *= exp(-length2(abs(0.7*uv - 1.0)));\n // float tExp = pow(t, 2. - t);\n // vec3 c1 = color1 * (1.0 - t);\n // vec3 c2 = color2 * tExp;\n // vec4 cells = vec4(mixedColor * 0.25, 1.) + vec4(pow(t, 1.0 - t) * (c1 + c2), 1.0);\n // gl_FragColor = clamp(ring + cells * 0.5, 0.0, 1.0);\n\n // float nn = snoise(uv * 10.) * 0.01; // creepy!\n gl_FragColor = ring;\n}\n",e})())()}}]);
|
|
1
|
+
(window.webpackJsonpfeffery_utils_components=window.webpackJsonpfeffery_utils_components||[]).push([[2],{504:function(e,t,i){"use strict";i.r(t);var A=i(1),P=i.n(A),o=i(872),W=i.n(o),j=i(548),N=i(60),X=i(23),o=i(213);function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.backgroundColor,f=e.backgroundAlpha,v=e.color1,g=e.color2,y=e.colorMode,w=e.quantity,b=e.birdSize,M=e.wingSpan,x=e.speedLimit,C=e.separation,E=e.alignment,T=e.cohesion,e=(e.setProps,e.loading_state),z=(z=Object(A.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(z)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(z,t)||function(e,t){var i;if(e)return"string"==typeof e?Y(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Y(e,t):void 0}(z,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),S=z[0],O=z[1],R=Object(A.useRef)(null);return Object(A.useEffect)(function(){return S||O(W()({el:R.current,THREE:j,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,backgroundColor:m,backgroundAlpha:f,color1:v,color2:g,colorMode:y,quantity:w,birdSize:b,wingSpan:M,speedLimit:x,separation:C,alignment:E,cohesion:T})),function(){S&&S.destroy()}},[S]),P.a.createElement("div",{id:i,children:o,className:Object(X.isString)(s)?s:s?Object(N.a)(s):void 0,style:n,key:r,ref:R,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},505:function(e,t,i){"use strict";i.r(t);var C=i(1),E=i.n(C),o=i(873),T=i.n(o),z=i(548),S=i(60),O=i(23),o=i(214);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.highlightColor,p=e.midtoneColor,m=e.lowlightColor,f=e.baseColor,v=e.blurFactor,g=e.zoom,y=e.speed,e=(e.setProps,e.loading_state),w=(w=Object(C.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(w,t)||function(e,t){var i;if(e)return"string"==typeof e?R(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}(w,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=w[0],M=w[1],x=Object(C.useRef)(null);return Object(C.useEffect)(function(){return b||M(T()({el:x.current,THREE:z,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,highlightColor:d,midtoneColor:p,lowlightColor:m,baseColor:f,blurFactor:v,zoom:g,speed:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:i,children:o,className:Object(O.isString)(s)?s:s?Object(S.a)(s):void 0,style:n,key:r,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},506:function(e,t,i){"use strict";i.r(t);var C=i(1),E=i.n(C),o=i(874),T=i.n(o),z=i(548),S=i(60),O=i(23),o=i(215);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.color,f=e.shininess,v=e.waveHeight,g=e.waveSpeed,y=e.zoom,e=(e.setProps,e.loading_state),w=(w=Object(C.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(w,t)||function(e,t){var i;if(e)return"string"==typeof e?R(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}(w,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=w[0],M=w[1],x=Object(C.useRef)(null);return Object(C.useEffect)(function(){return b||M(T()({el:x.current,THREE:z,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,color:m,shininess:f,waveHeight:v,waveSpeed:g,zoom:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:i,children:o,className:Object(O.isString)(s)?s:s?Object(S.a)(s):void 0,style:n,key:r,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},507:function(e,t,i){"use strict";i.r(t);var E=i(1),T=i.n(E),o=i(875),z=i.n(o),S=i(548),O=i(60),R=i(23),o=i(216);function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.backgroundColor,p=e.skyColor,m=e.cloudColor,f=e.cloudShadowColor,v=e.sunColor,g=e.sunGlareColor,y=e.sunlightColor,w=e.speed,e=(e.setProps,e.loading_state),b=(b=Object(E.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(b)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(b,t)||function(e,t){var i;if(e)return"string"==typeof e?A(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?A(e,t):void 0}(b,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),M=b[0],x=b[1],C=Object(E.useRef)(null);return Object(E.useEffect)(function(){return M||x(z()({el:C.current,THREE:S,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,backgroundColor:d,skyColor:p,cloudColor:m,cloudShadowColor:f,sunColor:v,sunGlareColor:g,sunlightColor:y,speed:w})),function(){M&&M.destroy()}},[M]),T.a.createElement("div",{id:i,children:o,className:Object(R.isString)(s)?s:s?Object(O.a)(s):void 0,style:n,key:r,ref:C,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},508:function(e,t,i){"use strict";i.r(t);var C=i(1),E=i.n(C),o=i(876),T=i.n(o),z=i(548),S=i(60),O=i(23),o=i(217);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.texturePath,m=e.backgroundColor,f=e.skyColor,v=e.cloudColor,g=e.lightColor,y=e.speed,e=(e.setProps,e.loading_state),w=(w=Object(C.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(w,t)||function(e,t){var i;if(e)return"string"==typeof e?R(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}(w,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=w[0],M=w[1],x=Object(C.useRef)(null);return Object(C.useEffect)(function(){return b||M(T()({el:x.current,THREE:z,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,texturePath:p,backgroundColor:m,skyColor:f,cloudColor:v,lightColor:g,speed:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:i,children:o,className:Object(O.isString)(s)?s:s?Object(S.a)(s):void 0,style:n,key:r,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},509:function(e,t,i){"use strict";i.r(t);var x=i(1),C=i.n(x),o=i(877),E=i.n(o),T=i(548),z=i(60),S=i(23),o=i(218);function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.backgroundColor,f=e.color,v=e.color2,g=e.size,e=(e.setProps,e.loading_state),y=(y=Object(x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(y,t)||function(e,t){var i;if(e)return"string"==typeof e?O(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?O(e,t):void 0}(y,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=y[0],b=y[1],M=Object(x.useRef)(null);return Object(x.useEffect)(function(){return w||b(E()({el:M.current,THREE:T,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,backgroundColor:m,color:f,color2:v,size:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:i,children:o,className:Object(S.isString)(s)?s:s?Object(z.a)(s):void 0,style:n,key:r,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},510:function(e,t,i){"use strict";i.r(t);var E=i(1),T=i.n(E),o=i(878),z=i.n(o),S=i(548),O=i(60),R=i(23),o=i(219);function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.color,f=e.backgroundColor,v=e.points,g=e.maxDistance,y=e.spacing,w=e.showDots,e=(e.setProps,e.loading_state),b=(b=Object(E.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(b)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(b,t)||function(e,t){var i;if(e)return"string"==typeof e?A(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?A(e,t):void 0}(b,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),M=b[0],x=b[1],C=Object(E.useRef)(null);return Object(E.useEffect)(function(){return M||x(z()({el:C.current,THREE:S,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,color:m,backgroundColor:f,points:v,maxDistance:g,spacing:y,showDots:w})),function(){M&&M.destroy()}},[M]),T.a.createElement("div",{id:i,children:o,className:Object(R.isString)(s)?s:s?Object(O.a)(s):void 0,style:n,key:r,ref:C,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},511:function(e,t,i){"use strict";i.r(t);var M=i(1),x=i.n(M),o=i(879),C=i.n(o),E=i(548),T=i(60),z=i(23),o=i(220);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.color1,m=e.color2,f=e.size,v=e.speed,e=(e.setProps,e.loading_state),g=(g=Object(M.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(g)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(g,t)||function(e,t){var i;if(e)return"string"==typeof e?S(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?S(e,t):void 0}(g,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],w=g[1],b=Object(M.useRef)(null);return Object(M.useEffect)(function(){return y||w(C()({el:b.current,THREE:E,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,color1:p,color2:m,size:f,speed:v})),function(){y&&y.destroy()}},[y]),x.a.createElement("div",{id:i,children:o,className:Object(z.isString)(s)?s:s?Object(T.a)(s):void 0,style:n,key:r,ref:b,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},512:function(e,t,i){"use strict";i.r(t);var M=i(1),x=i.n(M),o=i(880),C=i.n(o),E=i(548),T=i(60),z=i(23),o=i(221);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.scale,p=e.scaleMobile,m=e.color,f=e.backgroundColor,v=e.backgroundAlpha,e=(e.setProps,e.loading_state),g=(g=Object(M.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(g)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(g,t)||function(e,t){var i;if(e)return"string"==typeof e?S(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?S(e,t):void 0}(g,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],w=g[1],b=Object(M.useRef)(null);return Object(M.useEffect)(function(){return y||w(C()({el:b.current,THREE:E,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,scale:d,scaleMobile:p,color:m,backgroundColor:f,backgroundAlpha:v})),function(){y&&y.destroy()}},[y]),x.a.createElement("div",{id:i,children:o,className:Object(z.isString)(s)?s:s?Object(T.a)(s):void 0,style:n,key:r,ref:b,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},513:function(e,t,i){"use strict";i.r(t);var x=i(1),C=i.n(x),o=i(881),E=i.n(o),T=i(548),z=i(60),S=i(23),o=i(222);function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}function s(e){var t,i=e.id,o=e.children,s=e.className,n=e.style,r=e.key,a=e.mouseControls,h=e.touchControls,l=e.gyroControls,c=e.minHeight,u=e.minWidth,d=e.backgroundColor,p=e.baseColor,m=e.size,f=e.amplitudeFactor,v=e.xOffset,g=e.yOffset,e=(e.setProps,e.loading_state),y=(y=Object(x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o,s,n,r,a=[],h=!0,l=!1;try{if(n=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;h=!1}else for(;!(h=(o=n.call(i)).done)&&(a.push(o.value),a.length!==t);h=!0);}catch(e){l=!0,s=e}finally{try{if(!h&&null!=i.return&&(r=i.return(),Object(r)!==r))return}finally{if(l)throw s}}return a}}(y,t)||function(e,t){var i;if(e)return"string"==typeof e?O(e,t):"Map"===(i="Object"===(i=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:i)||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?O(e,t):void 0}(y,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=y[0],b=y[1],M=Object(x.useRef)(null);return Object(x.useEffect)(function(){return w||b(E()({el:M.current,THREE:T,mouseControls:a,touchControls:h,gyroControls:l,minHeight:c,minWidth:u,backgroundColor:d,baseColor:p,size:m,amplitudeFactor:f,xOffset:v,yOffset:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:i,children:o,className:Object(S.isString)(s)?s:s?Object(z.a)(s):void 0,style:n,key:r,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},o)}(t.default=s).defaultProps=o.b,s.propTypes=o.c},872:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function t(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),t()&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var a=r.VantaBase;let h="object"==typeof window&&window.THREE,{Camera:d,ClampToEdgeWrapping:p,DataTexture:m,FloatType:f,Mesh:v,NearestFilter:g,PlaneBufferGeometry:y,RGBAFormat:w,Scene:b,ShaderMaterial:M,WebGLRenderTarget:x}=h||{};function C(h,l,c,e){e&&({Camera:d,ClampToEdgeWrapping:p,DataTexture:m,FloatType:f,Mesh:v,NearestFilter:g,PlaneBufferGeometry:y,RGBAFormat:w,Scene:b,ShaderMaterial:M,WebGLRenderTarget:x}=e),this.variables=[],this.currentTextureIndex=0;var r=f,o=new b,s=new d,i=(s.position.z=1,{passThruTexture:{value:null}}),n=t("uniform sampler2D passThruTexture;\n\nvoid main() {\n\n\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\n\tgl_FragColor = texture2D( passThruTexture, uv );\n\n}\n",i),a=new v(new y(2,2),n);function u(e){e.defines.resolution="vec2( "+h.toFixed(1)+", "+l.toFixed(1)+" )"}function t(e,t){t=new M({uniforms:t=t||{},vertexShader:"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n",fragmentShader:e});return u(t),t}o.add(a),this.setDataType=function(e){return r=e,this},this.addVariable=function(e,t,i){e={name:e,initialValueTexture:i,material:this.createShaderMaterial(t),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:g,magFilter:g};return this.variables.push(e),e},this.setVariableDependencies=function(e,t){e.dependencies=t},this.init=function(){if(!c.capabilities.isWebGL2&&!c.extensions.get("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===c.capabilities.maxVertexTextures)return"No support for vertex shader textures.";for(var e=0;e<this.variables.length;e++){var t=this.variables[e],i=(t.renderTargets[0]=this.createRenderTarget(h,l,t.wrapS,t.wrapT,t.minFilter,t.magFilter),t.renderTargets[1]=this.createRenderTarget(h,l,t.wrapS,t.wrapT,t.minFilter,t.magFilter),this.renderTexture(t.initialValueTexture,t.renderTargets[0]),this.renderTexture(t.initialValueTexture,t.renderTargets[1]),t.material),o=i.uniforms;if(null!==t.dependencies)for(var s=0;s<t.dependencies.length;s++){var n=t.dependencies[s];if(n.name!==t.name){for(var r=!1,a=0;a<this.variables.length;a++)if(n.name===this.variables[a].name){r=!0;break}if(!r)return"Variable dependency not found. Variable="+t.name+", dependency="+n.name}o[n.name]={value:null},i.fragmentShader="\nuniform sampler2D "+n.name+";\n"+i.fragmentShader}}return this.currentTextureIndex=0,null},this.compute=function(){for(var e=this.currentTextureIndex,t=0===this.currentTextureIndex?1:0,i=0,o=this.variables.length;i<o;i++){var s=this.variables[i];if(null!==s.dependencies)for(var n=s.material.uniforms,r=0,a=s.dependencies.length;r<a;r++){var h=s.dependencies[r];n[h.name].value=h.renderTargets[e].texture}this.doRenderTarget(s.material,s.renderTargets[t])}this.currentTextureIndex=t},this.getCurrentRenderTarget=function(e){return e.renderTargets[this.currentTextureIndex]},this.getAlternateRenderTarget=function(e){return e.renderTargets[0===this.currentTextureIndex?1:0]},this.addResolutionDefine=u,this.createShaderMaterial=t,this.createRenderTarget=function(e,t,i,o,s,n){return new x(e=e||h,t=t||l,{wrapS:i=i||p,wrapT:o=o||p,minFilter:s=s||g,magFilter:n=n||g,format:w,type:r,stencilBuffer:!1,depthBuffer:!1})},this.createTexture=function(){var e=new Float32Array(h*l*4);return new m(e,h,l,w,f)},this.renderTexture=function(e,t){i.passThruTexture.value=e,this.doRenderTarget(n,t),i.passThruTexture.value=null},this.doRenderTarget=function(e,t){var i=c.getRenderTarget();a.material=e,c.setRenderTarget(t),c.render(o,s),a.material=n,c.setRenderTarget(i)}}let E="object"==typeof window&&window.THREE;const u=!t();let T=32,z=T*T;class S{constructor(e){var o,t,i=new E.Vector3,s=500,n=500,r=200,c=e;this.position=new E.Vector3,this.velocity=new E.Vector3,o=new E.Vector3,this.setGoal=function(e){t=e},this.setWorldSize=function(e,t,i){s=e,n=t,r=i},this.run=function(e){i.set(-s,this.position.y,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(s,this.position.y,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,-n,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,n,this.position.z),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,this.position.y,-r),(i=this.avoid(i)).multiplyScalar(5),o.add(i),i.set(this.position.x,this.position.y,r),(i=this.avoid(i)).multiplyScalar(5),o.add(i),.5<Math.random()&&this.flock(e),this.move()},this.flock=function(e){t&&o.add(this.reach(t,.005)),o.add(this.alignment(e)),o.add(this.cohesion(e)),o.add(this.separation(e))},this.move=function(){this.velocity.add(o);var e=this.velocity.length();2.5<e&&this.velocity.divideScalar(e/2.5),this.position.add(this.velocity),o.set(0,0,0)},this.checkBounds=function(){this.position.x>s&&(this.position.x=-s),this.position.x<-s&&(this.position.x=s),this.position.y>n&&(this.position.y=-n),this.position.y<-n&&(this.position.y=n),this.position.z>r&&(this.position.z=-r),this.position.z<-r&&(this.position.z=r)},this.avoid=function(e){var t=new E.Vector3;return t.copy(this.position),t.sub(e),t.multiplyScalar(1/this.position.distanceToSquared(e)),t},this.repulse=function(e){var t,i=this.position.distanceTo(e);i<150&&((t=new E.Vector3).subVectors(this.position,e),t.multiplyScalar(.5/i),o.add(t))},this.reach=function(e,t){var i=new E.Vector3;return i.subVectors(e,this.position),i.multiplyScalar(t),i},this.alignment=function(e){for(var t,i,o,s=new E.Vector3,n=0,r=100*c.alignment/20,a=0,h=e.length;a<h;a++).6<Math.random()||0<(i=(t=e[a]).position.distanceTo(this.position))&&i<=r&&(s.add(t.velocity),n++);return 0<n&&(s.divideScalar(n),.1<(o=s.length()))&&s.divideScalar(o/.1),s},this.cohesion=function(e){for(var t,i,o=new E.Vector3,s=new E.Vector3,n=0,r=100*c.cohesion/20,a=0,h=e.length;a<h;a++).6<Math.random()||0<(i=(t=e[a]).position.distanceTo(this.position))&&i<=r&&(o.add(t.position),n++);0<n&&o.divideScalar(n),s.subVectors(o,this.position);var l=s.length();return.1<l&&s.divideScalar(l/.1),s},this.separation=function(e){for(var t,i,o=new E.Vector3,s=new E.Vector3,n=100*c.separation/20,r=0,a=e.length;r<a;r++).6<Math.random()||0<(i=(t=e[r]).position.distanceTo(this.position))&&i<=n&&(s.subVectors(this.position,t.position),s.normalize(),s.divideScalar(i),o.add(s));return o}}}class l extends a{static initClass(){this.prototype.defaultOptions={backgroundColor:465199,color1:16711680,color2:53759,colorMode:"varianceGradient",birdSize:1,wingSpan:30,speedLimit:5,separation:20,alignment:20,cohesion:20,quantity:5}}constructor(e){E=e.THREE||E,super(e)}initComputeRenderer(){this.gpuCompute=new C(T,T,this.renderer,E);var t=this.gpuCompute.createTexture(),i=this.gpuCompute.createTexture();{const n=t.image.data;let e=0;const r=n.length;for(var o=[];e<r;){const r=800*Math.random()-400,a=800*Math.random()-400,h=800*Math.random()-400;n[e+0]=r,n[e+1]=a,n[e+2]=h,n[e+3]=1,o.push(e+=4)}}{const l=i.image.data;let e=0;const c=l.length;for(var s=[];e<c;){const c=Math.random()-.5,u=Math.random()-.5,d=Math.random()-.5;l[e+0]=10*c,l[e+1]=10*u,l[e+2]=10*d,l[e+3]=1,s.push(e+=4)}}this.velocityVariable=this.gpuCompute.addVariable("textureVelocity","uniform float time;\nuniform float testing;\nuniform float delta; // about 0.016\nuniform float separationDistance; // 20\nuniform float alignmentDistance; // 40\nuniform float cohesionDistance;\nuniform float speedLimit;\nuniform float freedomFactor;\nuniform vec3 predator;\n\nconst float width = resolution.x;\nconst float height = resolution.y;\n\nconst float PI = 3.141592653589793;\nconst float PI_2 = PI * 2.0;\n// const float VISION = PI * 0.55;\n\nfloat zoneRadius = 40.0;\nfloat zoneRadiusSquared = 1600.0;\n\nfloat separationThresh = 0.45;\nfloat alignmentThresh = 0.65;\n\nconst float UPPER_BOUNDS = BOUNDS;\nconst float LOWER_BOUNDS = -UPPER_BOUNDS;\n\nfloat rand(vec2 co){\n return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\n\nvoid main() {\n\n zoneRadius = separationDistance + alignmentDistance + cohesionDistance;\n separationThresh = separationDistance / zoneRadius;\n alignmentThresh = ( separationDistance + alignmentDistance ) / zoneRadius;\n zoneRadiusSquared = zoneRadius * zoneRadius;\n\n\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec3 birdPosition, birdVelocity;\n\n vec3 selfPosition = texture2D( texturePosition, uv ).xyz;\n vec3 selfVelocity = texture2D( textureVelocity, uv ).xyz;\n\n float dist;\n vec3 dir; // direction\n float distSquared;\n\n float separationSquared = separationDistance * separationDistance;\n float cohesionSquared = cohesionDistance * cohesionDistance;\n\n float f;\n float percent;\n\n vec3 velocity = selfVelocity;\n\n float limit = speedLimit;\n\n dir = predator * UPPER_BOUNDS - selfPosition;\n dir.z = 0.;\n // dir.z *= 0.6;\n dist = length( dir );\n distSquared = dist * dist;\n\n float preyRadius = 150.0;\n float preyRadiusSq = preyRadius * preyRadius;\n\n // move birds away from predator\n if (dist < preyRadius) {\n\n f = ( distSquared / preyRadiusSq - 1.0 ) * delta * 100.;\n velocity += normalize( dir ) * f;\n limit += 5.0;\n }\n\n // if (testing == 0.0) {}\n // if ( rand( uv + time ) < freedomFactor ) {}\n\n // Attract flocks to the center\n vec3 central = vec3( 0., 0., 0. );\n dir = selfPosition - central;\n dist = length( dir );\n\n dir.y *= 2.5;\n velocity -= normalize( dir ) * delta * 5.;\n\n for (float y=0.0;y<height;y++) {\n for (float x=0.0;x<width;x++) {\n\n vec2 ref = vec2( x + 0.5, y + 0.5 ) / resolution.xy;\n birdPosition = texture2D( texturePosition, ref ).xyz;\n\n dir = birdPosition - selfPosition;\n dist = length(dir);\n\n if (dist < 0.0001) continue;\n\n distSquared = dist * dist;\n\n if (distSquared > zoneRadiusSquared ) continue;\n\n percent = distSquared / zoneRadiusSquared;\n\n if ( percent < separationThresh ) { // low\n\n // Separation - Move apart for comfort\n f = (separationThresh / percent - 1.0) * delta;\n velocity -= normalize(dir) * f;\n\n } else if ( percent < alignmentThresh ) { // high\n\n // Alignment - fly the same direction\n float threshDelta = alignmentThresh - separationThresh;\n float adjustedPercent = ( percent - separationThresh ) / threshDelta;\n\n birdVelocity = texture2D( textureVelocity, ref ).xyz;\n\n f = ( 0.5 - cos( adjustedPercent * PI_2 ) * 0.5 + 0.5 ) * delta;\n velocity += normalize(birdVelocity) * f;\n\n } else {\n\n // Attraction / Cohesion - move closer\n float threshDelta = 1.0 - alignmentThresh;\n float adjustedPercent = ( percent - alignmentThresh ) / threshDelta;\n\n f = ( 0.5 - ( cos( adjustedPercent * PI_2 ) * -0.5 + 0.5 ) ) * delta;\n\n velocity += normalize(dir) * f;\n\n }\n }\n }\n\n // this make tends to fly around than down or up\n // if (velocity.y > 0.) velocity.y *= (1. - 0.2 * delta);\n\n // Speed Limits\n if ( length( velocity ) > limit ) {\n velocity = normalize( velocity ) * limit;\n }\n\n gl_FragColor = vec4( velocity, 1.0 );\n\n}",i),this.positionVariable=this.gpuCompute.addVariable("texturePosition","uniform float time;\nuniform float delta;\n\nvoid main() {\n\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 tmpPos = texture2D( texturePosition, uv );\n vec3 position = tmpPos.xyz;\n vec3 velocity = texture2D( textureVelocity, uv ).xyz;\n\n float phase = tmpPos.w;\n\n phase = mod( ( phase + delta +\n length( velocity.xz ) * delta * 3. +\n max( velocity.y, 0.0 ) * delta * 6. ), 62.83 );\n\n gl_FragColor = vec4( position + velocity * delta * 15. , phase );\n\n}",t),this.gpuCompute.setVariableDependencies(this.velocityVariable,[this.positionVariable,this.velocityVariable]),this.gpuCompute.setVariableDependencies(this.positionVariable,[this.positionVariable,this.velocityVariable]),this.positionUniforms=this.positionVariable.material.uniforms,this.velocityUniforms=this.velocityVariable.material.uniforms,this.positionUniforms.time={value:0},this.positionUniforms.delta={value:0},this.velocityUniforms.time={value:1},this.velocityUniforms.delta={value:0},this.velocityUniforms.testing={value:1},this.velocityUniforms.separationDistance={value:1},this.velocityUniforms.alignmentDistance={value:1},this.velocityUniforms.cohesionDistance={value:1},this.velocityUniforms.speedLimit={value:1},this.velocityUniforms.freedomFactor={value:1},this.velocityUniforms.predator={value:new E.Vector3},this.velocityVariable.material.defines.BOUNDS=800..toFixed(2),this.velocityVariable.wrapS=E.RepeatWrapping,this.velocityVariable.wrapT=E.RepeatWrapping,this.positionVariable.wrapS=E.RepeatWrapping,this.positionVariable.wrapT=E.RepeatWrapping;i=this.gpuCompute.init();null!==i&&console.error(i)}initGpgpuBirds(){var e=(e=>{const t=new E.BufferGeometry,i=(e.quantity&&(T=Math.pow(2,e.quantity),z=T*T),3*z),o=3*i,s=new E.BufferAttribute(new Float32Array(3*o),3),n=new E.BufferAttribute(new Float32Array(3*o),3),r=new E.BufferAttribute(new Float32Array(2*o),2),a=new E.BufferAttribute(new Float32Array(o),1);t.setAttribute||(t.setAttribute=t.addAttribute),t.setAttribute("position",s),t.setAttribute("birdColor",n),t.setAttribute("reference",r),t.setAttribute("birdVertex",a);let h=0;const l=function(){for(let e=0;e<arguments.length;e++)s.array[h++]=arguments[e]},c=e.wingSpan||20,u=e.birdSize||1;for(let e=0;e<z;e++)l(0,-0,-20*u,0,4*u,-20*u,0,0,30*u),l(0,0,-15*u,-c*u,0,0,0,0,15*u),l(0,0,15*u,c*u,0,0,0,0,-15*u);var d={};for(h=0;h<3*i;h++){const t=~~(h/3),i=t%T/T,o=~~(t/T)/T,s=~~(h/9)/z,l=s.toString(),c=-1!=e.colorMode.indexOf("Gradient");var p=!c&&d[l]?d[l]:e.effect.getNewCol(s);c||d[l]||(d[l]=p),n.array[3*h+0]=p.r,n.array[3*h+1]=p.g,n.array[3*h+2]=p.b,r.array[2*h]=i,r.array[2*h+1]=o,a.array[h]=h%9}return t.scale(.2,.2,.2)})(Object.assign({},this.options,{effect:this})),t=(this.birdUniforms={color:{value:new E.Color(16720384)},texturePosition:{value:null},textureVelocity:{value:null},time:{value:1},delta:{value:0},birdSize:{value:this.options.birdSize}},new E.ShaderMaterial({uniforms:this.birdUniforms,vertexShader:"attribute vec2 reference;\nattribute float birdVertex;\n\nattribute vec3 birdColor;\n\nuniform sampler2D texturePosition;\nuniform sampler2D textureVelocity;\n\nvarying vec4 vColor;\nvarying float z;\n\nuniform float time;\nuniform float birdSize;\n\nvoid main() {\n\n vec4 tmpPos = texture2D( texturePosition, reference );\n vec3 pos = tmpPos.xyz;\n vec3 velocity = normalize(texture2D( textureVelocity, reference ).xyz);\n\n vec3 newPosition = position;\n\n if ( birdVertex == 4.0 || birdVertex == 7.0 ) {\n // flap wings\n newPosition.y = sin( tmpPos.w ) * 5. * birdSize;\n }\n\n newPosition = mat3( modelMatrix ) * newPosition;\n\n velocity.z *= -1.;\n float xz = length( velocity.xz );\n float xyz = 1.;\n float x = sqrt( 1. - velocity.y * velocity.y );\n\n float cosry = velocity.x / xz;\n float sinry = velocity.z / xz;\n\n float cosrz = x / xyz;\n float sinrz = velocity.y / xyz;\n\n mat3 maty = mat3(\n cosry, 0, -sinry,\n 0 , 1, 0 ,\n sinry, 0, cosry\n );\n\n mat3 matz = mat3(\n cosrz , sinrz, 0,\n -sinrz, cosrz, 0,\n 0 , 0 , 1\n );\n newPosition = maty * matz * newPosition;\n newPosition += pos;\n z = newPosition.z;\n\n vColor = vec4( birdColor, 1.0 );\n gl_Position = projectionMatrix * viewMatrix * vec4( newPosition, 1.0 );\n}",fragmentShader:"varying vec4 vColor;\nvarying float z;\nuniform vec3 color;\nvoid main() {\n // Fake colors for now\n float rr = 0.2 + ( 1000. - z ) / 1000. * vColor.x;\n float gg = 0.2 + ( 1000. - z ) / 1000. * vColor.y;\n float bb = 0.2 + ( 1000. - z ) / 1000. * vColor.z;\n gl_FragColor = vec4( rr, gg, bb, 1. );\n}",side:E.DoubleSide})),e=new E.Mesh(e,t);return e.rotation.y=Math.PI/2,e.matrixAutoUpdate=!1,e.updateMatrix(),this.scene.add(e)}getNewCol(e){const t=this.options,i=null!=t.color1?t.color1:4456448,o=null!=t.color2?t.color2:6684672,s=new E.Color(i),n=new E.Color(o);let r,a;if(a=-1!=t.colorMode.indexOf("Gradient")?Math.random():e,0==t.colorMode.indexOf("variance")){const e=(s.r+Math.random()*n.r).clamp(0,1),t=(s.g+Math.random()*n.g).clamp(0,1),i=(s.b+Math.random()*n.b).clamp(0,1);r=new E.Color(e,t,i)}else r=0==t.colorMode.indexOf("mix")?new E.Color(i+a*o):s.lerp(n,a);return r}onInit(){this.camera=new E.PerspectiveCamera(75,this.width/this.height,1,3e3),this.camera.position.z=350,this.fog=new E.Fog(16777215,100,1e3),this.mouseX=this.mouseY=0;const e=this.birds=[],t=this.boids=[],i=this.options;if(u)try{this.initComputeRenderer(),this.valuesChanger=this.valuesChanger.bind(this),this.valuesChanger(),this.initGpgpuBirds()}catch(e){console.error("[vanta.js] birds init error: ",e)}else for(var o=6*Math.pow(2,i.quantity),s=0;s<o;s++){(n=t[s]=new S(i)).position.x=400*Math.random()-200,n.position.y=400*Math.random()-200,n.position.z=400*Math.random()-200,n.velocity.x=2*Math.random()-1,n.velocity.y=2*Math.random()-1,n.velocity.z=2*Math.random()-1,n.setWorldSize(500,500,300);var n=-1!=i.colorMode.indexOf("Gradient"),r=((s={})=>{const e=new E.BufferGeometry,n=[];function t(e,t,i){var o=1.5*(s.birdSize||1);n.push(new E.Vector3(e*o,t*o,i*o))}t(5,0,0),t(-5,-1,1),t(-5,0,0),t(-5,-2,-1),t(0,2,-6),t(0,2,6),t(2,0,0),t(-3,0,0),e.setFromPoints(n);var i=[];return i.push(0,2,1),i.push(4,7,6),i.push(5,6,7),e.setIndex(i),e})(i),a=r.attributes.position.length,h=new E.BufferAttribute(new Float32Array(a),3);if(n)for(var l=0;l<r.index.array.length;l+=3)for(var c=0;c<=2;c++){const e=r.index.array[l+c],t=this.getNewCol();h.array[3*e]=t.r,h.array[3*e+1]=t.g,h.array[3*e+2]=t.b}else{const e=this.getNewCol(s/o);for(l=0;l<h.array.length;l+=3)h.array[l]=e.r,h.array[l+1]=e.g,h.array[l+2]=e.b}r.setAttribute("color",h),(a=e[s]=new E.Mesh(r,new E.MeshBasicMaterial({color:16777215,side:E.DoubleSide,vertexColors:E.VertexColors}))).phase=Math.floor(62.83*Math.random()),a.position.x=t[s].position.x,a.position.y=t[s].position.y,a.position.z=t[s].position.z,this.scene.add(a)}}valuesChanger(){this.velocityUniforms&&(this.velocityUniforms.separationDistance.value=this.options.separation,this.velocityUniforms.alignmentDistance.value=this.options.alignment,this.velocityUniforms.speedLimit.value=this.options.speedLimit,this.velocityUniforms.cohesionDistance.value=this.options.cohesion)}onUpdate(){this.now=performance.now(),this.last||(this.last=this.now);let e=(this.now-this.last)/1e3;if(1<e&&(e=1),this.last=this.now,u)this.positionUniforms.time.value=this.now,this.positionUniforms.delta.value=e,this.velocityUniforms.time.value=this.now,this.velocityUniforms.delta.value=e,this.birdUniforms.time.value=this.now,this.birdUniforms.delta.value=e,this.velocityUniforms.predator.value.set(this.mouseX,-this.mouseY,0),this.mouseX=1e4,this.mouseY=1e4,this.gpuCompute.compute(),this.birdUniforms.texturePosition.value=this.gpuCompute.getCurrentRenderTarget(this.positionVariable).texture,this.birdUniforms.textureVelocity.value=this.gpuCompute.getCurrentRenderTarget(this.velocityVariable).texture;else{const e=this.birds,n=this.boids;for(var t,i,o=0,s=e.length;o<s;o++){(t=n[o]).run(n),(i=e[o]).rotation.y=Math.atan2(-t.velocity.z,t.velocity.x),i.rotation.z=Math.asin(t.velocity.y/t.velocity.length()),i.phase=(i.phase+(Math.max(0,i.rotation.z)+.1))%62.83;const s=16;i.geometry.attributes.position.array[16]=i.geometry.attributes.position.array[13]=5*Math.sin(i.phase)*this.options.birdSize,i.geometry.attributes.position.needsUpdate=!0,i.geometry.computeVertexNormals(),i.position.x=n[o].position.x,i.position.y=n[o].position.y,i.position.z=n[o].position.z}}}onMouseMove(e,t){if(this.mouseX=e-.5,this.mouseY=t-.5,!u){const e=this.boids;for(var i,o=new E.Vector3(this.mouseX*this.width,-this.mouseY*this.height,0),s=0,n=e.length;s<n;s++)i=e[s],o.z=i.position.z,i.repulse(o)}}onDestroy(){}onResize(){}}l.initClass();const c=r.register("BIRDS",l);return e})())()},873:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("FOG",l);return l.prototype.defaultOptions={highlightColor:16761600,midtoneColor:16719616,lowlightColor:2949375,baseColor:16772075,blurFactor:.6,speed:1,zoom:1,scale:2,scaleMobile:4},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\n\nuniform float blurFactor;\nuniform vec3 baseColor;\nuniform vec3 lowlightColor;\nuniform vec3 midtoneColor;\nuniform vec3 highlightColor;\nuniform float zoom;\n\nfloat random (in vec2 _st) {\n return fract(sin(dot(_st.xy,\n vec2(0.129898,0.78233)))*\n 437.585453123);\n}\n\n// Based on Morgan McGuire @morgan3d\n// https://www.shadertoy.com/view/4dS3Wd\nfloat noise (in vec2 _st) {\n vec2 i = floor(_st);\n vec2 f = fract(_st);\n\n // Four corners in 2D of a tile\n float a = random(i);\n float b = random(i + vec2(1.0, 0.0));\n float c = random(i + vec2(0.0, 1.0));\n float d = random(i + vec2(1.0, 1.0));\n\n vec2 u = f * f * (3.0 - 2.0 * f);\n\n return mix(a, b, u.x) +\n (c - a)* u.y * (1.0 - u.x) +\n (d - b) * u.x * u.y;\n}\n\n#define NUM_OCTAVES 6\n\nfloat fbm ( in vec2 _st) {\n float v = 0.0;\n float a = blurFactor;\n vec2 shift = vec2(100.0);\n // Rotate to reduce axial bias\n mat2 rot = mat2(cos(0.5), sin(0.5),\n -sin(0.5), cos(0.50));\n for (int i = 0; i < NUM_OCTAVES; ++i) {\n v += a * noise(_st);\n _st = rot * _st * 2.0 + shift;\n a *= (1. - blurFactor);\n }\n return v;\n}\n\nvoid main() {\n vec2 st = gl_FragCoord.xy / iResolution.xy*3.;\n st.x *= 0.7 * iResolution.x / iResolution.y ; // Still keep it more landscape than square\n st *= zoom;\n\n // st += st * abs(sin(iTime*0.1)*3.0);\n vec3 color = vec3(0.0);\n\n vec2 q = vec2(0.);\n q.x = fbm( st + 0.00*iTime);\n q.y = fbm( st + vec2(1.0));\n\n vec2 dir = vec2(0.15,0.126);\n vec2 r = vec2(0.);\n r.x = fbm( st + 1.0*q + vec2(1.7,9.2)+ dir.x*iTime );\n r.y = fbm( st + 1.0*q + vec2(8.3,2.8)+ dir.y*iTime);\n\n float f = fbm(st+r);\n\n color = mix(baseColor,\n lowlightColor,\n clamp((f*f)*4.0,0.0,1.0));\n\n color = mix(color,\n midtoneColor,\n clamp(length(q),0.0,1.0));\n\n color = mix(color,\n highlightColor,\n clamp(length(r.x),0.0,1.0));\n\n vec3 finalColor = mix(baseColor, color, f*f*f+.6*f*f+.5*f);\n gl_FragColor = vec4(finalColor,1.0);\n}\n",e})())()},874:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>h}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let d="object"==typeof window&&window.THREE;class a extends t{static initClass(){this.prototype.ww=100,this.prototype.hh=80,this.prototype.waveNoise=4}constructor(e){d=e.THREE||d,super(e)}getMaterial(){var e={color:this.options.color,shininess:this.options.shininess,flatShading:!0,side:d.DoubleSide};return new d.MeshPhongMaterial(e)}onInit(){let i,o;const e=this.getMaterial(),t=new d.BufferGeometry,s=(this.gg=[],[]);for(i=0;i<=this.ww;i++)for(this.gg[i]=[],o=0;o<=this.hh;o++){const u=s.length,e=new d.Vector3(18*(i-.5*this.ww),(null==(r=this.waveNoise)&&(r=1),(n=0)+Math.random()*(r-n)-10),18*(.5*this.hh-o));s.push(e),this.gg[i][o]=u}t.setFromPoints(s);var n,r,a,h,l=[];for(i=1;i<=this.ww;i++)for(o=1;o<=this.hh;o++){let e,t;const s=this.gg[i][o],n=this.gg[i][o-1],r=this.gg[i-1][o],d=this.gg[i-1][o-1];null==(a=0)&&(a=0),null==(h=1)&&(h=1),t=Math.floor(a+Math.random()*(h-a+1))?(e=[d,n,r],[n,r,s]):(e=[d,n,s],[d,r,s]),l.push(...e,...t)}t.setIndex(l),this.plane=new d.Mesh(t,e),this.scene.add(this.plane);var c=new d.AmbientLight(16777215,.9),c=(this.scene.add(c),new d.PointLight(16777215,.9));c.position.set(-100,250,-100),this.scene.add(c),this.camera=new d.PerspectiveCamera(35,this.width/this.height,50,1e4),this.cameraPosition=new d.Vector3(240,200,390),this.cameraTarget=new d.Vector3(140,-30,190),this.camera.position.copy(this.cameraPosition),this.scene.add(this.camera)}onUpdate(){let e;this.plane.material.color.set(this.options.color),this.plane.material.shininess=this.options.shininess,this.camera.ox=this.cameraPosition.x/this.options.zoom,this.camera.oy=this.cameraPosition.y/this.options.zoom,this.camera.oz=this.cameraPosition.z/this.options.zoom,null!=this.controls&&this.controls.update();const t=this.camera;.01<Math.abs(t.tx-t.position.x)&&(e=t.tx-t.position.x,t.position.x+=.02*e),.01<Math.abs(t.ty-t.position.y)&&(e=t.ty-t.position.y,t.position.y+=.02*e),.01<Math.abs(t.tz-t.position.z)&&(e=t.tz-t.position.z,t.position.z+=.02*e),t.lookAt(this.cameraTarget),this.oy=this.oy||{};for(let e=0;e<this.plane.geometry.attributes.position.array.length;e+=3){const t={x:this.plane.geometry.attributes.position.array[e],y:this.plane.geometry.attributes.position.array[e+1],z:this.plane.geometry.attributes.position.array[e+2],oy:this.oy[e]};var i,o;t.oy?(i=this.options.waveSpeed,o=Math.sqrt(i)*Math.cos(-t.x-.7*t.z),i=Math.sin(i*this.t*.02-i*t.x*.025+i*t.z*.015+o),o=Math.pow(i+1,2)/4,t.y=t.oy+o*this.options.waveHeight,this.plane.geometry.attributes.position.array[e+1]=t.y):this.oy[e]=t.y}this.plane.geometry.attributes.position.setUsage(d.DynamicDrawUsage),this.plane.geometry.computeVertexNormals(),this.plane.geometry.attributes.position.needsUpdate=!0,this.wireframe&&(this.wireframe.geometry.fromGeometry(this.plane.geometry),this.wireframe.geometry.computeFaceNormals())}onMouseMove(e,t){var i=this.camera;return i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z),i.tx=i.ox+100*(e-.5)/this.options.zoom,i.ty=i.oy+-100*(t-.5)/this.options.zoom,i.tz=i.oz+-50*(e-.5)/this.options.zoom}}a.prototype.defaultOptions={color:21896,shininess:30,waveHeight:15,waveSpeed:1,zoom:1},a.initClass();const h=r.register("WAVES",a);return e})())()},875:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("CLOUDS",l);return l.prototype.defaultOptions={backgroundColor:16777215,skyColor:6863063,cloudColor:11387358,cloudShadowColor:1586512,sunColor:16750873,sunGlareColor:16737843,sunlightColor:16750899,scale:3,scaleMobile:12,speed:1,mouseEase:!0},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\nuniform sampler2D iTex;\n\nuniform float speed;\nuniform vec3 skyColor;\nuniform vec3 cloudColor;\nuniform vec3 cloudShadowColor;\nuniform vec3 sunColor;\nuniform vec3 sunlightColor;\nuniform vec3 sunGlareColor;\nuniform vec3 backgroundColor;\n\n// uniform vec4 iMouse; // mouse pixel coords. xy: current (if MLB down), zw: click\n// uniform samplerXX iChannel0..3; // input channel. XX = 2D/Cube\n\n\n// Volumetric clouds. It performs level of detail (LOD) for faster rendering\nfloat hash(float p) {\n p = fract(p * 0.011);\n p *= (p + 7.5);\n p *= (p + p);\n return fract(p);\n}\n\nfloat noise( vec3 x ){\n // The noise function returns a value in the range -1.0f -> 1.0f\n vec3 p = floor(x);\n vec3 f = fract(x);\n f = f*f*(3.0-2.0*f);\n float n = p.x + p.y*57.0 + 113.0*p.z;\n return mix(mix(mix( hash(n+0.0 ), hash(n+1.0 ),f.x),\n mix( hash(n+57.0 ), hash(n+58.0 ),f.x),f.y),\n mix(mix( hash(n+113.0), hash(n+114.0),f.x),\n mix( hash(n+170.0), hash(n+171.0),f.x),f.y),f.z);\n}\n\nconst float constantTime = 1000.;\nfloat map5( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q ); q = q*2.03;\n f += 0.12500*noise( q ); q = q*2.01;\n f += 0.06250*noise( q ); q = q*2.02;\n f += 0.03125*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\nfloat map4( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q ); q = q*2.03;\n f += 0.12500*noise( q ); q = q*2.01;\n f += 0.06250*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\nfloat map3( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q ); q = q*2.03;\n f += 0.12500*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\nfloat map2( in vec3 p ){\n vec3 speed1 = vec3(0.5,0.01,1.0) * 0.5 * speed;\n vec3 q = p - speed1*(iTime + constantTime);\n float f;\n f = 0.50000*noise( q ); q = q*2.02;\n f += 0.25000*noise( q );\n return clamp( 1.5 - p.y - 2.0 + 1.75*f, 0.0, 1.0 );\n}\n\nvec3 sundir = normalize( vec3(-1.0,0.0,-1.0) );\n\nvec4 integrate( in vec4 sum, in float dif, in float den, in vec3 bgcol, in float t ){\n // lighting\n vec3 lin = cloudColor*1.4 + sunlightColor*dif;\n vec4 col = vec4( mix( vec3(1.0,0.95,0.8), cloudShadowColor, den ), den );\n col.xyz *= lin;\n col.xyz = mix( col.xyz, bgcol, 1.0-exp(-0.003*t*t) );\n // front to back blending\n col.a *= 0.4;\n col.rgb *= col.a;\n return sum + col*(1.0-sum.a);\n}\n\n#define MARCH(STEPS,MAPLOD) for(int i=0; i<STEPS; i++) { vec3 pos = ro + t*rd; if( pos.y<-3.0 || pos.y>2.0 || sum.a > 0.99 ) break; float den = MAPLOD( pos ); if( den>0.01 ) { float dif = clamp((den - MAPLOD(pos+0.3*sundir))/0.6, 0.0, 1.0 ); sum = integrate( sum, dif, den, bgcol, t ); } t += max(0.075,0.02*t); }\n\nvec4 raymarch( in vec3 ro, in vec3 rd, in vec3 bgcol, in ivec2 px ){\n vec4 sum = vec4(0.0);\n\n float t = 0.0;\n\n MARCH(20,map5);\n MARCH(25,map4);\n MARCH(30,map3);\n MARCH(40,map2);\n\n return clamp( sum, 0.0, 1.0 );\n}\n\nmat3 setCamera( in vec3 ro, in vec3 ta, float cr ){\n vec3 cw = normalize(ta-ro);\n vec3 cp = vec3(sin(cr), cos(cr),0.0);\n vec3 cu = normalize( cross(cw,cp) );\n vec3 cv = normalize( cross(cu,cw) );\n return mat3( cu, cv, cw );\n}\n\nvec4 render( in vec3 ro, in vec3 rd, in ivec2 px ){\n // background sky\n float sun = clamp( dot(sundir,rd), 0.0, 1.0 );\n vec3 col = skyColor - rd.y*0.2*vec3(1.0,0.5,1.0) + 0.15*0.5;\n col += 0.2*sunColor*pow( sun, 8.0 );\n\n // clouds\n vec4 res = raymarch( ro, rd, col, px );\n col = col*(1.0-res.w) + res.xyz;\n\n // sun glare\n col += 0.2*sunGlareColor*pow( sun, 3.0 );\n\n return vec4( col, 1.0 );\n}\n\nvoid main(){\n vec2 p = (-iResolution.xy + 2.0*gl_FragCoord.xy)/ iResolution.y;\n\n vec2 m = iMouse.xy/iResolution.xy;\n m.y = (1.0 - m.y) * 0.33 + 0.28; // camera height\n\n m.x *= 0.25;\n m.x += sin(iTime * 0.1 + 3.1415) * 0.25 + 0.25;\n\n // camera\n vec3 ro = 4.0*normalize(vec3(sin(3.0*m.x), 0.4*m.y, cos(3.0*m.x))); // origin\n vec3 ta = vec3(0.0, -1.0, 0.0);\n mat3 ca = setCamera( ro, ta, 0.0 );\n // ray\n vec3 rd = ca * normalize( vec3(p.xy,1.5));\n\n gl_FragColor = render( ro, rd, ivec2(gl_FragCoord-0.5) );\n}\n",e})())()},876:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("CLOUDS2",l);return l.prototype.defaultOptions={backgroundColor:0,skyColor:6072010,cloudColor:3362176,lightColor:16777215,speed:1,texturePath:"./gallery/noise.png",scaleMobile:4},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\nuniform sampler2D iTex;\nuniform float speed;\nuniform vec3 skyColor;\nuniform vec3 cloudColor;\nuniform vec3 lightColor;\n\n# define T texture2D(iTex, fract((s*p.zw + ceil(s*p.x)) / 200.0)).y / (s += s) * 4.0\n\nvoid main(){\n vec2 coord = gl_FragCoord.xy;\n vec4 p, d = vec4(0.8, 0, coord / iResolution.y - 0.65);\n vec3 out1 = skyColor - d.w; // sky gradient\n float s, f, t = 200.0 + sin(dot(coord,coord));\n const float MAX_ITER = 100.0;\n for (float i = 1.0; i <= MAX_ITER; i += 1.0) {\n t -= 2.0; if (t < 0.0) { break; } // march step\n p = 0.05 * t * d;\n p.xz += iTime * 0.50000 * speed; // movement through space\n p.x += sin(iTime * 0.25 * speed) * 0.25;\n s = 2.0;\n f = p.w + 1.0-T-T-T-T;\n // f = p.w + 1.0 - 0.25*noise(p.xyz * 2.0) - 0.25*noise(p.zxy * 2.01) - 0.25*noise(p.yzx * 2.03);\n if (f < 0.0) {\n vec3 cloudColorShading = mix(lightColor, cloudColor, -f);\n out1 = mix(out1, cloudColorShading, -f * 0.4);\n }\n }\n gl_FragColor = vec4(out1, 1.0);\n}",e})())()},877:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function v(e,t){return null==t&&(t=1),(e=null==e?0:e)+Math.random()*(t-e)}o.r(e),o.d(e,{default:()=>h}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const g=e=>.299*e.r+.587*e.g+.114*e.b,i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{},t=(r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24",r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}},r.VantaBase),m="object"==typeof window;let y=m&&window.THREE;class a extends t{static initClass(){this.prototype.defaultOptions={color:16727937,color2:16777215,size:1,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){y=e.THREE||y,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){const e=new y.SphereGeometry(.25,12,12),t=new y.MeshLambertMaterial({color:this.options.color});o=new y.Mesh(e,t)}else o=new y.Object3D;return this.cont.add(o),o.ox=e,o.oy=t,o.oz=i,o.position.set(e,t,i),o.r=0,this.points.push(o)}onInit(){this.cont=new y.Group,this.cont.position.set(-50,-20,0),this.scene.add(this.cont);let i=this.options.points,o=this.options["spacing"];const s=i*i*2,n=(this.linePositions=new Float32Array(s*s*3),this.lineColors=new Float32Array(s*s*3),g(new y.Color(this.options.color))),t=g(new y.Color(this.options.backgroundColor)),r=(this.blending=n>t?"additive":"subtractive",new y.BufferGeometry);r.setAttribute("position",new y.BufferAttribute(this.linePositions,3).setUsage(y.DynamicDrawUsage)),r.setAttribute("color",new y.BufferAttribute(this.lineColors,3).setUsage(y.DynamicDrawUsage)),r.computeBoundingSphere(),r.setDrawRange(0,0);var e=new y.LineBasicMaterial({vertexColors:y.VertexColors,blending:"additive"===this.blending?y.AdditiveBlending:null,transparent:!0});this.linesMesh=new y.LineSegments(r,e),this.cont.add(this.linesMesh);for(let t=0;t<=i;t++)for(let e=0;e<=i;e++){const s=0,n=(t-i/2)*o;var a=(e-i/2)*o;this.genPoint(n,0,a)}this.camera=new y.PerspectiveCamera(20,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);var e=new y.AmbientLight(16777215,.75),e=(this.scene.add(e),this.spot=new y.SpotLight(16777215,1),this.spot.position.set(0,200,0),this.spot.distance=400,this.spot.target=this.cont,this.scene.add(this.spot),this.cont2=new y.Group,this.cont2.position.set(0,15,0),this.scene.add(this.cont2),new y.LineBasicMaterial({color:this.options.color2})),h=[];for(let e=0;e<80;e++){const i=v(18,24),o=i+v(1,6),g=v(-1,1),s=Math.sqrt(1-g*g),n=v(0,2*Math.PI),t=Math.sin(n)*s,r=Math.cos(n)*s;h.push(new y.Vector3(r*i,t*i,g*i)),h.push(new y.Vector3(r*o,t*o,g*o))}var l=(new y.BufferGeometry).setFromPoints(h),l=(this.linesMesh2=new y.LineSegments(l,e),this.linesMesh2.position.set(0,0,0),this.cont2.add(this.linesMesh2),new y.LineBasicMaterial({color:this.options.color2,linewidth:2})),c=[];c.push(new y.Vector3(0,30,0)),c.push(new y.Vector3(0,-30,0));for(let e=0;e<4;e++){var u=.15*Math.cos(e/4*Math.PI*2),d=.15*Math.sin(e/4*Math.PI*2),p=[17.9,12,8,5,3,2,1.5,1.1,.8,.6,.45,.3,.2,.1,.05,.03,.02,.01];for(let e=0;e<p.length;e++){var m=p[e],f=6*(e+1);c.push(new y.Vector3(u*f,m,d*f)),c.push(new y.Vector3(u*f,-m,d*f))}}e=(new y.BufferGeometry).setFromPoints(c),this.linesMesh3=new y.LineSegments(e,l),this.linesMesh3.position.set(0,0,0),this.cont2.add(this.linesMesh3),e=new y.LineBasicMaterial({color:this.options.color}),l=new y.SphereGeometry(18*this.options.size,18,14),l=new y.EdgesGeometry(l);this.sphere=new y.LineSegments(l,e),this.sphere.position.set(0,0,0),this.cont2.add(this.sphere),this.cont2.rotation.x=-.25}onUpdate(){let i;null!=this.helper&&this.helper.update(),null!=this.controls&&this.controls.update();var e=this.camera;.01<Math.abs(e.tx-e.position.x)&&(i=e.tx-e.position.x,e.position.x+=.02*i),.01<Math.abs(e.ty-e.position.y)&&(i=e.ty-e.position.y,e.position.y+=.02*i),m&&window.innerWidth<480?e.lookAt(new y.Vector3(-10,0,0)):m&&window.innerWidth<720?e.lookAt(new y.Vector3(-20,0,0)):e.lookAt(new y.Vector3(-40,0,0));let o=0,s=0,n=0;var r,a=new y.Color(this.options.backgroundColor),h=new y.Color(this.options.color),e=new y.Color(this.options.color2),l=h.clone().sub(a);this.rayCaster&&this.rayCaster.setFromCamera(new y.Vector2(this.rcMouseX,this.rcMouseY),this.camera),this.linesMesh2&&(this.linesMesh2.rotation.z+=.002,this.linesMesh2.rotation.x+=8e-4,this.linesMesh2.rotation.y+=5e-4),this.sphere&&(this.sphere.rotation.y+=.002,this.linesMesh3.rotation.y-=.004);for(let t=0;t<this.points.length;t++){const m=this.points[t];var c=(this.rayCaster?this.rayCaster.ray.distanceToPoint(m.position):1e3).clamp(5,15);m.scale.z=(.25*(15-c)).clamp(1,100),m.scale.x=m.scale.y=m.scale.z,m.position.y=2*Math.sin(m.position.x/10+.01*this.t+m.position.z/10*.5);for(let e=t;e<this.points.length;e++){const i=this.points[e],u=m.position.x-i.position.x,d=m.position.y-i.position.y,p=m.position.z-i.position.z;if((r=Math.sqrt(u*u+d*d+p*p))<this.options.maxDistance){let e,t=2*(1-r/this.options.maxDistance);t=t.clamp(0,1),e="additive"===this.blending?new y.Color(0).lerp(l,t):a.clone().lerp(h,t),this.linePositions[o++]=m.position.x,this.linePositions[o++]=m.position.y,this.linePositions[o++]=m.position.z,this.linePositions[o++]=i.position.x,this.linePositions[o++]=i.position.y,this.linePositions[o++]=i.position.z,this.lineColors[s++]=e.r,this.lineColors[s++]=e.g,this.lineColors[s++]=e.b,this.lineColors[s++]=e.r,this.lineColors[s++]=e.g,this.lineColors[s++]=e.b,n++}}}return this.linesMesh.geometry.setDrawRange(0,2*n),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,this.sphere.material.color.set(h),this.linesMesh2.material.color.set(e),this.linesMesh3.material.color.set(e),.001*this.t}onMouseMove(e,t){var i=this.camera,o=(i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z),Math.atan2(i.oz,i.ox)),s=Math.sqrt(i.oz*i.oz+i.ox*i.ox),o=o+1.5*(e-.5)*(this.options.mouseCoeffX||1);i.tz=s*Math.sin(o),i.tx=s*Math.cos(o),i.ty=i.oy+80*(t-.5)*(this.options.mouseCoeffY||1),this.rayCaster,this.rcMouseX=2*e-1,this.rcMouseY=2*-e+1}onRestart(){this.scene.remove(this.linesMesh),this.points=[]}}a.initClass();const h=r.register("GLOBE",a);return e})())()},878:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function a(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}function h(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}o.r(e),o.d(e,{default:()=>u}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const l=e=>.299*e.r+.587*e.g+.114*e.b,i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),a()&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let v="object"==typeof window&&window.THREE;class c extends t{static initClass(){this.prototype.defaultOptions={color:16727937,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){v=e.THREE||v,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){const e=new v.SphereGeometry(.25,12,12),t=new v.MeshLambertMaterial({color:this.options.color});o=new v.Mesh(e,t)}else o=new v.Object3D;return this.cont.add(o),o.ox=e,o.oy=t,o.oz=i,o.position.set(e,t,i),o.r=(t=-(e=2))+Math.random()*(e-t),this.points.push(o)}onInit(){this.cont=new v.Group,this.cont.position.set(0,0,0),this.scene.add(this.cont);let o=this.options.points,s=this.options["spacing"];a()&&(o=~~(.75*o),s=~~(.65*s));const n=o*o*2,r=(this.linePositions=new Float32Array(n*n*3),this.lineColors=new Float32Array(n*n*3),l(new v.Color(this.options.color))),e=l(new v.Color(this.options.backgroundColor));this.blending=r>e?"additive":"subtractive";var t=new v.BufferGeometry,i=(t.setAttribute("position",new v.BufferAttribute(this.linePositions,3).setUsage(v.DynamicDrawUsage)),t.setAttribute("color",new v.BufferAttribute(this.lineColors,3).setUsage(v.DynamicDrawUsage)),t.computeBoundingSphere(),t.setDrawRange(0,0),new v.LineBasicMaterial({vertexColors:v.VertexColors,blending:"additive"===this.blending?v.AdditiveBlending:null,transparent:!0}));this.linesMesh=new v.LineSegments(t,i),this.cont.add(this.linesMesh);for(let i=0;i<=o;i++)for(let t=0;t<=o;t++){const n=h(-3,3),r=(i-o/2)*s+h(-5,5);let e=(t-o/2)*s+h(-5,5);i%2&&(e+=.5*s),this.genPoint(r,n-h(5,15),e),this.genPoint(r+h(-5,5),n+h(5,15),e+h(-5,5))}this.camera=new v.PerspectiveCamera(25,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);t=new v.AmbientLight(16777215,.75);return this.scene.add(t),this.spot=new v.SpotLight(16777215,1),this.spot.position.set(0,200,0),this.spot.distance=400,this.spot.target=this.cont,this.scene.add(this.spot)}onDestroy(){this.scene&&this.scene.remove(this.linesMesh),this.spot=this.points=this.linesMesh=this.lineColors=this.linePositions=null}setOptions(t){super.setOptions(t),t.color&&this.points.forEach(e=>{e.material.color=new v.Color(t.color)})}onUpdate(){let o;var e=this.camera;.01<Math.abs(e.tx-e.position.x)&&(o=e.tx-e.position.x,e.position.x+=.02*o),.01<Math.abs(e.ty-e.position.y)&&(o=e.ty-e.position.y,e.position.y+=.02*o),e.lookAt(new v.Vector3(0,0,0));let s=0,n=0,r=0;var a=new v.Color(this.options.backgroundColor),h=new v.Color(this.options.color),l=h.clone().sub(a);this.rayCaster&&this.rayCaster.setFromCamera(new v.Vector2(this.rcMouseX,this.rcMouseY),this.camera);for(let i=0;i<this.points.length;i++){let t;var c,u=this.points[i],d=(this.rayCaster?this.rayCaster.ray.distanceToPoint(u.position):1e3).clamp(5,15);u.scale.x=u.scale.y=u.scale.z=(.25*(15-d)).clamp(1,100),0!==u.r&&(d=Math.atan2(u.position.z,u.position.x),t=Math.sqrt(u.position.z*u.position.z+u.position.x*u.position.x),d+=25e-5*u.r,u.position.x=t*Math.cos(d),u.position.z=t*Math.sin(d));for(let e=i;e<this.points.length;e++){const o=this.points[e],p=u.position.x-o.position.x,m=u.position.y-o.position.y,f=u.position.z-o.position.z;(t=Math.sqrt(p*p+m*m+f*f))<this.options.maxDistance&&(c=(2*(1-t/this.options.maxDistance)).clamp(0,1),c="additive"===this.blending?new v.Color(0).lerp(l,c):a.clone().lerp(h,c),this.linePositions[s++]=u.position.x,this.linePositions[s++]=u.position.y,this.linePositions[s++]=u.position.z,this.linePositions[s++]=o.position.x,this.linePositions[s++]=o.position.y,this.linePositions[s++]=o.position.z,this.lineColors[n++]=c.r,this.lineColors[n++]=c.g,this.lineColors[n++]=c.b,this.lineColors[n++]=c.r,this.lineColors[n++]=c.g,this.lineColors[n++]=c.b,r++)}}return this.linesMesh.geometry.setDrawRange(0,2*r),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,.001*this.t}onMouseMove(e,t){var i=this.camera,o=(i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z),Math.atan2(i.oz,i.ox)),s=Math.sqrt(i.oz*i.oz+i.ox*i.ox),o=o+2*(e-.5)*(this.options.mouseCoeffX||1);i.tz=s*Math.sin(o),i.tx=s*Math.cos(o),i.ty=i.oy+50*(t-.5)*(this.options.mouseCoeffY||1),this.rayCaster,this.rcMouseX=2*e-1,this.rcMouseY=2*-e+1}onRestart(){this.scene&&this.scene.remove(this.linesMesh),this.points=[]}}c.initClass();const u=r.register("NET",c);return e})())()},879:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}class l extends h{}const c=r.register("CELLS",l);return l.prototype.defaultOptions={color1:35980,color2:15918901,backgroundColor:14155663,amplitudeFactor:1,ringFactor:1,rotationFactor:1,size:1.5,speed:1,scaleMobile:3},l.prototype.fragmentShader="uniform vec2 iResolution;\nuniform vec2 iMouse;\nuniform float iTime;\n\nuniform float blurFactor;\nuniform vec3 color1;\nuniform vec3 color2;\nuniform vec3 backgroundColor;\nuniform float size;\nuniform float amplitudeFactor;\nuniform float ringFactor;\nuniform float rotationFactor;\n\nfloat length2(vec2 p) { return dot(p, p); }\n\nfloat noise(vec2 p){\n return fract(sin(fract(sin(p.x) * (43.13311)) + p.y) * 31.0011);\n}\n\nfloat worley(vec2 p) {\n float d = 1e30;\n for (int xo = -1; xo <= 1; ++xo) {\n for (int yo = -1; yo <= 1; ++yo) {\n vec2 tp = floor(p) + vec2(xo, yo);\n d = min(d, length2(p - tp - vec2(noise(tp))));\n }\n }\n vec2 uv = gl_FragCoord.xy / iResolution.xy;\n float timeOffset = 0.15 * sin(iTime * 2.0 + 10.0*(uv.x - uv.y));\n return 3.0*exp(-4.0*abs(2.0*d - 1.0 + timeOffset));\n}\n\nfloat fworley(vec2 p) {\n return sqrt(sqrt(sqrt(\n 1.1 * // light\n worley(p*5. + .3 + iTime*.0525) *\n sqrt(worley(p * 50. / size + 0.3 + iTime * -0.15)) *\n sqrt(sqrt(worley(p * -10. + 9.3))))));\n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy / iResolution.xy;\n float t = fworley(uv * iResolution.xy / 1500.0);\n t *= exp(-length2(abs(0.7*uv - 1.0)));\n\n float tExp = pow(t, 0.5 - t);\n vec3 c1 = color1 * (1.0 - t);\n vec3 c2 = color2 * tExp;\n\n gl_FragColor = vec4(pow(t, 1.0 - t) * (c1 + c2), 1.0);\n}\n",e})())()},880:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};function s(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}o.r(e),o.d(e,{default:()=>p}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const l=e=>e[Math.floor(Math.random()*e.length)];function c(e,t){return null==t&&(t=1),(e=null==e?0:e)+Math.random()*(t-e)}function u(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}const i="object"==typeof window;let n=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function r(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const a=i&&window.VANTA||{};a.register=(e,t)=>a[e]=e=>new t(e),a.version="0.5.24";a.VantaBase=class{constructor(e={}){if(!i)return!1;(a.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(n=this.options.THREE),this.el=this.options.el,null==this.el)r('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void r("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return r("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){n.WebGLRenderer?(this.renderer=new n.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new n.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),s()&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),a.current===this&&(a.current=null)}};var t=a.VantaBase;let d="object"==typeof window&&window.THREE;class h extends t{static initClass(){this.prototype.defaultOptions={backgroundColor:2106408,color:8978176},this.prototype.colors=[16720469,16716185,16737996,8978176,7851025,16776960,16742195,1179647,1149149,16768290,2250188,7975100,5468283]}constructor(e){d=e.THREE||d,super(e)}material(e){return new d.MeshLambertMaterial({color:e})}genRing(e,t,i,o,s,n,r){null==o&&(o=0),null==s&&(s=1.4*Math.PI),null==n&&(n=0),null==r&&(r=1),this.rings||(this.rings=[]),t<1&&(t=1);var a={depth:.4,bevelEnabled:!1,steps:1,curveSegments:~~(64*s/6.14)},h=new d.Shape,h=(h.absarc(0,0,t+i,0,s,!1),h.lineTo(t*Math.cos(s),t*Math.sin(s)),h.absarc(0,0,t,s,0,!0),new d.ExtrudeGeometry(h,a)),a=this.material(e),h=((0===u(0,1)||60<t)&&(a.transparent=!0,a.opacity=Math.max(50/t+c(-.3,.3),.1)),new d.Mesh(h,a));if(h.rotation.x=Math.PI/2,h.rotation.z=o,h.position.y=n,h.speed=.001*r,h.receiveShadow=!0,h.castShadow=!0,this.rings.push(h),this.cont.add(h),t<20&&s<1.3*Math.PI&&u(0,2))try{this.genRing(l(this.colors),t+c(-1,3),i+c(-2,0),o+s,s+c(-.5,.5),n+c(-3,1),r)}catch(e){}return h}onInit(){let t;var{}=this;this.cont=new d.Group,this.cont.position.set(30,0,0),this.cont.rotation.x=.06667,this.cont.rotation.z=.16667,this.scene.add(this.cont);let i=s()?30:60;for(let e=0;e<i;e++){let e;t=u(0,3)?(e=c(2,4)+c(1,30)*c(1,2)*c(1,2)*c(1,2),s()&&(e*=.5),c(0,3.5)+c(0,3.5)-u(0,e/4)-e/50):(e=c(1,3)*c(2,4),c(1,2)*c(1,2)*c(1.1,1.5));const i=.05*Math.pow(2,u(0,4));t<i&&(t=i),this.genRing(l(this.colors),e,t,c(0,1e3),c(1,6),c(0,50/(e+1)+5)+5/t/(e+.5),.25*Math.max(-c(.5,2),c(1,50-e/2)-e/2))}this.camera=new d.PerspectiveCamera(25,this.width/this.height,10,1e4),this.camera.position.set(0,150,200),this.scene.add(this.camera);var e=new d.AmbientLight(16777215,.5);return this.scene.add(e),this.pointLight=new d.PointLight(16777215,.5),this.pointLight.position.set(0,150,200),this.scene.add(this.pointLight),this.spot=new d.SpotLight(16777215,1),this.spot.position.set(-15,50,100),this.spot.penumbra=1,this.spot.angle=.5,this.spot.decay=1,this.spot.distance=300,this.spot.target=this.cont,this.scene.add(this.spot)}onUpdate(){let e;null!=this.helper&&this.helper.update(),null!=this.controls&&this.controls.update();var t,i=this.camera;.01<Math.abs(i.tx-i.position.x)&&(e=i.tx-i.position.x,i.position.x+=.02*e),.01<Math.abs(i.ty-i.position.y)&&(e=i.ty-i.position.y,i.position.y+=.02*e),i.lookAt(new d.Vector3(0,25,7)),i.near=Math.max(.5*i.position.z-20,1),i.updateProjectionMatrix();for(t of Array.from(null!=this.rings?this.rings:[]))t.rotation.z+=t.speed;i=.001*this.t;return this.cont.rotation.x+=1e-4*Math.sin(i),this.cont.rotation.z+=7e-5*Math.cos(i)}onMouseMove(e,t){var i=this.camera;return i.oy||(i.oy=i.position.y,i.ox=i.position.x),i.tx=i.ox+50*(e-.5),i.ty=i.oy-50*t}}h.initClass();const p=a.register("RINGS",h);return e})())()},881:function(e,t,i){e.exports=(()=>(()=>{"use strict";var o={d:(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{default:()=>u}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let s=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});function n(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}const r=i&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";r.VantaBase=class{constructor(e={}){if(!i)return!1;(r.current=this).windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.windowGyroWrapper=this.windowGyroWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);var t="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object.assign({mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1},t),(e instanceof HTMLElement||"string"==typeof e)&&(e={el:e}),Object.assign(this.options,e),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)n('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void n("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return n("Init error",e),this.renderer&&this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),void(this.options.backgroundColor&&(console.log("[VANTA] Falling back to backgroundColor"),this.el.style.background="number"==typeof(t=this.options.backgroundColor)?"#"+("00000"+t.toString(16)).slice(-6):t))}this.initMouse(),this.resize(),this.animationLoop();t=window.addEventListener;t("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&t("deviceorientation",this.windowGyroWrapper)}setOptions(e={}){Object.assign(this.options,e),this.triggerMouseMove()}prepareEl(){let e,t;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(e=0;e<this.el.childNodes.length;e++){const t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){const e=document.createElement("span");e.textContent=t.textContent,t.parentElement.insertBefore(e,t),t.remove()}}for(e=0;e<this.el.children.length;e++)t=this.el.children[e],"static"===getComputedStyle(t).position&&(t.style.position="relative"),"auto"===getComputedStyle(t).zIndex&&(t.style.zIndex=1);"static"===getComputedStyle(this.el).position&&(this.el.style.position="relative")}applyCanvasStyles(e,t={}){Object.assign(e.style,{position:"absolute",zIndex:0,top:0,left:0,background:""}),Object.assign(e.style,t),e.classList.add("vanta-canvas")}initThree(){s.WebGLRenderer?(this.renderer=new s.WebGLRenderer({alpha:!0,antialias:!0}),this.el.appendChild(this.renderer.domElement),this.applyCanvasStyles(this.renderer.domElement),isNaN(this.options.backgroundAlpha)&&(this.options.backgroundAlpha=1),this.scene=new s.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){var e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=e.clientX-t.left,e=e.clientY-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}windowTouchWrapper(e){var t,i=this.getCanvasRect();if(!i)return!1;1===e.touches.length&&(t=e.touches[0].clientX-i.left,e=e.touches[0].clientY-i.top,0<=t)&&0<=e&&t<=i.width&&e<=i.height&&(this.mouseX=t,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(t,e))}windowGyroWrapper(e){var t=this.getCanvasRect();if(!t)return!1;var i=Math.round(2*e.alpha)-t.left,e=Math.round(2*e.beta)-t.top;0<=i&&0<=e&&i<=t.width&&e<=t.height&&(this.mouseX=i,this.mouseY=e,this.options.mouseEase||this.triggerMouseMove(i,e))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(t=this.options.mouseEase?(e=this.mouseEaseX,this.mouseEaseY):(e=this.mouseX,this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);e/=this.width,t/=this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(e,t)}setSize(){this.scale||(this.scale=1),"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)&&this.options.scaleMobile?this.scale=this.options.scaleMobile:this.options.scale&&(this.scale=this.options.scale),this.width=Math.max(this.el.offsetWidth,this.options.minWidth),this.height=Math.max(this.el.offsetHeight,this.options.minHeight)}initMouse(){(!this.mouseX&&!this.mouseY||this.mouseX===this.options.minWidth/2&&this.mouseY===this.options.minHeight/2)&&(this.mouseX=this.width/2,this.mouseY=this.height/2,this.triggerMouseMove(this.mouseX,this.mouseY))}resize(){this.setSize(),this.camera&&(this.camera.aspect=this.width/this.height,"function"==typeof this.camera.updateProjectionMatrix)&&this.camera.updateProjectionMatrix(),this.renderer&&(this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(window.devicePixelRatio/this.scale)),"function"==typeof this.onResize&&this.onResize()}isOnScreen(){var e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,t=t.top+i;return t-window.innerHeight<=i&&i<=t+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);var e,t=performance.now();return this.prevNow&&(e=(t-this.prevNow)/(1e3/60),e=Math.max(.2,Math.min(e,5)),this.t+=e,this.t2+=(this.options.speed||1)*e,this.uniforms)&&(this.uniforms.iTime.value=.016667*this.t2),this.prevNow=t,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,.1<Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY))&&(this.mouseEaseX+=.05*(this.mouseX-this.mouseEaseX),this.mouseEaseY+=.05*(this.mouseY-this.mouseEaseY),this.triggerMouseMove(this.mouseEaseX,this.mouseEaseY)),(this.isOnScreen()||this.options.forceAnimate)&&("function"==typeof this.onUpdate&&this.onUpdate(),this.scene&&this.camera&&(this.renderer.render(this.scene,this.camera),this.renderer.setClearColor(this.options.backgroundColor,this.options.backgroundAlpha)),this.fps&&this.fps.update&&this.fps.update(),"function"==typeof this.afterRender)&&this.afterRender(),this.req=window.requestAnimationFrame(this.animationLoop)}restart(){if(this.scene)for(;this.scene.children.length;)this.scene.remove(this.scene.children[0]);"function"==typeof this.onRestart&&this.onRestart(),this.init()}init(){"function"==typeof this.onInit&&this.onInit()}destroy(){"function"==typeof this.onDestroy&&this.onDestroy();var e=window.removeEventListener,e=(e("touchstart",this.windowTouchWrapper),e("touchmove",this.windowTouchWrapper),e("scroll",this.windowMouseMoveWrapper),e("mousemove",this.windowMouseMoveWrapper),e("deviceorientation",this.windowGyroWrapper),e("resize",this.resize),window.cancelAnimationFrame(this.req),this.scene);e&&e.children&&function e(t){for(;t.children&&0<t.children.length;)e(t.children[0]),t.remove(t.children[0]);t.geometry&&t.geometry.dispose(),t.material&&(Object.keys(t.material).forEach(e=>{t.material[e]&&null!==t.material[e]&&"function"==typeof t.material[e].dispose&&t.material[e].dispose()}),t.material.dispose())}(e),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};var t=r.VantaBase;let a="object"==typeof window&&window.THREE;class h extends t{constructor(e){(a=e.THREE||a).Color.prototype.toVector=function(){return new a.Vector3(this.r,this.g,this.b)},super(e),this.updateUniforms=this.updateUniforms.bind(this)}init(){this.mode="shader",this.uniforms={iTime:{type:"f",value:1},iResolution:{type:"v2",value:new a.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new a.Vector2(this.mouseX||0,this.mouseY||0)}},super.init(),this.fragmentShader&&this.initBasicShader()}setOptions(e){super.setOptions(e),this.updateUniforms()}initBasicShader(e=this.fragmentShader,t=this.vertexShader){t=t||"uniform float uTime;\nuniform vec2 uResolution;\nvoid main() {\n gl_Position = vec4( position, 1.0 );\n}",this.updateUniforms(),"function"==typeof this.valuesChanger&&this.valuesChanger();t=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(e)}),e=new a.Mesh(new a.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){var e={};let t,i;for(t in this.options)i=this.options[t],-1!==t.toLowerCase().indexOf("color")?e[t]={type:"v3",value:new a.Color(i).toVector()}:"number"==typeof i&&(e[t]={type:"f",value:i});return Object.assign(this.uniforms,e)}resize(){super.resize(),this.uniforms.iResolution.value.x=this.width/this.scale,this.uniforms.iResolution.value.y=this.height/this.scale}}let l="object"==typeof window&&window.THREE;class c extends h{constructor(e){l=e.THREE||l,super(e)}getDefaultOptions(){return{baseColor:6745,color2:15918901,backgroundColor:1251907,amplitudeFactor:1,ringFactor:1,rotationFactor:1,xOffset:0,yOffset:0,size:1,speed:1,mouseEase:!0,scaleMobile:1,scale:1}}onInit(){var e={minFilter:l.LinearFilter,magFilter:l.LinearFilter,format:l.RGBFormat},t=this.width*window.devicePixelRatio/this.scale,i=this.height*window.devicePixelRatio/this.scale;this.bufferTarget=new l.WebGLRenderTarget(t,i,e),this.bufferFeedback=new l.WebGLRenderTarget(t,i,e)}initBasicShader(e,t){super.initBasicShader(e,t),this.uniforms.iBuffer={type:"t",value:this.bufferTarget.texture}}onUpdate(){this.uniforms.iBuffer.value=this.bufferFeedback.texture;var e=this.renderer,e=(e.setRenderTarget(this.bufferTarget),e.render(this.scene,this.camera),e.setRenderTarget(null),e.clear(),this.bufferTarget);this.bufferTarget=this.bufferFeedback,this.bufferFeedback=e}onResize(){var e,t;this.bufferTarget&&(e=this.width*window.devicePixelRatio/this.scale,t=this.height*window.devicePixelRatio/this.scale,this.bufferTarget.setSize(e,t),this.bufferFeedback.setSize(e,t))}onDestroy(){this.bufferTarget=null,this.bufferFeedback=null}}const u=r.register("HALO",c);return c.prototype.fragmentShader="uniform vec2 iResolution;\nuniform float iDpr;\nuniform vec2 iMouse;\nuniform float iTime;\n\nuniform float xOffset;\nuniform float yOffset;\nuniform vec3 baseColor;\nuniform vec3 color2;\nuniform vec3 backgroundColor;\nuniform float size;\nuniform float shape;\nuniform float ringFactor;\nuniform float rotationFactor;\nuniform float amplitudeFactor;\n\nuniform sampler2D iBuffer;\nuniform sampler2D iTex;\nconst float PI = 3.14159265359;\n\n// float length2(vec2 p) { return dot(p, p); }\n\n// float noise(vec2 p){\n// return fract(sin(fract(sin(p.x) * (43.13311)) + p.y) * 31.0011);\n// }\n\n// float worley(vec2 p) {\n// float d = 1e30;\n// for (int xo = -1; xo <= 1; ++xo) {\n// for (int yo = -1; yo <= 1; ++yo) {\n// vec2 tp = floor(p) + vec2(xo, yo);\n// d = min(d, length2(p - tp - vec2(noise(tp))));\n// }\n// }\n// vec2 uv = gl_FragCoord.xy / iResolution.xy;\n// float timeOffset = 0.15 * sin(iTime * 2.0 + 10.0*(uv.x - uv.y));\n// return 3.0*exp(-4.0*abs(2.0*d - 1.0 + timeOffset));\n// }\n\n// float fworley(vec2 p) {\n// return sqrt(\n// 1.1 * // light\n// worley(p*10. + .3 + iTime*.0525) *\n// sqrt(worley(p * 50. / size + 0.1 + iTime * -0.75)) *\n// 4.1 *\n// sqrt(sqrt(worley(p * -1. + 9.3))));\n// }\n\nvec4 j2hue(float c) {\n return .5+.5*cos(6.28*c+vec4(0,-2.1,2.1,0));\n}\n\nvec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); }\n\nfloat snoise(vec2 v){\n const vec4 C = vec4(0.211324865405187, 0.366025403784439,\n -0.577350269189626, 0.024390243902439);\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n i = mod(i, 289.0);\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n + i.x + vec3(0.0, i1.x, 1.0 ));\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy),\n dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\nvec2 sincos( float x ){return vec2(sin(x), cos(x));}\nvec2 rotate2d(vec2 uv, float phi){vec2 t = sincos(phi); return vec2(uv.x*t.y-uv.y*t.x, uv.x*t.x+uv.y*t.y);}\nvec3 rotate3d(vec3 p, vec3 v, float phi){ v = normalize(v); vec2 t = sincos(-phi); float s = t.x, c = t.y, x =-v.x, y =-v.y, z =-v.z; mat4 M = mat4(x*x*(1.-c)+c,x*y*(1.-c)-z*s,x*z*(1.-c)+y*s,0.,y*x*(1.-c)+z*s,y*y*(1.-c)+c,y*z*(1.-c)-x*s,0.,z*x*(1.-c)-y*s,z*y*(1.-c)+x*s,z*z*(1.-c)+c,0.,0.,0.,0.,1.);return (vec4(p,1.)*M).xyz;}\n\n// Classic Perlin 3D Noise\n// by Stefan Gustavson\nvec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}\nvec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}\nfloat p3d(vec3 P){\n vec3 Pi0 = floor(P); // Integer part for indexing\n vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1\n Pi0 = mod(Pi0, 289.0);\n Pi1 = mod(Pi1, 289.0);\n vec3 Pf0 = fract(P); // Fractional part for interpolation\n vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\n vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\n vec4 iy = vec4(Pi0.yy, Pi1.yy);\n vec4 iz0 = Pi0.zzzz;\n vec4 iz1 = Pi1.zzzz;\n\n vec4 ixy = permute(permute(ix) + iy);\n vec4 ixy0 = permute(ixy + iz0);\n vec4 ixy1 = permute(ixy + iz1);\n\n vec4 gx0 = ixy0 / 7.0;\n vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;\n gx0 = fract(gx0);\n vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\n vec4 sz0 = step(gz0, vec4(0.0));\n gx0 -= sz0 * (step(0.0, gx0) - 0.5);\n gy0 -= sz0 * (step(0.0, gy0) - 0.5);\n\n vec4 gx1 = ixy1 / 7.0;\n vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;\n gx1 = fract(gx1);\n vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\n vec4 sz1 = step(gz1, vec4(0.0));\n gx1 -= sz1 * (step(0.0, gx1) - 0.5);\n gy1 -= sz1 * (step(0.0, gy1) - 0.5);\n\n vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\n vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\n vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\n vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\n vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\n vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\n vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\n vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\n\n vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\n g000 *= norm0.x;\n g010 *= norm0.y;\n g100 *= norm0.z;\n g110 *= norm0.w;\n vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\n g001 *= norm1.x;\n g011 *= norm1.y;\n g101 *= norm1.z;\n g111 *= norm1.w;\n\n float n000 = dot(g000, Pf0);\n float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\n float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\n float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\n float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\n float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\n float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\n float n111 = dot(g111, Pf1);\n\n vec3 fade_xyz = fade(Pf0);\n vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\n vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\n float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\n return 2.2 * n_xyz;\n}\n\n\nvoid main() {\n vec2 res2 = iResolution.xy * iDpr;\n vec2 pixel = vec2(gl_FragCoord.xy - 0.5 * res2) / res2.y; // center-origin pixel coord\n pixel.x -= xOffset * res2.x / res2.y;\n pixel.y -= yOffset;\n\n vec2 uv = gl_FragCoord.xy / res2; // 0 to 1\n\n // float nn1 = snoise(uv * 0.25 + iTime * 0.005 + mixedColor.b * 0.01) * 0.1;\n // float nn2 = snoise(uv * 0.25 + iTime * 0.005 + mixedColor.b * 0.01 + 1000.) * 0.1;\n // uv += vec2(nn1, nn2);\n\n // PERLIN DISTORTION\n // float noiseScale = 10.;\n // float timeScale = 0.5;\n // uv += vec2( p3d(vec3(uv * noiseScale, iTime * timeScale)), p3d(vec3(1000. + uv * noiseScale , iTime * timeScale)) ) * 0.001;\n\n // uv = rotate2d(uv, 0.001);\n // pixel = rotate2d(pixel, 0.001);\n\n vec2 mouse2 = (iMouse * iDpr / res2 - 0.5) * vec2(1.,-1.);\n vec2 uvBig = (uv - 0.5) * 0.996 + 0.5;\n\n vec4 oldImage = texture2D(iBuffer, uv);\n vec3 mixedColor = oldImage.rgb - backgroundColor;\n\n // float spinDist = 0.002 + 0.002 * sin(iTime * 0.4);\n float cropDist = 0.01;\n float cropXOffset = 0.2;\n float cropYOffset = 0.2;\n // float cropXOffset = 0.4 + 0.1 * sin(iTime * 0.4);\n // float cropYOffset = 0.4 + 0.1 * cos(iTime * 0.6);\n\n vec2 offset = uv + vec2((mixedColor.g - cropXOffset) * cropDist, (mixedColor.r - cropYOffset) * cropDist);\n\n // float nn = snoise(uv * 10.) * 0.001;\n // offset += nn;\n\n float spinDist = 0.001;\n float spinSpeed = 0.2 + 0.15 * cos(iTime * 0.5);\n float timeFrac = mod(iTime, 6.5);\n vec2 offset2 = uvBig + vec2(cos(timeFrac * spinSpeed) * spinDist, sin(timeFrac * spinSpeed) * spinDist);\n\n mixedColor = texture2D(iBuffer, offset).rgb * 0.4\n + texture2D(iBuffer, offset2).rgb * 0.6\n - backgroundColor;\n\n\n // mixedColor *= .875;\n float fadeAmt = 0.0015; // fade this amount each frame // 0.002\n mixedColor = (mixedColor - fadeAmt) * .995;\n\n // float nn = snoise(uvBig * 10.) * 20.;\n // mixedColor *= clamp(nn, 0.98, 1.0);\n\n vec4 spectrum = abs( abs( .95*atan(uv.x, uv.y) -vec4(0,2,4,0) ) -3. )-1.;\n float angle = atan(pixel.x, pixel.y);\n float dist = length(pixel - mouse2*0.15) * 8. + sin(iTime) * .01;\n\n // mixedColor *= pow(1.-dist*0.002, 2.);\n\n\n // Flowery shapes\n // float edge = abs(dist * 0.5);\n float flowerPeaks = .05 * amplitudeFactor * size;\n float flowerPetals = 7.;\n float edge = abs((dist + sin(angle * flowerPetals + iTime * 0.5) * sin(iTime * 1.5) * flowerPeaks) * 0.65 / size);\n // float edge = abs((dist + sin(angle * 4. + iTime * 2.) * sin(iTime * 3.) * 0.75) * 1.);\n\n // vec4 rainbow = abs( abs( .95*mod(iTime * 1., 2. * PI) - vec4(0,2,4,0) ) -3. )-1.;\n // vec4 rainbow = vec4(0,2,4,0);\n\n float colorChangeSpeed = 0.75 + 0.05 * sin(iTime) * 1.5;\n float rainbowInput = timeFrac * colorChangeSpeed;\n // NOISE!\n // float nn = snoise(uv * 0.25 + iTime * 0.005 + mixedColor.b * 0.01) * 20.;\n // rainbowInput += nn;\n\n float brightness = 0.7;\n vec4 rainbow = sqrt(j2hue(cos(rainbowInput))) + vec4(baseColor,0) - 1.0 + brightness;\n float factor = smoothstep(1., .9, edge) * pow(edge, 2.);\n vec3 color = rainbow.rgb * smoothstep(1., .9, edge) * pow(edge, 20.);\n vec4 ring = vec4(\n backgroundColor + clamp( mixedColor + color, 0., 1.)\n , 1.0);\n\n // float t = fworley(uv * u_resolution.xy / 1500.0);\n // t *= exp(-length2(abs(0.7*uv - 1.0)));\n // float tExp = pow(t, 2. - t);\n // vec3 c1 = color1 * (1.0 - t);\n // vec3 c2 = color2 * tExp;\n // vec4 cells = vec4(mixedColor * 0.25, 1.) + vec4(pow(t, 1.0 - t) * (c1 + c2), 1.0);\n // gl_FragColor = clamp(ring + cells * 0.5, 0.0, 1.0);\n\n // float nn = snoise(uv * 10.) * 0.01; // creepy!\n gl_FragColor = ring;\n}\n",e})())()}}]);
|