@font-face{font-family:"Inter";font-style:normal;font-weight:200 700;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2212,U+FEFF,U+FFFD}:root{--paper:#fbfaf7;--bone:#eae8e2;--rose:#f2cdd6;--rule:#c9c4b8;--rule-strong:#2b2a27;--ink-strong:#1a1917;--ink:#2b2a27;--ink-soft:#4a4842;--muted:#6e6a62;--ash:#8c8880;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--measure:430pt}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#f2f0ea;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1}.resume-toolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;background:var(--ink-strong);color:var(--paper)}.resume-toolbar a{font:inherit;font-size:13px;font-weight:500;color:var(--paper);border:1px solid rgba(251,250,247,0.35);border-radius:999px;padding:8px 16px;text-decoration:none;transition:background 120ms ease,color 120ms ease}.resume-toolbar a:hover{background:var(--paper);color:var(--ink-strong)}.resume-toolbar a:focus-visible{outline:2px solid var(--rose);outline-offset:2px}.resume-page{width:595pt;margin:24px auto;padding:40pt 42pt;background:var(--paper);box-shadow:0 8px 40px rgba(26,25,23,0.13)}.r-rule{border:0;border-top:1px solid var(--rule)}.r-rule--strong{border:0;border-top:1px solid var(--rule-strong)}.r-masthead{position:relative;margin-bottom:15pt}.r-name{font-size:34pt;font-weight:300;letter-spacing:-.032em;line-height:1;color:var(--ink-strong)}.r-title{margin-top:7pt;font-size:10.5pt;font-weight:400;letter-spacing:-.01em;line-height:1.2;color:var(--ink-soft)}.r-contact{margin-top:10pt;font-family:var(--mono);font-size:7.5pt;letter-spacing:-.015em;line-height:1.5;color:var(--ash)}.r-contact a{color:inherit;text-decoration:none}.r-contact a:hover{color:var(--ink-soft);text-decoration:underline}.r-anchor{position:absolute;top:0;right:0;text-align:right}.r-anchor-span{display:block;font-size:38pt;font-weight:200;letter-spacing:-.035em;line-height:1;color:var(--ash);font-variant-numeric:lining-nums tabular-nums}.r-anchor-label{display:block;margin-top:1pt;font-size:6.2pt;font-weight:500;letter-spacing:.14em;line-height:1.1;text-transform:uppercase;color:var(--ash)}.r-stats{display:flex;padding:12pt 0}.r-stat{flex:1;padding-right:12pt}.r-stat+.r-stat{border-left:1px solid var(--rule);padding-left:14pt}.r-stat-value{display:block;font-family:var(--mono);font-size:19pt;font-weight:300;letter-spacing:-.03em;line-height:1;color:var(--ink-strong);font-variant-numeric:tabular-nums}.r-stat-label{display:block;margin-top:5pt;font-size:6.2pt;font-weight:500;letter-spacing:.14em;line-height:1.1;text-transform:uppercase;color:var(--ash)}.r-summary{margin-top:17pt;max-width:440pt;font-size:9.6pt;line-height:1.55;letter-spacing:-.008em;color:var(--ink-soft);text-wrap:pretty}.r-section{margin-top:16pt}.r-section--lead{margin-top:20pt}.r-section-label{font-size:6.6pt;font-weight:600;letter-spacing:.16em;line-height:1.1;text-transform:uppercase;color:var(--ink-strong);padding-bottom:7pt;border-bottom:1px solid var(--rule-strong)}.r-colhead{display:flex;justify-content:space-between;padding:7pt 0 6pt;border-bottom:1px solid var(--rule);font-size:6.2pt;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}.r-role{padding:10pt 0;border-bottom:1px solid var(--rule)}.r-role-head{display:flex;justify-content:space-between;align-items:baseline;gap:12pt}.r-role-title{font-size:10.4pt;font-weight:600;letter-spacing:-.018em;line-height:1.2;color:var(--ink-strong)}.r-role-period{font-family:var(--mono);font-size:7.5pt;letter-spacing:-.01em;color:var(--ash);white-space:nowrap;font-variant-numeric:tabular-nums}.r-role-org{margin-top:3pt;font-size:8.5pt;letter-spacing:-.01em;line-height:1.25;color:var(--muted)}.r-list{list-style:none;margin-top:6pt;max-width:var(--measure)}.r-list li{position:relative;padding-left:12pt;font-size:8.9pt;line-height:1.52;letter-spacing:-.006em;color:var(--ink-soft)}.r-list li+li{margin-top:4pt}.r-list li::before{content:"–";position:absolute;left:0;color:var(--ash)}.r-product{display:grid;grid-template-columns:88pt 322pt 1fr;gap:10pt;align-items:start;padding:6pt 0;border-bottom:1px solid var(--rule)}.r-product-name{font-size:8.8pt;font-weight:600;letter-spacing:-.015em;line-height:1.35;color:var(--ink-strong)}.r-product-detail{font-size:8.5pt;line-height:1.4;letter-spacing:-.006em;color:var(--ink-soft)}.r-product-link{font-family:var(--mono);font-size:6.9pt;letter-spacing:-.01em;line-height:1.72;color:var(--ash);text-align:right;text-decoration:none}.r-product-link:hover{color:var(--ink-soft);text-decoration:underline}.r-capabilities{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:5pt 22pt;padding-top:9pt;list-style:none}.r-capabilities li{position:relative;padding-left:12pt;font-size:8.3pt;line-height:1.45;letter-spacing:-.006em;color:var(--ink-soft)}.r-capabilities li::before{content:"–";position:absolute;left:0;color:var(--ash)}.r-cred{display:grid;grid-template-columns:78pt 1fr;gap:12pt;padding:6pt 0;border-bottom:1px solid var(--rule)}.r-cred-label{font-family:var(--mono);font-size:6.2pt;letter-spacing:.08em;line-height:1.9;text-transform:uppercase;color:var(--ash)}.r-cred-values{font-size:8.5pt;line-height:1.4;letter-spacing:-.006em;color:var(--ink-soft)}.r-endorsement{display:flex;margin-top:18pt}.r-endorsement-marker{flex:0 0 3pt;background:var(--rose)}.r-endorsement-body{flex:1;background:var(--bone);padding:12pt 14pt}.r-endorsement blockquote{font-size:8.8pt;font-style:italic;line-height:1.5;letter-spacing:-.008em;color:var(--ink);text-wrap:pretty}.r-endorsement cite{display:block;margin-top:7pt;font-size:7.5pt;font-weight:600;font-style:normal;color:var(--ink-strong)}.r-availability{display:flex;justify-content:space-between;align-items:baseline;gap:16pt;margin-top:17pt;padding-top:9pt;border-top:1px solid var(--rule-strong);font-size:8.5pt;letter-spacing:-.008em;line-height:1.35;color:var(--ink-soft)}.r-availability a{font-family:var(--mono);font-size:7.6pt;font-weight:500;letter-spacing:-.01em;color:var(--ink-strong);white-space:nowrap;text-decoration:none}.r-availability a:hover{text-decoration:underline}.r-footer{display:flex;justify-content:space-between;gap:16pt;margin-top:26pt;font-family:var(--mono);font-size:6.2pt;letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}.r-footer a{color:inherit;text-decoration:none}@media screen and (min-width:1040px){.resume-page{zoom:1.22}}@media screen and (min-width:1200px){.resume-page{zoom:1.34}}@media screen and (min-width:1360px){.resume-page{zoom:1.46}}@page{size:A4;margin:0}@media print{body{background:#fff}.resume-toolbar{display:none !important}.resume-page{zoom:1;width:auto;margin:0;box-shadow:none}.r-role,.r-product,.r-cred{break-inside:avoid}.r-section-label{break-after:avoid}.r-endorsement{break-inside:avoid}}@media(max-width:860px){.resume-page{zoom:1.12;width:auto;margin:0;padding:22px 18px;box-shadow:none}.r-anchor{position:static;text-align:left;margin-top:14px}.r-anchor-span{font-size:30pt}.r-contact{word-break:break-word}.r-stats{flex-wrap:wrap;gap:12px 0}.r-stat{flex:0 0 50%}.r-stat:nth-child(3){border-left:0;padding-left:0}.r-summary,.r-list{max-width:none}.r-product{grid-template-columns:1fr;gap:3px}.r-product-link{text-align:left}.r-capabilities{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none}.r-cred{grid-template-columns:1fr;gap:2px}.r-availability{flex-direction:column;gap:8px}.r-footer{flex-direction:column;gap:6px}}