:where(html){--size-000:-.5rem;--size-00:-.25rem;--size-1:.25rem;--size-2:.5rem;--size-3:1rem;--size-4:1.25rem;--size-5:1.5rem;--size-6:1.75rem;--size-7:2rem;--size-8:3rem;--size-9:4rem;--size-10:5rem;--size-11:7.5rem;--size-12:10rem;--size-13:15rem;--size-14:20rem;--size-15:30rem;--size-px-000:-8px;--size-px-00:-4px;--size-px-1:4px;--size-px-2:8px;--size-px-3:16px;--size-px-4:20px;--size-px-5:24px;--size-px-6:28px;--size-px-7:32px;--size-px-8:48px;--size-px-9:64px;--size-px-10:80px;--size-px-11:120px;--size-px-12:160px;--size-px-13:240px;--size-px-14:320px;--size-px-15:480px;--size-fluid-1:max(.5rem,min(1vw,1rem));--size-fluid-2:max(1rem,min(2vw,1.5rem));--size-fluid-3:max(1.5rem,min(3vw,2rem));--size-fluid-4:max(2rem,min(4vw,3rem));--size-fluid-5:max(4rem,min(5vw,5rem));--size-fluid-6:max(5rem,min(7vw,7.5rem));--size-fluid-7:max(7.5rem,min(10vw,10rem));--size-fluid-8:max(10rem,min(20vw,15rem));--size-fluid-9:max(15rem,min(30vw,20rem));--size-fluid-10:max(20rem,min(40vw,30rem));--size-content-1:20ch;--size-content-2:45ch;--size-content-3:60ch;--size-header-1:20ch;--size-header-2:25ch;--size-header-3:35ch;--size-xxs:240px;--size-xs:360px;--size-sm:480px;--size-md:768px;--size-lg:1024px;--size-xl:1440px;--size-xxl:1920px;--size-relative-000:-.5ch;--size-relative-00:-.25ch;--size-relative-1:.25ch;--size-relative-2:.5ch;--size-relative-3:1ch;--size-relative-4:1.25ch;--size-relative-5:1.5ch;--size-relative-6:1.75ch;--size-relative-7:2ch;--size-relative-8:3ch;--size-relative-9:4ch;--size-relative-10:5ch;--size-relative-11:7.5ch;--size-relative-12:10ch;--size-relative-13:15ch;--size-relative-14:20ch;--size-relative-15:30ch}:where(html){--font-system-ui:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;--font-transitional:Charter,Bitstream Charter,Sitka Text,Cambria,serif;--font-old-style:Iowan Old Style,Palatino Linotype,URW Palladio L,P052,serif;--font-humanist:Seravek,Gill Sans Nova,Ubuntu,Calibri,DejaVu Sans,source-sans-pro,sans-serif;--font-geometric-humanist:Avenir,Montserrat,Corbel,URW Gothic,source-sans-pro,sans-serif;--font-classical-humanist:Optima,Candara,Noto Sans,source-sans-pro,sans-serif;--font-neo-grotesque:Inter,Roboto,Helvetica Neue,Arial Nova,Nimbus Sans,Arial,sans-serif;--font-monospace-slab-serif:Nimbus Mono PS,Courier New,monospace;--font-monospace-code:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,Cascadia Code,Menlo,Consolas,DejaVu Sans Mono,monospace;--font-industrial:Bahnschrift,DIN Alternate,Franklin Gothic Medium,Nimbus Sans Narrow,sans-serif-condensed,sans-serif;--font-rounded-sans:ui-rounded,Hiragino Maru Gothic ProN,Quicksand,Comfortaa,Manjari,Arial Rounded MT,Arial Rounded MT Bold,Calibri,source-sans-pro,sans-serif;--font-slab-serif:Rockwell,Rockwell Nova,Roboto Slab,DejaVu Serif,Sitka Small,serif;--font-antique:Superclarendon,Bookman Old Style,URW Bookman,URW Bookman L,Georgia Pro,Georgia,serif;--font-didone:Didot,Bodoni MT,Noto Serif Display,URW Palladio L,P052,Sylfaen,serif;--font-handwritten:Segoe Print,Bradley Hand,Chilanka,TSCu_Comic,casual,cursive;--font-sans:var(--font-system-ui);--font-serif:ui-serif,serif;--font-mono:var(--font-monospace-code);--font-weight-1:100;--font-weight-2:200;--font-weight-3:300;--font-weight-4:400;--font-weight-5:500;--font-weight-6:600;--font-weight-7:700;--font-weight-8:800;--font-weight-9:900;--font-lineheight-00:.95;--font-lineheight-0:1.1;--font-lineheight-1:1.25;--font-lineheight-2:1.375;--font-lineheight-3:1.5;--font-lineheight-4:1.75;--font-lineheight-5:2;--font-letterspacing-0:-.05em;--font-letterspacing-1:.025em;--font-letterspacing-2:.05em;--font-letterspacing-3:.075em;--font-letterspacing-4:.15em;--font-letterspacing-5:.5em;--font-letterspacing-6:.75em;--font-letterspacing-7:1em;--font-size-00:.5rem;--font-size-0:.75rem;--font-size-1:1rem;--font-size-2:1.1rem;--font-size-3:1.25rem;--font-size-4:1.5rem;--font-size-5:2rem;--font-size-6:2.5rem;--font-size-7:3rem;--font-size-8:3.5rem;--font-size-fluid-0:max(.75rem,min(2vw,1rem));--font-size-fluid-1:max(1rem,min(4vw,1.5rem));--font-size-fluid-2:max(1.5rem,min(6vw,2.5rem));--font-size-fluid-3:max(2rem,min(9vw,3.5rem))}:where(html){--border-size-1:1px;--border-size-2:2px;--border-size-3:5px;--border-size-4:10px;--border-size-5:25px;--radius-1:2px;--radius-2:5px;--radius-3:1rem;--radius-4:2rem;--radius-5:4rem;--radius-6:8rem;--radius-drawn-1:255px 15px 225px 15px/15px 225px 15px 255px;--radius-drawn-2:125px 10px 20px 185px/25px 205px 205px 25px;--radius-drawn-3:15px 255px 15px 225px/225px 15px 255px 15px;--radius-drawn-4:15px 25px 155px 25px/225px 150px 25px 115px;--radius-drawn-5:250px 25px 15px 20px/15px 80px 105px 115px;--radius-drawn-6:28px 100px 20px 15px/150px 30px 205px 225px;--radius-round:1e5px;--radius-blob-1:30% 70% 70% 30%/53% 30% 70% 47%;--radius-blob-2:53% 47% 34% 66%/63% 46% 54% 37%;--radius-blob-3:37% 63% 56% 44%/49% 56% 44% 51%;--radius-blob-4:63% 37% 37% 63%/43% 37% 63% 57%;--radius-blob-5:49% 51% 48% 52%/57% 44% 56% 43%;--radius-conditional-1:clamp(0px, calc(100vw - 100%) * 1e5,var(--radius-1));--radius-conditional-2:clamp(0px, calc(100vw - 100%) * 1e5,var(--radius-2));--radius-conditional-3:clamp(0px, calc(100vw - 100%) * 1e5,var(--radius-3));--radius-conditional-4:clamp(0px, calc(100vw - 100%) * 1e5,var(--radius-4));--radius-conditional-5:clamp(0px, calc(100vw - 100%) * 1e5,var(--radius-5));--radius-conditional-6:clamp(0px, calc(100vw - 100%) * 1e5,var(--radius-6))}*,:before,:after{box-sizing:border-box;border:0 solid}*{margin:0}html{line-height:var(--font-lineheight-3);-webkit-text-size-adjust:none}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}h1,h2,h3,h4,h5,h6{line-height:var(--font-lineheight-1);font-weight:var(--font-weight-9);text-wrap:balance}img,svg,video,canvas{display:block}img,svg,video{max-inline-size:100%;block-size:auto}button,input,textarea,select{font:inherit;color:inherit}a{text-underline-offset:1px}:focus-visible{outline:2px solid var(--foreground);outline-offset:3px}code,kbd,samp,pre{font-family:var(--font-monospace-code),monospace}:root{--background: #181c14;--foreground: #ecdfcc;--highlight: #697565;--secondary: #3c3d37;--spacing-xs: var(--size-1);--spacing-sm: var(--size-2);--spacing-md: var(--size-3);--spacing-lg: var(--size-7);--spacing-xl: var(--size-9);--border-radius: var(--radius-2);--transition-time: .1s;--text-sm: .85rem;--page-width: 720px;--nav-height: 50px}@media(max-width:768px){:root{--page-width: 90vw}}html{background-color:var(--background)}.lqip-surface{background-color:var(--placeholder, var(--secondary));background-image:var(--lqip);background-size:cover;background-position:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{font-family:var(--font-monospace-code);color:var(--foreground);overflow-x:hidden;min-height:100dvh}h1{font-size:var(--font-size-2);margin-block-start:var(--spacing-md)}h2{font-size:var(--font-size-1)}p,li{font-size:var(--text-sm);opacity:.75}p{margin-block-end:var(--spacing-md)}ul,ol{margin-block-end:var(--spacing-md);padding-inline-start:var(--spacing-lg)}.description{font-style:italic}.project-tags{margin-top:var(--spacing-sm)}.detail-content{width:100%;margin-block-start:var(--spacing-lg);font-family:DM Sans,sans-serif;font-optical-sizing:auto}.detail-content p,.detail-content li{font-size:1rem;opacity:.9}.detail-content h2,.detail-content h3{margin-block-start:var(--spacing-lg);margin-block-end:var(--spacing-sm)}figure{margin-block-end:var(--spacing-md)}figcaption{font-family:var(--font-monospace-code);font-size:var(--text-sm);opacity:.7;text-align:center;margin-block-start:var(--spacing-xs)}button{background-color:var(--foreground);color:var(--background);border:none;cursor:pointer;border-radius:var(--border-radius);transition-duration:var(--transition-time);padding:var(--spacing-sm) var(--spacing-md)}button:hover{filter:brightness(.8)}button:active{filter:brightness(.7);transform:scale(.99)}a{text-decoration:underline;transition-duration:var(--transition-time)}a:hover{opacity:.75}article{padding:var(--spacing-xl) var(--spacing-md);display:flex;flex-direction:column;align-items:center;width:var(--page-width);max-width:100%;box-sizing:border-box}section{margin-bottom:var(--size-5)}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}three-background[data-astro-cid-y3soregm]{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;display:block}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.effects-toggle[data-astro-cid-e7pipc35]{--cube-size: calc(var(--nav-icon-size, 20px) * .7);--cube-rest: rotateX(-22deg) rotateY(-35deg);background:none;border:none;border-radius:0;padding:0;width:var(--nav-icon-size, 20px);height:var(--nav-icon-size, 20px);display:flex;align-items:center;justify-content:center;perspective:60px;opacity:.7;transition:opacity var(--transition-time)}.effects-toggle[data-astro-cid-e7pipc35]:hover,.effects-toggle[data-astro-cid-e7pipc35]:active{filter:none;transform:none;opacity:1}.cube[data-astro-cid-e7pipc35]{width:var(--cube-size);height:var(--cube-size);position:relative;transform-style:preserve-3d;transform:var(--cube-rest);animation:cube-spin 40s linear infinite}.face[data-astro-cid-e7pipc35]{position:absolute;inset:0;border:1.5px solid var(--foreground)}.face[data-astro-cid-e7pipc35]:nth-child(1){transform:rotateY(0) translateZ(calc(var(--cube-size) / 2))}.face[data-astro-cid-e7pipc35]:nth-child(2){transform:rotateY(90deg) translateZ(calc(var(--cube-size) / 2))}.face[data-astro-cid-e7pipc35]:nth-child(3){transform:rotateY(180deg) translateZ(calc(var(--cube-size) / 2))}.face[data-astro-cid-e7pipc35]:nth-child(4){transform:rotateY(270deg) translateZ(calc(var(--cube-size) / 2))}.face[data-astro-cid-e7pipc35]:nth-child(5){transform:rotateX(90deg) translateZ(calc(var(--cube-size) / 2))}.face[data-astro-cid-e7pipc35]:nth-child(6){transform:rotateX(-90deg) translateZ(calc(var(--cube-size) / 2))}@keyframes cube-spin{0%{transform:rotateX(-22deg) rotateY(-35deg)}to{transform:rotateX(-22deg) rotateY(325deg)}}html.effects-off .effects-toggle[data-astro-cid-e7pipc35]{opacity:.35}html.effects-off .effects-toggle[data-astro-cid-e7pipc35]:hover{opacity:.6}html.effects-off .cube[data-astro-cid-e7pipc35]{animation-play-state:paused}nav[data-astro-cid-ymhdp2rl]{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;z-index:10;padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm);background:color-mix(in srgb,var(--background) 40%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);--nav-icon-size: 20px}nav[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl]{color:var(--foreground);text-decoration:none}.logo[data-astro-cid-ymhdp2rl]{font-size:var(--font-size-3);font-weight:700;line-height:1;flex:1}.nav-links[data-astro-cid-ymhdp2rl]{display:flex;flex-direction:row;gap:var(--spacing-md);align-items:center}.nav-text[data-astro-cid-ymhdp2rl][aria-current=page],.nav-link[data-astro-cid-ymhdp2rl][aria-current=page],.nav-text[data-astro-cid-ymhdp2rl]:hover,.nav-link[data-astro-cid-ymhdp2rl]:hover{text-decoration:underline;text-decoration-thickness:calc(var(--size-1) / 3)}.social-icons[data-astro-cid-ymhdp2rl] svg{width:var(--nav-icon-size);height:var(--nav-icon-size)}.social-icons[data-astro-cid-ymhdp2rl]{display:flex;flex-direction:row;gap:var(--spacing-sm);align-items:center;flex-shrink:0;flex:1;justify-content:flex-end}.social-icons[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl]{color:var(--foreground);display:flex;align-items:center;opacity:.7;transition:opacity var(--transition-time)}.social-icons[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl]:hover{opacity:1}@media(max-width:600px){nav[data-astro-cid-ymhdp2rl]{--nav-icon-size: 16px}.nav-text[data-astro-cid-ymhdp2rl]{display:none}.logo[data-astro-cid-ymhdp2rl]{font-size:var(--font-size-2)}.nav-link[data-astro-cid-ymhdp2rl]{font-size:var(--text-sm)}.nav-links[data-astro-cid-ymhdp2rl]{gap:var(--spacing-sm);margin-left:var(--spacing-sm);margin-right:auto}.logo[data-astro-cid-ymhdp2rl],.social-icons[data-astro-cid-ymhdp2rl]{flex:0 0 auto}.logo[data-astro-cid-ymhdp2rl][aria-current=page]{text-decoration:underline;text-decoration-thickness:calc(var(--size-1) / 3)}}#progress-bar[data-astro-cid-jx4nc67j]{position:fixed;top:0;left:0;height:2px;width:0;background:var(--foreground);z-index:1000;opacity:0;pointer-events:none}#progress-bar[data-astro-cid-jx4nc67j].loading{opacity:1;width:80%;transition:width 3s cubic-bezier(.1,.7,.3,1)}#progress-bar[data-astro-cid-jx4nc67j].finished{width:100%;opacity:0;transition:width .2s ease-out,opacity .3s ease .2s}@media(prefers-reduced-motion:reduce){#progress-bar[data-astro-cid-jx4nc67j].loading,#progress-bar[data-astro-cid-jx4nc67j].finished{transition:none}}.stars[data-astro-cid-tmd6rnhz]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none;overflow:hidden;transition:opacity 1s ease}.stars[data-astro-cid-tmd6rnhz].fading,html.effects-off .stars[data-astro-cid-tmd6rnhz]{opacity:0;transition-duration:1.3s}.stars[data-astro-cid-tmd6rnhz].fading .star-dot[data-astro-cid-tmd6rnhz],.stars[data-astro-cid-tmd6rnhz].fading .star-four[data-astro-cid-tmd6rnhz],html.effects-off .stars[data-astro-cid-tmd6rnhz] .star-dot[data-astro-cid-tmd6rnhz],html.effects-off .stars[data-astro-cid-tmd6rnhz] .star-four[data-astro-cid-tmd6rnhz]{animation-play-state:paused}.star-dot[data-astro-cid-tmd6rnhz]{position:absolute;border-radius:50%;background-color:var(--foreground);animation:twinkle ease-in-out infinite alternate}.star-four[data-astro-cid-tmd6rnhz]{position:absolute;background-color:var(--foreground);clip-path:polygon(50% 0%,58% 38%,100% 50%,58% 62%,50% 100%,42% 62%,0% 50%,42% 38%);animation:twinkle ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.05;transform:scale(.8)}to{opacity:var(--tw-end-opacity, .6);transform:scale(1)}}main[data-astro-cid-sckkx6r4]{display:flex;align-items:center;flex-direction:column;position:relative;z-index:1}.content-panel[data-astro-cid-sckkx6r4]{position:relative;z-index:1;max-width:calc(var(--page-width) + var(--spacing-xl) * 2);margin:0 auto;min-height:calc(100dvh - var(--nav-height));background:linear-gradient(to right,transparent,color-mix(in srgb,var(--background) 50%,transparent) 15%,color-mix(in srgb,var(--background) 50%,transparent) 85%,transparent);mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}@media(max-width:768px){.content-panel[data-astro-cid-sckkx6r4]{max-width:100%;background:color-mix(in srgb,var(--background) 60%,transparent);mask-image:none;-webkit-mask-image:none}}.skip-link[data-astro-cid-sckkx6r4]{position:absolute;left:-9999px;z-index:100;padding:.5rem 1rem;background:var(--background);color:var(--foreground)}.skip-link[data-astro-cid-sckkx6r4]:focus{left:1rem;top:.5rem}.content-panel:has(.listing-page,.home-page){background:none;mask-image:none;-webkit-mask-image:none}
