.page_page__ZU32B{--gray-rgb:0,0,0;--gray-alpha-200:rgba(var(--gray-rgb),0.08);--gray-alpha-100:rgba(var(--gray-rgb),0.05);--button-primary-hover:#383838;--button-secondary-hover:#f2f2f2;display:grid;grid-template-rows:20px 1fr 20px;align-items:center;justify-items:center;min-height:100svh;padding:80px;grid-gap:64px;gap:64px;font-family:var(--font-geist-sans)}@media (prefers-color-scheme:dark){.page_page__ZU32B{--gray-rgb:255,255,255;--gray-alpha-200:rgba(var(--gray-rgb),0.145);--gray-alpha-100:rgba(var(--gray-rgb),0.06);--button-primary-hover:#ccc;--button-secondary-hover:#1a1a1a}}.page_main__GlU4n{display:flex;flex-direction:column;gap:32px;grid-row-start:2}.page_main__GlU4n ol{font-family:var(--font-geist-mono);padding-left:0;margin:0;font-size:14px;line-height:24px;letter-spacing:-.01em;list-style-position:inside}.page_main__GlU4n li:not(:last-of-type){margin-bottom:8px}.page_main__GlU4n code{font-family:inherit;background:var(--gray-alpha-100);padding:2px 4px;border-radius:4px;font-weight:600}.page_ctas__g5wGe{display:flex;gap:16px}.page_ctas__g5wGe a{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:128px;height:48px;padding:0 20px;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:20px;font-weight:500}a.page_primary__V8M9Y{background:var(--foreground);color:var(--background);gap:8px}a.page_secondary__lm_PT{border-color:var(--gray-alpha-200);min-width:180px}.page_footer__sHKi3{grid-row-start:3;gap:24px}.page_footer__sHKi3 a{display:flex;align-items:center;gap:8px}.page_footer__sHKi3 img{flex-shrink:0}@media (hover:hover) and (pointer:fine){a.page_primary__V8M9Y:hover{background:var(--button-primary-hover);border-color:transparent}a.page_secondary__lm_PT:hover{background:var(--button-secondary-hover);border-color:transparent}.page_footer__sHKi3 a:hover{text-decoration:underline;text-underline-offset:4px}}@media (max-width:600px){.page_page__ZU32B{padding:32px 32px 80px}.page_main__GlU4n{align-items:center}.page_main__GlU4n ol{text-align:center}.page_ctas__g5wGe{flex-direction:column}.page_ctas__g5wGe a{font-size:14px;height:40px;padding:0 16px}a.page_secondary__lm_PT{min-width:auto}.page_footer__sHKi3{flex-wrap:wrap;align-items:center;justify-content:center}}@media (prefers-color-scheme:dark){.page_logo__7fc9l{filter:invert()}}.page_header__kVzhN{position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:76px;padding:0 5vw;color:#13251f;background:#f5f2eb;border-bottom:1px solid rgba(19,37,31,.16)}.page_wordmark__KivP2{width:-moz-fit-content;width:fit-content;font-family:var(--font-display),Georgia,serif;font-size:25px;font-weight:700}.page_wordmark__KivP2 span{color:#1677a8}.page_nav__zpG_3{display:flex;gap:38px;font-size:14px;font-weight:600}.page_contactLink__wr6_f,.page_nav__zpG_3 a{position:relative}.page_nav__zpG_3 a:after{position:absolute;right:0;bottom:-6px;left:0;height:2px;content:"";background:#1677a8;transform:scaleX(0);transform-origin:right;transition:transform .22s ease}.page_nav__zpG_3 a:focus-visible:after,.page_nav__zpG_3 a:hover:after{transform:scaleX(1);transform-origin:left}.page_contactLink__wr6_f{display:flex;gap:10px;align-items:center;justify-self:end;font-size:14px;font-weight:700}.page_contactLink__wr6_f svg,.page_emailLink__eHC0i svg{transition:transform .22s ease}.page_contactLink__wr6_f:hover svg,.page_emailLink__eHC0i:hover svg{transform:translateX(5px)}.page_hero__SKW6o{position:relative;display:flex;align-items:center;min-height:clamp(580px,82svh,720px);overflow:hidden;color:#fffdf8;background:#173f3a}.page_heroImage__Q6NCQ,.page_heroVideo__tANmU{object-fit:cover;object-position:center 48%;animation:page_heroImageIn___H_Xk 1.8s cubic-bezier(.2,.8,.2,1) both}.page_heroVideo__tANmU{position:absolute;inset:0;width:100%;height:100%}.page_heroOverlay__M87tP{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,27,24,.76),rgba(8,27,24,.32) 58%,rgba(8,27,24,.18))}.page_heroContent__2lPR8{position:relative;z-index:2;width:min(1120px,90vw);padding:clamp(56px,8svh,78px) 0;margin:0 auto}.page_eyebrowDark__4svuu,.page_eyebrow__H9Slr,.page_footerKicker__JpQox,.page_projectLabel__z0DMD{font-size:12px;font-weight:800;line-height:1.4;color:#7dd3fc;text-transform:uppercase;letter-spacing:.14em}.page_eyebrow__H9Slr{margin-bottom:14px;opacity:0;animation:page_heroCopyIn__zFZ7C .7s ease-out .28s forwards}.page_projectLabel__z0DMD{color:#1677a8}.page_hero__SKW6o h1{max-width:900px;font-size:92px;font-weight:650;line-height:.95;letter-spacing:0;animation:page_heroCopyIn__zFZ7C .8s ease-out .39s forwards}.page_heroStatement__UnRzJ,.page_hero__SKW6o h1{font-family:var(--font-display),Georgia,serif;opacity:0}.page_heroStatement__UnRzJ{max-width:680px;margin-top:24px;font-size:34px;line-height:1.2;animation:page_heroCopyIn__zFZ7C .8s ease-out .5s forwards}.page_heroActions__8_tzb{display:flex;gap:28px;align-items:center;margin-top:36px;opacity:0;animation:page_heroCopyIn__zFZ7C .8s ease-out .61s forwards}.page_primaryButton__iKEy8,.page_textButton__f_8qw{display:inline-flex;gap:11px;align-items:center;justify-content:center;min-height:48px;font-size:14px;font-weight:750}.page_primaryButton__iKEy8{padding:0 20px;color:#13251f;background:#7dd3fc;border:1px solid #7dd3fc;border-radius:4px;transition:color .18s ease,background .18s ease,transform .18s ease}.page_primaryButton__iKEy8:hover{color:#fff;background:transparent;transform:translateY(-2px)}.page_textButton__f_8qw{padding:0;color:inherit;font:inherit;cursor:pointer;background:transparent;border:0;border-bottom:1px solid hsla(0,0%,100%,.72)}.page_textButton__f_8qw svg{width:20px;height:20px}.page_resumeDialog__n6eNd{position:fixed;inset:0;width:min(960px,92vw);height:min(850px,90dvh);max-width:none;max-height:none;padding:0;margin:auto;color:#13251f;background:#f5f2eb;border:0;border-radius:6px;box-shadow:0 30px 90px rgba(8,27,24,.36);overflow:hidden}.page_resumeDialog__n6eNd::-webkit-backdrop{background:rgba(8,27,24,.72);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.page_resumeDialog__n6eNd::backdrop{background:rgba(8,27,24,.72);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.page_resumeModal__H89IT{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}.page_resumeModalFooter__8HBdL,.page_resumeModalHeader___k17W{display:flex;align-items:center;justify-content:space-between;padding:18px 22px}.page_resumeModalHeader___k17W{border-bottom:1px solid rgba(19,37,31,.16)}.page_resumeModalHeader___k17W p{font-size:11px;font-weight:800;color:#537068;text-transform:uppercase;letter-spacing:.14em}.page_resumeModalHeader___k17W h2{margin-top:2px;font-family:var(--font-display),Georgia,serif;font-size:28px;line-height:1}.page_resumeModalHeader___k17W button{display:grid;width:42px;height:42px;color:#13251f;cursor:pointer;background:transparent;border:1px solid rgba(19,37,31,.2);border-radius:4px;place-items:center}.page_resumeModalHeader___k17W button:hover{color:#fff;background:#173f3a}.page_resumeModalHeader___k17W button svg{width:24px;height:24px}.page_resumeFrame__JlvEf{width:100%;height:100%;background:#fff;border:0}.page_resumeModalFooter__8HBdL{justify-content:flex-end;border-top:1px solid rgba(19,37,31,.16)}.page_resumeModalFooter__8HBdL a{display:inline-flex;gap:9px;align-items:center;min-height:42px;padding:0 16px;font-size:13px;font-weight:750;color:#fff;background:#173f3a;border-radius:4px}.page_resumeModalFooter__8HBdL a:hover{background:#245b53}.page_resumeModalFooter__8HBdL svg{width:19px;height:19px}.page_location__LXEDd{margin-top:14px;font-size:12px;font-weight:700;color:rgba(255,253,248,.82);text-transform:uppercase;letter-spacing:.14em;opacity:0;animation:page_heroCopyIn__zFZ7C .8s ease-out .56s forwards}.page_experience__Q0l0p,.page_intro__NrUPI,.page_projects__Vzd49,.page_skills__ejZHj{scroll-margin-top:30px}.page_intro__NrUPI{display:flex;flex-direction:column;align-items:center;gap:32px;width:min(1120px,90vw);padding:72px 0 76px;margin:0 auto}.page_footer__sHKi3 h2,.page_intro__NrUPI>h2,.page_sectionHeading__K6Wm4 h2,.page_skills__ejZHj h2{font-family:var(--font-display),Georgia,serif;font-weight:600;line-height:1.04;letter-spacing:0}.page_intro__NrUPI>h2{font-size:52px;color:#13251f}.page_introCopy__IQ7qJ{width:min(760px,100%)}.page_introDetails__1rZlE{display:grid;grid-template-columns:1fr;grid-gap:44px;gap:44px;max-width:760px;margin-top:0;color:#42544f}.page_experienceDescription__1Cy_S,.page_introDetails__1rZlE p,.page_projectBody__2qz4_>p{font-size:16px;line-height:1.75}.page_experience__Q0l0p{--experience-accent:#91cbe3;--experience-border:rgba(145,203,227,.2);--experience-muted:#a9c5c7;--experience-body:#d0dddd;padding:110px 5vw 120px;color:#f7f5ee;background-color:#143e3a;background-image:linear-gradient(rgba(145,203,227,.045) 1px,transparent 0),linear-gradient(90deg,rgba(145,203,227,.045) 1px,transparent 0);background-size:36px 36px}.page_sectionHeading__K6Wm4{display:grid;grid-template-columns:minmax(150px,.4fr) 1.6fr;align-items:baseline;grid-gap:50px;gap:50px;width:min(1120px,100%);margin:0 auto 58px}.page_experience__Q0l0p .page_sectionHeading__K6Wm4{display:block;text-align:center}.page_sectionHeading__K6Wm4 h2{font-size:52px}.page_experienceList__c_msF{width:min(1120px,100%);margin:0 auto;border-top:1px solid var(--experience-border)}.page_experienceItem__bCMIb{display:grid;grid-template-columns:minmax(150px,.4fr) 1.35fr 130px;grid-gap:50px;gap:50px;align-items:start;padding:36px 0;border-bottom:1px solid var(--experience-border);transition:padding .24s ease,background .24s ease}.page_experienceItem__bCMIb:hover{padding-right:18px;padding-left:18px;background:rgba(145,203,227,.055)}.page_company__9cNnX,.page_period__ab3Pe{font-size:13px;font-weight:700;color:var(--experience-muted)}.page_experienceItem__bCMIb h3{font-family:var(--font-display),Georgia,serif;font-size:27px;font-weight:600}.page_company__9cNnX{margin-top:5px;color:var(--experience-accent)}.page_experienceDescription__1Cy_S{max-width:650px;margin-top:16px;color:var(--experience-body)}.page_logoWrap__oA5Qv{display:flex;align-items:center;justify-content:center;min-height:70px;padding:8px;background:#f7faf9;border:1px solid rgba(145,203,227,.28);border-radius:4px}.page_logoWrap__oA5Qv img{width:100%;height:54px;object-fit:contain}.page_projects__Vzd49{padding:120px 5vw 130px;color:#13251f;background:#f5f2eb}.page_projects__Vzd49 .page_sectionHeading__K6Wm4{display:block;text-align:center;margin-bottom:65px}.page_projectGrid__JR28b{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:24px;gap:24px;width:min(1120px,100%);margin:0 auto}.page_projectCard__S2cDb{overflow:hidden;background:#fff;border:1px solid rgba(19,37,31,.16);border-radius:6px;transition:transform .3s ease,box-shadow .3s ease}.page_projectCard__S2cDb:hover{box-shadow:0 18px 50px rgba(19,37,31,.12);transform:translateY(-6px)}.page_featuredProject__Ft6PS{grid-column:1/-1;display:grid;grid-template-columns:1.35fr .65fr}.page_projectImage__fib7K{position:relative;min-height:290px;overflow:hidden;background:#dce5df}.page_featuredProject__Ft6PS .page_projectImage__fib7K{min-height:440px}.page_projectImage__fib7K img{object-fit:cover;object-position:top center;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.page_projectCard__S2cDb:hover .page_projectImage__fib7K img{transform:scale(1.035)}.page_projectBody__2qz4_{display:flex;flex-direction:column;padding:30px}.page_featuredProject__Ft6PS .page_projectBody__2qz4_{justify-content:center;padding:48px}.page_projectLabel__z0DMD{margin-bottom:10px;color:#d44128}.page_projectBody__2qz4_ h3{margin-bottom:14px;font-family:var(--font-body),sans-serif;font-size:27px;font-weight:750;line-height:1.18}.page_projectBody__2qz4_>p{color:#52615d}.page_techList__TLVTC{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin-top:25px;list-style:none}.page_techList__TLVTC li{padding:6px 9px;font-family:var(--font-mono),monospace;font-size:11px;font-weight:700;color:#264f47;background:#edf3ef;border:1px solid #d4e2da;border-radius:3px}.page_skills__ejZHj{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:70px;gap:70px;padding:100px max(5vw,calc((100vw - 1120px) / 2));color:#13251f;background:#7dd3fc}.page_eyebrowDark__4svuu{margin-bottom:12px;color:#075985}.page_skills__ejZHj h2{max-width:500px;font-size:44px}.page_skills__ejZHj ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;border-top:1px solid rgba(19,37,31,.4)}.page_skills__ejZHj li{padding:15px 0;font-size:14px;font-weight:750;border-bottom:1px solid rgba(19,37,31,.4)}.page_footer__sHKi3{display:flex;flex-direction:column;align-items:center;padding:84px max(5vw,calc((100vw - 1120px) / 2));color:#f6f2e8;text-align:center;background:#10241f}.page_footerKicker__JpQox{color:#7dd3fc}.page_footer__sHKi3 h2{margin-bottom:30px;font-size:52px}.page_emailLink__eHC0i{display:inline-flex;gap:12px;align-items:center;padding-bottom:7px;font-size:18px;font-weight:650;border-bottom:1px solid #7dd3fc}.page_footerBottom__cWZ_v{display:flex;align-items:center;justify-content:space-between;padding-top:70px;margin-top:80px;font-size:12px;color:#aabcb5;border-top:1px solid hsla(0,0%,100%,.16)}.page_socials__ncsex{display:flex;gap:16px}.page_socials__ncsex a{display:grid;width:50px;height:50px;font-size:21px;color:#f6f2e8;border:1px solid hsla(0,0%,100%,.28);border-radius:50%;place-items:center;transition:color .18s ease,background .18s ease,transform .18s ease}.page_socials__ncsex a:hover{color:#13251f;background:#7dd3fc;transform:translateY(-3px)}@keyframes page_heroImageIn___H_Xk{0%{opacity:0;transform:scale(1.07)}to{opacity:1;transform:scale(1)}}@keyframes page_heroCopyIn__zFZ7C{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes page_sectionReveal__gJAqd{0%{opacity:0;transform:translateY(48px)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline:view()){.page_reveal__OOtgg{animation:page_sectionReveal__gJAqd linear both;animation-timeline:view();animation-range:entry 5% cover 26%}}@media (max-width:900px){.page_hero__SKW6o h1{font-size:68px}.page_heroStatement__UnRzJ{font-size:29px}.page_intro__NrUPI,.page_sectionHeading__K6Wm4{grid-template-columns:1fr;gap:25px}.page_experience__Q0l0p .page_sectionHeading__K6Wm4{grid-template-columns:1fr;align-items:start}.page_experience__Q0l0p .page_sectionHeading__K6Wm4 h2{grid-column:auto}.page_introCopy__IQ7qJ h2{font-size:48px}.page_experienceItem__bCMIb{grid-template-columns:130px 1fr 100px;gap:28px}.page_featuredProject__Ft6PS{grid-template-columns:1fr}.page_featuredProject__Ft6PS .page_projectImage__fib7K{min-height:390px}.page_skills__ejZHj{grid-template-columns:1fr;gap:42px}}@media (max-width:680px){.page_header__kVzhN{grid-template-columns:1fr auto;min-height:66px;padding:0 6vw}.page_nav__zpG_3{display:none}.page_contactLink__wr6_f{font-size:13px}.page_hero__SKW6o{align-items:flex-end;min-height:clamp(500px,calc(74svh - 66px),580px)}.page_heroContent__2lPR8{width:88vw;padding:42px 0}.page_hero__SKW6o h1{font-size:50px}.page_heroStatement__UnRzJ{max-width:90%;margin-top:18px;font-size:25px}.page_heroActions__8_tzb{flex-direction:column;gap:18px;align-items:flex-start;margin-top:30px}.page_intro__NrUPI{width:88vw;padding:58px 0 62px}.page_introCopy__IQ7qJ h2{font-size:38px}.page_introDetails__1rZlE{grid-template-columns:1fr;gap:22px;margin-top:0}.page_experience__Q0l0p,.page_projects__Vzd49{padding:80px 6vw 90px}.page_sectionHeading__K6Wm4 h2{font-size:39px}.page_experienceItem__bCMIb{grid-template-columns:1fr;gap:14px;padding:30px 0}.page_experienceItem__bCMIb:hover{padding-right:0;padding-left:0;background:transparent}.page_logoWrap__oA5Qv{justify-self:start;width:105px;min-height:55px}.page_logoWrap__oA5Qv img{height:42px}.page_projectGrid__JR28b{grid-template-columns:1fr}.page_featuredProject__Ft6PS{grid-column:auto}.page_featuredProject__Ft6PS .page_projectImage__fib7K,.page_projectImage__fib7K{min-height:245px}.page_featuredProject__Ft6PS .page_projectBody__2qz4_,.page_projectBody__2qz4_{padding:25px}.page_skills__ejZHj{padding:75px 6vw}.page_skills__ejZHj h2{font-size:36px}.page_skills__ejZHj ul{grid-template-columns:1fr}.page_footer__sHKi3{padding:68px 6vw}.page_footer__sHKi3 h2{font-size:40px}.page_emailLink__eHC0i{max-width:100%;overflow-wrap:anywhere;font-size:15px}.page_footerBottom__cWZ_v{gap:26px;align-items:flex-start;padding-top:35px;margin-top:60px}}@media (prefers-reduced-motion:reduce){.page_eyebrow__H9Slr,.page_heroActions__8_tzb,.page_heroImage__Q6NCQ,.page_heroStatement__UnRzJ,.page_heroVideo__tANmU,.page_hero__SKW6o h1,.page_reveal__OOtgg{opacity:1;animation:none;transform:none}.page_heroVideo__tANmU{display:none}.page_contactLink__wr6_f svg,.page_emailLink__eHC0i svg,.page_projectCard__S2cDb,.page_projectImage__fib7K img,.page_socials__ncsex a{transition:none}}