!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports._vantaEffect=e():t._vantaEffect=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=18)}({0:function(t,e,i){"use strict";function n(t,e){for(let i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function o(){return"undefined"!=typeof navigator?/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<600:null}i.d(e,"c",(function(){return n})),i.d(e,"e",(function(){return o})),i.d(e,"i",(function(){return s})),i.d(e,"h",(function(){return r})),i.d(e,"g",(function(){return a})),i.d(e,"f",(function(){return l})),i.d(e,"a",(function(){return h})),i.d(e,"b",(function(){return c})),i.d(e,"d",(function(){return u})),Number.prototype.clamp=function(t,e){return Math.min(Math.max(this,t),e)};const s=t=>t[Math.floor(Math.random()*t.length)];function r(t,e){return null==t&&(t=0),null==e&&(e=1),t+Math.random()*(e-t)}function a(t,e){return null==t&&(t=0),null==e&&(e=1),Math.floor(t+Math.random()*(e-t+1))}const l=t=>document.querySelector(t),h=t=>"number"==typeof t?"#"+("00000"+t.toString(16)).slice(-6):t,c=(t,e=1)=>{const i=h(t),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(i),o=n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null;return"rgba("+o.r+","+o.g+","+o.b+","+e+")"},u=t=>.299*t.r+.587*t.g+.114*t.b},1:function(t,e,i){"use strict";i.d(e,"a",(function(){return r}));var n=i(0);const o="object"==typeof window;let s=o&&window.THREE||{};o&&!window.VANTA&&(window.VANTA={});const r=o&&window.VANTA||{};r.register=(t,e)=>r[t]=t=>new e(t),r.version="0.5.15";const a=function(){return Array.prototype.unshift.call(arguments,"[VANTA]"),console.error.apply(this,arguments)};r.VantaBase=class{constructor(t={}){if(!o)return!1;r.current=this,this.windowMouseMoveWrapper=this.windowMouseMoveWrapper.bind(this),this.windowTouchWrapper=this.windowTouchWrapper.bind(this),this.resize=this.resize.bind(this),this.animationLoop=this.animationLoop.bind(this),this.restart=this.restart.bind(this);const e="function"==typeof this.getDefaultOptions?this.getDefaultOptions():this.defaultOptions;if(this.options=Object(n.c)({mouseControls:!0,touchControls:!0,minHeight:200,minWidth:200,scale:1,scaleMobile:1},e),(t instanceof HTMLElement||"string"==typeof t)&&(t={el:t}),Object(n.c)(this.options,t),this.options.THREE&&(s=this.options.THREE),this.el=this.options.el,null==this.el)a('Instance needs "el" param!');else if(!(this.options.el instanceof HTMLElement)){const t=this.el;if(this.el=Object(n.f)(t),!this.el)return void a("Cannot find element",t)}this.prepareEl(),this.initThree(),this.setSize();try{this.init()}catch(t){return a("Init error",t),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=Object(n.a)(this.options.backgroundColor)))}this.initMouse(),this.resize(),this.animationLoop();const i=window.addEventListener;i("resize",this.resize),window.requestAnimationFrame(this.resize),this.options.mouseControls&&(i("scroll",this.windowMouseMoveWrapper),i("mousemove",this.windowMouseMoveWrapper)),this.options.touchControls&&(i("touchstart",this.windowTouchWrapper),i("touchmove",this.windowTouchWrapper))}setOptions(t={}){Object(n.c)(this.options,t)}prepareEl(){let t,e;if("undefined"!=typeof Node&&Node.TEXT_NODE)for(t=0;t=0&&o>=0&&n<=i.width&&o<=i.height&&(this.mouseX=n,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(n,o))}windowTouchWrapper(t){if(1===t.touches.length){const e=this.getCanvasElement();if(!e)return!1;const i=e.getBoundingClientRect(),n=t.touches[0].clientX-i.left,o=t.touches[0].clientY-i.top;n>=0&&o>=0&&n<=i.width&&o<=i.height&&(this.mouseX=n,this.mouseY=o,this.options.mouseEase||this.triggerMouseMove(n,o))}}triggerMouseMove(t,e){this.uniforms&&(this.uniforms.iMouse.value.x=t/this.scale,this.uniforms.iMouse.value.y=e/this.scale);const i=t/this.width,n=e/this.height;"function"==typeof this.onMouseMove&&this.onMouseMove(i,n)}setSize(){this.scale||(this.scale=1),Object(n.e)()&&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 t=this.el.offsetHeight,e=this.el.getBoundingClientRect(),i=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop,n=e.top+i;return n-window.innerHeight<=i&&i<=n+t}animationLoop(){return this.t||(this.t=0),this.t+=1,this.t2||(this.t2=0),this.t2+=this.options.speed||1,this.uniforms&&(this.uniforms.iTime.value=.016667*this.t2),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 t=window.removeEventListener;t("touchstart",this.windowTouchWrapper),t("touchmove",this.windowTouchWrapper),t("scroll",this.windowMouseMoveWrapper),t("mousemove",this.windowMouseMoveWrapper),t("resize",this.resize),window.cancelAnimationFrame(this.req),this.renderer&&(this.renderer.domElement&&this.el.removeChild(this.renderer.domElement),this.renderer=null,this.scene=null)}},e.b=r.VantaBase},18:function(t,e,i){"use strict";i.r(e);var n=i(1),o=i(0);function s(t,e,i){this.variables=[],this.currentTextureIndex=0;var n=new THREE.Scene,o=new THREE.Camera;o.position.z=1;var s={texture:{value:null}},r=h("uniform sampler2D texture;\n\nvoid main() {\n\n\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\n\tgl_FragColor = texture2D( texture, uv );\n\n}\n",s),a=new THREE.Mesh(new THREE.PlaneBufferGeometry(2,2),r);function l(i){i.defines.resolution="vec2( "+t.toFixed(1)+", "+e.toFixed(1)+" )"}function h(t,e){e=e||{};var i=new THREE.ShaderMaterial({uniforms:e,vertexShader:"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n",fragmentShader:t});return l(i),i}n.add(a),this.addVariable=function(t,e,i){var n={name:t,initialValueTexture:i,material:this.createShaderMaterial(e),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter};return this.variables.push(n),n},this.setVariableDependencies=function(t,e){t.dependencies=e},this.init=function(){if(!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 n=0;n=102){var s=i.getRenderTarget();a.material=t,i.setRenderTarget(e),i.render(n,o),a.material=r,i.setRenderTarget(s)}else a.material=t,i.render(n,o,e),a.material=r}}let r="object"==typeof window&&window.THREE;const a=!Object(o.e)();let l=32,h=l*l;const c=800,u=c/2;let d,p;const f=function(t){(d=function(e={}){var i=this;function n(n,o,s){const r=1.5*(e.birdSize||1);i.vertices.push(new t.Vector3(n*r,o*r,s*r))}function o(e,n,o){i.faces.push(new t.Face3(e,n,o))}t.Geometry.call(this),n(5,0,0),n(-5,-1,1),n(-5,0,0),n(-5,-2,-1),n(0,2,-6),n(0,2,6),n(2,0,0),n(-3,0,0),o(0,2,1),o(4,7,6),o(5,6,7),this.computeFaceNormals()}).prototype=Object.create(t.Geometry.prototype),p=function(e){var i,n,o=new t.Vector3,s=500,r=500,a=200,l=e;this.position=new t.Vector3,this.velocity=new t.Vector3,i=new t.Vector3,this.setGoal=function(t){n=t},this.setWorldSize=function(t,e,i){s=t,r=e,a=i},this.run=function(t){o.set(-s,this.position.y,this.position.z),(o=this.avoid(o)).multiplyScalar(5),i.add(o),o.set(s,this.position.y,this.position.z),(o=this.avoid(o)).multiplyScalar(5),i.add(o),o.set(this.position.x,-r,this.position.z),(o=this.avoid(o)).multiplyScalar(5),i.add(o),o.set(this.position.x,r,this.position.z),(o=this.avoid(o)).multiplyScalar(5),i.add(o),o.set(this.position.x,this.position.y,-a),(o=this.avoid(o)).multiplyScalar(5),i.add(o),o.set(this.position.x,this.position.y,a),(o=this.avoid(o)).multiplyScalar(5),i.add(o),Math.random()>.5&&this.flock(t),this.move()},this.flock=function(t){n&&i.add(this.reach(n,.005)),i.add(this.alignment(t)),i.add(this.cohesion(t)),i.add(this.separation(t))},this.move=function(){this.velocity.add(i);var t=this.velocity.length();t>2.5&&this.velocity.divideScalar(t/2.5),this.position.add(this.velocity),i.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>r&&(this.position.y=-r),this.position.y<-r&&(this.position.y=r),this.position.z>a&&(this.position.z=-a),this.position.z<-a&&(this.position.z=a)},this.avoid=function(e){var i=new t.Vector3;return i.copy(this.position),i.sub(e),i.multiplyScalar(1/this.position.distanceToSquared(e)),i},this.repulse=function(e){var n=this.position.distanceTo(e);if(n<150){var o=new t.Vector3;o.subVectors(this.position,e),o.multiplyScalar(.5/n),i.add(o)}},this.reach=function(e,i){var n=new t.Vector3;return n.subVectors(e,this.position),n.multiplyScalar(i),n},this.alignment=function(e){var i,n,o=new t.Vector3,s=0;const r=100*l.alignment/20;for(var a=0,h=e.length;a.6||(n=(i=e[a]).position.distanceTo(this.position))>0&&n<=r&&(o.add(i.velocity),s++);if(s>0){o.divideScalar(s);var c=o.length();c>.1&&o.divideScalar(c/.1)}return o},this.cohesion=function(e){var i,n,o=new t.Vector3,s=new t.Vector3,r=0;const a=100*l.cohesion/20;for(var h=0,c=e.length;h.6||(n=(i=e[h]).position.distanceTo(this.position))>0&&n<=a&&(o.add(i.position),r++);r>0&&o.divideScalar(r),s.subVectors(o,this.position);var u=s.length();return u>.1&&s.divideScalar(u/.1),s},this.separation=function(e){var i,n,o=new t.Vector3,s=new t.Vector3;const r=100*l.separation/20;for(var a=0,h=e.length;a.6||(n=(i=e[a]).position.distanceTo(this.position))>0&&n<=r&&(s.subVectors(this.position,i.position),s.normalize(),s.divideScalar(n),o.add(s));return o}},t.BirdGeometry=function(e){e.quantity&&(l=Math.pow(2,e.quantity),h=l*l);const i=3*h,n=3*i;t.BufferGeometry.call(this);const o=new t.BufferAttribute(new Float32Array(3*n),3),s=new t.BufferAttribute(new Float32Array(3*n),3),r=new t.BufferAttribute(new Float32Array(2*n),2),a=new t.BufferAttribute(new Float32Array(n),1);this.setAttribute||(this.setAttribute=this.addAttribute),this.setAttribute("position",o),this.setAttribute("birdColor",s),this.setAttribute("reference",r),this.setAttribute("birdVertex",a);let c=0;const u=function(){for(let t=0;t{const t=[];for(;i{const t=[];for(;i1&&(t=1),this.last=this.now,a)this.positionUniforms.time.value=this.now,this.positionUniforms.delta.value=t,this.velocityUniforms.time.value=this.now,this.velocityUniforms.delta.value=t,this.birdUniforms.time.value=this.now,this.birdUniforms.delta.value=t,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 t=this.birds,n=this.boids;let o,s;for(var e=0,i=t.length;e