.e3HPgq_notFoundPage{flex-direction:column;justify-content:center;align-items:center;display:flex}.e3HPgq_notFoundPage>h1{color:var(--green);font-family:var(--font-mono-main);font-size:clamp(6.25rem,25vw,12.5rem);line-height:1.1}.e3HPgq_notFoundPage>h2{color:#ccd6f6;margin-bottom:10px;font-size:clamp(1.875rem,5vw,3.125rem);font-weight:400;line-height:1.1}.e3HPgq_notFoundPage .e3HPgq_homeButton{color:var(--green);border:1px solid var(--green);font-size:.875rem;font-family:var(--font-mono-main);transition:color .25s var(--ease-main),box-shadow .25s var(--ease-main),background .25s var(--ease-main);background-color:#0000;border-radius:4px;margin-top:40px;padding:16px 28px;line-height:1;text-decoration:none;display:inline-block;position:relative}.e3HPgq_notFoundPage .e3HPgq_homeButton:hover{color:var(--website-bg);background:var(--green);box-shadow:0 5px 15px #64ffda33}.e3HPgq_notFoundPage .e3HPgq_homeButton:before{content:"";opacity:0;background:linear-gradient(90deg,#ffffff1a,#ffffff4d,#ffffff1a);transition:opacity .5s ease-out,scale .5s ease-out,translate .5s ease-out;position:absolute;inset:0}.e3HPgq_notFoundPage .e3HPgq_homeButton:hover:before{opacity:1;translate:50%;scale:0 1}
.aoqKTa_button{-webkit-tap-highlight-color:#0000;color:var(--green);font-size:.875rem;font-family:var(--font-mono-main);cursor:pointer;-webkit-user-select:none;user-select:none;border:solid 1px var(--green);border-image:initial;width:fit-content;transition:color .25s var(--ease-main),box-shadow .25s var(--ease-main),background .25s var(--ease-main),outline-color .25s var(--ease-main);border-radius:4px;margin:40px auto 0;padding:18px 26px;line-height:1;display:inline-block;position:relative;overflow:hidden}.aoqKTa_button:hover{color:var(--website-bg);background:var(--green);box-shadow:0 5px 15px #64ffda33}.aoqKTa_button:focus-visible{outline:solid 2px var(--green);outline-offset:-1px}@media (max-width:376px){.aoqKTa_button{font-size:.8rem}}.aoqKTa_button:before{content:"";opacity:0;background:linear-gradient(90deg,#ffffff1a,#ffffff4d,#ffffff1a);transition:opacity .5s ease-out,scale .5s ease-out,translate .5s ease-out;position:absolute;inset:0}.aoqKTa_button:hover:before{opacity:1;translate:50%;scale:0 1}@media (prefers-reduced-motion:reduce){.aoqKTa_button:before{transition:none}}
._9p2_CW_contactSection{text-align:center;max-width:540px;margin:0 auto 90px}@media (max-width:992px){._9p2_CW_contactSection{max-width:420px}}._9p2_CW_contactSection>h2{color:var(--green);font-family:var(--font-mono-main);margin-bottom:20px;font-size:1rem;font-weight:400}._9p2_CW_contactSection>h3{color:#ccd6f6;margin-bottom:10px;font-size:clamp(2.5rem,5vw,3.75rem);font-weight:600;line-height:1.1}._9p2_CW_contactSection ._9p2_CW_description{text-align:center;font-size:1.25rem;line-height:1.3}@media (max-width:376px){._9p2_CW_contactSection ._9p2_CW_description{font-size:1.1rem}}
.jZWa9G_section{color:#e6f1ff;background-color:#0a192f;padding:80px 0;font-family:Calibre,Inter,San Francisco,SF Pro Text,-apple-system,system-ui,sans-serif}.jZWa9G_section .jZWa9G_wrapper{align-items:flex-start;width:100%;max-width:980px;min-height:500px;display:flex}@media (max-width:992px){.jZWa9G_section .jZWa9G_wrapper{flex-direction:column;max-width:100%;min-height:500px}}@media (max-width:768px){.jZWa9G_section .jZWa9G_wrapper{min-height:600px}}
.kqXxgq_projectStats{pointer-events:all;color:#a8b2d1;align-items:center;margin-top:1px;display:flex}.kqXxgq_projectStats .kqXxgq_term{color:var(--main-text-color);transition:color .3s}.kqXxgq_projectStats .kqXxgq_term>svg{width:16px;height:16px}.kqXxgq_projectStats .kqXxgq_term>svg:has([href*=commit]){width:22px;position:relative;bottom:2px}.kqXxgq_projectStats .kqXxgq_dot{-webkit-user-select:none;user-select:none;margin-inline:12px;position:relative;bottom:8px;scale:2}@media (max-width:768px){.kqXxgq_projectStats *{transition:color .3s .1s}}.kqXxgq_projectStats .kqXxgq_value{margin-inline-start:5px}
.F2Hlna_panel{outline-offset:6px;opacity:0;pointer-events:none;width:100%;transition:opacity 50ms var(--ease-main);outline:2px dashed #0000;margin-top:5px;position:absolute}.F2Hlna_panel.F2Hlna_show{transition:opacity .15s 80ms var(--ease-main);pointer-events:all;opacity:1}.F2Hlna_panel.F2Hlna_show:focus-visible{outline-color:var(--green)}.F2Hlna_panel.F2Hlna_hidden{-webkit-user-select:none;user-select:none;pointer-events:none;z-index:-1}.F2Hlna_panel .F2Hlna_header{align-items:center;gap:10px;display:flex}@media (max-width:768px){.F2Hlna_panel .F2Hlna_header{flex-direction:column;align-items:flex-start;gap:0}}.F2Hlna_panel .F2Hlna_title{color:#ccd6f6;text-transform:capitalize;min-height:24px;transition:color .2s var(--ease-main);outline:none;padding-block:2px;font-size:1.375rem;font-weight:500;line-height:1.3}.F2Hlna_panel .F2Hlna_title:hover,.F2Hlna_panel .F2Hlna_title:focus-visible{color:var(--green)}.F2Hlna_panel .F2Hlna_header [data-type=project-stats]{margin-top:4px}.F2Hlna_panel .F2Hlna_description{font-family:var(--font-sans);color:#a8b2d1;margin-block:2px 25px;font-size:1.125rem;line-height:1.3;position:relative}@media (max-width:992px){.F2Hlna_panel .F2Hlna_description{font-size:1.15rem}}
._1eSsZa_item{justify-content:space-between;align-items:center;gap:6px;display:flex;position:relative}._1eSsZa_item ._1eSsZa_listMarker{color:var(--green);pointer-events:none;position:absolute;top:50%;left:0;translate:0 -50%}._1eSsZa_item>a{padding-left:30px;color:#a1aac6;transition:color .1s var(--ease-main);outline:none;padding-block:5px;font-size:1.125rem;display:inline-block;position:relative}._1eSsZa_item>a:hover,._1eSsZa_item>a:focus-visible{color:var(--green);text-decoration:underline}._1eSsZa_item ._1eSsZa_commentCount{color:#a1aac6;align-items:center;gap:4px;font-size:.9rem;display:flex}._1eSsZa_item ._1eSsZa_commentCount>svg{fill:#a1aac6;width:16px;height:16px}@media (max-width:992px){._1eSsZa_item>a{padding-left:20px;font-size:1.15rem}}
.qOktVG_pullRequests{--tab-height:32.4px;max-height:calc(var(--tab-height)*10);scrollbar-width:thin;outline:2px dashed #0000;padding-right:10px;font-size:1.125rem;overflow-y:auto}.qOktVG_pullRequests:focus-visible{outline-color:var(--green)}.qOktVG_pullRequests:has(>:nth-child(11)){overscroll-behavior-y:contain}
.tOmkja_panels{font-family:var(--font-calibre-main);width:100%;min-height:340px;margin-left:20px;position:relative}@media (max-width:992px){.tOmkja_panels{margin-top:20px;margin-left:0}.tOmkja_panels>*{width:100%}}
.CBBV0W_tabButton{text-decoration-skip-ink:auto;width:100%;height:var(--tab-height);color:#a1aac6;font-family:var(--font-mono-main);text-align:left;white-space:nowrap;transition:background-color .25s var(--ease-main),color .25s var(--ease-main);background-color:#0000;border:none;border-left:2px solid #233554;outline:none;align-items:center;padding:0 20px 2px;font-size:.81rem;text-decoration:none;display:flex;position:relative}.CBBV0W_tabButton:hover,.CBBV0W_tabButton:focus-visible{color:var(--green);background-color:#112240}.CBBV0W_tabButton.CBBV0W_active{color:var(--green)}@media (max-width:992px){.CBBV0W_tabButton{border-bottom:2px solid #233554;border-left:none;justify-content:center}}
.ffN2jW_tabList{--tab-height:42px;z-index:3;min-width:max-content;max-height:calc(var(--tab-height)*12);scrollbar-width:none;position:relative;overflow-y:auto}@media (max-width:992px){.ffN2jW_tabList{width:100%;min-width:100%;display:flex;overflow-x:auto}}.ffN2jW_tabList:has(>:nth-child(13)){overscroll-behavior-y:contain}
.SZAt7G_highlight{z-index:10;width:2px;height:var(--tab-height);background:var(--green);transform:translate(0 calc(2 * var(--tab-height)));transition:transform .25s .1s var(--ease-main);border-radius:4px;position:absolute;top:0;left:0}@media (max-width:992px){.SZAt7G_highlight{width:100px;height:2px;top:unset;transform-origin:0;will-change:transform;transition:transform .25s .1s var(--ease-main);bottom:0;left:0}}
.rclbGW_buttons{-webkit-user-select:none;user-select:none;align-items:center;gap:24px;display:flex}@media (max-width:520px){.rclbGW_buttons{flex-direction:column;gap:12px}}.rclbGW_buttons a{-webkit-tap-highlight-color:#0000;text-transform:capitalize;font-family:var(--font-mono-main);letter-spacing:.5px;border-radius:4px;padding:12px 28px;font-size:.9rem;font-weight:400;transition:color .3s,background-color .3s,border-color .3s,box-shadow .3s,opacity .3s;display:inline-block;position:relative;overflow:hidden}@media (max-width:520px){.rclbGW_buttons a{text-align:center;width:100%}}.rclbGW_buttons .rclbGW_viewWorkBtn{background:linear-gradient(135deg, var(--green), var(--green));color:var(--website-bg);letter-spacing:1px;transition:outline .1s var(--ease-main),box-shadow 50ms .1s var(--ease-main);border:none;padding:13px 32px;font-weight:600;overflow:hidden;box-shadow:0 4px 15px #64ffda33}.rclbGW_buttons .rclbGW_viewWorkBtn:hover,.rclbGW_buttons .rclbGW_viewWorkBtn:focus-visible{background:linear-gradient(135deg, var(--green), var(--green));box-shadow:0 5px 20px #64ffda4d}.rclbGW_buttons .rclbGW_viewWorkBtn:hover:before,.rclbGW_buttons .rclbGW_viewWorkBtn:focus-visible:before{left:100%}.rclbGW_buttons .rclbGW_viewWorkBtn:focus-visible{outline-offset:-1px;outline:2px solid #fff}.rclbGW_buttons .rclbGW_viewWorkBtn:before{content:"";background:linear-gradient(90deg,#ffffff1a,#ffffff4d,#ffffff1a);width:100%;height:100%;transition:left .5s ease-out;position:absolute;top:0;left:-100%}@media (prefers-reduced-motion:reduce){.rclbGW_buttons .rclbGW_viewWorkBtn:before{transition:none}}.rclbGW_buttons .rclbGW_getInTouchBtn{color:var(--main-text-color);border:1px solid var(--main-text-color);transition:outline .1s var(--ease-main),color .3s ease,border-color .3s ease,box-shadow .3s ease;background:0 0;box-shadow:0 4px 10px #8892b01a}.rclbGW_buttons .rclbGW_getInTouchBtn:hover,.rclbGW_buttons .rclbGW_getInTouchBtn:focus-visible{color:#ccd6f6;border-color:#ccd6f6;box-shadow:0 6px 20px #87d3c226}.rclbGW_buttons .rclbGW_getInTouchBtn:hover:before,.rclbGW_buttons .rclbGW_getInTouchBtn:focus-visible:before{opacity:.8}.rclbGW_buttons .rclbGW_getInTouchBtn:focus-visible{outline-offset:-1px;outline:2px solid #fff}.rclbGW_buttons .rclbGW_getInTouchBtn:before{content:"";opacity:0;background:linear-gradient(135deg,#0000,#64ffda0d,#0000);transition:opacity .3s;position:absolute;inset:0}
.V7llHa_heroSection{background:linear-gradient(-170deg, #1122406e 5%, var(--website-bg) 95%);border:2px solid #112240;border-bottom:0;justify-content:center;align-items:center;min-height:100dvh;margin-block:101px 100px;padding-top:0;display:flex;overflow:hidden}@media (max-width:1200px){.V7llHa_heroSection{min-height:auto;margin-top:100px;padding:100px 40px}}@media (max-width:768px){.V7llHa_heroSection{padding:90px 30px}}@media (max-width:520px){.V7llHa_heroSection{padding:70px 20px}}@media (max-width:376px){.V7llHa_heroSection{background:0 0;border:none;padding:0}}@media (prefers-reduced-transparency:reduce){.V7llHa_heroSection{background:0 0;border:none}}.V7llHa_heroSection .V7llHa_content{width:100%;max-width:800px;padding:0 20px}@media (max-width:1200px){.V7llHa_heroSection .V7llHa_content{padding:0}}@media (max-width:376px){.V7llHa_heroSection .V7llHa_content{padding-top:50px}}.V7llHa_content .V7llHa_preHeading{width:fit-content;color:var(--green);font-family:var(--font-mono-main);margin-bottom:34px;margin-left:3px;font-size:1rem;font-weight:400}@media (max-width:376px){.V7llHa_content .V7llHa_preHeading{margin-bottom:20px}}.V7llHa_content .V7llHa_myName{color:#ccd6f6;width:max-content;font-size:clamp(2.5rem,8vw,5rem);font-weight:700;line-height:.9}@media (max-width:1200px){.V7llHa_content .V7llHa_myName{font-size:clamp(2.5rem,7vw,5rem)}}@media (max-width:768px){.V7llHa_content .V7llHa_myName{font-size:clamp(2.4rem,9vw,5rem)}}.V7llHa_content .V7llHa_whatIDo{width:80%;color:var(--main-text-color);margin-bottom:16px;font-size:clamp(2rem,8vw,5rem);font-weight:700;line-height:1}@media (max-width:1200px){.V7llHa_content .V7llHa_whatIDo{width:86%;font-size:clamp(2rem,7vw,5rem)}}@media (max-width:768px){.V7llHa_content .V7llHa_whatIDo{width:100%;font-size:clamp(2.25rem,9vw,5rem)}}.V7llHa_content .V7llHa_description{letter-spacing:.5px;color:var(--main-text-color);margin-bottom:40px;font-size:1.25rem;line-height:1.3}@media (max-width:992px){.V7llHa_content .V7llHa_description{max-width:560px}}@media (max-width:768px){.V7llHa_content .V7llHa_description{max-width:520px;font-size:1.1rem}}
.dhWFOG_otherProjects{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:15px;width:100%;margin-top:50px;list-style:none;display:grid;position:relative}@media (max-width:900px){.dhWFOG_otherProjects{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}}@media (max-width:376px){.dhWFOG_otherProjects{grid-template-columns:1fr}}
.BLcs4G_projectCard{height:100%;transition:translate .25s var(--ease-main);background-color:#112240;border-radius:4px;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:32px 28px;display:flex;position:relative;box-shadow:0 10px 30px -15px #020c1bb3}.BLcs4G_projectCard:hover{translate:0 -5px}@media (max-width:376px){.BLcs4G_projectCard{padding:25px 20px}}@media (prefers-reduced-motion:reduce){.BLcs4G_projectCard:hover{translate:0}}
.F3-tYW_projectFooter .F3-tYW_techList{flex-wrap:wrap;flex-grow:1;align-items:flex-end;gap:15px;margin-top:20px;display:flex}.F3-tYW_projectFooter .F3-tYW_techList li{font-family:var(--font-mono-main);word-spacing:-3px;font-size:.85rem;line-height:1}
.m98MqG_projectHeader{width:100%}.m98MqG_projectHeader .m98MqG_projectTop{justify-content:space-between;align-items:center;margin-bottom:35px;display:flex}.m98MqG_projectHeader .m98MqG_projectTop>svg{color:var(--green);width:40px;height:40px}.m98MqG_projectHeader .m98MqG_description{color:#a8b2d1;font-size:1.0625rem;line-height:1.3}.m98MqG_projectHeader .m98MqG_description strong{text-wrap:nowrap}
.odLT7a_link{-webkit-tap-highlight-color:#0000;transition:outline-color .25s var(--ease-main);flex-shrink:0;justify-content:center;align-items:center;display:flex}.odLT7a_link:focus-visible{outline:2px solid var(--green);outline-offset:5px}.odLT7a_link>svg{width:20px;height:20px;transition:color .25s var(--ease-main)}.odLT7a_link:where(:hover,:focus-visible)>svg{color:var(--green)}@media (max-width:376px){.odLT7a_link>svg{width:18px;height:18px}}
.vdOH6W_projectLinks{align-items:center;gap:10px;display:flex}.vdOH6W_projectLinks>a{padding:1px 2px}
.pqZLea_title{color:#ccd6f6;margin-bottom:10px;font-size:1.375rem;line-height:1.1}.pqZLea_title>a{transition:color .25s var(--ease-main)}.pqZLea_title>a:hover{color:var(--green)}.pqZLea_title>a:focus-visible{text-decoration-skip-ink:none;color:var(--green);outline:none;text-decoration:underline}.pqZLea_title>a .pqZLea_status{all:initial;font-family:var(--font-mono-main);color:var(--green);border:1px solid var(--green);pointer-events:none;border-radius:10px;height:fit-content;margin-left:10px;padding:4px 6px;font-size:.6rem;font-weight:400;display:inline-block;position:relative;bottom:4px}@media (max-width:376px){.pqZLea_title>a .pqZLea_status{position:absolute;top:34px;right:90px}}
.LLAPvG_otherProjectsHeader{flex-direction:column;align-items:center;display:flex}.LLAPvG_otherProjectsHeader .LLAPvG_title{color:#ccd6f6;margin-bottom:10px;font-size:clamp(1.5rem,5vw,2rem);font-weight:600;line-height:1.1}
.BAEQQW_projectsSection{flex-direction:column;align-items:center;display:flex}
.AiU8la_link{color:var(--green);display:inline-block;position:relative}.AiU8la_link:focus-visible{outline:none}.AiU8la_link:after{content:"";background-color:var(--green);opacity:.5;width:0;height:1px;transition:width .25s var(--ease-main),opacity .25s .15s var(--ease-main);display:block;position:relative;bottom:5px}.AiU8la_link:where(:hover,:focus-visible):after{opacity:1;width:100%}@media (prefers-reduced-motion:reduce){.AiU8la_link:after{width:100%;transition:none}}@media (prefers-reduced-transparency:reduce){.AiU8la_link:after{height:2px;bottom:4px}}
.wcgw9G_footer{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:auto;min-height:70px;padding:15px;display:flex}.wcgw9G_copyRights{color:#a8b2d1;font-family:var(--font-mono-main);text-align:center;width:100%;max-width:280px;padding:10px 0;font-size:.85rem;line-height:1.7}
.G_4YBa_socialMedia{color:#a8b2d1;gap:10px;display:none}@media (max-width:768px){.G_4YBa_socialMedia{align-items:center;display:flex}}.G_4YBa_socialMedia a{-webkit-tap-highlight-color:#0000;outline-offset:-5px;transition:translate .25s var(--ease-main),color .25s var(--ease-main),outline .1s var(--ease-main),outline-offset .1s var(--ease-main);padding:10px;display:inline-block}.G_4YBa_socialMedia a:hover{translate:0 -3px}.G_4YBa_socialMedia a:focus-visible{color:var(--green);outline:solid 2px var(--green);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.G_4YBa_socialMedia a:hover{translate:0}}.G_4YBa_socialMedia a:hover svg{color:var(--green)}.G_4YBa_socialMedia a:hover svg[data-type=twitter]{fill:var(--green)}.G_4YBa_socialMedia a svg{width:20px;height:20px;transition:fill .25s var(--ease-main),color .25s var(--ease-main)}.G_4YBa_socialMedia a svg[data-type=twitter]{fill:#a8b2d1}.G_4YBa_socialMedia a:focus-visible svg[data-type=twitter]{fill:var(--green)}
.XZkPGG_mobileNavBtn{-webkit-tap-highlight-color:#0000;z-index:12;cursor:pointer;outline-offset:0;width:36px;height:24px;transition:outline .1s var(--ease-main),outline-offset .1s var(--ease-main);background-color:#0000;border:none;outline:0 dashed #ccd6f6;display:none;position:relative}.XZkPGG_mobileNavBtn:focus-visible{outline-offset:4px;outline:2px dashed #ccd6f6}.XZkPGG_mobileNavBtn.XZkPGG_active:focus-visible{outline:dashed 2px var(--green)}@media (max-width:768px){.XZkPGG_mobileNavBtn{display:block}}.XZkPGG_mobileNavBtn .XZkPGG_icon{width:100%;height:2px;transition:background-color .25s var(--ease-main);background-color:#ccd6f6;border-radius:6px;position:absolute;bottom:0;right:0}.XZkPGG_mobileNavBtn:where(:hover,.XZkPGG_active) .XZkPGG_icon{background-color:var(--green)}.XZkPGG_mobileNavBtn .XZkPGG_icon:before,.XZkPGG_mobileNavBtn .XZkPGG_icon:after{content:"";height:inherit;border-radius:inherit;background-color:inherit;position:absolute;right:0}.XZkPGG_mobileNavBtn .XZkPGG_icon:before{width:75%;bottom:11px}.XZkPGG_mobileNavBtn .XZkPGG_icon:after{width:48%;bottom:23px}
.wS1-Va_header{z-index:11;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;height:100px;transition:translate .25s var(--ease-main),box-shadow .25s var(--ease-main),height .25s var(--ease-main);background-color:#0a192fd9;align-items:center;padding-inline:50px;display:flex;position:fixed;top:0;left:0}.wS1-Va_header.wS1-Va_active{background-color:#0a192fd9;height:70px;translate:0;box-shadow:0 10px 30px -10px #020c1bb3}.wS1-Va_header.wS1-Va_hidden{height:70px;translate:0 -70px;box-shadow:0 10px 30px -10px #020c1bb3}@media (max-width:768px){.wS1-Va_header{padding:0 25px}}@media (max-width:376px){.wS1-Va_header{padding:0 15px}}@media (prefers-reduced-transparency:reduce){.wS1-Va_header{background-color:#0a192f!important}}.wS1-Va_header .wS1-Va_navLinks{color:#ccd6f6;width:100%;font-family:var(--font-mono-main);z-index:12;justify-content:space-between;align-items:center;display:flex;position:relative}
.isDd-q_navLinks{-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.isDd-q_navLinks li{counter-increment:item 1;margin-inline:5px}.isDd-q_navLinks li a{text-decoration-skip-ink:auto;color:inherit;transition:color .25s var(--ease-main),outline .1s var(--ease-main);padding:10px;font-size:.8rem;text-decoration:none;display:inline-block;position:relative}.isDd-q_navLinks li a:hover{color:var(--green)}.isDd-q_navLinks li a:focus-visible{color:var(--green);outline:solid 2px var(--green)}.isDd-q_navLinks li a:before{content:"0" counter(item) ".";color:var(--green);text-align:right;margin-right:5px;font-size:.75rem}@media (max-width:992px){.isDd-q_navLinks li{margin-inline:2px}.isDd-q_navLinks li a{padding:6px}.isDd-q_navLinks li a:before{display:none}}
.EnoAFq_buttons{align-items:center;display:flex}@media (max-width:768px){.EnoAFq_buttons{display:none}}.EnoAFq_buttons :where(.EnoAFq_resume,.EnoAFq_installPWA){color:#5ff1cf;font-family:var(--font-mono-main);-webkit-user-select:none;user-select:none;transition:color .2s var(--ease-main),background-color .2s var(--ease-main),border-color .2s var(--ease-main),box-shadow .2s var(--ease-main),outline .1s var(--ease-main);background-color:#0000;border:1px solid #5ff1cf;border-radius:4px;margin-left:15px;padding:12px 16px;font-size:.8rem;line-height:1;text-decoration:none}.EnoAFq_buttons :where(.EnoAFq_resume,.EnoAFq_installPWA):hover{background-color:var(--green);color:var(--website-bg);box-shadow:0 4px 6px #64ffda33}.EnoAFq_buttons :where(.EnoAFq_resume,.EnoAFq_installPWA):focus-visible{outline:solid 2px var(--green);outline-offset:-1px}@media (max-width:992px){.EnoAFq_installPWA{margin-left:8px}}
.tS9DbG_featuredProject{grid-template-columns:repeat(12,1fr);align-items:center;gap:10px;display:grid;position:relative}@media (max-width:992px){.tS9DbG_featuredProject{flex-direction:column;align-items:flex-start;display:flex}}@media (max-width:768px){.tS9DbG_featuredProject{direction:ltr;grid-template-columns:repeat(12,1fr);display:grid}.tS9DbG_featuredProject:hover .tS9DbG_description,.tS9DbG_featuredProject:hover .tS9DbG_content [data-type=tech-list] li{color:#fff}.tS9DbG_featuredProject:hover .tS9DbG_content [data-type=project-links] a{color:#fff;border-color:#808690}}@media (max-width:768px) and (prefers-reduced-transparency:reduce){.tS9DbG_featuredProject:hover .tS9DbG_content [data-type=project-links] a{border-color:#fff}}@media (max-width:768px){.tS9DbG_featuredProject:hover .tS9DbG_content strong{color:#ffff6f}.tS9DbG_featuredProject:hover [data-type=project-stats]>*{color:#fff}}.tS9DbG_featuredProject .tS9DbG_content{z-index:2;pointer-events:none;grid-area:1/1/-1/7;position:relative}@media (max-width:1200px){.tS9DbG_featuredProject .tS9DbG_content{grid-area:1/1/-1/8}}@media (max-width:768px){.tS9DbG_featuredProject .tS9DbG_content{z-index:5;flex-direction:column;grid-column:1/-1;justify-content:center;height:100%;padding:20px;display:flex}}@media (max-width:376px){.tS9DbG_featuredProject .tS9DbG_content{padding:16px}}.tS9DbG_content .tS9DbG_description{color:#a8b2d1;text-wrap:pretty;pointer-events:all;background:#112240;border:1px solid #293856;border-radius:8px;padding:14px 18px;font-size:1rem;line-height:1.3;transition:color .3s .1s;position:relative}@media (max-width:992px){.tS9DbG_content .tS9DbG_description{width:100%;max-width:540px}}@media (max-width:768px){.tS9DbG_content .tS9DbG_description{color:#ccd6f6;background-color:#0000;border:none;padding:0 0 12px}}.tS9DbG_content .tS9DbG_description>p>a:after{bottom:3px}.tS9DbG_content .tS9DbG_description>p:not(:last-child){margin-bottom:12px}.tS9DbG_content strong{transition:color .3s .1s}.tS9DbG_content .tS9DbG_projectMeta{align-items:center;gap:12px;display:flex}@media (max-width:768px){.tS9DbG_content .tS9DbG_projectMeta{flex-wrap:wrap}}
.dLFddG_logo{-webkit-tap-highlight-color:#0000;z-index:1;filter:brightness(1.12)contrast(1.12)saturate(1.08)drop-shadow(0 0 1px #64ffdb9d);width:48px;height:48px;transition:outline-offset .2s var(--ease-main),outline-color .3s ease;outline:2px dashed #0000;flex-shrink:0;position:relative}.dLFddG_logo:focus-visible{outline-color:var(--green)}.dLFddG_logo>svg{width:100%;height:100%}
.qUr1XW_previewImg{-webkit-tap-highlight-color:#0000;cursor:pointer;z-index:1;outline:solid 0 var(--green);outline-offset:0;border-radius:6px;grid-area:1/6/-1/-1;transition:outline .2s,outline-offset .2s;position:relative}.qUr1XW_previewImg:focus-visible{outline:solid 3px var(--green);outline-offset:3px}@media (max-width:1200px){.qUr1XW_previewImg{grid-area:1/6/-1/-1}}@media (max-width:768px){.qUr1XW_previewImg{opacity:.25;grid-column:1/-1;height:100%}}.qUr1XW_previewImg>img{border-radius:inherit}
.NvvjUa_mobileMenu{z-index:9;visibility:visible;width:min(75vw,400px);height:100dvh;transition:translate .25s var(--ease-main);background-color:#112240;outline:0;justify-content:center;align-items:center;padding:50px 10px;display:flex;position:fixed;top:0;right:0;translate:102%;box-shadow:-10px 0 30px -15px #020c1bb3}.NvvjUa_mobileMenu.NvvjUa_active{translate:0}@media (max-width:376px){.NvvjUa_mobileMenu{width:100dvw}}.NvvjUa_mobileMenu nav{color:#ccd6f6;font-family:var(--font-mono-main);text-align:center;flex-direction:column;display:flex}.NvvjUa_mobileMenu nav ol{counter-reset:item 0;flex-direction:column;display:flex}.NvvjUa_mobileMenu nav li{counter-increment:item 1;margin-bottom:20px;font-size:clamp(.875rem,4vw,1.125rem)}.NvvjUa_mobileMenu nav li a{transition:color .25s var(--ease-main);border-radius:4px;justify-content:flex-start;padding:10px;display:flex}.NvvjUa_mobileMenu nav li a:hover{color:var(--green)}.NvvjUa_mobileMenu nav li a:focus-visible{color:var(--green);outline:2px solid var(--green)}.NvvjUa_mobileMenu nav li a:before{content:"0" counter(item) ".";color:var(--green);align-items:center;padding-right:10px;font-size:.875rem;display:flex}.NvvjUa_mobileMenu .NvvjUa_buttons{flex-wrap:wrap;gap:10px;margin-top:10%;margin-left:10px;display:flex}@media (max-width:376px){.NvvjUa_mobileMenu .NvvjUa_buttons{flex-direction:column;width:fit-content}}.NvvjUa_mobileMenu .NvvjUa_buttons>:where(button,a){-webkit-tap-highlight-color:#0000;color:var(--green);border:1px solid var(--green);min-width:124px;max-width:124px;font-size:.875rem;font-family:var(--font-mono-main);transition:color .25s var(--ease-main),background-color .25s var(--ease-main),box-shadow .25s var(--ease-main);background-color:#0000;border-radius:4px;padding-block:14px;line-height:1;text-decoration:none}.NvvjUa_mobileMenu .NvvjUa_buttons>:where(button,a):hover{background-color:var(--green);color:var(--website-bg);box-shadow:0 4px 6px #64ffda33}.NvvjUa_mobileMenu .NvvjUa_buttons>:where(button,a):focus-visible{color:var(--green);outline:2px solid var(--green);outline-offset:-1px}
.AOLeSa_projectHeader{pointer-events:all;width:fit-content;margin-bottom:18px}@media (max-width:376px){.AOLeSa_projectHeader{flex-direction:column;gap:4px;display:flex}}.AOLeSa_projectHeader .AOLeSa_featuredText{font-family:var(--font-mono-main);color:var(--green);font-size:.9rem}.AOLeSa_projectHeader .AOLeSa_developmentText{font-family:var(--font-mono-main);text-wrap:nowrap;color:#ff9a2e;font-size:.9rem}.AOLeSa_projectHeader .AOLeSa_separator{font-family:var(--font-mono-main);color:#8892b0;margin-inline:8px;font-size:.9rem;display:inline-block;scale:1 1.1}@media (max-width:376px){.AOLeSa_projectHeader .AOLeSa_separator{display:none}.AOLeSa_projectHeader .AOLeSa_featuredText{font-size:.85rem}}.AOLeSa_projectHeader .AOLeSa_title{color:#ccd6f6;width:fit-content;margin:2px 0 16px;font-size:clamp(1.5rem,5vw,1.75rem);font-weight:700}.AOLeSa_projectHeader .AOLeSa_title>a{border-bottom:2px solid #0000;outline:none;transition:color .3s,border-color .3s}.AOLeSa_projectHeader .AOLeSa_title>a:hover{color:var(--green)}.AOLeSa_projectHeader .AOLeSa_title>a:focus-visible{color:var(--green);border-bottom:solid 2px var(--green)}@media (max-width:768px){.AOLeSa_projectHeader .AOLeSa_title{color:#e6f1ff;margin-bottom:0}}
.dL3Jka_heading{color:#ccd6f6;margin:92px 0 25px;scroll-margin-top:115px;font-size:clamp(1.8rem,4vw,2.45rem);font-weight:600;line-height:1.05}@media (max-width:768px){.dL3Jka_prose h2{margin-top:70px}}
.SecEhG_projectLinks{-webkit-user-select:none;user-select:none;pointer-events:all;direction:ltr;align-items:center;gap:8px;width:fit-content;display:flex}@media (max-width:880px){.SecEhG_projectLinks{flex-wrap:wrap;margin:0;display:flex;top:0}}.SecEhG_featuredProject[dir=rtl] .SecEhG_projectLinks{flex-direction:row-reverse}.SecEhG_projectLinks a{-webkit-tap-highlight-color:#0000;text-wrap:nowrap;color:#ccd6f6;border:1px solid #233149;border-radius:4px;outline:2px solid #0000;align-items:center;gap:8px;padding:8px 11px;font-size:1rem;transition:color .3s,border-color .3s,outline-color .3s;display:flex}.SecEhG_projectLinks a:hover{color:var(--green)!important;border-color:var(--green)!important}.SecEhG_projectLinks a:focus-visible{color:var(--green)!important;outline-color:var(--green)!important;outline-offset:-2px!important}@media (max-width:768px){.SecEhG_projectLinks a{transition:color .3s .1s,border-color .3s .1s}}.SecEhG_projectLinks span{color:#a5a5a5;cursor:not-allowed;border:1px solid #233149;border-radius:4px;align-items:center;gap:8px;padding:8px 11px;font-size:1rem;display:flex;position:relative}.SecEhG_projectLinks span:hover:after{opacity:1;visibility:visible;transition:opacity .2s .2s,translate .2s .2s,visibility .2s .2s;translate:-50%}.SecEhG_projectLinks span:after{content:attr(data-tooltip);z-index:10;color:#ccd6f6;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;background:#112240;border:1px solid #233149;border-radius:4px;padding:7px 10px;font-size:.9rem;line-height:1.2;transition:opacity .2s,translate .2s,visibility .2s;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 4px}@media (prefers-reduced-motion:reduce){.SecEhG_projectLinks span:after{transition:none}}@media (prefers-reduced-transparency:reduce){.SecEhG_projectLinks a{border-color:#758db6}}.SecEhG_projectLinks * svg{width:15px;height:15px}
.e-STAa_fixedEmail{z-index:10;color:#a8b2d1;flex-direction:column;align-items:center;width:40px;display:flex;position:fixed;bottom:0;right:40px}@media (max-width:768px){.e-STAa_fixedEmail{display:none}}.e-STAa_fixedEmail:after{content:"";background-color:#a8b2d1;width:1px;height:90px;margin:0 auto;display:block}.e-STAa_fixedEmail a{font-family:var(--font-mono-main);letter-spacing:.1em;writing-mode:vertical-rl;outline-offset:-2px;transition:translate .25s var(--ease-main),color .25s var(--ease-main),outline .1s var(--ease-main),outline-offset .1s var(--ease-main);margin:20px auto;padding:10px;font-size:.75rem;line-height:18px}.e-STAa_fixedEmail a:hover,.e-STAa_fixedEmail a:focus-visible{color:var(--green);translate:0 -3px}.e-STAa_fixedEmail a:focus-visible{color:var(--green);outline:solid 2px var(--green);outline-offset:0}@media (prefers-reduced-motion:reduce){.e-STAa_fixedEmail a:hover,.e-STAa_fixedEmail a:focus-visible{translate:0}}
._8Oylca_articleHeader{padding-bottom:50px}._8Oylca_eyebrow{font-family:var(--font-mono-main);color:var(--green);font-size:.8rem}._8Oylca_articleHeader h1{color:#ccd6f6;letter-spacing:-.03em;max-width:700px;margin-block:18px 20px;font-size:clamp(3.4rem,8vw,5rem);font-weight:600;line-height:.9}._8Oylca_lede{color:#a8b4cf;max-width:610px;font-size:clamp(1.2rem,5vw,1.4rem);line-height:1.2}._8Oylca_archiveNotice{border-left:3px solid var(--green);color:#a8b4cf;background:#a8b4cf0f;max-width:700px;margin-top:28px;padding:16px 18px;line-height:1.6}._8Oylca_archiveNotice strong{color:#ccd6f6;margin-bottom:4px;display:block}._8Oylca_archiveNotice p{margin:0}
.J8bONq_techList{margin:12px 0;display:flex;position:relative;left:-13px}@media (max-width:992px){.J8bONq_techList{flex-wrap:wrap;width:fit-content;display:inline-flex}}[dir=rtl] .J8bONq_techList{left:auto;right:-13px}@media (max-width:768px){[dir=rtl] .J8bONq_techList{left:-13px}}.J8bONq_techList li{-webkit-tap-highlight-color:#0000;font-family:var(--font-mono-main);color:#a8b2d1;text-wrap:nowrap;pointer-events:all;padding:6px 13px;font-size:.875rem;font-weight:500;transition:color .3s}@media (max-width:768px){.J8bONq_techList li{color:#ccd6f6;transition:color .3s .1s}}@media (max-width:376px){.J8bONq_techList li{font-size:.8rem}}
.wrIsgW_socialMedia{z-index:10;color:#a8b2d1;flex-direction:column;align-items:center;width:40px;display:flex;position:fixed;bottom:0;left:40px}@media (max-width:768px){.wrIsgW_socialMedia{display:none}}.wrIsgW_socialMedia:after{content:"";background-color:#a8b2d1;width:1px;height:90px;margin:0 auto;display:block}.wrIsgW_socialMedia li:last-child{margin-bottom:18px}.wrIsgW_socialMedia a{outline-offset:-5px;transition:translate .25s var(--ease-main),color .25s var(--ease-main),outline .1s var(--ease-main),outline-offset .1s var(--ease-main);padding:10px;display:inline-block;position:relative}.wrIsgW_socialMedia a:hover,.wrIsgW_socialMedia a:focus-visible{translate:0 -2px}.wrIsgW_socialMedia a:focus-visible{color:var(--green);outline:solid 2px var(--green);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.wrIsgW_socialMedia a:hover,.wrIsgW_socialMedia a:focus-visible{translate:0}}.wrIsgW_socialMedia a:hover svg{color:var(--green)}.wrIsgW_socialMedia a:hover svg[data-type=twitter],.wrIsgW_socialMedia a:focus-visible svg[data-type=twitter]{fill:var(--green)}.wrIsgW_socialMedia a svg{fill:none;width:20px;height:20px;transition:fill .25s var(--ease-main),color .25s var(--ease-main)}.wrIsgW_socialMedia a svg[data-type=twitter]{fill:#a8b2d1}
.X8Jf7W_article code{background-color:#081426;padding:2px}.X8Jf7W_chipList code{color:var(--green);font-family:var(--font-mono-main);padding:4px 10px;font-size:.68rem;font-weight:700}.X8Jf7W_prose{color:var(--main-text-color);font-size:1.16rem;line-height:1.55}.X8Jf7W_prose p,.X8Jf7W_prose ul,.X8Jf7W_prose blockquote,.X8Jf7W_prose pre,.X8Jf7W_flow,.X8Jf7W_chipList{margin-bottom:26px}.X8Jf7W_prose h2{color:#ccd6f6;margin:92px 0 25px;scroll-margin-top:115px;font-size:clamp(1.8rem,4vw,2.45rem);font-weight:600;line-height:1.05}.X8Jf7W_prose a{color:var(--green);text-underline-offset:3px;-webkit-text-decoration:underline #426b73;text-decoration:underline #426b73}.X8Jf7W_prose strong{color:#d7deed;font-weight:500}.X8Jf7W_prose ul{padding-left:24px}.X8Jf7W_prose li{margin-bottom:3px;padding-left:5px;list-style:outside}.X8Jf7W_prose li::marker{color:var(--green)}.X8Jf7W_prose code{color:#d7deed;font-family:var(--font-mono-main);font-size:.78em}.X8Jf7W_prose blockquote{border-left:2px solid var(--green);color:#d7deed;padding:8px 0 8px 22px;font-size:1.1rem;font-style:italic}@media (max-width:768px){.X8Jf7W_prose blockquote{padding-left:10px;font-size:1.1rem;line-height:1.2}}.X8Jf7W_flow{color:#d7deed;font-family:var(--font-mono-main);text-align:center;background:#08142699;flex-wrap:wrap;align-items:center;gap:10px;padding:22px 14px;font-size:.72rem;display:flex}.X8Jf7W_flow b{color:var(--green);font-weight:400}.X8Jf7W_chipList{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:768px){.X8Jf7W_articleHeader{padding-bottom:45px}.X8Jf7W_prose{font-size:1.08rem}.X8Jf7W_prose h2{margin-top:70px}}@media (max-width:376px){.X8Jf7W_flow{flex-direction:column;align-items:stretch}.X8Jf7W_flow b{transform:rotate(90deg)}}
.nSMDQq_featuredProjects{flex-direction:column;gap:200px;display:flex}@media (max-width:992px){.nSMDQq_featuredProjects{gap:150px}}@media (max-width:768px){.nSMDQq_featuredProjects{gap:70px}}
.vlfa1G_layer{transition:filter .2s ease-in .1s}.vlfa1G_layer.vlfa1G_active{filter:blur(5px)}@media (prefers-reduced-transparency:reduce){.vlfa1G_layer.vlfa1G_active{filter:none!important}}.vlfa1G_layer:before{content:"";z-index:10;cursor:pointer;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}@media (prefers-reduced-transparency:reduce){.vlfa1G_layer.vlfa1G_active:before{background-color:#0a192fcc}}.vlfa1G_layer.vlfa1G_active:before{pointer-events:all}
.A0zubq_tree{font-family:var(--font-mono-main);color:#b8c7e4;background:#081426;padding:22px;font-size:.78rem;line-height:1.6;overflow-x:auto}@media (max-width:768px){.A0zubq_tree{padding:12px}}
._0biTPW_skipLink{background-color:var(--green);color:var(--website-bg);font-size:.8125rem;font-family:var(--font-mono-main);z-index:-99;transition:left .25s var(--ease-main);border:none;border-radius:4px;outline:none;padding:20px 28px;line-height:1;position:fixed;top:0;left:-999px}._0biTPW_skipLink:focus{z-index:99;left:0}
.Wii3-a_highlightPanel{border-top:1px solid var(--main-text-color);border-bottom:1px solid #233554;margin-block:75px 45px;padding-block:25px 18px}@media (max-width:768px){.Wii3-a_highlightPanel{padding-top:0}}.Wii3-a_highlightPanel h2{margin-bottom:18px;font-size:1.4rem}@media (max-width:768px){.Wii3-a_highlightPanel h2{margin-top:70px}}.Wii3-a_highlightPanel li{margin-bottom:14px}
@font-face{font-family:calibreFont;src:url(../media/Calibre_Semibold-s.p.3hvwt0ru1_pbd.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:calibreFont;src:url(../media/Calibre_Regular-s.p.3qdsezif0odi6.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:calibreFont;src:url(../media/Calibre_Medium-s.p.1z3qg_lyr5tsi.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:calibreFont Fallback;src:local(Arial);ascent-override:93.66%;descent-override:20.88%;line-gap-override:22.82%;size-adjust:87.66%}.x35LRW_className{font-family:calibreFont,calibreFont Fallback}.x35LRW_variable{--font-calibre:"calibreFont", "calibreFont Fallback"}
.t4jQHG_pageShell{grid-template-columns:230px minmax(0,840px);gap:60px;width:100%;padding-block:150px 40px;display:grid}@media (max-width:1200px){.t4jQHG_pageShell{gap:30px}}@media (max-width:992px){.t4jQHG_pageShell{display:block}}@media (max-width:768px){.t4jQHG_pageShell{padding-block:110px 80px;display:block}}
@font-face{font-family:sfMonoFont;src:url(../media/SFMono_Regular-s.p.0ics5x8-3acd3.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:sfMonoFont;src:url(../media/SFMono_Medium-s.p.2_47a5j81ih9_.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:sfMonoFont;src:url(../media/SFMono_Semibold-s.p.1km2y9my4gt9i.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:sfMonoFont Fallback;src:local(Arial);ascent-override:70.03%;descent-override:17.52%;line-gap-override:0.0%;size-adjust:135.47%}.rpb5mW_className{font-family:sfMonoFont,sfMonoFont Fallback}.rpb5mW_variable{--font-sf-mono:"sfMonoFont", "sfMonoFont Fallback"}
.jurRua_sidebar{scrollbar-width:thin;align-self:start;max-height:calc(100vh - 150px);position:sticky;top:120px;overflow-y:auto}@media (max-width:992px){.jurRua_sidebar{display:none}}.jurRua_tocList{border-left:1px solid #233554}.jurRua_tocList li{list-style:none}.jurRua_tocList a{color:#758db6;outline-offset:-5px;text-wrap:balance;min-height:30px;transition:color .1s var(--ease-main),outline .1s var(--ease-main),border-color .1s var(--ease-main),outline-offset .1s var(--ease-main);border-left:2px solid #0000;outline:2px solid #0000;align-items:center;margin-left:-1px;padding-inline:12px;font-size:.9rem;line-height:1.2;display:flex}.jurRua_tocList a.jurRua_active,.jurRua_tocList a.jurRua_active:hover{border-color:var(--green);color:#fff}.jurRua_tocList a:hover{color:#ccd6f6}.jurRua_tocList a:focus-visible{color:#fff;outline-color:var(--green);outline-offset:-3px;border-left-color:#0000;border-radius:4px}.jurRua_tocList .jurRua_subItem a{padding-left:22px;font-size:.8rem}
