1import{r as Ot,j as nt}from"./index-BuFAflkI.js";const Qt=!0,te="#030304";function ot(c,s){let i=Math.imul(c|0,374761393)^Math.imul(s|0,668265263);return i=Math.imul(i^i>>>13,1274126177),((i^i>>>16)>>>0)/4294967296}function st(c,s){const i=Math.floor(c),n=Math.floor(s),d=c-i,h=s-n,t=d*d*(3-2*d),u=h*h*(3-2*h),g=ot(i,n),A=ot(i+1,n),v=ot(i,n+1),r=ot(i+1,n+1);return g+(A-g)*t+(v-g)*u+(g-A-v+r)*t*u}function ee(c){let s=c;return function(){s|=0,s=s+1831565813|0;let n=Math.imul(s^s>>>15,1|s);return n=n+Math.imul(n^n>>>7,61|n)^n,((n^n>>>14)>>>0)/4294967296}}const vt=(c,s,i)=>{let n=(i-c)/(s-c);return n=n<0?0:n>1?1:n,n*n*(3-2*n)},qt=[[1.15,4.3,1.7,2.15,1.1,1],[-1.95,4.7,1.85,2.25,.8,1.1],[-.3,5.55,1.4,1.9,.71,1.15],[3.45,5.05,1.7,2.1,.78,1.1],[-4.15,5.3,1.75,2.15,.68,1.15],[6.1,6.05,2.05,2.35,.66,1.2],[-6.9,6.25,2.1,2.35,.63,1.2],[2.3,7.55,2.25,2.65,.55,1.3],[-2.7,8.05,2.35,2.75,.5,1.3],[8.8,7.85,2.55,2.85,.51,1.3],[-9.4,8.4,2.6,2.9,.46,1.35],[.9,10.1,2.9,3.1,.4,1.4],[-6.2,10.6,3,3.2,.36,1.4],[7.4,11,3.1,3.2,.34,1.4]];function ne(c,s){let i=0,n=1,d=1,h=0;for(let t=0;t<5;t+=1){const u=1-Math.abs(st(c*.94*d+13.7,s*.64*d+4.3)*2-1);i+=Math.pow(u,1.25)*n,h+=n,n*=.52,d*=2.03}return i/h}function Gt(c,s){let i=0;for(let A=0;A<qt.length;A+=1){const v=qt[A],r=(c-v[0])/v[2],b=(s-v[1])/v[3],m=r*r+b*b;m<1&&(i+=v[4]*Math.pow(1-m,v[5]))}const n=ne(c,s),d=Math.pow(n,1.62),h=vt(1.95,3.9,s),t=.11+.89*vt(1.8,4.4,s);let u=i*(.34+.92*d)*h+n*n*.26*t;const g=1-vt(1.75,4.1,s);if(g>.001){const A=st(c*7.4+71.3,s*4.6+17.1),v=st(c*17+5.9,s*11+44.2);u+=(A*A*.03+v*v*.011)*g}return u*(1-.16*vt(7.5,13.5,s))}function oe(c,s,i,n,d,h){const u=n/5;c.beginPath(),c.moveTo(s,i);for(let g=0;g<5;g+=1){const A=g/5,v=(g+1)/5,r=d*(1-A)+d*.12,b=d*(1-v)+d*.12,m=i-u*g,M=i-u*v;c.lineTo(s+r+h*(m-i),m),c.lineTo(s+b*1.42+h*((m+M)/2-i),(m+M)/2),c.lineTo(s+b+h*(M-i),M)}c.lineTo(s+h*-n,i-n);for(let g=4;g>=0;g-=1){const A=g/5,v=(g+1)/5,r=d*(1-A)+d*.12,b=d*(1-v)+d*.12,m=i-u*g,M=i-u*v;c.lineTo(s-b+h*(M-i),M),c.lineTo(s-b*1.42+h*((m+M)/2-i),(m+M)/2),c.lineTo(s-r+h*(m-i),m)}c.closePath()}function ie({rootRef:c}){const s=Ot.useRef(null),i=Ot.useRef(null);return Ot.useEffect(()=>{const n=c?.current,d=s.current,h=i.current;if(!n||!d||!h)return;const t=d.getContext("2d"),u=h.getContext("2d");if(!t||!u)return;const g=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=window.matchMedia("(max-width: 720px), (pointer: coarse)").matches,v=getComputedStyle(n).getPropertyValue("--fe-bg").trim()||te,r={fov:50,camY:.74,horizon:.575,zNear:1.7,zFar:12.5,zPow:.92,rows:150,samp:300,spanPad:1.26,treeCount:170};let b=1,m=0,M=0,Y=0,q=0,it=0,St=0,I=0,W=r.camY,Et=0,Yt=r.camY,k=1e3,pt=0,gt=0,j=new Float32Array(1),G=new Float32Array(1),O=1,yt=NaN,It=NaN,U=new Float32Array(r.samp),Z=new Float32Array(r.samp),_=[];function jt(e,o,x,T,R){for(let w=0;w<x-1;w+=1){let l=e[w]*.5,a=o[w],y=e[w+1]*.5,f=o[w+1];if(y<l){let F=l;l=y,y=F,F=a,a=f,f=F}let p=Math.ceil(l),z=Math.floor(y);if(z<0||p>=O||z<p)continue;p<0&&(p=0),z>O-1&&(z=O-1);const X=y-l,ut=f-a;if(X<1e-6){const F=a<f?a:f;F<T[p]&&(T[p]=F,G[p]=R);continue}for(let F=p;F<=z;F+=1){const mt=a+ut*((F-l)/X);mt<T[F]&&(T[F]=mt,G[F]=R)}}}const rt=e=>{const o=e*.5|0;return o<0||o>=O?1e9:j[o]};function Ut(){_=[];const e=ee(20260731),o=r.zNear+.03,x=r.zNear+1.05,T=26,R=Math.ceil(r.treeCount/T);for(let w=0;w<T;w+=1){const l=o+(x-o)*Math.pow(e(),.85),a=m*.5/k*l*1.35,y=-a+e()*a*2;for(let f=0;f<R;f+=1){const p=Math.max(o,l+(e()-.5)*.22),z=y+(e()-.5)*.34*p;_.push({x:z,z:p,h:.052+e()*.062,w:.015+e()*.0115,lean:(e()-.5)*.09})}}_.sort((w,l)=>l.z-w.z)}const Zt=7,bt=.2,xt=.055;let Tt=null,B=0,at=0,C=7;function _t(){C=Math.max(4,Math.round(Zt*b)),B=Math.ceil(Y/C)+1,at=Math.ceil(q/C)+1,Tt=new Float32Array(B*at);for(let e=0;e<at;e+=1)for(let o=0;o<B;o+=1){const x=st(o*.115,e*.115),T=st(o*.46+31.5,e*.46+9.1),R=ot(o+977,e+311);Tt[e*B+o]=.42*x+.24*T+.34*R}}function Dt(){b=Math.min(A?1:2,window.devicePixelRatio||1);const e=n.getBoundingClientRect();it=Math.max(1,Math.round(e.width)),St=Math.max(1,Math.round(e.height));const o=Math.max(1,Math.round(d.getBoundingClientRect().height));m=Math.round(it*b),M=Math.round(o*b),d.width=m,d.height=M,Y=Math.round(it*b),q=Math.round(St*b),h.width=Y,h.height=q,k=M*.5/Math.tan(r.fov*Math.PI/360),pt=m*.5,gt=M*r.horizon,r.rows=Math.max(58,Math.min(160,Math.round(M*.105))),r.samp=Math.max(140,Math.min(340,Math.round(m/9.6))),r.treeCount=Math.max(60,Math.min(220,Math.round(it*.13))),U=new Float32Array(r.samp),Z=new Float32Array(r.samp),O=(m>>1)+1,j=new Float32Array(O),G=new Float32Array(O),yt=NaN,Ut(),_t()}function lt(){t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,m,M),j.fill(1e9),G.fill(0),t.lineCap="round",t.lineJoin="round",t.lineWidth=Math.max(1,b*.8);const e=r.rows,o=r.samp,x=m*.5,T=1/r.zNear,R=1/r.zFar;for(let l=0;l<e;l+=1){const a=l/(e-1),y=1/(T+(R-T)*Math.pow(a,r.zPow)),f=k/y,p=x/k*y*r.spanPad,z=I-p,X=2*p/(o-1);let ut=!1;for(let P=0;P<o;P+=1){const N=z+X*P,S=Gt(N,y),wt=pt+(N-I)*f,E=gt-(S-W)*f;U[P]=wt,Z[P]=E,E<M+4&&(ut=!0)}if(!ut){jt(U,Z,o,j,0);continue}const F=Math.pow(Math.max(0,(r.zFar-y)/(r.zFar-r.zNear)),.9),mt=.05+.5*F;t.beginPath();let Mt=!1,$t=!1,Pt=0,Nt=0;for(let P=0;P<o;P+=1){const N=U[P],S=Z[P],wt=S<rt(N)-.5;if(wt)if(Mt)t.lineTo(N,S);else{if(P>0&&!$t){let E=Pt,H=Nt,V=N,$=S;for(let et=0;et<3;et+=1){const D=(E+V)*.5,L=(H+$)*.5;
1L<rt(D)-.5?(V=D,$=L):(E=D,H=L)}t.moveTo(V,$),t.lineTo(N,S)}else t.moveTo(N,S);Mt=!0}else if(Mt){let E=Pt,H=Nt,V=N,$=S;for(let et=0;et<3;et+=1){const D=(E+V)*.5,L=(H+$)*.5;L<rt(D)-.5?(E=D,H=L):(V=D,$=L)}t.lineTo(E,H),Mt=!1}$t=wt,Pt=N,Nt=S}t.strokeStyle=`rgba(236,234,228,${mt.toFixed(3)})`,t.stroke(),jt(U,Z,o,j,F)}const w=7;t.lineWidth=Math.max(1,b*.85);for(let l=0;l<w;l+=1){t.beginPath();let a=!1;for(let f=0;f<O;f+=1){const p=j[f];if(p>M+2){a=!1;continue}if(Math.min(w-1,(1-G[f])*w|0)!==l){a=!1;continue}a?t.lineTo(f*2,p):(t.moveTo(f*2,p),a=!0)}const y=.045+.5*Math.pow(1-l/(w-1),1.35);t.strokeStyle=`rgba(236,234,228,${y.toFixed(3)})`,t.stroke()}{t.lineWidth=Math.max(1,b*.55),t.fillStyle=v;for(let l=0;l<_.length;l+=1){const a=_[l],y=k/a.z,f=pt+(a.x-I)*y;if(f<-80||f>m+80)continue;const p=gt-(Gt(a.x,a.z)-W)*y;if(p<rt(f)-3)continue;const z=a.h*y,X=a.w*y;p-z>M+6||(oe(t,f,p+z*.05,z,X,a.lean),t.fill(),t.strokeStyle=`rgba(236,234,228,${(.3+.22*Math.min(1,z/110)).toFixed(3)})`,t.stroke())}}t.globalCompositeOperation="destination-over",t.beginPath(),t.moveTo(-2,M+2);for(let l=0;l<O;l+=1){const a=j[l];t.lineTo(l*2,a>M+2?M+2:a)}t.lineTo(m+2,M+2),t.closePath(),t.fillStyle=v,t.fill(),t.globalCompositeOperation="source-over"}function J(e){if(u.setTransform(1,0,0,1,0,0),u.globalCompositeOperation="source-over",u.globalAlpha=1,u.fillStyle=v,u.fillRect(0,0,Y,q),e<=0)return;const o=e*(1+bt+xt);u.globalCompositeOperation="destination-out";const x=(o-bt-xt)*Y;x>0&&u.fillRect(0,0,Math.min(Y,x),q);const T=Math.max(0,Math.floor(x/C)),R=Math.min(B-1,Math.ceil(o*Y/C));for(let w=0;w<at;w+=1){const l=w*B;for(let a=T;a<=R;a+=1){const y=(a*C+C*.5)/Y;let f=(o-bt*Tt[l+a]-y)/xt;f<=0||(f>1?f=1:f=Math.ceil(f*3)/3,u.globalAlpha=f,u.fillRect(a*C,w*C,C+.5,C+.5))}}u.globalAlpha=1,u.globalCompositeOperation="source-over"}const Lt=2050;let K=0,Q=!1,ct=!1,Ft=!0,Wt=!1,At=0,zt=0,kt=0;const Bt=e=>1-Math.pow(1-e,2.6),Jt=6e3;let Rt=0,tt=1,ft=0;function Xt(e){const o=At?Math.min(48,e-At):16;if(At=e,Wt){if(e-kt>=15.5){kt=e,Rt+=o;const x=Rt>Jt?0:1;tt+=(x-tt)*.02,tt>.002&&(zt+=o*16e-5);const T=Math.sin(zt)*.055*tt,R=Math.cos(zt*.73)*.014*tt;I+=(Et+T-I)*.055,W+=(Yt+R-W)*.055;const w=(r.zNear+r.zFar)*.4;(Math.abs(I-yt)+Math.abs(W-It))*(k/w)<.3||(yt=I,It=W,lt())}if(Q){K+=o;const x=Math.min(1,K/Lt);J(Bt(x)),x>=1&&(Q=!1,ct=!0,h.style.display="none")}}ft=requestAnimationFrame(Xt)}function Kt(){Ft&&(Ft=!1,ct=!1,Q=!0,K=0,h.style.display="",J(0))}const Ht=e=>{const o=e.clientX/window.innerWidth*2-1,x=e.clientY/window.innerHeight*2-1;Et=-o*.34,Yt=r.camY+x*.052,Rt=0};let Ct=0;const Vt=()=>{window.clearTimeout(Ct),Ct=window.setTimeout(()=>{Dt(),lt(),ct||J(Q?Bt(Math.min(1,K/Lt)):0)},120)};Dt();let ht=null,dt=null;return g?(lt(),h.style.display="none"):(window.addEventListener("pointermove",Ht,{passive:!0}),J(0),lt(),ht=new IntersectionObserver(e=>{for(const o of e)Wt=o.isIntersecting,!o.isIntersecting&&Qt&&(Ft=!0,Q=!1,ct=!1,K=0,h.style.display="",J(0))},{threshold:0}),ht.observe(n),dt=new IntersectionObserver(e=>{for(const o of e)o.isIntersecting&&Kt()},{threshold:0,rootMargin:"0px 0px -33% 0px"}),dt.observe(n),ft=requestAnimationFrame(Xt)),window.addEventListener("resize",Vt),()=>{window.clearTimeout(Ct),window.removeEventListener("resize",Vt),window.removeEventListener("pointermove",Ht),ft&&cancelAnimationFrame(ft),ht&&ht.disconnect(),dt&&dt.disconnect(),d.width=1,d.height=1,h.width=1,h.height=1}},[c]),nt.jsxs(nt.Fragment,{children:[nt.jsx("canvas",{ref:s,className:"footer-engraved-terrain","aria-hidden":"true"}),nt.jsx("canvas",{ref:i,className:"footer-engraved-reveal","aria-hidden":"true"}),nt.jsx("div",{className:"footer-engraved-grain","aria-hidden":"true"})]})}export{ie as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.