1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[465],{336:(e,o,t)=>{Promise.resolve().then(t.bind(t,45082)),Promise.resolve().then(t.bind(t,95028)),Promise.resolve().then(t.bind(t,64707)),Promise.resolve().then(t.bind(t,3809)),Promise.resolve().then(t.bind(t,98061)),Promise.resolve().then(t.t.bind(t,52619,23)),Promise.resolve().then(t.bind(t,18396)),Promise.resolve().then(t.bind(t,58019)),Promise.resolve().then(t.t.bind(t,6227,23)),Promise.resolve().then(t.bind(t,16611))},4106:(e,o,t)=>{"use strict";t.d(o,{FD:()=>P,MY:()=>i,PJ:()=>a,Wl:()=>s,XP:()=>d,_x:()=>r,bL:()=>m,po:()=>c,ql:()=>_,wO:()=>l,yL:()=>g});var n=t(87358);function r(e){return("object"==typeof e?null==e.host&&null==e.hostname:!/^[a-z]+:/i.test(e))&&!function(e){let o="object"==typeof e?e.pathname:e;return null!=o&&!o.startsWith("/")}(e)}function i(e,o){return e.replace(RegExp(`^${o}`),"")||"/"}function a(e,o){let t=e;return/^\/(\?.*)?$/.test(o)&&(o=o.slice(1)),t+=o}function l(e,o){return o===e||o.startsWith(`${e}/`)}function s(e,o,t){return"string"==typeof e?e:e[o]||t}function c(e){let o=function(){try{return"true"===n.env._next_intl_trailing_slash}catch{return!1}}(),[t,...r]=e.split("#"),i=r.join("#"),a=t;if("/"!==a){let e=a.endsWith("/");o&&!e?a+="/":!o&&e&&(a=a.slice(0,-1))}return i&&(a+="#"+i),a}function _(e,o){let t=c(e),n=c(o);return(function(e){let o=e.replace(/\/\[\[(\.\.\.[^\]]+)\]\]/g,"(?:/(.*))?").replace(/\[\[(\.\.\.[^\]]+)\]\]/g,"(?:/(.*))?").replace(/\[(\.\.\.[^\]]+)\]/g,"(.+)").replace(/\[([^\]]+)\]/g,"([^/]+)");return RegExp(`^${o}$`)})(t).test(n)}function d(e,o){return"never"!==o.mode&&o.prefixes?.[e]||m(e)}function m(e){return"/"+e}function p(e){return e.includes("[[...")}function f(e){return e.includes("[...")}function u(e){return e.includes("[")}function h(e,o){let t=e.split("/"),n=o.split("/"),r=Math.max(t.length,n.length);for(let e=0;e<r;e++){let o=t[e],r=n[e];if(!o&&r)return -1;if(o&&!r)return 1;if(o||r){if(!u(o)&&u(r))return -1;if(u(o)&&!u(r))return 1;if(!f(o)&&f(r))return -1;if(f(o)&&!f(r))return 1;if(!p(o)&&p(r))return -1;if(p(o)&&!p(r))return 1}}return 0}function P(e){return e.sort(h)}function g(e){return"function"==typeof e.then}},6227:e=>{e.exports={portfolio:"PortfolioHome_portfolio__mLntR",skip:"PortfolioHome_skip__cP2_K",hero:"PortfolioHome_hero__ikqpp",heroTop:"PortfolioHome_heroTop__NI_49",heroFoot:"PortfolioHome_heroFoot__uFeYi",heroBottom:"PortfolioHome_heroBottom__WB1Fd",heroIndex:"PortfolioHome_heroIndex__O7Rkm",actions:"PortfolioHome_actions__7JuMT",currentLink:"PortfolioHome_currentLink__xlVuR",groupLabel:"PortfolioHome_groupLabel__LCCtn",packageTop:"PortfolioHome_packageTop__npx4U",colophon:"PortfolioHome_colophon__G2wwQ",kicker:"PortfolioHome_kicker__QO2R7",name:"PortfolioHome_name___VBQg",surname:"PortfolioHome_surname__hlxAI",period:"PortfolioHome_period__3QOP0",introduction:"PortfolioHome_introduction__w6awi",primary:"PortfolioHome_primary__OMpuv",textLink:"PortfolioHome_textLink__7J__1",section:"PortfolioHome_section__s3ueA",sectionHeading:"PortfolioHome_sectionHeading__XFW7b",projectGroup:"PortfolioHome_projectGroup__yYERB",project:"PortfolioHome_project__1QiqA",toolkit:"PortfolioHome_toolkit__3oSSZ",projectNumber:"PortfolioHome_projectNumber__QSaX7",stack:"PortfolioHome_stack__jPlwm",expand:"PortfolioHome_expand__CGhao",projectDetails:"PortfolioHome_projectDetails__gb1sy",reveal:"PortfolioHome_reveal__xHCGE",skills:"PortfolioHome_skills__VjLme",projectImage:"PortfolioHome_projectImage__JPPCX",lab:"PortfolioHome_lab__eU_2C",labIntro:"PortfolioHome_labIntro__sykaW",pipeline:"PortfolioHome_pipeline__lcoTG",pipelineNumber:"PortfolioHome_pipelineNumber__NjvEw",pipelineArrow:"PortfolioHome_pipelineArrow___oaAw",labNote:"PortfolioHome_labNote__J_Npu",experience:"PortfolioHome_experience__6SuvJ",packages:"PortfolioHome_packages__rCovF",writing:"PortfolioHome_writing__aRaL9",postImage:"PortfolioHome_postImage__AjhKe",post:"PortfolioHome_post__Dx6go",emptyWriting:"PortfolioHome_emptyWriting__7a3JO",contact:"PortfolioHome_contact__sYZE3",contactTitle:"PortfolioHome_contactTitle__lczEn",contactBottom:"PortfolioHome_contactBottom__I8B__"}},18396:(e,o,t)=>{"use strict";t.d(o,{default:()=>i});var n=t(95155);let r=(0,t(67909).default)(()=>Promise.all([t.e(844),t.e(277)]).then(t.bind(t,13722)),{loadableGenerated:{webpack:()=>[13722]},ssr:!1});function i(){return(0,n.jsx)(r,{})}},29348:e=>{e.exports={scene:"HeroRobot_scene__RyEfd",canvas:"HeroRobot_canvas__LqwbC",orbit:"HeroRobot_orbit__Vi7Si",shadow:"HeroRobot_shadow__GEpG9",caption:"HeroRobot_caption__Gflw5",fallback:"HeroRobot_fallback__r3ltd"}},57301:(e,o,t)=>{"use strict";t.d(o,{A:()=>r});var n=t(85919);function r(e,o,t,r){if(!e||r===t||null==r||!o)return;let i=(0,n.DT)(o),{name:a,...l}=e;l.path||(l.path=""!==i?i:"/");let s=`${a}=${r};`;for(let[e,o]of Object.entries(l))s+=`${"maxAge"===e?"max-age":e}`,"boolean"!=typeof o&&(s+="="+o),s+=";";document.cookie=s}},58019:(e,o,t)=>{"use strict";t.d(o,{default:()=>l});var n=t(95155),r=t(12115),i=t(29348),a=t.n(i);function l(){let e=(0,r.useRef)(null),[o,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let o=!1,n=()=>{};return Promise.all([t.e(1831),t.e(9367)]).then(t.bind(t,87548)).then(async r=>{let a,{RoundedBoxGeometry:l}=await Promise.all([t.e(1831),t.e(8745)]).then(t.bind(t,58745));if(o||!e.current)return;let s=e.current;try{a=new r.WebGLRenderer({alpha:!0,antialias:!0,powerPreference:"low-power"})}catch(e){return}a.setPixelRatio(Math.min(window.devicePixelRatio,window.innerWidth<760?1:1.75)),a.setClearColor(0,0),a.outputColorSpace
1=r.SRGBColorSpace,a.toneMapping=r.ACESFilmicToneMapping,a.toneMappingExposure=1.3,s.appendChild(a.domElement);let c=new r.Scene,_=new r.PerspectiveCamera(34,1,.1,100);_.position.set(0,.35,8.5),_.lookAt(0,.1,0),c.add(new r.HemisphereLight(0xfff8e8,6712150,3));let d=new r.DirectionalLight(0xfff4df,5);d.position.set(-3,5,5),c.add(d);let m=new r.DirectionalLight(0xffffff,3);m.position.set(4,2,-2),c.add(m);let p=new r.DirectionalLight(0xd0d9c2,1);p.position.set(3,0,4),c.add(p);let f=new r.MeshStandardMaterial({color:0xe4e1d5,metalness:.32,roughness:.28}),u=new r.MeshStandardMaterial({color:7830377,metalness:.65,roughness:.3}),h=new r.MeshStandardMaterial({color:1843998,metalness:.3,roughness:.19}),P=new r.MeshStandardMaterial({color:0xc34b2c,metalness:.2,roughness:.4}),g=new r.MeshStandardMaterial({color:0xffc36b,emissive:0xffa43c,emissiveIntensity:2,roughness:.35}),w=new r.Group;c.add(w);let v=function(e,o,t,n,i,a){let s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=arguments.length>7&&void 0!==arguments[7]?arguments[7]:0,_=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,d=new r.Mesh(new l(e,o,t,4,n),i);return d.position.set(s,c,_),a.add(d),d},b=(e,o,t,n,i,a)=>{let l=new r.Mesh(new r.SphereGeometry(e,24,16),o);return l.position.set(n,i,a),t.add(l),l},x=new r.Group;x.position.y=.8,w.add(x),v(2.2,1.55,1.35,.36,f,x),v(1.91,1.1,.22,.28,u,x,0,0,.66),v(1.78,.96,.23,.25,h,x,0,0,.76);let H=new r.Group;H.position.z=.9,x.add(H);let y=v(.16,.32,.06,.075,g,H,-.39,.06),k=v(.16,.32,.06,.075,g,H,.39,.06);v(.25,.035,.04,.015,g,H,0,-.23),[-1,1].forEach(e=>{v(.2,.58,.57,.09,u,x,1.13*e,0,0),v(.12,.35,.36,.05,P,x,1.25*e,0,0)}),v(.06,.4,.06,.02,u,x,.63,.91,0),b(.11,P,x,.63,1.16,0),v(.45,.35,.45,.1,u,w,0,-.12,0),v(1.35,1.05,.88,.27,f,w,0,-.71,0),v(.34,.14,.05,.03,P,w,0,-.62,.45);for(let e=0;e<3;e++)v(.035,.13,.025,.01,u,w,-.12+.12*e,-.91,.451);let j=[];[-1,1].forEach(e=>{let o=new r.Group;o.position.set(.85*e,-.42,0),o.rotation.z=.2*e,w.add(o),j.push(o),b(.19,u,o,0,0,0),v(.34,.67,.4,.16,f,o,0,-.34,0),b(.17,u,o,0,-.71,0),v(.43,.28,.42,.12,f,w,.39*e,-1.42,.08)}),w.rotation.set(.04,-.23,-.04);let E={x:0,y:0},M=window.matchMedia("(prefers-reduced-motion: reduce)"),L=!0,R=0,S=0,C=0,A=()=>{let{width:e,height:o}=s.getBoundingClientRect();a.setSize(e,o),_.aspect=e/o,_.updateProjectionMatrix()},N=new ResizeObserver(A);N.observe(s),A();let G=e=>{if("touch"===e.pointerType)return;let o=s.getBoundingClientRect();E.x=r.MathUtils.clamp((e.clientX-o.left-o.width/2)/(window.innerWidth/2),-1,1),E.y=r.MathUtils.clamp((e.clientY-o.top-o.height/2)/(window.innerHeight/2),-1,1)},I=()=>{E.x=0,E.y=0};window.addEventListener("pointermove",G,{passive:!0}),document.documentElement.addEventListener("pointerleave",I);let O=e=>{if(R=0,o||!L||document.hidden)return;let t=Math.min((e-S)/1e3,.05);if(S=e,C+=t,!M.matches){x.rotation.y=r.MathUtils.damp(x.rotation.y,.6*E.x,5,t),x.rotation.x=r.MathUtils.damp(x.rotation.x,.3*E.y,5,t),H.position.x=r.MathUtils.damp(H.position.x,.08*E.x,7,t),H.position.y=r.MathUtils.damp(H.position.y,-(.05*E.y),7,t),w.position.y=.055*Math.sin(1.5*C),w.rotation.z=-.04+.025*Math.sin(.8*C);let e=C%5.8;y.scale.y=k.scale.y=e>5.6?.12:1,j[1].rotation.z=.2+.06*Math.sin(1.5*C)}a.render(c,_),M.matches||(R=requestAnimationFrame(O))},F=()=>{R||!L||document.hidden||(S=performance.now(),R=requestAnimationFrame(O))},T=new IntersectionObserver(e=>{let[o]=e;(L=o.isIntersecting)?F():(cancelAnimationFrame(R),R=0)},{threshold:0});T.observe(s);let U=()=>{document.hidden?(cancelAnimationFrame(R),R=0):F()};document.addEventListener("visibilitychange",U),M.addEventListener("change",F),F(),i(!0),n=()=>{cancelAnimationFrame(R),N.disconnect(),T.disconnect(),window.removeEventListener("pointermove",G),document.documentElement.removeEventListener("pointerleave",I),document.removeEventListener("visibilitychange",U),M.removeEventListener("change",F),c.traverse(e=>{e instanceof r.Mesh&&e.geometry.dispose()}),[f,u,h,P,g].forEach(e=>e.dispose()),a.dispose(),a.domElement.remove()}}).catch(()=>{}),()=>{o=!0,n()}},[]),(0,n.jsxs)("div",{className:a().scene,role:"img","aria-label":"A small cream-colored 3D robot with amber eyes that follows your pointer",children:[(0,n.jsx)("div",{className:a().orbit,"aria-hidden":"true"}),(0,n.jsx)("div",{ref:e,className:a().canvas,"aria-hidden":"true"}),!o&&(0,n.jsx)("div",{className:a().fallback,"aria-hidden":"true",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("i",{}),(0,n.jsx)("i",{})]})}),(0,n.jsx)("div",{className:a().shadow,"aria-hidden":"true"}),(0,n.jsxs)("span",{className:a().caption,"aria-hidden":"true",children:["YSâ01 ",(0,n.jsx)("span",{children:"BUILT TO BE CURIOUS"})]})]})}},64707:(e,o,t)=>{"use strict";t.d(o,{default:()=>c});
1var n=t(52619),r=t(20063),i=t(12115),a=t(36809),l=t(57301),s=t(95155),c=(0,i.forwardRef)(function(e,o){let{href:t,locale:i,localeCookie:c,onClick:_,prefetch:d,...m}=e,p=(0,a.Ym)(),f=null!=i&&i!==p,u=(0,r.usePathname)();return f&&(d=!1),(0,s.jsx)(n,{ref:o,href:t,hrefLang:f?i:void 0,onClick:function(e){(0,l.A)(c,u,p,i),_&&_(e)},prefetch:d,...m})})},85919:(e,o,t)=>{"use strict";t.d(o,{DT:()=>s,FP:()=>a,TK:()=>r,Zn:()=>i,aM:()=>l,x3:()=>c});var n=t(4106);function r(e){return"string"==typeof e?{pathname:e}:e}function i(e){let o=new URLSearchParams;for(let[t,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{o.append(t,String(e))}):o.set(t,String(n));return"?"+o.toString()}function a({pathname:e,locale:o,params:t,pathnames:r,query:a}){function l(e){let l,s=r[e];return s?(l=(0,n.Wl)(s,o,e),t&&Object.entries(t).forEach(([e,o])=>{let t,n;Array.isArray(o)?(t=`(\\[)?\\[...${e}\\](\\])?`,n=o.map(e=>String(e)).join("/")):(t=`\\[${e}\\]`,n=String(o)),l=l.replace(RegExp(t,"g"),n)}),l=new URL(l=l.replace(/\[\[\.\.\..+\]\]/g,""),"http://l").pathname):l=e,l=(0,n.po)(l),a&&(l+=i(a)),l}if("string"==typeof e)return l(e);{let{pathname:o,...t}=e;return{...t,pathname:l(o)}}}function l(e,o,t){let r=(0,n.FD)(Object.keys(t)),i=decodeURI(o);for(let o of r){let r=t[o];if("string"==typeof r){if((0,n.ql)(r,i))return o}else if((0,n.ql)((0,n.Wl)(r,e,o),i))return o}return o}function s(e,o=window.location.pathname){return"/"===e?o:o.replace(e,"")}function c(e,o,t,r){let i,{mode:a}=t.localePrefix;return void 0!==r?i=r:(0,n._x)(e)&&("always"===a?i=!0:"as-needed"===a&&(i=t.domains?!t.domains.some(e=>e.defaultLocale===o):o!==t.defaultLocale)),i?(0,n.PJ)((0,n.XP)(o,t.localePrefix),e):e}}},e=>{e.O(0,[930,844,2619,7878,2513,4486,3276,3809,6065,6071,8441,1255,7358],()=>e(e.s=336)),_N_E=e.O()}]);
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.