.resume{font-size:var(--fs-16);line-height:1.5}.resume .prose-header .lede{margin-top:var(--space-1)}.resume-contact{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-4);font-size:var(--fs-14);color:var(--text-secondary);flex-wrap:wrap;display:flex}.resume-contact-list{gap:var(--space-1) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.resume-contact-list a{overflow-wrap:anywhere}.resume-summary{max-width:var(--measure);color:var(--text-primary)}.resume-section{margin-top:var(--space-8)}.resume-section>h2{font-size:var(--fs-24);padding-top:var(--space-3);margin-bottom:var(--space-4);border-top:1px solid var(--border-weak);font-weight:600}.entry+.entry{margin-top:var(--space-6)}.entry-head{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-4);display:flex}.entry-title{font-size:var(--fs-16);margin:0;font-weight:600;line-height:1.4}.entry-when{color:var(--text-secondary);font-size:var(--fs-14);white-space:nowrap;flex:none;line-height:1.4}.entry-org{color:var(--text-secondary);line-height:1.4}.entry-highlights{margin-top:var(--space-2);max-width:var(--measure);padding-left:1.25em}.entry-highlights li+li{margin-top:var(--space-1)}.entry-note{margin-top:var(--space-2);max-width:var(--measure)}.entry-links{margin-top:var(--space-2);font-size:var(--fs-14);color:var(--text-secondary)}@media (width<=559px){.entry-head{flex-direction:column;align-items:flex-start}}.resume-certs{margin:0;padding:0;list-style:none}.resume-certs li{gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-weak);flex-wrap:wrap;display:flex}.resume-certs li:last-child{border-bottom:0}.cert-issuer{color:var(--text-secondary);font-size:var(--fs-14)}.resume-skills{gap:var(--space-3) var(--space-4);display:grid}.skill-group{gap:var(--space-1) var(--space-4);grid-template-columns:minmax(0,12rem) minmax(0,1fr);align-items:start;display:grid}.skill-group dt{padding-top:3px;font-weight:500}.skill-group dd{margin:0}@media (width<=639px){.skill-group{grid-template-columns:minmax(0,1fr)}}.chips{gap:var(--space-1) var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.entry .chips{margin-top:var(--space-2)}@media print{@page{size:Letter;margin:.6in}html,body{color-scheme:light;color:#1a1a1a!important;background:#fff!important}body{-webkit-font-smoothing:auto;min-height:0;font-size:11pt;line-height:1.35;display:block}.topbar,.site-footer,.skip-link,.resume-download{display:none!important}.site-main,.container{max-width:none;padding:0}.prose-panel.resume{color:#1a1a1a;background:0 0;border:0;border-radius:0;max-width:none;margin:0;padding:0;font-size:11pt;line-height:1.35}.resume a{color:inherit;text-decoration:none}.entry-links a[href*=github\.com]:after,.resume-certs a[href*=coursera\.org]:after{content:" " attr(href);color:#666;overflow-wrap:anywhere;font-size:8pt;font-weight:400}.resume-certs a[href*=coursera\.org]:after{font-size:7.5pt;line-height:1.1;display:block}.resume .prose-header{border-bottom:.75pt solid #999;max-width:none;margin-bottom:8pt;padding-bottom:6pt;font-size:11pt}.resume .prose-header h1{letter-spacing:-.01em;font-size:18pt;font-weight:600;line-height:1.15}.resume .prose-header .lede{color:#444;margin-top:2pt;font-size:12pt}.resume-contact{color:#444;margin-top:6pt;font-size:10pt}.resume-contact-list{gap:2pt 14pt}.resume-summary{color:#1a1a1a;max-width:none}.resume-section{margin-top:9pt}.resume-section>h2{break-after:avoid;border-top:.5pt solid #999;margin-bottom:5pt;padding-top:4pt;font-size:12.5pt;font-weight:600}.entry{break-inside:avoid}.entry+.entry{margin-top:6pt}.entry-head{break-after:avoid;gap:2pt 12pt}.entry-title{font-size:11.5pt;line-height:1.3}.entry-when,.entry-org,.entry-links,.cert-issuer{color:#444}.entry-when{font-size:10pt}.entry-org{break-after:avoid;font-size:10pt}.entry-highlights,.entry-note{max-width:none;font-size:10pt;line-height:1.25}.entry-highlights{margin-top:3pt;padding-left:1.1em}.entry-highlights li+li{margin-top:1pt}.entry-highlights li,.resume-summary,.entry-note{orphans:3;widows:3}.entry-note{margin-top:2pt}.entry-links{margin-top:3pt;font-size:9.5pt}.resume-certs li{break-inside:avoid;border-bottom:0;grid-template-columns:minmax(0,1fr) auto;column-gap:10pt;padding:1pt 0;display:grid}.resume-certs a{font-size:10.5pt}.cert-issuer{align-self:start;font-size:9.5pt}.resume-skills{gap:3pt 12pt}.skill-group{break-inside:avoid;grid-template-columns:2.2in minmax(0,1fr);gap:1pt 12pt}.skill-group dt{padding-top:0;font-size:10.5pt;font-weight:600}.chips{font-size:10.5pt;line-height:1.35;display:block}.entry .chips{color:#444;margin-top:2pt}.chips .chip{min-height:0;color:inherit;font-size:inherit;line-height:inherit;white-space:normal;background:0 0;border:0;padding:0;display:inline}.chips .chip:not(:last-child):after{content:", "}}
