body{font-weight:400;line-height:1.65}.recruiter-summary{border-bottom:1px solid var(--line);grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:26px;padding-block:36px;display:grid}.recruiter-summary img{border-radius:3px}.recruiter-summary p{max-width:660px;font-size:17px}.recruiter-summary .recruiter-facts{color:var(--quiet);margin-top:8px;font-size:14px}.recruiter-summary-links{gap:12px;display:grid}.profile-languages{color:var(--quiet);margin-top:26px;font-size:14px}.home-section-nav{z-index:4;background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px 16px;padding-block:8px;display:flex;position:sticky;top:0}.home-section-nav a{align-items:center;min-height:44px;font-size:14px;display:inline-flex}.home-section-nav a:hover{color:var(--rose)}.home-editorial #preuves,.home-editorial #travaux,.home-editorial #parcours,#parcours-bref{scroll-margin-top:90px}.career-overview{padding-block:36px 42px}.career-overview-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.career-overview h2{font-size:25px}.career-overview-heading .text-link{align-items:center;gap:8px;min-height:44px;display:inline-flex}.career-milestones{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-block:26px 30px;padding:0;list-style:none;display:grid}.career-milestones li{border-top:1px solid var(--line);min-width:0;padding-top:16px}.career-milestones .milestone-period{color:var(--rose);margin-bottom:10px;font-size:12px}.career-milestones h3{margin-bottom:8px;font-size:19px}.career-milestones p{color:var(--quiet);font-size:13px}.career-degree{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:24px 40px;padding-top:22px;display:flex}.career-degree dt{color:var(--quiet);margin-bottom:8px;font-size:12px}.career-degree dd{font-size:17px}.career-degree dd span{color:var(--quiet);margin-top:6px;font-size:14px;display:block}.home-secondary-actions{align-items:center;gap:28px;display:flex}.evidence-row{border-top:1px solid var(--line);grid-template-columns:190px minmax(0,1fr) 230px;gap:36px;padding-block:30px;display:grid}.evidence-domain h3{font-size:20px;line-height:1.3}.evidence-domain p{color:var(--quiet);margin-top:12px;font-size:13px}.evidence-work>p{color:var(--quiet);font-size:15px;line-height:1.7}.evidence-work .evidence-result{color:var(--ink);letter-spacing:-.025em;margin-bottom:14px;font-size:23px;line-height:1.3}.evidence-work .evidence-limit{color:var(--faint);margin-top:12px;font-size:12px}.evidence-links{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.evidence-links a{align-items:center;gap:10px;min-height:44px;font-size:14px;display:inline-flex}.evidence-links .arrow{flex-shrink:0;width:15px;height:15px}.evidence-links a:hover{color:var(--rose)}.evidence-context{max-width:800px;color:var(--quiet);margin-top:24px;font-size:13px}@media (max-width:1000px){.evidence-row{grid-template-columns:170px minmax(0,1fr);gap:24px}.evidence-links{grid-column:2}}@media (max-width:600px){.home-section-nav a{font-size:12px}.career-milestones{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}.evidence-row{grid-template-columns:1fr;gap:20px}.evidence-domain h3{color:var(--rose);font-size:18px}.evidence-domain p{margin-top:6px}.evidence-work .evidence-result{font-size:24px}.evidence-links{grid-column:1;gap:4px}}.engineering-decisions{gap:24px;margin-top:28px;display:grid}.engineering-decisions dt{color:var(--ink);margin-bottom:8px;font-size:16px}.engineering-decisions dd{color:var(--quiet);font-size:16px;line-height:1.8}.engineering-flow{flex-wrap:wrap;gap:8px;margin-block:30px;padding:0;list-style:none;display:flex}.engineering-flow li{border:1px solid var(--line);color:var(--ink);padding:10px 14px;font-size:13px}.case-resources .case-source{width:fit-content;margin-top:18px;display:flex}.career-public-work .career-contribution{color:var(--ink);max-width:760px;margin-top:18px;font-size:18px}.career-public-work .public-product-link{align-items:center;gap:10px;min-height:44px;margin-top:18px;display:inline-flex}.career-public-work .career-confidentiality{margin-top:26px;font-size:13px}.study-result-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-block:28px;display:grid}.study-result-facts dt{color:var(--quiet);font-size:13px}.study-result-facts dd{color:var(--ink);margin-top:5px;font-size:18px}.study-results-table{border-collapse:collapse;width:100%;margin-block:28px;font-size:15px}.study-results-table caption{text-align:left;color:var(--quiet);margin-bottom:14px}.study-results-table th,.study-results-table td{text-align:left;border-bottom:1px solid var(--line);padding:15px 12px 15px 0;font-weight:400}.study-results-table td{white-space:nowrap;color:var(--rose)}@media (max-width:760px){.recruiter-summary{grid-template-columns:48px minmax(0,1fr);gap:18px}.recruiter-summary img{width:48px;height:60px}.recruiter-summary-links{grid-column:1/-1;gap:28px;display:flex}.study-result-facts{grid-template-columns:1fr;gap:14px}.study-results-table{font-size:13px}}::selection{color:#0c0b0a;background:#dba0bd}.wrap{width:min(1120px,100% - 96px)}h1,h2,h3{letter-spacing:-.035em;font-weight:400}h2{font-size:clamp(32px,3.5vw,44px);line-height:1.12}button,input,select,textarea{font-family:var(--sans)}.eyebrow,.section-index,.shortcut-label,.article-meta,.note-meta,.note-read-time{font-family:var(--sans);letter-spacing:.015em;text-transform:none;font-size:13px;font-weight:400}.section-index{margin-bottom:22px}.text-link{font-size:15px}.quiet{color:var(--quiet)}.site-header{border:0;gap:32px;height:96px}.identity{gap:13px;font-size:15px;font-weight:450}.identity-caption{margin-top:1px;font-size:11px;font-weight:350}.monogram{letter-spacing:-.085em;font-size:38px;font-weight:550}.site-header nav{color:var(--quiet);gap:28px;font-size:14px;font-weight:400}.site-header nav a{padding-block:10px;font-size:14px}.site-header nav a[aria-current]{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rose);text-decoration-color:var(--rose);text-underline-offset:8px;border:0}.site-header nav .cv-link{color:var(--ink);border:1px solid #fff5;border-radius:999px;padding:8px 20px}.home-hero{--hero-paper:#f2efeb;--hero-rose:#dba0bd;background:radial-gradient(ellipse at 50% -25%, #432632 0, #21131a 30%, var(--paper) 70%)}.home-light-shade{background:linear-gradient(180deg, #0c0b0a26 10%, transparent 35%, #0c0b0a40 65%, var(--paper) 100%)}.home-hero h1{letter-spacing:-.06em;font-size:clamp(64px,8.8vw,126px);font-weight:400}.home-hero-eyebrow{font-family:var(--sans);letter-spacing:.02em;text-transform:none;font-size:14px;font-weight:350}.home-hero-role{font-size:28px;font-weight:400}.home-hero-description{color:var(--hero-paper);text-shadow:0 2px 10px #0c0b0a,0 0 25px #0c0b0a;font-size:17px;font-weight:350}.home-hero-actions a{min-height:47px;font-size:14px}.home-work-link{background:var(--rose);border:1px solid var(--rose);color:var(--paper);border-radius:999px;padding-inline:24px}.home-work-link:hover{border-color:var(--rose);color:var(--rose);background:#ffffff0a}.home-hero-bottom{font-family:var(--sans);border-top:0;font-size:12px;font-weight:350}.home-opening-caption,.home-skip-opening{font-family:var(--sans);letter-spacing:.02em;text-transform:none;font-size:12px}.home-editorial .intro{grid-template-columns:180px minmax(0,720px);justify-content:space-between;gap:48px 80px;padding-block:110px 112px;display:grid}.intro-copy{grid-area:1/2}.home-editorial .intro h2{max-width:600px;margin-top:22px;font-size:clamp(32px,3.4vw,44px);font-weight:400;line-height:1.12}.home-editorial .intro .eyebrow{margin-bottom:0;font-size:13px}.intro-title{color:var(--ink);margin-top:28px;font-size:20px;font-weight:400}.intro-specialization{font-size:15px}.intro-description{max-width:660px;margin-top:26px;font-size:18px;font-weight:350;line-height:1.65}.recruitment-status{margin-top:24px;font-size:14px}.intro-links{gap:16px 25px;margin-top:26px}.intro-links a,.intro-links a:first-child{color:var(--ink);border:0;font-size:14px}.intro-links a:hover{color:var(--rose)}.intro-aside{grid-area:1/1;padding-top:52px}.portrait-caption{margin:0;display:block}.portrait-caption img{filter:none;border-radius:2px;width:140px;height:176px}.portrait-caption p{margin-top:20px;font-size:14px}.portrait-caption p span{font-size:12px}.profile-facts{grid-column:2;gap:30px;padding-top:28px}.profile-facts dt{font-family:var(--sans);font-size:13px}.profile-facts dd{margin-top:8px;font-size:19px;font-weight:400}.profile-facts dd>span{font-size:13px}.section{border-top:1px solid var(--line);padding-block:80px;scroll-margin-top:30px}.section-heading{gap:40px;margin-bottom:52px}.section-heading h2{color:var(--rose)}.section-heading>p{max-width:320px;font-size:15px}.project-shortcuts{margin-bottom:42px}.shortcut-label{margin-bottom:20px}.project-shortcuts>div{gap:8px 28px}.project-shortcuts a{border-color:#ffffff1a;padding-block:16px}.project-shortcuts a>span{font-size:12px}.project-shortcuts a>strong{margin-top:3px;font-size:17px;font-weight:400}.catalogue-tools{grid-template-columns:minmax(0,1fr) 260px auto;gap:24px;padding-block:20px}.catalogue-tools label{font-size:13px}.catalogue-tools input,.catalogue-tools select{background:#ffffff03;border-color:#ffffff38;border-radius:4px;min-height:48px;margin-top:9px;padding:11px 14px;font-size:15px}input::placeholder,textarea::placeholder{color:#958c87}select option{color:var(--ink);background:#191614}.reset-filter{min-height:48px;color:var(--quiet);font-size:14px}.catalogue-status{border-bottom:0;padding-block:18px 25px}.catalogue-status>p{font:13px var(--sans)}.catalogue-status nav{color:var(--quiet);gap:24px;font-size:13px}.project-group{margin-top:62px}.group-heading{align-items:baseline;margin-bottom:30px}.group-heading h3{max-width:650px;font-size:30px;font-weight:400}.group-heading p:not(.section-index){margin-top:13px;font-size:15px}.group-count{font:14px var(--mono);color:var(--rose);padding:0}.project-cards{gap:40px}.project-card{border-color:var(--line);padding-block:28px}.project-number{font:12px var(--mono);color:var(--faint);display:none}.project-card-meta{color:var(--faint);gap:12px;font-size:12px}.project-card-meta>span:last-child{color:var(--faint)}.project-card h4{letter-spacing:-.025em;margin-top:14px;font-size:28px;font-weight:400}.project-card h4 svg{opacity:.6;width:18px;height:18px}.project-card-summary{margin-top:18px;font-size:16px;font-weight:350;line-height:1.65}.project-card-role{color:var(--faint);margin-top:15px;font-size:13px}.project-card-bottom{flex-wrap:wrap;justify-content:flex-start;gap:8px 22px;padding-top:20px}.project-proof-link,.project-read-link{align-items:center;gap:6px;min-height:44px;display:inline-flex}.project-proof-link{color:var(--quiet);font-size:14px}.project-proof-link:hover{color:var(--rose)}.project-read-link{color:var(--ink);font-size:14px}.project-read-link:hover{color:var(--rose)}.project-card .pf-project-screenshot{margin-bottom:26px}.pf-screenshot-frame{border:1px solid var(--line);background:#171513;border-radius:3px}.pf-project-screenshot figcaption{font-size:12px}.project-group[data-project-group=professional] .project-cards{display:block}.project-group[data-project-group=professional] .project-card{grid-template-columns:42px minmax(200px,.9fr) minmax(0,1.2fr);gap:24px;padding-block:32px;display:grid}.project-group[data-project-group=professional] .project-number{padding-top:5px;display:block}.project-group[data-project-group=professional] .project-card-meta>span:last-child{display:none}.project-group[data-project-group=professional] .project-card-summary{margin-top:0}.project-group[data-project-group=professional] .project-card h4 a{justify-content:flex-start;gap:12px}.project-group[data-project-group=personal] .project-cards{display:block}.project-group[data-project-group=personal] .project-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:0 64px;padding-block:40px;display:grid}.project-group[data-project-group=personal] .project-card-heading{grid-column:1}.project-group[data-project-group=personal] .project-card-description{grid-column:2}.project-group[data-project-group=personal] .project-card:not(:has(figure)) .project-card-summary{margin-top:0}.project-group[data-project-group=personal] .pf-project-screenshot{grid-area:1/1/3;margin:0}.project-group[data-project-group=personal] .project-card:has(figure) .project-card-heading{grid-column:2}.project-group[data-project-group=personal] .project-card:has(figure) .project-card-description{grid-row:2}.project-group[data-project-group=open-source] .project-card{grid-template-columns:110px minmax(0,1fr);align-content:start;gap:0 24px;display:grid}.project-group[data-project-group=open-source] .pf-project-screenshot{grid-area:1/1/3;margin:3px 0 0}.project-group[data-project-group=open-source] .pf-project-screenshot figcaption{font-size:10px}.project-group[data-project-group=open-source] .project-card-heading,.project-group[data-project-group=open-source] .project-card-description{grid-column:2}.project-group[data-project-group=open-source] .project-card:not(:has(figure)){display:block}.project-group[data-project-group=open-source] .project-card h4{font-size:24px}.experience-row{grid-template-columns:165px minmax(0,1fr) minmax(0,1fr);gap:40px;padding-block:32px}.experience-row .experience-date{font-family:var(--sans);font-size:13px}.experience-date span{font-size:12px}.experience-name h3{font-size:18px;font-weight:400}.experience-name p,.experience-scope{font-size:13px}.experience-name>img,.organization-name img,.case-organization-logo{filter:none}.experience-name>img[src="/companies/locapay.webp"],.case-organization-logo[src="/companies/locapay.webp"]{box-sizing:content-box;background:#f2efeb;border-radius:2px;padding:8px 12px}.organization-name{font-size:16px;font-weight:400}.experience-row>p:not(.experience-date){font-size:16px;font-weight:350;line-height:1.65}.notes-list{gap:40px}.note-row h3{font-size:25px;font-weight:400;line-height:1.25}.note-row>p{font-size:16px;font-weight:350;line-height:1.65}.writing-section .notes-list{display:block}.writing-section .note-row{grid-template-columns:160px minmax(0,1fr) 95px;gap:12px 40px;padding-block:34px;display:grid}.writing-section .note-meta{flex-direction:column;grid-area:1/1/4;justify-content:flex-start;gap:12px;display:flex}.writing-section .note-meta span{color:var(--rose)}.writing-section .note-row h3{grid-area:1/2;max-width:700px;font-size:28px}.writing-section .note-row>p{grid-column:2;max-width:680px;margin-top:4px}.writing-section .note-read-time{text-align:right;grid-area:1/3;margin:5px 0 0;font-size:12px}.research-section{gap:90px;padding-block:90px}.research-copy h2{max-width:450px;color:var(--rose);font-size:40px}.research-copy>p:not(.section-index){margin-top:24px;font-size:17px;font-weight:350;line-height:1.65}.lab-note{border:1px solid var(--line);background:#ffffff03;border-radius:3px;align-self:start;margin-top:42px;padding:36px}.lab-label{font-family:var(--sans);color:var(--faint);font-size:13px}.lab-note h3{margin-block:20px;font-size:28px;font-weight:400}.lab-note>p:not(.lab-label){font-size:16px;line-height:1.65}.lab-note small{color:var(--faint);font-size:13px;line-height:1.65}.lab-links{gap:24px;margin-block:24px;font-size:14px}.page-main{padding-block:36px 80px}.page-heading{max-width:940px;padding-block:40px 56px}.page-heading h1{letter-spacing:-.04em;margin-top:24px;font-size:clamp(38px,4.2vw,52px);font-weight:400;line-height:1.08}.page-heading>p:not(.eyebrow){max-width:680px;margin-top:28px;font-size:18px;font-weight:350;line-height:1.65}.page-main .catalogue-page{padding-top:0}.about-intro{grid-template-columns:200px minmax(0,680px);justify-content:space-between;gap:80px;margin-bottom:80px}.about-portrait{filter:none;width:200px;height:250px}.about-intro p{font-size:18px;font-weight:350;line-height:1.7}.about-intro .text-link{margin-top:32px}.about-references{gap:32px}.contact-page{gap:100px;padding-block:0 48px}.contact-copy p{margin-block:0 32px;font-size:18px;font-weight:350;line-height:1.65}.contact-email{letter-spacing:-.025em;align-items:center;gap:15px;margin-bottom:40px;font-size:25px;display:inline-flex}.contact-socials{font-size:15px}.contact-form{border:0;padding-top:0}.contact-form h2{font-size:26px;font-weight:400}.contact-form>p{font-size:15px;line-height:1.6}.form-field{margin-block:28px}.form-field label{margin-bottom:10px;font-size:14px}.form-field input,.form-field textarea{background:#ffffff05;border-color:#ffffff38;border-radius:6px;padding:14px 16px;font-size:16px}.editorial-button{color:var(--ink);background:0 0;border:1px solid #ffffff65;border-radius:999px;justify-content:center;align-items:center;gap:12px;padding:12px 24px;font-size:15px;display:inline-flex}.editorial-button:hover{border-color:var(--rose);color:var(--rose);background:#ffffff0a}.case-main{padding-bottom:64px}.back-link{margin-top:42px;font-size:14px}.case-heading{padding-block:54px 60px}.case-heading h1{letter-spacing:-.04em;font-size:clamp(42px,5vw,72px);font-weight:400}.case-deck{max-width:760px;margin-top:26px;font-size:22px;font-weight:350;line-height:1.55}.case-facts{margin-top:42px;padding-block:26px}.case-facts dt{font-family:var(--sans);font-size:13px}.case-facts dd{font-size:17px;font-weight:350}.case-layout-simple{max-width:760px}.case-section{padding-block:48px}.case-body h2{color:var(--rose);font-size:34px;font-weight:400;line-height:1.2}.case-body h3{font-size:22px;font-weight:400}.case-body p,.contribution-list p{font-size:17px;font-weight:350;line-height:1.7}.case-toc nav a{font-size:14px}.protocol-figure{border-color:var(--line);background:#ffffff03}.flow-node{border-color:var(--line);background:0 0}.flow-node.is-selected{border-color:var(--rose);background:#dba0bd12}.flow-node:hover{border-color:var(--rose)}.scenario-result small,.protocol-figure figcaption{font-size:13px}.scenario-checks li{font-size:14px}.next-study{margin-top:64px;padding-block:40px}.next-study>div>span{font-family:var(--sans);font-size:13px}.next-study>div>a{font-size:34px;font-weight:400}.article-main{padding-block:0 80px}.article-header{max-width:860px;margin-inline:auto;padding-block:48px}.article-header h1{letter-spacing:-.03em;font-size:clamp(34px,3.5vw,46px);font-weight:400;line-height:1.15}.article-meta{margin-bottom:26px}.article-dek{margin-top:30px;font-size:20px;font-weight:350;line-height:1.6}.article-notice{margin-top:28px;font-size:13px;line-height:1.65}.article-cover{max-width:860px;margin:0 auto 44px}.article-layout{grid-template-columns:160px minmax(0,720px);justify-content:start;gap:60px}.article-sidebar{font-size:13px}.article-body h2{color:var(--rose);font-size:30px;font-weight:450;line-height:1.2}.article-body h3{font-weight:450}.article-body p,.article-body li{font-size:18px;font-weight:350;line-height:1.75}.article-body strong{color:var(--ink);font-weight:550}.article-body pre,.article-body table{font-size:14px}.site-footer{border-top:1px solid var(--line);padding-block:64px 30px}.footer-main{align-items:start;gap:48px}.contact-link{letter-spacing:-.035em;color:var(--ink);font-size:clamp(22px,3.2vw,40px);font-weight:400}.contact-link .arrow{width:24px;height:24px}.footer-main p{color:var(--quiet);margin-top:18px;font-size:16px;font-weight:350}.footer-links{gap:24px;padding-top:12px;font-size:14px}.footer-bottom{font-family:var(--sans);color:var(--faint);border:0;margin-top:80px;font-size:12px}@media (max-width:1000px){.wrap{width:calc(100% - 64px)}.home-editorial .intro{grid-template-columns:150px minmax(0,1fr);gap:36px 45px}.project-cards{gap:28px}.experience-row{grid-template-columns:120px 1fr 1fr;gap:26px}.research-section,.contact-page{gap:48px}.writing-section .note-row{grid-template-columns:135px minmax(0,1fr);gap:12px 30px}.writing-section .note-read-time{text-align:left;grid-area:auto/2}.article-layout{grid-template-columns:135px minmax(0,1fr);gap:40px}.project-group[data-project-group=open-source] .project-card{display:block}.project-group[data-project-group=open-source] .pf-project-screenshot{margin:0 0 22px}}@media (max-width:760px){.wrap{width:calc(100% - 48px)}.site-header{gap:20px;height:auto;min-height:100px;padding-block:22px}.site-header nav{gap:20px}.site-header nav a{font-size:13px}.site-header nav .cv-link{padding:7px 16px}.home-hero h1{font-size:clamp(48px,10.5vw,80px)}.home-hero-role{font-size:20px}.home-hero-description{font-size:16px}.home-hero-bottom{gap:16px;font-size:11px}.home-editorial .intro{grid-template-columns:1fr;gap:32px;padding-block:72px}.intro-copy{grid-area:2/1}.intro-aside{grid-area:1/1;padding:0}.portrait-caption{align-items:center;gap:20px;display:flex}.portrait-caption img{width:64px;height:80px}.portrait-caption p{margin:0}.intro-description{font-size:17px}.profile-facts{grid-column:1;gap:24px}.section{padding-block:60px}.section-heading{gap:24px;margin-bottom:36px}.section-heading>p{max-width:220px;font-size:14px}.catalogue-tools{grid-template-columns:minmax(0,1fr) 210px;gap:18px}.reset-filter{justify-self:start;min-height:32px;padding:0}.project-group{margin-top:42px}.group-heading h3{font-size:27px}.project-cards{grid-template-columns:1fr;gap:24px}.project-group[data-project-group=professional] .project-card{grid-template-columns:30px minmax(0,1fr);gap:18px}.project-group[data-project-group=professional] .project-card-description{grid-column:2}.project-group[data-project-group=professional] .project-card h4{margin-top:9px}.project-group[data-project-group=personal] .project-card{display:block}.project-group[data-project-group=personal] .pf-project-screenshot{margin-bottom:28px}.project-group[data-project-group=personal] .project-card:not(:has(figure)) .project-card-summary{margin-top:18px}.project-card-summary{font-size:16px}.project-group[data-project-group=open-source] .project-card{grid-template-columns:110px minmax(0,1fr);gap:0 24px;display:grid}.experience-row{grid-template-columns:115px minmax(0,1fr);gap:15px 24px}.experience-row>p:not(.experience-date){grid-column:2}.experience-row .experience-date{grid-row:1/3}.notes-list{grid-template-columns:1fr;gap:30px}.writing-section .note-row{padding-block:28px;display:block}.writing-section .note-meta{flex-flow:wrap;gap:10px 24px;margin-bottom:18px}.writing-section .note-row h3{font-size:25px}.writing-section .note-row>p{margin-top:18px}.writing-section .note-read-time{margin-top:20px}.research-section{grid-template-columns:1fr;gap:36px}.research-copy h2{font-size:34px}.lab-note{margin-top:0;padding:28px}.page-heading{padding-block:32px 48px}.page-heading h1{font-size:40px}.page-heading>p:not(.eyebrow){font-size:17px}.about-intro{grid-template-columns:140px minmax(0,1fr);gap:36px;margin-bottom:56px}.about-portrait{width:140px;height:176px}.about-intro p{font-size:17px}.contact-page{grid-template-columns:1fr;gap:56px}.contact-email{font-size:24px}.case-heading{padding-block:36px 42px}.case-deck{font-size:20px}.article-layout{padding-top:10px;display:block}.article-header{padding-block:36px}.article-dek{font-size:18px}.article-body p,.article-body li{font-size:17px}.site-footer{padding-top:48px}.footer-main{flex-direction:column;gap:20px}.footer-links{flex-wrap:wrap;font-size:14px}.footer-bottom{margin-top:55px;font-size:12px}}@media (max-width:540px){.wrap{width:calc(100% - 40px)}.site-header{gap:15px;padding-block:18px}.site-header .identity-caption{display:none}.site-header nav{justify-content:space-between;gap:12px;width:100%}.site-header nav .cv-link{padding:5px 12px}.home-hero h1{letter-spacing:-.055em;font-size:clamp(42px,12vw,64px)}.home-hero-eyebrow{font-size:12px}.home-hero-role{font-size:18px}.home-hero-actions{gap:12px 20px}.home-hero-actions a{font-size:13px}.home-work-link{padding-inline:19px}.home-hero-bottom{gap:8px;font-size:11px}.home-hero-bottom .home-location{margin-left:auto}.home-editorial .intro h2{font-size:34px}.profile-facts{grid-template-columns:1fr;gap:22px}.profile-facts>div{grid-template-columns:110px minmax(0,1fr);gap:15px;display:grid}.profile-facts dd{margin-top:0;font-size:17px}.section-heading{display:block}.section-heading>p,.section-heading>.text-link{max-width:100%;margin-top:22px;display:block}.project-shortcuts>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px}.catalogue-tools{grid-template-columns:minmax(0,1fr) auto;gap:18px}.catalogue-tools>label:first-child{grid-column:1/-1}.catalogue-tools>label:nth-child(2){grid-column:1}.catalogue-tools .reset-filter{align-self:end;min-height:48px}.catalogue-status nav{gap:12px 20px}.group-heading{gap:20px}.group-heading h3{font-size:25px}.project-card h4{font-size:26px}.project-group[data-project-group=professional] .project-card{grid-template-columns:22px minmax(0,1fr);gap:14px}.project-group[data-project-group=open-source] .project-card{grid-template-columns:80px minmax(0,1fr);gap:0 20px}.project-group[data-project-group=open-source] .project-card-description{grid-column:1/-1}.project-group[data-project-group=open-source] .pf-project-screenshot{grid-row:1;margin-bottom:8px}.experience-row{grid-template-columns:1fr;gap:16px;padding-block:28px}.experience-row .experience-date,.experience-row>p:not(.experience-date){grid-area:auto/1}.experience-date span{margin-left:8px;display:inline}.page-main{padding-top:24px}.page-heading h1{font-size:36px}.about-intro{display:block}.about-portrait{float:none;width:140px;height:176px;margin:0 0 30px}.contact-email{gap:10px;font-size:23px}.case-facts{grid-template-columns:1fr;gap:24px}.case-body h2{font-size:29px}.case-body p{font-size:16px}.next-study{flex-direction:column;align-items:start;gap:28px}.next-study>div>a{font-size:28px}.article-header h1{font-size:33px}.article-meta{gap:12px 20px}.article-body h2{font-size:27px}.footer-main p{font-size:15px}}@media (max-width:540px) and (max-height:740px){.home-hero{height:auto;min-height:100svh;max-height:none}.home-hero-copy{height:auto;min-height:100svh;padding-top:200px;padding-bottom:130px}}
.home-editorial .section{padding-block:52px}.home-editorial .career-overview{border-top:1px solid var(--line)}.home-editorial .project-group{margin-top:36px}.home-editorial .group-heading{margin-bottom:18px}.home-editorial .work-section .project-cards{display:block}.home-editorial .work-section .project-card{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:12px 40px;padding-block:22px;display:grid}.home-editorial .work-section .project-number{display:none}.home-editorial .work-section .project-card-heading{grid-column:1}.home-editorial .work-section .project-card-description{grid-column:2}.home-editorial .work-section .project-card h4{margin-top:8px;font-size:25px}.home-editorial .work-section .project-card-summary{margin-top:0;font-size:15px}.home-editorial .work-section .project-card-role{margin-top:8px}.home-editorial .work-section .project-card-bottom{gap:0 20px;padding-top:6px}.project-group[data-project-group=open-source] .project-card-meta>span:last-child{color:var(--rose)}.public-product-overview{border-top:1px solid var(--line);padding-block:44px}.public-product-intro{grid-template-columns:1fr 1fr;gap:64px;display:grid}.public-product-intro h2{margin-block:16px 24px}.public-product-intro p{color:var(--quiet)}.public-product-link{align-items:center;gap:8px;min-height:44px;margin-top:18px;display:inline-flex}.public-product-features{padding-left:30px;list-style:decimal-leading-zero}.public-product-features li{margin-bottom:24px;padding-left:12px}.public-product-features li::marker{color:var(--rose);font-size:13px}.public-product-features h3{margin-bottom:8px;font-size:21px}.public-product-features p{font-size:15px}.public-product-visual{margin-top:36px}.public-product-visual>a{background:#eeece8;border-radius:4px;justify-content:center;align-items:center;padding:32px;display:flex}.public-product-visual img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:560px}.public-product-visual figcaption{color:var(--quiet);margin-top:16px;font-size:12px}.public-product-visual figcaption p+p{margin-top:4px}.public-product-visual figcaption a{text-underline-offset:3px;text-decoration:underline}.bioai-reproduction{border-top:1px solid var(--line);margin-top:40px;padding-top:32px}.bioai-reproduction h3{margin-bottom:18px;font-size:26px}.career-challenge{max-width:760px;margin-top:26px}.career-challenge h3{margin-bottom:10px;font-size:18px}.career-challenge p{color:var(--quiet);line-height:1.8}.model-project-use{border-top:1px solid var(--line);max-width:860px;padding-block:36px}.model-project-use h2{margin-bottom:20px;font-size:26px}.model-project-use h3{margin-block:24px 10px;font-size:18px}.model-project-use p{color:var(--quiet);line-height:1.8}.research-details{border-top:1px solid var(--line);margin-top:28px}.research-details>summary{cursor:pointer;min-height:44px;color:var(--ink);padding-block:20px}.research-details[open]>summary{margin-bottom:12px}.discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 32px;display:grid}.discovery-card{min-width:0}.discovery-visual{aspect-ratio:16/10;border:1px solid var(--line);background:#111;border-radius:6px;display:block;overflow:hidden}.discovery-visual img{object-fit:contain;width:100%;height:100%;transition:transform .22s;display:block}.discovery-visual:hover img{transform:scale(1.025)}.discovery-markov .discovery-visual{background:#182337}.discovery-transcription-audio .discovery-visual{background:#fff}.discovery-bioai .discovery-visual{background:#101612}.discovery-topic{color:var(--rose);margin-top:20px;font-size:12px}.discovery-card h3{margin-block:8px 12px;font-size:clamp(23px,2.2vw,30px);line-height:1.2}.discovery-card h3 a{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.discovery-description{color:var(--quiet);max-width:48ch;font-size:15px;line-height:1.7}.home-editorial .career-overview{margin-top:36px;padding-bottom:48px}@media (prefers-reduced-motion:reduce){.discovery-visual img{transition:none}.discovery-visual:hover img{transform:none}}@media (max-width:760px){.home-hero-description{max-width:500px}.home-editorial .section{padding-block:40px}.home-editorial .work-section .project-card{padding-block:20px;display:block}.home-editorial .work-section .project-card-description{margin-top:12px}.home-editorial .work-section .project-card h4{font-size:24px}.home-editorial .project-group{margin-top:28px}.public-product-intro{grid-template-columns:1fr;gap:28px}.public-product-visual{margin-top:20px}.public-product-visual>a{padding:16px}.public-product-features li:last-child{margin-bottom:0}.discovery-grid{grid-template-columns:1fr;gap:32px}.discovery-visual{aspect-ratio:16/9}}
@font-face{font-family:hanken;src:url(../media/hanken_grotesk_latin-s.p.2rlmbw0a3_pri.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:hanken Fallback;src:local(Arial);ascent-override:98.46%;descent-override:29.83%;line-gap-override:0.0%;size-adjust:101.56%}.hanken_998d7915-module__jRyVva__className{font-family:hanken,hanken Fallback}.hanken_998d7915-module__jRyVva__variable{--font-hanken:"hanken", "hanken Fallback"}
