.MailLink-module__ATp2pG__root{font-size:var(--mail-size);line-height:var(--mail-line);letter-spacing:var(--letter-spacing-normal);color:inherit}.MailLink-module__ATp2pG__md{--mail-size:var(--font-size-md);--mail-line:var(--line-height-md)}.MailLink-module__ATp2pG__sm{--mail-size:var(--font-size-sm);--mail-line:var(--line-height-sm)}.MailLink-module__ATp2pG__label{color:inherit}.MailLink-module__ATp2pG__link{color:inherit;transition:color var(--duration-fast) var(--ease-standard);text-decoration:none}.MailLink-module__ATp2pG__link:hover{color:var(--color-text-accent)}
.SocialIcons-module__ho46ga__row{align-items:flex-start;gap:18px;margin:0;padding:0;list-style:none;display:flex}.SocialIcons-module__ho46ga__lg{--icon-size:var(--size-icon-lg)}.SocialIcons-module__ho46ga__md{--icon-size:var(--size-icon-md)}.SocialIcons-module__ho46ga__sm{--icon-size:var(--size-icon-sm)}.SocialIcons-module__ho46ga__link{width:var(--icon-size);height:var(--icon-size);color:inherit;transition:color var(--duration-fast) var(--ease-standard);flex-shrink:0;display:inline-flex;position:relative}.SocialIcons-module__ho46ga__link:hover{color:var(--color-text-accent)}.SocialIcons-module__ho46ga__glyph{width:100%;height:100%;display:block}.SocialIcons-module__ho46ga__handle{--handle-x:-50%;--handle-caret-x:50%;z-index:1;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background-color:var(--color-neutral-100);color:var(--color-text-primary);font-size:var(--font-size-sm);white-space:nowrap;-webkit-user-select:none;user-select:none;visibility:hidden;opacity:0;transform:translate(var(--handle-x), -4px);transition:opacity var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-standard), visibility 0s var(--ease-standard) var(--duration-base);margin-block-start:var(--space-sm);line-height:1;position:absolute;top:100%;left:50%}.SocialIcons-module__ho46ga__handle:after{content:"";bottom:100%;left:var(--handle-caret-x);border:var(--space-xs) solid transparent;border-bottom-color:var(--color-neutral-100);position:absolute;transform:translate(-50%)}.SocialIcons-module__ho46ga__link:focus-visible .SocialIcons-module__ho46ga__handle{visibility:visible;opacity:1;transform:translate(var(--handle-x), 0);transition-delay:0s}@media (hover:hover){.SocialIcons-module__ho46ga__link:hover .SocialIcons-module__ho46ga__handle{visibility:visible;opacity:1;transform:translate(var(--handle-x), 0);transition-delay:0s}}@media (prefers-reduced-motion:reduce){.SocialIcons-module__ho46ga__handle{transform:translate(var(--handle-x), 0)}}
.ContactBio-module__8u0Dgq__contact{gap:var(--space-lg) var(--space-sm);padding:var(--space-xl) var(--space-lg);color:var(--color-text-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background-color:var(--color-surface-page);grid-template-rows:minmax(0,1fr) minmax(0,.5fr) minmax(0,1fr);grid-template-columns:repeat(8,minmax(0,1fr));grid-template-areas:"intro intro intro intro.social social social""intro intro intro intro. . . .""mail mail mail mail mail mail. .";display:grid}.ContactBio-module__8u0Dgq__intro{font-size:var(--font-size-md);line-height:var(--line-height-md);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);grid-area:intro}.ContactBio-module__8u0Dgq__social{color:var(--color-blue-800);grid-area:social;justify-content:flex-end;display:flex}.ContactBio-module__8u0Dgq__mail{overflow-wrap:break-word;grid-area:mail}@media (max-width:880px){.ContactBio-module__8u0Dgq__contact{grid-template-rows:minmax(0,1fr) minmax(0,.5fr) minmax(0,1fr) minmax(0,1fr);grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"intro intro intro intro""intro intro intro intro""social social social social""mail mail mail mail"}.ContactBio-module__8u0Dgq__intro{text-align:center;flex-direction:column;justify-content:center;display:flex}.ContactBio-module__8u0Dgq__social{justify-content:center;align-self:start}.ContactBio-module__8u0Dgq__mail{text-align:center;align-self:center}}
.AboutBio-module__wTAuKW__bio{gap:var(--space-xl);padding-block:var(--space-3xl);max-inline-size:652px;color:var(--color-text-primary);flex-direction:column;display:flex}.AboutBio-module__wTAuKW__prose p+p{margin-block-start:var(--line-height-md)}.AboutBio-module__wTAuKW__prose p:first-of-type .AboutBio-module__wTAuKW__line:last-child{color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.AboutBio-module__wTAuKW__bio .AboutBio-module__wTAuKW__link{color:var(--color-text-accent);transition:color var(--duration-fast) var(--ease-standard);text-decoration-line:none}.AboutBio-module__wTAuKW__bio .AboutBio-module__wTAuKW__link:focus-visible{color:var(--color-text-accent-hover);outline:2px solid var(--color-text-accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:hover){.AboutBio-module__wTAuKW__bio .AboutBio-module__wTAuKW__link:hover{color:var(--color-text-accent-hover)}}@media (max-width:768px){.AboutBio-module__wTAuKW__bio{padding-top:0}}
.FooterReveal-module__PZAVRq__reveal{margin-inline:calc(var(--container-inset) * -1)}.FooterReveal-module__PZAVRq__reveal[data-state=hidden],.FooterReveal-module__PZAVRq__reveal[data-state=revealed]{z-index:20;margin-inline:0;position:fixed;inset-block-end:0;inset-inline:0}.FooterReveal-module__PZAVRq__reveal[data-armed=true]{transition:transform var(--duration-reveal) var(--ease-entrance), opacity var(--duration-reveal) var(--ease-entrance)}.FooterReveal-module__PZAVRq__reveal[data-state=hidden]{opacity:0;transform:translateY(100%)}.FooterReveal-module__PZAVRq__reveal[data-state=revealed]{opacity:1;transform:translateY(0)}
.FooterToggle-module__rvlDxW__toggle{display:none}@media (hover:none){.FooterToggle-module__rvlDxW__toggle{text-align:center;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg);background-color:var(--color-surface-subtle-hover);color:var(--color-neutral-1000);font-family:var(--font-tilt-warp);font-size:var(--font-size-lg);letter-spacing:-2px;text-box:trim-both cap alphabetic;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;line-height:normal;display:inline-block;position:relative}.FooterToggle-module__rvlDxW__toggle:before{content:"";position:absolute;inset:-8px 0}:root:not([data-footer=hidden]):not([data-footer=revealed]) .FooterToggle-module__rvlDxW__toggle{visibility:hidden}}.FooterToggle-module__rvlDxW__toggle:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}
.LanguageSwitcher-module__Ph6iAW__switcher{align-items:center;gap:var(--space-md);display:flex}.LanguageSwitcher-module__Ph6iAW__option{font-size:var(--font-size-sm);line-height:var(--line-height-sm);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);color:var(--color-neutral-400);cursor:pointer;transition:color var(--duration-fast) var(--ease-standard);background:0 0;border:0;padding:0;text-decoration:none}.LanguageSwitcher-module__Ph6iAW__option[aria-current=true]{color:var(--color-neutral-50)}.LanguageSwitcher-module__Ph6iAW__option:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:hover){.LanguageSwitcher-module__Ph6iAW__option:hover{color:var(--color-neutral-50)}}
.Footer-module__rnk_JG__footer{background:var(--color-surface-inverse);color:var(--color-text-inverse);font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--letter-spacing-normal);--footer-floor:128px;min-block-size:max(10vh, var(--footer-floor));column-gap:var(--space-sm);row-gap:var(--space-lg);padding-block:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr));align-content:center;padding-inline:0;display:grid}.Footer-module__rnk_JG__credits{text-align:center;grid-area:1/1/auto/-1}.Footer-module__rnk_JG__language{grid-area:2/2/auto/span 2;justify-content:center}.Footer-module__rnk_JG__changelog{text-align:center;color:var(--color-neutral-400);grid-area:3/1/auto/span 4}@media (min-width:640px){.Footer-module__rnk_JG__footer{--footer-floor:84px;padding-inline:var(--container-inset);row-gap:var(--space-sm);grid-template-columns:repeat(8,minmax(0,1fr))}.Footer-module__rnk_JG__changelog{text-align:right;grid-area:2/6/auto/span 3}.Footer-module__rnk_JG__credits{text-align:right;grid-area:1/6/auto/span 3}.Footer-module__rnk_JG__language{grid-area:1/1/auto/span 2;justify-content:flex-start}}@media (min-width:1024px){.Footer-module__rnk_JG__footer{--footer-floor:96px;column-gap:var(--space-md);grid-template-columns:repeat(12,minmax(0,1fr))}.Footer-module__rnk_JG__changelog{grid-area:2/8/auto/span 3}.Footer-module__rnk_JG__language{grid-area:1/3/auto/span 3}.Footer-module__rnk_JG__credits{text-align:right;grid-area:1/8/auto/span 3}}
.Wordmark-module__iIlw1q__wordmark{block-size:var(--wordmark-height);inline-size:auto;fill:var(--color-text-primary);--wordmark-tilt:19deg;--wordmark-tilt-entry:40deg;animation:Wordmark-module__iIlw1q__wordmark-settle var(--intro-settle) var(--ease-standard) backwards;transform-origin:50%;display:block;overflow:visible}@keyframes Wordmark-module__iIlw1q__wordmark-settle{0%{transform:perspective(420px) rotateX(calc(var(--wordmark-tilt-entry) - var(--wordmark-tilt))) rotateY(calc((var(--wordmark-tilt-entry) - var(--wordmark-tilt)) * 1.15))}to{transform:perspective(420px)rotateX(0)rotateY(0)}}:root[data-intro=done] .Wordmark-module__iIlw1q__wordmark{animation-name:none}.Wordmark-module__iIlw1q__lg{--wordmark-height:140px}.Wordmark-module__iIlw1q__sm{--wordmark-height:90px}.Wordmark-module__iIlw1q__wordmark path{--wordmark-lead:0;transform-box:fill-box;transform-origin:50%;animation:5.1s linear infinite Wordmark-module__iIlw1q__wordmark-tilt;animation-delay:calc(var(--wordmark-lead) * -290ms)}.Wordmark-module__iIlw1q__wordmark path:first-of-type{--wordmark-lead:3}.Wordmark-module__iIlw1q__wordmark path:nth-of-type(2){--wordmark-lead:2}.Wordmark-module__iIlw1q__wordmark path:nth-of-type(3){--wordmark-lead:1}@keyframes Wordmark-module__iIlw1q__wordmark-tilt{0%{transform:perspective(420px) rotateX(0deg) rotateY(calc(var(--wordmark-tilt) * 1.15))}12.5%{transform:perspective(420px) rotateX(calc(var(--wordmark-tilt) * .707)) rotateY(calc(var(--wordmark-tilt) * .813))}25%{transform:perspective(420px) rotateX(var(--wordmark-tilt)) rotateY(0deg)}37.5%{transform:perspective(420px) rotateX(calc(var(--wordmark-tilt) * .707)) rotateY(calc(var(--wordmark-tilt) * -.813))}50%{transform:perspective(420px) rotateX(0deg) rotateY(calc(var(--wordmark-tilt) * -1.15))}62.5%{transform:perspective(420px) rotateX(calc(var(--wordmark-tilt) * -.707)) rotateY(calc(var(--wordmark-tilt) * -.813))}75%{transform:perspective(420px) rotateX(calc(var(--wordmark-tilt) * -1)) rotateY(0deg)}87.5%{transform:perspective(420px) rotateX(calc(var(--wordmark-tilt) * -.707)) rotateY(calc(var(--wordmark-tilt) * .813))}to{transform:perspective(420px) rotateX(0deg) rotateY(calc(var(--wordmark-tilt) * 1.15))}}@media (prefers-reduced-motion:reduce){.Wordmark-module__iIlw1q__wordmark path{animation:none}}
.IntroCard-module__ioaAea__card{display:var(--intro-card-display,flex);align-items:center;gap:var(--space-md);padding:var(--space-md);flex-direction:column}.IntroCard-module__ioaAea__intro{min-block-size:var(--intro-min-block,468px);justify-content:center}.IntroCard-module__ioaAea__about{min-block-size:auto}.IntroCard-module__ioaAea__wordmarkStep{display:flex}.IntroCard-module__ioaAea__card .IntroCard-module__ioaAea__wordmark{--wordmark-height:90px}.IntroCard-module__ioaAea__tagline{font-size:var(--font-size-md);line-height:var(--line-height-md);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-secondary);text-align:center}.IntroCard-module__ioaAea__status{gap:var(--space-xs);flex-direction:column;align-items:center;display:flex}.IntroCard-module__ioaAea__footerToggle{margin-block-start:calc(var(--space-2xl) + var(--space-md) - var(--space-xs))}.IntroCard-module__ioaAea__current{font-size:var(--font-size-md);line-height:var(--line-height-md);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-secondary)}.IntroCard-module__ioaAea__previous{font-size:var(--font-size-md);line-height:var(--line-height-md);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-secondary)}.IntroCard-module__ioaAea__handle{color:var(--color-text-accent);transition:color var(--duration-fast) var(--ease-standard);text-decoration-line:none}.IntroCard-module__ioaAea__handle:focus-visible{color:var(--color-text-accent-hover);outline:2px solid var(--color-text-accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:hover){.IntroCard-module__ioaAea__handle:hover{color:var(--color-text-accent-hover)}}@media (min-width:640px){.IntroCard-module__ioaAea__card .IntroCard-module__ioaAea__wordmark{--wordmark-height:140px}.IntroCard-module__ioaAea__tagline{font-size:var(--font-size-lg);line-height:var(--line-height-lg)}.IntroCard-module__ioaAea__current{font-size:var(--font-size-lg);line-height:var(--line-height-lg);font-weight:var(--font-weight-medium)}.IntroCard-module__ioaAea__previous{font-size:var(--font-size-lg);line-height:var(--line-height-lg)}.IntroCard-module__ioaAea__about{padding:var(--space-2xl);justify-content:flex-start;gap:0}}@media (min-width:768px){.IntroCard-module__ioaAea__about{gap:var(--space-md);padding:var(--space-md)}}@media (min-width:1024px){.IntroCard-module__ioaAea__card{gap:var(--space-xl);padding:var(--space-2xl)}.IntroCard-module__ioaAea__intro{justify-content:space-between}.IntroCard-module__ioaAea__about{padding:var(--space-2xl);justify-content:flex-start;gap:0}}
.NavLink-module__y1e2za__pill{padding:var(--space-sm) var(--space-xl) var(--space-sm) var(--space-sm);border-radius:var(--radius-md);background-color:var(--color-surface-subtle);color:var(--color-text-primary);transition:background-color var(--duration-fast) var(--ease-standard);align-items:center;text-decoration:none;display:inline-flex}.NavLink-module__y1e2za__label{font-size:var(--font-size-sm);line-height:var(--line-height-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-normal)}.NavLink-module__y1e2za__pill:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}@media (hover:hover){.NavLink-module__y1e2za__pill:hover{background-color:var(--color-surface-subtle-hover)}}
