:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f5f6f7;--surface:#fff;--surface-soft:#edf1f3;--ink:#172630;--ink-soft:#31444f;--muted:#61717b;--line:#d8e0e4;--accent:#16627a;--accent-strong:#0e4c61;--accent-pale:#e2f0f4;--dark:#13242e;--dark-muted:#b8c6cc;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--page);color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:3px}::selection{color:var(--ink);background:#cce4ec}.page-width{width:min(1160px,100% - 64px);margin-inline:auto}.skip-link{z-index:100;background:var(--dark);color:#fff;padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{color:#fff;transform:translateY(0)}.site-header{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f6f7f0;border-bottom:1px solid #d8e0e4e0;justify-content:space-between;align-items:center;gap:24px;width:100%;min-height:76px;padding-inline:max(32px,50% - 640px);display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.025em;white-space:nowrap;align-items:center;gap:10px;font-size:13px;font-weight:720;display:inline-flex}.wordmark-mark{background:var(--dark);color:#fff;width:34px;height:34px;font-family:var(--mono);letter-spacing:-.08em;place-items:center;font-size:11px;display:grid}.main-nav{align-items:center;gap:25px;display:flex}.main-nav a,.header-resume,.header-contact{white-space:nowrap;font-size:11px;font-weight:650}.main-nav a{color:var(--muted)}.main-nav a:hover{color:var(--ink)}.header-actions{align-items:center;gap:10px;display:flex}.header-resume{color:var(--ink-soft);padding:10px 13px}.header-contact{border:1px solid var(--ink);background:var(--ink);color:#fff;align-items:center;gap:10px;padding:10px 14px;display:inline-flex}.header-contact:hover{background:var(--accent-strong);color:#fff}.hero{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:center;gap:clamp(42px,7vw,96px);padding-top:92px;padding-bottom:76px;display:grid}.hero-copy{max-width:720px}.eyebrow,.section-kicker,.project-index,.project-period,.project-kind,.case-label,.aside-overline,.aside-top,.aside-bottom,.company-index,.company-period,.education-period,.resume-kicker{font-family:var(--mono);letter-spacing:.055em;font-size:10px}.eyebrow{color:var(--accent);text-transform:uppercase;align-items:center;gap:10px;margin:0 0 22px;font-weight:700;display:flex}.eyebrow-dot{background:#2d9877;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #e0f0e9}.hero h1{letter-spacing:-.075em;margin:0;font-size:clamp(50px,6.4vw,78px);font-weight:740;line-height:1.04}.hero-period{color:var(--accent)}.hero-stackline{color:var(--accent-strong);letter-spacing:-.025em;margin:17px 0 12px;font-size:clamp(16px,2vw,21px);font-weight:690}.hero-description{max-width:660px;color:var(--muted);margin:0;font-size:14px;line-height:1.85}.hero-meta{flex-wrap:wrap;gap:9px 18px;margin-top:20px;display:flex}.hero-meta span{color:var(--ink-soft);align-items:center;gap:5px;font-size:11px;font-weight:560;display:inline-flex}.hero-meta span+span:before{content:"";background:#9aabb3;border-radius:50%;width:4px;height:4px;margin-right:10px}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:29px;display:flex}.button{min-height:45px;font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:14px;padding:0 16px;font-size:11px;font-weight:680;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-strong);color:#fff}.button-secondary{color:var(--ink);background:0 0;border-color:#cbd5da}.button-secondary:hover{border-color:var(--accent);background:var(--accent-pale);color:var(--accent-strong)}.button-text{color:var(--muted);padding-inline:8px}.button-text:hover{color:var(--accent-strong)}.hero-socials{flex-wrap:wrap;gap:10px 19px;margin-top:23px;display:flex}.hero-socials a{color:var(--muted);text-underline-offset:4px;font-size:10px;-webkit-text-decoration:underline #c6d0d5;text-decoration:underline #c6d0d5}.hero-aside{background:var(--dark);color:#fff;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:360px;padding:24px;display:flex;box-shadow:0 22px 50px #13242e1f}.aside-top,.aside-bottom{color:#9fb0b8;text-transform:uppercase;justify-content:space-between;gap:12px;font-size:9px;display:flex}.aside-main{margin-block:35px 24px}.aside-overline{color:#8dc8d9;text-transform:uppercase;margin:0 0 12px}.aside-main h2{letter-spacing:-.065em;max-width:260px;margin:0;font-size:clamp(30px,3vw,40px);font-weight:680;line-height:1.08}.aside-main>p:last-child{max-width:290px;color:var(--dark-muted);margin:15px 0 0;font-size:12px;line-height:1.8}.aside-stack{border-top:1px solid #344954;gap:8px;padding-block:17px;display:grid}.aside-stack span{color:#9fb0b8;margin-bottom:2px;font-size:10px}.aside-stack strong{color:#f2f7f8;font-size:12px;font-weight:630}.aside-bottom{text-transform:none;border-top:1px solid #344954;padding-top:13px;font-size:9px}.proof-strip{border:1px solid var(--line);background:var(--surface);border-radius:6px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.proof-strip>div{flex-direction:column;justify-content:center;gap:4px;min-height:86px;padding:15px 19px;display:flex}.proof-strip>div+div{border-left:1px solid var(--line)}.proof-strip strong{color:var(--ink);letter-spacing:-.025em;font-size:13px;font-weight:720}.proof-strip span{color:var(--muted);font-size:10px;line-height:1.45}.section{padding-block:100px}.section-muted{background:var(--surface-soft)}.section-heading{grid-template-columns:minmax(155px,.35fr) minmax(0,1fr);gap:42px;margin-bottom:43px;display:grid}.section-kicker{color:var(--muted);text-transform:uppercase;align-items:flex-start;gap:12px;padding-top:11px;display:flex}.section-kicker span:first-child{color:var(--accent);font-weight:700}.section-heading h2{letter-spacing:-.06em;max-width:740px;margin:0;font-size:clamp(30px,4vw,45px);font-weight:710;line-height:1.13}.section-heading>div:last-child>p{max-width:700px;color:var(--muted);margin:14px 0 0;font-size:13px;line-height:1.8}.projects-list{gap:18px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:7px;grid-template-columns:165px minmax(0,1fr);gap:34px;padding:28px;display:grid}.project-index{color:var(--muted);text-transform:uppercase;flex-direction:column;gap:9px;display:flex}.project-index span:first-child{color:var(--accent);font-size:12px;font-weight:700}.project-index span:last-child{max-width:135px;font-size:9px;line-height:1.6}.project-content{min-width:0}.project-title-row{justify-content:space-between;align-items:flex-start;gap:22px;display:flex}.project-period{color:var(--muted);text-transform:uppercase;margin:0 0 6px;font-size:9px}.project-title-row h3{letter-spacing:-.055em;margin:0;font-size:clamp(22px,2.7vw,29px);font-weight:720;line-height:1.2}.project-kind{background:var(--accent-pale);color:var(--accent-strong);text-transform:uppercase;border-radius:3px;flex:none;padding:6px 9px;font-size:8px;font-weight:700}.project-summary{max-width:780px;color:var(--ink-soft);margin:15px 0 19px;font-size:13px;font-weight:560;line-height:1.8}.case-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding-block:16px;display:grid}.case-label{color:var(--accent-strong);text-transform:uppercase;margin-bottom:7px;font-size:9px;font-weight:750;display:block}.case-block p{color:var(--muted);margin:0;font-size:11px;line-height:1.75}.project-highlights{margin-top:18px}.project-highlights ul,.role-highlights,.education-entry ul,.resume-document ul{gap:7px;margin:9px 0 0;padding-left:18px;display:grid}.project-highlights li,.role-highlights li,.education-entry li,.resume-document li{color:var(--ink-soft);padding-left:3px;font-size:11px;line-height:1.7}.project-highlights li::marker{color:var(--accent)}.role-highlights li::marker{color:var(--accent)}.education-entry li::marker{color:var(--accent)}.tag-list{flex-wrap:wrap;gap:7px;margin-top:19px;display:flex}.tag{color:#425762;min-height:24px;font-family:var(--mono);background:#f8fafb;border:1px solid #d9e1e5;border-radius:3px;align-items:center;padding:4px 8px;font-size:9px;line-height:1.4;display:inline-flex}.project-note{color:var(--muted);background:#f5f9fa;border-left:2px solid #a9cbd5;margin:15px 0 0;padding:9px 11px;font-size:10px;line-height:1.65}.experience-list{gap:30px;display:grid}.experience-company{border-top:1px solid #cbd5da;grid-template-columns:205px minmax(0,1fr);gap:34px;padding:26px 0 0;display:grid}.company-heading{flex-direction:column;gap:10px;display:flex}.company-heading>div{align-items:center;gap:10px;display:flex}.company-index{color:var(--accent);font-size:9px;font-weight:750}.company-heading h3{letter-spacing:-.045em;margin:0;font-size:18px;font-weight:730}.company-period{color:var(--muted);font-size:9px;line-height:1.7}.company-roles{display:grid}.role-entry{border-left:1px solid #c4d1d7;padding:0 0 25px 18px}.role-entry+.role-entry{border-top:1px solid #d5dfe3;padding-top:25px}.role-heading{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.role-heading>div{flex-wrap:wrap;align-items:baseline;gap:6px 11px;display:flex}.role-heading h4{letter-spacing:-.02em;margin:0;font-size:14px;font-weight:720}.role-heading>div>span{color:var(--muted);font-size:9px}.role-heading time{color:var(--muted);font-family:var(--mono);flex:none;font-size:9px}.role-summary{color:var(--muted);margin:9px 0 0;font-size:11px;line-height:1.8}.role-highlights{margin-top:10px}.compact-tags{gap:5px;margin-top:13px}.compact-tags .tag{min-height:21px;padding:3px 7px;font-size:8px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.skill-card{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:22px}.skill-card-heading{align-items:center;gap:12px;display:flex}.skill-card-heading>span{color:var(--accent);font-family:var(--mono);font-size:9px;font-weight:750}.skill-card-heading h3{letter-spacing:-.03em;margin:0;font-size:15px;font-weight:720}.skill-card>p{min-height:40px;color:var(--muted);margin:9px 0 0;font-size:10px;line-height:1.65}.skill-card .tag-list{margin-top:15px}.additional-skills{border:1px solid var(--line);background:var(--surface);border-radius:5px;grid-template-columns:155px minmax(0,1fr);align-items:baseline;gap:22px;margin-top:16px;padding:17px 20px;display:grid}.additional-skills>span{color:var(--ink);font-size:11px;font-weight:720}.additional-skills p{color:var(--muted);margin:0;font-size:10px;line-height:1.75}.education-list{gap:0;display:grid}.education-entry{border-top:1px solid #cbd5da;grid-template-columns:175px minmax(0,1fr);gap:32px;padding:23px 0;display:grid}.education-entry:last-child{border-bottom:1px solid #cbd5da}.education-period{color:var(--accent);padding-top:3px;font-size:9px;font-weight:700}.education-entry h3{letter-spacing:-.035em;margin:0;font-size:16px;font-weight:720}.education-institution{color:var(--ink-soft);margin:5px 0 0;font-size:11px;font-weight:620}.education-status{color:var(--muted);margin:6px 0 0;font-size:10px}.education-entry ul{margin-top:10px}.certification-block{background:var(--surface);border:1px solid #cbd5da;border-radius:6px;margin-top:31px;padding:21px}.certification-heading{flex-wrap:wrap;justify-content:space-between;gap:8px 20px;display:flex}.certification-provider{color:var(--muted);font-size:10px}.certification-list{display:grid}.certification-list article{justify-content:space-between;gap:16px;padding:14px 0 0;display:flex}.certification-list article+article{border-top:1px solid var(--line);margin-top:13px}.certification-list h3{margin:0;font-size:12px;font-weight:690}.certification-list p{color:var(--muted);margin:4px 0 0;font-size:10px}.certification-list>article>span{color:var(--muted);font-family:var(--mono);flex:none;font-size:9px}.language-row{justify-content:flex-start;gap:28px;margin-top:16px;display:flex}.language-row>div{align-items:baseline;gap:12px;padding:10px 0;display:flex}.language-row span{color:var(--muted);font-size:11px}.language-row strong{color:var(--ink);font-size:11px;font-weight:700}.about-section{grid-template-columns:175px minmax(0,1fr);gap:42px;padding-block:86px;display:grid}.about-label{color:var(--muted);font-family:var(--mono);text-transform:uppercase;gap:12px;padding-top:10px;font-size:10px;display:flex}.about-label span:first-child{color:var(--accent)}.about-content h2{letter-spacing:-.06em;max-width:720px;margin:0;font-size:clamp(28px,3.5vw,40px);font-weight:720;line-height:1.16}.about-content p{max-width:730px;color:var(--muted);margin:15px 0 0;font-size:13px;line-height:1.9}.contact-section{background:var(--dark);color:#fff;padding-block:78px}.contact-inner{grid-template-columns:minmax(0,1fr) minmax(240px,.38fr);align-items:end;gap:70px;display:grid}.contact-section .eyebrow{color:#9bd1df}.contact-section h2{letter-spacing:-.065em;max-width:720px;margin:0;font-size:clamp(34px,4.6vw,54px);font-weight:700;line-height:1.1}.contact-section p:not(.eyebrow){color:#c1ccd1;max-width:600px;margin:17px 0 0;font-size:12px;line-height:1.8}.contact-actions{flex-direction:column;align-items:flex-start;gap:13px;display:flex}.button-light{color:var(--dark);background:#fff}.button-light:hover{color:var(--dark);background:#e3f0f3}.contact-link{color:#d8e2e6;text-underline-offset:4px;font-size:11px;-webkit-text-decoration:underline #51636d;text-decoration:underline #51636d}.contact-email{color:#aab9c0;font-family:var(--mono);margin-top:5px;font-size:10px}.site-footer{width:min(1280px,100% - 64px);min-height:88px;color:var(--muted);justify-content:space-between;align-items:center;gap:18px;margin-inline:auto;display:flex}.footer-wordmark{color:var(--ink);font-size:14px;font-weight:720}.site-footer>p{margin:0;font-size:10px}.footer-links{align-items:center;gap:17px;display:flex}.footer-links a,.footer-year{font-size:10px}.resume-page{background:#eef1f3;min-height:100vh;padding:28px 20px 60px}.resume-toolbar{justify-content:space-between;align-items:center;width:min(850px,100%);margin:0 auto 18px;display:flex}.back-link{color:var(--muted);font-size:11px}.resume-document{background:#fff;width:min(850px,100%);margin-inline:auto;padding:54px 64px;box-shadow:0 12px 42px #14273114}.resume-header{border-bottom:2px solid #172630;padding-bottom:20px}.resume-header h1{letter-spacing:-.06em;margin:0;font-size:31px;font-weight:760;line-height:1.1}.resume-title{margin:7px 0 0;font-size:14px;font-weight:700}.resume-location,.resume-contact-line{color:#414d55;margin:5px 0 0;font-size:9.5px}.resume-summary{color:#303b42;margin:12px 0 0;font-size:10px;line-height:1.65}.resume-section{padding-top:20px}.resume-section>h2{color:#172630;letter-spacing:.035em;text-transform:uppercase;border-bottom:1px solid #bcc6cc;margin:0 0 10px;padding-bottom:5px;font-size:12px;font-weight:750}.resume-skill-line,.resume-document p{color:#303b42;margin:5px 0 0;font-size:9.5px;line-height:1.55}.resume-company{margin-top:13px}.resume-company+.resume-company{margin-top:18px}.resume-company-heading,.resume-role-heading{flex-wrap:wrap;justify-content:space-between;gap:4px 14px;display:flex}.resume-company-heading h3{margin:0;font-size:11px;font-weight:750}.resume-company-heading span,.resume-role-heading span{color:#4d5a62;font-size:9px}.resume-role{margin-top:10px}.resume-role-heading h4{margin:0;font-size:10px;font-weight:720}.resume-document ul{gap:3px;margin-top:5px}.resume-document li{color:#303b42;font-size:9px;line-height:1.5}.resume-project{margin-top:13px}.resume-education{margin-top:12px}.resume-certification{margin-top:7px!important}@media (max-width:900px){.site-header{gap:15px;padding-inline:24px}.main-nav{gap:15px}.main-nav a{font-size:10px}.hero{grid-template-columns:minmax(0,1.1fr) minmax(270px,.9fr);gap:35px;padding-top:68px}.experience-company{grid-template-columns:165px minmax(0,1fr);gap:25px}.contact-inner{gap:38px}}@media (max-width:700px){html{scroll-padding-top:20px}.page-width{width:min(100% - 36px,560px)}.site-header{flex-wrap:wrap;gap:12px;padding:13px 18px;position:relative}.wordmark{font-size:12px}.main-nav{order:3;justify-content:space-between;gap:8px;width:100%;padding-top:4px}.main-nav a{font-size:9px}.header-actions{margin-left:auto}.header-resume{padding:8px 5px;font-size:10px}.header-contact{padding:8px 10px;font-size:10px}.hero{grid-template-columns:1fr;gap:30px;padding-top:58px;padding-bottom:46px}.hero h1{font-size:clamp(44px,11vw,64px)}.hero-stackline{font-size:16px}.hero-description{font-size:13px}.hero-meta{gap:7px 12px}.hero-meta span{font-size:10px}.hero-meta span+span:before{margin-right:5px}.hero-actions{gap:8px}.button{min-height:42px;padding-inline:12px;font-size:10px}.hero-socials{gap:10px 15px}.hero-socials a{font-size:9px}.hero-aside{min-height:310px;padding:21px}.proof-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.proof-strip>div{min-height:76px;padding:12px}.proof-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.proof-strip>div:nth-child(4){border-top:1px solid var(--line)}.proof-strip strong{font-size:11px}.proof-strip span{font-size:9px}.section{padding-block:66px}.section-heading{grid-template-columns:1fr;gap:10px;margin-bottom:28px}.section-kicker{padding-top:0}.section-heading h2{font-size:32px}.section-heading>div:last-child>p{font-size:12px}.project-card{grid-template-columns:1fr;gap:17px;padding:20px}.project-index{flex-direction:row;align-items:baseline;gap:12px}.project-index span:last-child{max-width:none}.project-title-row{gap:10px}.project-title-row h3{font-size:23px}.project-kind{display:none}.project-summary{font-size:12px}.case-grid{grid-template-columns:1fr;gap:13px}.case-block p,.project-highlights li{font-size:10px}.experience-company{grid-template-columns:1fr;gap:18px;padding-top:21px}.company-heading{gap:5px}.company-heading>div{gap:8px}.company-period{margin-left:20px}.role-entry{padding-left:13px}.role-heading{flex-direction:column;gap:5px}.role-heading time{font-size:8px}.role-summary,.role-highlights li{font-size:10px}.skills-grid{grid-template-columns:1fr}.skill-card{padding:18px}.skill-card>p{min-height:0}.additional-skills{grid-template-columns:1fr;gap:7px;padding:15px}.education-entry{grid-template-columns:1fr;gap:8px;padding-block:18px}.certification-block{padding:16px}.certification-list article{flex-direction:column;gap:4px}.language-row{margin-top:8px}.about-section{grid-template-columns:1fr;gap:15px;padding-block:65px}.about-label{padding:0}.about-content h2{font-size:31px}.about-content p{font-size:12px}.contact-section{padding-block:60px}.contact-inner{grid-template-columns:1fr;gap:28px}.contact-section h2{font-size:36px}.contact-section p:not(.eyebrow){font-size:11px}.site-footer{flex-wrap:wrap;width:min(100% - 36px,560px);padding-block:22px}.site-footer>p{width:calc(100% - 80px)}.footer-links{order:3;gap:14px;width:100%}.footer-year{margin-left:auto}.resume-page{padding:12px 8px 30px}.resume-document{padding:26px 19px}.resume-toolbar{padding-inline:5px}.resume-header h1{font-size:26px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{@page{size:A4;margin:13mm}html,body{font-size:9pt;color:#000!important;background:#fff!important}.no-print{display:none!important}.resume-page{background:#fff;min-height:0;padding:0}.resume-document{width:100%;box-shadow:none;margin:0;padding:0}.resume-header{border-bottom:1.5px solid #000;padding-bottom:12px}.resume-header h1{font-size:22pt}.resume-title{font-size:11pt}.resume-location,.resume-contact-line,.resume-summary,.resume-skill-line,.resume-document p{font-size:8.5pt}.resume-section{padding-top:13px}.resume-section>h2{border-color:#666;font-size:9.5pt}.resume-company-heading h3{font-size:9.5pt}.resume-role-heading h4{font-size:9pt}.resume-company-heading span,.resume-role-heading span,.resume-document li{font-size:8pt}.resume-company,.resume-role,.resume-project,.resume-education{break-inside:avoid}a{color:#000!important;text-decoration:none!important}}
