.Hero-module__JgYmMq__heroSection{flex-direction:column;justify-content:center;align-items:flex-start;height:100vh;padding:0;display:flex}@media (max-width:768px){.Hero-module__JgYmMq__heroSection{height:95vh}}@media (max-height:700px) and (min-width:700px),(max-width:360px){.Hero-module__JgYmMq__heroSection{height:auto;padding-top:calc(var(--nav-height) - 20px)}}.Hero-module__JgYmMq__heroSection h1{color:var(--accent);font-family:var(--font-mono);font-size:clamp(var(--fz-sm),5vw,var(--fz-md));margin:0 0 30px 4px;font-weight:400}.Hero-module__JgYmMq__heroSection h2{color:var(--text-primary)}.Hero-module__JgYmMq__heroSection h3{color:var(--text-secondary)}.Hero-module__JgYmMq__heroSection p{max-width:540px;margin:20px 0 0}.Hero-module__JgYmMq__emailLink{border:1px solid var(--accent);border-radius:var(--border-radius);color:var(--accent);font-size:var(--fz-sm);font-family:var(--font-mono);transition:var(--transition);background-color:#0000;justify-content:center;align-items:center;margin-top:50px;padding:13px 20px;font-weight:600;text-decoration:none;display:inline-flex}.Hero-module__JgYmMq__emailLink:hover,.Hero-module__JgYmMq__emailLink:focus{background-color:var(--accent-tint);box-shadow:3px 3px 0 0 var(--accent);transform:translate(-4px,-4px)}.Hero-module__JgYmMq__fadeup{opacity:0;animation:.6s forwards Hero-module__JgYmMq__fadeUp;transform:translateY(20px)}@keyframes Hero-module__JgYmMq__fadeUp{to{opacity:1;transform:translateY(0)}}
.About-module__S-Ka5a__aboutSection{max-width:1100px}.About-module__S-Ka5a__inner{gap:50px;display:flex}@media (max-width:768px){.About-module__S-Ka5a__inner{display:block}}.About-module__S-Ka5a__skillsList{grid-gap:0 10px;grid-template-columns:repeat(2,minmax(140px,200px));margin:20px 0 0;padding:0;list-style:none;display:grid}.About-module__S-Ka5a__skillsList li{font-family:var(--font-mono);font-size:var(--fz-xs);margin-bottom:10px;padding-left:20px;position:relative}.About-module__S-Ka5a__skillsList li:before{content:"▹";color:var(--accent);font-size:var(--fz-sm);line-height:12px;position:absolute;left:0}.About-module__S-Ka5a__pic{justify-content:center;height:fit-content;display:flex;position:relative}@media (max-width:768px){.About-module__S-Ka5a__pic{margin:50px auto 0}}.About-module__S-Ka5a__wrapper{background-color:var(--accent);border-radius:var(--border-radius);width:300px;transition:var(--transition);box-shadow:0 10px 30px -15px var(--shadow);display:block;position:relative}.About-module__S-Ka5a__wrapper:hover,.About-module__S-Ka5a__wrapper:focus{transform:translate(-4px,-4px)}.About-module__S-Ka5a__wrapper:hover:after,.About-module__S-Ka5a__wrapper:focus:after{transform:translate(8px,8px)}.About-module__S-Ka5a__img{border-radius:var(--border-radius);mix-blend-mode:multiply;filter:brightness(90%);transition:var(--transition);object-fit:cover}.About-module__S-Ka5a__wrapper:hover .About-module__S-Ka5a__img,.About-module__S-Ka5a__wrapper:focus .About-module__S-Ka5a__img{mix-blend-mode:normal}.About-module__S-Ka5a__wrapper:before,.About-module__S-Ka5a__wrapper:after{content:"";border-radius:var(--border-radius);width:100%;height:100%;transition:var(--transition);display:block;position:absolute}.About-module__S-Ka5a__wrapper:before{background-color:var(--charcoal);mix-blend-mode:screen;top:0;left:0}.About-module__S-Ka5a__wrapper:after{border:2px solid var(--accent);z-index:-1;top:14px;left:14px}
.Jobs-module__bmVCsq__jobsSection{max-width:1100px}.Jobs-module__bmVCsq__inner{display:flex}@media (max-width:600px){.Jobs-module__bmVCsq__inner{display:block}}@media (min-width:700px){.Jobs-module__bmVCsq__inner{min-height:340px}}.Jobs-module__bmVCsq__tabList{z-index:3;width:max-content;margin:0;padding:0;list-style:none;position:relative}@media (max-width:600px){.Jobs-module__bmVCsq__tabList{scrollbar-width:none;width:calc(100% + 100px);margin-bottom:30px;margin-left:-50px;padding-left:50px;display:flex;overflow-x:auto}}@media (max-width:480px){.Jobs-module__bmVCsq__tabList{scrollbar-width:none;width:calc(100% + 50px);margin-left:-25px;padding-left:25px}}.Jobs-module__bmVCsq__tabButton{width:100%;height:var(--tab-height);border-left:2px solid var(--light-grey);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fz-xs);white-space:nowrap;text-align:left;-webkit-tap-highlight-color:transparent;transition:var(--transition);background-color:#0000;align-items:center;padding:0 20px 2px;display:flex}.Jobs-module__bmVCsq__tabButton:hover,.Jobs-module__bmVCsq__tabButton:focus-visible{background-color:var(--dark-grey)}.Jobs-module__bmVCsq__activeTab{color:var(--accent)}@media (max-width:768px){.Jobs-module__bmVCsq__tabButton{padding:0 15px 2px}}@media (max-width:600px){.Jobs-module__bmVCsq__tabButton{border-left:0;border-bottom:2px solid var(--light-grey);text-align:center;justify-content:center;min-width:200px;padding:0 15px}}.Jobs-module__bmVCsq__highlight{z-index:10;width:2px;height:var(--tab-height);border-radius:var(--border-radius);background:var(--accent);transform:translateY(calc(var(--activeId)*var(--tab-height)));transition:transform .25s cubic-bezier(.645,.045,.355,1) .1s;position:absolute;top:0;left:0}@media (max-width:600px){.Jobs-module__bmVCsq__highlight{width:100%;max-width:var(--tab-width);height:2px;transform:translateX(calc(var(--activeId)*var(--tab-width)));margin-left:50px;top:auto;bottom:0}}@media (max-width:480px){.Jobs-module__bmVCsq__highlight{margin-left:25px}}.Jobs-module__bmVCsq__tabPanels{width:100%;margin-left:20px;position:relative}@media (max-width:600px){.Jobs-module__bmVCsq__tabPanels{margin-left:0}}.Jobs-module__bmVCsq__tabPanel{width:100%;height:auto;padding:10px 5px}.Jobs-module__bmVCsq__company{color:var(--accent)}.Jobs-module__bmVCsq__range{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fz-xs);margin-bottom:25px!important}.Jobs-module__bmVCsq__fancyList{margin:0;padding:0;list-style:none}.Jobs-module__bmVCsq__fancyList li{margin-bottom:10px;padding-left:30px;position:relative}.Jobs-module__bmVCsq__fancyList li:before{content:"▹";color:var(--accent);position:absolute;left:0}
.Projects-module__T_D1Ca__projectsSection{flex-direction:column;align-items:center;max-width:1100px;margin:0 auto;padding:100px 0;display:flex}@media (max-width:768px){.Projects-module__T_D1Ca__projectsSection{padding:80px 0}}@media (max-width:480px){.Projects-module__T_D1Ca__projectsSection{padding:60px 0}}.Projects-module__T_D1Ca__projectsSection h2{font-size:clamp(24px,5vw,var(--fz-heading))}.Projects-module__T_D1Ca__projectsGrid{grid-gap:25px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:50px 0 80px;padding:0;list-style:none;display:grid;position:relative}@media (max-width:1080px){.Projects-module__T_D1Ca__projectsGrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}.Projects-module__T_D1Ca__project{cursor:default;transition:var(--transition);position:relative}@media (prefers-reduced-motion:no-preference){.Projects-module__T_D1Ca__project:hover .Projects-module__T_D1Ca__projectInner,.Projects-module__T_D1Ca__project:focus-within .Projects-module__T_D1Ca__projectInner{transform:translateY(-7px)}}.Projects-module__T_D1Ca__project a{z-index:1;position:relative}.Projects-module__T_D1Ca__projectInner{border-radius:var(--border-radius);background-color:var(--dark-grey);height:100%;box-shadow:0 10px 30px -15px var(--shadow);transition:var(--transition);flex-direction:column;justify-content:space-between;align-items:flex-start;padding:2rem 1.75rem;display:flex;overflow:auto}.Projects-module__T_D1Ca__projectTop{justify-content:space-between;align-items:center;margin-bottom:35px;display:flex}.Projects-module__T_D1Ca__folder{color:var(--accent)}.Projects-module__T_D1Ca__folder svg{width:40px;height:40px}.Projects-module__T_D1Ca__projectLinks{align-items:center;margin-right:-10px;display:flex}.Projects-module__T_D1Ca__projectLinks a{justify-content:center;align-items:center;padding:5px 7px;display:flex}.Projects-module__T_D1Ca__projectLinks svg{width:20px;height:20px}.Projects-module__T_D1Ca__external svg{width:22px;height:22px;margin-top:-4px}.Projects-module__T_D1Ca__projectTitle{color:var(--text-primary);font-size:var(--fz-xxl);margin:0 0 10px}.Projects-module__T_D1Ca__projectTitle a{position:static}.Projects-module__T_D1Ca__projectTitle a:before{content:"";z-index:0;display:block;position:absolute;inset:0}.Projects-module__T_D1Ca__projectDescription{color:var(--text-secondary);font-size:17px}.Projects-module__T_D1Ca__projectTechList{flex-wrap:wrap;flex-grow:1;align-items:flex-end;margin:20px 0 0;padding:0;list-style:none;display:flex}.Projects-module__T_D1Ca__projectTechList li{font-family:var(--font-mono);font-size:var(--fz-xxs);line-height:1.75}.Projects-module__T_D1Ca__projectTechList li:not(:last-of-type){margin-right:15px}.Projects-module__T_D1Ca__moreButton{border:1px solid var(--accent);color:var(--accent);border-radius:var(--border-radius);font-size:var(--fz-sm);font-family:var(--font-mono);transition:var(--transition);background:0 0;padding:1rem 1.75rem;display:inline-block}.Projects-module__T_D1Ca__moreButton:hover,.Projects-module__T_D1Ca__moreButton:focus{background-color:var(--accent-tint);box-shadow:3px 3px 0 0 var(--accent);transform:translate(-4px,-4px)}
.Featured-module__SPhj3W__projectsGrid{margin:0;padding:0;list-style:none}.Featured-module__SPhj3W__projectsGrid a{z-index:1;position:relative}.Featured-module__SPhj3W__project{grid-gap:10px;grid-template-columns:repeat(12,1fr);align-items:center;display:grid;position:relative}.Featured-module__SPhj3W__srOnly{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.Featured-module__SPhj3W__project:not(:last-of-type){margin-bottom:120px}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectContent{text-align:right;grid-column:7/-1}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectTechList{justify-content:flex-end}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectTechList li{margin:0 0 5px 20px}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectLinks{justify-content:flex-end;margin-left:0;margin-right:-10px}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectImage{grid-column:1/8}.Featured-module__SPhj3W__projectContent{grid-area:1/1/-1/7;position:relative}.Featured-module__SPhj3W__projectOverline{color:var(--accent);font-family:var(--font-mono);font-size:var(--fz-xs);margin:10px 0;font-weight:400}.Featured-module__SPhj3W__projectTitle{color:var(--text-primary);font-size:clamp(24px,5vw,28px)}.Featured-module__SPhj3W__projectDescription{z-index:2;border-radius:var(--border-radius);background-color:var(--dark-grey);color:var(--text-secondary);font-size:var(--fz-lg);box-shadow:0 10px 30px -15px var(--shadow);text-align:left;padding:25px;position:relative}.Featured-module__SPhj3W__projectDescription a{color:var(--accent);position:relative}.Featured-module__SPhj3W__projectTechList{z-index:2;flex-wrap:wrap;margin:25px 0 10px;padding:0;list-style:none;display:flex;position:relative}.Featured-module__SPhj3W__projectTechList li{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fz-xs);white-space:nowrap;margin:0 20px 5px 0}.Featured-module__SPhj3W__projectLinks{align-items:center;margin-top:10px;margin-left:-10px;display:flex;position:relative}.Featured-module__SPhj3W__projectLinks a{justify-content:center;align-items:center;padding:10px;display:flex}.Featured-module__SPhj3W__projectLinks svg{width:20px;height:20px}.Featured-module__SPhj3W__external svg{width:22px;height:22px;margin-top:-4px}.Featured-module__SPhj3W__cta{border:1px solid var(--accent);border-radius:var(--border-radius);font-size:var(--fz-xs);font-family:var(--font-mono);color:var(--accent);transition:var(--transition);background:0 0;padding:.75rem 1rem}.Featured-module__SPhj3W__cta:hover,.Featured-module__SPhj3W__cta:focus{background-color:var(--accent-tint);box-shadow:3px 3px 0 0 var(--accent);transform:translate(-4px,-4px)}.Featured-module__SPhj3W__projectImage{box-shadow:0 10px 30px -15px var(--shadow);z-index:1;grid-area:1/6/-1/-1;position:relative}.Featured-module__SPhj3W__projectImage a{background-color:var(--accent);border-radius:var(--border-radius);vertical-align:middle;width:100%;height:100%;position:relative;overflow:hidden}.Featured-module__SPhj3W__projectImage a:hover,.Featured-module__SPhj3W__projectImage a:focus{background:0 0;outline:0}.Featured-module__SPhj3W__projectImage a:hover:before,.Featured-module__SPhj3W__projectImage a:hover .Featured-module__SPhj3W__img,.Featured-module__SPhj3W__projectImage a:focus:before,.Featured-module__SPhj3W__projectImage a:focus .Featured-module__SPhj3W__img{filter:none;background:0 0}.Featured-module__SPhj3W__projectImage a:before{content:"";z-index:3;background-color:var(--charcoal);mix-blend-mode:screen;width:100%;height:100%;transition:var(--transition);position:absolute;inset:0}.Featured-module__SPhj3W__img{border-radius:var(--border-radius);mix-blend-mode:multiply;object-fit:cover;filter:brightness(50%);display:block}@media (min-width:768px){.Featured-module__SPhj3W__projectTitle{margin:0 0 20px}}@media (min-width:769px){.Featured-module__SPhj3W__img{filter:brightness(90%);width:100%;height:auto}}@media (max-width:1080px){.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectContent{grid-column:5/-1}.Featured-module__SPhj3W__projectContent{grid-column:1/9}}@media (max-width:768px){.Featured-module__SPhj3W__project{box-shadow:0 10px 30px -15px var(--shadow)}.Featured-module__SPhj3W__project:not(:last-of-type){margin-bottom:70px}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectContent{text-align:left;grid-column:1/-1;padding:40px 40px 30px}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectTechList{justify-content:flex-start}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectTechList li{margin:0 10px 5px 0}.Featured-module__SPhj3W__projectTechList{margin:10px 0}.Featured-module__SPhj3W__projectTechList li{color:var(--text-primary);margin:0 10px 5px 0}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectLinks{justify-content:flex-start;margin-left:-10px;margin-right:0}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectImage{grid-column:1/-1}.Featured-module__SPhj3W__projectContent{z-index:5;flex-direction:column;grid-column:1/-1;justify-content:center;height:100%;padding:40px 40px 30px;display:flex}.Featured-module__SPhj3W__projectTitle{color:var(--text-primary)}.Featured-module__SPhj3W__projectTitle a{position:static}.Featured-module__SPhj3W__projectTitle a:before{content:"";z-index:0;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.Featured-module__SPhj3W__projectDescription{box-shadow:none;background-color:#0000;padding:20px 0}.Featured-module__SPhj3W__projectImage{opacity:.25;grid-column:1/-1;height:100%}}@media (max-width:480px){.Featured-module__SPhj3W__project:not(:last-of-type){margin-bottom:30px}.Featured-module__SPhj3W__project:nth-of-type(odd) .Featured-module__SPhj3W__projectContent{padding:25px 25px 20px}.Featured-module__SPhj3W__projectContent{padding:30px 25px 20px}}
.Contact-module__Bs3a0a__contactSection{text-align:center;max-width:600px;margin:0 auto 100px}@media (max-width:768px){.Contact-module__Bs3a0a__contactSection{margin:0 auto 50px}}.Contact-module__Bs3a0a__overline{color:var(--accent);font-family:var(--font-mono);font-size:var(--fz-md);margin-bottom:20px;font-weight:400;display:block}.Contact-module__Bs3a0a__overline:before{font-size:var(--fz-sm);bottom:0}.Contact-module__Bs3a0a__overline:after{display:none}.Contact-module__Bs3a0a__title{font-size:clamp(40px,5vw,60px)}.Contact-module__Bs3a0a__emailLink{border:1px solid var(--accent);border-radius:var(--border-radius);color:var(--accent);font-family:var(--font-mono);font-size:var(--fz-sm);transition:var(--transition);background:0 0;margin-top:50px;padding:1.25rem 1.75rem;display:inline-block}.Contact-module__Bs3a0a__emailLink:hover,.Contact-module__Bs3a0a__emailLink:focus-visible{background-color:var(--accent-tint);box-shadow:4px 4px 0 0 var(--accent);transform:translate(-5px,-5px)}
