.PoopyMenu_container__rBXyi{position:relative}.PoopyMenu_display__GqojE{background:var(--color-primary);color:var(--color-light-text);padding:0 var(--space-unit);-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;white-space:nowrap;display:flex;align-items:center}.PoopyMenu_menu__gAJNk{position:absolute;top:100%;right:0;opacity:0;transform:opacity var(--transition-duration);background:var(--color-light-text);border:1px solid var(--field-border-color)}.PoopyMenu_menuOpen__L08CN{opacity:1}.PoopyMenu_item___4SQR{color:var(--color-dark-text);padding:var(--space-unit);-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;white-space:nowrap}.PoopyMenu_item___4SQR:hover{background:var(--color-primary);color:var(--color-light-text)}.typography_normalBold__FQSPA,.typography_normalMedium__MT4BY,.typography_normalSemibold__xmLaY,.typography_normal__85H5g{font-size:18px;line-height:28px}.typography_normalMedium__MT4BY{font-weight:500}.typography_normalSemibold__xmLaY{font-weight:600}.typography_normalBold__FQSPA{font-weight:700}.typography_subtle__9ULyT{color:var(--dynamic-text-subtle-color)}.typography_title__yUM0w{font-size:26px;line-height:30px}.typography_ellipsis__cszY8{overflow:hidden;text-overflow:ellipsis}@keyframes slidein-from-right{0%{transform:translateX(100%);opacity:0}}@keyframes slidein-from-top{0%{transform:translateY(-100%);opacity:0}}@keyframes slidein-from-bottom{0%{transform:translateY(100%);opacity:0}}@keyframes blurin{0%{filter:blur(10px)}}.woosh-slidein-from-right{animation:slidein-from-right 1s}@media print{.woosh-slidein-from-right{animation:none}}.woosh-slidein-from-top{animation:slidein-from-top 1s}@media print{.woosh-slidein-from-top{animation:none}}.woosh-slidein-from-bottom{animation:slidein-from-bottom 1s}@media print{.woosh-slidein-from-bottom{animation:none}}.woosh-blurin{animation:blurin 1s}@media print{.woosh-blurin{animation:none}}.PageGutter_container__seupX{max-width:1200px;margin:auto}@media(max-width:46.24em){.PageGutter_container__seupX{padding:0 calc(var(--space-unit)*2)}}@media(min-width:46.25em){.PageGutter_container__seupX{padding:0 calc(var(--space-unit)*3)}}.Timeline_container__nJKMa{position:relative;padding:calc(var(--space-unit)*4) 0;--timeline-padding:var(--space-unit);--timeline-bar-width:calc(var(--space-unit) * 2);--timeline-ball-size:calc(var(--timeline-bar-width) + 20px);--timeline-pipe-length:calc(var(--space-unit) * 4)}.Timeline_title____4TU{margin-left:calc(var(--space-unit)*2);padding-left:calc(var(--space-unit)*4)}.Timeline_bar__dQCBB{position:absolute;top:0;bottom:0;width:var(--timeline-bar-width);background:var(--field-border-color)}.Timeline_entry__7RSkz{position:relative;margin-top:calc(var(--space-unit)*2);margin-left:calc(var(--timeline-bar-width) + (var(--timeline-ball-size) - var(--timeline-bar-width))/2);padding-left:calc(var(--timeline-pipe-length) + var(--space-unit));z-index:1}.Timeline_entry__7RSkz:first-child{margin-top:0}.Timeline_entry__7RSkz:before{content:"";position:absolute;top:0;right:100%;display:block;border-radius:50%;width:var(--timeline-ball-size);height:var(--timeline-ball-size);background:var(--dynamic-primary-color);box-shadow:0 0 1px 0 var(--dynamic-text-color)}.Timeline_entry__date__9895c{padding-top:3px}.Timeline_entry__pipe__RRklM{position:absolute;border-top:4px solid var(--dynamic-primary-color);left:0;top:calc(var(--timeline-ball-size)/2);transform:translateY(-50%);width:var(--timeline-pipe-length)}.Timeline_entry__description__KMd0z{margin-top:space(50%)}.space_vertical1__06LPQ{padding-top:var(--space-unit)}.space_vertical2__kuix4{padding-top:calc(var(--space-unit)*2)}.space_vertical3__4AyXS{padding-top:calc(var(--space-unit)*3)}.space_vertical4__VquBf{padding-top:calc(var(--space-unit)*4)}.StyledMarkdown_container__Sh5JN li:before{content:"•";margin-right:1ex}.StyledMarkdown_container__Sh5JN li+li{margin-top:calc(var(--space-unit)/4)}.StyledMarkdown_container__Sh5JN p+p,.StyledMarkdown_container__Sh5JN p+ul,.StyledMarkdown_container__Sh5JN ul+p{margin-top:calc(var(--space-unit)*2)}.StyledMarkdown_container--inline__nwv_g{display:inline-block}.TextLink_container__bdxdm{color:var(--color-primary)}.TextLink_container__bdxdm:hover{filter:drop-shadow(0 0 6px var(--color-primary-pastel))}.TextLink_container__icon__XwPt6{margin-right:space(40%);line-height:1}.TextLink_container__text__yjynz{vertical-align:middle}.PlatformTag_container__SWdfD{display:inline-block;padding:4px 10px;border-radius:4px;white-space:nowrap;text-overflow:ellipsis;line-height:1}.PlatformTag_container--GitHub__rAIhe{color:#fff;background-color:#8000ff}.PlatformTag_container--StackOverflow__p_VVN{color:#fff;background-color:#f48024}@media(min-width:15em){.PageDivider_container--tiny__AjcWY{display:flex;gap:calc(var(--space-unit)*3)}.PageDivider_container--tiny__AjcWY>*{width:50%}}@media(min-width:26.25em){.PageDivider_container--small__V6Qhs{display:flex;gap:calc(var(--space-unit)*3)}.PageDivider_container--small__V6Qhs>*{width:50%}}@media(min-width:46.25em){.PageDivider_container--medium__N_hPX{display:flex;gap:calc(var(--space-unit)*3)}.PageDivider_container--medium__N_hPX>*{width:50%}}@media(min-width:61.25em){.PageDivider_container--large__gtQ5c{display:flex;gap:calc(var(--space-unit)*3)}.PageDivider_container--large__gtQ5c>*{width:50%}}@media(min-width:81.25em){.PageDivider_container--wide__0BvRQ{display:flex;gap:calc(var(--space-unit)*3)}.PageDivider_container--wide__0BvRQ>*{width:50%}}.HomeProjects_container__e9CRX{position:relative}.HomeProjects_demo1__1y56N{position:relative;overflow:hidden;border-top:1px solid var(--field-border-color)}.HomeProjects_demo1__1y56N:nth-child(2n){background:#efefef}.HomeProjects_demo1__1y56N:last-child{border-bottom:1px solid var(--field-border-color)}@media(max-width:61.24em){.HomeProjects_demo1__minheight__Q3KS9 .HomeProjects_demo1__preview__m978q{padding-top:calc(var(--space-unit)*4)}}@media(min-width:61.25em){.HomeProjects_demo1__minheight__Q3KS9{min-height:600px;display:flex;flex-direction:column;justify-content:center}.HomeProjects_demo1__minheight__Q3KS9 .HomeProjects_demo1__preview__m978q{padding:calc(var(--space-unit)*4) 0;height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center}.HomeProjects_demo1__minheight__Q3KS9 .HomeProjects_demo1__preview__m978q>*{flex:1 1}.HomeProjects_demo1__preview__m978q{position:absolute;top:0;left:50%;right:0;bottom:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:calc(var(--space-unit)*4) 0}.HomeProjects_demo1__preview__m978q>*{max-height:100%}}.RibbonTitle_container__aWljw{display:flex;align-items:center;gap:var(--space-unit)}.RibbonTitle_left__tDfLy,.RibbonTitle_right__wsphv{border-top:4px solid var(--color-primary);flex:1 1;min-width:0}.RibbonTitle_center__33Btj{flex:1 0;text-align:center}.HomePresence_otherlinks__wVtph{overflow:hidden}.HomePresence_otherlinks__item__link__jLTqo{display:block;color:var(--color-light-text);transition:transform var(--transition-duration);transform-origin:center left}@media(hover:hover){.HomePresence_otherlinks__item__link__jLTqo:hover{transform:scale(110%)}}@media(-moz-touch-enabled:0){.HomePresence_otherlinks__item__link__jLTqo:hover{transform:scale(110%)}}.HomePresence_otherlinks__item__content__tTMe0{display:flex}.HomePresence_otherlinks__item__content__image__lbXs7{margin-right:calc(var(--space-unit)*2);width:50px;height:50px;background-size:contain;background-position:50%;background-repeat:no-repeat;filter:brightness(0) invert(1);flex-shrink:0}.HomePresence_otherlinks__item__content__text__uMPXt{flex:1 1;min-width:0;overflow:hidden}.Footer_container__w17O5{background:var(--color-dark-text);color:var(--dynamic-text-color);overflow:hidden}@media(min-width:61.25em){.Footer_content__uuyMx{display:flex}.Footer_contentLinks__wArM2{flex:1 1}}@media(max-width:61.24em){.Footer_contentCopyright__ojDct{margin-top:calc(var(--space-unit)*8)}}.Termynal_container__s0eB5{display:flex;flex-direction:column}.Termynal_container__s0eB5>*{flex:1 1}@media(max-width:46.24em){.Termynal_container__s0eB5>*{font-size:10px;padding:50px 16px 16px}}.Paper_container__E0HUC{position:relative;background:#fff;overflow:hidden;box-sizing:border-box;page-break-after:always;page-break-inside:avoid}.Paper_container--size-a4__n2WAU{padding:1.5cm;width:21cm;height:29.7cm}@media print{.Paper_container--size-a4__n2WAU{padding:0;width:auto;height:auto}}.Paper_container--size-a3__AsxJm{padding:1.5cm 2cm;width:29.7;height:42cm}@media print{.Paper_container--size-a3__AsxJm{padding:0}}