(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{381:(e,t,n)=>{Promise.resolve().then(n.bind(n,9428))},1469:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return s},getImageProps:function(){return l}});let i=n(8229),o=n(8883),a=n(3063),r=i._(n(1193));function l(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:r.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,n]of Object.entries(t))void 0===n&&delete t[e];return{props:t}}let s=a.Image},4102:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>a});var i=n(5155),o=n(2115);function a(e){let{src:t,alt:n,className:a="",size:r="full",isModal:l=!1,loading:s="lazy",onLoad:c,onError:d,onClick:u,style:m,draggable:h=!1,onContextMenu:p,title:g,"aria-label":f,objectFit:b="contain",...v}=e,[x,j]=(0,o.useState)(""),[y,w]=(0,o.useState)(!1),[k,N]=(0,o.useState)(!1),[C,F]=(0,o.useState)(!0);return((0,o.useEffect)(()=>{l||"full"===r?j(t):j(function(e){if(!e||e.startsWith("data:")||e.startsWith("http")||e.includes("/icons/")||e.toLowerCase().endsWith(".gif"))return e;let t=(e.startsWith("/")?e.slice(1):e).split("/"),n=t[t.length-1].replace(/\.[^/.]+$/,""),i=e.toLowerCase();return i.includes(".mp4")||i.includes(".webm")||i.includes(".mov")||i.includes(".avi")?"/thumbnails/".concat(n,".webm"):"/thumbnails/".concat(n,".webp")}(t)),w(!1),N(!1),F(!0)},[t,r,l]),x&&""!==x)?(0,i.jsxs)("div",{className:"optimized-image-container",style:{position:"relative",width:"100%",height:"100%"},children:[C&&"thumbnail"===r&&(0,i.jsx)("div",{className:"image-loading-overlay",children:(0,i.jsx)("div",{className:"image-throbber"})}),(0,i.jsx)("img",{src:x,alt:n,className:"optimized-image ".concat(a," ").concat(k?"loaded":"loading"),loading:s,onLoad:()=>{N(!0),F(!1),c&&c()},onError:()=>{F(!1),y||l||"full"===r?d&&d():(w(!0),j(t),F(!0))},onClick:u,style:{...(()=>{let e={};switch(b){case"cover":default:e.objectFit="cover";break;case"contain":e.objectFit="contain";break;case"align-top":e.objectFit="cover",e.objectPosition="top center";break;case"align-bottom":e.objectFit="cover",e.objectPosition="bottom center";break;case"align-left":e.objectFit="cover",e.objectPosition="left center";break;case"align-right":e.objectFit="cover",e.objectPosition="right center";break;case"align-centre":e.objectFit="cover",e.objectPosition="center center"}return e})(),...m,opacity:+!!k,transition:"opacity 0.3s ease-in-out"},draggable:h,onContextMenu:p,title:g,"aria-label":f,...v})]}):null}},6766:(e,t,n)=>{"use strict";n.d(t,{default:()=>o.a});var i=n(1469),o=n.n(i)},8805:()=>{},9428:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>j});var i=n(5155),o=n(2115),a=n(5695),r=n(6766);n(8805),n(4393),n(2015);var l=n(9848),s=n(4102);function c(e){let{src:t,alt:n="",className:a="",size:r="full",isModal:l=!1,loading:s="lazy",onLoad:c,onError:d,onClick:u,style:m,onContextMenu:h,title:p,"aria-label":g,objectFit:f="contain",autoPlay:b=!0,loop:v=!0,muted:x=!0,controls:j=!1,...y}=e,[w,k]=(0,o.useState)(""),[N,C]=(0,o.useState)(!1),[F,M]=(0,o.useState)(!1),[E,S]=(0,o.useState)(!0),W=(0,o.useRef)(null);(0,o.useEffect)(()=>{l||"full"===r?k(t):k(function(e){if(!e||e.startsWith("data:")||e.startsWith("http"))return e;let t=(e.startsWith("/")?e.slice(1):e).split("/"),n=t[t.length-1].replace(/\.[^/.]+$/,"");return"/thumbnails/".concat(n,".webm")}(t)),C(!1),M(!1),S(!0)},[t,r,l]);let z=()=>{M(!0),S(!1),c&&c()},L=()=>{if(S(!1),N||l||"full"===r)d&&d();else{C(!0);let e=(t.startsWith("/")?t.slice(1):t).split("/"),n=e[e.length-1].replace(/\.[^/.]+$/,"");k("/thumbnails/".concat(n,".webp")),S(!0)}},P=()=>{let e={};switch(f){case"cover":default:e.objectFit="cover";break;case"contain":e.objectFit="contain";break;case"align-top":e.objectFit="cover",e.objectPosition="top center";break;case"align-bottom":e.objectFit="cover",e.objectPosition="bottom center";break;case"align-left":e.objectFit="cover",e.objectPosition="left center";break;case"align-right":e.objectFit="cover",e.objectPosition="right center";break;case"align-centre":e.objectFit="cover",e.objectPosition="center center"}return e};if(!w||""===w)return null;let R=E&&"thumbnail"===r;return N&&w.endsWith(".webp")?(0,i.jsxs)("div",{className:"optimized-video-container",style:{position:"relative",width:"100%",height:"100%"},children:[R&&(0,i.jsx)("div",{className:"image-loading-overlay",children:(0,i.jsx)("div",{className:"image-throbber"})}),(0,i.jsx)("img",{src:w,alt:n,className:"optimized-video ".concat(a," ").concat(F?"loaded":"loading"),loading:s,onLoad:z,onError:L,onClick:u,style:{...P(),...m,opacity:+!!F,transition:"opacity 0.3s ease-in-out"},onContextMenu:h,title:p,"aria-label":g,...y})]}):(0,i.jsxs)("div",{className:"optimized-video-container",style:{position:"relative",width:"100%",height:"100%"},children:[R&&(0,i.jsx)("div",{className:"image-loading-overlay",children:(0,i.jsx)("div",{className:"image-throbber"})}),(0,i.jsx)("video",{ref:W,src:w,className:"optimized-video ".concat(a," ").concat(F?"loaded":"loading"),onLoadedData:z,onError:L,onClick:u,style:{...P(),...m,opacity:+!!F,transition:"opacity 0.3s ease-in-out",width:"100%",height:"100%",borderRadius:"7px"},onContextMenu:h,title:p,"aria-label":g,autoPlay:b&&!l,loop:v,muted:x,controls:j||l,playsInline:!0,...y})]})}function d(e){let{src:t,alt:n,className:a="",size:r="full",isModal:l=!1,loading:d="lazy",onLoad:u,onError:m,onClick:h,style:p,draggable:g=!1,onContextMenu:f,title:b,"aria-label":v,objectFit:x="contain",...j}=e;return(0,o.useMemo)(()=>{let e=t.toLowerCase();return e.includes(".mp4")||e.includes(".webm")||e.includes(".mov")||e.includes(".avi")},[t])?(0,i.jsx)(c,{src:t,alt:n,className:a,size:r,isModal:l,loading:d,onLoad:u,onError:m,onClick:h,style:p,onContextMenu:f,title:b,"aria-label":v,objectFit:x,autoPlay:!l,loop:!l,muted:!0,controls:l,...j}):(0,i.jsx)(s.Ay,{src:t,alt:n,className:a,size:r,isModal:l,loading:d,onLoad:u,onError:m,onClick:h,style:p,draggable:g,onContextMenu:f,title:b,"aria-label":v,objectFit:x,...j})}var u=n(3395);let m=o.useLayoutEffect,h=()=>Object.keys(u.m).filter(e=>{let t=e.startsWith("/content/")&&(e.endsWith(".webp")||e.endsWith(".jpg")||e.endsWith(".png")||e.endsWith(".gif")),n=e.startsWith("/content/")&&(e.endsWith(".mp4")||e.endsWith(".webm")||e.endsWith(".mov")||e.endsWith(".avi"));return t||n}),p=e=>e.startsWith("/content/")&&(e.endsWith(".mp4")||e.endsWith(".webm")||e.endsWith(".mov")||e.endsWith(".avi")),g=e=>{let t=[...e];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},f=(e,t)=>{let n=g(e);return Array.from({length:t},(e,i)=>n.filter((e,n)=>n%t===i))},b=(e,t,n)=>{var i;if("undefined"==typeof document)return null;let o=null==(i=e.split("/").pop())?void 0:i.replace(/\.[^/.]+$/,"").toLowerCase();if(!o)return null;let a=[];document.querySelectorAll(".brick-grid .grid-item").forEach(e=>{var t,n;let i=e.querySelector("img, video");i&&(null!=(n=null==(t=(i.currentSrc||i.src||i.src||"").split("/").pop())?void 0:t.replace(/\.[^/.]+$/,"").toLowerCase())?n:"")===o&&a.push(e.getBoundingClientRect())});let r=null,l=1/0;for(let e of a){let i=(e.left+e.width/2-t)**2+(e.top+e.height/2-n)**2;i{let{isOpen:t,onClose:n,image:r,originRef:s}=e,c=(0,a.useRouter)(),[h,g]=(0,o.useState)(!1),f=(0,o.useRef)(!1),v=(0,o.useRef)(null),x=(0,o.useRef)(null),j=(0,o.useRef)(null),y=()=>{var e,t;if(f.current||!r)return;f.current=!0,g(!0);let i=x.current,o=v.current;if(!i||!o||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return void n();null==(e=j.current)||e.cancel(),j.current=null;let a=!1,l=()=>{a||(a=!0,n())},c=window.setTimeout(l,500),d=i.getBoundingClientRect(),u=s.current,m=null;(null==u||null==(t=u.element)?void 0:t.isConnected)&&(m=u.element.getBoundingClientRect()),m||(m=b(r,d.left+d.width/2,d.top+d.height/2));let h=[o.animate([{opacity:1},{opacity:0}],{duration:200,easing:"ease-in",fill:"both"})];if(m){let e=m.width/d.width,t=m.height/d.height,n=m.left-d.left,o=m.top-d.top;h.push(i.animate([{transform:"none"},{transform:"translate(".concat(n,"px, ").concat(o,"px) scale(").concat(e,", ").concat(t,")")}],{duration:240,easing:"ease-in",fill:"both"}))}else h.push(i.animate([{transform:"none",opacity:1},{opacity:0,transform:"scale(0.92)"}],{duration:200,easing:"ease-in",fill:"both"}));Promise.all(h.map(e=>e.finished.catch(()=>void 0))).then(()=>{window.clearTimeout(c),l()})};if(m(()=>{if(!t||!r)return;f.current=!1,g(!1);let e=x.current,n=s.current;if(!e||!n||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let i=n.rect,o=e.getBoundingClientRect();if(!o.width||!o.height||!i.width||!i.height)return;let a=i.left-o.left,l=i.top-o.top,c=i.width/o.width,d=i.height/o.height;e.style.transformOrigin="0 0";let u=e.animate([{transform:"translate(".concat(a,"px, ").concat(l,"px) scale(").concat(c,", ").concat(d,")")},{transform:"none"}],{duration:280,easing:"cubic-bezier(0.22, 1, 0.36, 1)",fill:"both"});return j.current=u,u.finished.catch(()=>void 0),()=>{var e;null==(e=j.current)||e.cancel(),j.current=null}},[t,r,s]),!t||!r)return null;let w=u.m[r]||{title:"Media Information",description:"No specific information is available for this item."},k=e=>{e.preventDefault()};return(0,i.jsx)("div",{ref:v,className:"modal-overlay".concat(h?" is-closing":""),onClick:y,onContextMenu:k,onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&("s"===e.key||"p"===e.key||"c"===e.key)&&e.preventDefault()},tabIndex:0,children:(0,i.jsxs)("div",{ref:x,className:"modal-content".concat(s.current?" grow-from-source":""," ").concat(w.redirectUrl?"has-redirect-button":""),onClick:e=>e.stopPropagation(),onContextMenu:k,children:[(0,i.jsx)("button",{className:"modal-close",onClick:y,"aria-label":"Close",children:(0,i.jsx)(l.WQq,{})}),(0,i.jsx)("div",{className:"modal-media-container",children:(0,i.jsx)("div",{style:{position:"relative",height:"100%",display:"flex",alignItems:"center"},children:p(r)?(0,i.jsx)("video",{src:r,controls:!0,autoPlay:!0,className:"modal-media modal-video",style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"},onClick:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onMouseUp:e=>e.stopPropagation()}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d,{src:r,alt:w.title,size:"full",isModal:!0,className:"modal-media modal-image protected-image",draggable:!1,onContextMenu:k,objectFit:w.objectFit||"contain"}),(0,i.jsx)("div",{className:"modal-protection"})]})})}),(0,i.jsxs)("div",{className:"modal-info-container",children:[w.type&&(0,i.jsx)("p",{className:"modal-type",children:w.type}),(0,i.jsx)("h2",{className:"modal-title",children:w.title}),(0,i.jsx)("div",{className:"modal-description",children:w.description.split("\n").map((e,t)=>(0,i.jsxs)(o.Fragment,{children:[e,t{n(),/^https?:\/\//i.test(w.redirectUrl)?window.open(w.redirectUrl,"_blank","noopener,noreferrer"):c.push(w.redirectUrl)},"aria-label":"Visit related page",children:[(0,i.jsx)("span",{className:"modal-redirect-text",children:"Visit Page"}),(0,i.jsx)(d,{src:w.redirectIcon||"/content/icons/general/arrow_right-64px.png",alt:"Redirect icon",className:"modal-redirect-icon",size:"thumbnail",loading:"eager",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:"contain"})]})]})})},x={showOnMobile:!0,platforms:[{name:"Reddit",icon:"/content/icons/websites/reddit-64px.png",url:"https://reddit.com/r/liliovali",color:"#FF4500"},{name:"Discord",icon:"/content/icons/websites/discord-64px.png",url:"https://discord.gg/aEUpRAJxGh",color:"#5865F2"},{name:"Instagram",icon:"/content/icons/websites/instagram-64px.png",url:"https://instagram.com/liliovali",color:"linear-gradient(45deg, #FFDC80 0%, #E4405F 50%, #405DE6 100%)"},{name:"YouTube",icon:"/content/icons/websites/youtube-64px.png",url:"https://youtube.com/@liliovali",color:"#FF0000"}]};function j(){let[e,t]=(0,o.useState)([]),[n,a]=(0,o.useState)(!0),[l,s]=(0,o.useState)(!1),[c,p]=(0,o.useState)(null),[g,b]=(0,o.useState)(!1),[j,y]=(0,o.useState)(!1),[w,k]=(0,o.useState)(!1),[N,C]=(0,o.useState)(!1),F=(0,o.useRef)(null),M=(0,o.useRef)(null);(0,o.useEffect)(()=>{t(f(h(),j?6:5))},[j]),(0,o.useEffect)(()=>{if(0===e.length)return;let t=Math.max(...e.map(e=>e.length))-1,n=setTimeout(()=>a(!1),(e.length-1+t)*25+600+200);return()=>clearTimeout(n)},[e]),(0,o.useEffect)(()=>{let e=()=>{y(window.innerWidth<=768)};e(),window.addEventListener("resize",e);let t=setTimeout(()=>{"true"!==sessionStorage.getItem("constructionNoticeDismissed")&&b(!0)},100);return()=>{window.removeEventListener("resize",e),clearTimeout(t)}},[]),m(()=>{if(!j||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let e=F.current;if(!e)return;let t=Array.from(e.querySelectorAll(".brick-track"));if(0===t.length)return;let n=t.map(e=>4*Math.round(e.children.length/3)),i=[],o=[],a=[],r=0,l=!1,s=!1,c=null,d=0,u=0,m=0,h=0,p=0,g=[],f=()=>{i=t.map(e=>{let t=e.firstElementChild;if(!t)return 0;let n=getComputedStyle(t);return t.offsetWidth+parseFloat(n.marginLeft)+parseFloat(n.marginRight)}),o=t.map(e=>e.getBoundingClientRect().width/3)},b=(e,t)=>(e%t+t)%t,v=()=>{t.forEach((e,t)=>{let n=o[t]||1;a[t]=b(a[t],n),e.style.transform="translate3d(".concat(-a[t],"px, 0, 0)")})},x=()=>(i[0]||0)/4;f(),a=t.map((e,t)=>t%2==1?i[t]/2:0),r=x(),C(!0);let y=performance.now(),w=0,k=e=>{let t=Math.min(Math.max((e-y)/1e3,0),.05);if(y=e,!l){r+=(x()-r)*(1-Math.exp(-3*t));for(let e=0;e{if(l||1!==e.touches.length)return;let t=e.touches[0];l=!0,s=!1,c=t.identifier,d=t.clientX,u=t.clientY,m=t.clientX,h=e.timeStamp,p=0,r=0,g=a.slice()},M=e=>{if(!l)return;if(1!==e.touches.length){l=!1,s=!1,c=null;return}let t=e.touches[0];if(t.identifier!==c)return;let n=t.clientX-d,i=t.clientY-u;if(!s){if(10>=Math.abs(n)&&10>=Math.abs(i))return;if(Math.abs(n)<=Math.abs(i)){l=!1,c=null;return}s=!0}e.preventDefault();let o=e.timeStamp,r=Math.max(o-h,1),f=(t.clientX-m)/r*1e3;p=0===p?f:.65*f+.35*p,m=t.clientX,h=o;for(let e=0;e{if(!l||!Array.from(e.changedTouches).find(e=>e.identifier===c))return;let t=s;if(l=!1,s=!1,c=null,!t)return;let n=Math.max(40*x(),5e3);(r=-p)>n&&(r=n),r<-n&&(r=-n)},S=()=>{let e=o.slice();f(),a=t.map((t,n)=>{var i;let r=e[n]||1;return b(null!=(i=a[n])?i:0,r)/r*(o[n]||1)}),v()};return e.addEventListener("touchstart",N,{passive:!0}),e.addEventListener("touchmove",M,{passive:!1}),e.addEventListener("touchend",E,{passive:!0}),e.addEventListener("touchcancel",E,{passive:!0}),window.addEventListener("resize",S),v(),()=>{cancelAnimationFrame(w),e.removeEventListener("touchstart",N),e.removeEventListener("touchmove",M),e.removeEventListener("touchend",E),e.removeEventListener("touchcancel",E),window.removeEventListener("resize",S),t.forEach((e,t)=>{var i;let r=o[t]||1,l=-(b(null!=(i=a[t])?i:0,r)/r)*(n[t]||0);e.style.animationDelay="".concat(l.toFixed(3),"s"),e.style.transform=""})}},[j,e]);let E=(e,t)=>{if(l)return;let n=t.currentTarget;M.current=n instanceof HTMLElement?{element:n,rect:n.getBoundingClientRect()}:null,p(e),s(!0)};return(0,i.jsxs)("main",{className:"new-home-main",children:[g&&(0,i.jsx)("div",{className:"construction-notice-overlay",children:(0,i.jsxs)("div",{className:"construction-notice-desktop ".concat(w?"closing":""),children:[(0,i.jsxs)("h3",{className:"construction-title",children:[(0,i.jsx)(r.default,{src:"/content/characters/WavingYuu.webp",alt:"Waving Yuu",className:"construction-notice-image construction-notice-image-centred",style:{"--offset-y":"10.1px","--scale":3},width:22,height:30,draggable:!1,unoptimized:!0}),"welcome !"]}),(0,i.jsx)("p",{className:"construction-body construction-body-primary",children:"this is the home of all of my creative works."}),(0,i.jsx)("p",{className:"construction-body",children:"I'm always working hard to create more cool things, so consider checking back occasionally to see what i've been up to !"}),(0,i.jsx)("div",{className:"construction-action-links","aria-label":"Quick links",children:(0,i.jsx)("button",{type:"button",className:"construction-action-link construction-close-link",onClick:()=>{k(!0),setTimeout(()=>{b(!1),k(!1),sessionStorage.setItem("constructionNoticeDismissed","true")},300)},"aria-label":"Dismiss welcome notice",children:(0,i.jsx)("span",{className:"construction-action-text",children:"explore"})})})]})}),(0,i.jsx)("div",{ref:F,className:"brick-grid".concat(n?" is-booting":"").concat(N?" is-touch-driven":""),children:e.map((e,t)=>{let n=t%2==1;return(0,i.jsx)("div",{className:"brick-row",style:{"--row":String(t)},children:(0,i.jsx)("div",{className:"brick-track",style:{"--scroll-duration":"".concat(4*e.length,"s"),"--scroll-delay":n?"".concat(-2,"s"):"0s"},children:Array.from({length:3}).flatMap((n,o)=>e.map((e,n)=>{var a,r,l;return(0,i.jsx)("button",{type:"button",className:"grid-item",style:{"--col":String(n)},tabIndex:0===o?void 0:-1,onClick:t=>E(e,t),"aria-label":(null==(a=u.m[e])?void 0:a.title)||"View media",children:(0,i.jsx)(d,{src:e,alt:(null==(r=u.m[e])?void 0:r.title)||"Gallery media",className:"grid-image",size:"thumbnail",loading:t<2?"eager":"lazy",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:(null==(l=u.m[e])?void 0:l.objectFit)||"cover"})},"".concat(o,"-").concat(e))}))})},t)})}),(0,i.jsxs)("a",{href:"https://ko-fi.com/liliovali#",target:"_blank",rel:"noopener noreferrer",className:"kofi-button","aria-label":"Support my work on Ko-fi",children:[(0,i.jsx)(d,{src:"/content/icons/websites/ko-fi_logo.webp",alt:"Ko-fi logo",className:"kofi-logo",size:"thumbnail",loading:"eager",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:"contain"}),(0,i.jsx)("span",{className:"kofi-text",children:"support my work !"})]}),(!j||x.showOnMobile)&&(0,i.jsx)("div",{className:"social-buttons-container",children:x.platforms.map((e,t)=>(0,i.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"social-button",style:{"--platform-color":e.color,"--button-index":t},"aria-label":"Visit ".concat(e.name),children:(0,i.jsx)(d,{src:e.icon,alt:"".concat(e.name," logo"),className:"social-logo",size:"thumbnail",loading:"eager",draggable:!1,onContextMenu:e=>e.preventDefault(),objectFit:"contain"})},e.name))}),(0,i.jsx)(v,{isOpen:l,onClose:()=>{s(!1),p(null)},image:c,originRef:M})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[2692,4786,9270,8640,3063,2274,8441,1684,7358],()=>t(381)),_N_E=e.O()}]);