(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[502],{1150:(e,t,a)=>{Promise.resolve().then(a.bind(a,7434))},3234:e=>{e.exports={page:"page_page__D6kPe",view:"page_view__XOXV8"}},3860:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=[{url:"/images/img1.webp"},{url:"/images/img2.webp"},{url:"/images/img3.webp"},{url:"/images/img4.webp"},{url:"/images/img5.webp"},{url:"/images/img6.webp"},{url:"/images/img7.webp"},{url:"/images/img8.webp"},{url:"/images/img9.webp"},{url:"/images/img10.webp"},{url:"/images/img11.webp"},{url:"/images/img12.webp"},{url:"/images/img13.webp"}]},5606:e=>{e.exports={loader:"Loader_loader____4ji",loader__text:"Loader_loader__text__sh6zk",fadeInOut:"Loader_fadeInOut__VPOUq"}},5982:e=>{e.exports={footer:"Footer_footer___TWQ4",wrapper:"Footer_wrapper__IarUo"}},7326:e=>{e.exports={header:"Header_header__zHlTC"}},7434:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>u});var r=a(5155),i=a(3234),l=a.n(i),n=a(3860),s=a(3758),o=a(9909),c=a(8289),d=a(9701),p=a(8722);function u(){let{texture:e,isLoading:t}=(0,c.y)(n.A);return t?(0,r.jsx)(p.aH,{}):(0,r.jsx)("div",{className:l().page,children:(0,r.jsxs)(o.S,{className:l().view,orbit:!0,children:[(0,r.jsx)(s.u,{makeDefault:!0,fov:7,position:[0,0,100],near:.01,far:1e5}),(0,r.jsx)(d.An,{texture:e})]})})}},7574:(e,t,a)=>{"use strict";a.d(t,{K:()=>r});let r=(0,a(5914).A)()},8289:(e,t,a)=>{"use strict";a.d(t,{y:()=>s});var r=a(2115),i=a(3264);async function l(e,t,a,r){let i,l,n=new Image;n.crossOrigin="anonymous",await new Promise((t,a)=>{n.onload=()=>t(),n.onerror=()=>a(Error("Failed to load image: ".concat(e))),n.src=e});let s=n.naturalWidth/n.naturalHeight;return"x"===t?(l=a,i=a*s):(i=r,l=r/s),{img:n,width:i,height:l}}async function n(e){let{images:t,gap:a=10,canvasHeight:r=512,canvasWidth:n=512,canvas:s,ctx:o,axis:c="x"}=e;if(!t.length)throw Error("No images");let d=s||document.createElement("canvas"),p=o||d.getContext("2d");if(!p)throw Error("No context");let u=await Promise.all(t.map(e=>l(e.url,c,r,n))),m="x"===c?{totalWidth:u.reduce((e,t,r)=>e+t.width+(r>0?a:0),0),totalHeight:r}:{totalWidth:n,totalHeight:u.reduce((e,t,r)=>e+t.height+(r>0?a:0),0)};let{totalWidth:f,totalHeight:g}=m,h=Math.min(window.devicePixelRatio||1,2);d.width=f*h,d.height=g*h,1!==h&&p.scale(h,h),p.fillStyle="#ffffff",p.fillRect(0,0,f,g);let x=0,w=0;for(let e of(p.save(),u))p.drawImage(e.img,x,w,e.width,e.height),"x"===c?x+=e.width+a:w+=e.height+a;p.restore();let v=new i.GOR(d);return v.needsUpdate=!0,v.wrapS=i.GJx,v.wrapT=i.ghU,v.generateMipmaps=!1,v.minFilter=i.k6q,v.magFilter=i.k6q,{texture:v,dimensions:{width:m.totalWidth,height:m.totalHeight,aspectRatio:m.totalWidth/m.totalHeight}}}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[a,i]=(0,r.useState)(null),[l,s]=(0,r.useState)(!0),[o,c]=(0,r.useState)(null),{gap:d=0,canvasHeight:p=512,canvasWidth:u=512,axis:m="x"}=t,f=(0,r.useCallback)(async()=>{try{s(!0),c(null);let t=await n({images:e,gap:d,canvasHeight:p,canvasWidth:u,axis:m});i(t)}catch(e){c(e instanceof Error?e:Error("Failed to create texture"))}finally{s(!1)}},[e,d,p,u,m]);return(0,r.useEffect)(()=>{e.length>0&&f()},[e.length,f]),{texture:(null==a?void 0:a.texture)||null,dimensions:(null==a?void 0:a.dimensions)||null,isLoading:l,error:o}}},8722:(e,t,a)=>{"use strict";a.d(t,{wi:()=>u,Y9:()=>c,aH:()=>n});var r=a(5155),i=a(5606),l=a.n(i);let n=function(){return(0,r.jsx)("div",{className:l().loader,children:(0,r.jsx)("div",{className:l().loader__text,children:"Loading..."})})};var s=a(7326),o=a.n(s);let c=function(e){let{children:t}=e;return(0,r.jsx)("div",{className:o().header,children:(0,r.jsx)("div",{className:o().wrapper,children:t})})};var d=a(5982),p=a.n(d);let u=function(e){let{children:t}=e;return(0,r.jsx)("div",{className:p().footer,children:(0,r.jsx)("div",{className:p().wrapper,children:t})})}},9701:(e,t,a)=>{"use strict";a.d(t,{lZ:()=>p,QB:()=>o,tu:()=>m,An:()=>f});var r=a(5155),i=a(3264),l=a(2115),n=a(1949);class s extends i.V9B{constructor(e={}){super(e),this.onBeforeCompile=e=>{e.fragmentShader=e.fragmentShader.replace("#include ","#include \n if (!gl_FrontFacing) {\n vec3 blackCol = vec3(0.0);\n diffuseColor.rgb = mix(diffuseColor.rgb, blackCol, 0.7);\n }\n ")},this.setValues(e)}}(0,n.e)({MeshImageMaterial:s});let o=function(e){let{texture:t,dimensions:a,radius:s=5,...o}=e,c=(0,l.useRef)(null),d=2*Math.PI*s/2;return a.aspectRatio>d?(t.repeat.x=d/a.aspectRatio,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2):(t.repeat.x=1,t.repeat.y=a.aspectRatio/d),t.offset.y=(1-t.repeat.y)/2,(0,n.D)((e,a)=>{t&&(t.offset.x+=.001*a)}),(0,r.jsxs)("mesh",{ref:c,...o,children:[(0,r.jsx)("cylinderGeometry",{args:[s,s,2,100,1,!0]}),(0,r.jsx)("meshImageMaterial",{map:t,side:i.$EB,toneMapped:!1})]})};var c=a(2660);class d extends i.V9B{constructor(e={}){super(e),this.onBeforeCompile=e=>{e.uniforms.repeatX={value:this.backfaceRepeatX},e.fragmentShader=e.fragmentShader.replace("#include ","#include \n uniform float repeatX;\n\n vec3 pal( in float t, in vec3 a, in vec3 b, in vec3 c, in vec3 d ) {\n return a + b*cos( 6.28318*(c*t+d) );\n }\n ").replace("#include ","#include \n if (!gl_FrontFacing) {\n diffuseColor.rgb = pal( vMapUv.x * repeatX, vec3(0.5,0.5,0.5),vec3(0.5,0.5,0.5),vec3(1.0,1.0,1.0),vec3(0.0,0.10,0.20) );\n }\n ")},this.setValues(e),this.backfaceRepeatX=1,void 0!==e.backfaceRepeatX&&(this.backfaceRepeatX=e.backfaceRepeatX)}}(0,n.e)({MeshBannerMaterial:d});let p=function(e){let{radius:t=1.6,...a}=e,s=(0,l.useRef)(null),o=(0,c.zo)("/banner.jpg");return o.wrapS=o.wrapT=i.GJx,(0,n.D)((e,t)=>{if(!s.current)return;let a=s.current.material;a.map&&(a.map.offset.x+=t/30)}),(0,r.jsxs)("mesh",{ref:s,...a,children:[(0,r.jsx)("cylinderGeometry",{args:[t,t,.07*t,80*t,10*t,!0]}),(0,r.jsx)("meshBannerMaterial",{map:o,"map-anisotropy":16,"map-repeat":[15,1],side:i.$EB,toneMapped:!1,backfaceRepeatX:.2})]})};var u=a(5321);let m=function(e){let{texture:t,...a}=e,{scene:s}=(0,u.p)("/paper.glb"),o=s.children[0];return(0,l.useEffect)(()=>{if(t){var e;t.colorSpace=i.er$,(e=o.material).map=t,e.toneMapped=!1}},[t,o.material]),(0,n.D)((e,a)=>{t&&(t.offset.y+=a/30,t.wrapS=i.GJx,t.wrapT=i.GJx)}),(0,r.jsx)("primitive",{...a,object:s})},f=function(e){let{texture:t}=e,{scene:a}=(0,u.p)("/spiral.glb"),o=a.children[0];return(0,l.useEffect)(()=>{t&&(t.colorSpace=i.er$,o.material=new s({map:t,side:i.$EB,toneMapped:!1}))},[t,o]),(0,n.D)((e,t)=>{let a=o.material;a&&a.map&&(a.map.offset.x-=t/50,a.map.wrapS=i.GJx,a.map.wrapT=i.GJx)}),(0,r.jsx)("primitive",{object:a})}},9909:(e,t,a)=>{"use strict";a.d(t,{S:()=>c});var r=a(5155),i=a(2115),l=a(6265),n=a(4688),s=a(7574);let o=e=>{let{children:t}=e;return(0,r.jsx)(s.K.In,{children:t})},c=(0,i.forwardRef)((e,t)=>{let{children:a,orbit:s,...c}=e,d=(0,i.useRef)(null);return(0,i.useImperativeHandle)(t,()=>d.current),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{ref:d,...c}),(0,r.jsx)(o,{children:(0,r.jsxs)(l.S,{track:d,children:[a,s&&(0,r.jsx)(n.N,{})]})})]})});c.displayName="View"}},e=>{var t=t=>e(e.s=t);e.O(0,[545,831,367,413,380,84,441,684,358],()=>t(1150)),_N_E=e.O()}]);