feffery_utils_components 0.2.0-rc24 → 0.2.0-rc25
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/MANIFEST.in +1 -1
- package/Project.toml +1 -1
- package/README.md +1 -1
- package/feffery_utils_components/FefferyDiv.py +12 -3
- package/feffery_utils_components/FefferyMotion.py +9 -3
- package/feffery_utils_components/__init__.py +23 -1
- package/feffery_utils_components/async-feffery_animated_3d_background_p5.js +3 -1
- package/feffery_utils_components/async-feffery_animated_3d_background_p5.js.map +1 -0
- package/feffery_utils_components/async-feffery_animated_3d_background_three.js +3 -1
- package/feffery_utils_components/async-feffery_animated_3d_background_three.js.map +1 -0
- package/feffery_utils_components/async-feffery_animated_image.js +4 -1
- package/feffery_utils_components/async-feffery_animated_image.js.map +1 -0
- package/feffery_utils_components/async-feffery_aplayer.js +3 -1
- package/feffery_utils_components/async-feffery_aplayer.js.map +1 -0
- package/feffery_utils_components/async-feffery_auto_animate.js +3 -1
- package/feffery_utils_components/async-feffery_auto_animate.js.map +1 -0
- package/feffery_utils_components/async-feffery_auto_fit.js +3 -1
- package/feffery_utils_components/async-feffery_auto_fit.js.map +1 -0
- package/feffery_utils_components/async-feffery_burger.js +3 -1
- package/feffery_utils_components/async-feffery_burger.js.map +1 -0
- package/feffery_utils_components/async-feffery_captcha.js +3 -1
- package/feffery_utils_components/async-feffery_captcha.js.map +1 -0
- package/feffery_utils_components/async-feffery_color_pickers.js +4 -1
- package/feffery_utils_components/async-feffery_color_pickers.js.map +1 -0
- package/feffery_utils_components/async-feffery_dom2image.js +4 -4
- package/feffery_utils_components/async-feffery_dom2image.js.map +1 -0
- package/feffery_utils_components/async-feffery_dplayer.js +4 -1
- package/feffery_utils_components/async-feffery_dplayer.js.map +1 -0
- package/feffery_utils_components/async-feffery_emoji_picker.js +4 -1
- package/feffery_utils_components/async-feffery_emoji_picker.js.map +1 -0
- package/feffery_utils_components/async-feffery_excel_preview.js +4 -1
- package/feffery_utils_components/async-feffery_excel_preview.js.map +1 -0
- package/feffery_utils_components/async-feffery_extra_spinner.js +4 -1
- package/feffery_utils_components/async-feffery_extra_spinner.js.map +1 -0
- package/feffery_utils_components/async-feffery_fancy_button.js +3 -1
- package/feffery_utils_components/async-feffery_fancy_button.js.map +1 -0
- package/feffery_utils_components/async-feffery_grid.js +3 -1
- package/feffery_utils_components/async-feffery_grid.js.map +1 -0
- package/feffery_utils_components/async-feffery_http_requests.js +4 -1
- package/feffery_utils_components/async-feffery_http_requests.js.map +1 -0
- package/feffery_utils_components/async-feffery_image_cropper.js +4 -1
- package/feffery_utils_components/async-feffery_image_cropper.js.map +1 -0
- package/feffery_utils_components/async-feffery_json_viewer.js +3 -1
- package/feffery_utils_components/async-feffery_json_viewer.js.map +1 -0
- package/feffery_utils_components/async-feffery_local_large_storage.js +4 -1
- package/feffery_utils_components/async-feffery_local_large_storage.js.map +1 -0
- package/feffery_utils_components/async-feffery_markdown_editor.js +3 -3
- package/feffery_utils_components/async-feffery_markdown_editor.js.map +1 -0
- package/feffery_utils_components/async-feffery_motion.js +3 -1
- package/feffery_utils_components/async-feffery_motion.js.map +1 -0
- package/feffery_utils_components/async-feffery_music_player.js +4 -1
- package/feffery_utils_components/async-feffery_music_player.js.map +1 -0
- package/feffery_utils_components/async-feffery_photo_sphere_viewer.js +4 -1
- package/feffery_utils_components/async-feffery_photo_sphere_viewer.js.map +1 -0
- package/feffery_utils_components/async-feffery_resizable.js +3 -1
- package/feffery_utils_components/async-feffery_resizable.js.map +1 -0
- package/feffery_utils_components/async-feffery_rich_text_editor.js +4 -4
- package/feffery_utils_components/async-feffery_rich_text_editor.js.map +1 -0
- package/feffery_utils_components/async-feffery_rnd.js +3 -1
- package/feffery_utils_components/async-feffery_rnd.js.map +1 -0
- package/feffery_utils_components/async-feffery_seamless_scroll.js +3 -1
- package/feffery_utils_components/async-feffery_seamless_scroll.js.map +1 -0
- package/feffery_utils_components/async-feffery_shortcut_panel.js +32 -29
- package/feffery_utils_components/async-feffery_shortcut_panel.js.map +1 -0
- package/feffery_utils_components/async-feffery_slider_captcha.js +4 -1
- package/feffery_utils_components/async-feffery_slider_captcha.js.map +1 -0
- package/feffery_utils_components/async-feffery_sortable.js +3 -1
- package/feffery_utils_components/async-feffery_sortable.js.map +1 -0
- package/feffery_utils_components/async-feffery_vditor.js +4 -1
- package/feffery_utils_components/async-feffery_vditor.js.map +1 -0
- package/feffery_utils_components/async-feffery_word_preview.js +4 -1
- package/feffery_utils_components/async-feffery_word_preview.js.map +1 -0
- package/feffery_utils_components/async-fuc-shared.js +4 -135
- package/feffery_utils_components/async-fuc-shared.js.map +1 -0
- package/feffery_utils_components/feffery_utils_components.min.js +27 -30
- package/feffery_utils_components/feffery_utils_components.min.js.map +1 -0
- package/feffery_utils_components/metadata.json +85 -0
- package/feffery_utils_components/package-info.json +1 -1
- package/package.json +1 -1
- package/src/lib/components/animations/FefferyMotion.react.js +12 -0
- package/src/lib/components/container/FefferyDiv.react.js +115 -55
- package/src/lib/fragments/animations/FefferyMotion.react.js +30 -23
- package/tests/MotionTest/app.py +50 -0
- package/usage.py +25 -25
- package/webpack.config.js +3 -11
|
@@ -1 +1,3 @@
|
|
|
1
|
-
(window.webpackJsonpfeffery_utils_components=window.webpackJsonpfeffery_utils_components||[]).push([[2],{501:function(e,t,i){i.r(t);var R=i(1),A=i.n(R),o=i(713),W=i.n(o),P=i(554),N=i(63),j=i(25),o=i(189);function X(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.scaleMobile,p=e.backgroundColor,m=e.backgroundAlpha,f=e.color1,v=e.color2,g=e.colorMode,y=e.quantity,w=e.birdSize,b=e.wingSpan,M=e.speedLimit,x=e.separation,C=e.alignment,E=e.cohesion,e=e.loading_state,T=X(Object(R.useState)(null),2),z=T[0],S=T[1],O=Object(R.useRef)(null);return Object(R.useEffect)(function(){return z||S(W()({el:O.current,THREE:P,mouseControls:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,scaleMobile:d,backgroundColor:p,backgroundAlpha:m,color1:f,color2:v,colorMode:g,quantity:y,birdSize:w,wingSpan:b,speedLimit:M,separation:x,alignment:C,cohesion:E})),function(){z&&z.destroy()}},[z]),A.a.createElement("div",{id:t,children:i,className:Object(j.isString)(o)?o:o?Object(N.a)(o):void 0,style:s,key:n,ref:O,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},502:function(e,t,i){i.r(t);var b=i(1),M=i.n(b),o=i(714),x=i.n(o),C=i(554),E=i(63),T=i(25),o=i(190);function z(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.color1,p=e.color2,m=e.size,f=e.speed,e=e.loading_state,v=z(Object(b.useState)(null),2),g=v[0],y=v[1],w=Object(b.useRef)(null);return Object(b.useEffect)(function(){return g||y(x()({el:w.current,THREE:C,mouseControls:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,color1:d,color2:p,size:m,speed:f})),function(){g&&g.destroy()}},[g]),M.a.createElement("div",{id:t,children:i,className:Object(T.isString)(o)?o:o?Object(E.a)(o):void 0,style:s,key:n,ref:w,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},503:function(e,t,i){i.r(t);var C=i(1),E=i.n(C),o=i(715),T=i.n(o),z=i(554),S=i(63),O=i(25),o=i(191);function R(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.backgroundColor,d=e.skyColor,p=e.cloudColor,m=e.cloudShadowColor,f=e.sunColor,v=e.sunGlareColor,g=e.sunlightColor,y=e.speed,e=e.loading_state,w=R(Object(C.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,backgroundColor:c,skyColor:d,cloudColor:p,cloudShadowColor:m,sunColor:f,sunGlareColor:v,sunlightColor:g,speed:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:t,children:i,className:Object(O.isString)(o)?o:o?Object(S.a)(o):void 0,style:s,key:n,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},504:function(e,t,i){i.r(t);var x=i(1),C=i.n(x),o=i(716),E=i.n(o),T=i(554),z=i(63),S=i(25),o=i(192);function O(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.texturePath,p=e.backgroundColor,m=e.skyColor,f=e.cloudColor,v=e.lightColor,g=e.speed,e=e.loading_state,y=O(Object(x.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,texturePath:d,backgroundColor:p,skyColor:m,cloudColor:f,lightColor:v,speed:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:t,children:i,className:Object(S.isString)(o)?o:o?Object(z.a)(o):void 0,style:s,key:n,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},505:function(e,t,i){i.r(t);var x=i(1),C=i.n(x),o=i(717),E=i.n(o),T=i(554),z=i(63),S=i(25),o=i(193);function O(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.highlightColor,d=e.midtoneColor,p=e.lowlightColor,m=e.baseColor,f=e.blurFactor,v=e.zoom,g=e.speed,e=e.loading_state,y=O(Object(x.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,highlightColor:c,midtoneColor:d,lowlightColor:p,baseColor:m,blurFactor:f,zoom:v,speed:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:t,children:i,className:Object(S.isString)(o)?o:o?Object(z.a)(o):void 0,style:s,key:n,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},506:function(e,t,i){i.r(t);var M=i(1),x=i.n(M),o=i(718),C=i.n(o),E=i(554),T=i(63),z=i(25),o=i(194);function S(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.scaleMobile,p=e.backgroundColor,m=e.color,f=e.color2,v=e.size,e=e.loading_state,g=S(Object(M.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,scaleMobile:d,backgroundColor:p,color:m,color2:f,size:v})),function(){y&&y.destroy()}},[y]),x.a.createElement("div",{id:t,children:i,className:Object(z.isString)(o)?o:o?Object(T.a)(o):void 0,style:s,key:n,ref:b,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},507:function(e,t,i){i.r(t);var M=i(1),x=i.n(M),o=i(719),C=i.n(o),E=i(554),T=i(63),z=i(25),o=i(195);function S(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.backgroundColor,d=e.baseColor,p=e.size,m=e.amplitudeFactor,f=e.xOffset,v=e.yOffset,e=e.loading_state,g=S(Object(M.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,backgroundColor:c,baseColor:d,size:p,amplitudeFactor:m,xOffset:f,yOffset:v})),function(){y&&y.destroy()}},[y]),x.a.createElement("div",{id:t,children:i,className:Object(z.isString)(o)?o:o?Object(T.a)(o):void 0,style:s,key:n,ref:b,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},508:function(e,t,i){i.r(t);var C=i(1),E=i.n(C),o=i(721),T=i.n(o),z=i(554),S=i(63),O=i(25),o=i(197);function R(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.scaleMobile,p=e.color,m=e.backgroundColor,f=e.points,v=e.maxDistance,g=e.spacing,y=e.showDots,e=e.loading_state,w=R(Object(C.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,scaleMobile:d,color:p,backgroundColor:m,points:f,maxDistance:v,spacing:g,showDots:y})),function(){b&&b.destroy()}},[b]),E.a.createElement("div",{id:t,children:i,className:Object(O.isString)(o)?o:o?Object(S.a)(o):void 0,style:s,key:n,ref:x,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},509:function(e,t,i){i.r(t);var b=i(1),M=i.n(b),o=i(722),x=i.n(o),C=i(554),E=i(63),T=i(25),o=i(198);function z(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.scaleMobile,p=e.color,m=e.backgroundColor,f=e.backgroundAlpha,e=e.loading_state,v=z(Object(b.useState)(null),2),g=v[0],y=v[1],w=Object(b.useRef)(null);return Object(b.useEffect)(function(){return g||y(x()({el:w.current,THREE:C,mouseControls:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,scaleMobile:d,color:p,backgroundColor:m,backgroundAlpha:f})),function(){g&&g.destroy()}},[g]),M.a.createElement("div",{id:t,children:i,className:Object(T.isString)(o)?o:o?Object(E.a)(o):void 0,style:s,key:n,ref:w,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},512:function(e,t,i){i.r(t);var x=i(1),C=i.n(x),o=i(725),E=i.n(o),T=i(554),z=i(63),S=i(25),o=i(201);function O(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((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}})(e,t)||((e,t)=>{var i;if(e)return"string"==typeof e?s(e,t):"Map"===(i="Object"===(i={}.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})(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}function n(e){var t=e.id,i=e.children,o=e.className,s=e.style,n=e.key,r=e.mouseControls,a=e.touchControls,h=e.gyroControls,l=e.minHeight,u=e.minWidth,c=e.scale,d=e.scaleMobile,p=e.color,m=e.shininess,f=e.waveHeight,v=e.waveSpeed,g=e.zoom,e=e.loading_state,y=O(Object(x.useState)(null),2),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:r,touchControls:a,gyroControls:h,minHeight:l,minWidth:u,scale:c,scaleMobile:d,color:p,shininess:m,waveHeight:f,waveSpeed:v,zoom:g})),function(){w&&w.destroy()}},[w]),C.a.createElement("div",{id:t,children:i,className:Object(S.isString)(o)?o:o?Object(z.a)(o):void 0,style:s,key:n,ref:M,"data-dash-is-loading":e&&e.is_loading||void 0},i)}(t.default=n).defaultProps=o.b,n.propTypes=o.c},713:function(e,t,i){e.exports=(()=>{{var n={d:(e,t)=>{for(var i in t)n.o(t,i)&&!n.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})}},r={};function a(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}function h(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}n.r(r),n.d(r,{default:()=>t}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)h('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void h("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return h("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var l=s.VantaBase;function u(h,l,u,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 c(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 c(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(!u.capabilities.isWebGL2&&!u.extensions.get("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===u.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=c,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=u.getRenderTarget();a.material=e,u.setRenderTarget(t),u.render(o,s),a.material=n,u.setRenderTarget(i)}}let e="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}=e||{},C="object"==typeof window&&window.THREE,c=!a(),E=32,T=E*E;class z{constructor(e){var o,t,i=new C.Vector3,s=500,n=500,r=200,u=e;this.position=new C.Vector3,this.velocity=new C.Vector3,o=new C.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 C.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 C.Vector3).subVectors(this.position,e),t.multiplyScalar(.5/i),o.add(t))},this.reach=function(e,t){var i=new C.Vector3;return i.subVectors(e,this.position),i.multiplyScalar(t),i},this.alignment=function(e){for(var t,i,o,s=new C.Vector3,n=0,r=100*u.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 C.Vector3,s=new C.Vector3,n=0,r=100*u.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 C.Vector3,s=new C.Vector3,n=100*u.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 S extends l{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){C=e.THREE||C,super(e)}initComputeRenderer(){this.gpuCompute=new u(E,E,this.renderer,C);var t=this.gpuCompute.createTexture(),i=this.gpuCompute.createTexture();{let o=t.image.data,s=0,e=o.length;for(var n=[];s<e;){let e=800*Math.random()-400,t=800*Math.random()-400,i=800*Math.random()-400;o[s+0]=e,o[s+1]=t,o[s+2]=i,o[s+3]=1,n.push(s+=4)}}{let o=i.image.data,s=0,e=o.length;for(var r=[];s<e;){let e=Math.random()-.5,t=Math.random()-.5,i=Math.random()-.5;o[s+0]=10*e,o[s+1]=10*t,o[s+2]=10*i,o[s+3]=1,r.push(s+=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 C.Vector3},this.velocityVariable.material.defines.BOUNDS=800..toFixed(2),this.velocityVariable.wrapS=C.RepeatWrapping,this.velocityVariable.wrapT=C.RepeatWrapping,this.positionVariable.wrapS=C.RepeatWrapping,this.positionVariable.wrapT=C.RepeatWrapping;i=this.gpuCompute.init();null!==i&&console.error(i)}initGpgpuBirds(){var e=(r=>{let e=new C.BufferGeometry,t=(r.quantity&&(E=Math.pow(2,r.quantity),T=E*E),3*T),i=3*t,o=new C.BufferAttribute(new Float32Array(3*i),3),a=new C.BufferAttribute(new Float32Array(3*i),3),h=new C.BufferAttribute(new Float32Array(2*i),2),l=new C.BufferAttribute(new Float32Array(i),1),u=(e.setAttribute||(e.setAttribute=e.addAttribute),e.setAttribute("position",o),e.setAttribute("birdColor",a),e.setAttribute("reference",h),e.setAttribute("birdVertex",l),0),s=function(){for(let e=0;e<arguments.length;e++)o.array[u++]=arguments[e]},n=r.wingSpan||20,c=r.birdSize||1;for(let e=0;e<T;e++)s(0,-0,-20*c,0,4*c,-20*c,0,0,30*c),s(0,0,-15*c,-n*c,0,0,0,0,15*c),s(0,0,15*c,n*c,0,0,0,0,-15*c);var d={};for(u=0;u<3*t;u++){let e=~~(u/3),t=e%E/E,i=~~(e/E)/E,o=~~(u/9)/T,s=o.toString(),n=-1!=r.colorMode.indexOf("Gradient");var p=!n&&d[s]?d[s]:r.effect.getNewCol(o);n||d[s]||(d[s]=p),a.array[3*u+0]=p.r,a.array[3*u+1]=p.g,a.array[3*u+2]=p.b,h.array[2*u]=t,h.array[2*u+1]=i,l.array[u]=u%9}return e.scale(.2,.2,.2)})(Object.assign({},this.options,{effect:this})),t=(this.birdUniforms={color:{value:new C.Color(16720384)},texturePosition:{value:null},textureVelocity:{value:null},time:{value:1},delta:{value:0},birdSize:{value:this.options.birdSize}},new C.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:C.DoubleSide})),e=new C.Mesh(e,t);return e.rotation.y=Math.PI/2,e.matrixAutoUpdate=!1,e.updateMatrix(),this.scene.add(e)}getNewCol(e){let t=this.options,i=null!=t.color1?t.color1:4456448,o=null!=t.color2?t.color2:6684672,s=new C.Color(i),n=new C.Color(o),r,a;if(a=-1!=t.colorMode.indexOf("Gradient")?Math.random():e,0==t.colorMode.indexOf("variance")){let 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 C.Color(e,t,i)}else r=0==t.colorMode.indexOf("mix")?new C.Color(i+a*o):s.lerp(n,a);return r}onInit(){this.camera=new C.PerspectiveCamera(75,this.width/this.height,1,3e3),this.camera.position.z=350,this.fog=new C.Fog(16777215,100,1e3),this.mouseX=this.mouseY=0;let e=this.birds=[],t=this.boids=[],i=this.options;if(c)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 z(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={})=>{let e=new C.BufferGeometry,n=[];function t(e,t,i){var o=1.5*(s.birdSize||1);n.push(new C.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 C.BufferAttribute(new Float32Array(a),3);if(n)for(var l=0;l<r.index.array.length;l+=3)for(var u=0;u<=2;u++){let e=r.index.array[l+u],t=this.getNewCol();h.array[3*e]=t.r,h.array[3*e+1]=t.g,h.array[3*e+2]=t.b}else{let 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 C.Mesh(r,new C.MeshBasicMaterial({color:16777215,side:C.DoubleSide,vertexColors:C.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,c)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{let e=this.birds,t=this.boids;for(var i,o,s=0,n=e.length;s<n;s++){(i=t[s]).run(t),(o=e[s]).rotation.y=Math.atan2(-i.velocity.z,i.velocity.x),o.rotation.z=Math.asin(i.velocity.y/i.velocity.length()),o.phase=(o.phase+(Math.max(0,o.rotation.z)+.1))%62.83;o.geometry.attributes.position.array[16]=o.geometry.attributes.position.array[13]=5*Math.sin(o.phase)*this.options.birdSize,o.geometry.attributes.position.needsUpdate=!0,o.geometry.computeVertexNormals(),o.position.x=t[s].position.x,o.position.y=t[s].position.y,o.position.z=t[s].position.z}}}onMouseMove(e,t){if(this.mouseX=e-.5,this.mouseY=t-.5,!c){let e=this.boids;for(var i,o=new C.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(){}}S.initClass();let t=s.register("BIRDS",S);return r}})()},714:function(e,t,i){e.exports=(()=>{{var r={d:(e,t)=>{for(var i in t)r.o(t,i)&&!r.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})}},t={};function a(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}r.r(t),r.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void a("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return a("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var h=s.VantaBase;let n="object"==typeof window&&window.THREE;class l extends h{constructor(e){(n=e.THREE||n).Color.prototype.toVector=function(){return new n.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 n.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new n.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 n.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new n.TextureLoader).load(e)}),e=new n.Mesh(new n.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new n.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 n.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 u extends l{}let e=s.register("CELLS",u);return u.prototype.defaultOptions={color1:35980,color2:15918901,backgroundColor:14155663,amplitudeFactor:1,ringFactor:1,rotationFactor:1,size:1.5,speed:1,scaleMobile:3},u.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",t}})()},715:function(e,t,i){e.exports=(()=>{{var r={d:(e,t)=>{for(var i in t)r.o(t,i)&&!r.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})}},t={};function a(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}r.r(t),r.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void a("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return a("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var h=s.VantaBase;let n="object"==typeof window&&window.THREE;class l extends h{constructor(e){(n=e.THREE||n).Color.prototype.toVector=function(){return new n.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 n.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new n.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 n.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new n.TextureLoader).load(e)}),e=new n.Mesh(new n.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new n.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 n.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 u extends l{}let e=s.register("CLOUDS",u);return u.prototype.defaultOptions={backgroundColor:16777215,skyColor:6863063,cloudColor:11387358,cloudShadowColor:1586512,sunColor:16750873,sunGlareColor:16737843,sunlightColor:16750899,scale:3,scaleMobile:12,speed:1,mouseEase:!0},u.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",t}})()},716:function(e,t,i){e.exports=(()=>{{var r={d:(e,t)=>{for(var i in t)r.o(t,i)&&!r.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})}},t={};function a(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}r.r(t),r.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void a("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return a("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var h=s.VantaBase;let n="object"==typeof window&&window.THREE;class l extends h{constructor(e){(n=e.THREE||n).Color.prototype.toVector=function(){return new n.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 n.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new n.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 n.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new n.TextureLoader).load(e)}),e=new n.Mesh(new n.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new n.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 n.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 u extends l{}let e=s.register("CLOUDS2",u);return u.prototype.defaultOptions={backgroundColor:0,skyColor:6072010,cloudColor:3362176,lightColor:16777215,speed:1,texturePath:"./gallery/noise.png",scaleMobile:4},u.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}",t}})()},717:function(e,t,i){e.exports=(()=>{{var r={d:(e,t)=>{for(var i in t)r.o(t,i)&&!r.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})}},t={};function a(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}r.r(t),r.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void a("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return a("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var h=s.VantaBase;let n="object"==typeof window&&window.THREE;class l extends h{constructor(e){(n=e.THREE||n).Color.prototype.toVector=function(){return new n.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 n.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new n.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 n.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new n.TextureLoader).load(e)}),e=new n.Mesh(new n.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new n.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 n.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 u extends l{}let e=s.register("FOG",u);return u.prototype.defaultOptions={highlightColor:16761600,midtoneColor:16719616,lowlightColor:2949375,baseColor:16772075,blurFactor:.6,speed:1,zoom:1,scale:2,scaleMobile:4},u.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",t}})()},718:function(e,t,i){e.exports=(()=>{{var r={d:(e,t)=>{for(var i in t)r.o(t,i)&&!r.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})}},a={};function y(e,t){return null==t&&(t=1),(e=null==e?0:e)+Math.random()*(t-e)}function h(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}r.r(a),r.d(a,{default:()=>t}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let v=e=>.299*e.r+.587*e.g+.114*e.b,i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{}),e=(s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)h('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void h("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return h("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}},s.VantaBase),n="object"==typeof window,g=n&&window.THREE;class l extends e{static initClass(){this.prototype.defaultOptions={color:16727937,color2:16777215,size:1,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){g=e.THREE||g,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){let e=new g.SphereGeometry(.25,12,12),t=new g.MeshLambertMaterial({color:this.options.color});o=new g.Mesh(e,t)}else o=new g.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 g.Group,this.cont.position.set(-50,-20,0),this.scene.add(this.cont);let o=this.options.points,s=this.options.spacing,e=o*o*2,t=(this.linePositions=new Float32Array(e*e*3),this.lineColors=new Float32Array(e*e*3),v(new g.Color(this.options.color))),i=v(new g.Color(this.options.backgroundColor)),n=(this.blending=t>i?"additive":"subtractive",new g.BufferGeometry);n.setAttribute("position",new g.BufferAttribute(this.linePositions,3).setUsage(g.DynamicDrawUsage)),n.setAttribute("color",new g.BufferAttribute(this.lineColors,3).setUsage(g.DynamicDrawUsage)),n.computeBoundingSphere(),n.setDrawRange(0,0);var r=new g.LineBasicMaterial({vertexColors:g.VertexColors,blending:"additive"===this.blending?g.AdditiveBlending:null,transparent:!0});this.linesMesh=new g.LineSegments(n,r),this.cont.add(this.linesMesh);for(let i=0;i<=o;i++)for(let t=0;t<=o;t++){let e=(i-o/2)*s;var a=(t-o/2)*s;this.genPoint(e,0,a)}this.camera=new g.PerspectiveCamera(20,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);var r=new g.AmbientLight(16777215,.75),r=(this.scene.add(r),this.spot=new g.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 g.Group,this.cont2.position.set(0,15,0),this.scene.add(this.cont2),new g.LineBasicMaterial({color:this.options.color2})),h=[];for(let e=0;e<80;e++){let e=y(18,24),t=e+y(1,6),i=y(-1,1),o=Math.sqrt(1-i*i),s=y(0,2*Math.PI),n=Math.sin(s)*o,r=Math.cos(s)*o;h.push(new g.Vector3(r*e,n*e,i*e)),h.push(new g.Vector3(r*t,n*t,i*t))}var l=(new g.BufferGeometry).setFromPoints(h),l=(this.linesMesh2=new g.LineSegments(l,r),this.linesMesh2.position.set(0,0,0),this.cont2.add(this.linesMesh2),new g.LineBasicMaterial({color:this.options.color2,linewidth:2})),u=[];u.push(new g.Vector3(0,30,0)),u.push(new g.Vector3(0,-30,0));for(let e=0;e<4;e++){var c=.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);u.push(new g.Vector3(c*f,m,d*f)),u.push(new g.Vector3(c*f,-m,d*f))}}r=(new g.BufferGeometry).setFromPoints(u),this.linesMesh3=new g.LineSegments(r,l),this.linesMesh3.position.set(0,0,0),this.cont2.add(this.linesMesh3),r=new g.LineBasicMaterial({color:this.options.color}),l=new g.SphereGeometry(18*this.options.size,18,14),l=new g.EdgesGeometry(l);this.sphere=new g.LineSegments(l,r),this.sphere.position.set(0,0,0),this.cont2.add(this.sphere),this.cont2.rotation.x=-.25}onUpdate(){let e;null!=this.helper&&this.helper.update(),null!=this.controls&&this.controls.update();var 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),n&&window.innerWidth<480?t.lookAt(new g.Vector3(-10,0,0)):n&&window.innerWidth<720?t.lookAt(new g.Vector3(-20,0,0)):t.lookAt(new g.Vector3(-40,0,0));let r=0,a=0,h=0;var l,u=new g.Color(this.options.backgroundColor),c=new g.Color(this.options.color),t=new g.Color(this.options.color2),d=c.clone().sub(u);this.rayCaster&&this.rayCaster.setFromCamera(new g.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 e=0;e<this.points.length;e++){let n=this.points[e];var i=(this.rayCaster?this.rayCaster.ray.distanceToPoint(n.position):1e3).clamp(5,15);n.scale.z=(.25*(15-i)).clamp(1,100),n.scale.x=n.scale.y=n.scale.z,n.position.y=2*Math.sin(n.position.x/10+.01*this.t+n.position.z/10*.5);for(let s=e;s<this.points.length;s++){let i=this.points[s],e=n.position.x-i.position.x,t=n.position.y-i.position.y,o=n.position.z-i.position.z;if((l=Math.sqrt(e*e+t*t+o*o))<this.options.maxDistance){let e,t=2*(1-l/this.options.maxDistance);t=t.clamp(0,1),e="additive"===this.blending?new g.Color(0).lerp(d,t):u.clone().lerp(c,t),this.linePositions[r++]=n.position.x,this.linePositions[r++]=n.position.y,this.linePositions[r++]=n.position.z,this.linePositions[r++]=i.position.x,this.linePositions[r++]=i.position.y,this.linePositions[r++]=i.position.z,this.lineColors[a++]=e.r,this.lineColors[a++]=e.g,this.lineColors[a++]=e.b,this.lineColors[a++]=e.r,this.lineColors[a++]=e.g,this.lineColors[a++]=e.b,h++}}}return this.linesMesh.geometry.setDrawRange(0,2*h),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,this.sphere.material.color.set(c),this.linesMesh2.material.color.set(t),this.linesMesh3.material.color.set(t),.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=[]}}l.initClass();let t=s.register("GLOBE",l);return a}})()},719:function(e,t,i){e.exports=(()=>{{var a={d:(e,t)=>{for(var i in t)a.o(t,i)&&!a.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})}},t={};function h(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}a.r(t),a.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)h('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void h("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return h("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var l=s.VantaBase;let n="object"==typeof window&&window.THREE;class u extends l{constructor(e){(n=e.THREE||n).Color.prototype.toVector=function(){return new n.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 n.Vector2(1,1)},iDpr:{type:"f",value:window.devicePixelRatio||1},iMouse:{type:"v2",value:new n.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 n.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),e=this.options.texturePath,e&&(this.uniforms.iTex={type:"t",value:(new n.TextureLoader).load(e)}),e=new n.Mesh(new n.PlaneGeometry(2,2),t);this.scene.add(e),this.camera=new n.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 n.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 r="object"==typeof window&&window.THREE;class c extends u{constructor(e){r=e.THREE||r,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:r.LinearFilter,magFilter:r.LinearFilter,format:r.RGBFormat},t=this.width*window.devicePixelRatio/this.scale,i=this.height*window.devicePixelRatio/this.scale;this.bufferTarget=new r.WebGLRenderTarget(t,i,e),this.bufferFeedback=new r.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}}let e=s.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",t}})()},721:function(e,t,i){e.exports=(()=>{{var n={d:(e,t)=>{for(var i in t)n.o(t,i)&&!n.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})}},t={};function h(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}function l(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}function r(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}n.r(t),n.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let a=e=>.299*e.r+.587*e.g+.114*e.b,i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)r('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let 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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),h()&&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),s.current===this&&(s.current=null)}};var u=s.VantaBase;let m="object"==typeof window&&window.THREE;class c extends u{static initClass(){this.prototype.defaultOptions={color:16727937,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){m=e.THREE||m,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){let e=new m.SphereGeometry(.25,12,12),t=new m.MeshLambertMaterial({color:this.options.color});o=new m.Mesh(e,t)}else o=new m.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 m.Group,this.cont.position.set(0,0,0),this.scene.add(this.cont);let n=this.options.points,r=this.options.spacing,e=(h()&&(n=~~(.75*n),r=~~(.65*r)),n*n*2),t=(this.linePositions=new Float32Array(e*e*3),this.lineColors=new Float32Array(e*e*3),a(new m.Color(this.options.color))),i=a(new m.Color(this.options.backgroundColor));this.blending=t>i?"additive":"subtractive";var o=new m.BufferGeometry,s=(o.setAttribute("position",new m.BufferAttribute(this.linePositions,3).setUsage(m.DynamicDrawUsage)),o.setAttribute("color",new m.BufferAttribute(this.lineColors,3).setUsage(m.DynamicDrawUsage)),o.computeBoundingSphere(),o.setDrawRange(0,0),new m.LineBasicMaterial({vertexColors:m.VertexColors,blending:"additive"===this.blending?m.AdditiveBlending:null,transparent:!0}));this.linesMesh=new m.LineSegments(o,s),this.cont.add(this.linesMesh);for(let s=0;s<=n;s++)for(let o=0;o<=n;o++){let e=l(-3,3),t=(s-n/2)*r+l(-5,5),i=(o-n/2)*r+l(-5,5);s%2&&(i+=.5*r),this.genPoint(t,e-l(5,15),i),this.genPoint(t+l(-5,5),e+l(5,15),i+l(-5,5))}this.camera=new m.PerspectiveCamera(25,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);o=new m.AmbientLight(16777215,.75);return this.scene.add(o),this.spot=new m.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 m.Color(t.color)})}onUpdate(){let e;var 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),t.lookAt(new m.Vector3(0,0,0));let r=0,a=0,h=0;var l=new m.Color(this.options.backgroundColor),u=new m.Color(this.options.color),c=u.clone().sub(l);this.rayCaster&&this.rayCaster.setFromCamera(new m.Vector2(this.rcMouseX,this.rcMouseY),this.camera);for(let e=0;e<this.points.length;e++){let n;var d,p=this.points[e],i=(this.rayCaster?this.rayCaster.ray.distanceToPoint(p.position):1e3).clamp(5,15);p.scale.x=p.scale.y=p.scale.z=(.25*(15-i)).clamp(1,100),0!==p.r&&(i=Math.atan2(p.position.z,p.position.x),n=Math.sqrt(p.position.z*p.position.z+p.position.x*p.position.x),i+=25e-5*p.r,p.position.x=n*Math.cos(i),p.position.z=n*Math.sin(i));for(let s=e;s<this.points.length;s++){let e=this.points[s],t=p.position.x-e.position.x,i=p.position.y-e.position.y,o=p.position.z-e.position.z;(n=Math.sqrt(t*t+i*i+o*o))<this.options.maxDistance&&(d=(2*(1-n/this.options.maxDistance)).clamp(0,1),d="additive"===this.blending?new m.Color(0).lerp(c,d):l.clone().lerp(u,d),this.linePositions[r++]=p.position.x,this.linePositions[r++]=p.position.y,this.linePositions[r++]=p.position.z,this.linePositions[r++]=e.position.x,this.linePositions[r++]=e.position.y,this.linePositions[r++]=e.position.z,this.lineColors[a++]=d.r,this.lineColors[a++]=d.g,this.lineColors[a++]=d.b,this.lineColors[a++]=d.r,this.lineColors[a++]=d.g,this.lineColors[a++]=d.b,h++)}}return this.linesMesh.geometry.setDrawRange(0,2*h),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();let e=s.register("NET",c);return t}})()},722:function(e,t,i){e.exports=(()=>{{var n={d:(e,t)=>{for(var i in t)n.o(t,i)&&!n.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})}},t={};function r(){return"undefined"!=typeof navigator&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600)}n.r(t),n.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let 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 d(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}function a(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let e=this.el;if(this.el=(t=e,document.querySelector(t)),!this.el)return void a("Cannot find element",e)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return a("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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),r()&&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),s.current===this&&(s.current=null)}};var h=s.VantaBase;let u="object"==typeof window&&window.THREE;class p extends h{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){u=e.THREE||u,super(e)}material(e){return new u.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 u.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 u.ExtrudeGeometry(h,a)),a=this.material(e),h=((0===d(0,1)||60<t)&&(a.transparent=!0,a.opacity=Math.max(50/t+c(-.3,.3),.1)),new u.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&&d(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 i;var{}=this;this.cont=new u.Group,this.cont.position.set(30,0,0),this.cont.rotation.x=.06667,this.cont.rotation.z=.16667,this.scene.add(this.cont);let t=r()?30:60;for(let e=0;e<t;e++){let e,t=(i=d(0,3)?(e=c(2,4)+c(1,30)*c(1,2)*c(1,2)*c(1,2),r()&&(e*=.5),c(0,3.5)+c(0,3.5)-d(0,e/4)-e/50):(e=c(1,3)*c(2,4),c(1,2)*c(1,2)*c(1.1,1.5)),.05*Math.pow(2,d(0,4)));i<t&&(i=t),this.genRing(l(this.colors),e,i,c(0,1e3),c(1,6),c(0,50/(e+1)+5)+5/i/(e+.5),.25*Math.max(-c(.5,2),c(1,50-e/2)-e/2))}this.camera=new u.PerspectiveCamera(25,this.width/this.height,10,1e4),this.camera.position.set(0,150,200),this.scene.add(this.camera);var e=new u.AmbientLight(16777215,.5);return this.scene.add(e),this.pointLight=new u.PointLight(16777215,.5),this.pointLight.position.set(0,150,200),this.scene.add(this.pointLight),this.spot=new u.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 u.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}}p.initClass();let e=s.register("RINGS",p);return t}})()},725:function(e,t,i){e.exports=(()=>{{var n={d:(e,t)=>{for(var i in t)n.o(t,i)&&!n.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})}},t={};function r(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)}n.r(t),n.d(t,{default:()=>e}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};let i="object"==typeof window,o=i&&window.THREE||{},s=(i&&!window.VANTA&&(window.VANTA={}),i&&window.VANTA||{});s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24",s.VantaBase=class{constructor(e={}){if(!i)return!1;(s.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&&(o=this.options.THREE),this.el=this.options.el,null==this.el)r('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){let 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++){let t=this.el.childNodes[e];if(t.nodeType===Node.TEXT_NODE){let 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(){o.WebGLRenderer?(this.renderer=new o.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 o.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),s.current===this&&(s.current=null)}};var a=s.VantaBase;let c="object"==typeof window&&window.THREE;class h extends a{static initClass(){this.prototype.ww=100,this.prototype.hh=80,this.prototype.waveNoise=4}constructor(e){c=e.THREE||c,super(e)}getMaterial(){var e={color:this.options.color,shininess:this.options.shininess,flatShading:!0,side:c.DoubleSide};return new c.MeshPhongMaterial(e)}onInit(){let r,a,e=this.getMaterial(),t=new c.BufferGeometry,i=(this.gg=[],[]);for(r=0;r<=this.ww;r++)for(this.gg[r]=[],a=0;a<=this.hh;a++){let e=i.length,t=new c.Vector3(18*(r-.5*this.ww),(null==(s=this.waveNoise)&&(s=1),(o=0)+Math.random()*(s-o)-10),18*(.5*this.hh-a));i.push(t),this.gg[r][a]=e}t.setFromPoints(i);var o,s,h,l,u=[];for(r=1;r<=this.ww;r++)for(a=1;a<=this.hh;a++){let e,t,i=this.gg[r][a],o=this.gg[r][a-1],s=this.gg[r-1][a],n=this.gg[r-1][a-1];null==(h=0)&&(h=0),null==(l=1)&&(l=1),t=Math.floor(h+Math.random()*(l-h+1))?(e=[n,o,s],[o,s,i]):(e=[n,o,i],[n,s,i]),u.push(...e,...t)}t.setIndex(u),this.plane=new c.Mesh(t,e),this.scene.add(this.plane);var n=new c.AmbientLight(16777215,.9),n=(this.scene.add(n),new c.PointLight(16777215,.9));n.position.set(-100,250,-100),this.scene.add(n),this.camera=new c.PerspectiveCamera(35,this.width/this.height,50,1e4),this.cameraPosition=new c.Vector3(240,200,390),this.cameraTarget=new c.Vector3(140,-30,190),this.camera.position.copy(this.cameraPosition),this.scene.add(this.camera)}onUpdate(){let e,t=(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(),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 t=0;t<this.plane.geometry.attributes.position.array.length;t+=3){let e={x:this.plane.geometry.attributes.position.array[t],y:this.plane.geometry.attributes.position.array[t+1],z:this.plane.geometry.attributes.position.array[t+2],oy:this.oy[t]};var i,o;e.oy?(i=this.options.waveSpeed,o=Math.sqrt(i)*Math.cos(-e.x-.7*e.z),i=Math.sin(i*this.t*.02-i*e.x*.025+i*e.z*.015+o),o=Math.pow(i+1,2)/4,e.y=e.oy+o*this.options.waveHeight,this.plane.geometry.attributes.position.array[t+1]=e.y):this.oy[t]=e.y}this.plane.geometry.attributes.position.setUsage(c.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}}h.prototype.defaultOptions={color:21896,shininess:30,waveHeight:15,waveSpeed:1,zoom:1},h.initClass();let e=s.register("WAVES",h);return t}})()}}]);
|
|
1
|
+
(window.webpackJsonpfeffery_utils_components=window.webpackJsonpfeffery_utils_components||[]).push([[2],{501:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(713),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(189);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.scaleMobile,b=e.backgroundColor,M=e.backgroundAlpha,x=e.color1,C=e.color2,E=e.colorMode,T=e.quantity,z=e.birdSize,S=e.wingSpan,O=e.speedLimit,R=e.separation,A=e.alignment,P=e.cohesion,W=(e.setProps,e.loading_state),N=u(Object(o.useState)(null),2),j=N[0],X=N[1],Y=Object(o.useRef)(null);return Object(o.useEffect)((function(){return j||X(r()({el:Y.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,scaleMobile:w,backgroundColor:b,backgroundAlpha:M,color1:x,color2:C,colorMode:E,quantity:T,birdSize:z,wingSpan:S,speedLimit:O,separation:R,alignment:A,cohesion:P})),function(){j&&j.destroy()}}),[j]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:Y,"data-dash-is-loading":W&&W.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},502:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(714),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(190);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.color1,b=e.color2,M=e.size,x=e.speed,C=(e.setProps,e.loading_state),E=u(Object(o.useState)(null),2),T=E[0],z=E[1],S=Object(o.useRef)(null);return Object(o.useEffect)((function(){return T||z(r()({el:S.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,color1:w,color2:b,size:M,speed:x})),function(){T&&T.destroy()}}),[T]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:S,"data-dash-is-loading":C&&C.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},503:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(715),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(191);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.backgroundColor,w=e.skyColor,b=e.cloudColor,M=e.cloudShadowColor,x=e.sunColor,C=e.sunGlareColor,E=e.sunlightColor,T=e.speed,z=(e.setProps,e.loading_state),S=u(Object(o.useState)(null),2),O=S[0],R=S[1],A=Object(o.useRef)(null);return Object(o.useEffect)((function(){return O||R(r()({el:A.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,backgroundColor:y,skyColor:w,cloudColor:b,cloudShadowColor:M,sunColor:x,sunGlareColor:C,sunlightColor:E,speed:T})),function(){O&&O.destroy()}}),[O]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:A,"data-dash-is-loading":z&&z.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},504:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(716),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(192);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.texturePath,b=e.backgroundColor,M=e.skyColor,x=e.cloudColor,C=e.lightColor,E=e.speed,T=(e.setProps,e.loading_state),z=u(Object(o.useState)(null),2),S=z[0],O=z[1],R=Object(o.useRef)(null);return Object(o.useEffect)((function(){return S||O(r()({el:R.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,texturePath:w,backgroundColor:b,skyColor:M,cloudColor:x,lightColor:C,speed:E})),function(){S&&S.destroy()}}),[S]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:R,"data-dash-is-loading":T&&T.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},505:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(717),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(193);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.highlightColor,w=e.midtoneColor,b=e.lowlightColor,M=e.baseColor,x=e.blurFactor,C=e.zoom,E=e.speed,T=(e.setProps,e.loading_state),z=u(Object(o.useState)(null),2),S=z[0],O=z[1],R=Object(o.useRef)(null);return Object(o.useEffect)((function(){return S||O(r()({el:R.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,highlightColor:y,midtoneColor:w,lowlightColor:b,baseColor:M,blurFactor:x,zoom:C,speed:E})),function(){S&&S.destroy()}}),[S]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:R,"data-dash-is-loading":T&&T.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},506:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(718),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(194);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.scaleMobile,b=e.backgroundColor,M=e.color,x=e.color2,C=e.size,E=(e.setProps,e.loading_state),T=u(Object(o.useState)(null),2),z=T[0],S=T[1],O=Object(o.useRef)(null);return Object(o.useEffect)((function(){return z||S(r()({el:O.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,scaleMobile:w,backgroundColor:b,color:M,color2:x,size:C})),function(){z&&z.destroy()}}),[z]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:O,"data-dash-is-loading":E&&E.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},507:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(719),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(195);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.backgroundColor,w=e.baseColor,b=e.size,M=e.amplitudeFactor,x=e.xOffset,C=e.yOffset,E=(e.setProps,e.loading_state),T=u(Object(o.useState)(null),2),z=T[0],S=T[1],O=Object(o.useRef)(null);return Object(o.useEffect)((function(){return z||S(r()({el:O.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,backgroundColor:y,baseColor:w,size:b,amplitudeFactor:M,xOffset:x,yOffset:C})),function(){z&&z.destroy()}}),[z]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:O,"data-dash-is-loading":E&&E.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},508:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(721),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(197);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.scaleMobile,b=e.color,M=e.backgroundColor,x=e.points,C=e.maxDistance,E=e.spacing,T=e.showDots,z=(e.setProps,e.loading_state),S=u(Object(o.useState)(null),2),O=S[0],R=S[1],A=Object(o.useRef)(null);return Object(o.useEffect)((function(){return O||R(r()({el:A.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,scaleMobile:w,color:b,backgroundColor:M,points:x,maxDistance:C,spacing:E,showDots:T})),function(){O&&O.destroy()}}),[O]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:A,"data-dash-is-loading":z&&z.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},509:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(722),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(198);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.scaleMobile,b=e.color,M=e.backgroundColor,x=e.backgroundAlpha,C=(e.setProps,e.loading_state),E=u(Object(o.useState)(null),2),T=E[0],z=E[1],S=Object(o.useRef)(null);return Object(o.useEffect)((function(){return T||z(r()({el:S.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,scaleMobile:w,color:b,backgroundColor:M,backgroundAlpha:x})),function(){T&&T.destroy()}}),[T]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:S,"data-dash-is-loading":C&&C.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},512:function(e,t,i){"use strict";i.r(t);var o=i(1),s=i.n(o),n=i(725),r=i.n(n),a=i(554),h=i(63),l=i(25),c=i(201);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(e,t):void 0}}(e,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.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,o=Array(t);i<t;i++)o[i]=e[i];return o}var p=function(e){var t=e.id,i=e.children,n=e.className,c=e.style,d=e.key,p=e.mouseControls,m=e.touchControls,f=e.gyroControls,g=e.minHeight,v=e.minWidth,y=e.scale,w=e.scaleMobile,b=e.color,M=e.shininess,x=e.waveHeight,C=e.waveSpeed,E=e.zoom,T=(e.setProps,e.loading_state),z=u(Object(o.useState)(null),2),S=z[0],O=z[1],R=Object(o.useRef)(null);return Object(o.useEffect)((function(){return S||O(r()({el:R.current,THREE:a,mouseControls:p,touchControls:m,gyroControls:f,minHeight:g,minWidth:v,scale:y,scaleMobile:w,color:b,shininess:M,waveHeight:x,waveSpeed:C,zoom:E})),function(){S&&S.destroy()}}),[S]),s.a.createElement("div",{id:t,children:i,className:Object(l.isString)(n)?n:n?Object(h.a)(n):void 0,style:c,key:d,ref:R,"data-dash-is-loading":T&&T.is_loading||void 0},i)};t.default=p,p.defaultProps=c.b,p.propTypes=c.c},713:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};function i(){return"undefined"!=typeof navigator?/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600:null}e.r(t),e.d(t,{default:()=>R}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const o="object"==typeof window;let s=o&&window.THREE||{};o&&!window.VANTA&&(window.VANTA={});const n=o&&window.VANTA||{};n.register=(e,t)=>n[e]=e=>new t(e),n.version="0.5.24";const r=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};n.VantaBase=class{constructor(e={}){if(!o)return!1;n.current=this,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);const 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)r('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(i=e,document.querySelector(i)),!this.el)return void r("Cannot find element",e)}var i,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}setSize(){this.scale||(this.scale=1),i()&&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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),n.current===this&&(n.current=null)}};const a=n.VantaBase;let h="object"==typeof window&&window.THREE,{Camera:l,ClampToEdgeWrapping:c,DataTexture:u,FloatType:d,Mesh:p,NearestFilter:m,PlaneBufferGeometry:f,RGBAFormat:g,Scene:v,ShaderMaterial:y,WebGLRenderTarget:w}=h||{};const b=function(e,t,i,o){o&&({Camera:l,ClampToEdgeWrapping:c,DataTexture:u,FloatType:d,Mesh:p,NearestFilter:m,PlaneBufferGeometry:f,RGBAFormat:g,Scene:v,ShaderMaterial:y,WebGLRenderTarget:w}=o),this.variables=[],this.currentTextureIndex=0;var s=d,n=new v,r=new l;r.position.z=1;var a={passThruTexture:{value:null}},h=x("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",a),b=new p(new f(2,2),h);function M(i){i.defines.resolution="vec2( "+e.toFixed(1)+", "+t.toFixed(1)+" )"}function x(e,t){var i=new y({uniforms:t=t||{},vertexShader:"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n",fragmentShader:e});return M(i),i}n.add(b),this.setDataType=function(e){return s=e,this},this.addVariable=function(e,t,i){var o={name:e,initialValueTexture:i,material:this.createShaderMaterial(t),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:m,magFilter:m};return this.variables.push(o),o},this.setVariableDependencies=function(e,t){e.dependencies=t},this.init=function(){if(!i.capabilities.isWebGL2&&!i.extensions.get("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===i.capabilities.maxVertexTextures)return"No support for vertex shader textures.";for(var o=0;o<this.variables.length;o++){var s=this.variables[o];s.renderTargets[0]=this.createRenderTarget(e,t,s.wrapS,s.wrapT,s.minFilter,s.magFilter),s.renderTargets[1]=this.createRenderTarget(e,t,s.wrapS,s.wrapT,s.minFilter,s.magFilter),this.renderTexture(s.initialValueTexture,s.renderTargets[0]),this.renderTexture(s.initialValueTexture,s.renderTargets[1]);var n=s.material,r=n.uniforms;if(null!==s.dependencies)for(var a=0;a<s.dependencies.length;a++){var h=s.dependencies[a];if(h.name!==s.name){for(var l=!1,c=0;c<this.variables.length;c++)if(h.name===this.variables[c].name){l=!0;break}if(!l)return"Variable dependency not found. Variable="+s.name+", dependency="+h.name}r[h.name]={value:null},n.fragmentShader="\nuniform sampler2D "+h.name+";\n"+n.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=M,this.createShaderMaterial=x,this.createRenderTarget=function(i,o,n,r,a,h){return new w(i=i||e,o=o||t,{wrapS:n=n||c,wrapT:r=r||c,minFilter:a=a||m,magFilter:h=h||m,format:g,type:s,stencilBuffer:!1,depthBuffer:!1})},this.createTexture=function(){var i=new Float32Array(e*t*4);return new u(i,e,t,g,d)},this.renderTexture=function(e,t){a.passThruTexture.value=e,this.doRenderTarget(h,t),a.passThruTexture.value=null},this.doRenderTarget=function(e,t){var o=i.getRenderTarget();b.material=e,i.setRenderTarget(t),i.render(n,r),b.material=h,i.setRenderTarget(o)}};let M="object"==typeof window&&window.THREE;const x=!i();let C=32,E=C*C;const T=800,z=(e={})=>{const t=new M.BufferGeometry,i=[];function o(t,o,s){const n=1.5*(e.birdSize||1);i.push(new M.Vector3(t*n,o*n,s*n))}o(5,0,0),o(-5,-1,1),o(-5,0,0),o(-5,-2,-1),o(0,2,-6),o(0,2,6),o(2,0,0),o(-3,0,0),t.setFromPoints(i);const s=[];return s.push(0,2,1),s.push(4,7,6),s.push(5,6,7),t.setIndex(s),t};class S{constructor(e){var t,i,o=new M.Vector3,s=500,n=500,r=200,a=.1,h=e;this.position=new M.Vector3,this.velocity=new M.Vector3,t=new M.Vector3,this.setGoal=function(e){i=e},this.setWorldSize=function(e,t,i){s=e,n=t,r=i},this.run=function(e){o.set(-s,this.position.y,this.position.z),(o=this.avoid(o)).multiplyScalar(5),t.add(o),o.set(s,this.position.y,this.position.z),(o=this.avoid(o)).multiplyScalar(5),t.add(o),o.set(this.position.x,-n,this.position.z),(o=this.avoid(o)).multiplyScalar(5),t.add(o),o.set(this.position.x,n,this.position.z),(o=this.avoid(o)).multiplyScalar(5),t.add(o),o.set(this.position.x,this.position.y,-r),(o=this.avoid(o)).multiplyScalar(5),t.add(o),o.set(this.position.x,this.position.y,r),(o=this.avoid(o)).multiplyScalar(5),t.add(o),Math.random()>.5&&this.flock(e),this.move()},this.flock=function(e){i&&t.add(this.reach(i,.005)),t.add(this.alignment(e)),t.add(this.cohesion(e)),t.add(this.separation(e))},this.move=function(){this.velocity.add(t);var e=this.velocity.length();e>2.5&&this.velocity.divideScalar(e/2.5),this.position.add(this.velocity),t.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 M.Vector3;return t.copy(this.position),t.sub(e),t.multiplyScalar(1/this.position.distanceToSquared(e)),t},this.repulse=function(e){var i=this.position.distanceTo(e);if(i<150){var o=new M.Vector3;o.subVectors(this.position,e),o.multiplyScalar(.5/i),t.add(o)}},this.reach=function(e,t){var i=new M.Vector3;return i.subVectors(e,this.position),i.multiplyScalar(t),i},this.alignment=function(e){var t,i,o=new M.Vector3,s=0;const n=100*h.alignment/20;for(var r=0,l=e.length;r<l;r++)Math.random()>.6||(i=(t=e[r]).position.distanceTo(this.position))>0&&i<=n&&(o.add(t.velocity),s++);if(s>0){o.divideScalar(s);var c=o.length();c>a&&o.divideScalar(c/a)}return o},this.cohesion=function(e){var t,i,o=new M.Vector3,s=new M.Vector3,n=0;const r=100*h.cohesion/20;for(var l=0,c=e.length;l<c;l++)Math.random()>.6||(i=(t=e[l]).position.distanceTo(this.position))>0&&i<=r&&(o.add(t.position),n++);n>0&&o.divideScalar(n),s.subVectors(o,this.position);var u=s.length();return u>a&&s.divideScalar(u/a),s},this.separation=function(e){var t,i,o=new M.Vector3,s=new M.Vector3;const n=100*h.separation/20;for(var r=0,a=e.length;r<a;r++)Math.random()>.6||(i=(t=e[r]).position.distanceTo(this.position))>0&&i<=n&&(s.subVectors(this.position,t.position),s.normalize(),s.divideScalar(i),o.add(s));return o}}}class O 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){M=e.THREE||M,super(e)}initComputeRenderer(){this.gpuCompute=new b(C,C,this.renderer,M);const e=this.gpuCompute.createTexture(),t=this.gpuCompute.createTexture();!function(e){const t=e.image.data;let i=0;const o=t.length;(()=>{const e=[];for(;i<o;){const o=Math.random()*T-400,s=Math.random()*T-400,n=Math.random()*T-400;t[i+0]=o,t[i+1]=s,t[i+2]=n,t[i+3]=1,e.push(i+=4)}})()}(e),function(e){const t=e.image.data;let i=0;const o=t.length;(()=>{const e=[];for(;i<o;){const o=Math.random()-.5,s=Math.random()-.5,n=Math.random()-.5;t[i+0]=10*o,t[i+1]=10*s,t[i+2]=10*n,t[i+3]=1,e.push(i+=4)}})()}(t),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}",t),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}",e),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 M.Vector3},this.velocityVariable.material.defines.BOUNDS=T.toFixed(2),this.velocityVariable.wrapS=M.RepeatWrapping,this.velocityVariable.wrapT=M.RepeatWrapping,this.positionVariable.wrapS=M.RepeatWrapping,this.positionVariable.wrapT=M.RepeatWrapping;const i=this.gpuCompute.init();null!==i&&console.error(i)}initGpgpuBirds(){const e=(e=>{const t=new M.BufferGeometry;e.quantity&&(C=Math.pow(2,e.quantity),E=C*C);const i=3*E,o=3*i,s=new M.BufferAttribute(new Float32Array(3*o),3),n=new M.BufferAttribute(new Float32Array(3*o),3),r=new M.BufferAttribute(new Float32Array(2*o),2),a=new M.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<E;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);const d={};for(h=0;h<3*i;h++){const t=~~(h/3),i=t%C/C,o=~~(t/C)/C,s=~~(h/9)/E,l=s.toString(),c=-1!=e.colorMode.indexOf("Gradient");let u;u=!c&&d[l]?d[l]:e.effect.getNewCol(s),c||d[l]||(d[l]=u),n.array[3*h+0]=u.r,n.array[3*h+1]=u.g,n.array[3*h+2]=u.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}));this.birdUniforms={color:{value:new M.Color(16720384)},texturePosition:{value:null},textureVelocity:{value:null},time:{value:1},delta:{value:0},birdSize:{value:this.options.birdSize}};const t=new M.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:M.DoubleSide}),i=new M.Mesh(e,t);return i.rotation.y=Math.PI/2,i.matrixAutoUpdate=!1,i.updateMatrix(),this.scene.add(i)}getNewCol(e){const t=this.options,i=null!=t.color1?t.color1:4456448,o=null!=t.color2?t.color2:6684672,s=new M.Color(i),n=new M.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 M.Color(e,t,i)}else r=0==t.colorMode.indexOf("mix")?new M.Color(i+a*o):s.lerp(n,a);return r}onInit(){this.camera=new M.PerspectiveCamera(75,this.width/this.height,1,3e3),this.camera.position.z=350,this.fog=new M.Fog(16777215,100,1e3),this.mouseX=this.mouseY=0;const e=this.birds=[],t=this.boids=[],i=this.options;let o,s;if(x)try{this.initComputeRenderer(),this.valuesChanger=this.valuesChanger.bind(this),this.valuesChanger(),this.initGpgpuBirds()}catch(e){console.error("[vanta.js] birds init error: ",e)}else{const h=6*Math.pow(2,i.quantity);for(var n=0;n<h;n++){o=t[n]=new S(i),o.position.x=400*Math.random()-200,o.position.y=400*Math.random()-200,o.position.z=400*Math.random()-200,o.velocity.x=2*Math.random()-1,o.velocity.y=2*Math.random()-1,o.velocity.z=2*Math.random()-1,o.setWorldSize(500,500,300);const l=-1!=i.colorMode.indexOf("Gradient"),c=z(i),u=c.attributes.position.length,d=new M.BufferAttribute(new Float32Array(u),3);if(l)for(var r=0;r<c.index.array.length;r+=3)for(var a=0;a<=2;a++){const e=c.index.array[r+a],t=this.getNewCol();d.array[3*e]=t.r,d.array[3*e+1]=t.g,d.array[3*e+2]=t.b}else{const e=this.getNewCol(n/h);for(r=0;r<d.array.length;r+=3)d.array[r]=e.r,d.array[r+1]=e.g,d.array[r+2]=e.b}c.setAttribute("color",d),s=e[n]=new M.Mesh(c,new M.MeshBasicMaterial({color:16777215,side:M.DoubleSide,vertexColors:M.VertexColors})),s.phase=Math.floor(62.83*Math.random()),s.position.x=t[n].position.x,s.position.y=t[n].position.y,s.position.z=t[n].position.z,this.scene.add(s)}}}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(e>1&&(e=1),this.last=this.now,x)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,o=this.boids;let s,n;for(var t=0,i=e.length;t<i;t++){s=o[t],s.run(o),n=e[t],n.rotation.y=Math.atan2(-s.velocity.z,s.velocity.x),n.rotation.z=Math.asin(s.velocity.y/s.velocity.length()),n.phase=(n.phase+(Math.max(0,n.rotation.z)+.1))%62.83;const i=16,r=13;n.geometry.attributes.position.array[i]=n.geometry.attributes.position.array[r]=5*Math.sin(n.phase)*this.options.birdSize,n.geometry.attributes.position.needsUpdate=!0,n.geometry.computeVertexNormals(),n.position.x=o[t].position.x,n.position.y=o[t].position.y,n.position.z=o[t].position.z}}}onMouseMove(e,t){if(this.mouseX=e-.5,this.mouseY=t-.5,!x){const e=this.boids;let t;for(var i=new M.Vector3(this.mouseX*this.width,-this.mouseY*this.height,0),o=0,s=e.length;o<s;o++)t=e[o],i.z=t.position.z,t.repulse(i)}}onDestroy(){}onResize(){}}O.initClass();const R=n.register("BIRDS",O);return t})(),e.exports=o()},714:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};e.r(t),e.d(t,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let o=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});const s=i&&window.VANTA||{};s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24";const n=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};s.VantaBase=class{constructor(e={}){if(!i)return!1;s.current=this,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);const 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&&(o=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=(r=e,document.querySelector(r)),!this.el)return void n("Cannot find element",e)}var r,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){o.WebGLRenderer?(this.renderer=new o.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 o.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),s.current===this&&(s.current=null)}};const r=s.VantaBase;let a="object"==typeof window&&window.THREE;class h extends r{constructor(e){a=e.THREE||a,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();const i=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),o=this.options.texturePath;o&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(o)});const s=new a.Mesh(new a.PlaneGeometry(2,2),i);this.scene.add(s),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){const 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=s.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",t})(),e.exports=o()},715:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};e.r(t),e.d(t,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let o=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});const s=i&&window.VANTA||{};s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24";const n=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};s.VantaBase=class{constructor(e={}){if(!i)return!1;s.current=this,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);const 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&&(o=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=(r=e,document.querySelector(r)),!this.el)return void n("Cannot find element",e)}var r,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){o.WebGLRenderer?(this.renderer=new o.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 o.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),s.current===this&&(s.current=null)}};const r=s.VantaBase;let a="object"==typeof window&&window.THREE;class h extends r{constructor(e){a=e.THREE||a,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();const i=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),o=this.options.texturePath;o&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(o)});const s=new a.Mesh(new a.PlaneGeometry(2,2),i);this.scene.add(s),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){const 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=s.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",t})(),e.exports=o()},716:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};e.r(t),e.d(t,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let o=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});const s=i&&window.VANTA||{};s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24";const n=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};s.VantaBase=class{constructor(e={}){if(!i)return!1;s.current=this,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);const 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&&(o=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=(r=e,document.querySelector(r)),!this.el)return void n("Cannot find element",e)}var r,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){o.WebGLRenderer?(this.renderer=new o.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 o.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),s.current===this&&(s.current=null)}};const r=s.VantaBase;let a="object"==typeof window&&window.THREE;class h extends r{constructor(e){a=e.THREE||a,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();const i=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),o=this.options.texturePath;o&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(o)});const s=new a.Mesh(new a.PlaneGeometry(2,2),i);this.scene.add(s),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){const 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=s.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}",t})(),e.exports=o()},717:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};e.r(t),e.d(t,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let o=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});const s=i&&window.VANTA||{};s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24";const n=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};s.VantaBase=class{constructor(e={}){if(!i)return!1;s.current=this,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);const 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&&(o=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=(r=e,document.querySelector(r)),!this.el)return void n("Cannot find element",e)}var r,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){o.WebGLRenderer?(this.renderer=new o.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 o.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),s.current===this&&(s.current=null)}};const r=s.VantaBase;let a="object"==typeof window&&window.THREE;class h extends r{constructor(e){a=e.THREE||a,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();const i=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),o=this.options.texturePath;o&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(o)});const s=new a.Mesh(new a.PlaneGeometry(2,2),i);this.scene.add(s),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){const 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=s.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",t})(),e.exports=o()},718:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};function i(e,t){return null==e&&(e=0),null==t&&(t=1),e+Math.random()*(t-e)}e.r(t),e.d(t,{default:()=>d}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const o=e=>.299*e.r+.587*e.g+.114*e.b,s="object"==typeof window;let n=s&&window.THREE||{};s&&!window.VANTA&&(window.VANTA={});const r=s&&window.VANTA||{};r.register=(e,t)=>r[e]=e=>new t(e),r.version="0.5.24";const a=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};r.VantaBase=class{constructor(e={}){if(!s)return!1;r.current=this,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);const 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)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(i=e,document.querySelector(i)),!this.el)return void a("Cannot find element",e)}var i,o;this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return a("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=(o=this.options.backgroundColor,"number"==typeof o?"#"+("00000"+o.toString(16)).slice(-6):o)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),r.current===this&&(r.current=null)}};const h=r.VantaBase,l="object"==typeof window;let c=l&&window.THREE;class u extends h{static initClass(){this.prototype.defaultOptions={color:16727937,color2:16777215,size:1,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){c=e.THREE||c,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){const e=new c.SphereGeometry(.25,12,12),t=new c.MeshLambertMaterial({color:this.options.color});o=new c.Mesh(e,t)}else o=new c.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 c.Group,this.cont.position.set(-50,-20,0),this.scene.add(this.cont);let e=this.options.points,{spacing:t}=this.options;const s=e*e*2;this.linePositions=new Float32Array(s*s*3),this.lineColors=new Float32Array(s*s*3);const n=o(new c.Color(this.options.color)),r=o(new c.Color(this.options.backgroundColor));this.blending=n>r?"additive":"subtractive";const a=new c.BufferGeometry;a.setAttribute("position",new c.BufferAttribute(this.linePositions,3).setUsage(c.DynamicDrawUsage)),a.setAttribute("color",new c.BufferAttribute(this.lineColors,3).setUsage(c.DynamicDrawUsage)),a.computeBoundingSphere(),a.setDrawRange(0,0);const h=new c.LineBasicMaterial({vertexColors:c.VertexColors,blending:"additive"===this.blending?c.AdditiveBlending:null,transparent:!0});this.linesMesh=new c.LineSegments(a,h),this.cont.add(this.linesMesh);for(let i=0;i<=e;i++)for(let o=0;o<=e;o++){const s=0,n=(i-e/2)*t;let r=(o-e/2)*t;this.genPoint(n,s,r)}this.camera=new c.PerspectiveCamera(20,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);const l=new c.AmbientLight(16777215,.75);this.scene.add(l),this.spot=new c.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 c.Group,this.cont2.position.set(0,15,0),this.scene.add(this.cont2);const u=new c.LineBasicMaterial({color:this.options.color2}),d=[];for(let e=0;e<80;e++){const e=i(18,24),t=e+i(1,6),o=i(-1,1),s=Math.sqrt(1-o*o),n=i(0,2*Math.PI),r=Math.sin(n)*s,a=Math.cos(n)*s;d.push(new c.Vector3(a*e,r*e,o*e)),d.push(new c.Vector3(a*t,r*t,o*t))}const p=(new c.BufferGeometry).setFromPoints(d);this.linesMesh2=new c.LineSegments(p,u),this.linesMesh2.position.set(0,0,0),this.cont2.add(this.linesMesh2);const m=new c.LineBasicMaterial({color:this.options.color2,linewidth:2}),f=[];f.push(new c.Vector3(0,30,0)),f.push(new c.Vector3(0,-30,0));for(let e=0;e<4;e++){let t=.15*Math.cos(e/4*Math.PI*2),i=.15*Math.sin(e/4*Math.PI*2),o=[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<o.length;e++){let s=o[e],n=6*(e+1);f.push(new c.Vector3(t*n,s,i*n)),f.push(new c.Vector3(t*n,-s,i*n))}}const g=(new c.BufferGeometry).setFromPoints(f);this.linesMesh3=new c.LineSegments(g,m),this.linesMesh3.position.set(0,0,0),this.cont2.add(this.linesMesh3);const v=new c.LineBasicMaterial({color:this.options.color}),y=new c.SphereGeometry(18*this.options.size,18,14),w=new c.EdgesGeometry(y);this.sphere=new c.LineSegments(w,v),this.sphere.position.set(0,0,0),this.cont2.add(this.sphere),this.cont2.rotation.x=-.25}onUpdate(){let e;null!=this.helper&&this.helper.update(),null!=this.controls&&this.controls.update();const t=this.camera;Math.abs(t.tx-t.position.x)>.01&&(e=t.tx-t.position.x,t.position.x+=.02*e),Math.abs(t.ty-t.position.y)>.01&&(e=t.ty-t.position.y,t.position.y+=.02*e),l&&window.innerWidth<480?t.lookAt(new c.Vector3(-10,0,0)):l&&window.innerWidth<720?t.lookAt(new c.Vector3(-20,0,0)):t.lookAt(new c.Vector3(-40,0,0));let i=0,o=0,s=0;const n=new c.Color(this.options.backgroundColor),r=new c.Color(this.options.color),a=new c.Color(this.options.color2),h=r.clone().sub(n);this.rayCaster&&this.rayCaster.setFromCamera(new c.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 e=0;e<this.points.length;e++){let t,a;const l=this.points[e];a=this.rayCaster?this.rayCaster.ray.distanceToPoint(l.position):1e3;const u=a.clamp(5,15);l.scale.z=(.25*(15-u)).clamp(1,100),l.scale.x=l.scale.y=l.scale.z,l.position.y=2*Math.sin(l.position.x/10+.01*this.t+l.position.z/10*.5);for(let a=e;a<this.points.length;a++){const e=this.points[a],u=l.position.x-e.position.x,d=l.position.y-e.position.y,p=l.position.z-e.position.z;if(t=Math.sqrt(u*u+d*d+p*p),t<this.options.maxDistance){let a,u=2*(1-t/this.options.maxDistance);u=u.clamp(0,1),a="additive"===this.blending?new c.Color(0).lerp(h,u):n.clone().lerp(r,u),this.linePositions[i++]=l.position.x,this.linePositions[i++]=l.position.y,this.linePositions[i++]=l.position.z,this.linePositions[i++]=e.position.x,this.linePositions[i++]=e.position.y,this.linePositions[i++]=e.position.z,this.lineColors[o++]=a.r,this.lineColors[o++]=a.g,this.lineColors[o++]=a.b,this.lineColors[o++]=a.r,this.lineColors[o++]=a.g,this.lineColors[o++]=a.b,s++}}}return this.linesMesh.geometry.setDrawRange(0,2*s),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,this.sphere.material.color.set(r),this.linesMesh2.material.color.set(a),this.linesMesh3.material.color.set(a),.001*this.t}onMouseMove(e,t){const i=this.camera;i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z);const o=Math.atan2(i.oz,i.ox),s=Math.sqrt(i.oz*i.oz+i.ox*i.ox),n=o+1.5*(e-.5)*(this.options.mouseCoeffX||1);i.tz=s*Math.sin(n),i.tx=s*Math.cos(n),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=[]}}u.initClass();const d=r.register("GLOBE",u);return t})(),e.exports=o()},719:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};e.r(t),e.d(t,{default:()=>u}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const i="object"==typeof window;let o=i&&window.THREE||{};i&&!window.VANTA&&(window.VANTA={});const s=i&&window.VANTA||{};s.register=(e,t)=>s[e]=e=>new t(e),s.version="0.5.24";const n=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};s.VantaBase=class{constructor(e={}){if(!i)return!1;s.current=this,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);const 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&&(o=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=(r=e,document.querySelector(r)),!this.el)return void n("Cannot find element",e)}var r,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){o.WebGLRenderer?(this.renderer=new o.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 o.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),s.current===this&&(s.current=null)}};const r=s.VantaBase;let a="object"==typeof window&&window.THREE;class h extends r{constructor(e){a=e.THREE||a,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();const i=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:t,fragmentShader:e}),o=this.options.texturePath;o&&(this.uniforms.iTex={type:"t",value:(new a.TextureLoader).load(o)});const s=new a.Mesh(new a.PlaneGeometry(2,2),i);this.scene.add(s),this.camera=new a.Camera,this.camera.position.z=1}updateUniforms(){const 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(){const 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;const e=this.renderer;e.setRenderTarget(this.bufferTarget),e.render(this.scene,this.camera),e.setRenderTarget(null),e.clear();let t=this.bufferTarget;this.bufferTarget=this.bufferFeedback,this.bufferFeedback=t}onResize(){if(this.bufferTarget){const 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=s.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",t})(),e.exports=o()},721:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};function i(){return"undefined"!=typeof navigator?/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600:null}function o(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}e.r(t),e.d(t,{default:()=>d}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const s=e=>.299*e.r+.587*e.g+.114*e.b,n="object"==typeof window;let r=n&&window.THREE||{};n&&!window.VANTA&&(window.VANTA={});const a=n&&window.VANTA||{};a.register=(e,t)=>a[e]=e=>new t(e),a.version="0.5.24";const h=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};a.VantaBase=class{constructor(e={}){if(!n)return!1;a.current=this,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);const 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&&(r=this.options.THREE),this.el=this.options.el,null==this.el)h('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(i=e,document.querySelector(i)),!this.el)return void h("Cannot find element",e)}var i,o;this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return h("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=(o=this.options.backgroundColor,"number"==typeof o?"#"+("00000"+o.toString(16)).slice(-6):o)))}this.initMouse(),this.resize(),this.animationLoop();const s=window.addEventListener;s("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(s("scroll",this.windowMouseMoveWrapper),s("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(s("touchstart",this.windowTouchWrapper),s("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&s("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(){r.WebGLRenderer?(this.renderer=new r.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 r.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}setSize(){this.scale||(this.scale=1),i()&&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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),a.current===this&&(a.current=null)}};const l=a.VantaBase;let c="object"==typeof window&&window.THREE;class u extends l{static initClass(){this.prototype.defaultOptions={color:16727937,backgroundColor:2299196,points:10,maxDistance:20,spacing:15,showDots:!0}}constructor(e){c=e.THREE||c,super(e)}genPoint(e,t,i){let o;if(this.points||(this.points=[]),this.options.showDots){const e=new c.SphereGeometry(.25,12,12),t=new c.MeshLambertMaterial({color:this.options.color});o=new c.Mesh(e,t)}else o=new c.Object3D;var s,n;return this.cont.add(o),o.ox=e,o.oy=t,o.oz=i,o.position.set(e,t,i),o.r=(null==(s=-2)&&(s=0),null==(n=2)&&(n=1),s+Math.random()*(n-s)),this.points.push(o)}onInit(){this.cont=new c.Group,this.cont.position.set(0,0,0),this.scene.add(this.cont);let e=this.options.points,{spacing:t}=this.options;i()&&(e=~~(.75*e),t=~~(.65*t));const n=e*e*2;this.linePositions=new Float32Array(n*n*3),this.lineColors=new Float32Array(n*n*3);const r=s(new c.Color(this.options.color)),a=s(new c.Color(this.options.backgroundColor));this.blending=r>a?"additive":"subtractive";const h=new c.BufferGeometry;h.setAttribute("position",new c.BufferAttribute(this.linePositions,3).setUsage(c.DynamicDrawUsage)),h.setAttribute("color",new c.BufferAttribute(this.lineColors,3).setUsage(c.DynamicDrawUsage)),h.computeBoundingSphere(),h.setDrawRange(0,0);const l=new c.LineBasicMaterial({vertexColors:c.VertexColors,blending:"additive"===this.blending?c.AdditiveBlending:null,transparent:!0});this.linesMesh=new c.LineSegments(h,l),this.cont.add(this.linesMesh);for(let i=0;i<=e;i++)for(let s=0;s<=e;s++){const n=o(-3,3),r=(i-e/2)*t+o(-5,5);let a=(s-e/2)*t+o(-5,5);i%2&&(a+=.5*t),this.genPoint(r,n-o(5,15),a),this.genPoint(r+o(-5,5),n+o(5,15),a+o(-5,5))}this.camera=new c.PerspectiveCamera(25,this.width/this.height,.01,1e4),this.camera.position.set(50,100,150),this.scene.add(this.camera);const u=new c.AmbientLight(16777215,.75);return this.scene.add(u),this.spot=new c.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(e){super.setOptions(e),e.color&&this.points.forEach(t=>{t.material.color=new c.Color(e.color)})}onUpdate(){let e;const t=this.camera;Math.abs(t.tx-t.position.x)>.01&&(e=t.tx-t.position.x,t.position.x+=.02*e),Math.abs(t.ty-t.position.y)>.01&&(e=t.ty-t.position.y,t.position.y+=.02*e),t.lookAt(new c.Vector3(0,0,0));let i=0,o=0,s=0;const n=new c.Color(this.options.backgroundColor),r=new c.Color(this.options.color),a=r.clone().sub(n);this.rayCaster&&this.rayCaster.setFromCamera(new c.Vector2(this.rcMouseX,this.rcMouseY),this.camera);for(let e=0;e<this.points.length;e++){let t,h;const l=this.points[e];h=this.rayCaster?this.rayCaster.ray.distanceToPoint(l.position):1e3;const u=h.clamp(5,15);if(l.scale.x=l.scale.y=l.scale.z=(.25*(15-u)).clamp(1,100),0!==l.r){let e=Math.atan2(l.position.z,l.position.x);t=Math.sqrt(l.position.z*l.position.z+l.position.x*l.position.x),e+=25e-5*l.r,l.position.x=t*Math.cos(e),l.position.z=t*Math.sin(e)}for(let h=e;h<this.points.length;h++){const e=this.points[h],u=l.position.x-e.position.x,d=l.position.y-e.position.y,p=l.position.z-e.position.z;if(t=Math.sqrt(u*u+d*d+p*p),t<this.options.maxDistance){let h;const u=(2*(1-t/this.options.maxDistance)).clamp(0,1);h="additive"===this.blending?new c.Color(0).lerp(a,u):n.clone().lerp(r,u),this.linePositions[i++]=l.position.x,this.linePositions[i++]=l.position.y,this.linePositions[i++]=l.position.z,this.linePositions[i++]=e.position.x,this.linePositions[i++]=e.position.y,this.linePositions[i++]=e.position.z,this.lineColors[o++]=h.r,this.lineColors[o++]=h.g,this.lineColors[o++]=h.b,this.lineColors[o++]=h.r,this.lineColors[o++]=h.g,this.lineColors[o++]=h.b,s++}}}return this.linesMesh.geometry.setDrawRange(0,2*s),this.linesMesh.geometry.attributes.position.needsUpdate=!0,this.linesMesh.geometry.attributes.color.needsUpdate=!0,.001*this.t}onMouseMove(e,t){const i=this.camera;i.oy||(i.oy=i.position.y,i.ox=i.position.x,i.oz=i.position.z);const o=Math.atan2(i.oz,i.ox),s=Math.sqrt(i.oz*i.oz+i.ox*i.ox),n=o+2*(e-.5)*(this.options.mouseCoeffX||1);i.tz=s*Math.sin(n),i.tx=s*Math.cos(n),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=[]}}u.initClass();const d=a.register("NET",u);return t})(),e.exports=o()},722:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};function i(){return"undefined"!=typeof navigator?/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600:null}e.r(t),e.d(t,{default:()=>p}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const o=e=>e[Math.floor(Math.random()*e.length)];function s(e,t){return null==e&&(e=0),null==t&&(t=1),e+Math.random()*(t-e)}function n(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}const r="object"==typeof window;let a=r&&window.THREE||{};r&&!window.VANTA&&(window.VANTA={});const h=r&&window.VANTA||{};h.register=(e,t)=>h[e]=e=>new t(e),h.version="0.5.24";const l=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};h.VantaBase=class{constructor(e={}){if(!r)return!1;h.current=this,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);const 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&&(a=this.options.THREE),this.el=this.options.el,null==this.el)l('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(i=e,document.querySelector(i)),!this.el)return void l("Cannot find element",e)}var i,o;this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(e){return l("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=(o=this.options.backgroundColor,"number"==typeof o?"#"+("00000"+o.toString(16)).slice(-6):o)))}this.initMouse(),this.resize(),this.animationLoop();const s=window.addEventListener;s("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(s("scroll",this.windowMouseMoveWrapper),s("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(s("touchstart",this.windowTouchWrapper),s("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&s("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(){a.WebGLRenderer?(this.renderer=new a.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 a.Scene):console.warn("[VANTA] No THREE defined on window")}getCanvasElement(){return this.renderer?this.renderer.domElement:this.p5renderer?this.p5renderer.canvas:void 0}getCanvasRect(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}setSize(){this.scale||(this.scale=1),i()&&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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),h.current===this&&(h.current=null)}};const c=h.VantaBase;let u="object"==typeof window&&window.THREE;class d extends c{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){u=e.THREE||u,super(e)}material(e){return new u.MeshLambertMaterial({color:e})}genRing(e,t,i,r,a,h,l){null==r&&(r=0),null==a&&(a=1.4*Math.PI),null==h&&(h=0),null==l&&(l=1),this.rings||(this.rings=[]),t<1&&(t=1);const c={depth:.4,bevelEnabled:!1,steps:1,curveSegments:~~(64*a/6.14)},d=new u.Shape;d.absarc(0,0,t+i,0,a,!1),d.lineTo(t*Math.cos(a),t*Math.sin(a)),d.absarc(0,0,t,a,0,!0);const p=new u.ExtrudeGeometry(d,c),m=this.material(e);(0===n(0,1)||t>60)&&(m.transparent=!0,m.opacity=Math.max(50/t+s(-.3,.3),.1));const f=new u.Mesh(p,m);if(f.rotation.x=Math.PI/2,f.rotation.z=r,f.position.y=h,f.speed=.001*l,f.receiveShadow=!0,f.castShadow=!0,this.rings.push(f),this.cont.add(f),t<20&&a<1.3*Math.PI&&n(0,2))try{this.genRing(o(this.colors),t+s(-1,3),i+s(-2,0),r+a,a+s(-.5,.5),h+s(-3,1),l)}catch(e){}return f}onInit(){let e;const{material:t}=this;this.cont=new u.Group,this.cont.position.set(30,0,0),this.cont.rotation.x=.06667,this.cont.rotation.z=.16667,this.scene.add(this.cont);let r=i()?30:60;for(let t=0;t<r;t++){let t;n(0,3)?(t=s(2,4)+s(1,30)*s(1,2)*s(1,2)*s(1,2),i()&&(t*=.5),e=s(0,3.5)+s(0,3.5)-n(0,t/4)-t/50):(t=s(1,3)*s(2,4),e=s(1,2)*s(1,2)*s(1.1,1.5));const r=.05*Math.pow(2,n(0,4));e<r&&(e=r),this.genRing(o(this.colors),t,e,s(0,1e3),s(1,6),s(0,50/(t+1)+5)+5/e/(t+.5),.25*Math.max(-s(.5,2),s(1,50-t/2)-t/2))}this.camera=new u.PerspectiveCamera(25,this.width/this.height,10,1e4),this.camera.position.set(0,150,200),this.scene.add(this.camera);const a=new u.AmbientLight(16777215,.5);return this.scene.add(a),this.pointLight=new u.PointLight(16777215,.5),this.pointLight.position.set(0,150,200),this.scene.add(this.pointLight),this.spot=new u.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();const t=this.camera;Math.abs(t.tx-t.position.x)>.01&&(e=t.tx-t.position.x,t.position.x+=.02*e),Math.abs(t.ty-t.position.y)>.01&&(e=t.ty-t.position.y,t.position.y+=.02*e),t.lookAt(new u.Vector3(0,25,7)),t.near=Math.max(.5*t.position.z-20,1),t.updateProjectionMatrix();for(let e of Array.from(null!=this.rings?this.rings:[]))e.rotation.z+=e.speed;const 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){const 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}}d.initClass();const p=h.register("RINGS",d);return t})(),e.exports=o()},725:function(e,t,i){var o;"undefined"!=typeof self&&self,o=()=>(()=>{"use strict";var e={d:(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},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})}},t={};function i(e,t){return null==e&&(e=0),null==t&&(t=1),Math.floor(e+Math.random()*(t-e+1))}e.r(t),e.d(t,{default:()=>c}),Number.prototype.clamp=function(e,t){return Math.min(Math.max(this,e),t)};const o="object"==typeof window;let s=o&&window.THREE||{};o&&!window.VANTA&&(window.VANTA={});const n=o&&window.VANTA||{};n.register=(e,t)=>n[e]=e=>new t(e),n.version="0.5.24";const r=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};n.VantaBase=class{constructor(e={}){if(!o)return!1;n.current=this,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);const 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)r('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const e=this.el;if(this.el=(i=e,document.querySelector(i)),!this.el)return void r("Cannot find element",e)}var i,a;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=(a=this.options.backgroundColor,"number"==typeof a?"#"+("00000"+a.toString(16)).slice(-6):a)))}this.initMouse(),this.resize(),this.animationLoop();const h=window.addEventListener;h("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(h("scroll",this.windowMouseMoveWrapper),h("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(h("touchstart",this.windowTouchWrapper),h("touchmove",this.windowTouchWrapper)),this.options.gyroControls&&h("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(){const e=this.getCanvasElement();return!!e&&e.getBoundingClientRect()}windowMouseMoveWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=e.clientX-t.left,o=e.clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}windowTouchWrapper(e){const t=this.getCanvasRect();if(!t)return!1;if(1===e.touches.length){const i=e.touches[0].clientX-t.left,o=e.touches[0].clientY-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}}windowGyroWrapper(e){const t=this.getCanvasRect();if(!t)return!1;const i=Math.round(2*e.alpha)-t.left,o=Math.round(2*e.beta)-t.top;i>=0&&o>=0&&i<=t.width&&o<=t.height&&(this.mouseX=i,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(i,o))}triggerMouseMove(e,t){void 0===e&&void 0===t&&(this.options.mouseEase?(e=this.mouseEaseX,t=this.mouseEaseY):(e=this.mouseX,t=this.mouseY)),this.uniforms&&(this.uniforms.iMouse.value.x=e/this.scale,this.uniforms.iMouse.value.y=t/this.scale);const i=e/this.width,o=t/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,o)}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(){const e=this.el.offsetHeight,t=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,o=t.top+i;return o-window.innerHeight<=i&&i<=o+e}animationLoop(){this.t||(this.t=0),this.t2||(this.t2=0);const e=performance.now();if(this.prevNow){let t=(e-this.prevNow)/(1e3/60);t=Math.max(.2,Math.min(t,5)),this.t+=t,this.t2+=(this.options.speed||1)*t,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2)}return this.prevNow=e,this.options.mouseEase&&(this.mouseEaseX=this.mouseEaseX||this.mouseX||0,this.mouseEaseY=this.mouseEaseY||this.mouseY||0,Math.abs(this.mouseEaseX-this.mouseX)+Math.abs(this.mouseEaseY-this.mouseY)>.1&&(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();const e=window.removeEventListener;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);const t=this.scene;t&&t.children&&function e(t){for(;t.children&&t.children.length>0;)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())}(t),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null),n.current===this&&(n.current=null)}};const a=n.VantaBase;let h="object"==typeof window&&window.THREE;class l extends a{static initClass(){this.prototype.ww=100,this.prototype.hh=80,this.prototype.waveNoise=4}constructor(e){h=e.THREE||h,super(e)}getMaterial(){const e={color:this.options.color,shininess:this.options.shininess,flatShading:!0,side:h.DoubleSide};return new h.MeshPhongMaterial(e)}onInit(){let e,t;const o=this.getMaterial(),s=new h.BufferGeometry;this.gg=[];const n=[];for(e=0;e<=this.ww;e++)for(this.gg[e]=[],t=0;t<=this.hh;t++){const i=n.length,o=new h.Vector3(18*(e-.5*this.ww),(null==(r=0)&&(r=0),null==(a=this.waveNoise)&&(a=1),r+Math.random()*(a-r)-10),18*(.5*this.hh-t));n.push(o),this.gg[e][t]=i}var r,a;s.setFromPoints(n);const l=[];for(e=1;e<=this.ww;e++)for(t=1;t<=this.hh;t++){let o,s;const n=this.gg[e][t],r=this.gg[e][t-1],a=this.gg[e-1][t],h=this.gg[e-1][t-1];i(0,1)?(o=[h,r,a],s=[r,a,n]):(o=[h,r,n],s=[h,a,n]),l.push(...o,...s)}s.setIndex(l),this.plane=new h.Mesh(s,o),this.scene.add(this.plane);const c=new h.AmbientLight(16777215,.9);this.scene.add(c);const u=new h.PointLight(16777215,.9);u.position.set(-100,250,-100),this.scene.add(u),this.camera=new h.PerspectiveCamera(35,this.width/this.height,50,1e4),this.cameraPosition=new h.Vector3(240,200,390),this.cameraTarget=new h.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;Math.abs(t.tx-t.position.x)>.01&&(e=t.tx-t.position.x,t.position.x+=.02*e),Math.abs(t.ty-t.position.y)>.01&&(e=t.ty-t.position.y,t.position.y+=.02*e),Math.abs(t.tz-t.position.z)>.01&&(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]};if(t.oy){const i=this.options.waveSpeed,o=Math.sqrt(i)*Math.cos(-t.x-.7*t.z),s=Math.sin(i*this.t*.02-i*t.x*.025+i*t.z*.015+o),n=Math.pow(s+1,2)/4;t.y=t.oy+n*this.options.waveHeight,this.plane.geometry.attributes.position.array[e+1]=t.y}else this.oy[e]=t.y}this.plane.geometry.attributes.position.setUsage(h.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){const 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}}l.prototype.defaultOptions={color:21896,shininess:30,waveHeight:15,waveSpeed:1,zoom:1},l.initClass();const c=n.register("WAVES",l);return t})(),e.exports=o()}}]);
|
|
2
|
+
//# sourceMappingURL=async-feffery_animated_3d_background_three.js.map
|
|
3
|
+
//# sourceMappingURL=async-feffery_animated_3d_background_three.js.map
|