(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{255:(e,t,r)=>{"use strict";function n(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),r(5155),r(7650),r(5744),r(589)},2146:(e,t,r)=>{"use strict";function n(e){let{reason:t,children:r}=e;return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),r(5262)},2664:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(9991),o=r(7102);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},2757:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return i},urlObjectKeys:function(){return a}});let n=r(6966)._(r(8859)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&"?"+l||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==s?(s="//"+(s||""),a&&"/"!==a[0]&&(a="/"+a)):s||(s=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),""+u+s+(a=a.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+i}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return u(e)}},3180:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},3394:(e,t,r)=>{Promise.resolve().then(r.bind(r,4506)),Promise.resolve().then(r.t.bind(r,3967,23)),Promise.resolve().then(r.t.bind(r,6407,23))},3967:()=>{},4054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return a},createAsyncLocalStorage:function(){return u},createSnapshot:function(){return i}});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let o="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function u(){return o?new o:new n}function a(e){return o?o.bind(e):n.bind(e)}function i(){return o?o.snapshot():function(e,...t){return e(...t)}}},4506:(e,t,r)=>{"use strict";r.d(t,{Layout:()=>d});var n=r(5155),o=r(2115),u=r(6645),a=r.n(u),i=r(8999),l=r(8722),s=r(6874),c=r.n(s);let f=a()(()=>Promise.all([r.e(831),r.e(367),r.e(413),r.e(380),r.e(624)]).then(r.bind(r,6624)),{loadableGenerated:{webpack:()=>[6624]},ssr:!1});function d(e){let{children:t}=e,r=(0,o.useRef)(null),u=(0,i.usePathname)();return(0,n.jsxs)("div",{ref:r,style:{position:"relative",width:"100%",height:"100%",overflow:"auto",touchAction:"auto"},children:[(0,n.jsx)(l.Y9,{children:(0,n.jsxs)("div",{style:{display:"flex",width:"100%",gap:"0.5rem",flexDirection:"column"},children:[(0,n.jsx)("h1",{children:"Kinetic Images"}),(0,n.jsxs)("nav",{style:{display:"flex",width:"100%",gap:"0.5rem",fontSize:"0.85rem",opacity:.6},children:[(0,n.jsx)("a",{href:"https://tympanus.net/codrops/?p=96765",children:"Article"}),(0,n.jsx)("a",{href:"https://github.com/DGFX/codrops-kinetic-images",children:"Code"}),(0,n.jsx)("a",{href:"https://tympanus.net/codrops/demos/",children:"All demos"})]}),(0,n.jsxs)("nav",{style:{display:"flex",width:"100%",gap:"0.5rem",fontSize:"0.85rem",opacity:.6},children:[(0,n.jsx)("a",{href:"https://tympanus.net/codrops/demos/?tag=3d",children:"#3d"}),(0,n.jsx)("a",{href:"https://tympanus.net/codrops/demos/?tag=three-js",children:"#three.js"}),(0,n.jsx)("a",{href:"https://tympanus.net/codrops/demos/?tag=react-three-fiber",children:"#react-three-fiber"})]})]})}),t,(0,n.jsx)(f,{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:1},eventSource:r,eventPrefix:"client"}),(0,n.jsxs)(l.wi,{children:[(0,n.jsx)(c(),{href:"./",className:"/"===u?"active":"",children:"Tower"}),(0,n.jsx)(c(),{href:"./paper",className:"/paper"===u?"active":"",children:"Paper"}),(0,n.jsx)(c(),{href:"./spiral",className:"/spiral"===u?"active":"",children:"Spiral"})]})]})}},5606:e=>{e.exports={loader:"Loader_loader____4ji",loader__text:"Loader_loader__text__sh6zk",fadeInOut:"Loader_fadeInOut__VPOUq"}},5744:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=r(7828)},5982:e=>{e.exports={footer:"Footer_footer___TWQ4",wrapper:"Footer_wrapper__IarUo"}},6407:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_5cfdac"}},6645:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=r(8229)._(r(7357));function o(e,t){var r;let o={};"function"==typeof e&&(o.loader=e);let u={...o,...t};return(0,n.default)({...u,modules:null==(r=u.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6654:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(2115);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6874:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return m},useLinkStatus:function(){return b}});let n=r(6966),o=r(5155),u=n._(r(2115)),a=r(2757),i=r(5227),l=r(9818),s=r(6654),c=r(9991),f=r(5929);r(3230);let d=r(4930),p=r(2664),h=r(6634);function y(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function m(e){let t,r,n,[a,m]=(0,u.useOptimistic)(d.IDLE_LINK_STATUS),b=(0,u.useRef)(null),{href:_,as:j,children:v,prefetch:x=null,passHref:P,replace:O,shallow:w,scroll:S,onClick:E,onMouseEnter:N,onTouchStart:T,legacyBehavior:L=!1,onNavigate:A,ref:C,unstable_dynamicOnHover:M,...k}=e;t=v,L&&("string"==typeof t||"number"==typeof t)&&(t=(0,o.jsx)("a",{children:t}));let I=u.default.useContext(i.AppRouterContext),R=!1!==x,U=null===x?l.PrefetchKind.AUTO:l.PrefetchKind.FULL,{href:F,as:D}=u.default.useMemo(()=>{let e=y(_);return{href:e,as:j?y(j):e}},[_,j]);L&&(r=u.default.Children.only(t));let z=L?r&&"object"==typeof r&&r.ref:C,K=u.default.useCallback(e=>(null!==I&&(b.current=(0,d.mountLinkInstance)(e,F,I,U,R,m)),()=>{b.current&&((0,d.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,d.unmountPrefetchableInstance)(e)}),[R,F,I,U,m]),B={ref:(0,s.useMergedRef)(K,z),onClick(e){L||"function"!=typeof E||E(e),L&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(e),I&&(e.defaultPrevented||function(e,t,r,n,o,a,i){let{nodeName:l}=e.currentTarget;if(!("A"===l.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}e.preventDefault(),u.default.startTransition(()=>{if(i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}(0,h.dispatchNavigateAction)(r||t,o?"replace":"push",null==a||a,n.current)})}}(e,F,D,b,O,S,A))},onMouseEnter(e){L||"function"!=typeof N||N(e),L&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),I&&R&&(0,d.onNavigationIntent)(e.currentTarget,!0===M)},onTouchStart:function(e){L||"function"!=typeof T||T(e),L&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),I&&R&&(0,d.onNavigationIntent)(e.currentTarget,!0===M)}};return(0,c.isAbsoluteUrl)(D)?B.href=D:L&&!P&&("a"!==r.type||"href"in r.props)||(B.href=(0,f.addBasePath)(D)),n=L?u.default.cloneElement(r,B):(0,o.jsx)("a",{...k,...B,children:t}),(0,o.jsx)(g.Provider,{value:a,children:n})}r(3180);let g=(0,u.createContext)(d.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(g);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7326:e=>{e.exports={header:"Header_header__zHlTC"}},7357:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});let n=r(5155),o=r(2115),u=r(2146);function a(e){return{default:e&&"default"in e?e.default:e}}r(255);let i={loader:()=>Promise.resolve(a(()=>null)),loading:null,ssr:!0},l=function(e){let t={...i,...e},r=(0,o.lazy)(()=>t.loader().then(a)),l=t.loading;function s(e){let a=l?(0,n.jsx)(l,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,s=i?o.Suspense:o.Fragment,c=t.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(u.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(s,{...i?{fallback:a}:{},children:c})}return s.displayName="LoadableComponent",s}},7828:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(4054).createAsyncLocalStorage)()},8722:(e,t,r)=>{"use strict";r.d(t,{wi:()=>d,Y9:()=>s,aH:()=>a});var n=r(5155),o=r(5606),u=r.n(o);let a=function(){return(0,n.jsx)("div",{className:u().loader,children:(0,n.jsx)("div",{className:u().loader__text,children:"Loading..."})})};var i=r(7326),l=r.n(i);let s=function(e){let{children:t}=e;return(0,n.jsx)("div",{className:l().header,children:(0,n.jsx)("div",{className:l().wrapper,children:t})})};var c=r(5982),f=r.n(c);let d=function(e){let{children:t}=e;return(0,n.jsx)("div",{className:f().footer,children:(0,n.jsx)("div",{className:f().wrapper,children:t})})}},8859:(e,t)=>{"use strict";function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return g},NormalizeError:function(){return y},PageNotFoundError:function(){return m},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return l},getLocationOrigin:function(){return a},getURL:function(){return i},isAbsoluteUrl:function(){return u},isResSent:function(){return s},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return _}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;uo.test(e);function a(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function i(){let{href:e}=window.location,t=a();return e.substring(t.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function s(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&s(r))return n;if(!n)throw Object.defineProperty(Error('"'+l(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class y extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class g extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}}},e=>{var t=t=>e(e.s=t);e.O(0,[545,741,441,684,358],()=>t(3394)),_N_E=e.O()}]);