.resume{--rail:168px;--meta:168px;--gap:40px;--measure:680px;--copy:color-mix(in srgb, var(--ink) 86%, var(--paper));--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color:var(--ink);padding-top:24px;padding-bottom:96px}:where(.resume) ul{margin:0}.resume .resume__print{display:none}.resume__back{color:var(--muted);padding:12px 0;font-size:14px;display:inline-block}.resume__back>span{margin-right:6px;transition:transform .2s;display:inline-block}.resume__back:hover>span{transform:translate(-3px)}.resume__masthead,.resume__section{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--gap);display:grid}.resume__masthead{border-top:1px solid var(--ink);margin-top:12px;padding:28px 0 48px}.resume__section{border-top:1px solid var(--line);padding:36px 0 44px}.resume__label{top:calc(var(--site-header-h) + 24px);font:11px/16px var(--mono);letter-spacing:1.2px;color:var(--ink);align-self:start;margin:0;padding-top:4px;font-weight:400;position:sticky}.resume__num{color:var(--muted)}.resume__doc-id{padding-top:14px}.resume-entry{grid-template-columns:var(--meta) minmax(0, var(--measure));column-gap:var(--gap);border-top:1px solid var(--line);padding:28px 0;display:grid}.resume-entry:first-child{border-top:0;padding-top:0}.resume-entry:last-child{padding-bottom:0}.resume-entry>*{grid-column:2}.resume-entry>.resume-entry__meta{grid-area:1/1/span 4;align-self:start}.resume-entry__title{letter-spacing:-.3px;margin:0;font-size:20px;font-weight:500;line-height:1.25}.resume-entry__role{color:var(--ink);margin:4px 0 0;font-size:15px;line-height:1.5}.resume-entry__when{font:12px/18px var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.2px;white-space:nowrap;color:var(--ink);margin:0;padding-top:4px}.resume-entry__place{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.5}.resume-entry__place>span{display:block}.resume-entry__sep{display:none}.resume-entry__kicker{font:11px/16px var(--mono);letter-spacing:1.2px;color:var(--muted);margin:0;padding-top:4px}.resume-entry__note{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.6}.resume-entry__bullets{color:var(--copy);margin-top:14px;padding-left:18px;font-size:15px;line-height:1.65}.resume-entry__bullets li+li{margin-top:6px}.resume-entry__bullets li::marker{color:var(--muted)}.resume-entry__stack{color:var(--muted);margin:14px 0 0;font-size:13px;line-height:1.6}.resume-entry__stack-label{color:var(--ink);font-weight:600}.resume-entry__summary{color:var(--copy);margin:6px 0 0;font-size:15px;line-height:1.6}.resume-entry__link{margin:14px 0 0}.resume-entry--masthead{border:0;padding:0}.resume-entry--masthead>.resume-entry__meta{grid-row:1/span 5}.resume__name{letter-spacing:-.035em;margin:0;font-size:clamp(40px,4.3vw,60px);font-weight:500;line-height:1.02}.resume__title{letter-spacing:-.2px;color:var(--ink);margin:10px 0 0;font-size:21px;line-height:1.3}.resume__contact{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px 24px;margin-top:18px;padding:0;font-size:14px;list-style:none;display:flex}.resume__contact a{color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .2s,border-color .2s}.resume__contact a:hover{color:var(--blue);border-color:currentColor}.resume__summary{max-width:62ch;color:var(--copy);margin:22px 0 0;font-size:17px;line-height:1.65}.resume__document{flex-direction:column;align-items:flex-start;gap:4px;padding-top:12px;display:flex}.resume__download{border-bottom:1px solid var(--ink);color:var(--ink);align-items:center;gap:8px;margin-bottom:8px;padding-bottom:4px;font-size:15px;font-weight:600;transition:color .2s,border-color .2s;display:inline-flex}.resume__download:hover{color:var(--blue);border-color:var(--blue)}.resume__download svg{transition:transform .2s}.resume__download:hover svg{transform:translateY(2px)}.resume__doc-meta{font:11px/16px var(--mono);letter-spacing:.6px;color:var(--muted);margin:0}.resume-link{border-bottom:1px solid var(--line);padding-bottom:3px;font-size:14px;font-weight:600;transition:color .2s,border-color .2s}.resume-link:hover{border-color:currentColor}.resume-link__arrow{transition:transform .2s;display:inline-block}.resume-link:hover .resume-link__arrow{transform:translate(3px)}.resume-skills{margin:0}.resume-entry--skill{padding:14px 0}.resume-entry--skill>.resume-entry__meta{grid-row:auto;font-size:14px;font-weight:600;line-height:1.6}.resume-entry--skill dd{color:var(--copy);margin:0;font-size:15px;line-height:1.6}@media (max-width:1100px){.resume{--rail:120px;--meta:148px;--gap:32px}}@media (max-width:900px){.resume{--meta:148px;--gap:28px}.resume__masthead,.resume__section{grid-template-columns:minmax(0,1fr)}.resume__label{padding:0 0 20px;position:static}.resume__doc-id{padding:0 0 24px}}@media (max-width:620px){.resume{padding-bottom:64px}.resume__masthead{padding:24px 0 40px}.resume__section{padding:28px 0 36px}.resume-entry{padding:24px 0;display:block}.resume-entry>.resume-entry__meta{margin-top:8px}.resume-entry__when{padding-top:0}.resume-entry__place{margin:2px 0 0}.resume-entry__place>span,.resume-entry__sep{display:inline}.resume-entry--work>.resume-entry__meta{display:none}.resume-entry--skill{padding:14px 0}.resume-entry--skill>.resume-entry__meta{margin:0 0 4px;display:block}.resume__name{font-size:clamp(36px,10vw,44px)}.resume__title{font-size:18px}.resume__contact{flex-direction:column;gap:10px}.resume-entry--masthead>.resume__document{flex-flow:wrap;align-items:baseline;gap:6px 16px;margin-top:24px;padding-top:0}.resume__download{margin-bottom:0}.resume__summary{margin-top:24px;font-size:16px}}@media (prefers-reduced-motion:reduce){.resume__back:hover>span,.resume__download:hover svg,.resume-link:hover .resume-link__arrow{transform:none}}@media print{@page{size:A4;margin:12mm 15mm 13mm}html:has(.resume){scroll-padding-top:0}body:has(.resume){color:#000;background:#fff}body:has(.resume) :is(.skip,.site-header,.contact-signoff){display:none!important}.resume{--copy:#000;color:#000;max-width:none;padding:0;font-size:10pt;line-height:1.4}.resume a{color:#000;border:0;margin:0;padding:0}.resume .resume__screen,.resume__back,.resume__doc-id,.resume__num,.resume__name .blue,.resume-entry>.resume__document,.resume-entry--work>.resume-entry__meta{display:none}.resume .resume__print{display:revert}.resume__masthead,.resume__section{border:0;padding:0;display:block}.resume .resume-entry--masthead{display:block}.resume__name{letter-spacing:-.02em;font-size:22pt;font-weight:700;line-height:1.1}.resume__title{letter-spacing:0;margin-top:2pt;font-size:12pt}.resume__contact{color:#000;margin-top:5pt;font-size:9pt;display:block}.resume .resume__contact li{display:inline}.resume__contact li+li:before{content:"·";color:#555;margin:0 4pt}.resume__summary{color:#000;max-width:none;margin-top:0;font-size:10pt;line-height:1.42}.resume__label,.resume .resume__print-heading{letter-spacing:.08em;color:#000;break-after:avoid;border-bottom:.75pt solid #000;margin:13pt 0 6pt;padding:0 0 2pt;font:700 10pt/1.2 Arial,Helvetica,sans-serif;position:static}.resume .resume__print-heading{display:block}.resume-entry{break-inside:avoid;border:0;grid-template-columns:minmax(0,1fr) auto;column-gap:12pt;padding:0}.resume-entry+.resume-entry{margin-top:9pt}.resume-entry>*{grid-column:1/-1}.resume-entry>.resume-entry__title,.resume-entry>.resume-entry__role{grid-column:1}.resume-entry>.resume-entry__meta{text-align:right;grid-area:1/2/span 2}.resume-entry__title{letter-spacing:0;font-size:10.5pt;font-weight:700}.resume-entry__role{margin-top:0;font-size:9.8pt}.resume-entry__when{letter-spacing:0;color:#000;padding-top:0;font:9.4pt/1.3 Arial,Helvetica,sans-serif}.resume-entry__place,.resume-entry__note,.resume-entry__stack{color:#333;margin-top:0;font-size:9pt;line-height:1.35}.resume-entry__place>span,.resume-entry__sep{display:inline}.resume-entry__note{margin-top:1pt}.resume-entry__bullets{margin-top:3pt;padding-left:11pt;font-size:9.9pt;line-height:1.36}.resume-entry__bullets li+li{margin-top:1.5pt}.resume-entry__bullets li::marker{color:#000}.resume-entry__stack{margin-top:2.5pt}.resume-entry__stack-label{color:#000}.resume-entry__link{color:#333;margin-top:1pt;font-size:9pt}.resume-entry--work+.resume-entry--work{margin-top:4pt}.resume-entry--work .resume-entry__title{font-size:9.8pt}.resume-entry--work .resume-entry__title a{font-weight:400}.resume-entry__summary{margin-top:0;font-size:9.9pt;line-height:1.36}.resume .resume-entry--skill{grid-template-columns:118pt minmax(0,1fr);gap:0 10pt;margin-top:0;padding:1.5pt 0}.resume-entry--skill>.resume-entry__meta{text-align:left;grid-area:auto/1;font-weight:700}.resume-entry--skill>dd{grid-column:2}.resume-entry--skill>.resume-entry__meta,.resume-entry--skill dd{font-size:9.9pt;line-height:1.36}}
