@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(*),[data-astro-transition-scope]{animation:none!important}}.win-tile{transition:transform .12s cubic-bezier(.4,0,.2,1),box-shadow .12s cubic-bezier(.4,0,.2,1);transform:perspective(600px)rotateX(0)rotateY(0)scale(1)}.win-tile--pressed{transform:perspective(600px)rotateX(4deg)rotateY(-4deg)scale(.94)}@keyframes win-tile-enter{0%{opacity:0;transform:translateY(16px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.win-tile-enter{animation:.42s cubic-bezier(.2,.8,.2,1) both win-tile-enter;animation-delay:calc(var(--i,0) * 60ms)}@keyframes win-tile-enter-hinge{0%{opacity:0;transform:perspective(2000px)rotateY(-90deg)}to{opacity:1;transform:perspective(2000px)rotateY(0)}}@media (width<=640px){.win-tile-enter{transform-origin:var(--hinge-x,0) 50%;-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform;animation-name:win-tile-enter-hinge;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1)}}.win-tile-exit{animation:.42s cubic-bezier(.2,.8,.2,1) reverse both win-tile-enter;animation-delay:calc((var(--tile-total,1) - 1 - var(--i,0)) * 60ms)}@media (width<=640px){.win-tile-exit{transform-origin:var(--hinge-x,0) 50%;-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform;pointer-events:none;animation-name:win-tile-enter-hinge;animation-duration:.2s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-direction:reverse}}.win-tile-reveal{z-index:1000;background-color:var(--reveal-accent,var(--cobalt));will-change:clip-path;transition:clip-path .36s cubic-bezier(.2,.8,.2,1);position:fixed;inset:0}.win-tile-flip{z-index:1000;transform-style:preserve-3d;will-change:left, top, width, height, transform;position:fixed}.win-tile-flip__face{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:none;position:absolute;inset:0;transform:none}.win-tile-flip__back{background-color:var(--reveal-accent,var(--cobalt));transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.win-tile,.win-tile--pressed,.win-tile-enter,.win-tile-exit{will-change:auto!important;transition:none!important;animation:none!important;transform:none!important}.win-tile-reveal{transition:none!important}}:root[data-metro-motion=reduced] .win-tile,:root[data-metro-motion=reduced] .win-tile--pressed,:root[data-metro-motion=reduced] .win-tile-enter,:root[data-metro-motion=reduced] .win-tile-exit{will-change:auto!important;transition:none!important;animation:none!important;transform:none!important}:root[data-metro-motion=reduced] .win-tile-reveal{transition:none!important}:root,[data-metro-theme=dark]{--metro-bg:#000;--metro-fg:#fff;--metro-subtle:#fff9;--metro-disabled:#ffffff59;--metro-chrome:#1f1f1f;--metro-chrome-alt:#2b2b2b;--metro-border:#fff;--metro-control-bg:transparent;--metro-control-bg-hover:#ffffff1f;--metro-input-bg:#fffc;--metro-input-fg:#000;--metro-input-border:transparent;--metro-overlay:#0009;--metro-on-accent:#fff;color-scheme:dark}[data-metro-theme=light]{--metro-bg:#fff;--metro-fg:#000;--metro-subtle:#0009;--metro-disabled:#00000059;--metro-chrome:#ddd;--metro-chrome-alt:#ccc;--metro-border:#000;--metro-control-bg:transparent;--metro-control-bg-hover:#00000014;--metro-input-bg:#00000014;--metro-input-fg:#000;--metro-input-border:#0009;--metro-overlay:#fff9;--metro-on-accent:#fff;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-metro-theme=dark]){--metro-bg:#fff;--metro-fg:#000;--metro-subtle:#0009;--metro-disabled:#00000059;--metro-chrome:#ddd;--metro-chrome-alt:#ccc;--metro-border:#000;--metro-control-bg-hover:#00000014;--metro-input-bg:#00000014;--metro-input-border:#0009;--metro-overlay:#fff9;color-scheme:light}}:root[data-metro-contrast=high]{--metro-subtle:var(--metro-fg);--metro-chrome:var(--metro-bg);--metro-chrome-alt:var(--metro-control-bg-hover);--metro-input-border:var(--metro-fg);--metro-overlay:#000000d9}:root[data-metro-contrast=high] :focus-visible{outline:3px solid var(--metro-fg)!important;outline-offset:3px!important}:root{--metro-accent:var(--accent-override,var(--cobalt));--metro-font:"Segoe UI", "Segoe WP", "Selawik", system-ui, -apple-system, sans-serif;--metro-font-light:300;--metro-font-semilight:350;--metro-font-regular:400;--metro-font-semibold:600;--metro-type-hero:4.5rem;--metro-type-header:2.625rem;--metro-type-pivot:2.5rem;--metro-type-subheader:1.625rem;--metro-type-title:1.25rem;--metro-type-body:.9375rem;--metro-type-caption:.75rem;--metro-space-1:4px;--metro-space-2:8px;--metro-space-3:12px;--metro-space-4:20px;--metro-space-5:40px;--metro-space-6:80px;--metro-page-margin:120px;--metro-border-width:2px;--metro-radius:0;--metro-control-height:32px;--metro-touch-target:44px;--metro-ease-out:cubic-bezier(.1, .9, .2, 1);--metro-ease-in:cubic-bezier(.7, 0, 1, .5);--metro-ease-standard:cubic-bezier(.4, 0, .2, 1);--metro-duration-fast:.12s;--metro-duration-exit:.2s;--metro-duration-enter:.35s;--metro-duration-slow:.6s;--metro-stagger:50ms;--metro-slide-distance:40px;--metro-z-appbar:100;--metro-z-flyout:200;--metro-z-dialog:900;--metro-z-toast:950}@media (width<=640px){:root{--metro-type-hero:3.5rem;--metro-type-header:2rem;--metro-type-pivot:2.25rem;--metro-page-margin:20px}}.metro-lowercase{text-transform:lowercase}.metro-uppercase{text-transform:uppercase}.metro-subtle{color:var(--metro-subtle)}.metro-accent-text{color:var(--metro-accent)}@keyframes metro-enter{0%{opacity:0;transform:translateX(var(--metro-slide-distance))}to{opacity:1;transform:none}}.metro-anim-enter{animation:metro-enter var(--metro-duration-slow) var(--metro-ease-out) both}@keyframes metro-turnstile-forward-in{0%{opacity:0;transform:perspective(1000px)rotateY(80deg)}to{opacity:1;transform:perspective(1000px)rotateY(0)}}@keyframes metro-turnstile-forward-out{0%{opacity:1;transform:perspective(1000px)rotateY(0)}to{opacity:0;transform:perspective(1000px)rotateY(-80deg)}}.metro-anim-turnstile-in,.metro-anim-turnstile-out,.metro-anim-turnstile-back-in,.metro-anim-turnstile-back-out{transform-origin:0;backface-visibility:hidden}.metro-anim-turnstile-in{animation:metro-turnstile-forward-in var(--metro-duration-enter) var(--metro-ease-out) both}.metro-anim-turnstile-out{animation:metro-turnstile-forward-out var(--metro-duration-exit) var(--metro-ease-in) both}@keyframes metro-turnstile-back-in{0%{opacity:0;transform:perspective(1000px)rotateY(-80deg)}to{opacity:1;transform:perspective(1000px)rotateY(0)}}@keyframes metro-turnstile-back-out{0%{opacity:1;transform:perspective(1000px)rotateY(0)}to{opacity:0;transform:perspective(1000px)rotateY(80deg)}}.metro-anim-turnstile-back-in{animation:metro-turnstile-back-in var(--metro-duration-enter) var(--metro-ease-out) both}.metro-anim-turnstile-back-out{animation:metro-turnstile-back-out var(--metro-duration-exit) var(--metro-ease-in) both}@keyframes metro-swivel-in{0%{opacity:0;transform:perspective(1000px)rotateX(-70deg)}to{opacity:1;transform:perspective(1000px)rotateX(0)}}.metro-anim-swivel-in,.metro-anim-swivel-out{transform-origin:50% 0;backface-visibility:hidden}.metro-anim-swivel-in{animation:metro-swivel-in var(--metro-duration-enter) var(--metro-ease-out) both}@keyframes metro-swivel-out{0%{opacity:1;transform:perspective(1000px)rotateX(0)}to{opacity:0;transform:perspective(1000px)rotateX(-70deg)}}.metro-anim-swivel-out{animation:metro-swivel-out var(--metro-duration-exit) var(--metro-ease-in) both}@keyframes metro-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}@keyframes metro-slide-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}@keyframes metro-slide-left{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:none}}.metro-anim-slide-up-in{animation:metro-slide-up var(--metro-duration-enter) var(--metro-ease-out) both}@keyframes metro-slide-up-out{to{opacity:0;transform:translateY(100%)}}.metro-anim-slide-up-out{animation:metro-slide-up-out var(--metro-duration-exit) var(--metro-ease-in) both}.metro-anim-slide-down-in{animation:metro-slide-down var(--metro-duration-enter) var(--metro-ease-out) both}@keyframes metro-slide-down-out{to{opacity:0;transform:translateY(-100%)}}.metro-anim-slide-down-out{animation:metro-slide-down-out var(--metro-duration-exit) var(--metro-ease-in) both}.metro-anim-slide-left-in{animation:metro-slide-left var(--metro-duration-enter) var(--metro-ease-out) both}@keyframes metro-slide-left-out{to{opacity:0;transform:translate(100%)}}.metro-anim-slide-left-out{animation:metro-slide-left-out var(--metro-duration-exit) var(--metro-ease-in) both}@keyframes metro-pop-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.metro-anim-pop-in{animation:metro-pop-in var(--metro-duration-enter) var(--metro-ease-out) both}@keyframes metro-pop-out{to{opacity:0;transform:translateY(12px)}}.metro-anim-pop-out{animation:metro-pop-out var(--metro-duration-exit) var(--metro-ease-in) both}@keyframes metro-fade{0%{opacity:0}to{opacity:1}}.metro-anim-fade-in{animation:metro-fade var(--metro-duration-enter) linear both}@keyframes metro-fade-out{to{opacity:0}}.metro-anim-fade-out{animation:metro-fade-out var(--metro-duration-exit) linear both}@keyframes metro-continuum-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(60px,40px)rotate(4deg)}}@keyframes metro-continuum-in{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}.metro-anim-continuum-out{animation:metro-continuum-out var(--metro-duration-exit) var(--metro-ease-in) both}.metro-anim-continuum-in{animation:metro-continuum-in var(--metro-duration-enter) var(--metro-ease-out) both}.metro-tilt{transition:transform var(--metro-duration-fast) var(--metro-ease-standard);will-change:transform;transform:perspective(600px)rotateX(0)rotateY(0)scale(1)}.metro-tilt--pressed{transform:perspective(600px) rotateX(calc(var(--tilt-y,0) * -8deg)) rotateY(calc(var(--tilt-x,0) * 8deg)) scale(.97)}@keyframes metro-dots-bar{0%{opacity:0;left:0%}10%{opacity:1}35%{left:42%}65%{left:58%}90%{opacity:1}to{opacity:0;left:100%}}@keyframes metro-dots-ring{0%{opacity:1;animation-timing-function:ease-out;transform:rotate(225deg)}7%{animation-timing-function:linear;transform:rotate(345deg)}30%{animation-timing-function:ease-in-out;transform:rotate(455deg)}39%{animation-timing-function:linear;transform:rotate(690deg)}70%{opacity:1;animation-timing-function:ease-out;transform:rotate(815deg)}75%{animation-timing-function:ease-out;transform:rotate(945deg)}76%,to{opacity:0;transform:rotate(945deg)}}.metro-stagger{animation-delay:calc(var(--i,0) * var(--metro-stagger))}@media (prefers-reduced-motion:reduce){[class*=metro-anim-]{animation-duration:1ms!important;animation-delay:0s!important}.metro-tilt,.metro-tilt--pressed{transition:none!important;transform:none!important}}:root[data-metro-motion=reduced] [class*=metro-anim-]{animation-duration:1ms!important;animation-delay:0s!important}:root[data-metro-motion=reduced] .metro-tilt,:root[data-metro-motion=reduced] .metro-tilt--pressed{transition:none!important;transform:none!important}:root{--color-background:var(--metro-bg);--color-foreground:var(--metro-fg);--lime:#a4c400;--green:#60a917;--emerald:#008a00;--teal:#00aba9;--cyan:#1ba1e2;--cobalt:#6495ed;--indigo:#6a00ff;--violet:#a0f;--pink:#f472d0;--magenta:#d80073;--crimson:#a20025;--red:#e51400;--orange:#fa6800;--amber:#f0a30a;--yellow:#e3c800;--brown:#825a2c;--olive:#6d8764;--steel:#647687;--mauve:#76608a;--sienna:sienna;--tile-unit:76px;--tile-gap:8px}@media (width<=640px){:root{--tile-unit:84px;--tile-gap:6px}}:root[data-metro-links=underline] a:not(.win-tile-link,.metro-list-item,.metro-page-header__back,.project-card__open){text-underline-offset:.15em;text-decoration:underline}*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{background:var(--color-background,#000);color:var(--color-foreground,#fff);font-family:Segoe UI,system-ui,-apple-system,sans-serif}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
