(function(){var hero=document.querySelector(‘[data-chiendent-hero]’),wrap=document.querySelector(‘[data-chiendent-grass-html]’);if(!hero||!wrap)return;var reduce=window.matchMedia(‘(prefers-reduced-motion: reduce)’).matches,fine=window.matchMedia(‘(pointer:fine)’).matches;function seeded(seed){return function(){seed=(seed*9301+49297)%233280;return seed/233280;};}var rand=seeded(42),plants=[];function makeBlade(i){var blade=document.createElement(‘span’),layer=i%6===0?’back’:i%3===0?’mid’:’front’,x=-4+rand()*108,h=44+rand()*62+(layer===’front’?18:0),w=5+rand()*10,a=-24+rand()*48,z=layer===’front’?3:layer===’mid’?2:1;blade.className=’grass-blade ‘+layer;blade.style.setProperty(‘–x’,x.toFixed(2)+’%’);blade.style.setProperty(‘–h’,h.toFixed(2)+’%’);blade.style.setProperty(‘–w’,w.toFixed(2)+’px’);blade.style.setProperty(‘–a’,a.toFixed(2)+’deg’);blade.style.setProperty(‘–skew’,(-18+rand()*36).toFixed(2)+’deg’);blade.style.setProperty(‘–z’,z);if(i%9===0){if(layer!==’back’){var seed=document.createElement(‘span’);seed.className=’grass-seed’;seed.style.setProperty(‘–seed-a’,(-10+rand()*20).toFixed(2)+’deg’);for(var s=0;s<12;s++){var n=document.createElement('i');n.style.setProperty('--t',(-8-s*8).toFixed(2)+'px');seed.appendChild(n)}blade.appendChild(seed)}}wrap.appendChild(blade);plants.push({el:blade,x:x,force:14+rand()*22,lag:.12+rand()*.18,tx:0,ty:0,tr:0,ttx:0,tty:0,ttr:0,vx:0,vy:0,vr:0,base:a})}for(var i=0;i<(innerWidth<680?78:112);i++)makeBlade(i);if(!fine)return;var active=false,px=50,py=.5,raf=0,rect=null,dirty=true;function getRect(){if(!rect||dirty){rect=hero.getBoundingClientRect();dirty=false}return rect}function move(e){var r=getRect();if(!r.width||!r.height)return;px=Math.max(0,Math.min(100,((e.clientX-r.left)/r.width)*100));py=Math.max(0,Math.min(1,(e.clientY-r.top)/r.height));active=true;hero.style.setProperty('--img-x',(((50-px)/50)*8).toFixed(2)+'px');hero.style.setProperty('--img-y',((.5-py)*5).toFixed(2)+'px');tick()}function leave(){active=false;hero.style.setProperty('--img-x','0px');hero.style.setProperty('--img-y','0px');tick()}function tick(){if(!raf)raf=requestAnimationFrame(step)}function step(){raf=0;var again=false;for(var i=0;i
.08)again=true;p.el.style.setProperty(‘–mx’,p.tx.toFixed(2)+’px’);p.el.style.setProperty(‘–my’,p.ty.toFixed(2)+’px’);p.el.style.setProperty(‘–mr’,p.tr.toFixed(2)+’deg’)}if(again)raf=requestAnimationFrame(step)}hero.addEventListener(‘pointerenter’,move,{passive:true});hero.addEventListener(‘pointermove’,move,{passive:true});hero.addEventListener(‘pointerleave’,leave,{passive:true});hero.addEventListener(‘pointercancel’,leave,{passive:true});window.addEventListener(‘resize’,function(){dirty=true},{passive:true});window.addEventListener(‘scroll’,function(){dirty=true},{passive:true});window.addEventListener(‘blur’,leave,{passive:true})})();
(function(){var hero=document.querySelector(‘[data-chiendent-hero]’),target=document.querySelector(‘[data-chiendent-grass]’);if(!hero){return;}if(!target){return;}var canvas=target;if(!canvas.getContext){canvas=document.createElement(‘canvas’);canvas.className=’chiendent-grass-canvas’;canvas.setAttribute(‘data-chiendent-grass’,”);canvas.setAttribute(‘aria-hidden’,’true’);target.replaceWith(canvas);}if(!canvas.getContext){return;}var ctx=canvas.getContext(‘2d’),blades=[],dpr=1,w=0,h=0,mouse={x:-9999,y:-9999,active:false},raf=0,t=0;function rnd(a,b){return a+Math.random()*(b-a)}function resize(){var r=canvas.getBoundingClientRect();dpr=Math.min(window.devicePixelRatio||1,1.7);w=Math.max(1,Math.round(r.width*dpr));h=Math.max(1,Math.round(r.height*dpr));canvas.width=w;canvas.height=h;var count=window.innerWidth<680?90:145;blades=[];for(var i=0;i.72,hasSeed=false;if(tall){hasSeed=Math.random()>.5;}blades.push({x:rnd(-.04*w,1.04*w),base:rnd(.78*h,1.04*h),height:tall?rnd(.5*h,.9*h):rnd(.25*h,.62*h),width:rnd(1.2,3.6)*dpr,bend:0,vel:0,phase:rnd(0,6.28),seed:hasSeed,color:Math.random()>.58?’#78a74d’:(Math.random()>.45?’#4f8934′:’#315a2a’)});}draw(true)}function draw(force){t+=.018;ctx.clearRect(0,0,w,h);var fog=ctx.createLinearGradient(0,h*.58,0,h);fog.addColorStop(0,’rgba(8,28,10,0)’);fog.addColorStop(.58,’rgba(11,40,13,.38)’);fog.addColorStop(1,’rgba(5,22,7,.82)’);ctx.fillStyle=fog;ctx.fillRect(0,0,w,h);var moving=false;for(var i=0;i=0?1:-1,wind=Math.sin(t+b.phase)*b.height*.022,targetBend=wind+away*influence*(26*dpr+b.height*.12);b.vel+=(targetBend-b.bend)*.075;b.vel*=.82;b.bend+=b.vel;if(Math.abs(b.vel)+Math.abs(targetBend-b.bend)>.15){moving=true;}ctx.beginPath();ctx.moveTo(b.x,b.base);ctx.quadraticCurveTo(b.x+b.bend*.45,b.base-b.height*.56,b.x+b.bend,tipY);ctx.strokeStyle=b.color;ctx.lineWidth=b.width;ctx.lineCap=’round’;ctx.stroke();ctx.beginPath();ctx.moveTo(b.x+b.bend*.11,b.base-b.height*.18);ctx.quadraticCurveTo(b.x+b.bend*.55,b.base-b.height*.5,b.x+b.bend*.94,tipY+b.height*.08);ctx.strokeStyle=’rgba(218,236,146,.34)’;ctx.lineWidth=Math.max(.55*dpr,b.width*.32);ctx.stroke();if(b.seed){drawSeed(b.x+b.bend,tipY,b.bend*.05,b.height*.16*dpr,b.width*.45);}}var keep=false;if(moving){keep=true;}if(mouse.active){keep=true;}if(force){keep=true;}if(keep){raf=requestAnimationFrame(function(){draw(false)});}else{raf=0;}}function drawSeed(x,y,rot,len,lw){ctx.save();ctx.translate(x,y);ctx.rotate(rot*.018);ctx.strokeStyle=’rgba(232,226,181,.9)’;ctx.lineWidth=Math.max(.8*dpr,lw);ctx.lineCap=’round’;ctx.beginPath();ctx.moveTo(0,0);ctx.lineTo(0,-len);ctx.stroke();for(var j=2;j<8;j++){var yy=-len*j/8,side=j%2?1:-1;ctx.beginPath();ctx.moveTo(0,yy);ctx.lineTo(side*rnd(5,10)*dpr,yy-rnd(2,6)*dpr);ctx.stroke();}ctx.restore();}function wake(force){if(!raf){raf=requestAnimationFrame(function(){draw(force)})}}hero.addEventListener('pointermove',function(e){var r=canvas.getBoundingClientRect();mouse.x=(e.clientX-r.left)*dpr;mouse.y=(e.clientY-r.top)*dpr;mouse.active=true;wake(true);},{passive:true});hero.addEventListener('pointerleave',function(){mouse.active=false;wake(true);},{passive:true});window.addEventListener('resize',resize,{passive:true});
resize();
resize();})();