@font-face{font-family:firago;src:url(/fonts/FiraGO-Regular.latin.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:firago;src:url(/fonts/FiraGO-SemiBold.latin.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:firago;src:url(/fonts/FiraGO-Bold.latin.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:roboto mono;src:url(/fonts/RobotoMono-Regular.latin.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:roboto mono;src:url(/fonts/RobotoMono-Bold.latin.woff2)format("woff2");font-weight:700;font-display:swap}@media screen{:root{--band:#222225;--band-ink:#e8e9ed;--band-muted:#a9b0bd;--band-diagram:#8fc8f0;--band-accent:#d9a066;--bg:#ffffff;--ink:#151515;--muted:#5a5f66;--link:#1a6fb5;--accent:#b8722f;--line:#e0e3e8;--logo-filter:none;--text:"FiraGO", system-ui, "Segoe UI", Roboto, sans-serif;--mono:"Roboto Mono", Menlo, Consolas, monospace;--gutter-l:max(16px, env(safe-area-inset-left, 0px));--gutter-r:max(16px, env(safe-area-inset-right, 0px));color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--band:#161618;--bg:#222225;--ink:#e8e9ed;--muted:#a3abba;--link:#62c4ff;--accent:#d9a066;--line:#36363c;--logo-filter:brightness(0) invert(0.9);color-scheme:dark}}:root[data-theme=dark]{--band:#161618;--bg:#222225;--ink:#e8e9ed;--muted:#a3abba;--link:#62c4ff;--accent:#d9a066;--line:#36363c;--logo-filter:brightness(0) invert(0.9);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--text);font-size:16.5px;line-height:1.62;padding-block:0 24px;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:focus-visible{outline:2px solid currentColor;outline-offset:2px}p{margin:0}.ico{width:1em;height:1em;flex:none;opacity:.85}.page{display:grid;grid-template-columns:1fr minmax(0,44rem)minmax(15rem,18.5rem)1fr;grid-template-areas:"head head head head" ". main side ." ". foot foot .";column-gap:3.2rem}.masthead{grid-area:head;position:relative;isolation:isolate;margin-left:calc(-1 * var(--gutter-l));margin-right:calc(-1 * var(--gutter-r));background:var(--band);color:var(--band-ink);padding:3.6rem var(--gutter-r)2.6rem var(--gutter-l)}.masthead::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--band-diagram);opacity:.12;-webkit-mask:url(/img/masthead-tile.svg)50% 0/3924px 300px repeat,linear-gradient(to right,#000 calc(50% - 600px),rgb(0 0 0/.14) calc(50% - 470px),rgb(0 0 0/.14) calc(50% + 470px),#000 calc(50% + 600px));-webkit-mask-composite:source-in;mask:url(/img/masthead-tile.svg)50% 0/3924px 300px repeat,linear-gradient(to right,#000 calc(50% - 600px),rgb(0 0 0/.14) calc(50% - 470px),rgb(0 0 0/.14) calc(50% + 470px),#000 calc(50% + 600px));mask-composite:intersect}.masthead-inner{max-width:65.7rem;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr)auto;grid-template-areas:"name figs" "role figs" "focus figs" "contact contact";column-gap:3rem}.masthead a{color:var(--band-ink)}h1{grid-area:name;margin:0;font-size:2.8rem;font-weight:700;line-height:1.08;letter-spacing:-.015em;text-wrap:balance}.role{grid-area:role;margin-top:.5rem;font-size:1.3rem;font-weight:600;color:var(--band-accent)}.focus{grid-area:focus;color:var(--band-muted)}.contact{grid-area:contact;list-style:none;margin:1.6rem 0 0;padding:.9rem 0 0;border-top:1px solid color-mix(in srgb,var(--band-ink) 16%,transparent);display:flex;flex-wrap:wrap;gap:.3rem 1.7rem;font-size:.9rem;color:var(--band-muted)}.contact li{display:inline-flex;align-items:center;gap:.45rem}.figures{grid-area:figs;margin:0;display:grid;grid-template-columns:repeat(2,minmax(8.5rem,auto));gap:1.1rem 2.2rem;align-self:end}.figures div{display:flex;flex-direction:column-reverse}.figures dd{margin:0;font-family:var(--mono);font-size:1.7rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.figures dt{font-size:.78rem;color:var(--band-muted);max-width:11rem;line-height:1.3;margin-top:.2rem}.main{grid-area:main;min-width:0;padding-top:1.2rem}.side{grid-area:side;min-width:0;padding-top:1.2rem}.foot{grid-area:foot}h2{margin:2.2rem 0 .9rem;font-size:1.22rem;font-weight:700}h2 span{display:inline-block;padding-bottom:2px;border-bottom:3px solid var(--accent)}.side h2{font-size:1.02rem}.summary{font-size:1.06rem}.job{margin-bottom:1.8rem}.job-head{display:grid;gap:.1rem}h3{margin:0;font-size:1.13rem;font-weight:600;line-height:1.35}.sep{color:var(--muted)}.org{font-weight:700}.when{font-family:var(--mono);font-size:.8rem;color:var(--muted)}.context{margin-top:.4rem;color:var(--muted);font-size:.96rem}.points{margin:.7rem 0 0;padding-left:1.2rem}.points li{margin-top:.55rem}.points li::marker{color:var(--accent)}.job.compact{margin-bottom:1.1rem}.job.compact .context{margin-top:.15rem}.earlier{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.5rem;font-size:.96rem}.earlier li{display:grid}.earlier .when{font-size:.76rem}.edu{list-style:none;margin:0;padding:0;font-size:.93rem;line-height:1.5}.edu .edu-text{display:block}.logos{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:.45rem}.logos img{display:block;height:34px;width:auto;max-width:100%;filter:var(--logo-filter)}.edu-sub{list-style:none;margin:.9rem 0 0;padding:0 0 0 .9rem;border-left:2px solid var(--accent);display:grid;gap:.95rem;font-size:.9rem}.edu-sub .logos img{height:24px}.skills{margin:0;font-size:.93rem;line-height:1.5}.skills dt{font-weight:600;margin-top:.6rem}.skills dt:first-child{margin-top:0}.skills dd{margin:0}.tags{list-style:none;margin:0;padding:0;display:inline}.tags li{display:inline}.tags li:not(:last-child)::after{content:","}.side p{font-size:.93rem;line-height:1.5}.foot{margin-top:2.6rem;padding-top:.8rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.2rem 1rem;font-family:var(--mono);font-size:.74rem;color:var(--muted)}@media(max-width:900px){.page{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "main" "side" "foot"}.masthead-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"name" "role" "focus" "figs" "contact"}.figures{margin-top:1.6rem;align-self:start;grid-template-columns:repeat(2,minmax(0,11rem));column-gap:1.6rem}.side{padding-top:0}h1{font-size:2.2rem}}h2{position:relative;display:flex;align-items:center;margin:2.5rem 0 1.1rem;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}h2 span{border:1.5px solid var(--ink);padding:.2rem .65rem .16rem}h2::after{content:"";flex:1;height:1.5px;margin-right:7px;background:var(--accent)}h2::before{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);border-left:8px solid var(--accent);border-top:4.5px solid transparent;border-bottom:4.5px solid transparent}.side h2{font-size:.7rem}.main .job{position:relative;padding-left:1.7rem}.main .job::before{content:"";position:absolute;left:5.25px;top:.95rem;bottom:-1.9rem;width:1.5px;background:color-mix(in srgb,var(--accent) 45%,var(--line))}.main .job:last-child::before{bottom:.3rem}.main .job::after{content:"";position:absolute;left:0;top:.42rem;width:12px;height:12px;border-radius:50%;border:2px solid var(--accent);background:var(--bg)}.main .job.current::after{background:var(--accent)}.main .job.compact::after{width:10px;height:10px;left:1px;border-width:1.5px;border-color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.tags li{display:inline-block;padding:.04rem .5rem;border:1px solid var(--line);border-radius:3px;font-size:.84rem;line-height:1.5}.tags li:not(:last-child)::after{content:none}.skills dt{margin-top:.8rem}@media(prefers-reduced-motion:no-preference){.main .job.current::after{animation:node-breathe 2.8s ease-in-out infinite}@keyframes node-breathe{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}}}.sprite{position:absolute;width:0;height:0;overflow:hidden}.masthead{padding-top:max(14px,env(safe-area-inset-top,0px))}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;max-width:65.7rem;margin:0 auto .9rem;font-family:var(--mono);font-size:.76rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-left:auto}.toolbar .viewbar{position:static}.langbar{display:inline-flex;border:1px solid color-mix(in srgb,currentColor 40%,transparent)}.langbar a{padding:.28rem .6rem;color:inherit;text-decoration:none;opacity:.72}.langbar a+a{border-left:1px solid color-mix(in srgb,currentColor 40%,transparent)}.langbar a:hover{opacity:1;text-decoration:underline}.langbar a[aria-current=true]{opacity:1;font-weight:700;box-shadow:inset 0 -2px currentColor}.langbar a:focus-visible{outline:2px solid currentColor;outline-offset:2px}.masthead{position:relative}.viewbar{position:absolute;top:max(14px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));z-index:1;display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.76rem}.viewbar div{display:inline-flex;border:1px solid color-mix(in srgb,currentColor 40%,transparent)}.viewbar button{font:inherit;color:inherit;background:0 0;border:0;padding:.28rem .75rem;cursor:pointer;opacity:.72}.viewbar button+button{border-left:1px solid color-mix(in srgb,currentColor 40%,transparent)}.viewbar button[aria-pressed=true]{opacity:1;font-weight:700;box-shadow:inset 0 -2px currentColor}.viewbar button:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sitenav{display:flex;align-items:center;gap:.9rem}.sitenav ul{list-style:none;margin:0;padding:0;display:flex;gap:.9rem}.sitenav a{display:inline-block;padding:.28rem 0;border-block:1px solid transparent;color:inherit;text-decoration:none}.sitenav ul a{opacity:.72}.sitenav .brand{font-weight:700}.sitenav a:hover{opacity:1;text-decoration:underline}.sitenav a[aria-current]{opacity:1;box-shadow:inset 0 -2px currentColor}.sitenav a:focus-visible{outline:2px solid currentColor;outline-offset:2px}.notfound .masthead-inner{grid-template-areas:"name" "role";grid-template-columns:minmax(0,1fr)}.notfound .main p{margin-top:1rem}}@media screen{:root{--run-bg:#f6f7f9;--run-panel:#ffffff;--run-sunk:#eef0f3;--run-line:#d5d9df;--run-edge:#8d949f;--run-ink:#151515;--run-muted:#50565f;--run-run:#1a6fb5;--run-pass:#1f7a3a;--run-wait:#9a5a1a;--run-key:#6a3fae;--run-fr:#4f5fd6;--run-jp:#c2416b;--run-ca:#c4442b;--run-on-pass:#ffffff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--run-bg:#141416;--run-panel:#1c1c20;--run-sunk:#232328;--run-line:#34343b;--run-edge:#565b65;--run-ink:#e8e9ed;--run-muted:#a2a9b5;--run-run:#62c4ff;--run-pass:#3fb950;--run-wait:#d9a066;--run-key:#c5a3ff;--run-fr:#8b9cff;--run-jp:#ff8fab;--run-ca:#f0715a;--run-on-pass:#0d1117}}:root[data-theme=dark]{--run-bg:#141416;--run-panel:#1c1c20;--run-sunk:#232328;--run-line:#34343b;--run-edge:#565b65;--run-ink:#e8e9ed;--run-muted:#a2a9b5;--run-run:#62c4ff;--run-pass:#3fb950;--run-wait:#d9a066;--run-key:#c5a3ff;--run-fr:#8b9cff;--run-jp:#ff8fab;--run-ca:#f0715a;--run-on-pass:#0d1117}.run[hidden]{display:none!important}html.ci body{background:var(--run-bg);color:var(--run-ink)}html.ci .page{display:block}html.ci .masthead{padding-bottom:4px}html.ci .masthead::before,html.ci .masthead-inner,html.ci .side,html.ci .main>:not(.run){display:none}html.ci .main{padding:0;max-width:86rem;margin:0 auto}html.ci .topbar{max-width:86rem}html.ci .foot{max-width:86rem;margin:2rem auto 0;color:var(--run-muted);border-color:var(--run-line)}.run{position:relative;padding:18px 0 8px;font-family:var(--text);color:var(--run-ink)}.run a{color:var(--run-run)}.run button{font:inherit;color:inherit}.run :focus-visible{outline:2px solid var(--run-run);outline-offset:2px}.run h2::before,.run h2::after{content:none}.run h2 span{border:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.run-head{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:4px 24px;align-items:end;padding-bottom:14px;border-bottom:1px solid var(--run-line)}.run-crumb{margin:0;font:.78rem var(--mono);color:var(--run-muted)}.run-title{grid-column:1;margin:2px 0 0;font:700 1.4rem/1.25 var(--mono)}.run-meta{grid-column:1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;margin-top:8px;font:.8rem var(--mono);color:var(--run-muted)}.run-meta b{color:var(--run-ink)}.run-pill{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid var(--run-run);border-radius:999px;color:var(--run-run);font-weight:700}.run-pill.waiting{border-color:var(--run-wait);color:var(--run-wait)}.rlegend{display:flex;gap:12px;margin:0;padding:0;list-style:none}.rlegend li::before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:2px;vertical-align:-1px}.rlegend-fr::before{background:var(--run-fr)}.rlegend-jp::before{background:var(--run-jp)}.rlegend-ca::before{background:var(--run-ca)}.run-side{grid-column:2;grid-row:1/span 3;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.run-clock{font:700 2rem/1 var(--mono)}.run-place{font:.8rem var(--mono);color:var(--run-muted)}.run-place[data-country=fr]{color:var(--run-fr)}.run-place[data-country=jp]{color:var(--run-jp)}.run-place[data-country=ca]{color:var(--run-ca)}.run-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:4px}.run .run-btn,.run .run-back,.run .run-showall,.run .run-showcv{padding:.3rem .7rem;background:var(--run-panel);border:1px solid var(--run-line);border-radius:4px;font-family:var(--mono);font-size:.78rem;cursor:pointer}.run .run-back,.run .run-showcv,.run .run-showall{color:var(--run-run)}.run-btn:hover,.run-back:hover,.run-showcv:hover,.run-showall:hover{text-decoration:underline}.run-note{margin:10px 0 0;font:.8rem var(--mono);color:var(--run-muted)}.run-loading,.run-error{margin:1.5rem 0 1rem;font-family:var(--mono);color:var(--run-muted)}.run-actions-error{justify-content:flex-start}.rgraph{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 40px;margin:22px 0}.redges{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.redges path{fill:none;stroke:var(--run-edge);stroke-width:1.25;stroke-dasharray:2 4;opacity:.55}.redges path.done{stroke-dasharray:none;opacity:.85}.redges path.active{stroke:var(--run-run);opacity:1;stroke-width:1.75;stroke-dasharray:6 5}.redges path.gating{stroke:var(--run-wait);opacity:1;stroke-width:1.75;stroke-dasharray:6 5}.redges path.lit{stroke:var(--run-ink);stroke-width:2.25;opacity:1}.rstage{position:relative;z-index:1;min-width:0}.rstage-title{display:flex;justify-content:space-between;gap:8px;margin:0 0 10px;font:700 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--run-muted)}.rstage-title small{font-weight:400;letter-spacing:0;text-transform:none}.rjob{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr)auto;gap:0 9px;margin-bottom:12px;padding:9px 10px;background:var(--run-panel);border:1px solid var(--run-line);border-left-width:3px;border-radius:8px;cursor:pointer}.rjob[data-country=fr]{border-left-color:var(--run-fr)}.rjob[data-country=jp]{border-left-color:var(--run-jp)}.rjob[data-country=ca]{border-left-color:var(--run-ca)}.rjob[data-state=queued] .ric,.rjob[data-state=queued] .rpic{opacity:.5}.run .rjob[data-state=queued] .rjob-title{color:var(--run-muted);font-weight:400}.rjob[data-state=running]{border-color:var(--run-run)}.rjob[data-state=ff]{border-style:dashed}.rjob[data-state=waiting]{border-color:var(--run-wait);border-style:dashed}.rjob.selected{box-shadow:0 0 0 2px var(--run-ink)}.rgraph.has-sel .rjob:not(.selected) .ric,.rgraph.has-sel .rjob:not(.selected) .rpic,.rgraph.has-sel .rjob:not(.selected) .rphoto img{opacity:.45}.run .rgraph.has-sel .rjob:not(.selected) .rjob-title{color:var(--run-muted);font-weight:400}.rgraph.has-sel .rjob:not(.selected) .rchip:not(.rphoto){color:var(--run-muted);background:0 0;border-style:dashed;border-color:var(--run-line)}.rjob .ric{margin-top:2px}.run .rjob-title{display:block;width:100%;padding:0;background:0 0;border:0;text-align:left;font-weight:600;font-size:.82rem;line-height:1.25;cursor:pointer}.rwhen{margin:2px 0 0;font:.7rem var(--mono);color:var(--run-muted)}.rdur:not(:empty)::before{content:" · "}.rpic{grid-column:3;grid-row:1;width:46px;height:30px;color:var(--run-muted)}.rchips{display:flex;flex-wrap:wrap;gap:5px}.rchips:not(:empty){margin-top:7px}.ric{width:16px;height:16px;border-radius:50%;border:2px solid var(--run-edge);display:grid;place-items:center;font-size:10px;font-weight:700;line-height:1}[data-state=running]>.ric,[data-state=running]>.rgh-row .ric{border-color:var(--run-run);border-right-color:transparent}[data-state=passed]>.ric,[data-state=passed]>.rgh-row .ric{border:0;background:var(--run-pass);color:var(--run-on-pass)}[data-state=passed]>.ric::before,[data-state=passed]>.rgh-row .ric::before{content:"✓"/""}[data-state=ff]>.ric,[data-state=ff-done]>.ric,[data-state=ff]>.rgh-row .ric,[data-state=ff-done]>.rgh-row .ric{border:0;color:var(--run-muted)}[data-state=ff]>.ric::before,[data-state=ff-done]>.ric::before,[data-state=ff]>.rgh-row .ric::before,[data-state=ff-done]>.rgh-row .ric::before{content:"⏩"/"";font-size:11px}[data-state=waiting]>.ric,[data-state=waiting]>.rgh-row .ric{border-color:var(--run-wait)}[data-state=waiting]>.ric::before,[data-state=waiting]>.rgh-row .ric::before{content:"⏸"/"";color:var(--run-wait);font-size:8px}@keyframes run-spin{to{transform:rotate(360deg)}}@keyframes run-flow{to{stroke-dashoffset:-11}}.run.playing [data-state=running]>.ric,.run.playing [data-state=running]>.rgh-row .ric{animation:run-spin .8s linear infinite}.run.playing .redges path.active,.run.playing .redges path.gating{animation:run-flow .7s linear infinite}.rchip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:2px 8px;border:1px solid var(--run-line);border-radius:10px;background:var(--run-sunk);font:.7rem var(--mono);color:var(--run-ink);text-decoration:none;overflow-wrap:anywhere}a.rchip{color:var(--run-run);border-color:color-mix(in srgb,var(--run-run) 50%,var(--run-line))}a.rchip:hover{text-decoration:underline}.rchip::before{flex:none}.rchip[data-type=award]::before{content:"★"/"";color:var(--run-wait)}.rchip[data-type=degree]::before{content:"◆"/"";color:var(--run-fr)}.rchip[data-type=paper]::before{content:"¶"/""}.rchip[data-type=patent]::before{content:"⚙"/""}.rchip[data-type=cert]::before{content:"✦"/"";color:var(--run-pass)}.rchip[data-type=result]::before{content:"▲"/"";color:var(--run-pass)}.rchip.rphoto{padding:0;width:58px;height:38px;border-radius:4px;overflow:hidden;cursor:zoom-in}.rchip.rphoto img{width:100%;height:100%;object-fit:cover;display:block}.rchip.dim,a.rchip.dim{color:var(--run-muted);background:0 0;border-style:dashed;border-color:var(--run-line)}.rchip.rphoto.dim{opacity:.45}.rvisual{grid-column:1/-1;margin:9px 0 0}.rvisual img{display:block;width:100%;height:auto;border-radius:4px}.rvisual figcaption{margin-top:6px;font:.68rem var(--mono);color:var(--run-muted)}.rjob[data-state=queued] .rvisual img,.rgraph.has-sel .rjob:not(.selected) .rvisual img{opacity:.5}.rtools{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font:.7rem var(--mono);color:var(--run-muted)}.rtool{display:inline-flex;align-items:center;gap:5px}.rlogo{flex:none;width:13px;height:13px;background:var(--run-ink);mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.rjob[data-state=queued] .rlogo,.rgraph.has-sel .rjob:not(.selected) .rlogo{opacity:.5}.rjlogo{display:block;width:44px;height:22px;margin-top:7px;background:var(--run-muted);mask-repeat:no-repeat;mask-position:left center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:left center;-webkit-mask-size:contain}.rjob[data-state=queued] .rjlogo,.rgraph.has-sel .rjob:not(.selected) .rjlogo{opacity:.5}@media(forced-colors:active){.rlogo,.rjlogo{forced-color-adjust:none;background:CanvasText}}.rpreview{position:absolute;z-index:5;width:330px;max-width:calc(100vw - 32px);padding:8px;background:var(--run-panel);border:1px solid var(--run-line);border-radius:8px;box-shadow:0 8px 24px rgb(0 0 0/.25)}.rpreview img{display:block;width:100%;height:auto;border-radius:4px}.rprev-cap{margin:6px 0 0;font-size:.8rem;font-weight:600}.rprev-credit{margin:2px 0 0;font:.7rem var(--mono);color:var(--run-muted)}.rgate{position:relative;z-index:1;margin-top:6px;padding:10px;border:1px dashed var(--run-wait);border-radius:8px;background:var(--run-panel);font-size:.82rem;color:var(--run-muted)}.rgate b{color:var(--run-wait)}.rmail-ico{width:1.05em;height:1.05em;margin-right:.4em;vertical-align:-.18em}.rgate-hint{margin:6px 0 0;font:.68rem var(--mono);color:var(--run-muted)}.run .rgate-btn{display:inline-block;margin-top:8px;padding:6px 10px;background:var(--run-wait);color:var(--run-panel);font:700 .75rem var(--mono);text-decoration:none;border-radius:4px}.rlower{display:grid;grid-template-columns:minmax(0,1.7fr)minmax(0,1fr);gap:20px}.rlogbox,.rartbox{min-width:0;background:var(--run-panel);border:1px solid var(--run-line);border-radius:8px;overflow:hidden}.rbox-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:8px 12px;border-bottom:1px solid var(--run-line);font:700 .75rem var(--mono);letter-spacing:0;text-transform:none;color:var(--run-muted)}.rlog-sel{font-weight:400}.run .run-showall{margin-left:auto;padding:.1rem .5rem}.rlog{height:340px;overflow:auto;padding:6px 0;font:.76rem/1.6 var(--mono)}.rgrp{border-left:2px solid transparent}.rgrp+.rgrp{border-top:1px solid var(--run-line)}.rgrp:not(.closed)>.rgh-row{background:var(--run-sunk)}.rgrp.sel{border-left-color:var(--run-ink);background:color-mix(in srgb,var(--run-ink) 4%,transparent)}.rgh-row{display:flex;align-items:center;gap:8px;padding-right:12px}.rgh{flex:1;min-width:0;min-height:24px;display:grid;grid-template-columns:12px 16px minmax(0,1fr)auto;align-items:center;gap:8px;padding:2px 12px;background:0 0;border:0;text-align:left;cursor:pointer}.rgh:hover{background:var(--run-sunk)}.rcaret::before{content:"▾"/"";color:var(--run-muted)}.rgrp.closed .rcaret::before{content:"▸"/""}.rgt{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rgd{color:var(--run-muted)}.run .run-showcv{padding:.05rem .5rem}.rgl{padding:4px 0 8px}.rgrp.closed .rgl{display:none}.rgl p{display:grid;grid-template-columns:4ch 4.5ch minmax(0,1fr);gap:10px;margin:0;padding:0 12px 0 34px}.rgl .ln{color:var(--run-muted);text-align:right}.rgl .ts{color:var(--run-muted)}.rgl .k{display:inline-block;min-width:10ch;margin-right:1ch;color:var(--run-key)}:lang(fr) .rgl .k{min-width:15ch}.rgl p.wait .tx,.rgl p.wait a{color:var(--run-wait);font-weight:700}.rgl .ok{color:var(--run-pass)}.rgl .a .tx{color:var(--run-wait)}.rgl .ff .tx{color:var(--run-muted);font-style:italic}.rgl p.ok .tx{color:var(--run-pass)}.rarts{height:340px;overflow:auto;padding:10px 12px}.rart-grp+.rart-grp{margin-top:10px;padding-top:9px;border-top:1px dashed var(--run-line)}.run .rart-h{margin:0 0 7px;font:700 .66rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--run-muted)}.rart-chips{display:flex;flex-wrap:wrap;gap:7px}.rarts .rchip{font-size:.74rem;padding:3px 9px}@media(max-width:1023px){.rgraph{grid-template-columns:minmax(0,1fr);gap:6px;padding-left:16px}}@media(max-width:760px){.rlower{grid-template-columns:minmax(0,1fr)}.run-head{grid-template-columns:minmax(0,1fr)}.run-side{grid-column:1;grid-row:auto;align-items:flex-start}.run-actions{justify-content:flex-start}.rlog,.rarts{height:280px}.rgl .k,:lang(fr) .rgl .k{min-width:0}}}@media print{@page{size:A4;margin:10mm 13mm 8mm}html{font-size:13.8px}html[lang=fr]{font-size:13.3px}body{margin:0;background:#fff;color:#000;font-family:firago,system-ui,segoe ui,Roboto,sans-serif;line-height:1.38}a{color:inherit;text-decoration:none}p{margin:0}.screen-only,.figures,.viewbar,.run,.toolbar,.topbar,.sitenav,.sprite{display:none!important}.masthead{margin-bottom:1mm}h1{margin:0;font-size:1.95rem;font-weight:700;letter-spacing:-.01em}.role{font-size:1.05rem;font-weight:600}.focus{font-size:.9rem;color:#333;margin-bottom:.25rem}.contact{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 1rem;font-size:.8rem;color:#333}h2{margin:.75rem 0 .35rem;padding-bottom:1px;border-bottom:1px solid #b8722f;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.summary{font-size:.9rem}.job{margin-bottom:.45rem;break-inside:avoid}.job-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}h3{margin:0;font-size:.93rem;font-weight:600}.org{font-weight:700}.when{font-size:.78rem;color:#333;white-space:nowrap}.context{margin:.05rem 0 .15rem;font-size:.82rem;color:#333}.points{margin:0;padding-left:1.05rem;font-size:.84rem}.points li{margin:.06rem 0;break-inside:avoid}.job.compact{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"t c w";column-gap:.6rem;align-items:baseline;margin-bottom:.3rem}.job.compact .job-head{display:contents}.job.compact h3{grid-area:t}.job.compact .context{grid-area:c;margin:0}.job.compact .when{grid-area:w}.earlier{list-style:none;margin:.1rem 0 0;padding:0;font-size:.82rem}.earlier li{display:flex;justify-content:space-between;gap:1rem}.side{display:grid;grid-template-columns:1fr 1fr;column-gap:1.4rem}.side section{min-width:0}.edu{list-style:none;margin:0;padding:0;display:grid;gap:.15rem;font-size:.82rem}.skills{display:grid;grid-template-columns:max-content 1fr;gap:.08rem .7rem;margin:0;font-size:.82rem}.skills dt{font-weight:600}.skills dd{margin:0}.tags{list-style:none;margin:0;padding:0;display:inline}.tags li{display:inline}.tags li:not(:last-child)::after{content:", "}.side p{font-size:.82rem}.ico{display:none}.edu li{display:grid;grid-template-columns:15mm minmax(0,1fr);column-gap:.5rem;align-items:start}.edu .logos{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-top:3px}.edu .edu-text{grid-column:2;grid-row:1}.logos img{display:block;height:auto;width:auto;max-width:15mm;max-height:9px}.edu-sub{grid-column:1/-1;list-style:none;margin:.1rem 0 0;padding:0;display:grid;gap:.1rem}.foot{margin-top:.5rem;padding-top:.2rem;border-top:1px solid #999;font-size:.72rem;color:#333}}