@property --background-color-prop{syntax:"<color>";inherits:true;initial-value:rgb(17,17,17)}@property --foreground-color-prop{syntax:"<color>";inherits:true;initial-value:rgb(255,255,255)}.ColorModeToggleDemo_ColorModeToggleDemo__zjaFA{--duration:0s;--transition-timing:var(--duration) ease;transition:background-color var(--transition-timing),color var(--transition-timing),--background-color-prop var(--transition-timing),--foreground-color-prop var(--transition-timing);--foreground-color:rgb(255,255,255);--background-color:rgb(17,17,17);--foreground-color-prop:rgb(255,255,255);--background-color-prop:rgb(17,17,17);&.ColorModeToggleDemo_dark__DGD9v{--foreground-color:rgb(17,17,17);--background-color:rgb(255,255,255);--foreground-color-prop:rgb(17,17,17);--background-color-prop:rgb(255,255,255)}min-height:200px}.ColorModeToggleDemo_ColorModeToggleDemo__zjaFA{flex:1 1;width:100%;border-radius:var(--rounding-medium);background-color:var(--background-color);color:var(--foreground-color);padding:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;&.ColorModeToggleDemo_animated__OQBoh{--duration:0.4s}button,button:focus,button:hover{color:inherit;background-color:rgba(128,128,128,.1);border:2px solid rgba(128,128,128,.3);outline:none}.ColorModeToggleDemo_InvertedButton__FeZah,.ColorModeToggleDemo_InvertedButton__FeZah:focus,.ColorModeToggleDemo_InvertedButton__FeZah:hover{border:none;background-color:var(--foreground-color);color:var(--background-color);opacity:.5;transform:scale(1);transition:opacity .15s ease,transform .15s ease}.ColorModeToggleDemo_InvertedButton__FeZah:hover{opacity:1;transform:scale(1)}.ColorModeToggleDemo_InvertedButton__FeZah:active{transform:scale(.95)}.ColorModeToggleDemo_InvertedButton__FeZah.ColorModeToggleDemo_useAtProp__XAb7c,.ColorModeToggleDemo_InvertedButton__FeZah.ColorModeToggleDemo_useAtProp__XAb7c:focus,.ColorModeToggleDemo_InvertedButton__FeZah.ColorModeToggleDemo_useAtProp__XAb7c:hover{background-color:var(--foreground-color-prop);color:var(--background-color-prop)}}.ColorModeToggleDemo_RightSideBG__uvRLw{fill:currentColor;transform-origin:center;transform:scale(1.1)}.ColorModeToggleDemo_LeftSide__A3so4,.ColorModeToggleDemo_RightSide__DDIvd{fill:rgb(221,221,221);transform-origin:center;animation-fill-mode:forwards;animation-timing-function:ease;animation-duration:var(--duration)}.ColorModeToggleDemo_LeftSide__A3so4{animation-name:ColorModeToggleDemo_rotateLeft__2GIVi;animation-direction:normal}.ColorModeToggleDemo_RightSide__DDIvd{animation-name:ColorModeToggleDemo_rotateRight__b9vzT;animation-direction:normal}.ColorModeToggleDemo_dark__DGD9v{.ColorModeToggleDemo_LeftSide__A3so4{animation-name:ColorModeToggleDemo_rotateLeftDark__J0k1r}.ColorModeToggleDemo_RightSide__DDIvd{animation-name:ColorModeToggleDemo_rotateRightDark__uNBIa}}@keyframes ColorModeToggleDemo_rotateLeft__2GIVi{0%{transform:rotateY(180deg)}50%{transform:rotateY(180deg)}to{transform:rotateY(90deg)}}@keyframes ColorModeToggleDemo_rotateRight__b9vzT{0%{transform:rotateY(90deg)}50%{transform:rotateY(0deg)}99%{transform:rotateY(0deg)}to{transform:rotateY(90deg)}}@keyframes ColorModeToggleDemo_rotateLeftDark__J0k1r{0%{transform:rotateY(90deg)}50%{transform:rotateY(180deg)}99%{transform:rotateY(180deg)}to{transform:rotateY(90deg)}}@keyframes ColorModeToggleDemo_rotateRightDark__uNBIa{0%{transform:rotateY(0deg)}50%{transform:rotateY(0deg)}to{transform:rotateY(90deg)}}.ContrastPicker_ContrastPicker__00s_q{width:100%;border-radius:var(--rounding-medium);background-color:var(--background-color);color:var(--foreground-color);transition:background-color var(--transition-timing),color var(--transition-timing);padding:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem}.ContrastPicker_colorBoxes__HZN04{display:flex;gap:1rem}.ContrastPicker_box__8cPOG{width:140px;height:140px;border-radius:var(--rounding-medium);display:flex;align-items:center;justify-content:center;&>div{width:50px;height:50px;border-radius:var(--rounding-medium)}}.ContrastPicker_colorPicker__ztpe7{display:flex;gap:.5rem;align-items:center;justify-content:center}.Backlink_link__12wyK{position:absolute;right:calc(100% + 2rem);top:3.2rem;padding-right:.5rem;white-space:nowrap;text-decoration:none;opacity:.3;transition:opacity .15s}.Backlink_link__12wyK:hover{opacity:.8;text-decoration:none}@media (max-width:72rem){.Backlink_link__12wyK{display:none}}.CodeDemo_codeDemo__YrUo7 .code-block-wrapper{height:100%}.CodeDemo_codeDemo__YrUo7 .code-block-wrapper>pre[data-theme]{height:100%;box-sizing:border-box;border-top-right-radius:0;border-bottom-right-radius:0}@media (max-width:54rem){.CodeDemo_codeDemo__YrUo7 .code-block-wrapper>pre[data-theme]{border-radius:var(--rounding-medium);border-bottom-right-radius:0;border-bottom-left-radius:0}}.PostList_list__AKwQZ{list-style:none;padding:0;margin-top:0}.PostList_item__Ro8xr{display:flex;align-items:baseline;gap:.75em}.PostList_date__oIHkF{font-size:.85em;white-space:nowrap;min-width:5.5em}.MainLogo_MainLogo__shECb{position:relative;top:0;left:0;transition:transform .5s var(--ease-out-expo);transform:translate(0) scale(1);z-index:100;opacity:1;width:1.8rem;padding:.4em;background-color:var(--color-bg);border-radius:var(--rounding-full);& svg{height:80%;margin:auto}& path{fill:currentColor}}.MainLogo_InlineLogoPlaceholder__tBBhD{margin-top:1rem;display:inline-block;width:1.5rem;height:3rem;@media screen and (max-width:40rem){margin-top:0}}.page_heroSection___mcj9{grid-column:full;position:relative;display:grid;grid-template-columns:subgrid}.page_hero__SKW6o{grid-column:narrow/narrow;position:relative;z-index:1;-webkit-margin-start:-2em;margin-inline-start:-2em;h2{margin-top:0;font-weight:400;text-wrap:balance;font-size:2.2rem;line-height:1.4}@media (max-width:54rem){-webkit-margin-start:0;margin-inline-start:0;h2{font-size:2rem}}}.page_introHeyWrapper__OGRjG{overflow:hidden}.page_introHey__SHcD7{cursor:help;animation-delay:.2s!important;font-weight:500;.page_name__eOmhd{position:relative}.page_jon__98RhH,.page_yonatan__fWUEu{transition-property:transform;transition-duration:.5s;transition-timing-function:var(--ease-out-expo);position:absolute;left:.3rem}.page_jon__98RhH{transform:rotateX(0)}.page_yonatan__fWUEu{transform:translateY(100%)}&:hover{.page_jon__98RhH{transform:translateY(-100%)}.page_yonatan__fWUEu{transform:rotateX(0)}}}.page_fadeIn__wvzG6{opacity:0;animation:page_fadeIn__wvzG6 .3s ease-in .35s forwards}.page_fadeInDelay__OKN_y{animation-delay:.5s}@keyframes page_fadeIn__wvzG6{0%{opacity:0}to{opacity:1}}.page_sectionTitle__hzsAh{font-family:var(--font-body);font-weight:500;font-size:1rem;font-style:italic;margin-bottom:.8rem}.page_columns__9s9qU{display:flex;flex-direction:row;gap:2rem}.page_columns__9s9qU>div{flex:1 1}.page_smallColumn__uw3SV{max-width:10rem}@media (max-width:36rem){.page_columns__9s9qU{flex-direction:column}.page_smallColumn__uw3SV{max-width:100%}}.ProjectList_ProjectList__Vxe3U{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;.ProjectList_projectLink__ZgTac{width:100%;align-items:flex-start;display:flex;flex-direction:row;text-decoration:none;gap:.4rem;padding:.5rem 0;& svg{width:30px;height:30px;flex-shrink:0}strong{text-decoration:underline;-webkit-text-decoration-color:rgba(var(--color-text-rgb),.4);text-decoration-color:rgba(var(--color-text-rgb),.4)}&:hover strong{text-decoration:underline}}}.Button_button__exqP_{--padding-block:0.3em;--padding-inline:0.5em;padding-block:var(--padding-block);padding-inline:var(--padding-inline);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:flex-start;gap:.4em;border-radius:var(--rounding-small);&:focus{outline:2px solid transparent}&:hover{text-decoration:none}&.Button_round__JrlsK{border-radius:999px;padding-inline:.8em}}.Button_opaque__qSkRn{background-color:rgba(var(--color-text-rgb),.1);&:hover{background-color:rgba(var(--color-text-rgb),.15)!important;text-decoration:none}&:active{background-color:rgba(var(--color-text-rgb),.05)!important}}.Button_primary__DEC_1{color:var(--color-bg);background-color:var(--color-text);&:hover{background-color:rgba(var(--color-text-rgb),.8)!important}&:active{background-color:rgba(var(--color-text-rgb),.7)!important}}.not-found_container__LRagC{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:60vh;gap:.5rem}.not-found_heading__j7TM1{font-size:4rem;font-weight:700;letter-spacing:-.02em;color:var(--color-secondary)}.not-found_message__30RU_{margin-bottom:1.5rem}.ColorModeToggle_ColorModeToggleContainer__ErzrY{outline:none!important;--rounding-medium:500px;--duration:0s}.ColorModeToggle_loaded__Z5AoP{--duration:0.4s}.ColorModeToggle_ColorModeToggle__eqB2u{color:var(--color-text)}.ColorModeToggle_ColorModeToggle__eqB2u circle{stroke:var(--color-text);transition:stroke calc(var(--duration)/2) var(--default-timing)}.ColorModeToggle_RightSideBG__OW1tW{fill:var(--color-text);transition:fill calc(var(--duration)/2) var(--default-timing);transform-origin:center;transform:scale(1.1)}.ColorModeToggle_LeftSide__SsNvp,.ColorModeToggle_RightSide__otpcy{fill:#e8e3e1;transform-origin:center;animation-fill-mode:forwards;animation-timing-function:ease-out;animation-duration:var(--duration)}.ColorModeToggle_LeftSide__SsNvp{animation-name:ColorModeToggle_rotateLeft__J7_2W;animation-direction:normal}.ColorModeToggle_RightSide__otpcy{animation-name:ColorModeToggle_rotateRight__jKQnT;animation-direction:normal}.ColorModeToggle_dark__xum7c .ColorModeToggle_LeftSide__SsNvp{animation-name:ColorModeToggle_rotateLeftDark__G8T1B}.ColorModeToggle_dark__xum7c .ColorModeToggle_RightSide__otpcy{animation-name:ColorModeToggle_rotateRightDark__NaCSZ}@keyframes ColorModeToggle_rotateLeftDark__G8T1B{0%{transform:rotateY(180deg)}50%{transform:rotateY(180deg)}to{transform:rotateY(90deg)}}@keyframes ColorModeToggle_rotateLeft__J7_2W{0%{transform:rotateY(90deg)}50%{transform:rotateY(180deg)}99%{transform:rotateY(180deg)}to{transform:rotateY(90deg)}}@keyframes ColorModeToggle_rotateRightDark__NaCSZ{0%{transform:rotateY(90deg)}80%{transform:rotateY(0deg)}99%{transform:rotateY(0deg)}to{transform:rotateY(90deg)}}@keyframes ColorModeToggle_rotateRight__jKQnT{0%{transform:rotateY(0deg)}50%{transform:rotateY(0deg)}to{transform:rotateY(90deg)}}.Nav_Nav__Zae_c{position:fixed;top:0;left:0;width:100%;z-index:1000;box-sizing:border-box;padding:.5rem;pointer-events:none;font-size:.9rem;font-weight:500;@media screen and (min-width:40rem){padding-left:1rem;padding-bottom:1rem;padding-right:1rem;padding-top:1rem}&>div{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;margin:0 auto;& *{pointer-events:all}}.Nav_Wrapper__CXixY{background-color:var(--color-bg);border-radius:var(--rounding-full);padding:.2rem;display:flex;flex-direction:row;align-items:center;.Nav_ActiveLink__RmGRz{opacity:.6;&:hover{background-color:transparent}}}}.ContactButton_contactButtonWrapper__fiCzy{position:relative;gap:.5rem;margin-top:2rem;opacity:0;animation:ContactButton_fadeIn__I_gRI .3s ease-in .35s forwards;min-height:2.2em;width:15em}.ContactButton_contactButtonWrapper__fiCzy a:hover,.ContactButton_contactButtonWrapper__fiCzy button:hover{background-color:var(--color-text)!important}.ContactButton_contactButtonWrapper__fiCzy button:active,.ContactButton_contactButtonWrapper__fiCzy button:focus{outline:none!important}.ContactButton_hidden__cXCw_{position:absolute;width:0;height:0;overflow:hidden}.ContactButton_emailMeButton__s_YXL{position:absolute;top:0;left:0;z-index:1}.ContactButton_copyAddressButton__MbmGT{position:absolute;top:0;left:0;z-index:0}.ContactButton_slideContainer__9QVu2{position:relative;display:inline-block;overflow:hidden}.ContactButton_slideTop__2FdgI{display:inline-block;transition:transform .3s var(--ease-out-expo)}.ContactButton_slideBottom__qIvrL{position:absolute;top:0;left:0;transform:translateY(100%);transition:transform .3s var(--ease-out-expo)}.ContactButton_slid__SbNxc .ContactButton_slideTop__2FdgI{transform:translateY(-100%)}.ContactButton_slid__SbNxc .ContactButton_slideBottom__qIvrL{transform:translateY(0)}.ContactButton_textContainer__CCUez{white-space:nowrap;padding-right:0;transition:padding-right .3s var(--ease-out-expo)}.ContactButton_copyAddressText__gvpEk{white-space:nowrap}.ContactButton_iconContainer__uBQel{height:1em;width:1em;vertical-align:middle;margin-bottom:.1em;margin-right:.2em}.ContactButton_iconContainer__uBQel svg{display:block;height:1em;width:1em}.ContactButton_contactButtonWrapper__fiCzy.ContactButton_expanded__cNkKw .ContactButton_textContainer__CCUez,.ContactButton_contactButtonWrapper__fiCzy:hover .ContactButton_textContainer__CCUez{padding-right:3.5em}.ContactButton_contactButtonWrapper__fiCzy.ContactButton_expanded__cNkKw .ContactButton_textContainer__CCUez .ContactButton_slideTop__2FdgI,.ContactButton_contactButtonWrapper__fiCzy:hover .ContactButton_textContainer__CCUez .ContactButton_slideTop__2FdgI{transform:translateY(-100%)}.ContactButton_contactButtonWrapper__fiCzy.ContactButton_expanded__cNkKw .ContactButton_textContainer__CCUez .ContactButton_slideBottom__qIvrL,.ContactButton_contactButtonWrapper__fiCzy:hover .ContactButton_textContainer__CCUez .ContactButton_slideBottom__qIvrL{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.ContactButton_slideBottom__qIvrL,.ContactButton_slideTop__2FdgI,.ContactButton_textContainer__CCUez{transition:none}}@media (max-width:54rem){.ContactButton_contactButtonWrapper__fiCzy{margin-block:1.5rem}}@keyframes ContactButton_fadeIn__I_gRI{0%{opacity:0}to{opacity:1}}.ContactButton_copyAddressButton__MbmGT:hover .ContactButton_contactButtonText__xPM8o,.ContactButton_emailMeButton__s_YXL:hover .ContactButton_slideBottom__qIvrL{text-decoration:underline}.EmailForm_EmailForm__NVt9S form{display:flex;align-items:center;gap:.5rem}.EmailForm_EmailForm__NVt9S form input{width:100%}.EmailForm_EmailForm__NVt9S form button{flex-shrink:0}