.sidebar_sideBar__UiTy0{background:var(--background-dark);height:100vh;position:-webkit-sticky;position:sticky;top:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}@media screen and (max-width:768px){.sidebar_sideBar__UiTy0{width:40px}}.sidebar_sideBar__UiTy0 a{height:100px;flex-shrink:0;writing-mode:vertical-lr;font-size:var(--text-sm);font-weight:200;display:flex;align-items:center;justify-content:center;opacity:.5;border-right:1px solid transparent;transition:all .1s;width:100%}@media screen and (max-width:768px){.sidebar_sideBar__UiTy0 a{font-size:var(--text-xs)}}.sidebar_sideBar__UiTy0 .sidebar_selected__nGDNt,.sidebar_sideBar__UiTy0 a:hover{background:var(--background);border-right:1px solid var(--brand);opacity:1}.sidebar_logo__8VGJt{flex-shrink:0;width:45px;height:45px;display:flex;align-items:center;justify-content:center;border-radius:4px;margin:1.8rem 0}.sidebar_logo__8VGJt,.sidebar_logo__8VGJt span{font-size:var(--text-md);font-weight:900;line-height:1}.sidebar_logo__8VGJt span{color:var(--brand)}.sidebar_sideBar__UiTy0::-webkit-scrollbar{display:none}.standardbutton_standardButton__kderB{outline:none;border:none;cursor:pointer;padding:1.2rem 2.4rem;background:var(--brand);color:var(--background-dark);font-size:var(--text-sm);border-radius:4px;position:relative;z-index:20;overflow:hidden;transition:opacity .2s}.standardbutton_standardButton__kderB:hover{opacity:.9;color:var(--text)}.dotgrid_dotGrid__fIloK{position:absolute;top:12px;bottom:12px;right:3.6rem;max-width:75%;display:grid;z-index:0;grid-gap:0;transform:rotate(45deg)}.dotgrid_dotWrapper__Qf5dS{cursor:crosshair;transition:background .25s}.dotgrid_dot__JnSZ6{width:50px;height:50px;margin:0;padding:0;border:1px solid var(--brand);border-radius:0;opacity:.35}.dotgrid_dot__JnSZ6:nth-child(3n+1){border-right:none;border-top:none}.dotgrid_dotWrapper__Qf5dS:hover{background:hsla(0,0%,100%,.15)}.dotgrid_dotWrapper__Qf5dS:hover>.dotgrid_dot__JnSZ6{opacity:1!important}.headinglinks_links__0X2vp{display:flex;gap:1.6rem;padding-top:10px}.headinglinks_links__0X2vp a{opacity:.5;position:relative;z-index:20}.headinglinks_links__0X2vp a:hover{color:var(--brand);opacity:1}.hero_hero__HQvTb{margin-bottom:9.6rem}@media(max-width:768px){.hero_hero__HQvTb{margin-bottom:4.8rem}}.hero_copyWrapper__CwXi2{position:relative;z-index:10;width:-moz-fit-content;width:fit-content;margin:4.8rem 0}.hero_title__Qj25Y{font-size:var(--text-2xl);font-weight:900;line-height:1.1}.hero_title__Qj25Y span{color:var(--brand)}@media(max-width:768px){.hero_title__Qj25Y{font-size:var(--text-xl)}}.hero_subTitle__gHa6t{font-size:var(--text-lg);line-height:1.1;margin-top:1.6rem;font-weight:200}.hero_subTitle__gHa6t span{font-weight:700;color:var(--brand)}.hero_aboutCopy__VTnoZ{margin:2.4rem 0;max-width:700px;font-weight:200}.hero_contactContainer__3IQcZ{display:flex;align-items:center;gap:1.6rem;width:100%;justify-content:space-between}.outlinebutton_outlineButton__FrAMR{outline:none;border:none;cursor:pointer;padding:1.2rem 2.4rem;border:1px solid var(--text);background:transparent;color:var(--text);font-size:var(--text-sm);border-radius:4px;position:relative;z-index:20;overflow:hidden;transition:color .2s;scale:1;transition:scale .2s}@media screen and (max-width:768px){.outlinebutton_outlineButton__FrAMR{padding:.5rem 1rem}}.outlinebutton_outlineButton__FrAMR:before{content:"";position:absolute;z-index:-1;background:var(--brand);height:100%;width:100%;left:-100%;top:-100%;scale:1;transition:left .2s,top .2s,scale .2s}.outlinebutton_outlineButton__FrAMR:hover{scale:1.05}.outlinebutton_outlineButton__FrAMR:hover:before{left:0;top:0}.heading_heading__HzVG7{height:calc(45px + 3.6rem);padding:0 3.6rem;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--bg-opaque);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:var(--text-md);font-weight:700}@media(max-width:768px){.heading_heading__HzVG7{padding:0 2.4rem}}.header_sectionHeader__aMRKR{display:flex;align-items:center;gap:2.4rem;margin-bottom:2.4rem}.header_title__V2_hm{font-size:var(--text-xl);font-weight:900;text-align:end}.header_title__V2_hm span{color:var(--brand)}@media(max-width:768px){.header_title__V2_hm{font-size:var(--text-lg)}}.header_line__AkXvu{width:100%;height:1px;background:var(--text);opacity:.3}.stats_stats__WOUW_{position:relative}.stats_statColumn__9zYLf h4{display:flex;align-items:center;margin-bottom:2.4rem}.stats_statColumn__9zYLf h4 span{font-size:var(--text-md);font-weight:700;position:relative;margin-left:.8rem}.stats_statGrid__zB3xo{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:4.8rem}.about_about__Y5OWd{display:grid;grid-template-columns:1fr 300px;grid-gap:2.4rem;gap:2.4rem}@media(max-width:900px){.about_about__Y5OWd{grid-template-columns:1fr}}.about_aboutText__6K4t_{margin-bottom:2.4rem;font-weight:200}.about_links__7hF9X{display:flex;align-items:center;gap:1.6rem}.about_linksText__OPa1o{display:flex;align-items:center;gap:.8rem;font-size:var(--text-sm);color:var(--brand)}.about_highlightFirstLetter__Q7tbo:first-letter{background:var(--background-light);padding:1rem;border-radius:.4rem;font-size:var(--text-md);font-weight:700;margin-right:.6rem;float:left}.image-gallery-icon{color:#fff;transition:all .3s ease-out;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;cursor:pointer;outline:none;position:absolute;z-index:4;filter:drop-shadow(0 2px 2px #1a1a1a)}@media(hover:hover)and (pointer:fine){.image-gallery-icon:hover{color:#337ab7}.image-gallery-icon:hover .image-gallery-svg{transform:scale(1.1)}}.image-gallery-icon:focus{outline:2px solid #337ab7}.image-gallery-using-mouse .image-gallery-icon:focus{outline:none}.image-gallery-fullscreen-button,.image-gallery-play-button{bottom:0;padding:20px}.image-gallery-fullscreen-button .image-gallery-svg,.image-gallery-play-button .image-gallery-svg{height:28px;width:28px}@media(max-width:768px){.image-gallery-fullscreen-button,.image-gallery-play-button{padding:15px}.image-gallery-fullscreen-button .image-gallery-svg,.image-gallery-play-button .image-gallery-svg{height:24px;width:24px}}@media(max-width:480px){.image-gallery-fullscreen-button,.image-gallery-play-button{padding:10px}.image-gallery-fullscreen-button .image-gallery-svg,.image-gallery-play-button .image-gallery-svg{height:16px;width:16px}}.image-gallery-fullscreen-button{right:0}.image-gallery-play-button{left:0}.image-gallery-left-nav,.image-gallery-right-nav{padding:50px 10px;top:50%;transform:translateY(-50%)}.image-gallery-left-nav .image-gallery-svg,.image-gallery-right-nav .image-gallery-svg{height:120px;width:60px}@media(max-width:768px){.image-gallery-left-nav .image-gallery-svg,.image-gallery-right-nav .image-gallery-svg{height:72px;width:36px}}@media(max-width:480px){.image-gallery-left-nav .image-gallery-svg,.image-gallery-right-nav .image-gallery-svg{height:48px;width:24px}}.image-gallery-left-nav[disabled],.image-gallery-right-nav[disabled]{cursor:disabled;opacity:.6;pointer-events:none}.image-gallery-left-nav{left:0}.image-gallery-right-nav{right:0}.image-gallery{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}.image-gallery.fullscreen-modal{background:#000;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:5}.image-gallery.fullscreen-modal .image-gallery-content{top:50%;transform:translateY(-50%)}.image-gallery-content{position:relative;line-height:0;top:0}.image-gallery-content.fullscreen{background:#000}.image-gallery-content .image-gallery-slide .image-gallery-image{max-height:calc(100vh - 80px)}.image-gallery-content.image-gallery-thumbnails-left .image-gallery-slide .image-gallery-image,.image-gallery-content.image-gallery-thumbnails-right .image-gallery-slide .image-gallery-image{max-height:100vh}.image-gallery-slide-wrapper{position:relative}.image-gallery-slide-wrapper.image-gallery-thumbnails-left,.image-gallery-slide-wrapper.image-gallery-thumbnails-right{display:inline-block;width:calc(100% - 110px)}@media(max-width:768px){.image-gallery-slide-wrapper.image-gallery-thumbnails-left,.image-gallery-slide-wrapper.image-gallery-thumbnails-right{width:calc(100% - 87px)}}.image-gallery-slide-wrapper.image-gallery-rtl{direction:rtl}.image-gallery-slides{line-height:0;overflow:hidden;position:relative;white-space:nowrap;text-align:center}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.image-gallery-center{position:relative}.image-gallery-slide .image-gallery-image{width:100%;object-fit:contain}.image-gallery-slide .image-gallery-description{background:rgba(0,0,0,.4);bottom:70px;color:#fff;left:0;line-height:1;padding:10px 20px;position:absolute;white-space:normal}@media(max-width:768px){.image-gallery-slide .image-gallery-description{bottom:45px;font-size:.8em;padding:8px 15px}}.image-gallery-bullets{bottom:20px;left:0;margin:0 auto;position:absolute;right:0;width:80%;z-index:4}.image-gallery-bullets .image-gallery-bullets-container{margin:0;padding:0;text-align:center}.image-gallery-bullets .image-gallery-bullet{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:1px solid #fff;border-radius:50%;box-shadow:0 2px 2px #1a1a1a;cursor:pointer;display:inline-block;margin:0 5px;outline:none;padding:5px;transition:all .2s ease-out}@media(max-width:768px){.image-gallery-bullets .image-gallery-bullet{margin:0 3px;padding:3px}}@media(max-width:480px){.image-gallery-bullets .image-gallery-bullet{padding:2.7px}}.image-gallery-bullets .image-gallery-bullet:focus{transform:scale(1.2);background:#337ab7;border:1px solid #337ab7}.image-gallery-bullets .image-gallery-bullet.active{transform:scale(1.2);border:1px solid #fff;background:#fff}@media(hover:hover)and (pointer:fine){.image-gallery-bullets .image-gallery-bullet:hover{background:#337ab7;border:1px solid #337ab7}.image-gallery-bullets .image-gallery-bullet.active:hover{background:#337ab7}}.image-gallery-thumbnails-wrapper{position:relative}.image-gallery-thumbnails-wrapper.thumbnails-swipe-horizontal{touch-action:pan-y}.image-gallery-thumbnails-wrapper.thumbnails-swipe-vertical{touch-action:pan-x}.image-gallery-thumbnails-wrapper.thumbnails-wrapper-rtl{direction:rtl}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{display:inline-block;vertical-align:top;width:100px}@media(max-width:768px){.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{width:81px}}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left .image-gallery-thumbnails,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right .image-gallery-thumbnails{height:100%;width:100%;left:0;padding:0;position:absolute;top:0}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left .image-gallery-thumbnails .image-gallery-thumbnail,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right .image-gallery-thumbnails .image-gallery-thumbnail{display:block;margin-right:0;padding:0}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left .image-gallery-thumbnails .image-gallery-thumbnail+.image-gallery-thumbnail,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right .image-gallery-thumbnails .image-gallery-thumbnail+.image-gallery-thumbnail{margin-left:0;margin-top:2px}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{margin:0 5px}@media(max-width:768px){.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{margin:0 3px}}.image-gallery-thumbnails{overflow:hidden;padding:5px 0}@media(max-width:768px){.image-gallery-thumbnails{padding:3px 0}}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{display:inline-block;border:4px solid transparent;transition:border .3s ease-out;width:100px;background:transparent;padding:0}@media(max-width:768px){.image-gallery-thumbnail{border:3px solid transparent;width:81px}}.image-gallery-thumbnail+.image-gallery-thumbnail{margin-left:2px}.image-gallery-thumbnail .image-gallery-thumbnail-inner{display:block;position:relative}.image-gallery-thumbnail .image-gallery-thumbnail-image{vertical-align:middle;width:100%;line-height:0}.image-gallery-thumbnail.active,.image-gallery-thumbnail:focus{outline:none;border:4px solid #337ab7}@media(max-width:768px){.image-gallery-thumbnail.active,.image-gallery-thumbnail:focus{border:3px solid #337ab7}}@media(hover:hover)and (pointer:fine){.image-gallery-thumbnail:hover{outline:none;border:4px solid #337ab7}}@media(hover:hover)and (pointer:fine)and (max-width:768px){.image-gallery-thumbnail:hover{border:3px solid #337ab7}}.image-gallery-thumbnail-label{box-sizing:border-box;color:#fff;font-size:1em;left:0;line-height:1em;padding:5%;position:absolute;top:50%;text-shadow:0 2px 2px #1a1a1a;transform:translateY(-50%);white-space:normal;width:100%}@media(max-width:768px){.image-gallery-thumbnail-label{font-size:.8em;line-height:.8em}}.image-gallery-index{background:rgba(0,0,0,.4);color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;top:0;z-index:4}@media(max-width:768px){.image-gallery-index{font-size:.8em;padding:5px 10px}}.projectmodal_modal__X7Nyj{position:fixed;top:0;left:0;right:0;z-index:100000000;height:100vh;padding:4.8rem 1.2rem;background:var(--bg-opaque);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow-y:scroll;display:flex;justify-content:center;cursor:pointer}.projectmodal_modalCard__sntB0{width:100%;max-width:700px;height:-moz-fit-content;height:fit-content;border-radius:1.2rem;overflow:hidden;background:var(--background);box-shadow:0 5px 15px rgba(0,0,0,.1);cursor:auto}.projectmodal_modalImage__EWd63{width:100%}.projectmodal_modalContent__loHbD{padding:2.4rem}.projectmodal_modalContent__loHbD h4{font-size:var(--text-lg)}.projectmodal_modalContent__loHbD ul{width:100%;overflow-wrap:break-word;padding:0 35px}.projectmodal_modalContent__loHbD h6{font-size:var(--text-md)}.projectmodal_modalTech__CGlgc{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:var(--text-xs);color:var(--brand);margin:.2rem 0 2.4rem}.projectmodal_suppliedContent__9ZyRY{display:flex;flex-direction:column;gap:1.2rem;font-size:var(--text-xs)}.projectmodal_modalFooter__qkYgS{margin-top:2.4rem}.projectmodal_linksText__9hL89{font-weight:700;font-size:var(--text-md);margin-bottom:.8rem}.projectmodal_linksText__9hL89 span{color:var(--brand)}.projectmodal_links__Q7utU{display:flex;align-items:center;gap:1.2rem}.projectmodal_links__Q7utU a{display:flex;align-items:center;gap:.4rem;font-size:var(--text-xs);color:var(--brand)}.projectmodal_links__Q7utU a:hover{text-decoration:underline}.projectmodal_closeModalBtn__tv736{background:none;border:none;color:var(--text);font-size:var(--text-md);position:absolute;top:1.2rem;right:1.2rem;cursor:pointer}.projects_projects__y7TVk{display:grid;grid-template-columns:1fr 1fr;grid-gap:3.2rem;gap:3.2rem}@media(max-width:768px){.projects_projects__y7TVk{grid-template-columns:1fr}}.projects_projectImage__JxEFv{width:100%;aspect-ratio:16/9;background:var(--background);cursor:pointer;position:relative;border-radius:.8rem;overflow:hidden}.projects_projectImage__JxEFv img{width:95%;position:absolute;bottom:0;left:50%;translate:-50% 5%;transition:all .25s;border-radius:.4rem}.projects_projectCopy__C5vpE{margin:1.6rem 0}.projects_projectTitle__Rv3E5{display:flex;align-items:center;gap:1.2rem}.projects_projectTitle__Rv3E5 h4{font-weight:700;font-size:var(--text-md);flex-shrink:0;max-width:calc(100% - 150px)}@media screen and (max-width:768px){.projects_projectTitle__Rv3E5 h4{font-size:var(--text-xs)}}.projects_projectTitle__Rv3E5 a{opacity:.75;transition:opacity .25s}.projects_projectTitle__Rv3E5 a:hover{opacity:1}.projects_projectTitleLine__QzzUe{width:100%;height:1px;background:var(--text);opacity:.3}.projects_projectDescription__K2fsn{font-weight:200}.projects_projectDescription__K2fsn span{display:inline-block;font-size:var(--text-xs);font-weight:400;color:var(--brand);cursor:pointer}.projects_projectDescription__K2fsn span:hover{text-decoration:underline}.projects_projectTech__vVqDM{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:var(--text-xs);color:var(--brand);font-weight:600;margin:.8rem 0}.projects_arrowButton__wqV6W{position:absolute;top:50%;transform:translateY(-50%);background-color:transparent;border:none;color:#fff;font-size:24px;cursor:pointer}.projects_arrowButton__wqV6W:first-child{left:0}.projects_arrowButton__wqV6W:last-child{right:0}.experience_experience__USIwr{margin-bottom:2.4rem;padding:0 1.2rem 2.4rem;border-bottom:1px solid var(--background-light)}.experience_heading__LeH28{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem}.experience_title__hai7S{font-size:var(--text-md);font-weight:700}@media screen and (max-width:768px){.experience_title__hai7S{font-size:var(--text-xs)}}.experience_time__TTOOW{font-size:var(--text-sm)}@media screen and (max-width:768px){.experience_time__TTOOW{font-size:var(--text-2xs);flex-shrink:0;width:-moz-fit-content;width:fit-content}}.experience_position__E06bW{color:var(--brand);font-weight:700}@media screen and (max-width:768px){.experience_position__E06bW{font-size:var(--text-xs)}}.experience_description__iz3mi{margin-bottom:1.8rem;font-weight:200}.experience_relatedContainer__Ivpqw,.experience_tech__jTuus{display:flex;flex-wrap:wrap;gap:1.2rem}.experience_relatedContainer__Ivpqw{flex-direction:row;width:max-content;margin:1.4rem 0}@media screen and (max-width:768px){.experience_relatedContainer__Ivpqw{width:100%}.experience_relatedContainer__Ivpqw a,.experience_relatedContainer__Ivpqw p{font-size:var(--text-2xs)}}.experience_relatedContainer__Ivpqw p{color:var(--text-light);font-weight:400}.experience_relatedContainer__Ivpqw a{color:var(--brand);font-weight:400;font-style:italic}.experience_relatedContainer__Ivpqw a:hover{text-decoration:underline;color:var(--text-light)}.contact_contactWrapper__imGw1{max-width:700px;margin:auto;border-radius:1.2rem}.contact_contactTitle__oMNhX{font-size:var(--text-2xl);text-align:center;font-weight:900;line-height:1}.contact_contactTitle__oMNhX span{color:var(--brand)}@media(max-width:768px){.contact_contactTitle__oMNhX{font-size:var(--text-xl)}}.contact_contactCopy__oCo8c{text-align:center;font-weight:200;margin:2.4rem 0}.contact_contactCopy__oCo8c a{color:var(--brand)}.contact_contactCopy__oCo8c a:hover{text-decoration:underline}.contact_contactEmail__Fr6hH{display:flex;align-items:center;justify-content:center;gap:.8rem;width:-moz-fit-content;width:fit-content;font-size:var(--text-md);margin:auto;transition:color .25s}@media screen and (max-width:768px){.contact_contactEmail__Fr6hH{font-size:var(--text-sm)}}.contact_contactEmail__Fr6hH:hover{color:var(--brand)}.home_home__XM4a6{display:grid;grid-template-columns:40px 1fr}