:root{--color-100:#08080c;--color-90:#161a1d;--color-80:#333d46;--color-70:#44515d;--color-60:#576776;--color-50:#6d8193;--color-40:#8e9dab;--color-30:#b3bdc7;--color-20:#e3e7ea;--color-10:#f8f9f9;--color-0:#fff;--accent-color:358 100% 77%;--gradient-color-1:320 100% 68%;--gradient-color-2:32 100% 68%;--bodyFontSize:1rem;--headingsScale:1.2}*{margin:0}*,:after,:before{box-sizing:inherit}html{background-color:var(--global-background);font-size:137%;box-sizing:border-box}body{color:var(--global-foreground);font-family:Roboto,sans-serif;font-size:var(--bodyFontSize);font-weight:400;line-height:1.5;counter-reset:post-counter;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[tabindex="-1"]{outline:0}:not([tabindex="-1"]):focus{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}[data-whatintent=mouse] :focus,[data-whatintent=touch] :focus{outline:0}img{max-width:100%}svg{fill:currentColor}[data-prose]>dd,[data-prose]>fieldset,[data-prose]>figure,[data-prose]>h1,[data-prose]>h2,[data-prose]>h3,[data-prose]>h4,[data-prose]>h5,[data-prose]>h6,[data-prose]>hgroup,[data-prose]>hr,[data-prose]>ol,[data-prose]>p,[data-prose]>pre,[data-prose]>table,[data-prose]>ul{margin-top:2rem;margin-bottom:2rem}[data-prose]>h1,[data-prose]>h2,[data-prose]>h3,[data-prose]>h4,[data-prose]>h5,[data-prose]>h6{margin-bottom:0}[data-prose]>h1+p,[data-prose]>h2+p,[data-prose]>h3+p,[data-prose]>h4+p,[data-prose]>h5+p,[data-prose]>h6+p{margin-top:1rem}ul:not([class]){list-style-type:none;padding:0}ul:not([class]) li{padding:8px 0 8px 1.33rem;position:relative}ul:not([class]) li:before{content:"::";background-image:linear-gradient(180deg,hsl(var(--accent-color)),hsl(var(--gradient-color-1)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700;position:absolute;left:0;display:inline-block}p code{padding:0 4px 2px;border-radius:4px;font-size:.9em;background-color:var(--inline-code-background)}h1,h2,h3,h4,h5,h6{color:var(--headings-foreground)}@media (max-width:48em){h1,h2,h3,h4,h5,h6{--bodyFontSize:0.8rem}}h1{font-size:max(2.37rem,min(5vw,3.37rem));font-size:calc(var(--bodyFontSize)*var(--headingsScale)*var(--headingsScale)*var(--headingsScale)*var(--headingsScale)*var(--headingsScale))}h1,h2{line-height:1.2;font-weight:900;min-height:.01vh}h2{font-size:calc(var(--bodyFontSize)*var(--headingsScale)*var(--headingsScale)*var(--headingsScale)*var(--headingsScale))}h3{font-size:calc(var(--bodyFontSize)*var(--headingsScale)*var(--headingsScale)*var(--headingsScale))}h3,h4{line-height:1.2;font-weight:900;min-height:.01vh}h4{font-size:calc(var(--bodyFontSize)*var(--headingsScale)*var(--headingsScale))}h5{font-size:calc(var(--bodyFontSize)*var(--headingsScale))}h5,h6{line-height:1.2;font-weight:900;min-height:.01vh}h6{font-size:var(--bodyFontSize)}p{font-size:max(.8rem,min(5vw,var(--bodyFontSize)));line-height:1.5}p[data-width=small]{max-width:40ch}a{text-decoration-thickness:3px;text-decoration-color:hsl(var(--accent-color));font-size:inherit;color:inherit}small{font-size:.72rem}.Stack{display:grid;grid-gap:var(--rowGap) var(--columnGap);align-items:var(--vAlign);justify-content:var(--hAlign)}.Stack[data-stack-inline=false]{align-items:var(--hAlign);justify-items:var(--hAlign);place-items:var(--hAlign)}.Stack[data-stack-inline=true]{display:inline-grid;grid-auto-flow:column dense;grid-template-columns:auto}@media (min-width:60em){.Stack{grid-template-columns:repeat(var(--columns),1fr)}}.Header{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;font-size:.8rem;z-index:3;position:relative}@media (min-width:60em){.Header{padding:1.8rem 0}}.Header__Logo{width:24px;height:24px;border-radius:100%;background:linear-gradient(135deg,hsl(var(--gradient-color-1)),hsl(var(--gradient-color-2)))}.Header__Logo:active{animation:rubber .5s;animation-direction:alternate}.Header__NavigationItem{position:relative;color:var(--header-navigation-item-foreground);text-decoration:none}.Header__NavigationItem[aria-current=page]:after{pointer-events:none;position:absolute;top:calc(100% + .18rem);left:-.18rem;right:-.18rem;background-color:hsl(var(--accent-color));height:4px;border-radius:4px;display:block;content:"";animation-name:scaleX;animation-duration:.5s;animation-timing-function:cubic-bezier(.34,1.56,.64,1)}@keyframes scaleX{0%{transform:scaleX(var(--fromX,0))}to{transform:scaleX(var(--toX,1))}}@keyframes rubber{0%{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale3d(1.05,.95,1)}}.Container[data-container-fullwidth=false]{width:100%;max-width:1900px;margin:0 auto}.Container[data-container-padding=true]{padding:0 calc(env(safe-area-inset-right) + .88rem) 0 calc(env(safe-area-inset-left) + .88rem)}@media (min-width:60em){.Container[data-container-padding=true]{padding:0 4rem}}.Container[data-container-small=true]{max-width:70ch}.ThemeSwitcher{display:flex}.ThemeSwitcher__ThemeButton{border:0;background:0 0;display:inline-flex;flex-shrink:0;color:inherit}.ThemeSwitcher__ThemeButton:hover{cursor:pointer}html[data-theme=auto] .ThemeSwitcher__ThemeButton[data-theme-name=auto],html[data-theme=dark] .ThemeSwitcher__ThemeButton[data-theme-name=dark],html[data-theme=light] .ThemeSwitcher__ThemeButton[data-theme-name=light]{color:hsl(var(--accent-color))}.ThemeSwitcher__ThemeButton svg{margin:0;width:auto;height:auto;pointer-events:none}.Socials svg{width:24px;height:24px;transition:transform .2s;pointer-events:none}.Socials a{display:block}.Socials a:focus svg,.Socials a:hover svg{fill:hsl(var(--accent-color))}.Socials__List{list-style-type:none;padding:0;margin:0;display:inline-grid;grid-gap:24px;grid-auto-flow:column dense}.Slider{--mobileGap:1.09rem;display:grid;grid-auto-flow:column;grid-auto-columns:var(--columnSize);grid-gap:var(--mobileGap);gap:var(--mobileGap);padding-left:var(--mobileGap);padding-right:var(--mobileGap);-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:var(--mobileGap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:var(--mobileGap)}@media (max-width:47.999em){.Slider{-ms-overflow-style:none;scrollbar-width:none;scrollbar-color:transparent transparent}.Slider::-webkit-scrollbar{display:none}.Slider::-webkit-scrollbar-track{background:0 0}.Slider::-webkit-scrollbar-thumb{background-color:initial;border-radius:6px;border:3px solid transparent}}@media (min-width:48em){.Slider{grid-auto-flow:unset;grid-template-columns:repeat(auto-fit,minmax(min(var(--desktopColumnSize),100%),1fr))}}@media (min-width:60em){.Slider{grid-row-gap:var(--rGap);row-gap:var(--rGap);grid-column-gap:var(--cGap);column-gap:var(--cGap);padding:0 4rem var(--cGap)}}.Slider>*{scroll-snap-align:start}.Slider:after{display:block;height:100%;width:1.09rem;content:""}.PortfolioCard{display:flex;flex-direction:column;aspect-ratio:1/1;overflow:hidden;position:relative;color:var(--color-0);border-radius:16px;outline-offset:-5px;background:linear-gradient(139.15deg,var(--c1),var(--c2))}.PortfolioCard:before{display:block;content:"";width:100%;padding-top:100%}.PortfolioCard:after{--size:600px;content:"";position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:radial-gradient(circle closest-side,var(--color-20),transparent);transform:translate(-50%,-50%);transition:opacity .1s ease;opacity:0;z-index:1;mix-blend-mode:overlay}.PortfolioCard:hover:after{opacity:.5}.PortfolioCard>*{position:absolute;right:0;bottom:0;left:0}.PortfolioCard__Content{padding:.72rem 1.09rem}.PortfolioCard__Title{color:var(--color-10)}.Label.PortfolioCard__Label{color:inherit;opacity:.7}.PortfolioCard__Text{line-height:1.2}.Label{color:var(--label-foreground);font-weight:700;font-size:.63rem;filter:saturate(0)}.Label[data-label-uppercase=true]{text-transform:uppercase}.PostCard{position:relative;padding:1.45rem 1.45rem 1.45rem 0;cursor:default}.PostCard:before{counter-increment:post-counter;position:absolute;top:0;left:-2.8rem;z-index:-1;display:block;color:var(--post-dard-counter-foreground,var(--color-10));line-height:1;font-size:7rem;font-weight:100;content:counters(post-counter,".",decimal-leading-zero)}.PostCard:before,.PostCard>*{transition:transform .15s cubic-bezier(.3,.07,.34,1)}@media (hover:hover){.PostCard:hover:before{transform:translate(-.36rem,-.36rem)}.PostCard:hover:before,.PostCard:hover>*{transition:transform .5s cubic-bezier(.3,.07,.34,1)}.PostCard:hover>*{transform:translate(.36rem,.36rem)}}.PostCard__Title .Permalink{display:none}.PostCard__Abstract{opacity:.8}@media (min-width:80em){[data-postcard-compact=false] .PostCard__Abstract{min-height:4.54rem}}.Section__Head{display:flex;justify-content:space-between;align-items:center}.Button{text-decoration:none;position:relative;overflow:hidden;display:inline-block;align-items:center;padding:.36rem .72rem;color:var(--button-foreground);font-weight:700;font-size:.72rem;font-family:inherit;border:0;border-radius:8px;background-image:radial-gradient(circle at top left,hsl(var(--gradient-color-1)),hsl(var(--gradient-color-2)) 120%)}.Button:before{--size:300px;content:"";position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:radial-gradient(circle closest-side,var(--color-20),transparent);transform:translate(-50%,-50%);transition:opacity .25s ease;opacity:0;z-index:1}.Button:hover:before{opacity:.4}.Button svg{margin-left:.32rem;pointer-events:none}.Button span{position:relative}.Mark{color:currentColor;background-color:initial;background-image:linear-gradient(var(--color),var(--color));background-position:0 100%;background-repeat:no-repeat;background-size:0 1.3ex;word-break:break-word;display:inline-block;animation:highlight .8s cubic-bezier(0,0,.34,1) 1;animation-fill-mode:forwards;animation-play-state:paused;animation-delay:calc(var(--i,1)*800ms)}@keyframes highlight{to{background-size:100% 1.3ex}}.Cursor{--size:24px;--computed-x:var(--x);--computed-y:var(--y);display:none;will-change:transform;width:var(--size);height:var(--size);position:fixed;z-index:-1;pointer-events:none;fill:hsl(var(--accent-color));opacity:0}@media (min-width:60em){.Cursor{display:unset}}@media (hover:hover){.Transition{position:fixed;width:100vw;height:100vh;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;z-index:2;pointer-events:none}.Transition__Layer{background-image:linear-gradient(180deg,hsl(var(--transition-overlay-background)/0),hsl(var(--transition-overlay-background)) 20%,hsl(var(--transition-overlay-background)) 70%);background-image:linear-gradient(180deg,hsl(var(--transition-overlay-background)/0),hsl(var(--transition-overlay-background)) 20% 70%);width:100vw;height:100vw;transform:scaleY(0)}}.Figure{margin-top:20px;margin-bottom:80px}.Figure img{width:100%}.Figure figcaption{text-align:center}.Permalink{font-size:.8em;padding:8px 16px;text-decoration:none;position:absolute;top:0;left:-1.1em}:not(:hover)>.Permalink{display:none}.IframesWrapper{margin-top:20px;margin-bottom:80px}.IframesWrapper>iframe{background-color:var(--color-20);border-radius:8px;border:1px solid #e3e3e3}.IframesWrapper>iframe[src^="https://glitch.com"]{border-radius:5px 12px 6px 11px;overflow:hidden}.CodeWrapper{margin-top:60px;margin-bottom:60px;padding:24px;border:2px solid var(--color-80);background-color:var(--color-100);border-radius:16px}@media (min-width:60em){.Bleeding{width:100vw;max-width:60ch;margin-left:50%;transform:translateX(-50%)}}.PostHeader{text-align:center;margin:0 auto}@media (min-width:48em){.PostHeader{max-width:70ch}}.PostContent{margin:0 auto;max-width:52ch}.PostContent img{border-radius:16px}.TagList{list-style:none;display:inline-flex;justify-content:center;flex-wrap:wrap;margin:1.77rem -.22rem;padding:0}.TagList>*{margin:.22rem}.Chip{display:inline-flex;background-color:hsl(var(--accent-color)/10%);border-radius:.44rem;font-size:.88rem;padding:.22rem .44rem;text-decoration:none;font-weight:700;color:hsl(var(--accent-color))}.Chip:is(:hover,:focus){background-color:hsl(var(--accent-color));color:var(--color-100)}.Separator{height:1px;background-color:var(--separator-color);border:0}.PostNavigation{margin:1.77rem 0}.PostNavigation__Item{text-decoration:none;padding:.22rem 1.33rem .44rem;position:relative}.PostNavigation__Item:before{background:linear-gradient(270deg,hsl(var(--gradient-color-1)),hsl(var(--gradient-color-2)));border-radius:.44rem;position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;content:"";z-index:-1;-webkit-mask:linear-gradient(#fff,#fff 0) content-box,linear-gradient(#fff,#fff 0);mask:linear-gradient(#fff,#fff 0) content-box,linear-gradient(#fff,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:destination-out;-webkit-mask-composite:xor;mask-composite:exclude}.PostNavigation__Item:hover:before{padding:3px}.PostNavigation__Item small{font-size:.6em}.PostNavigation__Item:nth-child(2){text-align:inline-end}.PostNavigation__Action{color:var(--headings-foreground)}.ClampText{display:-webkit-box;-webkit-line-clamp:var(--r,1);-webkit-box-orient:vertical;overflow:hidden}:root{--global-background:var(--color-0);--global-foreground:var(--color-70);--headings-foreground:var(--color-100);--mark-color-cyan:#b0e9fb;--mark-color-green:#ccffed;--mark-color-pink:#f9d8e6;--inline-code-background:var(--color-10);--transition-overlay-background:0deg 0% 100%;--header-navigation-item-foreground:var(--color-100);--label-foreground:var(--color-60);--post-dard-counter-foreground:var(--color-10);--separator-color:var(--color-20);--button-foreground:var(--color-0);--post-navigation-border-color:var(--color-10)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--global-background:var(--color-100);--global-foreground:var(--color-20);--headings-foreground:var(--color-0);--mark-color-cyan:#065a75;--mark-color-green:#007a4f;--mark-color-pink:#6a1036;--inline-code-background:var(--color-80);--transition-overlay-background:240deg 20% 4%;--header-navigation-item-foreground:var(--color-0);--label-foreground:var(--color-40);--post-dard-counter-foreground:var(--color-90);--separator-color:var(--color-80);--button-foreground:var(--color-100);--post-navigation-border-color:var(--color-80)}}:root[data-theme=dark]{--global-background:var(--color-100);--global-foreground:var(--color-20);--headings-foreground:var(--color-0);--mark-color-cyan:#065a75;--mark-color-green:#007a4f;--mark-color-pink:#6a1036;--inline-code-background:var(--color-80);--transition-overlay-background:240deg 20% 4%;--header-navigation-item-foreground:var(--color-0);--label-foreground:var(--color-40);--post-dard-counter-foreground:var(--color-90);--separator-color:var(--color-80);--button-foreground:var(--color-100);--post-navigation-border-color:var(--color-80)}