@view-transition{navigation:auto}::view-transition-group(main){animation-duration:.5s}::view-transition-old(main){animation-name:fade-out}::view-transition-new(main){animation-name:fade-in}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#16161d;--foreground:#ededed;--link:var(--blue);--rgb-foreground:237, 237, 237;--rgb-background:22, 22, 29;--spotlight-color-1:rgba(var(--rgb-blue), .2);--spotlight-color-2:rgba(var(--rgb-blue-light), .15);--spotlight-color-3:rgba(var(--rgb-blue-lighter), .05);--accent:#94a2e1;--blue:rgb(var(--rgb-blue));--rgb-blue:121, 178, 210;--rgb-blue-light:186, 229, 233;--rgb-blue-lighter:222, 242, 235;--rgb-accent:148, 162, 225;--transition-zip:cubic-bezier(1, 0, 0, 1);--transition-short:.2s;--transition-long:.5s;--transition-longest:3s;--font-unica-one:"Unica One", sans-serif;--font-lexend:"Lexend", sans-serif;--font-noto-sans:"Noto Sans", sans-serif;--font-host-grotesk:"Host Grotesk", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:#0000;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{scroll-behavior:smooth}body{font-family:var(--font-noto-sans), sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--background);display:flex}body:has(header.open) main:after{opacity:.5}body:has(header.open) .hamburger svg{transform:translate(3px,-4px)rotate(45deg)}body:has(header.open) .hamburger path{stroke-dashoffset:-90px;stroke-dasharray:60 105 60 300}main{view-transition-name:main;transform-origin:top;width:100%;padding-inline:16px}main:after{content:"";pointer-events:none;background-color:var(--background);opacity:0;transition:opacity .5s;position:fixed;inset:0}@media (width>=768px){main{padding-inline:32px}}h1,h2,h3,h4,h5,h6{font-family:Host Grotesk,sans-serif}h1{font-size:3rem}h2{font-size:2rem}h3{font-size:1.75rem}a{color:var(--accent);transition-property:scale width;transition-duration:var(--transition-short);text-decoration:none;display:inline-block;position:relative}a:after{content:"";width:0;height:.1em;transition:var(--transition-short) width;background-color:currentColor;position:absolute;inset:auto 0 0}a:hover,a:focus-visible{color:inherit}:is(a:hover,a:focus-visible):after{width:100%}a:active{scale:.975}button:not(:disabled){cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrapper{max-width:1024px;margin-inline:auto}.wrapper section{margin-block:80px}.wrapper section h2{margin-bottom:32px}.intro{--heading-font-size:max(18vw, 3rem);--subheading-font-size:calc(var(--heading-font-size) * .26);min-height:100svh;padding-block:120px;display:grid}.intro .text{text-align:center}.intro .text h1{font-size:var(--heading-font-size);font-family:var(--font-unica-one);position:relative}.intro .text h1:after{content:attr(data-text);color:var(--accent);animation:30s linear infinite wave;position:absolute;inset:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' width='100%25' height='100%25'%3E%3Cdefs%3E%3Cpattern id='wave' x='0' y='1' width='100%25' height='110%25' patternUnits='userSpaceOnUse'%3E%3Cpath d='M-40 9 Q-30 7 -20 9 T0 9 T20 9 T40 9 T60 9 T80 9 T100 9 T120 9 V20 H-40z' fill='%23fff' /%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100' height='20' fill='url(%23wave)' /%3E%3C/svg%3E%0A") 0%/200%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' width='100%25' height='100%25'%3E%3Cdefs%3E%3Cpattern id='wave' x='0' y='1' width='100%25' height='110%25' patternUnits='userSpaceOnUse'%3E%3Cpath d='M-40 9 Q-30 7 -20 9 T0 9 T20 9 T40 9 T60 9 T80 9 T100 9 T120 9 V20 H-40z' fill='%23fff' /%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100' height='20' fill='url(%23wave)' /%3E%3C/svg%3E%0A") 0%/200%}.intro .text h2{font-size:var(--subheading-font-size);letter-spacing:.285em;font-family:var(--font-lexend);font-weight:500}.intro .point-down{transition:background-color var(--transition-long);background-color:#0000;border:3px solid;border-radius:1in;width:40px;height:80px;margin:auto auto 0;position:relative;overflow:clip}.intro .point-down:hover,.intro .point-down:focus-visible{background-color:rgba(var(--rgb-accent), .5)}.intro .point-down .arrow{pointer-events:none;background:var(--foreground);transition:background-color var(--transition-long);position:absolute;inset:0;-webkit-mask:url("data:image/svg+xml,%3Csvg fill='%23000000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-width='0'%3E%3C/g%3E%3Cg stroke-linecap='round' stroke-linejoin='round'%3E%3C/g%3E%3Cg %3E%3Cpath d='M5.293,16.707a1,1,0,0,1,1.414-1.414L11,19.586V2a1,1,0,0,1,2,0V19.586l4.293-4.293a1,1,0,0,1,1.414,1.414l-6,6a1,1,0,0,1-1.414,0Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E") 50%/100% 200%;mask:url("data:image/svg+xml,%3Csvg fill='%23000000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-width='0'%3E%3C/g%3E%3Cg stroke-linecap='round' stroke-linejoin='round'%3E%3C/g%3E%3Cg %3E%3Cpath d='M5.293,16.707a1,1,0,0,1,1.414-1.414L11,19.586V2a1,1,0,0,1,2,0V19.586l4.293-4.293a1,1,0,0,1,1.414,1.414l-6,6a1,1,0,0,1-1.414,0Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E") 50%/100% 200%}.intro .point-down.animate .arrow{background:var(--accent);animation:1s cubic-bezier(.83,.62,0,1) infinite shiftDown}:is(.intro .point-down.animate:hover,.intro .point-down.animate:focus-visible) .arrow{background:var(--foreground)}@media (width>=1024px){.intro{--heading-font-size:max(12vw, 3rem)}}@media (width>=1851px){.intro{--heading-font-size:max(11vw, 3rem)}}.canvas{z-index:-1;background:var(--background);position:fixed;inset:0}.hamburger{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:3;background:rgba(var(--rgb-background), .5);border:1px solid;border-radius:50%;width:3.5rem;height:3.5rem;position:fixed;top:8px;right:8px}.hamburger svg{transition:rotate .8s,transform .8s}.hamburger path{fill:none;stroke:var(--foreground);stroke-width:10px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60 31 60 300;transition-property:stroke-dasharray,stroke-dashoffset;transition-duration:var(--transition-long);transition-timing-function:var(--transition-zip)}@media (width>=1024px){.hamburger{display:none}}.header{-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);z-index:2;transition:transform var(--transition-long) var(--transition-zip);border-inline:2px solid;display:grid;position:fixed;inset:0;transform:translate(100vw)}.header.open{transform:none}@media (width>=1024px){.header{position:unset;transform:unset;text-align:start;align-items:start}}.nav{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:32px;padding:32px;font-size:1.5rem;display:flex}.nav *{text-align:inherit}@media (width>=1024px){.nav{text-align:start;align-items:start;width:20ch;min-height:100svh;position:sticky;top:0}}.logo{max-width:180px;transition-property:filter,opacity;transition-duration:var(--transition-longest);background-color:#0000;border:none;margin:auto auto 0;display:block}.logo.disappear{opacity:0;filter:blur(100px)}:is(.logo:hover,.logo:focus-visible) svg path{filter:drop-shadow(24px 24px #ff000080)drop-shadow(-24px -24px #0000ff80)}.logo svg{width:100%;overflow:visible}.logo svg path{transition:filter var(--transition-short);fill:var(--foreground);filter:drop-shadow(0 0 #ff000080)drop-shadow(0 0 #0000ff80)}.menu-item{width:max-content;color:unset;text-transform:uppercase;letter-spacing:.2em;padding:8px 16px;display:inline-block}a.menu-item{position:relative}a.menu-item:before,a.menu-item:after{content:"";background-image:linear-gradient(90deg, var(--background), var(--foreground) 33%);width:0;height:2px;transition:width var(--transition-short) var(--transition-zip);position:absolute;inset:0}a.menu-item:after{top:auto;left:auto;scale:-1}:is(a.menu-item:hover,a.menu-item:focus-visible):before,:is(a.menu-item:hover,a.menu-item:focus-visible):after{width:100%}.expandable::details-content{content-visibility:visible}.expandable[open] .expandable-content{grid-template-rows:1fr}.expandable[open] summary .chevron{transform:scaleY(-1)}.expandable .expandable-trigger{cursor:pointer;align-items:center;gap:24px;display:inline-flex}.expandable .expandable-trigger::selection{background-color:#0000}:is(.expandable .expandable-trigger:hover,.expandable .expandable-trigger:focus-visible) .chevron{animation-iteration-count:infinite}.expandable .expandable-content{transition:grid-template-rows var(--transition-short) var(--transition-zip);grid-template-rows:0fr;display:grid}.expandable .expandable-content .expandable-content-inner{width:max-content;min-height:0;margin-left:12px;overflow:clip}.expandable .expandable-content .expandable-content-inner a{width:100%;margin-inline:0;padding-inline:0;font-size:1rem;display:block}.expandable .chevron{transition:transform var(--transition-short);place-items:center;animation:1s thingy;display:grid}.expandable .chevron i{width:2px;height:12px;transition:transform var(--transition-short);transform-origin:bottom;background-color:currentColor;position:absolute}.expandable .chevron .top{rotate:-45deg}.expandable .chevron .bottom{rotate:45deg}.projects{grid-template-columns:100%;gap:5rem;display:grid;container-type:inline-size}@media screen and (width>=500px){.projects{grid-template-columns:repeat(auto-fill,minmax(50ch,1fr))}}.projects .project{flex-direction:column;align-items:center;display:flex}.projects .project h3{width:100%;margin-bottom:12px}.projects .project p{margin-bottom:2rem;line-height:1.8}.projects .project p+*{margin-top:auto}.projects .project .projectWrapper{border:1px solid var(--foreground);background:#000;border-radius:4px;width:100%;min-height:500px;position:relative;overflow:clip}.projects .project .projectWrapper.tetrus iframe{pointer-events:none}.projects .project iframe,.projects .project video{border:none;width:100%;height:100%}.projects .project video{cursor:pointer}.projects .project video::-webkit-media-controls{display:none}.projects .project .play-icon{pointer-events:none;width:64px;height:64px;fill:var(--accent);transition-property:filter,opacity;transition-duration:var(--transition-long);transition-timing-function:var(--transition-zip);margin:auto;position:absolute;inset:0}.projects .project .play-icon.hide{opacity:0;filter:blur(32px)}.projects .project .loader{background:var(--background) radial-gradient(circle, rgba(var(--rgb-background), .9) 0%, rgba(var(--rgb-accent), .3) 100%);z-index:1;width:100%;height:100%;transition:opacity var(--transition-long);border-radius:4px;place-items:center;display:grid;position:absolute;overflow:clip}.projects .project .loader svg{pointer-events:none;width:145%;animation:5s linear infinite spin;position:absolute}.projects .project .loader svg path{stroke:rgba(var(--rgb-accent), .4);stroke-width:50px;stroke-dasharray:333000 690000;animation:40s cubic-bezier(.16,.72,.88,.26) infinite alternate spiral}.projects .project .loader svg g{fill:#0000}.projects .project .loader.hide{opacity:0;pointer-events:none}.projects .project .loading{opacity:0}.contact{flex-wrap:wrap;gap:32px;display:flex}.contact a{place-items:center;font-size:1.25rem;display:grid}.contact a:after{content:none}.about{max-width:60ch;margin-bottom:64px;font-size:1.125rem}.about p{margin-bottom:16px;line-height:1.8}.quote{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:min(40ch,100%);min-height:20ch;font-size:1.125rem;position:relative}.quote p{opacity:0;filter:blur(4px);line-height:2em;transition-property:filter,opacity;transition-duration:.5s;position:absolute;top:0;left:0}.quote p.active{opacity:1;filter:none}.blog ul,.blog ol{margin-left:2ch;margin-block:1ch}:is(.blog ul,.blog ol) ul,:is(.blog ul,.blog ol) ol{margin-left:1ch;margin-block:1ch}.blog p{margin-bottom:1ch}.blog em{color:rgb(var(--rgb-foreground), .7)}.blog article:not(:last-child):after{content:"";background-image:linear-gradient(to right, transparent, var(--foreground), transparent);width:100%;height:1px;margin-block:2rem;display:block}.blog article iframe{margin-bottom:2rem}.blog .blog-intro h2{margin-bottom:.5rem}.blog .blog-section{display:flex}.blog .blog-post h3{color:var(--accent)}.blog .blog-post img{max-width:100%;height:auto;margin-block:1rem}.blog .code{color:rgb(var(--rgb-blue));border:1px solid var(--foreground);white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;tab-size:2;background:#000000b3;border-radius:.5rem;margin-block:1rem;padding:1rem;font-family:monospace;font-size:.875rem;line-height:1.5}.blog .code-inline{border:none;margin-block:0;padding:.2rem .4rem;display:inline-block}.yt-video{aspect-ratio:560/315;margin-top:40px}@keyframes fade-in{0%{filter:blur(40px);opacity:0}}@keyframes fade-out{to{filter:blur(40px);opacity:0}}@keyframes shiftDown{to{-webkit-mask-position:50% -150%;mask-position:50% -150%}}@keyframes wave{0%{-webkit-mask-position:0;mask-position:0}to{-webkit-mask-position:-200%;mask-position:-200%}}@keyframes thingy{0%{filter:drop-shadow(0 0)drop-shadow(0 0)}to{filter:drop-shadow(0 12px #0000)drop-shadow(0 24px #0000)}}@keyframes shimmer{to{background-position:150% -150%}}@keyframes spiral{to{stroke-dasharray:690000}}@keyframes spin{to{rotate:1turn}}
